UNPKG

6.41 MBJavaScriptView Raw
1(function(global2, factory) {
2 typeof exports === "object" && typeof module !== "undefined" ? module.exports = factory() : typeof define === "function" && define.amd ? define(factory) : (global2 = typeof globalThis !== "undefined" ? globalThis : global2 || self, global2.mermaid = factory());
3})(this, function() {
4 "use strict";
5 function dedent(templ) {
6 var values2 = [];
7 for (var _i = 1; _i < arguments.length; _i++) {
8 values2[_i - 1] = arguments[_i];
9 }
10 var strings = Array.from(typeof templ === "string" ? [templ] : templ);
11 strings[strings.length - 1] = strings[strings.length - 1].replace(/\r?\n([\t ]*)$/, "");
12 var indentLengths = strings.reduce(function(arr, str2) {
13 var matches = str2.match(/\n([\t ]+|(?!\s).)/g);
14 if (matches) {
15 return arr.concat(matches.map(function(match) {
16 var _a, _b;
17 return (_b = (_a = match.match(/[\t ]/g)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
18 }));
19 }
20 return arr;
21 }, []);
22 if (indentLengths.length) {
23 var pattern_1 = new RegExp("\n[ ]{" + Math.min.apply(Math, indentLengths) + "}", "g");
24 strings = strings.map(function(str2) {
25 return str2.replace(pattern_1, "\n");
26 });
27 }
28 strings[0] = strings[0].replace(/^\r?\n/, "");
29 var string2 = strings[0];
30 values2.forEach(function(value, i2) {
31 var endentations = string2.match(/(?:^|\n)( *)$/);
32 var endentation = endentations ? endentations[1] : "";
33 var indentedValue = value;
34 if (typeof value === "string" && value.includes("\n")) {
35 indentedValue = String(value).split("\n").map(function(str2, i3) {
36 return i3 === 0 ? str2 : "" + endentation + str2;
37 }).join("\n");
38 }
39 string2 += indentedValue + strings[i2 + 1];
40 });
41 return string2;
42 }
43 var SECONDS_A_MINUTE = 60;
44 var SECONDS_A_HOUR = SECONDS_A_MINUTE * 60;
45 var SECONDS_A_DAY = SECONDS_A_HOUR * 24;
46 var SECONDS_A_WEEK = SECONDS_A_DAY * 7;
47 var MILLISECONDS_A_SECOND = 1e3;
48 var MILLISECONDS_A_MINUTE = SECONDS_A_MINUTE * MILLISECONDS_A_SECOND;
49 var MILLISECONDS_A_HOUR = SECONDS_A_HOUR * MILLISECONDS_A_SECOND;
50 var MILLISECONDS_A_DAY = SECONDS_A_DAY * MILLISECONDS_A_SECOND;
51 var MILLISECONDS_A_WEEK = SECONDS_A_WEEK * MILLISECONDS_A_SECOND;
52 var MS = "millisecond";
53 var S = "second";
54 var MIN = "minute";
55 var H = "hour";
56 var D = "day";
57 var W = "week";
58 var M = "month";
59 var Q = "quarter";
60 var Y = "year";
61 var DATE = "date";
62 var FORMAT_DEFAULT = "YYYY-MM-DDTHH:mm:ssZ";
63 var INVALID_DATE_STRING = "Invalid Date";
64 var REGEX_PARSE = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/;
65 var REGEX_FORMAT = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;
66 const en = {
67 name: "en",
68 weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
69 months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
70 ordinal: function ordinal2(n) {
71 var s = ["th", "st", "nd", "rd"];
72 var v = n % 100;
73 return "[" + n + (s[(v - 20) % 10] || s[v] || s[0]) + "]";
74 }
75 };
76 var padStart$1 = function padStart2(string2, length2, pad2) {
77 var s = String(string2);
78 if (!s || s.length >= length2)
79 return string2;
80 return "" + Array(length2 + 1 - s.length).join(pad2) + string2;
81 };
82 var padZoneStr = function padZoneStr2(instance2) {
83 var negMinutes = -instance2.utcOffset();
84 var minutes = Math.abs(negMinutes);
85 var hourOffset = Math.floor(minutes / 60);
86 var minuteOffset = minutes % 60;
87 return (negMinutes <= 0 ? "+" : "-") + padStart$1(hourOffset, 2, "0") + ":" + padStart$1(minuteOffset, 2, "0");
88 };
89 var monthDiff = function monthDiff2(a, b) {
90 if (a.date() < b.date())
91 return -monthDiff2(b, a);
92 var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month());
93 var anchor = a.clone().add(wholeMonthDiff, M);
94 var c2 = b - anchor < 0;
95 var anchor2 = a.clone().add(wholeMonthDiff + (c2 ? -1 : 1), M);
96 return +(-(wholeMonthDiff + (b - anchor) / (c2 ? anchor - anchor2 : anchor2 - anchor)) || 0);
97 };
98 var absFloor = function absFloor2(n) {
99 return n < 0 ? Math.ceil(n) || 0 : Math.floor(n);
100 };
101 var prettyUnit = function prettyUnit2(u2) {
102 var special = {
103 M,
104 y: Y,
105 w: W,
106 d: D,
107 D: DATE,
108 h: H,
109 m: MIN,
110 s: S,
111 ms: MS,
112 Q
113 };
114 return special[u2] || String(u2 || "").toLowerCase().replace(/s$/, "");
115 };
116 var isUndefined$1 = function isUndefined2(s) {
117 return s === void 0;
118 };
119 const U = {
120 s: padStart$1,
121 z: padZoneStr,
122 m: monthDiff,
123 a: absFloor,
124 p: prettyUnit,
125 u: isUndefined$1
126 };
127 var L = "en";
128 var Ls = {};
129 Ls[L] = en;
130 var isDayjs = function isDayjs2(d) {
131 return d instanceof Dayjs;
132 };
133 var parseLocale = function parseLocale2(preset, object2, isLocal) {
134 var l;
135 if (!preset)
136 return L;
137 if (typeof preset === "string") {
138 var presetLower = preset.toLowerCase();
139 if (Ls[presetLower]) {
140 l = presetLower;
141 }
142 if (object2) {
143 Ls[presetLower] = object2;
144 l = presetLower;
145 }
146 var presetSplit = preset.split("-");
147 if (!l && presetSplit.length > 1) {
148 return parseLocale2(presetSplit[0]);
149 }
150 } else {
151 var name2 = preset.name;
152 Ls[name2] = preset;
153 l = name2;
154 }
155 if (!isLocal && l)
156 L = l;
157 return l || !isLocal && L;
158 };
159 var dayjs = function dayjs2(date2, c2) {
160 if (isDayjs(date2)) {
161 return date2.clone();
162 }
163 var cfg = typeof c2 === "object" ? c2 : {};
164 cfg.date = date2;
165 cfg.args = arguments;
166 return new Dayjs(cfg);
167 };
168 var wrapper = function wrapper2(date2, instance2) {
169 return dayjs(date2, {
170 locale: instance2.$L,
171 utc: instance2.$u,
172 x: instance2.$x,
173 $offset: instance2.$offset
174 // todo: refactor; do not use this.$offset in you code
175 });
176 };
177 var Utils$1 = U;
178 Utils$1.l = parseLocale;
179 Utils$1.i = isDayjs;
180 Utils$1.w = wrapper;
181 var parseDate = function parseDate2(cfg) {
182 var date2 = cfg.date, utc = cfg.utc;
183 if (date2 === null)
184 return /* @__PURE__ */ new Date(NaN);
185 if (Utils$1.u(date2))
186 return /* @__PURE__ */ new Date();
187 if (date2 instanceof Date)
188 return new Date(date2);
189 if (typeof date2 === "string" && !/Z$/i.test(date2)) {
190 var d = date2.match(REGEX_PARSE);
191 if (d) {
192 var m = d[2] - 1 || 0;
193 var ms = (d[7] || "0").substring(0, 3);
194 if (utc) {
195 return new Date(Date.UTC(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms));
196 }
197 return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);
198 }
199 }
200 return new Date(date2);
201 };
202 var Dayjs = /* @__PURE__ */ function() {
203 function Dayjs2(cfg) {
204 this.$L = parseLocale(cfg.locale, null, true);
205 this.parse(cfg);
206 }
207 var _proto = Dayjs2.prototype;
208 _proto.parse = function parse2(cfg) {
209 this.$d = parseDate(cfg);
210 this.$x = cfg.x || {};
211 this.init();
212 };
213 _proto.init = function init2() {
214 var $d = this.$d;
215 this.$y = $d.getFullYear();
216 this.$M = $d.getMonth();
217 this.$D = $d.getDate();
218 this.$W = $d.getDay();
219 this.$H = $d.getHours();
220 this.$m = $d.getMinutes();
221 this.$s = $d.getSeconds();
222 this.$ms = $d.getMilliseconds();
223 };
224 _proto.$utils = function $utils() {
225 return Utils$1;
226 };
227 _proto.isValid = function isValid() {
228 return !(this.$d.toString() === INVALID_DATE_STRING);
229 };
230 _proto.isSame = function isSame(that, units) {
231 var other = dayjs(that);
232 return this.startOf(units) <= other && other <= this.endOf(units);
233 };
234 _proto.isAfter = function isAfter(that, units) {
235 return dayjs(that) < this.startOf(units);
236 };
237 _proto.isBefore = function isBefore(that, units) {
238 return this.endOf(units) < dayjs(that);
239 };
240 _proto.$g = function $g(input, get2, set2) {
241 if (Utils$1.u(input))
242 return this[get2];
243 return this.set(set2, input);
244 };
245 _proto.unix = function unix() {
246 return Math.floor(this.valueOf() / 1e3);
247 };
248 _proto.valueOf = function valueOf() {
249 return this.$d.getTime();
250 };
251 _proto.startOf = function startOf(units, _startOf) {
252 var _this = this;
253 var isStartOf = !Utils$1.u(_startOf) ? _startOf : true;
254 var unit2 = Utils$1.p(units);
255 var instanceFactory = function instanceFactory2(d, m) {
256 var ins = Utils$1.w(_this.$u ? Date.UTC(_this.$y, m, d) : new Date(_this.$y, m, d), _this);
257 return isStartOf ? ins : ins.endOf(D);
258 };
259 var instanceFactorySet = function instanceFactorySet2(method, slice2) {
260 var argumentStart = [0, 0, 0, 0];
261 var argumentEnd = [23, 59, 59, 999];
262 return Utils$1.w(_this.toDate()[method].apply(
263 // eslint-disable-line prefer-spread
264 _this.toDate("s"),
265 (isStartOf ? argumentStart : argumentEnd).slice(slice2)
266 ), _this);
267 };
268 var $W = this.$W, $M = this.$M, $D = this.$D;
269 var utcPad = "set" + (this.$u ? "UTC" : "");
270 switch (unit2) {
271 case Y:
272 return isStartOf ? instanceFactory(1, 0) : instanceFactory(31, 11);
273 case M:
274 return isStartOf ? instanceFactory(1, $M) : instanceFactory(0, $M + 1);
275 case W: {
276 var weekStart = this.$locale().weekStart || 0;
277 var gap = ($W < weekStart ? $W + 7 : $W) - weekStart;
278 return instanceFactory(isStartOf ? $D - gap : $D + (6 - gap), $M);
279 }
280 case D:
281 case DATE:
282 return instanceFactorySet(utcPad + "Hours", 0);
283 case H:
284 return instanceFactorySet(utcPad + "Minutes", 1);
285 case MIN:
286 return instanceFactorySet(utcPad + "Seconds", 2);
287 case S:
288 return instanceFactorySet(utcPad + "Milliseconds", 3);
289 default:
290 return this.clone();
291 }
292 };
293 _proto.endOf = function endOf(arg) {
294 return this.startOf(arg, false);
295 };
296 _proto.$set = function $set(units, _int) {
297 var _C$D$C$DATE$C$M$C$Y$C;
298 var unit2 = Utils$1.p(units);
299 var utcPad = "set" + (this.$u ? "UTC" : "");
300 var name2 = (_C$D$C$DATE$C$M$C$Y$C = {}, _C$D$C$DATE$C$M$C$Y$C[D] = utcPad + "Date", _C$D$C$DATE$C$M$C$Y$C[DATE] = utcPad + "Date", _C$D$C$DATE$C$M$C$Y$C[M] = utcPad + "Month", _C$D$C$DATE$C$M$C$Y$C[Y] = utcPad + "FullYear", _C$D$C$DATE$C$M$C$Y$C[H] = utcPad + "Hours", _C$D$C$DATE$C$M$C$Y$C[MIN] = utcPad + "Minutes", _C$D$C$DATE$C$M$C$Y$C[S] = utcPad + "Seconds", _C$D$C$DATE$C$M$C$Y$C[MS] = utcPad + "Milliseconds", _C$D$C$DATE$C$M$C$Y$C)[unit2];
301 var arg = unit2 === D ? this.$D + (_int - this.$W) : _int;
302 if (unit2 === M || unit2 === Y) {
303 var date2 = this.clone().set(DATE, 1);
304 date2.$d[name2](arg);
305 date2.init();
306 this.$d = date2.set(DATE, Math.min(this.$D, date2.daysInMonth())).$d;
307 } else if (name2)
308 this.$d[name2](arg);
309 this.init();
310 return this;
311 };
312 _proto.set = function set2(string2, _int2) {
313 return this.clone().$set(string2, _int2);
314 };
315 _proto.get = function get2(unit2) {
316 return this[Utils$1.p(unit2)]();
317 };
318 _proto.add = function add(number2, units) {
319 var _this2 = this, _C$MIN$C$H$C$S$unit;
320 number2 = Number(number2);
321 var unit2 = Utils$1.p(units);
322 var instanceFactorySet = function instanceFactorySet2(n) {
323 var d = dayjs(_this2);
324 return Utils$1.w(d.date(d.date() + Math.round(n * number2)), _this2);
325 };
326 if (unit2 === M) {
327 return this.set(M, this.$M + number2);
328 }
329 if (unit2 === Y) {
330 return this.set(Y, this.$y + number2);
331 }
332 if (unit2 === D) {
333 return instanceFactorySet(1);
334 }
335 if (unit2 === W) {
336 return instanceFactorySet(7);
337 }
338 var step = (_C$MIN$C$H$C$S$unit = {}, _C$MIN$C$H$C$S$unit[MIN] = MILLISECONDS_A_MINUTE, _C$MIN$C$H$C$S$unit[H] = MILLISECONDS_A_HOUR, _C$MIN$C$H$C$S$unit[S] = MILLISECONDS_A_SECOND, _C$MIN$C$H$C$S$unit)[unit2] || 1;
339 var nextTimeStamp = this.$d.getTime() + number2 * step;
340 return Utils$1.w(nextTimeStamp, this);
341 };
342 _proto.subtract = function subtract(number2, string2) {
343 return this.add(number2 * -1, string2);
344 };
345 _proto.format = function format2(formatStr) {
346 var _this3 = this;
347 var locale2 = this.$locale();
348 if (!this.isValid())
349 return locale2.invalidDate || INVALID_DATE_STRING;
350 var str2 = formatStr || FORMAT_DEFAULT;
351 var zoneStr = Utils$1.z(this);
352 var $H = this.$H, $m = this.$m, $M = this.$M;
353 var weekdays = locale2.weekdays, months = locale2.months, meridiem = locale2.meridiem;
354 var getShort = function getShort2(arr, index2, full, length2) {
355 return arr && (arr[index2] || arr(_this3, str2)) || full[index2].slice(0, length2);
356 };
357 var get$H = function get$H2(num) {
358 return Utils$1.s($H % 12 || 12, num, "0");
359 };
360 var meridiemFunc = meridiem || function(hour2, minute2, isLowercase) {
361 var m = hour2 < 12 ? "AM" : "PM";
362 return isLowercase ? m.toLowerCase() : m;
363 };
364 var matches = {
365 YY: String(this.$y).slice(-2),
366 YYYY: this.$y,
367 M: $M + 1,
368 MM: Utils$1.s($M + 1, 2, "0"),
369 MMM: getShort(locale2.monthsShort, $M, months, 3),
370 MMMM: getShort(months, $M),
371 D: this.$D,
372 DD: Utils$1.s(this.$D, 2, "0"),
373 d: String(this.$W),
374 dd: getShort(locale2.weekdaysMin, this.$W, weekdays, 2),
375 ddd: getShort(locale2.weekdaysShort, this.$W, weekdays, 3),
376 dddd: weekdays[this.$W],
377 H: String($H),
378 HH: Utils$1.s($H, 2, "0"),
379 h: get$H(1),
380 hh: get$H(2),
381 a: meridiemFunc($H, $m, true),
382 A: meridiemFunc($H, $m, false),
383 m: String($m),
384 mm: Utils$1.s($m, 2, "0"),
385 s: String(this.$s),
386 ss: Utils$1.s(this.$s, 2, "0"),
387 SSS: Utils$1.s(this.$ms, 3, "0"),
388 Z: zoneStr
389 // 'ZZ' logic below
390 };
391 return str2.replace(REGEX_FORMAT, function(match, $1) {
392 return $1 || matches[match] || zoneStr.replace(":", "");
393 });
394 };
395 _proto.utcOffset = function utcOffset() {
396 return -Math.round(this.$d.getTimezoneOffset() / 15) * 15;
397 };
398 _proto.diff = function diff(input, units, _float) {
399 var _C$Y$C$M$C$Q$C$W$C$D$;
400 var unit2 = Utils$1.p(units);
401 var that = dayjs(input);
402 var zoneDelta = (that.utcOffset() - this.utcOffset()) * MILLISECONDS_A_MINUTE;
403 var diff2 = this - that;
404 var result = Utils$1.m(this, that);
405 result = (_C$Y$C$M$C$Q$C$W$C$D$ = {}, _C$Y$C$M$C$Q$C$W$C$D$[Y] = result / 12, _C$Y$C$M$C$Q$C$W$C$D$[M] = result, _C$Y$C$M$C$Q$C$W$C$D$[Q] = result / 3, _C$Y$C$M$C$Q$C$W$C$D$[W] = (diff2 - zoneDelta) / MILLISECONDS_A_WEEK, _C$Y$C$M$C$Q$C$W$C$D$[D] = (diff2 - zoneDelta) / MILLISECONDS_A_DAY, _C$Y$C$M$C$Q$C$W$C$D$[H] = diff2 / MILLISECONDS_A_HOUR, _C$Y$C$M$C$Q$C$W$C$D$[MIN] = diff2 / MILLISECONDS_A_MINUTE, _C$Y$C$M$C$Q$C$W$C$D$[S] = diff2 / MILLISECONDS_A_SECOND, _C$Y$C$M$C$Q$C$W$C$D$)[unit2] || diff2;
406 return _float ? result : Utils$1.a(result);
407 };
408 _proto.daysInMonth = function daysInMonth() {
409 return this.endOf(M).$D;
410 };
411 _proto.$locale = function $locale() {
412 return Ls[this.$L];
413 };
414 _proto.locale = function locale2(preset, object2) {
415 if (!preset)
416 return this.$L;
417 var that = this.clone();
418 var nextLocaleName = parseLocale(preset, object2, true);
419 if (nextLocaleName)
420 that.$L = nextLocaleName;
421 return that;
422 };
423 _proto.clone = function clone2() {
424 return Utils$1.w(this.$d, this);
425 };
426 _proto.toDate = function toDate() {
427 return new Date(this.valueOf());
428 };
429 _proto.toJSON = function toJSON() {
430 return this.isValid() ? this.toISOString() : null;
431 };
432 _proto.toISOString = function toISOString() {
433 return this.$d.toISOString();
434 };
435 _proto.toString = function toString2() {
436 return this.$d.toUTCString();
437 };
438 return Dayjs2;
439 }();
440 var proto = Dayjs.prototype;
441 dayjs.prototype = proto;
442 [["$ms", MS], ["$s", S], ["$m", MIN], ["$H", H], ["$W", D], ["$M", M], ["$y", Y], ["$D", DATE]].forEach(function(g) {
443 proto[g[1]] = function(input) {
444 return this.$g(input, g[0], g[1]);
445 };
446 });
447 dayjs.extend = function(plugin2, option) {
448 if (!plugin2.$i) {
449 plugin2(option, Dayjs, dayjs);
450 plugin2.$i = true;
451 }
452 return dayjs;
453 };
454 dayjs.locale = parseLocale;
455 dayjs.isDayjs = isDayjs;
456 dayjs.unix = function(timestamp2) {
457 return dayjs(timestamp2 * 1e3);
458 };
459 dayjs.en = Ls[L];
460 dayjs.Ls = Ls;
461 dayjs.p = {};
462 const LEVELS = {
463 trace: 0,
464 debug: 1,
465 info: 2,
466 warn: 3,
467 error: 4,
468 fatal: 5
469 };
470 const log$1 = {
471 trace: (..._args) => {
472 },
473 debug: (..._args) => {
474 },
475 info: (..._args) => {
476 },
477 warn: (..._args) => {
478 },
479 error: (..._args) => {
480 },
481 fatal: (..._args) => {
482 }
483 };
484 const setLogLevel$1 = function(level = "fatal") {
485 let numericLevel = LEVELS.fatal;
486 if (typeof level === "string") {
487 level = level.toLowerCase();
488 if (level in LEVELS) {
489 numericLevel = LEVELS[level];
490 }
491 } else if (typeof level === "number") {
492 numericLevel = level;
493 }
494 log$1.trace = () => {
495 };
496 log$1.debug = () => {
497 };
498 log$1.info = () => {
499 };
500 log$1.warn = () => {
501 };
502 log$1.error = () => {
503 };
504 log$1.fatal = () => {
505 };
506 if (numericLevel <= LEVELS.fatal) {
507 log$1.fatal = console.error ? console.error.bind(console, format$1("FATAL"), "color: orange") : console.log.bind(console, "\x1B[35m", format$1("FATAL"));
508 }
509 if (numericLevel <= LEVELS.error) {
510 log$1.error = console.error ? console.error.bind(console, format$1("ERROR"), "color: orange") : console.log.bind(console, "\x1B[31m", format$1("ERROR"));
511 }
512 if (numericLevel <= LEVELS.warn) {
513 log$1.warn = console.warn ? console.warn.bind(console, format$1("WARN"), "color: orange") : console.log.bind(console, `\x1B[33m`, format$1("WARN"));
514 }
515 if (numericLevel <= LEVELS.info) {
516 log$1.info = console.info ? console.info.bind(console, format$1("INFO"), "color: lightblue") : console.log.bind(console, "\x1B[34m", format$1("INFO"));
517 }
518 if (numericLevel <= LEVELS.debug) {
519 log$1.debug = console.debug ? console.debug.bind(console, format$1("DEBUG"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format$1("DEBUG"));
520 }
521 if (numericLevel <= LEVELS.trace) {
522 log$1.trace = console.debug ? console.debug.bind(console, format$1("TRACE"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format$1("TRACE"));
523 }
524 };
525 const format$1 = (level) => {
526 const time2 = dayjs().format("ss.SSS");
527 return `%c${time2} : ${level} : `;
528 };
529 var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
530 function getDefaultExportFromCjs(x2) {
531 return x2 && x2.__esModule && Object.prototype.hasOwnProperty.call(x2, "default") ? x2["default"] : x2;
532 }
533 var dist = {};
534 Object.defineProperty(dist, "__esModule", { value: true });
535 var sanitizeUrl_1 = dist.sanitizeUrl = void 0;
536 var invalidProtocolRegex = /^([^\w]*)(javascript|data|vbscript)/im;
537 var htmlEntitiesRegex = /&#(\w+)(^\w|;)?/g;
538 var htmlCtrlEntityRegex = /&(newline|tab);/gi;
539 var ctrlCharactersRegex = /[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim;
540 var urlSchemeRegex = /^.+(:|&colon;)/gim;
541 var relativeFirstCharacters = [".", "/"];
542 function isRelativeUrlWithoutProtocol(url) {
543 return relativeFirstCharacters.indexOf(url[0]) > -1;
544 }
545 function decodeHtmlCharacters(str2) {
546 return str2.replace(htmlEntitiesRegex, function(match, dec) {
547 return String.fromCharCode(dec);
548 });
549 }
550 function sanitizeUrl(url) {
551 var sanitizedUrl = decodeHtmlCharacters(url || "").replace(htmlCtrlEntityRegex, "").replace(ctrlCharactersRegex, "").trim();
552 if (!sanitizedUrl) {
553 return "about:blank";
554 }
555 if (isRelativeUrlWithoutProtocol(sanitizedUrl)) {
556 return sanitizedUrl;
557 }
558 var urlSchemeParseResults = sanitizedUrl.match(urlSchemeRegex);
559 if (!urlSchemeParseResults) {
560 return sanitizedUrl;
561 }
562 var urlScheme = urlSchemeParseResults[0];
563 if (invalidProtocolRegex.test(urlScheme)) {
564 return "about:blank";
565 }
566 return sanitizedUrl;
567 }
568 sanitizeUrl_1 = dist.sanitizeUrl = sanitizeUrl;
569 function ascending$1(a, b) {
570 return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
571 }
572 function descending$1(a, b) {
573 return a == null || b == null ? NaN : b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
574 }
575 function bisector(f2) {
576 let compare1, compare2, delta;
577 if (f2.length !== 2) {
578 compare1 = ascending$1;
579 compare2 = (d, x2) => ascending$1(f2(d), x2);
580 delta = (d, x2) => f2(d) - x2;
581 } else {
582 compare1 = f2 === ascending$1 || f2 === descending$1 ? f2 : zero$1;
583 compare2 = f2;
584 delta = f2;
585 }
586 function left2(a, x2, lo = 0, hi = a.length) {
587 if (lo < hi) {
588 if (compare1(x2, x2) !== 0)
589 return hi;
590 do {
591 const mid = lo + hi >>> 1;
592 if (compare2(a[mid], x2) < 0)
593 lo = mid + 1;
594 else
595 hi = mid;
596 } while (lo < hi);
597 }
598 return lo;
599 }
600 function right2(a, x2, lo = 0, hi = a.length) {
601 if (lo < hi) {
602 if (compare1(x2, x2) !== 0)
603 return hi;
604 do {
605 const mid = lo + hi >>> 1;
606 if (compare2(a[mid], x2) <= 0)
607 lo = mid + 1;
608 else
609 hi = mid;
610 } while (lo < hi);
611 }
612 return lo;
613 }
614 function center2(a, x2, lo = 0, hi = a.length) {
615 const i2 = left2(a, x2, lo, hi - 1);
616 return i2 > lo && delta(a[i2 - 1], x2) > -delta(a[i2], x2) ? i2 - 1 : i2;
617 }
618 return { left: left2, center: center2, right: right2 };
619 }
620 function zero$1() {
621 return 0;
622 }
623 function number$3(x2) {
624 return x2 === null ? NaN : +x2;
625 }
626 const ascendingBisect = bisector(ascending$1);
627 const bisectRight = ascendingBisect.right;
628 bisector(number$3).center;
629 const bisect = bisectRight;
630 class InternMap extends Map {
631 constructor(entries2, key = keyof) {
632 super();
633 Object.defineProperties(this, { _intern: { value: /* @__PURE__ */ new Map() }, _key: { value: key } });
634 if (entries2 != null)
635 for (const [key2, value] of entries2)
636 this.set(key2, value);
637 }
638 get(key) {
639 return super.get(intern_get(this, key));
640 }
641 has(key) {
642 return super.has(intern_get(this, key));
643 }
644 set(key, value) {
645 return super.set(intern_set(this, key), value);
646 }
647 delete(key) {
648 return super.delete(intern_delete(this, key));
649 }
650 }
651 function intern_get({ _intern, _key }, value) {
652 const key = _key(value);
653 return _intern.has(key) ? _intern.get(key) : value;
654 }
655 function intern_set({ _intern, _key }, value) {
656 const key = _key(value);
657 if (_intern.has(key))
658 return _intern.get(key);
659 _intern.set(key, value);
660 return value;
661 }
662 function intern_delete({ _intern, _key }, value) {
663 const key = _key(value);
664 if (_intern.has(key)) {
665 value = _intern.get(key);
666 _intern.delete(key);
667 }
668 return value;
669 }
670 function keyof(value) {
671 return value !== null && typeof value === "object" ? value.valueOf() : value;
672 }
673 var e10 = Math.sqrt(50), e5 = Math.sqrt(10), e2 = Math.sqrt(2);
674 function ticks(start2, stop, count) {
675 var reverse, i2 = -1, n, ticks2, step;
676 stop = +stop, start2 = +start2, count = +count;
677 if (start2 === stop && count > 0)
678 return [start2];
679 if (reverse = stop < start2)
680 n = start2, start2 = stop, stop = n;
681 if ((step = tickIncrement(start2, stop, count)) === 0 || !isFinite(step))
682 return [];
683 if (step > 0) {
684 let r0 = Math.round(start2 / step), r1 = Math.round(stop / step);
685 if (r0 * step < start2)
686 ++r0;
687 if (r1 * step > stop)
688 --r1;
689 ticks2 = new Array(n = r1 - r0 + 1);
690 while (++i2 < n)
691 ticks2[i2] = (r0 + i2) * step;
692 } else {
693 step = -step;
694 let r0 = Math.round(start2 * step), r1 = Math.round(stop * step);
695 if (r0 / step < start2)
696 ++r0;
697 if (r1 / step > stop)
698 --r1;
699 ticks2 = new Array(n = r1 - r0 + 1);
700 while (++i2 < n)
701 ticks2[i2] = (r0 + i2) / step;
702 }
703 if (reverse)
704 ticks2.reverse();
705 return ticks2;
706 }
707 function tickIncrement(start2, stop, count) {
708 var step = (stop - start2) / Math.max(0, count), power = Math.floor(Math.log(step) / Math.LN10), error = step / Math.pow(10, power);
709 return power >= 0 ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power) : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);
710 }
711 function tickStep(start2, stop, count) {
712 var step0 = Math.abs(stop - start2) / Math.max(0, count), step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)), error = step0 / step1;
713 if (error >= e10)
714 step1 *= 10;
715 else if (error >= e5)
716 step1 *= 5;
717 else if (error >= e2)
718 step1 *= 2;
719 return stop < start2 ? -step1 : step1;
720 }
721 function max$2(values2, valueof) {
722 let max2;
723 if (valueof === void 0) {
724 for (const value of values2) {
725 if (value != null && (max2 < value || max2 === void 0 && value >= value)) {
726 max2 = value;
727 }
728 }
729 } else {
730 let index2 = -1;
731 for (let value of values2) {
732 if ((value = valueof(value, ++index2, values2)) != null && (max2 < value || max2 === void 0 && value >= value)) {
733 max2 = value;
734 }
735 }
736 }
737 return max2;
738 }
739 function min$2(values2, valueof) {
740 let min2;
741 if (valueof === void 0) {
742 for (const value of values2) {
743 if (value != null && (min2 > value || min2 === void 0 && value >= value)) {
744 min2 = value;
745 }
746 }
747 } else {
748 let index2 = -1;
749 for (let value of values2) {
750 if ((value = valueof(value, ++index2, values2)) != null && (min2 > value || min2 === void 0 && value >= value)) {
751 min2 = value;
752 }
753 }
754 }
755 return min2;
756 }
757 function identity$5(x2) {
758 return x2;
759 }
760 var top = 1, right = 2, bottom = 3, left = 4, epsilon$2 = 1e-6;
761 function translateX(x2) {
762 return "translate(" + x2 + ",0)";
763 }
764 function translateY(y2) {
765 return "translate(0," + y2 + ")";
766 }
767 function number$2(scale) {
768 return (d) => +scale(d);
769 }
770 function center(scale, offset) {
771 offset = Math.max(0, scale.bandwidth() - offset * 2) / 2;
772 if (scale.round())
773 offset = Math.round(offset);
774 return (d) => +scale(d) + offset;
775 }
776 function entering() {
777 return !this.__axis;
778 }
779 function axis(orient, scale) {
780 var tickArguments = [], tickValues = null, tickFormat2 = null, tickSizeInner = 6, tickSizeOuter = 6, tickPadding = 3, offset = typeof window !== "undefined" && window.devicePixelRatio > 1 ? 0 : 0.5, k = orient === top || orient === left ? -1 : 1, x2 = orient === left || orient === right ? "x" : "y", transform = orient === top || orient === bottom ? translateX : translateY;
781 function axis2(context) {
782 var values2 = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments) : scale.domain() : tickValues, format2 = tickFormat2 == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments) : identity$5 : tickFormat2, spacing = Math.max(tickSizeInner, 0) + tickPadding, range2 = scale.range(), range0 = +range2[0] + offset, range1 = +range2[range2.length - 1] + offset, position2 = (scale.bandwidth ? center : number$2)(scale.copy(), offset), selection2 = context.selection ? context.selection() : context, path2 = selection2.selectAll(".domain").data([null]), tick = selection2.selectAll(".tick").data(values2, scale).order(), tickExit = tick.exit(), tickEnter = tick.enter().append("g").attr("class", "tick"), line2 = tick.select("line"), text2 = tick.select("text");
783 path2 = path2.merge(path2.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "currentColor"));
784 tick = tick.merge(tickEnter);
785 line2 = line2.merge(tickEnter.append("line").attr("stroke", "currentColor").attr(x2 + "2", k * tickSizeInner));
786 text2 = text2.merge(tickEnter.append("text").attr("fill", "currentColor").attr(x2, k * spacing).attr("dy", orient === top ? "0em" : orient === bottom ? "0.71em" : "0.32em"));
787 if (context !== selection2) {
788 path2 = path2.transition(context);
789 tick = tick.transition(context);
790 line2 = line2.transition(context);
791 text2 = text2.transition(context);
792 tickExit = tickExit.transition(context).attr("opacity", epsilon$2).attr("transform", function(d) {
793 return isFinite(d = position2(d)) ? transform(d + offset) : this.getAttribute("transform");
794 });
795 tickEnter.attr("opacity", epsilon$2).attr("transform", function(d) {
796 var p = this.parentNode.__axis;
797 return transform((p && isFinite(p = p(d)) ? p : position2(d)) + offset);
798 });
799 }
800 tickExit.remove();
801 path2.attr("d", orient === left || orient === right ? tickSizeOuter ? "M" + k * tickSizeOuter + "," + range0 + "H" + offset + "V" + range1 + "H" + k * tickSizeOuter : "M" + offset + "," + range0 + "V" + range1 : tickSizeOuter ? "M" + range0 + "," + k * tickSizeOuter + "V" + offset + "H" + range1 + "V" + k * tickSizeOuter : "M" + range0 + "," + offset + "H" + range1);
802 tick.attr("opacity", 1).attr("transform", function(d) {
803 return transform(position2(d) + offset);
804 });
805 line2.attr(x2 + "2", k * tickSizeInner);
806 text2.attr(x2, k * spacing).text(format2);
807 selection2.filter(entering).attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr("text-anchor", orient === right ? "start" : orient === left ? "end" : "middle");
808 selection2.each(function() {
809 this.__axis = position2;
810 });
811 }
812 axis2.scale = function(_2) {
813 return arguments.length ? (scale = _2, axis2) : scale;
814 };
815 axis2.ticks = function() {
816 return tickArguments = Array.from(arguments), axis2;
817 };
818 axis2.tickArguments = function(_2) {
819 return arguments.length ? (tickArguments = _2 == null ? [] : Array.from(_2), axis2) : tickArguments.slice();
820 };
821 axis2.tickValues = function(_2) {
822 return arguments.length ? (tickValues = _2 == null ? null : Array.from(_2), axis2) : tickValues && tickValues.slice();
823 };
824 axis2.tickFormat = function(_2) {
825 return arguments.length ? (tickFormat2 = _2, axis2) : tickFormat2;
826 };
827 axis2.tickSize = function(_2) {
828 return arguments.length ? (tickSizeInner = tickSizeOuter = +_2, axis2) : tickSizeInner;
829 };
830 axis2.tickSizeInner = function(_2) {
831 return arguments.length ? (tickSizeInner = +_2, axis2) : tickSizeInner;
832 };
833 axis2.tickSizeOuter = function(_2) {
834 return arguments.length ? (tickSizeOuter = +_2, axis2) : tickSizeOuter;
835 };
836 axis2.tickPadding = function(_2) {
837 return arguments.length ? (tickPadding = +_2, axis2) : tickPadding;
838 };
839 axis2.offset = function(_2) {
840 return arguments.length ? (offset = +_2, axis2) : offset;
841 };
842 return axis2;
843 }
844 function axisTop(scale) {
845 return axis(top, scale);
846 }
847 function axisBottom(scale) {
848 return axis(bottom, scale);
849 }
850 var noop$2 = { value: () => {
851 } };
852 function dispatch() {
853 for (var i2 = 0, n = arguments.length, _2 = {}, t4; i2 < n; ++i2) {
854 if (!(t4 = arguments[i2] + "") || t4 in _2 || /[\s.]/.test(t4))
855 throw new Error("illegal type: " + t4);
856 _2[t4] = [];
857 }
858 return new Dispatch(_2);
859 }
860 function Dispatch(_2) {
861 this._ = _2;
862 }
863 function parseTypenames$1(typenames, types) {
864 return typenames.trim().split(/^|\s+/).map(function(t4) {
865 var name2 = "", i2 = t4.indexOf(".");
866 if (i2 >= 0)
867 name2 = t4.slice(i2 + 1), t4 = t4.slice(0, i2);
868 if (t4 && !types.hasOwnProperty(t4))
869 throw new Error("unknown type: " + t4);
870 return { type: t4, name: name2 };
871 });
872 }
873 Dispatch.prototype = dispatch.prototype = {
874 constructor: Dispatch,
875 on: function(typename, callback) {
876 var _2 = this._, T = parseTypenames$1(typename + "", _2), t4, i2 = -1, n = T.length;
877 if (arguments.length < 2) {
878 while (++i2 < n)
879 if ((t4 = (typename = T[i2]).type) && (t4 = get$3(_2[t4], typename.name)))
880 return t4;
881 return;
882 }
883 if (callback != null && typeof callback !== "function")
884 throw new Error("invalid callback: " + callback);
885 while (++i2 < n) {
886 if (t4 = (typename = T[i2]).type)
887 _2[t4] = set$3(_2[t4], typename.name, callback);
888 else if (callback == null)
889 for (t4 in _2)
890 _2[t4] = set$3(_2[t4], typename.name, null);
891 }
892 return this;
893 },
894 copy: function() {
895 var copy2 = {}, _2 = this._;
896 for (var t4 in _2)
897 copy2[t4] = _2[t4].slice();
898 return new Dispatch(copy2);
899 },
900 call: function(type2, that) {
901 if ((n = arguments.length - 2) > 0)
902 for (var args = new Array(n), i2 = 0, n, t4; i2 < n; ++i2)
903 args[i2] = arguments[i2 + 2];
904 if (!this._.hasOwnProperty(type2))
905 throw new Error("unknown type: " + type2);
906 for (t4 = this._[type2], i2 = 0, n = t4.length; i2 < n; ++i2)
907 t4[i2].value.apply(that, args);
908 },
909 apply: function(type2, that, args) {
910 if (!this._.hasOwnProperty(type2))
911 throw new Error("unknown type: " + type2);
912 for (var t4 = this._[type2], i2 = 0, n = t4.length; i2 < n; ++i2)
913 t4[i2].value.apply(that, args);
914 }
915 };
916 function get$3(type2, name2) {
917 for (var i2 = 0, n = type2.length, c2; i2 < n; ++i2) {
918 if ((c2 = type2[i2]).name === name2) {
919 return c2.value;
920 }
921 }
922 }
923 function set$3(type2, name2, callback) {
924 for (var i2 = 0, n = type2.length; i2 < n; ++i2) {
925 if (type2[i2].name === name2) {
926 type2[i2] = noop$2, type2 = type2.slice(0, i2).concat(type2.slice(i2 + 1));
927 break;
928 }
929 }
930 if (callback != null)
931 type2.push({ name: name2, value: callback });
932 return type2;
933 }
934 var xhtml = "http://www.w3.org/1999/xhtml";
935 const namespaces$1 = {
936 svg: "http://www.w3.org/2000/svg",
937 xhtml,
938 xlink: "http://www.w3.org/1999/xlink",
939 xml: "http://www.w3.org/XML/1998/namespace",
940 xmlns: "http://www.w3.org/2000/xmlns/"
941 };
942 function namespace(name2) {
943 var prefix = name2 += "", i2 = prefix.indexOf(":");
944 if (i2 >= 0 && (prefix = name2.slice(0, i2)) !== "xmlns")
945 name2 = name2.slice(i2 + 1);
946 return namespaces$1.hasOwnProperty(prefix) ? { space: namespaces$1[prefix], local: name2 } : name2;
947 }
948 function creatorInherit(name2) {
949 return function() {
950 var document2 = this.ownerDocument, uri = this.namespaceURI;
951 return uri === xhtml && document2.documentElement.namespaceURI === xhtml ? document2.createElement(name2) : document2.createElementNS(uri, name2);
952 };
953 }
954 function creatorFixed(fullname) {
955 return function() {
956 return this.ownerDocument.createElementNS(fullname.space, fullname.local);
957 };
958 }
959 function creator(name2) {
960 var fullname = namespace(name2);
961 return (fullname.local ? creatorFixed : creatorInherit)(fullname);
962 }
963 function none() {
964 }
965 function selector(selector2) {
966 return selector2 == null ? none : function() {
967 return this.querySelector(selector2);
968 };
969 }
970 function selection_select(select2) {
971 if (typeof select2 !== "function")
972 select2 = selector(select2);
973 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
974 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node2, subnode, i2 = 0; i2 < n; ++i2) {
975 if ((node2 = group[i2]) && (subnode = select2.call(node2, node2.__data__, i2, group))) {
976 if ("__data__" in node2)
977 subnode.__data__ = node2.__data__;
978 subgroup[i2] = subnode;
979 }
980 }
981 }
982 return new Selection$1(subgroups, this._parents);
983 }
984 function array$1(x2) {
985 return x2 == null ? [] : Array.isArray(x2) ? x2 : Array.from(x2);
986 }
987 function empty() {
988 return [];
989 }
990 function selectorAll(selector2) {
991 return selector2 == null ? empty : function() {
992 return this.querySelectorAll(selector2);
993 };
994 }
995 function arrayAll(select2) {
996 return function() {
997 return array$1(select2.apply(this, arguments));
998 };
999 }
1000 function selection_selectAll(select2) {
1001 if (typeof select2 === "function")
1002 select2 = arrayAll(select2);
1003 else
1004 select2 = selectorAll(select2);
1005 for (var groups = this._groups, m = groups.length, subgroups = [], parents2 = [], j = 0; j < m; ++j) {
1006 for (var group = groups[j], n = group.length, node2, i2 = 0; i2 < n; ++i2) {
1007 if (node2 = group[i2]) {
1008 subgroups.push(select2.call(node2, node2.__data__, i2, group));
1009 parents2.push(node2);
1010 }
1011 }
1012 }
1013 return new Selection$1(subgroups, parents2);
1014 }
1015 function matcher(selector2) {
1016 return function() {
1017 return this.matches(selector2);
1018 };
1019 }
1020 function childMatcher(selector2) {
1021 return function(node2) {
1022 return node2.matches(selector2);
1023 };
1024 }
1025 var find$2 = Array.prototype.find;
1026 function childFind(match) {
1027 return function() {
1028 return find$2.call(this.children, match);
1029 };
1030 }
1031 function childFirst() {
1032 return this.firstElementChild;
1033 }
1034 function selection_selectChild(match) {
1035 return this.select(match == null ? childFirst : childFind(typeof match === "function" ? match : childMatcher(match)));
1036 }
1037 var filter$1 = Array.prototype.filter;
1038 function children() {
1039 return Array.from(this.children);
1040 }
1041 function childrenFilter(match) {
1042 return function() {
1043 return filter$1.call(this.children, match);
1044 };
1045 }
1046 function selection_selectChildren(match) {
1047 return this.selectAll(match == null ? children : childrenFilter(typeof match === "function" ? match : childMatcher(match)));
1048 }
1049 function selection_filter(match) {
1050 if (typeof match !== "function")
1051 match = matcher(match);
1052 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
1053 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node2, i2 = 0; i2 < n; ++i2) {
1054 if ((node2 = group[i2]) && match.call(node2, node2.__data__, i2, group)) {
1055 subgroup.push(node2);
1056 }
1057 }
1058 }
1059 return new Selection$1(subgroups, this._parents);
1060 }
1061 function sparse(update2) {
1062 return new Array(update2.length);
1063 }
1064 function selection_enter() {
1065 return new Selection$1(this._enter || this._groups.map(sparse), this._parents);
1066 }
1067 function EnterNode(parent, datum2) {
1068 this.ownerDocument = parent.ownerDocument;
1069 this.namespaceURI = parent.namespaceURI;
1070 this._next = null;
1071 this._parent = parent;
1072 this.__data__ = datum2;
1073 }
1074 EnterNode.prototype = {
1075 constructor: EnterNode,
1076 appendChild: function(child) {
1077 return this._parent.insertBefore(child, this._next);
1078 },
1079 insertBefore: function(child, next2) {
1080 return this._parent.insertBefore(child, next2);
1081 },
1082 querySelector: function(selector2) {
1083 return this._parent.querySelector(selector2);
1084 },
1085 querySelectorAll: function(selector2) {
1086 return this._parent.querySelectorAll(selector2);
1087 }
1088 };
1089 function constant$3(x2) {
1090 return function() {
1091 return x2;
1092 };
1093 }
1094 function bindIndex(parent, group, enter2, update2, exit2, data) {
1095 var i2 = 0, node2, groupLength = group.length, dataLength = data.length;
1096 for (; i2 < dataLength; ++i2) {
1097 if (node2 = group[i2]) {
1098 node2.__data__ = data[i2];
1099 update2[i2] = node2;
1100 } else {
1101 enter2[i2] = new EnterNode(parent, data[i2]);
1102 }
1103 }
1104 for (; i2 < groupLength; ++i2) {
1105 if (node2 = group[i2]) {
1106 exit2[i2] = node2;
1107 }
1108 }
1109 }
1110 function bindKey(parent, group, enter2, update2, exit2, data, key) {
1111 var i2, node2, nodeByKeyValue = /* @__PURE__ */ new Map(), groupLength = group.length, dataLength = data.length, keyValues = new Array(groupLength), keyValue;
1112 for (i2 = 0; i2 < groupLength; ++i2) {
1113 if (node2 = group[i2]) {
1114 keyValues[i2] = keyValue = key.call(node2, node2.__data__, i2, group) + "";
1115 if (nodeByKeyValue.has(keyValue)) {
1116 exit2[i2] = node2;
1117 } else {
1118 nodeByKeyValue.set(keyValue, node2);
1119 }
1120 }
1121 }
1122 for (i2 = 0; i2 < dataLength; ++i2) {
1123 keyValue = key.call(parent, data[i2], i2, data) + "";
1124 if (node2 = nodeByKeyValue.get(keyValue)) {
1125 update2[i2] = node2;
1126 node2.__data__ = data[i2];
1127 nodeByKeyValue.delete(keyValue);
1128 } else {
1129 enter2[i2] = new EnterNode(parent, data[i2]);
1130 }
1131 }
1132 for (i2 = 0; i2 < groupLength; ++i2) {
1133 if ((node2 = group[i2]) && nodeByKeyValue.get(keyValues[i2]) === node2) {
1134 exit2[i2] = node2;
1135 }
1136 }
1137 }
1138 function datum(node2) {
1139 return node2.__data__;
1140 }
1141 function selection_data(value, key) {
1142 if (!arguments.length)
1143 return Array.from(this, datum);
1144 var bind = key ? bindKey : bindIndex, parents2 = this._parents, groups = this._groups;
1145 if (typeof value !== "function")
1146 value = constant$3(value);
1147 for (var m = groups.length, update2 = new Array(m), enter2 = new Array(m), exit2 = new Array(m), j = 0; j < m; ++j) {
1148 var parent = parents2[j], group = groups[j], groupLength = group.length, data = arraylike(value.call(parent, parent && parent.__data__, j, parents2)), dataLength = data.length, enterGroup = enter2[j] = new Array(dataLength), updateGroup = update2[j] = new Array(dataLength), exitGroup = exit2[j] = new Array(groupLength);
1149 bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
1150 for (var i0 = 0, i1 = 0, previous2, next2; i0 < dataLength; ++i0) {
1151 if (previous2 = enterGroup[i0]) {
1152 if (i0 >= i1)
1153 i1 = i0 + 1;
1154 while (!(next2 = updateGroup[i1]) && ++i1 < dataLength)
1155 ;
1156 previous2._next = next2 || null;
1157 }
1158 }
1159 }
1160 update2 = new Selection$1(update2, parents2);
1161 update2._enter = enter2;
1162 update2._exit = exit2;
1163 return update2;
1164 }
1165 function arraylike(data) {
1166 return typeof data === "object" && "length" in data ? data : Array.from(data);
1167 }
1168 function selection_exit() {
1169 return new Selection$1(this._exit || this._groups.map(sparse), this._parents);
1170 }
1171 function selection_join(onenter, onupdate, onexit) {
1172 var enter2 = this.enter(), update2 = this, exit2 = this.exit();
1173 if (typeof onenter === "function") {
1174 enter2 = onenter(enter2);
1175 if (enter2)
1176 enter2 = enter2.selection();
1177 } else {
1178 enter2 = enter2.append(onenter + "");
1179 }
1180 if (onupdate != null) {
1181 update2 = onupdate(update2);
1182 if (update2)
1183 update2 = update2.selection();
1184 }
1185 if (onexit == null)
1186 exit2.remove();
1187 else
1188 onexit(exit2);
1189 return enter2 && update2 ? enter2.merge(update2).order() : update2;
1190 }
1191 function selection_merge(context) {
1192 var selection2 = context.selection ? context.selection() : context;
1193 for (var groups0 = this._groups, groups1 = selection2._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
1194 for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge2 = merges[j] = new Array(n), node2, i2 = 0; i2 < n; ++i2) {
1195 if (node2 = group0[i2] || group1[i2]) {
1196 merge2[i2] = node2;
1197 }
1198 }
1199 }
1200 for (; j < m0; ++j) {
1201 merges[j] = groups0[j];
1202 }
1203 return new Selection$1(merges, this._parents);
1204 }
1205 function selection_order() {
1206 for (var groups = this._groups, j = -1, m = groups.length; ++j < m; ) {
1207 for (var group = groups[j], i2 = group.length - 1, next2 = group[i2], node2; --i2 >= 0; ) {
1208 if (node2 = group[i2]) {
1209 if (next2 && node2.compareDocumentPosition(next2) ^ 4)
1210 next2.parentNode.insertBefore(node2, next2);
1211 next2 = node2;
1212 }
1213 }
1214 }
1215 return this;
1216 }
1217 function selection_sort(compare) {
1218 if (!compare)
1219 compare = ascending;
1220 function compareNode(a, b) {
1221 return a && b ? compare(a.__data__, b.__data__) : !a - !b;
1222 }
1223 for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
1224 for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node2, i2 = 0; i2 < n; ++i2) {
1225 if (node2 = group[i2]) {
1226 sortgroup[i2] = node2;
1227 }
1228 }
1229 sortgroup.sort(compareNode);
1230 }
1231 return new Selection$1(sortgroups, this._parents).order();
1232 }
1233 function ascending(a, b) {
1234 return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
1235 }
1236 function selection_call() {
1237 var callback = arguments[0];
1238 arguments[0] = this;
1239 callback.apply(null, arguments);
1240 return this;
1241 }
1242 function selection_nodes() {
1243 return Array.from(this);
1244 }
1245 function selection_node() {
1246 for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
1247 for (var group = groups[j], i2 = 0, n = group.length; i2 < n; ++i2) {
1248 var node2 = group[i2];
1249 if (node2)
1250 return node2;
1251 }
1252 }
1253 return null;
1254 }
1255 function selection_size() {
1256 let size2 = 0;
1257 for (const node2 of this)
1258 ++size2;
1259 return size2;
1260 }
1261 function selection_empty() {
1262 return !this.node();
1263 }
1264 function selection_each(callback) {
1265 for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
1266 for (var group = groups[j], i2 = 0, n = group.length, node2; i2 < n; ++i2) {
1267 if (node2 = group[i2])
1268 callback.call(node2, node2.__data__, i2, group);
1269 }
1270 }
1271 return this;
1272 }
1273 function attrRemove$1(name2) {
1274 return function() {
1275 this.removeAttribute(name2);
1276 };
1277 }
1278 function attrRemoveNS$1(fullname) {
1279 return function() {
1280 this.removeAttributeNS(fullname.space, fullname.local);
1281 };
1282 }
1283 function attrConstant$1(name2, value) {
1284 return function() {
1285 this.setAttribute(name2, value);
1286 };
1287 }
1288 function attrConstantNS$1(fullname, value) {
1289 return function() {
1290 this.setAttributeNS(fullname.space, fullname.local, value);
1291 };
1292 }
1293 function attrFunction$1(name2, value) {
1294 return function() {
1295 var v = value.apply(this, arguments);
1296 if (v == null)
1297 this.removeAttribute(name2);
1298 else
1299 this.setAttribute(name2, v);
1300 };
1301 }
1302 function attrFunctionNS$1(fullname, value) {
1303 return function() {
1304 var v = value.apply(this, arguments);
1305 if (v == null)
1306 this.removeAttributeNS(fullname.space, fullname.local);
1307 else
1308 this.setAttributeNS(fullname.space, fullname.local, v);
1309 };
1310 }
1311 function selection_attr(name2, value) {
1312 var fullname = namespace(name2);
1313 if (arguments.length < 2) {
1314 var node2 = this.node();
1315 return fullname.local ? node2.getAttributeNS(fullname.space, fullname.local) : node2.getAttribute(fullname);
1316 }
1317 return this.each((value == null ? fullname.local ? attrRemoveNS$1 : attrRemove$1 : typeof value === "function" ? fullname.local ? attrFunctionNS$1 : attrFunction$1 : fullname.local ? attrConstantNS$1 : attrConstant$1)(fullname, value));
1318 }
1319 function defaultView(node2) {
1320 return node2.ownerDocument && node2.ownerDocument.defaultView || node2.document && node2 || node2.defaultView;
1321 }
1322 function styleRemove$1(name2) {
1323 return function() {
1324 this.style.removeProperty(name2);
1325 };
1326 }
1327 function styleConstant$1(name2, value, priority) {
1328 return function() {
1329 this.style.setProperty(name2, value, priority);
1330 };
1331 }
1332 function styleFunction$1(name2, value, priority) {
1333 return function() {
1334 var v = value.apply(this, arguments);
1335 if (v == null)
1336 this.style.removeProperty(name2);
1337 else
1338 this.style.setProperty(name2, v, priority);
1339 };
1340 }
1341 function selection_style(name2, value, priority) {
1342 return arguments.length > 1 ? this.each((value == null ? styleRemove$1 : typeof value === "function" ? styleFunction$1 : styleConstant$1)(name2, value, priority == null ? "" : priority)) : styleValue(this.node(), name2);
1343 }
1344 function styleValue(node2, name2) {
1345 return node2.style.getPropertyValue(name2) || defaultView(node2).getComputedStyle(node2, null).getPropertyValue(name2);
1346 }
1347 function propertyRemove(name2) {
1348 return function() {
1349 delete this[name2];
1350 };
1351 }
1352 function propertyConstant(name2, value) {
1353 return function() {
1354 this[name2] = value;
1355 };
1356 }
1357 function propertyFunction(name2, value) {
1358 return function() {
1359 var v = value.apply(this, arguments);
1360 if (v == null)
1361 delete this[name2];
1362 else
1363 this[name2] = v;
1364 };
1365 }
1366 function selection_property(name2, value) {
1367 return arguments.length > 1 ? this.each((value == null ? propertyRemove : typeof value === "function" ? propertyFunction : propertyConstant)(name2, value)) : this.node()[name2];
1368 }
1369 function classArray(string2) {
1370 return string2.trim().split(/^|\s+/);
1371 }
1372 function classList(node2) {
1373 return node2.classList || new ClassList(node2);
1374 }
1375 function ClassList(node2) {
1376 this._node = node2;
1377 this._names = classArray(node2.getAttribute("class") || "");
1378 }
1379 ClassList.prototype = {
1380 add: function(name2) {
1381 var i2 = this._names.indexOf(name2);
1382 if (i2 < 0) {
1383 this._names.push(name2);
1384 this._node.setAttribute("class", this._names.join(" "));
1385 }
1386 },
1387 remove: function(name2) {
1388 var i2 = this._names.indexOf(name2);
1389 if (i2 >= 0) {
1390 this._names.splice(i2, 1);
1391 this._node.setAttribute("class", this._names.join(" "));
1392 }
1393 },
1394 contains: function(name2) {
1395 return this._names.indexOf(name2) >= 0;
1396 }
1397 };
1398 function classedAdd(node2, names) {
1399 var list2 = classList(node2), i2 = -1, n = names.length;
1400 while (++i2 < n)
1401 list2.add(names[i2]);
1402 }
1403 function classedRemove(node2, names) {
1404 var list2 = classList(node2), i2 = -1, n = names.length;
1405 while (++i2 < n)
1406 list2.remove(names[i2]);
1407 }
1408 function classedTrue(names) {
1409 return function() {
1410 classedAdd(this, names);
1411 };
1412 }
1413 function classedFalse(names) {
1414 return function() {
1415 classedRemove(this, names);
1416 };
1417 }
1418 function classedFunction(names, value) {
1419 return function() {
1420 (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
1421 };
1422 }
1423 function selection_classed(name2, value) {
1424 var names = classArray(name2 + "");
1425 if (arguments.length < 2) {
1426 var list2 = classList(this.node()), i2 = -1, n = names.length;
1427 while (++i2 < n)
1428 if (!list2.contains(names[i2]))
1429 return false;
1430 return true;
1431 }
1432 return this.each((typeof value === "function" ? classedFunction : value ? classedTrue : classedFalse)(names, value));
1433 }
1434 function textRemove() {
1435 this.textContent = "";
1436 }
1437 function textConstant$1(value) {
1438 return function() {
1439 this.textContent = value;
1440 };
1441 }
1442 function textFunction$1(value) {
1443 return function() {
1444 var v = value.apply(this, arguments);
1445 this.textContent = v == null ? "" : v;
1446 };
1447 }
1448 function selection_text(value) {
1449 return arguments.length ? this.each(value == null ? textRemove : (typeof value === "function" ? textFunction$1 : textConstant$1)(value)) : this.node().textContent;
1450 }
1451 function htmlRemove() {
1452 this.innerHTML = "";
1453 }
1454 function htmlConstant(value) {
1455 return function() {
1456 this.innerHTML = value;
1457 };
1458 }
1459 function htmlFunction(value) {
1460 return function() {
1461 var v = value.apply(this, arguments);
1462 this.innerHTML = v == null ? "" : v;
1463 };
1464 }
1465 function selection_html(value) {
1466 return arguments.length ? this.each(value == null ? htmlRemove : (typeof value === "function" ? htmlFunction : htmlConstant)(value)) : this.node().innerHTML;
1467 }
1468 function raise() {
1469 if (this.nextSibling)
1470 this.parentNode.appendChild(this);
1471 }
1472 function selection_raise() {
1473 return this.each(raise);
1474 }
1475 function lower() {
1476 if (this.previousSibling)
1477 this.parentNode.insertBefore(this, this.parentNode.firstChild);
1478 }
1479 function selection_lower() {
1480 return this.each(lower);
1481 }
1482 function selection_append(name2) {
1483 var create2 = typeof name2 === "function" ? name2 : creator(name2);
1484 return this.select(function() {
1485 return this.appendChild(create2.apply(this, arguments));
1486 });
1487 }
1488 function constantNull() {
1489 return null;
1490 }
1491 function selection_insert(name2, before) {
1492 var create2 = typeof name2 === "function" ? name2 : creator(name2), select2 = before == null ? constantNull : typeof before === "function" ? before : selector(before);
1493 return this.select(function() {
1494 return this.insertBefore(create2.apply(this, arguments), select2.apply(this, arguments) || null);
1495 });
1496 }
1497 function remove() {
1498 var parent = this.parentNode;
1499 if (parent)
1500 parent.removeChild(this);
1501 }
1502 function selection_remove() {
1503 return this.each(remove);
1504 }
1505 function selection_cloneShallow() {
1506 var clone2 = this.cloneNode(false), parent = this.parentNode;
1507 return parent ? parent.insertBefore(clone2, this.nextSibling) : clone2;
1508 }
1509 function selection_cloneDeep() {
1510 var clone2 = this.cloneNode(true), parent = this.parentNode;
1511 return parent ? parent.insertBefore(clone2, this.nextSibling) : clone2;
1512 }
1513 function selection_clone(deep) {
1514 return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
1515 }
1516 function selection_datum(value) {
1517 return arguments.length ? this.property("__data__", value) : this.node().__data__;
1518 }
1519 function contextListener(listener) {
1520 return function(event) {
1521 listener.call(this, event, this.__data__);
1522 };
1523 }
1524 function parseTypenames(typenames) {
1525 return typenames.trim().split(/^|\s+/).map(function(t4) {
1526 var name2 = "", i2 = t4.indexOf(".");
1527 if (i2 >= 0)
1528 name2 = t4.slice(i2 + 1), t4 = t4.slice(0, i2);
1529 return { type: t4, name: name2 };
1530 });
1531 }
1532 function onRemove(typename) {
1533 return function() {
1534 var on = this.__on;
1535 if (!on)
1536 return;
1537 for (var j = 0, i2 = -1, m = on.length, o; j < m; ++j) {
1538 if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
1539 this.removeEventListener(o.type, o.listener, o.options);
1540 } else {
1541 on[++i2] = o;
1542 }
1543 }
1544 if (++i2)
1545 on.length = i2;
1546 else
1547 delete this.__on;
1548 };
1549 }
1550 function onAdd(typename, value, options2) {
1551 return function() {
1552 var on = this.__on, o, listener = contextListener(value);
1553 if (on)
1554 for (var j = 0, m = on.length; j < m; ++j) {
1555 if ((o = on[j]).type === typename.type && o.name === typename.name) {
1556 this.removeEventListener(o.type, o.listener, o.options);
1557 this.addEventListener(o.type, o.listener = listener, o.options = options2);
1558 o.value = value;
1559 return;
1560 }
1561 }
1562 this.addEventListener(typename.type, listener, options2);
1563 o = { type: typename.type, name: typename.name, value, listener, options: options2 };
1564 if (!on)
1565 this.__on = [o];
1566 else
1567 on.push(o);
1568 };
1569 }
1570 function selection_on(typename, value, options2) {
1571 var typenames = parseTypenames(typename + ""), i2, n = typenames.length, t4;
1572 if (arguments.length < 2) {
1573 var on = this.node().__on;
1574 if (on)
1575 for (var j = 0, m = on.length, o; j < m; ++j) {
1576 for (i2 = 0, o = on[j]; i2 < n; ++i2) {
1577 if ((t4 = typenames[i2]).type === o.type && t4.name === o.name) {
1578 return o.value;
1579 }
1580 }
1581 }
1582 return;
1583 }
1584 on = value ? onAdd : onRemove;
1585 for (i2 = 0; i2 < n; ++i2)
1586 this.each(on(typenames[i2], value, options2));
1587 return this;
1588 }
1589 function dispatchEvent(node2, type2, params) {
1590 var window2 = defaultView(node2), event = window2.CustomEvent;
1591 if (typeof event === "function") {
1592 event = new event(type2, params);
1593 } else {
1594 event = window2.document.createEvent("Event");
1595 if (params)
1596 event.initEvent(type2, params.bubbles, params.cancelable), event.detail = params.detail;
1597 else
1598 event.initEvent(type2, false, false);
1599 }
1600 node2.dispatchEvent(event);
1601 }
1602 function dispatchConstant(type2, params) {
1603 return function() {
1604 return dispatchEvent(this, type2, params);
1605 };
1606 }
1607 function dispatchFunction(type2, params) {
1608 return function() {
1609 return dispatchEvent(this, type2, params.apply(this, arguments));
1610 };
1611 }
1612 function selection_dispatch(type2, params) {
1613 return this.each((typeof params === "function" ? dispatchFunction : dispatchConstant)(type2, params));
1614 }
1615 function* selection_iterator() {
1616 for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
1617 for (var group = groups[j], i2 = 0, n = group.length, node2; i2 < n; ++i2) {
1618 if (node2 = group[i2])
1619 yield node2;
1620 }
1621 }
1622 }
1623 var root$2 = [null];
1624 function Selection$1(groups, parents2) {
1625 this._groups = groups;
1626 this._parents = parents2;
1627 }
1628 function selection() {
1629 return new Selection$1([[document.documentElement]], root$2);
1630 }
1631 function selection_selection() {
1632 return this;
1633 }
1634 Selection$1.prototype = selection.prototype = {
1635 constructor: Selection$1,
1636 select: selection_select,
1637 selectAll: selection_selectAll,
1638 selectChild: selection_selectChild,
1639 selectChildren: selection_selectChildren,
1640 filter: selection_filter,
1641 data: selection_data,
1642 enter: selection_enter,
1643 exit: selection_exit,
1644 join: selection_join,
1645 merge: selection_merge,
1646 selection: selection_selection,
1647 order: selection_order,
1648 sort: selection_sort,
1649 call: selection_call,
1650 nodes: selection_nodes,
1651 node: selection_node,
1652 size: selection_size,
1653 empty: selection_empty,
1654 each: selection_each,
1655 attr: selection_attr,
1656 style: selection_style,
1657 property: selection_property,
1658 classed: selection_classed,
1659 text: selection_text,
1660 html: selection_html,
1661 raise: selection_raise,
1662 lower: selection_lower,
1663 append: selection_append,
1664 insert: selection_insert,
1665 remove: selection_remove,
1666 clone: selection_clone,
1667 datum: selection_datum,
1668 on: selection_on,
1669 dispatch: selection_dispatch,
1670 [Symbol.iterator]: selection_iterator
1671 };
1672 function select(selector2) {
1673 return typeof selector2 === "string" ? new Selection$1([[document.querySelector(selector2)]], [document.documentElement]) : new Selection$1([[selector2]], root$2);
1674 }
1675 function selectAll(selector2) {
1676 return typeof selector2 === "string" ? new Selection$1([document.querySelectorAll(selector2)], [document.documentElement]) : new Selection$1([array$1(selector2)], root$2);
1677 }
1678 function define2(constructor, factory, prototype) {
1679 constructor.prototype = factory.prototype = prototype;
1680 prototype.constructor = constructor;
1681 }
1682 function extend$1(parent, definition2) {
1683 var prototype = Object.create(parent.prototype);
1684 for (var key in definition2)
1685 prototype[key] = definition2[key];
1686 return prototype;
1687 }
1688 function Color$2() {
1689 }
1690 var darker = 0.7;
1691 var brighter = 1 / darker;
1692 var reI = "\\s*([+-]?\\d+)\\s*", reN = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", reP = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", reHex = /^#([0-9a-f]{3,8})$/, reRgbInteger = new RegExp(`^rgb\\(${reI},${reI},${reI}\\)$`), reRgbPercent = new RegExp(`^rgb\\(${reP},${reP},${reP}\\)$`), reRgbaInteger = new RegExp(`^rgba\\(${reI},${reI},${reI},${reN}\\)$`), reRgbaPercent = new RegExp(`^rgba\\(${reP},${reP},${reP},${reN}\\)$`), reHslPercent = new RegExp(`^hsl\\(${reN},${reP},${reP}\\)$`), reHslaPercent = new RegExp(`^hsla\\(${reN},${reP},${reP},${reN}\\)$`);
1693 var named = {
1694 aliceblue: 15792383,
1695 antiquewhite: 16444375,
1696 aqua: 65535,
1697 aquamarine: 8388564,
1698 azure: 15794175,
1699 beige: 16119260,
1700 bisque: 16770244,
1701 black: 0,
1702 blanchedalmond: 16772045,
1703 blue: 255,
1704 blueviolet: 9055202,
1705 brown: 10824234,
1706 burlywood: 14596231,
1707 cadetblue: 6266528,
1708 chartreuse: 8388352,
1709 chocolate: 13789470,
1710 coral: 16744272,
1711 cornflowerblue: 6591981,
1712 cornsilk: 16775388,
1713 crimson: 14423100,
1714 cyan: 65535,
1715 darkblue: 139,
1716 darkcyan: 35723,
1717 darkgoldenrod: 12092939,
1718 darkgray: 11119017,
1719 darkgreen: 25600,
1720 darkgrey: 11119017,
1721 darkkhaki: 12433259,
1722 darkmagenta: 9109643,
1723 darkolivegreen: 5597999,
1724 darkorange: 16747520,
1725 darkorchid: 10040012,
1726 darkred: 9109504,
1727 darksalmon: 15308410,
1728 darkseagreen: 9419919,
1729 darkslateblue: 4734347,
1730 darkslategray: 3100495,
1731 darkslategrey: 3100495,
1732 darkturquoise: 52945,
1733 darkviolet: 9699539,
1734 deeppink: 16716947,
1735 deepskyblue: 49151,
1736 dimgray: 6908265,
1737 dimgrey: 6908265,
1738 dodgerblue: 2003199,
1739 firebrick: 11674146,
1740 floralwhite: 16775920,
1741 forestgreen: 2263842,
1742 fuchsia: 16711935,
1743 gainsboro: 14474460,
1744 ghostwhite: 16316671,
1745 gold: 16766720,
1746 goldenrod: 14329120,
1747 gray: 8421504,
1748 green: 32768,
1749 greenyellow: 11403055,
1750 grey: 8421504,
1751 honeydew: 15794160,
1752 hotpink: 16738740,
1753 indianred: 13458524,
1754 indigo: 4915330,
1755 ivory: 16777200,
1756 khaki: 15787660,
1757 lavender: 15132410,
1758 lavenderblush: 16773365,
1759 lawngreen: 8190976,
1760 lemonchiffon: 16775885,
1761 lightblue: 11393254,
1762 lightcoral: 15761536,
1763 lightcyan: 14745599,
1764 lightgoldenrodyellow: 16448210,
1765 lightgray: 13882323,
1766 lightgreen: 9498256,
1767 lightgrey: 13882323,
1768 lightpink: 16758465,
1769 lightsalmon: 16752762,
1770 lightseagreen: 2142890,
1771 lightskyblue: 8900346,
1772 lightslategray: 7833753,
1773 lightslategrey: 7833753,
1774 lightsteelblue: 11584734,
1775 lightyellow: 16777184,
1776 lime: 65280,
1777 limegreen: 3329330,
1778 linen: 16445670,
1779 magenta: 16711935,
1780 maroon: 8388608,
1781 mediumaquamarine: 6737322,
1782 mediumblue: 205,
1783 mediumorchid: 12211667,
1784 mediumpurple: 9662683,
1785 mediumseagreen: 3978097,
1786 mediumslateblue: 8087790,
1787 mediumspringgreen: 64154,
1788 mediumturquoise: 4772300,
1789 mediumvioletred: 13047173,
1790 midnightblue: 1644912,
1791 mintcream: 16121850,
1792 mistyrose: 16770273,
1793 moccasin: 16770229,
1794 navajowhite: 16768685,
1795 navy: 128,
1796 oldlace: 16643558,
1797 olive: 8421376,
1798 olivedrab: 7048739,
1799 orange: 16753920,
1800 orangered: 16729344,
1801 orchid: 14315734,
1802 palegoldenrod: 15657130,
1803 palegreen: 10025880,
1804 paleturquoise: 11529966,
1805 palevioletred: 14381203,
1806 papayawhip: 16773077,
1807 peachpuff: 16767673,
1808 peru: 13468991,
1809 pink: 16761035,
1810 plum: 14524637,
1811 powderblue: 11591910,
1812 purple: 8388736,
1813 rebeccapurple: 6697881,
1814 red: 16711680,
1815 rosybrown: 12357519,
1816 royalblue: 4286945,
1817 saddlebrown: 9127187,
1818 salmon: 16416882,
1819 sandybrown: 16032864,
1820 seagreen: 3050327,
1821 seashell: 16774638,
1822 sienna: 10506797,
1823 silver: 12632256,
1824 skyblue: 8900331,
1825 slateblue: 6970061,
1826 slategray: 7372944,
1827 slategrey: 7372944,
1828 snow: 16775930,
1829 springgreen: 65407,
1830 steelblue: 4620980,
1831 tan: 13808780,
1832 teal: 32896,
1833 thistle: 14204888,
1834 tomato: 16737095,
1835 turquoise: 4251856,
1836 violet: 15631086,
1837 wheat: 16113331,
1838 white: 16777215,
1839 whitesmoke: 16119285,
1840 yellow: 16776960,
1841 yellowgreen: 10145074
1842 };
1843 define2(Color$2, color, {
1844 copy(channels2) {
1845 return Object.assign(new this.constructor(), this, channels2);
1846 },
1847 displayable() {
1848 return this.rgb().displayable();
1849 },
1850 hex: color_formatHex,
1851 // Deprecated! Use color.formatHex.
1852 formatHex: color_formatHex,
1853 formatHex8: color_formatHex8,
1854 formatHsl: color_formatHsl,
1855 formatRgb: color_formatRgb,
1856 toString: color_formatRgb
1857 });
1858 function color_formatHex() {
1859 return this.rgb().formatHex();
1860 }
1861 function color_formatHex8() {
1862 return this.rgb().formatHex8();
1863 }
1864 function color_formatHsl() {
1865 return hslConvert(this).formatHsl();
1866 }
1867 function color_formatRgb() {
1868 return this.rgb().formatRgb();
1869 }
1870 function color(format2) {
1871 var m, l;
1872 format2 = (format2 + "").trim().toLowerCase();
1873 return (m = reHex.exec(format2)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) : l === 3 ? new Rgb(m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, (m & 15) << 4 | m & 15, 1) : l === 8 ? rgba$2(m >> 24 & 255, m >> 16 & 255, m >> 8 & 255, (m & 255) / 255) : l === 4 ? rgba$2(m >> 12 & 15 | m >> 8 & 240, m >> 8 & 15 | m >> 4 & 240, m >> 4 & 15 | m & 240, ((m & 15) << 4 | m & 15) / 255) : null) : (m = reRgbInteger.exec(format2)) ? new Rgb(m[1], m[2], m[3], 1) : (m = reRgbPercent.exec(format2)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) : (m = reRgbaInteger.exec(format2)) ? rgba$2(m[1], m[2], m[3], m[4]) : (m = reRgbaPercent.exec(format2)) ? rgba$2(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) : (m = reHslPercent.exec(format2)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) : (m = reHslaPercent.exec(format2)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) : named.hasOwnProperty(format2) ? rgbn(named[format2]) : format2 === "transparent" ? new Rgb(NaN, NaN, NaN, 0) : null;
1874 }
1875 function rgbn(n) {
1876 return new Rgb(n >> 16 & 255, n >> 8 & 255, n & 255, 1);
1877 }
1878 function rgba$2(r, g, b, a) {
1879 if (a <= 0)
1880 r = g = b = NaN;
1881 return new Rgb(r, g, b, a);
1882 }
1883 function rgbConvert(o) {
1884 if (!(o instanceof Color$2))
1885 o = color(o);
1886 if (!o)
1887 return new Rgb();
1888 o = o.rgb();
1889 return new Rgb(o.r, o.g, o.b, o.opacity);
1890 }
1891 function rgb(r, g, b, opacity) {
1892 return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);
1893 }
1894 function Rgb(r, g, b, opacity) {
1895 this.r = +r;
1896 this.g = +g;
1897 this.b = +b;
1898 this.opacity = +opacity;
1899 }
1900 define2(Rgb, rgb, extend$1(Color$2, {
1901 brighter(k) {
1902 k = k == null ? brighter : Math.pow(brighter, k);
1903 return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
1904 },
1905 darker(k) {
1906 k = k == null ? darker : Math.pow(darker, k);
1907 return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);
1908 },
1909 rgb() {
1910 return this;
1911 },
1912 clamp() {
1913 return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));
1914 },
1915 displayable() {
1916 return -0.5 <= this.r && this.r < 255.5 && (-0.5 <= this.g && this.g < 255.5) && (-0.5 <= this.b && this.b < 255.5) && (0 <= this.opacity && this.opacity <= 1);
1917 },
1918 hex: rgb_formatHex,
1919 // Deprecated! Use color.formatHex.
1920 formatHex: rgb_formatHex,
1921 formatHex8: rgb_formatHex8,
1922 formatRgb: rgb_formatRgb,
1923 toString: rgb_formatRgb
1924 }));
1925 function rgb_formatHex() {
1926 return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;
1927 }
1928 function rgb_formatHex8() {
1929 return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
1930 }
1931 function rgb_formatRgb() {
1932 const a = clampa(this.opacity);
1933 return `${a === 1 ? "rgb(" : "rgba("}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? ")" : `, ${a})`}`;
1934 }
1935 function clampa(opacity) {
1936 return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));
1937 }
1938 function clampi(value) {
1939 return Math.max(0, Math.min(255, Math.round(value) || 0));
1940 }
1941 function hex(value) {
1942 value = clampi(value);
1943 return (value < 16 ? "0" : "") + value.toString(16);
1944 }
1945 function hsla(h, s, l, a) {
1946 if (a <= 0)
1947 h = s = l = NaN;
1948 else if (l <= 0 || l >= 1)
1949 h = s = NaN;
1950 else if (s <= 0)
1951 h = NaN;
1952 return new Hsl(h, s, l, a);
1953 }
1954 function hslConvert(o) {
1955 if (o instanceof Hsl)
1956 return new Hsl(o.h, o.s, o.l, o.opacity);
1957 if (!(o instanceof Color$2))
1958 o = color(o);
1959 if (!o)
1960 return new Hsl();
1961 if (o instanceof Hsl)
1962 return o;
1963 o = o.rgb();
1964 var r = o.r / 255, g = o.g / 255, b = o.b / 255, min2 = Math.min(r, g, b), max2 = Math.max(r, g, b), h = NaN, s = max2 - min2, l = (max2 + min2) / 2;
1965 if (s) {
1966 if (r === max2)
1967 h = (g - b) / s + (g < b) * 6;
1968 else if (g === max2)
1969 h = (b - r) / s + 2;
1970 else
1971 h = (r - g) / s + 4;
1972 s /= l < 0.5 ? max2 + min2 : 2 - max2 - min2;
1973 h *= 60;
1974 } else {
1975 s = l > 0 && l < 1 ? 0 : h;
1976 }
1977 return new Hsl(h, s, l, o.opacity);
1978 }
1979 function hsl(h, s, l, opacity) {
1980 return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);
1981 }
1982 function Hsl(h, s, l, opacity) {
1983 this.h = +h;
1984 this.s = +s;
1985 this.l = +l;
1986 this.opacity = +opacity;
1987 }
1988 define2(Hsl, hsl, extend$1(Color$2, {
1989 brighter(k) {
1990 k = k == null ? brighter : Math.pow(brighter, k);
1991 return new Hsl(this.h, this.s, this.l * k, this.opacity);
1992 },
1993 darker(k) {
1994 k = k == null ? darker : Math.pow(darker, k);
1995 return new Hsl(this.h, this.s, this.l * k, this.opacity);
1996 },
1997 rgb() {
1998 var h = this.h % 360 + (this.h < 0) * 360, s = isNaN(h) || isNaN(this.s) ? 0 : this.s, l = this.l, m2 = l + (l < 0.5 ? l : 1 - l) * s, m1 = 2 * l - m2;
1999 return new Rgb(
2000 hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),
2001 hsl2rgb(h, m1, m2),
2002 hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),
2003 this.opacity
2004 );
2005 },
2006 clamp() {
2007 return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));
2008 },
2009 displayable() {
2010 return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && (0 <= this.l && this.l <= 1) && (0 <= this.opacity && this.opacity <= 1);
2011 },
2012 formatHsl() {
2013 const a = clampa(this.opacity);
2014 return `${a === 1 ? "hsl(" : "hsla("}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? ")" : `, ${a})`}`;
2015 }
2016 }));
2017 function clamph(value) {
2018 value = (value || 0) % 360;
2019 return value < 0 ? value + 360 : value;
2020 }
2021 function clampt(value) {
2022 return Math.max(0, Math.min(1, value || 0));
2023 }
2024 function hsl2rgb(h, m1, m2) {
2025 return (h < 60 ? m1 + (m2 - m1) * h / 60 : h < 180 ? m2 : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60 : m1) * 255;
2026 }
2027 const radians = Math.PI / 180;
2028 const degrees$1 = 180 / Math.PI;
2029 const K = 18, Xn = 0.96422, Yn = 1, Zn = 0.82521, t0$1 = 4 / 29, t1$1 = 6 / 29, t2 = 3 * t1$1 * t1$1, t3 = t1$1 * t1$1 * t1$1;
2030 function labConvert(o) {
2031 if (o instanceof Lab)
2032 return new Lab(o.l, o.a, o.b, o.opacity);
2033 if (o instanceof Hcl)
2034 return hcl2lab(o);
2035 if (!(o instanceof Rgb))
2036 o = rgbConvert(o);
2037 var r = rgb2lrgb(o.r), g = rgb2lrgb(o.g), b = rgb2lrgb(o.b), y2 = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x2, z;
2038 if (r === g && g === b)
2039 x2 = z = y2;
2040 else {
2041 x2 = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);
2042 z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);
2043 }
2044 return new Lab(116 * y2 - 16, 500 * (x2 - y2), 200 * (y2 - z), o.opacity);
2045 }
2046 function lab(l, a, b, opacity) {
2047 return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);
2048 }
2049 function Lab(l, a, b, opacity) {
2050 this.l = +l;
2051 this.a = +a;
2052 this.b = +b;
2053 this.opacity = +opacity;
2054 }
2055 define2(Lab, lab, extend$1(Color$2, {
2056 brighter(k) {
2057 return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);
2058 },
2059 darker(k) {
2060 return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);
2061 },
2062 rgb() {
2063 var y2 = (this.l + 16) / 116, x2 = isNaN(this.a) ? y2 : y2 + this.a / 500, z = isNaN(this.b) ? y2 : y2 - this.b / 200;
2064 x2 = Xn * lab2xyz(x2);
2065 y2 = Yn * lab2xyz(y2);
2066 z = Zn * lab2xyz(z);
2067 return new Rgb(
2068 lrgb2rgb(3.1338561 * x2 - 1.6168667 * y2 - 0.4906146 * z),
2069 lrgb2rgb(-0.9787684 * x2 + 1.9161415 * y2 + 0.033454 * z),
2070 lrgb2rgb(0.0719453 * x2 - 0.2289914 * y2 + 1.4052427 * z),
2071 this.opacity
2072 );
2073 }
2074 }));
2075 function xyz2lab(t4) {
2076 return t4 > t3 ? Math.pow(t4, 1 / 3) : t4 / t2 + t0$1;
2077 }
2078 function lab2xyz(t4) {
2079 return t4 > t1$1 ? t4 * t4 * t4 : t2 * (t4 - t0$1);
2080 }
2081 function lrgb2rgb(x2) {
2082 return 255 * (x2 <= 31308e-7 ? 12.92 * x2 : 1.055 * Math.pow(x2, 1 / 2.4) - 0.055);
2083 }
2084 function rgb2lrgb(x2) {
2085 return (x2 /= 255) <= 0.04045 ? x2 / 12.92 : Math.pow((x2 + 0.055) / 1.055, 2.4);
2086 }
2087 function hclConvert(o) {
2088 if (o instanceof Hcl)
2089 return new Hcl(o.h, o.c, o.l, o.opacity);
2090 if (!(o instanceof Lab))
2091 o = labConvert(o);
2092 if (o.a === 0 && o.b === 0)
2093 return new Hcl(NaN, 0 < o.l && o.l < 100 ? 0 : NaN, o.l, o.opacity);
2094 var h = Math.atan2(o.b, o.a) * degrees$1;
2095 return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);
2096 }
2097 function hcl$1(h, c2, l, opacity) {
2098 return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c2, l, opacity == null ? 1 : opacity);
2099 }
2100 function Hcl(h, c2, l, opacity) {
2101 this.h = +h;
2102 this.c = +c2;
2103 this.l = +l;
2104 this.opacity = +opacity;
2105 }
2106 function hcl2lab(o) {
2107 if (isNaN(o.h))
2108 return new Lab(o.l, 0, 0, o.opacity);
2109 var h = o.h * radians;
2110 return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);
2111 }
2112 define2(Hcl, hcl$1, extend$1(Color$2, {
2113 brighter(k) {
2114 return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);
2115 },
2116 darker(k) {
2117 return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);
2118 },
2119 rgb() {
2120 return hcl2lab(this).rgb();
2121 }
2122 }));
2123 const constant$2 = (x2) => () => x2;
2124 function linear$1(a, d) {
2125 return function(t4) {
2126 return a + t4 * d;
2127 };
2128 }
2129 function exponential(a, b, y2) {
2130 return a = Math.pow(a, y2), b = Math.pow(b, y2) - a, y2 = 1 / y2, function(t4) {
2131 return Math.pow(a + t4 * b, y2);
2132 };
2133 }
2134 function hue(a, b) {
2135 var d = b - a;
2136 return d ? linear$1(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant$2(isNaN(a) ? b : a);
2137 }
2138 function gamma(y2) {
2139 return (y2 = +y2) === 1 ? nogamma : function(a, b) {
2140 return b - a ? exponential(a, b, y2) : constant$2(isNaN(a) ? b : a);
2141 };
2142 }
2143 function nogamma(a, b) {
2144 var d = b - a;
2145 return d ? linear$1(a, d) : constant$2(isNaN(a) ? b : a);
2146 }
2147 const interpolateRgb = function rgbGamma(y2) {
2148 var color2 = gamma(y2);
2149 function rgb$1(start2, end2) {
2150 var r = color2((start2 = rgb(start2)).r, (end2 = rgb(end2)).r), g = color2(start2.g, end2.g), b = color2(start2.b, end2.b), opacity = nogamma(start2.opacity, end2.opacity);
2151 return function(t4) {
2152 start2.r = r(t4);
2153 start2.g = g(t4);
2154 start2.b = b(t4);
2155 start2.opacity = opacity(t4);
2156 return start2 + "";
2157 };
2158 }
2159 rgb$1.gamma = rgbGamma;
2160 return rgb$1;
2161 }(1);
2162 function numberArray(a, b) {
2163 if (!b)
2164 b = [];
2165 var n = a ? Math.min(b.length, a.length) : 0, c2 = b.slice(), i2;
2166 return function(t4) {
2167 for (i2 = 0; i2 < n; ++i2)
2168 c2[i2] = a[i2] * (1 - t4) + b[i2] * t4;
2169 return c2;
2170 };
2171 }
2172 function isNumberArray(x2) {
2173 return ArrayBuffer.isView(x2) && !(x2 instanceof DataView);
2174 }
2175 function genericArray(a, b) {
2176 var nb = b ? b.length : 0, na = a ? Math.min(nb, a.length) : 0, x2 = new Array(na), c2 = new Array(nb), i2;
2177 for (i2 = 0; i2 < na; ++i2)
2178 x2[i2] = interpolate$1(a[i2], b[i2]);
2179 for (; i2 < nb; ++i2)
2180 c2[i2] = b[i2];
2181 return function(t4) {
2182 for (i2 = 0; i2 < na; ++i2)
2183 c2[i2] = x2[i2](t4);
2184 return c2;
2185 };
2186 }
2187 function date$1(a, b) {
2188 var d = /* @__PURE__ */ new Date();
2189 return a = +a, b = +b, function(t4) {
2190 return d.setTime(a * (1 - t4) + b * t4), d;
2191 };
2192 }
2193 function interpolateNumber(a, b) {
2194 return a = +a, b = +b, function(t4) {
2195 return a * (1 - t4) + b * t4;
2196 };
2197 }
2198 function object(a, b) {
2199 var i2 = {}, c2 = {}, k;
2200 if (a === null || typeof a !== "object")
2201 a = {};
2202 if (b === null || typeof b !== "object")
2203 b = {};
2204 for (k in b) {
2205 if (k in a) {
2206 i2[k] = interpolate$1(a[k], b[k]);
2207 } else {
2208 c2[k] = b[k];
2209 }
2210 }
2211 return function(t4) {
2212 for (k in i2)
2213 c2[k] = i2[k](t4);
2214 return c2;
2215 };
2216 }
2217 var reA = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, reB = new RegExp(reA.source, "g");
2218 function zero(b) {
2219 return function() {
2220 return b;
2221 };
2222 }
2223 function one$1(b) {
2224 return function(t4) {
2225 return b(t4) + "";
2226 };
2227 }
2228 function interpolateString(a, b) {
2229 var bi = reA.lastIndex = reB.lastIndex = 0, am, bm, bs, i2 = -1, s = [], q = [];
2230 a = a + "", b = b + "";
2231 while ((am = reA.exec(a)) && (bm = reB.exec(b))) {
2232 if ((bs = bm.index) > bi) {
2233 bs = b.slice(bi, bs);
2234 if (s[i2])
2235 s[i2] += bs;
2236 else
2237 s[++i2] = bs;
2238 }
2239 if ((am = am[0]) === (bm = bm[0])) {
2240 if (s[i2])
2241 s[i2] += bm;
2242 else
2243 s[++i2] = bm;
2244 } else {
2245 s[++i2] = null;
2246 q.push({ i: i2, x: interpolateNumber(am, bm) });
2247 }
2248 bi = reB.lastIndex;
2249 }
2250 if (bi < b.length) {
2251 bs = b.slice(bi);
2252 if (s[i2])
2253 s[i2] += bs;
2254 else
2255 s[++i2] = bs;
2256 }
2257 return s.length < 2 ? q[0] ? one$1(q[0].x) : zero(b) : (b = q.length, function(t4) {
2258 for (var i3 = 0, o; i3 < b; ++i3)
2259 s[(o = q[i3]).i] = o.x(t4);
2260 return s.join("");
2261 });
2262 }
2263 function interpolate$1(a, b) {
2264 var t4 = typeof b, c2;
2265 return b == null || t4 === "boolean" ? constant$2(b) : (t4 === "number" ? interpolateNumber : t4 === "string" ? (c2 = color(b)) ? (b = c2, interpolateRgb) : interpolateString : b instanceof color ? interpolateRgb : b instanceof Date ? date$1 : isNumberArray(b) ? numberArray : Array.isArray(b) ? genericArray : typeof b.valueOf !== "function" && typeof b.toString !== "function" || isNaN(b) ? object : interpolateNumber)(a, b);
2266 }
2267 function interpolateRound(a, b) {
2268 return a = +a, b = +b, function(t4) {
2269 return Math.round(a * (1 - t4) + b * t4);
2270 };
2271 }
2272 var degrees = 180 / Math.PI;
2273 var identity$4 = {
2274 translateX: 0,
2275 translateY: 0,
2276 rotate: 0,
2277 skewX: 0,
2278 scaleX: 1,
2279 scaleY: 1
2280 };
2281 function decompose(a, b, c2, d, e, f2) {
2282 var scaleX, scaleY, skewX;
2283 if (scaleX = Math.sqrt(a * a + b * b))
2284 a /= scaleX, b /= scaleX;
2285 if (skewX = a * c2 + b * d)
2286 c2 -= a * skewX, d -= b * skewX;
2287 if (scaleY = Math.sqrt(c2 * c2 + d * d))
2288 c2 /= scaleY, d /= scaleY, skewX /= scaleY;
2289 if (a * d < b * c2)
2290 a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;
2291 return {
2292 translateX: e,
2293 translateY: f2,
2294 rotate: Math.atan2(b, a) * degrees,
2295 skewX: Math.atan(skewX) * degrees,
2296 scaleX,
2297 scaleY
2298 };
2299 }
2300 var svgNode;
2301 function parseCss(value) {
2302 const m = new (typeof DOMMatrix === "function" ? DOMMatrix : WebKitCSSMatrix)(value + "");
2303 return m.isIdentity ? identity$4 : decompose(m.a, m.b, m.c, m.d, m.e, m.f);
2304 }
2305 function parseSvg(value) {
2306 if (value == null)
2307 return identity$4;
2308 if (!svgNode)
2309 svgNode = document.createElementNS("http://www.w3.org/2000/svg", "g");
2310 svgNode.setAttribute("transform", value);
2311 if (!(value = svgNode.transform.baseVal.consolidate()))
2312 return identity$4;
2313 value = value.matrix;
2314 return decompose(value.a, value.b, value.c, value.d, value.e, value.f);
2315 }
2316 function interpolateTransform(parse2, pxComma, pxParen, degParen) {
2317 function pop(s) {
2318 return s.length ? s.pop() + " " : "";
2319 }
2320 function translate(xa, ya, xb, yb, s, q) {
2321 if (xa !== xb || ya !== yb) {
2322 var i2 = s.push("translate(", null, pxComma, null, pxParen);
2323 q.push({ i: i2 - 4, x: interpolateNumber(xa, xb) }, { i: i2 - 2, x: interpolateNumber(ya, yb) });
2324 } else if (xb || yb) {
2325 s.push("translate(" + xb + pxComma + yb + pxParen);
2326 }
2327 }
2328 function rotate(a, b, s, q) {
2329 if (a !== b) {
2330 if (a - b > 180)
2331 b += 360;
2332 else if (b - a > 180)
2333 a += 360;
2334 q.push({ i: s.push(pop(s) + "rotate(", null, degParen) - 2, x: interpolateNumber(a, b) });
2335 } else if (b) {
2336 s.push(pop(s) + "rotate(" + b + degParen);
2337 }
2338 }
2339 function skewX(a, b, s, q) {
2340 if (a !== b) {
2341 q.push({ i: s.push(pop(s) + "skewX(", null, degParen) - 2, x: interpolateNumber(a, b) });
2342 } else if (b) {
2343 s.push(pop(s) + "skewX(" + b + degParen);
2344 }
2345 }
2346 function scale(xa, ya, xb, yb, s, q) {
2347 if (xa !== xb || ya !== yb) {
2348 var i2 = s.push(pop(s) + "scale(", null, ",", null, ")");
2349 q.push({ i: i2 - 4, x: interpolateNumber(xa, xb) }, { i: i2 - 2, x: interpolateNumber(ya, yb) });
2350 } else if (xb !== 1 || yb !== 1) {
2351 s.push(pop(s) + "scale(" + xb + "," + yb + ")");
2352 }
2353 }
2354 return function(a, b) {
2355 var s = [], q = [];
2356 a = parse2(a), b = parse2(b);
2357 translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);
2358 rotate(a.rotate, b.rotate, s, q);
2359 skewX(a.skewX, b.skewX, s, q);
2360 scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);
2361 a = b = null;
2362 return function(t4) {
2363 var i2 = -1, n = q.length, o;
2364 while (++i2 < n)
2365 s[(o = q[i2]).i] = o.x(t4);
2366 return s.join("");
2367 };
2368 };
2369 }
2370 var interpolateTransformCss = interpolateTransform(parseCss, "px, ", "px)", "deg)");
2371 var interpolateTransformSvg = interpolateTransform(parseSvg, ", ", ")", ")");
2372 function hcl(hue2) {
2373 return function(start2, end2) {
2374 var h = hue2((start2 = hcl$1(start2)).h, (end2 = hcl$1(end2)).h), c2 = nogamma(start2.c, end2.c), l = nogamma(start2.l, end2.l), opacity = nogamma(start2.opacity, end2.opacity);
2375 return function(t4) {
2376 start2.h = h(t4);
2377 start2.c = c2(t4);
2378 start2.l = l(t4);
2379 start2.opacity = opacity(t4);
2380 return start2 + "";
2381 };
2382 };
2383 }
2384 const interpolateHcl = hcl(hue);
2385 var frame = 0, timeout$1 = 0, interval = 0, pokeDelay = 1e3, taskHead, taskTail, clockLast = 0, clockNow = 0, clockSkew = 0, clock = typeof performance === "object" && performance.now ? performance : Date, setFrame = typeof window === "object" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f2) {
2386 setTimeout(f2, 17);
2387 };
2388 function now$2() {
2389 return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);
2390 }
2391 function clearNow() {
2392 clockNow = 0;
2393 }
2394 function Timer() {
2395 this._call = this._time = this._next = null;
2396 }
2397 Timer.prototype = timer.prototype = {
2398 constructor: Timer,
2399 restart: function(callback, delay, time2) {
2400 if (typeof callback !== "function")
2401 throw new TypeError("callback is not a function");
2402 time2 = (time2 == null ? now$2() : +time2) + (delay == null ? 0 : +delay);
2403 if (!this._next && taskTail !== this) {
2404 if (taskTail)
2405 taskTail._next = this;
2406 else
2407 taskHead = this;
2408 taskTail = this;
2409 }
2410 this._call = callback;
2411 this._time = time2;
2412 sleep();
2413 },
2414 stop: function() {
2415 if (this._call) {
2416 this._call = null;
2417 this._time = Infinity;
2418 sleep();
2419 }
2420 }
2421 };
2422 function timer(callback, delay, time2) {
2423 var t4 = new Timer();
2424 t4.restart(callback, delay, time2);
2425 return t4;
2426 }
2427 function timerFlush() {
2428 now$2();
2429 ++frame;
2430 var t4 = taskHead, e;
2431 while (t4) {
2432 if ((e = clockNow - t4._time) >= 0)
2433 t4._call.call(void 0, e);
2434 t4 = t4._next;
2435 }
2436 --frame;
2437 }
2438 function wake() {
2439 clockNow = (clockLast = clock.now()) + clockSkew;
2440 frame = timeout$1 = 0;
2441 try {
2442 timerFlush();
2443 } finally {
2444 frame = 0;
2445 nap();
2446 clockNow = 0;
2447 }
2448 }
2449 function poke() {
2450 var now2 = clock.now(), delay = now2 - clockLast;
2451 if (delay > pokeDelay)
2452 clockSkew -= delay, clockLast = now2;
2453 }
2454 function nap() {
2455 var t02, t12 = taskHead, t22, time2 = Infinity;
2456 while (t12) {
2457 if (t12._call) {
2458 if (time2 > t12._time)
2459 time2 = t12._time;
2460 t02 = t12, t12 = t12._next;
2461 } else {
2462 t22 = t12._next, t12._next = null;
2463 t12 = t02 ? t02._next = t22 : taskHead = t22;
2464 }
2465 }
2466 taskTail = t02;
2467 sleep(time2);
2468 }
2469 function sleep(time2) {
2470 if (frame)
2471 return;
2472 if (timeout$1)
2473 timeout$1 = clearTimeout(timeout$1);
2474 var delay = time2 - clockNow;
2475 if (delay > 24) {
2476 if (time2 < Infinity)
2477 timeout$1 = setTimeout(wake, time2 - clock.now() - clockSkew);
2478 if (interval)
2479 interval = clearInterval(interval);
2480 } else {
2481 if (!interval)
2482 clockLast = clock.now(), interval = setInterval(poke, pokeDelay);
2483 frame = 1, setFrame(wake);
2484 }
2485 }
2486 function timeout(callback, delay, time2) {
2487 var t4 = new Timer();
2488 delay = delay == null ? 0 : +delay;
2489 t4.restart((elapsed) => {
2490 t4.stop();
2491 callback(elapsed + delay);
2492 }, delay, time2);
2493 return t4;
2494 }
2495 var emptyOn = dispatch("start", "end", "cancel", "interrupt");
2496 var emptyTween = [];
2497 var CREATED = 0;
2498 var SCHEDULED = 1;
2499 var STARTING = 2;
2500 var STARTED = 3;
2501 var RUNNING = 4;
2502 var ENDING = 5;
2503 var ENDED = 6;
2504 function schedule(node2, name2, id2, index2, group, timing) {
2505 var schedules = node2.__transition;
2506 if (!schedules)
2507 node2.__transition = {};
2508 else if (id2 in schedules)
2509 return;
2510 create$1(node2, id2, {
2511 name: name2,
2512 index: index2,
2513 // For context during callback.
2514 group,
2515 // For context during callback.
2516 on: emptyOn,
2517 tween: emptyTween,
2518 time: timing.time,
2519 delay: timing.delay,
2520 duration: timing.duration,
2521 ease: timing.ease,
2522 timer: null,
2523 state: CREATED
2524 });
2525 }
2526 function init$1(node2, id2) {
2527 var schedule2 = get$2(node2, id2);
2528 if (schedule2.state > CREATED)
2529 throw new Error("too late; already scheduled");
2530 return schedule2;
2531 }
2532 function set$2(node2, id2) {
2533 var schedule2 = get$2(node2, id2);
2534 if (schedule2.state > STARTED)
2535 throw new Error("too late; already running");
2536 return schedule2;
2537 }
2538 function get$2(node2, id2) {
2539 var schedule2 = node2.__transition;
2540 if (!schedule2 || !(schedule2 = schedule2[id2]))
2541 throw new Error("transition not found");
2542 return schedule2;
2543 }
2544 function create$1(node2, id2, self2) {
2545 var schedules = node2.__transition, tween;
2546 schedules[id2] = self2;
2547 self2.timer = timer(schedule2, 0, self2.time);
2548 function schedule2(elapsed) {
2549 self2.state = SCHEDULED;
2550 self2.timer.restart(start2, self2.delay, self2.time);
2551 if (self2.delay <= elapsed)
2552 start2(elapsed - self2.delay);
2553 }
2554 function start2(elapsed) {
2555 var i2, j, n, o;
2556 if (self2.state !== SCHEDULED)
2557 return stop();
2558 for (i2 in schedules) {
2559 o = schedules[i2];
2560 if (o.name !== self2.name)
2561 continue;
2562 if (o.state === STARTED)
2563 return timeout(start2);
2564 if (o.state === RUNNING) {
2565 o.state = ENDED;
2566 o.timer.stop();
2567 o.on.call("interrupt", node2, node2.__data__, o.index, o.group);
2568 delete schedules[i2];
2569 } else if (+i2 < id2) {
2570 o.state = ENDED;
2571 o.timer.stop();
2572 o.on.call("cancel", node2, node2.__data__, o.index, o.group);
2573 delete schedules[i2];
2574 }
2575 }
2576 timeout(function() {
2577 if (self2.state === STARTED) {
2578 self2.state = RUNNING;
2579 self2.timer.restart(tick, self2.delay, self2.time);
2580 tick(elapsed);
2581 }
2582 });
2583 self2.state = STARTING;
2584 self2.on.call("start", node2, node2.__data__, self2.index, self2.group);
2585 if (self2.state !== STARTING)
2586 return;
2587 self2.state = STARTED;
2588 tween = new Array(n = self2.tween.length);
2589 for (i2 = 0, j = -1; i2 < n; ++i2) {
2590 if (o = self2.tween[i2].value.call(node2, node2.__data__, self2.index, self2.group)) {
2591 tween[++j] = o;
2592 }
2593 }
2594 tween.length = j + 1;
2595 }
2596 function tick(elapsed) {
2597 var t4 = elapsed < self2.duration ? self2.ease.call(null, elapsed / self2.duration) : (self2.timer.restart(stop), self2.state = ENDING, 1), i2 = -1, n = tween.length;
2598 while (++i2 < n) {
2599 tween[i2].call(node2, t4);
2600 }
2601 if (self2.state === ENDING) {
2602 self2.on.call("end", node2, node2.__data__, self2.index, self2.group);
2603 stop();
2604 }
2605 }
2606 function stop() {
2607 self2.state = ENDED;
2608 self2.timer.stop();
2609 delete schedules[id2];
2610 for (var i2 in schedules)
2611 return;
2612 delete node2.__transition;
2613 }
2614 }
2615 function interrupt(node2, name2) {
2616 var schedules = node2.__transition, schedule2, active, empty2 = true, i2;
2617 if (!schedules)
2618 return;
2619 name2 = name2 == null ? null : name2 + "";
2620 for (i2 in schedules) {
2621 if ((schedule2 = schedules[i2]).name !== name2) {
2622 empty2 = false;
2623 continue;
2624 }
2625 active = schedule2.state > STARTING && schedule2.state < ENDING;
2626 schedule2.state = ENDED;
2627 schedule2.timer.stop();
2628 schedule2.on.call(active ? "interrupt" : "cancel", node2, node2.__data__, schedule2.index, schedule2.group);
2629 delete schedules[i2];
2630 }
2631 if (empty2)
2632 delete node2.__transition;
2633 }
2634 function selection_interrupt(name2) {
2635 return this.each(function() {
2636 interrupt(this, name2);
2637 });
2638 }
2639 function tweenRemove(id2, name2) {
2640 var tween0, tween1;
2641 return function() {
2642 var schedule2 = set$2(this, id2), tween = schedule2.tween;
2643 if (tween !== tween0) {
2644 tween1 = tween0 = tween;
2645 for (var i2 = 0, n = tween1.length; i2 < n; ++i2) {
2646 if (tween1[i2].name === name2) {
2647 tween1 = tween1.slice();
2648 tween1.splice(i2, 1);
2649 break;
2650 }
2651 }
2652 }
2653 schedule2.tween = tween1;
2654 };
2655 }
2656 function tweenFunction(id2, name2, value) {
2657 var tween0, tween1;
2658 if (typeof value !== "function")
2659 throw new Error();
2660 return function() {
2661 var schedule2 = set$2(this, id2), tween = schedule2.tween;
2662 if (tween !== tween0) {
2663 tween1 = (tween0 = tween).slice();
2664 for (var t4 = { name: name2, value }, i2 = 0, n = tween1.length; i2 < n; ++i2) {
2665 if (tween1[i2].name === name2) {
2666 tween1[i2] = t4;
2667 break;
2668 }
2669 }
2670 if (i2 === n)
2671 tween1.push(t4);
2672 }
2673 schedule2.tween = tween1;
2674 };
2675 }
2676 function transition_tween(name2, value) {
2677 var id2 = this._id;
2678 name2 += "";
2679 if (arguments.length < 2) {
2680 var tween = get$2(this.node(), id2).tween;
2681 for (var i2 = 0, n = tween.length, t4; i2 < n; ++i2) {
2682 if ((t4 = tween[i2]).name === name2) {
2683 return t4.value;
2684 }
2685 }
2686 return null;
2687 }
2688 return this.each((value == null ? tweenRemove : tweenFunction)(id2, name2, value));
2689 }
2690 function tweenValue(transition, name2, value) {
2691 var id2 = transition._id;
2692 transition.each(function() {
2693 var schedule2 = set$2(this, id2);
2694 (schedule2.value || (schedule2.value = {}))[name2] = value.apply(this, arguments);
2695 });
2696 return function(node2) {
2697 return get$2(node2, id2).value[name2];
2698 };
2699 }
2700 function interpolate(a, b) {
2701 var c2;
2702 return (typeof b === "number" ? interpolateNumber : b instanceof color ? interpolateRgb : (c2 = color(b)) ? (b = c2, interpolateRgb) : interpolateString)(a, b);
2703 }
2704 function attrRemove(name2) {
2705 return function() {
2706 this.removeAttribute(name2);
2707 };
2708 }
2709 function attrRemoveNS(fullname) {
2710 return function() {
2711 this.removeAttributeNS(fullname.space, fullname.local);
2712 };
2713 }
2714 function attrConstant(name2, interpolate2, value1) {
2715 var string00, string1 = value1 + "", interpolate0;
2716 return function() {
2717 var string0 = this.getAttribute(name2);
2718 return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);
2719 };
2720 }
2721 function attrConstantNS(fullname, interpolate2, value1) {
2722 var string00, string1 = value1 + "", interpolate0;
2723 return function() {
2724 var string0 = this.getAttributeNS(fullname.space, fullname.local);
2725 return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);
2726 };
2727 }
2728 function attrFunction(name2, interpolate2, value) {
2729 var string00, string10, interpolate0;
2730 return function() {
2731 var string0, value1 = value(this), string1;
2732 if (value1 == null)
2733 return void this.removeAttribute(name2);
2734 string0 = this.getAttribute(name2);
2735 string1 = value1 + "";
2736 return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));
2737 };
2738 }
2739 function attrFunctionNS(fullname, interpolate2, value) {
2740 var string00, string10, interpolate0;
2741 return function() {
2742 var string0, value1 = value(this), string1;
2743 if (value1 == null)
2744 return void this.removeAttributeNS(fullname.space, fullname.local);
2745 string0 = this.getAttributeNS(fullname.space, fullname.local);
2746 string1 = value1 + "";
2747 return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));
2748 };
2749 }
2750 function transition_attr(name2, value) {
2751 var fullname = namespace(name2), i2 = fullname === "transform" ? interpolateTransformSvg : interpolate;
2752 return this.attrTween(name2, typeof value === "function" ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i2, tweenValue(this, "attr." + name2, value)) : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname) : (fullname.local ? attrConstantNS : attrConstant)(fullname, i2, value));
2753 }
2754 function attrInterpolate(name2, i2) {
2755 return function(t4) {
2756 this.setAttribute(name2, i2.call(this, t4));
2757 };
2758 }
2759 function attrInterpolateNS(fullname, i2) {
2760 return function(t4) {
2761 this.setAttributeNS(fullname.space, fullname.local, i2.call(this, t4));
2762 };
2763 }
2764 function attrTweenNS(fullname, value) {
2765 var t02, i0;
2766 function tween() {
2767 var i2 = value.apply(this, arguments);
2768 if (i2 !== i0)
2769 t02 = (i0 = i2) && attrInterpolateNS(fullname, i2);
2770 return t02;
2771 }
2772 tween._value = value;
2773 return tween;
2774 }
2775 function attrTween(name2, value) {
2776 var t02, i0;
2777 function tween() {
2778 var i2 = value.apply(this, arguments);
2779 if (i2 !== i0)
2780 t02 = (i0 = i2) && attrInterpolate(name2, i2);
2781 return t02;
2782 }
2783 tween._value = value;
2784 return tween;
2785 }
2786 function transition_attrTween(name2, value) {
2787 var key = "attr." + name2;
2788 if (arguments.length < 2)
2789 return (key = this.tween(key)) && key._value;
2790 if (value == null)
2791 return this.tween(key, null);
2792 if (typeof value !== "function")
2793 throw new Error();
2794 var fullname = namespace(name2);
2795 return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));
2796 }
2797 function delayFunction(id2, value) {
2798 return function() {
2799 init$1(this, id2).delay = +value.apply(this, arguments);
2800 };
2801 }
2802 function delayConstant(id2, value) {
2803 return value = +value, function() {
2804 init$1(this, id2).delay = value;
2805 };
2806 }
2807 function transition_delay(value) {
2808 var id2 = this._id;
2809 return arguments.length ? this.each((typeof value === "function" ? delayFunction : delayConstant)(id2, value)) : get$2(this.node(), id2).delay;
2810 }
2811 function durationFunction(id2, value) {
2812 return function() {
2813 set$2(this, id2).duration = +value.apply(this, arguments);
2814 };
2815 }
2816 function durationConstant(id2, value) {
2817 return value = +value, function() {
2818 set$2(this, id2).duration = value;
2819 };
2820 }
2821 function transition_duration(value) {
2822 var id2 = this._id;
2823 return arguments.length ? this.each((typeof value === "function" ? durationFunction : durationConstant)(id2, value)) : get$2(this.node(), id2).duration;
2824 }
2825 function easeConstant(id2, value) {
2826 if (typeof value !== "function")
2827 throw new Error();
2828 return function() {
2829 set$2(this, id2).ease = value;
2830 };
2831 }
2832 function transition_ease(value) {
2833 var id2 = this._id;
2834 return arguments.length ? this.each(easeConstant(id2, value)) : get$2(this.node(), id2).ease;
2835 }
2836 function easeVarying(id2, value) {
2837 return function() {
2838 var v = value.apply(this, arguments);
2839 if (typeof v !== "function")
2840 throw new Error();
2841 set$2(this, id2).ease = v;
2842 };
2843 }
2844 function transition_easeVarying(value) {
2845 if (typeof value !== "function")
2846 throw new Error();
2847 return this.each(easeVarying(this._id, value));
2848 }
2849 function transition_filter(match) {
2850 if (typeof match !== "function")
2851 match = matcher(match);
2852 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
2853 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node2, i2 = 0; i2 < n; ++i2) {
2854 if ((node2 = group[i2]) && match.call(node2, node2.__data__, i2, group)) {
2855 subgroup.push(node2);
2856 }
2857 }
2858 }
2859 return new Transition(subgroups, this._parents, this._name, this._id);
2860 }
2861 function transition_merge(transition) {
2862 if (transition._id !== this._id)
2863 throw new Error();
2864 for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {
2865 for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge2 = merges[j] = new Array(n), node2, i2 = 0; i2 < n; ++i2) {
2866 if (node2 = group0[i2] || group1[i2]) {
2867 merge2[i2] = node2;
2868 }
2869 }
2870 }
2871 for (; j < m0; ++j) {
2872 merges[j] = groups0[j];
2873 }
2874 return new Transition(merges, this._parents, this._name, this._id);
2875 }
2876 function start$1(name2) {
2877 return (name2 + "").trim().split(/^|\s+/).every(function(t4) {
2878 var i2 = t4.indexOf(".");
2879 if (i2 >= 0)
2880 t4 = t4.slice(0, i2);
2881 return !t4 || t4 === "start";
2882 });
2883 }
2884 function onFunction(id2, name2, listener) {
2885 var on0, on1, sit = start$1(name2) ? init$1 : set$2;
2886 return function() {
2887 var schedule2 = sit(this, id2), on = schedule2.on;
2888 if (on !== on0)
2889 (on1 = (on0 = on).copy()).on(name2, listener);
2890 schedule2.on = on1;
2891 };
2892 }
2893 function transition_on(name2, listener) {
2894 var id2 = this._id;
2895 return arguments.length < 2 ? get$2(this.node(), id2).on.on(name2) : this.each(onFunction(id2, name2, listener));
2896 }
2897 function removeFunction(id2) {
2898 return function() {
2899 var parent = this.parentNode;
2900 for (var i2 in this.__transition)
2901 if (+i2 !== id2)
2902 return;
2903 if (parent)
2904 parent.removeChild(this);
2905 };
2906 }
2907 function transition_remove() {
2908 return this.on("end.remove", removeFunction(this._id));
2909 }
2910 function transition_select(select2) {
2911 var name2 = this._name, id2 = this._id;
2912 if (typeof select2 !== "function")
2913 select2 = selector(select2);
2914 for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
2915 for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node2, subnode, i2 = 0; i2 < n; ++i2) {
2916 if ((node2 = group[i2]) && (subnode = select2.call(node2, node2.__data__, i2, group))) {
2917 if ("__data__" in node2)
2918 subnode.__data__ = node2.__data__;
2919 subgroup[i2] = subnode;
2920 schedule(subgroup[i2], name2, id2, i2, subgroup, get$2(node2, id2));
2921 }
2922 }
2923 }
2924 return new Transition(subgroups, this._parents, name2, id2);
2925 }
2926 function transition_selectAll(select2) {
2927 var name2 = this._name, id2 = this._id;
2928 if (typeof select2 !== "function")
2929 select2 = selectorAll(select2);
2930 for (var groups = this._groups, m = groups.length, subgroups = [], parents2 = [], j = 0; j < m; ++j) {
2931 for (var group = groups[j], n = group.length, node2, i2 = 0; i2 < n; ++i2) {
2932 if (node2 = group[i2]) {
2933 for (var children2 = select2.call(node2, node2.__data__, i2, group), child, inherit2 = get$2(node2, id2), k = 0, l = children2.length; k < l; ++k) {
2934 if (child = children2[k]) {
2935 schedule(child, name2, id2, k, children2, inherit2);
2936 }
2937 }
2938 subgroups.push(children2);
2939 parents2.push(node2);
2940 }
2941 }
2942 }
2943 return new Transition(subgroups, parents2, name2, id2);
2944 }
2945 var Selection = selection.prototype.constructor;
2946 function transition_selection() {
2947 return new Selection(this._groups, this._parents);
2948 }
2949 function styleNull(name2, interpolate2) {
2950 var string00, string10, interpolate0;
2951 return function() {
2952 var string0 = styleValue(this, name2), string1 = (this.style.removeProperty(name2), styleValue(this, name2));
2953 return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, string10 = string1);
2954 };
2955 }
2956 function styleRemove(name2) {
2957 return function() {
2958 this.style.removeProperty(name2);
2959 };
2960 }
2961 function styleConstant(name2, interpolate2, value1) {
2962 var string00, string1 = value1 + "", interpolate0;
2963 return function() {
2964 var string0 = styleValue(this, name2);
2965 return string0 === string1 ? null : string0 === string00 ? interpolate0 : interpolate0 = interpolate2(string00 = string0, value1);
2966 };
2967 }
2968 function styleFunction(name2, interpolate2, value) {
2969 var string00, string10, interpolate0;
2970 return function() {
2971 var string0 = styleValue(this, name2), value1 = value(this), string1 = value1 + "";
2972 if (value1 == null)
2973 string1 = value1 = (this.style.removeProperty(name2), styleValue(this, name2));
2974 return string0 === string1 ? null : string0 === string00 && string1 === string10 ? interpolate0 : (string10 = string1, interpolate0 = interpolate2(string00 = string0, value1));
2975 };
2976 }
2977 function styleMaybeRemove(id2, name2) {
2978 var on0, on1, listener0, key = "style." + name2, event = "end." + key, remove2;
2979 return function() {
2980 var schedule2 = set$2(this, id2), on = schedule2.on, listener = schedule2.value[key] == null ? remove2 || (remove2 = styleRemove(name2)) : void 0;
2981 if (on !== on0 || listener0 !== listener)
2982 (on1 = (on0 = on).copy()).on(event, listener0 = listener);
2983 schedule2.on = on1;
2984 };
2985 }
2986 function transition_style(name2, value, priority) {
2987 var i2 = (name2 += "") === "transform" ? interpolateTransformCss : interpolate;
2988 return value == null ? this.styleTween(name2, styleNull(name2, i2)).on("end.style." + name2, styleRemove(name2)) : typeof value === "function" ? this.styleTween(name2, styleFunction(name2, i2, tweenValue(this, "style." + name2, value))).each(styleMaybeRemove(this._id, name2)) : this.styleTween(name2, styleConstant(name2, i2, value), priority).on("end.style." + name2, null);
2989 }
2990 function styleInterpolate(name2, i2, priority) {
2991 return function(t4) {
2992 this.style.setProperty(name2, i2.call(this, t4), priority);
2993 };
2994 }
2995 function styleTween(name2, value, priority) {
2996 var t4, i0;
2997 function tween() {
2998 var i2 = value.apply(this, arguments);
2999 if (i2 !== i0)
3000 t4 = (i0 = i2) && styleInterpolate(name2, i2, priority);
3001 return t4;
3002 }
3003 tween._value = value;
3004 return tween;
3005 }
3006 function transition_styleTween(name2, value, priority) {
3007 var key = "style." + (name2 += "");
3008 if (arguments.length < 2)
3009 return (key = this.tween(key)) && key._value;
3010 if (value == null)
3011 return this.tween(key, null);
3012 if (typeof value !== "function")
3013 throw new Error();
3014 return this.tween(key, styleTween(name2, value, priority == null ? "" : priority));
3015 }
3016 function textConstant(value) {
3017 return function() {
3018 this.textContent = value;
3019 };
3020 }
3021 function textFunction(value) {
3022 return function() {
3023 var value1 = value(this);
3024 this.textContent = value1 == null ? "" : value1;
3025 };
3026 }
3027 function transition_text(value) {
3028 return this.tween("text", typeof value === "function" ? textFunction(tweenValue(this, "text", value)) : textConstant(value == null ? "" : value + ""));
3029 }
3030 function textInterpolate(i2) {
3031 return function(t4) {
3032 this.textContent = i2.call(this, t4);
3033 };
3034 }
3035 function textTween(value) {
3036 var t02, i0;
3037 function tween() {
3038 var i2 = value.apply(this, arguments);
3039 if (i2 !== i0)
3040 t02 = (i0 = i2) && textInterpolate(i2);
3041 return t02;
3042 }
3043 tween._value = value;
3044 return tween;
3045 }
3046 function transition_textTween(value) {
3047 var key = "text";
3048 if (arguments.length < 1)
3049 return (key = this.tween(key)) && key._value;
3050 if (value == null)
3051 return this.tween(key, null);
3052 if (typeof value !== "function")
3053 throw new Error();
3054 return this.tween(key, textTween(value));
3055 }
3056 function transition_transition() {
3057 var name2 = this._name, id0 = this._id, id1 = newId();
3058 for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
3059 for (var group = groups[j], n = group.length, node2, i2 = 0; i2 < n; ++i2) {
3060 if (node2 = group[i2]) {
3061 var inherit2 = get$2(node2, id0);
3062 schedule(node2, name2, id1, i2, group, {
3063 time: inherit2.time + inherit2.delay + inherit2.duration,
3064 delay: 0,
3065 duration: inherit2.duration,
3066 ease: inherit2.ease
3067 });
3068 }
3069 }
3070 }
3071 return new Transition(groups, this._parents, name2, id1);
3072 }
3073 function transition_end() {
3074 var on0, on1, that = this, id2 = that._id, size2 = that.size();
3075 return new Promise(function(resolve, reject) {
3076 var cancel = { value: reject }, end2 = { value: function() {
3077 if (--size2 === 0)
3078 resolve();
3079 } };
3080 that.each(function() {
3081 var schedule2 = set$2(this, id2), on = schedule2.on;
3082 if (on !== on0) {
3083 on1 = (on0 = on).copy();
3084 on1._.cancel.push(cancel);
3085 on1._.interrupt.push(cancel);
3086 on1._.end.push(end2);
3087 }
3088 schedule2.on = on1;
3089 });
3090 if (size2 === 0)
3091 resolve();
3092 });
3093 }
3094 var id$j = 0;
3095 function Transition(groups, parents2, name2, id2) {
3096 this._groups = groups;
3097 this._parents = parents2;
3098 this._name = name2;
3099 this._id = id2;
3100 }
3101 function newId() {
3102 return ++id$j;
3103 }
3104 var selection_prototype = selection.prototype;
3105 Transition.prototype = {
3106 constructor: Transition,
3107 select: transition_select,
3108 selectAll: transition_selectAll,
3109 selectChild: selection_prototype.selectChild,
3110 selectChildren: selection_prototype.selectChildren,
3111 filter: transition_filter,
3112 merge: transition_merge,
3113 selection: transition_selection,
3114 transition: transition_transition,
3115 call: selection_prototype.call,
3116 nodes: selection_prototype.nodes,
3117 node: selection_prototype.node,
3118 size: selection_prototype.size,
3119 empty: selection_prototype.empty,
3120 each: selection_prototype.each,
3121 on: transition_on,
3122 attr: transition_attr,
3123 attrTween: transition_attrTween,
3124 style: transition_style,
3125 styleTween: transition_styleTween,
3126 text: transition_text,
3127 textTween: transition_textTween,
3128 remove: transition_remove,
3129 tween: transition_tween,
3130 delay: transition_delay,
3131 duration: transition_duration,
3132 ease: transition_ease,
3133 easeVarying: transition_easeVarying,
3134 end: transition_end,
3135 [Symbol.iterator]: selection_prototype[Symbol.iterator]
3136 };
3137 function cubicInOut(t4) {
3138 return ((t4 *= 2) <= 1 ? t4 * t4 * t4 : (t4 -= 2) * t4 * t4 + 2) / 2;
3139 }
3140 var defaultTiming = {
3141 time: null,
3142 // Set on use.
3143 delay: 0,
3144 duration: 250,
3145 ease: cubicInOut
3146 };
3147 function inherit(node2, id2) {
3148 var timing;
3149 while (!(timing = node2.__transition) || !(timing = timing[id2])) {
3150 if (!(node2 = node2.parentNode)) {
3151 throw new Error(`transition ${id2} not found`);
3152 }
3153 }
3154 return timing;
3155 }
3156 function selection_transition(name2) {
3157 var id2, timing;
3158 if (name2 instanceof Transition) {
3159 id2 = name2._id, name2 = name2._name;
3160 } else {
3161 id2 = newId(), (timing = defaultTiming).time = now$2(), name2 = name2 == null ? null : name2 + "";
3162 }
3163 for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {
3164 for (var group = groups[j], n = group.length, node2, i2 = 0; i2 < n; ++i2) {
3165 if (node2 = group[i2]) {
3166 schedule(node2, name2, id2, i2, group, timing || inherit(node2, id2));
3167 }
3168 }
3169 }
3170 return new Transition(groups, this._parents, name2, id2);
3171 }
3172 selection.prototype.interrupt = selection_interrupt;
3173 selection.prototype.transition = selection_transition;
3174 const pi$1 = Math.PI, tau$1 = 2 * pi$1, epsilon$1 = 1e-6, tauEpsilon = tau$1 - epsilon$1;
3175 function Path() {
3176 this._x0 = this._y0 = // start of current subpath
3177 this._x1 = this._y1 = null;
3178 this._ = "";
3179 }
3180 function path() {
3181 return new Path();
3182 }
3183 Path.prototype = path.prototype = {
3184 constructor: Path,
3185 moveTo: function(x2, y2) {
3186 this._ += "M" + (this._x0 = this._x1 = +x2) + "," + (this._y0 = this._y1 = +y2);
3187 },
3188 closePath: function() {
3189 if (this._x1 !== null) {
3190 this._x1 = this._x0, this._y1 = this._y0;
3191 this._ += "Z";
3192 }
3193 },
3194 lineTo: function(x2, y2) {
3195 this._ += "L" + (this._x1 = +x2) + "," + (this._y1 = +y2);
3196 },
3197 quadraticCurveTo: function(x1, y1, x2, y2) {
3198 this._ += "Q" + +x1 + "," + +y1 + "," + (this._x1 = +x2) + "," + (this._y1 = +y2);
3199 },
3200 bezierCurveTo: function(x1, y1, x2, y2, x3, y3) {
3201 this._ += "C" + +x1 + "," + +y1 + "," + +x2 + "," + +y2 + "," + (this._x1 = +x3) + "," + (this._y1 = +y3);
3202 },
3203 arcTo: function(x1, y1, x2, y2, r) {
3204 x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;
3205 var x0 = this._x1, y0 = this._y1, x21 = x2 - x1, y21 = y2 - y1, x01 = x0 - x1, y01 = y0 - y1, l01_2 = x01 * x01 + y01 * y01;
3206 if (r < 0)
3207 throw new Error("negative radius: " + r);
3208 if (this._x1 === null) {
3209 this._ += "M" + (this._x1 = x1) + "," + (this._y1 = y1);
3210 } else if (!(l01_2 > epsilon$1))
3211 ;
3212 else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon$1) || !r) {
3213 this._ += "L" + (this._x1 = x1) + "," + (this._y1 = y1);
3214 } else {
3215 var x20 = x2 - x0, y20 = y2 - y0, l21_2 = x21 * x21 + y21 * y21, l20_2 = x20 * x20 + y20 * y20, l21 = Math.sqrt(l21_2), l01 = Math.sqrt(l01_2), l = r * Math.tan((pi$1 - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2), t01 = l / l01, t21 = l / l21;
3216 if (Math.abs(t01 - 1) > epsilon$1) {
3217 this._ += "L" + (x1 + t01 * x01) + "," + (y1 + t01 * y01);
3218 }
3219 this._ += "A" + r + "," + r + ",0,0," + +(y01 * x20 > x01 * y20) + "," + (this._x1 = x1 + t21 * x21) + "," + (this._y1 = y1 + t21 * y21);
3220 }
3221 },
3222 arc: function(x2, y2, r, a0, a1, ccw) {
3223 x2 = +x2, y2 = +y2, r = +r, ccw = !!ccw;
3224 var dx = r * Math.cos(a0), dy = r * Math.sin(a0), x0 = x2 + dx, y0 = y2 + dy, cw = 1 ^ ccw, da = ccw ? a0 - a1 : a1 - a0;
3225 if (r < 0)
3226 throw new Error("negative radius: " + r);
3227 if (this._x1 === null) {
3228 this._ += "M" + x0 + "," + y0;
3229 } else if (Math.abs(this._x1 - x0) > epsilon$1 || Math.abs(this._y1 - y0) > epsilon$1) {
3230 this._ += "L" + x0 + "," + y0;
3231 }
3232 if (!r)
3233 return;
3234 if (da < 0)
3235 da = da % tau$1 + tau$1;
3236 if (da > tauEpsilon) {
3237 this._ += "A" + r + "," + r + ",0,1," + cw + "," + (x2 - dx) + "," + (y2 - dy) + "A" + r + "," + r + ",0,1," + cw + "," + (this._x1 = x0) + "," + (this._y1 = y0);
3238 } else if (da > epsilon$1) {
3239 this._ += "A" + r + "," + r + ",0," + +(da >= pi$1) + "," + cw + "," + (this._x1 = x2 + r * Math.cos(a1)) + "," + (this._y1 = y2 + r * Math.sin(a1));
3240 }
3241 },
3242 rect: function(x2, y2, w2, h) {
3243 this._ += "M" + (this._x0 = this._x1 = +x2) + "," + (this._y0 = this._y1 = +y2) + "h" + +w2 + "v" + +h + "h" + -w2 + "Z";
3244 },
3245 toString: function() {
3246 return this._;
3247 }
3248 };
3249 function responseText(response) {
3250 if (!response.ok)
3251 throw new Error(response.status + " " + response.statusText);
3252 return response.text();
3253 }
3254 function text$3(input, init2) {
3255 return fetch(input, init2).then(responseText);
3256 }
3257 function parser$p(type2) {
3258 return (input, init2) => text$3(input, init2).then((text2) => new DOMParser().parseFromString(text2, type2));
3259 }
3260 var svg$2 = parser$p("image/svg+xml");
3261 function formatDecimal(x2) {
3262 return Math.abs(x2 = Math.round(x2)) >= 1e21 ? x2.toLocaleString("en").replace(/,/g, "") : x2.toString(10);
3263 }
3264 function formatDecimalParts(x2, p) {
3265 if ((i2 = (x2 = p ? x2.toExponential(p - 1) : x2.toExponential()).indexOf("e")) < 0)
3266 return null;
3267 var i2, coefficient = x2.slice(0, i2);
3268 return [
3269 coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,
3270 +x2.slice(i2 + 1)
3271 ];
3272 }
3273 function exponent(x2) {
3274 return x2 = formatDecimalParts(Math.abs(x2)), x2 ? x2[1] : NaN;
3275 }
3276 function formatGroup(grouping, thousands) {
3277 return function(value, width2) {
3278 var i2 = value.length, t4 = [], j = 0, g = grouping[0], length2 = 0;
3279 while (i2 > 0 && g > 0) {
3280 if (length2 + g + 1 > width2)
3281 g = Math.max(1, width2 - length2);
3282 t4.push(value.substring(i2 -= g, i2 + g));
3283 if ((length2 += g + 1) > width2)
3284 break;
3285 g = grouping[j = (j + 1) % grouping.length];
3286 }
3287 return t4.reverse().join(thousands);
3288 };
3289 }
3290 function formatNumerals(numerals) {
3291 return function(value) {
3292 return value.replace(/[0-9]/g, function(i2) {
3293 return numerals[+i2];
3294 });
3295 };
3296 }
3297 var re = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
3298 function formatSpecifier(specifier) {
3299 if (!(match = re.exec(specifier)))
3300 throw new Error("invalid format: " + specifier);
3301 var match;
3302 return new FormatSpecifier({
3303 fill: match[1],
3304 align: match[2],
3305 sign: match[3],
3306 symbol: match[4],
3307 zero: match[5],
3308 width: match[6],
3309 comma: match[7],
3310 precision: match[8] && match[8].slice(1),
3311 trim: match[9],
3312 type: match[10]
3313 });
3314 }
3315 formatSpecifier.prototype = FormatSpecifier.prototype;
3316 function FormatSpecifier(specifier) {
3317 this.fill = specifier.fill === void 0 ? " " : specifier.fill + "";
3318 this.align = specifier.align === void 0 ? ">" : specifier.align + "";
3319 this.sign = specifier.sign === void 0 ? "-" : specifier.sign + "";
3320 this.symbol = specifier.symbol === void 0 ? "" : specifier.symbol + "";
3321 this.zero = !!specifier.zero;
3322 this.width = specifier.width === void 0 ? void 0 : +specifier.width;
3323 this.comma = !!specifier.comma;
3324 this.precision = specifier.precision === void 0 ? void 0 : +specifier.precision;
3325 this.trim = !!specifier.trim;
3326 this.type = specifier.type === void 0 ? "" : specifier.type + "";
3327 }
3328 FormatSpecifier.prototype.toString = function() {
3329 return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === void 0 ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === void 0 ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type;
3330 };
3331 function formatTrim(s) {
3332 out:
3333 for (var n = s.length, i2 = 1, i0 = -1, i1; i2 < n; ++i2) {
3334 switch (s[i2]) {
3335 case ".":
3336 i0 = i1 = i2;
3337 break;
3338 case "0":
3339 if (i0 === 0)
3340 i0 = i2;
3341 i1 = i2;
3342 break;
3343 default:
3344 if (!+s[i2])
3345 break out;
3346 if (i0 > 0)
3347 i0 = 0;
3348 break;
3349 }
3350 }
3351 return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;
3352 }
3353 var prefixExponent;
3354 function formatPrefixAuto(x2, p) {
3355 var d = formatDecimalParts(x2, p);
3356 if (!d)
3357 return x2 + "";
3358 var coefficient = d[0], exponent2 = d[1], i2 = exponent2 - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent2 / 3))) * 3) + 1, n = coefficient.length;
3359 return i2 === n ? coefficient : i2 > n ? coefficient + new Array(i2 - n + 1).join("0") : i2 > 0 ? coefficient.slice(0, i2) + "." + coefficient.slice(i2) : "0." + new Array(1 - i2).join("0") + formatDecimalParts(x2, Math.max(0, p + i2 - 1))[0];
3360 }
3361 function formatRounded(x2, p) {
3362 var d = formatDecimalParts(x2, p);
3363 if (!d)
3364 return x2 + "";
3365 var coefficient = d[0], exponent2 = d[1];
3366 return exponent2 < 0 ? "0." + new Array(-exponent2).join("0") + coefficient : coefficient.length > exponent2 + 1 ? coefficient.slice(0, exponent2 + 1) + "." + coefficient.slice(exponent2 + 1) : coefficient + new Array(exponent2 - coefficient.length + 2).join("0");
3367 }
3368 const formatTypes = {
3369 "%": (x2, p) => (x2 * 100).toFixed(p),
3370 "b": (x2) => Math.round(x2).toString(2),
3371 "c": (x2) => x2 + "",
3372 "d": formatDecimal,
3373 "e": (x2, p) => x2.toExponential(p),
3374 "f": (x2, p) => x2.toFixed(p),
3375 "g": (x2, p) => x2.toPrecision(p),
3376 "o": (x2) => Math.round(x2).toString(8),
3377 "p": (x2, p) => formatRounded(x2 * 100, p),
3378 "r": formatRounded,
3379 "s": formatPrefixAuto,
3380 "X": (x2) => Math.round(x2).toString(16).toUpperCase(),
3381 "x": (x2) => Math.round(x2).toString(16)
3382 };
3383 function identity$3(x2) {
3384 return x2;
3385 }
3386 var map$2 = Array.prototype.map, prefixes = ["y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"];
3387 function formatLocale$1(locale2) {
3388 var group = locale2.grouping === void 0 || locale2.thousands === void 0 ? identity$3 : formatGroup(map$2.call(locale2.grouping, Number), locale2.thousands + ""), currencyPrefix = locale2.currency === void 0 ? "" : locale2.currency[0] + "", currencySuffix = locale2.currency === void 0 ? "" : locale2.currency[1] + "", decimal = locale2.decimal === void 0 ? "." : locale2.decimal + "", numerals = locale2.numerals === void 0 ? identity$3 : formatNumerals(map$2.call(locale2.numerals, String)), percent = locale2.percent === void 0 ? "%" : locale2.percent + "", minus = locale2.minus === void 0 ? "−" : locale2.minus + "", nan = locale2.nan === void 0 ? "NaN" : locale2.nan + "";
3389 function newFormat(specifier) {
3390 specifier = formatSpecifier(specifier);
3391 var fill = specifier.fill, align = specifier.align, sign2 = specifier.sign, symbol = specifier.symbol, zero2 = specifier.zero, width2 = specifier.width, comma = specifier.comma, precision = specifier.precision, trim2 = specifier.trim, type2 = specifier.type;
3392 if (type2 === "n")
3393 comma = true, type2 = "g";
3394 else if (!formatTypes[type2])
3395 precision === void 0 && (precision = 12), trim2 = true, type2 = "g";
3396 if (zero2 || fill === "0" && align === "=")
3397 zero2 = true, fill = "0", align = "=";
3398 var prefix = symbol === "$" ? currencyPrefix : symbol === "#" && /[boxX]/.test(type2) ? "0" + type2.toLowerCase() : "", suffix = symbol === "$" ? currencySuffix : /[%p]/.test(type2) ? percent : "";
3399 var formatType = formatTypes[type2], maybeSuffix = /[defgprs%]/.test(type2);
3400 precision = precision === void 0 ? 6 : /[gprs]/.test(type2) ? Math.max(1, Math.min(21, precision)) : Math.max(0, Math.min(20, precision));
3401 function format2(value) {
3402 var valuePrefix = prefix, valueSuffix = suffix, i2, n, c2;
3403 if (type2 === "c") {
3404 valueSuffix = formatType(value) + valueSuffix;
3405 value = "";
3406 } else {
3407 value = +value;
3408 var valueNegative = value < 0 || 1 / value < 0;
3409 value = isNaN(value) ? nan : formatType(Math.abs(value), precision);
3410 if (trim2)
3411 value = formatTrim(value);
3412 if (valueNegative && +value === 0 && sign2 !== "+")
3413 valueNegative = false;
3414 valuePrefix = (valueNegative ? sign2 === "(" ? sign2 : minus : sign2 === "-" || sign2 === "(" ? "" : sign2) + valuePrefix;
3415 valueSuffix = (type2 === "s" ? prefixes[8 + prefixExponent / 3] : "") + valueSuffix + (valueNegative && sign2 === "(" ? ")" : "");
3416 if (maybeSuffix) {
3417 i2 = -1, n = value.length;
3418 while (++i2 < n) {
3419 if (c2 = value.charCodeAt(i2), 48 > c2 || c2 > 57) {
3420 valueSuffix = (c2 === 46 ? decimal + value.slice(i2 + 1) : value.slice(i2)) + valueSuffix;
3421 value = value.slice(0, i2);
3422 break;
3423 }
3424 }
3425 }
3426 }
3427 if (comma && !zero2)
3428 value = group(value, Infinity);
3429 var length2 = valuePrefix.length + value.length + valueSuffix.length, padding2 = length2 < width2 ? new Array(width2 - length2 + 1).join(fill) : "";
3430 if (comma && zero2)
3431 value = group(padding2 + value, padding2.length ? width2 - valueSuffix.length : Infinity), padding2 = "";
3432 switch (align) {
3433 case "<":
3434 value = valuePrefix + value + valueSuffix + padding2;
3435 break;
3436 case "=":
3437 value = valuePrefix + padding2 + value + valueSuffix;
3438 break;
3439 case "^":
3440 value = padding2.slice(0, length2 = padding2.length >> 1) + valuePrefix + value + valueSuffix + padding2.slice(length2);
3441 break;
3442 default:
3443 value = padding2 + valuePrefix + value + valueSuffix;
3444 break;
3445 }
3446 return numerals(value);
3447 }
3448 format2.toString = function() {
3449 return specifier + "";
3450 };
3451 return format2;
3452 }
3453 function formatPrefix2(specifier, value) {
3454 var f2 = newFormat((specifier = formatSpecifier(specifier), specifier.type = "f", specifier)), e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3, k = Math.pow(10, -e), prefix = prefixes[8 + e / 3];
3455 return function(value2) {
3456 return f2(k * value2) + prefix;
3457 };
3458 }
3459 return {
3460 format: newFormat,
3461 formatPrefix: formatPrefix2
3462 };
3463 }
3464 var locale$2;
3465 var format;
3466 var formatPrefix;
3467 defaultLocale$1({
3468 thousands: ",",
3469 grouping: [3],
3470 currency: ["$", ""]
3471 });
3472 function defaultLocale$1(definition2) {
3473 locale$2 = formatLocale$1(definition2);
3474 format = locale$2.format;
3475 formatPrefix = locale$2.formatPrefix;
3476 return locale$2;
3477 }
3478 function precisionFixed(step) {
3479 return Math.max(0, -exponent(Math.abs(step)));
3480 }
3481 function precisionPrefix(step, value) {
3482 return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));
3483 }
3484 function precisionRound(step, max2) {
3485 step = Math.abs(step), max2 = Math.abs(max2) - step;
3486 return Math.max(0, exponent(max2) - exponent(step)) + 1;
3487 }
3488 function initRange(domain, range2) {
3489 switch (arguments.length) {
3490 case 0:
3491 break;
3492 case 1:
3493 this.range(domain);
3494 break;
3495 default:
3496 this.range(range2).domain(domain);
3497 break;
3498 }
3499 return this;
3500 }
3501 const implicit = Symbol("implicit");
3502 function ordinal() {
3503 var index2 = new InternMap(), domain = [], range2 = [], unknown = implicit;
3504 function scale(d) {
3505 let i2 = index2.get(d);
3506 if (i2 === void 0) {
3507 if (unknown !== implicit)
3508 return unknown;
3509 index2.set(d, i2 = domain.push(d) - 1);
3510 }
3511 return range2[i2 % range2.length];
3512 }
3513 scale.domain = function(_2) {
3514 if (!arguments.length)
3515 return domain.slice();
3516 domain = [], index2 = new InternMap();
3517 for (const value of _2) {
3518 if (index2.has(value))
3519 continue;
3520 index2.set(value, domain.push(value) - 1);
3521 }
3522 return scale;
3523 };
3524 scale.range = function(_2) {
3525 return arguments.length ? (range2 = Array.from(_2), scale) : range2.slice();
3526 };
3527 scale.unknown = function(_2) {
3528 return arguments.length ? (unknown = _2, scale) : unknown;
3529 };
3530 scale.copy = function() {
3531 return ordinal(domain, range2).unknown(unknown);
3532 };
3533 initRange.apply(scale, arguments);
3534 return scale;
3535 }
3536 function constants(x2) {
3537 return function() {
3538 return x2;
3539 };
3540 }
3541 function number$1(x2) {
3542 return +x2;
3543 }
3544 var unit$1 = [0, 1];
3545 function identity$2(x2) {
3546 return x2;
3547 }
3548 function normalize(a, b) {
3549 return (b -= a = +a) ? function(x2) {
3550 return (x2 - a) / b;
3551 } : constants(isNaN(b) ? NaN : 0.5);
3552 }
3553 function clamper(a, b) {
3554 var t4;
3555 if (a > b)
3556 t4 = a, a = b, b = t4;
3557 return function(x2) {
3558 return Math.max(a, Math.min(b, x2));
3559 };
3560 }
3561 function bimap(domain, range2, interpolate2) {
3562 var d0 = domain[0], d1 = domain[1], r0 = range2[0], r1 = range2[1];
3563 if (d1 < d0)
3564 d0 = normalize(d1, d0), r0 = interpolate2(r1, r0);
3565 else
3566 d0 = normalize(d0, d1), r0 = interpolate2(r0, r1);
3567 return function(x2) {
3568 return r0(d0(x2));
3569 };
3570 }
3571 function polymap(domain, range2, interpolate2) {
3572 var j = Math.min(domain.length, range2.length) - 1, d = new Array(j), r = new Array(j), i2 = -1;
3573 if (domain[j] < domain[0]) {
3574 domain = domain.slice().reverse();
3575 range2 = range2.slice().reverse();
3576 }
3577 while (++i2 < j) {
3578 d[i2] = normalize(domain[i2], domain[i2 + 1]);
3579 r[i2] = interpolate2(range2[i2], range2[i2 + 1]);
3580 }
3581 return function(x2) {
3582 var i3 = bisect(domain, x2, 1, j) - 1;
3583 return r[i3](d[i3](x2));
3584 };
3585 }
3586 function copy$1(source, target) {
3587 return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());
3588 }
3589 function transformer() {
3590 var domain = unit$1, range2 = unit$1, interpolate2 = interpolate$1, transform, untransform, unknown, clamp = identity$2, piecewise, output, input;
3591 function rescale() {
3592 var n = Math.min(domain.length, range2.length);
3593 if (clamp !== identity$2)
3594 clamp = clamper(domain[0], domain[n - 1]);
3595 piecewise = n > 2 ? polymap : bimap;
3596 output = input = null;
3597 return scale;
3598 }
3599 function scale(x2) {
3600 return x2 == null || isNaN(x2 = +x2) ? unknown : (output || (output = piecewise(domain.map(transform), range2, interpolate2)))(transform(clamp(x2)));
3601 }
3602 scale.invert = function(y2) {
3603 return clamp(untransform((input || (input = piecewise(range2, domain.map(transform), interpolateNumber)))(y2)));
3604 };
3605 scale.domain = function(_2) {
3606 return arguments.length ? (domain = Array.from(_2, number$1), rescale()) : domain.slice();
3607 };
3608 scale.range = function(_2) {
3609 return arguments.length ? (range2 = Array.from(_2), rescale()) : range2.slice();
3610 };
3611 scale.rangeRound = function(_2) {
3612 return range2 = Array.from(_2), interpolate2 = interpolateRound, rescale();
3613 };
3614 scale.clamp = function(_2) {
3615 return arguments.length ? (clamp = _2 ? true : identity$2, rescale()) : clamp !== identity$2;
3616 };
3617 scale.interpolate = function(_2) {
3618 return arguments.length ? (interpolate2 = _2, rescale()) : interpolate2;
3619 };
3620 scale.unknown = function(_2) {
3621 return arguments.length ? (unknown = _2, scale) : unknown;
3622 };
3623 return function(t4, u2) {
3624 transform = t4, untransform = u2;
3625 return rescale();
3626 };
3627 }
3628 function continuous() {
3629 return transformer()(identity$2, identity$2);
3630 }
3631 function tickFormat(start2, stop, count, specifier) {
3632 var step = tickStep(start2, stop, count), precision;
3633 specifier = formatSpecifier(specifier == null ? ",f" : specifier);
3634 switch (specifier.type) {
3635 case "s": {
3636 var value = Math.max(Math.abs(start2), Math.abs(stop));
3637 if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value)))
3638 specifier.precision = precision;
3639 return formatPrefix(specifier, value);
3640 }
3641 case "":
3642 case "e":
3643 case "g":
3644 case "p":
3645 case "r": {
3646 if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start2), Math.abs(stop)))))
3647 specifier.precision = precision - (specifier.type === "e");
3648 break;
3649 }
3650 case "f":
3651 case "%": {
3652 if (specifier.precision == null && !isNaN(precision = precisionFixed(step)))
3653 specifier.precision = precision - (specifier.type === "%") * 2;
3654 break;
3655 }
3656 }
3657 return format(specifier);
3658 }
3659 function linearish(scale) {
3660 var domain = scale.domain;
3661 scale.ticks = function(count) {
3662 var d = domain();
3663 return ticks(d[0], d[d.length - 1], count == null ? 10 : count);
3664 };
3665 scale.tickFormat = function(count, specifier) {
3666 var d = domain();
3667 return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);
3668 };
3669 scale.nice = function(count) {
3670 if (count == null)
3671 count = 10;
3672 var d = domain();
3673 var i0 = 0;
3674 var i1 = d.length - 1;
3675 var start2 = d[i0];
3676 var stop = d[i1];
3677 var prestep;
3678 var step;
3679 var maxIter = 10;
3680 if (stop < start2) {
3681 step = start2, start2 = stop, stop = step;
3682 step = i0, i0 = i1, i1 = step;
3683 }
3684 while (maxIter-- > 0) {
3685 step = tickIncrement(start2, stop, count);
3686 if (step === prestep) {
3687 d[i0] = start2;
3688 d[i1] = stop;
3689 return domain(d);
3690 } else if (step > 0) {
3691 start2 = Math.floor(start2 / step) * step;
3692 stop = Math.ceil(stop / step) * step;
3693 } else if (step < 0) {
3694 start2 = Math.ceil(start2 * step) / step;
3695 stop = Math.floor(stop * step) / step;
3696 } else {
3697 break;
3698 }
3699 prestep = step;
3700 }
3701 return scale;
3702 };
3703 return scale;
3704 }
3705 function linear() {
3706 var scale = continuous();
3707 scale.copy = function() {
3708 return copy$1(scale, linear());
3709 };
3710 initRange.apply(scale, arguments);
3711 return linearish(scale);
3712 }
3713 function nice(domain, interval2) {
3714 domain = domain.slice();
3715 var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], t4;
3716 if (x1 < x0) {
3717 t4 = i0, i0 = i1, i1 = t4;
3718 t4 = x0, x0 = x1, x1 = t4;
3719 }
3720 domain[i0] = interval2.floor(x0);
3721 domain[i1] = interval2.ceil(x1);
3722 return domain;
3723 }
3724 var t0 = /* @__PURE__ */ new Date(), t1 = /* @__PURE__ */ new Date();
3725 function newInterval(floori, offseti, count, field) {
3726 function interval2(date2) {
3727 return floori(date2 = arguments.length === 0 ? /* @__PURE__ */ new Date() : /* @__PURE__ */ new Date(+date2)), date2;
3728 }
3729 interval2.floor = function(date2) {
3730 return floori(date2 = /* @__PURE__ */ new Date(+date2)), date2;
3731 };
3732 interval2.ceil = function(date2) {
3733 return floori(date2 = new Date(date2 - 1)), offseti(date2, 1), floori(date2), date2;
3734 };
3735 interval2.round = function(date2) {
3736 var d0 = interval2(date2), d1 = interval2.ceil(date2);
3737 return date2 - d0 < d1 - date2 ? d0 : d1;
3738 };
3739 interval2.offset = function(date2, step) {
3740 return offseti(date2 = /* @__PURE__ */ new Date(+date2), step == null ? 1 : Math.floor(step)), date2;
3741 };
3742 interval2.range = function(start2, stop, step) {
3743 var range2 = [], previous2;
3744 start2 = interval2.ceil(start2);
3745 step = step == null ? 1 : Math.floor(step);
3746 if (!(start2 < stop) || !(step > 0))
3747 return range2;
3748 do
3749 range2.push(previous2 = /* @__PURE__ */ new Date(+start2)), offseti(start2, step), floori(start2);
3750 while (previous2 < start2 && start2 < stop);
3751 return range2;
3752 };
3753 interval2.filter = function(test) {
3754 return newInterval(function(date2) {
3755 if (date2 >= date2)
3756 while (floori(date2), !test(date2))
3757 date2.setTime(date2 - 1);
3758 }, function(date2, step) {
3759 if (date2 >= date2) {
3760 if (step < 0)
3761 while (++step <= 0) {
3762 while (offseti(date2, -1), !test(date2)) {
3763 }
3764 }
3765 else
3766 while (--step >= 0) {
3767 while (offseti(date2, 1), !test(date2)) {
3768 }
3769 }
3770 }
3771 });
3772 };
3773 if (count) {
3774 interval2.count = function(start2, end2) {
3775 t0.setTime(+start2), t1.setTime(+end2);
3776 floori(t0), floori(t1);
3777 return Math.floor(count(t0, t1));
3778 };
3779 interval2.every = function(step) {
3780 step = Math.floor(step);
3781 return !isFinite(step) || !(step > 0) ? null : !(step > 1) ? interval2 : interval2.filter(field ? function(d) {
3782 return field(d) % step === 0;
3783 } : function(d) {
3784 return interval2.count(0, d) % step === 0;
3785 });
3786 };
3787 }
3788 return interval2;
3789 }
3790 var millisecond = newInterval(function() {
3791 }, function(date2, step) {
3792 date2.setTime(+date2 + step);
3793 }, function(start2, end2) {
3794 return end2 - start2;
3795 });
3796 millisecond.every = function(k) {
3797 k = Math.floor(k);
3798 if (!isFinite(k) || !(k > 0))
3799 return null;
3800 if (!(k > 1))
3801 return millisecond;
3802 return newInterval(function(date2) {
3803 date2.setTime(Math.floor(date2 / k) * k);
3804 }, function(date2, step) {
3805 date2.setTime(+date2 + step * k);
3806 }, function(start2, end2) {
3807 return (end2 - start2) / k;
3808 });
3809 };
3810 const millisecond$1 = millisecond;
3811 millisecond.range;
3812 const durationSecond = 1e3;
3813 const durationMinute = durationSecond * 60;
3814 const durationHour = durationMinute * 60;
3815 const durationDay = durationHour * 24;
3816 const durationWeek = durationDay * 7;
3817 const durationMonth = durationDay * 30;
3818 const durationYear = durationDay * 365;
3819 var second = newInterval(function(date2) {
3820 date2.setTime(date2 - date2.getMilliseconds());
3821 }, function(date2, step) {
3822 date2.setTime(+date2 + step * durationSecond);
3823 }, function(start2, end2) {
3824 return (end2 - start2) / durationSecond;
3825 }, function(date2) {
3826 return date2.getUTCSeconds();
3827 });
3828 const utcSecond = second;
3829 second.range;
3830 var minute = newInterval(function(date2) {
3831 date2.setTime(date2 - date2.getMilliseconds() - date2.getSeconds() * durationSecond);
3832 }, function(date2, step) {
3833 date2.setTime(+date2 + step * durationMinute);
3834 }, function(start2, end2) {
3835 return (end2 - start2) / durationMinute;
3836 }, function(date2) {
3837 return date2.getMinutes();
3838 });
3839 const timeMinute = minute;
3840 minute.range;
3841 var hour = newInterval(function(date2) {
3842 date2.setTime(date2 - date2.getMilliseconds() - date2.getSeconds() * durationSecond - date2.getMinutes() * durationMinute);
3843 }, function(date2, step) {
3844 date2.setTime(+date2 + step * durationHour);
3845 }, function(start2, end2) {
3846 return (end2 - start2) / durationHour;
3847 }, function(date2) {
3848 return date2.getHours();
3849 });
3850 const timeHour = hour;
3851 hour.range;
3852 var day = newInterval(
3853 (date2) => date2.setHours(0, 0, 0, 0),
3854 (date2, step) => date2.setDate(date2.getDate() + step),
3855 (start2, end2) => (end2 - start2 - (end2.getTimezoneOffset() - start2.getTimezoneOffset()) * durationMinute) / durationDay,
3856 (date2) => date2.getDate() - 1
3857 );
3858 const timeDay = day;
3859 day.range;
3860 function weekday(i2) {
3861 return newInterval(function(date2) {
3862 date2.setDate(date2.getDate() - (date2.getDay() + 7 - i2) % 7);
3863 date2.setHours(0, 0, 0, 0);
3864 }, function(date2, step) {
3865 date2.setDate(date2.getDate() + step * 7);
3866 }, function(start2, end2) {
3867 return (end2 - start2 - (end2.getTimezoneOffset() - start2.getTimezoneOffset()) * durationMinute) / durationWeek;
3868 });
3869 }
3870 var sunday = weekday(0);
3871 var monday = weekday(1);
3872 var tuesday = weekday(2);
3873 var wednesday = weekday(3);
3874 var thursday = weekday(4);
3875 var friday = weekday(5);
3876 var saturday = weekday(6);
3877 sunday.range;
3878 monday.range;
3879 tuesday.range;
3880 wednesday.range;
3881 thursday.range;
3882 friday.range;
3883 saturday.range;
3884 var month = newInterval(function(date2) {
3885 date2.setDate(1);
3886 date2.setHours(0, 0, 0, 0);
3887 }, function(date2, step) {
3888 date2.setMonth(date2.getMonth() + step);
3889 }, function(start2, end2) {
3890 return end2.getMonth() - start2.getMonth() + (end2.getFullYear() - start2.getFullYear()) * 12;
3891 }, function(date2) {
3892 return date2.getMonth();
3893 });
3894 const timeMonth = month;
3895 month.range;
3896 var year = newInterval(function(date2) {
3897 date2.setMonth(0, 1);
3898 date2.setHours(0, 0, 0, 0);
3899 }, function(date2, step) {
3900 date2.setFullYear(date2.getFullYear() + step);
3901 }, function(start2, end2) {
3902 return end2.getFullYear() - start2.getFullYear();
3903 }, function(date2) {
3904 return date2.getFullYear();
3905 });
3906 year.every = function(k) {
3907 return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date2) {
3908 date2.setFullYear(Math.floor(date2.getFullYear() / k) * k);
3909 date2.setMonth(0, 1);
3910 date2.setHours(0, 0, 0, 0);
3911 }, function(date2, step) {
3912 date2.setFullYear(date2.getFullYear() + step * k);
3913 });
3914 };
3915 const timeYear = year;
3916 year.range;
3917 var utcDay = newInterval(function(date2) {
3918 date2.setUTCHours(0, 0, 0, 0);
3919 }, function(date2, step) {
3920 date2.setUTCDate(date2.getUTCDate() + step);
3921 }, function(start2, end2) {
3922 return (end2 - start2) / durationDay;
3923 }, function(date2) {
3924 return date2.getUTCDate() - 1;
3925 });
3926 const utcDay$1 = utcDay;
3927 utcDay.range;
3928 function utcWeekday(i2) {
3929 return newInterval(function(date2) {
3930 date2.setUTCDate(date2.getUTCDate() - (date2.getUTCDay() + 7 - i2) % 7);
3931 date2.setUTCHours(0, 0, 0, 0);
3932 }, function(date2, step) {
3933 date2.setUTCDate(date2.getUTCDate() + step * 7);
3934 }, function(start2, end2) {
3935 return (end2 - start2) / durationWeek;
3936 });
3937 }
3938 var utcSunday = utcWeekday(0);
3939 var utcMonday = utcWeekday(1);
3940 var utcTuesday = utcWeekday(2);
3941 var utcWednesday = utcWeekday(3);
3942 var utcThursday = utcWeekday(4);
3943 var utcFriday = utcWeekday(5);
3944 var utcSaturday = utcWeekday(6);
3945 utcSunday.range;
3946 utcMonday.range;
3947 utcTuesday.range;
3948 utcWednesday.range;
3949 utcThursday.range;
3950 utcFriday.range;
3951 utcSaturday.range;
3952 var utcYear = newInterval(function(date2) {
3953 date2.setUTCMonth(0, 1);
3954 date2.setUTCHours(0, 0, 0, 0);
3955 }, function(date2, step) {
3956 date2.setUTCFullYear(date2.getUTCFullYear() + step);
3957 }, function(start2, end2) {
3958 return end2.getUTCFullYear() - start2.getUTCFullYear();
3959 }, function(date2) {
3960 return date2.getUTCFullYear();
3961 });
3962 utcYear.every = function(k) {
3963 return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : newInterval(function(date2) {
3964 date2.setUTCFullYear(Math.floor(date2.getUTCFullYear() / k) * k);
3965 date2.setUTCMonth(0, 1);
3966 date2.setUTCHours(0, 0, 0, 0);
3967 }, function(date2, step) {
3968 date2.setUTCFullYear(date2.getUTCFullYear() + step * k);
3969 });
3970 };
3971 const utcYear$1 = utcYear;
3972 utcYear.range;
3973 function ticker(year2, month2, week, day2, hour2, minute2) {
3974 const tickIntervals = [
3975 [utcSecond, 1, durationSecond],
3976 [utcSecond, 5, 5 * durationSecond],
3977 [utcSecond, 15, 15 * durationSecond],
3978 [utcSecond, 30, 30 * durationSecond],
3979 [minute2, 1, durationMinute],
3980 [minute2, 5, 5 * durationMinute],
3981 [minute2, 15, 15 * durationMinute],
3982 [minute2, 30, 30 * durationMinute],
3983 [hour2, 1, durationHour],
3984 [hour2, 3, 3 * durationHour],
3985 [hour2, 6, 6 * durationHour],
3986 [hour2, 12, 12 * durationHour],
3987 [day2, 1, durationDay],
3988 [day2, 2, 2 * durationDay],
3989 [week, 1, durationWeek],
3990 [month2, 1, durationMonth],
3991 [month2, 3, 3 * durationMonth],
3992 [year2, 1, durationYear]
3993 ];
3994 function ticks2(start2, stop, count) {
3995 const reverse = stop < start2;
3996 if (reverse)
3997 [start2, stop] = [stop, start2];
3998 const interval2 = count && typeof count.range === "function" ? count : tickInterval2(start2, stop, count);
3999 const ticks3 = interval2 ? interval2.range(start2, +stop + 1) : [];
4000 return reverse ? ticks3.reverse() : ticks3;
4001 }
4002 function tickInterval2(start2, stop, count) {
4003 const target = Math.abs(stop - start2) / count;
4004 const i2 = bisector(([, , step2]) => step2).right(tickIntervals, target);
4005 if (i2 === tickIntervals.length)
4006 return year2.every(tickStep(start2 / durationYear, stop / durationYear, count));
4007 if (i2 === 0)
4008 return millisecond$1.every(Math.max(tickStep(start2, stop, count), 1));
4009 const [t4, step] = tickIntervals[target / tickIntervals[i2 - 1][2] < tickIntervals[i2][2] / target ? i2 - 1 : i2];
4010 return t4.every(step);
4011 }
4012 return [ticks2, tickInterval2];
4013 }
4014 const [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, sunday, timeDay, timeHour, timeMinute);
4015 function localDate(d) {
4016 if (0 <= d.y && d.y < 100) {
4017 var date2 = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
4018 date2.setFullYear(d.y);
4019 return date2;
4020 }
4021 return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);
4022 }
4023 function utcDate(d) {
4024 if (0 <= d.y && d.y < 100) {
4025 var date2 = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));
4026 date2.setUTCFullYear(d.y);
4027 return date2;
4028 }
4029 return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));
4030 }
4031 function newDate(y2, m, d) {
4032 return { y: y2, m, d, H: 0, M: 0, S: 0, L: 0 };
4033 }
4034 function formatLocale(locale2) {
4035 var locale_dateTime = locale2.dateTime, locale_date = locale2.date, locale_time = locale2.time, locale_periods = locale2.periods, locale_weekdays = locale2.days, locale_shortWeekdays = locale2.shortDays, locale_months = locale2.months, locale_shortMonths = locale2.shortMonths;
4036 var periodRe = formatRe(locale_periods), periodLookup = formatLookup(locale_periods), weekdayRe = formatRe(locale_weekdays), weekdayLookup = formatLookup(locale_weekdays), shortWeekdayRe = formatRe(locale_shortWeekdays), shortWeekdayLookup = formatLookup(locale_shortWeekdays), monthRe = formatRe(locale_months), monthLookup = formatLookup(locale_months), shortMonthRe = formatRe(locale_shortMonths), shortMonthLookup = formatLookup(locale_shortMonths);
4037 var formats = {
4038 "a": formatShortWeekday,
4039 "A": formatWeekday,
4040 "b": formatShortMonth,
4041 "B": formatMonth,
4042 "c": null,
4043 "d": formatDayOfMonth,
4044 "e": formatDayOfMonth,
4045 "f": formatMicroseconds,
4046 "g": formatYearISO,
4047 "G": formatFullYearISO,
4048 "H": formatHour24,
4049 "I": formatHour12,
4050 "j": formatDayOfYear,
4051 "L": formatMilliseconds,
4052 "m": formatMonthNumber,
4053 "M": formatMinutes,
4054 "p": formatPeriod,
4055 "q": formatQuarter,
4056 "Q": formatUnixTimestamp,
4057 "s": formatUnixTimestampSeconds,
4058 "S": formatSeconds,
4059 "u": formatWeekdayNumberMonday,
4060 "U": formatWeekNumberSunday,
4061 "V": formatWeekNumberISO,
4062 "w": formatWeekdayNumberSunday,
4063 "W": formatWeekNumberMonday,
4064 "x": null,
4065 "X": null,
4066 "y": formatYear,
4067 "Y": formatFullYear,
4068 "Z": formatZone,
4069 "%": formatLiteralPercent
4070 };
4071 var utcFormats = {
4072 "a": formatUTCShortWeekday,
4073 "A": formatUTCWeekday,
4074 "b": formatUTCShortMonth,
4075 "B": formatUTCMonth,
4076 "c": null,
4077 "d": formatUTCDayOfMonth,
4078 "e": formatUTCDayOfMonth,
4079 "f": formatUTCMicroseconds,
4080 "g": formatUTCYearISO,
4081 "G": formatUTCFullYearISO,
4082 "H": formatUTCHour24,
4083 "I": formatUTCHour12,
4084 "j": formatUTCDayOfYear,
4085 "L": formatUTCMilliseconds,
4086 "m": formatUTCMonthNumber,
4087 "M": formatUTCMinutes,
4088 "p": formatUTCPeriod,
4089 "q": formatUTCQuarter,
4090 "Q": formatUnixTimestamp,
4091 "s": formatUnixTimestampSeconds,
4092 "S": formatUTCSeconds,
4093 "u": formatUTCWeekdayNumberMonday,
4094 "U": formatUTCWeekNumberSunday,
4095 "V": formatUTCWeekNumberISO,
4096 "w": formatUTCWeekdayNumberSunday,
4097 "W": formatUTCWeekNumberMonday,
4098 "x": null,
4099 "X": null,
4100 "y": formatUTCYear,
4101 "Y": formatUTCFullYear,
4102 "Z": formatUTCZone,
4103 "%": formatLiteralPercent
4104 };
4105 var parses = {
4106 "a": parseShortWeekday,
4107 "A": parseWeekday,
4108 "b": parseShortMonth,
4109 "B": parseMonth,
4110 "c": parseLocaleDateTime,
4111 "d": parseDayOfMonth,
4112 "e": parseDayOfMonth,
4113 "f": parseMicroseconds,
4114 "g": parseYear,
4115 "G": parseFullYear,
4116 "H": parseHour24,
4117 "I": parseHour24,
4118 "j": parseDayOfYear,
4119 "L": parseMilliseconds,
4120 "m": parseMonthNumber,
4121 "M": parseMinutes,
4122 "p": parsePeriod,
4123 "q": parseQuarter,
4124 "Q": parseUnixTimestamp,
4125 "s": parseUnixTimestampSeconds,
4126 "S": parseSeconds,
4127 "u": parseWeekdayNumberMonday,
4128 "U": parseWeekNumberSunday,
4129 "V": parseWeekNumberISO,
4130 "w": parseWeekdayNumberSunday,
4131 "W": parseWeekNumberMonday,
4132 "x": parseLocaleDate,
4133 "X": parseLocaleTime,
4134 "y": parseYear,
4135 "Y": parseFullYear,
4136 "Z": parseZone,
4137 "%": parseLiteralPercent
4138 };
4139 formats.x = newFormat(locale_date, formats);
4140 formats.X = newFormat(locale_time, formats);
4141 formats.c = newFormat(locale_dateTime, formats);
4142 utcFormats.x = newFormat(locale_date, utcFormats);
4143 utcFormats.X = newFormat(locale_time, utcFormats);
4144 utcFormats.c = newFormat(locale_dateTime, utcFormats);
4145 function newFormat(specifier, formats2) {
4146 return function(date2) {
4147 var string2 = [], i2 = -1, j = 0, n = specifier.length, c2, pad2, format2;
4148 if (!(date2 instanceof Date))
4149 date2 = /* @__PURE__ */ new Date(+date2);
4150 while (++i2 < n) {
4151 if (specifier.charCodeAt(i2) === 37) {
4152 string2.push(specifier.slice(j, i2));
4153 if ((pad2 = pads[c2 = specifier.charAt(++i2)]) != null)
4154 c2 = specifier.charAt(++i2);
4155 else
4156 pad2 = c2 === "e" ? " " : "0";
4157 if (format2 = formats2[c2])
4158 c2 = format2(date2, pad2);
4159 string2.push(c2);
4160 j = i2 + 1;
4161 }
4162 }
4163 string2.push(specifier.slice(j, i2));
4164 return string2.join("");
4165 };
4166 }
4167 function newParse(specifier, Z) {
4168 return function(string2) {
4169 var d = newDate(1900, void 0, 1), i2 = parseSpecifier(d, specifier, string2 += "", 0), week, day2;
4170 if (i2 != string2.length)
4171 return null;
4172 if ("Q" in d)
4173 return new Date(d.Q);
4174 if ("s" in d)
4175 return new Date(d.s * 1e3 + ("L" in d ? d.L : 0));
4176 if (Z && !("Z" in d))
4177 d.Z = 0;
4178 if ("p" in d)
4179 d.H = d.H % 12 + d.p * 12;
4180 if (d.m === void 0)
4181 d.m = "q" in d ? d.q : 0;
4182 if ("V" in d) {
4183 if (d.V < 1 || d.V > 53)
4184 return null;
4185 if (!("w" in d))
4186 d.w = 1;
4187 if ("Z" in d) {
4188 week = utcDate(newDate(d.y, 0, 1)), day2 = week.getUTCDay();
4189 week = day2 > 4 || day2 === 0 ? utcMonday.ceil(week) : utcMonday(week);
4190 week = utcDay$1.offset(week, (d.V - 1) * 7);
4191 d.y = week.getUTCFullYear();
4192 d.m = week.getUTCMonth();
4193 d.d = week.getUTCDate() + (d.w + 6) % 7;
4194 } else {
4195 week = localDate(newDate(d.y, 0, 1)), day2 = week.getDay();
4196 week = day2 > 4 || day2 === 0 ? monday.ceil(week) : monday(week);
4197 week = timeDay.offset(week, (d.V - 1) * 7);
4198 d.y = week.getFullYear();
4199 d.m = week.getMonth();
4200 d.d = week.getDate() + (d.w + 6) % 7;
4201 }
4202 } else if ("W" in d || "U" in d) {
4203 if (!("w" in d))
4204 d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
4205 day2 = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
4206 d.m = 0;
4207 d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day2 + 5) % 7 : d.w + d.U * 7 - (day2 + 6) % 7;
4208 }
4209 if ("Z" in d) {
4210 d.H += d.Z / 100 | 0;
4211 d.M += d.Z % 100;
4212 return utcDate(d);
4213 }
4214 return localDate(d);
4215 };
4216 }
4217 function parseSpecifier(d, specifier, string2, j) {
4218 var i2 = 0, n = specifier.length, m = string2.length, c2, parse2;
4219 while (i2 < n) {
4220 if (j >= m)
4221 return -1;
4222 c2 = specifier.charCodeAt(i2++);
4223 if (c2 === 37) {
4224 c2 = specifier.charAt(i2++);
4225 parse2 = parses[c2 in pads ? specifier.charAt(i2++) : c2];
4226 if (!parse2 || (j = parse2(d, string2, j)) < 0)
4227 return -1;
4228 } else if (c2 != string2.charCodeAt(j++)) {
4229 return -1;
4230 }
4231 }
4232 return j;
4233 }
4234 function parsePeriod(d, string2, i2) {
4235 var n = periodRe.exec(string2.slice(i2));
4236 return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i2 + n[0].length) : -1;
4237 }
4238 function parseShortWeekday(d, string2, i2) {
4239 var n = shortWeekdayRe.exec(string2.slice(i2));
4240 return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i2 + n[0].length) : -1;
4241 }
4242 function parseWeekday(d, string2, i2) {
4243 var n = weekdayRe.exec(string2.slice(i2));
4244 return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i2 + n[0].length) : -1;
4245 }
4246 function parseShortMonth(d, string2, i2) {
4247 var n = shortMonthRe.exec(string2.slice(i2));
4248 return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i2 + n[0].length) : -1;
4249 }
4250 function parseMonth(d, string2, i2) {
4251 var n = monthRe.exec(string2.slice(i2));
4252 return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i2 + n[0].length) : -1;
4253 }
4254 function parseLocaleDateTime(d, string2, i2) {
4255 return parseSpecifier(d, locale_dateTime, string2, i2);
4256 }
4257 function parseLocaleDate(d, string2, i2) {
4258 return parseSpecifier(d, locale_date, string2, i2);
4259 }
4260 function parseLocaleTime(d, string2, i2) {
4261 return parseSpecifier(d, locale_time, string2, i2);
4262 }
4263 function formatShortWeekday(d) {
4264 return locale_shortWeekdays[d.getDay()];
4265 }
4266 function formatWeekday(d) {
4267 return locale_weekdays[d.getDay()];
4268 }
4269 function formatShortMonth(d) {
4270 return locale_shortMonths[d.getMonth()];
4271 }
4272 function formatMonth(d) {
4273 return locale_months[d.getMonth()];
4274 }
4275 function formatPeriod(d) {
4276 return locale_periods[+(d.getHours() >= 12)];
4277 }
4278 function formatQuarter(d) {
4279 return 1 + ~~(d.getMonth() / 3);
4280 }
4281 function formatUTCShortWeekday(d) {
4282 return locale_shortWeekdays[d.getUTCDay()];
4283 }
4284 function formatUTCWeekday(d) {
4285 return locale_weekdays[d.getUTCDay()];
4286 }
4287 function formatUTCShortMonth(d) {
4288 return locale_shortMonths[d.getUTCMonth()];
4289 }
4290 function formatUTCMonth(d) {
4291 return locale_months[d.getUTCMonth()];
4292 }
4293 function formatUTCPeriod(d) {
4294 return locale_periods[+(d.getUTCHours() >= 12)];
4295 }
4296 function formatUTCQuarter(d) {
4297 return 1 + ~~(d.getUTCMonth() / 3);
4298 }
4299 return {
4300 format: function(specifier) {
4301 var f2 = newFormat(specifier += "", formats);
4302 f2.toString = function() {
4303 return specifier;
4304 };
4305 return f2;
4306 },
4307 parse: function(specifier) {
4308 var p = newParse(specifier += "", false);
4309 p.toString = function() {
4310 return specifier;
4311 };
4312 return p;
4313 },
4314 utcFormat: function(specifier) {
4315 var f2 = newFormat(specifier += "", utcFormats);
4316 f2.toString = function() {
4317 return specifier;
4318 };
4319 return f2;
4320 },
4321 utcParse: function(specifier) {
4322 var p = newParse(specifier += "", true);
4323 p.toString = function() {
4324 return specifier;
4325 };
4326 return p;
4327 }
4328 };
4329 }
4330 var pads = { "-": "", "_": " ", "0": "0" }, numberRe = /^\s*\d+/, percentRe = /^%/, requoteRe = /[\\^$*+?|[\]().{}]/g;
4331 function pad(value, fill, width2) {
4332 var sign2 = value < 0 ? "-" : "", string2 = (sign2 ? -value : value) + "", length2 = string2.length;
4333 return sign2 + (length2 < width2 ? new Array(width2 - length2 + 1).join(fill) + string2 : string2);
4334 }
4335 function requote(s) {
4336 return s.replace(requoteRe, "\\$&");
4337 }
4338 function formatRe(names) {
4339 return new RegExp("^(?:" + names.map(requote).join("|") + ")", "i");
4340 }
4341 function formatLookup(names) {
4342 return new Map(names.map((name2, i2) => [name2.toLowerCase(), i2]));
4343 }
4344 function parseWeekdayNumberSunday(d, string2, i2) {
4345 var n = numberRe.exec(string2.slice(i2, i2 + 1));
4346 return n ? (d.w = +n[0], i2 + n[0].length) : -1;
4347 }
4348 function parseWeekdayNumberMonday(d, string2, i2) {
4349 var n = numberRe.exec(string2.slice(i2, i2 + 1));
4350 return n ? (d.u = +n[0], i2 + n[0].length) : -1;
4351 }
4352 function parseWeekNumberSunday(d, string2, i2) {
4353 var n = numberRe.exec(string2.slice(i2, i2 + 2));
4354 return n ? (d.U = +n[0], i2 + n[0].length) : -1;
4355 }
4356 function parseWeekNumberISO(d, string2, i2) {
4357 var n = numberRe.exec(string2.slice(i2, i2 + 2));
4358 return n ? (d.V = +n[0], i2 + n[0].length) : -1;
4359 }
4360 function parseWeekNumberMonday(d, string2, i2) {
4361 var n = numberRe.exec(string2.slice(i2, i2 + 2));
4362 return n ? (d.W = +n[0], i2 + n[0].length) : -1;
4363 }
4364 function parseFullYear(d, string2, i2) {
4365 var n = numberRe.exec(string2.slice(i2, i2 + 4));
4366 return n ? (d.y = +n[0], i2 + n[0].length) : -1;
4367 }
4368 function parseYear(d, string2, i2) {
4369 var n = numberRe.exec(string2.slice(i2, i2 + 2));
4370 return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2e3), i2 + n[0].length) : -1;
4371 }
4372 function parseZone(d, string2, i2) {
4373 var n = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(string2.slice(i2, i2 + 6));
4374 return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || "00")), i2 + n[0].length) : -1;
4375 }
4376 function parseQuarter(d, string2, i2) {
4377 var n = numberRe.exec(string2.slice(i2, i2 + 1));
4378 return n ? (d.q = n[0] * 3 - 3, i2 + n[0].length) : -1;
4379 }
4380 function parseMonthNumber(d, string2, i2) {
4381 var n = numberRe.exec(string2.slice(i2, i2 + 2));
4382 return n ? (d.m = n[0] - 1, i2 + n[0].length) : -1;
4383 }
4384 function parseDayOfMonth(d, string2, i2) {
4385 var n = numberRe.exec(string2.slice(i2, i2 + 2));
4386 return n ? (d.d = +n[0], i2 + n[0].length) : -1;
4387 }
4388 function parseDayOfYear(d, string2, i2) {
4389 var n = numberRe.exec(string2.slice(i2, i2 + 3));
4390 return n ? (d.m = 0, d.d = +n[0], i2 + n[0].length) : -1;
4391 }
4392 function parseHour24(d, string2, i2) {
4393 var n = numberRe.exec(string2.slice(i2, i2 + 2));
4394 return n ? (d.H = +n[0], i2 + n[0].length) : -1;
4395 }
4396 function parseMinutes(d, string2, i2) {
4397 var n = numberRe.exec(string2.slice(i2, i2 + 2));
4398 return n ? (d.M = +n[0], i2 + n[0].length) : -1;
4399 }
4400 function parseSeconds(d, string2, i2) {
4401 var n = numberRe.exec(string2.slice(i2, i2 + 2));
4402 return n ? (d.S = +n[0], i2 + n[0].length) : -1;
4403 }
4404 function parseMilliseconds(d, string2, i2) {
4405 var n = numberRe.exec(string2.slice(i2, i2 + 3));
4406 return n ? (d.L = +n[0], i2 + n[0].length) : -1;
4407 }
4408 function parseMicroseconds(d, string2, i2) {
4409 var n = numberRe.exec(string2.slice(i2, i2 + 6));
4410 return n ? (d.L = Math.floor(n[0] / 1e3), i2 + n[0].length) : -1;
4411 }
4412 function parseLiteralPercent(d, string2, i2) {
4413 var n = percentRe.exec(string2.slice(i2, i2 + 1));
4414 return n ? i2 + n[0].length : -1;
4415 }
4416 function parseUnixTimestamp(d, string2, i2) {
4417 var n = numberRe.exec(string2.slice(i2));
4418 return n ? (d.Q = +n[0], i2 + n[0].length) : -1;
4419 }
4420 function parseUnixTimestampSeconds(d, string2, i2) {
4421 var n = numberRe.exec(string2.slice(i2));
4422 return n ? (d.s = +n[0], i2 + n[0].length) : -1;
4423 }
4424 function formatDayOfMonth(d, p) {
4425 return pad(d.getDate(), p, 2);
4426 }
4427 function formatHour24(d, p) {
4428 return pad(d.getHours(), p, 2);
4429 }
4430 function formatHour12(d, p) {
4431 return pad(d.getHours() % 12 || 12, p, 2);
4432 }
4433 function formatDayOfYear(d, p) {
4434 return pad(1 + timeDay.count(timeYear(d), d), p, 3);
4435 }
4436 function formatMilliseconds(d, p) {
4437 return pad(d.getMilliseconds(), p, 3);
4438 }
4439 function formatMicroseconds(d, p) {
4440 return formatMilliseconds(d, p) + "000";
4441 }
4442 function formatMonthNumber(d, p) {
4443 return pad(d.getMonth() + 1, p, 2);
4444 }
4445 function formatMinutes(d, p) {
4446 return pad(d.getMinutes(), p, 2);
4447 }
4448 function formatSeconds(d, p) {
4449 return pad(d.getSeconds(), p, 2);
4450 }
4451 function formatWeekdayNumberMonday(d) {
4452 var day2 = d.getDay();
4453 return day2 === 0 ? 7 : day2;
4454 }
4455 function formatWeekNumberSunday(d, p) {
4456 return pad(sunday.count(timeYear(d) - 1, d), p, 2);
4457 }
4458 function dISO(d) {
4459 var day2 = d.getDay();
4460 return day2 >= 4 || day2 === 0 ? thursday(d) : thursday.ceil(d);
4461 }
4462 function formatWeekNumberISO(d, p) {
4463 d = dISO(d);
4464 return pad(thursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);
4465 }
4466 function formatWeekdayNumberSunday(d) {
4467 return d.getDay();
4468 }
4469 function formatWeekNumberMonday(d, p) {
4470 return pad(monday.count(timeYear(d) - 1, d), p, 2);
4471 }
4472 function formatYear(d, p) {
4473 return pad(d.getFullYear() % 100, p, 2);
4474 }
4475 function formatYearISO(d, p) {
4476 d = dISO(d);
4477 return pad(d.getFullYear() % 100, p, 2);
4478 }
4479 function formatFullYear(d, p) {
4480 return pad(d.getFullYear() % 1e4, p, 4);
4481 }
4482 function formatFullYearISO(d, p) {
4483 var day2 = d.getDay();
4484 d = day2 >= 4 || day2 === 0 ? thursday(d) : thursday.ceil(d);
4485 return pad(d.getFullYear() % 1e4, p, 4);
4486 }
4487 function formatZone(d) {
4488 var z = d.getTimezoneOffset();
4489 return (z > 0 ? "-" : (z *= -1, "+")) + pad(z / 60 | 0, "0", 2) + pad(z % 60, "0", 2);
4490 }
4491 function formatUTCDayOfMonth(d, p) {
4492 return pad(d.getUTCDate(), p, 2);
4493 }
4494 function formatUTCHour24(d, p) {
4495 return pad(d.getUTCHours(), p, 2);
4496 }
4497 function formatUTCHour12(d, p) {
4498 return pad(d.getUTCHours() % 12 || 12, p, 2);
4499 }
4500 function formatUTCDayOfYear(d, p) {
4501 return pad(1 + utcDay$1.count(utcYear$1(d), d), p, 3);
4502 }
4503 function formatUTCMilliseconds(d, p) {
4504 return pad(d.getUTCMilliseconds(), p, 3);
4505 }
4506 function formatUTCMicroseconds(d, p) {
4507 return formatUTCMilliseconds(d, p) + "000";
4508 }
4509 function formatUTCMonthNumber(d, p) {
4510 return pad(d.getUTCMonth() + 1, p, 2);
4511 }
4512 function formatUTCMinutes(d, p) {
4513 return pad(d.getUTCMinutes(), p, 2);
4514 }
4515 function formatUTCSeconds(d, p) {
4516 return pad(d.getUTCSeconds(), p, 2);
4517 }
4518 function formatUTCWeekdayNumberMonday(d) {
4519 var dow = d.getUTCDay();
4520 return dow === 0 ? 7 : dow;
4521 }
4522 function formatUTCWeekNumberSunday(d, p) {
4523 return pad(utcSunday.count(utcYear$1(d) - 1, d), p, 2);
4524 }
4525 function UTCdISO(d) {
4526 var day2 = d.getUTCDay();
4527 return day2 >= 4 || day2 === 0 ? utcThursday(d) : utcThursday.ceil(d);
4528 }
4529 function formatUTCWeekNumberISO(d, p) {
4530 d = UTCdISO(d);
4531 return pad(utcThursday.count(utcYear$1(d), d) + (utcYear$1(d).getUTCDay() === 4), p, 2);
4532 }
4533 function formatUTCWeekdayNumberSunday(d) {
4534 return d.getUTCDay();
4535 }
4536 function formatUTCWeekNumberMonday(d, p) {
4537 return pad(utcMonday.count(utcYear$1(d) - 1, d), p, 2);
4538 }
4539 function formatUTCYear(d, p) {
4540 return pad(d.getUTCFullYear() % 100, p, 2);
4541 }
4542 function formatUTCYearISO(d, p) {
4543 d = UTCdISO(d);
4544 return pad(d.getUTCFullYear() % 100, p, 2);
4545 }
4546 function formatUTCFullYear(d, p) {
4547 return pad(d.getUTCFullYear() % 1e4, p, 4);
4548 }
4549 function formatUTCFullYearISO(d, p) {
4550 var day2 = d.getUTCDay();
4551 d = day2 >= 4 || day2 === 0 ? utcThursday(d) : utcThursday.ceil(d);
4552 return pad(d.getUTCFullYear() % 1e4, p, 4);
4553 }
4554 function formatUTCZone() {
4555 return "+0000";
4556 }
4557 function formatLiteralPercent() {
4558 return "%";
4559 }
4560 function formatUnixTimestamp(d) {
4561 return +d;
4562 }
4563 function formatUnixTimestampSeconds(d) {
4564 return Math.floor(+d / 1e3);
4565 }
4566 var locale$1;
4567 var timeFormat;
4568 defaultLocale({
4569 dateTime: "%x, %X",
4570 date: "%-m/%-d/%Y",
4571 time: "%-I:%M:%S %p",
4572 periods: ["AM", "PM"],
4573 days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
4574 shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
4575 months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
4576 shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
4577 });
4578 function defaultLocale(definition2) {
4579 locale$1 = formatLocale(definition2);
4580 timeFormat = locale$1.format;
4581 locale$1.parse;
4582 locale$1.utcFormat;
4583 locale$1.utcParse;
4584 return locale$1;
4585 }
4586 function date(t4) {
4587 return new Date(t4);
4588 }
4589 function number(t4) {
4590 return t4 instanceof Date ? +t4 : +/* @__PURE__ */ new Date(+t4);
4591 }
4592 function calendar(ticks2, tickInterval2, year2, month2, week, day2, hour2, minute2, second2, format2) {
4593 var scale = continuous(), invert2 = scale.invert, domain = scale.domain;
4594 var formatMillisecond = format2(".%L"), formatSecond = format2(":%S"), formatMinute = format2("%I:%M"), formatHour = format2("%I %p"), formatDay = format2("%a %d"), formatWeek = format2("%b %d"), formatMonth = format2("%B"), formatYear2 = format2("%Y");
4595 function tickFormat2(date2) {
4596 return (second2(date2) < date2 ? formatMillisecond : minute2(date2) < date2 ? formatSecond : hour2(date2) < date2 ? formatMinute : day2(date2) < date2 ? formatHour : month2(date2) < date2 ? week(date2) < date2 ? formatDay : formatWeek : year2(date2) < date2 ? formatMonth : formatYear2)(date2);
4597 }
4598 scale.invert = function(y2) {
4599 return new Date(invert2(y2));
4600 };
4601 scale.domain = function(_2) {
4602 return arguments.length ? domain(Array.from(_2, number)) : domain().map(date);
4603 };
4604 scale.ticks = function(interval2) {
4605 var d = domain();
4606 return ticks2(d[0], d[d.length - 1], interval2 == null ? 10 : interval2);
4607 };
4608 scale.tickFormat = function(count, specifier) {
4609 return specifier == null ? tickFormat2 : format2(specifier);
4610 };
4611 scale.nice = function(interval2) {
4612 var d = domain();
4613 if (!interval2 || typeof interval2.range !== "function")
4614 interval2 = tickInterval2(d[0], d[d.length - 1], interval2 == null ? 10 : interval2);
4615 return interval2 ? domain(nice(d, interval2)) : scale;
4616 };
4617 scale.copy = function() {
4618 return copy$1(scale, calendar(ticks2, tickInterval2, year2, month2, week, day2, hour2, minute2, second2, format2));
4619 };
4620 return scale;
4621 }
4622 function time$1() {
4623 return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, sunday, timeDay, timeHour, timeMinute, utcSecond, timeFormat).domain([new Date(2e3, 0, 1), new Date(2e3, 0, 2)]), arguments);
4624 }
4625 function constant$1(x2) {
4626 return function constant2() {
4627 return x2;
4628 };
4629 }
4630 const abs$1 = Math.abs;
4631 const atan2 = Math.atan2;
4632 const cos = Math.cos;
4633 const max$1 = Math.max;
4634 const min$1 = Math.min;
4635 const sin = Math.sin;
4636 const sqrt = Math.sqrt;
4637 const epsilon = 1e-12;
4638 const pi = Math.PI;
4639 const halfPi = pi / 2;
4640 const tau = 2 * pi;
4641 function acos(x2) {
4642 return x2 > 1 ? 0 : x2 < -1 ? pi : Math.acos(x2);
4643 }
4644 function asin(x2) {
4645 return x2 >= 1 ? halfPi : x2 <= -1 ? -halfPi : Math.asin(x2);
4646 }
4647 function arcInnerRadius(d) {
4648 return d.innerRadius;
4649 }
4650 function arcOuterRadius(d) {
4651 return d.outerRadius;
4652 }
4653 function arcStartAngle(d) {
4654 return d.startAngle;
4655 }
4656 function arcEndAngle(d) {
4657 return d.endAngle;
4658 }
4659 function arcPadAngle(d) {
4660 return d && d.padAngle;
4661 }
4662 function intersect$1(x0, y0, x1, y1, x2, y2, x3, y3) {
4663 var x10 = x1 - x0, y10 = y1 - y0, x32 = x3 - x2, y32 = y3 - y2, t4 = y32 * x10 - x32 * y10;
4664 if (t4 * t4 < epsilon)
4665 return;
4666 t4 = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t4;
4667 return [x0 + t4 * x10, y0 + t4 * y10];
4668 }
4669 function cornerTangents(x0, y0, x1, y1, r1, rc, cw) {
4670 var x01 = x0 - x1, y01 = y0 - y1, lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x11 = x0 + ox, y11 = y0 + oy, x10 = x1 + ox, y10 = y1 + oy, x00 = (x11 + x10) / 2, y00 = (y11 + y10) / 2, dx = x10 - x11, dy = y10 - y11, d2 = dx * dx + dy * dy, r = r1 - rc, D2 = x11 * y10 - x10 * y11, d = (dy < 0 ? -1 : 1) * sqrt(max$1(0, r * r * d2 - D2 * D2)), cx0 = (D2 * dy - dx * d) / d2, cy0 = (-D2 * dx - dy * d) / d2, cx1 = (D2 * dy + dx * d) / d2, cy1 = (-D2 * dx + dy * d) / d2, dx0 = cx0 - x00, dy0 = cy0 - y00, dx1 = cx1 - x00, dy1 = cy1 - y00;
4671 if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1)
4672 cx0 = cx1, cy0 = cy1;
4673 return {
4674 cx: cx0,
4675 cy: cy0,
4676 x01: -ox,
4677 y01: -oy,
4678 x11: cx0 * (r1 / r - 1),
4679 y11: cy0 * (r1 / r - 1)
4680 };
4681 }
4682 function d3arc() {
4683 var innerRadius = arcInnerRadius, outerRadius = arcOuterRadius, cornerRadius = constant$1(0), padRadius = null, startAngle = arcStartAngle, endAngle = arcEndAngle, padAngle = arcPadAngle, context = null;
4684 function arc() {
4685 var buffer, r, r0 = +innerRadius.apply(this, arguments), r1 = +outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) - halfPi, a1 = endAngle.apply(this, arguments) - halfPi, da = abs$1(a1 - a0), cw = a1 > a0;
4686 if (!context)
4687 context = buffer = path();
4688 if (r1 < r0)
4689 r = r1, r1 = r0, r0 = r;
4690 if (!(r1 > epsilon))
4691 context.moveTo(0, 0);
4692 else if (da > tau - epsilon) {
4693 context.moveTo(r1 * cos(a0), r1 * sin(a0));
4694 context.arc(0, 0, r1, a0, a1, !cw);
4695 if (r0 > epsilon) {
4696 context.moveTo(r0 * cos(a1), r0 * sin(a1));
4697 context.arc(0, 0, r0, a1, a0, cw);
4698 }
4699 } else {
4700 var a01 = a0, a11 = a1, a00 = a0, a10 = a1, da0 = da, da1 = da, ap = padAngle.apply(this, arguments) / 2, rp = ap > epsilon && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)), rc = min$1(abs$1(r1 - r0) / 2, +cornerRadius.apply(this, arguments)), rc0 = rc, rc1 = rc, t02, t12;
4701 if (rp > epsilon) {
4702 var p0 = asin(rp / r0 * sin(ap)), p1 = asin(rp / r1 * sin(ap));
4703 if ((da0 -= p0 * 2) > epsilon)
4704 p0 *= cw ? 1 : -1, a00 += p0, a10 -= p0;
4705 else
4706 da0 = 0, a00 = a10 = (a0 + a1) / 2;
4707 if ((da1 -= p1 * 2) > epsilon)
4708 p1 *= cw ? 1 : -1, a01 += p1, a11 -= p1;
4709 else
4710 da1 = 0, a01 = a11 = (a0 + a1) / 2;
4711 }
4712 var x01 = r1 * cos(a01), y01 = r1 * sin(a01), x10 = r0 * cos(a10), y10 = r0 * sin(a10);
4713 if (rc > epsilon) {
4714 var x11 = r1 * cos(a11), y11 = r1 * sin(a11), x00 = r0 * cos(a00), y00 = r0 * sin(a00), oc;
4715 if (da < pi && (oc = intersect$1(x01, y01, x00, y00, x11, y11, x10, y10))) {
4716 var ax = x01 - oc[0], ay = y01 - oc[1], bx = x11 - oc[0], by = y11 - oc[1], kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2), lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);
4717 rc0 = min$1(rc, (r0 - lc) / (kc - 1));
4718 rc1 = min$1(rc, (r1 - lc) / (kc + 1));
4719 }
4720 }
4721 if (!(da1 > epsilon))
4722 context.moveTo(x01, y01);
4723 else if (rc1 > epsilon) {
4724 t02 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);
4725 t12 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);
4726 context.moveTo(t02.cx + t02.x01, t02.cy + t02.y01);
4727 if (rc1 < rc)
4728 context.arc(t02.cx, t02.cy, rc1, atan2(t02.y01, t02.x01), atan2(t12.y01, t12.x01), !cw);
4729 else {
4730 context.arc(t02.cx, t02.cy, rc1, atan2(t02.y01, t02.x01), atan2(t02.y11, t02.x11), !cw);
4731 context.arc(0, 0, r1, atan2(t02.cy + t02.y11, t02.cx + t02.x11), atan2(t12.cy + t12.y11, t12.cx + t12.x11), !cw);
4732 context.arc(t12.cx, t12.cy, rc1, atan2(t12.y11, t12.x11), atan2(t12.y01, t12.x01), !cw);
4733 }
4734 } else
4735 context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);
4736 if (!(r0 > epsilon) || !(da0 > epsilon))
4737 context.lineTo(x10, y10);
4738 else if (rc0 > epsilon) {
4739 t02 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);
4740 t12 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);
4741 context.lineTo(t02.cx + t02.x01, t02.cy + t02.y01);
4742 if (rc0 < rc)
4743 context.arc(t02.cx, t02.cy, rc0, atan2(t02.y01, t02.x01), atan2(t12.y01, t12.x01), !cw);
4744 else {
4745 context.arc(t02.cx, t02.cy, rc0, atan2(t02.y01, t02.x01), atan2(t02.y11, t02.x11), !cw);
4746 context.arc(0, 0, r0, atan2(t02.cy + t02.y11, t02.cx + t02.x11), atan2(t12.cy + t12.y11, t12.cx + t12.x11), cw);
4747 context.arc(t12.cx, t12.cy, rc0, atan2(t12.y11, t12.x11), atan2(t12.y01, t12.x01), !cw);
4748 }
4749 } else
4750 context.arc(0, 0, r0, a10, a00, cw);
4751 }
4752 context.closePath();
4753 if (buffer)
4754 return context = null, buffer + "" || null;
4755 }
4756 arc.centroid = function() {
4757 var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2, a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;
4758 return [cos(a) * r, sin(a) * r];
4759 };
4760 arc.innerRadius = function(_2) {
4761 return arguments.length ? (innerRadius = typeof _2 === "function" ? _2 : constant$1(+_2), arc) : innerRadius;
4762 };
4763 arc.outerRadius = function(_2) {
4764 return arguments.length ? (outerRadius = typeof _2 === "function" ? _2 : constant$1(+_2), arc) : outerRadius;
4765 };
4766 arc.cornerRadius = function(_2) {
4767 return arguments.length ? (cornerRadius = typeof _2 === "function" ? _2 : constant$1(+_2), arc) : cornerRadius;
4768 };
4769 arc.padRadius = function(_2) {
4770 return arguments.length ? (padRadius = _2 == null ? null : typeof _2 === "function" ? _2 : constant$1(+_2), arc) : padRadius;
4771 };
4772 arc.startAngle = function(_2) {
4773 return arguments.length ? (startAngle = typeof _2 === "function" ? _2 : constant$1(+_2), arc) : startAngle;
4774 };
4775 arc.endAngle = function(_2) {
4776 return arguments.length ? (endAngle = typeof _2 === "function" ? _2 : constant$1(+_2), arc) : endAngle;
4777 };
4778 arc.padAngle = function(_2) {
4779 return arguments.length ? (padAngle = typeof _2 === "function" ? _2 : constant$1(+_2), arc) : padAngle;
4780 };
4781 arc.context = function(_2) {
4782 return arguments.length ? (context = _2 == null ? null : _2, arc) : context;
4783 };
4784 return arc;
4785 }
4786 function array(x2) {
4787 return typeof x2 === "object" && "length" in x2 ? x2 : Array.from(x2);
4788 }
4789 function Linear(context) {
4790 this._context = context;
4791 }
4792 Linear.prototype = {
4793 areaStart: function() {
4794 this._line = 0;
4795 },
4796 areaEnd: function() {
4797 this._line = NaN;
4798 },
4799 lineStart: function() {
4800 this._point = 0;
4801 },
4802 lineEnd: function() {
4803 if (this._line || this._line !== 0 && this._point === 1)
4804 this._context.closePath();
4805 this._line = 1 - this._line;
4806 },
4807 point: function(x2, y2) {
4808 x2 = +x2, y2 = +y2;
4809 switch (this._point) {
4810 case 0:
4811 this._point = 1;
4812 this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);
4813 break;
4814 case 1:
4815 this._point = 2;
4816 default:
4817 this._context.lineTo(x2, y2);
4818 break;
4819 }
4820 }
4821 };
4822 function curveLinear(context) {
4823 return new Linear(context);
4824 }
4825 function x(p) {
4826 return p[0];
4827 }
4828 function y(p) {
4829 return p[1];
4830 }
4831 function line$1(x$1, y$1) {
4832 var defined = constant$1(true), context = null, curve = curveLinear, output = null;
4833 x$1 = typeof x$1 === "function" ? x$1 : x$1 === void 0 ? x : constant$1(x$1);
4834 y$1 = typeof y$1 === "function" ? y$1 : y$1 === void 0 ? y : constant$1(y$1);
4835 function line2(data) {
4836 var i2, n = (data = array(data)).length, d, defined0 = false, buffer;
4837 if (context == null)
4838 output = curve(buffer = path());
4839 for (i2 = 0; i2 <= n; ++i2) {
4840 if (!(i2 < n && defined(d = data[i2], i2, data)) === defined0) {
4841 if (defined0 = !defined0)
4842 output.lineStart();
4843 else
4844 output.lineEnd();
4845 }
4846 if (defined0)
4847 output.point(+x$1(d, i2, data), +y$1(d, i2, data));
4848 }
4849 if (buffer)
4850 return output = null, buffer + "" || null;
4851 }
4852 line2.x = function(_2) {
4853 return arguments.length ? (x$1 = typeof _2 === "function" ? _2 : constant$1(+_2), line2) : x$1;
4854 };
4855 line2.y = function(_2) {
4856 return arguments.length ? (y$1 = typeof _2 === "function" ? _2 : constant$1(+_2), line2) : y$1;
4857 };
4858 line2.defined = function(_2) {
4859 return arguments.length ? (defined = typeof _2 === "function" ? _2 : constant$1(!!_2), line2) : defined;
4860 };
4861 line2.curve = function(_2) {
4862 return arguments.length ? (curve = _2, context != null && (output = curve(context)), line2) : curve;
4863 };
4864 line2.context = function(_2) {
4865 return arguments.length ? (_2 == null ? context = output = null : output = curve(context = _2), line2) : context;
4866 };
4867 return line2;
4868 }
4869 function descending(a, b) {
4870 return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
4871 }
4872 function identity$1(d) {
4873 return d;
4874 }
4875 function d3pie() {
4876 var value = identity$1, sortValues = descending, sort2 = null, startAngle = constant$1(0), endAngle = constant$1(tau), padAngle = constant$1(0);
4877 function pie2(data) {
4878 var i2, n = (data = array(data)).length, j, k, sum = 0, index2 = new Array(n), arcs = new Array(n), a0 = +startAngle.apply(this, arguments), da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)), a1, p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)), pa = p * (da < 0 ? -1 : 1), v;
4879 for (i2 = 0; i2 < n; ++i2) {
4880 if ((v = arcs[index2[i2] = i2] = +value(data[i2], i2, data)) > 0) {
4881 sum += v;
4882 }
4883 }
4884 if (sortValues != null)
4885 index2.sort(function(i3, j2) {
4886 return sortValues(arcs[i3], arcs[j2]);
4887 });
4888 else if (sort2 != null)
4889 index2.sort(function(i3, j2) {
4890 return sort2(data[i3], data[j2]);
4891 });
4892 for (i2 = 0, k = sum ? (da - n * pa) / sum : 0; i2 < n; ++i2, a0 = a1) {
4893 j = index2[i2], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {
4894 data: data[j],
4895 index: i2,
4896 value: v,
4897 startAngle: a0,
4898 endAngle: a1,
4899 padAngle: p
4900 };
4901 }
4902 return arcs;
4903 }
4904 pie2.value = function(_2) {
4905 return arguments.length ? (value = typeof _2 === "function" ? _2 : constant$1(+_2), pie2) : value;
4906 };
4907 pie2.sortValues = function(_2) {
4908 return arguments.length ? (sortValues = _2, sort2 = null, pie2) : sortValues;
4909 };
4910 pie2.sort = function(_2) {
4911 return arguments.length ? (sort2 = _2, sortValues = null, pie2) : sort2;
4912 };
4913 pie2.startAngle = function(_2) {
4914 return arguments.length ? (startAngle = typeof _2 === "function" ? _2 : constant$1(+_2), pie2) : startAngle;
4915 };
4916 pie2.endAngle = function(_2) {
4917 return arguments.length ? (endAngle = typeof _2 === "function" ? _2 : constant$1(+_2), pie2) : endAngle;
4918 };
4919 pie2.padAngle = function(_2) {
4920 return arguments.length ? (padAngle = typeof _2 === "function" ? _2 : constant$1(+_2), pie2) : padAngle;
4921 };
4922 return pie2;
4923 }
4924 class Bump {
4925 constructor(context, x2) {
4926 this._context = context;
4927 this._x = x2;
4928 }
4929 areaStart() {
4930 this._line = 0;
4931 }
4932 areaEnd() {
4933 this._line = NaN;
4934 }
4935 lineStart() {
4936 this._point = 0;
4937 }
4938 lineEnd() {
4939 if (this._line || this._line !== 0 && this._point === 1)
4940 this._context.closePath();
4941 this._line = 1 - this._line;
4942 }
4943 point(x2, y2) {
4944 x2 = +x2, y2 = +y2;
4945 switch (this._point) {
4946 case 0: {
4947 this._point = 1;
4948 if (this._line)
4949 this._context.lineTo(x2, y2);
4950 else
4951 this._context.moveTo(x2, y2);
4952 break;
4953 }
4954 case 1:
4955 this._point = 2;
4956 default: {
4957 if (this._x)
4958 this._context.bezierCurveTo(this._x0 = (this._x0 + x2) / 2, this._y0, this._x0, y2, x2, y2);
4959 else
4960 this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y2) / 2, x2, this._y0, x2, y2);
4961 break;
4962 }
4963 }
4964 this._x0 = x2, this._y0 = y2;
4965 }
4966 }
4967 function bumpX(context) {
4968 return new Bump(context, true);
4969 }
4970 function bumpY(context) {
4971 return new Bump(context, false);
4972 }
4973 function noop$1() {
4974 }
4975 function point$6(that, x2, y2) {
4976 that._context.bezierCurveTo(
4977 (2 * that._x0 + that._x1) / 3,
4978 (2 * that._y0 + that._y1) / 3,
4979 (that._x0 + 2 * that._x1) / 3,
4980 (that._y0 + 2 * that._y1) / 3,
4981 (that._x0 + 4 * that._x1 + x2) / 6,
4982 (that._y0 + 4 * that._y1 + y2) / 6
4983 );
4984 }
4985 function Basis(context) {
4986 this._context = context;
4987 }
4988 Basis.prototype = {
4989 areaStart: function() {
4990 this._line = 0;
4991 },
4992 areaEnd: function() {
4993 this._line = NaN;
4994 },
4995 lineStart: function() {
4996 this._x0 = this._x1 = this._y0 = this._y1 = NaN;
4997 this._point = 0;
4998 },
4999 lineEnd: function() {
5000 switch (this._point) {
5001 case 3:
5002 point$6(this, this._x1, this._y1);
5003 case 2:
5004 this._context.lineTo(this._x1, this._y1);
5005 break;
5006 }
5007 if (this._line || this._line !== 0 && this._point === 1)
5008 this._context.closePath();
5009 this._line = 1 - this._line;
5010 },
5011 point: function(x2, y2) {
5012 x2 = +x2, y2 = +y2;
5013 switch (this._point) {
5014 case 0:
5015 this._point = 1;
5016 this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);
5017 break;
5018 case 1:
5019 this._point = 2;
5020 break;
5021 case 2:
5022 this._point = 3;
5023 this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6);
5024 default:
5025 point$6(this, x2, y2);
5026 break;
5027 }
5028 this._x0 = this._x1, this._x1 = x2;
5029 this._y0 = this._y1, this._y1 = y2;
5030 }
5031 };
5032 function curveBasis(context) {
5033 return new Basis(context);
5034 }
5035 function BasisClosed(context) {
5036 this._context = context;
5037 }
5038 BasisClosed.prototype = {
5039 areaStart: noop$1,
5040 areaEnd: noop$1,
5041 lineStart: function() {
5042 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;
5043 this._point = 0;
5044 },
5045 lineEnd: function() {
5046 switch (this._point) {
5047 case 1: {
5048 this._context.moveTo(this._x2, this._y2);
5049 this._context.closePath();
5050 break;
5051 }
5052 case 2: {
5053 this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);
5054 this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);
5055 this._context.closePath();
5056 break;
5057 }
5058 case 3: {
5059 this.point(this._x2, this._y2);
5060 this.point(this._x3, this._y3);
5061 this.point(this._x4, this._y4);
5062 break;
5063 }
5064 }
5065 },
5066 point: function(x2, y2) {
5067 x2 = +x2, y2 = +y2;
5068 switch (this._point) {
5069 case 0:
5070 this._point = 1;
5071 this._x2 = x2, this._y2 = y2;
5072 break;
5073 case 1:
5074 this._point = 2;
5075 this._x3 = x2, this._y3 = y2;
5076 break;
5077 case 2:
5078 this._point = 3;
5079 this._x4 = x2, this._y4 = y2;
5080 this._context.moveTo((this._x0 + 4 * this._x1 + x2) / 6, (this._y0 + 4 * this._y1 + y2) / 6);
5081 break;
5082 default:
5083 point$6(this, x2, y2);
5084 break;
5085 }
5086 this._x0 = this._x1, this._x1 = x2;
5087 this._y0 = this._y1, this._y1 = y2;
5088 }
5089 };
5090 function curveBasisClosed(context) {
5091 return new BasisClosed(context);
5092 }
5093 function BasisOpen(context) {
5094 this._context = context;
5095 }
5096 BasisOpen.prototype = {
5097 areaStart: function() {
5098 this._line = 0;
5099 },
5100 areaEnd: function() {
5101 this._line = NaN;
5102 },
5103 lineStart: function() {
5104 this._x0 = this._x1 = this._y0 = this._y1 = NaN;
5105 this._point = 0;
5106 },
5107 lineEnd: function() {
5108 if (this._line || this._line !== 0 && this._point === 3)
5109 this._context.closePath();
5110 this._line = 1 - this._line;
5111 },
5112 point: function(x2, y2) {
5113 x2 = +x2, y2 = +y2;
5114 switch (this._point) {
5115 case 0:
5116 this._point = 1;
5117 break;
5118 case 1:
5119 this._point = 2;
5120 break;
5121 case 2:
5122 this._point = 3;
5123 var x0 = (this._x0 + 4 * this._x1 + x2) / 6, y0 = (this._y0 + 4 * this._y1 + y2) / 6;
5124 this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0);
5125 break;
5126 case 3:
5127 this._point = 4;
5128 default:
5129 point$6(this, x2, y2);
5130 break;
5131 }
5132 this._x0 = this._x1, this._x1 = x2;
5133 this._y0 = this._y1, this._y1 = y2;
5134 }
5135 };
5136 function curveBasisOpen(context) {
5137 return new BasisOpen(context);
5138 }
5139 function Bundle(context, beta) {
5140 this._basis = new Basis(context);
5141 this._beta = beta;
5142 }
5143 Bundle.prototype = {
5144 lineStart: function() {
5145 this._x = [];
5146 this._y = [];
5147 this._basis.lineStart();
5148 },
5149 lineEnd: function() {
5150 var x2 = this._x, y2 = this._y, j = x2.length - 1;
5151 if (j > 0) {
5152 var x0 = x2[0], y0 = y2[0], dx = x2[j] - x0, dy = y2[j] - y0, i2 = -1, t4;
5153 while (++i2 <= j) {
5154 t4 = i2 / j;
5155 this._basis.point(
5156 this._beta * x2[i2] + (1 - this._beta) * (x0 + t4 * dx),
5157 this._beta * y2[i2] + (1 - this._beta) * (y0 + t4 * dy)
5158 );
5159 }
5160 }
5161 this._x = this._y = null;
5162 this._basis.lineEnd();
5163 },
5164 point: function(x2, y2) {
5165 this._x.push(+x2);
5166 this._y.push(+y2);
5167 }
5168 };
5169 const curveBundle = function custom(beta) {
5170 function bundle(context) {
5171 return beta === 1 ? new Basis(context) : new Bundle(context, beta);
5172 }
5173 bundle.beta = function(beta2) {
5174 return custom(+beta2);
5175 };
5176 return bundle;
5177 }(0.85);
5178 function point$5(that, x2, y2) {
5179 that._context.bezierCurveTo(
5180 that._x1 + that._k * (that._x2 - that._x0),
5181 that._y1 + that._k * (that._y2 - that._y0),
5182 that._x2 + that._k * (that._x1 - x2),
5183 that._y2 + that._k * (that._y1 - y2),
5184 that._x2,
5185 that._y2
5186 );
5187 }
5188 function Cardinal(context, tension) {
5189 this._context = context;
5190 this._k = (1 - tension) / 6;
5191 }
5192 Cardinal.prototype = {
5193 areaStart: function() {
5194 this._line = 0;
5195 },
5196 areaEnd: function() {
5197 this._line = NaN;
5198 },
5199 lineStart: function() {
5200 this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
5201 this._point = 0;
5202 },
5203 lineEnd: function() {
5204 switch (this._point) {
5205 case 2:
5206 this._context.lineTo(this._x2, this._y2);
5207 break;
5208 case 3:
5209 point$5(this, this._x1, this._y1);
5210 break;
5211 }
5212 if (this._line || this._line !== 0 && this._point === 1)
5213 this._context.closePath();
5214 this._line = 1 - this._line;
5215 },
5216 point: function(x2, y2) {
5217 x2 = +x2, y2 = +y2;
5218 switch (this._point) {
5219 case 0:
5220 this._point = 1;
5221 this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);
5222 break;
5223 case 1:
5224 this._point = 2;
5225 this._x1 = x2, this._y1 = y2;
5226 break;
5227 case 2:
5228 this._point = 3;
5229 default:
5230 point$5(this, x2, y2);
5231 break;
5232 }
5233 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;
5234 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;
5235 }
5236 };
5237 const curveCardinal = function custom(tension) {
5238 function cardinal(context) {
5239 return new Cardinal(context, tension);
5240 }
5241 cardinal.tension = function(tension2) {
5242 return custom(+tension2);
5243 };
5244 return cardinal;
5245 }(0);
5246 function CardinalClosed(context, tension) {
5247 this._context = context;
5248 this._k = (1 - tension) / 6;
5249 }
5250 CardinalClosed.prototype = {
5251 areaStart: noop$1,
5252 areaEnd: noop$1,
5253 lineStart: function() {
5254 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
5255 this._point = 0;
5256 },
5257 lineEnd: function() {
5258 switch (this._point) {
5259 case 1: {
5260 this._context.moveTo(this._x3, this._y3);
5261 this._context.closePath();
5262 break;
5263 }
5264 case 2: {
5265 this._context.lineTo(this._x3, this._y3);
5266 this._context.closePath();
5267 break;
5268 }
5269 case 3: {
5270 this.point(this._x3, this._y3);
5271 this.point(this._x4, this._y4);
5272 this.point(this._x5, this._y5);
5273 break;
5274 }
5275 }
5276 },
5277 point: function(x2, y2) {
5278 x2 = +x2, y2 = +y2;
5279 switch (this._point) {
5280 case 0:
5281 this._point = 1;
5282 this._x3 = x2, this._y3 = y2;
5283 break;
5284 case 1:
5285 this._point = 2;
5286 this._context.moveTo(this._x4 = x2, this._y4 = y2);
5287 break;
5288 case 2:
5289 this._point = 3;
5290 this._x5 = x2, this._y5 = y2;
5291 break;
5292 default:
5293 point$5(this, x2, y2);
5294 break;
5295 }
5296 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;
5297 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;
5298 }
5299 };
5300 const curveCardinalClosed = function custom(tension) {
5301 function cardinal(context) {
5302 return new CardinalClosed(context, tension);
5303 }
5304 cardinal.tension = function(tension2) {
5305 return custom(+tension2);
5306 };
5307 return cardinal;
5308 }(0);
5309 function CardinalOpen(context, tension) {
5310 this._context = context;
5311 this._k = (1 - tension) / 6;
5312 }
5313 CardinalOpen.prototype = {
5314 areaStart: function() {
5315 this._line = 0;
5316 },
5317 areaEnd: function() {
5318 this._line = NaN;
5319 },
5320 lineStart: function() {
5321 this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
5322 this._point = 0;
5323 },
5324 lineEnd: function() {
5325 if (this._line || this._line !== 0 && this._point === 3)
5326 this._context.closePath();
5327 this._line = 1 - this._line;
5328 },
5329 point: function(x2, y2) {
5330 x2 = +x2, y2 = +y2;
5331 switch (this._point) {
5332 case 0:
5333 this._point = 1;
5334 break;
5335 case 1:
5336 this._point = 2;
5337 break;
5338 case 2:
5339 this._point = 3;
5340 this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
5341 break;
5342 case 3:
5343 this._point = 4;
5344 default:
5345 point$5(this, x2, y2);
5346 break;
5347 }
5348 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;
5349 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;
5350 }
5351 };
5352 const curveCardinalOpen = function custom(tension) {
5353 function cardinal(context) {
5354 return new CardinalOpen(context, tension);
5355 }
5356 cardinal.tension = function(tension2) {
5357 return custom(+tension2);
5358 };
5359 return cardinal;
5360 }(0);
5361 function point$4(that, x2, y2) {
5362 var x1 = that._x1, y1 = that._y1, x22 = that._x2, y22 = that._y2;
5363 if (that._l01_a > epsilon) {
5364 var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a, n = 3 * that._l01_a * (that._l01_a + that._l12_a);
5365 x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;
5366 y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;
5367 }
5368 if (that._l23_a > epsilon) {
5369 var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a, m = 3 * that._l23_a * (that._l23_a + that._l12_a);
5370 x22 = (x22 * b + that._x1 * that._l23_2a - x2 * that._l12_2a) / m;
5371 y22 = (y22 * b + that._y1 * that._l23_2a - y2 * that._l12_2a) / m;
5372 }
5373 that._context.bezierCurveTo(x1, y1, x22, y22, that._x2, that._y2);
5374 }
5375 function CatmullRom(context, alpha) {
5376 this._context = context;
5377 this._alpha = alpha;
5378 }
5379 CatmullRom.prototype = {
5380 areaStart: function() {
5381 this._line = 0;
5382 },
5383 areaEnd: function() {
5384 this._line = NaN;
5385 },
5386 lineStart: function() {
5387 this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
5388 this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
5389 },
5390 lineEnd: function() {
5391 switch (this._point) {
5392 case 2:
5393 this._context.lineTo(this._x2, this._y2);
5394 break;
5395 case 3:
5396 this.point(this._x2, this._y2);
5397 break;
5398 }
5399 if (this._line || this._line !== 0 && this._point === 1)
5400 this._context.closePath();
5401 this._line = 1 - this._line;
5402 },
5403 point: function(x2, y2) {
5404 x2 = +x2, y2 = +y2;
5405 if (this._point) {
5406 var x23 = this._x2 - x2, y23 = this._y2 - y2;
5407 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
5408 }
5409 switch (this._point) {
5410 case 0:
5411 this._point = 1;
5412 this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);
5413 break;
5414 case 1:
5415 this._point = 2;
5416 break;
5417 case 2:
5418 this._point = 3;
5419 default:
5420 point$4(this, x2, y2);
5421 break;
5422 }
5423 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
5424 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
5425 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;
5426 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;
5427 }
5428 };
5429 const curveCatmullRom = function custom(alpha) {
5430 function catmullRom(context) {
5431 return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);
5432 }
5433 catmullRom.alpha = function(alpha2) {
5434 return custom(+alpha2);
5435 };
5436 return catmullRom;
5437 }(0.5);
5438 function CatmullRomClosed(context, alpha) {
5439 this._context = context;
5440 this._alpha = alpha;
5441 }
5442 CatmullRomClosed.prototype = {
5443 areaStart: noop$1,
5444 areaEnd: noop$1,
5445 lineStart: function() {
5446 this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 = this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;
5447 this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
5448 },
5449 lineEnd: function() {
5450 switch (this._point) {
5451 case 1: {
5452 this._context.moveTo(this._x3, this._y3);
5453 this._context.closePath();
5454 break;
5455 }
5456 case 2: {
5457 this._context.lineTo(this._x3, this._y3);
5458 this._context.closePath();
5459 break;
5460 }
5461 case 3: {
5462 this.point(this._x3, this._y3);
5463 this.point(this._x4, this._y4);
5464 this.point(this._x5, this._y5);
5465 break;
5466 }
5467 }
5468 },
5469 point: function(x2, y2) {
5470 x2 = +x2, y2 = +y2;
5471 if (this._point) {
5472 var x23 = this._x2 - x2, y23 = this._y2 - y2;
5473 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
5474 }
5475 switch (this._point) {
5476 case 0:
5477 this._point = 1;
5478 this._x3 = x2, this._y3 = y2;
5479 break;
5480 case 1:
5481 this._point = 2;
5482 this._context.moveTo(this._x4 = x2, this._y4 = y2);
5483 break;
5484 case 2:
5485 this._point = 3;
5486 this._x5 = x2, this._y5 = y2;
5487 break;
5488 default:
5489 point$4(this, x2, y2);
5490 break;
5491 }
5492 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
5493 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
5494 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;
5495 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;
5496 }
5497 };
5498 const curveCatmullRomClosed = function custom(alpha) {
5499 function catmullRom(context) {
5500 return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);
5501 }
5502 catmullRom.alpha = function(alpha2) {
5503 return custom(+alpha2);
5504 };
5505 return catmullRom;
5506 }(0.5);
5507 function CatmullRomOpen(context, alpha) {
5508 this._context = context;
5509 this._alpha = alpha;
5510 }
5511 CatmullRomOpen.prototype = {
5512 areaStart: function() {
5513 this._line = 0;
5514 },
5515 areaEnd: function() {
5516 this._line = NaN;
5517 },
5518 lineStart: function() {
5519 this._x0 = this._x1 = this._x2 = this._y0 = this._y1 = this._y2 = NaN;
5520 this._l01_a = this._l12_a = this._l23_a = this._l01_2a = this._l12_2a = this._l23_2a = this._point = 0;
5521 },
5522 lineEnd: function() {
5523 if (this._line || this._line !== 0 && this._point === 3)
5524 this._context.closePath();
5525 this._line = 1 - this._line;
5526 },
5527 point: function(x2, y2) {
5528 x2 = +x2, y2 = +y2;
5529 if (this._point) {
5530 var x23 = this._x2 - x2, y23 = this._y2 - y2;
5531 this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));
5532 }
5533 switch (this._point) {
5534 case 0:
5535 this._point = 1;
5536 break;
5537 case 1:
5538 this._point = 2;
5539 break;
5540 case 2:
5541 this._point = 3;
5542 this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2);
5543 break;
5544 case 3:
5545 this._point = 4;
5546 default:
5547 point$4(this, x2, y2);
5548 break;
5549 }
5550 this._l01_a = this._l12_a, this._l12_a = this._l23_a;
5551 this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;
5552 this._x0 = this._x1, this._x1 = this._x2, this._x2 = x2;
5553 this._y0 = this._y1, this._y1 = this._y2, this._y2 = y2;
5554 }
5555 };
5556 const curveCatmullRomOpen = function custom(alpha) {
5557 function catmullRom(context) {
5558 return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);
5559 }
5560 catmullRom.alpha = function(alpha2) {
5561 return custom(+alpha2);
5562 };
5563 return catmullRom;
5564 }(0.5);
5565 function LinearClosed(context) {
5566 this._context = context;
5567 }
5568 LinearClosed.prototype = {
5569 areaStart: noop$1,
5570 areaEnd: noop$1,
5571 lineStart: function() {
5572 this._point = 0;
5573 },
5574 lineEnd: function() {
5575 if (this._point)
5576 this._context.closePath();
5577 },
5578 point: function(x2, y2) {
5579 x2 = +x2, y2 = +y2;
5580 if (this._point)
5581 this._context.lineTo(x2, y2);
5582 else
5583 this._point = 1, this._context.moveTo(x2, y2);
5584 }
5585 };
5586 function curveLinearClosed(context) {
5587 return new LinearClosed(context);
5588 }
5589 function sign(x2) {
5590 return x2 < 0 ? -1 : 1;
5591 }
5592 function slope3(that, x2, y2) {
5593 var h0 = that._x1 - that._x0, h1 = x2 - that._x1, s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0), s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0), p = (s0 * h1 + s1 * h0) / (h0 + h1);
5594 return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;
5595 }
5596 function slope2(that, t4) {
5597 var h = that._x1 - that._x0;
5598 return h ? (3 * (that._y1 - that._y0) / h - t4) / 2 : t4;
5599 }
5600 function point$3(that, t02, t12) {
5601 var x0 = that._x0, y0 = that._y0, x1 = that._x1, y1 = that._y1, dx = (x1 - x0) / 3;
5602 that._context.bezierCurveTo(x0 + dx, y0 + dx * t02, x1 - dx, y1 - dx * t12, x1, y1);
5603 }
5604 function MonotoneX(context) {
5605 this._context = context;
5606 }
5607 MonotoneX.prototype = {
5608 areaStart: function() {
5609 this._line = 0;
5610 },
5611 areaEnd: function() {
5612 this._line = NaN;
5613 },
5614 lineStart: function() {
5615 this._x0 = this._x1 = this._y0 = this._y1 = this._t0 = NaN;
5616 this._point = 0;
5617 },
5618 lineEnd: function() {
5619 switch (this._point) {
5620 case 2:
5621 this._context.lineTo(this._x1, this._y1);
5622 break;
5623 case 3:
5624 point$3(this, this._t0, slope2(this, this._t0));
5625 break;
5626 }
5627 if (this._line || this._line !== 0 && this._point === 1)
5628 this._context.closePath();
5629 this._line = 1 - this._line;
5630 },
5631 point: function(x2, y2) {
5632 var t12 = NaN;
5633 x2 = +x2, y2 = +y2;
5634 if (x2 === this._x1 && y2 === this._y1)
5635 return;
5636 switch (this._point) {
5637 case 0:
5638 this._point = 1;
5639 this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);
5640 break;
5641 case 1:
5642 this._point = 2;
5643 break;
5644 case 2:
5645 this._point = 3;
5646 point$3(this, slope2(this, t12 = slope3(this, x2, y2)), t12);
5647 break;
5648 default:
5649 point$3(this, this._t0, t12 = slope3(this, x2, y2));
5650 break;
5651 }
5652 this._x0 = this._x1, this._x1 = x2;
5653 this._y0 = this._y1, this._y1 = y2;
5654 this._t0 = t12;
5655 }
5656 };
5657 function MonotoneY(context) {
5658 this._context = new ReflectContext(context);
5659 }
5660 (MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x2, y2) {
5661 MonotoneX.prototype.point.call(this, y2, x2);
5662 };
5663 function ReflectContext(context) {
5664 this._context = context;
5665 }
5666 ReflectContext.prototype = {
5667 moveTo: function(x2, y2) {
5668 this._context.moveTo(y2, x2);
5669 },
5670 closePath: function() {
5671 this._context.closePath();
5672 },
5673 lineTo: function(x2, y2) {
5674 this._context.lineTo(y2, x2);
5675 },
5676 bezierCurveTo: function(x1, y1, x2, y2, x3, y3) {
5677 this._context.bezierCurveTo(y1, x1, y2, x2, y3, x3);
5678 }
5679 };
5680 function monotoneX(context) {
5681 return new MonotoneX(context);
5682 }
5683 function monotoneY(context) {
5684 return new MonotoneY(context);
5685 }
5686 function Natural(context) {
5687 this._context = context;
5688 }
5689 Natural.prototype = {
5690 areaStart: function() {
5691 this._line = 0;
5692 },
5693 areaEnd: function() {
5694 this._line = NaN;
5695 },
5696 lineStart: function() {
5697 this._x = [];
5698 this._y = [];
5699 },
5700 lineEnd: function() {
5701 var x2 = this._x, y2 = this._y, n = x2.length;
5702 if (n) {
5703 this._line ? this._context.lineTo(x2[0], y2[0]) : this._context.moveTo(x2[0], y2[0]);
5704 if (n === 2) {
5705 this._context.lineTo(x2[1], y2[1]);
5706 } else {
5707 var px = controlPoints(x2), py = controlPoints(y2);
5708 for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {
5709 this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x2[i1], y2[i1]);
5710 }
5711 }
5712 }
5713 if (this._line || this._line !== 0 && n === 1)
5714 this._context.closePath();
5715 this._line = 1 - this._line;
5716 this._x = this._y = null;
5717 },
5718 point: function(x2, y2) {
5719 this._x.push(+x2);
5720 this._y.push(+y2);
5721 }
5722 };
5723 function controlPoints(x2) {
5724 var i2, n = x2.length - 1, m, a = new Array(n), b = new Array(n), r = new Array(n);
5725 a[0] = 0, b[0] = 2, r[0] = x2[0] + 2 * x2[1];
5726 for (i2 = 1; i2 < n - 1; ++i2)
5727 a[i2] = 1, b[i2] = 4, r[i2] = 4 * x2[i2] + 2 * x2[i2 + 1];
5728 a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x2[n - 1] + x2[n];
5729 for (i2 = 1; i2 < n; ++i2)
5730 m = a[i2] / b[i2 - 1], b[i2] -= m, r[i2] -= m * r[i2 - 1];
5731 a[n - 1] = r[n - 1] / b[n - 1];
5732 for (i2 = n - 2; i2 >= 0; --i2)
5733 a[i2] = (r[i2] - a[i2 + 1]) / b[i2];
5734 b[n - 1] = (x2[n] + a[n - 1]) / 2;
5735 for (i2 = 0; i2 < n - 1; ++i2)
5736 b[i2] = 2 * x2[i2 + 1] - a[i2 + 1];
5737 return [a, b];
5738 }
5739 function curveNatural(context) {
5740 return new Natural(context);
5741 }
5742 function Step(context, t4) {
5743 this._context = context;
5744 this._t = t4;
5745 }
5746 Step.prototype = {
5747 areaStart: function() {
5748 this._line = 0;
5749 },
5750 areaEnd: function() {
5751 this._line = NaN;
5752 },
5753 lineStart: function() {
5754 this._x = this._y = NaN;
5755 this._point = 0;
5756 },
5757 lineEnd: function() {
5758 if (0 < this._t && this._t < 1 && this._point === 2)
5759 this._context.lineTo(this._x, this._y);
5760 if (this._line || this._line !== 0 && this._point === 1)
5761 this._context.closePath();
5762 if (this._line >= 0)
5763 this._t = 1 - this._t, this._line = 1 - this._line;
5764 },
5765 point: function(x2, y2) {
5766 x2 = +x2, y2 = +y2;
5767 switch (this._point) {
5768 case 0:
5769 this._point = 1;
5770 this._line ? this._context.lineTo(x2, y2) : this._context.moveTo(x2, y2);
5771 break;
5772 case 1:
5773 this._point = 2;
5774 default: {
5775 if (this._t <= 0) {
5776 this._context.lineTo(this._x, y2);
5777 this._context.lineTo(x2, y2);
5778 } else {
5779 var x1 = this._x * (1 - this._t) + x2 * this._t;
5780 this._context.lineTo(x1, this._y);
5781 this._context.lineTo(x1, y2);
5782 }
5783 break;
5784 }
5785 }
5786 this._x = x2, this._y = y2;
5787 }
5788 };
5789 function curveStep(context) {
5790 return new Step(context, 0.5);
5791 }
5792 function stepBefore(context) {
5793 return new Step(context, 0);
5794 }
5795 function stepAfter(context) {
5796 return new Step(context, 1);
5797 }
5798 function Transform(k, x2, y2) {
5799 this.k = k;
5800 this.x = x2;
5801 this.y = y2;
5802 }
5803 Transform.prototype = {
5804 constructor: Transform,
5805 scale: function(k) {
5806 return k === 1 ? this : new Transform(this.k * k, this.x, this.y);
5807 },
5808 translate: function(x2, y2) {
5809 return x2 === 0 & y2 === 0 ? this : new Transform(this.k, this.x + this.k * x2, this.y + this.k * y2);
5810 },
5811 apply: function(point2) {
5812 return [point2[0] * this.k + this.x, point2[1] * this.k + this.y];
5813 },
5814 applyX: function(x2) {
5815 return x2 * this.k + this.x;
5816 },
5817 applyY: function(y2) {
5818 return y2 * this.k + this.y;
5819 },
5820 invert: function(location2) {
5821 return [(location2[0] - this.x) / this.k, (location2[1] - this.y) / this.k];
5822 },
5823 invertX: function(x2) {
5824 return (x2 - this.x) / this.k;
5825 },
5826 invertY: function(y2) {
5827 return (y2 - this.y) / this.k;
5828 },
5829 rescaleX: function(x2) {
5830 return x2.copy().domain(x2.range().map(this.invertX, this).map(x2.invert, x2));
5831 },
5832 rescaleY: function(y2) {
5833 return y2.copy().domain(y2.range().map(this.invertY, this).map(y2.invert, y2));
5834 },
5835 toString: function() {
5836 return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")";
5837 }
5838 };
5839 Transform.prototype;
5840 /*! @license DOMPurify 3.0.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.0.3/LICENSE */
5841 const {
5842 entries,
5843 setPrototypeOf,
5844 isFrozen,
5845 getPrototypeOf,
5846 getOwnPropertyDescriptor
5847 } = Object;
5848 let {
5849 freeze,
5850 seal,
5851 create
5852 } = Object;
5853 let {
5854 apply: apply$2,
5855 construct
5856 } = typeof Reflect !== "undefined" && Reflect;
5857 if (!apply$2) {
5858 apply$2 = function apply2(fun, thisValue, args) {
5859 return fun.apply(thisValue, args);
5860 };
5861 }
5862 if (!freeze) {
5863 freeze = function freeze2(x2) {
5864 return x2;
5865 };
5866 }
5867 if (!seal) {
5868 seal = function seal2(x2) {
5869 return x2;
5870 };
5871 }
5872 if (!construct) {
5873 construct = function construct2(Func, args) {
5874 return new Func(...args);
5875 };
5876 }
5877 const arrayForEach = unapply(Array.prototype.forEach);
5878 const arrayPop = unapply(Array.prototype.pop);
5879 const arrayPush$1 = unapply(Array.prototype.push);
5880 const stringToLowerCase = unapply(String.prototype.toLowerCase);
5881 const stringToString = unapply(String.prototype.toString);
5882 const stringMatch = unapply(String.prototype.match);
5883 const stringReplace = unapply(String.prototype.replace);
5884 const stringIndexOf = unapply(String.prototype.indexOf);
5885 const stringTrim = unapply(String.prototype.trim);
5886 const regExpTest = unapply(RegExp.prototype.test);
5887 const typeErrorCreate = unconstruct(TypeError);
5888 function unapply(func) {
5889 return function(thisArg) {
5890 for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
5891 args[_key - 1] = arguments[_key];
5892 }
5893 return apply$2(func, thisArg, args);
5894 };
5895 }
5896 function unconstruct(func) {
5897 return function() {
5898 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
5899 args[_key2] = arguments[_key2];
5900 }
5901 return construct(func, args);
5902 };
5903 }
5904 function addToSet(set2, array2, transformCaseFunc) {
5905 var _transformCaseFunc;
5906 transformCaseFunc = (_transformCaseFunc = transformCaseFunc) !== null && _transformCaseFunc !== void 0 ? _transformCaseFunc : stringToLowerCase;
5907 if (setPrototypeOf) {
5908 setPrototypeOf(set2, null);
5909 }
5910 let l = array2.length;
5911 while (l--) {
5912 let element2 = array2[l];
5913 if (typeof element2 === "string") {
5914 const lcElement = transformCaseFunc(element2);
5915 if (lcElement !== element2) {
5916 if (!isFrozen(array2)) {
5917 array2[l] = lcElement;
5918 }
5919 element2 = lcElement;
5920 }
5921 }
5922 set2[element2] = true;
5923 }
5924 return set2;
5925 }
5926 function clone$2(object2) {
5927 const newObject = create(null);
5928 for (const [property2, value] of entries(object2)) {
5929 newObject[property2] = value;
5930 }
5931 return newObject;
5932 }
5933 function lookupGetter(object2, prop) {
5934 while (object2 !== null) {
5935 const desc = getOwnPropertyDescriptor(object2, prop);
5936 if (desc) {
5937 if (desc.get) {
5938 return unapply(desc.get);
5939 }
5940 if (typeof desc.value === "function") {
5941 return unapply(desc.value);
5942 }
5943 }
5944 object2 = getPrototypeOf(object2);
5945 }
5946 function fallbackValue(element2) {
5947 console.warn("fallback value for", element2);
5948 return null;
5949 }
5950 return fallbackValue;
5951 }
5952 const html$1 = freeze(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]);
5953 const svg$1 = freeze(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]);
5954 const svgFilters = freeze(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]);
5955 const svgDisallowed = freeze(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]);
5956 const mathMl$1 = freeze(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]);
5957 const mathMlDisallowed = freeze(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]);
5958 const text$2 = freeze(["#text"]);
5959 const html = freeze(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "xmlns", "slot"]);
5960 const svg = freeze(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]);
5961 const mathMl = freeze(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]);
5962 const xml = freeze(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]);
5963 const MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm);
5964 const ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
5965 const TMPLIT_EXPR = seal(/\${[\w\W]*}/gm);
5966 const DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]/);
5967 const ARIA_ATTR = seal(/^aria-[\-\w]+$/);
5968 const IS_ALLOWED_URI = seal(
5969 /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
5970 // eslint-disable-line no-useless-escape
5971 );
5972 const IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
5973 const ATTR_WHITESPACE = seal(
5974 /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
5975 // eslint-disable-line no-control-regex
5976 );
5977 const DOCTYPE_NAME = seal(/^html$/i);
5978 var EXPRESSIONS = /* @__PURE__ */ Object.freeze({
5979 __proto__: null,
5980 MUSTACHE_EXPR,
5981 ERB_EXPR,
5982 TMPLIT_EXPR,
5983 DATA_ATTR,
5984 ARIA_ATTR,
5985 IS_ALLOWED_URI,
5986 IS_SCRIPT_OR_DATA,
5987 ATTR_WHITESPACE,
5988 DOCTYPE_NAME
5989 });
5990 const getGlobal = () => typeof window === "undefined" ? null : window;
5991 const _createTrustedTypesPolicy = function _createTrustedTypesPolicy2(trustedTypes, purifyHostElement) {
5992 if (typeof trustedTypes !== "object" || typeof trustedTypes.createPolicy !== "function") {
5993 return null;
5994 }
5995 let suffix = null;
5996 const ATTR_NAME = "data-tt-policy-suffix";
5997 if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {
5998 suffix = purifyHostElement.getAttribute(ATTR_NAME);
5999 }
6000 const policyName = "dompurify" + (suffix ? "#" + suffix : "");
6001 try {
6002 return trustedTypes.createPolicy(policyName, {
6003 createHTML(html2) {
6004 return html2;
6005 },
6006 createScriptURL(scriptUrl) {
6007 return scriptUrl;
6008 }
6009 });
6010 } catch (_2) {
6011 console.warn("TrustedTypes policy " + policyName + " could not be created.");
6012 return null;
6013 }
6014 };
6015 function createDOMPurify() {
6016 let window2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal();
6017 const DOMPurify = (root2) => createDOMPurify(root2);
6018 DOMPurify.version = "3.0.3";
6019 DOMPurify.removed = [];
6020 if (!window2 || !window2.document || window2.document.nodeType !== 9) {
6021 DOMPurify.isSupported = false;
6022 return DOMPurify;
6023 }
6024 const originalDocument = window2.document;
6025 const currentScript = originalDocument.currentScript;
6026 let {
6027 document: document2
6028 } = window2;
6029 const {
6030 DocumentFragment,
6031 HTMLTemplateElement,
6032 Node,
6033 Element,
6034 NodeFilter,
6035 NamedNodeMap = window2.NamedNodeMap || window2.MozNamedAttrMap,
6036 HTMLFormElement,
6037 DOMParser: DOMParser2,
6038 trustedTypes
6039 } = window2;
6040 const ElementPrototype = Element.prototype;
6041 const cloneNode = lookupGetter(ElementPrototype, "cloneNode");
6042 const getNextSibling = lookupGetter(ElementPrototype, "nextSibling");
6043 const getChildNodes = lookupGetter(ElementPrototype, "childNodes");
6044 const getParentNode = lookupGetter(ElementPrototype, "parentNode");
6045 if (typeof HTMLTemplateElement === "function") {
6046 const template = document2.createElement("template");
6047 if (template.content && template.content.ownerDocument) {
6048 document2 = template.content.ownerDocument;
6049 }
6050 }
6051 let trustedTypesPolicy;
6052 let emptyHTML = "";
6053 const {
6054 implementation,
6055 createNodeIterator,
6056 createDocumentFragment,
6057 getElementsByTagName
6058 } = document2;
6059 const {
6060 importNode
6061 } = originalDocument;
6062 let hooks = {};
6063 DOMPurify.isSupported = typeof entries === "function" && typeof getParentNode === "function" && implementation && implementation.createHTMLDocument !== void 0;
6064 const {
6065 MUSTACHE_EXPR: MUSTACHE_EXPR2,
6066 ERB_EXPR: ERB_EXPR2,
6067 TMPLIT_EXPR: TMPLIT_EXPR2,
6068 DATA_ATTR: DATA_ATTR2,
6069 ARIA_ATTR: ARIA_ATTR2,
6070 IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA2,
6071 ATTR_WHITESPACE: ATTR_WHITESPACE2
6072 } = EXPRESSIONS;
6073 let {
6074 IS_ALLOWED_URI: IS_ALLOWED_URI$1
6075 } = EXPRESSIONS;
6076 let ALLOWED_TAGS = null;
6077 const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text$2]);
6078 let ALLOWED_ATTR = null;
6079 const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);
6080 let CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {
6081 tagNameCheck: {
6082 writable: true,
6083 configurable: false,
6084 enumerable: true,
6085 value: null
6086 },
6087 attributeNameCheck: {
6088 writable: true,
6089 configurable: false,
6090 enumerable: true,
6091 value: null
6092 },
6093 allowCustomizedBuiltInElements: {
6094 writable: true,
6095 configurable: false,
6096 enumerable: true,
6097 value: false
6098 }
6099 }));
6100 let FORBID_TAGS = null;
6101 let FORBID_ATTR = null;
6102 let ALLOW_ARIA_ATTR = true;
6103 let ALLOW_DATA_ATTR = true;
6104 let ALLOW_UNKNOWN_PROTOCOLS = false;
6105 let ALLOW_SELF_CLOSE_IN_ATTR = true;
6106 let SAFE_FOR_TEMPLATES = false;
6107 let WHOLE_DOCUMENT = false;
6108 let SET_CONFIG = false;
6109 let FORCE_BODY = false;
6110 let RETURN_DOM = false;
6111 let RETURN_DOM_FRAGMENT = false;
6112 let RETURN_TRUSTED_TYPE = false;
6113 let SANITIZE_DOM = true;
6114 let SANITIZE_NAMED_PROPS = false;
6115 const SANITIZE_NAMED_PROPS_PREFIX = "user-content-";
6116 let KEEP_CONTENT = true;
6117 let IN_PLACE = false;
6118 let USE_PROFILES = {};
6119 let FORBID_CONTENTS = null;
6120 const DEFAULT_FORBID_CONTENTS = addToSet({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]);
6121 let DATA_URI_TAGS = null;
6122 const DEFAULT_DATA_URI_TAGS = addToSet({}, ["audio", "video", "img", "source", "image", "track"]);
6123 let URI_SAFE_ATTRIBUTES = null;
6124 const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]);
6125 const MATHML_NAMESPACE = "http://www.w3.org/1998/Math/MathML";
6126 const SVG_NAMESPACE = "http://www.w3.org/2000/svg";
6127 const HTML_NAMESPACE = "http://www.w3.org/1999/xhtml";
6128 let NAMESPACE = HTML_NAMESPACE;
6129 let IS_EMPTY_INPUT = false;
6130 let ALLOWED_NAMESPACES = null;
6131 const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);
6132 let PARSER_MEDIA_TYPE;
6133 const SUPPORTED_PARSER_MEDIA_TYPES = ["application/xhtml+xml", "text/html"];
6134 const DEFAULT_PARSER_MEDIA_TYPE = "text/html";
6135 let transformCaseFunc;
6136 let CONFIG = null;
6137 const formElement = document2.createElement("form");
6138 const isRegexOrFunction = function isRegexOrFunction2(testValue) {
6139 return testValue instanceof RegExp || testValue instanceof Function;
6140 };
6141 const _parseConfig = function _parseConfig2(cfg) {
6142 if (CONFIG && CONFIG === cfg) {
6143 return;
6144 }
6145 if (!cfg || typeof cfg !== "object") {
6146 cfg = {};
6147 }
6148 cfg = clone$2(cfg);
6149 PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes
6150 SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;
6151 transformCaseFunc = PARSER_MEDIA_TYPE === "application/xhtml+xml" ? stringToString : stringToLowerCase;
6152 ALLOWED_TAGS = "ALLOWED_TAGS" in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
6153 ALLOWED_ATTR = "ALLOWED_ATTR" in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
6154 ALLOWED_NAMESPACES = "ALLOWED_NAMESPACES" in cfg ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;
6155 URI_SAFE_ATTRIBUTES = "ADD_URI_SAFE_ATTR" in cfg ? addToSet(
6156 clone$2(DEFAULT_URI_SAFE_ATTRIBUTES),
6157 // eslint-disable-line indent
6158 cfg.ADD_URI_SAFE_ATTR,
6159 // eslint-disable-line indent
6160 transformCaseFunc
6161 // eslint-disable-line indent
6162 ) : DEFAULT_URI_SAFE_ATTRIBUTES;
6163 DATA_URI_TAGS = "ADD_DATA_URI_TAGS" in cfg ? addToSet(
6164 clone$2(DEFAULT_DATA_URI_TAGS),
6165 // eslint-disable-line indent
6166 cfg.ADD_DATA_URI_TAGS,
6167 // eslint-disable-line indent
6168 transformCaseFunc
6169 // eslint-disable-line indent
6170 ) : DEFAULT_DATA_URI_TAGS;
6171 FORBID_CONTENTS = "FORBID_CONTENTS" in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
6172 FORBID_TAGS = "FORBID_TAGS" in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};
6173 FORBID_ATTR = "FORBID_ATTR" in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};
6174 USE_PROFILES = "USE_PROFILES" in cfg ? cfg.USE_PROFILES : false;
6175 ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;
6176 ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;
6177 ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;
6178 ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false;
6179 SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false;
6180 WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false;
6181 RETURN_DOM = cfg.RETURN_DOM || false;
6182 RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false;
6183 RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false;
6184 FORCE_BODY = cfg.FORCE_BODY || false;
6185 SANITIZE_DOM = cfg.SANITIZE_DOM !== false;
6186 SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false;
6187 KEEP_CONTENT = cfg.KEEP_CONTENT !== false;
6188 IN_PLACE = cfg.IN_PLACE || false;
6189 IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;
6190 NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
6191 CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
6192 if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
6193 CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
6194 }
6195 if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {
6196 CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
6197 }
6198 if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === "boolean") {
6199 CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
6200 }
6201 if (SAFE_FOR_TEMPLATES) {
6202 ALLOW_DATA_ATTR = false;
6203 }
6204 if (RETURN_DOM_FRAGMENT) {
6205 RETURN_DOM = true;
6206 }
6207 if (USE_PROFILES) {
6208 ALLOWED_TAGS = addToSet({}, [...text$2]);
6209 ALLOWED_ATTR = [];
6210 if (USE_PROFILES.html === true) {
6211 addToSet(ALLOWED_TAGS, html$1);
6212 addToSet(ALLOWED_ATTR, html);
6213 }
6214 if (USE_PROFILES.svg === true) {
6215 addToSet(ALLOWED_TAGS, svg$1);
6216 addToSet(ALLOWED_ATTR, svg);
6217 addToSet(ALLOWED_ATTR, xml);
6218 }
6219 if (USE_PROFILES.svgFilters === true) {
6220 addToSet(ALLOWED_TAGS, svgFilters);
6221 addToSet(ALLOWED_ATTR, svg);
6222 addToSet(ALLOWED_ATTR, xml);
6223 }
6224 if (USE_PROFILES.mathMl === true) {
6225 addToSet(ALLOWED_TAGS, mathMl$1);
6226 addToSet(ALLOWED_ATTR, mathMl);
6227 addToSet(ALLOWED_ATTR, xml);
6228 }
6229 }
6230 if (cfg.ADD_TAGS) {
6231 if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
6232 ALLOWED_TAGS = clone$2(ALLOWED_TAGS);
6233 }
6234 addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
6235 }
6236 if (cfg.ADD_ATTR) {
6237 if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
6238 ALLOWED_ATTR = clone$2(ALLOWED_ATTR);
6239 }
6240 addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
6241 }
6242 if (cfg.ADD_URI_SAFE_ATTR) {
6243 addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
6244 }
6245 if (cfg.FORBID_CONTENTS) {
6246 if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
6247 FORBID_CONTENTS = clone$2(FORBID_CONTENTS);
6248 }
6249 addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
6250 }
6251 if (KEEP_CONTENT) {
6252 ALLOWED_TAGS["#text"] = true;
6253 }
6254 if (WHOLE_DOCUMENT) {
6255 addToSet(ALLOWED_TAGS, ["html", "head", "body"]);
6256 }
6257 if (ALLOWED_TAGS.table) {
6258 addToSet(ALLOWED_TAGS, ["tbody"]);
6259 delete FORBID_TAGS.tbody;
6260 }
6261 if (cfg.TRUSTED_TYPES_POLICY) {
6262 if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== "function") {
6263 throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
6264 }
6265 if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== "function") {
6266 throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
6267 }
6268 trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;
6269 emptyHTML = trustedTypesPolicy.createHTML("");
6270 } else {
6271 if (trustedTypesPolicy === void 0) {
6272 trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);
6273 }
6274 if (trustedTypesPolicy !== null && typeof emptyHTML === "string") {
6275 emptyHTML = trustedTypesPolicy.createHTML("");
6276 }
6277 }
6278 if (freeze) {
6279 freeze(cfg);
6280 }
6281 CONFIG = cfg;
6282 };
6283 const MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ["mi", "mo", "mn", "ms", "mtext"]);
6284 const HTML_INTEGRATION_POINTS = addToSet({}, ["foreignobject", "desc", "title", "annotation-xml"]);
6285 const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ["title", "style", "font", "a", "script"]);
6286 const ALL_SVG_TAGS = addToSet({}, svg$1);
6287 addToSet(ALL_SVG_TAGS, svgFilters);
6288 addToSet(ALL_SVG_TAGS, svgDisallowed);
6289 const ALL_MATHML_TAGS = addToSet({}, mathMl$1);
6290 addToSet(ALL_MATHML_TAGS, mathMlDisallowed);
6291 const _checkValidNamespace = function _checkValidNamespace2(element2) {
6292 let parent = getParentNode(element2);
6293 if (!parent || !parent.tagName) {
6294 parent = {
6295 namespaceURI: NAMESPACE,
6296 tagName: "template"
6297 };
6298 }
6299 const tagName = stringToLowerCase(element2.tagName);
6300 const parentTagName = stringToLowerCase(parent.tagName);
6301 if (!ALLOWED_NAMESPACES[element2.namespaceURI]) {
6302 return false;
6303 }
6304 if (element2.namespaceURI === SVG_NAMESPACE) {
6305 if (parent.namespaceURI === HTML_NAMESPACE) {
6306 return tagName === "svg";
6307 }
6308 if (parent.namespaceURI === MATHML_NAMESPACE) {
6309 return tagName === "svg" && (parentTagName === "annotation-xml" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
6310 }
6311 return Boolean(ALL_SVG_TAGS[tagName]);
6312 }
6313 if (element2.namespaceURI === MATHML_NAMESPACE) {
6314 if (parent.namespaceURI === HTML_NAMESPACE) {
6315 return tagName === "math";
6316 }
6317 if (parent.namespaceURI === SVG_NAMESPACE) {
6318 return tagName === "math" && HTML_INTEGRATION_POINTS[parentTagName];
6319 }
6320 return Boolean(ALL_MATHML_TAGS[tagName]);
6321 }
6322 if (element2.namespaceURI === HTML_NAMESPACE) {
6323 if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
6324 return false;
6325 }
6326 if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
6327 return false;
6328 }
6329 return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
6330 }
6331 if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && ALLOWED_NAMESPACES[element2.namespaceURI]) {
6332 return true;
6333 }
6334 return false;
6335 };
6336 const _forceRemove = function _forceRemove2(node2) {
6337 arrayPush$1(DOMPurify.removed, {
6338 element: node2
6339 });
6340 try {
6341 node2.parentNode.removeChild(node2);
6342 } catch (_2) {
6343 node2.remove();
6344 }
6345 };
6346 const _removeAttribute = function _removeAttribute2(name2, node2) {
6347 try {
6348 arrayPush$1(DOMPurify.removed, {
6349 attribute: node2.getAttributeNode(name2),
6350 from: node2
6351 });
6352 } catch (_2) {
6353 arrayPush$1(DOMPurify.removed, {
6354 attribute: null,
6355 from: node2
6356 });
6357 }
6358 node2.removeAttribute(name2);
6359 if (name2 === "is" && !ALLOWED_ATTR[name2]) {
6360 if (RETURN_DOM || RETURN_DOM_FRAGMENT) {
6361 try {
6362 _forceRemove(node2);
6363 } catch (_2) {
6364 }
6365 } else {
6366 try {
6367 node2.setAttribute(name2, "");
6368 } catch (_2) {
6369 }
6370 }
6371 }
6372 };
6373 const _initDocument = function _initDocument2(dirty) {
6374 let doc;
6375 let leadingWhitespace;
6376 if (FORCE_BODY) {
6377 dirty = "<remove></remove>" + dirty;
6378 } else {
6379 const matches = stringMatch(dirty, /^[\r\n\t ]+/);
6380 leadingWhitespace = matches && matches[0];
6381 }
6382 if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && NAMESPACE === HTML_NAMESPACE) {
6383 dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + "</body></html>";
6384 }
6385 const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
6386 if (NAMESPACE === HTML_NAMESPACE) {
6387 try {
6388 doc = new DOMParser2().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
6389 } catch (_2) {
6390 }
6391 }
6392 if (!doc || !doc.documentElement) {
6393 doc = implementation.createDocument(NAMESPACE, "template", null);
6394 try {
6395 doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;
6396 } catch (_2) {
6397 }
6398 }
6399 const body = doc.body || doc.documentElement;
6400 if (dirty && leadingWhitespace) {
6401 body.insertBefore(document2.createTextNode(leadingWhitespace), body.childNodes[0] || null);
6402 }
6403 if (NAMESPACE === HTML_NAMESPACE) {
6404 return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? "html" : "body")[0];
6405 }
6406 return WHOLE_DOCUMENT ? doc.documentElement : body;
6407 };
6408 const _createIterator = function _createIterator2(root2) {
6409 return createNodeIterator.call(
6410 root2.ownerDocument || root2,
6411 root2,
6412 // eslint-disable-next-line no-bitwise
6413 NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT,
6414 null,
6415 false
6416 );
6417 };
6418 const _isClobbered = function _isClobbered2(elm) {
6419 return elm instanceof HTMLFormElement && (typeof elm.nodeName !== "string" || typeof elm.textContent !== "string" || typeof elm.removeChild !== "function" || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== "function" || typeof elm.setAttribute !== "function" || typeof elm.namespaceURI !== "string" || typeof elm.insertBefore !== "function" || typeof elm.hasChildNodes !== "function");
6420 };
6421 const _isNode = function _isNode2(object2) {
6422 return typeof Node === "object" ? object2 instanceof Node : object2 && typeof object2 === "object" && typeof object2.nodeType === "number" && typeof object2.nodeName === "string";
6423 };
6424 const _executeHook = function _executeHook2(entryPoint, currentNode, data) {
6425 if (!hooks[entryPoint]) {
6426 return;
6427 }
6428 arrayForEach(hooks[entryPoint], (hook) => {
6429 hook.call(DOMPurify, currentNode, data, CONFIG);
6430 });
6431 };
6432 const _sanitizeElements = function _sanitizeElements2(currentNode) {
6433 let content2;
6434 _executeHook("beforeSanitizeElements", currentNode, null);
6435 if (_isClobbered(currentNode)) {
6436 _forceRemove(currentNode);
6437 return true;
6438 }
6439 const tagName = transformCaseFunc(currentNode.nodeName);
6440 _executeHook("uponSanitizeElement", currentNode, {
6441 tagName,
6442 allowedTags: ALLOWED_TAGS
6443 });
6444 if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
6445 _forceRemove(currentNode);
6446 return true;
6447 }
6448 if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
6449 if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {
6450 if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName))
6451 return false;
6452 if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName))
6453 return false;
6454 }
6455 if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
6456 const parentNode = getParentNode(currentNode) || currentNode.parentNode;
6457 const childNodes = getChildNodes(currentNode) || currentNode.childNodes;
6458 if (childNodes && parentNode) {
6459 const childCount = childNodes.length;
6460 for (let i2 = childCount - 1; i2 >= 0; --i2) {
6461 parentNode.insertBefore(cloneNode(childNodes[i2], true), getNextSibling(currentNode));
6462 }
6463 }
6464 }
6465 _forceRemove(currentNode);
6466 return true;
6467 }
6468 if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {
6469 _forceRemove(currentNode);
6470 return true;
6471 }
6472 if ((tagName === "noscript" || tagName === "noembed") && regExpTest(/<\/no(script|embed)/i, currentNode.innerHTML)) {
6473 _forceRemove(currentNode);
6474 return true;
6475 }
6476 if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {
6477 content2 = currentNode.textContent;
6478 content2 = stringReplace(content2, MUSTACHE_EXPR2, " ");
6479 content2 = stringReplace(content2, ERB_EXPR2, " ");
6480 content2 = stringReplace(content2, TMPLIT_EXPR2, " ");
6481 if (currentNode.textContent !== content2) {
6482 arrayPush$1(DOMPurify.removed, {
6483 element: currentNode.cloneNode()
6484 });
6485 currentNode.textContent = content2;
6486 }
6487 }
6488 _executeHook("afterSanitizeElements", currentNode, null);
6489 return false;
6490 };
6491 const _isValidAttribute = function _isValidAttribute2(lcTag, lcName, value) {
6492 if (SANITIZE_DOM && (lcName === "id" || lcName === "name") && (value in document2 || value in formElement)) {
6493 return false;
6494 }
6495 if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR2, lcName))
6496 ;
6497 else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR2, lcName))
6498 ;
6499 else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
6500 if (
6501 // First condition does a very basic check if a) it's basically a valid custom element tagname AND
6502 // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
6503 // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
6504 _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND
6505 // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
6506 lcName === "is" && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))
6507 )
6508 ;
6509 else {
6510 return false;
6511 }
6512 } else if (URI_SAFE_ATTRIBUTES[lcName])
6513 ;
6514 else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE2, "")))
6515 ;
6516 else if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value, "data:") === 0 && DATA_URI_TAGS[lcTag])
6517 ;
6518 else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA2, stringReplace(value, ATTR_WHITESPACE2, "")))
6519 ;
6520 else if (value) {
6521 return false;
6522 } else
6523 ;
6524 return true;
6525 };
6526 const _basicCustomElementTest = function _basicCustomElementTest2(tagName) {
6527 return tagName.indexOf("-") > 0;
6528 };
6529 const _sanitizeAttributes = function _sanitizeAttributes2(currentNode) {
6530 let attr;
6531 let value;
6532 let lcName;
6533 let l;
6534 _executeHook("beforeSanitizeAttributes", currentNode, null);
6535 const {
6536 attributes
6537 } = currentNode;
6538 if (!attributes) {
6539 return;
6540 }
6541 const hookEvent = {
6542 attrName: "",
6543 attrValue: "",
6544 keepAttr: true,
6545 allowedAttributes: ALLOWED_ATTR
6546 };
6547 l = attributes.length;
6548 while (l--) {
6549 attr = attributes[l];
6550 const {
6551 name: name2,
6552 namespaceURI
6553 } = attr;
6554 value = name2 === "value" ? attr.value : stringTrim(attr.value);
6555 lcName = transformCaseFunc(name2);
6556 hookEvent.attrName = lcName;
6557 hookEvent.attrValue = value;
6558 hookEvent.keepAttr = true;
6559 hookEvent.forceKeepAttr = void 0;
6560 _executeHook("uponSanitizeAttribute", currentNode, hookEvent);
6561 value = hookEvent.attrValue;
6562 if (hookEvent.forceKeepAttr) {
6563 continue;
6564 }
6565 _removeAttribute(name2, currentNode);
6566 if (!hookEvent.keepAttr) {
6567 continue;
6568 }
6569 if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value)) {
6570 _removeAttribute(name2, currentNode);
6571 continue;
6572 }
6573 if (SAFE_FOR_TEMPLATES) {
6574 value = stringReplace(value, MUSTACHE_EXPR2, " ");
6575 value = stringReplace(value, ERB_EXPR2, " ");
6576 value = stringReplace(value, TMPLIT_EXPR2, " ");
6577 }
6578 const lcTag = transformCaseFunc(currentNode.nodeName);
6579 if (!_isValidAttribute(lcTag, lcName, value)) {
6580 continue;
6581 }
6582 if (SANITIZE_NAMED_PROPS && (lcName === "id" || lcName === "name")) {
6583 _removeAttribute(name2, currentNode);
6584 value = SANITIZE_NAMED_PROPS_PREFIX + value;
6585 }
6586 if (trustedTypesPolicy && typeof trustedTypes === "object" && typeof trustedTypes.getAttributeType === "function") {
6587 if (namespaceURI)
6588 ;
6589 else {
6590 switch (trustedTypes.getAttributeType(lcTag, lcName)) {
6591 case "TrustedHTML": {
6592 value = trustedTypesPolicy.createHTML(value);
6593 break;
6594 }
6595 case "TrustedScriptURL": {
6596 value = trustedTypesPolicy.createScriptURL(value);
6597 break;
6598 }
6599 }
6600 }
6601 }
6602 try {
6603 if (namespaceURI) {
6604 currentNode.setAttributeNS(namespaceURI, name2, value);
6605 } else {
6606 currentNode.setAttribute(name2, value);
6607 }
6608 arrayPop(DOMPurify.removed);
6609 } catch (_2) {
6610 }
6611 }
6612 _executeHook("afterSanitizeAttributes", currentNode, null);
6613 };
6614 const _sanitizeShadowDOM = function _sanitizeShadowDOM2(fragment) {
6615 let shadowNode;
6616 const shadowIterator = _createIterator(fragment);
6617 _executeHook("beforeSanitizeShadowDOM", fragment, null);
6618 while (shadowNode = shadowIterator.nextNode()) {
6619 _executeHook("uponSanitizeShadowNode", shadowNode, null);
6620 if (_sanitizeElements(shadowNode)) {
6621 continue;
6622 }
6623 if (shadowNode.content instanceof DocumentFragment) {
6624 _sanitizeShadowDOM2(shadowNode.content);
6625 }
6626 _sanitizeAttributes(shadowNode);
6627 }
6628 _executeHook("afterSanitizeShadowDOM", fragment, null);
6629 };
6630 DOMPurify.sanitize = function(dirty) {
6631 let cfg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
6632 let body;
6633 let importedNode;
6634 let currentNode;
6635 let returnNode;
6636 IS_EMPTY_INPUT = !dirty;
6637 if (IS_EMPTY_INPUT) {
6638 dirty = "<!-->";
6639 }
6640 if (typeof dirty !== "string" && !_isNode(dirty)) {
6641 if (typeof dirty.toString === "function") {
6642 dirty = dirty.toString();
6643 if (typeof dirty !== "string") {
6644 throw typeErrorCreate("dirty is not a string, aborting");
6645 }
6646 } else {
6647 throw typeErrorCreate("toString is not a function");
6648 }
6649 }
6650 if (!DOMPurify.isSupported) {
6651 return dirty;
6652 }
6653 if (!SET_CONFIG) {
6654 _parseConfig(cfg);
6655 }
6656 DOMPurify.removed = [];
6657 if (typeof dirty === "string") {
6658 IN_PLACE = false;
6659 }
6660 if (IN_PLACE) {
6661 if (dirty.nodeName) {
6662 const tagName = transformCaseFunc(dirty.nodeName);
6663 if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
6664 throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
6665 }
6666 }
6667 } else if (dirty instanceof Node) {
6668 body = _initDocument("<!---->");
6669 importedNode = body.ownerDocument.importNode(dirty, true);
6670 if (importedNode.nodeType === 1 && importedNode.nodeName === "BODY") {
6671 body = importedNode;
6672 } else if (importedNode.nodeName === "HTML") {
6673 body = importedNode;
6674 } else {
6675 body.appendChild(importedNode);
6676 }
6677 } else {
6678 if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes
6679 dirty.indexOf("<") === -1) {
6680 return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
6681 }
6682 body = _initDocument(dirty);
6683 if (!body) {
6684 return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : "";
6685 }
6686 }
6687 if (body && FORCE_BODY) {
6688 _forceRemove(body.firstChild);
6689 }
6690 const nodeIterator = _createIterator(IN_PLACE ? dirty : body);
6691 while (currentNode = nodeIterator.nextNode()) {
6692 if (_sanitizeElements(currentNode)) {
6693 continue;
6694 }
6695 if (currentNode.content instanceof DocumentFragment) {
6696 _sanitizeShadowDOM(currentNode.content);
6697 }
6698 _sanitizeAttributes(currentNode);
6699 }
6700 if (IN_PLACE) {
6701 return dirty;
6702 }
6703 if (RETURN_DOM) {
6704 if (RETURN_DOM_FRAGMENT) {
6705 returnNode = createDocumentFragment.call(body.ownerDocument);
6706 while (body.firstChild) {
6707 returnNode.appendChild(body.firstChild);
6708 }
6709 } else {
6710 returnNode = body;
6711 }
6712 if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmod) {
6713 returnNode = importNode.call(originalDocument, returnNode, true);
6714 }
6715 return returnNode;
6716 }
6717 let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
6718 if (WHOLE_DOCUMENT && ALLOWED_TAGS["!doctype"] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {
6719 serializedHTML = "<!DOCTYPE " + body.ownerDocument.doctype.name + ">\n" + serializedHTML;
6720 }
6721 if (SAFE_FOR_TEMPLATES) {
6722 serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR2, " ");
6723 serializedHTML = stringReplace(serializedHTML, ERB_EXPR2, " ");
6724 serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR2, " ");
6725 }
6726 return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
6727 };
6728 DOMPurify.setConfig = function(cfg) {
6729 _parseConfig(cfg);
6730 SET_CONFIG = true;
6731 };
6732 DOMPurify.clearConfig = function() {
6733 CONFIG = null;
6734 SET_CONFIG = false;
6735 };
6736 DOMPurify.isValidAttribute = function(tag, attr, value) {
6737 if (!CONFIG) {
6738 _parseConfig({});
6739 }
6740 const lcTag = transformCaseFunc(tag);
6741 const lcName = transformCaseFunc(attr);
6742 return _isValidAttribute(lcTag, lcName, value);
6743 };
6744 DOMPurify.addHook = function(entryPoint, hookFunction) {
6745 if (typeof hookFunction !== "function") {
6746 return;
6747 }
6748 hooks[entryPoint] = hooks[entryPoint] || [];
6749 arrayPush$1(hooks[entryPoint], hookFunction);
6750 };
6751 DOMPurify.removeHook = function(entryPoint) {
6752 if (hooks[entryPoint]) {
6753 return arrayPop(hooks[entryPoint]);
6754 }
6755 };
6756 DOMPurify.removeHooks = function(entryPoint) {
6757 if (hooks[entryPoint]) {
6758 hooks[entryPoint] = [];
6759 }
6760 };
6761 DOMPurify.removeAllHooks = function() {
6762 hooks = {};
6763 };
6764 return DOMPurify;
6765 }
6766 var purify = createDOMPurify();
6767 const lineBreakRegex = /<br\s*\/?>/gi;
6768 const getRows = (s) => {
6769 if (!s) {
6770 return [""];
6771 }
6772 const str2 = breakToPlaceholder(s).replace(/\\n/g, "#br#");
6773 return str2.split("#br#");
6774 };
6775 const removeScript = (txt) => {
6776 return purify.sanitize(txt);
6777 };
6778 const sanitizeMore = (text2, config2) => {
6779 var _a;
6780 if (((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels) !== false) {
6781 const level = config2.securityLevel;
6782 if (level === "antiscript" || level === "strict") {
6783 text2 = removeScript(text2);
6784 } else if (level !== "loose") {
6785 text2 = breakToPlaceholder(text2);
6786 text2 = text2.replace(/</g, "&lt;").replace(/>/g, "&gt;");
6787 text2 = text2.replace(/=/g, "&equals;");
6788 text2 = placeholderToBreak(text2);
6789 }
6790 }
6791 return text2;
6792 };
6793 const sanitizeText$6 = (text2, config2) => {
6794 if (!text2) {
6795 return text2;
6796 }
6797 if (config2.dompurifyConfig) {
6798 text2 = purify.sanitize(sanitizeMore(text2, config2), config2.dompurifyConfig).toString();
6799 } else {
6800 text2 = purify.sanitize(sanitizeMore(text2, config2), {
6801 FORBID_TAGS: ["style"]
6802 }).toString();
6803 }
6804 return text2;
6805 };
6806 const sanitizeTextOrArray = (a, config2) => {
6807 if (typeof a === "string") {
6808 return sanitizeText$6(a, config2);
6809 }
6810 return a.flat().map((x2) => sanitizeText$6(x2, config2));
6811 };
6812 const hasBreaks = (text2) => {
6813 return lineBreakRegex.test(text2);
6814 };
6815 const splitBreaks = (text2) => {
6816 return text2.split(lineBreakRegex);
6817 };
6818 const placeholderToBreak = (s) => {
6819 return s.replace(/#br#/g, "<br/>");
6820 };
6821 const breakToPlaceholder = (s) => {
6822 return s.replace(lineBreakRegex, "#br#");
6823 };
6824 const getUrl = (useAbsolute) => {
6825 let url = "";
6826 if (useAbsolute) {
6827 url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
6828 url = url.replaceAll(/\(/g, "\\(");
6829 url = url.replaceAll(/\)/g, "\\)");
6830 }
6831 return url;
6832 };
6833 const evaluate = (val) => val === false || ["false", "null", "0"].includes(String(val).trim().toLowerCase()) ? false : true;
6834 const getMax = function(...values2) {
6835 const newValues = values2.filter((value) => {
6836 return !isNaN(value);
6837 });
6838 return Math.max(...newValues);
6839 };
6840 const getMin = function(...values2) {
6841 const newValues = values2.filter((value) => {
6842 return !isNaN(value);
6843 });
6844 return Math.min(...newValues);
6845 };
6846 const parseGenericTypes = function(text2) {
6847 let cleanedText = text2;
6848 if (text2.split("~").length - 1 >= 2) {
6849 let newCleanedText = cleanedText;
6850 do {
6851 cleanedText = newCleanedText;
6852 newCleanedText = cleanedText.replace(/~([^\s,:;]+)~/, "<$1>");
6853 } while (newCleanedText != cleanedText);
6854 return parseGenericTypes(newCleanedText);
6855 } else {
6856 return cleanedText;
6857 }
6858 };
6859 const common$1 = {
6860 getRows,
6861 sanitizeText: sanitizeText$6,
6862 sanitizeTextOrArray,
6863 hasBreaks,
6864 splitBreaks,
6865 lineBreakRegex,
6866 removeScript,
6867 getUrl,
6868 evaluate,
6869 getMax,
6870 getMin
6871 };
6872 const Channel = {
6873 /* CLAMP */
6874 min: {
6875 r: 0,
6876 g: 0,
6877 b: 0,
6878 s: 0,
6879 l: 0,
6880 a: 0
6881 },
6882 max: {
6883 r: 255,
6884 g: 255,
6885 b: 255,
6886 h: 360,
6887 s: 100,
6888 l: 100,
6889 a: 1
6890 },
6891 clamp: {
6892 r: (r) => r >= 255 ? 255 : r < 0 ? 0 : r,
6893 g: (g) => g >= 255 ? 255 : g < 0 ? 0 : g,
6894 b: (b) => b >= 255 ? 255 : b < 0 ? 0 : b,
6895 h: (h) => h % 360,
6896 s: (s) => s >= 100 ? 100 : s < 0 ? 0 : s,
6897 l: (l) => l >= 100 ? 100 : l < 0 ? 0 : l,
6898 a: (a) => a >= 1 ? 1 : a < 0 ? 0 : a
6899 },
6900 /* CONVERSION */
6901 //SOURCE: https://planetcalc.com/7779
6902 toLinear: (c2) => {
6903 const n = c2 / 255;
6904 return c2 > 0.03928 ? Math.pow((n + 0.055) / 1.055, 2.4) : n / 12.92;
6905 },
6906 //SOURCE: https://gist.github.com/mjackson/5311256
6907 hue2rgb: (p, q, t4) => {
6908 if (t4 < 0)
6909 t4 += 1;
6910 if (t4 > 1)
6911 t4 -= 1;
6912 if (t4 < 1 / 6)
6913 return p + (q - p) * 6 * t4;
6914 if (t4 < 1 / 2)
6915 return q;
6916 if (t4 < 2 / 3)
6917 return p + (q - p) * (2 / 3 - t4) * 6;
6918 return p;
6919 },
6920 hsl2rgb: ({ h, s, l }, channel2) => {
6921 if (!s)
6922 return l * 2.55;
6923 h /= 360;
6924 s /= 100;
6925 l /= 100;
6926 const q = l < 0.5 ? l * (1 + s) : l + s - l * s;
6927 const p = 2 * l - q;
6928 switch (channel2) {
6929 case "r":
6930 return Channel.hue2rgb(p, q, h + 1 / 3) * 255;
6931 case "g":
6932 return Channel.hue2rgb(p, q, h) * 255;
6933 case "b":
6934 return Channel.hue2rgb(p, q, h - 1 / 3) * 255;
6935 }
6936 },
6937 rgb2hsl: ({ r, g, b }, channel2) => {
6938 r /= 255;
6939 g /= 255;
6940 b /= 255;
6941 const max2 = Math.max(r, g, b);
6942 const min2 = Math.min(r, g, b);
6943 const l = (max2 + min2) / 2;
6944 if (channel2 === "l")
6945 return l * 100;
6946 if (max2 === min2)
6947 return 0;
6948 const d = max2 - min2;
6949 const s = l > 0.5 ? d / (2 - max2 - min2) : d / (max2 + min2);
6950 if (channel2 === "s")
6951 return s * 100;
6952 switch (max2) {
6953 case r:
6954 return ((g - b) / d + (g < b ? 6 : 0)) * 60;
6955 case g:
6956 return ((b - r) / d + 2) * 60;
6957 case b:
6958 return ((r - g) / d + 4) * 60;
6959 default:
6960 return -1;
6961 }
6962 }
6963 };
6964 const channel$2 = Channel;
6965 const Lang = {
6966 /* API */
6967 clamp: (number2, lower2, upper) => {
6968 if (lower2 > upper)
6969 return Math.min(lower2, Math.max(upper, number2));
6970 return Math.min(upper, Math.max(lower2, number2));
6971 },
6972 round: (number2) => {
6973 return Math.round(number2 * 1e10) / 1e10;
6974 }
6975 };
6976 const lang = Lang;
6977 const Unit = {
6978 /* API */
6979 dec2hex: (dec) => {
6980 const hex2 = Math.round(dec).toString(16);
6981 return hex2.length > 1 ? hex2 : `0${hex2}`;
6982 }
6983 };
6984 const unit = Unit;
6985 const Utils = {
6986 channel: channel$2,
6987 lang,
6988 unit
6989 };
6990 const _ = Utils;
6991 const DEC2HEX = {};
6992 for (let i2 = 0; i2 <= 255; i2++)
6993 DEC2HEX[i2] = _.unit.dec2hex(i2);
6994 const TYPE = {
6995 ALL: 0,
6996 RGB: 1,
6997 HSL: 2
6998 };
6999 class Type {
7000 constructor() {
7001 this.type = TYPE.ALL;
7002 }
7003 /* API */
7004 get() {
7005 return this.type;
7006 }
7007 set(type2) {
7008 if (this.type && this.type !== type2)
7009 throw new Error("Cannot change both RGB and HSL channels at the same time");
7010 this.type = type2;
7011 }
7012 reset() {
7013 this.type = TYPE.ALL;
7014 }
7015 is(type2) {
7016 return this.type === type2;
7017 }
7018 }
7019 const Type$2 = Type;
7020 class Channels {
7021 /* CONSTRUCTOR */
7022 constructor(data, color2) {
7023 this.color = color2;
7024 this.changed = false;
7025 this.data = data;
7026 this.type = new Type$2();
7027 }
7028 /* API */
7029 set(data, color2) {
7030 this.color = color2;
7031 this.changed = false;
7032 this.data = data;
7033 this.type.type = TYPE.ALL;
7034 return this;
7035 }
7036 /* HELPERS */
7037 _ensureHSL() {
7038 const data = this.data;
7039 const { h, s, l } = data;
7040 if (h === void 0)
7041 data.h = _.channel.rgb2hsl(data, "h");
7042 if (s === void 0)
7043 data.s = _.channel.rgb2hsl(data, "s");
7044 if (l === void 0)
7045 data.l = _.channel.rgb2hsl(data, "l");
7046 }
7047 _ensureRGB() {
7048 const data = this.data;
7049 const { r, g, b } = data;
7050 if (r === void 0)
7051 data.r = _.channel.hsl2rgb(data, "r");
7052 if (g === void 0)
7053 data.g = _.channel.hsl2rgb(data, "g");
7054 if (b === void 0)
7055 data.b = _.channel.hsl2rgb(data, "b");
7056 }
7057 /* GETTERS */
7058 get r() {
7059 const data = this.data;
7060 const r = data.r;
7061 if (!this.type.is(TYPE.HSL) && r !== void 0)
7062 return r;
7063 this._ensureHSL();
7064 return _.channel.hsl2rgb(data, "r");
7065 }
7066 get g() {
7067 const data = this.data;
7068 const g = data.g;
7069 if (!this.type.is(TYPE.HSL) && g !== void 0)
7070 return g;
7071 this._ensureHSL();
7072 return _.channel.hsl2rgb(data, "g");
7073 }
7074 get b() {
7075 const data = this.data;
7076 const b = data.b;
7077 if (!this.type.is(TYPE.HSL) && b !== void 0)
7078 return b;
7079 this._ensureHSL();
7080 return _.channel.hsl2rgb(data, "b");
7081 }
7082 get h() {
7083 const data = this.data;
7084 const h = data.h;
7085 if (!this.type.is(TYPE.RGB) && h !== void 0)
7086 return h;
7087 this._ensureRGB();
7088 return _.channel.rgb2hsl(data, "h");
7089 }
7090 get s() {
7091 const data = this.data;
7092 const s = data.s;
7093 if (!this.type.is(TYPE.RGB) && s !== void 0)
7094 return s;
7095 this._ensureRGB();
7096 return _.channel.rgb2hsl(data, "s");
7097 }
7098 get l() {
7099 const data = this.data;
7100 const l = data.l;
7101 if (!this.type.is(TYPE.RGB) && l !== void 0)
7102 return l;
7103 this._ensureRGB();
7104 return _.channel.rgb2hsl(data, "l");
7105 }
7106 get a() {
7107 return this.data.a;
7108 }
7109 /* SETTERS */
7110 set r(r) {
7111 this.type.set(TYPE.RGB);
7112 this.changed = true;
7113 this.data.r = r;
7114 }
7115 set g(g) {
7116 this.type.set(TYPE.RGB);
7117 this.changed = true;
7118 this.data.g = g;
7119 }
7120 set b(b) {
7121 this.type.set(TYPE.RGB);
7122 this.changed = true;
7123 this.data.b = b;
7124 }
7125 set h(h) {
7126 this.type.set(TYPE.HSL);
7127 this.changed = true;
7128 this.data.h = h;
7129 }
7130 set s(s) {
7131 this.type.set(TYPE.HSL);
7132 this.changed = true;
7133 this.data.s = s;
7134 }
7135 set l(l) {
7136 this.type.set(TYPE.HSL);
7137 this.changed = true;
7138 this.data.l = l;
7139 }
7140 set a(a) {
7141 this.changed = true;
7142 this.data.a = a;
7143 }
7144 }
7145 const Channels$1 = Channels;
7146 const channels = new Channels$1({ r: 0, g: 0, b: 0, a: 0 }, "transparent");
7147 const ChannelsReusable = channels;
7148 const Hex = {
7149 /* VARIABLES */
7150 re: /^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,
7151 /* API */
7152 parse: (color2) => {
7153 if (color2.charCodeAt(0) !== 35)
7154 return;
7155 const match = color2.match(Hex.re);
7156 if (!match)
7157 return;
7158 const hex2 = match[1];
7159 const dec = parseInt(hex2, 16);
7160 const length2 = hex2.length;
7161 const hasAlpha = length2 % 4 === 0;
7162 const isFullLength = length2 > 4;
7163 const multiplier = isFullLength ? 1 : 17;
7164 const bits = isFullLength ? 8 : 4;
7165 const bitsOffset = hasAlpha ? 0 : -1;
7166 const mask = isFullLength ? 255 : 15;
7167 return ChannelsReusable.set({
7168 r: (dec >> bits * (bitsOffset + 3) & mask) * multiplier,
7169 g: (dec >> bits * (bitsOffset + 2) & mask) * multiplier,
7170 b: (dec >> bits * (bitsOffset + 1) & mask) * multiplier,
7171 a: hasAlpha ? (dec & mask) * multiplier / 255 : 1
7172 }, color2);
7173 },
7174 stringify: (channels2) => {
7175 const { r, g, b, a } = channels2;
7176 if (a < 1) {
7177 return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}${DEC2HEX[Math.round(a * 255)]}`;
7178 } else {
7179 return `#${DEC2HEX[Math.round(r)]}${DEC2HEX[Math.round(g)]}${DEC2HEX[Math.round(b)]}`;
7180 }
7181 }
7182 };
7183 const Hex$1 = Hex;
7184 const HSL = {
7185 /* VARIABLES */
7186 re: /^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,
7187 hueRe: /^(.+?)(deg|grad|rad|turn)$/i,
7188 /* HELPERS */
7189 _hue2deg: (hue2) => {
7190 const match = hue2.match(HSL.hueRe);
7191 if (match) {
7192 const [, number2, unit2] = match;
7193 switch (unit2) {
7194 case "grad":
7195 return _.channel.clamp.h(parseFloat(number2) * 0.9);
7196 case "rad":
7197 return _.channel.clamp.h(parseFloat(number2) * 180 / Math.PI);
7198 case "turn":
7199 return _.channel.clamp.h(parseFloat(number2) * 360);
7200 }
7201 }
7202 return _.channel.clamp.h(parseFloat(hue2));
7203 },
7204 /* API */
7205 parse: (color2) => {
7206 const charCode = color2.charCodeAt(0);
7207 if (charCode !== 104 && charCode !== 72)
7208 return;
7209 const match = color2.match(HSL.re);
7210 if (!match)
7211 return;
7212 const [, h, s, l, a, isAlphaPercentage] = match;
7213 return ChannelsReusable.set({
7214 h: HSL._hue2deg(h),
7215 s: _.channel.clamp.s(parseFloat(s)),
7216 l: _.channel.clamp.l(parseFloat(l)),
7217 a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1
7218 }, color2);
7219 },
7220 stringify: (channels2) => {
7221 const { h, s, l, a } = channels2;
7222 if (a < 1) {
7223 return `hsla(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%, ${a})`;
7224 } else {
7225 return `hsl(${_.lang.round(h)}, ${_.lang.round(s)}%, ${_.lang.round(l)}%)`;
7226 }
7227 }
7228 };
7229 const HSL$1 = HSL;
7230 const Keyword = {
7231 /* VARIABLES */
7232 colors: {
7233 aliceblue: "#f0f8ff",
7234 antiquewhite: "#faebd7",
7235 aqua: "#00ffff",
7236 aquamarine: "#7fffd4",
7237 azure: "#f0ffff",
7238 beige: "#f5f5dc",
7239 bisque: "#ffe4c4",
7240 black: "#000000",
7241 blanchedalmond: "#ffebcd",
7242 blue: "#0000ff",
7243 blueviolet: "#8a2be2",
7244 brown: "#a52a2a",
7245 burlywood: "#deb887",
7246 cadetblue: "#5f9ea0",
7247 chartreuse: "#7fff00",
7248 chocolate: "#d2691e",
7249 coral: "#ff7f50",
7250 cornflowerblue: "#6495ed",
7251 cornsilk: "#fff8dc",
7252 crimson: "#dc143c",
7253 cyanaqua: "#00ffff",
7254 darkblue: "#00008b",
7255 darkcyan: "#008b8b",
7256 darkgoldenrod: "#b8860b",
7257 darkgray: "#a9a9a9",
7258 darkgreen: "#006400",
7259 darkgrey: "#a9a9a9",
7260 darkkhaki: "#bdb76b",
7261 darkmagenta: "#8b008b",
7262 darkolivegreen: "#556b2f",
7263 darkorange: "#ff8c00",
7264 darkorchid: "#9932cc",
7265 darkred: "#8b0000",
7266 darksalmon: "#e9967a",
7267 darkseagreen: "#8fbc8f",
7268 darkslateblue: "#483d8b",
7269 darkslategray: "#2f4f4f",
7270 darkslategrey: "#2f4f4f",
7271 darkturquoise: "#00ced1",
7272 darkviolet: "#9400d3",
7273 deeppink: "#ff1493",
7274 deepskyblue: "#00bfff",
7275 dimgray: "#696969",
7276 dimgrey: "#696969",
7277 dodgerblue: "#1e90ff",
7278 firebrick: "#b22222",
7279 floralwhite: "#fffaf0",
7280 forestgreen: "#228b22",
7281 fuchsia: "#ff00ff",
7282 gainsboro: "#dcdcdc",
7283 ghostwhite: "#f8f8ff",
7284 gold: "#ffd700",
7285 goldenrod: "#daa520",
7286 gray: "#808080",
7287 green: "#008000",
7288 greenyellow: "#adff2f",
7289 grey: "#808080",
7290 honeydew: "#f0fff0",
7291 hotpink: "#ff69b4",
7292 indianred: "#cd5c5c",
7293 indigo: "#4b0082",
7294 ivory: "#fffff0",
7295 khaki: "#f0e68c",
7296 lavender: "#e6e6fa",
7297 lavenderblush: "#fff0f5",
7298 lawngreen: "#7cfc00",
7299 lemonchiffon: "#fffacd",
7300 lightblue: "#add8e6",
7301 lightcoral: "#f08080",
7302 lightcyan: "#e0ffff",
7303 lightgoldenrodyellow: "#fafad2",
7304 lightgray: "#d3d3d3",
7305 lightgreen: "#90ee90",
7306 lightgrey: "#d3d3d3",
7307 lightpink: "#ffb6c1",
7308 lightsalmon: "#ffa07a",
7309 lightseagreen: "#20b2aa",
7310 lightskyblue: "#87cefa",
7311 lightslategray: "#778899",
7312 lightslategrey: "#778899",
7313 lightsteelblue: "#b0c4de",
7314 lightyellow: "#ffffe0",
7315 lime: "#00ff00",
7316 limegreen: "#32cd32",
7317 linen: "#faf0e6",
7318 magenta: "#ff00ff",
7319 maroon: "#800000",
7320 mediumaquamarine: "#66cdaa",
7321 mediumblue: "#0000cd",
7322 mediumorchid: "#ba55d3",
7323 mediumpurple: "#9370db",
7324 mediumseagreen: "#3cb371",
7325 mediumslateblue: "#7b68ee",
7326 mediumspringgreen: "#00fa9a",
7327 mediumturquoise: "#48d1cc",
7328 mediumvioletred: "#c71585",
7329 midnightblue: "#191970",
7330 mintcream: "#f5fffa",
7331 mistyrose: "#ffe4e1",
7332 moccasin: "#ffe4b5",
7333 navajowhite: "#ffdead",
7334 navy: "#000080",
7335 oldlace: "#fdf5e6",
7336 olive: "#808000",
7337 olivedrab: "#6b8e23",
7338 orange: "#ffa500",
7339 orangered: "#ff4500",
7340 orchid: "#da70d6",
7341 palegoldenrod: "#eee8aa",
7342 palegreen: "#98fb98",
7343 paleturquoise: "#afeeee",
7344 palevioletred: "#db7093",
7345 papayawhip: "#ffefd5",
7346 peachpuff: "#ffdab9",
7347 peru: "#cd853f",
7348 pink: "#ffc0cb",
7349 plum: "#dda0dd",
7350 powderblue: "#b0e0e6",
7351 purple: "#800080",
7352 rebeccapurple: "#663399",
7353 red: "#ff0000",
7354 rosybrown: "#bc8f8f",
7355 royalblue: "#4169e1",
7356 saddlebrown: "#8b4513",
7357 salmon: "#fa8072",
7358 sandybrown: "#f4a460",
7359 seagreen: "#2e8b57",
7360 seashell: "#fff5ee",
7361 sienna: "#a0522d",
7362 silver: "#c0c0c0",
7363 skyblue: "#87ceeb",
7364 slateblue: "#6a5acd",
7365 slategray: "#708090",
7366 slategrey: "#708090",
7367 snow: "#fffafa",
7368 springgreen: "#00ff7f",
7369 tan: "#d2b48c",
7370 teal: "#008080",
7371 thistle: "#d8bfd8",
7372 transparent: "#00000000",
7373 turquoise: "#40e0d0",
7374 violet: "#ee82ee",
7375 wheat: "#f5deb3",
7376 white: "#ffffff",
7377 whitesmoke: "#f5f5f5",
7378 yellow: "#ffff00",
7379 yellowgreen: "#9acd32"
7380 },
7381 /* API */
7382 parse: (color2) => {
7383 color2 = color2.toLowerCase();
7384 const hex2 = Keyword.colors[color2];
7385 if (!hex2)
7386 return;
7387 return Hex$1.parse(hex2);
7388 },
7389 stringify: (channels2) => {
7390 const hex2 = Hex$1.stringify(channels2);
7391 for (const name2 in Keyword.colors) {
7392 if (Keyword.colors[name2] === hex2)
7393 return name2;
7394 }
7395 return;
7396 }
7397 };
7398 const Keyword$1 = Keyword;
7399 const RGB = {
7400 /* VARIABLES */
7401 re: /^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,
7402 /* API */
7403 parse: (color2) => {
7404 const charCode = color2.charCodeAt(0);
7405 if (charCode !== 114 && charCode !== 82)
7406 return;
7407 const match = color2.match(RGB.re);
7408 if (!match)
7409 return;
7410 const [, r, isRedPercentage, g, isGreenPercentage, b, isBluePercentage, a, isAlphaPercentage] = match;
7411 return ChannelsReusable.set({
7412 r: _.channel.clamp.r(isRedPercentage ? parseFloat(r) * 2.55 : parseFloat(r)),
7413 g: _.channel.clamp.g(isGreenPercentage ? parseFloat(g) * 2.55 : parseFloat(g)),
7414 b: _.channel.clamp.b(isBluePercentage ? parseFloat(b) * 2.55 : parseFloat(b)),
7415 a: a ? _.channel.clamp.a(isAlphaPercentage ? parseFloat(a) / 100 : parseFloat(a)) : 1
7416 }, color2);
7417 },
7418 stringify: (channels2) => {
7419 const { r, g, b, a } = channels2;
7420 if (a < 1) {
7421 return `rgba(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)}, ${_.lang.round(a)})`;
7422 } else {
7423 return `rgb(${_.lang.round(r)}, ${_.lang.round(g)}, ${_.lang.round(b)})`;
7424 }
7425 }
7426 };
7427 const RGB$1 = RGB;
7428 const Color = {
7429 /* VARIABLES */
7430 format: {
7431 keyword: Keyword$1,
7432 hex: Hex$1,
7433 rgb: RGB$1,
7434 rgba: RGB$1,
7435 hsl: HSL$1,
7436 hsla: HSL$1
7437 },
7438 /* API */
7439 parse: (color2) => {
7440 if (typeof color2 !== "string")
7441 return color2;
7442 const channels2 = Hex$1.parse(color2) || RGB$1.parse(color2) || HSL$1.parse(color2) || Keyword$1.parse(color2);
7443 if (channels2)
7444 return channels2;
7445 throw new Error(`Unsupported color format: "${color2}"`);
7446 },
7447 stringify: (channels2) => {
7448 if (!channels2.changed && channels2.color)
7449 return channels2.color;
7450 if (channels2.type.is(TYPE.HSL) || channels2.data.r === void 0) {
7451 return HSL$1.stringify(channels2);
7452 } else if (channels2.a < 1 || !Number.isInteger(channels2.r) || !Number.isInteger(channels2.g) || !Number.isInteger(channels2.b)) {
7453 return RGB$1.stringify(channels2);
7454 } else {
7455 return Hex$1.stringify(channels2);
7456 }
7457 }
7458 };
7459 const Color$1 = Color;
7460 const change = (color2, channels2) => {
7461 const ch = Color$1.parse(color2);
7462 for (const c2 in channels2) {
7463 ch[c2] = _.channel.clamp[c2](channels2[c2]);
7464 }
7465 return Color$1.stringify(ch);
7466 };
7467 const change$1 = change;
7468 const rgba = (r, g, b = 0, a = 1) => {
7469 if (typeof r !== "number")
7470 return change$1(r, { a: g });
7471 const channels2 = ChannelsReusable.set({
7472 r: _.channel.clamp.r(r),
7473 g: _.channel.clamp.g(g),
7474 b: _.channel.clamp.b(b),
7475 a: _.channel.clamp.a(a)
7476 });
7477 return Color$1.stringify(channels2);
7478 };
7479 const rgba$1 = rgba;
7480 const channel = (color2, channel2) => {
7481 return _.lang.round(Color$1.parse(color2)[channel2]);
7482 };
7483 const channel$1 = channel;
7484 const luminance = (color2) => {
7485 const { r, g, b } = Color$1.parse(color2);
7486 const luminance2 = 0.2126 * _.channel.toLinear(r) + 0.7152 * _.channel.toLinear(g) + 0.0722 * _.channel.toLinear(b);
7487 return _.lang.round(luminance2);
7488 };
7489 const luminance$1 = luminance;
7490 const isLight = (color2) => {
7491 return luminance$1(color2) >= 0.5;
7492 };
7493 const isLight$1 = isLight;
7494 const isDark = (color2) => {
7495 return !isLight$1(color2);
7496 };
7497 const isDark$1 = isDark;
7498 const adjustChannel = (color2, channel2, amount) => {
7499 const channels2 = Color$1.parse(color2);
7500 const amountCurrent = channels2[channel2];
7501 const amountNext = _.channel.clamp[channel2](amountCurrent + amount);
7502 if (amountCurrent !== amountNext)
7503 channels2[channel2] = amountNext;
7504 return Color$1.stringify(channels2);
7505 };
7506 const adjustChannel$1 = adjustChannel;
7507 const lighten = (color2, amount) => {
7508 return adjustChannel$1(color2, "l", amount);
7509 };
7510 const lighten$1 = lighten;
7511 const darken = (color2, amount) => {
7512 return adjustChannel$1(color2, "l", -amount);
7513 };
7514 const darken$1 = darken;
7515 const adjust$1 = (color2, channels2) => {
7516 const ch = Color$1.parse(color2);
7517 const changes = {};
7518 for (const c2 in channels2) {
7519 if (!channels2[c2])
7520 continue;
7521 changes[c2] = ch[c2] + channels2[c2];
7522 }
7523 return change$1(color2, changes);
7524 };
7525 const adjust$2 = adjust$1;
7526 const mix = (color1, color2, weight = 50) => {
7527 const { r: r1, g: g1, b: b1, a: a1 } = Color$1.parse(color1);
7528 const { r: r2, g: g2, b: b2, a: a2 } = Color$1.parse(color2);
7529 const weightScale = weight / 100;
7530 const weightNormalized = weightScale * 2 - 1;
7531 const alphaDelta = a1 - a2;
7532 const weight1combined = weightNormalized * alphaDelta === -1 ? weightNormalized : (weightNormalized + alphaDelta) / (1 + weightNormalized * alphaDelta);
7533 const weight1 = (weight1combined + 1) / 2;
7534 const weight2 = 1 - weight1;
7535 const r = r1 * weight1 + r2 * weight2;
7536 const g = g1 * weight1 + g2 * weight2;
7537 const b = b1 * weight1 + b2 * weight2;
7538 const a = a1 * weightScale + a2 * (1 - weightScale);
7539 return rgba$1(r, g, b, a);
7540 };
7541 const mix$1 = mix;
7542 const invert = (color2, weight = 100) => {
7543 const inverse = Color$1.parse(color2);
7544 inverse.r = 255 - inverse.r;
7545 inverse.g = 255 - inverse.g;
7546 inverse.b = 255 - inverse.b;
7547 return mix$1(inverse, color2, weight);
7548 };
7549 const invert$1 = invert;
7550 const mkBorder = (col, darkMode) => darkMode ? adjust$2(col, { s: -40, l: 10 }) : adjust$2(col, { s: -40, l: -10 });
7551 const oldAttributeBackgroundColorOdd = "#ffffff";
7552 const oldAttributeBackgroundColorEven = "#f2f2f2";
7553 let Theme$4 = class Theme {
7554 constructor() {
7555 this.background = "#f4f4f4";
7556 this.primaryColor = "#fff4dd";
7557 this.noteBkgColor = "#fff5ad";
7558 this.noteTextColor = "#333";
7559 this.THEME_COLOR_LIMIT = 12;
7560 this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
7561 this.fontSize = "16px";
7562 }
7563 updateColors() {
7564 this.primaryTextColor = this.primaryTextColor || (this.darkMode ? "#eee" : "#333");
7565 this.secondaryColor = this.secondaryColor || adjust$2(this.primaryColor, { h: -120 });
7566 this.tertiaryColor = this.tertiaryColor || adjust$2(this.primaryColor, { h: 180, l: 5 });
7567 this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);
7568 this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);
7569 this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);
7570 this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);
7571 this.noteBkgColor = this.noteBkgColor || "#fff5ad";
7572 this.noteTextColor = this.noteTextColor || "#333";
7573 this.secondaryTextColor = this.secondaryTextColor || invert$1(this.secondaryColor);
7574 this.tertiaryTextColor = this.tertiaryTextColor || invert$1(this.tertiaryColor);
7575 this.lineColor = this.lineColor || invert$1(this.background);
7576 this.arrowheadColor = this.arrowheadColor || invert$1(this.background);
7577 this.textColor = this.textColor || this.primaryTextColor;
7578 this.border2 = this.border2 || this.tertiaryBorderColor;
7579 this.nodeBkg = this.nodeBkg || this.primaryColor;
7580 this.mainBkg = this.mainBkg || this.primaryColor;
7581 this.nodeBorder = this.nodeBorder || this.primaryBorderColor;
7582 this.clusterBkg = this.clusterBkg || this.tertiaryColor;
7583 this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;
7584 this.defaultLinkColor = this.defaultLinkColor || this.lineColor;
7585 this.titleColor = this.titleColor || this.tertiaryTextColor;
7586 this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken$1(this.secondaryColor, 30) : this.secondaryColor);
7587 this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;
7588 this.actorBorder = this.actorBorder || this.primaryBorderColor;
7589 this.actorBkg = this.actorBkg || this.mainBkg;
7590 this.actorTextColor = this.actorTextColor || this.primaryTextColor;
7591 this.actorLineColor = this.actorLineColor || "grey";
7592 this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;
7593 this.signalColor = this.signalColor || this.textColor;
7594 this.signalTextColor = this.signalTextColor || this.textColor;
7595 this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;
7596 this.labelTextColor = this.labelTextColor || this.actorTextColor;
7597 this.loopTextColor = this.loopTextColor || this.actorTextColor;
7598 this.activationBorderColor = this.activationBorderColor || darken$1(this.secondaryColor, 10);
7599 this.activationBkgColor = this.activationBkgColor || this.secondaryColor;
7600 this.sequenceNumberColor = this.sequenceNumberColor || invert$1(this.lineColor);
7601 this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;
7602 this.altSectionBkgColor = this.altSectionBkgColor || "white";
7603 this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;
7604 this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;
7605 this.excludeBkgColor = this.excludeBkgColor || "#eeeeee";
7606 this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;
7607 this.taskBkgColor = this.taskBkgColor || this.primaryColor;
7608 this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;
7609 this.activeTaskBkgColor = this.activeTaskBkgColor || lighten$1(this.primaryColor, 23);
7610 this.gridColor = this.gridColor || "lightgrey";
7611 this.doneTaskBkgColor = this.doneTaskBkgColor || "lightgrey";
7612 this.doneTaskBorderColor = this.doneTaskBorderColor || "grey";
7613 this.critBorderColor = this.critBorderColor || "#ff8888";
7614 this.critBkgColor = this.critBkgColor || "red";
7615 this.todayLineColor = this.todayLineColor || "red";
7616 this.taskTextColor = this.taskTextColor || this.textColor;
7617 this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;
7618 this.taskTextLightColor = this.taskTextLightColor || this.textColor;
7619 this.taskTextColor = this.taskTextColor || this.primaryTextColor;
7620 this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;
7621 this.taskTextClickableColor = this.taskTextClickableColor || "#003163";
7622 this.personBorder = this.personBorder || this.primaryBorderColor;
7623 this.personBkg = this.personBkg || this.mainBkg;
7624 this.transitionColor = this.transitionColor || this.lineColor;
7625 this.transitionLabelColor = this.transitionLabelColor || this.textColor;
7626 this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
7627 this.stateBkg = this.stateBkg || this.mainBkg;
7628 this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
7629 this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
7630 this.altBackground = this.altBackground || this.tertiaryColor;
7631 this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
7632 this.compositeBorder = this.compositeBorder || this.nodeBorder;
7633 this.innerEndBackground = this.nodeBorder;
7634 this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
7635 this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
7636 this.transitionColor = this.transitionColor || this.lineColor;
7637 this.specialStateColor = this.lineColor;
7638 this.cScale0 = this.cScale0 || this.primaryColor;
7639 this.cScale1 = this.cScale1 || this.secondaryColor;
7640 this.cScale2 = this.cScale2 || this.tertiaryColor;
7641 this.cScale3 = this.cScale3 || adjust$2(this.primaryColor, { h: 30 });
7642 this.cScale4 = this.cScale4 || adjust$2(this.primaryColor, { h: 60 });
7643 this.cScale5 = this.cScale5 || adjust$2(this.primaryColor, { h: 90 });
7644 this.cScale6 = this.cScale6 || adjust$2(this.primaryColor, { h: 120 });
7645 this.cScale7 = this.cScale7 || adjust$2(this.primaryColor, { h: 150 });
7646 this.cScale8 = this.cScale8 || adjust$2(this.primaryColor, { h: 210, l: 150 });
7647 this.cScale9 = this.cScale9 || adjust$2(this.primaryColor, { h: 270 });
7648 this.cScale10 = this.cScale10 || adjust$2(this.primaryColor, { h: 300 });
7649 this.cScale11 = this.cScale11 || adjust$2(this.primaryColor, { h: 330 });
7650 if (this.darkMode) {
7651 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
7652 this["cScale" + i2] = darken$1(this["cScale" + i2], 75);
7653 }
7654 } else {
7655 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
7656 this["cScale" + i2] = darken$1(this["cScale" + i2], 25);
7657 }
7658 }
7659 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
7660 this["cScaleInv" + i2] = this["cScaleInv" + i2] || invert$1(this["cScale" + i2]);
7661 }
7662 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
7663 if (this.darkMode) {
7664 this["cScalePeer" + i2] = this["cScalePeer" + i2] || lighten$1(this["cScale" + i2], 10);
7665 } else {
7666 this["cScalePeer" + i2] = this["cScalePeer" + i2] || darken$1(this["cScale" + i2], 10);
7667 }
7668 }
7669 this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;
7670 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
7671 this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.scaleLabelColor;
7672 }
7673 const multiplier = this.darkMode ? -4 : -1;
7674 for (let i2 = 0; i2 < 5; i2++) {
7675 this["surface" + i2] = this["surface" + i2] || adjust$2(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i2 * 3) });
7676 this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust$2(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i2 * 3) });
7677 }
7678 this.classText = this.classText || this.textColor;
7679 this.fillType0 = this.fillType0 || this.primaryColor;
7680 this.fillType1 = this.fillType1 || this.secondaryColor;
7681 this.fillType2 = this.fillType2 || adjust$2(this.primaryColor, { h: 64 });
7682 this.fillType3 = this.fillType3 || adjust$2(this.secondaryColor, { h: 64 });
7683 this.fillType4 = this.fillType4 || adjust$2(this.primaryColor, { h: -64 });
7684 this.fillType5 = this.fillType5 || adjust$2(this.secondaryColor, { h: -64 });
7685 this.fillType6 = this.fillType6 || adjust$2(this.primaryColor, { h: 128 });
7686 this.fillType7 = this.fillType7 || adjust$2(this.secondaryColor, { h: 128 });
7687 this.pie1 = this.pie1 || this.primaryColor;
7688 this.pie2 = this.pie2 || this.secondaryColor;
7689 this.pie3 = this.pie3 || this.tertiaryColor;
7690 this.pie4 = this.pie4 || adjust$2(this.primaryColor, { l: -10 });
7691 this.pie5 = this.pie5 || adjust$2(this.secondaryColor, { l: -10 });
7692 this.pie6 = this.pie6 || adjust$2(this.tertiaryColor, { l: -10 });
7693 this.pie7 = this.pie7 || adjust$2(this.primaryColor, { h: 60, l: -10 });
7694 this.pie8 = this.pie8 || adjust$2(this.primaryColor, { h: -60, l: -10 });
7695 this.pie9 = this.pie9 || adjust$2(this.primaryColor, { h: 120, l: 0 });
7696 this.pie10 = this.pie10 || adjust$2(this.primaryColor, { h: 60, l: -20 });
7697 this.pie11 = this.pie11 || adjust$2(this.primaryColor, { h: -60, l: -20 });
7698 this.pie12 = this.pie12 || adjust$2(this.primaryColor, { h: 120, l: -10 });
7699 this.pieTitleTextSize = this.pieTitleTextSize || "25px";
7700 this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
7701 this.pieSectionTextSize = this.pieSectionTextSize || "17px";
7702 this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
7703 this.pieLegendTextSize = this.pieLegendTextSize || "17px";
7704 this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
7705 this.pieStrokeColor = this.pieStrokeColor || "black";
7706 this.pieStrokeWidth = this.pieStrokeWidth || "2px";
7707 this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
7708 this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
7709 this.pieOpacity = this.pieOpacity || "0.7";
7710 this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
7711 this.quadrant2Fill = this.quadrant2Fill || adjust$2(this.primaryColor, { r: 5, g: 5, b: 5 });
7712 this.quadrant3Fill = this.quadrant3Fill || adjust$2(this.primaryColor, { r: 10, g: 10, b: 10 });
7713 this.quadrant4Fill = this.quadrant4Fill || adjust$2(this.primaryColor, { r: 15, g: 15, b: 15 });
7714 this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
7715 this.quadrant2TextFill = this.quadrant2TextFill || adjust$2(this.primaryTextColor, { r: -5, g: -5, b: -5 });
7716 this.quadrant3TextFill = this.quadrant3TextFill || adjust$2(this.primaryTextColor, { r: -10, g: -10, b: -10 });
7717 this.quadrant4TextFill = this.quadrant4TextFill || adjust$2(this.primaryTextColor, { r: -15, g: -15, b: -15 });
7718 this.quadrantPointFill = this.quadrantPointFill || isDark$1(this.quadrant1Fill) ? lighten$1(this.quadrant1Fill) : darken$1(this.quadrant1Fill);
7719 this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
7720 this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
7721 this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
7722 this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
7723 this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
7724 this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
7725 this.requirementBackground = this.requirementBackground || this.primaryColor;
7726 this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
7727 this.requirementBorderSize = this.requirementBorderSize || "1";
7728 this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
7729 this.relationColor = this.relationColor || this.lineColor;
7730 this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken$1(this.secondaryColor, 30) : this.secondaryColor);
7731 this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
7732 this.git0 = this.git0 || this.primaryColor;
7733 this.git1 = this.git1 || this.secondaryColor;
7734 this.git2 = this.git2 || this.tertiaryColor;
7735 this.git3 = this.git3 || adjust$2(this.primaryColor, { h: -30 });
7736 this.git4 = this.git4 || adjust$2(this.primaryColor, { h: -60 });
7737 this.git5 = this.git5 || adjust$2(this.primaryColor, { h: -90 });
7738 this.git6 = this.git6 || adjust$2(this.primaryColor, { h: 60 });
7739 this.git7 = this.git7 || adjust$2(this.primaryColor, { h: 120 });
7740 if (this.darkMode) {
7741 this.git0 = lighten$1(this.git0, 25);
7742 this.git1 = lighten$1(this.git1, 25);
7743 this.git2 = lighten$1(this.git2, 25);
7744 this.git3 = lighten$1(this.git3, 25);
7745 this.git4 = lighten$1(this.git4, 25);
7746 this.git5 = lighten$1(this.git5, 25);
7747 this.git6 = lighten$1(this.git6, 25);
7748 this.git7 = lighten$1(this.git7, 25);
7749 } else {
7750 this.git0 = darken$1(this.git0, 25);
7751 this.git1 = darken$1(this.git1, 25);
7752 this.git2 = darken$1(this.git2, 25);
7753 this.git3 = darken$1(this.git3, 25);
7754 this.git4 = darken$1(this.git4, 25);
7755 this.git5 = darken$1(this.git5, 25);
7756 this.git6 = darken$1(this.git6, 25);
7757 this.git7 = darken$1(this.git7, 25);
7758 }
7759 this.gitInv0 = this.gitInv0 || invert$1(this.git0);
7760 this.gitInv1 = this.gitInv1 || invert$1(this.git1);
7761 this.gitInv2 = this.gitInv2 || invert$1(this.git2);
7762 this.gitInv3 = this.gitInv3 || invert$1(this.git3);
7763 this.gitInv4 = this.gitInv4 || invert$1(this.git4);
7764 this.gitInv5 = this.gitInv5 || invert$1(this.git5);
7765 this.gitInv6 = this.gitInv6 || invert$1(this.git6);
7766 this.gitInv7 = this.gitInv7 || invert$1(this.git7);
7767 this.branchLabelColor = this.branchLabelColor || (this.darkMode ? "black" : this.labelTextColor);
7768 this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;
7769 this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;
7770 this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;
7771 this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;
7772 this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;
7773 this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;
7774 this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;
7775 this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;
7776 this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
7777 this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
7778 this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
7779 this.tagLabelFontSize = this.tagLabelFontSize || "10px";
7780 this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
7781 this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
7782 this.commitLabelFontSize = this.commitLabelFontSize || "10px";
7783 this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
7784 this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
7785 }
7786 calculate(overrides) {
7787 if (typeof overrides !== "object") {
7788 this.updateColors();
7789 return;
7790 }
7791 const keys2 = Object.keys(overrides);
7792 keys2.forEach((k) => {
7793 this[k] = overrides[k];
7794 });
7795 this.updateColors();
7796 keys2.forEach((k) => {
7797 this[k] = overrides[k];
7798 });
7799 }
7800 };
7801 const getThemeVariables$4 = (userOverrides) => {
7802 const theme2 = new Theme$4();
7803 theme2.calculate(userOverrides);
7804 return theme2;
7805 };
7806 let Theme$3 = class Theme {
7807 constructor() {
7808 this.background = "#333";
7809 this.primaryColor = "#1f2020";
7810 this.secondaryColor = lighten$1(this.primaryColor, 16);
7811 this.tertiaryColor = adjust$2(this.primaryColor, { h: -160 });
7812 this.primaryBorderColor = invert$1(this.background);
7813 this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
7814 this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
7815 this.primaryTextColor = invert$1(this.primaryColor);
7816 this.secondaryTextColor = invert$1(this.secondaryColor);
7817 this.tertiaryTextColor = invert$1(this.tertiaryColor);
7818 this.lineColor = invert$1(this.background);
7819 this.textColor = invert$1(this.background);
7820 this.mainBkg = "#1f2020";
7821 this.secondBkg = "calculated";
7822 this.mainContrastColor = "lightgrey";
7823 this.darkTextColor = lighten$1(invert$1("#323D47"), 10);
7824 this.lineColor = "calculated";
7825 this.border1 = "#81B1DB";
7826 this.border2 = rgba$1(255, 255, 255, 0.25);
7827 this.arrowheadColor = "calculated";
7828 this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
7829 this.fontSize = "16px";
7830 this.labelBackground = "#181818";
7831 this.textColor = "#ccc";
7832 this.THEME_COLOR_LIMIT = 12;
7833 this.nodeBkg = "calculated";
7834 this.nodeBorder = "calculated";
7835 this.clusterBkg = "calculated";
7836 this.clusterBorder = "calculated";
7837 this.defaultLinkColor = "calculated";
7838 this.titleColor = "#F9FFFE";
7839 this.edgeLabelBackground = "calculated";
7840 this.actorBorder = "calculated";
7841 this.actorBkg = "calculated";
7842 this.actorTextColor = "calculated";
7843 this.actorLineColor = "calculated";
7844 this.signalColor = "calculated";
7845 this.signalTextColor = "calculated";
7846 this.labelBoxBkgColor = "calculated";
7847 this.labelBoxBorderColor = "calculated";
7848 this.labelTextColor = "calculated";
7849 this.loopTextColor = "calculated";
7850 this.noteBorderColor = "calculated";
7851 this.noteBkgColor = "#fff5ad";
7852 this.noteTextColor = "calculated";
7853 this.activationBorderColor = "calculated";
7854 this.activationBkgColor = "calculated";
7855 this.sequenceNumberColor = "black";
7856 this.sectionBkgColor = darken$1("#EAE8D9", 30);
7857 this.altSectionBkgColor = "calculated";
7858 this.sectionBkgColor2 = "#EAE8D9";
7859 this.excludeBkgColor = darken$1(this.sectionBkgColor, 10);
7860 this.taskBorderColor = rgba$1(255, 255, 255, 70);
7861 this.taskBkgColor = "calculated";
7862 this.taskTextColor = "calculated";
7863 this.taskTextLightColor = "calculated";
7864 this.taskTextOutsideColor = "calculated";
7865 this.taskTextClickableColor = "#003163";
7866 this.activeTaskBorderColor = rgba$1(255, 255, 255, 50);
7867 this.activeTaskBkgColor = "#81B1DB";
7868 this.gridColor = "calculated";
7869 this.doneTaskBkgColor = "calculated";
7870 this.doneTaskBorderColor = "grey";
7871 this.critBorderColor = "#E83737";
7872 this.critBkgColor = "#E83737";
7873 this.taskTextDarkColor = "calculated";
7874 this.todayLineColor = "#DB5757";
7875 this.personBorder = this.primaryBorderColor;
7876 this.personBkg = this.mainBkg;
7877 this.labelColor = "calculated";
7878 this.errorBkgColor = "#a44141";
7879 this.errorTextColor = "#ddd";
7880 }
7881 updateColors() {
7882 this.secondBkg = lighten$1(this.mainBkg, 16);
7883 this.lineColor = this.mainContrastColor;
7884 this.arrowheadColor = this.mainContrastColor;
7885 this.nodeBkg = this.mainBkg;
7886 this.nodeBorder = this.border1;
7887 this.clusterBkg = this.secondBkg;
7888 this.clusterBorder = this.border2;
7889 this.defaultLinkColor = this.lineColor;
7890 this.edgeLabelBackground = lighten$1(this.labelBackground, 25);
7891 this.actorBorder = this.border1;
7892 this.actorBkg = this.mainBkg;
7893 this.actorTextColor = this.mainContrastColor;
7894 this.actorLineColor = this.mainContrastColor;
7895 this.signalColor = this.mainContrastColor;
7896 this.signalTextColor = this.mainContrastColor;
7897 this.labelBoxBkgColor = this.actorBkg;
7898 this.labelBoxBorderColor = this.actorBorder;
7899 this.labelTextColor = this.mainContrastColor;
7900 this.loopTextColor = this.mainContrastColor;
7901 this.noteBorderColor = this.secondaryBorderColor;
7902 this.noteBkgColor = this.secondBkg;
7903 this.noteTextColor = this.secondaryTextColor;
7904 this.activationBorderColor = this.border1;
7905 this.activationBkgColor = this.secondBkg;
7906 this.altSectionBkgColor = this.background;
7907 this.taskBkgColor = lighten$1(this.mainBkg, 23);
7908 this.taskTextColor = this.darkTextColor;
7909 this.taskTextLightColor = this.mainContrastColor;
7910 this.taskTextOutsideColor = this.taskTextLightColor;
7911 this.gridColor = this.mainContrastColor;
7912 this.doneTaskBkgColor = this.mainContrastColor;
7913 this.taskTextDarkColor = this.darkTextColor;
7914 this.transitionColor = this.transitionColor || this.lineColor;
7915 this.transitionLabelColor = this.transitionLabelColor || this.textColor;
7916 this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
7917 this.stateBkg = this.stateBkg || this.mainBkg;
7918 this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
7919 this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
7920 this.altBackground = this.altBackground || "#555";
7921 this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
7922 this.compositeBorder = this.compositeBorder || this.nodeBorder;
7923 this.innerEndBackground = this.primaryBorderColor;
7924 this.specialStateColor = "#f4f4f4";
7925 this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
7926 this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
7927 this.fillType0 = this.primaryColor;
7928 this.fillType1 = this.secondaryColor;
7929 this.fillType2 = adjust$2(this.primaryColor, { h: 64 });
7930 this.fillType3 = adjust$2(this.secondaryColor, { h: 64 });
7931 this.fillType4 = adjust$2(this.primaryColor, { h: -64 });
7932 this.fillType5 = adjust$2(this.secondaryColor, { h: -64 });
7933 this.fillType6 = adjust$2(this.primaryColor, { h: 128 });
7934 this.fillType7 = adjust$2(this.secondaryColor, { h: 128 });
7935 this.cScale1 = this.cScale1 || "#0b0000";
7936 this.cScale2 = this.cScale2 || "#4d1037";
7937 this.cScale3 = this.cScale3 || "#3f5258";
7938 this.cScale4 = this.cScale4 || "#4f2f1b";
7939 this.cScale5 = this.cScale5 || "#6e0a0a";
7940 this.cScale6 = this.cScale6 || "#3b0048";
7941 this.cScale7 = this.cScale7 || "#995a01";
7942 this.cScale8 = this.cScale8 || "#154706";
7943 this.cScale9 = this.cScale9 || "#161722";
7944 this.cScale10 = this.cScale10 || "#00296f";
7945 this.cScale11 = this.cScale11 || "#01629c";
7946 this.cScale12 = this.cScale12 || "#010029";
7947 this.cScale0 = this.cScale0 || this.primaryColor;
7948 this.cScale1 = this.cScale1 || this.secondaryColor;
7949 this.cScale2 = this.cScale2 || this.tertiaryColor;
7950 this.cScale3 = this.cScale3 || adjust$2(this.primaryColor, { h: 30 });
7951 this.cScale4 = this.cScale4 || adjust$2(this.primaryColor, { h: 60 });
7952 this.cScale5 = this.cScale5 || adjust$2(this.primaryColor, { h: 90 });
7953 this.cScale6 = this.cScale6 || adjust$2(this.primaryColor, { h: 120 });
7954 this.cScale7 = this.cScale7 || adjust$2(this.primaryColor, { h: 150 });
7955 this.cScale8 = this.cScale8 || adjust$2(this.primaryColor, { h: 210 });
7956 this.cScale9 = this.cScale9 || adjust$2(this.primaryColor, { h: 270 });
7957 this.cScale10 = this.cScale10 || adjust$2(this.primaryColor, { h: 300 });
7958 this.cScale11 = this.cScale11 || adjust$2(this.primaryColor, { h: 330 });
7959 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
7960 this["cScaleInv" + i2] = this["cScaleInv" + i2] || invert$1(this["cScale" + i2]);
7961 }
7962 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
7963 this["cScalePeer" + i2] = this["cScalePeer" + i2] || lighten$1(this["cScale" + i2], 10);
7964 }
7965 for (let i2 = 0; i2 < 5; i2++) {
7966 this["surface" + i2] = this["surface" + i2] || adjust$2(this.mainBkg, { h: 30, s: -30, l: -(-10 + i2 * 4) });
7967 this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust$2(this.mainBkg, { h: 30, s: -30, l: -(-7 + i2 * 4) });
7968 }
7969 this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor);
7970 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
7971 this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.scaleLabelColor;
7972 }
7973 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
7974 this["pie" + i2] = this["cScale" + i2];
7975 }
7976 this.pieTitleTextSize = this.pieTitleTextSize || "25px";
7977 this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
7978 this.pieSectionTextSize = this.pieSectionTextSize || "17px";
7979 this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
7980 this.pieLegendTextSize = this.pieLegendTextSize || "17px";
7981 this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
7982 this.pieStrokeColor = this.pieStrokeColor || "black";
7983 this.pieStrokeWidth = this.pieStrokeWidth || "2px";
7984 this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
7985 this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
7986 this.pieOpacity = this.pieOpacity || "0.7";
7987 this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
7988 this.quadrant2Fill = this.quadrant2Fill || adjust$2(this.primaryColor, { r: 5, g: 5, b: 5 });
7989 this.quadrant3Fill = this.quadrant3Fill || adjust$2(this.primaryColor, { r: 10, g: 10, b: 10 });
7990 this.quadrant4Fill = this.quadrant4Fill || adjust$2(this.primaryColor, { r: 15, g: 15, b: 15 });
7991 this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
7992 this.quadrant2TextFill = this.quadrant2TextFill || adjust$2(this.primaryTextColor, { r: -5, g: -5, b: -5 });
7993 this.quadrant3TextFill = this.quadrant3TextFill || adjust$2(this.primaryTextColor, { r: -10, g: -10, b: -10 });
7994 this.quadrant4TextFill = this.quadrant4TextFill || adjust$2(this.primaryTextColor, { r: -15, g: -15, b: -15 });
7995 this.quadrantPointFill = this.quadrantPointFill || isDark$1(this.quadrant1Fill) ? lighten$1(this.quadrant1Fill) : darken$1(this.quadrant1Fill);
7996 this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
7997 this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
7998 this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
7999 this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
8000 this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
8001 this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
8002 this.classText = this.primaryTextColor;
8003 this.requirementBackground = this.requirementBackground || this.primaryColor;
8004 this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
8005 this.requirementBorderSize = this.requirementBorderSize || "1";
8006 this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
8007 this.relationColor = this.relationColor || this.lineColor;
8008 this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken$1(this.secondaryColor, 30) : this.secondaryColor);
8009 this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
8010 this.git0 = lighten$1(this.secondaryColor, 20);
8011 this.git1 = lighten$1(this.pie2 || this.secondaryColor, 20);
8012 this.git2 = lighten$1(this.pie3 || this.tertiaryColor, 20);
8013 this.git3 = lighten$1(this.pie4 || adjust$2(this.primaryColor, { h: -30 }), 20);
8014 this.git4 = lighten$1(this.pie5 || adjust$2(this.primaryColor, { h: -60 }), 20);
8015 this.git5 = lighten$1(this.pie6 || adjust$2(this.primaryColor, { h: -90 }), 10);
8016 this.git6 = lighten$1(this.pie7 || adjust$2(this.primaryColor, { h: 60 }), 10);
8017 this.git7 = lighten$1(this.pie8 || adjust$2(this.primaryColor, { h: 120 }), 20);
8018 this.gitInv0 = this.gitInv0 || invert$1(this.git0);
8019 this.gitInv1 = this.gitInv1 || invert$1(this.git1);
8020 this.gitInv2 = this.gitInv2 || invert$1(this.git2);
8021 this.gitInv3 = this.gitInv3 || invert$1(this.git3);
8022 this.gitInv4 = this.gitInv4 || invert$1(this.git4);
8023 this.gitInv5 = this.gitInv5 || invert$1(this.git5);
8024 this.gitInv6 = this.gitInv6 || invert$1(this.git6);
8025 this.gitInv7 = this.gitInv7 || invert$1(this.git7);
8026 this.gitBranchLabel0 = this.gitBranchLabel0 || invert$1(this.labelTextColor);
8027 this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
8028 this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
8029 this.gitBranchLabel3 = this.gitBranchLabel3 || invert$1(this.labelTextColor);
8030 this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
8031 this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
8032 this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
8033 this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
8034 this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
8035 this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
8036 this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
8037 this.tagLabelFontSize = this.tagLabelFontSize || "10px";
8038 this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
8039 this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
8040 this.commitLabelFontSize = this.commitLabelFontSize || "10px";
8041 this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten$1(this.background, 12);
8042 this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten$1(this.background, 2);
8043 }
8044 calculate(overrides) {
8045 if (typeof overrides !== "object") {
8046 this.updateColors();
8047 return;
8048 }
8049 const keys2 = Object.keys(overrides);
8050 keys2.forEach((k) => {
8051 this[k] = overrides[k];
8052 });
8053 this.updateColors();
8054 keys2.forEach((k) => {
8055 this[k] = overrides[k];
8056 });
8057 }
8058 };
8059 const getThemeVariables$3 = (userOverrides) => {
8060 const theme2 = new Theme$3();
8061 theme2.calculate(userOverrides);
8062 return theme2;
8063 };
8064 let Theme$2 = class Theme {
8065 constructor() {
8066 this.background = "#f4f4f4";
8067 this.primaryColor = "#ECECFF";
8068 this.secondaryColor = adjust$2(this.primaryColor, { h: 120 });
8069 this.secondaryColor = "#ffffde";
8070 this.tertiaryColor = adjust$2(this.primaryColor, { h: -160 });
8071 this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
8072 this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
8073 this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
8074 this.primaryTextColor = invert$1(this.primaryColor);
8075 this.secondaryTextColor = invert$1(this.secondaryColor);
8076 this.tertiaryTextColor = invert$1(this.tertiaryColor);
8077 this.lineColor = invert$1(this.background);
8078 this.textColor = invert$1(this.background);
8079 this.background = "white";
8080 this.mainBkg = "#ECECFF";
8081 this.secondBkg = "#ffffde";
8082 this.lineColor = "#333333";
8083 this.border1 = "#9370DB";
8084 this.border2 = "#aaaa33";
8085 this.arrowheadColor = "#333333";
8086 this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
8087 this.fontSize = "16px";
8088 this.labelBackground = "#e8e8e8";
8089 this.textColor = "#333";
8090 this.THEME_COLOR_LIMIT = 12;
8091 this.nodeBkg = "calculated";
8092 this.nodeBorder = "calculated";
8093 this.clusterBkg = "calculated";
8094 this.clusterBorder = "calculated";
8095 this.defaultLinkColor = "calculated";
8096 this.titleColor = "calculated";
8097 this.edgeLabelBackground = "calculated";
8098 this.actorBorder = "calculated";
8099 this.actorBkg = "calculated";
8100 this.actorTextColor = "black";
8101 this.actorLineColor = "grey";
8102 this.signalColor = "calculated";
8103 this.signalTextColor = "calculated";
8104 this.labelBoxBkgColor = "calculated";
8105 this.labelBoxBorderColor = "calculated";
8106 this.labelTextColor = "calculated";
8107 this.loopTextColor = "calculated";
8108 this.noteBorderColor = "calculated";
8109 this.noteBkgColor = "#fff5ad";
8110 this.noteTextColor = "calculated";
8111 this.activationBorderColor = "#666";
8112 this.activationBkgColor = "#f4f4f4";
8113 this.sequenceNumberColor = "white";
8114 this.sectionBkgColor = "calculated";
8115 this.altSectionBkgColor = "calculated";
8116 this.sectionBkgColor2 = "calculated";
8117 this.excludeBkgColor = "#eeeeee";
8118 this.taskBorderColor = "calculated";
8119 this.taskBkgColor = "calculated";
8120 this.taskTextLightColor = "calculated";
8121 this.taskTextColor = this.taskTextLightColor;
8122 this.taskTextDarkColor = "calculated";
8123 this.taskTextOutsideColor = this.taskTextDarkColor;
8124 this.taskTextClickableColor = "calculated";
8125 this.activeTaskBorderColor = "calculated";
8126 this.activeTaskBkgColor = "calculated";
8127 this.gridColor = "calculated";
8128 this.doneTaskBkgColor = "calculated";
8129 this.doneTaskBorderColor = "calculated";
8130 this.critBorderColor = "calculated";
8131 this.critBkgColor = "calculated";
8132 this.todayLineColor = "calculated";
8133 this.sectionBkgColor = rgba$1(102, 102, 255, 0.49);
8134 this.altSectionBkgColor = "white";
8135 this.sectionBkgColor2 = "#fff400";
8136 this.taskBorderColor = "#534fbc";
8137 this.taskBkgColor = "#8a90dd";
8138 this.taskTextLightColor = "white";
8139 this.taskTextColor = "calculated";
8140 this.taskTextDarkColor = "black";
8141 this.taskTextOutsideColor = "calculated";
8142 this.taskTextClickableColor = "#003163";
8143 this.activeTaskBorderColor = "#534fbc";
8144 this.activeTaskBkgColor = "#bfc7ff";
8145 this.gridColor = "lightgrey";
8146 this.doneTaskBkgColor = "lightgrey";
8147 this.doneTaskBorderColor = "grey";
8148 this.critBorderColor = "#ff8888";
8149 this.critBkgColor = "red";
8150 this.todayLineColor = "red";
8151 this.personBorder = this.primaryBorderColor;
8152 this.personBkg = this.mainBkg;
8153 this.labelColor = "black";
8154 this.errorBkgColor = "#552222";
8155 this.errorTextColor = "#552222";
8156 this.updateColors();
8157 }
8158 updateColors() {
8159 this.cScale0 = this.cScale0 || this.primaryColor;
8160 this.cScale1 = this.cScale1 || this.secondaryColor;
8161 this.cScale2 = this.cScale2 || this.tertiaryColor;
8162 this.cScale3 = this.cScale3 || adjust$2(this.primaryColor, { h: 30 });
8163 this.cScale4 = this.cScale4 || adjust$2(this.primaryColor, { h: 60 });
8164 this.cScale5 = this.cScale5 || adjust$2(this.primaryColor, { h: 90 });
8165 this.cScale6 = this.cScale6 || adjust$2(this.primaryColor, { h: 120 });
8166 this.cScale7 = this.cScale7 || adjust$2(this.primaryColor, { h: 150 });
8167 this.cScale8 = this.cScale8 || adjust$2(this.primaryColor, { h: 210 });
8168 this.cScale9 = this.cScale9 || adjust$2(this.primaryColor, { h: 270 });
8169 this.cScale10 = this.cScale10 || adjust$2(this.primaryColor, { h: 300 });
8170 this.cScale11 = this.cScale11 || adjust$2(this.primaryColor, { h: 330 });
8171 this["cScalePeer1"] = this["cScalePeer1"] || darken$1(this.secondaryColor, 45);
8172 this["cScalePeer2"] = this["cScalePeer2"] || darken$1(this.tertiaryColor, 40);
8173 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
8174 this["cScale" + i2] = darken$1(this["cScale" + i2], 10);
8175 this["cScalePeer" + i2] = this["cScalePeer" + i2] || darken$1(this["cScale" + i2], 25);
8176 }
8177 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
8178 this["cScaleInv" + i2] = this["cScaleInv" + i2] || adjust$2(this["cScale" + i2], { h: 180 });
8179 }
8180 for (let i2 = 0; i2 < 5; i2++) {
8181 this["surface" + i2] = this["surface" + i2] || adjust$2(this.mainBkg, { h: 30, l: -(5 + i2 * 5) });
8182 this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust$2(this.mainBkg, { h: 30, l: -(7 + i2 * 5) });
8183 }
8184 this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;
8185 if (this.labelTextColor !== "calculated") {
8186 this.cScaleLabel0 = this.cScaleLabel0 || invert$1(this.labelTextColor);
8187 this.cScaleLabel3 = this.cScaleLabel3 || invert$1(this.labelTextColor);
8188 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
8189 this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.labelTextColor;
8190 }
8191 }
8192 this.nodeBkg = this.mainBkg;
8193 this.nodeBorder = this.border1;
8194 this.clusterBkg = this.secondBkg;
8195 this.clusterBorder = this.border2;
8196 this.defaultLinkColor = this.lineColor;
8197 this.titleColor = this.textColor;
8198 this.edgeLabelBackground = this.labelBackground;
8199 this.actorBorder = lighten$1(this.border1, 23);
8200 this.actorBkg = this.mainBkg;
8201 this.labelBoxBkgColor = this.actorBkg;
8202 this.signalColor = this.textColor;
8203 this.signalTextColor = this.textColor;
8204 this.labelBoxBorderColor = this.actorBorder;
8205 this.labelTextColor = this.actorTextColor;
8206 this.loopTextColor = this.actorTextColor;
8207 this.noteBorderColor = this.border2;
8208 this.noteTextColor = this.actorTextColor;
8209 this.taskTextColor = this.taskTextLightColor;
8210 this.taskTextOutsideColor = this.taskTextDarkColor;
8211 this.transitionColor = this.transitionColor || this.lineColor;
8212 this.transitionLabelColor = this.transitionLabelColor || this.textColor;
8213 this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
8214 this.stateBkg = this.stateBkg || this.mainBkg;
8215 this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
8216 this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
8217 this.altBackground = this.altBackground || "#f0f0f0";
8218 this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
8219 this.compositeBorder = this.compositeBorder || this.nodeBorder;
8220 this.innerEndBackground = this.nodeBorder;
8221 this.specialStateColor = this.lineColor;
8222 this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
8223 this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
8224 this.transitionColor = this.transitionColor || this.lineColor;
8225 this.classText = this.primaryTextColor;
8226 this.fillType0 = this.primaryColor;
8227 this.fillType1 = this.secondaryColor;
8228 this.fillType2 = adjust$2(this.primaryColor, { h: 64 });
8229 this.fillType3 = adjust$2(this.secondaryColor, { h: 64 });
8230 this.fillType4 = adjust$2(this.primaryColor, { h: -64 });
8231 this.fillType5 = adjust$2(this.secondaryColor, { h: -64 });
8232 this.fillType6 = adjust$2(this.primaryColor, { h: 128 });
8233 this.fillType7 = adjust$2(this.secondaryColor, { h: 128 });
8234 this.pie1 = this.pie1 || this.primaryColor;
8235 this.pie2 = this.pie2 || this.secondaryColor;
8236 this.pie3 = this.pie3 || adjust$2(this.tertiaryColor, { l: -40 });
8237 this.pie4 = this.pie4 || adjust$2(this.primaryColor, { l: -10 });
8238 this.pie5 = this.pie5 || adjust$2(this.secondaryColor, { l: -30 });
8239 this.pie6 = this.pie6 || adjust$2(this.tertiaryColor, { l: -20 });
8240 this.pie7 = this.pie7 || adjust$2(this.primaryColor, { h: 60, l: -20 });
8241 this.pie8 = this.pie8 || adjust$2(this.primaryColor, { h: -60, l: -40 });
8242 this.pie9 = this.pie9 || adjust$2(this.primaryColor, { h: 120, l: -40 });
8243 this.pie10 = this.pie10 || adjust$2(this.primaryColor, { h: 60, l: -40 });
8244 this.pie11 = this.pie11 || adjust$2(this.primaryColor, { h: -90, l: -40 });
8245 this.pie12 = this.pie12 || adjust$2(this.primaryColor, { h: 120, l: -30 });
8246 this.pieTitleTextSize = this.pieTitleTextSize || "25px";
8247 this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
8248 this.pieSectionTextSize = this.pieSectionTextSize || "17px";
8249 this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
8250 this.pieLegendTextSize = this.pieLegendTextSize || "17px";
8251 this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
8252 this.pieStrokeColor = this.pieStrokeColor || "black";
8253 this.pieStrokeWidth = this.pieStrokeWidth || "2px";
8254 this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
8255 this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
8256 this.pieOpacity = this.pieOpacity || "0.7";
8257 this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
8258 this.quadrant2Fill = this.quadrant2Fill || adjust$2(this.primaryColor, { r: 5, g: 5, b: 5 });
8259 this.quadrant3Fill = this.quadrant3Fill || adjust$2(this.primaryColor, { r: 10, g: 10, b: 10 });
8260 this.quadrant4Fill = this.quadrant4Fill || adjust$2(this.primaryColor, { r: 15, g: 15, b: 15 });
8261 this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
8262 this.quadrant2TextFill = this.quadrant2TextFill || adjust$2(this.primaryTextColor, { r: -5, g: -5, b: -5 });
8263 this.quadrant3TextFill = this.quadrant3TextFill || adjust$2(this.primaryTextColor, { r: -10, g: -10, b: -10 });
8264 this.quadrant4TextFill = this.quadrant4TextFill || adjust$2(this.primaryTextColor, { r: -15, g: -15, b: -15 });
8265 this.quadrantPointFill = this.quadrantPointFill || isDark$1(this.quadrant1Fill) ? lighten$1(this.quadrant1Fill) : darken$1(this.quadrant1Fill);
8266 this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
8267 this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
8268 this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
8269 this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
8270 this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
8271 this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
8272 this.requirementBackground = this.requirementBackground || this.primaryColor;
8273 this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
8274 this.requirementBorderSize = this.requirementBorderSize || "1";
8275 this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
8276 this.relationColor = this.relationColor || this.lineColor;
8277 this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;
8278 this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
8279 this.git0 = this.git0 || this.primaryColor;
8280 this.git1 = this.git1 || this.secondaryColor;
8281 this.git2 = this.git2 || this.tertiaryColor;
8282 this.git3 = this.git3 || adjust$2(this.primaryColor, { h: -30 });
8283 this.git4 = this.git4 || adjust$2(this.primaryColor, { h: -60 });
8284 this.git5 = this.git5 || adjust$2(this.primaryColor, { h: -90 });
8285 this.git6 = this.git6 || adjust$2(this.primaryColor, { h: 60 });
8286 this.git7 = this.git7 || adjust$2(this.primaryColor, { h: 120 });
8287 if (this.darkMode) {
8288 this.git0 = lighten$1(this.git0, 25);
8289 this.git1 = lighten$1(this.git1, 25);
8290 this.git2 = lighten$1(this.git2, 25);
8291 this.git3 = lighten$1(this.git3, 25);
8292 this.git4 = lighten$1(this.git4, 25);
8293 this.git5 = lighten$1(this.git5, 25);
8294 this.git6 = lighten$1(this.git6, 25);
8295 this.git7 = lighten$1(this.git7, 25);
8296 } else {
8297 this.git0 = darken$1(this.git0, 25);
8298 this.git1 = darken$1(this.git1, 25);
8299 this.git2 = darken$1(this.git2, 25);
8300 this.git3 = darken$1(this.git3, 25);
8301 this.git4 = darken$1(this.git4, 25);
8302 this.git5 = darken$1(this.git5, 25);
8303 this.git6 = darken$1(this.git6, 25);
8304 this.git7 = darken$1(this.git7, 25);
8305 }
8306 this.gitInv0 = this.gitInv0 || darken$1(invert$1(this.git0), 25);
8307 this.gitInv1 = this.gitInv1 || invert$1(this.git1);
8308 this.gitInv2 = this.gitInv2 || invert$1(this.git2);
8309 this.gitInv3 = this.gitInv3 || invert$1(this.git3);
8310 this.gitInv4 = this.gitInv4 || invert$1(this.git4);
8311 this.gitInv5 = this.gitInv5 || invert$1(this.git5);
8312 this.gitInv6 = this.gitInv6 || invert$1(this.git6);
8313 this.gitInv7 = this.gitInv7 || invert$1(this.git7);
8314 this.gitBranchLabel0 = this.gitBranchLabel0 || invert$1(this.labelTextColor);
8315 this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
8316 this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
8317 this.gitBranchLabel3 = this.gitBranchLabel3 || invert$1(this.labelTextColor);
8318 this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
8319 this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
8320 this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
8321 this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
8322 this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
8323 this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
8324 this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
8325 this.tagLabelFontSize = this.tagLabelFontSize || "10px";
8326 this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
8327 this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
8328 this.commitLabelFontSize = this.commitLabelFontSize || "10px";
8329 this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
8330 this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
8331 }
8332 calculate(overrides) {
8333 if (typeof overrides !== "object") {
8334 this.updateColors();
8335 return;
8336 }
8337 const keys2 = Object.keys(overrides);
8338 keys2.forEach((k) => {
8339 this[k] = overrides[k];
8340 });
8341 this.updateColors();
8342 keys2.forEach((k) => {
8343 this[k] = overrides[k];
8344 });
8345 }
8346 };
8347 const getThemeVariables$2 = (userOverrides) => {
8348 const theme2 = new Theme$2();
8349 theme2.calculate(userOverrides);
8350 return theme2;
8351 };
8352 let Theme$1 = class Theme {
8353 constructor() {
8354 this.background = "#f4f4f4";
8355 this.primaryColor = "#cde498";
8356 this.secondaryColor = "#cdffb2";
8357 this.background = "white";
8358 this.mainBkg = "#cde498";
8359 this.secondBkg = "#cdffb2";
8360 this.lineColor = "green";
8361 this.border1 = "#13540c";
8362 this.border2 = "#6eaa49";
8363 this.arrowheadColor = "green";
8364 this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
8365 this.fontSize = "16px";
8366 this.tertiaryColor = lighten$1("#cde498", 10);
8367 this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
8368 this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
8369 this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
8370 this.primaryTextColor = invert$1(this.primaryColor);
8371 this.secondaryTextColor = invert$1(this.secondaryColor);
8372 this.tertiaryTextColor = invert$1(this.primaryColor);
8373 this.lineColor = invert$1(this.background);
8374 this.textColor = invert$1(this.background);
8375 this.THEME_COLOR_LIMIT = 12;
8376 this.nodeBkg = "calculated";
8377 this.nodeBorder = "calculated";
8378 this.clusterBkg = "calculated";
8379 this.clusterBorder = "calculated";
8380 this.defaultLinkColor = "calculated";
8381 this.titleColor = "#333";
8382 this.edgeLabelBackground = "#e8e8e8";
8383 this.actorBorder = "calculated";
8384 this.actorBkg = "calculated";
8385 this.actorTextColor = "black";
8386 this.actorLineColor = "grey";
8387 this.signalColor = "#333";
8388 this.signalTextColor = "#333";
8389 this.labelBoxBkgColor = "calculated";
8390 this.labelBoxBorderColor = "#326932";
8391 this.labelTextColor = "calculated";
8392 this.loopTextColor = "calculated";
8393 this.noteBorderColor = "calculated";
8394 this.noteBkgColor = "#fff5ad";
8395 this.noteTextColor = "calculated";
8396 this.activationBorderColor = "#666";
8397 this.activationBkgColor = "#f4f4f4";
8398 this.sequenceNumberColor = "white";
8399 this.sectionBkgColor = "#6eaa49";
8400 this.altSectionBkgColor = "white";
8401 this.sectionBkgColor2 = "#6eaa49";
8402 this.excludeBkgColor = "#eeeeee";
8403 this.taskBorderColor = "calculated";
8404 this.taskBkgColor = "#487e3a";
8405 this.taskTextLightColor = "white";
8406 this.taskTextColor = "calculated";
8407 this.taskTextDarkColor = "black";
8408 this.taskTextOutsideColor = "calculated";
8409 this.taskTextClickableColor = "#003163";
8410 this.activeTaskBorderColor = "calculated";
8411 this.activeTaskBkgColor = "calculated";
8412 this.gridColor = "lightgrey";
8413 this.doneTaskBkgColor = "lightgrey";
8414 this.doneTaskBorderColor = "grey";
8415 this.critBorderColor = "#ff8888";
8416 this.critBkgColor = "red";
8417 this.todayLineColor = "red";
8418 this.personBorder = this.primaryBorderColor;
8419 this.personBkg = this.mainBkg;
8420 this.labelColor = "black";
8421 this.errorBkgColor = "#552222";
8422 this.errorTextColor = "#552222";
8423 }
8424 updateColors() {
8425 this.actorBorder = darken$1(this.mainBkg, 20);
8426 this.actorBkg = this.mainBkg;
8427 this.labelBoxBkgColor = this.actorBkg;
8428 this.labelTextColor = this.actorTextColor;
8429 this.loopTextColor = this.actorTextColor;
8430 this.noteBorderColor = this.border2;
8431 this.noteTextColor = this.actorTextColor;
8432 this.cScale0 = this.cScale0 || this.primaryColor;
8433 this.cScale1 = this.cScale1 || this.secondaryColor;
8434 this.cScale2 = this.cScale2 || this.tertiaryColor;
8435 this.cScale3 = this.cScale3 || adjust$2(this.primaryColor, { h: 30 });
8436 this.cScale4 = this.cScale4 || adjust$2(this.primaryColor, { h: 60 });
8437 this.cScale5 = this.cScale5 || adjust$2(this.primaryColor, { h: 90 });
8438 this.cScale6 = this.cScale6 || adjust$2(this.primaryColor, { h: 120 });
8439 this.cScale7 = this.cScale7 || adjust$2(this.primaryColor, { h: 150 });
8440 this.cScale8 = this.cScale8 || adjust$2(this.primaryColor, { h: 210 });
8441 this.cScale9 = this.cScale9 || adjust$2(this.primaryColor, { h: 270 });
8442 this.cScale10 = this.cScale10 || adjust$2(this.primaryColor, { h: 300 });
8443 this.cScale11 = this.cScale11 || adjust$2(this.primaryColor, { h: 330 });
8444 this["cScalePeer1"] = this["cScalePeer1"] || darken$1(this.secondaryColor, 45);
8445 this["cScalePeer2"] = this["cScalePeer2"] || darken$1(this.tertiaryColor, 40);
8446 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
8447 this["cScale" + i2] = darken$1(this["cScale" + i2], 10);
8448 this["cScalePeer" + i2] = this["cScalePeer" + i2] || darken$1(this["cScale" + i2], 25);
8449 }
8450 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
8451 this["cScaleInv" + i2] = this["cScaleInv" + i2] || adjust$2(this["cScale" + i2], { h: 180 });
8452 }
8453 this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;
8454 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
8455 this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.scaleLabelColor;
8456 }
8457 for (let i2 = 0; i2 < 5; i2++) {
8458 this["surface" + i2] = this["surface" + i2] || adjust$2(this.mainBkg, { h: 30, s: -30, l: -(5 + i2 * 5) });
8459 this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust$2(this.mainBkg, { h: 30, s: -30, l: -(8 + i2 * 5) });
8460 }
8461 this.nodeBkg = this.mainBkg;
8462 this.nodeBorder = this.border1;
8463 this.clusterBkg = this.secondBkg;
8464 this.clusterBorder = this.border2;
8465 this.defaultLinkColor = this.lineColor;
8466 this.taskBorderColor = this.border1;
8467 this.taskTextColor = this.taskTextLightColor;
8468 this.taskTextOutsideColor = this.taskTextDarkColor;
8469 this.activeTaskBorderColor = this.taskBorderColor;
8470 this.activeTaskBkgColor = this.mainBkg;
8471 this.transitionColor = this.transitionColor || this.lineColor;
8472 this.transitionLabelColor = this.transitionLabelColor || this.textColor;
8473 this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
8474 this.stateBkg = this.stateBkg || this.mainBkg;
8475 this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
8476 this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
8477 this.altBackground = this.altBackground || "#f0f0f0";
8478 this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
8479 this.compositeBorder = this.compositeBorder || this.nodeBorder;
8480 this.innerEndBackground = this.primaryBorderColor;
8481 this.specialStateColor = this.lineColor;
8482 this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
8483 this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
8484 this.transitionColor = this.transitionColor || this.lineColor;
8485 this.classText = this.primaryTextColor;
8486 this.fillType0 = this.primaryColor;
8487 this.fillType1 = this.secondaryColor;
8488 this.fillType2 = adjust$2(this.primaryColor, { h: 64 });
8489 this.fillType3 = adjust$2(this.secondaryColor, { h: 64 });
8490 this.fillType4 = adjust$2(this.primaryColor, { h: -64 });
8491 this.fillType5 = adjust$2(this.secondaryColor, { h: -64 });
8492 this.fillType6 = adjust$2(this.primaryColor, { h: 128 });
8493 this.fillType7 = adjust$2(this.secondaryColor, { h: 128 });
8494 this.pie1 = this.pie1 || this.primaryColor;
8495 this.pie2 = this.pie2 || this.secondaryColor;
8496 this.pie3 = this.pie3 || this.tertiaryColor;
8497 this.pie4 = this.pie4 || adjust$2(this.primaryColor, { l: -30 });
8498 this.pie5 = this.pie5 || adjust$2(this.secondaryColor, { l: -30 });
8499 this.pie6 = this.pie6 || adjust$2(this.tertiaryColor, { h: 40, l: -40 });
8500 this.pie7 = this.pie7 || adjust$2(this.primaryColor, { h: 60, l: -10 });
8501 this.pie8 = this.pie8 || adjust$2(this.primaryColor, { h: -60, l: -10 });
8502 this.pie9 = this.pie9 || adjust$2(this.primaryColor, { h: 120, l: 0 });
8503 this.pie10 = this.pie10 || adjust$2(this.primaryColor, { h: 60, l: -50 });
8504 this.pie11 = this.pie11 || adjust$2(this.primaryColor, { h: -60, l: -50 });
8505 this.pie12 = this.pie12 || adjust$2(this.primaryColor, { h: 120, l: -50 });
8506 this.pieTitleTextSize = this.pieTitleTextSize || "25px";
8507 this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
8508 this.pieSectionTextSize = this.pieSectionTextSize || "17px";
8509 this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
8510 this.pieLegendTextSize = this.pieLegendTextSize || "17px";
8511 this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
8512 this.pieStrokeColor = this.pieStrokeColor || "black";
8513 this.pieStrokeWidth = this.pieStrokeWidth || "2px";
8514 this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
8515 this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
8516 this.pieOpacity = this.pieOpacity || "0.7";
8517 this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
8518 this.quadrant2Fill = this.quadrant2Fill || adjust$2(this.primaryColor, { r: 5, g: 5, b: 5 });
8519 this.quadrant3Fill = this.quadrant3Fill || adjust$2(this.primaryColor, { r: 10, g: 10, b: 10 });
8520 this.quadrant4Fill = this.quadrant4Fill || adjust$2(this.primaryColor, { r: 15, g: 15, b: 15 });
8521 this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
8522 this.quadrant2TextFill = this.quadrant2TextFill || adjust$2(this.primaryTextColor, { r: -5, g: -5, b: -5 });
8523 this.quadrant3TextFill = this.quadrant3TextFill || adjust$2(this.primaryTextColor, { r: -10, g: -10, b: -10 });
8524 this.quadrant4TextFill = this.quadrant4TextFill || adjust$2(this.primaryTextColor, { r: -15, g: -15, b: -15 });
8525 this.quadrantPointFill = this.quadrantPointFill || isDark$1(this.quadrant1Fill) ? lighten$1(this.quadrant1Fill) : darken$1(this.quadrant1Fill);
8526 this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
8527 this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
8528 this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
8529 this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
8530 this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
8531 this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
8532 this.requirementBackground = this.requirementBackground || this.primaryColor;
8533 this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
8534 this.requirementBorderSize = this.requirementBorderSize || "1";
8535 this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
8536 this.relationColor = this.relationColor || this.lineColor;
8537 this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
8538 this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
8539 this.git0 = this.git0 || this.primaryColor;
8540 this.git1 = this.git1 || this.secondaryColor;
8541 this.git2 = this.git2 || this.tertiaryColor;
8542 this.git3 = this.git3 || adjust$2(this.primaryColor, { h: -30 });
8543 this.git4 = this.git4 || adjust$2(this.primaryColor, { h: -60 });
8544 this.git5 = this.git5 || adjust$2(this.primaryColor, { h: -90 });
8545 this.git6 = this.git6 || adjust$2(this.primaryColor, { h: 60 });
8546 this.git7 = this.git7 || adjust$2(this.primaryColor, { h: 120 });
8547 if (this.darkMode) {
8548 this.git0 = lighten$1(this.git0, 25);
8549 this.git1 = lighten$1(this.git1, 25);
8550 this.git2 = lighten$1(this.git2, 25);
8551 this.git3 = lighten$1(this.git3, 25);
8552 this.git4 = lighten$1(this.git4, 25);
8553 this.git5 = lighten$1(this.git5, 25);
8554 this.git6 = lighten$1(this.git6, 25);
8555 this.git7 = lighten$1(this.git7, 25);
8556 } else {
8557 this.git0 = darken$1(this.git0, 25);
8558 this.git1 = darken$1(this.git1, 25);
8559 this.git2 = darken$1(this.git2, 25);
8560 this.git3 = darken$1(this.git3, 25);
8561 this.git4 = darken$1(this.git4, 25);
8562 this.git5 = darken$1(this.git5, 25);
8563 this.git6 = darken$1(this.git6, 25);
8564 this.git7 = darken$1(this.git7, 25);
8565 }
8566 this.gitInv0 = this.gitInv0 || invert$1(this.git0);
8567 this.gitInv1 = this.gitInv1 || invert$1(this.git1);
8568 this.gitInv2 = this.gitInv2 || invert$1(this.git2);
8569 this.gitInv3 = this.gitInv3 || invert$1(this.git3);
8570 this.gitInv4 = this.gitInv4 || invert$1(this.git4);
8571 this.gitInv5 = this.gitInv5 || invert$1(this.git5);
8572 this.gitInv6 = this.gitInv6 || invert$1(this.git6);
8573 this.gitInv7 = this.gitInv7 || invert$1(this.git7);
8574 this.gitBranchLabel0 = this.gitBranchLabel0 || invert$1(this.labelTextColor);
8575 this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
8576 this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
8577 this.gitBranchLabel3 = this.gitBranchLabel3 || invert$1(this.labelTextColor);
8578 this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
8579 this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
8580 this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
8581 this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
8582 this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
8583 this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
8584 this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
8585 this.tagLabelFontSize = this.tagLabelFontSize || "10px";
8586 this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
8587 this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
8588 this.commitLabelFontSize = this.commitLabelFontSize || "10px";
8589 this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
8590 this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
8591 }
8592 calculate(overrides) {
8593 if (typeof overrides !== "object") {
8594 this.updateColors();
8595 return;
8596 }
8597 const keys2 = Object.keys(overrides);
8598 keys2.forEach((k) => {
8599 this[k] = overrides[k];
8600 });
8601 this.updateColors();
8602 keys2.forEach((k) => {
8603 this[k] = overrides[k];
8604 });
8605 }
8606 };
8607 const getThemeVariables$1 = (userOverrides) => {
8608 const theme2 = new Theme$1();
8609 theme2.calculate(userOverrides);
8610 return theme2;
8611 };
8612 class Theme {
8613 constructor() {
8614 this.primaryColor = "#eee";
8615 this.contrast = "#707070";
8616 this.secondaryColor = lighten$1(this.contrast, 55);
8617 this.background = "#ffffff";
8618 this.tertiaryColor = adjust$2(this.primaryColor, { h: -160 });
8619 this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
8620 this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
8621 this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
8622 this.primaryTextColor = invert$1(this.primaryColor);
8623 this.secondaryTextColor = invert$1(this.secondaryColor);
8624 this.tertiaryTextColor = invert$1(this.tertiaryColor);
8625 this.lineColor = invert$1(this.background);
8626 this.textColor = invert$1(this.background);
8627 this.mainBkg = "#eee";
8628 this.secondBkg = "calculated";
8629 this.lineColor = "#666";
8630 this.border1 = "#999";
8631 this.border2 = "calculated";
8632 this.note = "#ffa";
8633 this.text = "#333";
8634 this.critical = "#d42";
8635 this.done = "#bbb";
8636 this.arrowheadColor = "#333333";
8637 this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
8638 this.fontSize = "16px";
8639 this.THEME_COLOR_LIMIT = 12;
8640 this.nodeBkg = "calculated";
8641 this.nodeBorder = "calculated";
8642 this.clusterBkg = "calculated";
8643 this.clusterBorder = "calculated";
8644 this.defaultLinkColor = "calculated";
8645 this.titleColor = "calculated";
8646 this.edgeLabelBackground = "white";
8647 this.actorBorder = "calculated";
8648 this.actorBkg = "calculated";
8649 this.actorTextColor = "calculated";
8650 this.actorLineColor = "calculated";
8651 this.signalColor = "calculated";
8652 this.signalTextColor = "calculated";
8653 this.labelBoxBkgColor = "calculated";
8654 this.labelBoxBorderColor = "calculated";
8655 this.labelTextColor = "calculated";
8656 this.loopTextColor = "calculated";
8657 this.noteBorderColor = "calculated";
8658 this.noteBkgColor = "calculated";
8659 this.noteTextColor = "calculated";
8660 this.activationBorderColor = "#666";
8661 this.activationBkgColor = "#f4f4f4";
8662 this.sequenceNumberColor = "white";
8663 this.sectionBkgColor = "calculated";
8664 this.altSectionBkgColor = "white";
8665 this.sectionBkgColor2 = "calculated";
8666 this.excludeBkgColor = "#eeeeee";
8667 this.taskBorderColor = "calculated";
8668 this.taskBkgColor = "calculated";
8669 this.taskTextLightColor = "white";
8670 this.taskTextColor = "calculated";
8671 this.taskTextDarkColor = "calculated";
8672 this.taskTextOutsideColor = "calculated";
8673 this.taskTextClickableColor = "#003163";
8674 this.activeTaskBorderColor = "calculated";
8675 this.activeTaskBkgColor = "calculated";
8676 this.gridColor = "calculated";
8677 this.doneTaskBkgColor = "calculated";
8678 this.doneTaskBorderColor = "calculated";
8679 this.critBkgColor = "calculated";
8680 this.critBorderColor = "calculated";
8681 this.todayLineColor = "calculated";
8682 this.personBorder = this.primaryBorderColor;
8683 this.personBkg = this.mainBkg;
8684 this.labelColor = "black";
8685 this.errorBkgColor = "#552222";
8686 this.errorTextColor = "#552222";
8687 }
8688 updateColors() {
8689 this.secondBkg = lighten$1(this.contrast, 55);
8690 this.border2 = this.contrast;
8691 this.actorBorder = lighten$1(this.border1, 23);
8692 this.actorBkg = this.mainBkg;
8693 this.actorTextColor = this.text;
8694 this.actorLineColor = this.lineColor;
8695 this.signalColor = this.text;
8696 this.signalTextColor = this.text;
8697 this.labelBoxBkgColor = this.actorBkg;
8698 this.labelBoxBorderColor = this.actorBorder;
8699 this.labelTextColor = this.text;
8700 this.loopTextColor = this.text;
8701 this.noteBorderColor = "#999";
8702 this.noteBkgColor = "#666";
8703 this.noteTextColor = "#fff";
8704 this.cScale0 = this.cScale0 || "#555";
8705 this.cScale1 = this.cScale1 || "#F4F4F4";
8706 this.cScale2 = this.cScale2 || "#555";
8707 this.cScale3 = this.cScale3 || "#BBB";
8708 this.cScale4 = this.cScale4 || "#777";
8709 this.cScale5 = this.cScale5 || "#999";
8710 this.cScale6 = this.cScale6 || "#DDD";
8711 this.cScale7 = this.cScale7 || "#FFF";
8712 this.cScale8 = this.cScale8 || "#DDD";
8713 this.cScale9 = this.cScale9 || "#BBB";
8714 this.cScale10 = this.cScale10 || "#999";
8715 this.cScale11 = this.cScale11 || "#777";
8716 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
8717 this["cScaleInv" + i2] = this["cScaleInv" + i2] || invert$1(this["cScale" + i2]);
8718 }
8719 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
8720 if (this.darkMode) {
8721 this["cScalePeer" + i2] = this["cScalePeer" + i2] || lighten$1(this["cScale" + i2], 10);
8722 } else {
8723 this["cScalePeer" + i2] = this["cScalePeer" + i2] || darken$1(this["cScale" + i2], 10);
8724 }
8725 }
8726 this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor);
8727 this["cScaleLabel0"] = this["cScaleLabel0"] || this.cScale1;
8728 this["cScaleLabel2"] = this["cScaleLabel2"] || this.cScale1;
8729 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
8730 this["cScaleLabel" + i2] = this["cScaleLabel" + i2] || this.scaleLabelColor;
8731 }
8732 for (let i2 = 0; i2 < 5; i2++) {
8733 this["surface" + i2] = this["surface" + i2] || adjust$2(this.mainBkg, { l: -(5 + i2 * 5) });
8734 this["surfacePeer" + i2] = this["surfacePeer" + i2] || adjust$2(this.mainBkg, { l: -(8 + i2 * 5) });
8735 }
8736 this.nodeBkg = this.mainBkg;
8737 this.nodeBorder = this.border1;
8738 this.clusterBkg = this.secondBkg;
8739 this.clusterBorder = this.border2;
8740 this.defaultLinkColor = this.lineColor;
8741 this.titleColor = this.text;
8742 this.sectionBkgColor = lighten$1(this.contrast, 30);
8743 this.sectionBkgColor2 = lighten$1(this.contrast, 30);
8744 this.taskBorderColor = darken$1(this.contrast, 10);
8745 this.taskBkgColor = this.contrast;
8746 this.taskTextColor = this.taskTextLightColor;
8747 this.taskTextDarkColor = this.text;
8748 this.taskTextOutsideColor = this.taskTextDarkColor;
8749 this.activeTaskBorderColor = this.taskBorderColor;
8750 this.activeTaskBkgColor = this.mainBkg;
8751 this.gridColor = lighten$1(this.border1, 30);
8752 this.doneTaskBkgColor = this.done;
8753 this.doneTaskBorderColor = this.lineColor;
8754 this.critBkgColor = this.critical;
8755 this.critBorderColor = darken$1(this.critBkgColor, 10);
8756 this.todayLineColor = this.critBkgColor;
8757 this.transitionColor = this.transitionColor || "#000";
8758 this.transitionLabelColor = this.transitionLabelColor || this.textColor;
8759 this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
8760 this.stateBkg = this.stateBkg || this.mainBkg;
8761 this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
8762 this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
8763 this.altBackground = this.altBackground || "#f4f4f4";
8764 this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
8765 this.stateBorder = this.stateBorder || "#000";
8766 this.innerEndBackground = this.primaryBorderColor;
8767 this.specialStateColor = "#222";
8768 this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
8769 this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
8770 this.classText = this.primaryTextColor;
8771 this.fillType0 = this.primaryColor;
8772 this.fillType1 = this.secondaryColor;
8773 this.fillType2 = adjust$2(this.primaryColor, { h: 64 });
8774 this.fillType3 = adjust$2(this.secondaryColor, { h: 64 });
8775 this.fillType4 = adjust$2(this.primaryColor, { h: -64 });
8776 this.fillType5 = adjust$2(this.secondaryColor, { h: -64 });
8777 this.fillType6 = adjust$2(this.primaryColor, { h: 128 });
8778 this.fillType7 = adjust$2(this.secondaryColor, { h: 128 });
8779 for (let i2 = 0; i2 < this.THEME_COLOR_LIMIT; i2++) {
8780 this["pie" + i2] = this["cScale" + i2];
8781 }
8782 this.pie12 = this.pie0;
8783 this.pieTitleTextSize = this.pieTitleTextSize || "25px";
8784 this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
8785 this.pieSectionTextSize = this.pieSectionTextSize || "17px";
8786 this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
8787 this.pieLegendTextSize = this.pieLegendTextSize || "17px";
8788 this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
8789 this.pieStrokeColor = this.pieStrokeColor || "black";
8790 this.pieStrokeWidth = this.pieStrokeWidth || "2px";
8791 this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
8792 this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
8793 this.pieOpacity = this.pieOpacity || "0.7";
8794 this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
8795 this.quadrant2Fill = this.quadrant2Fill || adjust$2(this.primaryColor, { r: 5, g: 5, b: 5 });
8796 this.quadrant3Fill = this.quadrant3Fill || adjust$2(this.primaryColor, { r: 10, g: 10, b: 10 });
8797 this.quadrant4Fill = this.quadrant4Fill || adjust$2(this.primaryColor, { r: 15, g: 15, b: 15 });
8798 this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
8799 this.quadrant2TextFill = this.quadrant2TextFill || adjust$2(this.primaryTextColor, { r: -5, g: -5, b: -5 });
8800 this.quadrant3TextFill = this.quadrant3TextFill || adjust$2(this.primaryTextColor, { r: -10, g: -10, b: -10 });
8801 this.quadrant4TextFill = this.quadrant4TextFill || adjust$2(this.primaryTextColor, { r: -15, g: -15, b: -15 });
8802 this.quadrantPointFill = this.quadrantPointFill || isDark$1(this.quadrant1Fill) ? lighten$1(this.quadrant1Fill) : darken$1(this.quadrant1Fill);
8803 this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
8804 this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
8805 this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
8806 this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
8807 this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
8808 this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
8809 this.requirementBackground = this.requirementBackground || this.primaryColor;
8810 this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
8811 this.requirementBorderSize = this.requirementBorderSize || "1";
8812 this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
8813 this.relationColor = this.relationColor || this.lineColor;
8814 this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
8815 this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
8816 this.git0 = darken$1(this.pie1, 25) || this.primaryColor;
8817 this.git1 = this.pie2 || this.secondaryColor;
8818 this.git2 = this.pie3 || this.tertiaryColor;
8819 this.git3 = this.pie4 || adjust$2(this.primaryColor, { h: -30 });
8820 this.git4 = this.pie5 || adjust$2(this.primaryColor, { h: -60 });
8821 this.git5 = this.pie6 || adjust$2(this.primaryColor, { h: -90 });
8822 this.git6 = this.pie7 || adjust$2(this.primaryColor, { h: 60 });
8823 this.git7 = this.pie8 || adjust$2(this.primaryColor, { h: 120 });
8824 this.gitInv0 = this.gitInv0 || invert$1(this.git0);
8825 this.gitInv1 = this.gitInv1 || invert$1(this.git1);
8826 this.gitInv2 = this.gitInv2 || invert$1(this.git2);
8827 this.gitInv3 = this.gitInv3 || invert$1(this.git3);
8828 this.gitInv4 = this.gitInv4 || invert$1(this.git4);
8829 this.gitInv5 = this.gitInv5 || invert$1(this.git5);
8830 this.gitInv6 = this.gitInv6 || invert$1(this.git6);
8831 this.gitInv7 = this.gitInv7 || invert$1(this.git7);
8832 this.branchLabelColor = this.branchLabelColor || this.labelTextColor;
8833 this.gitBranchLabel0 = this.branchLabelColor;
8834 this.gitBranchLabel1 = "white";
8835 this.gitBranchLabel2 = this.branchLabelColor;
8836 this.gitBranchLabel3 = "white";
8837 this.gitBranchLabel4 = this.branchLabelColor;
8838 this.gitBranchLabel5 = this.branchLabelColor;
8839 this.gitBranchLabel6 = this.branchLabelColor;
8840 this.gitBranchLabel7 = this.branchLabelColor;
8841 this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
8842 this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
8843 this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
8844 this.tagLabelFontSize = this.tagLabelFontSize || "10px";
8845 this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
8846 this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
8847 this.commitLabelFontSize = this.commitLabelFontSize || "10px";
8848 this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
8849 this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
8850 }
8851 calculate(overrides) {
8852 if (typeof overrides !== "object") {
8853 this.updateColors();
8854 return;
8855 }
8856 const keys2 = Object.keys(overrides);
8857 keys2.forEach((k) => {
8858 this[k] = overrides[k];
8859 });
8860 this.updateColors();
8861 keys2.forEach((k) => {
8862 this[k] = overrides[k];
8863 });
8864 }
8865 }
8866 const getThemeVariables = (userOverrides) => {
8867 const theme2 = new Theme();
8868 theme2.calculate(userOverrides);
8869 return theme2;
8870 };
8871 const theme = {
8872 base: {
8873 getThemeVariables: getThemeVariables$4
8874 },
8875 dark: {
8876 getThemeVariables: getThemeVariables$3
8877 },
8878 default: {
8879 getThemeVariables: getThemeVariables$2
8880 },
8881 forest: {
8882 getThemeVariables: getThemeVariables$1
8883 },
8884 neutral: {
8885 getThemeVariables
8886 }
8887 };
8888 const config$2 = {
8889 /**
8890 * Theme , the CSS style sheet
8891 *
8892 * | Parameter | Description | Type | Required | Values |
8893 * | --------- | --------------- | ------ | -------- | ---------------------------------------------- |
8894 * | theme | Built in Themes | string | Optional | 'default', 'forest', 'dark', 'neutral', 'null' |
8895 *
8896 * **Notes:** To disable any pre-defined mermaid theme, use "null".
8897 *
8898 * @example
8899 *
8900 * ```js
8901 * {
8902 * "theme": "forest",
8903 * "themeCSS": ".node rect { fill: red; }"
8904 * }
8905 * ```
8906 */
8907 theme: "default",
8908 themeVariables: theme["default"].getThemeVariables(),
8909 themeCSS: void 0,
8910 /* **maxTextSize** - The maximum allowed size of the users text diagram */
8911 maxTextSize: 5e4,
8912 darkMode: false,
8913 /**
8914 * | Parameter | Description | Type | Required | Values |
8915 * | ---------- | ------------------------------------------------------ | ------ | -------- | --------------------------- |
8916 * | fontFamily | specifies the font to be used in the rendered diagrams | string | Required | Any Possible CSS FontFamily |
8917 *
8918 * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif;'.
8919 */
8920 fontFamily: '"trebuchet ms", verdana, arial, sans-serif;',
8921 /**
8922 * | Parameter | Description | Type | Required | Values |
8923 * | --------- | ----------------------------------------------------- | ---------------- | -------- | --------------------------------------------- |
8924 * | logLevel | This option decides the amount of logging to be used. | string \| number | Required | 'trace','debug','info','warn','error','fatal' |
8925 *
8926 * **Notes:**
8927 *
8928 * - Trace: 0
8929 * - Debug: 1
8930 * - Info: 2
8931 * - Warn: 3
8932 * - Error: 4
8933 * - Fatal: 5 (default)
8934 */
8935 logLevel: 5,
8936 /**
8937 * | Parameter | Description | Type | Required | Values |
8938 * | ------------- | --------------------------------- | ------ | -------- | ------------------------------------------ |
8939 * | securityLevel | Level of trust for parsed diagram | string | Required | 'sandbox', 'strict', 'loose', 'antiscript' |
8940 *
8941 * **Notes**:
8942 *
8943 * - **strict**: (**default**) HTML tags in the text are encoded and click functionality is disabled.
8944 * - **antiscript**: HTML tags in text are allowed (only script elements are removed), and click
8945 * functionality is enabled.
8946 * - **loose**: HTML tags in text are allowed and click functionality is enabled.
8947 * - **sandbox**: With this security level, all rendering takes place in a sandboxed iframe. This
8948 * prevent any JavaScript from running in the context. This may hinder interactive functionality
8949 * of the diagram, like scripts, popups in the sequence diagram, links to other tabs or targets, etc.
8950 */
8951 securityLevel: "strict",
8952 /**
8953 * | Parameter | Description | Type | Required | Values |
8954 * | ----------- | -------------------------------------------- | ------- | -------- | ----------- |
8955 * | startOnLoad | Dictates whether mermaid starts on Page load | boolean | Required | true, false |
8956 *
8957 * **Notes:** Default value: true
8958 */
8959 startOnLoad: true,
8960 /**
8961 * | Parameter | Description | Type | Required | Values |
8962 * | ------------------- | ---------------------------------------------------------------------------- | ------- | -------- | ----------- |
8963 * | arrowMarkerAbsolute | Controls whether or arrow markers in html code are absolute paths or anchors | boolean | Required | true, false |
8964 *
8965 * **Notes**:
8966 *
8967 * This matters if you are using base tag settings.
8968 *
8969 * Default value: false
8970 */
8971 arrowMarkerAbsolute: false,
8972 /**
8973 * This option controls which currentConfig keys are considered _secure_ and can only be changed
8974 * via call to mermaidAPI.initialize. Calls to mermaidAPI.reinitialize cannot make changes to the
8975 * `secure` keys in the current currentConfig. This prevents malicious graph directives from
8976 * overriding a site's default security.
8977 *
8978 * **Notes**:
8979 *
8980 * Default value: ['secure', 'securityLevel', 'startOnLoad', 'maxTextSize']
8981 */
8982 secure: ["secure", "securityLevel", "startOnLoad", "maxTextSize"],
8983 /**
8984 * This option controls if the generated ids of nodes in the SVG are generated randomly or based
8985 * on a seed. If set to false, the IDs are generated based on the current date and thus are not
8986 * deterministic. This is the default behavior.
8987 *
8988 * **Notes**:
8989 *
8990 * This matters if your files are checked into source control e.g. git and should not change unless
8991 * content is changed.
8992 *
8993 * Default value: false
8994 */
8995 deterministicIds: false,
8996 /**
8997 * This option is the optional seed for deterministic ids. if set to undefined but
8998 * deterministicIds is true, a simple number iterator is used. You can set this attribute to base
8999 * the seed on a static string.
9000 */
9001 deterministicIDSeed: void 0,
9002 /** The object containing configurations specific for flowcharts */
9003 flowchart: {
9004 /**
9005 * ### titleTopMargin
9006 *
9007 * | Parameter | Description | Type | Required | Values |
9008 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
9009 * | titleTopMargin | Margin top for the text over the flowchart | Integer | Required | Any Positive Value |
9010 *
9011 * **Notes:** Default value: 25
9012 */
9013 titleTopMargin: 25,
9014 /**
9015 * | Parameter | Description | Type | Required | Values |
9016 * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
9017 * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
9018 *
9019 * **Notes:**
9020 *
9021 * The amount of padding around the diagram as a whole so that embedded diagrams have margins,
9022 * expressed in pixels
9023 *
9024 * Default value: 8
9025 */
9026 diagramPadding: 8,
9027 /**
9028 * | Parameter | Description | Type | Required | Values |
9029 * | ---------- | -------------------------------------------------------------------------------------------- | ------- | -------- | ----------- |
9030 * | htmlLabels | Flag for setting whether or not a html tag should be used for rendering labels on the edges. | boolean | Required | true, false |
9031 *
9032 * **Notes:** Default value: true.
9033 */
9034 htmlLabels: true,
9035 /**
9036 * | Parameter | Description | Type | Required | Values |
9037 * | ----------- | --------------------------------------------------- | ------- | -------- | ------------------- |
9038 * | nodeSpacing | Defines the spacing between nodes on the same level | Integer | Required | Any positive Number |
9039 *
9040 * **Notes:**
9041 *
9042 * Pertains to horizontal spacing for TB (top to bottom) or BT (bottom to top) graphs, and the
9043 * vertical spacing for LR as well as RL graphs.**
9044 *
9045 * Default value: 50
9046 */
9047 nodeSpacing: 50,
9048 /**
9049 * | Parameter | Description | Type | Required | Values |
9050 * | ----------- | ----------------------------------------------------- | ------- | -------- | ------------------- |
9051 * | rankSpacing | Defines the spacing between nodes on different levels | Integer | Required | Any Positive Number |
9052 *
9053 * **Notes**:
9054 *
9055 * Pertains to vertical spacing for TB (top to bottom) or BT (bottom to top), and the horizontal
9056 * spacing for LR as well as RL graphs.
9057 *
9058 * Default value 50
9059 */
9060 rankSpacing: 50,
9061 /**
9062 * | Parameter | Description | Type | Required | Values |
9063 * | --------- | -------------------------------------------------- | ------ | -------- | ----------------------------- |
9064 * | curve | Defines how mermaid renders curves for flowcharts. | string | Required | 'basis', 'linear', 'cardinal' |
9065 *
9066 * **Notes:**
9067 *
9068 * Default Value: 'basis'
9069 */
9070 curve: "basis",
9071 // Only used in new experimental rendering
9072 // represents the padding between the labels and the shape
9073 padding: 15,
9074 /**
9075 * | Parameter | Description | Type | Required | Values |
9076 * | ----------- | ----------- | ------- | -------- | ----------- |
9077 * | useMaxWidth | See notes | boolean | 4 | true, false |
9078 *
9079 * **Notes:**
9080 *
9081 * When this flag is set the height and width is set to 100% and is then scaling with the
9082 * available space if not the absolute space required is used.
9083 *
9084 * Default value: true
9085 */
9086 useMaxWidth: true,
9087 /**
9088 * | Parameter | Description | Type | Required | Values |
9089 * | --------------- | ----------- | ------- | -------- | ----------------------- |
9090 * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper, elk |
9091 *
9092 * **Notes:**
9093 *
9094 * Decides which rendering engine that is to be used for the rendering. Legal values are:
9095 * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid, elk for layout using
9096 * elkjs
9097 *
9098 * Default value: 'dagre-wrapper'
9099 */
9100 defaultRenderer: "dagre-wrapper",
9101 /**
9102 * | Parameter | Description | Type | Required | Values |
9103 * | --------------- | ----------- | ------- | -------- | ----------------------- |
9104 * | wrappingWidth | See notes | number | 4 | width of nodes where text is wrapped |
9105 *
9106 * **Notes:**
9107 *
9108 * When using markdown strings the text ius wrapped automatically, this
9109 * value sets the max width of a text before it continues on a new line.
9110 * Default value: 'dagre-wrapper'
9111 */
9112 wrappingWidth: 200
9113 },
9114 /** The object containing configurations specific for sequence diagrams */
9115 sequence: {
9116 hideUnusedParticipants: false,
9117 /**
9118 * | Parameter | Description | Type | Required | Values |
9119 * | --------------- | ---------------------------- | ------- | -------- | ------------------ |
9120 * | activationWidth | Width of the activation rect | Integer | Required | Any Positive Value |
9121 *
9122 * **Notes:** Default value :10
9123 */
9124 activationWidth: 10,
9125 /**
9126 * | Parameter | Description | Type | Required | Values |
9127 * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
9128 * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
9129 *
9130 * **Notes:** Default value: 50
9131 */
9132 diagramMarginX: 50,
9133 /**
9134 * | Parameter | Description | Type | Required | Values |
9135 * | -------------- | ------------------------------------------------- | ------- | -------- | ------------------ |
9136 * | diagramMarginY | Margin to the over and under the sequence diagram | Integer | Required | Any Positive Value |
9137 *
9138 * **Notes:** Default value: 10
9139 */
9140 diagramMarginY: 10,
9141 /**
9142 * | Parameter | Description | Type | Required | Values |
9143 * | ----------- | --------------------- | ------- | -------- | ------------------ |
9144 * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
9145 *
9146 * **Notes:** Default value: 50
9147 */
9148 actorMargin: 50,
9149 /**
9150 * | Parameter | Description | Type | Required | Values |
9151 * | --------- | -------------------- | ------- | -------- | ------------------ |
9152 * | width | Width of actor boxes | Integer | Required | Any Positive Value |
9153 *
9154 * **Notes:** Default value: 150
9155 */
9156 width: 150,
9157 /**
9158 * | Parameter | Description | Type | Required | Values |
9159 * | --------- | --------------------- | ------- | -------- | ------------------ |
9160 * | height | Height of actor boxes | Integer | Required | Any Positive Value |
9161 *
9162 * **Notes:** Default value: 65
9163 */
9164 height: 65,
9165 /**
9166 * | Parameter | Description | Type | Required | Values |
9167 * | --------- | ------------------------ | ------- | -------- | ------------------ |
9168 * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
9169 *
9170 * **Notes:** Default value: 10
9171 */
9172 boxMargin: 10,
9173 /**
9174 * | Parameter | Description | Type | Required | Values |
9175 * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
9176 * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
9177 *
9178 * **Notes:** Default value: 5
9179 */
9180 boxTextMargin: 5,
9181 /**
9182 * | Parameter | Description | Type | Required | Values |
9183 * | ---------- | ------------------- | ------- | -------- | ------------------ |
9184 * | noteMargin | margin around notes | Integer | Required | Any Positive Value |
9185 *
9186 * **Notes:** Default value: 10
9187 */
9188 noteMargin: 10,
9189 /**
9190 * | Parameter | Description | Type | Required | Values |
9191 * | ------------- | ---------------------- | ------- | -------- | ------------------ |
9192 * | messageMargin | Space between messages | Integer | Required | Any Positive Value |
9193 *
9194 * **Notes:** Default value: 35
9195 */
9196 messageMargin: 35,
9197 /**
9198 * | Parameter | Description | Type | Required | Values |
9199 * | ------------ | --------------------------- | ------ | -------- | ------------------------- |
9200 * | messageAlign | Multiline message alignment | string | Required | 'left', 'center', 'right' |
9201 *
9202 * **Notes:** Default value: 'center'
9203 */
9204 messageAlign: "center",
9205 /**
9206 * | Parameter | Description | Type | Required | Values |
9207 * | ------------ | --------------------------- | ------- | -------- | ----------- |
9208 * | mirrorActors | Mirror actors under diagram | boolean | Required | true, false |
9209 *
9210 * **Notes:** Default value: true
9211 */
9212 mirrorActors: true,
9213 /**
9214 * | Parameter | Description | Type | Required | Values |
9215 * | ---------- | ----------------------------------------------------------------------- | ------- | -------- | ----------- |
9216 * | forceMenus | forces actor popup menus to always be visible (to support E2E testing). | Boolean | Required | True, False |
9217 *
9218 * **Notes:**
9219 *
9220 * Default value: false.
9221 */
9222 forceMenus: false,
9223 /**
9224 * | Parameter | Description | Type | Required | Values |
9225 * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
9226 * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | Required | Any Positive Value |
9227 *
9228 * **Notes:**
9229 *
9230 * Depending on css styling this might need adjustment.
9231 *
9232 * Default value: 1
9233 */
9234 bottomMarginAdj: 1,
9235 /**
9236 * | Parameter | Description | Type | Required | Values |
9237 * | ----------- | ----------- | ------- | -------- | ----------- |
9238 * | useMaxWidth | See Notes | boolean | Required | true, false |
9239 *
9240 * **Notes:** When this flag is set to true, the height and width is set to 100% and is then
9241 * scaling with the available space. If set to false, the absolute space required is used.
9242 *
9243 * Default value: true
9244 */
9245 useMaxWidth: true,
9246 /**
9247 * | Parameter | Description | Type | Required | Values |
9248 * | ----------- | ------------------------------------ | ------- | -------- | ----------- |
9249 * | rightAngles | display curve arrows as right angles | boolean | Required | true, false |
9250 *
9251 * **Notes:**
9252 *
9253 * This will display arrows that start and begin at the same node as right angles, rather than a
9254 * curve
9255 *
9256 * Default value: false
9257 */
9258 rightAngles: false,
9259 /**
9260 * | Parameter | Description | Type | Required | Values |
9261 * | ------------------- | ------------------------------- | ------- | -------- | ----------- |
9262 * | showSequenceNumbers | This will show the node numbers | boolean | Required | true, false |
9263 *
9264 * **Notes:** Default value: false
9265 */
9266 showSequenceNumbers: false,
9267 /**
9268 * | Parameter | Description | Type | Required | Values |
9269 * | ------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
9270 * | actorFontSize | This sets the font size of the actor's description | Integer | Require | Any Positive Value |
9271 *
9272 * **Notes:** **Default value 14**..
9273 */
9274 actorFontSize: 14,
9275 /**
9276 * | Parameter | Description | Type | Required | Values |
9277 * | --------------- | ---------------------------------------------------- | ------ | -------- | --------------------------- |
9278 * | actorFontFamily | This sets the font family of the actor's description | string | Required | Any Possible CSS FontFamily |
9279 *
9280 * **Notes:** Default value: "'Open Sans", sans-serif'
9281 */
9282 actorFontFamily: '"Open Sans", sans-serif',
9283 /**
9284 * This sets the font weight of the actor's description
9285 *
9286 * **Notes:** Default value: 400.
9287 */
9288 actorFontWeight: 400,
9289 /**
9290 * | Parameter | Description | Type | Required | Values |
9291 * | ------------ | ----------------------------------------------- | ------- | -------- | ------------------ |
9292 * | noteFontSize | This sets the font size of actor-attached notes | Integer | Required | Any Positive Value |
9293 *
9294 * **Notes:** Default value: 14
9295 */
9296 noteFontSize: 14,
9297 /**
9298 * | Parameter | Description | Type | Required | Values |
9299 * | -------------- | -------------------------------------------------- | ------ | -------- | --------------------------- |
9300 * | noteFontFamily | This sets the font family of actor-attached notes. | string | Required | Any Possible CSS FontFamily |
9301 *
9302 * **Notes:** Default value: ''"trebuchet ms", verdana, arial, sans-serif'
9303 */
9304 noteFontFamily: '"trebuchet ms", verdana, arial, sans-serif',
9305 /**
9306 * This sets the font weight of the note's description
9307 *
9308 * **Notes:** Default value: 400
9309 */
9310 noteFontWeight: 400,
9311 /**
9312 * | Parameter | Description | Type | Required | Values |
9313 * | --------- | ---------------------------------------------------- | ------ | -------- | ------------------------- |
9314 * | noteAlign | This sets the text alignment of actor-attached notes | string | required | 'left', 'center', 'right' |
9315 *
9316 * **Notes:** Default value: 'center'
9317 */
9318 noteAlign: "center",
9319 /**
9320 * | Parameter | Description | Type | Required | Values |
9321 * | --------------- | ----------------------------------------- | ------- | -------- | ------------------- |
9322 * | messageFontSize | This sets the font size of actor messages | Integer | Required | Any Positive Number |
9323 *
9324 * **Notes:** Default value: 16
9325 */
9326 messageFontSize: 16,
9327 /**
9328 * | Parameter | Description | Type | Required | Values |
9329 * | ----------------- | ------------------------------------------- | ------ | -------- | --------------------------- |
9330 * | messageFontFamily | This sets the font family of actor messages | string | Required | Any Possible CSS FontFamily |
9331 *
9332 * **Notes:** Default value: '"trebuchet ms", verdana, arial, sans-serif'
9333 */
9334 messageFontFamily: '"trebuchet ms", verdana, arial, sans-serif',
9335 /**
9336 * This sets the font weight of the message's description
9337 *
9338 * **Notes:** Default value: 400.
9339 */
9340 messageFontWeight: 400,
9341 /**
9342 * This sets the auto-wrap state for the diagram
9343 *
9344 * **Notes:** Default value: false.
9345 */
9346 wrap: false,
9347 /**
9348 * This sets the auto-wrap padding for the diagram (sides only)
9349 *
9350 * **Notes:** Default value: 0.
9351 */
9352 wrapPadding: 10,
9353 /**
9354 * This sets the width of the loop-box (loop, alt, opt, par)
9355 *
9356 * **Notes:** Default value: 50.
9357 */
9358 labelBoxWidth: 50,
9359 /**
9360 * This sets the height of the loop-box (loop, alt, opt, par)
9361 *
9362 * **Notes:** Default value: 20.
9363 */
9364 labelBoxHeight: 20,
9365 messageFont: function() {
9366 return {
9367 fontFamily: this.messageFontFamily,
9368 fontSize: this.messageFontSize,
9369 fontWeight: this.messageFontWeight
9370 };
9371 },
9372 noteFont: function() {
9373 return {
9374 fontFamily: this.noteFontFamily,
9375 fontSize: this.noteFontSize,
9376 fontWeight: this.noteFontWeight
9377 };
9378 },
9379 actorFont: function() {
9380 return {
9381 fontFamily: this.actorFontFamily,
9382 fontSize: this.actorFontSize,
9383 fontWeight: this.actorFontWeight
9384 };
9385 }
9386 },
9387 /** The object containing configurations specific for gantt diagrams */
9388 gantt: {
9389 /**
9390 * ### titleTopMargin
9391 *
9392 * | Parameter | Description | Type | Required | Values |
9393 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
9394 * | titleTopMargin | Margin top for the text over the gantt diagram | Integer | Required | Any Positive Value |
9395 *
9396 * **Notes:** Default value: 25
9397 */
9398 titleTopMargin: 25,
9399 /**
9400 * | Parameter | Description | Type | Required | Values |
9401 * | --------- | ----------------------------------- | ------- | -------- | ------------------ |
9402 * | barHeight | The height of the bars in the graph | Integer | Required | Any Positive Value |
9403 *
9404 * **Notes:** Default value: 20
9405 */
9406 barHeight: 20,
9407 /**
9408 * | Parameter | Description | Type | Required | Values |
9409 * | --------- | ---------------------------------------------------------------- | ------- | -------- | ------------------ |
9410 * | barGap | The margin between the different activities in the gantt diagram | Integer | Optional | Any Positive Value |
9411 *
9412 * **Notes:** Default value: 4
9413 */
9414 barGap: 4,
9415 /**
9416 * | Parameter | Description | Type | Required | Values |
9417 * | ---------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------ |
9418 * | topPadding | Margin between title and gantt diagram and between axis and gantt diagram. | Integer | Required | Any Positive Value |
9419 *
9420 * **Notes:** Default value: 50
9421 */
9422 topPadding: 50,
9423 /**
9424 * | Parameter | Description | Type | Required | Values |
9425 * | ------------ | ----------------------------------------------------------------------- | ------- | -------- | ------------------ |
9426 * | rightPadding | The space allocated for the section name to the right of the activities | Integer | Required | Any Positive Value |
9427 *
9428 * **Notes:** Default value: 75
9429 */
9430 rightPadding: 75,
9431 /**
9432 * | Parameter | Description | Type | Required | Values |
9433 * | ----------- | ---------------------------------------------------------------------- | ------- | -------- | ------------------ |
9434 * | leftPadding | The space allocated for the section name to the left of the activities | Integer | Required | Any Positive Value |
9435 *
9436 * **Notes:** Default value: 75
9437 */
9438 leftPadding: 75,
9439 /**
9440 * | Parameter | Description | Type | Required | Values |
9441 * | -------------------- | -------------------------------------------- | ------- | -------- | ------------------ |
9442 * | gridLineStartPadding | Vertical starting position of the grid lines | Integer | Required | Any Positive Value |
9443 *
9444 * **Notes:** Default value: 35
9445 */
9446 gridLineStartPadding: 35,
9447 /**
9448 * | Parameter | Description | Type | Required | Values |
9449 * | --------- | ----------- | ------- | -------- | ------------------ |
9450 * | fontSize | Font size | Integer | Required | Any Positive Value |
9451 *
9452 * **Notes:** Default value: 11
9453 */
9454 fontSize: 11,
9455 /**
9456 * | Parameter | Description | Type | Required | Values |
9457 * | --------------- | ---------------------- | ------- | -------- | ------------------ |
9458 * | sectionFontSize | Font size for sections | Integer | Required | Any Positive Value |
9459 *
9460 * **Notes:** Default value: 11
9461 */
9462 sectionFontSize: 11,
9463 /**
9464 * | Parameter | Description | Type | Required | Values |
9465 * | ------------------- | ---------------------------------------- | ------- | -------- | ------------------ |
9466 * | numberSectionStyles | The number of alternating section styles | Integer | 4 | Any Positive Value |
9467 *
9468 * **Notes:** Default value: 4
9469 */
9470 numberSectionStyles: 4,
9471 /**
9472 * | Parameter | Description | Type | Required | Values |
9473 * | ----------- | ------------------------- | ------ | -------- | --------- |
9474 * | displayMode | Controls the display mode | string | 4 | 'compact' |
9475 *
9476 * **Notes**:
9477 *
9478 * - **compact**: Enables displaying multiple tasks on the same row.
9479 */
9480 displayMode: "",
9481 /**
9482 * | Parameter | Description | Type | Required | Values |
9483 * | ---------- | ---------------------------- | ---- | -------- | ---------------- |
9484 * | axisFormat | Date/time format of the axis | 3 | Required | Date in yy-mm-dd |
9485 *
9486 * **Notes:**
9487 *
9488 * This might need adjustment to match your locale and preferences
9489 *
9490 * Default value: '%Y-%m-%d'.
9491 */
9492 axisFormat: "%Y-%m-%d",
9493 /**
9494 * | Parameter | Description | Type | Required | Values |
9495 * | ------------ | ------------| ------ | -------- | ------- |
9496 * | tickInterval | axis ticks | string | Optional | string |
9497 *
9498 * **Notes:**
9499 *
9500 * Pattern is /^([1-9][0-9]*)(minute|hour|day|week|month)$/
9501 *
9502 * Default value: undefined
9503 */
9504 tickInterval: void 0,
9505 /**
9506 * | Parameter | Description | Type | Required | Values |
9507 * | ----------- | ----------- | ------- | -------- | ----------- |
9508 * | useMaxWidth | See notes | boolean | 4 | true, false |
9509 *
9510 * **Notes:**
9511 *
9512 * When this flag is set the height and width is set to 100% and is then scaling with the
9513 * available space if not the absolute space required is used.
9514 *
9515 * Default value: true
9516 */
9517 useMaxWidth: true,
9518 /**
9519 * | Parameter | Description | Type | Required | Values |
9520 * | --------- | ----------- | ------- | -------- | ----------- |
9521 * | topAxis | See notes | Boolean | 4 | True, False |
9522 *
9523 * **Notes:** when this flag is set date labels will be added to the top of the chart
9524 *
9525 * **Default value false**.
9526 */
9527 topAxis: false,
9528 useWidth: void 0
9529 },
9530 /** The object containing configurations specific for journey diagrams */
9531 journey: {
9532 /**
9533 * | Parameter | Description | Type | Required | Values |
9534 * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
9535 * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
9536 *
9537 * **Notes:** Default value: 50
9538 */
9539 diagramMarginX: 50,
9540 /**
9541 * | Parameter | Description | Type | Required | Values |
9542 * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
9543 * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |
9544 *
9545 * **Notes:** Default value: 10
9546 */
9547 diagramMarginY: 10,
9548 /**
9549 * | Parameter | Description | Type | Required | Values |
9550 * | ----------- | --------------------- | ------- | -------- | ------------------ |
9551 * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
9552 *
9553 * **Notes:** Default value: 50
9554 */
9555 leftMargin: 150,
9556 /**
9557 * | Parameter | Description | Type | Required | Values |
9558 * | --------- | -------------------- | ------- | -------- | ------------------ |
9559 * | width | Width of actor boxes | Integer | Required | Any Positive Value |
9560 *
9561 * **Notes:** Default value: 150
9562 */
9563 width: 150,
9564 /**
9565 * | Parameter | Description | Type | Required | Values |
9566 * | --------- | --------------------- | ------- | -------- | ------------------ |
9567 * | height | Height of actor boxes | Integer | Required | Any Positive Value |
9568 *
9569 * **Notes:** Default value: 65
9570 */
9571 height: 50,
9572 /**
9573 * | Parameter | Description | Type | Required | Values |
9574 * | --------- | ------------------------ | ------- | -------- | ------------------ |
9575 * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
9576 *
9577 * **Notes:** Default value: 10
9578 */
9579 boxMargin: 10,
9580 /**
9581 * | Parameter | Description | Type | Required | Values |
9582 * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
9583 * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
9584 *
9585 * **Notes:** Default value: 5
9586 */
9587 boxTextMargin: 5,
9588 /**
9589 * | Parameter | Description | Type | Required | Values |
9590 * | ---------- | ------------------- | ------- | -------- | ------------------ |
9591 * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |
9592 *
9593 * **Notes:** Default value: 10
9594 */
9595 noteMargin: 10,
9596 /**
9597 * | Parameter | Description | Type | Required | Values |
9598 * | ------------- | ----------------------- | ------- | -------- | ------------------ |
9599 * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |
9600 *
9601 * **Notes:**
9602 *
9603 * Space between messages.
9604 *
9605 * Default value: 35
9606 */
9607 messageMargin: 35,
9608 /**
9609 * | Parameter | Description | Type | Required | Values |
9610 * | ------------ | --------------------------- | ---- | -------- | ------------------------- |
9611 * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |
9612 *
9613 * **Notes:** Default value: 'center'
9614 */
9615 messageAlign: "center",
9616 /**
9617 * | Parameter | Description | Type | Required | Values |
9618 * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
9619 * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |
9620 *
9621 * **Notes:**
9622 *
9623 * Depending on css styling this might need adjustment.
9624 *
9625 * Default value: 1
9626 */
9627 bottomMarginAdj: 1,
9628 /**
9629 * | Parameter | Description | Type | Required | Values |
9630 * | ----------- | ----------- | ------- | -------- | ----------- |
9631 * | useMaxWidth | See notes | boolean | 4 | true, false |
9632 *
9633 * **Notes:**
9634 *
9635 * When this flag is set the height and width is set to 100% and is then scaling with the
9636 * available space if not the absolute space required is used.
9637 *
9638 * Default value: true
9639 */
9640 useMaxWidth: true,
9641 /**
9642 * | Parameter | Description | Type | Required | Values |
9643 * | ----------- | --------------------------------- | ---- | -------- | ----------- |
9644 * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |
9645 *
9646 * **Notes:**
9647 *
9648 * This will display arrows that start and begin at the same node as right angles, rather than a
9649 * curves
9650 *
9651 * Default value: false
9652 */
9653 rightAngles: false,
9654 taskFontSize: 14,
9655 taskFontFamily: '"Open Sans", sans-serif',
9656 taskMargin: 50,
9657 // width of activation box
9658 activationWidth: 10,
9659 // text placement as: tspan | fo | old only text as before
9660 textPlacement: "fo",
9661 actorColours: ["#8FBC8F", "#7CFC00", "#00FFFF", "#20B2AA", "#B0E0E6", "#FFFFE0"],
9662 sectionFills: ["#191970", "#8B008B", "#4B0082", "#2F4F4F", "#800000", "#8B4513", "#00008B"],
9663 sectionColours: ["#fff"]
9664 },
9665 /** The object containing configurations specific for timeline diagrams */
9666 timeline: {
9667 /**
9668 * | Parameter | Description | Type | Required | Values |
9669 * | -------------- | ---------------------------------------------------- | ------- | -------- | ------------------ |
9670 * | diagramMarginX | Margin to the right and left of the sequence diagram | Integer | Required | Any Positive Value |
9671 *
9672 * **Notes:** Default value: 50
9673 */
9674 diagramMarginX: 50,
9675 /**
9676 * | Parameter | Description | Type | Required | Values |
9677 * | -------------- | -------------------------------------------------- | ------- | -------- | ------------------ |
9678 * | diagramMarginY | Margin to the over and under the sequence diagram. | Integer | Required | Any Positive Value |
9679 *
9680 * **Notes:** Default value: 10
9681 */
9682 diagramMarginY: 10,
9683 /**
9684 * | Parameter | Description | Type | Required | Values |
9685 * | ----------- | --------------------- | ------- | -------- | ------------------ |
9686 * | actorMargin | Margin between actors | Integer | Required | Any Positive Value |
9687 *
9688 * **Notes:** Default value: 50
9689 */
9690 leftMargin: 150,
9691 /**
9692 * | Parameter | Description | Type | Required | Values |
9693 * | --------- | -------------------- | ------- | -------- | ------------------ |
9694 * | width | Width of actor boxes | Integer | Required | Any Positive Value |
9695 *
9696 * **Notes:** Default value: 150
9697 */
9698 width: 150,
9699 /**
9700 * | Parameter | Description | Type | Required | Values |
9701 * | --------- | --------------------- | ------- | -------- | ------------------ |
9702 * | height | Height of actor boxes | Integer | Required | Any Positive Value |
9703 *
9704 * **Notes:** Default value: 65
9705 */
9706 height: 50,
9707 /**
9708 * | Parameter | Description | Type | Required | Values |
9709 * | --------- | ------------------------ | ------- | -------- | ------------------ |
9710 * | boxMargin | Margin around loop boxes | Integer | Required | Any Positive Value |
9711 *
9712 * **Notes:** Default value: 10
9713 */
9714 boxMargin: 10,
9715 /**
9716 * | Parameter | Description | Type | Required | Values |
9717 * | ------------- | -------------------------------------------- | ------- | -------- | ------------------ |
9718 * | boxTextMargin | Margin around the text in loop/alt/opt boxes | Integer | Required | Any Positive Value |
9719 *
9720 * **Notes:** Default value: 5
9721 */
9722 boxTextMargin: 5,
9723 /**
9724 * | Parameter | Description | Type | Required | Values |
9725 * | ---------- | ------------------- | ------- | -------- | ------------------ |
9726 * | noteMargin | Margin around notes | Integer | Required | Any Positive Value |
9727 *
9728 * **Notes:** Default value: 10
9729 */
9730 noteMargin: 10,
9731 /**
9732 * | Parameter | Description | Type | Required | Values |
9733 * | ------------- | ----------------------- | ------- | -------- | ------------------ |
9734 * | messageMargin | Space between messages. | Integer | Required | Any Positive Value |
9735 *
9736 * **Notes:**
9737 *
9738 * Space between messages.
9739 *
9740 * Default value: 35
9741 */
9742 messageMargin: 35,
9743 /**
9744 * | Parameter | Description | Type | Required | Values |
9745 * | ------------ | --------------------------- | ---- | -------- | ------------------------- |
9746 * | messageAlign | Multiline message alignment | 3 | 4 | 'left', 'center', 'right' |
9747 *
9748 * **Notes:** Default value: 'center'
9749 */
9750 messageAlign: "center",
9751 /**
9752 * | Parameter | Description | Type | Required | Values |
9753 * | --------------- | ------------------------------------------ | ------- | -------- | ------------------ |
9754 * | bottomMarginAdj | Prolongs the edge of the diagram downwards | Integer | 4 | Any Positive Value |
9755 *
9756 * **Notes:**
9757 *
9758 * Depending on css styling this might need adjustment.
9759 *
9760 * Default value: 1
9761 */
9762 bottomMarginAdj: 1,
9763 /**
9764 * | Parameter | Description | Type | Required | Values |
9765 * | ----------- | ----------- | ------- | -------- | ----------- |
9766 * | useMaxWidth | See notes | boolean | 4 | true, false |
9767 *
9768 * **Notes:**
9769 *
9770 * When this flag is set the height and width is set to 100% and is then scaling with the
9771 * available space if not the absolute space required is used.
9772 *
9773 * Default value: true
9774 */
9775 useMaxWidth: true,
9776 /**
9777 * | Parameter | Description | Type | Required | Values |
9778 * | ----------- | --------------------------------- | ---- | -------- | ----------- |
9779 * | rightAngles | Curved Arrows become Right Angles | 3 | 4 | true, false |
9780 *
9781 * **Notes:**
9782 *
9783 * This will display arrows that start and begin at the same node as right angles, rather than a
9784 * curves
9785 *
9786 * Default value: false
9787 */
9788 rightAngles: false,
9789 taskFontSize: 14,
9790 taskFontFamily: '"Open Sans", sans-serif',
9791 taskMargin: 50,
9792 // width of activation box
9793 activationWidth: 10,
9794 // text placement as: tspan | fo | old only text as before
9795 textPlacement: "fo",
9796 actorColours: ["#8FBC8F", "#7CFC00", "#00FFFF", "#20B2AA", "#B0E0E6", "#FFFFE0"],
9797 sectionFills: ["#191970", "#8B008B", "#4B0082", "#2F4F4F", "#800000", "#8B4513", "#00008B"],
9798 sectionColours: ["#fff"],
9799 disableMulticolor: false
9800 },
9801 class: {
9802 /**
9803 * ### titleTopMargin
9804 *
9805 * | Parameter | Description | Type | Required | Values |
9806 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
9807 * | titleTopMargin | Margin top for the text over the class diagram | Integer | Required | Any Positive Value |
9808 *
9809 * **Notes:** Default value: 25
9810 */
9811 titleTopMargin: 25,
9812 arrowMarkerAbsolute: false,
9813 dividerMargin: 10,
9814 padding: 5,
9815 textHeight: 10,
9816 /**
9817 * | Parameter | Description | Type | Required | Values |
9818 * | ----------- | ----------- | ------- | -------- | ----------- |
9819 * | useMaxWidth | See notes | boolean | 4 | true, false |
9820 *
9821 * **Notes:**
9822 *
9823 * When this flag is set the height and width is set to 100% and is then scaling with the
9824 * available space if not the absolute space required is used.
9825 *
9826 * Default value: true
9827 */
9828 useMaxWidth: true,
9829 /**
9830 * | Parameter | Description | Type | Required | Values |
9831 * | --------------- | ----------- | ------- | -------- | ----------------------- |
9832 * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
9833 *
9834 * **Notes**:
9835 *
9836 * Decides which rendering engine that is to be used for the rendering. Legal values are:
9837 * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
9838 *
9839 * Default value: 'dagre-d3'
9840 */
9841 defaultRenderer: "dagre-wrapper"
9842 },
9843 state: {
9844 /**
9845 * ### titleTopMargin
9846 *
9847 * | Parameter | Description | Type | Required | Values |
9848 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
9849 * | titleTopMargin | Margin top for the text over the state diagram | Integer | Required | Any Positive Value |
9850 *
9851 * **Notes:** Default value: 25
9852 */
9853 titleTopMargin: 25,
9854 dividerMargin: 10,
9855 sizeUnit: 5,
9856 padding: 8,
9857 textHeight: 10,
9858 titleShift: -15,
9859 noteMargin: 10,
9860 forkWidth: 70,
9861 forkHeight: 7,
9862 // Used
9863 miniPadding: 2,
9864 // Font size factor, this is used to guess the width of the edges labels before rendering by dagre
9865 // layout. This might need updating if/when switching font
9866 fontSizeFactor: 5.02,
9867 fontSize: 24,
9868 labelHeight: 16,
9869 edgeLengthFactor: "20",
9870 compositTitleSize: 35,
9871 radius: 5,
9872 /**
9873 * | Parameter | Description | Type | Required | Values |
9874 * | ----------- | ----------- | ------- | -------- | ----------- |
9875 * | useMaxWidth | See notes | boolean | 4 | true, false |
9876 *
9877 * **Notes:**
9878 *
9879 * When this flag is set the height and width is set to 100% and is then scaling with the
9880 * available space if not the absolute space required is used.
9881 *
9882 * Default value: true
9883 */
9884 useMaxWidth: true,
9885 /**
9886 * | Parameter | Description | Type | Required | Values |
9887 * | --------------- | ----------- | ------- | -------- | ----------------------- |
9888 * | defaultRenderer | See notes | boolean | 4 | dagre-d3, dagre-wrapper |
9889 *
9890 * **Notes:**
9891 *
9892 * Decides which rendering engine that is to be used for the rendering. Legal values are:
9893 * dagre-d3 dagre-wrapper - wrapper for dagre implemented in mermaid
9894 *
9895 * Default value: 'dagre-d3'
9896 */
9897 defaultRenderer: "dagre-wrapper"
9898 },
9899 /** The object containing configurations specific for entity relationship diagrams */
9900 er: {
9901 /**
9902 * ### titleTopMargin
9903 *
9904 * | Parameter | Description | Type | Required | Values |
9905 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
9906 * | titleTopMargin | Margin top for the text over the diagram | Integer | Required | Any Positive Value |
9907 *
9908 * **Notes:** Default value: 25
9909 */
9910 titleTopMargin: 25,
9911 /**
9912 * | Parameter | Description | Type | Required | Values |
9913 * | -------------- | ----------------------------------------------- | ------- | -------- | ------------------ |
9914 * | diagramPadding | Amount of padding around the diagram as a whole | Integer | Required | Any Positive Value |
9915 *
9916 * **Notes:**
9917 *
9918 * The amount of padding around the diagram as a whole so that embedded diagrams have margins,
9919 * expressed in pixels
9920 *
9921 * Default value: 20
9922 */
9923 diagramPadding: 20,
9924 /**
9925 * | Parameter | Description | Type | Required | Values |
9926 * | --------------- | ---------------------------------------- | ------ | -------- | ---------------------- |
9927 * | layoutDirection | Directional bias for layout of entities. | string | Required | "TB", "BT", "LR", "RL" |
9928 *
9929 * **Notes:**
9930 *
9931 * 'TB' for Top-Bottom, 'BT'for Bottom-Top, 'LR' for Left-Right, or 'RL' for Right to Left.
9932 *
9933 * T = top, B = bottom, L = left, and R = right.
9934 *
9935 * Default value: 'TB'
9936 */
9937 layoutDirection: "TB",
9938 /**
9939 * | Parameter | Description | Type | Required | Values |
9940 * | -------------- | ---------------------------------- | ------- | -------- | ------------------ |
9941 * | minEntityWidth | The minimum width of an entity box | Integer | Required | Any Positive Value |
9942 *
9943 * **Notes:** Expressed in pixels. Default value: 100
9944 */
9945 minEntityWidth: 100,
9946 /**
9947 * | Parameter | Description | Type | Required | Values |
9948 * | --------------- | ----------------------------------- | ------- | -------- | ------------------ |
9949 * | minEntityHeight | The minimum height of an entity box | Integer | 4 | Any Positive Value |
9950 *
9951 * **Notes:** Expressed in pixels Default value: 75
9952 */
9953 minEntityHeight: 75,
9954 /**
9955 * | Parameter | Description | Type | Required | Values |
9956 * | ------------- | ------------------------------------------------------------ | ------- | -------- | ------------------ |
9957 * | entityPadding | Minimum internal padding between text in box and box borders | Integer | 4 | Any Positive Value |
9958 *
9959 * **Notes:**
9960 *
9961 * The minimum internal padding between text in an entity box and the enclosing box borders,
9962 * expressed in pixels.
9963 *
9964 * Default value: 15
9965 */
9966 entityPadding: 15,
9967 /**
9968 * | Parameter | Description | Type | Required | Values |
9969 * | --------- | ----------------------------------- | ------ | -------- | -------------------- |
9970 * | stroke | Stroke color of box edges and lines | string | 4 | Any recognized color |
9971 *
9972 * **Notes:** Default value: 'gray'
9973 */
9974 stroke: "gray",
9975 /**
9976 * | Parameter | Description | Type | Required | Values |
9977 * | --------- | -------------------------- | ------ | -------- | -------------------- |
9978 * | fill | Fill color of entity boxes | string | 4 | Any recognized color |
9979 *
9980 * **Notes:** Default value: 'honeydew'
9981 */
9982 fill: "honeydew",
9983 /**
9984 * | Parameter | Description | Type | Required | Values |
9985 * | --------- | ------------------- | ------- | -------- | ------------------ |
9986 * | fontSize | Font Size in pixels | Integer | | Any Positive Value |
9987 *
9988 * **Notes:**
9989 *
9990 * Font size (expressed as an integer representing a number of pixels) Default value: 12
9991 */
9992 fontSize: 12,
9993 /**
9994 * | Parameter | Description | Type | Required | Values |
9995 * | ----------- | ----------- | ------- | -------- | ----------- |
9996 * | useMaxWidth | See Notes | boolean | Required | true, false |
9997 *
9998 * **Notes:**
9999 *
10000 * When this flag is set to true, the diagram width is locked to 100% and scaled based on
10001 * available space. If set to false, the diagram reserves its absolute width.
10002 *
10003 * Default value: true
10004 */
10005 useMaxWidth: true
10006 },
10007 /** The object containing configurations specific for pie diagrams */
10008 pie: {
10009 useWidth: void 0,
10010 /**
10011 * | Parameter | Description | Type | Required | Values |
10012 * | ----------- | ----------- | ------- | -------- | ----------- |
10013 * | useMaxWidth | See Notes | boolean | Required | true, false |
10014 *
10015 * **Notes:**
10016 *
10017 * When this flag is set to true, the diagram width is locked to 100% and scaled based on
10018 * available space. If set to false, the diagram reserves its absolute width.
10019 *
10020 * Default value: true
10021 */
10022 useMaxWidth: true,
10023 /**
10024 * | Parameter | Description | Type | Required | Values |
10025 * | ------------ | -------------------------------------------------------------------------------- | ------- | -------- | ------------------- |
10026 * | textPosition | Axial position of slice's label from zero at the center to 1 at the outside edge | Number | Optional | Decimal from 0 to 1 |
10027 *
10028 * **Notes:** Default value: 0.75
10029 */
10030 textPosition: 0.75
10031 },
10032 quadrantChart: {
10033 /**
10034 * | Parameter | Description | Type | Required | Values |
10035 * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |
10036 * | chartWidth | Width of the chart | number | Optional | Any positive number |
10037 *
10038 * **Notes:**
10039 * Default value: 500
10040 */
10041 chartWidth: 500,
10042 /**
10043 * | Parameter | Description | Type | Required | Values |
10044 * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |
10045 * | chartHeight | Height of the chart | number | Optional | Any positive number |
10046 *
10047 * **Notes:**
10048 * Default value: 500
10049 */
10050 chartHeight: 500,
10051 /**
10052 * | Parameter | Description | Type | Required | Values |
10053 * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |
10054 * | titlePadding | Chart title top and bottom padding | number | Optional | Any positive number |
10055 *
10056 * **Notes:**
10057 * Default value: 10
10058 */
10059 titlePadding: 10,
10060 /**
10061 * | Parameter | Description | Type | Required | Values |
10062 * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |
10063 * | titleFontSize | Chart title font size | number | Optional | Any positive number |
10064 *
10065 * **Notes:**
10066 * Default value: 20
10067 */
10068 titleFontSize: 20,
10069 /**
10070 * | Parameter | Description | Type | Required | Values |
10071 * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |
10072 * | quadrantPadding | Padding around the quadrant square | number | Optional | Any positive number |
10073 *
10074 * **Notes:**
10075 * Default value: 5
10076 */
10077 quadrantPadding: 5,
10078 /**
10079 * | Parameter | Description | Type | Required | Values |
10080 * | ---------------------- | -------------------------------------------------------------------------- | ------- | -------- | ------------------- |
10081 * | quadrantTextTopPadding | quadrant title padding from top if the quadrant is rendered on top | number | Optional | Any positive number |
10082 *
10083 * **Notes:**
10084 * Default value: 5
10085 */
10086 quadrantTextTopPadding: 5,
10087 /**
10088 * | Parameter | Description | Type | Required | Values |
10089 * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |
10090 * | quadrantLabelFontSize | quadrant title font size | number | Optional | Any positive number |
10091 *
10092 * **Notes:**
10093 * Default value: 16
10094 */
10095 quadrantLabelFontSize: 16,
10096 /**
10097 * | Parameter | Description | Type | Required | Values |
10098 * | --------------------------------- | ------------------------------------------------------------- | ------- | -------- | ------------------- |
10099 * | quadrantInternalBorderStrokeWidth | stroke width of edges of the box that are inside the quadrant | number | Optional | Any positive number |
10100 *
10101 * **Notes:**
10102 * Default value: 1
10103 */
10104 quadrantInternalBorderStrokeWidth: 1,
10105 /**
10106 * | Parameter | Description | Type | Required | Values |
10107 * | --------------------------------- | -------------------------------------------------------------- | ------- | -------- | ------------------- |
10108 * | quadrantExternalBorderStrokeWidth | stroke width of edges of the box that are outside the quadrant | number | Optional | Any positive number |
10109 *
10110 * **Notes:**
10111 * Default value: 2
10112 */
10113 quadrantExternalBorderStrokeWidth: 2,
10114 /**
10115 * | Parameter | Description | Type | Required | Values |
10116 * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |
10117 * | xAxisLabelPadding | Padding around x-axis labels | number | Optional | Any positive number |
10118 *
10119 * **Notes:**
10120 * Default value: 5
10121 */
10122 xAxisLabelPadding: 5,
10123 /**
10124 * | Parameter | Description | Type | Required | Values |
10125 * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |
10126 * | xAxisLabelFontSize | x-axis label font size | number | Optional | Any positive number |
10127 *
10128 * **Notes:**
10129 * Default value: 16
10130 */
10131 xAxisLabelFontSize: 16,
10132 /**
10133 * | Parameter | Description | Type | Required | Values |
10134 * | ------------- | ------------------------------- | ------- | -------- | ------------------- |
10135 * | xAxisPosition | position of x-axis labels | string | Optional | 'top' or 'bottom' |
10136 *
10137 * **Notes:**
10138 * Default value: top
10139 */
10140 xAxisPosition: "top",
10141 /**
10142 * | Parameter | Description | Type | Required | Values |
10143 * | --------------- | ---------------------------------- | ------- | -------- | ------------------- |
10144 * | yAxisLabelPadding | Padding around y-axis labels | number | Optional | Any positive number |
10145 *
10146 * **Notes:**
10147 * Default value: 5
10148 */
10149 yAxisLabelPadding: 5,
10150 /**
10151 * | Parameter | Description | Type | Required | Values |
10152 * | ------------------ | ---------------------------------- | ------- | -------- | ------------------- |
10153 * | yAxisLabelFontSize | y-axis label font size | number | Optional | Any positive number |
10154 *
10155 * **Notes:**
10156 * Default value: 16
10157 */
10158 yAxisLabelFontSize: 16,
10159 /**
10160 * | Parameter | Description | Type | Required | Values |
10161 * | ------------- | ------------------------------- | ------- | -------- | ------------------- |
10162 * | yAxisPosition | position of y-axis labels | string | Optional | 'left' or 'right' |
10163 *
10164 * **Notes:**
10165 * Default value: left
10166 */
10167 yAxisPosition: "left",
10168 /**
10169 * | Parameter | Description | Type | Required | Values |
10170 * | ---------------------- | -------------------------------------- | ------- | -------- | ------------------- |
10171 * | pointTextPadding | padding between point and point label | number | Optional | Any positive number |
10172 *
10173 * **Notes:**
10174 * Default value: 5
10175 */
10176 pointTextPadding: 5,
10177 /**
10178 * | Parameter | Description | Type | Required | Values |
10179 * | ---------------------- | ---------------------- | ------- | -------- | ------------------- |
10180 * | pointTextPadding | point title font size | number | Optional | Any positive number |
10181 *
10182 * **Notes:**
10183 * Default value: 12
10184 */
10185 pointLabelFontSize: 12,
10186 /**
10187 * | Parameter | Description | Type | Required | Values |
10188 * | ------------- | ------------------------------- | ------- | -------- | ------------------- |
10189 * | pointRadius | radius of the point to be drawn | number | Optional | Any positive number |
10190 *
10191 * **Notes:**
10192 * Default value: 5
10193 */
10194 pointRadius: 5,
10195 /**
10196 * | Parameter | Description | Type | Required | Values |
10197 * | ----------- | ----------- | ------- | -------- | ----------- |
10198 * | useMaxWidth | See Notes | boolean | Required | true, false |
10199 *
10200 * **Notes:**
10201 *
10202 * When this flag is set to true, the diagram width is locked to 100% and scaled based on
10203 * available space. If set to false, the diagram reserves its absolute width.
10204 *
10205 * Default value: true
10206 */
10207 useMaxWidth: true
10208 },
10209 /** The object containing configurations specific for req diagrams */
10210 requirement: {
10211 useWidth: void 0,
10212 /**
10213 * | Parameter | Description | Type | Required | Values |
10214 * | ----------- | ----------- | ------- | -------- | ----------- |
10215 * | useMaxWidth | See Notes | boolean | Required | true, false |
10216 *
10217 * **Notes:**
10218 *
10219 * When this flag is set to true, the diagram width is locked to 100% and scaled based on
10220 * available space. If set to false, the diagram reserves its absolute width.
10221 *
10222 * Default value: true
10223 */
10224 useMaxWidth: true,
10225 rect_fill: "#f9f9f9",
10226 text_color: "#333",
10227 rect_border_size: "0.5px",
10228 rect_border_color: "#bbb",
10229 rect_min_width: 200,
10230 rect_min_height: 200,
10231 fontSize: 14,
10232 rect_padding: 10,
10233 line_height: 20
10234 },
10235 gitGraph: {
10236 /**
10237 * ### titleTopMargin
10238 *
10239 * | Parameter | Description | Type | Required | Values |
10240 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
10241 * | titleTopMargin | Margin top for the text over the Git diagram | Integer | Required | Any Positive Value |
10242 *
10243 * **Notes:** Default value: 25
10244 */
10245 titleTopMargin: 25,
10246 diagramPadding: 8,
10247 nodeLabel: {
10248 width: 75,
10249 height: 100,
10250 x: -25,
10251 y: 0
10252 },
10253 mainBranchName: "main",
10254 mainBranchOrder: 0,
10255 showCommitLabel: true,
10256 showBranches: true,
10257 rotateCommitLabel: true
10258 },
10259 /** The object containing configurations specific for c4 diagrams */
10260 c4: {
10261 useWidth: void 0,
10262 /**
10263 * | Parameter | Description | Type | Required | Values |
10264 * | -------------- | ---------------------------------------------- | ------- | -------- | ------------------ |
10265 * | diagramMarginX | Margin to the right and left of the c4 diagram | Integer | Required | Any Positive Value |
10266 *
10267 * **Notes:** Default value: 50
10268 */
10269 diagramMarginX: 50,
10270 /**
10271 * | Parameter | Description | Type | Required | Values |
10272 * | -------------- | ------------------------------------------- | ------- | -------- | ------------------ |
10273 * | diagramMarginY | Margin to the over and under the c4 diagram | Integer | Required | Any Positive Value |
10274 *
10275 * **Notes:** Default value: 10
10276 */
10277 diagramMarginY: 10,
10278 /**
10279 * | Parameter | Description | Type | Required | Values |
10280 * | ------------- | --------------------- | ------- | -------- | ------------------ |
10281 * | c4ShapeMargin | Margin between shapes | Integer | Required | Any Positive Value |
10282 *
10283 * **Notes:** Default value: 50
10284 */
10285 c4ShapeMargin: 50,
10286 /**
10287 * | Parameter | Description | Type | Required | Values |
10288 * | -------------- | ---------------------- | ------- | -------- | ------------------ |
10289 * | c4ShapePadding | Padding between shapes | Integer | Required | Any Positive Value |
10290 *
10291 * **Notes:** Default value: 20
10292 */
10293 c4ShapePadding: 20,
10294 /**
10295 * | Parameter | Description | Type | Required | Values |
10296 * | --------- | --------------------- | ------- | -------- | ------------------ |
10297 * | width | Width of person boxes | Integer | Required | Any Positive Value |
10298 *
10299 * **Notes:** Default value: 216
10300 */
10301 width: 216,
10302 /**
10303 * | Parameter | Description | Type | Required | Values |
10304 * | --------- | ---------------------- | ------- | -------- | ------------------ |
10305 * | height | Height of person boxes | Integer | Required | Any Positive Value |
10306 *
10307 * **Notes:** Default value: 60
10308 */
10309 height: 60,
10310 /**
10311 * | Parameter | Description | Type | Required | Values |
10312 * | --------- | ------------------- | ------- | -------- | ------------------ |
10313 * | boxMargin | Margin around boxes | Integer | Required | Any Positive Value |
10314 *
10315 * **Notes:** Default value: 10
10316 */
10317 boxMargin: 10,
10318 /**
10319 * | Parameter | Description | Type | Required | Values |
10320 * | ----------- | ----------- | ------- | -------- | ----------- |
10321 * | useMaxWidth | See Notes | boolean | Required | true, false |
10322 *
10323 * **Notes:** When this flag is set to true, the height and width is set to 100% and is then
10324 * scaling with the available space. If set to false, the absolute space required is used.
10325 *
10326 * Default value: true
10327 */
10328 useMaxWidth: true,
10329 /**
10330 * | Parameter | Description | Type | Required | Values |
10331 * | ------------ | ----------- | ------- | -------- | ------------------ |
10332 * | c4ShapeInRow | See Notes | Integer | Required | Any Positive Value |
10333 *
10334 * **Notes:** How many shapes to place in each row.
10335 *
10336 * Default value: 4
10337 */
10338 c4ShapeInRow: 4,
10339 nextLinePaddingX: 0,
10340 /**
10341 * | Parameter | Description | Type | Required | Values |
10342 * | --------------- | ----------- | ------- | -------- | ------------------ |
10343 * | c4BoundaryInRow | See Notes | Integer | Required | Any Positive Value |
10344 *
10345 * **Notes:** How many boundaries to place in each row.
10346 *
10347 * Default value: 2
10348 */
10349 c4BoundaryInRow: 2,
10350 /**
10351 * This sets the font size of Person shape for the diagram
10352 *
10353 * **Notes:** Default value: 14.
10354 */
10355 personFontSize: 14,
10356 /**
10357 * This sets the font family of Person shape for the diagram
10358 *
10359 * **Notes:** Default value: "Open Sans", sans-serif.
10360 */
10361 personFontFamily: '"Open Sans", sans-serif',
10362 /**
10363 * This sets the font weight of Person shape for the diagram
10364 *
10365 * **Notes:** Default value: normal.
10366 */
10367 personFontWeight: "normal",
10368 /**
10369 * This sets the font size of External Person shape for the diagram
10370 *
10371 * **Notes:** Default value: 14.
10372 */
10373 external_personFontSize: 14,
10374 /**
10375 * This sets the font family of External Person shape for the diagram
10376 *
10377 * **Notes:** Default value: "Open Sans", sans-serif.
10378 */
10379 external_personFontFamily: '"Open Sans", sans-serif',
10380 /**
10381 * This sets the font weight of External Person shape for the diagram
10382 *
10383 * **Notes:** Default value: normal.
10384 */
10385 external_personFontWeight: "normal",
10386 /**
10387 * This sets the font size of System shape for the diagram
10388 *
10389 * **Notes:** Default value: 14.
10390 */
10391 systemFontSize: 14,
10392 /**
10393 * This sets the font family of System shape for the diagram
10394 *
10395 * **Notes:** Default value: "Open Sans", sans-serif.
10396 */
10397 systemFontFamily: '"Open Sans", sans-serif',
10398 /**
10399 * This sets the font weight of System shape for the diagram
10400 *
10401 * **Notes:** Default value: normal.
10402 */
10403 systemFontWeight: "normal",
10404 /**
10405 * This sets the font size of External System shape for the diagram
10406 *
10407 * **Notes:** Default value: 14.
10408 */
10409 external_systemFontSize: 14,
10410 /**
10411 * This sets the font family of External System shape for the diagram
10412 *
10413 * **Notes:** Default value: "Open Sans", sans-serif.
10414 */
10415 external_systemFontFamily: '"Open Sans", sans-serif',
10416 /**
10417 * This sets the font weight of External System shape for the diagram
10418 *
10419 * **Notes:** Default value: normal.
10420 */
10421 external_systemFontWeight: "normal",
10422 /**
10423 * This sets the font size of System DB shape for the diagram
10424 *
10425 * **Notes:** Default value: 14.
10426 */
10427 system_dbFontSize: 14,
10428 /**
10429 * This sets the font family of System DB shape for the diagram
10430 *
10431 * **Notes:** Default value: "Open Sans", sans-serif.
10432 */
10433 system_dbFontFamily: '"Open Sans", sans-serif',
10434 /**
10435 * This sets the font weight of System DB shape for the diagram
10436 *
10437 * **Notes:** Default value: normal.
10438 */
10439 system_dbFontWeight: "normal",
10440 /**
10441 * This sets the font size of External System DB shape for the diagram
10442 *
10443 * **Notes:** Default value: 14.
10444 */
10445 external_system_dbFontSize: 14,
10446 /**
10447 * This sets the font family of External System DB shape for the diagram
10448 *
10449 * **Notes:** Default value: "Open Sans", sans-serif.
10450 */
10451 external_system_dbFontFamily: '"Open Sans", sans-serif',
10452 /**
10453 * This sets the font weight of External System DB shape for the diagram
10454 *
10455 * **Notes:** Default value: normal.
10456 */
10457 external_system_dbFontWeight: "normal",
10458 /**
10459 * This sets the font size of System Queue shape for the diagram
10460 *
10461 * **Notes:** Default value: 14.
10462 */
10463 system_queueFontSize: 14,
10464 /**
10465 * This sets the font family of System Queue shape for the diagram
10466 *
10467 * **Notes:** Default value: "Open Sans", sans-serif.
10468 */
10469 system_queueFontFamily: '"Open Sans", sans-serif',
10470 /**
10471 * This sets the font weight of System Queue shape for the diagram
10472 *
10473 * **Notes:** Default value: normal.
10474 */
10475 system_queueFontWeight: "normal",
10476 /**
10477 * This sets the font size of External System Queue shape for the diagram
10478 *
10479 * **Notes:** Default value: 14.
10480 */
10481 external_system_queueFontSize: 14,
10482 /**
10483 * This sets the font family of External System Queue shape for the diagram
10484 *
10485 * **Notes:** Default value: "Open Sans", sans-serif.
10486 */
10487 external_system_queueFontFamily: '"Open Sans", sans-serif',
10488 /**
10489 * This sets the font weight of External System Queue shape for the diagram
10490 *
10491 * **Notes:** Default value: normal.
10492 */
10493 external_system_queueFontWeight: "normal",
10494 /**
10495 * This sets the font size of Boundary shape for the diagram
10496 *
10497 * **Notes:** Default value: 14.
10498 */
10499 boundaryFontSize: 14,
10500 /**
10501 * This sets the font family of Boundary shape for the diagram
10502 *
10503 * **Notes:** Default value: "Open Sans", sans-serif.
10504 */
10505 boundaryFontFamily: '"Open Sans", sans-serif',
10506 /**
10507 * This sets the font weight of Boundary shape for the diagram
10508 *
10509 * **Notes:** Default value: normal.
10510 */
10511 boundaryFontWeight: "normal",
10512 /**
10513 * This sets the font size of Message shape for the diagram
10514 *
10515 * **Notes:** Default value: 12.
10516 */
10517 messageFontSize: 12,
10518 /**
10519 * This sets the font family of Message shape for the diagram
10520 *
10521 * **Notes:** Default value: "Open Sans", sans-serif.
10522 */
10523 messageFontFamily: '"Open Sans", sans-serif',
10524 /**
10525 * This sets the font weight of Message shape for the diagram
10526 *
10527 * **Notes:** Default value: normal.
10528 */
10529 messageFontWeight: "normal",
10530 /**
10531 * This sets the font size of Container shape for the diagram
10532 *
10533 * **Notes:** Default value: 14.
10534 */
10535 containerFontSize: 14,
10536 /**
10537 * This sets the font family of Container shape for the diagram
10538 *
10539 * **Notes:** Default value: "Open Sans", sans-serif.
10540 */
10541 containerFontFamily: '"Open Sans", sans-serif',
10542 /**
10543 * This sets the font weight of Container shape for the diagram
10544 *
10545 * **Notes:** Default value: normal.
10546 */
10547 containerFontWeight: "normal",
10548 /**
10549 * This sets the font size of External Container shape for the diagram
10550 *
10551 * **Notes:** Default value: 14.
10552 */
10553 external_containerFontSize: 14,
10554 /**
10555 * This sets the font family of External Container shape for the diagram
10556 *
10557 * **Notes:** Default value: "Open Sans", sans-serif.
10558 */
10559 external_containerFontFamily: '"Open Sans", sans-serif',
10560 /**
10561 * This sets the font weight of External Container shape for the diagram
10562 *
10563 * **Notes:** Default value: normal.
10564 */
10565 external_containerFontWeight: "normal",
10566 /**
10567 * This sets the font size of Container DB shape for the diagram
10568 *
10569 * **Notes:** Default value: 14.
10570 */
10571 container_dbFontSize: 14,
10572 /**
10573 * This sets the font family of Container DB shape for the diagram
10574 *
10575 * **Notes:** Default value: "Open Sans", sans-serif.
10576 */
10577 container_dbFontFamily: '"Open Sans", sans-serif',
10578 /**
10579 * This sets the font weight of Container DB shape for the diagram
10580 *
10581 * **Notes:** Default value: normal.
10582 */
10583 container_dbFontWeight: "normal",
10584 /**
10585 * This sets the font size of External Container DB shape for the diagram
10586 *
10587 * **Notes:** Default value: 14.
10588 */
10589 external_container_dbFontSize: 14,
10590 /**
10591 * This sets the font family of External Container DB shape for the diagram
10592 *
10593 * **Notes:** Default value: "Open Sans", sans-serif.
10594 */
10595 external_container_dbFontFamily: '"Open Sans", sans-serif',
10596 /**
10597 * This sets the font weight of External Container DB shape for the diagram
10598 *
10599 * **Notes:** Default value: normal.
10600 */
10601 external_container_dbFontWeight: "normal",
10602 /**
10603 * This sets the font size of Container Queue shape for the diagram
10604 *
10605 * **Notes:** Default value: 14.
10606 */
10607 container_queueFontSize: 14,
10608 /**
10609 * This sets the font family of Container Queue shape for the diagram
10610 *
10611 * **Notes:** Default value: "Open Sans", sans-serif.
10612 */
10613 container_queueFontFamily: '"Open Sans", sans-serif',
10614 /**
10615 * This sets the font weight of Container Queue shape for the diagram
10616 *
10617 * **Notes:** Default value: normal.
10618 */
10619 container_queueFontWeight: "normal",
10620 /**
10621 * This sets the font size of External Container Queue shape for the diagram
10622 *
10623 * **Notes:** Default value: 14.
10624 */
10625 external_container_queueFontSize: 14,
10626 /**
10627 * This sets the font family of External Container Queue shape for the diagram
10628 *
10629 * **Notes:** Default value: "Open Sans", sans-serif.
10630 */
10631 external_container_queueFontFamily: '"Open Sans", sans-serif',
10632 /**
10633 * This sets the font weight of External Container Queue shape for the diagram
10634 *
10635 * **Notes:** Default value: normal.
10636 */
10637 external_container_queueFontWeight: "normal",
10638 /**
10639 * This sets the font size of Component shape for the diagram
10640 *
10641 * **Notes:** Default value: 14.
10642 */
10643 componentFontSize: 14,
10644 /**
10645 * This sets the font family of Component shape for the diagram
10646 *
10647 * **Notes:** Default value: "Open Sans", sans-serif.
10648 */
10649 componentFontFamily: '"Open Sans", sans-serif',
10650 /**
10651 * This sets the font weight of Component shape for the diagram
10652 *
10653 * **Notes:** Default value: normal.
10654 */
10655 componentFontWeight: "normal",
10656 /**
10657 * This sets the font size of External Component shape for the diagram
10658 *
10659 * **Notes:** Default value: 14.
10660 */
10661 external_componentFontSize: 14,
10662 /**
10663 * This sets the font family of External Component shape for the diagram
10664 *
10665 * **Notes:** Default value: "Open Sans", sans-serif.
10666 */
10667 external_componentFontFamily: '"Open Sans", sans-serif',
10668 /**
10669 * This sets the font weight of External Component shape for the diagram
10670 *
10671 * **Notes:** Default value: normal.
10672 */
10673 external_componentFontWeight: "normal",
10674 /**
10675 * This sets the font size of Component DB shape for the diagram
10676 *
10677 * **Notes:** Default value: 14.
10678 */
10679 component_dbFontSize: 14,
10680 /**
10681 * This sets the font family of Component DB shape for the diagram
10682 *
10683 * **Notes:** Default value: "Open Sans", sans-serif.
10684 */
10685 component_dbFontFamily: '"Open Sans", sans-serif',
10686 /**
10687 * This sets the font weight of Component DB shape for the diagram
10688 *
10689 * **Notes:** Default value: normal.
10690 */
10691 component_dbFontWeight: "normal",
10692 /**
10693 * This sets the font size of External Component DB shape for the diagram
10694 *
10695 * **Notes:** Default value: 14.
10696 */
10697 external_component_dbFontSize: 14,
10698 /**
10699 * This sets the font family of External Component DB shape for the diagram
10700 *
10701 * **Notes:** Default value: "Open Sans", sans-serif.
10702 */
10703 external_component_dbFontFamily: '"Open Sans", sans-serif',
10704 /**
10705 * This sets the font weight of External Component DB shape for the diagram
10706 *
10707 * **Notes:** Default value: normal.
10708 */
10709 external_component_dbFontWeight: "normal",
10710 /**
10711 * This sets the font size of Component Queue shape for the diagram
10712 *
10713 * **Notes:** Default value: 14.
10714 */
10715 component_queueFontSize: 14,
10716 /**
10717 * This sets the font family of Component Queue shape for the diagram
10718 *
10719 * **Notes:** Default value: "Open Sans", sans-serif.
10720 */
10721 component_queueFontFamily: '"Open Sans", sans-serif',
10722 /**
10723 * This sets the font weight of Component Queue shape for the diagram
10724 *
10725 * **Notes:** Default value: normal.
10726 */
10727 component_queueFontWeight: "normal",
10728 /**
10729 * This sets the font size of External Component Queue shape for the diagram
10730 *
10731 * **Notes:** Default value: 14.
10732 */
10733 external_component_queueFontSize: 14,
10734 /**
10735 * This sets the font family of External Component Queue shape for the diagram
10736 *
10737 * **Notes:** Default value: "Open Sans", sans-serif.
10738 */
10739 external_component_queueFontFamily: '"Open Sans", sans-serif',
10740 /**
10741 * This sets the font weight of External Component Queue shape for the diagram
10742 *
10743 * **Notes:** Default value: normal.
10744 */
10745 external_component_queueFontWeight: "normal",
10746 /**
10747 * This sets the auto-wrap state for the diagram
10748 *
10749 * **Notes:** Default value: true.
10750 */
10751 wrap: true,
10752 /**
10753 * This sets the auto-wrap padding for the diagram (sides only)
10754 *
10755 * **Notes:** Default value: 0.
10756 */
10757 wrapPadding: 10,
10758 personFont: function() {
10759 return {
10760 fontFamily: this.personFontFamily,
10761 fontSize: this.personFontSize,
10762 fontWeight: this.personFontWeight
10763 };
10764 },
10765 external_personFont: function() {
10766 return {
10767 fontFamily: this.external_personFontFamily,
10768 fontSize: this.external_personFontSize,
10769 fontWeight: this.external_personFontWeight
10770 };
10771 },
10772 systemFont: function() {
10773 return {
10774 fontFamily: this.systemFontFamily,
10775 fontSize: this.systemFontSize,
10776 fontWeight: this.systemFontWeight
10777 };
10778 },
10779 external_systemFont: function() {
10780 return {
10781 fontFamily: this.external_systemFontFamily,
10782 fontSize: this.external_systemFontSize,
10783 fontWeight: this.external_systemFontWeight
10784 };
10785 },
10786 system_dbFont: function() {
10787 return {
10788 fontFamily: this.system_dbFontFamily,
10789 fontSize: this.system_dbFontSize,
10790 fontWeight: this.system_dbFontWeight
10791 };
10792 },
10793 external_system_dbFont: function() {
10794 return {
10795 fontFamily: this.external_system_dbFontFamily,
10796 fontSize: this.external_system_dbFontSize,
10797 fontWeight: this.external_system_dbFontWeight
10798 };
10799 },
10800 system_queueFont: function() {
10801 return {
10802 fontFamily: this.system_queueFontFamily,
10803 fontSize: this.system_queueFontSize,
10804 fontWeight: this.system_queueFontWeight
10805 };
10806 },
10807 external_system_queueFont: function() {
10808 return {
10809 fontFamily: this.external_system_queueFontFamily,
10810 fontSize: this.external_system_queueFontSize,
10811 fontWeight: this.external_system_queueFontWeight
10812 };
10813 },
10814 containerFont: function() {
10815 return {
10816 fontFamily: this.containerFontFamily,
10817 fontSize: this.containerFontSize,
10818 fontWeight: this.containerFontWeight
10819 };
10820 },
10821 external_containerFont: function() {
10822 return {
10823 fontFamily: this.external_containerFontFamily,
10824 fontSize: this.external_containerFontSize,
10825 fontWeight: this.external_containerFontWeight
10826 };
10827 },
10828 container_dbFont: function() {
10829 return {
10830 fontFamily: this.container_dbFontFamily,
10831 fontSize: this.container_dbFontSize,
10832 fontWeight: this.container_dbFontWeight
10833 };
10834 },
10835 external_container_dbFont: function() {
10836 return {
10837 fontFamily: this.external_container_dbFontFamily,
10838 fontSize: this.external_container_dbFontSize,
10839 fontWeight: this.external_container_dbFontWeight
10840 };
10841 },
10842 container_queueFont: function() {
10843 return {
10844 fontFamily: this.container_queueFontFamily,
10845 fontSize: this.container_queueFontSize,
10846 fontWeight: this.container_queueFontWeight
10847 };
10848 },
10849 external_container_queueFont: function() {
10850 return {
10851 fontFamily: this.external_container_queueFontFamily,
10852 fontSize: this.external_container_queueFontSize,
10853 fontWeight: this.external_container_queueFontWeight
10854 };
10855 },
10856 componentFont: function() {
10857 return {
10858 fontFamily: this.componentFontFamily,
10859 fontSize: this.componentFontSize,
10860 fontWeight: this.componentFontWeight
10861 };
10862 },
10863 external_componentFont: function() {
10864 return {
10865 fontFamily: this.external_componentFontFamily,
10866 fontSize: this.external_componentFontSize,
10867 fontWeight: this.external_componentFontWeight
10868 };
10869 },
10870 component_dbFont: function() {
10871 return {
10872 fontFamily: this.component_dbFontFamily,
10873 fontSize: this.component_dbFontSize,
10874 fontWeight: this.component_dbFontWeight
10875 };
10876 },
10877 external_component_dbFont: function() {
10878 return {
10879 fontFamily: this.external_component_dbFontFamily,
10880 fontSize: this.external_component_dbFontSize,
10881 fontWeight: this.external_component_dbFontWeight
10882 };
10883 },
10884 component_queueFont: function() {
10885 return {
10886 fontFamily: this.component_queueFontFamily,
10887 fontSize: this.component_queueFontSize,
10888 fontWeight: this.component_queueFontWeight
10889 };
10890 },
10891 external_component_queueFont: function() {
10892 return {
10893 fontFamily: this.external_component_queueFontFamily,
10894 fontSize: this.external_component_queueFontSize,
10895 fontWeight: this.external_component_queueFontWeight
10896 };
10897 },
10898 boundaryFont: function() {
10899 return {
10900 fontFamily: this.boundaryFontFamily,
10901 fontSize: this.boundaryFontSize,
10902 fontWeight: this.boundaryFontWeight
10903 };
10904 },
10905 messageFont: function() {
10906 return {
10907 fontFamily: this.messageFontFamily,
10908 fontSize: this.messageFontSize,
10909 fontWeight: this.messageFontWeight
10910 };
10911 },
10912 // ' Colors
10913 // ' ##################################
10914 person_bg_color: "#08427B",
10915 person_border_color: "#073B6F",
10916 external_person_bg_color: "#686868",
10917 external_person_border_color: "#8A8A8A",
10918 system_bg_color: "#1168BD",
10919 system_border_color: "#3C7FC0",
10920 system_db_bg_color: "#1168BD",
10921 system_db_border_color: "#3C7FC0",
10922 system_queue_bg_color: "#1168BD",
10923 system_queue_border_color: "#3C7FC0",
10924 external_system_bg_color: "#999999",
10925 external_system_border_color: "#8A8A8A",
10926 external_system_db_bg_color: "#999999",
10927 external_system_db_border_color: "#8A8A8A",
10928 external_system_queue_bg_color: "#999999",
10929 external_system_queue_border_color: "#8A8A8A",
10930 container_bg_color: "#438DD5",
10931 container_border_color: "#3C7FC0",
10932 container_db_bg_color: "#438DD5",
10933 container_db_border_color: "#3C7FC0",
10934 container_queue_bg_color: "#438DD5",
10935 container_queue_border_color: "#3C7FC0",
10936 external_container_bg_color: "#B3B3B3",
10937 external_container_border_color: "#A6A6A6",
10938 external_container_db_bg_color: "#B3B3B3",
10939 external_container_db_border_color: "#A6A6A6",
10940 external_container_queue_bg_color: "#B3B3B3",
10941 external_container_queue_border_color: "#A6A6A6",
10942 component_bg_color: "#85BBF0",
10943 component_border_color: "#78A8D8",
10944 component_db_bg_color: "#85BBF0",
10945 component_db_border_color: "#78A8D8",
10946 component_queue_bg_color: "#85BBF0",
10947 component_queue_border_color: "#78A8D8",
10948 external_component_bg_color: "#CCCCCC",
10949 external_component_border_color: "#BFBFBF",
10950 external_component_db_bg_color: "#CCCCCC",
10951 external_component_db_border_color: "#BFBFBF",
10952 external_component_queue_bg_color: "#CCCCCC",
10953 external_component_queue_border_color: "#BFBFBF"
10954 },
10955 mindmap: {
10956 useMaxWidth: true,
10957 padding: 10,
10958 maxNodeWidth: 200
10959 },
10960 fontSize: 16
10961 };
10962 if (config$2.class) {
10963 config$2.class.arrowMarkerAbsolute = config$2.arrowMarkerAbsolute;
10964 }
10965 if (config$2.gitGraph) {
10966 config$2.gitGraph.arrowMarkerAbsolute = config$2.arrowMarkerAbsolute;
10967 }
10968 const keyify = (obj, prefix = "") => Object.keys(obj).reduce((res, el) => {
10969 if (Array.isArray(obj[el])) {
10970 return res;
10971 } else if (typeof obj[el] === "object" && obj[el] !== null) {
10972 return [...res, prefix + el, ...keyify(obj[el], "")];
10973 }
10974 return [...res, prefix + el];
10975 }, []);
10976 const configKeys = keyify(config$2, "");
10977 const defaultConfig$1 = config$2;
10978 /*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */
10979 function isNothing(subject) {
10980 return typeof subject === "undefined" || subject === null;
10981 }
10982 function isObject$1(subject) {
10983 return typeof subject === "object" && subject !== null;
10984 }
10985 function toArray(sequence2) {
10986 if (Array.isArray(sequence2))
10987 return sequence2;
10988 else if (isNothing(sequence2))
10989 return [];
10990 return [sequence2];
10991 }
10992 function extend(target, source) {
10993 var index2, length2, key, sourceKeys;
10994 if (source) {
10995 sourceKeys = Object.keys(source);
10996 for (index2 = 0, length2 = sourceKeys.length; index2 < length2; index2 += 1) {
10997 key = sourceKeys[index2];
10998 target[key] = source[key];
10999 }
11000 }
11001 return target;
11002 }
11003 function repeat(string2, count) {
11004 var result = "", cycle;
11005 for (cycle = 0; cycle < count; cycle += 1) {
11006 result += string2;
11007 }
11008 return result;
11009 }
11010 function isNegativeZero(number2) {
11011 return number2 === 0 && Number.NEGATIVE_INFINITY === 1 / number2;
11012 }
11013 var isNothing_1 = isNothing;
11014 var isObject_1 = isObject$1;
11015 var toArray_1 = toArray;
11016 var repeat_1 = repeat;
11017 var isNegativeZero_1 = isNegativeZero;
11018 var extend_1 = extend;
11019 var common = {
11020 isNothing: isNothing_1,
11021 isObject: isObject_1,
11022 toArray: toArray_1,
11023 repeat: repeat_1,
11024 isNegativeZero: isNegativeZero_1,
11025 extend: extend_1
11026 };
11027 function formatError(exception2, compact) {
11028 var where = "", message2 = exception2.reason || "(unknown reason)";
11029 if (!exception2.mark)
11030 return message2;
11031 if (exception2.mark.name) {
11032 where += 'in "' + exception2.mark.name + '" ';
11033 }
11034 where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")";
11035 if (!compact && exception2.mark.snippet) {
11036 where += "\n\n" + exception2.mark.snippet;
11037 }
11038 return message2 + " " + where;
11039 }
11040 function YAMLException$1(reason, mark) {
11041 Error.call(this);
11042 this.name = "YAMLException";
11043 this.reason = reason;
11044 this.mark = mark;
11045 this.message = formatError(this, false);
11046 if (Error.captureStackTrace) {
11047 Error.captureStackTrace(this, this.constructor);
11048 } else {
11049 this.stack = new Error().stack || "";
11050 }
11051 }
11052 YAMLException$1.prototype = Object.create(Error.prototype);
11053 YAMLException$1.prototype.constructor = YAMLException$1;
11054 YAMLException$1.prototype.toString = function toString2(compact) {
11055 return this.name + ": " + formatError(this, compact);
11056 };
11057 var exception = YAMLException$1;
11058 function getLine(buffer, lineStart, lineEnd, position2, maxLineLength) {
11059 var head2 = "";
11060 var tail = "";
11061 var maxHalfLength = Math.floor(maxLineLength / 2) - 1;
11062 if (position2 - lineStart > maxHalfLength) {
11063 head2 = " ... ";
11064 lineStart = position2 - maxHalfLength + head2.length;
11065 }
11066 if (lineEnd - position2 > maxHalfLength) {
11067 tail = " ...";
11068 lineEnd = position2 + maxHalfLength - tail.length;
11069 }
11070 return {
11071 str: head2 + buffer.slice(lineStart, lineEnd).replace(/\t/g, "→") + tail,
11072 pos: position2 - lineStart + head2.length
11073 // relative position
11074 };
11075 }
11076 function padStart(string2, max2) {
11077 return common.repeat(" ", max2 - string2.length) + string2;
11078 }
11079 function makeSnippet(mark, options2) {
11080 options2 = Object.create(options2 || null);
11081 if (!mark.buffer)
11082 return null;
11083 if (!options2.maxLength)
11084 options2.maxLength = 79;
11085 if (typeof options2.indent !== "number")
11086 options2.indent = 1;
11087 if (typeof options2.linesBefore !== "number")
11088 options2.linesBefore = 3;
11089 if (typeof options2.linesAfter !== "number")
11090 options2.linesAfter = 2;
11091 var re2 = /\r?\n|\r|\0/g;
11092 var lineStarts = [0];
11093 var lineEnds = [];
11094 var match;
11095 var foundLineNo = -1;
11096 while (match = re2.exec(mark.buffer)) {
11097 lineEnds.push(match.index);
11098 lineStarts.push(match.index + match[0].length);
11099 if (mark.position <= match.index && foundLineNo < 0) {
11100 foundLineNo = lineStarts.length - 2;
11101 }
11102 }
11103 if (foundLineNo < 0)
11104 foundLineNo = lineStarts.length - 1;
11105 var result = "", i2, line2;
11106 var lineNoLength = Math.min(mark.line + options2.linesAfter, lineEnds.length).toString().length;
11107 var maxLineLength = options2.maxLength - (options2.indent + lineNoLength + 3);
11108 for (i2 = 1; i2 <= options2.linesBefore; i2++) {
11109 if (foundLineNo - i2 < 0)
11110 break;
11111 line2 = getLine(
11112 mark.buffer,
11113 lineStarts[foundLineNo - i2],
11114 lineEnds[foundLineNo - i2],
11115 mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i2]),
11116 maxLineLength
11117 );
11118 result = common.repeat(" ", options2.indent) + padStart((mark.line - i2 + 1).toString(), lineNoLength) + " | " + line2.str + "\n" + result;
11119 }
11120 line2 = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength);
11121 result += common.repeat(" ", options2.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line2.str + "\n";
11122 result += common.repeat("-", options2.indent + lineNoLength + 3 + line2.pos) + "^\n";
11123 for (i2 = 1; i2 <= options2.linesAfter; i2++) {
11124 if (foundLineNo + i2 >= lineEnds.length)
11125 break;
11126 line2 = getLine(
11127 mark.buffer,
11128 lineStarts[foundLineNo + i2],
11129 lineEnds[foundLineNo + i2],
11130 mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i2]),
11131 maxLineLength
11132 );
11133 result += common.repeat(" ", options2.indent) + padStart((mark.line + i2 + 1).toString(), lineNoLength) + " | " + line2.str + "\n";
11134 }
11135 return result.replace(/\n$/, "");
11136 }
11137 var snippet = makeSnippet;
11138 var TYPE_CONSTRUCTOR_OPTIONS = [
11139 "kind",
11140 "multi",
11141 "resolve",
11142 "construct",
11143 "instanceOf",
11144 "predicate",
11145 "represent",
11146 "representName",
11147 "defaultStyle",
11148 "styleAliases"
11149 ];
11150 var YAML_NODE_KINDS = [
11151 "scalar",
11152 "sequence",
11153 "mapping"
11154 ];
11155 function compileStyleAliases(map2) {
11156 var result = {};
11157 if (map2 !== null) {
11158 Object.keys(map2).forEach(function(style) {
11159 map2[style].forEach(function(alias) {
11160 result[String(alias)] = style;
11161 });
11162 });
11163 }
11164 return result;
11165 }
11166 function Type$1(tag, options2) {
11167 options2 = options2 || {};
11168 Object.keys(options2).forEach(function(name2) {
11169 if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name2) === -1) {
11170 throw new exception('Unknown option "' + name2 + '" is met in definition of "' + tag + '" YAML type.');
11171 }
11172 });
11173 this.options = options2;
11174 this.tag = tag;
11175 this.kind = options2["kind"] || null;
11176 this.resolve = options2["resolve"] || function() {
11177 return true;
11178 };
11179 this.construct = options2["construct"] || function(data) {
11180 return data;
11181 };
11182 this.instanceOf = options2["instanceOf"] || null;
11183 this.predicate = options2["predicate"] || null;
11184 this.represent = options2["represent"] || null;
11185 this.representName = options2["representName"] || null;
11186 this.defaultStyle = options2["defaultStyle"] || null;
11187 this.multi = options2["multi"] || false;
11188 this.styleAliases = compileStyleAliases(options2["styleAliases"] || null);
11189 if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {
11190 throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.');
11191 }
11192 }
11193 var type = Type$1;
11194 function compileList(schema2, name2) {
11195 var result = [];
11196 schema2[name2].forEach(function(currentType) {
11197 var newIndex = result.length;
11198 result.forEach(function(previousType, previousIndex) {
11199 if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) {
11200 newIndex = previousIndex;
11201 }
11202 });
11203 result[newIndex] = currentType;
11204 });
11205 return result;
11206 }
11207 function compileMap() {
11208 var result = {
11209 scalar: {},
11210 sequence: {},
11211 mapping: {},
11212 fallback: {},
11213 multi: {
11214 scalar: [],
11215 sequence: [],
11216 mapping: [],
11217 fallback: []
11218 }
11219 }, index2, length2;
11220 function collectType(type2) {
11221 if (type2.multi) {
11222 result.multi[type2.kind].push(type2);
11223 result.multi["fallback"].push(type2);
11224 } else {
11225 result[type2.kind][type2.tag] = result["fallback"][type2.tag] = type2;
11226 }
11227 }
11228 for (index2 = 0, length2 = arguments.length; index2 < length2; index2 += 1) {
11229 arguments[index2].forEach(collectType);
11230 }
11231 return result;
11232 }
11233 function Schema$1(definition2) {
11234 return this.extend(definition2);
11235 }
11236 Schema$1.prototype.extend = function extend2(definition2) {
11237 var implicit2 = [];
11238 var explicit = [];
11239 if (definition2 instanceof type) {
11240 explicit.push(definition2);
11241 } else if (Array.isArray(definition2)) {
11242 explicit = explicit.concat(definition2);
11243 } else if (definition2 && (Array.isArray(definition2.implicit) || Array.isArray(definition2.explicit))) {
11244 if (definition2.implicit)
11245 implicit2 = implicit2.concat(definition2.implicit);
11246 if (definition2.explicit)
11247 explicit = explicit.concat(definition2.explicit);
11248 } else {
11249 throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })");
11250 }
11251 implicit2.forEach(function(type$1) {
11252 if (!(type$1 instanceof type)) {
11253 throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.");
11254 }
11255 if (type$1.loadKind && type$1.loadKind !== "scalar") {
11256 throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.");
11257 }
11258 if (type$1.multi) {
11259 throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.");
11260 }
11261 });
11262 explicit.forEach(function(type$1) {
11263 if (!(type$1 instanceof type)) {
11264 throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object.");
11265 }
11266 });
11267 var result = Object.create(Schema$1.prototype);
11268 result.implicit = (this.implicit || []).concat(implicit2);
11269 result.explicit = (this.explicit || []).concat(explicit);
11270 result.compiledImplicit = compileList(result, "implicit");
11271 result.compiledExplicit = compileList(result, "explicit");
11272 result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit);
11273 return result;
11274 };
11275 var schema = Schema$1;
11276 var str = new type("tag:yaml.org,2002:str", {
11277 kind: "scalar",
11278 construct: function(data) {
11279 return data !== null ? data : "";
11280 }
11281 });
11282 var seq$1 = new type("tag:yaml.org,2002:seq", {
11283 kind: "sequence",
11284 construct: function(data) {
11285 return data !== null ? data : [];
11286 }
11287 });
11288 var map$1 = new type("tag:yaml.org,2002:map", {
11289 kind: "mapping",
11290 construct: function(data) {
11291 return data !== null ? data : {};
11292 }
11293 });
11294 var failsafe = new schema({
11295 explicit: [
11296 str,
11297 seq$1,
11298 map$1
11299 ]
11300 });
11301 function resolveYamlNull(data) {
11302 if (data === null)
11303 return true;
11304 var max2 = data.length;
11305 return max2 === 1 && data === "~" || max2 === 4 && (data === "null" || data === "Null" || data === "NULL");
11306 }
11307 function constructYamlNull() {
11308 return null;
11309 }
11310 function isNull(object2) {
11311 return object2 === null;
11312 }
11313 var _null = new type("tag:yaml.org,2002:null", {
11314 kind: "scalar",
11315 resolve: resolveYamlNull,
11316 construct: constructYamlNull,
11317 predicate: isNull,
11318 represent: {
11319 canonical: function() {
11320 return "~";
11321 },
11322 lowercase: function() {
11323 return "null";
11324 },
11325 uppercase: function() {
11326 return "NULL";
11327 },
11328 camelcase: function() {
11329 return "Null";
11330 },
11331 empty: function() {
11332 return "";
11333 }
11334 },
11335 defaultStyle: "lowercase"
11336 });
11337 function resolveYamlBoolean(data) {
11338 if (data === null)
11339 return false;
11340 var max2 = data.length;
11341 return max2 === 4 && (data === "true" || data === "True" || data === "TRUE") || max2 === 5 && (data === "false" || data === "False" || data === "FALSE");
11342 }
11343 function constructYamlBoolean(data) {
11344 return data === "true" || data === "True" || data === "TRUE";
11345 }
11346 function isBoolean(object2) {
11347 return Object.prototype.toString.call(object2) === "[object Boolean]";
11348 }
11349 var bool = new type("tag:yaml.org,2002:bool", {
11350 kind: "scalar",
11351 resolve: resolveYamlBoolean,
11352 construct: constructYamlBoolean,
11353 predicate: isBoolean,
11354 represent: {
11355 lowercase: function(object2) {
11356 return object2 ? "true" : "false";
11357 },
11358 uppercase: function(object2) {
11359 return object2 ? "TRUE" : "FALSE";
11360 },
11361 camelcase: function(object2) {
11362 return object2 ? "True" : "False";
11363 }
11364 },
11365 defaultStyle: "lowercase"
11366 });
11367 function isHexCode(c2) {
11368 return 48 <= c2 && c2 <= 57 || 65 <= c2 && c2 <= 70 || 97 <= c2 && c2 <= 102;
11369 }
11370 function isOctCode(c2) {
11371 return 48 <= c2 && c2 <= 55;
11372 }
11373 function isDecCode(c2) {
11374 return 48 <= c2 && c2 <= 57;
11375 }
11376 function resolveYamlInteger(data) {
11377 if (data === null)
11378 return false;
11379 var max2 = data.length, index2 = 0, hasDigits = false, ch;
11380 if (!max2)
11381 return false;
11382 ch = data[index2];
11383 if (ch === "-" || ch === "+") {
11384 ch = data[++index2];
11385 }
11386 if (ch === "0") {
11387 if (index2 + 1 === max2)
11388 return true;
11389 ch = data[++index2];
11390 if (ch === "b") {
11391 index2++;
11392 for (; index2 < max2; index2++) {
11393 ch = data[index2];
11394 if (ch === "_")
11395 continue;
11396 if (ch !== "0" && ch !== "1")
11397 return false;
11398 hasDigits = true;
11399 }
11400 return hasDigits && ch !== "_";
11401 }
11402 if (ch === "x") {
11403 index2++;
11404 for (; index2 < max2; index2++) {
11405 ch = data[index2];
11406 if (ch === "_")
11407 continue;
11408 if (!isHexCode(data.charCodeAt(index2)))
11409 return false;
11410 hasDigits = true;
11411 }
11412 return hasDigits && ch !== "_";
11413 }
11414 if (ch === "o") {
11415 index2++;
11416 for (; index2 < max2; index2++) {
11417 ch = data[index2];
11418 if (ch === "_")
11419 continue;
11420 if (!isOctCode(data.charCodeAt(index2)))
11421 return false;
11422 hasDigits = true;
11423 }
11424 return hasDigits && ch !== "_";
11425 }
11426 }
11427 if (ch === "_")
11428 return false;
11429 for (; index2 < max2; index2++) {
11430 ch = data[index2];
11431 if (ch === "_")
11432 continue;
11433 if (!isDecCode(data.charCodeAt(index2))) {
11434 return false;
11435 }
11436 hasDigits = true;
11437 }
11438 if (!hasDigits || ch === "_")
11439 return false;
11440 return true;
11441 }
11442 function constructYamlInteger(data) {
11443 var value = data, sign2 = 1, ch;
11444 if (value.indexOf("_") !== -1) {
11445 value = value.replace(/_/g, "");
11446 }
11447 ch = value[0];
11448 if (ch === "-" || ch === "+") {
11449 if (ch === "-")
11450 sign2 = -1;
11451 value = value.slice(1);
11452 ch = value[0];
11453 }
11454 if (value === "0")
11455 return 0;
11456 if (ch === "0") {
11457 if (value[1] === "b")
11458 return sign2 * parseInt(value.slice(2), 2);
11459 if (value[1] === "x")
11460 return sign2 * parseInt(value.slice(2), 16);
11461 if (value[1] === "o")
11462 return sign2 * parseInt(value.slice(2), 8);
11463 }
11464 return sign2 * parseInt(value, 10);
11465 }
11466 function isInteger(object2) {
11467 return Object.prototype.toString.call(object2) === "[object Number]" && (object2 % 1 === 0 && !common.isNegativeZero(object2));
11468 }
11469 var int = new type("tag:yaml.org,2002:int", {
11470 kind: "scalar",
11471 resolve: resolveYamlInteger,
11472 construct: constructYamlInteger,
11473 predicate: isInteger,
11474 represent: {
11475 binary: function(obj) {
11476 return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1);
11477 },
11478 octal: function(obj) {
11479 return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1);
11480 },
11481 decimal: function(obj) {
11482 return obj.toString(10);
11483 },
11484 /* eslint-disable max-len */
11485 hexadecimal: function(obj) {
11486 return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1);
11487 }
11488 },
11489 defaultStyle: "decimal",
11490 styleAliases: {
11491 binary: [2, "bin"],
11492 octal: [8, "oct"],
11493 decimal: [10, "dec"],
11494 hexadecimal: [16, "hex"]
11495 }
11496 });
11497 var YAML_FLOAT_PATTERN = new RegExp(
11498 // 2.5e4, 2.5 and integers
11499 "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$"
11500 );
11501 function resolveYamlFloat(data) {
11502 if (data === null)
11503 return false;
11504 if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_`
11505 // Probably should update regexp & check speed
11506 data[data.length - 1] === "_") {
11507 return false;
11508 }
11509 return true;
11510 }
11511 function constructYamlFloat(data) {
11512 var value, sign2;
11513 value = data.replace(/_/g, "").toLowerCase();
11514 sign2 = value[0] === "-" ? -1 : 1;
11515 if ("+-".indexOf(value[0]) >= 0) {
11516 value = value.slice(1);
11517 }
11518 if (value === ".inf") {
11519 return sign2 === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;
11520 } else if (value === ".nan") {
11521 return NaN;
11522 }
11523 return sign2 * parseFloat(value, 10);
11524 }
11525 var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;
11526 function representYamlFloat(object2, style) {
11527 var res;
11528 if (isNaN(object2)) {
11529 switch (style) {
11530 case "lowercase":
11531 return ".nan";
11532 case "uppercase":
11533 return ".NAN";
11534 case "camelcase":
11535 return ".NaN";
11536 }
11537 } else if (Number.POSITIVE_INFINITY === object2) {
11538 switch (style) {
11539 case "lowercase":
11540 return ".inf";
11541 case "uppercase":
11542 return ".INF";
11543 case "camelcase":
11544 return ".Inf";
11545 }
11546 } else if (Number.NEGATIVE_INFINITY === object2) {
11547 switch (style) {
11548 case "lowercase":
11549 return "-.inf";
11550 case "uppercase":
11551 return "-.INF";
11552 case "camelcase":
11553 return "-.Inf";
11554 }
11555 } else if (common.isNegativeZero(object2)) {
11556 return "-0.0";
11557 }
11558 res = object2.toString(10);
11559 return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res;
11560 }
11561 function isFloat(object2) {
11562 return Object.prototype.toString.call(object2) === "[object Number]" && (object2 % 1 !== 0 || common.isNegativeZero(object2));
11563 }
11564 var float = new type("tag:yaml.org,2002:float", {
11565 kind: "scalar",
11566 resolve: resolveYamlFloat,
11567 construct: constructYamlFloat,
11568 predicate: isFloat,
11569 represent: representYamlFloat,
11570 defaultStyle: "lowercase"
11571 });
11572 var json = failsafe.extend({
11573 implicit: [
11574 _null,
11575 bool,
11576 int,
11577 float
11578 ]
11579 });
11580 var core = json;
11581 var YAML_DATE_REGEXP = new RegExp(
11582 "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"
11583 );
11584 var YAML_TIMESTAMP_REGEXP = new RegExp(
11585 "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$"
11586 );
11587 function resolveYamlTimestamp(data) {
11588 if (data === null)
11589 return false;
11590 if (YAML_DATE_REGEXP.exec(data) !== null)
11591 return true;
11592 if (YAML_TIMESTAMP_REGEXP.exec(data) !== null)
11593 return true;
11594 return false;
11595 }
11596 function constructYamlTimestamp(data) {
11597 var match, year2, month2, day2, hour2, minute2, second2, fraction = 0, delta = null, tz_hour, tz_minute, date2;
11598 match = YAML_DATE_REGEXP.exec(data);
11599 if (match === null)
11600 match = YAML_TIMESTAMP_REGEXP.exec(data);
11601 if (match === null)
11602 throw new Error("Date resolve error");
11603 year2 = +match[1];
11604 month2 = +match[2] - 1;
11605 day2 = +match[3];
11606 if (!match[4]) {
11607 return new Date(Date.UTC(year2, month2, day2));
11608 }
11609 hour2 = +match[4];
11610 minute2 = +match[5];
11611 second2 = +match[6];
11612 if (match[7]) {
11613 fraction = match[7].slice(0, 3);
11614 while (fraction.length < 3) {
11615 fraction += "0";
11616 }
11617 fraction = +fraction;
11618 }
11619 if (match[9]) {
11620 tz_hour = +match[10];
11621 tz_minute = +(match[11] || 0);
11622 delta = (tz_hour * 60 + tz_minute) * 6e4;
11623 if (match[9] === "-")
11624 delta = -delta;
11625 }
11626 date2 = new Date(Date.UTC(year2, month2, day2, hour2, minute2, second2, fraction));
11627 if (delta)
11628 date2.setTime(date2.getTime() - delta);
11629 return date2;
11630 }
11631 function representYamlTimestamp(object2) {
11632 return object2.toISOString();
11633 }
11634 var timestamp = new type("tag:yaml.org,2002:timestamp", {
11635 kind: "scalar",
11636 resolve: resolveYamlTimestamp,
11637 construct: constructYamlTimestamp,
11638 instanceOf: Date,
11639 represent: representYamlTimestamp
11640 });
11641 function resolveYamlMerge(data) {
11642 return data === "<<" || data === null;
11643 }
11644 var merge$3 = new type("tag:yaml.org,2002:merge", {
11645 kind: "scalar",
11646 resolve: resolveYamlMerge
11647 });
11648 var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";
11649 function resolveYamlBinary(data) {
11650 if (data === null)
11651 return false;
11652 var code, idx, bitlen = 0, max2 = data.length, map2 = BASE64_MAP;
11653 for (idx = 0; idx < max2; idx++) {
11654 code = map2.indexOf(data.charAt(idx));
11655 if (code > 64)
11656 continue;
11657 if (code < 0)
11658 return false;
11659 bitlen += 6;
11660 }
11661 return bitlen % 8 === 0;
11662 }
11663 function constructYamlBinary(data) {
11664 var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max2 = input.length, map2 = BASE64_MAP, bits = 0, result = [];
11665 for (idx = 0; idx < max2; idx++) {
11666 if (idx % 4 === 0 && idx) {
11667 result.push(bits >> 16 & 255);
11668 result.push(bits >> 8 & 255);
11669 result.push(bits & 255);
11670 }
11671 bits = bits << 6 | map2.indexOf(input.charAt(idx));
11672 }
11673 tailbits = max2 % 4 * 6;
11674 if (tailbits === 0) {
11675 result.push(bits >> 16 & 255);
11676 result.push(bits >> 8 & 255);
11677 result.push(bits & 255);
11678 } else if (tailbits === 18) {
11679 result.push(bits >> 10 & 255);
11680 result.push(bits >> 2 & 255);
11681 } else if (tailbits === 12) {
11682 result.push(bits >> 4 & 255);
11683 }
11684 return new Uint8Array(result);
11685 }
11686 function representYamlBinary(object2) {
11687 var result = "", bits = 0, idx, tail, max2 = object2.length, map2 = BASE64_MAP;
11688 for (idx = 0; idx < max2; idx++) {
11689 if (idx % 3 === 0 && idx) {
11690 result += map2[bits >> 18 & 63];
11691 result += map2[bits >> 12 & 63];
11692 result += map2[bits >> 6 & 63];
11693 result += map2[bits & 63];
11694 }
11695 bits = (bits << 8) + object2[idx];
11696 }
11697 tail = max2 % 3;
11698 if (tail === 0) {
11699 result += map2[bits >> 18 & 63];
11700 result += map2[bits >> 12 & 63];
11701 result += map2[bits >> 6 & 63];
11702 result += map2[bits & 63];
11703 } else if (tail === 2) {
11704 result += map2[bits >> 10 & 63];
11705 result += map2[bits >> 4 & 63];
11706 result += map2[bits << 2 & 63];
11707 result += map2[64];
11708 } else if (tail === 1) {
11709 result += map2[bits >> 2 & 63];
11710 result += map2[bits << 4 & 63];
11711 result += map2[64];
11712 result += map2[64];
11713 }
11714 return result;
11715 }
11716 function isBinary(obj) {
11717 return Object.prototype.toString.call(obj) === "[object Uint8Array]";
11718 }
11719 var binary = new type("tag:yaml.org,2002:binary", {
11720 kind: "scalar",
11721 resolve: resolveYamlBinary,
11722 construct: constructYamlBinary,
11723 predicate: isBinary,
11724 represent: representYamlBinary
11725 });
11726 var _hasOwnProperty$3 = Object.prototype.hasOwnProperty;
11727 var _toString$2 = Object.prototype.toString;
11728 function resolveYamlOmap(data) {
11729 if (data === null)
11730 return true;
11731 var objectKeys = [], index2, length2, pair, pairKey, pairHasKey, object2 = data;
11732 for (index2 = 0, length2 = object2.length; index2 < length2; index2 += 1) {
11733 pair = object2[index2];
11734 pairHasKey = false;
11735 if (_toString$2.call(pair) !== "[object Object]")
11736 return false;
11737 for (pairKey in pair) {
11738 if (_hasOwnProperty$3.call(pair, pairKey)) {
11739 if (!pairHasKey)
11740 pairHasKey = true;
11741 else
11742 return false;
11743 }
11744 }
11745 if (!pairHasKey)
11746 return false;
11747 if (objectKeys.indexOf(pairKey) === -1)
11748 objectKeys.push(pairKey);
11749 else
11750 return false;
11751 }
11752 return true;
11753 }
11754 function constructYamlOmap(data) {
11755 return data !== null ? data : [];
11756 }
11757 var omap = new type("tag:yaml.org,2002:omap", {
11758 kind: "sequence",
11759 resolve: resolveYamlOmap,
11760 construct: constructYamlOmap
11761 });
11762 var _toString$1 = Object.prototype.toString;
11763 function resolveYamlPairs(data) {
11764 if (data === null)
11765 return true;
11766 var index2, length2, pair, keys2, result, object2 = data;
11767 result = new Array(object2.length);
11768 for (index2 = 0, length2 = object2.length; index2 < length2; index2 += 1) {
11769 pair = object2[index2];
11770 if (_toString$1.call(pair) !== "[object Object]")
11771 return false;
11772 keys2 = Object.keys(pair);
11773 if (keys2.length !== 1)
11774 return false;
11775 result[index2] = [keys2[0], pair[keys2[0]]];
11776 }
11777 return true;
11778 }
11779 function constructYamlPairs(data) {
11780 if (data === null)
11781 return [];
11782 var index2, length2, pair, keys2, result, object2 = data;
11783 result = new Array(object2.length);
11784 for (index2 = 0, length2 = object2.length; index2 < length2; index2 += 1) {
11785 pair = object2[index2];
11786 keys2 = Object.keys(pair);
11787 result[index2] = [keys2[0], pair[keys2[0]]];
11788 }
11789 return result;
11790 }
11791 var pairs = new type("tag:yaml.org,2002:pairs", {
11792 kind: "sequence",
11793 resolve: resolveYamlPairs,
11794 construct: constructYamlPairs
11795 });
11796 var _hasOwnProperty$2 = Object.prototype.hasOwnProperty;
11797 function resolveYamlSet(data) {
11798 if (data === null)
11799 return true;
11800 var key, object2 = data;
11801 for (key in object2) {
11802 if (_hasOwnProperty$2.call(object2, key)) {
11803 if (object2[key] !== null)
11804 return false;
11805 }
11806 }
11807 return true;
11808 }
11809 function constructYamlSet(data) {
11810 return data !== null ? data : {};
11811 }
11812 var set$1 = new type("tag:yaml.org,2002:set", {
11813 kind: "mapping",
11814 resolve: resolveYamlSet,
11815 construct: constructYamlSet
11816 });
11817 var _default = core.extend({
11818 implicit: [
11819 timestamp,
11820 merge$3
11821 ],
11822 explicit: [
11823 binary,
11824 omap,
11825 pairs,
11826 set$1
11827 ]
11828 });
11829 var _hasOwnProperty$1 = Object.prototype.hasOwnProperty;
11830 var CONTEXT_FLOW_IN = 1;
11831 var CONTEXT_FLOW_OUT = 2;
11832 var CONTEXT_BLOCK_IN = 3;
11833 var CONTEXT_BLOCK_OUT = 4;
11834 var CHOMPING_CLIP = 1;
11835 var CHOMPING_STRIP = 2;
11836 var CHOMPING_KEEP = 3;
11837 var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/;
11838 var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/;
11839 var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/;
11840 var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i;
11841 var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;
11842 function _class(obj) {
11843 return Object.prototype.toString.call(obj);
11844 }
11845 function is_EOL(c2) {
11846 return c2 === 10 || c2 === 13;
11847 }
11848 function is_WHITE_SPACE(c2) {
11849 return c2 === 9 || c2 === 32;
11850 }
11851 function is_WS_OR_EOL(c2) {
11852 return c2 === 9 || c2 === 32 || c2 === 10 || c2 === 13;
11853 }
11854 function is_FLOW_INDICATOR(c2) {
11855 return c2 === 44 || c2 === 91 || c2 === 93 || c2 === 123 || c2 === 125;
11856 }
11857 function fromHexCode(c2) {
11858 var lc;
11859 if (48 <= c2 && c2 <= 57) {
11860 return c2 - 48;
11861 }
11862 lc = c2 | 32;
11863 if (97 <= lc && lc <= 102) {
11864 return lc - 97 + 10;
11865 }
11866 return -1;
11867 }
11868 function escapedHexLen(c2) {
11869 if (c2 === 120) {
11870 return 2;
11871 }
11872 if (c2 === 117) {
11873 return 4;
11874 }
11875 if (c2 === 85) {
11876 return 8;
11877 }
11878 return 0;
11879 }
11880 function fromDecimalCode(c2) {
11881 if (48 <= c2 && c2 <= 57) {
11882 return c2 - 48;
11883 }
11884 return -1;
11885 }
11886 function simpleEscapeSequence(c2) {
11887 return c2 === 48 ? "\0" : c2 === 97 ? "\x07" : c2 === 98 ? "\b" : c2 === 116 ? " " : c2 === 9 ? " " : c2 === 110 ? "\n" : c2 === 118 ? "\v" : c2 === 102 ? "\f" : c2 === 114 ? "\r" : c2 === 101 ? "\x1B" : c2 === 32 ? " " : c2 === 34 ? '"' : c2 === 47 ? "/" : c2 === 92 ? "\\" : c2 === 78 ? "…" : c2 === 95 ? " " : c2 === 76 ? "\u2028" : c2 === 80 ? "\u2029" : "";
11888 }
11889 function charFromCodepoint(c2) {
11890 if (c2 <= 65535) {
11891 return String.fromCharCode(c2);
11892 }
11893 return String.fromCharCode(
11894 (c2 - 65536 >> 10) + 55296,
11895 (c2 - 65536 & 1023) + 56320
11896 );
11897 }
11898 var simpleEscapeCheck = new Array(256);
11899 var simpleEscapeMap = new Array(256);
11900 for (var i = 0; i < 256; i++) {
11901 simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;
11902 simpleEscapeMap[i] = simpleEscapeSequence(i);
11903 }
11904 function State$1(input, options2) {
11905 this.input = input;
11906 this.filename = options2["filename"] || null;
11907 this.schema = options2["schema"] || _default;
11908 this.onWarning = options2["onWarning"] || null;
11909 this.legacy = options2["legacy"] || false;
11910 this.json = options2["json"] || false;
11911 this.listener = options2["listener"] || null;
11912 this.implicitTypes = this.schema.compiledImplicit;
11913 this.typeMap = this.schema.compiledTypeMap;
11914 this.length = input.length;
11915 this.position = 0;
11916 this.line = 0;
11917 this.lineStart = 0;
11918 this.lineIndent = 0;
11919 this.firstTabInLine = -1;
11920 this.documents = [];
11921 }
11922 function generateError(state2, message2) {
11923 var mark = {
11924 name: state2.filename,
11925 buffer: state2.input.slice(0, -1),
11926 // omit trailing \0
11927 position: state2.position,
11928 line: state2.line,
11929 column: state2.position - state2.lineStart
11930 };
11931 mark.snippet = snippet(mark);
11932 return new exception(message2, mark);
11933 }
11934 function throwError(state2, message2) {
11935 throw generateError(state2, message2);
11936 }
11937 function throwWarning(state2, message2) {
11938 if (state2.onWarning) {
11939 state2.onWarning.call(null, generateError(state2, message2));
11940 }
11941 }
11942 var directiveHandlers = {
11943 YAML: function handleYamlDirective(state2, name2, args) {
11944 var match, major, minor;
11945 if (state2.version !== null) {
11946 throwError(state2, "duplication of %YAML directive");
11947 }
11948 if (args.length !== 1) {
11949 throwError(state2, "YAML directive accepts exactly one argument");
11950 }
11951 match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]);
11952 if (match === null) {
11953 throwError(state2, "ill-formed argument of the YAML directive");
11954 }
11955 major = parseInt(match[1], 10);
11956 minor = parseInt(match[2], 10);
11957 if (major !== 1) {
11958 throwError(state2, "unacceptable YAML version of the document");
11959 }
11960 state2.version = args[0];
11961 state2.checkLineBreaks = minor < 2;
11962 if (minor !== 1 && minor !== 2) {
11963 throwWarning(state2, "unsupported YAML version of the document");
11964 }
11965 },
11966 TAG: function handleTagDirective(state2, name2, args) {
11967 var handle, prefix;
11968 if (args.length !== 2) {
11969 throwError(state2, "TAG directive accepts exactly two arguments");
11970 }
11971 handle = args[0];
11972 prefix = args[1];
11973 if (!PATTERN_TAG_HANDLE.test(handle)) {
11974 throwError(state2, "ill-formed tag handle (first argument) of the TAG directive");
11975 }
11976 if (_hasOwnProperty$1.call(state2.tagMap, handle)) {
11977 throwError(state2, 'there is a previously declared suffix for "' + handle + '" tag handle');
11978 }
11979 if (!PATTERN_TAG_URI.test(prefix)) {
11980 throwError(state2, "ill-formed tag prefix (second argument) of the TAG directive");
11981 }
11982 try {
11983 prefix = decodeURIComponent(prefix);
11984 } catch (err) {
11985 throwError(state2, "tag prefix is malformed: " + prefix);
11986 }
11987 state2.tagMap[handle] = prefix;
11988 }
11989 };
11990 function captureSegment(state2, start2, end2, checkJson) {
11991 var _position, _length, _character, _result;
11992 if (start2 < end2) {
11993 _result = state2.input.slice(start2, end2);
11994 if (checkJson) {
11995 for (_position = 0, _length = _result.length; _position < _length; _position += 1) {
11996 _character = _result.charCodeAt(_position);
11997 if (!(_character === 9 || 32 <= _character && _character <= 1114111)) {
11998 throwError(state2, "expected valid JSON character");
11999 }
12000 }
12001 } else if (PATTERN_NON_PRINTABLE.test(_result)) {
12002 throwError(state2, "the stream contains non-printable characters");
12003 }
12004 state2.result += _result;
12005 }
12006 }
12007 function mergeMappings(state2, destination, source, overridableKeys) {
12008 var sourceKeys, key, index2, quantity;
12009 if (!common.isObject(source)) {
12010 throwError(state2, "cannot merge mappings; the provided source object is unacceptable");
12011 }
12012 sourceKeys = Object.keys(source);
12013 for (index2 = 0, quantity = sourceKeys.length; index2 < quantity; index2 += 1) {
12014 key = sourceKeys[index2];
12015 if (!_hasOwnProperty$1.call(destination, key)) {
12016 destination[key] = source[key];
12017 overridableKeys[key] = true;
12018 }
12019 }
12020 }
12021 function storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) {
12022 var index2, quantity;
12023 if (Array.isArray(keyNode)) {
12024 keyNode = Array.prototype.slice.call(keyNode);
12025 for (index2 = 0, quantity = keyNode.length; index2 < quantity; index2 += 1) {
12026 if (Array.isArray(keyNode[index2])) {
12027 throwError(state2, "nested arrays are not supported inside keys");
12028 }
12029 if (typeof keyNode === "object" && _class(keyNode[index2]) === "[object Object]") {
12030 keyNode[index2] = "[object Object]";
12031 }
12032 }
12033 }
12034 if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") {
12035 keyNode = "[object Object]";
12036 }
12037 keyNode = String(keyNode);
12038 if (_result === null) {
12039 _result = {};
12040 }
12041 if (keyTag === "tag:yaml.org,2002:merge") {
12042 if (Array.isArray(valueNode)) {
12043 for (index2 = 0, quantity = valueNode.length; index2 < quantity; index2 += 1) {
12044 mergeMappings(state2, _result, valueNode[index2], overridableKeys);
12045 }
12046 } else {
12047 mergeMappings(state2, _result, valueNode, overridableKeys);
12048 }
12049 } else {
12050 if (!state2.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) {
12051 state2.line = startLine || state2.line;
12052 state2.lineStart = startLineStart || state2.lineStart;
12053 state2.position = startPos || state2.position;
12054 throwError(state2, "duplicated mapping key");
12055 }
12056 if (keyNode === "__proto__") {
12057 Object.defineProperty(_result, keyNode, {
12058 configurable: true,
12059 enumerable: true,
12060 writable: true,
12061 value: valueNode
12062 });
12063 } else {
12064 _result[keyNode] = valueNode;
12065 }
12066 delete overridableKeys[keyNode];
12067 }
12068 return _result;
12069 }
12070 function readLineBreak(state2) {
12071 var ch;
12072 ch = state2.input.charCodeAt(state2.position);
12073 if (ch === 10) {
12074 state2.position++;
12075 } else if (ch === 13) {
12076 state2.position++;
12077 if (state2.input.charCodeAt(state2.position) === 10) {
12078 state2.position++;
12079 }
12080 } else {
12081 throwError(state2, "a line break is expected");
12082 }
12083 state2.line += 1;
12084 state2.lineStart = state2.position;
12085 state2.firstTabInLine = -1;
12086 }
12087 function skipSeparationSpace(state2, allowComments, checkIndent) {
12088 var lineBreaks = 0, ch = state2.input.charCodeAt(state2.position);
12089 while (ch !== 0) {
12090 while (is_WHITE_SPACE(ch)) {
12091 if (ch === 9 && state2.firstTabInLine === -1) {
12092 state2.firstTabInLine = state2.position;
12093 }
12094 ch = state2.input.charCodeAt(++state2.position);
12095 }
12096 if (allowComments && ch === 35) {
12097 do {
12098 ch = state2.input.charCodeAt(++state2.position);
12099 } while (ch !== 10 && ch !== 13 && ch !== 0);
12100 }
12101 if (is_EOL(ch)) {
12102 readLineBreak(state2);
12103 ch = state2.input.charCodeAt(state2.position);
12104 lineBreaks++;
12105 state2.lineIndent = 0;
12106 while (ch === 32) {
12107 state2.lineIndent++;
12108 ch = state2.input.charCodeAt(++state2.position);
12109 }
12110 } else {
12111 break;
12112 }
12113 }
12114 if (checkIndent !== -1 && lineBreaks !== 0 && state2.lineIndent < checkIndent) {
12115 throwWarning(state2, "deficient indentation");
12116 }
12117 return lineBreaks;
12118 }
12119 function testDocumentSeparator(state2) {
12120 var _position = state2.position, ch;
12121 ch = state2.input.charCodeAt(_position);
12122 if ((ch === 45 || ch === 46) && ch === state2.input.charCodeAt(_position + 1) && ch === state2.input.charCodeAt(_position + 2)) {
12123 _position += 3;
12124 ch = state2.input.charCodeAt(_position);
12125 if (ch === 0 || is_WS_OR_EOL(ch)) {
12126 return true;
12127 }
12128 }
12129 return false;
12130 }
12131 function writeFoldedLines(state2, count) {
12132 if (count === 1) {
12133 state2.result += " ";
12134 } else if (count > 1) {
12135 state2.result += common.repeat("\n", count - 1);
12136 }
12137 }
12138 function readPlainScalar(state2, nodeIndent, withinFlowCollection) {
12139 var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state2.kind, _result = state2.result, ch;
12140 ch = state2.input.charCodeAt(state2.position);
12141 if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) {
12142 return false;
12143 }
12144 if (ch === 63 || ch === 45) {
12145 following = state2.input.charCodeAt(state2.position + 1);
12146 if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
12147 return false;
12148 }
12149 }
12150 state2.kind = "scalar";
12151 state2.result = "";
12152 captureStart = captureEnd = state2.position;
12153 hasPendingContent = false;
12154 while (ch !== 0) {
12155 if (ch === 58) {
12156 following = state2.input.charCodeAt(state2.position + 1);
12157 if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) {
12158 break;
12159 }
12160 } else if (ch === 35) {
12161 preceding = state2.input.charCodeAt(state2.position - 1);
12162 if (is_WS_OR_EOL(preceding)) {
12163 break;
12164 }
12165 } else if (state2.position === state2.lineStart && testDocumentSeparator(state2) || withinFlowCollection && is_FLOW_INDICATOR(ch)) {
12166 break;
12167 } else if (is_EOL(ch)) {
12168 _line = state2.line;
12169 _lineStart = state2.lineStart;
12170 _lineIndent = state2.lineIndent;
12171 skipSeparationSpace(state2, false, -1);
12172 if (state2.lineIndent >= nodeIndent) {
12173 hasPendingContent = true;
12174 ch = state2.input.charCodeAt(state2.position);
12175 continue;
12176 } else {
12177 state2.position = captureEnd;
12178 state2.line = _line;
12179 state2.lineStart = _lineStart;
12180 state2.lineIndent = _lineIndent;
12181 break;
12182 }
12183 }
12184 if (hasPendingContent) {
12185 captureSegment(state2, captureStart, captureEnd, false);
12186 writeFoldedLines(state2, state2.line - _line);
12187 captureStart = captureEnd = state2.position;
12188 hasPendingContent = false;
12189 }
12190 if (!is_WHITE_SPACE(ch)) {
12191 captureEnd = state2.position + 1;
12192 }
12193 ch = state2.input.charCodeAt(++state2.position);
12194 }
12195 captureSegment(state2, captureStart, captureEnd, false);
12196 if (state2.result) {
12197 return true;
12198 }
12199 state2.kind = _kind;
12200 state2.result = _result;
12201 return false;
12202 }
12203 function readSingleQuotedScalar(state2, nodeIndent) {
12204 var ch, captureStart, captureEnd;
12205 ch = state2.input.charCodeAt(state2.position);
12206 if (ch !== 39) {
12207 return false;
12208 }
12209 state2.kind = "scalar";
12210 state2.result = "";
12211 state2.position++;
12212 captureStart = captureEnd = state2.position;
12213 while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {
12214 if (ch === 39) {
12215 captureSegment(state2, captureStart, state2.position, true);
12216 ch = state2.input.charCodeAt(++state2.position);
12217 if (ch === 39) {
12218 captureStart = state2.position;
12219 state2.position++;
12220 captureEnd = state2.position;
12221 } else {
12222 return true;
12223 }
12224 } else if (is_EOL(ch)) {
12225 captureSegment(state2, captureStart, captureEnd, true);
12226 writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent));
12227 captureStart = captureEnd = state2.position;
12228 } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {
12229 throwError(state2, "unexpected end of the document within a single quoted scalar");
12230 } else {
12231 state2.position++;
12232 captureEnd = state2.position;
12233 }
12234 }
12235 throwError(state2, "unexpected end of the stream within a single quoted scalar");
12236 }
12237 function readDoubleQuotedScalar(state2, nodeIndent) {
12238 var captureStart, captureEnd, hexLength, hexResult, tmp, ch;
12239 ch = state2.input.charCodeAt(state2.position);
12240 if (ch !== 34) {
12241 return false;
12242 }
12243 state2.kind = "scalar";
12244 state2.result = "";
12245 state2.position++;
12246 captureStart = captureEnd = state2.position;
12247 while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {
12248 if (ch === 34) {
12249 captureSegment(state2, captureStart, state2.position, true);
12250 state2.position++;
12251 return true;
12252 } else if (ch === 92) {
12253 captureSegment(state2, captureStart, state2.position, true);
12254 ch = state2.input.charCodeAt(++state2.position);
12255 if (is_EOL(ch)) {
12256 skipSeparationSpace(state2, false, nodeIndent);
12257 } else if (ch < 256 && simpleEscapeCheck[ch]) {
12258 state2.result += simpleEscapeMap[ch];
12259 state2.position++;
12260 } else if ((tmp = escapedHexLen(ch)) > 0) {
12261 hexLength = tmp;
12262 hexResult = 0;
12263 for (; hexLength > 0; hexLength--) {
12264 ch = state2.input.charCodeAt(++state2.position);
12265 if ((tmp = fromHexCode(ch)) >= 0) {
12266 hexResult = (hexResult << 4) + tmp;
12267 } else {
12268 throwError(state2, "expected hexadecimal character");
12269 }
12270 }
12271 state2.result += charFromCodepoint(hexResult);
12272 state2.position++;
12273 } else {
12274 throwError(state2, "unknown escape sequence");
12275 }
12276 captureStart = captureEnd = state2.position;
12277 } else if (is_EOL(ch)) {
12278 captureSegment(state2, captureStart, captureEnd, true);
12279 writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent));
12280 captureStart = captureEnd = state2.position;
12281 } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {
12282 throwError(state2, "unexpected end of the document within a double quoted scalar");
12283 } else {
12284 state2.position++;
12285 captureEnd = state2.position;
12286 }
12287 }
12288 throwError(state2, "unexpected end of the stream within a double quoted scalar");
12289 }
12290 function readFlowCollection(state2, nodeIndent) {
12291 var readNext = true, _line, _lineStart, _pos, _tag = state2.tag, _result, _anchor = state2.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch;
12292 ch = state2.input.charCodeAt(state2.position);
12293 if (ch === 91) {
12294 terminator = 93;
12295 isMapping = false;
12296 _result = [];
12297 } else if (ch === 123) {
12298 terminator = 125;
12299 isMapping = true;
12300 _result = {};
12301 } else {
12302 return false;
12303 }
12304 if (state2.anchor !== null) {
12305 state2.anchorMap[state2.anchor] = _result;
12306 }
12307 ch = state2.input.charCodeAt(++state2.position);
12308 while (ch !== 0) {
12309 skipSeparationSpace(state2, true, nodeIndent);
12310 ch = state2.input.charCodeAt(state2.position);
12311 if (ch === terminator) {
12312 state2.position++;
12313 state2.tag = _tag;
12314 state2.anchor = _anchor;
12315 state2.kind = isMapping ? "mapping" : "sequence";
12316 state2.result = _result;
12317 return true;
12318 } else if (!readNext) {
12319 throwError(state2, "missed comma between flow collection entries");
12320 } else if (ch === 44) {
12321 throwError(state2, "expected the node content, but found ','");
12322 }
12323 keyTag = keyNode = valueNode = null;
12324 isPair = isExplicitPair = false;
12325 if (ch === 63) {
12326 following = state2.input.charCodeAt(state2.position + 1);
12327 if (is_WS_OR_EOL(following)) {
12328 isPair = isExplicitPair = true;
12329 state2.position++;
12330 skipSeparationSpace(state2, true, nodeIndent);
12331 }
12332 }
12333 _line = state2.line;
12334 _lineStart = state2.lineStart;
12335 _pos = state2.position;
12336 composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true);
12337 keyTag = state2.tag;
12338 keyNode = state2.result;
12339 skipSeparationSpace(state2, true, nodeIndent);
12340 ch = state2.input.charCodeAt(state2.position);
12341 if ((isExplicitPair || state2.line === _line) && ch === 58) {
12342 isPair = true;
12343 ch = state2.input.charCodeAt(++state2.position);
12344 skipSeparationSpace(state2, true, nodeIndent);
12345 composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true);
12346 valueNode = state2.result;
12347 }
12348 if (isMapping) {
12349 storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos);
12350 } else if (isPair) {
12351 _result.push(storeMappingPair(state2, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos));
12352 } else {
12353 _result.push(keyNode);
12354 }
12355 skipSeparationSpace(state2, true, nodeIndent);
12356 ch = state2.input.charCodeAt(state2.position);
12357 if (ch === 44) {
12358 readNext = true;
12359 ch = state2.input.charCodeAt(++state2.position);
12360 } else {
12361 readNext = false;
12362 }
12363 }
12364 throwError(state2, "unexpected end of the stream within a flow collection");
12365 }
12366 function readBlockScalar(state2, nodeIndent) {
12367 var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch;
12368 ch = state2.input.charCodeAt(state2.position);
12369 if (ch === 124) {
12370 folding = false;
12371 } else if (ch === 62) {
12372 folding = true;
12373 } else {
12374 return false;
12375 }
12376 state2.kind = "scalar";
12377 state2.result = "";
12378 while (ch !== 0) {
12379 ch = state2.input.charCodeAt(++state2.position);
12380 if (ch === 43 || ch === 45) {
12381 if (CHOMPING_CLIP === chomping) {
12382 chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP;
12383 } else {
12384 throwError(state2, "repeat of a chomping mode identifier");
12385 }
12386 } else if ((tmp = fromDecimalCode(ch)) >= 0) {
12387 if (tmp === 0) {
12388 throwError(state2, "bad explicit indentation width of a block scalar; it cannot be less than one");
12389 } else if (!detectedIndent) {
12390 textIndent = nodeIndent + tmp - 1;
12391 detectedIndent = true;
12392 } else {
12393 throwError(state2, "repeat of an indentation width identifier");
12394 }
12395 } else {
12396 break;
12397 }
12398 }
12399 if (is_WHITE_SPACE(ch)) {
12400 do {
12401 ch = state2.input.charCodeAt(++state2.position);
12402 } while (is_WHITE_SPACE(ch));
12403 if (ch === 35) {
12404 do {
12405 ch = state2.input.charCodeAt(++state2.position);
12406 } while (!is_EOL(ch) && ch !== 0);
12407 }
12408 }
12409 while (ch !== 0) {
12410 readLineBreak(state2);
12411 state2.lineIndent = 0;
12412 ch = state2.input.charCodeAt(state2.position);
12413 while ((!detectedIndent || state2.lineIndent < textIndent) && ch === 32) {
12414 state2.lineIndent++;
12415 ch = state2.input.charCodeAt(++state2.position);
12416 }
12417 if (!detectedIndent && state2.lineIndent > textIndent) {
12418 textIndent = state2.lineIndent;
12419 }
12420 if (is_EOL(ch)) {
12421 emptyLines++;
12422 continue;
12423 }
12424 if (state2.lineIndent < textIndent) {
12425 if (chomping === CHOMPING_KEEP) {
12426 state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
12427 } else if (chomping === CHOMPING_CLIP) {
12428 if (didReadContent) {
12429 state2.result += "\n";
12430 }
12431 }
12432 break;
12433 }
12434 if (folding) {
12435 if (is_WHITE_SPACE(ch)) {
12436 atMoreIndented = true;
12437 state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
12438 } else if (atMoreIndented) {
12439 atMoreIndented = false;
12440 state2.result += common.repeat("\n", emptyLines + 1);
12441 } else if (emptyLines === 0) {
12442 if (didReadContent) {
12443 state2.result += " ";
12444 }
12445 } else {
12446 state2.result += common.repeat("\n", emptyLines);
12447 }
12448 } else {
12449 state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines);
12450 }
12451 didReadContent = true;
12452 detectedIndent = true;
12453 emptyLines = 0;
12454 captureStart = state2.position;
12455 while (!is_EOL(ch) && ch !== 0) {
12456 ch = state2.input.charCodeAt(++state2.position);
12457 }
12458 captureSegment(state2, captureStart, state2.position, false);
12459 }
12460 return true;
12461 }
12462 function readBlockSequence(state2, nodeIndent) {
12463 var _line, _tag = state2.tag, _anchor = state2.anchor, _result = [], following, detected = false, ch;
12464 if (state2.firstTabInLine !== -1)
12465 return false;
12466 if (state2.anchor !== null) {
12467 state2.anchorMap[state2.anchor] = _result;
12468 }
12469 ch = state2.input.charCodeAt(state2.position);
12470 while (ch !== 0) {
12471 if (state2.firstTabInLine !== -1) {
12472 state2.position = state2.firstTabInLine;
12473 throwError(state2, "tab characters must not be used in indentation");
12474 }
12475 if (ch !== 45) {
12476 break;
12477 }
12478 following = state2.input.charCodeAt(state2.position + 1);
12479 if (!is_WS_OR_EOL(following)) {
12480 break;
12481 }
12482 detected = true;
12483 state2.position++;
12484 if (skipSeparationSpace(state2, true, -1)) {
12485 if (state2.lineIndent <= nodeIndent) {
12486 _result.push(null);
12487 ch = state2.input.charCodeAt(state2.position);
12488 continue;
12489 }
12490 }
12491 _line = state2.line;
12492 composeNode(state2, nodeIndent, CONTEXT_BLOCK_IN, false, true);
12493 _result.push(state2.result);
12494 skipSeparationSpace(state2, true, -1);
12495 ch = state2.input.charCodeAt(state2.position);
12496 if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) {
12497 throwError(state2, "bad indentation of a sequence entry");
12498 } else if (state2.lineIndent < nodeIndent) {
12499 break;
12500 }
12501 }
12502 if (detected) {
12503 state2.tag = _tag;
12504 state2.anchor = _anchor;
12505 state2.kind = "sequence";
12506 state2.result = _result;
12507 return true;
12508 }
12509 return false;
12510 }
12511 function readBlockMapping(state2, nodeIndent, flowIndent) {
12512 var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state2.tag, _anchor = state2.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch;
12513 if (state2.firstTabInLine !== -1)
12514 return false;
12515 if (state2.anchor !== null) {
12516 state2.anchorMap[state2.anchor] = _result;
12517 }
12518 ch = state2.input.charCodeAt(state2.position);
12519 while (ch !== 0) {
12520 if (!atExplicitKey && state2.firstTabInLine !== -1) {
12521 state2.position = state2.firstTabInLine;
12522 throwError(state2, "tab characters must not be used in indentation");
12523 }
12524 following = state2.input.charCodeAt(state2.position + 1);
12525 _line = state2.line;
12526 if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) {
12527 if (ch === 63) {
12528 if (atExplicitKey) {
12529 storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
12530 keyTag = keyNode = valueNode = null;
12531 }
12532 detected = true;
12533 atExplicitKey = true;
12534 allowCompact = true;
12535 } else if (atExplicitKey) {
12536 atExplicitKey = false;
12537 allowCompact = true;
12538 } else {
12539 throwError(state2, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line");
12540 }
12541 state2.position += 1;
12542 ch = following;
12543 } else {
12544 _keyLine = state2.line;
12545 _keyLineStart = state2.lineStart;
12546 _keyPos = state2.position;
12547 if (!composeNode(state2, flowIndent, CONTEXT_FLOW_OUT, false, true)) {
12548 break;
12549 }
12550 if (state2.line === _line) {
12551 ch = state2.input.charCodeAt(state2.position);
12552 while (is_WHITE_SPACE(ch)) {
12553 ch = state2.input.charCodeAt(++state2.position);
12554 }
12555 if (ch === 58) {
12556 ch = state2.input.charCodeAt(++state2.position);
12557 if (!is_WS_OR_EOL(ch)) {
12558 throwError(state2, "a whitespace character is expected after the key-value separator within a block mapping");
12559 }
12560 if (atExplicitKey) {
12561 storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
12562 keyTag = keyNode = valueNode = null;
12563 }
12564 detected = true;
12565 atExplicitKey = false;
12566 allowCompact = false;
12567 keyTag = state2.tag;
12568 keyNode = state2.result;
12569 } else if (detected) {
12570 throwError(state2, "can not read an implicit mapping pair; a colon is missed");
12571 } else {
12572 state2.tag = _tag;
12573 state2.anchor = _anchor;
12574 return true;
12575 }
12576 } else if (detected) {
12577 throwError(state2, "can not read a block mapping entry; a multiline key may not be an implicit key");
12578 } else {
12579 state2.tag = _tag;
12580 state2.anchor = _anchor;
12581 return true;
12582 }
12583 }
12584 if (state2.line === _line || state2.lineIndent > nodeIndent) {
12585 if (atExplicitKey) {
12586 _keyLine = state2.line;
12587 _keyLineStart = state2.lineStart;
12588 _keyPos = state2.position;
12589 }
12590 if (composeNode(state2, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {
12591 if (atExplicitKey) {
12592 keyNode = state2.result;
12593 } else {
12594 valueNode = state2.result;
12595 }
12596 }
12597 if (!atExplicitKey) {
12598 storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos);
12599 keyTag = keyNode = valueNode = null;
12600 }
12601 skipSeparationSpace(state2, true, -1);
12602 ch = state2.input.charCodeAt(state2.position);
12603 }
12604 if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) {
12605 throwError(state2, "bad indentation of a mapping entry");
12606 } else if (state2.lineIndent < nodeIndent) {
12607 break;
12608 }
12609 }
12610 if (atExplicitKey) {
12611 storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos);
12612 }
12613 if (detected) {
12614 state2.tag = _tag;
12615 state2.anchor = _anchor;
12616 state2.kind = "mapping";
12617 state2.result = _result;
12618 }
12619 return detected;
12620 }
12621 function readTagProperty(state2) {
12622 var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch;
12623 ch = state2.input.charCodeAt(state2.position);
12624 if (ch !== 33)
12625 return false;
12626 if (state2.tag !== null) {
12627 throwError(state2, "duplication of a tag property");
12628 }
12629 ch = state2.input.charCodeAt(++state2.position);
12630 if (ch === 60) {
12631 isVerbatim = true;
12632 ch = state2.input.charCodeAt(++state2.position);
12633 } else if (ch === 33) {
12634 isNamed = true;
12635 tagHandle = "!!";
12636 ch = state2.input.charCodeAt(++state2.position);
12637 } else {
12638 tagHandle = "!";
12639 }
12640 _position = state2.position;
12641 if (isVerbatim) {
12642 do {
12643 ch = state2.input.charCodeAt(++state2.position);
12644 } while (ch !== 0 && ch !== 62);
12645 if (state2.position < state2.length) {
12646 tagName = state2.input.slice(_position, state2.position);
12647 ch = state2.input.charCodeAt(++state2.position);
12648 } else {
12649 throwError(state2, "unexpected end of the stream within a verbatim tag");
12650 }
12651 } else {
12652 while (ch !== 0 && !is_WS_OR_EOL(ch)) {
12653 if (ch === 33) {
12654 if (!isNamed) {
12655 tagHandle = state2.input.slice(_position - 1, state2.position + 1);
12656 if (!PATTERN_TAG_HANDLE.test(tagHandle)) {
12657 throwError(state2, "named tag handle cannot contain such characters");
12658 }
12659 isNamed = true;
12660 _position = state2.position + 1;
12661 } else {
12662 throwError(state2, "tag suffix cannot contain exclamation marks");
12663 }
12664 }
12665 ch = state2.input.charCodeAt(++state2.position);
12666 }
12667 tagName = state2.input.slice(_position, state2.position);
12668 if (PATTERN_FLOW_INDICATORS.test(tagName)) {
12669 throwError(state2, "tag suffix cannot contain flow indicator characters");
12670 }
12671 }
12672 if (tagName && !PATTERN_TAG_URI.test(tagName)) {
12673 throwError(state2, "tag name cannot contain such characters: " + tagName);
12674 }
12675 try {
12676 tagName = decodeURIComponent(tagName);
12677 } catch (err) {
12678 throwError(state2, "tag name is malformed: " + tagName);
12679 }
12680 if (isVerbatim) {
12681 state2.tag = tagName;
12682 } else if (_hasOwnProperty$1.call(state2.tagMap, tagHandle)) {
12683 state2.tag = state2.tagMap[tagHandle] + tagName;
12684 } else if (tagHandle === "!") {
12685 state2.tag = "!" + tagName;
12686 } else if (tagHandle === "!!") {
12687 state2.tag = "tag:yaml.org,2002:" + tagName;
12688 } else {
12689 throwError(state2, 'undeclared tag handle "' + tagHandle + '"');
12690 }
12691 return true;
12692 }
12693 function readAnchorProperty(state2) {
12694 var _position, ch;
12695 ch = state2.input.charCodeAt(state2.position);
12696 if (ch !== 38)
12697 return false;
12698 if (state2.anchor !== null) {
12699 throwError(state2, "duplication of an anchor property");
12700 }
12701 ch = state2.input.charCodeAt(++state2.position);
12702 _position = state2.position;
12703 while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
12704 ch = state2.input.charCodeAt(++state2.position);
12705 }
12706 if (state2.position === _position) {
12707 throwError(state2, "name of an anchor node must contain at least one character");
12708 }
12709 state2.anchor = state2.input.slice(_position, state2.position);
12710 return true;
12711 }
12712 function readAlias(state2) {
12713 var _position, alias, ch;
12714 ch = state2.input.charCodeAt(state2.position);
12715 if (ch !== 42)
12716 return false;
12717 ch = state2.input.charCodeAt(++state2.position);
12718 _position = state2.position;
12719 while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {
12720 ch = state2.input.charCodeAt(++state2.position);
12721 }
12722 if (state2.position === _position) {
12723 throwError(state2, "name of an alias node must contain at least one character");
12724 }
12725 alias = state2.input.slice(_position, state2.position);
12726 if (!_hasOwnProperty$1.call(state2.anchorMap, alias)) {
12727 throwError(state2, 'unidentified alias "' + alias + '"');
12728 }
12729 state2.result = state2.anchorMap[alias];
12730 skipSeparationSpace(state2, true, -1);
12731 return true;
12732 }
12733 function composeNode(state2, parentIndent, nodeContext, allowToSeek, allowCompact) {
12734 var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent;
12735 if (state2.listener !== null) {
12736 state2.listener("open", state2);
12737 }
12738 state2.tag = null;
12739 state2.anchor = null;
12740 state2.kind = null;
12741 state2.result = null;
12742 allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext;
12743 if (allowToSeek) {
12744 if (skipSeparationSpace(state2, true, -1)) {
12745 atNewLine = true;
12746 if (state2.lineIndent > parentIndent) {
12747 indentStatus = 1;
12748 } else if (state2.lineIndent === parentIndent) {
12749 indentStatus = 0;
12750 } else if (state2.lineIndent < parentIndent) {
12751 indentStatus = -1;
12752 }
12753 }
12754 }
12755 if (indentStatus === 1) {
12756 while (readTagProperty(state2) || readAnchorProperty(state2)) {
12757 if (skipSeparationSpace(state2, true, -1)) {
12758 atNewLine = true;
12759 allowBlockCollections = allowBlockStyles;
12760 if (state2.lineIndent > parentIndent) {
12761 indentStatus = 1;
12762 } else if (state2.lineIndent === parentIndent) {
12763 indentStatus = 0;
12764 } else if (state2.lineIndent < parentIndent) {
12765 indentStatus = -1;
12766 }
12767 } else {
12768 allowBlockCollections = false;
12769 }
12770 }
12771 }
12772 if (allowBlockCollections) {
12773 allowBlockCollections = atNewLine || allowCompact;
12774 }
12775 if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {
12776 if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {
12777 flowIndent = parentIndent;
12778 } else {
12779 flowIndent = parentIndent + 1;
12780 }
12781 blockIndent = state2.position - state2.lineStart;
12782 if (indentStatus === 1) {
12783 if (allowBlockCollections && (readBlockSequence(state2, blockIndent) || readBlockMapping(state2, blockIndent, flowIndent)) || readFlowCollection(state2, flowIndent)) {
12784 hasContent = true;
12785 } else {
12786 if (allowBlockScalars && readBlockScalar(state2, flowIndent) || readSingleQuotedScalar(state2, flowIndent) || readDoubleQuotedScalar(state2, flowIndent)) {
12787 hasContent = true;
12788 } else if (readAlias(state2)) {
12789 hasContent = true;
12790 if (state2.tag !== null || state2.anchor !== null) {
12791 throwError(state2, "alias node should not have any properties");
12792 }
12793 } else if (readPlainScalar(state2, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {
12794 hasContent = true;
12795 if (state2.tag === null) {
12796 state2.tag = "?";
12797 }
12798 }
12799 if (state2.anchor !== null) {
12800 state2.anchorMap[state2.anchor] = state2.result;
12801 }
12802 }
12803 } else if (indentStatus === 0) {
12804 hasContent = allowBlockCollections && readBlockSequence(state2, blockIndent);
12805 }
12806 }
12807 if (state2.tag === null) {
12808 if (state2.anchor !== null) {
12809 state2.anchorMap[state2.anchor] = state2.result;
12810 }
12811 } else if (state2.tag === "?") {
12812 if (state2.result !== null && state2.kind !== "scalar") {
12813 throwError(state2, 'unacceptable node kind for !<?> tag; it should be "scalar", not "' + state2.kind + '"');
12814 }
12815 for (typeIndex = 0, typeQuantity = state2.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {
12816 type2 = state2.implicitTypes[typeIndex];
12817 if (type2.resolve(state2.result)) {
12818 state2.result = type2.construct(state2.result);
12819 state2.tag = type2.tag;
12820 if (state2.anchor !== null) {
12821 state2.anchorMap[state2.anchor] = state2.result;
12822 }
12823 break;
12824 }
12825 }
12826 } else if (state2.tag !== "!") {
12827 if (_hasOwnProperty$1.call(state2.typeMap[state2.kind || "fallback"], state2.tag)) {
12828 type2 = state2.typeMap[state2.kind || "fallback"][state2.tag];
12829 } else {
12830 type2 = null;
12831 typeList = state2.typeMap.multi[state2.kind || "fallback"];
12832 for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) {
12833 if (state2.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) {
12834 type2 = typeList[typeIndex];
12835 break;
12836 }
12837 }
12838 }
12839 if (!type2) {
12840 throwError(state2, "unknown tag !<" + state2.tag + ">");
12841 }
12842 if (state2.result !== null && type2.kind !== state2.kind) {
12843 throwError(state2, "unacceptable node kind for !<" + state2.tag + '> tag; it should be "' + type2.kind + '", not "' + state2.kind + '"');
12844 }
12845 if (!type2.resolve(state2.result, state2.tag)) {
12846 throwError(state2, "cannot resolve a node with !<" + state2.tag + "> explicit tag");
12847 } else {
12848 state2.result = type2.construct(state2.result, state2.tag);
12849 if (state2.anchor !== null) {
12850 state2.anchorMap[state2.anchor] = state2.result;
12851 }
12852 }
12853 }
12854 if (state2.listener !== null) {
12855 state2.listener("close", state2);
12856 }
12857 return state2.tag !== null || state2.anchor !== null || hasContent;
12858 }
12859 function readDocument(state2) {
12860 var documentStart = state2.position, _position, directiveName, directiveArgs, hasDirectives = false, ch;
12861 state2.version = null;
12862 state2.checkLineBreaks = state2.legacy;
12863 state2.tagMap = /* @__PURE__ */ Object.create(null);
12864 state2.anchorMap = /* @__PURE__ */ Object.create(null);
12865 while ((ch = state2.input.charCodeAt(state2.position)) !== 0) {
12866 skipSeparationSpace(state2, true, -1);
12867 ch = state2.input.charCodeAt(state2.position);
12868 if (state2.lineIndent > 0 || ch !== 37) {
12869 break;
12870 }
12871 hasDirectives = true;
12872 ch = state2.input.charCodeAt(++state2.position);
12873 _position = state2.position;
12874 while (ch !== 0 && !is_WS_OR_EOL(ch)) {
12875 ch = state2.input.charCodeAt(++state2.position);
12876 }
12877 directiveName = state2.input.slice(_position, state2.position);
12878 directiveArgs = [];
12879 if (directiveName.length < 1) {
12880 throwError(state2, "directive name must not be less than one character in length");
12881 }
12882 while (ch !== 0) {
12883 while (is_WHITE_SPACE(ch)) {
12884 ch = state2.input.charCodeAt(++state2.position);
12885 }
12886 if (ch === 35) {
12887 do {
12888 ch = state2.input.charCodeAt(++state2.position);
12889 } while (ch !== 0 && !is_EOL(ch));
12890 break;
12891 }
12892 if (is_EOL(ch))
12893 break;
12894 _position = state2.position;
12895 while (ch !== 0 && !is_WS_OR_EOL(ch)) {
12896 ch = state2.input.charCodeAt(++state2.position);
12897 }
12898 directiveArgs.push(state2.input.slice(_position, state2.position));
12899 }
12900 if (ch !== 0)
12901 readLineBreak(state2);
12902 if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) {
12903 directiveHandlers[directiveName](state2, directiveName, directiveArgs);
12904 } else {
12905 throwWarning(state2, 'unknown document directive "' + directiveName + '"');
12906 }
12907 }
12908 skipSeparationSpace(state2, true, -1);
12909 if (state2.lineIndent === 0 && state2.input.charCodeAt(state2.position) === 45 && state2.input.charCodeAt(state2.position + 1) === 45 && state2.input.charCodeAt(state2.position + 2) === 45) {
12910 state2.position += 3;
12911 skipSeparationSpace(state2, true, -1);
12912 } else if (hasDirectives) {
12913 throwError(state2, "directives end mark is expected");
12914 }
12915 composeNode(state2, state2.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);
12916 skipSeparationSpace(state2, true, -1);
12917 if (state2.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state2.input.slice(documentStart, state2.position))) {
12918 throwWarning(state2, "non-ASCII line breaks are interpreted as content");
12919 }
12920 state2.documents.push(state2.result);
12921 if (state2.position === state2.lineStart && testDocumentSeparator(state2)) {
12922 if (state2.input.charCodeAt(state2.position) === 46) {
12923 state2.position += 3;
12924 skipSeparationSpace(state2, true, -1);
12925 }
12926 return;
12927 }
12928 if (state2.position < state2.length - 1) {
12929 throwError(state2, "end of the stream or a document separator is expected");
12930 } else {
12931 return;
12932 }
12933 }
12934 function loadDocuments(input, options2) {
12935 input = String(input);
12936 options2 = options2 || {};
12937 if (input.length !== 0) {
12938 if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) {
12939 input += "\n";
12940 }
12941 if (input.charCodeAt(0) === 65279) {
12942 input = input.slice(1);
12943 }
12944 }
12945 var state2 = new State$1(input, options2);
12946 var nullpos = input.indexOf("\0");
12947 if (nullpos !== -1) {
12948 state2.position = nullpos;
12949 throwError(state2, "null byte is not allowed in input");
12950 }
12951 state2.input += "\0";
12952 while (state2.input.charCodeAt(state2.position) === 32) {
12953 state2.lineIndent += 1;
12954 state2.position += 1;
12955 }
12956 while (state2.position < state2.length - 1) {
12957 readDocument(state2);
12958 }
12959 return state2.documents;
12960 }
12961 function loadAll$1(input, iterator, options2) {
12962 if (iterator !== null && typeof iterator === "object" && typeof options2 === "undefined") {
12963 options2 = iterator;
12964 iterator = null;
12965 }
12966 var documents2 = loadDocuments(input, options2);
12967 if (typeof iterator !== "function") {
12968 return documents2;
12969 }
12970 for (var index2 = 0, length2 = documents2.length; index2 < length2; index2 += 1) {
12971 iterator(documents2[index2]);
12972 }
12973 }
12974 function load$1(input, options2) {
12975 var documents2 = loadDocuments(input, options2);
12976 if (documents2.length === 0) {
12977 return void 0;
12978 } else if (documents2.length === 1) {
12979 return documents2[0];
12980 }
12981 throw new exception("expected a single document in the stream, but found more");
12982 }
12983 var loadAll_1 = loadAll$1;
12984 var load_1 = load$1;
12985 var loader$j = {
12986 loadAll: loadAll_1,
12987 load: load_1
12988 };
12989 var FAILSAFE_SCHEMA = failsafe;
12990 var load = loader$j.load;
12991 const frontMatterRegex = /^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;
12992 function extractFrontMatter(text2, db2) {
12993 var _a, _b;
12994 const matches = text2.match(frontMatterRegex);
12995 if (matches) {
12996 const parsed = load(matches[1], {
12997 // To keep things simple, only allow strings, arrays, and plain objects.
12998 // https://www.yaml.org/spec/1.2/spec.html#id2802346
12999 schema: FAILSAFE_SCHEMA
13000 });
13001 if (parsed == null ? void 0 : parsed.title) {
13002 (_a = db2.setDiagramTitle) == null ? void 0 : _a.call(db2, parsed.title);
13003 }
13004 if (parsed == null ? void 0 : parsed.displayMode) {
13005 (_b = db2.setDisplayMode) == null ? void 0 : _b.call(db2, parsed.displayMode);
13006 }
13007 return text2.slice(matches[0].length);
13008 } else {
13009 return text2;
13010 }
13011 }
13012 const assignWithDepth = function(dst, src, config2) {
13013 const { depth, clobber } = Object.assign({ depth: 2, clobber: false }, config2);
13014 if (Array.isArray(src) && !Array.isArray(dst)) {
13015 src.forEach((s) => assignWithDepth(dst, s, config2));
13016 return dst;
13017 } else if (Array.isArray(src) && Array.isArray(dst)) {
13018 src.forEach((s) => {
13019 if (!dst.includes(s)) {
13020 dst.push(s);
13021 }
13022 });
13023 return dst;
13024 }
13025 if (dst === void 0 || depth <= 0) {
13026 if (dst !== void 0 && dst !== null && typeof dst === "object" && typeof src === "object") {
13027 return Object.assign(dst, src);
13028 } else {
13029 return src;
13030 }
13031 }
13032 if (src !== void 0 && typeof dst === "object" && typeof src === "object") {
13033 Object.keys(src).forEach((key) => {
13034 if (typeof src[key] === "object" && (dst[key] === void 0 || typeof dst[key] === "object")) {
13035 if (dst[key] === void 0) {
13036 dst[key] = Array.isArray(src[key]) ? [] : {};
13037 }
13038 dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });
13039 } else if (clobber || typeof dst[key] !== "object" && typeof src[key] !== "object") {
13040 dst[key] = src[key];
13041 }
13042 });
13043 }
13044 return dst;
13045 };
13046 const assignWithDepth$1 = assignWithDepth;
13047 const defaultConfig = Object.freeze(defaultConfig$1);
13048 let siteConfig = assignWithDepth$1({}, defaultConfig);
13049 let configFromInitialize;
13050 let directives = [];
13051 let currentConfig = assignWithDepth$1({}, defaultConfig);
13052 const updateCurrentConfig = (siteCfg, _directives) => {
13053 let cfg = assignWithDepth$1({}, siteCfg);
13054 let sumOfDirectives = {};
13055 for (const d of _directives) {
13056 sanitize(d);
13057 sumOfDirectives = assignWithDepth$1(sumOfDirectives, d);
13058 }
13059 cfg = assignWithDepth$1(cfg, sumOfDirectives);
13060 if (sumOfDirectives.theme && sumOfDirectives.theme in theme) {
13061 const tmpConfigFromInitialize = assignWithDepth$1({}, configFromInitialize);
13062 const themeVariables = assignWithDepth$1(
13063 tmpConfigFromInitialize.themeVariables || {},
13064 sumOfDirectives.themeVariables
13065 );
13066 if (cfg.theme && cfg.theme in theme) {
13067 cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables);
13068 }
13069 }
13070 currentConfig = cfg;
13071 checkConfig(currentConfig);
13072 return currentConfig;
13073 };
13074 const setSiteConfig = (conf2) => {
13075 siteConfig = assignWithDepth$1({}, defaultConfig);
13076 siteConfig = assignWithDepth$1(siteConfig, conf2);
13077 if (conf2.theme && theme[conf2.theme]) {
13078 siteConfig.themeVariables = theme[conf2.theme].getThemeVariables(conf2.themeVariables);
13079 }
13080 updateCurrentConfig(siteConfig, directives);
13081 return siteConfig;
13082 };
13083 const saveConfigFromInitialize = (conf2) => {
13084 configFromInitialize = assignWithDepth$1({}, conf2);
13085 };
13086 const updateSiteConfig = (conf2) => {
13087 siteConfig = assignWithDepth$1(siteConfig, conf2);
13088 updateCurrentConfig(siteConfig, directives);
13089 return siteConfig;
13090 };
13091 const getSiteConfig = () => {
13092 return assignWithDepth$1({}, siteConfig);
13093 };
13094 const setConfig = (conf2) => {
13095 checkConfig(conf2);
13096 assignWithDepth$1(currentConfig, conf2);
13097 return getConfig$1();
13098 };
13099 const getConfig$1 = () => {
13100 return assignWithDepth$1({}, currentConfig);
13101 };
13102 const sanitize = (options2) => {
13103 ["secure", ...siteConfig.secure ?? []].forEach((key) => {
13104 if (options2[key] !== void 0) {
13105 log$1.debug(`Denied attempt to modify a secure key ${key}`, options2[key]);
13106 delete options2[key];
13107 }
13108 });
13109 Object.keys(options2).forEach((key) => {
13110 if (key.indexOf("__") === 0) {
13111 delete options2[key];
13112 }
13113 });
13114 Object.keys(options2).forEach((key) => {
13115 if (typeof options2[key] === "string" && (options2[key].includes("<") || options2[key].includes(">") || options2[key].includes("url(data:"))) {
13116 delete options2[key];
13117 }
13118 if (typeof options2[key] === "object") {
13119 sanitize(options2[key]);
13120 }
13121 });
13122 };
13123 const addDirective = (directive2) => {
13124 if (directive2.fontFamily) {
13125 if (!directive2.themeVariables) {
13126 directive2.themeVariables = { fontFamily: directive2.fontFamily };
13127 } else {
13128 if (!directive2.themeVariables.fontFamily) {
13129 directive2.themeVariables = { fontFamily: directive2.fontFamily };
13130 }
13131 }
13132 }
13133 directives.push(directive2);
13134 updateCurrentConfig(siteConfig, directives);
13135 };
13136 const reset = (config2 = siteConfig) => {
13137 directives = [];
13138 updateCurrentConfig(config2, directives);
13139 };
13140 var ConfigWarning = /* @__PURE__ */ ((ConfigWarning2) => {
13141 ConfigWarning2["LAZY_LOAD_DEPRECATED"] = "The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead.";
13142 return ConfigWarning2;
13143 })(ConfigWarning || {});
13144 const issuedWarnings = {};
13145 const issueWarning = (warning) => {
13146 if (issuedWarnings[warning]) {
13147 return;
13148 }
13149 log$1.warn(ConfigWarning[warning]);
13150 issuedWarnings[warning] = true;
13151 };
13152 const checkConfig = (config2) => {
13153 if (!config2) {
13154 return;
13155 }
13156 if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) {
13157 issueWarning("LAZY_LOAD_DEPRECATED");
13158 }
13159 };
13160 const d3Attrs = function(d3Elem, attrs) {
13161 for (let attr of attrs) {
13162 d3Elem.attr(attr[0], attr[1]);
13163 }
13164 };
13165 const calculateSvgSizeAttrs = function(height2, width2, useMaxWidth) {
13166 let attrs = /* @__PURE__ */ new Map();
13167 if (useMaxWidth) {
13168 attrs.set("width", "100%");
13169 attrs.set("style", `max-width: ${width2}px;`);
13170 } else {
13171 attrs.set("height", height2);
13172 attrs.set("width", width2);
13173 }
13174 return attrs;
13175 };
13176 const configureSvgSize = function(svgElem, height2, width2, useMaxWidth) {
13177 const attrs = calculateSvgSizeAttrs(height2, width2, useMaxWidth);
13178 d3Attrs(svgElem, attrs);
13179 };
13180 const setupGraphViewbox$1 = function(graph, svgElem, padding2, useMaxWidth) {
13181 const svgBounds = svgElem.node().getBBox();
13182 const sWidth = svgBounds.width;
13183 const sHeight = svgBounds.height;
13184 log$1.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds);
13185 let width2 = 0;
13186 let height2 = 0;
13187 log$1.info(`Graph bounds: ${width2}x${height2}`, graph);
13188 width2 = sWidth + padding2 * 2;
13189 height2 = sHeight + padding2 * 2;
13190 log$1.info(`Calculated bounds: ${width2}x${height2}`);
13191 configureSvgSize(svgElem, height2, width2, useMaxWidth);
13192 const vBox = `${svgBounds.x - padding2} ${svgBounds.y - padding2} ${svgBounds.width + 2 * padding2} ${svgBounds.height + 2 * padding2}`;
13193 svgElem.attr("viewBox", vBox);
13194 };
13195 const themes = {};
13196 const getStyles$g = (type2, userStyles, options2) => {
13197 let diagramStyles = "";
13198 if (type2 in themes && themes[type2]) {
13199 diagramStyles = themes[type2](options2);
13200 } else {
13201 log$1.warn(`No theme found for ${type2}`);
13202 }
13203 return ` & {
13204 font-family: ${options2.fontFamily};
13205 font-size: ${options2.fontSize};
13206 fill: ${options2.textColor}
13207 }
13208
13209 /* Classes common for multiple diagrams */
13210
13211 & .error-icon {
13212 fill: ${options2.errorBkgColor};
13213 }
13214 & .error-text {
13215 fill: ${options2.errorTextColor};
13216 stroke: ${options2.errorTextColor};
13217 }
13218
13219 & .edge-thickness-normal {
13220 stroke-width: 2px;
13221 }
13222 & .edge-thickness-thick {
13223 stroke-width: 3.5px
13224 }
13225 & .edge-pattern-solid {
13226 stroke-dasharray: 0;
13227 }
13228
13229 & .edge-pattern-dashed{
13230 stroke-dasharray: 3;
13231 }
13232 .edge-pattern-dotted {
13233 stroke-dasharray: 2;
13234 }
13235
13236 & .marker {
13237 fill: ${options2.lineColor};
13238 stroke: ${options2.lineColor};
13239 }
13240 & .marker.cross {
13241 stroke: ${options2.lineColor};
13242 }
13243
13244 & svg {
13245 font-family: ${options2.fontFamily};
13246 font-size: ${options2.fontSize};
13247 }
13248
13249 ${diagramStyles}
13250
13251 ${userStyles}
13252`;
13253 };
13254 const addStylesForDiagram = (type2, diagramTheme) => {
13255 themes[type2] = diagramTheme;
13256 };
13257 const getStyles$h = getStyles$g;
13258 let title$1 = "";
13259 let diagramTitle = "";
13260 let description = "";
13261 const sanitizeText$5 = (txt) => sanitizeText$6(txt, getConfig$1());
13262 const clear$j = function() {
13263 title$1 = "";
13264 description = "";
13265 diagramTitle = "";
13266 };
13267 const setAccTitle = function(txt) {
13268 title$1 = sanitizeText$5(txt).replace(/^\s+/g, "");
13269 };
13270 const getAccTitle = function() {
13271 return title$1 || diagramTitle;
13272 };
13273 const setAccDescription = function(txt) {
13274 description = sanitizeText$5(txt).replace(/\n\s+/g, "\n");
13275 };
13276 const getAccDescription = function() {
13277 return description;
13278 };
13279 const setDiagramTitle = function(txt) {
13280 diagramTitle = sanitizeText$5(txt);
13281 };
13282 const getDiagramTitle = function() {
13283 return diagramTitle;
13284 };
13285 const commonDb = {
13286 getAccTitle,
13287 setAccTitle,
13288 getDiagramTitle,
13289 setDiagramTitle,
13290 getAccDescription,
13291 setAccDescription,
13292 clear: clear$j
13293 };
13294 const commonDb$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
13295 __proto__: null,
13296 clear: clear$j,
13297 default: commonDb,
13298 getAccDescription,
13299 getAccTitle,
13300 getDiagramTitle,
13301 setAccDescription,
13302 setAccTitle,
13303 setDiagramTitle
13304 }, Symbol.toStringTag, { value: "Module" }));
13305 let currentDirective = {};
13306 const parseDirective$e = function(p, statement, context, type2) {
13307 log$1.debug("parseDirective is being called", statement, context, type2);
13308 try {
13309 if (statement !== void 0) {
13310 statement = statement.trim();
13311 switch (context) {
13312 case "open_directive":
13313 currentDirective = {};
13314 break;
13315 case "type_directive":
13316 if (!currentDirective) {
13317 throw new Error("currentDirective is undefined");
13318 }
13319 currentDirective.type = statement.toLowerCase();
13320 break;
13321 case "arg_directive":
13322 if (!currentDirective) {
13323 throw new Error("currentDirective is undefined");
13324 }
13325 currentDirective.args = JSON.parse(statement);
13326 break;
13327 case "close_directive":
13328 handleDirective(p, currentDirective, type2);
13329 currentDirective = void 0;
13330 break;
13331 }
13332 }
13333 } catch (error) {
13334 log$1.error(
13335 `Error while rendering sequenceDiagram directive: ${statement} jison context: ${context}`
13336 );
13337 log$1.error(error.message);
13338 }
13339 };
13340 const handleDirective = function(p, directive2, type2) {
13341 log$1.info(`Directive type=${directive2.type} with args:`, directive2.args);
13342 switch (directive2.type) {
13343 case "init":
13344 case "initialize": {
13345 ["config"].forEach((prop) => {
13346 if (directive2.args[prop] !== void 0) {
13347 if (type2 === "flowchart-v2") {
13348 type2 = "flowchart";
13349 }
13350 directive2.args[type2] = directive2.args[prop];
13351 delete directive2.args[prop];
13352 }
13353 });
13354 log$1.info("sanitize in handleDirective", directive2.args);
13355 directiveSanitizer(directive2.args);
13356 log$1.info("sanitize in handleDirective (done)", directive2.args);
13357 addDirective(directive2.args);
13358 break;
13359 }
13360 case "wrap":
13361 case "nowrap":
13362 if (p && p["setWrap"]) {
13363 p.setWrap(directive2.type === "wrap");
13364 }
13365 break;
13366 case "themeCss":
13367 log$1.warn("themeCss encountered");
13368 break;
13369 default:
13370 log$1.warn(
13371 `Unhandled directive: source: '%%{${directive2.type}: ${JSON.stringify(
13372 directive2.args ? directive2.args : {}
13373 )}}%%`,
13374 directive2
13375 );
13376 break;
13377 }
13378 };
13379 const log = log$1;
13380 const setLogLevel = setLogLevel$1;
13381 const getConfig = getConfig$1;
13382 const sanitizeText$4 = (text2) => sanitizeText$6(text2, getConfig());
13383 const setupGraphViewbox = setupGraphViewbox$1;
13384 const getCommonDb$1 = () => {
13385 return commonDb$1;
13386 };
13387 const parseDirective$d = (p, statement, context, type2) => parseDirective$e(p, statement, context, type2);
13388 const diagrams = {};
13389 const registerDiagram = (id2, diagram2, detector2) => {
13390 if (diagrams[id2]) {
13391 throw new Error(`Diagram ${id2} already registered.`);
13392 }
13393 diagrams[id2] = diagram2;
13394 if (detector2) {
13395 addDetector(id2, detector2);
13396 }
13397 addStylesForDiagram(id2, diagram2.styles);
13398 if (diagram2.injectUtils) {
13399 diagram2.injectUtils(
13400 log,
13401 setLogLevel,
13402 getConfig,
13403 sanitizeText$4,
13404 setupGraphViewbox,
13405 getCommonDb$1(),
13406 parseDirective$d
13407 );
13408 }
13409 };
13410 const getDiagram = (name2) => {
13411 if (name2 in diagrams) {
13412 return diagrams[name2];
13413 }
13414 throw new Error(`Diagram ${name2} not found.`);
13415 };
13416 class UnknownDiagramError extends Error {
13417 constructor(message2) {
13418 super(message2);
13419 this.name = "UnknownDiagramError";
13420 }
13421 }
13422 const directive$1 = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
13423 const anyComment = /\s*%%.*\n/gm;
13424 const detectors = {};
13425 const detectType = function(text2, config2) {
13426 text2 = text2.replace(frontMatterRegex, "").replace(directive$1, "").replace(anyComment, "\n");
13427 for (const [key, { detector: detector2 }] of Object.entries(detectors)) {
13428 const diagram2 = detector2(text2, config2);
13429 if (diagram2) {
13430 return key;
13431 }
13432 }
13433 throw new UnknownDiagramError(
13434 `No diagram type detected matching given configuration for text: ${text2}`
13435 );
13436 };
13437 const registerLazyLoadedDiagrams = (...diagrams2) => {
13438 for (const { id: id2, detector: detector2, loader: loader2 } of diagrams2) {
13439 addDetector(id2, detector2, loader2);
13440 }
13441 };
13442 const loadRegisteredDiagrams = async () => {
13443 log$1.debug(`Loading registered diagrams`);
13444 const results = await Promise.allSettled(
13445 Object.entries(detectors).map(async ([key, { detector: detector2, loader: loader2 }]) => {
13446 if (loader2) {
13447 try {
13448 getDiagram(key);
13449 } catch (error) {
13450 try {
13451 const { diagram: diagram2, id: id2 } = await loader2();
13452 registerDiagram(id2, diagram2, detector2);
13453 } catch (err) {
13454 log$1.error(`Failed to load external diagram with key ${key}. Removing from detectors.`);
13455 delete detectors[key];
13456 throw err;
13457 }
13458 }
13459 }
13460 })
13461 );
13462 const failed = results.filter((result) => result.status === "rejected");
13463 if (failed.length > 0) {
13464 log$1.error(`Failed to load ${failed.length} external diagrams`);
13465 for (const res of failed) {
13466 log$1.error(res);
13467 }
13468 throw new Error(`Failed to load ${failed.length} external diagrams`);
13469 }
13470 };
13471 const addDetector = (key, detector2, loader2) => {
13472 if (detectors[key]) {
13473 log$1.error(`Detector with key ${key} already exists`);
13474 } else {
13475 detectors[key] = { detector: detector2, loader: loader2 };
13476 }
13477 log$1.debug(`Detector with key ${key} added${loader2 ? " with loader" : ""}`);
13478 };
13479 const getDiagramLoader = (key) => {
13480 return detectors[key].loader;
13481 };
13482 var freeGlobal = typeof global == "object" && global && global.Object === Object && global;
13483 const freeGlobal$1 = freeGlobal;
13484 var freeSelf = typeof self == "object" && self && self.Object === Object && self;
13485 var root = freeGlobal$1 || freeSelf || Function("return this")();
13486 const root$1 = root;
13487 var Symbol$1 = root$1.Symbol;
13488 const Symbol$2 = Symbol$1;
13489 var objectProto$i = Object.prototype;
13490 var hasOwnProperty$g = objectProto$i.hasOwnProperty;
13491 var nativeObjectToString$1 = objectProto$i.toString;
13492 var symToStringTag$1 = Symbol$2 ? Symbol$2.toStringTag : void 0;
13493 function getRawTag(value) {
13494 var isOwn = hasOwnProperty$g.call(value, symToStringTag$1), tag = value[symToStringTag$1];
13495 try {
13496 value[symToStringTag$1] = void 0;
13497 var unmasked = true;
13498 } catch (e) {
13499 }
13500 var result = nativeObjectToString$1.call(value);
13501 if (unmasked) {
13502 if (isOwn) {
13503 value[symToStringTag$1] = tag;
13504 } else {
13505 delete value[symToStringTag$1];
13506 }
13507 }
13508 return result;
13509 }
13510 var objectProto$h = Object.prototype;
13511 var nativeObjectToString = objectProto$h.toString;
13512 function objectToString(value) {
13513 return nativeObjectToString.call(value);
13514 }
13515 var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
13516 var symToStringTag = Symbol$2 ? Symbol$2.toStringTag : void 0;
13517 function baseGetTag(value) {
13518 if (value == null) {
13519 return value === void 0 ? undefinedTag : nullTag;
13520 }
13521 return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
13522 }
13523 function isObject(value) {
13524 var type2 = typeof value;
13525 return value != null && (type2 == "object" || type2 == "function");
13526 }
13527 var asyncTag = "[object AsyncFunction]", funcTag$2 = "[object Function]", genTag$1 = "[object GeneratorFunction]", proxyTag = "[object Proxy]";
13528 function isFunction(value) {
13529 if (!isObject(value)) {
13530 return false;
13531 }
13532 var tag = baseGetTag(value);
13533 return tag == funcTag$2 || tag == genTag$1 || tag == asyncTag || tag == proxyTag;
13534 }
13535 var coreJsData = root$1["__core-js_shared__"];
13536 const coreJsData$1 = coreJsData;
13537 var maskSrcKey = function() {
13538 var uid = /[^.]+$/.exec(coreJsData$1 && coreJsData$1.keys && coreJsData$1.keys.IE_PROTO || "");
13539 return uid ? "Symbol(src)_1." + uid : "";
13540 }();
13541 function isMasked(func) {
13542 return !!maskSrcKey && maskSrcKey in func;
13543 }
13544 var funcProto$2 = Function.prototype;
13545 var funcToString$2 = funcProto$2.toString;
13546 function toSource(func) {
13547 if (func != null) {
13548 try {
13549 return funcToString$2.call(func);
13550 } catch (e) {
13551 }
13552 try {
13553 return func + "";
13554 } catch (e) {
13555 }
13556 }
13557 return "";
13558 }
13559 var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
13560 var reIsHostCtor = /^\[object .+?Constructor\]$/;
13561 var funcProto$1 = Function.prototype, objectProto$g = Object.prototype;
13562 var funcToString$1 = funcProto$1.toString;
13563 var hasOwnProperty$f = objectProto$g.hasOwnProperty;
13564 var reIsNative = RegExp(
13565 "^" + funcToString$1.call(hasOwnProperty$f).replace(reRegExpChar, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
13566 );
13567 function baseIsNative(value) {
13568 if (!isObject(value) || isMasked(value)) {
13569 return false;
13570 }
13571 var pattern = isFunction(value) ? reIsNative : reIsHostCtor;
13572 return pattern.test(toSource(value));
13573 }
13574 function getValue(object2, key) {
13575 return object2 == null ? void 0 : object2[key];
13576 }
13577 function getNative(object2, key) {
13578 var value = getValue(object2, key);
13579 return baseIsNative(value) ? value : void 0;
13580 }
13581 var nativeCreate = getNative(Object, "create");
13582 const nativeCreate$1 = nativeCreate;
13583 function hashClear() {
13584 this.__data__ = nativeCreate$1 ? nativeCreate$1(null) : {};
13585 this.size = 0;
13586 }
13587 function hashDelete(key) {
13588 var result = this.has(key) && delete this.__data__[key];
13589 this.size -= result ? 1 : 0;
13590 return result;
13591 }
13592 var HASH_UNDEFINED$2 = "__lodash_hash_undefined__";
13593 var objectProto$f = Object.prototype;
13594 var hasOwnProperty$e = objectProto$f.hasOwnProperty;
13595 function hashGet(key) {
13596 var data = this.__data__;
13597 if (nativeCreate$1) {
13598 var result = data[key];
13599 return result === HASH_UNDEFINED$2 ? void 0 : result;
13600 }
13601 return hasOwnProperty$e.call(data, key) ? data[key] : void 0;
13602 }
13603 var objectProto$e = Object.prototype;
13604 var hasOwnProperty$d = objectProto$e.hasOwnProperty;
13605 function hashHas(key) {
13606 var data = this.__data__;
13607 return nativeCreate$1 ? data[key] !== void 0 : hasOwnProperty$d.call(data, key);
13608 }
13609 var HASH_UNDEFINED$1 = "__lodash_hash_undefined__";
13610 function hashSet(key, value) {
13611 var data = this.__data__;
13612 this.size += this.has(key) ? 0 : 1;
13613 data[key] = nativeCreate$1 && value === void 0 ? HASH_UNDEFINED$1 : value;
13614 return this;
13615 }
13616 function Hash(entries2) {
13617 var index2 = -1, length2 = entries2 == null ? 0 : entries2.length;
13618 this.clear();
13619 while (++index2 < length2) {
13620 var entry = entries2[index2];
13621 this.set(entry[0], entry[1]);
13622 }
13623 }
13624 Hash.prototype.clear = hashClear;
13625 Hash.prototype["delete"] = hashDelete;
13626 Hash.prototype.get = hashGet;
13627 Hash.prototype.has = hashHas;
13628 Hash.prototype.set = hashSet;
13629 function listCacheClear() {
13630 this.__data__ = [];
13631 this.size = 0;
13632 }
13633 function eq(value, other) {
13634 return value === other || value !== value && other !== other;
13635 }
13636 function assocIndexOf(array2, key) {
13637 var length2 = array2.length;
13638 while (length2--) {
13639 if (eq(array2[length2][0], key)) {
13640 return length2;
13641 }
13642 }
13643 return -1;
13644 }
13645 var arrayProto = Array.prototype;
13646 var splice$1 = arrayProto.splice;
13647 function listCacheDelete(key) {
13648 var data = this.__data__, index2 = assocIndexOf(data, key);
13649 if (index2 < 0) {
13650 return false;
13651 }
13652 var lastIndex = data.length - 1;
13653 if (index2 == lastIndex) {
13654 data.pop();
13655 } else {
13656 splice$1.call(data, index2, 1);
13657 }
13658 --this.size;
13659 return true;
13660 }
13661 function listCacheGet(key) {
13662 var data = this.__data__, index2 = assocIndexOf(data, key);
13663 return index2 < 0 ? void 0 : data[index2][1];
13664 }
13665 function listCacheHas(key) {
13666 return assocIndexOf(this.__data__, key) > -1;
13667 }
13668 function listCacheSet(key, value) {
13669 var data = this.__data__, index2 = assocIndexOf(data, key);
13670 if (index2 < 0) {
13671 ++this.size;
13672 data.push([key, value]);
13673 } else {
13674 data[index2][1] = value;
13675 }
13676 return this;
13677 }
13678 function ListCache(entries2) {
13679 var index2 = -1, length2 = entries2 == null ? 0 : entries2.length;
13680 this.clear();
13681 while (++index2 < length2) {
13682 var entry = entries2[index2];
13683 this.set(entry[0], entry[1]);
13684 }
13685 }
13686 ListCache.prototype.clear = listCacheClear;
13687 ListCache.prototype["delete"] = listCacheDelete;
13688 ListCache.prototype.get = listCacheGet;
13689 ListCache.prototype.has = listCacheHas;
13690 ListCache.prototype.set = listCacheSet;
13691 var Map$1 = getNative(root$1, "Map");
13692 const Map$2 = Map$1;
13693 function mapCacheClear() {
13694 this.size = 0;
13695 this.__data__ = {
13696 "hash": new Hash(),
13697 "map": new (Map$2 || ListCache)(),
13698 "string": new Hash()
13699 };
13700 }
13701 function isKeyable(value) {
13702 var type2 = typeof value;
13703 return type2 == "string" || type2 == "number" || type2 == "symbol" || type2 == "boolean" ? value !== "__proto__" : value === null;
13704 }
13705 function getMapData(map2, key) {
13706 var data = map2.__data__;
13707 return isKeyable(key) ? data[typeof key == "string" ? "string" : "hash"] : data.map;
13708 }
13709 function mapCacheDelete(key) {
13710 var result = getMapData(this, key)["delete"](key);
13711 this.size -= result ? 1 : 0;
13712 return result;
13713 }
13714 function mapCacheGet(key) {
13715 return getMapData(this, key).get(key);
13716 }
13717 function mapCacheHas(key) {
13718 return getMapData(this, key).has(key);
13719 }
13720 function mapCacheSet(key, value) {
13721 var data = getMapData(this, key), size2 = data.size;
13722 data.set(key, value);
13723 this.size += data.size == size2 ? 0 : 1;
13724 return this;
13725 }
13726 function MapCache(entries2) {
13727 var index2 = -1, length2 = entries2 == null ? 0 : entries2.length;
13728 this.clear();
13729 while (++index2 < length2) {
13730 var entry = entries2[index2];
13731 this.set(entry[0], entry[1]);
13732 }
13733 }
13734 MapCache.prototype.clear = mapCacheClear;
13735 MapCache.prototype["delete"] = mapCacheDelete;
13736 MapCache.prototype.get = mapCacheGet;
13737 MapCache.prototype.has = mapCacheHas;
13738 MapCache.prototype.set = mapCacheSet;
13739 var FUNC_ERROR_TEXT = "Expected a function";
13740 function memoize(func, resolver2) {
13741 if (typeof func != "function" || resolver2 != null && typeof resolver2 != "function") {
13742 throw new TypeError(FUNC_ERROR_TEXT);
13743 }
13744 var memoized = function() {
13745 var args = arguments, key = resolver2 ? resolver2.apply(this, args) : args[0], cache = memoized.cache;
13746 if (cache.has(key)) {
13747 return cache.get(key);
13748 }
13749 var result = func.apply(this, args);
13750 memoized.cache = cache.set(key, result) || cache;
13751 return result;
13752 };
13753 memoized.cache = new (memoize.Cache || MapCache)();
13754 return memoized;
13755 }
13756 memoize.Cache = MapCache;
13757 const d3CurveTypes = {
13758 curveBasis,
13759 curveBasisClosed,
13760 curveBasisOpen,
13761 curveBumpX: bumpX,
13762 curveBumpY: bumpY,
13763 curveBundle,
13764 curveCardinalClosed,
13765 curveCardinalOpen,
13766 curveCardinal,
13767 curveCatmullRomClosed,
13768 curveCatmullRomOpen,
13769 curveCatmullRom,
13770 curveLinear,
13771 curveLinearClosed,
13772 curveMonotoneX: monotoneX,
13773 curveMonotoneY: monotoneY,
13774 curveNatural,
13775 curveStep,
13776 curveStepAfter: stepAfter,
13777 curveStepBefore: stepBefore
13778 };
13779 const directive = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
13780 const directiveWithoutOpen = /\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
13781 const detectInit = function(text2, config2) {
13782 const inits = detectDirective(text2, /(?:init\b)|(?:initialize\b)/);
13783 let results = {};
13784 if (Array.isArray(inits)) {
13785 const args = inits.map((init2) => init2.args);
13786 directiveSanitizer(args);
13787 results = assignWithDepth$1(results, [...args]);
13788 } else {
13789 results = inits.args;
13790 }
13791 if (results) {
13792 let type2 = detectType(text2, config2);
13793 ["config"].forEach((prop) => {
13794 if (results[prop] !== void 0) {
13795 if (type2 === "flowchart-v2") {
13796 type2 = "flowchart";
13797 }
13798 results[type2] = results[prop];
13799 delete results[prop];
13800 }
13801 });
13802 }
13803 return results;
13804 };
13805 const detectDirective = function(text2, type2 = null) {
13806 try {
13807 const commentWithoutDirectives = new RegExp(
13808 `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).*
13809`,
13810 "ig"
13811 );
13812 text2 = text2.trim().replace(commentWithoutDirectives, "").replace(/'/gm, '"');
13813 log$1.debug(
13814 `Detecting diagram directive${type2 !== null ? " type:" + type2 : ""} based on the text:${text2}`
13815 );
13816 let match;
13817 const result = [];
13818 while ((match = directive.exec(text2)) !== null) {
13819 if (match.index === directive.lastIndex) {
13820 directive.lastIndex++;
13821 }
13822 if (match && !type2 || type2 && match[1] && match[1].match(type2) || type2 && match[2] && match[2].match(type2)) {
13823 const type22 = match[1] ? match[1] : match[2];
13824 const args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null;
13825 result.push({ type: type22, args });
13826 }
13827 }
13828 if (result.length === 0) {
13829 result.push({ type: text2, args: null });
13830 }
13831 return result.length === 1 ? result[0] : result;
13832 } catch (error) {
13833 log$1.error(
13834 `ERROR: ${error.message} - Unable to parse directive
13835 ${type2 !== null ? " type:" + type2 : ""} based on the text:${text2}`
13836 );
13837 return { type: null, args: null };
13838 }
13839 };
13840 const isSubstringInArray = function(str2, arr) {
13841 for (const [i2, element2] of arr.entries()) {
13842 if (element2.match(str2)) {
13843 return i2;
13844 }
13845 }
13846 return -1;
13847 };
13848 function interpolateToCurve(interpolate2, defaultCurve) {
13849 if (!interpolate2) {
13850 return defaultCurve;
13851 }
13852 const curveName = `curve${interpolate2.charAt(0).toUpperCase() + interpolate2.slice(1)}`;
13853 return d3CurveTypes[curveName] || defaultCurve;
13854 }
13855 function formatUrl(linkStr, config2) {
13856 const url = linkStr.trim();
13857 if (url) {
13858 if (config2.securityLevel !== "loose") {
13859 return sanitizeUrl_1(url);
13860 }
13861 return url;
13862 }
13863 }
13864 const runFunc = (functionName, ...params) => {
13865 const arrPaths = functionName.split(".");
13866 const len = arrPaths.length - 1;
13867 const fnName = arrPaths[len];
13868 let obj = window;
13869 for (let i2 = 0; i2 < len; i2++) {
13870 obj = obj[arrPaths[i2]];
13871 if (!obj) {
13872 return;
13873 }
13874 }
13875 obj[fnName](...params);
13876 };
13877 function distance(p1, p2) {
13878 return p1 && p2 ? Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)) : 0;
13879 }
13880 function traverseEdge(points) {
13881 let prevPoint;
13882 let totalDistance = 0;
13883 points.forEach((point2) => {
13884 totalDistance += distance(point2, prevPoint);
13885 prevPoint = point2;
13886 });
13887 let remainingDistance = totalDistance / 2;
13888 let center2 = void 0;
13889 prevPoint = void 0;
13890 points.forEach((point2) => {
13891 if (prevPoint && !center2) {
13892 const vectorDistance = distance(point2, prevPoint);
13893 if (vectorDistance < remainingDistance) {
13894 remainingDistance -= vectorDistance;
13895 } else {
13896 const distanceRatio = remainingDistance / vectorDistance;
13897 if (distanceRatio <= 0) {
13898 center2 = prevPoint;
13899 }
13900 if (distanceRatio >= 1) {
13901 center2 = { x: point2.x, y: point2.y };
13902 }
13903 if (distanceRatio > 0 && distanceRatio < 1) {
13904 center2 = {
13905 x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point2.x,
13906 y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point2.y
13907 };
13908 }
13909 }
13910 }
13911 prevPoint = point2;
13912 });
13913 return center2;
13914 }
13915 function calcLabelPosition(points) {
13916 if (points.length === 1) {
13917 return points[0];
13918 }
13919 return traverseEdge(points);
13920 }
13921 const calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => {
13922 let prevPoint;
13923 log$1.info(`our points ${JSON.stringify(points)}`);
13924 if (points[0] !== initialPosition) {
13925 points = points.reverse();
13926 }
13927 const distanceToCardinalityPoint = 25;
13928 let remainingDistance = distanceToCardinalityPoint;
13929 let center2;
13930 prevPoint = void 0;
13931 points.forEach((point2) => {
13932 if (prevPoint && !center2) {
13933 const vectorDistance = distance(point2, prevPoint);
13934 if (vectorDistance < remainingDistance) {
13935 remainingDistance -= vectorDistance;
13936 } else {
13937 const distanceRatio = remainingDistance / vectorDistance;
13938 if (distanceRatio <= 0) {
13939 center2 = prevPoint;
13940 }
13941 if (distanceRatio >= 1) {
13942 center2 = { x: point2.x, y: point2.y };
13943 }
13944 if (distanceRatio > 0 && distanceRatio < 1) {
13945 center2 = {
13946 x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point2.x,
13947 y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point2.y
13948 };
13949 }
13950 }
13951 }
13952 prevPoint = point2;
13953 });
13954 const d = isRelationTypePresent ? 10 : 5;
13955 const angle = Math.atan2(points[0].y - center2.y, points[0].x - center2.x);
13956 const cardinalityPosition = { x: 0, y: 0 };
13957 cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center2.x) / 2;
13958 cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center2.y) / 2;
13959 return cardinalityPosition;
13960 };
13961 function calcTerminalLabelPosition(terminalMarkerSize, position2, _points) {
13962 let points = JSON.parse(JSON.stringify(_points));
13963 let prevPoint;
13964 log$1.info("our points", points);
13965 if (position2 !== "start_left" && position2 !== "start_right") {
13966 points = points.reverse();
13967 }
13968 points.forEach((point2) => {
13969 prevPoint = point2;
13970 });
13971 const distanceToCardinalityPoint = 25 + terminalMarkerSize;
13972 let remainingDistance = distanceToCardinalityPoint;
13973 let center2;
13974 prevPoint = void 0;
13975 points.forEach((point2) => {
13976 if (prevPoint && !center2) {
13977 const vectorDistance = distance(point2, prevPoint);
13978 if (vectorDistance < remainingDistance) {
13979 remainingDistance -= vectorDistance;
13980 } else {
13981 const distanceRatio = remainingDistance / vectorDistance;
13982 if (distanceRatio <= 0) {
13983 center2 = prevPoint;
13984 }
13985 if (distanceRatio >= 1) {
13986 center2 = { x: point2.x, y: point2.y };
13987 }
13988 if (distanceRatio > 0 && distanceRatio < 1) {
13989 center2 = {
13990 x: (1 - distanceRatio) * prevPoint.x + distanceRatio * point2.x,
13991 y: (1 - distanceRatio) * prevPoint.y + distanceRatio * point2.y
13992 };
13993 }
13994 }
13995 }
13996 prevPoint = point2;
13997 });
13998 const d = 10 + terminalMarkerSize * 0.5;
13999 const angle = Math.atan2(points[0].y - center2.y, points[0].x - center2.x);
14000 const cardinalityPosition = { x: 0, y: 0 };
14001 cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center2.x) / 2;
14002 cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center2.y) / 2;
14003 if (position2 === "start_left") {
14004 cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center2.x) / 2;
14005 cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center2.y) / 2;
14006 }
14007 if (position2 === "end_right") {
14008 cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center2.x) / 2 - 5;
14009 cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center2.y) / 2 - 5;
14010 }
14011 if (position2 === "end_left") {
14012 cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center2.x) / 2 - 5;
14013 cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center2.y) / 2 - 5;
14014 }
14015 return cardinalityPosition;
14016 }
14017 function getStylesFromArray(arr) {
14018 let style = "";
14019 let labelStyle = "";
14020 for (const element2 of arr) {
14021 if (element2 !== void 0) {
14022 if (element2.startsWith("color:") || element2.startsWith("text-align:")) {
14023 labelStyle = labelStyle + element2 + ";";
14024 } else {
14025 style = style + element2 + ";";
14026 }
14027 }
14028 }
14029 return { style, labelStyle };
14030 }
14031 let cnt$1 = 0;
14032 const generateId$1 = () => {
14033 cnt$1++;
14034 return "id-" + Math.random().toString(36).substr(2, 12) + "-" + cnt$1;
14035 };
14036 function makeid(length2) {
14037 let result = "";
14038 const characters2 = "0123456789abcdef";
14039 const charactersLength = characters2.length;
14040 for (let i2 = 0; i2 < length2; i2++) {
14041 result += characters2.charAt(Math.floor(Math.random() * charactersLength));
14042 }
14043 return result;
14044 }
14045 const random = (options2) => {
14046 return makeid(options2.length);
14047 };
14048 const getTextObj$3 = function() {
14049 return {
14050 x: 0,
14051 y: 0,
14052 fill: void 0,
14053 anchor: "start",
14054 style: "#666",
14055 width: 100,
14056 height: 100,
14057 textMargin: 0,
14058 rx: 0,
14059 ry: 0,
14060 valign: void 0
14061 };
14062 };
14063 const drawSimpleText = function(elem, textData) {
14064 const nText = textData.text.replace(common$1.lineBreakRegex, " ");
14065 const [, _fontSizePx] = parseFontSize(textData.fontSize);
14066 const textElem = elem.append("text");
14067 textElem.attr("x", textData.x);
14068 textElem.attr("y", textData.y);
14069 textElem.style("text-anchor", textData.anchor);
14070 textElem.style("font-family", textData.fontFamily);
14071 textElem.style("font-size", _fontSizePx);
14072 textElem.style("font-weight", textData.fontWeight);
14073 textElem.attr("fill", textData.fill);
14074 if (textData.class !== void 0) {
14075 textElem.attr("class", textData.class);
14076 }
14077 const span = textElem.append("tspan");
14078 span.attr("x", textData.x + textData.textMargin * 2);
14079 span.attr("fill", textData.fill);
14080 span.text(nText);
14081 return textElem;
14082 };
14083 const wrapLabel = memoize(
14084 (label, maxWidth, config2) => {
14085 if (!label) {
14086 return label;
14087 }
14088 config2 = Object.assign(
14089 { fontSize: 12, fontWeight: 400, fontFamily: "Arial", joinWith: "<br/>" },
14090 config2
14091 );
14092 if (common$1.lineBreakRegex.test(label)) {
14093 return label;
14094 }
14095 const words = label.split(" ");
14096 const completedLines = [];
14097 let nextLine = "";
14098 words.forEach((word, index2) => {
14099 const wordLength = calculateTextWidth(`${word} `, config2);
14100 const nextLineLength = calculateTextWidth(nextLine, config2);
14101 if (wordLength > maxWidth) {
14102 const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, "-", config2);
14103 completedLines.push(nextLine, ...hyphenatedStrings);
14104 nextLine = remainingWord;
14105 } else if (nextLineLength + wordLength >= maxWidth) {
14106 completedLines.push(nextLine);
14107 nextLine = word;
14108 } else {
14109 nextLine = [nextLine, word].filter(Boolean).join(" ");
14110 }
14111 const currentWord = index2 + 1;
14112 const isLastWord = currentWord === words.length;
14113 if (isLastWord) {
14114 completedLines.push(nextLine);
14115 }
14116 });
14117 return completedLines.filter((line2) => line2 !== "").join(config2.joinWith);
14118 },
14119 (label, maxWidth, config2) => `${label}${maxWidth}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}${config2.joinWith}`
14120 );
14121 const breakString = memoize(
14122 (word, maxWidth, hyphenCharacter = "-", config2) => {
14123 config2 = Object.assign(
14124 { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 0 },
14125 config2
14126 );
14127 const characters2 = [...word];
14128 const lines = [];
14129 let currentLine = "";
14130 characters2.forEach((character2, index2) => {
14131 const nextLine = `${currentLine}${character2}`;
14132 const lineWidth = calculateTextWidth(nextLine, config2);
14133 if (lineWidth >= maxWidth) {
14134 const currentCharacter = index2 + 1;
14135 const isLastLine = characters2.length === currentCharacter;
14136 const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`;
14137 lines.push(isLastLine ? nextLine : hyphenatedNextLine);
14138 currentLine = "";
14139 } else {
14140 currentLine = nextLine;
14141 }
14142 });
14143 return { hyphenatedStrings: lines, remainingWord: currentLine };
14144 },
14145 (word, maxWidth, hyphenCharacter = "-", config2) => `${word}${maxWidth}${hyphenCharacter}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}`
14146 );
14147 function calculateTextHeight(text2, config2) {
14148 config2 = Object.assign(
14149 { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 15 },
14150 config2
14151 );
14152 return calculateTextDimensions(text2, config2).height;
14153 }
14154 function calculateTextWidth(text2, config2) {
14155 config2 = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: "Arial" }, config2);
14156 return calculateTextDimensions(text2, config2).width;
14157 }
14158 const calculateTextDimensions = memoize(
14159 (text2, config2) => {
14160 config2 = Object.assign({ fontSize: 12, fontWeight: 400, fontFamily: "Arial" }, config2);
14161 const { fontSize, fontFamily, fontWeight } = config2;
14162 if (!text2) {
14163 return { width: 0, height: 0 };
14164 }
14165 const [, _fontSizePx] = parseFontSize(fontSize);
14166 const fontFamilies = ["sans-serif", fontFamily];
14167 const lines = text2.split(common$1.lineBreakRegex);
14168 const dims = [];
14169 const body = select("body");
14170 if (!body.remove) {
14171 return { width: 0, height: 0, lineHeight: 0 };
14172 }
14173 const g = body.append("svg");
14174 for (const fontFamily2 of fontFamilies) {
14175 let cheight = 0;
14176 const dim = { width: 0, height: 0, lineHeight: 0 };
14177 for (const line2 of lines) {
14178 const textObj = getTextObj$3();
14179 textObj.text = line2;
14180 const textElem = drawSimpleText(g, textObj).style("font-size", _fontSizePx).style("font-weight", fontWeight).style("font-family", fontFamily2);
14181 const bBox = (textElem._groups || textElem)[0][0].getBBox();
14182 if (bBox.width === 0 && bBox.height === 0) {
14183 throw new Error("svg element not in render tree");
14184 }
14185 dim.width = Math.round(Math.max(dim.width, bBox.width));
14186 cheight = Math.round(bBox.height);
14187 dim.height += cheight;
14188 dim.lineHeight = Math.round(Math.max(dim.lineHeight, cheight));
14189 }
14190 dims.push(dim);
14191 }
14192 g.remove();
14193 const index2 = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1;
14194 return dims[index2];
14195 },
14196 (text2, config2) => `${text2}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}`
14197 );
14198 const initIdGenerator = class iterator {
14199 constructor(deterministic, seed) {
14200 this.deterministic = deterministic;
14201 this.seed = seed;
14202 this.count = seed ? seed.length : 0;
14203 }
14204 next() {
14205 if (!this.deterministic) {
14206 return Date.now();
14207 }
14208 return this.count++;
14209 }
14210 };
14211 let decoder;
14212 const entityDecode = function(html2) {
14213 decoder = decoder || document.createElement("div");
14214 html2 = escape(html2).replace(/%26/g, "&").replace(/%23/g, "#").replace(/%3B/g, ";");
14215 decoder.innerHTML = html2;
14216 return unescape(decoder.textContent);
14217 };
14218 const directiveSanitizer = (args) => {
14219 log$1.debug("directiveSanitizer called with", args);
14220 if (typeof args === "object") {
14221 if (args.length) {
14222 args.forEach((arg) => directiveSanitizer(arg));
14223 } else {
14224 Object.keys(args).forEach((key) => {
14225 log$1.debug("Checking key", key);
14226 if (key.startsWith("__")) {
14227 log$1.debug("sanitize deleting __ option", key);
14228 delete args[key];
14229 }
14230 if (key.includes("proto")) {
14231 log$1.debug("sanitize deleting proto option", key);
14232 delete args[key];
14233 }
14234 if (key.includes("constr")) {
14235 log$1.debug("sanitize deleting constr option", key);
14236 delete args[key];
14237 }
14238 if (key.includes("themeCSS")) {
14239 log$1.debug("sanitizing themeCss option");
14240 args[key] = sanitizeCss(args[key]);
14241 }
14242 if (key.includes("fontFamily")) {
14243 log$1.debug("sanitizing fontFamily option");
14244 args[key] = sanitizeCss(args[key]);
14245 }
14246 if (key.includes("altFontFamily")) {
14247 log$1.debug("sanitizing altFontFamily option");
14248 args[key] = sanitizeCss(args[key]);
14249 }
14250 if (!configKeys.includes(key)) {
14251 log$1.debug("sanitize deleting option", key);
14252 delete args[key];
14253 } else {
14254 if (typeof args[key] === "object") {
14255 log$1.debug("sanitize deleting object", key);
14256 directiveSanitizer(args[key]);
14257 }
14258 }
14259 });
14260 }
14261 }
14262 if (args.themeVariables) {
14263 const kArr = Object.keys(args.themeVariables);
14264 for (const k of kArr) {
14265 const val = args.themeVariables[k];
14266 if (val && val.match && !val.match(/^[\d "#%(),.;A-Za-z]+$/)) {
14267 args.themeVariables[k] = "";
14268 }
14269 }
14270 }
14271 log$1.debug("After sanitization", args);
14272 };
14273 const sanitizeCss = (str2) => {
14274 let startCnt = 0;
14275 let endCnt = 0;
14276 for (const element2 of str2) {
14277 if (startCnt < endCnt) {
14278 return "{ /* ERROR: Unbalanced CSS */ }";
14279 }
14280 if (element2 === "{") {
14281 startCnt++;
14282 } else if (element2 === "}") {
14283 endCnt++;
14284 }
14285 }
14286 if (startCnt !== endCnt) {
14287 return "{ /* ERROR: Unbalanced CSS */ }";
14288 }
14289 return str2;
14290 };
14291 function isDetailedError(error) {
14292 return "str" in error;
14293 }
14294 function getErrorMessage(error) {
14295 if (error instanceof Error) {
14296 return error.message;
14297 }
14298 return String(error);
14299 }
14300 const insertTitle = (parent, cssClass, titleTopMargin, title2) => {
14301 if (!title2) {
14302 return;
14303 }
14304 const bounds2 = parent.node().getBBox();
14305 parent.append("text").text(title2).attr("x", bounds2.x + bounds2.width / 2).attr("y", -titleTopMargin).attr("class", cssClass);
14306 };
14307 const parseFontSize = (fontSize) => {
14308 if (typeof fontSize === "number") {
14309 return [fontSize, fontSize + "px"];
14310 }
14311 const fontSizeNumber = parseInt(fontSize, 10);
14312 if (Number.isNaN(fontSizeNumber)) {
14313 return [void 0, void 0];
14314 } else if (fontSize === String(fontSizeNumber)) {
14315 return [fontSizeNumber, fontSize + "px"];
14316 } else {
14317 return [fontSizeNumber, fontSize];
14318 }
14319 };
14320 const utils = {
14321 assignWithDepth: assignWithDepth$1,
14322 wrapLabel,
14323 calculateTextHeight,
14324 calculateTextWidth,
14325 calculateTextDimensions,
14326 detectInit,
14327 detectDirective,
14328 isSubstringInArray,
14329 interpolateToCurve,
14330 calcLabelPosition,
14331 calcCardinalityPosition,
14332 calcTerminalLabelPosition,
14333 formatUrl,
14334 getStylesFromArray,
14335 generateId: generateId$1,
14336 random,
14337 runFunc,
14338 entityDecode,
14339 initIdGenerator,
14340 directiveSanitizer,
14341 sanitizeCss,
14342 insertTitle,
14343 parseFontSize
14344 };
14345 var COMMENT = "comm";
14346 var RULESET = "rule";
14347 var DECLARATION = "decl";
14348 var IMPORT = "@import";
14349 var KEYFRAMES = "@keyframes";
14350 var abs = Math.abs;
14351 var from = String.fromCharCode;
14352 function trim(value) {
14353 return value.trim();
14354 }
14355 function replace(value, pattern, replacement) {
14356 return value.replace(pattern, replacement);
14357 }
14358 function indexof(value, search2) {
14359 return value.indexOf(search2);
14360 }
14361 function charat(value, index2) {
14362 return value.charCodeAt(index2) | 0;
14363 }
14364 function substr(value, begin, end2) {
14365 return value.slice(begin, end2);
14366 }
14367 function strlen(value) {
14368 return value.length;
14369 }
14370 function sizeof(value) {
14371 return value.length;
14372 }
14373 function append(value, array2) {
14374 return array2.push(value), value;
14375 }
14376 var line = 1;
14377 var column = 1;
14378 var length = 0;
14379 var position$2 = 0;
14380 var character = 0;
14381 var characters = "";
14382 function node(value, root2, parent, type2, props, children2, length2) {
14383 return { value, root: root2, parent, type: type2, props, children: children2, line, column, length: length2, return: "" };
14384 }
14385 function char() {
14386 return character;
14387 }
14388 function prev() {
14389 character = position$2 > 0 ? charat(characters, --position$2) : 0;
14390 if (column--, character === 10)
14391 column = 1, line--;
14392 return character;
14393 }
14394 function next$1() {
14395 character = position$2 < length ? charat(characters, position$2++) : 0;
14396 if (column++, character === 10)
14397 column = 1, line++;
14398 return character;
14399 }
14400 function peek() {
14401 return charat(characters, position$2);
14402 }
14403 function caret() {
14404 return position$2;
14405 }
14406 function slice(begin, end2) {
14407 return substr(characters, begin, end2);
14408 }
14409 function token(type2) {
14410 switch (type2) {
14411 case 0:
14412 case 9:
14413 case 10:
14414 case 13:
14415 case 32:
14416 return 5;
14417 case 33:
14418 case 43:
14419 case 44:
14420 case 47:
14421 case 62:
14422 case 64:
14423 case 126:
14424 case 59:
14425 case 123:
14426 case 125:
14427 return 4;
14428 case 58:
14429 return 3;
14430 case 34:
14431 case 39:
14432 case 40:
14433 case 91:
14434 return 2;
14435 case 41:
14436 case 93:
14437 return 1;
14438 }
14439 return 0;
14440 }
14441 function alloc(value) {
14442 return line = column = 1, length = strlen(characters = value), position$2 = 0, [];
14443 }
14444 function dealloc(value) {
14445 return characters = "", value;
14446 }
14447 function delimit(type2) {
14448 return trim(slice(position$2 - 1, delimiter(type2 === 91 ? type2 + 2 : type2 === 40 ? type2 + 1 : type2)));
14449 }
14450 function whitespace(type2) {
14451 while (character = peek())
14452 if (character < 33)
14453 next$1();
14454 else
14455 break;
14456 return token(type2) > 2 || token(character) > 3 ? "" : " ";
14457 }
14458 function escaping(index2, count) {
14459 while (--count && next$1())
14460 if (character < 48 || character > 102 || character > 57 && character < 65 || character > 70 && character < 97)
14461 break;
14462 return slice(index2, caret() + (count < 6 && peek() == 32 && next$1() == 32));
14463 }
14464 function delimiter(type2) {
14465 while (next$1())
14466 switch (character) {
14467 case type2:
14468 return position$2;
14469 case 34:
14470 case 39:
14471 if (type2 !== 34 && type2 !== 39)
14472 delimiter(character);
14473 break;
14474 case 40:
14475 if (type2 === 41)
14476 delimiter(type2);
14477 break;
14478 case 92:
14479 next$1();
14480 break;
14481 }
14482 return position$2;
14483 }
14484 function commenter(type2, index2) {
14485 while (next$1())
14486 if (type2 + character === 47 + 10)
14487 break;
14488 else if (type2 + character === 42 + 42 && peek() === 47)
14489 break;
14490 return "/*" + slice(index2, position$2 - 1) + "*" + from(type2 === 47 ? type2 : next$1());
14491 }
14492 function identifier(index2) {
14493 while (!token(peek()))
14494 next$1();
14495 return slice(index2, position$2);
14496 }
14497 function compile(value) {
14498 return dealloc(parse$4("", null, null, null, [""], value = alloc(value), 0, [0], value));
14499 }
14500 function parse$4(value, root2, parent, rule, rules, rulesets, pseudo, points, declarations) {
14501 var index2 = 0;
14502 var offset = 0;
14503 var length2 = pseudo;
14504 var atrule = 0;
14505 var property2 = 0;
14506 var previous2 = 0;
14507 var variable = 1;
14508 var scanning = 1;
14509 var ampersand = 1;
14510 var character2 = 0;
14511 var type2 = "";
14512 var props = rules;
14513 var children2 = rulesets;
14514 var reference = rule;
14515 var characters2 = type2;
14516 while (scanning)
14517 switch (previous2 = character2, character2 = next$1()) {
14518 case 40:
14519 if (previous2 != 108 && charat(characters2, length2 - 1) == 58) {
14520 if (indexof(characters2 += replace(delimit(character2), "&", "&\f"), "&\f") != -1)
14521 ampersand = -1;
14522 break;
14523 }
14524 case 34:
14525 case 39:
14526 case 91:
14527 characters2 += delimit(character2);
14528 break;
14529 case 9:
14530 case 10:
14531 case 13:
14532 case 32:
14533 characters2 += whitespace(previous2);
14534 break;
14535 case 92:
14536 characters2 += escaping(caret() - 1, 7);
14537 continue;
14538 case 47:
14539 switch (peek()) {
14540 case 42:
14541 case 47:
14542 append(comment(commenter(next$1(), caret()), root2, parent), declarations);
14543 break;
14544 default:
14545 characters2 += "/";
14546 }
14547 break;
14548 case 123 * variable:
14549 points[index2++] = strlen(characters2) * ampersand;
14550 case 125 * variable:
14551 case 59:
14552 case 0:
14553 switch (character2) {
14554 case 0:
14555 case 125:
14556 scanning = 0;
14557 case 59 + offset:
14558 if (property2 > 0 && strlen(characters2) - length2)
14559 append(property2 > 32 ? declaration(characters2 + ";", rule, parent, length2 - 1) : declaration(replace(characters2, " ", "") + ";", rule, parent, length2 - 2), declarations);
14560 break;
14561 case 59:
14562 characters2 += ";";
14563 default:
14564 append(reference = ruleset(characters2, root2, parent, index2, offset, rules, points, type2, props = [], children2 = [], length2), rulesets);
14565 if (character2 === 123)
14566 if (offset === 0)
14567 parse$4(characters2, root2, reference, reference, props, rulesets, length2, points, children2);
14568 else
14569 switch (atrule === 99 && charat(characters2, 3) === 110 ? 100 : atrule) {
14570 case 100:
14571 case 109:
14572 case 115:
14573 parse$4(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type2, rules, props = [], length2), children2), rules, children2, length2, points, rule ? props : children2);
14574 break;
14575 default:
14576 parse$4(characters2, reference, reference, reference, [""], children2, 0, points, children2);
14577 }
14578 }
14579 index2 = offset = property2 = 0, variable = ampersand = 1, type2 = characters2 = "", length2 = pseudo;
14580 break;
14581 case 58:
14582 length2 = 1 + strlen(characters2), property2 = previous2;
14583 default:
14584 if (variable < 1) {
14585 if (character2 == 123)
14586 --variable;
14587 else if (character2 == 125 && variable++ == 0 && prev() == 125)
14588 continue;
14589 }
14590 switch (characters2 += from(character2), character2 * variable) {
14591 case 38:
14592 ampersand = offset > 0 ? 1 : (characters2 += "\f", -1);
14593 break;
14594 case 44:
14595 points[index2++] = (strlen(characters2) - 1) * ampersand, ampersand = 1;
14596 break;
14597 case 64:
14598 if (peek() === 45)
14599 characters2 += delimit(next$1());
14600 atrule = peek(), offset = length2 = strlen(type2 = characters2 += identifier(caret())), character2++;
14601 break;
14602 case 45:
14603 if (previous2 === 45 && strlen(characters2) == 2)
14604 variable = 0;
14605 }
14606 }
14607 return rulesets;
14608 }
14609 function ruleset(value, root2, parent, index2, offset, rules, points, type2, props, children2, length2) {
14610 var post = offset - 1;
14611 var rule = offset === 0 ? rules : [""];
14612 var size2 = sizeof(rule);
14613 for (var i2 = 0, j = 0, k = 0; i2 < index2; ++i2)
14614 for (var x2 = 0, y2 = substr(value, post + 1, post = abs(j = points[i2])), z = value; x2 < size2; ++x2)
14615 if (z = trim(j > 0 ? rule[x2] + " " + y2 : replace(y2, /&\f/g, rule[x2])))
14616 props[k++] = z;
14617 return node(value, root2, parent, offset === 0 ? RULESET : type2, props, children2, length2);
14618 }
14619 function comment(value, root2, parent) {
14620 return node(value, root2, parent, COMMENT, from(char()), substr(value, 2, -2), 0);
14621 }
14622 function declaration(value, root2, parent, length2) {
14623 return node(value, root2, parent, DECLARATION, substr(value, 0, length2), substr(value, length2 + 1, -1), length2);
14624 }
14625 function serialize(children2, callback) {
14626 var output = "";
14627 var length2 = sizeof(children2);
14628 for (var i2 = 0; i2 < length2; i2++)
14629 output += callback(children2[i2], i2, children2, callback) || "";
14630 return output;
14631 }
14632 function stringify(element2, index2, children2, callback) {
14633 switch (element2.type) {
14634 case IMPORT:
14635 case DECLARATION:
14636 return element2.return = element2.return || element2.value;
14637 case COMMENT:
14638 return "";
14639 case KEYFRAMES:
14640 return element2.return = element2.value + "{" + serialize(element2.children, callback) + "}";
14641 case RULESET:
14642 element2.value = element2.props.join(",");
14643 }
14644 return strlen(children2 = serialize(element2.children, callback)) ? element2.return = element2.value + "{" + children2 + "}" : "";
14645 }
14646 const version$1 = "10.2.0";
14647 const id$i = "c4";
14648 const detector$i = (txt) => {
14649 return txt.match(/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/) !== null;
14650 };
14651 const loader$i = async () => {
14652 const { diagram: diagram2 } = await Promise.resolve().then(() => c4Diagram);
14653 return { id: id$i, diagram: diagram2 };
14654 };
14655 const plugin$i = {
14656 id: id$i,
14657 detector: detector$i,
14658 loader: loader$i
14659 };
14660 const c4 = plugin$i;
14661 const id$h = "flowchart";
14662 const detector$h = (txt, config2) => {
14663 var _a, _b;
14664 if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === "elk") {
14665 return false;
14666 }
14667 return txt.match(/^\s*graph/) !== null;
14668 };
14669 const loader$h = async () => {
14670 const { diagram: diagram2 } = await Promise.resolve().then(() => flowDiagram);
14671 return { id: id$h, diagram: diagram2 };
14672 };
14673 const plugin$h = {
14674 id: id$h,
14675 detector: detector$h,
14676 loader: loader$h
14677 };
14678 const flowchart = plugin$h;
14679 const id$g = "flowchart-v2";
14680 const detector$g = (txt, config2) => {
14681 var _a, _b, _c;
14682 if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "dagre-d3" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === "elk") {
14683 return false;
14684 }
14685 if (txt.match(/^\s*graph/) !== null && ((_c = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _c.defaultRenderer) === "dagre-wrapper") {
14686 return true;
14687 }
14688 return txt.match(/^\s*flowchart/) !== null;
14689 };
14690 const loader$g = async () => {
14691 const { diagram: diagram2 } = await Promise.resolve().then(() => flowDiagramV2);
14692 return { id: id$g, diagram: diagram2 };
14693 };
14694 const plugin$g = {
14695 id: id$g,
14696 detector: detector$g,
14697 loader: loader$g
14698 };
14699 const flowchartV2 = plugin$g;
14700 const id$f = "er";
14701 const detector$f = (txt) => {
14702 return txt.match(/^\s*erDiagram/) !== null;
14703 };
14704 const loader$f = async () => {
14705 const { diagram: diagram2 } = await Promise.resolve().then(() => erDiagram);
14706 return { id: id$f, diagram: diagram2 };
14707 };
14708 const plugin$f = {
14709 id: id$f,
14710 detector: detector$f,
14711 loader: loader$f
14712 };
14713 const er = plugin$f;
14714 const id$e = "gitGraph";
14715 const detector$e = (txt) => {
14716 return txt.match(/^\s*gitGraph/) !== null;
14717 };
14718 const loader$e = async () => {
14719 const { diagram: diagram2 } = await Promise.resolve().then(() => gitGraphDiagram);
14720 return { id: id$e, diagram: diagram2 };
14721 };
14722 const plugin$e = {
14723 id: id$e,
14724 detector: detector$e,
14725 loader: loader$e
14726 };
14727 const git = plugin$e;
14728 const id$d = "gantt";
14729 const detector$d = (txt) => {
14730 return txt.match(/^\s*gantt/) !== null;
14731 };
14732 const loader$d = async () => {
14733 const { diagram: diagram2 } = await Promise.resolve().then(() => ganttDiagram);
14734 return { id: id$d, diagram: diagram2 };
14735 };
14736 const plugin$d = {
14737 id: id$d,
14738 detector: detector$d,
14739 loader: loader$d
14740 };
14741 const gantt = plugin$d;
14742 const id$c = "info";
14743 const detector$c = (txt) => {
14744 return txt.match(/^\s*info/) !== null;
14745 };
14746 const loader$c = async () => {
14747 const { diagram: diagram2 } = await Promise.resolve().then(() => infoDiagram);
14748 return { id: id$c, diagram: diagram2 };
14749 };
14750 const plugin$c = {
14751 id: id$c,
14752 detector: detector$c,
14753 loader: loader$c
14754 };
14755 const info$1 = plugin$c;
14756 const id$b = "pie";
14757 const detector$b = (txt) => {
14758 return txt.match(/^\s*pie/) !== null;
14759 };
14760 const loader$b = async () => {
14761 const { diagram: diagram2 } = await Promise.resolve().then(() => pieDiagram);
14762 return { id: id$b, diagram: diagram2 };
14763 };
14764 const plugin$b = {
14765 id: id$b,
14766 detector: detector$b,
14767 loader: loader$b
14768 };
14769 const pie = plugin$b;
14770 const id$a = "quadrantChart";
14771 const detector$a = (txt) => {
14772 return txt.match(/^\s*quadrantChart/) !== null;
14773 };
14774 const loader$a = async () => {
14775 const { diagram: diagram2 } = await Promise.resolve().then(() => quadrantDiagram);
14776 return { id: id$a, diagram: diagram2 };
14777 };
14778 const plugin$a = {
14779 id: id$a,
14780 detector: detector$a,
14781 loader: loader$a
14782 };
14783 const quadrantChart = plugin$a;
14784 const id$9 = "requirement";
14785 const detector$9 = (txt) => {
14786 return txt.match(/^\s*requirement(Diagram)?/) !== null;
14787 };
14788 const loader$9 = async () => {
14789 const { diagram: diagram2 } = await Promise.resolve().then(() => requirementDiagram);
14790 return { id: id$9, diagram: diagram2 };
14791 };
14792 const plugin$9 = {
14793 id: id$9,
14794 detector: detector$9,
14795 loader: loader$9
14796 };
14797 const requirement = plugin$9;
14798 const id$8 = "sequence";
14799 const detector$8 = (txt) => {
14800 return txt.match(/^\s*sequenceDiagram/) !== null;
14801 };
14802 const loader$8 = async () => {
14803 const { diagram: diagram2 } = await Promise.resolve().then(() => sequenceDiagram);
14804 return { id: id$8, diagram: diagram2 };
14805 };
14806 const plugin$8 = {
14807 id: id$8,
14808 detector: detector$8,
14809 loader: loader$8
14810 };
14811 const sequence = plugin$8;
14812 const id$7 = "class";
14813 const detector$7 = (txt, config2) => {
14814 var _a;
14815 if (((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
14816 return false;
14817 }
14818 return txt.match(/^\s*classDiagram/) !== null;
14819 };
14820 const loader$7 = async () => {
14821 const { diagram: diagram2 } = await Promise.resolve().then(() => classDiagram);
14822 return { id: id$7, diagram: diagram2 };
14823 };
14824 const plugin$7 = {
14825 id: id$7,
14826 detector: detector$7,
14827 loader: loader$7
14828 };
14829 const classDiagram$1 = plugin$7;
14830 const id$6 = "classDiagram";
14831 const detector$6 = (txt, config2) => {
14832 var _a;
14833 if (txt.match(/^\s*classDiagram/) !== null && ((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
14834 return true;
14835 }
14836 return txt.match(/^\s*classDiagram-v2/) !== null;
14837 };
14838 const loader$6 = async () => {
14839 const { diagram: diagram2 } = await Promise.resolve().then(() => classDiagramV2);
14840 return { id: id$6, diagram: diagram2 };
14841 };
14842 const plugin$6 = {
14843 id: id$6,
14844 detector: detector$6,
14845 loader: loader$6
14846 };
14847 const classDiagramV2$1 = plugin$6;
14848 const id$5 = "state";
14849 const detector$5 = (txt, config2) => {
14850 var _a;
14851 if (((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
14852 return false;
14853 }
14854 return txt.match(/^\s*stateDiagram/) !== null;
14855 };
14856 const loader$5 = async () => {
14857 const { diagram: diagram2 } = await Promise.resolve().then(() => stateDiagram);
14858 return { id: id$5, diagram: diagram2 };
14859 };
14860 const plugin$5 = {
14861 id: id$5,
14862 detector: detector$5,
14863 loader: loader$5
14864 };
14865 const state = plugin$5;
14866 const id$4 = "stateDiagram";
14867 const detector$4 = (text2, config2) => {
14868 var _a, _b;
14869 if (text2.match(/^\s*stateDiagram-v2/) !== null) {
14870 return true;
14871 }
14872 if (text2.match(/^\s*stateDiagram/) && ((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") {
14873 return true;
14874 }
14875 if (text2.match(/^\s*stateDiagram/) && ((_b = config2 == null ? void 0 : config2.state) == null ? void 0 : _b.defaultRenderer) === "dagre-wrapper") {
14876 return true;
14877 }
14878 return false;
14879 };
14880 const loader$4 = async () => {
14881 const { diagram: diagram2 } = await Promise.resolve().then(() => stateDiagramV2);
14882 return { id: id$4, diagram: diagram2 };
14883 };
14884 const plugin$4 = {
14885 id: id$4,
14886 detector: detector$4,
14887 loader: loader$4
14888 };
14889 const stateV2 = plugin$4;
14890 const id$3 = "journey";
14891 const detector$3 = (txt) => {
14892 return txt.match(/^\s*journey/) !== null;
14893 };
14894 const loader$3 = async () => {
14895 const { diagram: diagram2 } = await Promise.resolve().then(() => journeyDiagram);
14896 return { id: id$3, diagram: diagram2 };
14897 };
14898 const plugin$3 = {
14899 id: id$3,
14900 detector: detector$3,
14901 loader: loader$3
14902 };
14903 const journey = plugin$3;
14904 const getStyles$f = () => ``;
14905 const styles$9 = getStyles$f;
14906 const setConf$a = function() {
14907 };
14908 const draw$j = (_text, id2, mermaidVersion) => {
14909 try {
14910 log$1.debug("Renering svg for syntax error\n");
14911 const svg2 = select("#" + id2);
14912 const g = svg2.append("g");
14913 g.append("path").attr("class", "error-icon").attr(
14914 "d",
14915 "m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"
14916 );
14917 g.append("path").attr("class", "error-icon").attr(
14918 "d",
14919 "m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"
14920 );
14921 g.append("path").attr("class", "error-icon").attr(
14922 "d",
14923 "m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"
14924 );
14925 g.append("path").attr("class", "error-icon").attr(
14926 "d",
14927 "m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"
14928 );
14929 g.append("path").attr("class", "error-icon").attr(
14930 "d",
14931 "m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"
14932 );
14933 g.append("path").attr("class", "error-icon").attr(
14934 "d",
14935 "m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"
14936 );
14937 g.append("text").attr("class", "error-text").attr("x", 1440).attr("y", 250).attr("font-size", "150px").style("text-anchor", "middle").text("Syntax error in text");
14938 g.append("text").attr("class", "error-text").attr("x", 1250).attr("y", 400).attr("font-size", "100px").style("text-anchor", "middle").text("mermaid version " + mermaidVersion);
14939 svg2.attr("height", 100);
14940 svg2.attr("width", 500);
14941 svg2.attr("viewBox", "768 0 912 512");
14942 } catch (e) {
14943 log$1.error("Error while rendering info diagram");
14944 log$1.error(getErrorMessage(e));
14945 }
14946 };
14947 const errorRenderer = {
14948 setConf: setConf$a,
14949 draw: draw$j
14950 };
14951 const diagram$j = {
14952 db: {
14953 clear: () => {
14954 }
14955 },
14956 styles: styles$9,
14957 renderer: errorRenderer,
14958 parser: {
14959 parser: { yy: {} },
14960 parse: () => {
14961 }
14962 },
14963 init: () => {
14964 }
14965 };
14966 const errorDiagram = diagram$j;
14967 const id$2 = "flowchart-elk";
14968 const detector$2 = (txt, config2) => {
14969 var _a;
14970 if (
14971 // If diagram explicitly states flowchart-elk
14972 txt.match(/^\s*flowchart-elk/) || // If a flowchart/graph diagram has their default renderer set to elk
14973 txt.match(/^\s*flowchart|graph/) && ((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "elk"
14974 ) {
14975 return true;
14976 }
14977 return false;
14978 };
14979 const loader$2 = async () => {
14980 const { diagram: diagram2 } = await Promise.resolve().then(() => flowchartElkDefinition);
14981 return { id: id$2, diagram: diagram2 };
14982 };
14983 const plugin$2 = {
14984 id: id$2,
14985 detector: detector$2,
14986 loader: loader$2
14987 };
14988 const flowchartElk = plugin$2;
14989 const id$1 = "timeline";
14990 const detector$1 = (txt) => {
14991 return txt.match(/^\s*timeline/) !== null;
14992 };
14993 const loader$1 = async () => {
14994 const { diagram: diagram2 } = await Promise.resolve().then(() => timelineDefinition);
14995 return { id: id$1, diagram: diagram2 };
14996 };
14997 const plugin$1 = {
14998 id: id$1,
14999 detector: detector$1,
15000 loader: loader$1
15001 };
15002 const timeline = plugin$1;
15003 const id = "mindmap";
15004 const detector = (txt) => {
15005 return txt.match(/^\s*mindmap/) !== null;
15006 };
15007 const loader = async () => {
15008 const { diagram: diagram2 } = await Promise.resolve().then(() => mindmapDefinition);
15009 return { id, diagram: diagram2 };
15010 };
15011 const plugin = {
15012 id,
15013 detector,
15014 loader
15015 };
15016 const mindmap = plugin;
15017 let hasLoadedDiagrams = false;
15018 const addDiagrams = () => {
15019 if (hasLoadedDiagrams) {
15020 return;
15021 }
15022 hasLoadedDiagrams = true;
15023 registerDiagram("error", errorDiagram, (text2) => {
15024 return text2.toLowerCase().trim() === "error";
15025 });
15026 registerDiagram(
15027 "---",
15028 // --- diagram type may appear if YAML front-matter is not parsed correctly
15029 {
15030 db: {
15031 clear: () => {
15032 }
15033 },
15034 styles: {},
15035 // should never be used
15036 renderer: {},
15037 // should never be used
15038 parser: {
15039 parser: { yy: {} },
15040 parse: () => {
15041 throw new Error(
15042 "Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks"
15043 );
15044 }
15045 },
15046 init: () => null
15047 // no op
15048 },
15049 (text2) => {
15050 return text2.toLowerCase().trimStart().startsWith("---");
15051 }
15052 );
15053 registerLazyLoadedDiagrams(
15054 c4,
15055 classDiagramV2$1,
15056 classDiagram$1,
15057 er,
15058 gantt,
15059 info$1,
15060 pie,
15061 requirement,
15062 sequence,
15063 flowchartElk,
15064 flowchartV2,
15065 flowchart,
15066 mindmap,
15067 timeline,
15068 git,
15069 stateV2,
15070 state,
15071 journey,
15072 quadrantChart
15073 );
15074 };
15075 const cleanupComments = (text2) => {
15076 return text2.trimStart().replace(/^\s*%%(?!{)[^\n]+\n?/gm, "");
15077 };
15078 class Diagram {
15079 constructor(text2) {
15080 var _a, _b;
15081 this.text = text2;
15082 this.type = "graph";
15083 this.text += "\n";
15084 const cnf = getConfig$1();
15085 try {
15086 this.type = detectType(text2, cnf);
15087 } catch (e) {
15088 this.type = "error";
15089 this.detectError = e;
15090 }
15091 const diagram2 = getDiagram(this.type);
15092 log$1.debug("Type " + this.type);
15093 this.db = diagram2.db;
15094 (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a);
15095 this.renderer = diagram2.renderer;
15096 this.parser = diagram2.parser;
15097 const originalParse = this.parser.parse.bind(this.parser);
15098 this.parser.parse = (text22) => originalParse(cleanupComments(extractFrontMatter(text22, this.db)));
15099 this.parser.parser.yy = this.db;
15100 if (diagram2.init) {
15101 diagram2.init(cnf);
15102 log$1.info("Initialized diagram " + this.type, cnf);
15103 }
15104 this.parse();
15105 }
15106 parse() {
15107 var _a, _b;
15108 if (this.detectError) {
15109 throw this.detectError;
15110 }
15111 (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a);
15112 this.parser.parse(this.text);
15113 }
15114 async render(id2, version2) {
15115 await this.renderer.draw(this.text, id2, version2, this);
15116 }
15117 getParser() {
15118 return this.parser;
15119 }
15120 getType() {
15121 return this.type;
15122 }
15123 }
15124 const getDiagramFromText = async (text2) => {
15125 const type2 = detectType(text2, getConfig$1());
15126 try {
15127 getDiagram(type2);
15128 } catch (error) {
15129 const loader2 = getDiagramLoader(type2);
15130 if (!loader2) {
15131 throw new UnknownDiagramError(`Diagram ${type2} not found.`);
15132 }
15133 const { id: id2, diagram: diagram2 } = await loader2();
15134 registerDiagram(id2, diagram2);
15135 }
15136 return new Diagram(text2);
15137 };
15138 let interactionFunctions = [];
15139 const addFunction = (func) => {
15140 interactionFunctions.push(func);
15141 };
15142 const attachFunctions = () => {
15143 interactionFunctions.forEach((f2) => {
15144 f2();
15145 });
15146 interactionFunctions = [];
15147 };
15148 var objectProto$d = Object.prototype;
15149 function isPrototype(value) {
15150 var Ctor = value && value.constructor, proto2 = typeof Ctor == "function" && Ctor.prototype || objectProto$d;
15151 return value === proto2;
15152 }
15153 function overArg(func, transform) {
15154 return function(arg) {
15155 return func(transform(arg));
15156 };
15157 }
15158 var nativeKeys = overArg(Object.keys, Object);
15159 const nativeKeys$1 = nativeKeys;
15160 var objectProto$c = Object.prototype;
15161 var hasOwnProperty$c = objectProto$c.hasOwnProperty;
15162 function baseKeys(object2) {
15163 if (!isPrototype(object2)) {
15164 return nativeKeys$1(object2);
15165 }
15166 var result = [];
15167 for (var key in Object(object2)) {
15168 if (hasOwnProperty$c.call(object2, key) && key != "constructor") {
15169 result.push(key);
15170 }
15171 }
15172 return result;
15173 }
15174 var DataView$1 = getNative(root$1, "DataView");
15175 const DataView$2 = DataView$1;
15176 var Promise$1 = getNative(root$1, "Promise");
15177 const Promise$2 = Promise$1;
15178 var Set$1 = getNative(root$1, "Set");
15179 const Set$2 = Set$1;
15180 var WeakMap = getNative(root$1, "WeakMap");
15181 const WeakMap$1 = WeakMap;
15182 var mapTag$6 = "[object Map]", objectTag$4 = "[object Object]", promiseTag = "[object Promise]", setTag$6 = "[object Set]", weakMapTag$2 = "[object WeakMap]";
15183 var dataViewTag$4 = "[object DataView]";
15184 var dataViewCtorString = toSource(DataView$2), mapCtorString = toSource(Map$2), promiseCtorString = toSource(Promise$2), setCtorString = toSource(Set$2), weakMapCtorString = toSource(WeakMap$1);
15185 var getTag = baseGetTag;
15186 if (DataView$2 && getTag(new DataView$2(new ArrayBuffer(1))) != dataViewTag$4 || Map$2 && getTag(new Map$2()) != mapTag$6 || Promise$2 && getTag(Promise$2.resolve()) != promiseTag || Set$2 && getTag(new Set$2()) != setTag$6 || WeakMap$1 && getTag(new WeakMap$1()) != weakMapTag$2) {
15187 getTag = function(value) {
15188 var result = baseGetTag(value), Ctor = result == objectTag$4 ? value.constructor : void 0, ctorString = Ctor ? toSource(Ctor) : "";
15189 if (ctorString) {
15190 switch (ctorString) {
15191 case dataViewCtorString:
15192 return dataViewTag$4;
15193 case mapCtorString:
15194 return mapTag$6;
15195 case promiseCtorString:
15196 return promiseTag;
15197 case setCtorString:
15198 return setTag$6;
15199 case weakMapCtorString:
15200 return weakMapTag$2;
15201 }
15202 }
15203 return result;
15204 };
15205 }
15206 const getTag$1 = getTag;
15207 function isObjectLike(value) {
15208 return value != null && typeof value == "object";
15209 }
15210 var argsTag$3 = "[object Arguments]";
15211 function baseIsArguments(value) {
15212 return isObjectLike(value) && baseGetTag(value) == argsTag$3;
15213 }
15214 var objectProto$b = Object.prototype;
15215 var hasOwnProperty$b = objectProto$b.hasOwnProperty;
15216 var propertyIsEnumerable$1 = objectProto$b.propertyIsEnumerable;
15217 var isArguments = baseIsArguments(function() {
15218 return arguments;
15219 }()) ? baseIsArguments : function(value) {
15220 return isObjectLike(value) && hasOwnProperty$b.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
15221 };
15222 const isArguments$1 = isArguments;
15223 var isArray = Array.isArray;
15224 const isArray$1 = isArray;
15225 var MAX_SAFE_INTEGER$1 = 9007199254740991;
15226 function isLength(value) {
15227 return typeof value == "number" && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER$1;
15228 }
15229 function isArrayLike(value) {
15230 return value != null && isLength(value.length) && !isFunction(value);
15231 }
15232 function stubFalse() {
15233 return false;
15234 }
15235 var freeExports$2 = typeof exports == "object" && exports && !exports.nodeType && exports;
15236 var freeModule$2 = freeExports$2 && typeof module == "object" && module && !module.nodeType && module;
15237 var moduleExports$2 = freeModule$2 && freeModule$2.exports === freeExports$2;
15238 var Buffer$1 = moduleExports$2 ? root$1.Buffer : void 0;
15239 var nativeIsBuffer = Buffer$1 ? Buffer$1.isBuffer : void 0;
15240 var isBuffer = nativeIsBuffer || stubFalse;
15241 const isBuffer$1 = isBuffer;
15242 var argsTag$2 = "[object Arguments]", arrayTag$2 = "[object Array]", boolTag$3 = "[object Boolean]", dateTag$3 = "[object Date]", errorTag$2 = "[object Error]", funcTag$1 = "[object Function]", mapTag$5 = "[object Map]", numberTag$3 = "[object Number]", objectTag$3 = "[object Object]", regexpTag$3 = "[object RegExp]", setTag$5 = "[object Set]", stringTag$3 = "[object String]", weakMapTag$1 = "[object WeakMap]";
15243 var arrayBufferTag$3 = "[object ArrayBuffer]", dataViewTag$3 = "[object DataView]", float32Tag$2 = "[object Float32Array]", float64Tag$2 = "[object Float64Array]", int8Tag$2 = "[object Int8Array]", int16Tag$2 = "[object Int16Array]", int32Tag$2 = "[object Int32Array]", uint8Tag$2 = "[object Uint8Array]", uint8ClampedTag$2 = "[object Uint8ClampedArray]", uint16Tag$2 = "[object Uint16Array]", uint32Tag$2 = "[object Uint32Array]";
15244 var typedArrayTags = {};
15245 typedArrayTags[float32Tag$2] = typedArrayTags[float64Tag$2] = typedArrayTags[int8Tag$2] = typedArrayTags[int16Tag$2] = typedArrayTags[int32Tag$2] = typedArrayTags[uint8Tag$2] = typedArrayTags[uint8ClampedTag$2] = typedArrayTags[uint16Tag$2] = typedArrayTags[uint32Tag$2] = true;
15246 typedArrayTags[argsTag$2] = typedArrayTags[arrayTag$2] = typedArrayTags[arrayBufferTag$3] = typedArrayTags[boolTag$3] = typedArrayTags[dataViewTag$3] = typedArrayTags[dateTag$3] = typedArrayTags[errorTag$2] = typedArrayTags[funcTag$1] = typedArrayTags[mapTag$5] = typedArrayTags[numberTag$3] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag$3] = typedArrayTags[setTag$5] = typedArrayTags[stringTag$3] = typedArrayTags[weakMapTag$1] = false;
15247 function baseIsTypedArray(value) {
15248 return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)];
15249 }
15250 function baseUnary(func) {
15251 return function(value) {
15252 return func(value);
15253 };
15254 }
15255 var freeExports$1 = typeof exports == "object" && exports && !exports.nodeType && exports;
15256 var freeModule$1 = freeExports$1 && typeof module == "object" && module && !module.nodeType && module;
15257 var moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;
15258 var freeProcess = moduleExports$1 && freeGlobal$1.process;
15259 var nodeUtil = function() {
15260 try {
15261 var types = freeModule$1 && freeModule$1.require && freeModule$1.require("util").types;
15262 if (types) {
15263 return types;
15264 }
15265 return freeProcess && freeProcess.binding && freeProcess.binding("util");
15266 } catch (e) {
15267 }
15268 }();
15269 const nodeUtil$1 = nodeUtil;
15270 var nodeIsTypedArray = nodeUtil$1 && nodeUtil$1.isTypedArray;
15271 var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;
15272 const isTypedArray$1 = isTypedArray;
15273 var mapTag$4 = "[object Map]", setTag$4 = "[object Set]";
15274 var objectProto$a = Object.prototype;
15275 var hasOwnProperty$a = objectProto$a.hasOwnProperty;
15276 function isEmpty(value) {
15277 if (value == null) {
15278 return true;
15279 }
15280 if (isArrayLike(value) && (isArray$1(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer$1(value) || isTypedArray$1(value) || isArguments$1(value))) {
15281 return !value.length;
15282 }
15283 var tag = getTag$1(value);
15284 if (tag == mapTag$4 || tag == setTag$4) {
15285 return !value.size;
15286 }
15287 if (isPrototype(value)) {
15288 return !baseKeys(value).length;
15289 }
15290 for (var key in value) {
15291 if (hasOwnProperty$a.call(value, key)) {
15292 return false;
15293 }
15294 }
15295 return true;
15296 }
15297 const SVG_ROLE = "graphics-document document";
15298 function setA11yDiagramInfo(svg2, diagramType) {
15299 svg2.attr("role", SVG_ROLE);
15300 if (!isEmpty(diagramType)) {
15301 svg2.attr("aria-roledescription", diagramType);
15302 }
15303 }
15304 function addSVGa11yTitleDescription(svg2, a11yTitle, a11yDesc, baseId) {
15305 if (svg2.insert === void 0) {
15306 return;
15307 }
15308 if (a11yTitle || a11yDesc) {
15309 if (a11yDesc) {
15310 const descId = "chart-desc-" + baseId;
15311 svg2.attr("aria-describedby", descId);
15312 svg2.insert("desc", ":first-child").attr("id", descId).text(a11yDesc);
15313 }
15314 if (a11yTitle) {
15315 const titleId = "chart-title-" + baseId;
15316 svg2.attr("aria-labelledby", titleId);
15317 svg2.insert("title", ":first-child").attr("id", titleId).text(a11yTitle);
15318 }
15319 } else {
15320 return;
15321 }
15322 }
15323 const CLASSDEF_DIAGRAMS = [
15324 "graph",
15325 "flowchart",
15326 "flowchart-v2",
15327 "flowchart-elk",
15328 "stateDiagram",
15329 "stateDiagram-v2"
15330 ];
15331 const MAX_TEXTLENGTH = 5e4;
15332 const MAX_TEXTLENGTH_EXCEEDED_MSG = "graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa";
15333 const SECURITY_LVL_SANDBOX = "sandbox";
15334 const SECURITY_LVL_LOOSE = "loose";
15335 const XMLNS_SVG_STD = "http://www.w3.org/2000/svg";
15336 const XMLNS_XLINK_STD = "http://www.w3.org/1999/xlink";
15337 const XMLNS_XHTML_STD = "http://www.w3.org/1999/xhtml";
15338 const IFRAME_WIDTH = "100%";
15339 const IFRAME_HEIGHT = "100%";
15340 const IFRAME_STYLES = "border:0;margin:0;";
15341 const IFRAME_BODY_STYLE = "margin:0";
15342 const IFRAME_SANDBOX_OPTS = "allow-top-navigation-by-user-activation allow-popups";
15343 const IFRAME_NOT_SUPPORTED_MSG = 'The "iframe" tag is not supported by your browser.';
15344 const DOMPURIFY_TAGS = ["foreignobject"];
15345 const DOMPURIFY_ATTR = ["dominant-baseline"];
15346 async function parse$3(text2, parseOptions) {
15347 addDiagrams();
15348 try {
15349 const diagram2 = await getDiagramFromText(text2);
15350 diagram2.parse();
15351 } catch (error) {
15352 if (parseOptions == null ? void 0 : parseOptions.suppressErrors) {
15353 return false;
15354 }
15355 throw error;
15356 }
15357 return true;
15358 }
15359 const encodeEntities = function(text2) {
15360 let txt = text2;
15361 txt = txt.replace(/style.*:\S*#.*;/g, function(s) {
15362 return s.substring(0, s.length - 1);
15363 });
15364 txt = txt.replace(/classDef.*:\S*#.*;/g, function(s) {
15365 return s.substring(0, s.length - 1);
15366 });
15367 txt = txt.replace(/#\w+;/g, function(s) {
15368 const innerTxt = s.substring(1, s.length - 1);
15369 const isInt = /^\+?\d+$/.test(innerTxt);
15370 if (isInt) {
15371 return "fl°°" + innerTxt + "¶ß";
15372 } else {
15373 return "fl°" + innerTxt + "¶ß";
15374 }
15375 });
15376 return txt;
15377 };
15378 const decodeEntities = function(text2) {
15379 return text2.replace(/fl°°/g, "&#").replace(/fl°/g, "&").replace(/¶ß/g, ";");
15380 };
15381 const cssImportantStyles = (cssClass, element2, cssClasses = []) => {
15382 return `
15383.${cssClass} ${element2} { ${cssClasses.join(" !important; ")} !important; }`;
15384 };
15385 const createCssStyles = (config2, graphType, classDefs = {}) => {
15386 var _a;
15387 let cssStyles = "";
15388 if (config2.themeCSS !== void 0) {
15389 cssStyles += `
15390${config2.themeCSS}`;
15391 }
15392 if (config2.fontFamily !== void 0) {
15393 cssStyles += `
15394:root { --mermaid-font-family: ${config2.fontFamily}}`;
15395 }
15396 if (config2.altFontFamily !== void 0) {
15397 cssStyles += `
15398:root { --mermaid-alt-font-family: ${config2.altFontFamily}}`;
15399 }
15400 if (!isEmpty(classDefs) && CLASSDEF_DIAGRAMS.includes(graphType)) {
15401 const htmlLabels = config2.htmlLabels || ((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels);
15402 const cssHtmlElements = ["> *", "span"];
15403 const cssShapeElements = ["rect", "polygon", "ellipse", "circle", "path"];
15404 const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements;
15405 for (const classId in classDefs) {
15406 const styleClassDef = classDefs[classId];
15407 if (!isEmpty(styleClassDef.styles)) {
15408 cssElements.forEach((cssElement) => {
15409 cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles);
15410 });
15411 }
15412 if (!isEmpty(styleClassDef.textStyles)) {
15413 cssStyles += cssImportantStyles(styleClassDef.id, "tspan", styleClassDef.textStyles);
15414 }
15415 }
15416 }
15417 return cssStyles;
15418 };
15419 const createUserStyles = (config2, graphType, classDefs, svgId) => {
15420 const userCSSstyles = createCssStyles(config2, graphType, classDefs);
15421 const allStyles = getStyles$h(graphType, userCSSstyles, config2.themeVariables);
15422 return serialize(compile(`${svgId}{${allStyles}}`), stringify);
15423 };
15424 const cleanUpSvgCode = (svgCode = "", inSandboxMode, useArrowMarkerUrls) => {
15425 let cleanedUpSvg = svgCode;
15426 if (!useArrowMarkerUrls && !inSandboxMode) {
15427 cleanedUpSvg = cleanedUpSvg.replace(/marker-end="url\(.*?#/g, 'marker-end="url(#');
15428 }
15429 cleanedUpSvg = decodeEntities(cleanedUpSvg);
15430 cleanedUpSvg = cleanedUpSvg.replace(/<br>/g, "<br/>");
15431 return cleanedUpSvg;
15432 };
15433 const putIntoIFrame = (svgCode = "", svgElement) => {
15434 const height2 = svgElement ? svgElement.viewBox.baseVal.height + "px" : IFRAME_HEIGHT;
15435 const base64encodedSrc = btoa('<body style="' + IFRAME_BODY_STYLE + '">' + svgCode + "</body>");
15436 return `<iframe style="width:${IFRAME_WIDTH};height:${height2};${IFRAME_STYLES}" src="data:text/html;base64,${base64encodedSrc}" sandbox="${IFRAME_SANDBOX_OPTS}">
15437 ${IFRAME_NOT_SUPPORTED_MSG}
15438</iframe>`;
15439 };
15440 const appendDivSvgG = (parentRoot, id2, enclosingDivId, divStyle, svgXlink) => {
15441 const enclosingDiv = parentRoot.append("div");
15442 enclosingDiv.attr("id", enclosingDivId);
15443 if (divStyle) {
15444 enclosingDiv.attr("style", divStyle);
15445 }
15446 const svgNode2 = enclosingDiv.append("svg").attr("id", id2).attr("width", "100%").attr("xmlns", XMLNS_SVG_STD);
15447 if (svgXlink) {
15448 svgNode2.attr("xmlns:xlink", svgXlink);
15449 }
15450 svgNode2.append("g");
15451 return parentRoot;
15452 };
15453 function sandboxedIframe(parentNode, iFrameId) {
15454 return parentNode.append("iframe").attr("id", iFrameId).attr("style", "width: 100%; height: 100%;").attr("sandbox", "");
15455 }
15456 const removeExistingElements = (doc, id2, divId, iFrameId) => {
15457 var _a, _b, _c;
15458 (_a = doc.getElementById(id2)) == null ? void 0 : _a.remove();
15459 (_b = doc.getElementById(divId)) == null ? void 0 : _b.remove();
15460 (_c = doc.getElementById(iFrameId)) == null ? void 0 : _c.remove();
15461 };
15462 const render$3 = async function(id2, text2, svgContainingElement) {
15463 var _a, _b, _c, _d;
15464 addDiagrams();
15465 reset();
15466 const graphInit = utils.detectInit(text2);
15467 if (graphInit) {
15468 directiveSanitizer(graphInit);
15469 addDirective(graphInit);
15470 }
15471 const config2 = getConfig$1();
15472 log$1.debug(config2);
15473 if (text2.length > ((config2 == null ? void 0 : config2.maxTextSize) ?? MAX_TEXTLENGTH)) {
15474 text2 = MAX_TEXTLENGTH_EXCEEDED_MSG;
15475 }
15476 text2 = text2.replace(/\r\n?/g, "\n");
15477 text2 = text2.replace(
15478 /<(\w+)([^>]*)>/g,
15479 (match, tag, attributes) => "<" + tag + attributes.replace(/="([^"]*)"/g, "='$1'") + ">"
15480 );
15481 const idSelector = "#" + id2;
15482 const iFrameID = "i" + id2;
15483 const iFrameID_selector = "#" + iFrameID;
15484 const enclosingDivID = "d" + id2;
15485 const enclosingDivID_selector = "#" + enclosingDivID;
15486 let root2 = select("body");
15487 const isSandboxed = config2.securityLevel === SECURITY_LVL_SANDBOX;
15488 const isLooseSecurityLevel = config2.securityLevel === SECURITY_LVL_LOOSE;
15489 const fontFamily = config2.fontFamily;
15490 if (svgContainingElement !== void 0) {
15491 if (svgContainingElement) {
15492 svgContainingElement.innerHTML = "";
15493 }
15494 if (isSandboxed) {
15495 const iframe = sandboxedIframe(select(svgContainingElement), iFrameID);
15496 root2 = select(iframe.nodes()[0].contentDocument.body);
15497 root2.node().style.margin = 0;
15498 } else {
15499 root2 = select(svgContainingElement);
15500 }
15501 appendDivSvgG(root2, id2, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD);
15502 } else {
15503 removeExistingElements(document, id2, enclosingDivID, iFrameID);
15504 if (isSandboxed) {
15505 const iframe = sandboxedIframe(select("body"), iFrameID);
15506 root2 = select(iframe.nodes()[0].contentDocument.body);
15507 root2.node().style.margin = 0;
15508 } else {
15509 root2 = select("body");
15510 }
15511 appendDivSvgG(root2, id2, enclosingDivID);
15512 }
15513 text2 = encodeEntities(text2);
15514 let diag;
15515 let parseEncounteredException;
15516 try {
15517 diag = await getDiagramFromText(text2);
15518 } catch (error) {
15519 diag = new Diagram("error");
15520 parseEncounteredException = error;
15521 }
15522 const element2 = root2.select(enclosingDivID_selector).node();
15523 const graphType = diag.type;
15524 const svg2 = element2.firstChild;
15525 const firstChild = svg2.firstChild;
15526 const diagramClassDefs = CLASSDEF_DIAGRAMS.includes(graphType) ? diag.renderer.getClasses(text2, diag) : {};
15527 const rules = createUserStyles(
15528 config2,
15529 graphType,
15530 // @ts-ignore convert renderer to TS.
15531 diagramClassDefs,
15532 idSelector
15533 );
15534 const style1 = document.createElement("style");
15535 style1.innerHTML = rules;
15536 svg2.insertBefore(style1, firstChild);
15537 try {
15538 await diag.renderer.draw(text2, id2, version$1, diag);
15539 } catch (e) {
15540 errorRenderer.draw(text2, id2, version$1);
15541 throw e;
15542 }
15543 const svgNode2 = root2.select(`${enclosingDivID_selector} svg`);
15544 const a11yTitle = (_b = (_a = diag.db).getAccTitle) == null ? void 0 : _b.call(_a);
15545 const a11yDescr = (_d = (_c = diag.db).getAccDescription) == null ? void 0 : _d.call(_c);
15546 addA11yInfo(graphType, svgNode2, a11yTitle, a11yDescr);
15547 root2.select(`[id="${id2}"]`).selectAll("foreignobject > *").attr("xmlns", XMLNS_XHTML_STD);
15548 let svgCode = root2.select(enclosingDivID_selector).node().innerHTML;
15549 log$1.debug("config.arrowMarkerAbsolute", config2.arrowMarkerAbsolute);
15550 svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config2.arrowMarkerAbsolute));
15551 if (isSandboxed) {
15552 const svgEl = root2.select(enclosingDivID_selector + " svg").node();
15553 svgCode = putIntoIFrame(svgCode, svgEl);
15554 } else if (!isLooseSecurityLevel) {
15555 svgCode = purify.sanitize(svgCode, {
15556 ADD_TAGS: DOMPURIFY_TAGS,
15557 ADD_ATTR: DOMPURIFY_ATTR
15558 });
15559 }
15560 attachFunctions();
15561 if (parseEncounteredException) {
15562 throw parseEncounteredException;
15563 }
15564 const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector;
15565 const node2 = select(tmpElementSelector).node();
15566 if (node2 && "remove" in node2) {
15567 node2.remove();
15568 }
15569 return {
15570 svg: svgCode,
15571 bindFunctions: diag.db.bindFunctions
15572 };
15573 };
15574 function initialize$1(options2 = {}) {
15575 var _a;
15576 if ((options2 == null ? void 0 : options2.fontFamily) && !((_a = options2.themeVariables) == null ? void 0 : _a.fontFamily)) {
15577 if (!options2.themeVariables) {
15578 options2.themeVariables = {};
15579 }
15580 options2.themeVariables.fontFamily = options2.fontFamily;
15581 }
15582 saveConfigFromInitialize(options2);
15583 if ((options2 == null ? void 0 : options2.theme) && options2.theme in theme) {
15584 options2.themeVariables = theme[options2.theme].getThemeVariables(
15585 options2.themeVariables
15586 );
15587 } else if (options2) {
15588 options2.themeVariables = theme.default.getThemeVariables(options2.themeVariables);
15589 }
15590 const config2 = typeof options2 === "object" ? setSiteConfig(options2) : getSiteConfig();
15591 setLogLevel$1(config2.logLevel);
15592 addDiagrams();
15593 }
15594 function addA11yInfo(graphType, svgNode2, a11yTitle, a11yDescr) {
15595 setA11yDiagramInfo(svgNode2, graphType);
15596 addSVGa11yTitleDescription(svgNode2, a11yTitle, a11yDescr, svgNode2.attr("id"));
15597 }
15598 const mermaidAPI = Object.freeze({
15599 render: render$3,
15600 parse: parse$3,
15601 parseDirective: parseDirective$e,
15602 getDiagramFromText,
15603 initialize: initialize$1,
15604 getConfig: getConfig$1,
15605 setConfig,
15606 getSiteConfig,
15607 updateSiteConfig,
15608 reset: () => {
15609 reset();
15610 },
15611 globalReset: () => {
15612 reset(defaultConfig);
15613 },
15614 defaultConfig
15615 });
15616 setLogLevel$1(getConfig$1().logLevel);
15617 reset(getConfig$1());
15618 const handleError = (error, errors, parseError2) => {
15619 log$1.warn(error);
15620 if (isDetailedError(error)) {
15621 if (parseError2) {
15622 parseError2(error.str, error.hash);
15623 }
15624 errors.push({ ...error, message: error.str, error });
15625 } else {
15626 if (parseError2) {
15627 parseError2(error);
15628 }
15629 if (error instanceof Error) {
15630 errors.push({
15631 str: error.message,
15632 message: error.message,
15633 hash: error.name,
15634 error
15635 });
15636 }
15637 }
15638 };
15639 const run$3 = async function(options2 = {
15640 querySelector: ".mermaid"
15641 }) {
15642 try {
15643 await runThrowsErrors(options2);
15644 } catch (e) {
15645 if (isDetailedError(e)) {
15646 log$1.error(e.str);
15647 }
15648 if (mermaid.parseError) {
15649 mermaid.parseError(e);
15650 }
15651 if (!options2.suppressErrors) {
15652 log$1.error("Use the suppressErrors option to suppress these errors");
15653 throw e;
15654 }
15655 }
15656 };
15657 const runThrowsErrors = async function({ postRenderCallback, querySelector, nodes: nodes2 } = {
15658 querySelector: ".mermaid"
15659 }) {
15660 const conf2 = mermaidAPI.getConfig();
15661 log$1.debug(`${!postRenderCallback ? "No " : ""}Callback function found`);
15662 let nodesToProcess;
15663 if (nodes2) {
15664 nodesToProcess = nodes2;
15665 } else if (querySelector) {
15666 nodesToProcess = document.querySelectorAll(querySelector);
15667 } else {
15668 throw new Error("Nodes and querySelector are both undefined");
15669 }
15670 log$1.debug(`Found ${nodesToProcess.length} diagrams`);
15671 if ((conf2 == null ? void 0 : conf2.startOnLoad) !== void 0) {
15672 log$1.debug("Start On Load: " + (conf2 == null ? void 0 : conf2.startOnLoad));
15673 mermaidAPI.updateSiteConfig({ startOnLoad: conf2 == null ? void 0 : conf2.startOnLoad });
15674 }
15675 const idGenerator = new utils.initIdGenerator(conf2.deterministicIds, conf2.deterministicIDSeed);
15676 let txt;
15677 const errors = [];
15678 for (const element2 of Array.from(nodesToProcess)) {
15679 log$1.info("Rendering diagram: " + element2.id);
15680 /*! Check if previously processed */
15681 if (element2.getAttribute("data-processed")) {
15682 continue;
15683 }
15684 element2.setAttribute("data-processed", "true");
15685 const id2 = `mermaid-${idGenerator.next()}`;
15686 txt = element2.innerHTML;
15687 txt = dedent(utils.entityDecode(txt)).trim().replace(/<br\s*\/?>/gi, "<br/>");
15688 const init2 = utils.detectInit(txt);
15689 if (init2) {
15690 log$1.debug("Detected early reinit: ", init2);
15691 }
15692 try {
15693 const { svg: svg2, bindFunctions: bindFunctions2 } = await render$2(id2, txt, element2);
15694 element2.innerHTML = svg2;
15695 if (postRenderCallback) {
15696 await postRenderCallback(id2);
15697 }
15698 if (bindFunctions2) {
15699 bindFunctions2(element2);
15700 }
15701 } catch (error) {
15702 handleError(error, errors, mermaid.parseError);
15703 }
15704 }
15705 if (errors.length > 0) {
15706 throw errors[0];
15707 }
15708 };
15709 const initialize = function(config2) {
15710 mermaidAPI.initialize(config2);
15711 };
15712 const init = async function(config2, nodes2, callback) {
15713 log$1.warn("mermaid.init is deprecated. Please use run instead.");
15714 if (config2) {
15715 initialize(config2);
15716 }
15717 const runOptions = { postRenderCallback: callback, querySelector: ".mermaid" };
15718 if (typeof nodes2 === "string") {
15719 runOptions.querySelector = nodes2;
15720 } else if (nodes2) {
15721 if (nodes2 instanceof HTMLElement) {
15722 runOptions.nodes = [nodes2];
15723 } else {
15724 runOptions.nodes = nodes2;
15725 }
15726 }
15727 await run$3(runOptions);
15728 };
15729 const registerExternalDiagrams = async (diagrams2, {
15730 lazyLoad = true
15731 } = {}) => {
15732 registerLazyLoadedDiagrams(...diagrams2);
15733 if (lazyLoad === false) {
15734 await loadRegisteredDiagrams();
15735 }
15736 };
15737 const contentLoaded = function() {
15738 if (mermaid.startOnLoad) {
15739 const { startOnLoad } = mermaidAPI.getConfig();
15740 if (startOnLoad) {
15741 mermaid.run().catch((err) => log$1.error("Mermaid failed to initialize", err));
15742 }
15743 }
15744 };
15745 if (typeof document !== "undefined") {
15746 /*!
15747 * Wait for document loaded before starting the execution
15748 */
15749 window.addEventListener("load", contentLoaded, false);
15750 }
15751 const setParseErrorHandler = function(parseErrorHandler) {
15752 mermaid.parseError = parseErrorHandler;
15753 };
15754 const executionQueue = [];
15755 let executionQueueRunning = false;
15756 const executeQueue = async () => {
15757 if (executionQueueRunning) {
15758 return;
15759 }
15760 executionQueueRunning = true;
15761 while (executionQueue.length > 0) {
15762 const f2 = executionQueue.shift();
15763 if (f2) {
15764 try {
15765 await f2();
15766 } catch (e) {
15767 log$1.error("Error executing queue", e);
15768 }
15769 }
15770 }
15771 executionQueueRunning = false;
15772 };
15773 const parse$2 = async (text2, parseOptions) => {
15774 return new Promise((resolve, reject) => {
15775 const performCall = () => new Promise((res, rej) => {
15776 mermaidAPI.parse(text2, parseOptions).then(
15777 (r) => {
15778 res(r);
15779 resolve(r);
15780 },
15781 (e) => {
15782 var _a;
15783 log$1.error("Error parsing", e);
15784 (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e);
15785 rej(e);
15786 reject(e);
15787 }
15788 );
15789 });
15790 executionQueue.push(performCall);
15791 executeQueue().catch(reject);
15792 });
15793 };
15794 const render$2 = (id2, text2, container) => {
15795 return new Promise((resolve, reject) => {
15796 const performCall = () => new Promise((res, rej) => {
15797 mermaidAPI.render(id2, text2, container).then(
15798 (r) => {
15799 res(r);
15800 resolve(r);
15801 },
15802 (e) => {
15803 var _a;
15804 log$1.error("Error parsing", e);
15805 (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e);
15806 rej(e);
15807 reject(e);
15808 }
15809 );
15810 });
15811 executionQueue.push(performCall);
15812 executeQueue().catch(reject);
15813 });
15814 };
15815 const mermaid = {
15816 startOnLoad: true,
15817 mermaidAPI,
15818 parse: parse$2,
15819 render: render$2,
15820 init,
15821 run: run$3,
15822 registerExternalDiagrams,
15823 initialize,
15824 parseError: void 0,
15825 contentLoaded,
15826 setParseErrorHandler,
15827 detectType
15828 };
15829 var parser$o = function() {
15830 var o = function(k, v, o2, l) {
15831 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
15832 ;
15833 return o2;
15834 }, $V0 = [1, 6], $V1 = [1, 7], $V2 = [1, 8], $V3 = [1, 9], $V4 = [1, 16], $V5 = [1, 11], $V6 = [1, 12], $V7 = [1, 13], $V8 = [1, 14], $V9 = [1, 15], $Va = [1, 27], $Vb = [1, 33], $Vc = [1, 34], $Vd = [1, 35], $Ve = [1, 36], $Vf = [1, 37], $Vg = [1, 72], $Vh = [1, 73], $Vi = [1, 74], $Vj = [1, 75], $Vk = [1, 76], $Vl = [1, 77], $Vm = [1, 78], $Vn = [1, 38], $Vo = [1, 39], $Vp = [1, 40], $Vq = [1, 41], $Vr = [1, 42], $Vs = [1, 43], $Vt = [1, 44], $Vu = [1, 45], $Vv = [1, 46], $Vw = [1, 47], $Vx = [1, 48], $Vy = [1, 49], $Vz = [1, 50], $VA = [1, 51], $VB = [1, 52], $VC = [1, 53], $VD = [1, 54], $VE = [1, 55], $VF = [1, 56], $VG = [1, 57], $VH = [1, 59], $VI = [1, 60], $VJ = [1, 61], $VK = [1, 62], $VL = [1, 63], $VM = [1, 64], $VN = [1, 65], $VO = [1, 66], $VP = [1, 67], $VQ = [1, 68], $VR = [1, 69], $VS = [24, 52], $VT = [24, 44, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84], $VU = [15, 24, 44, 46, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84], $VV = [1, 94], $VW = [1, 95], $VX = [1, 96], $VY = [1, 97], $VZ = [15, 24, 52], $V_ = [7, 8, 9, 10, 18, 22, 25, 26, 27, 28], $V$ = [15, 24, 43, 52], $V01 = [15, 24, 43, 52, 86, 87, 89, 90], $V11 = [15, 43], $V21 = [44, 46, 47, 48, 49, 50, 51, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84];
15835 var parser2 = {
15836 trace: function trace() {
15837 },
15838 yy: {},
15839 symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "direction": 5, "directive": 6, "direction_tb": 7, "direction_bt": 8, "direction_rl": 9, "direction_lr": 10, "graphConfig": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, "NEWLINE": 15, ":": 16, "argDirective": 17, "open_directive": 18, "type_directive": 19, "arg_directive": 20, "close_directive": 21, "C4_CONTEXT": 22, "statements": 23, "EOF": 24, "C4_CONTAINER": 25, "C4_COMPONENT": 26, "C4_DYNAMIC": 27, "C4_DEPLOYMENT": 28, "otherStatements": 29, "diagramStatements": 30, "otherStatement": 31, "title": 32, "accDescription": 33, "acc_title": 34, "acc_title_value": 35, "acc_descr": 36, "acc_descr_value": 37, "acc_descr_multiline_value": 38, "boundaryStatement": 39, "boundaryStartStatement": 40, "boundaryStopStatement": 41, "boundaryStart": 42, "LBRACE": 43, "ENTERPRISE_BOUNDARY": 44, "attributes": 45, "SYSTEM_BOUNDARY": 46, "BOUNDARY": 47, "CONTAINER_BOUNDARY": 48, "NODE": 49, "NODE_L": 50, "NODE_R": 51, "RBRACE": 52, "diagramStatement": 53, "PERSON": 54, "PERSON_EXT": 55, "SYSTEM": 56, "SYSTEM_DB": 57, "SYSTEM_QUEUE": 58, "SYSTEM_EXT": 59, "SYSTEM_EXT_DB": 60, "SYSTEM_EXT_QUEUE": 61, "CONTAINER": 62, "CONTAINER_DB": 63, "CONTAINER_QUEUE": 64, "CONTAINER_EXT": 65, "CONTAINER_EXT_DB": 66, "CONTAINER_EXT_QUEUE": 67, "COMPONENT": 68, "COMPONENT_DB": 69, "COMPONENT_QUEUE": 70, "COMPONENT_EXT": 71, "COMPONENT_EXT_DB": 72, "COMPONENT_EXT_QUEUE": 73, "REL": 74, "BIREL": 75, "REL_U": 76, "REL_D": 77, "REL_L": 78, "REL_R": 79, "REL_B": 80, "REL_INDEX": 81, "UPDATE_EL_STYLE": 82, "UPDATE_REL_STYLE": 83, "UPDATE_LAYOUT_CONFIG": 84, "attribute": 85, "STR": 86, "STR_KEY": 87, "STR_VALUE": 88, "ATTRIBUTE": 89, "ATTRIBUTE_EMPTY": 90, "$accept": 0, "$end": 1 },
15840 terminals_: { 2: "error", 7: "direction_tb", 8: "direction_bt", 9: "direction_rl", 10: "direction_lr", 15: "NEWLINE", 16: ":", 18: "open_directive", 19: "type_directive", 20: "arg_directive", 21: "close_directive", 22: "C4_CONTEXT", 24: "EOF", 25: "C4_CONTAINER", 26: "C4_COMPONENT", 27: "C4_DYNAMIC", 28: "C4_DEPLOYMENT", 32: "title", 33: "accDescription", 34: "acc_title", 35: "acc_title_value", 36: "acc_descr", 37: "acc_descr_value", 38: "acc_descr_multiline_value", 43: "LBRACE", 44: "ENTERPRISE_BOUNDARY", 46: "SYSTEM_BOUNDARY", 47: "BOUNDARY", 48: "CONTAINER_BOUNDARY", 49: "NODE", 50: "NODE_L", 51: "NODE_R", 52: "RBRACE", 54: "PERSON", 55: "PERSON_EXT", 56: "SYSTEM", 57: "SYSTEM_DB", 58: "SYSTEM_QUEUE", 59: "SYSTEM_EXT", 60: "SYSTEM_EXT_DB", 61: "SYSTEM_EXT_QUEUE", 62: "CONTAINER", 63: "CONTAINER_DB", 64: "CONTAINER_QUEUE", 65: "CONTAINER_EXT", 66: "CONTAINER_EXT_DB", 67: "CONTAINER_EXT_QUEUE", 68: "COMPONENT", 69: "COMPONENT_DB", 70: "COMPONENT_QUEUE", 71: "COMPONENT_EXT", 72: "COMPONENT_EXT_DB", 73: "COMPONENT_EXT_QUEUE", 74: "REL", 75: "BIREL", 76: "REL_U", 77: "REL_D", 78: "REL_L", 79: "REL_R", 80: "REL_B", 81: "REL_INDEX", 82: "UPDATE_EL_STYLE", 83: "UPDATE_REL_STYLE", 84: "UPDATE_LAYOUT_CONFIG", 86: "STR", 87: "STR_KEY", 88: "STR_VALUE", 89: "ATTRIBUTE", 90: "ATTRIBUTE_EMPTY" },
15841 productions_: [0, [3, 1], [3, 1], [3, 2], [5, 1], [5, 1], [5, 1], [5, 1], [4, 1], [6, 4], [6, 6], [12, 1], [13, 1], [17, 1], [14, 1], [11, 4], [11, 4], [11, 4], [11, 4], [11, 4], [23, 1], [23, 1], [23, 2], [29, 1], [29, 2], [29, 3], [31, 1], [31, 1], [31, 2], [31, 2], [31, 1], [39, 3], [40, 3], [40, 3], [40, 4], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [42, 2], [41, 1], [30, 1], [30, 2], [30, 3], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 1], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [53, 2], [45, 1], [45, 2], [85, 1], [85, 2], [85, 1], [85, 1]],
15842 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
15843 var $0 = $$.length - 1;
15844 switch (yystate) {
15845 case 4:
15846 yy.setDirection("TB");
15847 break;
15848 case 5:
15849 yy.setDirection("BT");
15850 break;
15851 case 6:
15852 yy.setDirection("RL");
15853 break;
15854 case 7:
15855 yy.setDirection("LR");
15856 break;
15857 case 11:
15858 yy.parseDirective("%%{", "open_directive");
15859 break;
15860 case 12:
15861 break;
15862 case 13:
15863 $$[$0] = $$[$0].trim().replace(/'/g, '"');
15864 yy.parseDirective($$[$0], "arg_directive");
15865 break;
15866 case 14:
15867 yy.parseDirective("}%%", "close_directive", "c4Context");
15868 break;
15869 case 15:
15870 case 16:
15871 case 17:
15872 case 18:
15873 case 19:
15874 yy.setC4Type($$[$0 - 3]);
15875 break;
15876 case 26:
15877 yy.setTitle($$[$0].substring(6));
15878 this.$ = $$[$0].substring(6);
15879 break;
15880 case 27:
15881 yy.setAccDescription($$[$0].substring(15));
15882 this.$ = $$[$0].substring(15);
15883 break;
15884 case 28:
15885 this.$ = $$[$0].trim();
15886 yy.setTitle(this.$);
15887 break;
15888 case 29:
15889 case 30:
15890 this.$ = $$[$0].trim();
15891 yy.setAccDescription(this.$);
15892 break;
15893 case 35:
15894 case 36:
15895 $$[$0].splice(2, 0, "ENTERPRISE");
15896 yy.addPersonOrSystemBoundary(...$$[$0]);
15897 this.$ = $$[$0];
15898 break;
15899 case 37:
15900 yy.addPersonOrSystemBoundary(...$$[$0]);
15901 this.$ = $$[$0];
15902 break;
15903 case 38:
15904 $$[$0].splice(2, 0, "CONTAINER");
15905 yy.addContainerBoundary(...$$[$0]);
15906 this.$ = $$[$0];
15907 break;
15908 case 39:
15909 yy.addDeploymentNode("node", ...$$[$0]);
15910 this.$ = $$[$0];
15911 break;
15912 case 40:
15913 yy.addDeploymentNode("nodeL", ...$$[$0]);
15914 this.$ = $$[$0];
15915 break;
15916 case 41:
15917 yy.addDeploymentNode("nodeR", ...$$[$0]);
15918 this.$ = $$[$0];
15919 break;
15920 case 42:
15921 yy.popBoundaryParseStack();
15922 break;
15923 case 46:
15924 yy.addPersonOrSystem("person", ...$$[$0]);
15925 this.$ = $$[$0];
15926 break;
15927 case 47:
15928 yy.addPersonOrSystem("external_person", ...$$[$0]);
15929 this.$ = $$[$0];
15930 break;
15931 case 48:
15932 yy.addPersonOrSystem("system", ...$$[$0]);
15933 this.$ = $$[$0];
15934 break;
15935 case 49:
15936 yy.addPersonOrSystem("system_db", ...$$[$0]);
15937 this.$ = $$[$0];
15938 break;
15939 case 50:
15940 yy.addPersonOrSystem("system_queue", ...$$[$0]);
15941 this.$ = $$[$0];
15942 break;
15943 case 51:
15944 yy.addPersonOrSystem("external_system", ...$$[$0]);
15945 this.$ = $$[$0];
15946 break;
15947 case 52:
15948 yy.addPersonOrSystem("external_system_db", ...$$[$0]);
15949 this.$ = $$[$0];
15950 break;
15951 case 53:
15952 yy.addPersonOrSystem("external_system_queue", ...$$[$0]);
15953 this.$ = $$[$0];
15954 break;
15955 case 54:
15956 yy.addContainer("container", ...$$[$0]);
15957 this.$ = $$[$0];
15958 break;
15959 case 55:
15960 yy.addContainer("container_db", ...$$[$0]);
15961 this.$ = $$[$0];
15962 break;
15963 case 56:
15964 yy.addContainer("container_queue", ...$$[$0]);
15965 this.$ = $$[$0];
15966 break;
15967 case 57:
15968 yy.addContainer("external_container", ...$$[$0]);
15969 this.$ = $$[$0];
15970 break;
15971 case 58:
15972 yy.addContainer("external_container_db", ...$$[$0]);
15973 this.$ = $$[$0];
15974 break;
15975 case 59:
15976 yy.addContainer("external_container_queue", ...$$[$0]);
15977 this.$ = $$[$0];
15978 break;
15979 case 60:
15980 yy.addComponent("component", ...$$[$0]);
15981 this.$ = $$[$0];
15982 break;
15983 case 61:
15984 yy.addComponent("component_db", ...$$[$0]);
15985 this.$ = $$[$0];
15986 break;
15987 case 62:
15988 yy.addComponent("component_queue", ...$$[$0]);
15989 this.$ = $$[$0];
15990 break;
15991 case 63:
15992 yy.addComponent("external_component", ...$$[$0]);
15993 this.$ = $$[$0];
15994 break;
15995 case 64:
15996 yy.addComponent("external_component_db", ...$$[$0]);
15997 this.$ = $$[$0];
15998 break;
15999 case 65:
16000 yy.addComponent("external_component_queue", ...$$[$0]);
16001 this.$ = $$[$0];
16002 break;
16003 case 67:
16004 yy.addRel("rel", ...$$[$0]);
16005 this.$ = $$[$0];
16006 break;
16007 case 68:
16008 yy.addRel("birel", ...$$[$0]);
16009 this.$ = $$[$0];
16010 break;
16011 case 69:
16012 yy.addRel("rel_u", ...$$[$0]);
16013 this.$ = $$[$0];
16014 break;
16015 case 70:
16016 yy.addRel("rel_d", ...$$[$0]);
16017 this.$ = $$[$0];
16018 break;
16019 case 71:
16020 yy.addRel("rel_l", ...$$[$0]);
16021 this.$ = $$[$0];
16022 break;
16023 case 72:
16024 yy.addRel("rel_r", ...$$[$0]);
16025 this.$ = $$[$0];
16026 break;
16027 case 73:
16028 yy.addRel("rel_b", ...$$[$0]);
16029 this.$ = $$[$0];
16030 break;
16031 case 74:
16032 $$[$0].splice(0, 1);
16033 yy.addRel("rel", ...$$[$0]);
16034 this.$ = $$[$0];
16035 break;
16036 case 75:
16037 yy.updateElStyle("update_el_style", ...$$[$0]);
16038 this.$ = $$[$0];
16039 break;
16040 case 76:
16041 yy.updateRelStyle("update_rel_style", ...$$[$0]);
16042 this.$ = $$[$0];
16043 break;
16044 case 77:
16045 yy.updateLayoutConfig("update_layout_config", ...$$[$0]);
16046 this.$ = $$[$0];
16047 break;
16048 case 78:
16049 this.$ = [$$[$0]];
16050 break;
16051 case 79:
16052 $$[$0].unshift($$[$0 - 1]);
16053 this.$ = $$[$0];
16054 break;
16055 case 80:
16056 case 82:
16057 this.$ = $$[$0].trim();
16058 break;
16059 case 81:
16060 let kv = {};
16061 kv[$$[$0 - 1].trim()] = $$[$0].trim();
16062 this.$ = kv;
16063 break;
16064 case 83:
16065 this.$ = "";
16066 break;
16067 }
16068 },
16069 table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: $V0, 8: $V1, 9: $V2, 10: $V3, 11: 5, 12: 10, 18: $V4, 22: $V5, 25: $V6, 26: $V7, 27: $V8, 28: $V9 }, { 1: [3] }, { 1: [2, 1] }, { 1: [2, 2] }, { 3: 17, 4: 2, 5: 3, 6: 4, 7: $V0, 8: $V1, 9: $V2, 10: $V3, 11: 5, 12: 10, 18: $V4, 22: $V5, 25: $V6, 26: $V7, 27: $V8, 28: $V9 }, { 1: [2, 8] }, { 1: [2, 4] }, { 1: [2, 5] }, { 1: [2, 6] }, { 1: [2, 7] }, { 13: 18, 19: [1, 19] }, { 15: [1, 20] }, { 15: [1, 21] }, { 15: [1, 22] }, { 15: [1, 23] }, { 15: [1, 24] }, { 19: [2, 11] }, { 1: [2, 3] }, { 14: 25, 16: [1, 26], 21: $Va }, o([16, 21], [2, 12]), { 23: 28, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 79, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 80, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 81, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 23: 82, 29: 29, 30: 30, 31: 31, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 15: [1, 83] }, { 17: 84, 20: [1, 85] }, { 15: [2, 14] }, { 24: [1, 86] }, o($VS, [2, 20], { 53: 32, 39: 58, 40: 70, 42: 71, 30: 87, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }), o($VS, [2, 21]), o($VT, [2, 23], { 15: [1, 88] }), o($VS, [2, 43], { 15: [1, 89] }), o($VU, [2, 26]), o($VU, [2, 27]), { 35: [1, 90] }, { 37: [1, 91] }, o($VU, [2, 30]), { 45: 92, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 98, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 99, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 100, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 101, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 102, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 103, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 104, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 105, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 106, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 107, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 108, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 109, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 110, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 111, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 112, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 113, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 114, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 115, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 116, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, o($VZ, [2, 66]), { 45: 117, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 118, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 119, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 120, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 121, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 122, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 123, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 124, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 125, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 126, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 127, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 30: 128, 39: 58, 40: 70, 42: 71, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 53: 32, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }, { 15: [1, 130], 43: [1, 129] }, { 45: 131, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 132, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 133, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 134, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 135, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 136, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 45: 137, 85: 93, 86: $VV, 87: $VW, 89: $VX, 90: $VY }, { 24: [1, 138] }, { 24: [1, 139] }, { 24: [1, 140] }, { 24: [1, 141] }, o($V_, [2, 9]), { 14: 142, 21: $Va }, { 21: [2, 13] }, { 1: [2, 15] }, o($VS, [2, 22]), o($VT, [2, 24], { 31: 31, 29: 143, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf }), o($VS, [2, 44], { 29: 29, 30: 30, 31: 31, 53: 32, 39: 58, 40: 70, 42: 71, 23: 144, 32: $Vb, 33: $Vc, 34: $Vd, 36: $Ve, 38: $Vf, 44: $Vg, 46: $Vh, 47: $Vi, 48: $Vj, 49: $Vk, 50: $Vl, 51: $Vm, 54: $Vn, 55: $Vo, 56: $Vp, 57: $Vq, 58: $Vr, 59: $Vs, 60: $Vt, 61: $Vu, 62: $Vv, 63: $Vw, 64: $Vx, 65: $Vy, 66: $Vz, 67: $VA, 68: $VB, 69: $VC, 70: $VD, 71: $VE, 72: $VF, 73: $VG, 74: $VH, 75: $VI, 76: $VJ, 77: $VK, 78: $VL, 79: $VM, 80: $VN, 81: $VO, 82: $VP, 83: $VQ, 84: $VR }), o($VU, [2, 28]), o($VU, [2, 29]), o($VZ, [2, 46]), o($V$, [2, 78], { 85: 93, 45: 145, 86: $VV, 87: $VW, 89: $VX, 90: $VY }), o($V01, [2, 80]), { 88: [1, 146] }, o($V01, [2, 82]), o($V01, [2, 83]), o($VZ, [2, 47]), o($VZ, [2, 48]), o($VZ, [2, 49]), o($VZ, [2, 50]), o($VZ, [2, 51]), o($VZ, [2, 52]), o($VZ, [2, 53]), o($VZ, [2, 54]), o($VZ, [2, 55]), o($VZ, [2, 56]), o($VZ, [2, 57]), o($VZ, [2, 58]), o($VZ, [2, 59]), o($VZ, [2, 60]), o($VZ, [2, 61]), o($VZ, [2, 62]), o($VZ, [2, 63]), o($VZ, [2, 64]), o($VZ, [2, 65]), o($VZ, [2, 67]), o($VZ, [2, 68]), o($VZ, [2, 69]), o($VZ, [2, 70]), o($VZ, [2, 71]), o($VZ, [2, 72]), o($VZ, [2, 73]), o($VZ, [2, 74]), o($VZ, [2, 75]), o($VZ, [2, 76]), o($VZ, [2, 77]), { 41: 147, 52: [1, 148] }, { 15: [1, 149] }, { 43: [1, 150] }, o($V11, [2, 35]), o($V11, [2, 36]), o($V11, [2, 37]), o($V11, [2, 38]), o($V11, [2, 39]), o($V11, [2, 40]), o($V11, [2, 41]), { 1: [2, 16] }, { 1: [2, 17] }, { 1: [2, 18] }, { 1: [2, 19] }, { 15: [1, 151] }, o($VT, [2, 25]), o($VS, [2, 45]), o($V$, [2, 79]), o($V01, [2, 81]), o($VZ, [2, 31]), o($VZ, [2, 42]), o($V21, [2, 32]), o($V21, [2, 33], { 15: [1, 152] }), o($V_, [2, 10]), o($V21, [2, 34])],
16070 defaultActions: { 2: [2, 1], 3: [2, 2], 5: [2, 8], 6: [2, 4], 7: [2, 5], 8: [2, 6], 9: [2, 7], 16: [2, 11], 17: [2, 3], 27: [2, 14], 85: [2, 13], 86: [2, 15], 138: [2, 16], 139: [2, 17], 140: [2, 18], 141: [2, 19] },
16071 parseError: function parseError2(str2, hash) {
16072 if (hash.recoverable) {
16073 this.trace(str2);
16074 } else {
16075 var error = new Error(str2);
16076 error.hash = hash;
16077 throw error;
16078 }
16079 },
16080 parse: function parse2(input) {
16081 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
16082 var args = lstack.slice.call(arguments, 1);
16083 var lexer2 = Object.create(this.lexer);
16084 var sharedState = { yy: {} };
16085 for (var k in this.yy) {
16086 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
16087 sharedState.yy[k] = this.yy[k];
16088 }
16089 }
16090 lexer2.setInput(input, sharedState.yy);
16091 sharedState.yy.lexer = lexer2;
16092 sharedState.yy.parser = this;
16093 if (typeof lexer2.yylloc == "undefined") {
16094 lexer2.yylloc = {};
16095 }
16096 var yyloc = lexer2.yylloc;
16097 lstack.push(yyloc);
16098 var ranges = lexer2.options && lexer2.options.ranges;
16099 if (typeof sharedState.yy.parseError === "function") {
16100 this.parseError = sharedState.yy.parseError;
16101 } else {
16102 this.parseError = Object.getPrototypeOf(this).parseError;
16103 }
16104 function lex2() {
16105 var token2;
16106 token2 = tstack.pop() || lexer2.lex() || EOF;
16107 if (typeof token2 !== "number") {
16108 if (token2 instanceof Array) {
16109 tstack = token2;
16110 token2 = tstack.pop();
16111 }
16112 token2 = self2.symbols_[token2] || token2;
16113 }
16114 return token2;
16115 }
16116 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
16117 while (true) {
16118 state2 = stack[stack.length - 1];
16119 if (this.defaultActions[state2]) {
16120 action = this.defaultActions[state2];
16121 } else {
16122 if (symbol === null || typeof symbol == "undefined") {
16123 symbol = lex2();
16124 }
16125 action = table[state2] && table[state2][symbol];
16126 }
16127 if (typeof action === "undefined" || !action.length || !action[0]) {
16128 var errStr = "";
16129 expected = [];
16130 for (p in table[state2]) {
16131 if (this.terminals_[p] && p > TERROR) {
16132 expected.push("'" + this.terminals_[p] + "'");
16133 }
16134 }
16135 if (lexer2.showPosition) {
16136 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
16137 } else {
16138 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
16139 }
16140 this.parseError(errStr, {
16141 text: lexer2.match,
16142 token: this.terminals_[symbol] || symbol,
16143 line: lexer2.yylineno,
16144 loc: yyloc,
16145 expected
16146 });
16147 }
16148 if (action[0] instanceof Array && action.length > 1) {
16149 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
16150 }
16151 switch (action[0]) {
16152 case 1:
16153 stack.push(symbol);
16154 vstack.push(lexer2.yytext);
16155 lstack.push(lexer2.yylloc);
16156 stack.push(action[1]);
16157 symbol = null;
16158 {
16159 yyleng = lexer2.yyleng;
16160 yytext = lexer2.yytext;
16161 yylineno = lexer2.yylineno;
16162 yyloc = lexer2.yylloc;
16163 }
16164 break;
16165 case 2:
16166 len = this.productions_[action[1]][1];
16167 yyval.$ = vstack[vstack.length - len];
16168 yyval._$ = {
16169 first_line: lstack[lstack.length - (len || 1)].first_line,
16170 last_line: lstack[lstack.length - 1].last_line,
16171 first_column: lstack[lstack.length - (len || 1)].first_column,
16172 last_column: lstack[lstack.length - 1].last_column
16173 };
16174 if (ranges) {
16175 yyval._$.range = [
16176 lstack[lstack.length - (len || 1)].range[0],
16177 lstack[lstack.length - 1].range[1]
16178 ];
16179 }
16180 r = this.performAction.apply(yyval, [
16181 yytext,
16182 yyleng,
16183 yylineno,
16184 sharedState.yy,
16185 action[1],
16186 vstack,
16187 lstack
16188 ].concat(args));
16189 if (typeof r !== "undefined") {
16190 return r;
16191 }
16192 if (len) {
16193 stack = stack.slice(0, -1 * len * 2);
16194 vstack = vstack.slice(0, -1 * len);
16195 lstack = lstack.slice(0, -1 * len);
16196 }
16197 stack.push(this.productions_[action[1]][0]);
16198 vstack.push(yyval.$);
16199 lstack.push(yyval._$);
16200 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
16201 stack.push(newState);
16202 break;
16203 case 3:
16204 return true;
16205 }
16206 }
16207 return true;
16208 }
16209 };
16210 var lexer = function() {
16211 var lexer2 = {
16212 EOF: 1,
16213 parseError: function parseError2(str2, hash) {
16214 if (this.yy.parser) {
16215 this.yy.parser.parseError(str2, hash);
16216 } else {
16217 throw new Error(str2);
16218 }
16219 },
16220 // resets the lexer, sets new input
16221 setInput: function(input, yy) {
16222 this.yy = yy || this.yy || {};
16223 this._input = input;
16224 this._more = this._backtrack = this.done = false;
16225 this.yylineno = this.yyleng = 0;
16226 this.yytext = this.matched = this.match = "";
16227 this.conditionStack = ["INITIAL"];
16228 this.yylloc = {
16229 first_line: 1,
16230 first_column: 0,
16231 last_line: 1,
16232 last_column: 0
16233 };
16234 if (this.options.ranges) {
16235 this.yylloc.range = [0, 0];
16236 }
16237 this.offset = 0;
16238 return this;
16239 },
16240 // consumes and returns one char from the input
16241 input: function() {
16242 var ch = this._input[0];
16243 this.yytext += ch;
16244 this.yyleng++;
16245 this.offset++;
16246 this.match += ch;
16247 this.matched += ch;
16248 var lines = ch.match(/(?:\r\n?|\n).*/g);
16249 if (lines) {
16250 this.yylineno++;
16251 this.yylloc.last_line++;
16252 } else {
16253 this.yylloc.last_column++;
16254 }
16255 if (this.options.ranges) {
16256 this.yylloc.range[1]++;
16257 }
16258 this._input = this._input.slice(1);
16259 return ch;
16260 },
16261 // unshifts one char (or a string) into the input
16262 unput: function(ch) {
16263 var len = ch.length;
16264 var lines = ch.split(/(?:\r\n?|\n)/g);
16265 this._input = ch + this._input;
16266 this.yytext = this.yytext.substr(0, this.yytext.length - len);
16267 this.offset -= len;
16268 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
16269 this.match = this.match.substr(0, this.match.length - 1);
16270 this.matched = this.matched.substr(0, this.matched.length - 1);
16271 if (lines.length - 1) {
16272 this.yylineno -= lines.length - 1;
16273 }
16274 var r = this.yylloc.range;
16275 this.yylloc = {
16276 first_line: this.yylloc.first_line,
16277 last_line: this.yylineno + 1,
16278 first_column: this.yylloc.first_column,
16279 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
16280 };
16281 if (this.options.ranges) {
16282 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
16283 }
16284 this.yyleng = this.yytext.length;
16285 return this;
16286 },
16287 // When called from action, caches matched text and appends it on next action
16288 more: function() {
16289 this._more = true;
16290 return this;
16291 },
16292 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
16293 reject: function() {
16294 if (this.options.backtrack_lexer) {
16295 this._backtrack = true;
16296 } else {
16297 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
16298 text: "",
16299 token: null,
16300 line: this.yylineno
16301 });
16302 }
16303 return this;
16304 },
16305 // retain first n characters of the match
16306 less: function(n) {
16307 this.unput(this.match.slice(n));
16308 },
16309 // displays already matched input, i.e. for error messages
16310 pastInput: function() {
16311 var past = this.matched.substr(0, this.matched.length - this.match.length);
16312 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
16313 },
16314 // displays upcoming input, i.e. for error messages
16315 upcomingInput: function() {
16316 var next2 = this.match;
16317 if (next2.length < 20) {
16318 next2 += this._input.substr(0, 20 - next2.length);
16319 }
16320 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
16321 },
16322 // displays the character position where the lexing error occurred, i.e. for error messages
16323 showPosition: function() {
16324 var pre = this.pastInput();
16325 var c2 = new Array(pre.length + 1).join("-");
16326 return pre + this.upcomingInput() + "\n" + c2 + "^";
16327 },
16328 // test the lexed token: return FALSE when not a match, otherwise return token
16329 test_match: function(match, indexed_rule) {
16330 var token2, lines, backup;
16331 if (this.options.backtrack_lexer) {
16332 backup = {
16333 yylineno: this.yylineno,
16334 yylloc: {
16335 first_line: this.yylloc.first_line,
16336 last_line: this.last_line,
16337 first_column: this.yylloc.first_column,
16338 last_column: this.yylloc.last_column
16339 },
16340 yytext: this.yytext,
16341 match: this.match,
16342 matches: this.matches,
16343 matched: this.matched,
16344 yyleng: this.yyleng,
16345 offset: this.offset,
16346 _more: this._more,
16347 _input: this._input,
16348 yy: this.yy,
16349 conditionStack: this.conditionStack.slice(0),
16350 done: this.done
16351 };
16352 if (this.options.ranges) {
16353 backup.yylloc.range = this.yylloc.range.slice(0);
16354 }
16355 }
16356 lines = match[0].match(/(?:\r\n?|\n).*/g);
16357 if (lines) {
16358 this.yylineno += lines.length;
16359 }
16360 this.yylloc = {
16361 first_line: this.yylloc.last_line,
16362 last_line: this.yylineno + 1,
16363 first_column: this.yylloc.last_column,
16364 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
16365 };
16366 this.yytext += match[0];
16367 this.match += match[0];
16368 this.matches = match;
16369 this.yyleng = this.yytext.length;
16370 if (this.options.ranges) {
16371 this.yylloc.range = [this.offset, this.offset += this.yyleng];
16372 }
16373 this._more = false;
16374 this._backtrack = false;
16375 this._input = this._input.slice(match[0].length);
16376 this.matched += match[0];
16377 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
16378 if (this.done && this._input) {
16379 this.done = false;
16380 }
16381 if (token2) {
16382 return token2;
16383 } else if (this._backtrack) {
16384 for (var k in backup) {
16385 this[k] = backup[k];
16386 }
16387 return false;
16388 }
16389 return false;
16390 },
16391 // return next match in input
16392 next: function() {
16393 if (this.done) {
16394 return this.EOF;
16395 }
16396 if (!this._input) {
16397 this.done = true;
16398 }
16399 var token2, match, tempMatch, index2;
16400 if (!this._more) {
16401 this.yytext = "";
16402 this.match = "";
16403 }
16404 var rules = this._currentRules();
16405 for (var i2 = 0; i2 < rules.length; i2++) {
16406 tempMatch = this._input.match(this.rules[rules[i2]]);
16407 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
16408 match = tempMatch;
16409 index2 = i2;
16410 if (this.options.backtrack_lexer) {
16411 token2 = this.test_match(tempMatch, rules[i2]);
16412 if (token2 !== false) {
16413 return token2;
16414 } else if (this._backtrack) {
16415 match = false;
16416 continue;
16417 } else {
16418 return false;
16419 }
16420 } else if (!this.options.flex) {
16421 break;
16422 }
16423 }
16424 }
16425 if (match) {
16426 token2 = this.test_match(match, rules[index2]);
16427 if (token2 !== false) {
16428 return token2;
16429 }
16430 return false;
16431 }
16432 if (this._input === "") {
16433 return this.EOF;
16434 } else {
16435 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
16436 text: "",
16437 token: null,
16438 line: this.yylineno
16439 });
16440 }
16441 },
16442 // return next match that has a token
16443 lex: function lex2() {
16444 var r = this.next();
16445 if (r) {
16446 return r;
16447 } else {
16448 return this.lex();
16449 }
16450 },
16451 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
16452 begin: function begin(condition) {
16453 this.conditionStack.push(condition);
16454 },
16455 // pop the previously active lexer condition state off the condition stack
16456 popState: function popState() {
16457 var n = this.conditionStack.length - 1;
16458 if (n > 0) {
16459 return this.conditionStack.pop();
16460 } else {
16461 return this.conditionStack[0];
16462 }
16463 },
16464 // produce the lexer rule set which is active for the currently active lexer condition state
16465 _currentRules: function _currentRules() {
16466 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
16467 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
16468 } else {
16469 return this.conditions["INITIAL"].rules;
16470 }
16471 },
16472 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
16473 topState: function topState(n) {
16474 n = this.conditionStack.length - 1 - Math.abs(n || 0);
16475 if (n >= 0) {
16476 return this.conditionStack[n];
16477 } else {
16478 return "INITIAL";
16479 }
16480 },
16481 // alias for begin(condition)
16482 pushState: function pushState(condition) {
16483 this.begin(condition);
16484 },
16485 // return the number of states currently on the stack
16486 stateStackSize: function stateStackSize() {
16487 return this.conditionStack.length;
16488 },
16489 options: {},
16490 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
16491 switch ($avoiding_name_collisions) {
16492 case 0:
16493 this.begin("open_directive");
16494 return 18;
16495 case 1:
16496 return 7;
16497 case 2:
16498 return 8;
16499 case 3:
16500 return 9;
16501 case 4:
16502 return 10;
16503 case 5:
16504 this.begin("type_directive");
16505 return 19;
16506 case 6:
16507 this.popState();
16508 this.begin("arg_directive");
16509 return 16;
16510 case 7:
16511 this.popState();
16512 this.popState();
16513 return 21;
16514 case 8:
16515 return 20;
16516 case 9:
16517 return 32;
16518 case 10:
16519 return 33;
16520 case 11:
16521 this.begin("acc_title");
16522 return 34;
16523 case 12:
16524 this.popState();
16525 return "acc_title_value";
16526 case 13:
16527 this.begin("acc_descr");
16528 return 36;
16529 case 14:
16530 this.popState();
16531 return "acc_descr_value";
16532 case 15:
16533 this.begin("acc_descr_multiline");
16534 break;
16535 case 16:
16536 this.popState();
16537 break;
16538 case 17:
16539 return "acc_descr_multiline_value";
16540 case 18:
16541 break;
16542 case 19:
16543 c;
16544 break;
16545 case 20:
16546 return 15;
16547 case 21:
16548 break;
16549 case 22:
16550 return 22;
16551 case 23:
16552 return 25;
16553 case 24:
16554 return 26;
16555 case 25:
16556 return 27;
16557 case 26:
16558 return 28;
16559 case 27:
16560 this.begin("person_ext");
16561 return 55;
16562 case 28:
16563 this.begin("person");
16564 return 54;
16565 case 29:
16566 this.begin("system_ext_queue");
16567 return 61;
16568 case 30:
16569 this.begin("system_ext_db");
16570 return 60;
16571 case 31:
16572 this.begin("system_ext");
16573 return 59;
16574 case 32:
16575 this.begin("system_queue");
16576 return 58;
16577 case 33:
16578 this.begin("system_db");
16579 return 57;
16580 case 34:
16581 this.begin("system");
16582 return 56;
16583 case 35:
16584 this.begin("boundary");
16585 return 47;
16586 case 36:
16587 this.begin("enterprise_boundary");
16588 return 44;
16589 case 37:
16590 this.begin("system_boundary");
16591 return 46;
16592 case 38:
16593 this.begin("container_ext_queue");
16594 return 67;
16595 case 39:
16596 this.begin("container_ext_db");
16597 return 66;
16598 case 40:
16599 this.begin("container_ext");
16600 return 65;
16601 case 41:
16602 this.begin("container_queue");
16603 return 64;
16604 case 42:
16605 this.begin("container_db");
16606 return 63;
16607 case 43:
16608 this.begin("container");
16609 return 62;
16610 case 44:
16611 this.begin("container_boundary");
16612 return 48;
16613 case 45:
16614 this.begin("component_ext_queue");
16615 return 73;
16616 case 46:
16617 this.begin("component_ext_db");
16618 return 72;
16619 case 47:
16620 this.begin("component_ext");
16621 return 71;
16622 case 48:
16623 this.begin("component_queue");
16624 return 70;
16625 case 49:
16626 this.begin("component_db");
16627 return 69;
16628 case 50:
16629 this.begin("component");
16630 return 68;
16631 case 51:
16632 this.begin("node");
16633 return 49;
16634 case 52:
16635 this.begin("node");
16636 return 49;
16637 case 53:
16638 this.begin("node_l");
16639 return 50;
16640 case 54:
16641 this.begin("node_r");
16642 return 51;
16643 case 55:
16644 this.begin("rel");
16645 return 74;
16646 case 56:
16647 this.begin("birel");
16648 return 75;
16649 case 57:
16650 this.begin("rel_u");
16651 return 76;
16652 case 58:
16653 this.begin("rel_u");
16654 return 76;
16655 case 59:
16656 this.begin("rel_d");
16657 return 77;
16658 case 60:
16659 this.begin("rel_d");
16660 return 77;
16661 case 61:
16662 this.begin("rel_l");
16663 return 78;
16664 case 62:
16665 this.begin("rel_l");
16666 return 78;
16667 case 63:
16668 this.begin("rel_r");
16669 return 79;
16670 case 64:
16671 this.begin("rel_r");
16672 return 79;
16673 case 65:
16674 this.begin("rel_b");
16675 return 80;
16676 case 66:
16677 this.begin("rel_index");
16678 return 81;
16679 case 67:
16680 this.begin("update_el_style");
16681 return 82;
16682 case 68:
16683 this.begin("update_rel_style");
16684 return 83;
16685 case 69:
16686 this.begin("update_layout_config");
16687 return 84;
16688 case 70:
16689 return "EOF_IN_STRUCT";
16690 case 71:
16691 this.begin("attribute");
16692 return "ATTRIBUTE_EMPTY";
16693 case 72:
16694 this.begin("attribute");
16695 break;
16696 case 73:
16697 this.popState();
16698 this.popState();
16699 break;
16700 case 74:
16701 return 90;
16702 case 75:
16703 break;
16704 case 76:
16705 return 90;
16706 case 77:
16707 this.begin("string");
16708 break;
16709 case 78:
16710 this.popState();
16711 break;
16712 case 79:
16713 return "STR";
16714 case 80:
16715 this.begin("string_kv");
16716 break;
16717 case 81:
16718 this.begin("string_kv_key");
16719 return "STR_KEY";
16720 case 82:
16721 this.popState();
16722 this.begin("string_kv_value");
16723 break;
16724 case 83:
16725 return "STR_VALUE";
16726 case 84:
16727 this.popState();
16728 this.popState();
16729 break;
16730 case 85:
16731 return "STR";
16732 case 86:
16733 return "LBRACE";
16734 case 87:
16735 return "RBRACE";
16736 case 88:
16737 return "SPACE";
16738 case 89:
16739 return "EOL";
16740 case 90:
16741 return 24;
16742 }
16743 },
16744 rules: [/^(?:%%\{)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:title\s[^#\n;]+)/, /^(?:accDescription\s[^#\n;]+)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:C4Context\b)/, /^(?:C4Container\b)/, /^(?:C4Component\b)/, /^(?:C4Dynamic\b)/, /^(?:C4Deployment\b)/, /^(?:Person_Ext\b)/, /^(?:Person\b)/, /^(?:SystemQueue_Ext\b)/, /^(?:SystemDb_Ext\b)/, /^(?:System_Ext\b)/, /^(?:SystemQueue\b)/, /^(?:SystemDb\b)/, /^(?:System\b)/, /^(?:Boundary\b)/, /^(?:Enterprise_Boundary\b)/, /^(?:System_Boundary\b)/, /^(?:ContainerQueue_Ext\b)/, /^(?:ContainerDb_Ext\b)/, /^(?:Container_Ext\b)/, /^(?:ContainerQueue\b)/, /^(?:ContainerDb\b)/, /^(?:Container\b)/, /^(?:Container_Boundary\b)/, /^(?:ComponentQueue_Ext\b)/, /^(?:ComponentDb_Ext\b)/, /^(?:Component_Ext\b)/, /^(?:ComponentQueue\b)/, /^(?:ComponentDb\b)/, /^(?:Component\b)/, /^(?:Deployment_Node\b)/, /^(?:Node\b)/, /^(?:Node_L\b)/, /^(?:Node_R\b)/, /^(?:Rel\b)/, /^(?:BiRel\b)/, /^(?:Rel_Up\b)/, /^(?:Rel_U\b)/, /^(?:Rel_Down\b)/, /^(?:Rel_D\b)/, /^(?:Rel_Left\b)/, /^(?:Rel_L\b)/, /^(?:Rel_Right\b)/, /^(?:Rel_R\b)/, /^(?:Rel_Back\b)/, /^(?:RelIndex\b)/, /^(?:UpdateElementStyle\b)/, /^(?:UpdateRelStyle\b)/, /^(?:UpdateLayoutConfig\b)/, /^(?:$)/, /^(?:[(][ ]*[,])/, /^(?:[(])/, /^(?:[)])/, /^(?:,,)/, /^(?:,)/, /^(?:[ ]*["]["])/, /^(?:[ ]*["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:[ ]*[\$])/, /^(?:[^=]*)/, /^(?:[=][ ]*["])/, /^(?:[^"]+)/, /^(?:["])/, /^(?:[^,]+)/, /^(?:\{)/, /^(?:\})/, /^(?:[\s]+)/, /^(?:[\n\r]+)/, /^(?:$)/],
16745 conditions: { "acc_descr_multiline": { "rules": [16, 17], "inclusive": false }, "acc_descr": { "rules": [14], "inclusive": false }, "acc_title": { "rules": [12], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [7, 8], "inclusive": false }, "type_directive": { "rules": [6, 7], "inclusive": false }, "open_directive": { "rules": [5], "inclusive": false }, "string_kv_value": { "rules": [83, 84], "inclusive": false }, "string_kv_key": { "rules": [82], "inclusive": false }, "string_kv": { "rules": [81], "inclusive": false }, "string": { "rules": [78, 79], "inclusive": false }, "attribute": { "rules": [73, 74, 75, 76, 77, 80, 85], "inclusive": false }, "update_layout_config": { "rules": [70, 71, 72, 73], "inclusive": false }, "update_rel_style": { "rules": [70, 71, 72, 73], "inclusive": false }, "update_el_style": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_b": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_r": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_l": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_d": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_u": { "rules": [70, 71, 72, 73], "inclusive": false }, "rel_bi": { "rules": [], "inclusive": false }, "rel": { "rules": [70, 71, 72, 73], "inclusive": false }, "node_r": { "rules": [70, 71, 72, 73], "inclusive": false }, "node_l": { "rules": [70, 71, 72, 73], "inclusive": false }, "node": { "rules": [70, 71, 72, 73], "inclusive": false }, "index": { "rules": [], "inclusive": false }, "rel_index": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_ext_queue": { "rules": [], "inclusive": false }, "component_ext_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "component_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "component": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_ext_queue": { "rules": [], "inclusive": false }, "container_ext_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "container_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "container": { "rules": [70, 71, 72, 73], "inclusive": false }, "birel": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "enterprise_boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "boundary": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_ext_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_ext_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_queue": { "rules": [70, 71, 72, 73], "inclusive": false }, "system_db": { "rules": [70, 71, 72, 73], "inclusive": false }, "system": { "rules": [70, 71, 72, 73], "inclusive": false }, "person_ext": { "rules": [70, 71, 72, 73], "inclusive": false }, "person": { "rules": [70, 71, 72, 73], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 9, 10, 11, 13, 15, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 86, 87, 88, 89, 90], "inclusive": true } }
16746 };
16747 return lexer2;
16748 }();
16749 parser2.lexer = lexer;
16750 function Parser() {
16751 this.yy = {};
16752 }
16753 Parser.prototype = parser2;
16754 parser2.Parser = Parser;
16755 return new Parser();
16756 }();
16757 parser$o.parser = parser$o;
16758 const c4Parser = parser$o;
16759 let c4ShapeArray = [];
16760 let boundaryParseStack = [""];
16761 let currentBoundaryParse = "global";
16762 let parentBoundaryParse = "";
16763 let boundarys = [
16764 {
16765 alias: "global",
16766 label: { text: "global" },
16767 type: { text: "global" },
16768 tags: null,
16769 link: null,
16770 parentBoundary: ""
16771 }
16772 ];
16773 let rels = [];
16774 let title = "";
16775 let wrapEnabled$1 = false;
16776 let c4ShapeInRow$1 = 4;
16777 let c4BoundaryInRow$1 = 2;
16778 var c4Type;
16779 const getC4Type = function() {
16780 return c4Type;
16781 };
16782 const setC4Type = function(c4TypeParam) {
16783 let sanitizedText = sanitizeText$6(c4TypeParam, getConfig$1());
16784 c4Type = sanitizedText;
16785 };
16786 const parseDirective$c = function(statement, context, type2) {
16787 mermaidAPI.parseDirective(this, statement, context, type2);
16788 };
16789 const addRel = function(type2, from2, to, label, techn, descr, sprite, tags2, link) {
16790 if (type2 === void 0 || type2 === null || from2 === void 0 || from2 === null || to === void 0 || to === null || label === void 0 || label === null) {
16791 return;
16792 }
16793 let rel = {};
16794 const old = rels.find((rel2) => rel2.from === from2 && rel2.to === to);
16795 if (old) {
16796 rel = old;
16797 } else {
16798 rels.push(rel);
16799 }
16800 rel.type = type2;
16801 rel.from = from2;
16802 rel.to = to;
16803 rel.label = { text: label };
16804 if (techn === void 0 || techn === null) {
16805 rel.techn = { text: "" };
16806 } else {
16807 if (typeof techn === "object") {
16808 let [key, value] = Object.entries(techn)[0];
16809 rel[key] = { text: value };
16810 } else {
16811 rel.techn = { text: techn };
16812 }
16813 }
16814 if (descr === void 0 || descr === null) {
16815 rel.descr = { text: "" };
16816 } else {
16817 if (typeof descr === "object") {
16818 let [key, value] = Object.entries(descr)[0];
16819 rel[key] = { text: value };
16820 } else {
16821 rel.descr = { text: descr };
16822 }
16823 }
16824 if (typeof sprite === "object") {
16825 let [key, value] = Object.entries(sprite)[0];
16826 rel[key] = value;
16827 } else {
16828 rel.sprite = sprite;
16829 }
16830 if (typeof tags2 === "object") {
16831 let [key, value] = Object.entries(tags2)[0];
16832 rel[key] = value;
16833 } else {
16834 rel.tags = tags2;
16835 }
16836 if (typeof link === "object") {
16837 let [key, value] = Object.entries(link)[0];
16838 rel[key] = value;
16839 } else {
16840 rel.link = link;
16841 }
16842 rel.wrap = autoWrap$1();
16843 };
16844 const addPersonOrSystem = function(typeC4Shape, alias, label, descr, sprite, tags2, link) {
16845 if (alias === null || label === null) {
16846 return;
16847 }
16848 let personOrSystem = {};
16849 const old = c4ShapeArray.find((personOrSystem2) => personOrSystem2.alias === alias);
16850 if (old && alias === old.alias) {
16851 personOrSystem = old;
16852 } else {
16853 personOrSystem.alias = alias;
16854 c4ShapeArray.push(personOrSystem);
16855 }
16856 if (label === void 0 || label === null) {
16857 personOrSystem.label = { text: "" };
16858 } else {
16859 personOrSystem.label = { text: label };
16860 }
16861 if (descr === void 0 || descr === null) {
16862 personOrSystem.descr = { text: "" };
16863 } else {
16864 if (typeof descr === "object") {
16865 let [key, value] = Object.entries(descr)[0];
16866 personOrSystem[key] = { text: value };
16867 } else {
16868 personOrSystem.descr = { text: descr };
16869 }
16870 }
16871 if (typeof sprite === "object") {
16872 let [key, value] = Object.entries(sprite)[0];
16873 personOrSystem[key] = value;
16874 } else {
16875 personOrSystem.sprite = sprite;
16876 }
16877 if (typeof tags2 === "object") {
16878 let [key, value] = Object.entries(tags2)[0];
16879 personOrSystem[key] = value;
16880 } else {
16881 personOrSystem.tags = tags2;
16882 }
16883 if (typeof link === "object") {
16884 let [key, value] = Object.entries(link)[0];
16885 personOrSystem[key] = value;
16886 } else {
16887 personOrSystem.link = link;
16888 }
16889 personOrSystem.typeC4Shape = { text: typeC4Shape };
16890 personOrSystem.parentBoundary = currentBoundaryParse;
16891 personOrSystem.wrap = autoWrap$1();
16892 };
16893 const addContainer = function(typeC4Shape, alias, label, techn, descr, sprite, tags2, link) {
16894 if (alias === null || label === null) {
16895 return;
16896 }
16897 let container = {};
16898 const old = c4ShapeArray.find((container2) => container2.alias === alias);
16899 if (old && alias === old.alias) {
16900 container = old;
16901 } else {
16902 container.alias = alias;
16903 c4ShapeArray.push(container);
16904 }
16905 if (label === void 0 || label === null) {
16906 container.label = { text: "" };
16907 } else {
16908 container.label = { text: label };
16909 }
16910 if (techn === void 0 || techn === null) {
16911 container.techn = { text: "" };
16912 } else {
16913 if (typeof techn === "object") {
16914 let [key, value] = Object.entries(techn)[0];
16915 container[key] = { text: value };
16916 } else {
16917 container.techn = { text: techn };
16918 }
16919 }
16920 if (descr === void 0 || descr === null) {
16921 container.descr = { text: "" };
16922 } else {
16923 if (typeof descr === "object") {
16924 let [key, value] = Object.entries(descr)[0];
16925 container[key] = { text: value };
16926 } else {
16927 container.descr = { text: descr };
16928 }
16929 }
16930 if (typeof sprite === "object") {
16931 let [key, value] = Object.entries(sprite)[0];
16932 container[key] = value;
16933 } else {
16934 container.sprite = sprite;
16935 }
16936 if (typeof tags2 === "object") {
16937 let [key, value] = Object.entries(tags2)[0];
16938 container[key] = value;
16939 } else {
16940 container.tags = tags2;
16941 }
16942 if (typeof link === "object") {
16943 let [key, value] = Object.entries(link)[0];
16944 container[key] = value;
16945 } else {
16946 container.link = link;
16947 }
16948 container.wrap = autoWrap$1();
16949 container.typeC4Shape = { text: typeC4Shape };
16950 container.parentBoundary = currentBoundaryParse;
16951 };
16952 const addComponent = function(typeC4Shape, alias, label, techn, descr, sprite, tags2, link) {
16953 if (alias === null || label === null) {
16954 return;
16955 }
16956 let component = {};
16957 const old = c4ShapeArray.find((component2) => component2.alias === alias);
16958 if (old && alias === old.alias) {
16959 component = old;
16960 } else {
16961 component.alias = alias;
16962 c4ShapeArray.push(component);
16963 }
16964 if (label === void 0 || label === null) {
16965 component.label = { text: "" };
16966 } else {
16967 component.label = { text: label };
16968 }
16969 if (techn === void 0 || techn === null) {
16970 component.techn = { text: "" };
16971 } else {
16972 if (typeof techn === "object") {
16973 let [key, value] = Object.entries(techn)[0];
16974 component[key] = { text: value };
16975 } else {
16976 component.techn = { text: techn };
16977 }
16978 }
16979 if (descr === void 0 || descr === null) {
16980 component.descr = { text: "" };
16981 } else {
16982 if (typeof descr === "object") {
16983 let [key, value] = Object.entries(descr)[0];
16984 component[key] = { text: value };
16985 } else {
16986 component.descr = { text: descr };
16987 }
16988 }
16989 if (typeof sprite === "object") {
16990 let [key, value] = Object.entries(sprite)[0];
16991 component[key] = value;
16992 } else {
16993 component.sprite = sprite;
16994 }
16995 if (typeof tags2 === "object") {
16996 let [key, value] = Object.entries(tags2)[0];
16997 component[key] = value;
16998 } else {
16999 component.tags = tags2;
17000 }
17001 if (typeof link === "object") {
17002 let [key, value] = Object.entries(link)[0];
17003 component[key] = value;
17004 } else {
17005 component.link = link;
17006 }
17007 component.wrap = autoWrap$1();
17008 component.typeC4Shape = { text: typeC4Shape };
17009 component.parentBoundary = currentBoundaryParse;
17010 };
17011 const addPersonOrSystemBoundary = function(alias, label, type2, tags2, link) {
17012 if (alias === null || label === null) {
17013 return;
17014 }
17015 let boundary = {};
17016 const old = boundarys.find((boundary2) => boundary2.alias === alias);
17017 if (old && alias === old.alias) {
17018 boundary = old;
17019 } else {
17020 boundary.alias = alias;
17021 boundarys.push(boundary);
17022 }
17023 if (label === void 0 || label === null) {
17024 boundary.label = { text: "" };
17025 } else {
17026 boundary.label = { text: label };
17027 }
17028 if (type2 === void 0 || type2 === null) {
17029 boundary.type = { text: "system" };
17030 } else {
17031 if (typeof type2 === "object") {
17032 let [key, value] = Object.entries(type2)[0];
17033 boundary[key] = { text: value };
17034 } else {
17035 boundary.type = { text: type2 };
17036 }
17037 }
17038 if (typeof tags2 === "object") {
17039 let [key, value] = Object.entries(tags2)[0];
17040 boundary[key] = value;
17041 } else {
17042 boundary.tags = tags2;
17043 }
17044 if (typeof link === "object") {
17045 let [key, value] = Object.entries(link)[0];
17046 boundary[key] = value;
17047 } else {
17048 boundary.link = link;
17049 }
17050 boundary.parentBoundary = currentBoundaryParse;
17051 boundary.wrap = autoWrap$1();
17052 parentBoundaryParse = currentBoundaryParse;
17053 currentBoundaryParse = alias;
17054 boundaryParseStack.push(parentBoundaryParse);
17055 };
17056 const addContainerBoundary = function(alias, label, type2, tags2, link) {
17057 if (alias === null || label === null) {
17058 return;
17059 }
17060 let boundary = {};
17061 const old = boundarys.find((boundary2) => boundary2.alias === alias);
17062 if (old && alias === old.alias) {
17063 boundary = old;
17064 } else {
17065 boundary.alias = alias;
17066 boundarys.push(boundary);
17067 }
17068 if (label === void 0 || label === null) {
17069 boundary.label = { text: "" };
17070 } else {
17071 boundary.label = { text: label };
17072 }
17073 if (type2 === void 0 || type2 === null) {
17074 boundary.type = { text: "container" };
17075 } else {
17076 if (typeof type2 === "object") {
17077 let [key, value] = Object.entries(type2)[0];
17078 boundary[key] = { text: value };
17079 } else {
17080 boundary.type = { text: type2 };
17081 }
17082 }
17083 if (typeof tags2 === "object") {
17084 let [key, value] = Object.entries(tags2)[0];
17085 boundary[key] = value;
17086 } else {
17087 boundary.tags = tags2;
17088 }
17089 if (typeof link === "object") {
17090 let [key, value] = Object.entries(link)[0];
17091 boundary[key] = value;
17092 } else {
17093 boundary.link = link;
17094 }
17095 boundary.parentBoundary = currentBoundaryParse;
17096 boundary.wrap = autoWrap$1();
17097 parentBoundaryParse = currentBoundaryParse;
17098 currentBoundaryParse = alias;
17099 boundaryParseStack.push(parentBoundaryParse);
17100 };
17101 const addDeploymentNode = function(nodeType2, alias, label, type2, descr, sprite, tags2, link) {
17102 if (alias === null || label === null) {
17103 return;
17104 }
17105 let boundary = {};
17106 const old = boundarys.find((boundary2) => boundary2.alias === alias);
17107 if (old && alias === old.alias) {
17108 boundary = old;
17109 } else {
17110 boundary.alias = alias;
17111 boundarys.push(boundary);
17112 }
17113 if (label === void 0 || label === null) {
17114 boundary.label = { text: "" };
17115 } else {
17116 boundary.label = { text: label };
17117 }
17118 if (type2 === void 0 || type2 === null) {
17119 boundary.type = { text: "node" };
17120 } else {
17121 if (typeof type2 === "object") {
17122 let [key, value] = Object.entries(type2)[0];
17123 boundary[key] = { text: value };
17124 } else {
17125 boundary.type = { text: type2 };
17126 }
17127 }
17128 if (descr === void 0 || descr === null) {
17129 boundary.descr = { text: "" };
17130 } else {
17131 if (typeof descr === "object") {
17132 let [key, value] = Object.entries(descr)[0];
17133 boundary[key] = { text: value };
17134 } else {
17135 boundary.descr = { text: descr };
17136 }
17137 }
17138 if (typeof tags2 === "object") {
17139 let [key, value] = Object.entries(tags2)[0];
17140 boundary[key] = value;
17141 } else {
17142 boundary.tags = tags2;
17143 }
17144 if (typeof link === "object") {
17145 let [key, value] = Object.entries(link)[0];
17146 boundary[key] = value;
17147 } else {
17148 boundary.link = link;
17149 }
17150 boundary.nodeType = nodeType2;
17151 boundary.parentBoundary = currentBoundaryParse;
17152 boundary.wrap = autoWrap$1();
17153 parentBoundaryParse = currentBoundaryParse;
17154 currentBoundaryParse = alias;
17155 boundaryParseStack.push(parentBoundaryParse);
17156 };
17157 const popBoundaryParseStack = function() {
17158 currentBoundaryParse = parentBoundaryParse;
17159 boundaryParseStack.pop();
17160 parentBoundaryParse = boundaryParseStack.pop();
17161 boundaryParseStack.push(parentBoundaryParse);
17162 };
17163 const updateElStyle = function(typeC4Shape, elementName, bgColor, fontColor, borderColor, shadowing, shape, sprite, techn, legendText, legendSprite) {
17164 let old = c4ShapeArray.find((element2) => element2.alias === elementName);
17165 if (old === void 0) {
17166 old = boundarys.find((element2) => element2.alias === elementName);
17167 if (old === void 0) {
17168 return;
17169 }
17170 }
17171 if (bgColor !== void 0 && bgColor !== null) {
17172 if (typeof bgColor === "object") {
17173 let [key, value] = Object.entries(bgColor)[0];
17174 old[key] = value;
17175 } else {
17176 old.bgColor = bgColor;
17177 }
17178 }
17179 if (fontColor !== void 0 && fontColor !== null) {
17180 if (typeof fontColor === "object") {
17181 let [key, value] = Object.entries(fontColor)[0];
17182 old[key] = value;
17183 } else {
17184 old.fontColor = fontColor;
17185 }
17186 }
17187 if (borderColor !== void 0 && borderColor !== null) {
17188 if (typeof borderColor === "object") {
17189 let [key, value] = Object.entries(borderColor)[0];
17190 old[key] = value;
17191 } else {
17192 old.borderColor = borderColor;
17193 }
17194 }
17195 if (shadowing !== void 0 && shadowing !== null) {
17196 if (typeof shadowing === "object") {
17197 let [key, value] = Object.entries(shadowing)[0];
17198 old[key] = value;
17199 } else {
17200 old.shadowing = shadowing;
17201 }
17202 }
17203 if (shape !== void 0 && shape !== null) {
17204 if (typeof shape === "object") {
17205 let [key, value] = Object.entries(shape)[0];
17206 old[key] = value;
17207 } else {
17208 old.shape = shape;
17209 }
17210 }
17211 if (sprite !== void 0 && sprite !== null) {
17212 if (typeof sprite === "object") {
17213 let [key, value] = Object.entries(sprite)[0];
17214 old[key] = value;
17215 } else {
17216 old.sprite = sprite;
17217 }
17218 }
17219 if (techn !== void 0 && techn !== null) {
17220 if (typeof techn === "object") {
17221 let [key, value] = Object.entries(techn)[0];
17222 old[key] = value;
17223 } else {
17224 old.techn = techn;
17225 }
17226 }
17227 if (legendText !== void 0 && legendText !== null) {
17228 if (typeof legendText === "object") {
17229 let [key, value] = Object.entries(legendText)[0];
17230 old[key] = value;
17231 } else {
17232 old.legendText = legendText;
17233 }
17234 }
17235 if (legendSprite !== void 0 && legendSprite !== null) {
17236 if (typeof legendSprite === "object") {
17237 let [key, value] = Object.entries(legendSprite)[0];
17238 old[key] = value;
17239 } else {
17240 old.legendSprite = legendSprite;
17241 }
17242 }
17243 };
17244 const updateRelStyle = function(typeC4Shape, from2, to, textColor, lineColor, offsetX, offsetY) {
17245 const old = rels.find((rel) => rel.from === from2 && rel.to === to);
17246 if (old === void 0) {
17247 return;
17248 }
17249 if (textColor !== void 0 && textColor !== null) {
17250 if (typeof textColor === "object") {
17251 let [key, value] = Object.entries(textColor)[0];
17252 old[key] = value;
17253 } else {
17254 old.textColor = textColor;
17255 }
17256 }
17257 if (lineColor !== void 0 && lineColor !== null) {
17258 if (typeof lineColor === "object") {
17259 let [key, value] = Object.entries(lineColor)[0];
17260 old[key] = value;
17261 } else {
17262 old.lineColor = lineColor;
17263 }
17264 }
17265 if (offsetX !== void 0 && offsetX !== null) {
17266 if (typeof offsetX === "object") {
17267 let [key, value] = Object.entries(offsetX)[0];
17268 old[key] = parseInt(value);
17269 } else {
17270 old.offsetX = parseInt(offsetX);
17271 }
17272 }
17273 if (offsetY !== void 0 && offsetY !== null) {
17274 if (typeof offsetY === "object") {
17275 let [key, value] = Object.entries(offsetY)[0];
17276 old[key] = parseInt(value);
17277 } else {
17278 old.offsetY = parseInt(offsetY);
17279 }
17280 }
17281 };
17282 const updateLayoutConfig = function(typeC4Shape, c4ShapeInRowParam, c4BoundaryInRowParam) {
17283 let c4ShapeInRowValue = c4ShapeInRow$1;
17284 let c4BoundaryInRowValue = c4BoundaryInRow$1;
17285 if (typeof c4ShapeInRowParam === "object") {
17286 const value = Object.values(c4ShapeInRowParam)[0];
17287 c4ShapeInRowValue = parseInt(value);
17288 } else {
17289 c4ShapeInRowValue = parseInt(c4ShapeInRowParam);
17290 }
17291 if (typeof c4BoundaryInRowParam === "object") {
17292 const value = Object.values(c4BoundaryInRowParam)[0];
17293 c4BoundaryInRowValue = parseInt(value);
17294 } else {
17295 c4BoundaryInRowValue = parseInt(c4BoundaryInRowParam);
17296 }
17297 if (c4ShapeInRowValue >= 1) {
17298 c4ShapeInRow$1 = c4ShapeInRowValue;
17299 }
17300 if (c4BoundaryInRowValue >= 1) {
17301 c4BoundaryInRow$1 = c4BoundaryInRowValue;
17302 }
17303 };
17304 const getC4ShapeInRow = function() {
17305 return c4ShapeInRow$1;
17306 };
17307 const getC4BoundaryInRow = function() {
17308 return c4BoundaryInRow$1;
17309 };
17310 const getCurrentBoundaryParse = function() {
17311 return currentBoundaryParse;
17312 };
17313 const getParentBoundaryParse = function() {
17314 return parentBoundaryParse;
17315 };
17316 const getC4ShapeArray = function(parentBoundary) {
17317 if (parentBoundary === void 0 || parentBoundary === null) {
17318 return c4ShapeArray;
17319 } else {
17320 return c4ShapeArray.filter((personOrSystem) => {
17321 return personOrSystem.parentBoundary === parentBoundary;
17322 });
17323 }
17324 };
17325 const getC4Shape = function(alias) {
17326 return c4ShapeArray.find((personOrSystem) => personOrSystem.alias === alias);
17327 };
17328 const getC4ShapeKeys = function(parentBoundary) {
17329 return Object.keys(getC4ShapeArray(parentBoundary));
17330 };
17331 const getBoundarys = function(parentBoundary) {
17332 if (parentBoundary === void 0 || parentBoundary === null) {
17333 return boundarys;
17334 } else {
17335 return boundarys.filter((boundary) => boundary.parentBoundary === parentBoundary);
17336 }
17337 };
17338 const getRels = function() {
17339 return rels;
17340 };
17341 const getTitle = function() {
17342 return title;
17343 };
17344 const setWrap$1 = function(wrapSetting) {
17345 wrapEnabled$1 = wrapSetting;
17346 };
17347 const autoWrap$1 = function() {
17348 return wrapEnabled$1;
17349 };
17350 const clear$i = function() {
17351 c4ShapeArray = [];
17352 boundarys = [
17353 {
17354 alias: "global",
17355 label: { text: "global" },
17356 type: { text: "global" },
17357 tags: null,
17358 link: null,
17359 parentBoundary: ""
17360 }
17361 ];
17362 parentBoundaryParse = "";
17363 currentBoundaryParse = "global";
17364 boundaryParseStack = [""];
17365 rels = [];
17366 boundaryParseStack = [""];
17367 title = "";
17368 wrapEnabled$1 = false;
17369 c4ShapeInRow$1 = 4;
17370 c4BoundaryInRow$1 = 2;
17371 };
17372 const LINETYPE$1 = {
17373 SOLID: 0,
17374 DOTTED: 1,
17375 NOTE: 2,
17376 SOLID_CROSS: 3,
17377 DOTTED_CROSS: 4,
17378 SOLID_OPEN: 5,
17379 DOTTED_OPEN: 6,
17380 LOOP_START: 10,
17381 LOOP_END: 11,
17382 ALT_START: 12,
17383 ALT_ELSE: 13,
17384 ALT_END: 14,
17385 OPT_START: 15,
17386 OPT_END: 16,
17387 ACTIVE_START: 17,
17388 ACTIVE_END: 18,
17389 PAR_START: 19,
17390 PAR_AND: 20,
17391 PAR_END: 21,
17392 RECT_START: 22,
17393 RECT_END: 23,
17394 SOLID_POINT: 24,
17395 DOTTED_POINT: 25
17396 };
17397 const ARROWTYPE$1 = {
17398 FILLED: 0,
17399 OPEN: 1
17400 };
17401 const PLACEMENT$1 = {
17402 LEFTOF: 0,
17403 RIGHTOF: 1,
17404 OVER: 2
17405 };
17406 const setTitle = function(txt) {
17407 let sanitizedText = sanitizeText$6(txt, getConfig$1());
17408 title = sanitizedText;
17409 };
17410 const c4Db = {
17411 addPersonOrSystem,
17412 addPersonOrSystemBoundary,
17413 addContainer,
17414 addContainerBoundary,
17415 addComponent,
17416 addDeploymentNode,
17417 popBoundaryParseStack,
17418 addRel,
17419 updateElStyle,
17420 updateRelStyle,
17421 updateLayoutConfig,
17422 autoWrap: autoWrap$1,
17423 setWrap: setWrap$1,
17424 getC4ShapeArray,
17425 getC4Shape,
17426 getC4ShapeKeys,
17427 getBoundarys,
17428 getCurrentBoundaryParse,
17429 getParentBoundaryParse,
17430 getRels,
17431 getTitle,
17432 getC4Type,
17433 getC4ShapeInRow,
17434 getC4BoundaryInRow,
17435 setAccTitle,
17436 getAccTitle,
17437 getAccDescription,
17438 setAccDescription,
17439 parseDirective: parseDirective$c,
17440 getConfig: () => getConfig$1().c4,
17441 clear: clear$i,
17442 LINETYPE: LINETYPE$1,
17443 ARROWTYPE: ARROWTYPE$1,
17444 PLACEMENT: PLACEMENT$1,
17445 setTitle,
17446 setC4Type
17447 // apply,
17448 };
17449 const drawRect$4 = function(elem, rectData) {
17450 const rectElem = elem.append("rect");
17451 rectElem.attr("x", rectData.x);
17452 rectElem.attr("y", rectData.y);
17453 rectElem.attr("fill", rectData.fill);
17454 rectElem.attr("stroke", rectData.stroke);
17455 rectElem.attr("width", rectData.width);
17456 rectElem.attr("height", rectData.height);
17457 rectElem.attr("rx", rectData.rx);
17458 rectElem.attr("ry", rectData.ry);
17459 if (rectData.attrs !== "undefined" && rectData.attrs !== null) {
17460 for (let attrKey in rectData.attrs) {
17461 rectElem.attr(attrKey, rectData.attrs[attrKey]);
17462 }
17463 }
17464 if (rectData.class !== "undefined") {
17465 rectElem.attr("class", rectData.class);
17466 }
17467 return rectElem;
17468 };
17469 const drawBackgroundRect$3 = function(elem, bounds2) {
17470 const rectElem = drawRect$4(elem, {
17471 x: bounds2.startx,
17472 y: bounds2.starty,
17473 width: bounds2.stopx - bounds2.startx,
17474 height: bounds2.stopy - bounds2.starty,
17475 fill: bounds2.fill,
17476 stroke: bounds2.stroke,
17477 class: "rect"
17478 });
17479 rectElem.lower();
17480 };
17481 const drawText$4 = function(elem, textData) {
17482 const nText = textData.text.replace(/<br\s*\/?>/gi, " ");
17483 const textElem = elem.append("text");
17484 textElem.attr("x", textData.x);
17485 textElem.attr("y", textData.y);
17486 textElem.attr("class", "legend");
17487 textElem.style("text-anchor", textData.anchor);
17488 if (textData.class !== void 0) {
17489 textElem.attr("class", textData.class);
17490 }
17491 const span = textElem.append("tspan");
17492 span.attr("x", textData.x + textData.textMargin * 2);
17493 span.text(nText);
17494 return textElem;
17495 };
17496 const drawImage$1 = function(elem, x2, y2, link) {
17497 const imageElem = elem.append("image");
17498 imageElem.attr("x", x2);
17499 imageElem.attr("y", y2);
17500 var sanitizedLink = sanitizeUrl_1(link);
17501 imageElem.attr("xlink:href", sanitizedLink);
17502 };
17503 const drawEmbeddedImage = function(elem, x2, y2, link) {
17504 const imageElem = elem.append("use");
17505 imageElem.attr("x", x2);
17506 imageElem.attr("y", y2);
17507 const sanitizedLink = sanitizeUrl_1(link);
17508 imageElem.attr("xlink:href", "#" + sanitizedLink);
17509 };
17510 const getNoteRect$2 = function() {
17511 return {
17512 x: 0,
17513 y: 0,
17514 width: 100,
17515 height: 100,
17516 fill: "#EDF2AE",
17517 stroke: "#666",
17518 anchor: "start",
17519 rx: 0,
17520 ry: 0
17521 };
17522 };
17523 const getTextObj$2 = function() {
17524 return {
17525 x: 0,
17526 y: 0,
17527 width: 100,
17528 height: 100,
17529 fill: void 0,
17530 anchor: void 0,
17531 "text-anchor": "start",
17532 style: "#666",
17533 textMargin: 0,
17534 rx: 0,
17535 ry: 0,
17536 tspan: true,
17537 valign: void 0
17538 };
17539 };
17540 const drawRect$3 = function(elem, rectData) {
17541 return drawRect$4(elem, rectData);
17542 };
17543 const drawImage = function(elem, width2, height2, x2, y2, link) {
17544 const imageElem = elem.append("image");
17545 imageElem.attr("width", width2);
17546 imageElem.attr("height", height2);
17547 imageElem.attr("x", x2);
17548 imageElem.attr("y", y2);
17549 let sanitizedLink = link.startsWith("data:image/png;base64") ? link : sanitizeUrl_1(link);
17550 imageElem.attr("xlink:href", sanitizedLink);
17551 };
17552 const drawRels$1 = (elem, rels2, conf2) => {
17553 const relsElem = elem.append("g");
17554 let i2 = 0;
17555 for (let rel of rels2) {
17556 let textColor = rel.textColor ? rel.textColor : "#444444";
17557 let strokeColor = rel.lineColor ? rel.lineColor : "#444444";
17558 let offsetX = rel.offsetX ? parseInt(rel.offsetX) : 0;
17559 let offsetY = rel.offsetY ? parseInt(rel.offsetY) : 0;
17560 let url = "";
17561 if (i2 === 0) {
17562 let line2 = relsElem.append("line");
17563 line2.attr("x1", rel.startPoint.x);
17564 line2.attr("y1", rel.startPoint.y);
17565 line2.attr("x2", rel.endPoint.x);
17566 line2.attr("y2", rel.endPoint.y);
17567 line2.attr("stroke-width", "1");
17568 line2.attr("stroke", strokeColor);
17569 line2.style("fill", "none");
17570 if (rel.type !== "rel_b") {
17571 line2.attr("marker-end", "url(" + url + "#arrowhead)");
17572 }
17573 if (rel.type === "birel" || rel.type === "rel_b") {
17574 line2.attr("marker-start", "url(" + url + "#arrowend)");
17575 }
17576 i2 = -1;
17577 } else {
17578 let line2 = relsElem.append("path");
17579 line2.attr("fill", "none").attr("stroke-width", "1").attr("stroke", strokeColor).attr(
17580 "d",
17581 "Mstartx,starty Qcontrolx,controly stopx,stopy ".replaceAll("startx", rel.startPoint.x).replaceAll("starty", rel.startPoint.y).replaceAll(
17582 "controlx",
17583 rel.startPoint.x + (rel.endPoint.x - rel.startPoint.x) / 2 - (rel.endPoint.x - rel.startPoint.x) / 4
17584 ).replaceAll("controly", rel.startPoint.y + (rel.endPoint.y - rel.startPoint.y) / 2).replaceAll("stopx", rel.endPoint.x).replaceAll("stopy", rel.endPoint.y)
17585 );
17586 if (rel.type !== "rel_b") {
17587 line2.attr("marker-end", "url(" + url + "#arrowhead)");
17588 }
17589 if (rel.type === "birel" || rel.type === "rel_b") {
17590 line2.attr("marker-start", "url(" + url + "#arrowend)");
17591 }
17592 }
17593 let messageConf = conf2.messageFont();
17594 _drawTextCandidateFunc$3(conf2)(
17595 rel.label.text,
17596 relsElem,
17597 Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,
17598 Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + offsetY,
17599 rel.label.width,
17600 rel.label.height,
17601 { fill: textColor },
17602 messageConf
17603 );
17604 if (rel.techn && rel.techn.text !== "") {
17605 messageConf = conf2.messageFont();
17606 _drawTextCandidateFunc$3(conf2)(
17607 "[" + rel.techn.text + "]",
17608 relsElem,
17609 Math.min(rel.startPoint.x, rel.endPoint.x) + Math.abs(rel.endPoint.x - rel.startPoint.x) / 2 + offsetX,
17610 Math.min(rel.startPoint.y, rel.endPoint.y) + Math.abs(rel.endPoint.y - rel.startPoint.y) / 2 + conf2.messageFontSize + 5 + offsetY,
17611 Math.max(rel.label.width, rel.techn.width),
17612 rel.techn.height,
17613 { fill: textColor, "font-style": "italic" },
17614 messageConf
17615 );
17616 }
17617 }
17618 };
17619 const drawBoundary$1 = function(elem, boundary, conf2) {
17620 const boundaryElem = elem.append("g");
17621 let fillColor = boundary.bgColor ? boundary.bgColor : "none";
17622 let strokeColor = boundary.borderColor ? boundary.borderColor : "#444444";
17623 let fontColor = boundary.fontColor ? boundary.fontColor : "black";
17624 let attrsValue = { "stroke-width": 1, "stroke-dasharray": "7.0,7.0" };
17625 if (boundary.nodeType) {
17626 attrsValue = { "stroke-width": 1 };
17627 }
17628 let rectData = {
17629 x: boundary.x,
17630 y: boundary.y,
17631 fill: fillColor,
17632 stroke: strokeColor,
17633 width: boundary.width,
17634 height: boundary.height,
17635 rx: 2.5,
17636 ry: 2.5,
17637 attrs: attrsValue
17638 };
17639 drawRect$3(boundaryElem, rectData);
17640 let boundaryConf = conf2.boundaryFont();
17641 boundaryConf.fontWeight = "bold";
17642 boundaryConf.fontSize = boundaryConf.fontSize + 2;
17643 boundaryConf.fontColor = fontColor;
17644 _drawTextCandidateFunc$3(conf2)(
17645 boundary.label.text,
17646 boundaryElem,
17647 boundary.x,
17648 boundary.y + boundary.label.Y,
17649 boundary.width,
17650 boundary.height,
17651 { fill: "#444444" },
17652 boundaryConf
17653 );
17654 if (boundary.type && boundary.type.text !== "") {
17655 boundaryConf = conf2.boundaryFont();
17656 boundaryConf.fontColor = fontColor;
17657 _drawTextCandidateFunc$3(conf2)(
17658 boundary.type.text,
17659 boundaryElem,
17660 boundary.x,
17661 boundary.y + boundary.type.Y,
17662 boundary.width,
17663 boundary.height,
17664 { fill: "#444444" },
17665 boundaryConf
17666 );
17667 }
17668 if (boundary.descr && boundary.descr.text !== "") {
17669 boundaryConf = conf2.boundaryFont();
17670 boundaryConf.fontSize = boundaryConf.fontSize - 2;
17671 boundaryConf.fontColor = fontColor;
17672 _drawTextCandidateFunc$3(conf2)(
17673 boundary.descr.text,
17674 boundaryElem,
17675 boundary.x,
17676 boundary.y + boundary.descr.Y,
17677 boundary.width,
17678 boundary.height,
17679 { fill: "#444444" },
17680 boundaryConf
17681 );
17682 }
17683 };
17684 const drawC4Shape = function(elem, c4Shape, conf2) {
17685 var _a;
17686 let fillColor = c4Shape.bgColor ? c4Shape.bgColor : conf2[c4Shape.typeC4Shape.text + "_bg_color"];
17687 let strokeColor = c4Shape.borderColor ? c4Shape.borderColor : conf2[c4Shape.typeC4Shape.text + "_border_color"];
17688 let fontColor = c4Shape.fontColor ? c4Shape.fontColor : "#FFFFFF";
17689 let personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";
17690 switch (c4Shape.typeC4Shape.text) {
17691 case "person":
17692 personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAACD0lEQVR4Xu2YoU4EMRCGT+4j8Ai8AhaH4QHgAUjQuFMECUgMIUgwJAgMhgQsAYUiJCiQIBBY+EITsjfTdme6V24v4c8vyGbb+ZjOtN0bNcvjQXmkH83WvYBWto6PLm6v7p7uH1/w2fXD+PBycX1Pv2l3IdDm/vn7x+dXQiAubRzoURa7gRZWd0iGRIiJbOnhnfYBQZNJjNbuyY2eJG8fkDE3bbG4ep6MHUAsgYxmE3nVs6VsBWJSGccsOlFPmLIViMzLOB7pCVO2AtHJMohH7Fh6zqitQK7m0rJvAVYgGcEpe//PLdDz65sM4pF9N7ICcXDKIB5Nv6j7tD0NoSdM2QrU9Gg0ewE1LqBhHR3BBdvj2vapnidjHxD/q6vd7Pvhr31AwcY8eXMTXAKECZZJFXuEq27aLgQK5uLMohCenGGuGewOxSjBvYBqeG6B+Nqiblggdjnc+ZXDy+FNFpFzw76O3UBAROuXh6FoiAcf5g9eTvUgzy0nWg6I8cXHRUpg5bOVBCo+KDpFajOf23GgPme7RSQ+lacIENUgJ6gg1k6HjgOlqnLqip4tEuhv0hNEMXUD0clyXE3p6pZA0S2nnvTlXwLJEZWlb7cTQH1+USgTN4VhAenm/wea1OCAOmqo6fE1WCb9WSKBah+rbUWPWAmE2Rvk0ApiB45eOyNAzU8xcTvj8KvkKEoOaIYeHNA3ZuygAvFMUO0AAAAASUVORK5CYII=";
17693 break;
17694 case "external_person":
17695 personImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAB6ElEQVR4Xu2YLY+EMBCG9+dWr0aj0Wg0Go1Go0+j8Xdv2uTCvv1gpt0ebHKPuhDaeW4605Z9mJvx4AdXUyTUdd08z+u6flmWZRnHsWkafk9DptAwDPu+f0eAYtu2PEaGWuj5fCIZrBAC2eLBAnRCsEkkxmeaJp7iDJ2QMDdHsLg8SxKFEJaAo8lAXnmuOFIhTMpxxKATebo4UiFknuNo4OniSIXQyRxEA3YsnjGCVEjVXD7yLUAqxBGUyPv/Y4W2beMgGuS7kVQIBycH0fD+oi5pezQETxdHKmQKGk1eQEYldK+jw5GxPfZ9z7Mk0Qnhf1W1m3w//EUn5BDmSZsbR44QQLBEqrBHqOrmSKaQAxdnLArCrxZcM7A7ZKs4ioRq8LFC+NpC3WCBJsvpVw5edm9iEXFuyNfxXAgSwfrFQ1c0iNda8AdejvUgnktOtJQQxmcfFzGglc5WVCj7oDgFqU18boeFSs52CUh8LE8BIVQDT1ABrB0HtgSEYlX5doJnCwv9TXocKCaKbnwhdDKPq4lf3SwU3HLq4V/+WYhHVMa/3b4IlfyikAduCkcBc7mQ3/z/Qq/cTuikhkzB12Ae/mcJC9U+Vo8Ej1gWAtgbeGgFsAMHr50BIWOLCbezvhpBFUdY6EJuJ/QDW0XoMX60zZ0AAAAASUVORK5CYII=";
17696 break;
17697 }
17698 const c4ShapeElem = elem.append("g");
17699 c4ShapeElem.attr("class", "person-man");
17700 const rect2 = getNoteRect$2();
17701 switch (c4Shape.typeC4Shape.text) {
17702 case "person":
17703 case "external_person":
17704 case "system":
17705 case "external_system":
17706 case "container":
17707 case "external_container":
17708 case "component":
17709 case "external_component":
17710 rect2.x = c4Shape.x;
17711 rect2.y = c4Shape.y;
17712 rect2.fill = fillColor;
17713 rect2.width = c4Shape.width;
17714 rect2.height = c4Shape.height;
17715 rect2.stroke = strokeColor;
17716 rect2.rx = 2.5;
17717 rect2.ry = 2.5;
17718 rect2.attrs = { "stroke-width": 0.5 };
17719 drawRect$3(c4ShapeElem, rect2);
17720 break;
17721 case "system_db":
17722 case "external_system_db":
17723 case "container_db":
17724 case "external_container_db":
17725 case "component_db":
17726 case "external_component_db":
17727 c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
17728 "d",
17729 "Mstartx,startyc0,-10 half,-10 half,-10c0,0 half,0 half,10l0,heightc0,10 -half,10 -half,10c0,0 -half,0 -half,-10l0,-height".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2).replaceAll("height", c4Shape.height)
17730 );
17731 c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
17732 "d",
17733 "Mstartx,startyc0,10 half,10 half,10c0,0 half,0 half,-10".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.width / 2)
17734 );
17735 break;
17736 case "system_queue":
17737 case "external_system_queue":
17738 case "container_queue":
17739 case "external_container_queue":
17740 case "component_queue":
17741 case "external_component_queue":
17742 c4ShapeElem.append("path").attr("fill", fillColor).attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
17743 "d",
17744 "Mstartx,startylwidth,0c5,0 5,half 5,halfc0,0 0,half -5,halfl-width,0c-5,0 -5,-half -5,-halfc0,0 0,-half 5,-half".replaceAll("startx", c4Shape.x).replaceAll("starty", c4Shape.y).replaceAll("width", c4Shape.width).replaceAll("half", c4Shape.height / 2)
17745 );
17746 c4ShapeElem.append("path").attr("fill", "none").attr("stroke-width", "0.5").attr("stroke", strokeColor).attr(
17747 "d",
17748 "Mstartx,startyc-5,0 -5,half -5,halfc0,half 5,half 5,half".replaceAll("startx", c4Shape.x + c4Shape.width).replaceAll("starty", c4Shape.y).replaceAll("half", c4Shape.height / 2)
17749 );
17750 break;
17751 }
17752 let c4ShapeFontConf = getC4ShapeFont(conf2, c4Shape.typeC4Shape.text);
17753 c4ShapeElem.append("text").attr("fill", fontColor).attr("font-family", c4ShapeFontConf.fontFamily).attr("font-size", c4ShapeFontConf.fontSize - 2).attr("font-style", "italic").attr("lengthAdjust", "spacing").attr("textLength", c4Shape.typeC4Shape.width).attr("x", c4Shape.x + c4Shape.width / 2 - c4Shape.typeC4Shape.width / 2).attr("y", c4Shape.y + c4Shape.typeC4Shape.Y).text("<<" + c4Shape.typeC4Shape.text + ">>");
17754 switch (c4Shape.typeC4Shape.text) {
17755 case "person":
17756 case "external_person":
17757 drawImage(
17758 c4ShapeElem,
17759 48,
17760 48,
17761 c4Shape.x + c4Shape.width / 2 - 24,
17762 c4Shape.y + c4Shape.image.Y,
17763 personImg
17764 );
17765 break;
17766 }
17767 let textFontConf = conf2[c4Shape.typeC4Shape.text + "Font"]();
17768 textFontConf.fontWeight = "bold";
17769 textFontConf.fontSize = textFontConf.fontSize + 2;
17770 textFontConf.fontColor = fontColor;
17771 _drawTextCandidateFunc$3(conf2)(
17772 c4Shape.label.text,
17773 c4ShapeElem,
17774 c4Shape.x,
17775 c4Shape.y + c4Shape.label.Y,
17776 c4Shape.width,
17777 c4Shape.height,
17778 { fill: fontColor },
17779 textFontConf
17780 );
17781 textFontConf = conf2[c4Shape.typeC4Shape.text + "Font"]();
17782 textFontConf.fontColor = fontColor;
17783 if (c4Shape.techn && ((_a = c4Shape.techn) == null ? void 0 : _a.text) !== "") {
17784 _drawTextCandidateFunc$3(conf2)(
17785 c4Shape.techn.text,
17786 c4ShapeElem,
17787 c4Shape.x,
17788 c4Shape.y + c4Shape.techn.Y,
17789 c4Shape.width,
17790 c4Shape.height,
17791 { fill: fontColor, "font-style": "italic" },
17792 textFontConf
17793 );
17794 } else if (c4Shape.type && c4Shape.type.text !== "") {
17795 _drawTextCandidateFunc$3(conf2)(
17796 c4Shape.type.text,
17797 c4ShapeElem,
17798 c4Shape.x,
17799 c4Shape.y + c4Shape.type.Y,
17800 c4Shape.width,
17801 c4Shape.height,
17802 { fill: fontColor, "font-style": "italic" },
17803 textFontConf
17804 );
17805 }
17806 if (c4Shape.descr && c4Shape.descr.text !== "") {
17807 textFontConf = conf2.personFont();
17808 textFontConf.fontColor = fontColor;
17809 _drawTextCandidateFunc$3(conf2)(
17810 c4Shape.descr.text,
17811 c4ShapeElem,
17812 c4Shape.x,
17813 c4Shape.y + c4Shape.descr.Y,
17814 c4Shape.width,
17815 c4Shape.height,
17816 { fill: fontColor },
17817 textFontConf
17818 );
17819 }
17820 return c4Shape.height;
17821 };
17822 const insertDatabaseIcon$1 = function(elem) {
17823 elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr(
17824 "d",
17825 "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"
17826 );
17827 };
17828 const insertComputerIcon$1 = function(elem) {
17829 elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
17830 "d",
17831 "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"
17832 );
17833 };
17834 const insertClockIcon$1 = function(elem) {
17835 elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
17836 "d",
17837 "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"
17838 );
17839 };
17840 const insertArrowHead$1 = function(elem) {
17841 elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z");
17842 };
17843 const insertArrowEnd = function(elem) {
17844 elem.append("defs").append("marker").attr("id", "arrowend").attr("refX", 1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 10 0 L 0 5 L 10 10 z");
17845 };
17846 const insertArrowFilledHead$1 = function(elem) {
17847 elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
17848 };
17849 const insertDynamicNumber = function(elem) {
17850 elem.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6);
17851 };
17852 const insertArrowCrossHead$1 = function(elem) {
17853 const defs = elem.append("defs");
17854 const marker = defs.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 16).attr("refY", 4);
17855 marker.append("path").attr("fill", "black").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 9,2 V 6 L16,4 Z");
17856 marker.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1px").attr("d", "M 0,1 L 6,7 M 6,1 L 0,7");
17857 };
17858 const getC4ShapeFont = (cnf, typeC4Shape) => {
17859 return {
17860 fontFamily: cnf[typeC4Shape + "FontFamily"],
17861 fontSize: cnf[typeC4Shape + "FontSize"],
17862 fontWeight: cnf[typeC4Shape + "FontWeight"]
17863 };
17864 };
17865 const _drawTextCandidateFunc$3 = function() {
17866 function byText(content2, g, x2, y2, width2, height2, textAttrs) {
17867 const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2 + height2 / 2 + 5).style("text-anchor", "middle").text(content2);
17868 _setTextAttrs(text2, textAttrs);
17869 }
17870 function byTspan(content2, g, x2, y2, width2, height2, textAttrs, conf2) {
17871 const { fontSize, fontFamily, fontWeight } = conf2;
17872 const lines = content2.split(common$1.lineBreakRegex);
17873 for (let i2 = 0; i2 < lines.length; i2++) {
17874 const dy = i2 * fontSize - fontSize * (lines.length - 1) / 2;
17875 const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2).style("text-anchor", "middle").attr("dominant-baseline", "middle").style("font-size", fontSize).style("font-weight", fontWeight).style("font-family", fontFamily);
17876 text2.append("tspan").attr("dy", dy).text(lines[i2]).attr("alignment-baseline", "mathematical");
17877 _setTextAttrs(text2, textAttrs);
17878 }
17879 }
17880 function byFo(content2, g, x2, y2, width2, height2, textAttrs, conf2) {
17881 const s = g.append("switch");
17882 const f2 = s.append("foreignObject").attr("x", x2).attr("y", y2).attr("width", width2).attr("height", height2);
17883 const text2 = f2.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
17884 text2.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content2);
17885 byTspan(content2, s, x2, y2, width2, height2, textAttrs, conf2);
17886 _setTextAttrs(text2, textAttrs);
17887 }
17888 function _setTextAttrs(toText, fromTextAttrsDict) {
17889 for (const key in fromTextAttrsDict) {
17890 if (fromTextAttrsDict.hasOwnProperty(key)) {
17891 toText.attr(key, fromTextAttrsDict[key]);
17892 }
17893 }
17894 }
17895 return function(conf2) {
17896 return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
17897 };
17898 }();
17899 const svgDraw$5 = {
17900 drawRect: drawRect$3,
17901 drawBoundary: drawBoundary$1,
17902 drawC4Shape,
17903 drawRels: drawRels$1,
17904 drawImage,
17905 insertArrowHead: insertArrowHead$1,
17906 insertArrowEnd,
17907 insertArrowFilledHead: insertArrowFilledHead$1,
17908 insertDynamicNumber,
17909 insertArrowCrossHead: insertArrowCrossHead$1,
17910 insertDatabaseIcon: insertDatabaseIcon$1,
17911 insertComputerIcon: insertComputerIcon$1,
17912 insertClockIcon: insertClockIcon$1
17913 };
17914 let globalBoundaryMaxX = 0, globalBoundaryMaxY = 0;
17915 let c4ShapeInRow = 4;
17916 let c4BoundaryInRow = 2;
17917 parser$o.yy = c4Db;
17918 let conf$a = {};
17919 class Bounds {
17920 constructor(diagObj) {
17921 this.name = "";
17922 this.data = {};
17923 this.data.startx = void 0;
17924 this.data.stopx = void 0;
17925 this.data.starty = void 0;
17926 this.data.stopy = void 0;
17927 this.data.widthLimit = void 0;
17928 this.nextData = {};
17929 this.nextData.startx = void 0;
17930 this.nextData.stopx = void 0;
17931 this.nextData.starty = void 0;
17932 this.nextData.stopy = void 0;
17933 this.nextData.cnt = 0;
17934 setConf$9(diagObj.db.getConfig());
17935 }
17936 setData(startx, stopx, starty, stopy) {
17937 this.nextData.startx = this.data.startx = startx;
17938 this.nextData.stopx = this.data.stopx = stopx;
17939 this.nextData.starty = this.data.starty = starty;
17940 this.nextData.stopy = this.data.stopy = stopy;
17941 }
17942 updateVal(obj, key, val, fun) {
17943 if (obj[key] === void 0) {
17944 obj[key] = val;
17945 } else {
17946 obj[key] = fun(val, obj[key]);
17947 }
17948 }
17949 insert(c4Shape) {
17950 this.nextData.cnt = this.nextData.cnt + 1;
17951 let _startx = this.nextData.startx === this.nextData.stopx ? this.nextData.stopx + c4Shape.margin : this.nextData.stopx + c4Shape.margin * 2;
17952 let _stopx = _startx + c4Shape.width;
17953 let _starty = this.nextData.starty + c4Shape.margin * 2;
17954 let _stopy = _starty + c4Shape.height;
17955 if (_startx >= this.data.widthLimit || _stopx >= this.data.widthLimit || this.nextData.cnt > c4ShapeInRow) {
17956 _startx = this.nextData.startx + c4Shape.margin + conf$a.nextLinePaddingX;
17957 _starty = this.nextData.stopy + c4Shape.margin * 2;
17958 this.nextData.stopx = _stopx = _startx + c4Shape.width;
17959 this.nextData.starty = this.nextData.stopy;
17960 this.nextData.stopy = _stopy = _starty + c4Shape.height;
17961 this.nextData.cnt = 1;
17962 }
17963 c4Shape.x = _startx;
17964 c4Shape.y = _starty;
17965 this.updateVal(this.data, "startx", _startx, Math.min);
17966 this.updateVal(this.data, "starty", _starty, Math.min);
17967 this.updateVal(this.data, "stopx", _stopx, Math.max);
17968 this.updateVal(this.data, "stopy", _stopy, Math.max);
17969 this.updateVal(this.nextData, "startx", _startx, Math.min);
17970 this.updateVal(this.nextData, "starty", _starty, Math.min);
17971 this.updateVal(this.nextData, "stopx", _stopx, Math.max);
17972 this.updateVal(this.nextData, "stopy", _stopy, Math.max);
17973 }
17974 init(diagObj) {
17975 this.name = "";
17976 this.data = {
17977 startx: void 0,
17978 stopx: void 0,
17979 starty: void 0,
17980 stopy: void 0,
17981 widthLimit: void 0
17982 };
17983 this.nextData = {
17984 startx: void 0,
17985 stopx: void 0,
17986 starty: void 0,
17987 stopy: void 0,
17988 cnt: 0
17989 };
17990 setConf$9(diagObj.db.getConfig());
17991 }
17992 bumpLastMargin(margin) {
17993 this.data.stopx += margin;
17994 this.data.stopy += margin;
17995 }
17996 }
17997 const setConf$9 = function(cnf) {
17998 assignWithDepth$1(conf$a, cnf);
17999 if (cnf.fontFamily) {
18000 conf$a.personFontFamily = conf$a.systemFontFamily = conf$a.messageFontFamily = cnf.fontFamily;
18001 }
18002 if (cnf.fontSize) {
18003 conf$a.personFontSize = conf$a.systemFontSize = conf$a.messageFontSize = cnf.fontSize;
18004 }
18005 if (cnf.fontWeight) {
18006 conf$a.personFontWeight = conf$a.systemFontWeight = conf$a.messageFontWeight = cnf.fontWeight;
18007 }
18008 };
18009 const c4ShapeFont = (cnf, typeC4Shape) => {
18010 return {
18011 fontFamily: cnf[typeC4Shape + "FontFamily"],
18012 fontSize: cnf[typeC4Shape + "FontSize"],
18013 fontWeight: cnf[typeC4Shape + "FontWeight"]
18014 };
18015 };
18016 const boundaryFont = (cnf) => {
18017 return {
18018 fontFamily: cnf.boundaryFontFamily,
18019 fontSize: cnf.boundaryFontSize,
18020 fontWeight: cnf.boundaryFontWeight
18021 };
18022 };
18023 const messageFont$1 = (cnf) => {
18024 return {
18025 fontFamily: cnf.messageFontFamily,
18026 fontSize: cnf.messageFontSize,
18027 fontWeight: cnf.messageFontWeight
18028 };
18029 };
18030 function calcC4ShapeTextWH(textType, c4Shape, c4ShapeTextWrap, textConf, textLimitWidth) {
18031 if (!c4Shape[textType].width) {
18032 if (c4ShapeTextWrap) {
18033 c4Shape[textType].text = wrapLabel(c4Shape[textType].text, textLimitWidth, textConf);
18034 c4Shape[textType].textLines = c4Shape[textType].text.split(common$1.lineBreakRegex).length;
18035 c4Shape[textType].width = textLimitWidth;
18036 c4Shape[textType].height = calculateTextHeight(c4Shape[textType].text, textConf);
18037 } else {
18038 let lines = c4Shape[textType].text.split(common$1.lineBreakRegex);
18039 c4Shape[textType].textLines = lines.length;
18040 let lineHeight = 0;
18041 c4Shape[textType].height = 0;
18042 c4Shape[textType].width = 0;
18043 for (const line2 of lines) {
18044 c4Shape[textType].width = Math.max(
18045 calculateTextWidth(line2, textConf),
18046 c4Shape[textType].width
18047 );
18048 lineHeight = calculateTextHeight(line2, textConf);
18049 c4Shape[textType].height = c4Shape[textType].height + lineHeight;
18050 }
18051 }
18052 }
18053 }
18054 const drawBoundary = function(diagram2, boundary, bounds2) {
18055 boundary.x = bounds2.data.startx;
18056 boundary.y = bounds2.data.starty;
18057 boundary.width = bounds2.data.stopx - bounds2.data.startx;
18058 boundary.height = bounds2.data.stopy - bounds2.data.starty;
18059 boundary.label.y = conf$a.c4ShapeMargin - 35;
18060 let boundaryTextWrap = boundary.wrap && conf$a.wrap;
18061 let boundaryLabelConf = boundaryFont(conf$a);
18062 boundaryLabelConf.fontSize = boundaryLabelConf.fontSize + 2;
18063 boundaryLabelConf.fontWeight = "bold";
18064 let textLimitWidth = calculateTextWidth(boundary.label.text, boundaryLabelConf);
18065 calcC4ShapeTextWH("label", boundary, boundaryTextWrap, boundaryLabelConf, textLimitWidth);
18066 svgDraw$5.drawBoundary(diagram2, boundary, conf$a);
18067 };
18068 const drawC4ShapeArray = function(currentBounds, diagram2, c4ShapeArray2, c4ShapeKeys) {
18069 let Y2 = 0;
18070 for (const c4ShapeKey of c4ShapeKeys) {
18071 Y2 = 0;
18072 const c4Shape = c4ShapeArray2[c4ShapeKey];
18073 let c4ShapeTypeConf = c4ShapeFont(conf$a, c4Shape.typeC4Shape.text);
18074 c4ShapeTypeConf.fontSize = c4ShapeTypeConf.fontSize - 2;
18075 c4Shape.typeC4Shape.width = calculateTextWidth(
18076 "<<" + c4Shape.typeC4Shape.text + ">>",
18077 c4ShapeTypeConf
18078 );
18079 c4Shape.typeC4Shape.height = c4ShapeTypeConf.fontSize + 2;
18080 c4Shape.typeC4Shape.Y = conf$a.c4ShapePadding;
18081 Y2 = c4Shape.typeC4Shape.Y + c4Shape.typeC4Shape.height - 4;
18082 c4Shape.image = { width: 0, height: 0, Y: 0 };
18083 switch (c4Shape.typeC4Shape.text) {
18084 case "person":
18085 case "external_person":
18086 c4Shape.image.width = 48;
18087 c4Shape.image.height = 48;
18088 c4Shape.image.Y = Y2;
18089 Y2 = c4Shape.image.Y + c4Shape.image.height;
18090 break;
18091 }
18092 if (c4Shape.sprite) {
18093 c4Shape.image.width = 48;
18094 c4Shape.image.height = 48;
18095 c4Shape.image.Y = Y2;
18096 Y2 = c4Shape.image.Y + c4Shape.image.height;
18097 }
18098 let c4ShapeTextWrap = c4Shape.wrap && conf$a.wrap;
18099 let textLimitWidth = conf$a.width - conf$a.c4ShapePadding * 2;
18100 let c4ShapeLabelConf = c4ShapeFont(conf$a, c4Shape.typeC4Shape.text);
18101 c4ShapeLabelConf.fontSize = c4ShapeLabelConf.fontSize + 2;
18102 c4ShapeLabelConf.fontWeight = "bold";
18103 calcC4ShapeTextWH("label", c4Shape, c4ShapeTextWrap, c4ShapeLabelConf, textLimitWidth);
18104 c4Shape["label"].Y = Y2 + 8;
18105 Y2 = c4Shape["label"].Y + c4Shape["label"].height;
18106 if (c4Shape.type && c4Shape.type.text !== "") {
18107 c4Shape.type.text = "[" + c4Shape.type.text + "]";
18108 let c4ShapeTypeConf2 = c4ShapeFont(conf$a, c4Shape.typeC4Shape.text);
18109 calcC4ShapeTextWH("type", c4Shape, c4ShapeTextWrap, c4ShapeTypeConf2, textLimitWidth);
18110 c4Shape["type"].Y = Y2 + 5;
18111 Y2 = c4Shape["type"].Y + c4Shape["type"].height;
18112 } else if (c4Shape.techn && c4Shape.techn.text !== "") {
18113 c4Shape.techn.text = "[" + c4Shape.techn.text + "]";
18114 let c4ShapeTechnConf = c4ShapeFont(conf$a, c4Shape.techn.text);
18115 calcC4ShapeTextWH("techn", c4Shape, c4ShapeTextWrap, c4ShapeTechnConf, textLimitWidth);
18116 c4Shape["techn"].Y = Y2 + 5;
18117 Y2 = c4Shape["techn"].Y + c4Shape["techn"].height;
18118 }
18119 let rectHeight = Y2;
18120 let rectWidth = c4Shape.label.width;
18121 if (c4Shape.descr && c4Shape.descr.text !== "") {
18122 let c4ShapeDescrConf = c4ShapeFont(conf$a, c4Shape.typeC4Shape.text);
18123 calcC4ShapeTextWH("descr", c4Shape, c4ShapeTextWrap, c4ShapeDescrConf, textLimitWidth);
18124 c4Shape["descr"].Y = Y2 + 20;
18125 Y2 = c4Shape["descr"].Y + c4Shape["descr"].height;
18126 rectWidth = Math.max(c4Shape.label.width, c4Shape.descr.width);
18127 rectHeight = Y2 - c4Shape["descr"].textLines * 5;
18128 }
18129 rectWidth = rectWidth + conf$a.c4ShapePadding;
18130 c4Shape.width = Math.max(c4Shape.width || conf$a.width, rectWidth, conf$a.width);
18131 c4Shape.height = Math.max(c4Shape.height || conf$a.height, rectHeight, conf$a.height);
18132 c4Shape.margin = c4Shape.margin || conf$a.c4ShapeMargin;
18133 currentBounds.insert(c4Shape);
18134 svgDraw$5.drawC4Shape(diagram2, c4Shape, conf$a);
18135 }
18136 currentBounds.bumpLastMargin(conf$a.c4ShapeMargin);
18137 };
18138 let Point$1 = class Point {
18139 constructor(x2, y2) {
18140 this.x = x2;
18141 this.y = y2;
18142 }
18143 };
18144 let getIntersectPoint = function(fromNode, endPoint) {
18145 let x1 = fromNode.x;
18146 let y1 = fromNode.y;
18147 let x2 = endPoint.x;
18148 let y2 = endPoint.y;
18149 let fromCenterX = x1 + fromNode.width / 2;
18150 let fromCenterY = y1 + fromNode.height / 2;
18151 let dx = Math.abs(x1 - x2);
18152 let dy = Math.abs(y1 - y2);
18153 let tanDYX = dy / dx;
18154 let fromDYX = fromNode.height / fromNode.width;
18155 let returnPoint = null;
18156 if (y1 == y2 && x1 < x2) {
18157 returnPoint = new Point$1(x1 + fromNode.width, fromCenterY);
18158 } else if (y1 == y2 && x1 > x2) {
18159 returnPoint = new Point$1(x1, fromCenterY);
18160 } else if (x1 == x2 && y1 < y2) {
18161 returnPoint = new Point$1(fromCenterX, y1 + fromNode.height);
18162 } else if (x1 == x2 && y1 > y2) {
18163 returnPoint = new Point$1(fromCenterX, y1);
18164 }
18165 if (x1 > x2 && y1 < y2) {
18166 if (fromDYX >= tanDYX) {
18167 returnPoint = new Point$1(x1, fromCenterY + tanDYX * fromNode.width / 2);
18168 } else {
18169 returnPoint = new Point$1(
18170 fromCenterX - dx / dy * fromNode.height / 2,
18171 y1 + fromNode.height
18172 );
18173 }
18174 } else if (x1 < x2 && y1 < y2) {
18175 if (fromDYX >= tanDYX) {
18176 returnPoint = new Point$1(x1 + fromNode.width, fromCenterY + tanDYX * fromNode.width / 2);
18177 } else {
18178 returnPoint = new Point$1(
18179 fromCenterX + dx / dy * fromNode.height / 2,
18180 y1 + fromNode.height
18181 );
18182 }
18183 } else if (x1 < x2 && y1 > y2) {
18184 if (fromDYX >= tanDYX) {
18185 returnPoint = new Point$1(x1 + fromNode.width, fromCenterY - tanDYX * fromNode.width / 2);
18186 } else {
18187 returnPoint = new Point$1(fromCenterX + fromNode.height / 2 * dx / dy, y1);
18188 }
18189 } else if (x1 > x2 && y1 > y2) {
18190 if (fromDYX >= tanDYX) {
18191 returnPoint = new Point$1(x1, fromCenterY - fromNode.width / 2 * tanDYX);
18192 } else {
18193 returnPoint = new Point$1(fromCenterX - fromNode.height / 2 * dx / dy, y1);
18194 }
18195 }
18196 return returnPoint;
18197 };
18198 let getIntersectPoints = function(fromNode, endNode) {
18199 let endIntersectPoint = { x: 0, y: 0 };
18200 endIntersectPoint.x = endNode.x + endNode.width / 2;
18201 endIntersectPoint.y = endNode.y + endNode.height / 2;
18202 let startPoint = getIntersectPoint(fromNode, endIntersectPoint);
18203 endIntersectPoint.x = fromNode.x + fromNode.width / 2;
18204 endIntersectPoint.y = fromNode.y + fromNode.height / 2;
18205 let endPoint = getIntersectPoint(endNode, endIntersectPoint);
18206 return { startPoint, endPoint };
18207 };
18208 const drawRels = function(diagram2, rels2, getC4ShapeObj, diagObj) {
18209 let i2 = 0;
18210 for (let rel of rels2) {
18211 i2 = i2 + 1;
18212 let relTextWrap = rel.wrap && conf$a.wrap;
18213 let relConf = messageFont$1(conf$a);
18214 let diagramType = diagObj.db.getC4Type();
18215 if (diagramType === "C4Dynamic") {
18216 rel.label.text = i2 + ": " + rel.label.text;
18217 }
18218 let textLimitWidth = calculateTextWidth(rel.label.text, relConf);
18219 calcC4ShapeTextWH("label", rel, relTextWrap, relConf, textLimitWidth);
18220 if (rel.techn && rel.techn.text !== "") {
18221 textLimitWidth = calculateTextWidth(rel.techn.text, relConf);
18222 calcC4ShapeTextWH("techn", rel, relTextWrap, relConf, textLimitWidth);
18223 }
18224 if (rel.descr && rel.descr.text !== "") {
18225 textLimitWidth = calculateTextWidth(rel.descr.text, relConf);
18226 calcC4ShapeTextWH("descr", rel, relTextWrap, relConf, textLimitWidth);
18227 }
18228 let fromNode = getC4ShapeObj(rel.from);
18229 let endNode = getC4ShapeObj(rel.to);
18230 let points = getIntersectPoints(fromNode, endNode);
18231 rel.startPoint = points.startPoint;
18232 rel.endPoint = points.endPoint;
18233 }
18234 svgDraw$5.drawRels(diagram2, rels2, conf$a);
18235 };
18236 function drawInsideBoundary(diagram2, parentBoundaryAlias, parentBounds, currentBoundaries, diagObj) {
18237 let currentBounds = new Bounds(diagObj);
18238 currentBounds.data.widthLimit = parentBounds.data.widthLimit / Math.min(c4BoundaryInRow, currentBoundaries.length);
18239 for (let [i2, currentBoundary] of currentBoundaries.entries()) {
18240 let Y2 = 0;
18241 currentBoundary.image = { width: 0, height: 0, Y: 0 };
18242 if (currentBoundary.sprite) {
18243 currentBoundary.image.width = 48;
18244 currentBoundary.image.height = 48;
18245 currentBoundary.image.Y = Y2;
18246 Y2 = currentBoundary.image.Y + currentBoundary.image.height;
18247 }
18248 let currentBoundaryTextWrap = currentBoundary.wrap && conf$a.wrap;
18249 let currentBoundaryLabelConf = boundaryFont(conf$a);
18250 currentBoundaryLabelConf.fontSize = currentBoundaryLabelConf.fontSize + 2;
18251 currentBoundaryLabelConf.fontWeight = "bold";
18252 calcC4ShapeTextWH(
18253 "label",
18254 currentBoundary,
18255 currentBoundaryTextWrap,
18256 currentBoundaryLabelConf,
18257 currentBounds.data.widthLimit
18258 );
18259 currentBoundary["label"].Y = Y2 + 8;
18260 Y2 = currentBoundary["label"].Y + currentBoundary["label"].height;
18261 if (currentBoundary.type && currentBoundary.type.text !== "") {
18262 currentBoundary.type.text = "[" + currentBoundary.type.text + "]";
18263 let currentBoundaryTypeConf = boundaryFont(conf$a);
18264 calcC4ShapeTextWH(
18265 "type",
18266 currentBoundary,
18267 currentBoundaryTextWrap,
18268 currentBoundaryTypeConf,
18269 currentBounds.data.widthLimit
18270 );
18271 currentBoundary["type"].Y = Y2 + 5;
18272 Y2 = currentBoundary["type"].Y + currentBoundary["type"].height;
18273 }
18274 if (currentBoundary.descr && currentBoundary.descr.text !== "") {
18275 let currentBoundaryDescrConf = boundaryFont(conf$a);
18276 currentBoundaryDescrConf.fontSize = currentBoundaryDescrConf.fontSize - 2;
18277 calcC4ShapeTextWH(
18278 "descr",
18279 currentBoundary,
18280 currentBoundaryTextWrap,
18281 currentBoundaryDescrConf,
18282 currentBounds.data.widthLimit
18283 );
18284 currentBoundary["descr"].Y = Y2 + 20;
18285 Y2 = currentBoundary["descr"].Y + currentBoundary["descr"].height;
18286 }
18287 if (i2 == 0 || i2 % c4BoundaryInRow === 0) {
18288 let _x = parentBounds.data.startx + conf$a.diagramMarginX;
18289 let _y = parentBounds.data.stopy + conf$a.diagramMarginY + Y2;
18290 currentBounds.setData(_x, _x, _y, _y);
18291 } else {
18292 let _x = currentBounds.data.stopx !== currentBounds.data.startx ? currentBounds.data.stopx + conf$a.diagramMarginX : currentBounds.data.startx;
18293 let _y = currentBounds.data.starty;
18294 currentBounds.setData(_x, _x, _y, _y);
18295 }
18296 currentBounds.name = currentBoundary.alias;
18297 let currentPersonOrSystemArray = diagObj.db.getC4ShapeArray(currentBoundary.alias);
18298 let currentPersonOrSystemKeys = diagObj.db.getC4ShapeKeys(currentBoundary.alias);
18299 if (currentPersonOrSystemKeys.length > 0) {
18300 drawC4ShapeArray(
18301 currentBounds,
18302 diagram2,
18303 currentPersonOrSystemArray,
18304 currentPersonOrSystemKeys
18305 );
18306 }
18307 parentBoundaryAlias = currentBoundary.alias;
18308 let nextCurrentBoundarys = diagObj.db.getBoundarys(parentBoundaryAlias);
18309 if (nextCurrentBoundarys.length > 0) {
18310 drawInsideBoundary(
18311 diagram2,
18312 parentBoundaryAlias,
18313 currentBounds,
18314 nextCurrentBoundarys,
18315 diagObj
18316 );
18317 }
18318 if (currentBoundary.alias !== "global") {
18319 drawBoundary(diagram2, currentBoundary, currentBounds);
18320 }
18321 parentBounds.data.stopy = Math.max(
18322 currentBounds.data.stopy + conf$a.c4ShapeMargin,
18323 parentBounds.data.stopy
18324 );
18325 parentBounds.data.stopx = Math.max(
18326 currentBounds.data.stopx + conf$a.c4ShapeMargin,
18327 parentBounds.data.stopx
18328 );
18329 globalBoundaryMaxX = Math.max(globalBoundaryMaxX, parentBounds.data.stopx);
18330 globalBoundaryMaxY = Math.max(globalBoundaryMaxY, parentBounds.data.stopy);
18331 }
18332 }
18333 const draw$i = function(_text, id2, _version, diagObj) {
18334 conf$a = getConfig$1().c4;
18335 const securityLevel = getConfig$1().securityLevel;
18336 let sandboxElement;
18337 if (securityLevel === "sandbox") {
18338 sandboxElement = select("#i" + id2);
18339 }
18340 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
18341 let db2 = diagObj.db;
18342 diagObj.db.setWrap(conf$a.wrap);
18343 c4ShapeInRow = db2.getC4ShapeInRow();
18344 c4BoundaryInRow = db2.getC4BoundaryInRow();
18345 log$1.debug(`C:${JSON.stringify(conf$a, null, 2)}`);
18346 const diagram2 = securityLevel === "sandbox" ? root2.select(`[id="${id2}"]`) : select(`[id="${id2}"]`);
18347 svgDraw$5.insertComputerIcon(diagram2);
18348 svgDraw$5.insertDatabaseIcon(diagram2);
18349 svgDraw$5.insertClockIcon(diagram2);
18350 let screenBounds = new Bounds(diagObj);
18351 screenBounds.setData(
18352 conf$a.diagramMarginX,
18353 conf$a.diagramMarginX,
18354 conf$a.diagramMarginY,
18355 conf$a.diagramMarginY
18356 );
18357 screenBounds.data.widthLimit = screen.availWidth;
18358 globalBoundaryMaxX = conf$a.diagramMarginX;
18359 globalBoundaryMaxY = conf$a.diagramMarginY;
18360 const title2 = diagObj.db.getTitle();
18361 let currentBoundaries = diagObj.db.getBoundarys("");
18362 drawInsideBoundary(diagram2, "", screenBounds, currentBoundaries, diagObj);
18363 svgDraw$5.insertArrowHead(diagram2);
18364 svgDraw$5.insertArrowEnd(diagram2);
18365 svgDraw$5.insertArrowCrossHead(diagram2);
18366 svgDraw$5.insertArrowFilledHead(diagram2);
18367 drawRels(diagram2, diagObj.db.getRels(), diagObj.db.getC4Shape, diagObj);
18368 screenBounds.data.stopx = globalBoundaryMaxX;
18369 screenBounds.data.stopy = globalBoundaryMaxY;
18370 const box = screenBounds.data;
18371 let boxHeight = box.stopy - box.starty;
18372 let height2 = boxHeight + 2 * conf$a.diagramMarginY;
18373 let boxWidth = box.stopx - box.startx;
18374 const width2 = boxWidth + 2 * conf$a.diagramMarginX;
18375 if (title2) {
18376 diagram2.append("text").text(title2).attr("x", (box.stopx - box.startx) / 2 - 4 * conf$a.diagramMarginX).attr("y", box.starty + conf$a.diagramMarginY);
18377 }
18378 configureSvgSize(diagram2, height2, width2, conf$a.useMaxWidth);
18379 const extraVertForTitle = title2 ? 60 : 0;
18380 diagram2.attr(
18381 "viewBox",
18382 box.startx - conf$a.diagramMarginX + " -" + (conf$a.diagramMarginY + extraVertForTitle) + " " + width2 + " " + (height2 + extraVertForTitle)
18383 );
18384 log$1.debug(`models:`, box);
18385 };
18386 const c4Renderer = {
18387 drawPersonOrSystemArray: drawC4ShapeArray,
18388 drawBoundary,
18389 setConf: setConf$9,
18390 draw: draw$i
18391 };
18392 const getStyles$e = (options2) => `.person {
18393 stroke: ${options2.personBorder};
18394 fill: ${options2.personBkg};
18395 }
18396`;
18397 const c4Styles = getStyles$e;
18398 const diagram$i = {
18399 parser: c4Parser,
18400 db: c4Db,
18401 renderer: c4Renderer,
18402 styles: c4Styles,
18403 init: (cnf) => {
18404 c4Renderer.setConf(cnf.c4);
18405 }
18406 };
18407 const c4Diagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
18408 __proto__: null,
18409 diagram: diagram$i
18410 }, Symbol.toStringTag, { value: "Module" }));
18411 var parser$m = function() {
18412 var o = function(k, v, o2, l) {
18413 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
18414 ;
18415 return o2;
18416 }, $V0 = [1, 9], $V1 = [1, 7], $V2 = [1, 6], $V3 = [1, 8], $V4 = [1, 20, 21, 22, 23, 38, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $V5 = [2, 10], $V6 = [1, 20], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 30], $Vb = [1, 32], $Vc = [1, 33], $Vd = [1, 34], $Ve = [1, 62], $Vf = [1, 48], $Vg = [1, 52], $Vh = [1, 36], $Vi = [1, 37], $Vj = [1, 38], $Vk = [1, 39], $Vl = [1, 40], $Vm = [1, 56], $Vn = [1, 63], $Vo = [1, 51], $Vp = [1, 53], $Vq = [1, 55], $Vr = [1, 59], $Vs = [1, 60], $Vt = [1, 41], $Vu = [1, 42], $Vv = [1, 43], $Vw = [1, 44], $Vx = [1, 61], $Vy = [1, 50], $Vz = [1, 54], $VA = [1, 57], $VB = [1, 58], $VC = [1, 49], $VD = [1, 66], $VE = [1, 71], $VF = [1, 20, 21, 22, 23, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $VG = [1, 75], $VH = [1, 74], $VI = [1, 76], $VJ = [20, 21, 23, 81, 82], $VK = [1, 99], $VL = [1, 104], $VM = [1, 107], $VN = [1, 108], $VO = [1, 101], $VP = [1, 106], $VQ = [1, 109], $VR = [1, 102], $VS = [1, 114], $VT = [1, 113], $VU = [1, 103], $VV = [1, 105], $VW = [1, 110], $VX = [1, 111], $VY = [1, 112], $VZ = [1, 115], $V_ = [20, 21, 22, 23, 81, 82], $V$ = [20, 21, 22, 23, 53, 81, 82], $V01 = [20, 21, 22, 23, 40, 52, 53, 55, 57, 59, 61, 63, 65, 66, 67, 69, 71, 73, 74, 76, 81, 82, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V11 = [20, 21, 23], $V21 = [20, 21, 23, 52, 66, 67, 81, 82, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V31 = [1, 12, 20, 21, 22, 23, 24, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $V41 = [52, 66, 67, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $V51 = [1, 150], $V61 = [1, 158], $V71 = [1, 159], $V81 = [1, 160], $V91 = [1, 161], $Va1 = [1, 145], $Vb1 = [1, 146], $Vc1 = [1, 141], $Vd1 = [1, 142], $Ve1 = [1, 153], $Vf1 = [1, 154], $Vg1 = [1, 155], $Vh1 = [1, 156], $Vi1 = [1, 157], $Vj1 = [1, 162], $Vk1 = [1, 163], $Vl1 = [1, 148], $Vm1 = [1, 151], $Vn1 = [1, 147], $Vo1 = [1, 144], $Vp1 = [20, 21, 22, 23, 38, 42, 44, 46, 48, 52, 66, 67, 87, 88, 89, 90, 91, 92, 96, 106, 107, 110, 112, 113, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128], $Vq1 = [1, 166], $Vr1 = [20, 21, 22, 23, 26, 52, 66, 67, 92, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], $Vs1 = [20, 21, 22, 23, 24, 26, 38, 40, 41, 42, 52, 56, 58, 60, 62, 64, 66, 67, 68, 70, 72, 73, 75, 77, 81, 82, 87, 88, 89, 90, 91, 92, 93, 96, 106, 107, 110, 112, 113, 114, 115, 123, 124, 125, 126, 127, 128], $Vt1 = [12, 21, 22, 24], $Vu1 = [22, 107], $Vv1 = [1, 251], $Vw1 = [1, 246], $Vx1 = [1, 247], $Vy1 = [1, 255], $Vz1 = [1, 252], $VA1 = [1, 249], $VB1 = [1, 248], $VC1 = [1, 250], $VD1 = [1, 253], $VE1 = [1, 254], $VF1 = [1, 256], $VG1 = [1, 274], $VH1 = [20, 21, 23, 107], $VI1 = [20, 21, 22, 23, 66, 67, 87, 103, 106, 107, 110, 111, 112, 113, 114];
18417 var parser2 = {
18418 trace: function trace() {
18419 },
18420 yy: {},
18421 symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "directive": 5, "openDirective": 6, "typeDirective": 7, "closeDirective": 8, "separator": 9, ":": 10, "argDirective": 11, "open_directive": 12, "type_directive": 13, "arg_directive": 14, "close_directive": 15, "graphConfig": 16, "document": 17, "line": 18, "statement": 19, "SEMI": 20, "NEWLINE": 21, "SPACE": 22, "EOF": 23, "GRAPH": 24, "NODIR": 25, "DIR": 26, "FirstStmtSeperator": 27, "ending": 28, "endToken": 29, "spaceList": 30, "spaceListNewline": 31, "verticeStatement": 32, "styleStatement": 33, "linkStyleStatement": 34, "classDefStatement": 35, "classStatement": 36, "clickStatement": 37, "subgraph": 38, "text": 39, "SQS": 40, "SQE": 41, "end": 42, "direction": 43, "acc_title": 44, "acc_title_value": 45, "acc_descr": 46, "acc_descr_value": 47, "acc_descr_multiline_value": 48, "link": 49, "node": 50, "vertex": 51, "AMP": 52, "STYLE_SEPARATOR": 53, "idString": 54, "DOUBLECIRCLESTART": 55, "DOUBLECIRCLEEND": 56, "PS": 57, "PE": 58, "(-": 59, "-)": 60, "STADIUMSTART": 61, "STADIUMEND": 62, "SUBROUTINESTART": 63, "SUBROUTINEEND": 64, "VERTEX_WITH_PROPS_START": 65, "ALPHA": 66, "COLON": 67, "PIPE": 68, "CYLINDERSTART": 69, "CYLINDEREND": 70, "DIAMOND_START": 71, "DIAMOND_STOP": 72, "TAGEND": 73, "TRAPSTART": 74, "TRAPEND": 75, "INVTRAPSTART": 76, "INVTRAPEND": 77, "linkStatement": 78, "arrowText": 79, "TESTSTR": 80, "START_LINK": 81, "LINK": 82, "textToken": 83, "STR": 84, "MD_STR": 85, "keywords": 86, "STYLE": 87, "LINKSTYLE": 88, "CLASSDEF": 89, "CLASS": 90, "CLICK": 91, "DOWN": 92, "UP": 93, "textNoTags": 94, "textNoTagsToken": 95, "DEFAULT": 96, "stylesOpt": 97, "alphaNum": 98, "CALLBACKNAME": 99, "CALLBACKARGS": 100, "HREF": 101, "LINK_TARGET": 102, "HEX": 103, "numList": 104, "INTERPOLATE": 105, "NUM": 106, "COMMA": 107, "style": 108, "styleComponent": 109, "MINUS": 110, "UNIT": 111, "BRKT": 112, "DOT": 113, "PCT": 114, "TAGSTART": 115, "alphaNumToken": 116, "idStringToken": 117, "alphaNumStatement": 118, "direction_tb": 119, "direction_bt": 120, "direction_rl": 121, "direction_lr": 122, "PUNCTUATION": 123, "UNICODE_TEXT": 124, "PLUS": 125, "EQUALS": 126, "MULT": 127, "UNDERSCORE": 128, "graphCodeTokens": 129, "ARROW_CROSS": 130, "ARROW_POINT": 131, "ARROW_CIRCLE": 132, "ARROW_OPEN": 133, "QUOTE": 134, "$accept": 0, "$end": 1 },
18422 terminals_: { 2: "error", 10: ":", 12: "open_directive", 13: "type_directive", 14: "arg_directive", 15: "close_directive", 20: "SEMI", 21: "NEWLINE", 22: "SPACE", 23: "EOF", 24: "GRAPH", 25: "NODIR", 26: "DIR", 38: "subgraph", 40: "SQS", 41: "SQE", 42: "end", 44: "acc_title", 45: "acc_title_value", 46: "acc_descr", 47: "acc_descr_value", 48: "acc_descr_multiline_value", 52: "AMP", 53: "STYLE_SEPARATOR", 55: "DOUBLECIRCLESTART", 56: "DOUBLECIRCLEEND", 57: "PS", 58: "PE", 59: "(-", 60: "-)", 61: "STADIUMSTART", 62: "STADIUMEND", 63: "SUBROUTINESTART", 64: "SUBROUTINEEND", 65: "VERTEX_WITH_PROPS_START", 66: "ALPHA", 67: "COLON", 68: "PIPE", 69: "CYLINDERSTART", 70: "CYLINDEREND", 71: "DIAMOND_START", 72: "DIAMOND_STOP", 73: "TAGEND", 74: "TRAPSTART", 75: "TRAPEND", 76: "INVTRAPSTART", 77: "INVTRAPEND", 80: "TESTSTR", 81: "START_LINK", 82: "LINK", 84: "STR", 85: "MD_STR", 87: "STYLE", 88: "LINKSTYLE", 89: "CLASSDEF", 90: "CLASS", 91: "CLICK", 92: "DOWN", 93: "UP", 96: "DEFAULT", 99: "CALLBACKNAME", 100: "CALLBACKARGS", 101: "HREF", 102: "LINK_TARGET", 103: "HEX", 105: "INTERPOLATE", 106: "NUM", 107: "COMMA", 110: "MINUS", 111: "UNIT", 112: "BRKT", 113: "DOT", 114: "PCT", 115: "TAGSTART", 119: "direction_tb", 120: "direction_bt", 121: "direction_rl", 122: "direction_lr", 123: "PUNCTUATION", 124: "UNICODE_TEXT", 125: "PLUS", 126: "EQUALS", 127: "MULT", 128: "UNDERSCORE", 130: "ARROW_CROSS", 131: "ARROW_POINT", 132: "ARROW_CIRCLE", 133: "ARROW_OPEN", 134: "QUOTE" },
18423 productions_: [0, [3, 1], [3, 2], [5, 4], [5, 6], [6, 1], [7, 1], [11, 1], [8, 1], [4, 2], [17, 0], [17, 2], [18, 1], [18, 1], [18, 1], [18, 1], [18, 1], [16, 2], [16, 2], [16, 2], [16, 3], [28, 2], [28, 1], [29, 1], [29, 1], [29, 1], [27, 1], [27, 1], [27, 2], [31, 2], [31, 2], [31, 1], [31, 1], [30, 2], [30, 1], [19, 2], [19, 2], [19, 2], [19, 2], [19, 2], [19, 2], [19, 9], [19, 6], [19, 4], [19, 1], [19, 2], [19, 2], [19, 1], [9, 1], [9, 1], [9, 1], [32, 3], [32, 4], [32, 2], [32, 1], [50, 1], [50, 5], [50, 3], [51, 4], [51, 4], [51, 6], [51, 4], [51, 4], [51, 4], [51, 8], [51, 4], [51, 4], [51, 4], [51, 6], [51, 4], [51, 4], [51, 4], [51, 4], [51, 4], [51, 1], [49, 2], [49, 3], [49, 3], [49, 1], [49, 3], [78, 1], [79, 3], [39, 1], [39, 2], [39, 1], [39, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [86, 1], [94, 1], [94, 2], [35, 5], [35, 5], [36, 5], [37, 2], [37, 4], [37, 3], [37, 5], [37, 2], [37, 4], [37, 4], [37, 6], [37, 2], [37, 4], [37, 2], [37, 4], [37, 4], [37, 6], [33, 5], [33, 5], [34, 5], [34, 5], [34, 9], [34, 9], [34, 7], [34, 7], [104, 1], [104, 3], [97, 1], [97, 3], [108, 1], [108, 2], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [109, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [83, 1], [95, 1], [95, 1], [95, 1], [95, 1], [54, 1], [54, 2], [98, 1], [98, 2], [118, 1], [118, 1], [118, 1], [118, 1], [43, 1], [43, 1], [43, 1], [43, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [116, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [117, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1], [129, 1]],
18424 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
18425 var $0 = $$.length - 1;
18426 switch (yystate) {
18427 case 5:
18428 yy.parseDirective("%%{", "open_directive");
18429 break;
18430 case 6:
18431 yy.parseDirective($$[$0], "type_directive");
18432 break;
18433 case 7:
18434 $$[$0] = $$[$0].trim().replace(/'/g, '"');
18435 yy.parseDirective($$[$0], "arg_directive");
18436 break;
18437 case 8:
18438 yy.parseDirective("}%%", "close_directive", "flowchart");
18439 break;
18440 case 10:
18441 this.$ = [];
18442 break;
18443 case 11:
18444 if (!Array.isArray($$[$0]) || $$[$0].length > 0) {
18445 $$[$0 - 1].push($$[$0]);
18446 }
18447 this.$ = $$[$0 - 1];
18448 break;
18449 case 12:
18450 case 97:
18451 case 153:
18452 case 155:
18453 case 156:
18454 this.$ = $$[$0];
18455 break;
18456 case 19:
18457 yy.setDirection("TB");
18458 this.$ = "TB";
18459 break;
18460 case 20:
18461 yy.setDirection($$[$0 - 1]);
18462 this.$ = $$[$0 - 1];
18463 break;
18464 case 35:
18465 this.$ = $$[$0 - 1].nodes;
18466 break;
18467 case 36:
18468 case 37:
18469 case 38:
18470 case 39:
18471 case 40:
18472 this.$ = [];
18473 break;
18474 case 41:
18475 this.$ = yy.addSubGraph($$[$0 - 6], $$[$0 - 1], $$[$0 - 4]);
18476 break;
18477 case 42:
18478 this.$ = yy.addSubGraph($$[$0 - 3], $$[$0 - 1], $$[$0 - 3]);
18479 break;
18480 case 43:
18481 this.$ = yy.addSubGraph(void 0, $$[$0 - 1], void 0);
18482 break;
18483 case 45:
18484 this.$ = $$[$0].trim();
18485 yy.setAccTitle(this.$);
18486 break;
18487 case 46:
18488 case 47:
18489 this.$ = $$[$0].trim();
18490 yy.setAccDescription(this.$);
18491 break;
18492 case 51:
18493 yy.addLink($$[$0 - 2].stmt, $$[$0], $$[$0 - 1]);
18494 this.$ = { stmt: $$[$0], nodes: $$[$0].concat($$[$0 - 2].nodes) };
18495 break;
18496 case 52:
18497 yy.addLink($$[$0 - 3].stmt, $$[$0 - 1], $$[$0 - 2]);
18498 this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1].concat($$[$0 - 3].nodes) };
18499 break;
18500 case 53:
18501 this.$ = { stmt: $$[$0 - 1], nodes: $$[$0 - 1] };
18502 break;
18503 case 54:
18504 this.$ = { stmt: $$[$0], nodes: $$[$0] };
18505 break;
18506 case 55:
18507 this.$ = [$$[$0]];
18508 break;
18509 case 56:
18510 this.$ = $$[$0 - 4].concat($$[$0]);
18511 break;
18512 case 57:
18513 this.$ = [$$[$0 - 2]];
18514 yy.setClass($$[$0 - 2], $$[$0]);
18515 break;
18516 case 58:
18517 this.$ = $$[$0 - 3];
18518 yy.addVertex($$[$0 - 3], $$[$0 - 1], "square");
18519 break;
18520 case 59:
18521 this.$ = $$[$0 - 3];
18522 yy.addVertex($$[$0 - 3], $$[$0 - 1], "doublecircle");
18523 break;
18524 case 60:
18525 this.$ = $$[$0 - 5];
18526 yy.addVertex($$[$0 - 5], $$[$0 - 2], "circle");
18527 break;
18528 case 61:
18529 this.$ = $$[$0 - 3];
18530 yy.addVertex($$[$0 - 3], $$[$0 - 1], "ellipse");
18531 break;
18532 case 62:
18533 this.$ = $$[$0 - 3];
18534 yy.addVertex($$[$0 - 3], $$[$0 - 1], "stadium");
18535 break;
18536 case 63:
18537 this.$ = $$[$0 - 3];
18538 yy.addVertex($$[$0 - 3], $$[$0 - 1], "subroutine");
18539 break;
18540 case 64:
18541 this.$ = $$[$0 - 7];
18542 yy.addVertex($$[$0 - 7], $$[$0 - 1], "rect", void 0, void 0, void 0, Object.fromEntries([[$$[$0 - 5], $$[$0 - 3]]]));
18543 break;
18544 case 65:
18545 this.$ = $$[$0 - 3];
18546 yy.addVertex($$[$0 - 3], $$[$0 - 1], "cylinder");
18547 break;
18548 case 66:
18549 this.$ = $$[$0 - 3];
18550 yy.addVertex($$[$0 - 3], $$[$0 - 1], "round");
18551 break;
18552 case 67:
18553 this.$ = $$[$0 - 3];
18554 yy.addVertex($$[$0 - 3], $$[$0 - 1], "diamond");
18555 break;
18556 case 68:
18557 this.$ = $$[$0 - 5];
18558 yy.addVertex($$[$0 - 5], $$[$0 - 2], "hexagon");
18559 break;
18560 case 69:
18561 this.$ = $$[$0 - 3];
18562 yy.addVertex($$[$0 - 3], $$[$0 - 1], "odd");
18563 break;
18564 case 70:
18565 this.$ = $$[$0 - 3];
18566 yy.addVertex($$[$0 - 3], $$[$0 - 1], "trapezoid");
18567 break;
18568 case 71:
18569 this.$ = $$[$0 - 3];
18570 yy.addVertex($$[$0 - 3], $$[$0 - 1], "inv_trapezoid");
18571 break;
18572 case 72:
18573 this.$ = $$[$0 - 3];
18574 yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_right");
18575 break;
18576 case 73:
18577 this.$ = $$[$0 - 3];
18578 yy.addVertex($$[$0 - 3], $$[$0 - 1], "lean_left");
18579 break;
18580 case 74:
18581 this.$ = $$[$0];
18582 yy.addVertex($$[$0]);
18583 break;
18584 case 75:
18585 $$[$0 - 1].text = $$[$0];
18586 this.$ = $$[$0 - 1];
18587 break;
18588 case 76:
18589 case 77:
18590 $$[$0 - 2].text = $$[$0 - 1];
18591 this.$ = $$[$0 - 2];
18592 break;
18593 case 78:
18594 this.$ = $$[$0];
18595 break;
18596 case 79:
18597 var inf = yy.destructLink($$[$0], $$[$0 - 2]);
18598 this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length, "text": $$[$0 - 1] };
18599 break;
18600 case 80:
18601 var inf = yy.destructLink($$[$0]);
18602 this.$ = { "type": inf.type, "stroke": inf.stroke, "length": inf.length };
18603 break;
18604 case 81:
18605 this.$ = $$[$0 - 1];
18606 break;
18607 case 82:
18608 this.$ = { text: $$[$0], type: "text" };
18609 break;
18610 case 83:
18611 this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type };
18612 break;
18613 case 84:
18614 this.$ = { text: $$[$0], type: "text" };
18615 break;
18616 case 85:
18617 this.$ = { text: $$[$0], type: "markdown" };
18618 break;
18619 case 98:
18620 case 154:
18621 this.$ = $$[$0 - 1] + "" + $$[$0];
18622 break;
18623 case 99:
18624 case 100:
18625 this.$ = $$[$0 - 4];
18626 yy.addClass($$[$0 - 2], $$[$0]);
18627 break;
18628 case 101:
18629 this.$ = $$[$0 - 4];
18630 yy.setClass($$[$0 - 2], $$[$0]);
18631 break;
18632 case 102:
18633 case 110:
18634 this.$ = $$[$0 - 1];
18635 yy.setClickEvent($$[$0 - 1], $$[$0]);
18636 break;
18637 case 103:
18638 case 111:
18639 this.$ = $$[$0 - 3];
18640 yy.setClickEvent($$[$0 - 3], $$[$0 - 2]);
18641 yy.setTooltip($$[$0 - 3], $$[$0]);
18642 break;
18643 case 104:
18644 this.$ = $$[$0 - 2];
18645 yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
18646 break;
18647 case 105:
18648 this.$ = $$[$0 - 4];
18649 yy.setClickEvent($$[$0 - 4], $$[$0 - 3], $$[$0 - 2]);
18650 yy.setTooltip($$[$0 - 4], $$[$0]);
18651 break;
18652 case 106:
18653 case 112:
18654 this.$ = $$[$0 - 1];
18655 yy.setLink($$[$0 - 1], $$[$0]);
18656 break;
18657 case 107:
18658 case 113:
18659 this.$ = $$[$0 - 3];
18660 yy.setLink($$[$0 - 3], $$[$0 - 2]);
18661 yy.setTooltip($$[$0 - 3], $$[$0]);
18662 break;
18663 case 108:
18664 case 114:
18665 this.$ = $$[$0 - 3];
18666 yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);
18667 break;
18668 case 109:
18669 case 115:
18670 this.$ = $$[$0 - 5];
18671 yy.setLink($$[$0 - 5], $$[$0 - 4], $$[$0]);
18672 yy.setTooltip($$[$0 - 5], $$[$0 - 2]);
18673 break;
18674 case 116:
18675 this.$ = $$[$0 - 4];
18676 yy.addVertex($$[$0 - 2], void 0, void 0, $$[$0]);
18677 break;
18678 case 117:
18679 case 119:
18680 this.$ = $$[$0 - 4];
18681 yy.updateLink($$[$0 - 2], $$[$0]);
18682 break;
18683 case 118:
18684 this.$ = $$[$0 - 4];
18685 yy.updateLink([$$[$0 - 2]], $$[$0]);
18686 break;
18687 case 120:
18688 this.$ = $$[$0 - 8];
18689 yy.updateLinkInterpolate([$$[$0 - 6]], $$[$0 - 2]);
18690 yy.updateLink([$$[$0 - 6]], $$[$0]);
18691 break;
18692 case 121:
18693 this.$ = $$[$0 - 8];
18694 yy.updateLinkInterpolate($$[$0 - 6], $$[$0 - 2]);
18695 yy.updateLink($$[$0 - 6], $$[$0]);
18696 break;
18697 case 122:
18698 this.$ = $$[$0 - 6];
18699 yy.updateLinkInterpolate([$$[$0 - 4]], $$[$0]);
18700 break;
18701 case 123:
18702 this.$ = $$[$0 - 6];
18703 yy.updateLinkInterpolate($$[$0 - 4], $$[$0]);
18704 break;
18705 case 124:
18706 case 126:
18707 this.$ = [$$[$0]];
18708 break;
18709 case 125:
18710 case 127:
18711 $$[$0 - 2].push($$[$0]);
18712 this.$ = $$[$0 - 2];
18713 break;
18714 case 129:
18715 this.$ = $$[$0 - 1] + $$[$0];
18716 break;
18717 case 151:
18718 this.$ = $$[$0];
18719 break;
18720 case 152:
18721 this.$ = $$[$0 - 1] + "" + $$[$0];
18722 break;
18723 case 157:
18724 this.$ = "v";
18725 break;
18726 case 158:
18727 this.$ = "-";
18728 break;
18729 case 159:
18730 this.$ = { stmt: "dir", value: "TB" };
18731 break;
18732 case 160:
18733 this.$ = { stmt: "dir", value: "BT" };
18734 break;
18735 case 161:
18736 this.$ = { stmt: "dir", value: "RL" };
18737 break;
18738 case 162:
18739 this.$ = { stmt: "dir", value: "LR" };
18740 break;
18741 }
18742 },
18743 table: [{ 3: 1, 4: 2, 5: 3, 6: 5, 12: $V0, 16: 4, 21: $V1, 22: $V2, 24: $V3 }, { 1: [3] }, { 1: [2, 1] }, { 3: 10, 4: 2, 5: 3, 6: 5, 12: $V0, 16: 4, 21: $V1, 22: $V2, 24: $V3 }, o($V4, $V5, { 17: 11 }), { 7: 12, 13: [1, 13] }, { 16: 14, 21: $V1, 22: $V2, 24: $V3 }, { 16: 15, 21: $V1, 22: $V2, 24: $V3 }, { 25: [1, 16], 26: [1, 17] }, { 13: [2, 5] }, { 1: [2, 2] }, { 1: [2, 9], 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 8: 64, 10: [1, 65], 15: $VD }, o([10, 15], [2, 6]), o($V4, [2, 17]), o($V4, [2, 18]), o($V4, [2, 19]), { 20: [1, 68], 21: [1, 69], 22: $VE, 27: 67, 30: 70 }, o($VF, [2, 11]), o($VF, [2, 12]), o($VF, [2, 13]), o($VF, [2, 14]), o($VF, [2, 15]), o($VF, [2, 16]), { 9: 72, 20: $VG, 21: $VH, 23: $VI, 49: 73, 78: 77, 81: [1, 78], 82: [1, 79] }, { 9: 80, 20: $VG, 21: $VH, 23: $VI }, { 9: 81, 20: $VG, 21: $VH, 23: $VI }, { 9: 82, 20: $VG, 21: $VH, 23: $VI }, { 9: 83, 20: $VG, 21: $VH, 23: $VI }, { 9: 84, 20: $VG, 21: $VH, 23: $VI }, { 9: 86, 20: $VG, 21: $VH, 22: [1, 85], 23: $VI }, o($VF, [2, 44]), { 45: [1, 87] }, { 47: [1, 88] }, o($VF, [2, 47]), o($VJ, [2, 54], { 30: 89, 22: $VE }), { 22: [1, 90] }, { 22: [1, 91] }, { 22: [1, 92] }, { 22: [1, 93] }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 84: [1, 97], 92: $VO, 98: 96, 99: [1, 94], 101: [1, 95], 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($VF, [2, 159]), o($VF, [2, 160]), o($VF, [2, 161]), o($VF, [2, 162]), o($V_, [2, 55], { 53: [1, 116] }), o($V$, [2, 74], { 117: 129, 40: [1, 117], 52: $Ve, 55: [1, 118], 57: [1, 119], 59: [1, 120], 61: [1, 121], 63: [1, 122], 65: [1, 123], 66: $Vf, 67: $Vg, 69: [1, 124], 71: [1, 125], 73: [1, 126], 74: [1, 127], 76: [1, 128], 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }), o($V01, [2, 151]), o($V01, [2, 176]), o($V01, [2, 177]), o($V01, [2, 178]), o($V01, [2, 179]), o($V01, [2, 180]), o($V01, [2, 181]), o($V01, [2, 182]), o($V01, [2, 183]), o($V01, [2, 184]), o($V01, [2, 185]), o($V01, [2, 186]), o($V01, [2, 187]), o($V01, [2, 188]), o($V01, [2, 189]), o($V01, [2, 190]), o($V01, [2, 191]), { 9: 130, 20: $VG, 21: $VH, 23: $VI }, { 11: 131, 14: [1, 132] }, o($V11, [2, 8]), o($V4, [2, 20]), o($V4, [2, 26]), o($V4, [2, 27]), { 21: [1, 133] }, o($V21, [2, 34], { 30: 134, 22: $VE }), o($VF, [2, 35]), { 50: 135, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, o($V31, [2, 48]), o($V31, [2, 49]), o($V31, [2, 50]), o($V41, [2, 78], { 79: 136, 68: [1, 138], 80: [1, 137] }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 139, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o([52, 66, 67, 68, 80, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], [2, 80]), o($VF, [2, 36]), o($VF, [2, 37]), o($VF, [2, 38]), o($VF, [2, 39]), o($VF, [2, 40]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 164, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vp1, $V5, { 17: 165 }), o($VF, [2, 45]), o($VF, [2, 46]), o($VJ, [2, 53], { 52: $Vq1 }), { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 167, 103: [1, 168], 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 96: [1, 169], 104: 170, 106: [1, 171] }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 96: [1, 172], 98: 173, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 174, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 102], { 22: [1, 175], 100: [1, 176] }), o($V11, [2, 106], { 22: [1, 177] }), o($V11, [2, 110], { 116: 100, 118: 179, 22: [1, 178], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 112], { 22: [1, 180] }), o($Vr1, [2, 153]), o($Vr1, [2, 155]), o($Vr1, [2, 156]), o($Vr1, [2, 157]), o($Vr1, [2, 158]), o($Vs1, [2, 163]), o($Vs1, [2, 164]), o($Vs1, [2, 165]), o($Vs1, [2, 166]), o($Vs1, [2, 167]), o($Vs1, [2, 168]), o($Vs1, [2, 169]), o($Vs1, [2, 170]), o($Vs1, [2, 171]), o($Vs1, [2, 172]), o($Vs1, [2, 173]), o($Vs1, [2, 174]), o($Vs1, [2, 175]), { 52: $Ve, 54: 181, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 182, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 183, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 185, 42: $V91, 52: $VL, 57: [1, 184], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 186, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 187, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 188, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 66: [1, 189] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 190, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 191, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 71: [1, 192], 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 193, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 194, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 195, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V01, [2, 152]), o($Vt1, [2, 3]), { 8: 196, 15: $VD }, { 15: [2, 7] }, o($V4, [2, 28]), o($V21, [2, 33]), o($VJ, [2, 51], { 30: 197, 22: $VE }), o($V41, [2, 75], { 22: [1, 198] }), { 22: [1, 199] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 200, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 82: [1, 201], 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vs1, [2, 82]), o($Vs1, [2, 84]), o($Vs1, [2, 85]), o($Vs1, [2, 141]), o($Vs1, [2, 142]), o($Vs1, [2, 143]), o($Vs1, [2, 144]), o($Vs1, [2, 145]), o($Vs1, [2, 146]), o($Vs1, [2, 147]), o($Vs1, [2, 148]), o($Vs1, [2, 149]), o($Vs1, [2, 150]), o($Vs1, [2, 86]), o($Vs1, [2, 87]), o($Vs1, [2, 88]), o($Vs1, [2, 89]), o($Vs1, [2, 90]), o($Vs1, [2, 91]), o($Vs1, [2, 92]), o($Vs1, [2, 93]), o($Vs1, [2, 94]), o($Vs1, [2, 95]), o($Vs1, [2, 96]), { 9: 204, 20: $VG, 21: $VH, 22: $V51, 23: $VI, 24: $V61, 26: $V71, 38: $V81, 40: [1, 203], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 205], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $VE, 30: 206 }, { 22: [1, 207], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: [1, 208] }, { 22: [1, 209] }, { 22: [1, 210], 107: [1, 211] }, o($Vu1, [2, 124]), { 22: [1, 212] }, { 22: [1, 213], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: [1, 214], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 179, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 84: [1, 215] }, o($V11, [2, 104], { 22: [1, 216] }), { 84: [1, 217], 102: [1, 218] }, { 84: [1, 219] }, o($Vr1, [2, 154]), { 84: [1, 220], 102: [1, 221] }, o($V_, [2, 57], { 117: 129, 52: $Ve, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 222], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 56: [1, 223], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 224, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 58: [1, 225], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 60: [1, 226], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 62: [1, 227], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 64: [1, 228], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 67: [1, 229] }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 70: [1, 230], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 72: [1, 231], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 232, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 233], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 75: [1, 234], 77: [1, 235], 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 75: [1, 237], 77: [1, 236], 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 9: 238, 20: $VG, 21: $VH, 23: $VI }, o($VJ, [2, 52], { 52: $Vq1 }), o($V41, [2, 77]), o($V41, [2, 76]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 68: [1, 239], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V41, [2, 79]), o($Vs1, [2, 83]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 240, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($Vp1, $V5, { 17: 241 }), o($VF, [2, 43]), { 51: 242, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 243, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 257, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 258, 103: $Vz1, 105: [1, 259], 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 260, 103: $Vz1, 105: [1, 261], 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 106: [1, 262] }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 263, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 264, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 265, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 103]), { 84: [1, 266] }, o($V11, [2, 107], { 22: [1, 267] }), o($V11, [2, 108]), o($V11, [2, 111]), o($V11, [2, 113], { 22: [1, 268] }), o($V11, [2, 114]), o($V$, [2, 58]), o($V$, [2, 59]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 58: [1, 269], 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 66]), o($V$, [2, 61]), o($V$, [2, 62]), o($V$, [2, 63]), { 66: [1, 270] }, o($V$, [2, 65]), o($V$, [2, 67]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 72: [1, 271], 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 69]), o($V$, [2, 70]), o($V$, [2, 72]), o($V$, [2, 71]), o($V$, [2, 73]), o($Vt1, [2, 4]), o([22, 52, 66, 67, 92, 96, 106, 107, 110, 112, 113, 123, 124, 125, 126, 127, 128], [2, 81]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 272], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 273], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, o($V_, [2, 56]), o($V11, [2, 116], { 107: $VG1 }), o($VH1, [2, 126], { 109: 275, 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }), o($VI1, [2, 128]), o($VI1, [2, 130]), o($VI1, [2, 131]), o($VI1, [2, 132]), o($VI1, [2, 133]), o($VI1, [2, 134]), o($VI1, [2, 135]), o($VI1, [2, 136]), o($VI1, [2, 137]), o($VI1, [2, 138]), o($VI1, [2, 139]), o($VI1, [2, 140]), o($V11, [2, 117], { 107: $VG1 }), o($V11, [2, 118], { 107: $VG1 }), { 22: [1, 276] }, o($V11, [2, 119], { 107: $VG1 }), { 22: [1, 277] }, o($Vu1, [2, 125]), o($V11, [2, 99], { 107: $VG1 }), o($V11, [2, 100], { 107: $VG1 }), o($V11, [2, 101], { 116: 100, 118: 179, 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 105]), { 102: [1, 278] }, { 102: [1, 279] }, { 58: [1, 280] }, { 68: [1, 281] }, { 72: [1, 282] }, { 9: 283, 20: $VG, 21: $VH, 23: $VI }, o($VF, [2, 42]), { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 108: 284, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, o($VI1, [2, 129]), { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 285, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 98: 286, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 116: 100, 118: 98, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V11, [2, 109]), o($V11, [2, 115]), o($V$, [2, 60]), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 39: 287, 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 140, 84: $Vc1, 85: $Vd1, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, o($V$, [2, 68]), o($Vp1, $V5, { 17: 288 }), o($VH1, [2, 127], { 109: 275, 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 103: $Vz1, 106: $VA1, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }), o($V11, [2, 122], { 116: 100, 118: 179, 22: [1, 289], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), o($V11, [2, 123], { 116: 100, 118: 179, 22: [1, 290], 26: $VK, 52: $VL, 66: $VM, 67: $VN, 92: $VO, 106: $VP, 107: $VQ, 110: $VR, 112: $VS, 113: $VT, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }), { 22: $V51, 24: $V61, 26: $V71, 38: $V81, 41: [1, 291], 42: $V91, 52: $VL, 66: $VM, 67: $VN, 73: $Va1, 81: $Vb1, 83: 202, 86: 152, 87: $Ve1, 88: $Vf1, 89: $Vg1, 90: $Vh1, 91: $Vi1, 92: $Vj1, 93: $Vk1, 95: 143, 96: $Vl1, 106: $VP, 107: $VQ, 110: $Vm1, 112: $VS, 113: $VT, 114: $Vn1, 115: $Vo1, 116: 149, 123: $VU, 124: $VV, 125: $VW, 126: $VX, 127: $VY, 128: $VZ }, { 18: 18, 19: 19, 20: $V6, 21: $V7, 22: $V8, 23: $V9, 32: 24, 33: 25, 34: 26, 35: 27, 36: 28, 37: 29, 38: $Va, 42: [1, 292], 43: 31, 44: $Vb, 46: $Vc, 48: $Vd, 50: 35, 51: 45, 52: $Ve, 54: 46, 66: $Vf, 67: $Vg, 87: $Vh, 88: $Vi, 89: $Vj, 90: $Vk, 91: $Vl, 92: $Vm, 96: $Vn, 106: $Vo, 107: $Vp, 110: $Vq, 112: $Vr, 113: $Vs, 117: 47, 119: $Vt, 120: $Vu, 121: $Vv, 122: $Vw, 123: $Vx, 124: $Vy, 125: $Vz, 126: $VA, 127: $VB, 128: $VC }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 293, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, { 22: $Vv1, 66: $Vw1, 67: $Vx1, 87: $Vy1, 97: 294, 103: $Vz1, 106: $VA1, 108: 244, 109: 245, 110: $VB1, 111: $VC1, 112: $VD1, 113: $VE1, 114: $VF1 }, o($V$, [2, 64]), o($VF, [2, 41]), o($V11, [2, 120], { 107: $VG1 }), o($V11, [2, 121], { 107: $VG1 })],
18744 defaultActions: { 2: [2, 1], 9: [2, 5], 10: [2, 2], 132: [2, 7] },
18745 parseError: function parseError2(str2, hash) {
18746 if (hash.recoverable) {
18747 this.trace(str2);
18748 } else {
18749 var error = new Error(str2);
18750 error.hash = hash;
18751 throw error;
18752 }
18753 },
18754 parse: function parse2(input) {
18755 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
18756 var args = lstack.slice.call(arguments, 1);
18757 var lexer2 = Object.create(this.lexer);
18758 var sharedState = { yy: {} };
18759 for (var k in this.yy) {
18760 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
18761 sharedState.yy[k] = this.yy[k];
18762 }
18763 }
18764 lexer2.setInput(input, sharedState.yy);
18765 sharedState.yy.lexer = lexer2;
18766 sharedState.yy.parser = this;
18767 if (typeof lexer2.yylloc == "undefined") {
18768 lexer2.yylloc = {};
18769 }
18770 var yyloc = lexer2.yylloc;
18771 lstack.push(yyloc);
18772 var ranges = lexer2.options && lexer2.options.ranges;
18773 if (typeof sharedState.yy.parseError === "function") {
18774 this.parseError = sharedState.yy.parseError;
18775 } else {
18776 this.parseError = Object.getPrototypeOf(this).parseError;
18777 }
18778 function lex2() {
18779 var token2;
18780 token2 = tstack.pop() || lexer2.lex() || EOF;
18781 if (typeof token2 !== "number") {
18782 if (token2 instanceof Array) {
18783 tstack = token2;
18784 token2 = tstack.pop();
18785 }
18786 token2 = self2.symbols_[token2] || token2;
18787 }
18788 return token2;
18789 }
18790 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
18791 while (true) {
18792 state2 = stack[stack.length - 1];
18793 if (this.defaultActions[state2]) {
18794 action = this.defaultActions[state2];
18795 } else {
18796 if (symbol === null || typeof symbol == "undefined") {
18797 symbol = lex2();
18798 }
18799 action = table[state2] && table[state2][symbol];
18800 }
18801 if (typeof action === "undefined" || !action.length || !action[0]) {
18802 var errStr = "";
18803 expected = [];
18804 for (p in table[state2]) {
18805 if (this.terminals_[p] && p > TERROR) {
18806 expected.push("'" + this.terminals_[p] + "'");
18807 }
18808 }
18809 if (lexer2.showPosition) {
18810 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
18811 } else {
18812 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
18813 }
18814 this.parseError(errStr, {
18815 text: lexer2.match,
18816 token: this.terminals_[symbol] || symbol,
18817 line: lexer2.yylineno,
18818 loc: yyloc,
18819 expected
18820 });
18821 }
18822 if (action[0] instanceof Array && action.length > 1) {
18823 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
18824 }
18825 switch (action[0]) {
18826 case 1:
18827 stack.push(symbol);
18828 vstack.push(lexer2.yytext);
18829 lstack.push(lexer2.yylloc);
18830 stack.push(action[1]);
18831 symbol = null;
18832 {
18833 yyleng = lexer2.yyleng;
18834 yytext = lexer2.yytext;
18835 yylineno = lexer2.yylineno;
18836 yyloc = lexer2.yylloc;
18837 }
18838 break;
18839 case 2:
18840 len = this.productions_[action[1]][1];
18841 yyval.$ = vstack[vstack.length - len];
18842 yyval._$ = {
18843 first_line: lstack[lstack.length - (len || 1)].first_line,
18844 last_line: lstack[lstack.length - 1].last_line,
18845 first_column: lstack[lstack.length - (len || 1)].first_column,
18846 last_column: lstack[lstack.length - 1].last_column
18847 };
18848 if (ranges) {
18849 yyval._$.range = [
18850 lstack[lstack.length - (len || 1)].range[0],
18851 lstack[lstack.length - 1].range[1]
18852 ];
18853 }
18854 r = this.performAction.apply(yyval, [
18855 yytext,
18856 yyleng,
18857 yylineno,
18858 sharedState.yy,
18859 action[1],
18860 vstack,
18861 lstack
18862 ].concat(args));
18863 if (typeof r !== "undefined") {
18864 return r;
18865 }
18866 if (len) {
18867 stack = stack.slice(0, -1 * len * 2);
18868 vstack = vstack.slice(0, -1 * len);
18869 lstack = lstack.slice(0, -1 * len);
18870 }
18871 stack.push(this.productions_[action[1]][0]);
18872 vstack.push(yyval.$);
18873 lstack.push(yyval._$);
18874 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
18875 stack.push(newState);
18876 break;
18877 case 3:
18878 return true;
18879 }
18880 }
18881 return true;
18882 }
18883 };
18884 var lexer = function() {
18885 var lexer2 = {
18886 EOF: 1,
18887 parseError: function parseError2(str2, hash) {
18888 if (this.yy.parser) {
18889 this.yy.parser.parseError(str2, hash);
18890 } else {
18891 throw new Error(str2);
18892 }
18893 },
18894 // resets the lexer, sets new input
18895 setInput: function(input, yy) {
18896 this.yy = yy || this.yy || {};
18897 this._input = input;
18898 this._more = this._backtrack = this.done = false;
18899 this.yylineno = this.yyleng = 0;
18900 this.yytext = this.matched = this.match = "";
18901 this.conditionStack = ["INITIAL"];
18902 this.yylloc = {
18903 first_line: 1,
18904 first_column: 0,
18905 last_line: 1,
18906 last_column: 0
18907 };
18908 if (this.options.ranges) {
18909 this.yylloc.range = [0, 0];
18910 }
18911 this.offset = 0;
18912 return this;
18913 },
18914 // consumes and returns one char from the input
18915 input: function() {
18916 var ch = this._input[0];
18917 this.yytext += ch;
18918 this.yyleng++;
18919 this.offset++;
18920 this.match += ch;
18921 this.matched += ch;
18922 var lines = ch.match(/(?:\r\n?|\n).*/g);
18923 if (lines) {
18924 this.yylineno++;
18925 this.yylloc.last_line++;
18926 } else {
18927 this.yylloc.last_column++;
18928 }
18929 if (this.options.ranges) {
18930 this.yylloc.range[1]++;
18931 }
18932 this._input = this._input.slice(1);
18933 return ch;
18934 },
18935 // unshifts one char (or a string) into the input
18936 unput: function(ch) {
18937 var len = ch.length;
18938 var lines = ch.split(/(?:\r\n?|\n)/g);
18939 this._input = ch + this._input;
18940 this.yytext = this.yytext.substr(0, this.yytext.length - len);
18941 this.offset -= len;
18942 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
18943 this.match = this.match.substr(0, this.match.length - 1);
18944 this.matched = this.matched.substr(0, this.matched.length - 1);
18945 if (lines.length - 1) {
18946 this.yylineno -= lines.length - 1;
18947 }
18948 var r = this.yylloc.range;
18949 this.yylloc = {
18950 first_line: this.yylloc.first_line,
18951 last_line: this.yylineno + 1,
18952 first_column: this.yylloc.first_column,
18953 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
18954 };
18955 if (this.options.ranges) {
18956 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
18957 }
18958 this.yyleng = this.yytext.length;
18959 return this;
18960 },
18961 // When called from action, caches matched text and appends it on next action
18962 more: function() {
18963 this._more = true;
18964 return this;
18965 },
18966 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
18967 reject: function() {
18968 if (this.options.backtrack_lexer) {
18969 this._backtrack = true;
18970 } else {
18971 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
18972 text: "",
18973 token: null,
18974 line: this.yylineno
18975 });
18976 }
18977 return this;
18978 },
18979 // retain first n characters of the match
18980 less: function(n) {
18981 this.unput(this.match.slice(n));
18982 },
18983 // displays already matched input, i.e. for error messages
18984 pastInput: function() {
18985 var past = this.matched.substr(0, this.matched.length - this.match.length);
18986 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
18987 },
18988 // displays upcoming input, i.e. for error messages
18989 upcomingInput: function() {
18990 var next2 = this.match;
18991 if (next2.length < 20) {
18992 next2 += this._input.substr(0, 20 - next2.length);
18993 }
18994 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
18995 },
18996 // displays the character position where the lexing error occurred, i.e. for error messages
18997 showPosition: function() {
18998 var pre = this.pastInput();
18999 var c2 = new Array(pre.length + 1).join("-");
19000 return pre + this.upcomingInput() + "\n" + c2 + "^";
19001 },
19002 // test the lexed token: return FALSE when not a match, otherwise return token
19003 test_match: function(match, indexed_rule) {
19004 var token2, lines, backup;
19005 if (this.options.backtrack_lexer) {
19006 backup = {
19007 yylineno: this.yylineno,
19008 yylloc: {
19009 first_line: this.yylloc.first_line,
19010 last_line: this.last_line,
19011 first_column: this.yylloc.first_column,
19012 last_column: this.yylloc.last_column
19013 },
19014 yytext: this.yytext,
19015 match: this.match,
19016 matches: this.matches,
19017 matched: this.matched,
19018 yyleng: this.yyleng,
19019 offset: this.offset,
19020 _more: this._more,
19021 _input: this._input,
19022 yy: this.yy,
19023 conditionStack: this.conditionStack.slice(0),
19024 done: this.done
19025 };
19026 if (this.options.ranges) {
19027 backup.yylloc.range = this.yylloc.range.slice(0);
19028 }
19029 }
19030 lines = match[0].match(/(?:\r\n?|\n).*/g);
19031 if (lines) {
19032 this.yylineno += lines.length;
19033 }
19034 this.yylloc = {
19035 first_line: this.yylloc.last_line,
19036 last_line: this.yylineno + 1,
19037 first_column: this.yylloc.last_column,
19038 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
19039 };
19040 this.yytext += match[0];
19041 this.match += match[0];
19042 this.matches = match;
19043 this.yyleng = this.yytext.length;
19044 if (this.options.ranges) {
19045 this.yylloc.range = [this.offset, this.offset += this.yyleng];
19046 }
19047 this._more = false;
19048 this._backtrack = false;
19049 this._input = this._input.slice(match[0].length);
19050 this.matched += match[0];
19051 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
19052 if (this.done && this._input) {
19053 this.done = false;
19054 }
19055 if (token2) {
19056 return token2;
19057 } else if (this._backtrack) {
19058 for (var k in backup) {
19059 this[k] = backup[k];
19060 }
19061 return false;
19062 }
19063 return false;
19064 },
19065 // return next match in input
19066 next: function() {
19067 if (this.done) {
19068 return this.EOF;
19069 }
19070 if (!this._input) {
19071 this.done = true;
19072 }
19073 var token2, match, tempMatch, index2;
19074 if (!this._more) {
19075 this.yytext = "";
19076 this.match = "";
19077 }
19078 var rules = this._currentRules();
19079 for (var i2 = 0; i2 < rules.length; i2++) {
19080 tempMatch = this._input.match(this.rules[rules[i2]]);
19081 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
19082 match = tempMatch;
19083 index2 = i2;
19084 if (this.options.backtrack_lexer) {
19085 token2 = this.test_match(tempMatch, rules[i2]);
19086 if (token2 !== false) {
19087 return token2;
19088 } else if (this._backtrack) {
19089 match = false;
19090 continue;
19091 } else {
19092 return false;
19093 }
19094 } else if (!this.options.flex) {
19095 break;
19096 }
19097 }
19098 }
19099 if (match) {
19100 token2 = this.test_match(match, rules[index2]);
19101 if (token2 !== false) {
19102 return token2;
19103 }
19104 return false;
19105 }
19106 if (this._input === "") {
19107 return this.EOF;
19108 } else {
19109 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
19110 text: "",
19111 token: null,
19112 line: this.yylineno
19113 });
19114 }
19115 },
19116 // return next match that has a token
19117 lex: function lex2() {
19118 var r = this.next();
19119 if (r) {
19120 return r;
19121 } else {
19122 return this.lex();
19123 }
19124 },
19125 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
19126 begin: function begin(condition) {
19127 this.conditionStack.push(condition);
19128 },
19129 // pop the previously active lexer condition state off the condition stack
19130 popState: function popState() {
19131 var n = this.conditionStack.length - 1;
19132 if (n > 0) {
19133 return this.conditionStack.pop();
19134 } else {
19135 return this.conditionStack[0];
19136 }
19137 },
19138 // produce the lexer rule set which is active for the currently active lexer condition state
19139 _currentRules: function _currentRules() {
19140 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
19141 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
19142 } else {
19143 return this.conditions["INITIAL"].rules;
19144 }
19145 },
19146 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
19147 topState: function topState(n) {
19148 n = this.conditionStack.length - 1 - Math.abs(n || 0);
19149 if (n >= 0) {
19150 return this.conditionStack[n];
19151 } else {
19152 return "INITIAL";
19153 }
19154 },
19155 // alias for begin(condition)
19156 pushState: function pushState(condition) {
19157 this.begin(condition);
19158 },
19159 // return the number of states currently on the stack
19160 stateStackSize: function stateStackSize() {
19161 return this.conditionStack.length;
19162 },
19163 options: {},
19164 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
19165 switch ($avoiding_name_collisions) {
19166 case 0:
19167 this.begin("open_directive");
19168 return 12;
19169 case 1:
19170 this.begin("type_directive");
19171 return 13;
19172 case 2:
19173 this.popState();
19174 this.begin("arg_directive");
19175 return 10;
19176 case 3:
19177 this.popState();
19178 this.popState();
19179 return 15;
19180 case 4:
19181 return 14;
19182 case 5:
19183 this.begin("acc_title");
19184 return 44;
19185 case 6:
19186 this.popState();
19187 return "acc_title_value";
19188 case 7:
19189 this.begin("acc_descr");
19190 return 46;
19191 case 8:
19192 this.popState();
19193 return "acc_descr_value";
19194 case 9:
19195 this.begin("acc_descr_multiline");
19196 break;
19197 case 10:
19198 this.popState();
19199 break;
19200 case 11:
19201 return "acc_descr_multiline_value";
19202 case 12:
19203 this.begin("md_string");
19204 break;
19205 case 13:
19206 return "MD_STR";
19207 case 14:
19208 this.popState();
19209 break;
19210 case 15:
19211 this.begin("string");
19212 break;
19213 case 16:
19214 this.popState();
19215 break;
19216 case 17:
19217 return "STR";
19218 case 18:
19219 return 87;
19220 case 19:
19221 return 96;
19222 case 20:
19223 return 88;
19224 case 21:
19225 return 105;
19226 case 22:
19227 return 89;
19228 case 23:
19229 return 90;
19230 case 24:
19231 this.begin("href");
19232 break;
19233 case 25:
19234 this.popState();
19235 break;
19236 case 26:
19237 return 101;
19238 case 27:
19239 this.begin("callbackname");
19240 break;
19241 case 28:
19242 this.popState();
19243 break;
19244 case 29:
19245 this.popState();
19246 this.begin("callbackargs");
19247 break;
19248 case 30:
19249 return 99;
19250 case 31:
19251 this.popState();
19252 break;
19253 case 32:
19254 return 100;
19255 case 33:
19256 this.begin("click");
19257 break;
19258 case 34:
19259 this.popState();
19260 break;
19261 case 35:
19262 return 91;
19263 case 36:
19264 if (yy.lex.firstGraph()) {
19265 this.begin("dir");
19266 }
19267 return 24;
19268 case 37:
19269 if (yy.lex.firstGraph()) {
19270 this.begin("dir");
19271 }
19272 return 24;
19273 case 38:
19274 if (yy.lex.firstGraph()) {
19275 this.begin("dir");
19276 }
19277 return 24;
19278 case 39:
19279 return 38;
19280 case 40:
19281 return 42;
19282 case 41:
19283 return 102;
19284 case 42:
19285 return 102;
19286 case 43:
19287 return 102;
19288 case 44:
19289 return 102;
19290 case 45:
19291 this.popState();
19292 return 25;
19293 case 46:
19294 this.popState();
19295 return 26;
19296 case 47:
19297 this.popState();
19298 return 26;
19299 case 48:
19300 this.popState();
19301 return 26;
19302 case 49:
19303 this.popState();
19304 return 26;
19305 case 50:
19306 this.popState();
19307 return 26;
19308 case 51:
19309 this.popState();
19310 return 26;
19311 case 52:
19312 this.popState();
19313 return 26;
19314 case 53:
19315 this.popState();
19316 return 26;
19317 case 54:
19318 this.popState();
19319 return 26;
19320 case 55:
19321 this.popState();
19322 return 26;
19323 case 56:
19324 return 119;
19325 case 57:
19326 return 120;
19327 case 58:
19328 return 121;
19329 case 59:
19330 return 122;
19331 case 60:
19332 return 106;
19333 case 61:
19334 return 112;
19335 case 62:
19336 return 53;
19337 case 63:
19338 return 67;
19339 case 64:
19340 return 52;
19341 case 65:
19342 return 20;
19343 case 66:
19344 return 107;
19345 case 67:
19346 return 127;
19347 case 68:
19348 return 82;
19349 case 69:
19350 return 82;
19351 case 70:
19352 return 82;
19353 case 71:
19354 return 82;
19355 case 72:
19356 return 81;
19357 case 73:
19358 return 81;
19359 case 74:
19360 return 81;
19361 case 75:
19362 return 59;
19363 case 76:
19364 return 60;
19365 case 77:
19366 return 61;
19367 case 78:
19368 return 62;
19369 case 79:
19370 return 63;
19371 case 80:
19372 return 64;
19373 case 81:
19374 return 65;
19375 case 82:
19376 return 69;
19377 case 83:
19378 return 70;
19379 case 84:
19380 return 55;
19381 case 85:
19382 return 56;
19383 case 86:
19384 return 110;
19385 case 87:
19386 return 113;
19387 case 88:
19388 return 128;
19389 case 89:
19390 return 125;
19391 case 90:
19392 return 114;
19393 case 91:
19394 return 126;
19395 case 92:
19396 return 126;
19397 case 93:
19398 return 115;
19399 case 94:
19400 return 73;
19401 case 95:
19402 return 93;
19403 case 96:
19404 return "SEP";
19405 case 97:
19406 return 92;
19407 case 98:
19408 return 66;
19409 case 99:
19410 return 75;
19411 case 100:
19412 return 74;
19413 case 101:
19414 return 77;
19415 case 102:
19416 return 76;
19417 case 103:
19418 return 123;
19419 case 104:
19420 return 124;
19421 case 105:
19422 return 68;
19423 case 106:
19424 return 57;
19425 case 107:
19426 return 58;
19427 case 108:
19428 return 40;
19429 case 109:
19430 return 41;
19431 case 110:
19432 return 71;
19433 case 111:
19434 return 72;
19435 case 112:
19436 return 134;
19437 case 113:
19438 return 21;
19439 case 114:
19440 return 22;
19441 case 115:
19442 return 23;
19443 }
19444 },
19445 rules: [/^(?:%%\{)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:["][`])/, /^(?:[^`"]+)/, /^(?:[`]["])/, /^(?:["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:style\b)/, /^(?:default\b)/, /^(?:linkStyle\b)/, /^(?:interpolate\b)/, /^(?:classDef\b)/, /^(?:class\b)/, /^(?:href[\s]+["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:click[\s]+)/, /^(?:[\s\n])/, /^(?:[^\s\n]*)/, /^(?:flowchart-elk\b)/, /^(?:graph\b)/, /^(?:flowchart\b)/, /^(?:subgraph\b)/, /^(?:end\b\s*)/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:(\r?\n)*\s*\n)/, /^(?:\s*LR\b)/, /^(?:\s*RL\b)/, /^(?:\s*TB\b)/, /^(?:\s*BT\b)/, /^(?:\s*TD\b)/, /^(?:\s*BR\b)/, /^(?:\s*<)/, /^(?:\s*>)/, /^(?:\s*\^)/, /^(?:\s*v\b)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:[0-9]+)/, /^(?:#)/, /^(?::::)/, /^(?::)/, /^(?:&)/, /^(?:;)/, /^(?:,)/, /^(?:\*)/, /^(?:\s*[xo<]?--+[-xo>]\s*)/, /^(?:\s*[xo<]?==+[=xo>]\s*)/, /^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/, /^(?:\s*~~[\~]+\s*)/, /^(?:\s*[xo<]?--\s*)/, /^(?:\s*[xo<]?==\s*)/, /^(?:\s*[xo<]?-\.\s*)/, /^(?:\(-)/, /^(?:-\))/, /^(?:\(\[)/, /^(?:\]\))/, /^(?:\[\[)/, /^(?:\]\])/, /^(?:\[\|)/, /^(?:\[\()/, /^(?:\)\])/, /^(?:\(\(\()/, /^(?:\)\)\))/, /^(?:-)/, /^(?:\.)/, /^(?:[\_])/, /^(?:\+)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:<)/, /^(?:>)/, /^(?:\^)/, /^(?:\\\|)/, /^(?:v\b)/, /^(?:[A-Za-z]+)/, /^(?:\\\])/, /^(?:\[\/)/, /^(?:\/\])/, /^(?:\[\\)/, /^(?:[!"#$%&'*+,-.`?\\_/])/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\|)/, /^(?:\()/, /^(?:\))/, /^(?:\[)/, /^(?:\])/, /^(?:\{)/, /^(?:\})/, /^(?:")/, /^(?:(\r?\n)+)/, /^(?:\s)/, /^(?:$)/],
19446 conditions: { "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "callbackargs": { "rules": [31, 32], "inclusive": false }, "callbackname": { "rules": [28, 29, 30], "inclusive": false }, "href": { "rules": [25, 26], "inclusive": false }, "click": { "rules": [34, 35], "inclusive": false }, "vertex": { "rules": [], "inclusive": false }, "dir": { "rules": [45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55], "inclusive": false }, "acc_descr_multiline": { "rules": [10, 11], "inclusive": false }, "acc_descr": { "rules": [8], "inclusive": false }, "acc_title": { "rules": [6], "inclusive": false }, "md_string": { "rules": [13, 14], "inclusive": false }, "string": { "rules": [16, 17], "inclusive": false }, "INITIAL": { "rules": [0, 5, 7, 9, 12, 15, 18, 19, 20, 21, 22, 23, 24, 27, 33, 36, 37, 38, 39, 40, 41, 42, 43, 44, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115], "inclusive": true } }
19447 };
19448 return lexer2;
19449 }();
19450 parser2.lexer = lexer;
19451 function Parser() {
19452 this.yy = {};
19453 }
19454 Parser.prototype = parser2;
19455 parser2.Parser = Parser;
19456 return new Parser();
19457 }();
19458 parser$m.parser = parser$m;
19459 const parser$n = parser$m;
19460 const MERMAID_DOM_ID_PREFIX$1 = "flowchart-";
19461 let vertexCounter = 0;
19462 let config$1 = getConfig$1();
19463 let vertices = {};
19464 let edges = [];
19465 let classes$2 = {};
19466 let subGraphs = [];
19467 let subGraphLookup = {};
19468 let tooltips = {};
19469 let subCount = 0;
19470 let firstGraphFlag = true;
19471 let direction$3;
19472 let version;
19473 let funs$1 = [];
19474 const sanitizeText$3 = (txt) => common$1.sanitizeText(txt, config$1);
19475 const parseDirective$b = function(statement, context, type2) {
19476 mermaidAPI.parseDirective(this, statement, context, type2);
19477 };
19478 const lookUpDomId$1 = function(id2) {
19479 const veritceKeys = Object.keys(vertices);
19480 for (const veritceKey of veritceKeys) {
19481 if (vertices[veritceKey].id === id2) {
19482 return vertices[veritceKey].domId;
19483 }
19484 }
19485 return id2;
19486 };
19487 const addVertex = function(_id, textObj, type2, style, classes2, dir, props = {}) {
19488 let txt;
19489 let id2 = _id;
19490 if (id2 === void 0) {
19491 return;
19492 }
19493 if (id2.trim().length === 0) {
19494 return;
19495 }
19496 if (vertices[id2] === void 0) {
19497 vertices[id2] = {
19498 id: id2,
19499 labelType: "text",
19500 domId: MERMAID_DOM_ID_PREFIX$1 + id2 + "-" + vertexCounter,
19501 styles: [],
19502 classes: []
19503 };
19504 }
19505 vertexCounter++;
19506 if (textObj !== void 0) {
19507 config$1 = getConfig$1();
19508 txt = sanitizeText$3(textObj.text.trim());
19509 vertices[id2].labelType = textObj.type;
19510 if (txt[0] === '"' && txt[txt.length - 1] === '"') {
19511 txt = txt.substring(1, txt.length - 1);
19512 }
19513 vertices[id2].text = txt;
19514 } else {
19515 if (vertices[id2].text === void 0) {
19516 vertices[id2].text = _id;
19517 }
19518 }
19519 if (type2 !== void 0) {
19520 vertices[id2].type = type2;
19521 }
19522 if (style !== void 0 && style !== null) {
19523 style.forEach(function(s) {
19524 vertices[id2].styles.push(s);
19525 });
19526 }
19527 if (classes2 !== void 0 && classes2 !== null) {
19528 classes2.forEach(function(s) {
19529 vertices[id2].classes.push(s);
19530 });
19531 }
19532 if (dir !== void 0) {
19533 vertices[id2].dir = dir;
19534 }
19535 if (vertices[id2].props === void 0) {
19536 vertices[id2].props = props;
19537 } else if (props !== void 0) {
19538 Object.assign(vertices[id2].props, props);
19539 }
19540 };
19541 const addSingleLink = function(_start, _end, type2) {
19542 let start2 = _start;
19543 let end2 = _end;
19544 const edge = { start: start2, end: end2, type: void 0, text: "", labelType: "text" };
19545 log$1.info("abc78 Got edge...", edge);
19546 const linkTextObj = type2.text;
19547 if (linkTextObj !== void 0) {
19548 edge.text = sanitizeText$3(linkTextObj.text.trim());
19549 if (edge.text[0] === '"' && edge.text[edge.text.length - 1] === '"') {
19550 edge.text = edge.text.substring(1, edge.text.length - 1);
19551 }
19552 edge.labelType = linkTextObj.type;
19553 }
19554 if (type2 !== void 0) {
19555 edge.type = type2.type;
19556 edge.stroke = type2.stroke;
19557 edge.length = type2.length;
19558 }
19559 edges.push(edge);
19560 };
19561 const addLink = function(_start, _end, type2) {
19562 log$1.info("addLink (abc78)", _start, _end, type2);
19563 let i2, j;
19564 for (i2 = 0; i2 < _start.length; i2++) {
19565 for (j = 0; j < _end.length; j++) {
19566 addSingleLink(_start[i2], _end[j], type2);
19567 }
19568 }
19569 };
19570 const updateLinkInterpolate = function(positions, interp) {
19571 positions.forEach(function(pos) {
19572 if (pos === "default") {
19573 edges.defaultInterpolate = interp;
19574 } else {
19575 edges[pos].interpolate = interp;
19576 }
19577 });
19578 };
19579 const updateLink = function(positions, style) {
19580 positions.forEach(function(pos) {
19581 if (pos === "default") {
19582 edges.defaultStyle = style;
19583 } else {
19584 if (utils.isSubstringInArray("fill", style) === -1) {
19585 style.push("fill:none");
19586 }
19587 edges[pos].style = style;
19588 }
19589 });
19590 };
19591 const addClass$1 = function(id2, style) {
19592 if (classes$2[id2] === void 0) {
19593 classes$2[id2] = { id: id2, styles: [], textStyles: [] };
19594 }
19595 if (style !== void 0 && style !== null) {
19596 style.forEach(function(s) {
19597 if (s.match("color")) {
19598 const newStyle1 = s.replace("fill", "bgFill");
19599 const newStyle2 = newStyle1.replace("color", "fill");
19600 classes$2[id2].textStyles.push(newStyle2);
19601 }
19602 classes$2[id2].styles.push(s);
19603 });
19604 }
19605 };
19606 const setDirection$3 = function(dir) {
19607 direction$3 = dir;
19608 if (direction$3.match(/.*</)) {
19609 direction$3 = "RL";
19610 }
19611 if (direction$3.match(/.*\^/)) {
19612 direction$3 = "BT";
19613 }
19614 if (direction$3.match(/.*>/)) {
19615 direction$3 = "LR";
19616 }
19617 if (direction$3.match(/.*v/)) {
19618 direction$3 = "TB";
19619 }
19620 if (direction$3 === "TD") {
19621 direction$3 = "TB";
19622 }
19623 };
19624 const setClass$1 = function(ids, className) {
19625 ids.split(",").forEach(function(_id) {
19626 let id2 = _id;
19627 if (vertices[id2] !== void 0) {
19628 vertices[id2].classes.push(className);
19629 }
19630 if (subGraphLookup[id2] !== void 0) {
19631 subGraphLookup[id2].classes.push(className);
19632 }
19633 });
19634 };
19635 const setTooltip$1 = function(ids, tooltip) {
19636 ids.split(",").forEach(function(id2) {
19637 if (tooltip !== void 0) {
19638 tooltips[version === "gen-1" ? lookUpDomId$1(id2) : id2] = sanitizeText$3(tooltip);
19639 }
19640 });
19641 };
19642 const setClickFun$1 = function(id2, functionName, functionArgs) {
19643 let domId = lookUpDomId$1(id2);
19644 if (getConfig$1().securityLevel !== "loose") {
19645 return;
19646 }
19647 if (functionName === void 0) {
19648 return;
19649 }
19650 let argList = [];
19651 if (typeof functionArgs === "string") {
19652 argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
19653 for (let i2 = 0; i2 < argList.length; i2++) {
19654 let item = argList[i2].trim();
19655 if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
19656 item = item.substr(1, item.length - 2);
19657 }
19658 argList[i2] = item;
19659 }
19660 }
19661 if (argList.length === 0) {
19662 argList.push(id2);
19663 }
19664 if (vertices[id2] !== void 0) {
19665 vertices[id2].haveCallback = true;
19666 funs$1.push(function() {
19667 const elem = document.querySelector(`[id="${domId}"]`);
19668 if (elem !== null) {
19669 elem.addEventListener(
19670 "click",
19671 function() {
19672 utils.runFunc(functionName, ...argList);
19673 },
19674 false
19675 );
19676 }
19677 });
19678 }
19679 };
19680 const setLink$2 = function(ids, linkStr, target) {
19681 ids.split(",").forEach(function(id2) {
19682 if (vertices[id2] !== void 0) {
19683 vertices[id2].link = utils.formatUrl(linkStr, config$1);
19684 vertices[id2].linkTarget = target;
19685 }
19686 });
19687 setClass$1(ids, "clickable");
19688 };
19689 const getTooltip$1 = function(id2) {
19690 return tooltips[id2];
19691 };
19692 const setClickEvent$2 = function(ids, functionName, functionArgs) {
19693 ids.split(",").forEach(function(id2) {
19694 setClickFun$1(id2, functionName, functionArgs);
19695 });
19696 setClass$1(ids, "clickable");
19697 };
19698 const bindFunctions$2 = function(element2) {
19699 funs$1.forEach(function(fun) {
19700 fun(element2);
19701 });
19702 };
19703 const getDirection$3 = function() {
19704 return direction$3.trim();
19705 };
19706 const getVertices = function() {
19707 return vertices;
19708 };
19709 const getEdges = function() {
19710 return edges;
19711 };
19712 const getClasses$6 = function() {
19713 return classes$2;
19714 };
19715 const setupToolTips$1 = function(element2) {
19716 let tooltipElem = select(".mermaidTooltip");
19717 if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
19718 tooltipElem = select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0);
19719 }
19720 const svg2 = select(element2).select("svg");
19721 const nodes2 = svg2.selectAll("g.node");
19722 nodes2.on("mouseover", function() {
19723 const el = select(this);
19724 const title2 = el.attr("title");
19725 if (title2 === null) {
19726 return;
19727 }
19728 const rect2 = this.getBoundingClientRect();
19729 tooltipElem.transition().duration(200).style("opacity", ".9");
19730 tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect2.left + (rect2.right - rect2.left) / 2 + "px").style("top", window.scrollY + rect2.top - 14 + document.body.scrollTop + "px");
19731 tooltipElem.html(tooltipElem.html().replace(/&lt;br\/&gt;/g, "<br/>"));
19732 el.classed("hover", true);
19733 }).on("mouseout", function() {
19734 tooltipElem.transition().duration(500).style("opacity", 0);
19735 const el = select(this);
19736 el.classed("hover", false);
19737 });
19738 };
19739 funs$1.push(setupToolTips$1);
19740 const clear$h = function(ver = "gen-1") {
19741 vertices = {};
19742 classes$2 = {};
19743 edges = [];
19744 funs$1 = [setupToolTips$1];
19745 subGraphs = [];
19746 subGraphLookup = {};
19747 subCount = 0;
19748 tooltips = [];
19749 firstGraphFlag = true;
19750 version = ver;
19751 clear$j();
19752 };
19753 const setGen = (ver) => {
19754 version = ver || "gen-2";
19755 };
19756 const defaultStyle = function() {
19757 return "fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;";
19758 };
19759 const addSubGraph = function(_id, list2, _title) {
19760 let id2 = _id.text.trim();
19761 let title2 = _title.text;
19762 if (_id === _title && _title.text.match(/\s/)) {
19763 id2 = void 0;
19764 }
19765 function uniq(a) {
19766 const prims = { boolean: {}, number: {}, string: {} };
19767 const objs = [];
19768 let dir2;
19769 const nodeList2 = a.filter(function(item) {
19770 const type2 = typeof item;
19771 if (item.stmt && item.stmt === "dir") {
19772 dir2 = item.value;
19773 return false;
19774 }
19775 if (item.trim() === "") {
19776 return false;
19777 }
19778 if (type2 in prims) {
19779 return prims[type2].hasOwnProperty(item) ? false : prims[type2][item] = true;
19780 } else {
19781 return objs.includes(item) ? false : objs.push(item);
19782 }
19783 });
19784 return { nodeList: nodeList2, dir: dir2 };
19785 }
19786 let nodeList = [];
19787 const { nodeList: nl, dir } = uniq(nodeList.concat.apply(nodeList, list2));
19788 nodeList = nl;
19789 if (version === "gen-1") {
19790 for (let i2 = 0; i2 < nodeList.length; i2++) {
19791 nodeList[i2] = lookUpDomId$1(nodeList[i2]);
19792 }
19793 }
19794 id2 = id2 || "subGraph" + subCount;
19795 title2 = title2 || "";
19796 title2 = sanitizeText$3(title2);
19797 subCount = subCount + 1;
19798 const subGraph = {
19799 id: id2,
19800 nodes: nodeList,
19801 title: title2.trim(),
19802 classes: [],
19803 dir,
19804 labelType: _title.type
19805 };
19806 log$1.info("Adding", subGraph.id, subGraph.nodes, subGraph.dir);
19807 subGraph.nodes = makeUniq(subGraph, subGraphs).nodes;
19808 subGraphs.push(subGraph);
19809 subGraphLookup[id2] = subGraph;
19810 return id2;
19811 };
19812 const getPosForId = function(id2) {
19813 for (const [i2, subGraph] of subGraphs.entries()) {
19814 if (subGraph.id === id2) {
19815 return i2;
19816 }
19817 }
19818 return -1;
19819 };
19820 let secCount = -1;
19821 const posCrossRef = [];
19822 const indexNodes2 = function(id2, pos) {
19823 const nodes2 = subGraphs[pos].nodes;
19824 secCount = secCount + 1;
19825 if (secCount > 2e3) {
19826 return;
19827 }
19828 posCrossRef[secCount] = pos;
19829 if (subGraphs[pos].id === id2) {
19830 return {
19831 result: true,
19832 count: 0
19833 };
19834 }
19835 let count = 0;
19836 let posCount = 1;
19837 while (count < nodes2.length) {
19838 const childPos = getPosForId(nodes2[count]);
19839 if (childPos >= 0) {
19840 const res = indexNodes2(id2, childPos);
19841 if (res.result) {
19842 return {
19843 result: true,
19844 count: posCount + res.count
19845 };
19846 } else {
19847 posCount = posCount + res.count;
19848 }
19849 }
19850 count = count + 1;
19851 }
19852 return {
19853 result: false,
19854 count: posCount
19855 };
19856 };
19857 const getDepthFirstPos = function(pos) {
19858 return posCrossRef[pos];
19859 };
19860 const indexNodes = function() {
19861 secCount = -1;
19862 if (subGraphs.length > 0) {
19863 indexNodes2("none", subGraphs.length - 1);
19864 }
19865 };
19866 const getSubGraphs = function() {
19867 return subGraphs;
19868 };
19869 const firstGraph = () => {
19870 if (firstGraphFlag) {
19871 firstGraphFlag = false;
19872 return true;
19873 }
19874 return false;
19875 };
19876 const destructStartLink = (_str) => {
19877 let str2 = _str.trim();
19878 let type2 = "arrow_open";
19879 switch (str2[0]) {
19880 case "<":
19881 type2 = "arrow_point";
19882 str2 = str2.slice(1);
19883 break;
19884 case "x":
19885 type2 = "arrow_cross";
19886 str2 = str2.slice(1);
19887 break;
19888 case "o":
19889 type2 = "arrow_circle";
19890 str2 = str2.slice(1);
19891 break;
19892 }
19893 let stroke = "normal";
19894 if (str2.includes("=")) {
19895 stroke = "thick";
19896 }
19897 if (str2.includes(".")) {
19898 stroke = "dotted";
19899 }
19900 return { type: type2, stroke };
19901 };
19902 const countChar = (char2, str2) => {
19903 const length2 = str2.length;
19904 let count = 0;
19905 for (let i2 = 0; i2 < length2; ++i2) {
19906 if (str2[i2] === char2) {
19907 ++count;
19908 }
19909 }
19910 return count;
19911 };
19912 const destructEndLink = (_str) => {
19913 const str2 = _str.trim();
19914 let line2 = str2.slice(0, -1);
19915 let type2 = "arrow_open";
19916 switch (str2.slice(-1)) {
19917 case "x":
19918 type2 = "arrow_cross";
19919 if (str2[0] === "x") {
19920 type2 = "double_" + type2;
19921 line2 = line2.slice(1);
19922 }
19923 break;
19924 case ">":
19925 type2 = "arrow_point";
19926 if (str2[0] === "<") {
19927 type2 = "double_" + type2;
19928 line2 = line2.slice(1);
19929 }
19930 break;
19931 case "o":
19932 type2 = "arrow_circle";
19933 if (str2[0] === "o") {
19934 type2 = "double_" + type2;
19935 line2 = line2.slice(1);
19936 }
19937 break;
19938 }
19939 let stroke = "normal";
19940 let length2 = line2.length - 1;
19941 if (line2[0] === "=") {
19942 stroke = "thick";
19943 }
19944 if (line2[0] === "~") {
19945 stroke = "invisible";
19946 }
19947 let dots = countChar(".", line2);
19948 if (dots) {
19949 stroke = "dotted";
19950 length2 = dots;
19951 }
19952 return { type: type2, stroke, length: length2 };
19953 };
19954 const destructLink = (_str, _startStr) => {
19955 const info2 = destructEndLink(_str);
19956 let startInfo;
19957 if (_startStr) {
19958 startInfo = destructStartLink(_startStr);
19959 if (startInfo.stroke !== info2.stroke) {
19960 return { type: "INVALID", stroke: "INVALID" };
19961 }
19962 if (startInfo.type === "arrow_open") {
19963 startInfo.type = info2.type;
19964 } else {
19965 if (startInfo.type !== info2.type) {
19966 return { type: "INVALID", stroke: "INVALID" };
19967 }
19968 startInfo.type = "double_" + startInfo.type;
19969 }
19970 if (startInfo.type === "double_arrow") {
19971 startInfo.type = "double_arrow_point";
19972 }
19973 startInfo.length = info2.length;
19974 return startInfo;
19975 }
19976 return info2;
19977 };
19978 const exists = (allSgs, _id) => {
19979 let res = false;
19980 allSgs.forEach((sg) => {
19981 const pos = sg.nodes.indexOf(_id);
19982 if (pos >= 0) {
19983 res = true;
19984 }
19985 });
19986 return res;
19987 };
19988 const makeUniq = (sg, allSubgraphs) => {
19989 const res = [];
19990 sg.nodes.forEach((_id, pos) => {
19991 if (!exists(allSubgraphs, _id)) {
19992 res.push(sg.nodes[pos]);
19993 }
19994 });
19995 return { nodes: res };
19996 };
19997 const lex = {
19998 firstGraph
19999 };
20000 const flowDb = {
20001 parseDirective: parseDirective$b,
20002 defaultConfig: () => defaultConfig.flowchart,
20003 setAccTitle,
20004 getAccTitle,
20005 getAccDescription,
20006 setAccDescription,
20007 addVertex,
20008 lookUpDomId: lookUpDomId$1,
20009 addLink,
20010 updateLinkInterpolate,
20011 updateLink,
20012 addClass: addClass$1,
20013 setDirection: setDirection$3,
20014 setClass: setClass$1,
20015 setTooltip: setTooltip$1,
20016 getTooltip: getTooltip$1,
20017 setClickEvent: setClickEvent$2,
20018 setLink: setLink$2,
20019 bindFunctions: bindFunctions$2,
20020 getDirection: getDirection$3,
20021 getVertices,
20022 getEdges,
20023 getClasses: getClasses$6,
20024 clear: clear$h,
20025 setGen,
20026 defaultStyle,
20027 addSubGraph,
20028 getDepthFirstPos,
20029 indexNodes,
20030 getSubGraphs,
20031 destructLink,
20032 lex,
20033 exists,
20034 makeUniq,
20035 setDiagramTitle,
20036 getDiagramTitle
20037 };
20038 const db$9 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
20039 __proto__: null,
20040 addClass: addClass$1,
20041 addLink,
20042 addSingleLink,
20043 addSubGraph,
20044 addVertex,
20045 bindFunctions: bindFunctions$2,
20046 clear: clear$h,
20047 default: flowDb,
20048 defaultStyle,
20049 destructLink,
20050 firstGraph,
20051 getClasses: getClasses$6,
20052 getDepthFirstPos,
20053 getDirection: getDirection$3,
20054 getEdges,
20055 getSubGraphs,
20056 getTooltip: getTooltip$1,
20057 getVertices,
20058 indexNodes,
20059 lex,
20060 lookUpDomId: lookUpDomId$1,
20061 parseDirective: parseDirective$b,
20062 setClass: setClass$1,
20063 setClickEvent: setClickEvent$2,
20064 setDirection: setDirection$3,
20065 setGen,
20066 setLink: setLink$2,
20067 updateLink,
20068 updateLinkInterpolate
20069 }, Symbol.toStringTag, { value: "Module" }));
20070 var symbolTag$3 = "[object Symbol]";
20071 function isSymbol(value) {
20072 return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag$3;
20073 }
20074 function arrayMap(array2, iteratee) {
20075 var index2 = -1, length2 = array2 == null ? 0 : array2.length, result = Array(length2);
20076 while (++index2 < length2) {
20077 result[index2] = iteratee(array2[index2], index2, array2);
20078 }
20079 return result;
20080 }
20081 var INFINITY$3 = 1 / 0;
20082 var symbolProto$2 = Symbol$2 ? Symbol$2.prototype : void 0, symbolToString = symbolProto$2 ? symbolProto$2.toString : void 0;
20083 function baseToString(value) {
20084 if (typeof value == "string") {
20085 return value;
20086 }
20087 if (isArray$1(value)) {
20088 return arrayMap(value, baseToString) + "";
20089 }
20090 if (isSymbol(value)) {
20091 return symbolToString ? symbolToString.call(value) : "";
20092 }
20093 var result = value + "";
20094 return result == "0" && 1 / value == -INFINITY$3 ? "-0" : result;
20095 }
20096 var reWhitespace = /\s/;
20097 function trimmedEndIndex(string2) {
20098 var index2 = string2.length;
20099 while (index2-- && reWhitespace.test(string2.charAt(index2))) {
20100 }
20101 return index2;
20102 }
20103 var reTrimStart = /^\s+/;
20104 function baseTrim(string2) {
20105 return string2 ? string2.slice(0, trimmedEndIndex(string2) + 1).replace(reTrimStart, "") : string2;
20106 }
20107 var NAN = 0 / 0;
20108 var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
20109 var reIsBinary = /^0b[01]+$/i;
20110 var reIsOctal = /^0o[0-7]+$/i;
20111 var freeParseInt = parseInt;
20112 function toNumber(value) {
20113 if (typeof value == "number") {
20114 return value;
20115 }
20116 if (isSymbol(value)) {
20117 return NAN;
20118 }
20119 if (isObject(value)) {
20120 var other = typeof value.valueOf == "function" ? value.valueOf() : value;
20121 value = isObject(other) ? other + "" : other;
20122 }
20123 if (typeof value != "string") {
20124 return value === 0 ? value : +value;
20125 }
20126 value = baseTrim(value);
20127 var isBinary2 = reIsBinary.test(value);
20128 return isBinary2 || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary2 ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
20129 }
20130 var INFINITY$2 = 1 / 0, MAX_INTEGER = 17976931348623157e292;
20131 function toFinite(value) {
20132 if (!value) {
20133 return value === 0 ? value : 0;
20134 }
20135 value = toNumber(value);
20136 if (value === INFINITY$2 || value === -INFINITY$2) {
20137 var sign2 = value < 0 ? -1 : 1;
20138 return sign2 * MAX_INTEGER;
20139 }
20140 return value === value ? value : 0;
20141 }
20142 function toInteger(value) {
20143 var result = toFinite(value), remainder = result % 1;
20144 return result === result ? remainder ? result - remainder : result : 0;
20145 }
20146 function identity(value) {
20147 return value;
20148 }
20149 var objectCreate = Object.create;
20150 var baseCreate = function() {
20151 function object2() {
20152 }
20153 return function(proto2) {
20154 if (!isObject(proto2)) {
20155 return {};
20156 }
20157 if (objectCreate) {
20158 return objectCreate(proto2);
20159 }
20160 object2.prototype = proto2;
20161 var result = new object2();
20162 object2.prototype = void 0;
20163 return result;
20164 };
20165 }();
20166 const baseCreate$1 = baseCreate;
20167 function apply$1(func, thisArg, args) {
20168 switch (args.length) {
20169 case 0:
20170 return func.call(thisArg);
20171 case 1:
20172 return func.call(thisArg, args[0]);
20173 case 2:
20174 return func.call(thisArg, args[0], args[1]);
20175 case 3:
20176 return func.call(thisArg, args[0], args[1], args[2]);
20177 }
20178 return func.apply(thisArg, args);
20179 }
20180 function noop() {
20181 }
20182 function copyArray(source, array2) {
20183 var index2 = -1, length2 = source.length;
20184 array2 || (array2 = Array(length2));
20185 while (++index2 < length2) {
20186 array2[index2] = source[index2];
20187 }
20188 return array2;
20189 }
20190 var HOT_COUNT = 800, HOT_SPAN = 16;
20191 var nativeNow = Date.now;
20192 function shortOut(func) {
20193 var count = 0, lastCalled = 0;
20194 return function() {
20195 var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled);
20196 lastCalled = stamp;
20197 if (remaining > 0) {
20198 if (++count >= HOT_COUNT) {
20199 return arguments[0];
20200 }
20201 } else {
20202 count = 0;
20203 }
20204 return func.apply(void 0, arguments);
20205 };
20206 }
20207 function constant(value) {
20208 return function() {
20209 return value;
20210 };
20211 }
20212 var defineProperty = function() {
20213 try {
20214 var func = getNative(Object, "defineProperty");
20215 func({}, "", {});
20216 return func;
20217 } catch (e) {
20218 }
20219 }();
20220 const defineProperty$1 = defineProperty;
20221 var baseSetToString = !defineProperty$1 ? identity : function(func, string2) {
20222 return defineProperty$1(func, "toString", {
20223 "configurable": true,
20224 "enumerable": false,
20225 "value": constant(string2),
20226 "writable": true
20227 });
20228 };
20229 const baseSetToString$1 = baseSetToString;
20230 var setToString = shortOut(baseSetToString$1);
20231 const setToString$1 = setToString;
20232 function arrayEach(array2, iteratee) {
20233 var index2 = -1, length2 = array2 == null ? 0 : array2.length;
20234 while (++index2 < length2) {
20235 if (iteratee(array2[index2], index2, array2) === false) {
20236 break;
20237 }
20238 }
20239 return array2;
20240 }
20241 function baseFindIndex(array2, predicate, fromIndex, fromRight) {
20242 var length2 = array2.length, index2 = fromIndex + (fromRight ? 1 : -1);
20243 while (fromRight ? index2-- : ++index2 < length2) {
20244 if (predicate(array2[index2], index2, array2)) {
20245 return index2;
20246 }
20247 }
20248 return -1;
20249 }
20250 function baseIsNaN(value) {
20251 return value !== value;
20252 }
20253 function strictIndexOf(array2, value, fromIndex) {
20254 var index2 = fromIndex - 1, length2 = array2.length;
20255 while (++index2 < length2) {
20256 if (array2[index2] === value) {
20257 return index2;
20258 }
20259 }
20260 return -1;
20261 }
20262 function baseIndexOf(array2, value, fromIndex) {
20263 return value === value ? strictIndexOf(array2, value, fromIndex) : baseFindIndex(array2, baseIsNaN, fromIndex);
20264 }
20265 function arrayIncludes(array2, value) {
20266 var length2 = array2 == null ? 0 : array2.length;
20267 return !!length2 && baseIndexOf(array2, value, 0) > -1;
20268 }
20269 var MAX_SAFE_INTEGER = 9007199254740991;
20270 var reIsUint = /^(?:0|[1-9]\d*)$/;
20271 function isIndex(value, length2) {
20272 var type2 = typeof value;
20273 length2 = length2 == null ? MAX_SAFE_INTEGER : length2;
20274 return !!length2 && (type2 == "number" || type2 != "symbol" && reIsUint.test(value)) && (value > -1 && value % 1 == 0 && value < length2);
20275 }
20276 function baseAssignValue(object2, key, value) {
20277 if (key == "__proto__" && defineProperty$1) {
20278 defineProperty$1(object2, key, {
20279 "configurable": true,
20280 "enumerable": true,
20281 "value": value,
20282 "writable": true
20283 });
20284 } else {
20285 object2[key] = value;
20286 }
20287 }
20288 var objectProto$9 = Object.prototype;
20289 var hasOwnProperty$9 = objectProto$9.hasOwnProperty;
20290 function assignValue(object2, key, value) {
20291 var objValue = object2[key];
20292 if (!(hasOwnProperty$9.call(object2, key) && eq(objValue, value)) || value === void 0 && !(key in object2)) {
20293 baseAssignValue(object2, key, value);
20294 }
20295 }
20296 function copyObject(source, props, object2, customizer) {
20297 var isNew = !object2;
20298 object2 || (object2 = {});
20299 var index2 = -1, length2 = props.length;
20300 while (++index2 < length2) {
20301 var key = props[index2];
20302 var newValue = customizer ? customizer(object2[key], source[key], key, object2, source) : void 0;
20303 if (newValue === void 0) {
20304 newValue = source[key];
20305 }
20306 if (isNew) {
20307 baseAssignValue(object2, key, newValue);
20308 } else {
20309 assignValue(object2, key, newValue);
20310 }
20311 }
20312 return object2;
20313 }
20314 var nativeMax$2 = Math.max;
20315 function overRest(func, start2, transform) {
20316 start2 = nativeMax$2(start2 === void 0 ? func.length - 1 : start2, 0);
20317 return function() {
20318 var args = arguments, index2 = -1, length2 = nativeMax$2(args.length - start2, 0), array2 = Array(length2);
20319 while (++index2 < length2) {
20320 array2[index2] = args[start2 + index2];
20321 }
20322 index2 = -1;
20323 var otherArgs = Array(start2 + 1);
20324 while (++index2 < start2) {
20325 otherArgs[index2] = args[index2];
20326 }
20327 otherArgs[start2] = transform(array2);
20328 return apply$1(func, this, otherArgs);
20329 };
20330 }
20331 function baseRest(func, start2) {
20332 return setToString$1(overRest(func, start2, identity), func + "");
20333 }
20334 function isIterateeCall(value, index2, object2) {
20335 if (!isObject(object2)) {
20336 return false;
20337 }
20338 var type2 = typeof index2;
20339 if (type2 == "number" ? isArrayLike(object2) && isIndex(index2, object2.length) : type2 == "string" && index2 in object2) {
20340 return eq(object2[index2], value);
20341 }
20342 return false;
20343 }
20344 function createAssigner(assigner) {
20345 return baseRest(function(object2, sources) {
20346 var index2 = -1, length2 = sources.length, customizer = length2 > 1 ? sources[length2 - 1] : void 0, guard = length2 > 2 ? sources[2] : void 0;
20347 customizer = assigner.length > 3 && typeof customizer == "function" ? (length2--, customizer) : void 0;
20348 if (guard && isIterateeCall(sources[0], sources[1], guard)) {
20349 customizer = length2 < 3 ? void 0 : customizer;
20350 length2 = 1;
20351 }
20352 object2 = Object(object2);
20353 while (++index2 < length2) {
20354 var source = sources[index2];
20355 if (source) {
20356 assigner(object2, source, index2, customizer);
20357 }
20358 }
20359 return object2;
20360 });
20361 }
20362 function baseTimes(n, iteratee) {
20363 var index2 = -1, result = Array(n);
20364 while (++index2 < n) {
20365 result[index2] = iteratee(index2);
20366 }
20367 return result;
20368 }
20369 var objectProto$8 = Object.prototype;
20370 var hasOwnProperty$8 = objectProto$8.hasOwnProperty;
20371 function arrayLikeKeys(value, inherited) {
20372 var isArr = isArray$1(value), isArg = !isArr && isArguments$1(value), isBuff = !isArr && !isArg && isBuffer$1(value), isType = !isArr && !isArg && !isBuff && isTypedArray$1(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length2 = result.length;
20373 for (var key in value) {
20374 if ((inherited || hasOwnProperty$8.call(value, key)) && !(skipIndexes && // Safari 9 has enumerable `arguments.length` in strict mode.
20375 (key == "length" || // Node.js 0.10 has enumerable non-index properties on buffers.
20376 isBuff && (key == "offset" || key == "parent") || // PhantomJS 2 has enumerable non-index properties on typed arrays.
20377 isType && (key == "buffer" || key == "byteLength" || key == "byteOffset") || // Skip index properties.
20378 isIndex(key, length2)))) {
20379 result.push(key);
20380 }
20381 }
20382 return result;
20383 }
20384 function keys$1(object2) {
20385 return isArrayLike(object2) ? arrayLikeKeys(object2) : baseKeys(object2);
20386 }
20387 function nativeKeysIn(object2) {
20388 var result = [];
20389 if (object2 != null) {
20390 for (var key in Object(object2)) {
20391 result.push(key);
20392 }
20393 }
20394 return result;
20395 }
20396 var objectProto$7 = Object.prototype;
20397 var hasOwnProperty$7 = objectProto$7.hasOwnProperty;
20398 function baseKeysIn(object2) {
20399 if (!isObject(object2)) {
20400 return nativeKeysIn(object2);
20401 }
20402 var isProto = isPrototype(object2), result = [];
20403 for (var key in object2) {
20404 if (!(key == "constructor" && (isProto || !hasOwnProperty$7.call(object2, key)))) {
20405 result.push(key);
20406 }
20407 }
20408 return result;
20409 }
20410 function keysIn(object2) {
20411 return isArrayLike(object2) ? arrayLikeKeys(object2, true) : baseKeysIn(object2);
20412 }
20413 var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/;
20414 function isKey(value, object2) {
20415 if (isArray$1(value)) {
20416 return false;
20417 }
20418 var type2 = typeof value;
20419 if (type2 == "number" || type2 == "symbol" || type2 == "boolean" || value == null || isSymbol(value)) {
20420 return true;
20421 }
20422 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || object2 != null && value in Object(object2);
20423 }
20424 var MAX_MEMOIZE_SIZE = 500;
20425 function memoizeCapped(func) {
20426 var result = memoize(func, function(key) {
20427 if (cache.size === MAX_MEMOIZE_SIZE) {
20428 cache.clear();
20429 }
20430 return key;
20431 });
20432 var cache = result.cache;
20433 return result;
20434 }
20435 var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
20436 var reEscapeChar = /\\(\\)?/g;
20437 var stringToPath = memoizeCapped(function(string2) {
20438 var result = [];
20439 if (string2.charCodeAt(0) === 46) {
20440 result.push("");
20441 }
20442 string2.replace(rePropName, function(match, number2, quote, subString) {
20443 result.push(quote ? subString.replace(reEscapeChar, "$1") : number2 || match);
20444 });
20445 return result;
20446 });
20447 const stringToPath$1 = stringToPath;
20448 function toString$1(value) {
20449 return value == null ? "" : baseToString(value);
20450 }
20451 function castPath(value, object2) {
20452 if (isArray$1(value)) {
20453 return value;
20454 }
20455 return isKey(value, object2) ? [value] : stringToPath$1(toString$1(value));
20456 }
20457 var INFINITY$1 = 1 / 0;
20458 function toKey(value) {
20459 if (typeof value == "string" || isSymbol(value)) {
20460 return value;
20461 }
20462 var result = value + "";
20463 return result == "0" && 1 / value == -INFINITY$1 ? "-0" : result;
20464 }
20465 function baseGet(object2, path2) {
20466 path2 = castPath(path2, object2);
20467 var index2 = 0, length2 = path2.length;
20468 while (object2 != null && index2 < length2) {
20469 object2 = object2[toKey(path2[index2++])];
20470 }
20471 return index2 && index2 == length2 ? object2 : void 0;
20472 }
20473 function get$1(object2, path2, defaultValue) {
20474 var result = object2 == null ? void 0 : baseGet(object2, path2);
20475 return result === void 0 ? defaultValue : result;
20476 }
20477 function arrayPush(array2, values2) {
20478 var index2 = -1, length2 = values2.length, offset = array2.length;
20479 while (++index2 < length2) {
20480 array2[offset + index2] = values2[index2];
20481 }
20482 return array2;
20483 }
20484 var spreadableSymbol = Symbol$2 ? Symbol$2.isConcatSpreadable : void 0;
20485 function isFlattenable(value) {
20486 return isArray$1(value) || isArguments$1(value) || !!(spreadableSymbol && value && value[spreadableSymbol]);
20487 }
20488 function baseFlatten(array2, depth, predicate, isStrict, result) {
20489 var index2 = -1, length2 = array2.length;
20490 predicate || (predicate = isFlattenable);
20491 result || (result = []);
20492 while (++index2 < length2) {
20493 var value = array2[index2];
20494 if (depth > 0 && predicate(value)) {
20495 if (depth > 1) {
20496 baseFlatten(value, depth - 1, predicate, isStrict, result);
20497 } else {
20498 arrayPush(result, value);
20499 }
20500 } else if (!isStrict) {
20501 result[result.length] = value;
20502 }
20503 }
20504 return result;
20505 }
20506 function flatten(array2) {
20507 var length2 = array2 == null ? 0 : array2.length;
20508 return length2 ? baseFlatten(array2, 1) : [];
20509 }
20510 function flatRest(func) {
20511 return setToString$1(overRest(func, void 0, flatten), func + "");
20512 }
20513 var getPrototype = overArg(Object.getPrototypeOf, Object);
20514 const getPrototype$1 = getPrototype;
20515 var objectTag$2 = "[object Object]";
20516 var funcProto = Function.prototype, objectProto$6 = Object.prototype;
20517 var funcToString = funcProto.toString;
20518 var hasOwnProperty$6 = objectProto$6.hasOwnProperty;
20519 var objectCtorString = funcToString.call(Object);
20520 function isPlainObject(value) {
20521 if (!isObjectLike(value) || baseGetTag(value) != objectTag$2) {
20522 return false;
20523 }
20524 var proto2 = getPrototype$1(value);
20525 if (proto2 === null) {
20526 return true;
20527 }
20528 var Ctor = hasOwnProperty$6.call(proto2, "constructor") && proto2.constructor;
20529 return typeof Ctor == "function" && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString;
20530 }
20531 function arrayReduce(array2, iteratee, accumulator, initAccum) {
20532 var index2 = -1, length2 = array2 == null ? 0 : array2.length;
20533 if (initAccum && length2) {
20534 accumulator = array2[++index2];
20535 }
20536 while (++index2 < length2) {
20537 accumulator = iteratee(accumulator, array2[index2], index2, array2);
20538 }
20539 return accumulator;
20540 }
20541 function stackClear() {
20542 this.__data__ = new ListCache();
20543 this.size = 0;
20544 }
20545 function stackDelete(key) {
20546 var data = this.__data__, result = data["delete"](key);
20547 this.size = data.size;
20548 return result;
20549 }
20550 function stackGet(key) {
20551 return this.__data__.get(key);
20552 }
20553 function stackHas(key) {
20554 return this.__data__.has(key);
20555 }
20556 var LARGE_ARRAY_SIZE$1 = 200;
20557 function stackSet(key, value) {
20558 var data = this.__data__;
20559 if (data instanceof ListCache) {
20560 var pairs2 = data.__data__;
20561 if (!Map$2 || pairs2.length < LARGE_ARRAY_SIZE$1 - 1) {
20562 pairs2.push([key, value]);
20563 this.size = ++data.size;
20564 return this;
20565 }
20566 data = this.__data__ = new MapCache(pairs2);
20567 }
20568 data.set(key, value);
20569 this.size = data.size;
20570 return this;
20571 }
20572 function Stack(entries2) {
20573 var data = this.__data__ = new ListCache(entries2);
20574 this.size = data.size;
20575 }
20576 Stack.prototype.clear = stackClear;
20577 Stack.prototype["delete"] = stackDelete;
20578 Stack.prototype.get = stackGet;
20579 Stack.prototype.has = stackHas;
20580 Stack.prototype.set = stackSet;
20581 function baseAssign(object2, source) {
20582 return object2 && copyObject(source, keys$1(source), object2);
20583 }
20584 function baseAssignIn(object2, source) {
20585 return object2 && copyObject(source, keysIn(source), object2);
20586 }
20587 var freeExports = typeof exports == "object" && exports && !exports.nodeType && exports;
20588 var freeModule = freeExports && typeof module == "object" && module && !module.nodeType && module;
20589 var moduleExports = freeModule && freeModule.exports === freeExports;
20590 var Buffer = moduleExports ? root$1.Buffer : void 0, allocUnsafe = Buffer ? Buffer.allocUnsafe : void 0;
20591 function cloneBuffer(buffer, isDeep) {
20592 if (isDeep) {
20593 return buffer.slice();
20594 }
20595 var length2 = buffer.length, result = allocUnsafe ? allocUnsafe(length2) : new buffer.constructor(length2);
20596 buffer.copy(result);
20597 return result;
20598 }
20599 function arrayFilter(array2, predicate) {
20600 var index2 = -1, length2 = array2 == null ? 0 : array2.length, resIndex = 0, result = [];
20601 while (++index2 < length2) {
20602 var value = array2[index2];
20603 if (predicate(value, index2, array2)) {
20604 result[resIndex++] = value;
20605 }
20606 }
20607 return result;
20608 }
20609 function stubArray() {
20610 return [];
20611 }
20612 var objectProto$5 = Object.prototype;
20613 var propertyIsEnumerable = objectProto$5.propertyIsEnumerable;
20614 var nativeGetSymbols$1 = Object.getOwnPropertySymbols;
20615 var getSymbols = !nativeGetSymbols$1 ? stubArray : function(object2) {
20616 if (object2 == null) {
20617 return [];
20618 }
20619 object2 = Object(object2);
20620 return arrayFilter(nativeGetSymbols$1(object2), function(symbol) {
20621 return propertyIsEnumerable.call(object2, symbol);
20622 });
20623 };
20624 const getSymbols$1 = getSymbols;
20625 function copySymbols(source, object2) {
20626 return copyObject(source, getSymbols$1(source), object2);
20627 }
20628 var nativeGetSymbols = Object.getOwnPropertySymbols;
20629 var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object2) {
20630 var result = [];
20631 while (object2) {
20632 arrayPush(result, getSymbols$1(object2));
20633 object2 = getPrototype$1(object2);
20634 }
20635 return result;
20636 };
20637 const getSymbolsIn$1 = getSymbolsIn;
20638 function copySymbolsIn(source, object2) {
20639 return copyObject(source, getSymbolsIn$1(source), object2);
20640 }
20641 function baseGetAllKeys(object2, keysFunc, symbolsFunc) {
20642 var result = keysFunc(object2);
20643 return isArray$1(object2) ? result : arrayPush(result, symbolsFunc(object2));
20644 }
20645 function getAllKeys(object2) {
20646 return baseGetAllKeys(object2, keys$1, getSymbols$1);
20647 }
20648 function getAllKeysIn(object2) {
20649 return baseGetAllKeys(object2, keysIn, getSymbolsIn$1);
20650 }
20651 var objectProto$4 = Object.prototype;
20652 var hasOwnProperty$5 = objectProto$4.hasOwnProperty;
20653 function initCloneArray(array2) {
20654 var length2 = array2.length, result = new array2.constructor(length2);
20655 if (length2 && typeof array2[0] == "string" && hasOwnProperty$5.call(array2, "index")) {
20656 result.index = array2.index;
20657 result.input = array2.input;
20658 }
20659 return result;
20660 }
20661 var Uint8Array$1 = root$1.Uint8Array;
20662 const Uint8Array$2 = Uint8Array$1;
20663 function cloneArrayBuffer(arrayBuffer) {
20664 var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
20665 new Uint8Array$2(result).set(new Uint8Array$2(arrayBuffer));
20666 return result;
20667 }
20668 function cloneDataView(dataView, isDeep) {
20669 var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
20670 return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
20671 }
20672 var reFlags = /\w*$/;
20673 function cloneRegExp(regexp) {
20674 var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
20675 result.lastIndex = regexp.lastIndex;
20676 return result;
20677 }
20678 var symbolProto$1 = Symbol$2 ? Symbol$2.prototype : void 0, symbolValueOf$1 = symbolProto$1 ? symbolProto$1.valueOf : void 0;
20679 function cloneSymbol(symbol) {
20680 return symbolValueOf$1 ? Object(symbolValueOf$1.call(symbol)) : {};
20681 }
20682 function cloneTypedArray(typedArray, isDeep) {
20683 var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
20684 return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
20685 }
20686 var boolTag$2 = "[object Boolean]", dateTag$2 = "[object Date]", mapTag$3 = "[object Map]", numberTag$2 = "[object Number]", regexpTag$2 = "[object RegExp]", setTag$3 = "[object Set]", stringTag$2 = "[object String]", symbolTag$2 = "[object Symbol]";
20687 var arrayBufferTag$2 = "[object ArrayBuffer]", dataViewTag$2 = "[object DataView]", float32Tag$1 = "[object Float32Array]", float64Tag$1 = "[object Float64Array]", int8Tag$1 = "[object Int8Array]", int16Tag$1 = "[object Int16Array]", int32Tag$1 = "[object Int32Array]", uint8Tag$1 = "[object Uint8Array]", uint8ClampedTag$1 = "[object Uint8ClampedArray]", uint16Tag$1 = "[object Uint16Array]", uint32Tag$1 = "[object Uint32Array]";
20688 function initCloneByTag(object2, tag, isDeep) {
20689 var Ctor = object2.constructor;
20690 switch (tag) {
20691 case arrayBufferTag$2:
20692 return cloneArrayBuffer(object2);
20693 case boolTag$2:
20694 case dateTag$2:
20695 return new Ctor(+object2);
20696 case dataViewTag$2:
20697 return cloneDataView(object2, isDeep);
20698 case float32Tag$1:
20699 case float64Tag$1:
20700 case int8Tag$1:
20701 case int16Tag$1:
20702 case int32Tag$1:
20703 case uint8Tag$1:
20704 case uint8ClampedTag$1:
20705 case uint16Tag$1:
20706 case uint32Tag$1:
20707 return cloneTypedArray(object2, isDeep);
20708 case mapTag$3:
20709 return new Ctor();
20710 case numberTag$2:
20711 case stringTag$2:
20712 return new Ctor(object2);
20713 case regexpTag$2:
20714 return cloneRegExp(object2);
20715 case setTag$3:
20716 return new Ctor();
20717 case symbolTag$2:
20718 return cloneSymbol(object2);
20719 }
20720 }
20721 function initCloneObject(object2) {
20722 return typeof object2.constructor == "function" && !isPrototype(object2) ? baseCreate$1(getPrototype$1(object2)) : {};
20723 }
20724 var mapTag$2 = "[object Map]";
20725 function baseIsMap(value) {
20726 return isObjectLike(value) && getTag$1(value) == mapTag$2;
20727 }
20728 var nodeIsMap = nodeUtil$1 && nodeUtil$1.isMap;
20729 var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;
20730 const isMap$1 = isMap;
20731 var setTag$2 = "[object Set]";
20732 function baseIsSet(value) {
20733 return isObjectLike(value) && getTag$1(value) == setTag$2;
20734 }
20735 var nodeIsSet = nodeUtil$1 && nodeUtil$1.isSet;
20736 var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;
20737 const isSet$1 = isSet;
20738 var CLONE_DEEP_FLAG$1 = 1, CLONE_FLAT_FLAG = 2, CLONE_SYMBOLS_FLAG$2 = 4;
20739 var argsTag$1 = "[object Arguments]", arrayTag$1 = "[object Array]", boolTag$1 = "[object Boolean]", dateTag$1 = "[object Date]", errorTag$1 = "[object Error]", funcTag = "[object Function]", genTag = "[object GeneratorFunction]", mapTag$1 = "[object Map]", numberTag$1 = "[object Number]", objectTag$1 = "[object Object]", regexpTag$1 = "[object RegExp]", setTag$1 = "[object Set]", stringTag$1 = "[object String]", symbolTag$1 = "[object Symbol]", weakMapTag = "[object WeakMap]";
20740 var arrayBufferTag$1 = "[object ArrayBuffer]", dataViewTag$1 = "[object DataView]", float32Tag = "[object Float32Array]", float64Tag = "[object Float64Array]", int8Tag = "[object Int8Array]", int16Tag = "[object Int16Array]", int32Tag = "[object Int32Array]", uint8Tag = "[object Uint8Array]", uint8ClampedTag = "[object Uint8ClampedArray]", uint16Tag = "[object Uint16Array]", uint32Tag = "[object Uint32Array]";
20741 var cloneableTags = {};
20742 cloneableTags[argsTag$1] = cloneableTags[arrayTag$1] = cloneableTags[arrayBufferTag$1] = cloneableTags[dataViewTag$1] = cloneableTags[boolTag$1] = cloneableTags[dateTag$1] = cloneableTags[float32Tag] = cloneableTags[float64Tag] = cloneableTags[int8Tag] = cloneableTags[int16Tag] = cloneableTags[int32Tag] = cloneableTags[mapTag$1] = cloneableTags[numberTag$1] = cloneableTags[objectTag$1] = cloneableTags[regexpTag$1] = cloneableTags[setTag$1] = cloneableTags[stringTag$1] = cloneableTags[symbolTag$1] = cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
20743 cloneableTags[errorTag$1] = cloneableTags[funcTag] = cloneableTags[weakMapTag] = false;
20744 function baseClone(value, bitmask, customizer, key, object2, stack) {
20745 var result, isDeep = bitmask & CLONE_DEEP_FLAG$1, isFlat = bitmask & CLONE_FLAT_FLAG, isFull = bitmask & CLONE_SYMBOLS_FLAG$2;
20746 if (customizer) {
20747 result = object2 ? customizer(value, key, object2, stack) : customizer(value);
20748 }
20749 if (result !== void 0) {
20750 return result;
20751 }
20752 if (!isObject(value)) {
20753 return value;
20754 }
20755 var isArr = isArray$1(value);
20756 if (isArr) {
20757 result = initCloneArray(value);
20758 if (!isDeep) {
20759 return copyArray(value, result);
20760 }
20761 } else {
20762 var tag = getTag$1(value), isFunc = tag == funcTag || tag == genTag;
20763 if (isBuffer$1(value)) {
20764 return cloneBuffer(value, isDeep);
20765 }
20766 if (tag == objectTag$1 || tag == argsTag$1 || isFunc && !object2) {
20767 result = isFlat || isFunc ? {} : initCloneObject(value);
20768 if (!isDeep) {
20769 return isFlat ? copySymbolsIn(value, baseAssignIn(result, value)) : copySymbols(value, baseAssign(result, value));
20770 }
20771 } else {
20772 if (!cloneableTags[tag]) {
20773 return object2 ? value : {};
20774 }
20775 result = initCloneByTag(value, tag, isDeep);
20776 }
20777 }
20778 stack || (stack = new Stack());
20779 var stacked = stack.get(value);
20780 if (stacked) {
20781 return stacked;
20782 }
20783 stack.set(value, result);
20784 if (isSet$1(value)) {
20785 value.forEach(function(subValue) {
20786 result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));
20787 });
20788 } else if (isMap$1(value)) {
20789 value.forEach(function(subValue, key2) {
20790 result.set(key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
20791 });
20792 }
20793 var keysFunc = isFull ? isFlat ? getAllKeysIn : getAllKeys : isFlat ? keysIn : keys$1;
20794 var props = isArr ? void 0 : keysFunc(value);
20795 arrayEach(props || value, function(subValue, key2) {
20796 if (props) {
20797 key2 = subValue;
20798 subValue = value[key2];
20799 }
20800 assignValue(result, key2, baseClone(subValue, bitmask, customizer, key2, value, stack));
20801 });
20802 return result;
20803 }
20804 var CLONE_SYMBOLS_FLAG$1 = 4;
20805 function clone$1(value) {
20806 return baseClone(value, CLONE_SYMBOLS_FLAG$1);
20807 }
20808 var CLONE_DEEP_FLAG = 1, CLONE_SYMBOLS_FLAG = 4;
20809 function cloneDeep(value) {
20810 return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
20811 }
20812 var HASH_UNDEFINED = "__lodash_hash_undefined__";
20813 function setCacheAdd(value) {
20814 this.__data__.set(value, HASH_UNDEFINED);
20815 return this;
20816 }
20817 function setCacheHas(value) {
20818 return this.__data__.has(value);
20819 }
20820 function SetCache(values2) {
20821 var index2 = -1, length2 = values2 == null ? 0 : values2.length;
20822 this.__data__ = new MapCache();
20823 while (++index2 < length2) {
20824 this.add(values2[index2]);
20825 }
20826 }
20827 SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;
20828 SetCache.prototype.has = setCacheHas;
20829 function arraySome(array2, predicate) {
20830 var index2 = -1, length2 = array2 == null ? 0 : array2.length;
20831 while (++index2 < length2) {
20832 if (predicate(array2[index2], index2, array2)) {
20833 return true;
20834 }
20835 }
20836 return false;
20837 }
20838 function cacheHas(cache, key) {
20839 return cache.has(key);
20840 }
20841 var COMPARE_PARTIAL_FLAG$5 = 1, COMPARE_UNORDERED_FLAG$3 = 2;
20842 function equalArrays(array2, other, bitmask, customizer, equalFunc, stack) {
20843 var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, arrLength = array2.length, othLength = other.length;
20844 if (arrLength != othLength && !(isPartial && othLength > arrLength)) {
20845 return false;
20846 }
20847 var arrStacked = stack.get(array2);
20848 var othStacked = stack.get(other);
20849 if (arrStacked && othStacked) {
20850 return arrStacked == other && othStacked == array2;
20851 }
20852 var index2 = -1, result = true, seen = bitmask & COMPARE_UNORDERED_FLAG$3 ? new SetCache() : void 0;
20853 stack.set(array2, other);
20854 stack.set(other, array2);
20855 while (++index2 < arrLength) {
20856 var arrValue = array2[index2], othValue = other[index2];
20857 if (customizer) {
20858 var compared = isPartial ? customizer(othValue, arrValue, index2, other, array2, stack) : customizer(arrValue, othValue, index2, array2, other, stack);
20859 }
20860 if (compared !== void 0) {
20861 if (compared) {
20862 continue;
20863 }
20864 result = false;
20865 break;
20866 }
20867 if (seen) {
20868 if (!arraySome(other, function(othValue2, othIndex) {
20869 if (!cacheHas(seen, othIndex) && (arrValue === othValue2 || equalFunc(arrValue, othValue2, bitmask, customizer, stack))) {
20870 return seen.push(othIndex);
20871 }
20872 })) {
20873 result = false;
20874 break;
20875 }
20876 } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {
20877 result = false;
20878 break;
20879 }
20880 }
20881 stack["delete"](array2);
20882 stack["delete"](other);
20883 return result;
20884 }
20885 function mapToArray(map2) {
20886 var index2 = -1, result = Array(map2.size);
20887 map2.forEach(function(value, key) {
20888 result[++index2] = [key, value];
20889 });
20890 return result;
20891 }
20892 function setToArray(set2) {
20893 var index2 = -1, result = Array(set2.size);
20894 set2.forEach(function(value) {
20895 result[++index2] = value;
20896 });
20897 return result;
20898 }
20899 var COMPARE_PARTIAL_FLAG$4 = 1, COMPARE_UNORDERED_FLAG$2 = 2;
20900 var boolTag = "[object Boolean]", dateTag = "[object Date]", errorTag = "[object Error]", mapTag = "[object Map]", numberTag = "[object Number]", regexpTag = "[object RegExp]", setTag = "[object Set]", stringTag = "[object String]", symbolTag = "[object Symbol]";
20901 var arrayBufferTag = "[object ArrayBuffer]", dataViewTag = "[object DataView]";
20902 var symbolProto = Symbol$2 ? Symbol$2.prototype : void 0, symbolValueOf = symbolProto ? symbolProto.valueOf : void 0;
20903 function equalByTag(object2, other, tag, bitmask, customizer, equalFunc, stack) {
20904 switch (tag) {
20905 case dataViewTag:
20906 if (object2.byteLength != other.byteLength || object2.byteOffset != other.byteOffset) {
20907 return false;
20908 }
20909 object2 = object2.buffer;
20910 other = other.buffer;
20911 case arrayBufferTag:
20912 if (object2.byteLength != other.byteLength || !equalFunc(new Uint8Array$2(object2), new Uint8Array$2(other))) {
20913 return false;
20914 }
20915 return true;
20916 case boolTag:
20917 case dateTag:
20918 case numberTag:
20919 return eq(+object2, +other);
20920 case errorTag:
20921 return object2.name == other.name && object2.message == other.message;
20922 case regexpTag:
20923 case stringTag:
20924 return object2 == other + "";
20925 case mapTag:
20926 var convert = mapToArray;
20927 case setTag:
20928 var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4;
20929 convert || (convert = setToArray);
20930 if (object2.size != other.size && !isPartial) {
20931 return false;
20932 }
20933 var stacked = stack.get(object2);
20934 if (stacked) {
20935 return stacked == other;
20936 }
20937 bitmask |= COMPARE_UNORDERED_FLAG$2;
20938 stack.set(object2, other);
20939 var result = equalArrays(convert(object2), convert(other), bitmask, customizer, equalFunc, stack);
20940 stack["delete"](object2);
20941 return result;
20942 case symbolTag:
20943 if (symbolValueOf) {
20944 return symbolValueOf.call(object2) == symbolValueOf.call(other);
20945 }
20946 }
20947 return false;
20948 }
20949 var COMPARE_PARTIAL_FLAG$3 = 1;
20950 var objectProto$3 = Object.prototype;
20951 var hasOwnProperty$4 = objectProto$3.hasOwnProperty;
20952 function equalObjects(object2, other, bitmask, customizer, equalFunc, stack) {
20953 var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, objProps = getAllKeys(object2), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length;
20954 if (objLength != othLength && !isPartial) {
20955 return false;
20956 }
20957 var index2 = objLength;
20958 while (index2--) {
20959 var key = objProps[index2];
20960 if (!(isPartial ? key in other : hasOwnProperty$4.call(other, key))) {
20961 return false;
20962 }
20963 }
20964 var objStacked = stack.get(object2);
20965 var othStacked = stack.get(other);
20966 if (objStacked && othStacked) {
20967 return objStacked == other && othStacked == object2;
20968 }
20969 var result = true;
20970 stack.set(object2, other);
20971 stack.set(other, object2);
20972 var skipCtor = isPartial;
20973 while (++index2 < objLength) {
20974 key = objProps[index2];
20975 var objValue = object2[key], othValue = other[key];
20976 if (customizer) {
20977 var compared = isPartial ? customizer(othValue, objValue, key, other, object2, stack) : customizer(objValue, othValue, key, object2, other, stack);
20978 }
20979 if (!(compared === void 0 ? objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack) : compared)) {
20980 result = false;
20981 break;
20982 }
20983 skipCtor || (skipCtor = key == "constructor");
20984 }
20985 if (result && !skipCtor) {
20986 var objCtor = object2.constructor, othCtor = other.constructor;
20987 if (objCtor != othCtor && ("constructor" in object2 && "constructor" in other) && !(typeof objCtor == "function" && objCtor instanceof objCtor && typeof othCtor == "function" && othCtor instanceof othCtor)) {
20988 result = false;
20989 }
20990 }
20991 stack["delete"](object2);
20992 stack["delete"](other);
20993 return result;
20994 }
20995 var COMPARE_PARTIAL_FLAG$2 = 1;
20996 var argsTag = "[object Arguments]", arrayTag = "[object Array]", objectTag = "[object Object]";
20997 var objectProto$2 = Object.prototype;
20998 var hasOwnProperty$3 = objectProto$2.hasOwnProperty;
20999 function baseIsEqualDeep(object2, other, bitmask, customizer, equalFunc, stack) {
21000 var objIsArr = isArray$1(object2), othIsArr = isArray$1(other), objTag = objIsArr ? arrayTag : getTag$1(object2), othTag = othIsArr ? arrayTag : getTag$1(other);
21001 objTag = objTag == argsTag ? objectTag : objTag;
21002 othTag = othTag == argsTag ? objectTag : othTag;
21003 var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag;
21004 if (isSameTag && isBuffer$1(object2)) {
21005 if (!isBuffer$1(other)) {
21006 return false;
21007 }
21008 objIsArr = true;
21009 objIsObj = false;
21010 }
21011 if (isSameTag && !objIsObj) {
21012 stack || (stack = new Stack());
21013 return objIsArr || isTypedArray$1(object2) ? equalArrays(object2, other, bitmask, customizer, equalFunc, stack) : equalByTag(object2, other, objTag, bitmask, customizer, equalFunc, stack);
21014 }
21015 if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) {
21016 var objIsWrapped = objIsObj && hasOwnProperty$3.call(object2, "__wrapped__"), othIsWrapped = othIsObj && hasOwnProperty$3.call(other, "__wrapped__");
21017 if (objIsWrapped || othIsWrapped) {
21018 var objUnwrapped = objIsWrapped ? object2.value() : object2, othUnwrapped = othIsWrapped ? other.value() : other;
21019 stack || (stack = new Stack());
21020 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);
21021 }
21022 }
21023 if (!isSameTag) {
21024 return false;
21025 }
21026 stack || (stack = new Stack());
21027 return equalObjects(object2, other, bitmask, customizer, equalFunc, stack);
21028 }
21029 function baseIsEqual(value, other, bitmask, customizer, stack) {
21030 if (value === other) {
21031 return true;
21032 }
21033 if (value == null || other == null || !isObjectLike(value) && !isObjectLike(other)) {
21034 return value !== value && other !== other;
21035 }
21036 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);
21037 }
21038 var COMPARE_PARTIAL_FLAG$1 = 1, COMPARE_UNORDERED_FLAG$1 = 2;
21039 function baseIsMatch(object2, source, matchData, customizer) {
21040 var index2 = matchData.length, length2 = index2, noCustomizer = !customizer;
21041 if (object2 == null) {
21042 return !length2;
21043 }
21044 object2 = Object(object2);
21045 while (index2--) {
21046 var data = matchData[index2];
21047 if (noCustomizer && data[2] ? data[1] !== object2[data[0]] : !(data[0] in object2)) {
21048 return false;
21049 }
21050 }
21051 while (++index2 < length2) {
21052 data = matchData[index2];
21053 var key = data[0], objValue = object2[key], srcValue = data[1];
21054 if (noCustomizer && data[2]) {
21055 if (objValue === void 0 && !(key in object2)) {
21056 return false;
21057 }
21058 } else {
21059 var stack = new Stack();
21060 if (customizer) {
21061 var result = customizer(objValue, srcValue, key, object2, source, stack);
21062 }
21063 if (!(result === void 0 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) : result)) {
21064 return false;
21065 }
21066 }
21067 }
21068 return true;
21069 }
21070 function isStrictComparable(value) {
21071 return value === value && !isObject(value);
21072 }
21073 function getMatchData(object2) {
21074 var result = keys$1(object2), length2 = result.length;
21075 while (length2--) {
21076 var key = result[length2], value = object2[key];
21077 result[length2] = [key, value, isStrictComparable(value)];
21078 }
21079 return result;
21080 }
21081 function matchesStrictComparable(key, srcValue) {
21082 return function(object2) {
21083 if (object2 == null) {
21084 return false;
21085 }
21086 return object2[key] === srcValue && (srcValue !== void 0 || key in Object(object2));
21087 };
21088 }
21089 function baseMatches(source) {
21090 var matchData = getMatchData(source);
21091 if (matchData.length == 1 && matchData[0][2]) {
21092 return matchesStrictComparable(matchData[0][0], matchData[0][1]);
21093 }
21094 return function(object2) {
21095 return object2 === source || baseIsMatch(object2, source, matchData);
21096 };
21097 }
21098 function baseHasIn(object2, key) {
21099 return object2 != null && key in Object(object2);
21100 }
21101 function hasPath(object2, path2, hasFunc) {
21102 path2 = castPath(path2, object2);
21103 var index2 = -1, length2 = path2.length, result = false;
21104 while (++index2 < length2) {
21105 var key = toKey(path2[index2]);
21106 if (!(result = object2 != null && hasFunc(object2, key))) {
21107 break;
21108 }
21109 object2 = object2[key];
21110 }
21111 if (result || ++index2 != length2) {
21112 return result;
21113 }
21114 length2 = object2 == null ? 0 : object2.length;
21115 return !!length2 && isLength(length2) && isIndex(key, length2) && (isArray$1(object2) || isArguments$1(object2));
21116 }
21117 function hasIn(object2, path2) {
21118 return object2 != null && hasPath(object2, path2, baseHasIn);
21119 }
21120 var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2;
21121 function baseMatchesProperty(path2, srcValue) {
21122 if (isKey(path2) && isStrictComparable(srcValue)) {
21123 return matchesStrictComparable(toKey(path2), srcValue);
21124 }
21125 return function(object2) {
21126 var objValue = get$1(object2, path2);
21127 return objValue === void 0 && objValue === srcValue ? hasIn(object2, path2) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);
21128 };
21129 }
21130 function baseProperty(key) {
21131 return function(object2) {
21132 return object2 == null ? void 0 : object2[key];
21133 };
21134 }
21135 function basePropertyDeep(path2) {
21136 return function(object2) {
21137 return baseGet(object2, path2);
21138 };
21139 }
21140 function property(path2) {
21141 return isKey(path2) ? baseProperty(toKey(path2)) : basePropertyDeep(path2);
21142 }
21143 function baseIteratee(value) {
21144 if (typeof value == "function") {
21145 return value;
21146 }
21147 if (value == null) {
21148 return identity;
21149 }
21150 if (typeof value == "object") {
21151 return isArray$1(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value);
21152 }
21153 return property(value);
21154 }
21155 function createBaseFor(fromRight) {
21156 return function(object2, iteratee, keysFunc) {
21157 var index2 = -1, iterable = Object(object2), props = keysFunc(object2), length2 = props.length;
21158 while (length2--) {
21159 var key = props[fromRight ? length2 : ++index2];
21160 if (iteratee(iterable[key], key, iterable) === false) {
21161 break;
21162 }
21163 }
21164 return object2;
21165 };
21166 }
21167 var baseFor = createBaseFor();
21168 const baseFor$1 = baseFor;
21169 function baseForOwn(object2, iteratee) {
21170 return object2 && baseFor$1(object2, iteratee, keys$1);
21171 }
21172 function createBaseEach(eachFunc, fromRight) {
21173 return function(collection, iteratee) {
21174 if (collection == null) {
21175 return collection;
21176 }
21177 if (!isArrayLike(collection)) {
21178 return eachFunc(collection, iteratee);
21179 }
21180 var length2 = collection.length, index2 = fromRight ? length2 : -1, iterable = Object(collection);
21181 while (fromRight ? index2-- : ++index2 < length2) {
21182 if (iteratee(iterable[index2], index2, iterable) === false) {
21183 break;
21184 }
21185 }
21186 return collection;
21187 };
21188 }
21189 var baseEach = createBaseEach(baseForOwn);
21190 const baseEach$1 = baseEach;
21191 var now = function() {
21192 return root$1.Date.now();
21193 };
21194 const now$1 = now;
21195 var objectProto$1 = Object.prototype;
21196 var hasOwnProperty$2 = objectProto$1.hasOwnProperty;
21197 var defaults = baseRest(function(object2, sources) {
21198 object2 = Object(object2);
21199 var index2 = -1;
21200 var length2 = sources.length;
21201 var guard = length2 > 2 ? sources[2] : void 0;
21202 if (guard && isIterateeCall(sources[0], sources[1], guard)) {
21203 length2 = 1;
21204 }
21205 while (++index2 < length2) {
21206 var source = sources[index2];
21207 var props = keysIn(source);
21208 var propsIndex = -1;
21209 var propsLength = props.length;
21210 while (++propsIndex < propsLength) {
21211 var key = props[propsIndex];
21212 var value = object2[key];
21213 if (value === void 0 || eq(value, objectProto$1[key]) && !hasOwnProperty$2.call(object2, key)) {
21214 object2[key] = source[key];
21215 }
21216 }
21217 }
21218 return object2;
21219 });
21220 const defaults$1 = defaults;
21221 function assignMergeValue(object2, key, value) {
21222 if (value !== void 0 && !eq(object2[key], value) || value === void 0 && !(key in object2)) {
21223 baseAssignValue(object2, key, value);
21224 }
21225 }
21226 function isArrayLikeObject(value) {
21227 return isObjectLike(value) && isArrayLike(value);
21228 }
21229 function safeGet(object2, key) {
21230 if (key === "constructor" && typeof object2[key] === "function") {
21231 return;
21232 }
21233 if (key == "__proto__") {
21234 return;
21235 }
21236 return object2[key];
21237 }
21238 function toPlainObject(value) {
21239 return copyObject(value, keysIn(value));
21240 }
21241 function baseMergeDeep(object2, source, key, srcIndex, mergeFunc, customizer, stack) {
21242 var objValue = safeGet(object2, key), srcValue = safeGet(source, key), stacked = stack.get(srcValue);
21243 if (stacked) {
21244 assignMergeValue(object2, key, stacked);
21245 return;
21246 }
21247 var newValue = customizer ? customizer(objValue, srcValue, key + "", object2, source, stack) : void 0;
21248 var isCommon = newValue === void 0;
21249 if (isCommon) {
21250 var isArr = isArray$1(srcValue), isBuff = !isArr && isBuffer$1(srcValue), isTyped = !isArr && !isBuff && isTypedArray$1(srcValue);
21251 newValue = srcValue;
21252 if (isArr || isBuff || isTyped) {
21253 if (isArray$1(objValue)) {
21254 newValue = objValue;
21255 } else if (isArrayLikeObject(objValue)) {
21256 newValue = copyArray(objValue);
21257 } else if (isBuff) {
21258 isCommon = false;
21259 newValue = cloneBuffer(srcValue, true);
21260 } else if (isTyped) {
21261 isCommon = false;
21262 newValue = cloneTypedArray(srcValue, true);
21263 } else {
21264 newValue = [];
21265 }
21266 } else if (isPlainObject(srcValue) || isArguments$1(srcValue)) {
21267 newValue = objValue;
21268 if (isArguments$1(objValue)) {
21269 newValue = toPlainObject(objValue);
21270 } else if (!isObject(objValue) || isFunction(objValue)) {
21271 newValue = initCloneObject(srcValue);
21272 }
21273 } else {
21274 isCommon = false;
21275 }
21276 }
21277 if (isCommon) {
21278 stack.set(srcValue, newValue);
21279 mergeFunc(newValue, srcValue, srcIndex, customizer, stack);
21280 stack["delete"](srcValue);
21281 }
21282 assignMergeValue(object2, key, newValue);
21283 }
21284 function baseMerge(object2, source, srcIndex, customizer, stack) {
21285 if (object2 === source) {
21286 return;
21287 }
21288 baseFor$1(source, function(srcValue, key) {
21289 stack || (stack = new Stack());
21290 if (isObject(srcValue)) {
21291 baseMergeDeep(object2, source, key, srcIndex, baseMerge, customizer, stack);
21292 } else {
21293 var newValue = customizer ? customizer(safeGet(object2, key), srcValue, key + "", object2, source, stack) : void 0;
21294 if (newValue === void 0) {
21295 newValue = srcValue;
21296 }
21297 assignMergeValue(object2, key, newValue);
21298 }
21299 }, keysIn);
21300 }
21301 function arrayIncludesWith(array2, value, comparator) {
21302 var index2 = -1, length2 = array2 == null ? 0 : array2.length;
21303 while (++index2 < length2) {
21304 if (comparator(value, array2[index2])) {
21305 return true;
21306 }
21307 }
21308 return false;
21309 }
21310 function last(array2) {
21311 var length2 = array2 == null ? 0 : array2.length;
21312 return length2 ? array2[length2 - 1] : void 0;
21313 }
21314 function castFunction(value) {
21315 return typeof value == "function" ? value : identity;
21316 }
21317 function forEach(collection, iteratee) {
21318 var func = isArray$1(collection) ? arrayEach : baseEach$1;
21319 return func(collection, castFunction(iteratee));
21320 }
21321 function baseFilter(collection, predicate) {
21322 var result = [];
21323 baseEach$1(collection, function(value, index2, collection2) {
21324 if (predicate(value, index2, collection2)) {
21325 result.push(value);
21326 }
21327 });
21328 return result;
21329 }
21330 function filter(collection, predicate) {
21331 var func = isArray$1(collection) ? arrayFilter : baseFilter;
21332 return func(collection, baseIteratee(predicate));
21333 }
21334 function createFind(findIndexFunc) {
21335 return function(collection, predicate, fromIndex) {
21336 var iterable = Object(collection);
21337 if (!isArrayLike(collection)) {
21338 var iteratee = baseIteratee(predicate);
21339 collection = keys$1(collection);
21340 predicate = function(key) {
21341 return iteratee(iterable[key], key, iterable);
21342 };
21343 }
21344 var index2 = findIndexFunc(collection, predicate, fromIndex);
21345 return index2 > -1 ? iterable[iteratee ? collection[index2] : index2] : void 0;
21346 };
21347 }
21348 var nativeMax$1 = Math.max;
21349 function findIndex(array2, predicate, fromIndex) {
21350 var length2 = array2 == null ? 0 : array2.length;
21351 if (!length2) {
21352 return -1;
21353 }
21354 var index2 = fromIndex == null ? 0 : toInteger(fromIndex);
21355 if (index2 < 0) {
21356 index2 = nativeMax$1(length2 + index2, 0);
21357 }
21358 return baseFindIndex(array2, baseIteratee(predicate), index2);
21359 }
21360 var find = createFind(findIndex);
21361 const find$1 = find;
21362 function baseMap(collection, iteratee) {
21363 var index2 = -1, result = isArrayLike(collection) ? Array(collection.length) : [];
21364 baseEach$1(collection, function(value, key, collection2) {
21365 result[++index2] = iteratee(value, key, collection2);
21366 });
21367 return result;
21368 }
21369 function map(collection, iteratee) {
21370 var func = isArray$1(collection) ? arrayMap : baseMap;
21371 return func(collection, baseIteratee(iteratee));
21372 }
21373 function forIn(object2, iteratee) {
21374 return object2 == null ? object2 : baseFor$1(object2, castFunction(iteratee), keysIn);
21375 }
21376 function forOwn(object2, iteratee) {
21377 return object2 && baseForOwn(object2, castFunction(iteratee));
21378 }
21379 function baseGt(value, other) {
21380 return value > other;
21381 }
21382 var objectProto = Object.prototype;
21383 var hasOwnProperty$1 = objectProto.hasOwnProperty;
21384 function baseHas(object2, key) {
21385 return object2 != null && hasOwnProperty$1.call(object2, key);
21386 }
21387 function has(object2, path2) {
21388 return object2 != null && hasPath(object2, path2, baseHas);
21389 }
21390 function baseValues(object2, props) {
21391 return arrayMap(props, function(key) {
21392 return object2[key];
21393 });
21394 }
21395 function values(object2) {
21396 return object2 == null ? [] : baseValues(object2, keys$1(object2));
21397 }
21398 function isUndefined(value) {
21399 return value === void 0;
21400 }
21401 function baseLt(value, other) {
21402 return value < other;
21403 }
21404 function mapValues(object2, iteratee) {
21405 var result = {};
21406 iteratee = baseIteratee(iteratee);
21407 baseForOwn(object2, function(value, key, object3) {
21408 baseAssignValue(result, key, iteratee(value, key, object3));
21409 });
21410 return result;
21411 }
21412 function baseExtremum(array2, iteratee, comparator) {
21413 var index2 = -1, length2 = array2.length;
21414 while (++index2 < length2) {
21415 var value = array2[index2], current = iteratee(value);
21416 if (current != null && (computed === void 0 ? current === current && !isSymbol(current) : comparator(current, computed))) {
21417 var computed = current, result = value;
21418 }
21419 }
21420 return result;
21421 }
21422 function max(array2) {
21423 return array2 && array2.length ? baseExtremum(array2, identity, baseGt) : void 0;
21424 }
21425 var merge$1 = createAssigner(function(object2, source, srcIndex) {
21426 baseMerge(object2, source, srcIndex);
21427 });
21428 const merge$2 = merge$1;
21429 function min(array2) {
21430 return array2 && array2.length ? baseExtremum(array2, identity, baseLt) : void 0;
21431 }
21432 function minBy(array2, iteratee) {
21433 return array2 && array2.length ? baseExtremum(array2, baseIteratee(iteratee), baseLt) : void 0;
21434 }
21435 function baseSet(object2, path2, value, customizer) {
21436 if (!isObject(object2)) {
21437 return object2;
21438 }
21439 path2 = castPath(path2, object2);
21440 var index2 = -1, length2 = path2.length, lastIndex = length2 - 1, nested = object2;
21441 while (nested != null && ++index2 < length2) {
21442 var key = toKey(path2[index2]), newValue = value;
21443 if (key === "__proto__" || key === "constructor" || key === "prototype") {
21444 return object2;
21445 }
21446 if (index2 != lastIndex) {
21447 var objValue = nested[key];
21448 newValue = customizer ? customizer(objValue, key, nested) : void 0;
21449 if (newValue === void 0) {
21450 newValue = isObject(objValue) ? objValue : isIndex(path2[index2 + 1]) ? [] : {};
21451 }
21452 }
21453 assignValue(nested, key, newValue);
21454 nested = nested[key];
21455 }
21456 return object2;
21457 }
21458 function basePickBy(object2, paths, predicate) {
21459 var index2 = -1, length2 = paths.length, result = {};
21460 while (++index2 < length2) {
21461 var path2 = paths[index2], value = baseGet(object2, path2);
21462 if (predicate(value, path2)) {
21463 baseSet(result, castPath(path2, object2), value);
21464 }
21465 }
21466 return result;
21467 }
21468 function baseSortBy(array2, comparer) {
21469 var length2 = array2.length;
21470 array2.sort(comparer);
21471 while (length2--) {
21472 array2[length2] = array2[length2].value;
21473 }
21474 return array2;
21475 }
21476 function compareAscending(value, other) {
21477 if (value !== other) {
21478 var valIsDefined = value !== void 0, valIsNull = value === null, valIsReflexive = value === value, valIsSymbol = isSymbol(value);
21479 var othIsDefined = other !== void 0, othIsNull = other === null, othIsReflexive = other === other, othIsSymbol = isSymbol(other);
21480 if (!othIsNull && !othIsSymbol && !valIsSymbol && value > other || valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol || valIsNull && othIsDefined && othIsReflexive || !valIsDefined && othIsReflexive || !valIsReflexive) {
21481 return 1;
21482 }
21483 if (!valIsNull && !valIsSymbol && !othIsSymbol && value < other || othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol || othIsNull && valIsDefined && valIsReflexive || !othIsDefined && valIsReflexive || !othIsReflexive) {
21484 return -1;
21485 }
21486 }
21487 return 0;
21488 }
21489 function compareMultiple(object2, other, orders) {
21490 var index2 = -1, objCriteria = object2.criteria, othCriteria = other.criteria, length2 = objCriteria.length, ordersLength = orders.length;
21491 while (++index2 < length2) {
21492 var result = compareAscending(objCriteria[index2], othCriteria[index2]);
21493 if (result) {
21494 if (index2 >= ordersLength) {
21495 return result;
21496 }
21497 var order2 = orders[index2];
21498 return result * (order2 == "desc" ? -1 : 1);
21499 }
21500 }
21501 return object2.index - other.index;
21502 }
21503 function baseOrderBy(collection, iteratees, orders) {
21504 if (iteratees.length) {
21505 iteratees = arrayMap(iteratees, function(iteratee) {
21506 if (isArray$1(iteratee)) {
21507 return function(value) {
21508 return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);
21509 };
21510 }
21511 return iteratee;
21512 });
21513 } else {
21514 iteratees = [identity];
21515 }
21516 var index2 = -1;
21517 iteratees = arrayMap(iteratees, baseUnary(baseIteratee));
21518 var result = baseMap(collection, function(value, key, collection2) {
21519 var criteria = arrayMap(iteratees, function(iteratee) {
21520 return iteratee(value);
21521 });
21522 return { "criteria": criteria, "index": ++index2, "value": value };
21523 });
21524 return baseSortBy(result, function(object2, other) {
21525 return compareMultiple(object2, other, orders);
21526 });
21527 }
21528 function basePick(object2, paths) {
21529 return basePickBy(object2, paths, function(value, path2) {
21530 return hasIn(object2, path2);
21531 });
21532 }
21533 var pick = flatRest(function(object2, paths) {
21534 return object2 == null ? {} : basePick(object2, paths);
21535 });
21536 const pick$1 = pick;
21537 var nativeCeil = Math.ceil, nativeMax = Math.max;
21538 function baseRange(start2, end2, step, fromRight) {
21539 var index2 = -1, length2 = nativeMax(nativeCeil((end2 - start2) / (step || 1)), 0), result = Array(length2);
21540 while (length2--) {
21541 result[fromRight ? length2 : ++index2] = start2;
21542 start2 += step;
21543 }
21544 return result;
21545 }
21546 function createRange(fromRight) {
21547 return function(start2, end2, step) {
21548 if (step && typeof step != "number" && isIterateeCall(start2, end2, step)) {
21549 end2 = step = void 0;
21550 }
21551 start2 = toFinite(start2);
21552 if (end2 === void 0) {
21553 end2 = start2;
21554 start2 = 0;
21555 } else {
21556 end2 = toFinite(end2);
21557 }
21558 step = step === void 0 ? start2 < end2 ? 1 : -1 : toFinite(step);
21559 return baseRange(start2, end2, step, fromRight);
21560 };
21561 }
21562 var range = createRange();
21563 const range$1 = range;
21564 function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {
21565 eachFunc(collection, function(value, index2, collection2) {
21566 accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index2, collection2);
21567 });
21568 return accumulator;
21569 }
21570 function reduce(collection, iteratee, accumulator) {
21571 var func = isArray$1(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3;
21572 return func(collection, baseIteratee(iteratee), accumulator, initAccum, baseEach$1);
21573 }
21574 var sortBy = baseRest(function(collection, iteratees) {
21575 if (collection == null) {
21576 return [];
21577 }
21578 var length2 = iteratees.length;
21579 if (length2 > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {
21580 iteratees = [];
21581 } else if (length2 > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {
21582 iteratees = [iteratees[0]];
21583 }
21584 return baseOrderBy(collection, baseFlatten(iteratees, 1), []);
21585 });
21586 const sortBy$1 = sortBy;
21587 var INFINITY = 1 / 0;
21588 var createSet = !(Set$2 && 1 / setToArray(new Set$2([, -0]))[1] == INFINITY) ? noop : function(values2) {
21589 return new Set$2(values2);
21590 };
21591 const createSet$1 = createSet;
21592 var LARGE_ARRAY_SIZE = 200;
21593 function baseUniq(array2, iteratee, comparator) {
21594 var index2 = -1, includes2 = arrayIncludes, length2 = array2.length, isCommon = true, result = [], seen = result;
21595 if (comparator) {
21596 isCommon = false;
21597 includes2 = arrayIncludesWith;
21598 } else if (length2 >= LARGE_ARRAY_SIZE) {
21599 var set2 = iteratee ? null : createSet$1(array2);
21600 if (set2) {
21601 return setToArray(set2);
21602 }
21603 isCommon = false;
21604 includes2 = cacheHas;
21605 seen = new SetCache();
21606 } else {
21607 seen = iteratee ? [] : result;
21608 }
21609 outer:
21610 while (++index2 < length2) {
21611 var value = array2[index2], computed = iteratee ? iteratee(value) : value;
21612 value = comparator || value !== 0 ? value : 0;
21613 if (isCommon && computed === computed) {
21614 var seenIndex = seen.length;
21615 while (seenIndex--) {
21616 if (seen[seenIndex] === computed) {
21617 continue outer;
21618 }
21619 }
21620 if (iteratee) {
21621 seen.push(computed);
21622 }
21623 result.push(value);
21624 } else if (!includes2(seen, computed, comparator)) {
21625 if (seen !== result) {
21626 seen.push(computed);
21627 }
21628 result.push(value);
21629 }
21630 }
21631 return result;
21632 }
21633 var union = baseRest(function(arrays) {
21634 return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));
21635 });
21636 const union$1 = union;
21637 var idCounter = 0;
21638 function uniqueId(prefix) {
21639 var id2 = ++idCounter;
21640 return toString$1(prefix) + id2;
21641 }
21642 function baseZipObject(props, values2, assignFunc) {
21643 var index2 = -1, length2 = props.length, valsLength = values2.length, result = {};
21644 while (++index2 < length2) {
21645 var value = index2 < valsLength ? values2[index2] : void 0;
21646 assignFunc(result, props[index2], value);
21647 }
21648 return result;
21649 }
21650 function zipObject(props, values2) {
21651 return baseZipObject(props || [], values2 || [], assignValue);
21652 }
21653 var DEFAULT_EDGE_NAME = "\0";
21654 var GRAPH_NODE = "\0";
21655 var EDGE_KEY_DELIM = "";
21656 class Graph {
21657 constructor(opts = {}) {
21658 this._isDirected = has(opts, "directed") ? opts.directed : true;
21659 this._isMultigraph = has(opts, "multigraph") ? opts.multigraph : false;
21660 this._isCompound = has(opts, "compound") ? opts.compound : false;
21661 this._label = void 0;
21662 this._defaultNodeLabelFn = constant(void 0);
21663 this._defaultEdgeLabelFn = constant(void 0);
21664 this._nodes = {};
21665 if (this._isCompound) {
21666 this._parent = {};
21667 this._children = {};
21668 this._children[GRAPH_NODE] = {};
21669 }
21670 this._in = {};
21671 this._preds = {};
21672 this._out = {};
21673 this._sucs = {};
21674 this._edgeObjs = {};
21675 this._edgeLabels = {};
21676 }
21677 /* === Graph functions ========= */
21678 isDirected() {
21679 return this._isDirected;
21680 }
21681 isMultigraph() {
21682 return this._isMultigraph;
21683 }
21684 isCompound() {
21685 return this._isCompound;
21686 }
21687 setGraph(label) {
21688 this._label = label;
21689 return this;
21690 }
21691 graph() {
21692 return this._label;
21693 }
21694 /* === Node functions ========== */
21695 setDefaultNodeLabel(newDefault) {
21696 if (!isFunction(newDefault)) {
21697 newDefault = constant(newDefault);
21698 }
21699 this._defaultNodeLabelFn = newDefault;
21700 return this;
21701 }
21702 nodeCount() {
21703 return this._nodeCount;
21704 }
21705 nodes() {
21706 return keys$1(this._nodes);
21707 }
21708 sources() {
21709 var self2 = this;
21710 return filter(this.nodes(), function(v) {
21711 return isEmpty(self2._in[v]);
21712 });
21713 }
21714 sinks() {
21715 var self2 = this;
21716 return filter(this.nodes(), function(v) {
21717 return isEmpty(self2._out[v]);
21718 });
21719 }
21720 setNodes(vs, value) {
21721 var args = arguments;
21722 var self2 = this;
21723 forEach(vs, function(v) {
21724 if (args.length > 1) {
21725 self2.setNode(v, value);
21726 } else {
21727 self2.setNode(v);
21728 }
21729 });
21730 return this;
21731 }
21732 setNode(v, value) {
21733 if (has(this._nodes, v)) {
21734 if (arguments.length > 1) {
21735 this._nodes[v] = value;
21736 }
21737 return this;
21738 }
21739 this._nodes[v] = arguments.length > 1 ? value : this._defaultNodeLabelFn(v);
21740 if (this._isCompound) {
21741 this._parent[v] = GRAPH_NODE;
21742 this._children[v] = {};
21743 this._children[GRAPH_NODE][v] = true;
21744 }
21745 this._in[v] = {};
21746 this._preds[v] = {};
21747 this._out[v] = {};
21748 this._sucs[v] = {};
21749 ++this._nodeCount;
21750 return this;
21751 }
21752 node(v) {
21753 return this._nodes[v];
21754 }
21755 hasNode(v) {
21756 return has(this._nodes, v);
21757 }
21758 removeNode(v) {
21759 var self2 = this;
21760 if (has(this._nodes, v)) {
21761 var removeEdge = function(e) {
21762 self2.removeEdge(self2._edgeObjs[e]);
21763 };
21764 delete this._nodes[v];
21765 if (this._isCompound) {
21766 this._removeFromParentsChildList(v);
21767 delete this._parent[v];
21768 forEach(this.children(v), function(child) {
21769 self2.setParent(child);
21770 });
21771 delete this._children[v];
21772 }
21773 forEach(keys$1(this._in[v]), removeEdge);
21774 delete this._in[v];
21775 delete this._preds[v];
21776 forEach(keys$1(this._out[v]), removeEdge);
21777 delete this._out[v];
21778 delete this._sucs[v];
21779 --this._nodeCount;
21780 }
21781 return this;
21782 }
21783 setParent(v, parent) {
21784 if (!this._isCompound) {
21785 throw new Error("Cannot set parent in a non-compound graph");
21786 }
21787 if (isUndefined(parent)) {
21788 parent = GRAPH_NODE;
21789 } else {
21790 parent += "";
21791 for (var ancestor = parent; !isUndefined(ancestor); ancestor = this.parent(ancestor)) {
21792 if (ancestor === v) {
21793 throw new Error("Setting " + parent + " as parent of " + v + " would create a cycle");
21794 }
21795 }
21796 this.setNode(parent);
21797 }
21798 this.setNode(v);
21799 this._removeFromParentsChildList(v);
21800 this._parent[v] = parent;
21801 this._children[parent][v] = true;
21802 return this;
21803 }
21804 _removeFromParentsChildList(v) {
21805 delete this._children[this._parent[v]][v];
21806 }
21807 parent(v) {
21808 if (this._isCompound) {
21809 var parent = this._parent[v];
21810 if (parent !== GRAPH_NODE) {
21811 return parent;
21812 }
21813 }
21814 }
21815 children(v) {
21816 if (isUndefined(v)) {
21817 v = GRAPH_NODE;
21818 }
21819 if (this._isCompound) {
21820 var children2 = this._children[v];
21821 if (children2) {
21822 return keys$1(children2);
21823 }
21824 } else if (v === GRAPH_NODE) {
21825 return this.nodes();
21826 } else if (this.hasNode(v)) {
21827 return [];
21828 }
21829 }
21830 predecessors(v) {
21831 var predsV = this._preds[v];
21832 if (predsV) {
21833 return keys$1(predsV);
21834 }
21835 }
21836 successors(v) {
21837 var sucsV = this._sucs[v];
21838 if (sucsV) {
21839 return keys$1(sucsV);
21840 }
21841 }
21842 neighbors(v) {
21843 var preds = this.predecessors(v);
21844 if (preds) {
21845 return union$1(preds, this.successors(v));
21846 }
21847 }
21848 isLeaf(v) {
21849 var neighbors;
21850 if (this.isDirected()) {
21851 neighbors = this.successors(v);
21852 } else {
21853 neighbors = this.neighbors(v);
21854 }
21855 return neighbors.length === 0;
21856 }
21857 filterNodes(filter2) {
21858 var copy2 = new this.constructor({
21859 directed: this._isDirected,
21860 multigraph: this._isMultigraph,
21861 compound: this._isCompound
21862 });
21863 copy2.setGraph(this.graph());
21864 var self2 = this;
21865 forEach(this._nodes, function(value, v) {
21866 if (filter2(v)) {
21867 copy2.setNode(v, value);
21868 }
21869 });
21870 forEach(this._edgeObjs, function(e) {
21871 if (copy2.hasNode(e.v) && copy2.hasNode(e.w)) {
21872 copy2.setEdge(e, self2.edge(e));
21873 }
21874 });
21875 var parents2 = {};
21876 function findParent(v) {
21877 var parent = self2.parent(v);
21878 if (parent === void 0 || copy2.hasNode(parent)) {
21879 parents2[v] = parent;
21880 return parent;
21881 } else if (parent in parents2) {
21882 return parents2[parent];
21883 } else {
21884 return findParent(parent);
21885 }
21886 }
21887 if (this._isCompound) {
21888 forEach(copy2.nodes(), function(v) {
21889 copy2.setParent(v, findParent(v));
21890 });
21891 }
21892 return copy2;
21893 }
21894 /* === Edge functions ========== */
21895 setDefaultEdgeLabel(newDefault) {
21896 if (!isFunction(newDefault)) {
21897 newDefault = constant(newDefault);
21898 }
21899 this._defaultEdgeLabelFn = newDefault;
21900 return this;
21901 }
21902 edgeCount() {
21903 return this._edgeCount;
21904 }
21905 edges() {
21906 return values(this._edgeObjs);
21907 }
21908 setPath(vs, value) {
21909 var self2 = this;
21910 var args = arguments;
21911 reduce(vs, function(v, w2) {
21912 if (args.length > 1) {
21913 self2.setEdge(v, w2, value);
21914 } else {
21915 self2.setEdge(v, w2);
21916 }
21917 return w2;
21918 });
21919 return this;
21920 }
21921 /*
21922 * setEdge(v, w, [value, [name]])
21923 * setEdge({ v, w, [name] }, [value])
21924 */
21925 setEdge() {
21926 var v, w2, name2, value;
21927 var valueSpecified = false;
21928 var arg0 = arguments[0];
21929 if (typeof arg0 === "object" && arg0 !== null && "v" in arg0) {
21930 v = arg0.v;
21931 w2 = arg0.w;
21932 name2 = arg0.name;
21933 if (arguments.length === 2) {
21934 value = arguments[1];
21935 valueSpecified = true;
21936 }
21937 } else {
21938 v = arg0;
21939 w2 = arguments[1];
21940 name2 = arguments[3];
21941 if (arguments.length > 2) {
21942 value = arguments[2];
21943 valueSpecified = true;
21944 }
21945 }
21946 v = "" + v;
21947 w2 = "" + w2;
21948 if (!isUndefined(name2)) {
21949 name2 = "" + name2;
21950 }
21951 var e = edgeArgsToId(this._isDirected, v, w2, name2);
21952 if (has(this._edgeLabels, e)) {
21953 if (valueSpecified) {
21954 this._edgeLabels[e] = value;
21955 }
21956 return this;
21957 }
21958 if (!isUndefined(name2) && !this._isMultigraph) {
21959 throw new Error("Cannot set a named edge when isMultigraph = false");
21960 }
21961 this.setNode(v);
21962 this.setNode(w2);
21963 this._edgeLabels[e] = valueSpecified ? value : this._defaultEdgeLabelFn(v, w2, name2);
21964 var edgeObj = edgeArgsToObj(this._isDirected, v, w2, name2);
21965 v = edgeObj.v;
21966 w2 = edgeObj.w;
21967 Object.freeze(edgeObj);
21968 this._edgeObjs[e] = edgeObj;
21969 incrementOrInitEntry(this._preds[w2], v);
21970 incrementOrInitEntry(this._sucs[v], w2);
21971 this._in[w2][e] = edgeObj;
21972 this._out[v][e] = edgeObj;
21973 this._edgeCount++;
21974 return this;
21975 }
21976 edge(v, w2, name2) {
21977 var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w2, name2);
21978 return this._edgeLabels[e];
21979 }
21980 hasEdge(v, w2, name2) {
21981 var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w2, name2);
21982 return has(this._edgeLabels, e);
21983 }
21984 removeEdge(v, w2, name2) {
21985 var e = arguments.length === 1 ? edgeObjToId(this._isDirected, arguments[0]) : edgeArgsToId(this._isDirected, v, w2, name2);
21986 var edge = this._edgeObjs[e];
21987 if (edge) {
21988 v = edge.v;
21989 w2 = edge.w;
21990 delete this._edgeLabels[e];
21991 delete this._edgeObjs[e];
21992 decrementOrRemoveEntry(this._preds[w2], v);
21993 decrementOrRemoveEntry(this._sucs[v], w2);
21994 delete this._in[w2][e];
21995 delete this._out[v][e];
21996 this._edgeCount--;
21997 }
21998 return this;
21999 }
22000 inEdges(v, u2) {
22001 var inV = this._in[v];
22002 if (inV) {
22003 var edges2 = values(inV);
22004 if (!u2) {
22005 return edges2;
22006 }
22007 return filter(edges2, function(edge) {
22008 return edge.v === u2;
22009 });
22010 }
22011 }
22012 outEdges(v, w2) {
22013 var outV = this._out[v];
22014 if (outV) {
22015 var edges2 = values(outV);
22016 if (!w2) {
22017 return edges2;
22018 }
22019 return filter(edges2, function(edge) {
22020 return edge.w === w2;
22021 });
22022 }
22023 }
22024 nodeEdges(v, w2) {
22025 var inEdges = this.inEdges(v, w2);
22026 if (inEdges) {
22027 return inEdges.concat(this.outEdges(v, w2));
22028 }
22029 }
22030 }
22031 Graph.prototype._nodeCount = 0;
22032 Graph.prototype._edgeCount = 0;
22033 function incrementOrInitEntry(map2, k) {
22034 if (map2[k]) {
22035 map2[k]++;
22036 } else {
22037 map2[k] = 1;
22038 }
22039 }
22040 function decrementOrRemoveEntry(map2, k) {
22041 if (!--map2[k]) {
22042 delete map2[k];
22043 }
22044 }
22045 function edgeArgsToId(isDirected, v_, w_, name2) {
22046 var v = "" + v_;
22047 var w2 = "" + w_;
22048 if (!isDirected && v > w2) {
22049 var tmp = v;
22050 v = w2;
22051 w2 = tmp;
22052 }
22053 return v + EDGE_KEY_DELIM + w2 + EDGE_KEY_DELIM + (isUndefined(name2) ? DEFAULT_EDGE_NAME : name2);
22054 }
22055 function edgeArgsToObj(isDirected, v_, w_, name2) {
22056 var v = "" + v_;
22057 var w2 = "" + w_;
22058 if (!isDirected && v > w2) {
22059 var tmp = v;
22060 v = w2;
22061 w2 = tmp;
22062 }
22063 var edgeObj = { v, w: w2 };
22064 if (name2) {
22065 edgeObj.name = name2;
22066 }
22067 return edgeObj;
22068 }
22069 function edgeObjToId(isDirected, edgeObj) {
22070 return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);
22071 }
22072 class List {
22073 constructor() {
22074 var sentinel = {};
22075 sentinel._next = sentinel._prev = sentinel;
22076 this._sentinel = sentinel;
22077 }
22078 dequeue() {
22079 var sentinel = this._sentinel;
22080 var entry = sentinel._prev;
22081 if (entry !== sentinel) {
22082 unlink(entry);
22083 return entry;
22084 }
22085 }
22086 enqueue(entry) {
22087 var sentinel = this._sentinel;
22088 if (entry._prev && entry._next) {
22089 unlink(entry);
22090 }
22091 entry._next = sentinel._next;
22092 sentinel._next._prev = entry;
22093 sentinel._next = entry;
22094 entry._prev = sentinel;
22095 }
22096 toString() {
22097 var strs = [];
22098 var sentinel = this._sentinel;
22099 var curr = sentinel._prev;
22100 while (curr !== sentinel) {
22101 strs.push(JSON.stringify(curr, filterOutLinks));
22102 curr = curr._prev;
22103 }
22104 return "[" + strs.join(", ") + "]";
22105 }
22106 }
22107 function unlink(entry) {
22108 entry._prev._next = entry._next;
22109 entry._next._prev = entry._prev;
22110 delete entry._next;
22111 delete entry._prev;
22112 }
22113 function filterOutLinks(k, v) {
22114 if (k !== "_next" && k !== "_prev") {
22115 return v;
22116 }
22117 }
22118 var DEFAULT_WEIGHT_FN = constant(1);
22119 function greedyFAS(g, weightFn) {
22120 if (g.nodeCount() <= 1) {
22121 return [];
22122 }
22123 var state2 = buildState(g, weightFn || DEFAULT_WEIGHT_FN);
22124 var results = doGreedyFAS(state2.graph, state2.buckets, state2.zeroIdx);
22125 return flatten(
22126 map(results, function(e) {
22127 return g.outEdges(e.v, e.w);
22128 })
22129 );
22130 }
22131 function doGreedyFAS(g, buckets, zeroIdx) {
22132 var results = [];
22133 var sources = buckets[buckets.length - 1];
22134 var sinks = buckets[0];
22135 var entry;
22136 while (g.nodeCount()) {
22137 while (entry = sinks.dequeue()) {
22138 removeNode(g, buckets, zeroIdx, entry);
22139 }
22140 while (entry = sources.dequeue()) {
22141 removeNode(g, buckets, zeroIdx, entry);
22142 }
22143 if (g.nodeCount()) {
22144 for (var i2 = buckets.length - 2; i2 > 0; --i2) {
22145 entry = buckets[i2].dequeue();
22146 if (entry) {
22147 results = results.concat(removeNode(g, buckets, zeroIdx, entry, true));
22148 break;
22149 }
22150 }
22151 }
22152 }
22153 return results;
22154 }
22155 function removeNode(g, buckets, zeroIdx, entry, collectPredecessors) {
22156 var results = collectPredecessors ? [] : void 0;
22157 forEach(g.inEdges(entry.v), function(edge) {
22158 var weight = g.edge(edge);
22159 var uEntry = g.node(edge.v);
22160 if (collectPredecessors) {
22161 results.push({ v: edge.v, w: edge.w });
22162 }
22163 uEntry.out -= weight;
22164 assignBucket(buckets, zeroIdx, uEntry);
22165 });
22166 forEach(g.outEdges(entry.v), function(edge) {
22167 var weight = g.edge(edge);
22168 var w2 = edge.w;
22169 var wEntry = g.node(w2);
22170 wEntry["in"] -= weight;
22171 assignBucket(buckets, zeroIdx, wEntry);
22172 });
22173 g.removeNode(entry.v);
22174 return results;
22175 }
22176 function buildState(g, weightFn) {
22177 var fasGraph = new Graph();
22178 var maxIn = 0;
22179 var maxOut = 0;
22180 forEach(g.nodes(), function(v) {
22181 fasGraph.setNode(v, { v, in: 0, out: 0 });
22182 });
22183 forEach(g.edges(), function(e) {
22184 var prevWeight = fasGraph.edge(e.v, e.w) || 0;
22185 var weight = weightFn(e);
22186 var edgeWeight = prevWeight + weight;
22187 fasGraph.setEdge(e.v, e.w, edgeWeight);
22188 maxOut = Math.max(maxOut, fasGraph.node(e.v).out += weight);
22189 maxIn = Math.max(maxIn, fasGraph.node(e.w)["in"] += weight);
22190 });
22191 var buckets = range$1(maxOut + maxIn + 3).map(function() {
22192 return new List();
22193 });
22194 var zeroIdx = maxIn + 1;
22195 forEach(fasGraph.nodes(), function(v) {
22196 assignBucket(buckets, zeroIdx, fasGraph.node(v));
22197 });
22198 return { graph: fasGraph, buckets, zeroIdx };
22199 }
22200 function assignBucket(buckets, zeroIdx, entry) {
22201 if (!entry.out) {
22202 buckets[0].enqueue(entry);
22203 } else if (!entry["in"]) {
22204 buckets[buckets.length - 1].enqueue(entry);
22205 } else {
22206 buckets[entry.out - entry["in"] + zeroIdx].enqueue(entry);
22207 }
22208 }
22209 function run$2(g) {
22210 var fas = g.graph().acyclicer === "greedy" ? greedyFAS(g, weightFn(g)) : dfsFAS(g);
22211 forEach(fas, function(e) {
22212 var label = g.edge(e);
22213 g.removeEdge(e);
22214 label.forwardName = e.name;
22215 label.reversed = true;
22216 g.setEdge(e.w, e.v, label, uniqueId("rev"));
22217 });
22218 function weightFn(g2) {
22219 return function(e) {
22220 return g2.edge(e).weight;
22221 };
22222 }
22223 }
22224 function dfsFAS(g) {
22225 var fas = [];
22226 var stack = {};
22227 var visited = {};
22228 function dfs2(v) {
22229 if (has(visited, v)) {
22230 return;
22231 }
22232 visited[v] = true;
22233 stack[v] = true;
22234 forEach(g.outEdges(v), function(e) {
22235 if (has(stack, e.w)) {
22236 fas.push(e);
22237 } else {
22238 dfs2(e.w);
22239 }
22240 });
22241 delete stack[v];
22242 }
22243 forEach(g.nodes(), dfs2);
22244 return fas;
22245 }
22246 function undo$2(g) {
22247 forEach(g.edges(), function(e) {
22248 var label = g.edge(e);
22249 if (label.reversed) {
22250 g.removeEdge(e);
22251 var forwardName = label.forwardName;
22252 delete label.reversed;
22253 delete label.forwardName;
22254 g.setEdge(e.w, e.v, label, forwardName);
22255 }
22256 });
22257 }
22258 function addDummyNode(g, type2, attrs, name2) {
22259 var v;
22260 do {
22261 v = uniqueId(name2);
22262 } while (g.hasNode(v));
22263 attrs.dummy = type2;
22264 g.setNode(v, attrs);
22265 return v;
22266 }
22267 function simplify(g) {
22268 var simplified = new Graph().setGraph(g.graph());
22269 forEach(g.nodes(), function(v) {
22270 simplified.setNode(v, g.node(v));
22271 });
22272 forEach(g.edges(), function(e) {
22273 var simpleLabel = simplified.edge(e.v, e.w) || { weight: 0, minlen: 1 };
22274 var label = g.edge(e);
22275 simplified.setEdge(e.v, e.w, {
22276 weight: simpleLabel.weight + label.weight,
22277 minlen: Math.max(simpleLabel.minlen, label.minlen)
22278 });
22279 });
22280 return simplified;
22281 }
22282 function asNonCompoundGraph(g) {
22283 var simplified = new Graph({ multigraph: g.isMultigraph() }).setGraph(g.graph());
22284 forEach(g.nodes(), function(v) {
22285 if (!g.children(v).length) {
22286 simplified.setNode(v, g.node(v));
22287 }
22288 });
22289 forEach(g.edges(), function(e) {
22290 simplified.setEdge(e, g.edge(e));
22291 });
22292 return simplified;
22293 }
22294 function intersectRect$3(rect2, point2) {
22295 var x2 = rect2.x;
22296 var y2 = rect2.y;
22297 var dx = point2.x - x2;
22298 var dy = point2.y - y2;
22299 var w2 = rect2.width / 2;
22300 var h = rect2.height / 2;
22301 if (!dx && !dy) {
22302 throw new Error("Not possible to find intersection inside of the rectangle");
22303 }
22304 var sx, sy;
22305 if (Math.abs(dy) * w2 > Math.abs(dx) * h) {
22306 if (dy < 0) {
22307 h = -h;
22308 }
22309 sx = h * dx / dy;
22310 sy = h;
22311 } else {
22312 if (dx < 0) {
22313 w2 = -w2;
22314 }
22315 sx = w2;
22316 sy = w2 * dy / dx;
22317 }
22318 return { x: x2 + sx, y: y2 + sy };
22319 }
22320 function buildLayerMatrix(g) {
22321 var layering = map(range$1(maxRank(g) + 1), function() {
22322 return [];
22323 });
22324 forEach(g.nodes(), function(v) {
22325 var node2 = g.node(v);
22326 var rank2 = node2.rank;
22327 if (!isUndefined(rank2)) {
22328 layering[rank2][node2.order] = v;
22329 }
22330 });
22331 return layering;
22332 }
22333 function normalizeRanks(g) {
22334 var min$12 = min(
22335 map(g.nodes(), function(v) {
22336 return g.node(v).rank;
22337 })
22338 );
22339 forEach(g.nodes(), function(v) {
22340 var node2 = g.node(v);
22341 if (has(node2, "rank")) {
22342 node2.rank -= min$12;
22343 }
22344 });
22345 }
22346 function removeEmptyRanks(g) {
22347 var offset = min(
22348 map(g.nodes(), function(v) {
22349 return g.node(v).rank;
22350 })
22351 );
22352 var layers = [];
22353 forEach(g.nodes(), function(v) {
22354 var rank2 = g.node(v).rank - offset;
22355 if (!layers[rank2]) {
22356 layers[rank2] = [];
22357 }
22358 layers[rank2].push(v);
22359 });
22360 var delta = 0;
22361 var nodeRankFactor = g.graph().nodeRankFactor;
22362 forEach(layers, function(vs, i2) {
22363 if (isUndefined(vs) && i2 % nodeRankFactor !== 0) {
22364 --delta;
22365 } else if (delta) {
22366 forEach(vs, function(v) {
22367 g.node(v).rank += delta;
22368 });
22369 }
22370 });
22371 }
22372 function addBorderNode$1(g, prefix, rank2, order2) {
22373 var node2 = {
22374 width: 0,
22375 height: 0
22376 };
22377 if (arguments.length >= 4) {
22378 node2.rank = rank2;
22379 node2.order = order2;
22380 }
22381 return addDummyNode(g, "border", node2, prefix);
22382 }
22383 function maxRank(g) {
22384 return max(
22385 map(g.nodes(), function(v) {
22386 var rank2 = g.node(v).rank;
22387 if (!isUndefined(rank2)) {
22388 return rank2;
22389 }
22390 })
22391 );
22392 }
22393 function partition(collection, fn) {
22394 var result = { lhs: [], rhs: [] };
22395 forEach(collection, function(value) {
22396 if (fn(value)) {
22397 result.lhs.push(value);
22398 } else {
22399 result.rhs.push(value);
22400 }
22401 });
22402 return result;
22403 }
22404 function time(name2, fn) {
22405 var start2 = now$1();
22406 try {
22407 return fn();
22408 } finally {
22409 console.log(name2 + " time: " + (now$1() - start2) + "ms");
22410 }
22411 }
22412 function notime(name2, fn) {
22413 return fn();
22414 }
22415 function addBorderSegments(g) {
22416 function dfs2(v) {
22417 var children2 = g.children(v);
22418 var node2 = g.node(v);
22419 if (children2.length) {
22420 forEach(children2, dfs2);
22421 }
22422 if (has(node2, "minRank")) {
22423 node2.borderLeft = [];
22424 node2.borderRight = [];
22425 for (var rank2 = node2.minRank, maxRank2 = node2.maxRank + 1; rank2 < maxRank2; ++rank2) {
22426 addBorderNode(g, "borderLeft", "_bl", v, node2, rank2);
22427 addBorderNode(g, "borderRight", "_br", v, node2, rank2);
22428 }
22429 }
22430 }
22431 forEach(g.children(), dfs2);
22432 }
22433 function addBorderNode(g, prop, prefix, sg, sgNode, rank2) {
22434 var label = { width: 0, height: 0, rank: rank2, borderType: prop };
22435 var prev2 = sgNode[prop][rank2 - 1];
22436 var curr = addDummyNode(g, "border", label, prefix);
22437 sgNode[prop][rank2] = curr;
22438 g.setParent(curr, sg);
22439 if (prev2) {
22440 g.setEdge(prev2, curr, { weight: 1 });
22441 }
22442 }
22443 function adjust(g) {
22444 var rankDir = g.graph().rankdir.toLowerCase();
22445 if (rankDir === "lr" || rankDir === "rl") {
22446 swapWidthHeight(g);
22447 }
22448 }
22449 function undo$1(g) {
22450 var rankDir = g.graph().rankdir.toLowerCase();
22451 if (rankDir === "bt" || rankDir === "rl") {
22452 reverseY(g);
22453 }
22454 if (rankDir === "lr" || rankDir === "rl") {
22455 swapXY(g);
22456 swapWidthHeight(g);
22457 }
22458 }
22459 function swapWidthHeight(g) {
22460 forEach(g.nodes(), function(v) {
22461 swapWidthHeightOne(g.node(v));
22462 });
22463 forEach(g.edges(), function(e) {
22464 swapWidthHeightOne(g.edge(e));
22465 });
22466 }
22467 function swapWidthHeightOne(attrs) {
22468 var w2 = attrs.width;
22469 attrs.width = attrs.height;
22470 attrs.height = w2;
22471 }
22472 function reverseY(g) {
22473 forEach(g.nodes(), function(v) {
22474 reverseYOne(g.node(v));
22475 });
22476 forEach(g.edges(), function(e) {
22477 var edge = g.edge(e);
22478 forEach(edge.points, reverseYOne);
22479 if (has(edge, "y")) {
22480 reverseYOne(edge);
22481 }
22482 });
22483 }
22484 function reverseYOne(attrs) {
22485 attrs.y = -attrs.y;
22486 }
22487 function swapXY(g) {
22488 forEach(g.nodes(), function(v) {
22489 swapXYOne(g.node(v));
22490 });
22491 forEach(g.edges(), function(e) {
22492 var edge = g.edge(e);
22493 forEach(edge.points, swapXYOne);
22494 if (has(edge, "x")) {
22495 swapXYOne(edge);
22496 }
22497 });
22498 }
22499 function swapXYOne(attrs) {
22500 var x2 = attrs.x;
22501 attrs.x = attrs.y;
22502 attrs.y = x2;
22503 }
22504 function run$1(g) {
22505 g.graph().dummyChains = [];
22506 forEach(g.edges(), function(edge) {
22507 normalizeEdge(g, edge);
22508 });
22509 }
22510 function normalizeEdge(g, e) {
22511 var v = e.v;
22512 var vRank = g.node(v).rank;
22513 var w2 = e.w;
22514 var wRank = g.node(w2).rank;
22515 var name2 = e.name;
22516 var edgeLabel = g.edge(e);
22517 var labelRank = edgeLabel.labelRank;
22518 if (wRank === vRank + 1)
22519 return;
22520 g.removeEdge(e);
22521 var dummy, attrs, i2;
22522 for (i2 = 0, ++vRank; vRank < wRank; ++i2, ++vRank) {
22523 edgeLabel.points = [];
22524 attrs = {
22525 width: 0,
22526 height: 0,
22527 edgeLabel,
22528 edgeObj: e,
22529 rank: vRank
22530 };
22531 dummy = addDummyNode(g, "edge", attrs, "_d");
22532 if (vRank === labelRank) {
22533 attrs.width = edgeLabel.width;
22534 attrs.height = edgeLabel.height;
22535 attrs.dummy = "edge-label";
22536 attrs.labelpos = edgeLabel.labelpos;
22537 }
22538 g.setEdge(v, dummy, { weight: edgeLabel.weight }, name2);
22539 if (i2 === 0) {
22540 g.graph().dummyChains.push(dummy);
22541 }
22542 v = dummy;
22543 }
22544 g.setEdge(v, w2, { weight: edgeLabel.weight }, name2);
22545 }
22546 function undo(g) {
22547 forEach(g.graph().dummyChains, function(v) {
22548 var node2 = g.node(v);
22549 var origLabel = node2.edgeLabel;
22550 var w2;
22551 g.setEdge(node2.edgeObj, origLabel);
22552 while (node2.dummy) {
22553 w2 = g.successors(v)[0];
22554 g.removeNode(v);
22555 origLabel.points.push({ x: node2.x, y: node2.y });
22556 if (node2.dummy === "edge-label") {
22557 origLabel.x = node2.x;
22558 origLabel.y = node2.y;
22559 origLabel.width = node2.width;
22560 origLabel.height = node2.height;
22561 }
22562 v = w2;
22563 node2 = g.node(v);
22564 }
22565 });
22566 }
22567 function longestPath(g) {
22568 var visited = {};
22569 function dfs2(v) {
22570 var label = g.node(v);
22571 if (has(visited, v)) {
22572 return label.rank;
22573 }
22574 visited[v] = true;
22575 var rank2 = min(
22576 map(g.outEdges(v), function(e) {
22577 return dfs2(e.w) - g.edge(e).minlen;
22578 })
22579 );
22580 if (rank2 === Number.POSITIVE_INFINITY || // return value of _.map([]) for Lodash 3
22581 rank2 === void 0 || // return value of _.map([]) for Lodash 4
22582 rank2 === null) {
22583 rank2 = 0;
22584 }
22585 return label.rank = rank2;
22586 }
22587 forEach(g.sources(), dfs2);
22588 }
22589 function slack(g, e) {
22590 return g.node(e.w).rank - g.node(e.v).rank - g.edge(e).minlen;
22591 }
22592 function feasibleTree(g) {
22593 var t4 = new Graph({ directed: false });
22594 var start2 = g.nodes()[0];
22595 var size2 = g.nodeCount();
22596 t4.setNode(start2, {});
22597 var edge, delta;
22598 while (tightTree(t4, g) < size2) {
22599 edge = findMinSlackEdge(t4, g);
22600 delta = t4.hasNode(edge.v) ? slack(g, edge) : -slack(g, edge);
22601 shiftRanks(t4, g, delta);
22602 }
22603 return t4;
22604 }
22605 function tightTree(t4, g) {
22606 function dfs2(v) {
22607 forEach(g.nodeEdges(v), function(e) {
22608 var edgeV = e.v, w2 = v === edgeV ? e.w : edgeV;
22609 if (!t4.hasNode(w2) && !slack(g, e)) {
22610 t4.setNode(w2, {});
22611 t4.setEdge(v, w2, {});
22612 dfs2(w2);
22613 }
22614 });
22615 }
22616 forEach(t4.nodes(), dfs2);
22617 return t4.nodeCount();
22618 }
22619 function findMinSlackEdge(t4, g) {
22620 return minBy(g.edges(), function(e) {
22621 if (t4.hasNode(e.v) !== t4.hasNode(e.w)) {
22622 return slack(g, e);
22623 }
22624 });
22625 }
22626 function shiftRanks(t4, g, delta) {
22627 forEach(t4.nodes(), function(v) {
22628 g.node(v).rank += delta;
22629 });
22630 }
22631 function CycleException() {
22632 }
22633 CycleException.prototype = new Error();
22634 function dfs$1(g, vs, order2) {
22635 if (!isArray$1(vs)) {
22636 vs = [vs];
22637 }
22638 var navigation = (g.isDirected() ? g.successors : g.neighbors).bind(g);
22639 var acc = [];
22640 var visited = {};
22641 forEach(vs, function(v) {
22642 if (!g.hasNode(v)) {
22643 throw new Error("Graph does not have node: " + v);
22644 }
22645 doDfs(g, v, order2 === "post", visited, navigation, acc);
22646 });
22647 return acc;
22648 }
22649 function doDfs(g, v, postorder2, visited, navigation, acc) {
22650 if (!has(visited, v)) {
22651 visited[v] = true;
22652 if (!postorder2) {
22653 acc.push(v);
22654 }
22655 forEach(navigation(v), function(w2) {
22656 doDfs(g, w2, postorder2, visited, navigation, acc);
22657 });
22658 if (postorder2) {
22659 acc.push(v);
22660 }
22661 }
22662 }
22663 function postorder$1(g, vs) {
22664 return dfs$1(g, vs, "post");
22665 }
22666 function preorder(g, vs) {
22667 return dfs$1(g, vs, "pre");
22668 }
22669 networkSimplex.initLowLimValues = initLowLimValues;
22670 networkSimplex.initCutValues = initCutValues;
22671 networkSimplex.calcCutValue = calcCutValue;
22672 networkSimplex.leaveEdge = leaveEdge;
22673 networkSimplex.enterEdge = enterEdge;
22674 networkSimplex.exchangeEdges = exchangeEdges;
22675 function networkSimplex(g) {
22676 g = simplify(g);
22677 longestPath(g);
22678 var t4 = feasibleTree(g);
22679 initLowLimValues(t4);
22680 initCutValues(t4, g);
22681 var e, f2;
22682 while (e = leaveEdge(t4)) {
22683 f2 = enterEdge(t4, g, e);
22684 exchangeEdges(t4, g, e, f2);
22685 }
22686 }
22687 function initCutValues(t4, g) {
22688 var vs = postorder$1(t4, t4.nodes());
22689 vs = vs.slice(0, vs.length - 1);
22690 forEach(vs, function(v) {
22691 assignCutValue(t4, g, v);
22692 });
22693 }
22694 function assignCutValue(t4, g, child) {
22695 var childLab = t4.node(child);
22696 var parent = childLab.parent;
22697 t4.edge(child, parent).cutvalue = calcCutValue(t4, g, child);
22698 }
22699 function calcCutValue(t4, g, child) {
22700 var childLab = t4.node(child);
22701 var parent = childLab.parent;
22702 var childIsTail = true;
22703 var graphEdge = g.edge(child, parent);
22704 var cutValue = 0;
22705 if (!graphEdge) {
22706 childIsTail = false;
22707 graphEdge = g.edge(parent, child);
22708 }
22709 cutValue = graphEdge.weight;
22710 forEach(g.nodeEdges(child), function(e) {
22711 var isOutEdge = e.v === child, other = isOutEdge ? e.w : e.v;
22712 if (other !== parent) {
22713 var pointsToHead = isOutEdge === childIsTail, otherWeight = g.edge(e).weight;
22714 cutValue += pointsToHead ? otherWeight : -otherWeight;
22715 if (isTreeEdge(t4, child, other)) {
22716 var otherCutValue = t4.edge(child, other).cutvalue;
22717 cutValue += pointsToHead ? -otherCutValue : otherCutValue;
22718 }
22719 }
22720 });
22721 return cutValue;
22722 }
22723 function initLowLimValues(tree, root2) {
22724 if (arguments.length < 2) {
22725 root2 = tree.nodes()[0];
22726 }
22727 dfsAssignLowLim(tree, {}, 1, root2);
22728 }
22729 function dfsAssignLowLim(tree, visited, nextLim, v, parent) {
22730 var low = nextLim;
22731 var label = tree.node(v);
22732 visited[v] = true;
22733 forEach(tree.neighbors(v), function(w2) {
22734 if (!has(visited, w2)) {
22735 nextLim = dfsAssignLowLim(tree, visited, nextLim, w2, v);
22736 }
22737 });
22738 label.low = low;
22739 label.lim = nextLim++;
22740 if (parent) {
22741 label.parent = parent;
22742 } else {
22743 delete label.parent;
22744 }
22745 return nextLim;
22746 }
22747 function leaveEdge(tree) {
22748 return find$1(tree.edges(), function(e) {
22749 return tree.edge(e).cutvalue < 0;
22750 });
22751 }
22752 function enterEdge(t4, g, edge) {
22753 var v = edge.v;
22754 var w2 = edge.w;
22755 if (!g.hasEdge(v, w2)) {
22756 v = edge.w;
22757 w2 = edge.v;
22758 }
22759 var vLabel = t4.node(v);
22760 var wLabel = t4.node(w2);
22761 var tailLabel = vLabel;
22762 var flip = false;
22763 if (vLabel.lim > wLabel.lim) {
22764 tailLabel = wLabel;
22765 flip = true;
22766 }
22767 var candidates = filter(g.edges(), function(edge2) {
22768 return flip === isDescendant$1(t4, t4.node(edge2.v), tailLabel) && flip !== isDescendant$1(t4, t4.node(edge2.w), tailLabel);
22769 });
22770 return minBy(candidates, function(edge2) {
22771 return slack(g, edge2);
22772 });
22773 }
22774 function exchangeEdges(t4, g, e, f2) {
22775 var v = e.v;
22776 var w2 = e.w;
22777 t4.removeEdge(v, w2);
22778 t4.setEdge(f2.v, f2.w, {});
22779 initLowLimValues(t4);
22780 initCutValues(t4, g);
22781 updateRanks(t4, g);
22782 }
22783 function updateRanks(t4, g) {
22784 var root2 = find$1(t4.nodes(), function(v) {
22785 return !g.node(v).parent;
22786 });
22787 var vs = preorder(t4, root2);
22788 vs = vs.slice(1);
22789 forEach(vs, function(v) {
22790 var parent = t4.node(v).parent, edge = g.edge(v, parent), flipped = false;
22791 if (!edge) {
22792 edge = g.edge(parent, v);
22793 flipped = true;
22794 }
22795 g.node(v).rank = g.node(parent).rank + (flipped ? edge.minlen : -edge.minlen);
22796 });
22797 }
22798 function isTreeEdge(tree, u2, v) {
22799 return tree.hasEdge(u2, v);
22800 }
22801 function isDescendant$1(tree, vLabel, rootLabel) {
22802 return rootLabel.low <= vLabel.lim && vLabel.lim <= rootLabel.lim;
22803 }
22804 function rank(g) {
22805 switch (g.graph().ranker) {
22806 case "network-simplex":
22807 networkSimplexRanker(g);
22808 break;
22809 case "tight-tree":
22810 tightTreeRanker(g);
22811 break;
22812 case "longest-path":
22813 longestPathRanker(g);
22814 break;
22815 default:
22816 networkSimplexRanker(g);
22817 }
22818 }
22819 var longestPathRanker = longestPath;
22820 function tightTreeRanker(g) {
22821 longestPath(g);
22822 feasibleTree(g);
22823 }
22824 function networkSimplexRanker(g) {
22825 networkSimplex(g);
22826 }
22827 function run(g) {
22828 var root2 = addDummyNode(g, "root", {}, "_root");
22829 var depths = treeDepths(g);
22830 var height2 = max(values(depths)) - 1;
22831 var nodeSep = 2 * height2 + 1;
22832 g.graph().nestingRoot = root2;
22833 forEach(g.edges(), function(e) {
22834 g.edge(e).minlen *= nodeSep;
22835 });
22836 var weight = sumWeights(g) + 1;
22837 forEach(g.children(), function(child) {
22838 dfs(g, root2, nodeSep, weight, height2, depths, child);
22839 });
22840 g.graph().nodeRankFactor = nodeSep;
22841 }
22842 function dfs(g, root2, nodeSep, weight, height2, depths, v) {
22843 var children2 = g.children(v);
22844 if (!children2.length) {
22845 if (v !== root2) {
22846 g.setEdge(root2, v, { weight: 0, minlen: nodeSep });
22847 }
22848 return;
22849 }
22850 var top2 = addBorderNode$1(g, "_bt");
22851 var bottom2 = addBorderNode$1(g, "_bb");
22852 var label = g.node(v);
22853 g.setParent(top2, v);
22854 label.borderTop = top2;
22855 g.setParent(bottom2, v);
22856 label.borderBottom = bottom2;
22857 forEach(children2, function(child) {
22858 dfs(g, root2, nodeSep, weight, height2, depths, child);
22859 var childNode = g.node(child);
22860 var childTop = childNode.borderTop ? childNode.borderTop : child;
22861 var childBottom = childNode.borderBottom ? childNode.borderBottom : child;
22862 var thisWeight = childNode.borderTop ? weight : 2 * weight;
22863 var minlen = childTop !== childBottom ? 1 : height2 - depths[v] + 1;
22864 g.setEdge(top2, childTop, {
22865 weight: thisWeight,
22866 minlen,
22867 nestingEdge: true
22868 });
22869 g.setEdge(childBottom, bottom2, {
22870 weight: thisWeight,
22871 minlen,
22872 nestingEdge: true
22873 });
22874 });
22875 if (!g.parent(v)) {
22876 g.setEdge(root2, top2, { weight: 0, minlen: height2 + depths[v] });
22877 }
22878 }
22879 function treeDepths(g) {
22880 var depths = {};
22881 function dfs2(v, depth) {
22882 var children2 = g.children(v);
22883 if (children2 && children2.length) {
22884 forEach(children2, function(child) {
22885 dfs2(child, depth + 1);
22886 });
22887 }
22888 depths[v] = depth;
22889 }
22890 forEach(g.children(), function(v) {
22891 dfs2(v, 1);
22892 });
22893 return depths;
22894 }
22895 function sumWeights(g) {
22896 return reduce(
22897 g.edges(),
22898 function(acc, e) {
22899 return acc + g.edge(e).weight;
22900 },
22901 0
22902 );
22903 }
22904 function cleanup(g) {
22905 var graphLabel = g.graph();
22906 g.removeNode(graphLabel.nestingRoot);
22907 delete graphLabel.nestingRoot;
22908 forEach(g.edges(), function(e) {
22909 var edge = g.edge(e);
22910 if (edge.nestingEdge) {
22911 g.removeEdge(e);
22912 }
22913 });
22914 }
22915 function addSubgraphConstraints(g, cg, vs) {
22916 var prev2 = {}, rootPrev;
22917 forEach(vs, function(v) {
22918 var child = g.parent(v), parent, prevChild;
22919 while (child) {
22920 parent = g.parent(child);
22921 if (parent) {
22922 prevChild = prev2[parent];
22923 prev2[parent] = child;
22924 } else {
22925 prevChild = rootPrev;
22926 rootPrev = child;
22927 }
22928 if (prevChild && prevChild !== child) {
22929 cg.setEdge(prevChild, child);
22930 return;
22931 }
22932 child = parent;
22933 }
22934 });
22935 }
22936 function buildLayerGraph(g, rank2, relationship) {
22937 var root2 = createRootNode(g), result = new Graph({ compound: true }).setGraph({ root: root2 }).setDefaultNodeLabel(function(v) {
22938 return g.node(v);
22939 });
22940 forEach(g.nodes(), function(v) {
22941 var node2 = g.node(v), parent = g.parent(v);
22942 if (node2.rank === rank2 || node2.minRank <= rank2 && rank2 <= node2.maxRank) {
22943 result.setNode(v);
22944 result.setParent(v, parent || root2);
22945 forEach(g[relationship](v), function(e) {
22946 var u2 = e.v === v ? e.w : e.v, edge = result.edge(u2, v), weight = !isUndefined(edge) ? edge.weight : 0;
22947 result.setEdge(u2, v, { weight: g.edge(e).weight + weight });
22948 });
22949 if (has(node2, "minRank")) {
22950 result.setNode(v, {
22951 borderLeft: node2.borderLeft[rank2],
22952 borderRight: node2.borderRight[rank2]
22953 });
22954 }
22955 }
22956 });
22957 return result;
22958 }
22959 function createRootNode(g) {
22960 var v;
22961 while (g.hasNode(v = uniqueId("_root")))
22962 ;
22963 return v;
22964 }
22965 function crossCount(g, layering) {
22966 var cc = 0;
22967 for (var i2 = 1; i2 < layering.length; ++i2) {
22968 cc += twoLayerCrossCount(g, layering[i2 - 1], layering[i2]);
22969 }
22970 return cc;
22971 }
22972 function twoLayerCrossCount(g, northLayer, southLayer) {
22973 var southPos = zipObject(
22974 southLayer,
22975 map(southLayer, function(v, i2) {
22976 return i2;
22977 })
22978 );
22979 var southEntries = flatten(
22980 map(northLayer, function(v) {
22981 return sortBy$1(
22982 map(g.outEdges(v), function(e) {
22983 return { pos: southPos[e.w], weight: g.edge(e).weight };
22984 }),
22985 "pos"
22986 );
22987 })
22988 );
22989 var firstIndex = 1;
22990 while (firstIndex < southLayer.length)
22991 firstIndex <<= 1;
22992 var treeSize = 2 * firstIndex - 1;
22993 firstIndex -= 1;
22994 var tree = map(new Array(treeSize), function() {
22995 return 0;
22996 });
22997 var cc = 0;
22998 forEach(
22999 // @ts-expect-error
23000 southEntries.forEach(function(entry) {
23001 var index2 = entry.pos + firstIndex;
23002 tree[index2] += entry.weight;
23003 var weightSum = 0;
23004 while (index2 > 0) {
23005 if (index2 % 2) {
23006 weightSum += tree[index2 + 1];
23007 }
23008 index2 = index2 - 1 >> 1;
23009 tree[index2] += entry.weight;
23010 }
23011 cc += entry.weight * weightSum;
23012 })
23013 );
23014 return cc;
23015 }
23016 function initOrder(g) {
23017 var visited = {};
23018 var simpleNodes = filter(g.nodes(), function(v) {
23019 return !g.children(v).length;
23020 });
23021 var maxRank2 = max(
23022 map(simpleNodes, function(v) {
23023 return g.node(v).rank;
23024 })
23025 );
23026 var layers = map(range$1(maxRank2 + 1), function() {
23027 return [];
23028 });
23029 function dfs2(v) {
23030 if (has(visited, v))
23031 return;
23032 visited[v] = true;
23033 var node2 = g.node(v);
23034 layers[node2.rank].push(v);
23035 forEach(g.successors(v), dfs2);
23036 }
23037 var orderedVs = sortBy$1(simpleNodes, function(v) {
23038 return g.node(v).rank;
23039 });
23040 forEach(orderedVs, dfs2);
23041 return layers;
23042 }
23043 function barycenter(g, movable) {
23044 return map(movable, function(v) {
23045 var inV = g.inEdges(v);
23046 if (!inV.length) {
23047 return { v };
23048 } else {
23049 var result = reduce(
23050 inV,
23051 function(acc, e) {
23052 var edge = g.edge(e), nodeU = g.node(e.v);
23053 return {
23054 sum: acc.sum + edge.weight * nodeU.order,
23055 weight: acc.weight + edge.weight
23056 };
23057 },
23058 { sum: 0, weight: 0 }
23059 );
23060 return {
23061 v,
23062 barycenter: result.sum / result.weight,
23063 weight: result.weight
23064 };
23065 }
23066 });
23067 }
23068 function resolveConflicts(entries2, cg) {
23069 var mappedEntries = {};
23070 forEach(entries2, function(entry, i2) {
23071 var tmp = mappedEntries[entry.v] = {
23072 indegree: 0,
23073 in: [],
23074 out: [],
23075 vs: [entry.v],
23076 i: i2
23077 };
23078 if (!isUndefined(entry.barycenter)) {
23079 tmp.barycenter = entry.barycenter;
23080 tmp.weight = entry.weight;
23081 }
23082 });
23083 forEach(cg.edges(), function(e) {
23084 var entryV = mappedEntries[e.v];
23085 var entryW = mappedEntries[e.w];
23086 if (!isUndefined(entryV) && !isUndefined(entryW)) {
23087 entryW.indegree++;
23088 entryV.out.push(mappedEntries[e.w]);
23089 }
23090 });
23091 var sourceSet = filter(mappedEntries, function(entry) {
23092 return !entry.indegree;
23093 });
23094 return doResolveConflicts(sourceSet);
23095 }
23096 function doResolveConflicts(sourceSet) {
23097 var entries2 = [];
23098 function handleIn(vEntry) {
23099 return function(uEntry) {
23100 if (uEntry.merged) {
23101 return;
23102 }
23103 if (isUndefined(uEntry.barycenter) || isUndefined(vEntry.barycenter) || uEntry.barycenter >= vEntry.barycenter) {
23104 mergeEntries(vEntry, uEntry);
23105 }
23106 };
23107 }
23108 function handleOut(vEntry) {
23109 return function(wEntry) {
23110 wEntry["in"].push(vEntry);
23111 if (--wEntry.indegree === 0) {
23112 sourceSet.push(wEntry);
23113 }
23114 };
23115 }
23116 while (sourceSet.length) {
23117 var entry = sourceSet.pop();
23118 entries2.push(entry);
23119 forEach(entry["in"].reverse(), handleIn(entry));
23120 forEach(entry.out, handleOut(entry));
23121 }
23122 return map(
23123 filter(entries2, function(entry2) {
23124 return !entry2.merged;
23125 }),
23126 function(entry2) {
23127 return pick$1(entry2, ["vs", "i", "barycenter", "weight"]);
23128 }
23129 );
23130 }
23131 function mergeEntries(target, source) {
23132 var sum = 0;
23133 var weight = 0;
23134 if (target.weight) {
23135 sum += target.barycenter * target.weight;
23136 weight += target.weight;
23137 }
23138 if (source.weight) {
23139 sum += source.barycenter * source.weight;
23140 weight += source.weight;
23141 }
23142 target.vs = source.vs.concat(target.vs);
23143 target.barycenter = sum / weight;
23144 target.weight = weight;
23145 target.i = Math.min(source.i, target.i);
23146 source.merged = true;
23147 }
23148 function sort(entries2, biasRight) {
23149 var parts = partition(entries2, function(entry) {
23150 return has(entry, "barycenter");
23151 });
23152 var sortable = parts.lhs, unsortable = sortBy$1(parts.rhs, function(entry) {
23153 return -entry.i;
23154 }), vs = [], sum = 0, weight = 0, vsIndex = 0;
23155 sortable.sort(compareWithBias(!!biasRight));
23156 vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
23157 forEach(sortable, function(entry) {
23158 vsIndex += entry.vs.length;
23159 vs.push(entry.vs);
23160 sum += entry.barycenter * entry.weight;
23161 weight += entry.weight;
23162 vsIndex = consumeUnsortable(vs, unsortable, vsIndex);
23163 });
23164 var result = { vs: flatten(vs) };
23165 if (weight) {
23166 result.barycenter = sum / weight;
23167 result.weight = weight;
23168 }
23169 return result;
23170 }
23171 function consumeUnsortable(vs, unsortable, index2) {
23172 var last$1;
23173 while (unsortable.length && (last$1 = last(unsortable)).i <= index2) {
23174 unsortable.pop();
23175 vs.push(last$1.vs);
23176 index2++;
23177 }
23178 return index2;
23179 }
23180 function compareWithBias(bias) {
23181 return function(entryV, entryW) {
23182 if (entryV.barycenter < entryW.barycenter) {
23183 return -1;
23184 } else if (entryV.barycenter > entryW.barycenter) {
23185 return 1;
23186 }
23187 return !bias ? entryV.i - entryW.i : entryW.i - entryV.i;
23188 };
23189 }
23190 function sortSubgraph(g, v, cg, biasRight) {
23191 var movable = g.children(v);
23192 var node2 = g.node(v);
23193 var bl = node2 ? node2.borderLeft : void 0;
23194 var br = node2 ? node2.borderRight : void 0;
23195 var subgraphs = {};
23196 if (bl) {
23197 movable = filter(movable, function(w2) {
23198 return w2 !== bl && w2 !== br;
23199 });
23200 }
23201 var barycenters = barycenter(g, movable);
23202 forEach(barycenters, function(entry) {
23203 if (g.children(entry.v).length) {
23204 var subgraphResult = sortSubgraph(g, entry.v, cg, biasRight);
23205 subgraphs[entry.v] = subgraphResult;
23206 if (has(subgraphResult, "barycenter")) {
23207 mergeBarycenters(entry, subgraphResult);
23208 }
23209 }
23210 });
23211 var entries2 = resolveConflicts(barycenters, cg);
23212 expandSubgraphs(entries2, subgraphs);
23213 var result = sort(entries2, biasRight);
23214 if (bl) {
23215 result.vs = flatten([bl, result.vs, br]);
23216 if (g.predecessors(bl).length) {
23217 var blPred = g.node(g.predecessors(bl)[0]), brPred = g.node(g.predecessors(br)[0]);
23218 if (!has(result, "barycenter")) {
23219 result.barycenter = 0;
23220 result.weight = 0;
23221 }
23222 result.barycenter = (result.barycenter * result.weight + blPred.order + brPred.order) / (result.weight + 2);
23223 result.weight += 2;
23224 }
23225 }
23226 return result;
23227 }
23228 function expandSubgraphs(entries2, subgraphs) {
23229 forEach(entries2, function(entry) {
23230 entry.vs = flatten(
23231 entry.vs.map(function(v) {
23232 if (subgraphs[v]) {
23233 return subgraphs[v].vs;
23234 }
23235 return v;
23236 })
23237 );
23238 });
23239 }
23240 function mergeBarycenters(target, other) {
23241 if (!isUndefined(target.barycenter)) {
23242 target.barycenter = (target.barycenter * target.weight + other.barycenter * other.weight) / (target.weight + other.weight);
23243 target.weight += other.weight;
23244 } else {
23245 target.barycenter = other.barycenter;
23246 target.weight = other.weight;
23247 }
23248 }
23249 function order(g) {
23250 var maxRank$1 = maxRank(g), downLayerGraphs = buildLayerGraphs(g, range$1(1, maxRank$1 + 1), "inEdges"), upLayerGraphs = buildLayerGraphs(g, range$1(maxRank$1 - 1, -1, -1), "outEdges");
23251 var layering = initOrder(g);
23252 assignOrder(g, layering);
23253 var bestCC = Number.POSITIVE_INFINITY, best;
23254 for (var i2 = 0, lastBest = 0; lastBest < 4; ++i2, ++lastBest) {
23255 sweepLayerGraphs(i2 % 2 ? downLayerGraphs : upLayerGraphs, i2 % 4 >= 2);
23256 layering = buildLayerMatrix(g);
23257 var cc = crossCount(g, layering);
23258 if (cc < bestCC) {
23259 lastBest = 0;
23260 best = cloneDeep(layering);
23261 bestCC = cc;
23262 }
23263 }
23264 assignOrder(g, best);
23265 }
23266 function buildLayerGraphs(g, ranks, relationship) {
23267 return map(ranks, function(rank2) {
23268 return buildLayerGraph(g, rank2, relationship);
23269 });
23270 }
23271 function sweepLayerGraphs(layerGraphs, biasRight) {
23272 var cg = new Graph();
23273 forEach(layerGraphs, function(lg) {
23274 var root2 = lg.graph().root;
23275 var sorted = sortSubgraph(lg, root2, cg, biasRight);
23276 forEach(sorted.vs, function(v, i2) {
23277 lg.node(v).order = i2;
23278 });
23279 addSubgraphConstraints(lg, cg, sorted.vs);
23280 });
23281 }
23282 function assignOrder(g, layering) {
23283 forEach(layering, function(layer) {
23284 forEach(layer, function(v, i2) {
23285 g.node(v).order = i2;
23286 });
23287 });
23288 }
23289 function parentDummyChains(g) {
23290 var postorderNums = postorder(g);
23291 forEach(g.graph().dummyChains, function(v) {
23292 var node2 = g.node(v);
23293 var edgeObj = node2.edgeObj;
23294 var pathData = findPath(g, postorderNums, edgeObj.v, edgeObj.w);
23295 var path2 = pathData.path;
23296 var lca = pathData.lca;
23297 var pathIdx = 0;
23298 var pathV = path2[pathIdx];
23299 var ascending2 = true;
23300 while (v !== edgeObj.w) {
23301 node2 = g.node(v);
23302 if (ascending2) {
23303 while ((pathV = path2[pathIdx]) !== lca && g.node(pathV).maxRank < node2.rank) {
23304 pathIdx++;
23305 }
23306 if (pathV === lca) {
23307 ascending2 = false;
23308 }
23309 }
23310 if (!ascending2) {
23311 while (pathIdx < path2.length - 1 && g.node(pathV = path2[pathIdx + 1]).minRank <= node2.rank) {
23312 pathIdx++;
23313 }
23314 pathV = path2[pathIdx];
23315 }
23316 g.setParent(v, pathV);
23317 v = g.successors(v)[0];
23318 }
23319 });
23320 }
23321 function findPath(g, postorderNums, v, w2) {
23322 var vPath = [];
23323 var wPath = [];
23324 var low = Math.min(postorderNums[v].low, postorderNums[w2].low);
23325 var lim = Math.max(postorderNums[v].lim, postorderNums[w2].lim);
23326 var parent;
23327 var lca;
23328 parent = v;
23329 do {
23330 parent = g.parent(parent);
23331 vPath.push(parent);
23332 } while (parent && (postorderNums[parent].low > low || lim > postorderNums[parent].lim));
23333 lca = parent;
23334 parent = w2;
23335 while ((parent = g.parent(parent)) !== lca) {
23336 wPath.push(parent);
23337 }
23338 return { path: vPath.concat(wPath.reverse()), lca };
23339 }
23340 function postorder(g) {
23341 var result = {};
23342 var lim = 0;
23343 function dfs2(v) {
23344 var low = lim;
23345 forEach(g.children(v), dfs2);
23346 result[v] = { low, lim: lim++ };
23347 }
23348 forEach(g.children(), dfs2);
23349 return result;
23350 }
23351 function findType1Conflicts(g, layering) {
23352 var conflicts = {};
23353 function visitLayer(prevLayer, layer) {
23354 var k0 = 0, scanPos = 0, prevLayerLength = prevLayer.length, lastNode = last(layer);
23355 forEach(layer, function(v, i2) {
23356 var w2 = findOtherInnerSegmentNode(g, v), k1 = w2 ? g.node(w2).order : prevLayerLength;
23357 if (w2 || v === lastNode) {
23358 forEach(layer.slice(scanPos, i2 + 1), function(scanNode) {
23359 forEach(g.predecessors(scanNode), function(u2) {
23360 var uLabel = g.node(u2), uPos = uLabel.order;
23361 if ((uPos < k0 || k1 < uPos) && !(uLabel.dummy && g.node(scanNode).dummy)) {
23362 addConflict(conflicts, u2, scanNode);
23363 }
23364 });
23365 });
23366 scanPos = i2 + 1;
23367 k0 = k1;
23368 }
23369 });
23370 return layer;
23371 }
23372 reduce(layering, visitLayer);
23373 return conflicts;
23374 }
23375 function findType2Conflicts(g, layering) {
23376 var conflicts = {};
23377 function scan(south, southPos, southEnd, prevNorthBorder, nextNorthBorder) {
23378 var v;
23379 forEach(range$1(southPos, southEnd), function(i2) {
23380 v = south[i2];
23381 if (g.node(v).dummy) {
23382 forEach(g.predecessors(v), function(u2) {
23383 var uNode = g.node(u2);
23384 if (uNode.dummy && (uNode.order < prevNorthBorder || uNode.order > nextNorthBorder)) {
23385 addConflict(conflicts, u2, v);
23386 }
23387 });
23388 }
23389 });
23390 }
23391 function visitLayer(north, south) {
23392 var prevNorthPos = -1, nextNorthPos, southPos = 0;
23393 forEach(south, function(v, southLookahead) {
23394 if (g.node(v).dummy === "border") {
23395 var predecessors = g.predecessors(v);
23396 if (predecessors.length) {
23397 nextNorthPos = g.node(predecessors[0]).order;
23398 scan(south, southPos, southLookahead, prevNorthPos, nextNorthPos);
23399 southPos = southLookahead;
23400 prevNorthPos = nextNorthPos;
23401 }
23402 }
23403 scan(south, southPos, south.length, nextNorthPos, north.length);
23404 });
23405 return south;
23406 }
23407 reduce(layering, visitLayer);
23408 return conflicts;
23409 }
23410 function findOtherInnerSegmentNode(g, v) {
23411 if (g.node(v).dummy) {
23412 return find$1(g.predecessors(v), function(u2) {
23413 return g.node(u2).dummy;
23414 });
23415 }
23416 }
23417 function addConflict(conflicts, v, w2) {
23418 if (v > w2) {
23419 var tmp = v;
23420 v = w2;
23421 w2 = tmp;
23422 }
23423 var conflictsV = conflicts[v];
23424 if (!conflictsV) {
23425 conflicts[v] = conflictsV = {};
23426 }
23427 conflictsV[w2] = true;
23428 }
23429 function hasConflict(conflicts, v, w2) {
23430 if (v > w2) {
23431 var tmp = v;
23432 v = w2;
23433 w2 = tmp;
23434 }
23435 return has(conflicts[v], w2);
23436 }
23437 function verticalAlignment(g, layering, conflicts, neighborFn) {
23438 var root2 = {}, align = {}, pos = {};
23439 forEach(layering, function(layer) {
23440 forEach(layer, function(v, order2) {
23441 root2[v] = v;
23442 align[v] = v;
23443 pos[v] = order2;
23444 });
23445 });
23446 forEach(layering, function(layer) {
23447 var prevIdx = -1;
23448 forEach(layer, function(v) {
23449 var ws = neighborFn(v);
23450 if (ws.length) {
23451 ws = sortBy$1(ws, function(w3) {
23452 return pos[w3];
23453 });
23454 var mp = (ws.length - 1) / 2;
23455 for (var i2 = Math.floor(mp), il = Math.ceil(mp); i2 <= il; ++i2) {
23456 var w2 = ws[i2];
23457 if (align[v] === v && prevIdx < pos[w2] && !hasConflict(conflicts, v, w2)) {
23458 align[w2] = v;
23459 align[v] = root2[v] = root2[w2];
23460 prevIdx = pos[w2];
23461 }
23462 }
23463 }
23464 });
23465 });
23466 return { root: root2, align };
23467 }
23468 function horizontalCompaction(g, layering, root2, align, reverseSep) {
23469 var xs = {}, blockG = buildBlockGraph(g, layering, root2, reverseSep), borderType = reverseSep ? "borderLeft" : "borderRight";
23470 function iterate(setXsFunc, nextNodesFunc) {
23471 var stack = blockG.nodes();
23472 var elem = stack.pop();
23473 var visited = {};
23474 while (elem) {
23475 if (visited[elem]) {
23476 setXsFunc(elem);
23477 } else {
23478 visited[elem] = true;
23479 stack.push(elem);
23480 stack = stack.concat(nextNodesFunc(elem));
23481 }
23482 elem = stack.pop();
23483 }
23484 }
23485 function pass1(elem) {
23486 xs[elem] = blockG.inEdges(elem).reduce(function(acc, e) {
23487 return Math.max(acc, xs[e.v] + blockG.edge(e));
23488 }, 0);
23489 }
23490 function pass2(elem) {
23491 var min2 = blockG.outEdges(elem).reduce(function(acc, e) {
23492 return Math.min(acc, xs[e.w] - blockG.edge(e));
23493 }, Number.POSITIVE_INFINITY);
23494 var node2 = g.node(elem);
23495 if (min2 !== Number.POSITIVE_INFINITY && node2.borderType !== borderType) {
23496 xs[elem] = Math.max(xs[elem], min2);
23497 }
23498 }
23499 iterate(pass1, blockG.predecessors.bind(blockG));
23500 iterate(pass2, blockG.successors.bind(blockG));
23501 forEach(align, function(v) {
23502 xs[v] = xs[root2[v]];
23503 });
23504 return xs;
23505 }
23506 function buildBlockGraph(g, layering, root2, reverseSep) {
23507 var blockGraph = new Graph(), graphLabel = g.graph(), sepFn = sep(graphLabel.nodesep, graphLabel.edgesep, reverseSep);
23508 forEach(layering, function(layer) {
23509 var u2;
23510 forEach(layer, function(v) {
23511 var vRoot = root2[v];
23512 blockGraph.setNode(vRoot);
23513 if (u2) {
23514 var uRoot = root2[u2], prevMax = blockGraph.edge(uRoot, vRoot);
23515 blockGraph.setEdge(uRoot, vRoot, Math.max(sepFn(g, v, u2), prevMax || 0));
23516 }
23517 u2 = v;
23518 });
23519 });
23520 return blockGraph;
23521 }
23522 function findSmallestWidthAlignment(g, xss) {
23523 return minBy(values(xss), function(xs) {
23524 var max2 = Number.NEGATIVE_INFINITY;
23525 var min2 = Number.POSITIVE_INFINITY;
23526 forIn(xs, function(x2, v) {
23527 var halfWidth = width$1(g, v) / 2;
23528 max2 = Math.max(x2 + halfWidth, max2);
23529 min2 = Math.min(x2 - halfWidth, min2);
23530 });
23531 return max2 - min2;
23532 });
23533 }
23534 function alignCoordinates(xss, alignTo) {
23535 var alignToVals = values(alignTo), alignToMin = min(alignToVals), alignToMax = max(alignToVals);
23536 forEach(["u", "d"], function(vert) {
23537 forEach(["l", "r"], function(horiz) {
23538 var alignment = vert + horiz, xs = xss[alignment], delta;
23539 if (xs === alignTo)
23540 return;
23541 var xsVals = values(xs);
23542 delta = horiz === "l" ? alignToMin - min(xsVals) : alignToMax - max(xsVals);
23543 if (delta) {
23544 xss[alignment] = mapValues(xs, function(x2) {
23545 return x2 + delta;
23546 });
23547 }
23548 });
23549 });
23550 }
23551 function balance(xss, align) {
23552 return mapValues(xss.ul, function(ignore, v) {
23553 if (align) {
23554 return xss[align.toLowerCase()][v];
23555 } else {
23556 var xs = sortBy$1(map(xss, v));
23557 return (xs[1] + xs[2]) / 2;
23558 }
23559 });
23560 }
23561 function positionX(g) {
23562 var layering = buildLayerMatrix(g);
23563 var conflicts = merge$2(findType1Conflicts(g, layering), findType2Conflicts(g, layering));
23564 var xss = {};
23565 var adjustedLayering;
23566 forEach(["u", "d"], function(vert) {
23567 adjustedLayering = vert === "u" ? layering : values(layering).reverse();
23568 forEach(["l", "r"], function(horiz) {
23569 if (horiz === "r") {
23570 adjustedLayering = map(adjustedLayering, function(inner) {
23571 return values(inner).reverse();
23572 });
23573 }
23574 var neighborFn = (vert === "u" ? g.predecessors : g.successors).bind(g);
23575 var align = verticalAlignment(g, adjustedLayering, conflicts, neighborFn);
23576 var xs = horizontalCompaction(g, adjustedLayering, align.root, align.align, horiz === "r");
23577 if (horiz === "r") {
23578 xs = mapValues(xs, function(x2) {
23579 return -x2;
23580 });
23581 }
23582 xss[vert + horiz] = xs;
23583 });
23584 });
23585 var smallestWidth = findSmallestWidthAlignment(g, xss);
23586 alignCoordinates(xss, smallestWidth);
23587 return balance(xss, g.graph().align);
23588 }
23589 function sep(nodeSep, edgeSep, reverseSep) {
23590 return function(g, v, w2) {
23591 var vLabel = g.node(v);
23592 var wLabel = g.node(w2);
23593 var sum = 0;
23594 var delta;
23595 sum += vLabel.width / 2;
23596 if (has(vLabel, "labelpos")) {
23597 switch (vLabel.labelpos.toLowerCase()) {
23598 case "l":
23599 delta = -vLabel.width / 2;
23600 break;
23601 case "r":
23602 delta = vLabel.width / 2;
23603 break;
23604 }
23605 }
23606 if (delta) {
23607 sum += reverseSep ? delta : -delta;
23608 }
23609 delta = 0;
23610 sum += (vLabel.dummy ? edgeSep : nodeSep) / 2;
23611 sum += (wLabel.dummy ? edgeSep : nodeSep) / 2;
23612 sum += wLabel.width / 2;
23613 if (has(wLabel, "labelpos")) {
23614 switch (wLabel.labelpos.toLowerCase()) {
23615 case "l":
23616 delta = wLabel.width / 2;
23617 break;
23618 case "r":
23619 delta = -wLabel.width / 2;
23620 break;
23621 }
23622 }
23623 if (delta) {
23624 sum += reverseSep ? delta : -delta;
23625 }
23626 delta = 0;
23627 return sum;
23628 };
23629 }
23630 function width$1(g, v) {
23631 return g.node(v).width;
23632 }
23633 function position$1(g) {
23634 g = asNonCompoundGraph(g);
23635 positionY(g);
23636 forOwn(positionX(g), function(x2, v) {
23637 g.node(v).x = x2;
23638 });
23639 }
23640 function positionY(g) {
23641 var layering = buildLayerMatrix(g);
23642 var rankSep = g.graph().ranksep;
23643 var prevY = 0;
23644 forEach(layering, function(layer) {
23645 var maxHeight = max(
23646 map(layer, function(v) {
23647 return g.node(v).height;
23648 })
23649 );
23650 forEach(layer, function(v) {
23651 g.node(v).y = prevY + maxHeight / 2;
23652 });
23653 prevY += maxHeight + rankSep;
23654 });
23655 }
23656 function layout(g, opts) {
23657 var time$12 = opts && opts.debugTiming ? time : notime;
23658 time$12("layout", function() {
23659 var layoutGraph = time$12(" buildLayoutGraph", function() {
23660 return buildLayoutGraph(g);
23661 });
23662 time$12(" runLayout", function() {
23663 runLayout(layoutGraph, time$12);
23664 });
23665 time$12(" updateInputGraph", function() {
23666 updateInputGraph(g, layoutGraph);
23667 });
23668 });
23669 }
23670 function runLayout(g, time2) {
23671 time2(" makeSpaceForEdgeLabels", function() {
23672 makeSpaceForEdgeLabels(g);
23673 });
23674 time2(" removeSelfEdges", function() {
23675 removeSelfEdges(g);
23676 });
23677 time2(" acyclic", function() {
23678 run$2(g);
23679 });
23680 time2(" nestingGraph.run", function() {
23681 run(g);
23682 });
23683 time2(" rank", function() {
23684 rank(asNonCompoundGraph(g));
23685 });
23686 time2(" injectEdgeLabelProxies", function() {
23687 injectEdgeLabelProxies(g);
23688 });
23689 time2(" removeEmptyRanks", function() {
23690 removeEmptyRanks(g);
23691 });
23692 time2(" nestingGraph.cleanup", function() {
23693 cleanup(g);
23694 });
23695 time2(" normalizeRanks", function() {
23696 normalizeRanks(g);
23697 });
23698 time2(" assignRankMinMax", function() {
23699 assignRankMinMax(g);
23700 });
23701 time2(" removeEdgeLabelProxies", function() {
23702 removeEdgeLabelProxies(g);
23703 });
23704 time2(" normalize.run", function() {
23705 run$1(g);
23706 });
23707 time2(" parentDummyChains", function() {
23708 parentDummyChains(g);
23709 });
23710 time2(" addBorderSegments", function() {
23711 addBorderSegments(g);
23712 });
23713 time2(" order", function() {
23714 order(g);
23715 });
23716 time2(" insertSelfEdges", function() {
23717 insertSelfEdges(g);
23718 });
23719 time2(" adjustCoordinateSystem", function() {
23720 adjust(g);
23721 });
23722 time2(" position", function() {
23723 position$1(g);
23724 });
23725 time2(" positionSelfEdges", function() {
23726 positionSelfEdges(g);
23727 });
23728 time2(" removeBorderNodes", function() {
23729 removeBorderNodes(g);
23730 });
23731 time2(" normalize.undo", function() {
23732 undo(g);
23733 });
23734 time2(" fixupEdgeLabelCoords", function() {
23735 fixupEdgeLabelCoords(g);
23736 });
23737 time2(" undoCoordinateSystem", function() {
23738 undo$1(g);
23739 });
23740 time2(" translateGraph", function() {
23741 translateGraph(g);
23742 });
23743 time2(" assignNodeIntersects", function() {
23744 assignNodeIntersects(g);
23745 });
23746 time2(" reversePoints", function() {
23747 reversePointsForReversedEdges(g);
23748 });
23749 time2(" acyclic.undo", function() {
23750 undo$2(g);
23751 });
23752 }
23753 function updateInputGraph(inputGraph, layoutGraph) {
23754 forEach(inputGraph.nodes(), function(v) {
23755 var inputLabel = inputGraph.node(v);
23756 var layoutLabel = layoutGraph.node(v);
23757 if (inputLabel) {
23758 inputLabel.x = layoutLabel.x;
23759 inputLabel.y = layoutLabel.y;
23760 if (layoutGraph.children(v).length) {
23761 inputLabel.width = layoutLabel.width;
23762 inputLabel.height = layoutLabel.height;
23763 }
23764 }
23765 });
23766 forEach(inputGraph.edges(), function(e) {
23767 var inputLabel = inputGraph.edge(e);
23768 var layoutLabel = layoutGraph.edge(e);
23769 inputLabel.points = layoutLabel.points;
23770 if (has(layoutLabel, "x")) {
23771 inputLabel.x = layoutLabel.x;
23772 inputLabel.y = layoutLabel.y;
23773 }
23774 });
23775 inputGraph.graph().width = layoutGraph.graph().width;
23776 inputGraph.graph().height = layoutGraph.graph().height;
23777 }
23778 var graphNumAttrs = ["nodesep", "edgesep", "ranksep", "marginx", "marginy"];
23779 var graphDefaults = { ranksep: 50, edgesep: 20, nodesep: 50, rankdir: "tb" };
23780 var graphAttrs = ["acyclicer", "ranker", "rankdir", "align"];
23781 var nodeNumAttrs = ["width", "height"];
23782 var nodeDefaults = { width: 0, height: 0 };
23783 var edgeNumAttrs = ["minlen", "weight", "width", "height", "labeloffset"];
23784 var edgeDefaults = {
23785 minlen: 1,
23786 weight: 1,
23787 width: 0,
23788 height: 0,
23789 labeloffset: 10,
23790 labelpos: "r"
23791 };
23792 var edgeAttrs = ["labelpos"];
23793 function buildLayoutGraph(inputGraph) {
23794 var g = new Graph({ multigraph: true, compound: true });
23795 var graph = canonicalize(inputGraph.graph());
23796 g.setGraph(
23797 merge$2({}, graphDefaults, selectNumberAttrs(graph, graphNumAttrs), pick$1(graph, graphAttrs))
23798 );
23799 forEach(inputGraph.nodes(), function(v) {
23800 var node2 = canonicalize(inputGraph.node(v));
23801 g.setNode(v, defaults$1(selectNumberAttrs(node2, nodeNumAttrs), nodeDefaults));
23802 g.setParent(v, inputGraph.parent(v));
23803 });
23804 forEach(inputGraph.edges(), function(e) {
23805 var edge = canonicalize(inputGraph.edge(e));
23806 g.setEdge(
23807 e,
23808 merge$2({}, edgeDefaults, selectNumberAttrs(edge, edgeNumAttrs), pick$1(edge, edgeAttrs))
23809 );
23810 });
23811 return g;
23812 }
23813 function makeSpaceForEdgeLabels(g) {
23814 var graph = g.graph();
23815 graph.ranksep /= 2;
23816 forEach(g.edges(), function(e) {
23817 var edge = g.edge(e);
23818 edge.minlen *= 2;
23819 if (edge.labelpos.toLowerCase() !== "c") {
23820 if (graph.rankdir === "TB" || graph.rankdir === "BT") {
23821 edge.width += edge.labeloffset;
23822 } else {
23823 edge.height += edge.labeloffset;
23824 }
23825 }
23826 });
23827 }
23828 function injectEdgeLabelProxies(g) {
23829 forEach(g.edges(), function(e) {
23830 var edge = g.edge(e);
23831 if (edge.width && edge.height) {
23832 var v = g.node(e.v);
23833 var w2 = g.node(e.w);
23834 var label = { rank: (w2.rank - v.rank) / 2 + v.rank, e };
23835 addDummyNode(g, "edge-proxy", label, "_ep");
23836 }
23837 });
23838 }
23839 function assignRankMinMax(g) {
23840 var maxRank2 = 0;
23841 forEach(g.nodes(), function(v) {
23842 var node2 = g.node(v);
23843 if (node2.borderTop) {
23844 node2.minRank = g.node(node2.borderTop).rank;
23845 node2.maxRank = g.node(node2.borderBottom).rank;
23846 maxRank2 = max(maxRank2, node2.maxRank);
23847 }
23848 });
23849 g.graph().maxRank = maxRank2;
23850 }
23851 function removeEdgeLabelProxies(g) {
23852 forEach(g.nodes(), function(v) {
23853 var node2 = g.node(v);
23854 if (node2.dummy === "edge-proxy") {
23855 g.edge(node2.e).labelRank = node2.rank;
23856 g.removeNode(v);
23857 }
23858 });
23859 }
23860 function translateGraph(g) {
23861 var minX = Number.POSITIVE_INFINITY;
23862 var maxX = 0;
23863 var minY = Number.POSITIVE_INFINITY;
23864 var maxY = 0;
23865 var graphLabel = g.graph();
23866 var marginX = graphLabel.marginx || 0;
23867 var marginY = graphLabel.marginy || 0;
23868 function getExtremes(attrs) {
23869 var x2 = attrs.x;
23870 var y2 = attrs.y;
23871 var w2 = attrs.width;
23872 var h = attrs.height;
23873 minX = Math.min(minX, x2 - w2 / 2);
23874 maxX = Math.max(maxX, x2 + w2 / 2);
23875 minY = Math.min(minY, y2 - h / 2);
23876 maxY = Math.max(maxY, y2 + h / 2);
23877 }
23878 forEach(g.nodes(), function(v) {
23879 getExtremes(g.node(v));
23880 });
23881 forEach(g.edges(), function(e) {
23882 var edge = g.edge(e);
23883 if (has(edge, "x")) {
23884 getExtremes(edge);
23885 }
23886 });
23887 minX -= marginX;
23888 minY -= marginY;
23889 forEach(g.nodes(), function(v) {
23890 var node2 = g.node(v);
23891 node2.x -= minX;
23892 node2.y -= minY;
23893 });
23894 forEach(g.edges(), function(e) {
23895 var edge = g.edge(e);
23896 forEach(edge.points, function(p) {
23897 p.x -= minX;
23898 p.y -= minY;
23899 });
23900 if (has(edge, "x")) {
23901 edge.x -= minX;
23902 }
23903 if (has(edge, "y")) {
23904 edge.y -= minY;
23905 }
23906 });
23907 graphLabel.width = maxX - minX + marginX;
23908 graphLabel.height = maxY - minY + marginY;
23909 }
23910 function assignNodeIntersects(g) {
23911 forEach(g.edges(), function(e) {
23912 var edge = g.edge(e);
23913 var nodeV = g.node(e.v);
23914 var nodeW = g.node(e.w);
23915 var p1, p2;
23916 if (!edge.points) {
23917 edge.points = [];
23918 p1 = nodeW;
23919 p2 = nodeV;
23920 } else {
23921 p1 = edge.points[0];
23922 p2 = edge.points[edge.points.length - 1];
23923 }
23924 edge.points.unshift(intersectRect$3(nodeV, p1));
23925 edge.points.push(intersectRect$3(nodeW, p2));
23926 });
23927 }
23928 function fixupEdgeLabelCoords(g) {
23929 forEach(g.edges(), function(e) {
23930 var edge = g.edge(e);
23931 if (has(edge, "x")) {
23932 if (edge.labelpos === "l" || edge.labelpos === "r") {
23933 edge.width -= edge.labeloffset;
23934 }
23935 switch (edge.labelpos) {
23936 case "l":
23937 edge.x -= edge.width / 2 + edge.labeloffset;
23938 break;
23939 case "r":
23940 edge.x += edge.width / 2 + edge.labeloffset;
23941 break;
23942 }
23943 }
23944 });
23945 }
23946 function reversePointsForReversedEdges(g) {
23947 forEach(g.edges(), function(e) {
23948 var edge = g.edge(e);
23949 if (edge.reversed) {
23950 edge.points.reverse();
23951 }
23952 });
23953 }
23954 function removeBorderNodes(g) {
23955 forEach(g.nodes(), function(v) {
23956 if (g.children(v).length) {
23957 var node2 = g.node(v);
23958 var t4 = g.node(node2.borderTop);
23959 var b = g.node(node2.borderBottom);
23960 var l = g.node(last(node2.borderLeft));
23961 var r = g.node(last(node2.borderRight));
23962 node2.width = Math.abs(r.x - l.x);
23963 node2.height = Math.abs(b.y - t4.y);
23964 node2.x = l.x + node2.width / 2;
23965 node2.y = t4.y + node2.height / 2;
23966 }
23967 });
23968 forEach(g.nodes(), function(v) {
23969 if (g.node(v).dummy === "border") {
23970 g.removeNode(v);
23971 }
23972 });
23973 }
23974 function removeSelfEdges(g) {
23975 forEach(g.edges(), function(e) {
23976 if (e.v === e.w) {
23977 var node2 = g.node(e.v);
23978 if (!node2.selfEdges) {
23979 node2.selfEdges = [];
23980 }
23981 node2.selfEdges.push({ e, label: g.edge(e) });
23982 g.removeEdge(e);
23983 }
23984 });
23985 }
23986 function insertSelfEdges(g) {
23987 var layers = buildLayerMatrix(g);
23988 forEach(layers, function(layer) {
23989 var orderShift = 0;
23990 forEach(layer, function(v, i2) {
23991 var node2 = g.node(v);
23992 node2.order = i2 + orderShift;
23993 forEach(node2.selfEdges, function(selfEdge) {
23994 addDummyNode(
23995 g,
23996 "selfedge",
23997 {
23998 width: selfEdge.label.width,
23999 height: selfEdge.label.height,
24000 rank: node2.rank,
24001 order: i2 + ++orderShift,
24002 e: selfEdge.e,
24003 label: selfEdge.label
24004 },
24005 "_se"
24006 );
24007 });
24008 delete node2.selfEdges;
24009 });
24010 });
24011 }
24012 function positionSelfEdges(g) {
24013 forEach(g.nodes(), function(v) {
24014 var node2 = g.node(v);
24015 if (node2.dummy === "selfedge") {
24016 var selfNode = g.node(node2.e.v);
24017 var x2 = selfNode.x + selfNode.width / 2;
24018 var y2 = selfNode.y;
24019 var dx = node2.x - x2;
24020 var dy = selfNode.height / 2;
24021 g.setEdge(node2.e, node2.label);
24022 g.removeNode(v);
24023 node2.label.points = [
24024 { x: x2 + 2 * dx / 3, y: y2 - dy },
24025 { x: x2 + 5 * dx / 6, y: y2 - dy },
24026 { x: x2 + dx, y: y2 },
24027 { x: x2 + 5 * dx / 6, y: y2 + dy },
24028 { x: x2 + 2 * dx / 3, y: y2 + dy }
24029 ];
24030 node2.label.x = node2.x;
24031 node2.label.y = node2.y;
24032 }
24033 });
24034 }
24035 function selectNumberAttrs(obj, attrs) {
24036 return mapValues(pick$1(obj, attrs), Number);
24037 }
24038 function canonicalize(attrs) {
24039 var newAttrs = {};
24040 forEach(attrs, function(v, k) {
24041 newAttrs[k.toLowerCase()] = v;
24042 });
24043 return newAttrs;
24044 }
24045 function isSubgraph(g, v) {
24046 return !!g.children(v).length;
24047 }
24048 function edgeToId(e) {
24049 return escapeId(e.v) + ":" + escapeId(e.w) + ":" + escapeId(e.name);
24050 }
24051 var ID_DELIM = /:/g;
24052 function escapeId(str2) {
24053 return str2 ? String(str2).replace(ID_DELIM, "\\:") : "";
24054 }
24055 function applyStyle$2(dom, styleFn) {
24056 if (styleFn) {
24057 dom.attr("style", styleFn);
24058 }
24059 }
24060 function applyClass(dom, classFn, otherClasses) {
24061 if (classFn) {
24062 dom.attr("class", classFn).attr("class", otherClasses + " " + dom.attr("class"));
24063 }
24064 }
24065 function applyTransition(selection2, g) {
24066 var graph = g.graph();
24067 if (isPlainObject(graph)) {
24068 var transition = graph.transition;
24069 if (isFunction(transition)) {
24070 return transition(selection2);
24071 }
24072 }
24073 return selection2;
24074 }
24075 var arrows = {
24076 normal,
24077 vee,
24078 undirected
24079 };
24080 function setArrows(value) {
24081 arrows = value;
24082 }
24083 function normal(parent, id2, edge, type2) {
24084 var marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
24085 var path2 = marker.append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").style("stroke-width", 1).style("stroke-dasharray", "1,0");
24086 applyStyle$2(path2, edge[type2 + "Style"]);
24087 if (edge[type2 + "Class"]) {
24088 path2.attr("class", edge[type2 + "Class"]);
24089 }
24090 }
24091 function vee(parent, id2, edge, type2) {
24092 var marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
24093 var path2 = marker.append("path").attr("d", "M 0 0 L 10 5 L 0 10 L 4 5 z").style("stroke-width", 1).style("stroke-dasharray", "1,0");
24094 applyStyle$2(path2, edge[type2 + "Style"]);
24095 if (edge[type2 + "Class"]) {
24096 path2.attr("class", edge[type2 + "Class"]);
24097 }
24098 }
24099 function undirected(parent, id2, edge, type2) {
24100 var marker = parent.append("marker").attr("id", id2).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
24101 var path2 = marker.append("path").attr("d", "M 0 5 L 10 5").style("stroke-width", 1).style("stroke-dasharray", "1,0");
24102 applyStyle$2(path2, edge[type2 + "Style"]);
24103 if (edge[type2 + "Class"]) {
24104 path2.attr("class", edge[type2 + "Class"]);
24105 }
24106 }
24107 function addHtmlLabel$1(root2, node2) {
24108 var fo = root2.append("foreignObject").attr("width", "100000");
24109 var div = fo.append("xhtml:div");
24110 div.attr("xmlns", "http://www.w3.org/1999/xhtml");
24111 var label = node2.label;
24112 switch (typeof label) {
24113 case "function":
24114 div.insert(label);
24115 break;
24116 case "object":
24117 div.insert(function() {
24118 return label;
24119 });
24120 break;
24121 default:
24122 div.html(label);
24123 }
24124 applyStyle$2(div, node2.labelStyle);
24125 div.style("display", "inline-block");
24126 div.style("white-space", "nowrap");
24127 var client = div.node().getBoundingClientRect();
24128 fo.attr("width", client.width).attr("height", client.height);
24129 return fo;
24130 }
24131 function addSVGLabel(root2, node2) {
24132 var domNode = root2;
24133 domNode.node().appendChild(node2.label);
24134 applyStyle$2(domNode, node2.labelStyle);
24135 return domNode;
24136 }
24137 function addTextLabel(root2, node2) {
24138 var domNode = root2.append("text");
24139 var lines = processEscapeSequences(node2.label).split("\n");
24140 for (var i2 = 0; i2 < lines.length; i2++) {
24141 domNode.append("tspan").attr("xml:space", "preserve").attr("dy", "1em").attr("x", "1").text(lines[i2]);
24142 }
24143 applyStyle$2(domNode, node2.labelStyle);
24144 return domNode;
24145 }
24146 function processEscapeSequences(text2) {
24147 var newText = "";
24148 var escaped = false;
24149 var ch;
24150 for (var i2 = 0; i2 < text2.length; ++i2) {
24151 ch = text2[i2];
24152 if (escaped) {
24153 switch (ch) {
24154 case "n":
24155 newText += "\n";
24156 break;
24157 default:
24158 newText += ch;
24159 }
24160 escaped = false;
24161 } else if (ch === "\\") {
24162 escaped = true;
24163 } else {
24164 newText += ch;
24165 }
24166 }
24167 return newText;
24168 }
24169 function addLabel(root2, node2, location2) {
24170 var label = node2.label;
24171 var labelSvg = root2.append("g");
24172 if (node2.labelType === "svg") {
24173 addSVGLabel(labelSvg, node2);
24174 } else if (typeof label !== "string" || node2.labelType === "html") {
24175 addHtmlLabel$1(labelSvg, node2);
24176 } else {
24177 addTextLabel(labelSvg, node2);
24178 }
24179 var labelBBox = labelSvg.node().getBBox();
24180 var y2;
24181 switch (location2) {
24182 case "top":
24183 y2 = -node2.height / 2;
24184 break;
24185 case "bottom":
24186 y2 = node2.height / 2 - labelBBox.height;
24187 break;
24188 default:
24189 y2 = -labelBBox.height / 2;
24190 }
24191 labelSvg.attr("transform", "translate(" + -labelBBox.width / 2 + "," + y2 + ")");
24192 return labelSvg;
24193 }
24194 var createClusters = function(selection2, g) {
24195 var clusters = g.nodes().filter(function(v) {
24196 return isSubgraph(g, v);
24197 });
24198 var svgClusters = selection2.selectAll("g.cluster").data(clusters, function(v) {
24199 return v;
24200 });
24201 applyTransition(svgClusters.exit(), g).style("opacity", 0).remove();
24202 var enterSelection = svgClusters.enter().append("g").attr("class", "cluster").attr("id", function(v) {
24203 var node2 = g.node(v);
24204 return node2.id;
24205 }).style("opacity", 0).each(function(v) {
24206 var node2 = g.node(v);
24207 var thisGroup = select(this);
24208 select(this).append("rect");
24209 var labelGroup = thisGroup.append("g").attr("class", "label");
24210 addLabel(labelGroup, node2, node2.clusterLabelPos);
24211 });
24212 svgClusters = svgClusters.merge(enterSelection);
24213 svgClusters = applyTransition(svgClusters, g).style("opacity", 1);
24214 svgClusters.selectAll("rect").each(function(c2) {
24215 var node2 = g.node(c2);
24216 var domCluster = select(this);
24217 applyStyle$2(domCluster, node2.style);
24218 });
24219 return svgClusters;
24220 };
24221 function setCreateClusters(value) {
24222 createClusters = value;
24223 }
24224 let createEdgeLabels = function(selection2, g) {
24225 var svgEdgeLabels = selection2.selectAll("g.edgeLabel").data(g.edges(), function(e) {
24226 return edgeToId(e);
24227 }).classed("update", true);
24228 svgEdgeLabels.exit().remove();
24229 svgEdgeLabels.enter().append("g").classed("edgeLabel", true).style("opacity", 0);
24230 svgEdgeLabels = selection2.selectAll("g.edgeLabel");
24231 svgEdgeLabels.each(function(e) {
24232 var root2 = select(this);
24233 root2.select(".label").remove();
24234 var edge = g.edge(e);
24235 var label = addLabel(root2, g.edge(e), 0).classed("label", true);
24236 var bbox = label.node().getBBox();
24237 if (edge.labelId) {
24238 label.attr("id", edge.labelId);
24239 }
24240 if (!has(edge, "width")) {
24241 edge.width = bbox.width;
24242 }
24243 if (!has(edge, "height")) {
24244 edge.height = bbox.height;
24245 }
24246 });
24247 var exitSelection;
24248 if (svgEdgeLabels.exit) {
24249 exitSelection = svgEdgeLabels.exit();
24250 } else {
24251 exitSelection = svgEdgeLabels.selectAll(null);
24252 }
24253 applyTransition(exitSelection, g).style("opacity", 0).remove();
24254 return svgEdgeLabels;
24255 };
24256 function setCreateEdgeLabels(value) {
24257 createEdgeLabels = value;
24258 }
24259 function intersectNode$1(node2, point2) {
24260 return node2.intersect(point2);
24261 }
24262 var createEdgePaths = function(selection2, g, arrows2) {
24263 var previousPaths = selection2.selectAll("g.edgePath").data(g.edges(), function(e) {
24264 return edgeToId(e);
24265 }).classed("update", true);
24266 var newPaths = enter(previousPaths, g);
24267 exit$1(previousPaths, g);
24268 var svgPaths = previousPaths.merge !== void 0 ? previousPaths.merge(newPaths) : previousPaths;
24269 applyTransition(svgPaths, g).style("opacity", 1);
24270 svgPaths.each(function(e) {
24271 var domEdge = select(this);
24272 var edge = g.edge(e);
24273 edge.elem = this;
24274 if (edge.id) {
24275 domEdge.attr("id", edge.id);
24276 }
24277 applyClass(
24278 domEdge,
24279 edge["class"],
24280 (domEdge.classed("update") ? "update " : "") + "edgePath"
24281 );
24282 });
24283 svgPaths.selectAll("path.path").each(function(e) {
24284 var edge = g.edge(e);
24285 edge.arrowheadId = uniqueId("arrowhead");
24286 var domEdge = select(this).attr("marker-end", function() {
24287 return "url(" + makeFragmentRef(location.href, edge.arrowheadId) + ")";
24288 }).style("fill", "none");
24289 applyTransition(domEdge, g).attr("d", function(e3) {
24290 return calcPoints(g, e3);
24291 });
24292 applyStyle$2(domEdge, edge.style);
24293 });
24294 svgPaths.selectAll("defs *").remove();
24295 svgPaths.selectAll("defs").each(function(e) {
24296 var edge = g.edge(e);
24297 var arrowhead = arrows2[edge.arrowhead];
24298 arrowhead(select(this), edge.arrowheadId, edge, "arrowhead");
24299 });
24300 return svgPaths;
24301 };
24302 function setCreateEdgePaths(value) {
24303 createEdgePaths = value;
24304 }
24305 function makeFragmentRef(url, fragmentId) {
24306 var baseUrl = url.split("#")[0];
24307 return baseUrl + "#" + fragmentId;
24308 }
24309 function calcPoints(g, e) {
24310 var edge = g.edge(e);
24311 var tail = g.node(e.v);
24312 var head2 = g.node(e.w);
24313 var points = edge.points.slice(1, edge.points.length - 1);
24314 points.unshift(intersectNode$1(tail, points[0]));
24315 points.push(intersectNode$1(head2, points[points.length - 1]));
24316 return createLine(edge, points);
24317 }
24318 function createLine(edge, points) {
24319 var line2 = (line$1 || svg$2.line)().x(function(d) {
24320 return d.x;
24321 }).y(function(d) {
24322 return d.y;
24323 });
24324 (line2.curve || line2.interpolate)(edge.curve);
24325 return line2(points);
24326 }
24327 function getCoords(elem) {
24328 var bbox = elem.getBBox();
24329 var matrix = elem.ownerSVGElement.getScreenCTM().inverse().multiply(elem.getScreenCTM()).translate(bbox.width / 2, bbox.height / 2);
24330 return { x: matrix.e, y: matrix.f };
24331 }
24332 function enter(svgPaths, g) {
24333 var svgPathsEnter = svgPaths.enter().append("g").attr("class", "edgePath").style("opacity", 0);
24334 svgPathsEnter.append("path").attr("class", "path").attr("d", function(e) {
24335 var edge = g.edge(e);
24336 var sourceElem = g.node(e.v).elem;
24337 var points = range$1(edge.points.length).map(function() {
24338 return getCoords(sourceElem);
24339 });
24340 return createLine(edge, points);
24341 });
24342 svgPathsEnter.append("defs");
24343 return svgPathsEnter;
24344 }
24345 function exit$1(svgPaths, g) {
24346 var svgPathExit = svgPaths.exit();
24347 applyTransition(svgPathExit, g).style("opacity", 0).remove();
24348 }
24349 var createNodes = function(selection2, g, shapes2) {
24350 var simpleNodes = g.nodes().filter(function(v) {
24351 return !isSubgraph(g, v);
24352 });
24353 var svgNodes = selection2.selectAll("g.node").data(simpleNodes, function(v) {
24354 return v;
24355 }).classed("update", true);
24356 svgNodes.exit().remove();
24357 svgNodes.enter().append("g").attr("class", "node").style("opacity", 0);
24358 svgNodes = selection2.selectAll("g.node");
24359 svgNodes.each(function(v) {
24360 var node2 = g.node(v);
24361 var thisGroup = select(this);
24362 applyClass(
24363 thisGroup,
24364 node2["class"],
24365 (thisGroup.classed("update") ? "update " : "") + "node"
24366 );
24367 thisGroup.select("g.label").remove();
24368 var labelGroup = thisGroup.append("g").attr("class", "label");
24369 var labelDom = addLabel(labelGroup, node2);
24370 var shape = shapes2[node2.shape];
24371 var bbox = pick$1(labelDom.node().getBBox(), "width", "height");
24372 node2.elem = this;
24373 if (node2.id) {
24374 thisGroup.attr("id", node2.id);
24375 }
24376 if (node2.labelId) {
24377 labelGroup.attr("id", node2.labelId);
24378 }
24379 if (has(node2, "width")) {
24380 bbox.width = node2.width;
24381 }
24382 if (has(node2, "height")) {
24383 bbox.height = node2.height;
24384 }
24385 bbox.width += node2.paddingLeft + node2.paddingRight;
24386 bbox.height += node2.paddingTop + node2.paddingBottom;
24387 labelGroup.attr(
24388 "transform",
24389 "translate(" + (node2.paddingLeft - node2.paddingRight) / 2 + "," + (node2.paddingTop - node2.paddingBottom) / 2 + ")"
24390 );
24391 var root2 = select(this);
24392 root2.select(".label-container").remove();
24393 var shapeSvg = shape(root2, bbox, node2).classed("label-container", true);
24394 applyStyle$2(shapeSvg, node2.style);
24395 var shapeBBox = shapeSvg.node().getBBox();
24396 node2.width = shapeBBox.width;
24397 node2.height = shapeBBox.height;
24398 });
24399 var exitSelection;
24400 if (svgNodes.exit) {
24401 exitSelection = svgNodes.exit();
24402 } else {
24403 exitSelection = svgNodes.selectAll(null);
24404 }
24405 applyTransition(exitSelection, g).style("opacity", 0).remove();
24406 return svgNodes;
24407 };
24408 function setCreateNodes(value) {
24409 createNodes = value;
24410 }
24411 function positionClusters(selection2, g) {
24412 var created = selection2.filter(function() {
24413 return !select(this).classed("update");
24414 });
24415 function translate(v) {
24416 var node2 = g.node(v);
24417 return "translate(" + node2.x + "," + node2.y + ")";
24418 }
24419 created.attr("transform", translate);
24420 applyTransition(selection2, g).style("opacity", 1).attr("transform", translate);
24421 applyTransition(created.selectAll("rect"), g).attr("width", function(v) {
24422 return g.node(v).width;
24423 }).attr("height", function(v) {
24424 return g.node(v).height;
24425 }).attr("x", function(v) {
24426 var node2 = g.node(v);
24427 return -node2.width / 2;
24428 }).attr("y", function(v) {
24429 var node2 = g.node(v);
24430 return -node2.height / 2;
24431 });
24432 }
24433 function positionEdgeLabels(selection2, g) {
24434 var created = selection2.filter(function() {
24435 return !select(this).classed("update");
24436 });
24437 function translate(e) {
24438 var edge = g.edge(e);
24439 return has(edge, "x") ? "translate(" + edge.x + "," + edge.y + ")" : "";
24440 }
24441 created.attr("transform", translate);
24442 applyTransition(selection2, g).style("opacity", 1).attr("transform", translate);
24443 }
24444 function positionNodes$1(selection2, g) {
24445 var created = selection2.filter(function() {
24446 return !select(this).classed("update");
24447 });
24448 function translate(v) {
24449 var node2 = g.node(v);
24450 return "translate(" + node2.x + "," + node2.y + ")";
24451 }
24452 created.attr("transform", translate);
24453 applyTransition(selection2, g).style("opacity", 1).attr("transform", translate);
24454 }
24455 function intersectEllipse$1(node2, rx, ry, point2) {
24456 var cx = node2.x;
24457 var cy = node2.y;
24458 var px = cx - point2.x;
24459 var py = cy - point2.y;
24460 var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);
24461 var dx = Math.abs(rx * ry * px / det);
24462 if (point2.x < cx) {
24463 dx = -dx;
24464 }
24465 var dy = Math.abs(rx * ry * py / det);
24466 if (point2.y < cy) {
24467 dy = -dy;
24468 }
24469 return { x: cx + dx, y: cy + dy };
24470 }
24471 function intersectCircle$1(node2, rx, point2) {
24472 return intersectEllipse$1(node2, rx, rx, point2);
24473 }
24474 function intersectLine$1(p1, p2, q1, q2) {
24475 var a1, a2, b1, b2, c1, c2;
24476 var r1, r2, r3, r4;
24477 var denom, offset, num;
24478 var x2, y2;
24479 a1 = p2.y - p1.y;
24480 b1 = p1.x - p2.x;
24481 c1 = p2.x * p1.y - p1.x * p2.y;
24482 r3 = a1 * q1.x + b1 * q1.y + c1;
24483 r4 = a1 * q2.x + b1 * q2.y + c1;
24484 if (r3 !== 0 && r4 !== 0 && sameSign$1(r3, r4)) {
24485 return;
24486 }
24487 a2 = q2.y - q1.y;
24488 b2 = q1.x - q2.x;
24489 c2 = q2.x * q1.y - q1.x * q2.y;
24490 r1 = a2 * p1.x + b2 * p1.y + c2;
24491 r2 = a2 * p2.x + b2 * p2.y + c2;
24492 if (r1 !== 0 && r2 !== 0 && sameSign$1(r1, r2)) {
24493 return;
24494 }
24495 denom = a1 * b2 - a2 * b1;
24496 if (denom === 0) {
24497 return;
24498 }
24499 offset = Math.abs(denom / 2);
24500 num = b1 * c2 - b2 * c1;
24501 x2 = num < 0 ? (num - offset) / denom : (num + offset) / denom;
24502 num = a2 * c1 - a1 * c2;
24503 y2 = num < 0 ? (num - offset) / denom : (num + offset) / denom;
24504 return { x: x2, y: y2 };
24505 }
24506 function sameSign$1(r1, r2) {
24507 return r1 * r2 > 0;
24508 }
24509 function intersectPolygon$1(node2, polyPoints, point2) {
24510 var x1 = node2.x;
24511 var y1 = node2.y;
24512 var intersections = [];
24513 var minX = Number.POSITIVE_INFINITY;
24514 var minY = Number.POSITIVE_INFINITY;
24515 polyPoints.forEach(function(entry) {
24516 minX = Math.min(minX, entry.x);
24517 minY = Math.min(minY, entry.y);
24518 });
24519 var left2 = x1 - node2.width / 2 - minX;
24520 var top2 = y1 - node2.height / 2 - minY;
24521 for (var i2 = 0; i2 < polyPoints.length; i2++) {
24522 var p1 = polyPoints[i2];
24523 var p2 = polyPoints[i2 < polyPoints.length - 1 ? i2 + 1 : 0];
24524 var intersect2 = intersectLine$1(
24525 node2,
24526 point2,
24527 { x: left2 + p1.x, y: top2 + p1.y },
24528 { x: left2 + p2.x, y: top2 + p2.y }
24529 );
24530 if (intersect2) {
24531 intersections.push(intersect2);
24532 }
24533 }
24534 if (!intersections.length) {
24535 console.log("NO INTERSECTION FOUND, RETURN NODE CENTER", node2);
24536 return node2;
24537 }
24538 if (intersections.length > 1) {
24539 intersections.sort(function(p, q) {
24540 var pdx = p.x - point2.x;
24541 var pdy = p.y - point2.y;
24542 var distp = Math.sqrt(pdx * pdx + pdy * pdy);
24543 var qdx = q.x - point2.x;
24544 var qdy = q.y - point2.y;
24545 var distq = Math.sqrt(qdx * qdx + qdy * qdy);
24546 return distp < distq ? -1 : distp === distq ? 0 : 1;
24547 });
24548 }
24549 return intersections[0];
24550 }
24551 function intersectRect$2(node2, point2) {
24552 var x2 = node2.x;
24553 var y2 = node2.y;
24554 var dx = point2.x - x2;
24555 var dy = point2.y - y2;
24556 var w2 = node2.width / 2;
24557 var h = node2.height / 2;
24558 var sx, sy;
24559 if (Math.abs(dy) * w2 > Math.abs(dx) * h) {
24560 if (dy < 0) {
24561 h = -h;
24562 }
24563 sx = dy === 0 ? 0 : h * dx / dy;
24564 sy = h;
24565 } else {
24566 if (dx < 0) {
24567 w2 = -w2;
24568 }
24569 sx = w2;
24570 sy = dx === 0 ? 0 : w2 * dy / dx;
24571 }
24572 return { x: x2 + sx, y: y2 + sy };
24573 }
24574 var shapes$2 = {
24575 rect: rect$2,
24576 ellipse,
24577 circle: circle$2,
24578 diamond
24579 };
24580 function setShapes(value) {
24581 shapes$2 = value;
24582 }
24583 function rect$2(parent, bbox, node2) {
24584 var shapeSvg = parent.insert("rect", ":first-child").attr("rx", node2.rx).attr("ry", node2.ry).attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("width", bbox.width).attr("height", bbox.height);
24585 node2.intersect = function(point2) {
24586 return intersectRect$2(node2, point2);
24587 };
24588 return shapeSvg;
24589 }
24590 function ellipse(parent, bbox, node2) {
24591 var rx = bbox.width / 2;
24592 var ry = bbox.height / 2;
24593 var shapeSvg = parent.insert("ellipse", ":first-child").attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("rx", rx).attr("ry", ry);
24594 node2.intersect = function(point2) {
24595 return intersectEllipse$1(node2, rx, ry, point2);
24596 };
24597 return shapeSvg;
24598 }
24599 function circle$2(parent, bbox, node2) {
24600 var r = Math.max(bbox.width, bbox.height) / 2;
24601 var shapeSvg = parent.insert("circle", ":first-child").attr("x", -bbox.width / 2).attr("y", -bbox.height / 2).attr("r", r);
24602 node2.intersect = function(point2) {
24603 return intersectCircle$1(node2, r, point2);
24604 };
24605 return shapeSvg;
24606 }
24607 function diamond(parent, bbox, node2) {
24608 var w2 = bbox.width * Math.SQRT2 / 2;
24609 var h = bbox.height * Math.SQRT2 / 2;
24610 var points = [
24611 { x: 0, y: -h },
24612 { x: -w2, y: 0 },
24613 { x: 0, y: h },
24614 { x: w2, y: 0 }
24615 ];
24616 var shapeSvg = parent.insert("polygon", ":first-child").attr(
24617 "points",
24618 points.map(function(p) {
24619 return p.x + "," + p.y;
24620 }).join(" ")
24621 );
24622 node2.intersect = function(p) {
24623 return intersectPolygon$1(node2, points, p);
24624 };
24625 return shapeSvg;
24626 }
24627 function render$1() {
24628 var fn = function(svg2, g) {
24629 preProcessGraph(g);
24630 var outputGroup = createOrSelectGroup(svg2, "output");
24631 var clustersGroup = createOrSelectGroup(outputGroup, "clusters");
24632 var edgePathsGroup = createOrSelectGroup(outputGroup, "edgePaths");
24633 var edgeLabels2 = createEdgeLabels(createOrSelectGroup(outputGroup, "edgeLabels"), g);
24634 var nodes2 = createNodes(createOrSelectGroup(outputGroup, "nodes"), g, shapes$2);
24635 layout(g);
24636 positionNodes$1(nodes2, g);
24637 positionEdgeLabels(edgeLabels2, g);
24638 createEdgePaths(edgePathsGroup, g, arrows);
24639 var clusters = createClusters(clustersGroup, g);
24640 positionClusters(clusters, g);
24641 postProcessGraph(g);
24642 };
24643 fn.createNodes = function(value) {
24644 if (!arguments.length)
24645 return createNodes;
24646 setCreateNodes(value);
24647 return fn;
24648 };
24649 fn.createClusters = function(value) {
24650 if (!arguments.length)
24651 return createClusters;
24652 setCreateClusters(value);
24653 return fn;
24654 };
24655 fn.createEdgeLabels = function(value) {
24656 if (!arguments.length)
24657 return createEdgeLabels;
24658 setCreateEdgeLabels(value);
24659 return fn;
24660 };
24661 fn.createEdgePaths = function(value) {
24662 if (!arguments.length)
24663 return createEdgePaths;
24664 setCreateEdgePaths(value);
24665 return fn;
24666 };
24667 fn.shapes = function(value) {
24668 if (!arguments.length)
24669 return shapes$2;
24670 setShapes(value);
24671 return fn;
24672 };
24673 fn.arrows = function(value) {
24674 if (!arguments.length)
24675 return arrows;
24676 setArrows(value);
24677 return fn;
24678 };
24679 return fn;
24680 }
24681 var NODE_DEFAULT_ATTRS = {
24682 paddingLeft: 10,
24683 paddingRight: 10,
24684 paddingTop: 10,
24685 paddingBottom: 10,
24686 rx: 0,
24687 ry: 0,
24688 shape: "rect"
24689 };
24690 var EDGE_DEFAULT_ATTRS = {
24691 arrowhead: "normal",
24692 curve: curveLinear
24693 };
24694 function preProcessGraph(g) {
24695 g.nodes().forEach(function(v) {
24696 var node2 = g.node(v);
24697 if (!has(node2, "label") && !g.children(v).length) {
24698 node2.label = v;
24699 }
24700 if (has(node2, "paddingX")) {
24701 defaults$1(node2, {
24702 paddingLeft: node2.paddingX,
24703 paddingRight: node2.paddingX
24704 });
24705 }
24706 if (has(node2, "paddingY")) {
24707 defaults$1(node2, {
24708 paddingTop: node2.paddingY,
24709 paddingBottom: node2.paddingY
24710 });
24711 }
24712 if (has(node2, "padding")) {
24713 defaults$1(node2, {
24714 paddingLeft: node2.padding,
24715 paddingRight: node2.padding,
24716 paddingTop: node2.padding,
24717 paddingBottom: node2.padding
24718 });
24719 }
24720 defaults$1(node2, NODE_DEFAULT_ATTRS);
24721 forEach(["paddingLeft", "paddingRight", "paddingTop", "paddingBottom"], function(k) {
24722 node2[k] = Number(node2[k]);
24723 });
24724 if (has(node2, "width")) {
24725 node2._prevWidth = node2.width;
24726 }
24727 if (has(node2, "height")) {
24728 node2._prevHeight = node2.height;
24729 }
24730 });
24731 g.edges().forEach(function(e) {
24732 var edge = g.edge(e);
24733 if (!has(edge, "label")) {
24734 edge.label = "";
24735 }
24736 defaults$1(edge, EDGE_DEFAULT_ATTRS);
24737 });
24738 }
24739 function postProcessGraph(g) {
24740 forEach(g.nodes(), function(v) {
24741 var node2 = g.node(v);
24742 if (has(node2, "_prevWidth")) {
24743 node2.width = node2._prevWidth;
24744 } else {
24745 delete node2.width;
24746 }
24747 if (has(node2, "_prevHeight")) {
24748 node2.height = node2._prevHeight;
24749 } else {
24750 delete node2.height;
24751 }
24752 delete node2._prevWidth;
24753 delete node2._prevHeight;
24754 });
24755 }
24756 function createOrSelectGroup(root2, name2) {
24757 var selection2 = root2.select("g." + name2);
24758 if (selection2.empty()) {
24759 selection2 = root2.append("g").attr("class", name2);
24760 }
24761 return selection2;
24762 }
24763 function question$1(parent, bbox, node2) {
24764 const w2 = bbox.width;
24765 const h = bbox.height;
24766 const s = (w2 + h) * 0.9;
24767 const points = [
24768 { x: s / 2, y: 0 },
24769 { x: s, y: -s / 2 },
24770 { x: s / 2, y: -s },
24771 { x: 0, y: -s / 2 }
24772 ];
24773 const shapeSvg = insertPolygonShape$2(parent, s, s, points);
24774 node2.intersect = function(point2) {
24775 return intersectPolygon$1(node2, points, point2);
24776 };
24777 return shapeSvg;
24778 }
24779 function hexagon$1(parent, bbox, node2) {
24780 const f2 = 4;
24781 const h = bbox.height;
24782 const m = h / f2;
24783 const w2 = bbox.width + 2 * m;
24784 const points = [
24785 { x: m, y: 0 },
24786 { x: w2 - m, y: 0 },
24787 { x: w2, y: -h / 2 },
24788 { x: w2 - m, y: -h },
24789 { x: m, y: -h },
24790 { x: 0, y: -h / 2 }
24791 ];
24792 const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
24793 node2.intersect = function(point2) {
24794 return intersectPolygon$1(node2, points, point2);
24795 };
24796 return shapeSvg;
24797 }
24798 function rect_left_inv_arrow$1(parent, bbox, node2) {
24799 const w2 = bbox.width;
24800 const h = bbox.height;
24801 const points = [
24802 { x: -h / 2, y: 0 },
24803 { x: w2, y: 0 },
24804 { x: w2, y: -h },
24805 { x: -h / 2, y: -h },
24806 { x: 0, y: -h / 2 }
24807 ];
24808 const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
24809 node2.intersect = function(point2) {
24810 return intersectPolygon$1(node2, points, point2);
24811 };
24812 return shapeSvg;
24813 }
24814 function lean_right$1(parent, bbox, node2) {
24815 const w2 = bbox.width;
24816 const h = bbox.height;
24817 const points = [
24818 { x: -2 * h / 6, y: 0 },
24819 { x: w2 - h / 6, y: 0 },
24820 { x: w2 + 2 * h / 6, y: -h },
24821 { x: h / 6, y: -h }
24822 ];
24823 const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
24824 node2.intersect = function(point2) {
24825 return intersectPolygon$1(node2, points, point2);
24826 };
24827 return shapeSvg;
24828 }
24829 function lean_left$1(parent, bbox, node2) {
24830 const w2 = bbox.width;
24831 const h = bbox.height;
24832 const points = [
24833 { x: 2 * h / 6, y: 0 },
24834 { x: w2 + h / 6, y: 0 },
24835 { x: w2 - 2 * h / 6, y: -h },
24836 { x: -h / 6, y: -h }
24837 ];
24838 const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
24839 node2.intersect = function(point2) {
24840 return intersectPolygon$1(node2, points, point2);
24841 };
24842 return shapeSvg;
24843 }
24844 function trapezoid$1(parent, bbox, node2) {
24845 const w2 = bbox.width;
24846 const h = bbox.height;
24847 const points = [
24848 { x: -2 * h / 6, y: 0 },
24849 { x: w2 + 2 * h / 6, y: 0 },
24850 { x: w2 - h / 6, y: -h },
24851 { x: h / 6, y: -h }
24852 ];
24853 const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
24854 node2.intersect = function(point2) {
24855 return intersectPolygon$1(node2, points, point2);
24856 };
24857 return shapeSvg;
24858 }
24859 function inv_trapezoid$1(parent, bbox, node2) {
24860 const w2 = bbox.width;
24861 const h = bbox.height;
24862 const points = [
24863 { x: h / 6, y: 0 },
24864 { x: w2 - h / 6, y: 0 },
24865 { x: w2 + 2 * h / 6, y: -h },
24866 { x: -2 * h / 6, y: -h }
24867 ];
24868 const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
24869 node2.intersect = function(point2) {
24870 return intersectPolygon$1(node2, points, point2);
24871 };
24872 return shapeSvg;
24873 }
24874 function rect_right_inv_arrow$1(parent, bbox, node2) {
24875 const w2 = bbox.width;
24876 const h = bbox.height;
24877 const points = [
24878 { x: 0, y: 0 },
24879 { x: w2 + h / 2, y: 0 },
24880 { x: w2, y: -h / 2 },
24881 { x: w2 + h / 2, y: -h },
24882 { x: 0, y: -h }
24883 ];
24884 const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
24885 node2.intersect = function(point2) {
24886 return intersectPolygon$1(node2, points, point2);
24887 };
24888 return shapeSvg;
24889 }
24890 function stadium$1(parent, bbox, node2) {
24891 const h = bbox.height;
24892 const w2 = bbox.width + h / 4;
24893 const shapeSvg = parent.insert("rect", ":first-child").attr("rx", h / 2).attr("ry", h / 2).attr("x", -w2 / 2).attr("y", -h / 2).attr("width", w2).attr("height", h);
24894 node2.intersect = function(point2) {
24895 return intersectRect$2(node2, point2);
24896 };
24897 return shapeSvg;
24898 }
24899 function subroutine$1(parent, bbox, node2) {
24900 const w2 = bbox.width;
24901 const h = bbox.height;
24902 const points = [
24903 { x: 0, y: 0 },
24904 { x: w2, y: 0 },
24905 { x: w2, y: -h },
24906 { x: 0, y: -h },
24907 { x: 0, y: 0 },
24908 { x: -8, y: 0 },
24909 { x: w2 + 8, y: 0 },
24910 { x: w2 + 8, y: -h },
24911 { x: -8, y: -h },
24912 { x: -8, y: 0 }
24913 ];
24914 const shapeSvg = insertPolygonShape$2(parent, w2, h, points);
24915 node2.intersect = function(point2) {
24916 return intersectPolygon$1(node2, points, point2);
24917 };
24918 return shapeSvg;
24919 }
24920 function cylinder$1(parent, bbox, node2) {
24921 const w2 = bbox.width;
24922 const rx = w2 / 2;
24923 const ry = rx / (2.5 + w2 / 50);
24924 const h = bbox.height + ry;
24925 const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w2 + " 0 a " + rx + "," + ry + " 0,0,0 " + -w2 + " 0 l 0," + h + " a " + rx + "," + ry + " 0,0,0 " + w2 + " 0 l 0," + -h;
24926 const shapeSvg = parent.attr("label-offset-y", ry).insert("path", ":first-child").attr("d", shape).attr("transform", "translate(" + -w2 / 2 + "," + -(h / 2 + ry) + ")");
24927 node2.intersect = function(point2) {
24928 const pos = intersectRect$2(node2, point2);
24929 const x2 = pos.x - node2.x;
24930 if (rx != 0 && (Math.abs(x2) < node2.width / 2 || Math.abs(x2) == node2.width / 2 && Math.abs(pos.y - node2.y) > node2.height / 2 - ry)) {
24931 let y2 = ry * ry * (1 - x2 * x2 / (rx * rx));
24932 if (y2 != 0) {
24933 y2 = Math.sqrt(y2);
24934 }
24935 y2 = ry - y2;
24936 if (point2.y - node2.y > 0) {
24937 y2 = -y2;
24938 }
24939 pos.y += y2;
24940 }
24941 return pos;
24942 };
24943 return shapeSvg;
24944 }
24945 function addToRender(render2) {
24946 render2.shapes().question = question$1;
24947 render2.shapes().hexagon = hexagon$1;
24948 render2.shapes().stadium = stadium$1;
24949 render2.shapes().subroutine = subroutine$1;
24950 render2.shapes().cylinder = cylinder$1;
24951 render2.shapes().rect_left_inv_arrow = rect_left_inv_arrow$1;
24952 render2.shapes().lean_right = lean_right$1;
24953 render2.shapes().lean_left = lean_left$1;
24954 render2.shapes().trapezoid = trapezoid$1;
24955 render2.shapes().inv_trapezoid = inv_trapezoid$1;
24956 render2.shapes().rect_right_inv_arrow = rect_right_inv_arrow$1;
24957 }
24958 function addToRenderV2(addShape) {
24959 addShape({ question: question$1 });
24960 addShape({ hexagon: hexagon$1 });
24961 addShape({ stadium: stadium$1 });
24962 addShape({ subroutine: subroutine$1 });
24963 addShape({ cylinder: cylinder$1 });
24964 addShape({ rect_left_inv_arrow: rect_left_inv_arrow$1 });
24965 addShape({ lean_right: lean_right$1 });
24966 addShape({ lean_left: lean_left$1 });
24967 addShape({ trapezoid: trapezoid$1 });
24968 addShape({ inv_trapezoid: inv_trapezoid$1 });
24969 addShape({ rect_right_inv_arrow: rect_right_inv_arrow$1 });
24970 }
24971 function insertPolygonShape$2(parent, w2, h, points) {
24972 return parent.insert("polygon", ":first-child").attr(
24973 "points",
24974 points.map(function(d) {
24975 return d.x + "," + d.y;
24976 }).join(" ")
24977 ).attr("transform", "translate(" + -w2 / 2 + "," + h / 2 + ")");
24978 }
24979 const flowChartShapes = {
24980 addToRender,
24981 addToRenderV2
24982 };
24983 const conf$9 = {};
24984 const setConf$8 = function(cnf) {
24985 const keys2 = Object.keys(cnf);
24986 for (const key of keys2) {
24987 conf$9[key] = cnf[key];
24988 }
24989 };
24990 const addVertices$2 = function(vert, g, svgId, root2, _doc, diagObj) {
24991 const svg2 = !root2 ? select(`[id="${svgId}"]`) : root2.select(`[id="${svgId}"]`);
24992 const doc = !_doc ? document : _doc;
24993 const keys2 = Object.keys(vert);
24994 keys2.forEach(function(id2) {
24995 const vertex = vert[id2];
24996 let classStr = "default";
24997 if (vertex.classes.length > 0) {
24998 classStr = vertex.classes.join(" ");
24999 }
25000 const styles2 = getStylesFromArray(vertex.styles);
25001 let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;
25002 let vertexNode;
25003 if (evaluate(getConfig$1().flowchart.htmlLabels)) {
25004 const node2 = {
25005 label: vertexText.replace(
25006 /fa[blrs]?:fa-[\w-]+/g,
25007 (s) => `<i class='${s.replace(":", " ")}'></i>`
25008 )
25009 };
25010 vertexNode = addHtmlLabel$1(svg2, node2).node();
25011 vertexNode.parentNode.removeChild(vertexNode);
25012 } else {
25013 const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text");
25014 svgLabel.setAttribute("style", styles2.labelStyle.replace("color:", "fill:"));
25015 const rows = vertexText.split(common$1.lineBreakRegex);
25016 for (const row of rows) {
25017 const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan");
25018 tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
25019 tspan.setAttribute("dy", "1em");
25020 tspan.setAttribute("x", "1");
25021 tspan.textContent = row;
25022 svgLabel.appendChild(tspan);
25023 }
25024 vertexNode = svgLabel;
25025 }
25026 let radious = 0;
25027 let _shape = "";
25028 switch (vertex.type) {
25029 case "round":
25030 radious = 5;
25031 _shape = "rect";
25032 break;
25033 case "square":
25034 _shape = "rect";
25035 break;
25036 case "diamond":
25037 _shape = "question";
25038 break;
25039 case "hexagon":
25040 _shape = "hexagon";
25041 break;
25042 case "odd":
25043 _shape = "rect_left_inv_arrow";
25044 break;
25045 case "lean_right":
25046 _shape = "lean_right";
25047 break;
25048 case "lean_left":
25049 _shape = "lean_left";
25050 break;
25051 case "trapezoid":
25052 _shape = "trapezoid";
25053 break;
25054 case "inv_trapezoid":
25055 _shape = "inv_trapezoid";
25056 break;
25057 case "odd_right":
25058 _shape = "rect_left_inv_arrow";
25059 break;
25060 case "circle":
25061 _shape = "circle";
25062 break;
25063 case "ellipse":
25064 _shape = "ellipse";
25065 break;
25066 case "stadium":
25067 _shape = "stadium";
25068 break;
25069 case "subroutine":
25070 _shape = "subroutine";
25071 break;
25072 case "cylinder":
25073 _shape = "cylinder";
25074 break;
25075 case "group":
25076 _shape = "rect";
25077 break;
25078 default:
25079 _shape = "rect";
25080 }
25081 log$1.warn("Adding node", vertex.id, vertex.domId);
25082 g.setNode(diagObj.db.lookUpDomId(vertex.id), {
25083 labelType: "svg",
25084 labelStyle: styles2.labelStyle,
25085 shape: _shape,
25086 label: vertexNode,
25087 rx: radious,
25088 ry: radious,
25089 class: classStr,
25090 style: styles2.style,
25091 id: diagObj.db.lookUpDomId(vertex.id)
25092 });
25093 });
25094 };
25095 const addEdges$2 = function(edges2, g, diagObj) {
25096 let cnt2 = 0;
25097 let defaultStyle2;
25098 let defaultLabelStyle;
25099 if (edges2.defaultStyle !== void 0) {
25100 const defaultStyles = getStylesFromArray(edges2.defaultStyle);
25101 defaultStyle2 = defaultStyles.style;
25102 defaultLabelStyle = defaultStyles.labelStyle;
25103 }
25104 edges2.forEach(function(edge) {
25105 cnt2++;
25106 const linkId = "L-" + edge.start + "-" + edge.end;
25107 const linkNameStart = "LS-" + edge.start;
25108 const linkNameEnd = "LE-" + edge.end;
25109 const edgeData = {};
25110 if (edge.type === "arrow_open") {
25111 edgeData.arrowhead = "none";
25112 } else {
25113 edgeData.arrowhead = "normal";
25114 }
25115 let style = "";
25116 let labelStyle = "";
25117 if (edge.style !== void 0) {
25118 const styles2 = getStylesFromArray(edge.style);
25119 style = styles2.style;
25120 labelStyle = styles2.labelStyle;
25121 } else {
25122 switch (edge.stroke) {
25123 case "normal":
25124 style = "fill:none";
25125 if (defaultStyle2 !== void 0) {
25126 style = defaultStyle2;
25127 }
25128 if (defaultLabelStyle !== void 0) {
25129 labelStyle = defaultLabelStyle;
25130 }
25131 break;
25132 case "dotted":
25133 style = "fill:none;stroke-width:2px;stroke-dasharray:3;";
25134 break;
25135 case "thick":
25136 style = " stroke-width: 3.5px;fill:none";
25137 break;
25138 }
25139 }
25140 edgeData.style = style;
25141 edgeData.labelStyle = labelStyle;
25142 if (edge.interpolate !== void 0) {
25143 edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);
25144 } else if (edges2.defaultInterpolate !== void 0) {
25145 edgeData.curve = interpolateToCurve(edges2.defaultInterpolate, curveLinear);
25146 } else {
25147 edgeData.curve = interpolateToCurve(conf$9.curve, curveLinear);
25148 }
25149 if (edge.text === void 0) {
25150 if (edge.style !== void 0) {
25151 edgeData.arrowheadStyle = "fill: #333";
25152 }
25153 } else {
25154 edgeData.arrowheadStyle = "fill: #333";
25155 edgeData.labelpos = "c";
25156 if (evaluate(getConfig$1().flowchart.htmlLabels)) {
25157 edgeData.labelType = "html";
25158 edgeData.label = `<span id="L-${linkId}" class="edgeLabel L-${linkNameStart}' L-${linkNameEnd}" style="${edgeData.labelStyle}">${edge.text.replace(
25159 /fa[blrs]?:fa-[\w-]+/g,
25160 (s) => `<i class='${s.replace(":", " ")}'></i>`
25161 )}</span>`;
25162 } else {
25163 edgeData.labelType = "text";
25164 edgeData.label = edge.text.replace(common$1.lineBreakRegex, "\n");
25165 if (edge.style === void 0) {
25166 edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none";
25167 }
25168 edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
25169 }
25170 }
25171 edgeData.id = linkId;
25172 edgeData.class = linkNameStart + " " + linkNameEnd;
25173 edgeData.minlen = edge.length || 1;
25174 g.setEdge(diagObj.db.lookUpDomId(edge.start), diagObj.db.lookUpDomId(edge.end), edgeData, cnt2);
25175 });
25176 };
25177 const getClasses$5 = function(text2, diagObj) {
25178 log$1.info("Extracting classes");
25179 diagObj.db.clear();
25180 try {
25181 diagObj.parse(text2);
25182 return diagObj.db.getClasses();
25183 } catch (e) {
25184 log$1.error(e);
25185 return {};
25186 }
25187 };
25188 const draw$h = function(text2, id2, _version, diagObj) {
25189 log$1.info("Drawing flowchart");
25190 diagObj.db.clear();
25191 const { securityLevel, flowchart: conf2 } = getConfig$1();
25192 let sandboxElement;
25193 if (securityLevel === "sandbox") {
25194 sandboxElement = select("#i" + id2);
25195 }
25196 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
25197 const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
25198 try {
25199 diagObj.parser.parse(text2);
25200 } catch (err) {
25201 log$1.debug("Parsing failed");
25202 }
25203 let dir = diagObj.db.getDirection();
25204 if (dir === void 0) {
25205 dir = "TD";
25206 }
25207 const nodeSpacing = conf2.nodeSpacing || 50;
25208 const rankSpacing = conf2.rankSpacing || 50;
25209 const g = new Graph({
25210 multigraph: true,
25211 compound: true
25212 }).setGraph({
25213 rankdir: dir,
25214 nodesep: nodeSpacing,
25215 ranksep: rankSpacing,
25216 marginx: 8,
25217 marginy: 8
25218 }).setDefaultEdgeLabel(function() {
25219 return {};
25220 });
25221 let subG;
25222 const subGraphs2 = diagObj.db.getSubGraphs();
25223 for (let i3 = subGraphs2.length - 1; i3 >= 0; i3--) {
25224 subG = subGraphs2[i3];
25225 diagObj.db.addVertex(subG.id, subG.title, "group", void 0, subG.classes);
25226 }
25227 const vert = diagObj.db.getVertices();
25228 log$1.warn("Get vertices", vert);
25229 const edges2 = diagObj.db.getEdges();
25230 let i2 = 0;
25231 for (i2 = subGraphs2.length - 1; i2 >= 0; i2--) {
25232 subG = subGraphs2[i2];
25233 selectAll("cluster").append("text");
25234 for (let j = 0; j < subG.nodes.length; j++) {
25235 log$1.warn(
25236 "Setting subgraph",
25237 subG.nodes[j],
25238 diagObj.db.lookUpDomId(subG.nodes[j]),
25239 diagObj.db.lookUpDomId(subG.id)
25240 );
25241 g.setParent(diagObj.db.lookUpDomId(subG.nodes[j]), diagObj.db.lookUpDomId(subG.id));
25242 }
25243 }
25244 addVertices$2(vert, g, id2, root2, doc, diagObj);
25245 addEdges$2(edges2, g, diagObj);
25246 const render2 = new render$1();
25247 flowChartShapes.addToRender(render2);
25248 render2.arrows().none = function normal2(parent, id3, edge, type2) {
25249 const marker = parent.append("marker").attr("id", id3).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
25250 const path2 = marker.append("path").attr("d", "M 0 0 L 0 0 L 0 0 z");
25251 applyStyle$2(path2, edge[type2 + "Style"]);
25252 };
25253 render2.arrows().normal = function normal2(parent, id3) {
25254 const marker = parent.append("marker").attr("id", id3).attr("viewBox", "0 0 10 10").attr("refX", 9).attr("refY", 5).attr("markerUnits", "strokeWidth").attr("markerWidth", 8).attr("markerHeight", 6).attr("orient", "auto");
25255 marker.append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowheadPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
25256 };
25257 const svg2 = root2.select(`[id="${id2}"]`);
25258 const element2 = root2.select("#" + id2 + " g");
25259 render2(element2, g);
25260 element2.selectAll("g.node").attr("title", function() {
25261 return diagObj.db.getTooltip(this.id);
25262 });
25263 diagObj.db.indexNodes("subGraph" + i2);
25264 for (i2 = 0; i2 < subGraphs2.length; i2++) {
25265 subG = subGraphs2[i2];
25266 if (subG.title !== "undefined") {
25267 const clusterRects = doc.querySelectorAll(
25268 "#" + id2 + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"] rect'
25269 );
25270 const clusterEl = doc.querySelectorAll(
25271 "#" + id2 + ' [id="' + diagObj.db.lookUpDomId(subG.id) + '"]'
25272 );
25273 const xPos = clusterRects[0].x.baseVal.value;
25274 const yPos = clusterRects[0].y.baseVal.value;
25275 const _width = clusterRects[0].width.baseVal.value;
25276 const cluster = select(clusterEl[0]);
25277 const te = cluster.select(".label");
25278 te.attr("transform", `translate(${xPos + _width / 2}, ${yPos + 14})`);
25279 te.attr("id", id2 + "Text");
25280 for (let j = 0; j < subG.classes.length; j++) {
25281 clusterEl[0].classList.add(subG.classes[j]);
25282 }
25283 }
25284 }
25285 if (!conf2.htmlLabels) {
25286 const labels = doc.querySelectorAll('[id="' + id2 + '"] .edgeLabel .label');
25287 for (const label of labels) {
25288 const dim = label.getBBox();
25289 const rect2 = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
25290 rect2.setAttribute("rx", 0);
25291 rect2.setAttribute("ry", 0);
25292 rect2.setAttribute("width", dim.width);
25293 rect2.setAttribute("height", dim.height);
25294 label.insertBefore(rect2, label.firstChild);
25295 }
25296 }
25297 setupGraphViewbox$1(g, svg2, conf2.diagramPadding, conf2.useMaxWidth);
25298 const keys2 = Object.keys(vert);
25299 keys2.forEach(function(key) {
25300 const vertex = vert[key];
25301 if (vertex.link) {
25302 const node2 = root2.select("#" + id2 + ' [id="' + diagObj.db.lookUpDomId(key) + '"]');
25303 if (node2) {
25304 const link = doc.createElementNS("http://www.w3.org/2000/svg", "a");
25305 link.setAttributeNS("http://www.w3.org/2000/svg", "class", vertex.classes.join(" "));
25306 link.setAttributeNS("http://www.w3.org/2000/svg", "href", vertex.link);
25307 link.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener");
25308 if (securityLevel === "sandbox") {
25309 link.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top");
25310 } else if (vertex.linkTarget) {
25311 link.setAttributeNS("http://www.w3.org/2000/svg", "target", vertex.linkTarget);
25312 }
25313 const linkNode = node2.insert(function() {
25314 return link;
25315 }, ":first-child");
25316 const shape = node2.select(".label-container");
25317 if (shape) {
25318 linkNode.append(function() {
25319 return shape.node();
25320 });
25321 }
25322 const label = node2.select(".label");
25323 if (label) {
25324 linkNode.append(function() {
25325 return label.node();
25326 });
25327 }
25328 }
25329 }
25330 });
25331 };
25332 const flowRenderer = {
25333 setConf: setConf$8,
25334 addVertices: addVertices$2,
25335 addEdges: addEdges$2,
25336 getClasses: getClasses$5,
25337 draw: draw$h
25338 };
25339 function write(g) {
25340 var json2 = {
25341 options: {
25342 directed: g.isDirected(),
25343 multigraph: g.isMultigraph(),
25344 compound: g.isCompound()
25345 },
25346 nodes: writeNodes(g),
25347 edges: writeEdges(g)
25348 };
25349 if (!isUndefined(g.graph())) {
25350 json2.value = clone$1(g.graph());
25351 }
25352 return json2;
25353 }
25354 function writeNodes(g) {
25355 return map(g.nodes(), function(v) {
25356 var nodeValue = g.node(v);
25357 var parent = g.parent(v);
25358 var node2 = { v };
25359 if (!isUndefined(nodeValue)) {
25360 node2.value = nodeValue;
25361 }
25362 if (!isUndefined(parent)) {
25363 node2.parent = parent;
25364 }
25365 return node2;
25366 });
25367 }
25368 function writeEdges(g) {
25369 return map(g.edges(), function(e) {
25370 var edgeValue = g.edge(e);
25371 var edge = { v: e.v, w: e.w };
25372 if (!isUndefined(e.name)) {
25373 edge.name = e.name;
25374 }
25375 if (!isUndefined(edgeValue)) {
25376 edge.value = edgeValue;
25377 }
25378 return edge;
25379 });
25380 }
25381 const insertMarkers$3 = (elem, markerArray, type2, id2) => {
25382 markerArray.forEach((markerName) => {
25383 markers$1[markerName](elem, type2, id2);
25384 });
25385 };
25386 const extension$1 = (elem, type2, id2) => {
25387 log$1.trace("Making markers for ", id2);
25388 elem.append("defs").append("marker").attr("id", type2 + "-extensionStart").attr("class", "marker extension " + type2).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z");
25389 elem.append("defs").append("marker").attr("id", type2 + "-extensionEnd").attr("class", "marker extension " + type2).attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
25390 };
25391 const composition = (elem, type2) => {
25392 elem.append("defs").append("marker").attr("id", type2 + "-compositionStart").attr("class", "marker composition " + type2).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
25393 elem.append("defs").append("marker").attr("id", type2 + "-compositionEnd").attr("class", "marker composition " + type2).attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
25394 };
25395 const aggregation = (elem, type2) => {
25396 elem.append("defs").append("marker").attr("id", type2 + "-aggregationStart").attr("class", "marker aggregation " + type2).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
25397 elem.append("defs").append("marker").attr("id", type2 + "-aggregationEnd").attr("class", "marker aggregation " + type2).attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
25398 };
25399 const dependency = (elem, type2) => {
25400 elem.append("defs").append("marker").attr("id", type2 + "-dependencyStart").attr("class", "marker dependency " + type2).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z");
25401 elem.append("defs").append("marker").attr("id", type2 + "-dependencyEnd").attr("class", "marker dependency " + type2).attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
25402 };
25403 const lollipop = (elem, type2) => {
25404 elem.append("defs").append("marker").attr("id", type2 + "-lollipopStart").attr("class", "marker lollipop " + type2).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("circle").attr("stroke", "black").attr("fill", "white").attr("cx", 6).attr("cy", 7).attr("r", 6);
25405 };
25406 const point$2 = (elem, type2) => {
25407 elem.append("marker").attr("id", type2 + "-pointEnd").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", 10).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
25408 elem.append("marker").attr("id", type2 + "-pointStart").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", 0).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 5 L 10 10 L 10 0 z").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
25409 };
25410 const circle$1 = (elem, type2) => {
25411 elem.append("marker").attr("id", type2 + "-circleEnd").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", 11).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
25412 elem.append("marker").attr("id", type2 + "-circleStart").attr("class", "marker " + type2).attr("viewBox", "0 0 10 10").attr("refX", -1).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("circle").attr("cx", "5").attr("cy", "5").attr("r", "5").attr("class", "arrowMarkerPath").style("stroke-width", 1).style("stroke-dasharray", "1,0");
25413 };
25414 const cross = (elem, type2) => {
25415 elem.append("marker").attr("id", type2 + "-crossEnd").attr("class", "marker cross " + type2).attr("viewBox", "0 0 11 11").attr("refX", 12).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
25416 elem.append("marker").attr("id", type2 + "-crossStart").attr("class", "marker cross " + type2).attr("viewBox", "0 0 11 11").attr("refX", -1).attr("refY", 5.2).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 11).attr("markerHeight", 11).attr("orient", "auto").append("path").attr("d", "M 1,1 l 9,9 M 10,1 l -9,9").attr("class", "arrowMarkerPath").style("stroke-width", 2).style("stroke-dasharray", "1,0");
25417 };
25418 const barb = (elem, type2) => {
25419 elem.append("defs").append("marker").attr("id", type2 + "-barbEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 14).attr("markerUnits", "strokeWidth").attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
25420 };
25421 const markers$1 = {
25422 extension: extension$1,
25423 composition,
25424 aggregation,
25425 dependency,
25426 lollipop,
25427 point: point$2,
25428 circle: circle$1,
25429 cross,
25430 barb
25431 };
25432 const insertMarkers$4 = insertMarkers$3;
25433 function applyStyle$1(dom, styleFn) {
25434 if (styleFn) {
25435 dom.attr("style", styleFn);
25436 }
25437 }
25438 function addHtmlLabel(node2) {
25439 const fo = select(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject"));
25440 const div = fo.append("xhtml:div");
25441 const label = node2.label;
25442 const labelClass = node2.isNode ? "nodeLabel" : "edgeLabel";
25443 div.html(
25444 '<span class="' + labelClass + '" ' + (node2.labelStyle ? 'style="' + node2.labelStyle + '"' : "") + ">" + label + "</span>"
25445 );
25446 applyStyle$1(div, node2.labelStyle);
25447 div.style("display", "inline-block");
25448 div.style("white-space", "nowrap");
25449 div.attr("xmlns", "http://www.w3.org/1999/xhtml");
25450 return fo.node();
25451 }
25452 const createLabel = (_vertexText, style, isTitle, isNode) => {
25453 let vertexText = _vertexText || "";
25454 if (typeof vertexText === "object") {
25455 vertexText = vertexText[0];
25456 }
25457 if (evaluate(getConfig$1().flowchart.htmlLabels)) {
25458 vertexText = vertexText.replace(/\\n|\n/g, "<br />");
25459 log$1.info("vertexText" + vertexText);
25460 const node2 = {
25461 isNode,
25462 label: decodeEntities(vertexText).replace(
25463 /fa[blrs]?:fa-[\w-]+/g,
25464 (s) => `<i class='${s.replace(":", " ")}'></i>`
25465 ),
25466 labelStyle: style.replace("fill:", "color:")
25467 };
25468 let vertexNode = addHtmlLabel(node2);
25469 return vertexNode;
25470 } else {
25471 const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text");
25472 svgLabel.setAttribute("style", style.replace("color:", "fill:"));
25473 let rows = [];
25474 if (typeof vertexText === "string") {
25475 rows = vertexText.split(/\\n|\n|<br\s*\/?>/gi);
25476 } else if (Array.isArray(vertexText)) {
25477 rows = vertexText;
25478 } else {
25479 rows = [];
25480 }
25481 for (const row of rows) {
25482 const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
25483 tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
25484 tspan.setAttribute("dy", "1em");
25485 tspan.setAttribute("x", "0");
25486 if (isTitle) {
25487 tspan.setAttribute("class", "title-row");
25488 } else {
25489 tspan.setAttribute("class", "row");
25490 }
25491 tspan.textContent = row.trim();
25492 svgLabel.appendChild(tspan);
25493 }
25494 return svgLabel;
25495 }
25496 };
25497 const createLabel$1 = createLabel;
25498 function toString(node2, options2) {
25499 var { includeImageAlt = true } = options2 || {};
25500 return one(node2, includeImageAlt);
25501 }
25502 function one(node2, includeImageAlt) {
25503 return node2 && typeof node2 === "object" && // @ts-ignore looks like a literal.
25504 (node2.value || // @ts-ignore looks like an image.
25505 (includeImageAlt ? node2.alt : "") || // @ts-ignore looks like a parent.
25506 "children" in node2 && all(node2.children, includeImageAlt) || Array.isArray(node2) && all(node2, includeImageAlt)) || "";
25507 }
25508 function all(values2, includeImageAlt) {
25509 var result = [];
25510 var index2 = -1;
25511 while (++index2 < values2.length) {
25512 result[index2] = one(values2[index2], includeImageAlt);
25513 }
25514 return result.join("");
25515 }
25516 function splice(list2, start2, remove2, items) {
25517 const end2 = list2.length;
25518 let chunkStart = 0;
25519 let parameters;
25520 if (start2 < 0) {
25521 start2 = -start2 > end2 ? 0 : end2 + start2;
25522 } else {
25523 start2 = start2 > end2 ? end2 : start2;
25524 }
25525 remove2 = remove2 > 0 ? remove2 : 0;
25526 if (items.length < 1e4) {
25527 parameters = Array.from(items);
25528 parameters.unshift(start2, remove2);
25529 [].splice.apply(list2, parameters);
25530 } else {
25531 if (remove2)
25532 [].splice.apply(list2, [start2, remove2]);
25533 while (chunkStart < items.length) {
25534 parameters = items.slice(chunkStart, chunkStart + 1e4);
25535 parameters.unshift(start2, 0);
25536 [].splice.apply(list2, parameters);
25537 chunkStart += 1e4;
25538 start2 += 1e4;
25539 }
25540 }
25541 }
25542 function push(list2, items) {
25543 if (list2.length > 0) {
25544 splice(list2, list2.length, 0, items);
25545 return list2;
25546 }
25547 return items;
25548 }
25549 const hasOwnProperty = {}.hasOwnProperty;
25550 function combineExtensions(extensions) {
25551 const all2 = {};
25552 let index2 = -1;
25553 while (++index2 < extensions.length) {
25554 syntaxExtension(all2, extensions[index2]);
25555 }
25556 return all2;
25557 }
25558 function syntaxExtension(all2, extension2) {
25559 let hook;
25560 for (hook in extension2) {
25561 const maybe = hasOwnProperty.call(all2, hook) ? all2[hook] : void 0;
25562 const left2 = maybe || (all2[hook] = {});
25563 const right2 = extension2[hook];
25564 let code;
25565 for (code in right2) {
25566 if (!hasOwnProperty.call(left2, code))
25567 left2[code] = [];
25568 const value = right2[code];
25569 constructs(
25570 // @ts-expect-error Looks like a list.
25571 left2[code],
25572 Array.isArray(value) ? value : value ? [value] : []
25573 );
25574 }
25575 }
25576 }
25577 function constructs(existing, list2) {
25578 let index2 = -1;
25579 const before = [];
25580 while (++index2 < list2.length) {
25581 (list2[index2].add === "after" ? existing : before).push(list2[index2]);
25582 }
25583 splice(existing, 0, 0, before);
25584 }
25585 const unicodePunctuationRegex = /[!-/:-@[-`{-~\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/;
25586 const asciiAlpha = regexCheck(/[A-Za-z]/);
25587 const asciiDigit = regexCheck(/\d/);
25588 const asciiHexDigit = regexCheck(/[\dA-Fa-f]/);
25589 const asciiAlphanumeric = regexCheck(/[\dA-Za-z]/);
25590 const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);
25591 const asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/);
25592 function asciiControl(code) {
25593 return (
25594 // Special whitespace codes (which have negative values), C0 and Control
25595 // character DEL
25596 code !== null && (code < 32 || code === 127)
25597 );
25598 }
25599 function markdownLineEndingOrSpace(code) {
25600 return code !== null && (code < 0 || code === 32);
25601 }
25602 function markdownLineEnding(code) {
25603 return code !== null && code < -2;
25604 }
25605 function markdownSpace(code) {
25606 return code === -2 || code === -1 || code === 32;
25607 }
25608 const unicodeWhitespace = regexCheck(/\s/);
25609 const unicodePunctuation = regexCheck(unicodePunctuationRegex);
25610 function regexCheck(regex) {
25611 return check;
25612 function check(code) {
25613 return code !== null && regex.test(String.fromCharCode(code));
25614 }
25615 }
25616 function factorySpace(effects, ok, type2, max2) {
25617 const limit = max2 ? max2 - 1 : Number.POSITIVE_INFINITY;
25618 let size2 = 0;
25619 return start2;
25620 function start2(code) {
25621 if (markdownSpace(code)) {
25622 effects.enter(type2);
25623 return prefix(code);
25624 }
25625 return ok(code);
25626 }
25627 function prefix(code) {
25628 if (markdownSpace(code) && size2++ < limit) {
25629 effects.consume(code);
25630 return prefix;
25631 }
25632 effects.exit(type2);
25633 return ok(code);
25634 }
25635 }
25636 const content$1 = {
25637 tokenize: initializeContent
25638 };
25639 function initializeContent(effects) {
25640 const contentStart = effects.attempt(
25641 this.parser.constructs.contentInitial,
25642 afterContentStartConstruct,
25643 paragraphInitial
25644 );
25645 let previous2;
25646 return contentStart;
25647 function afterContentStartConstruct(code) {
25648 if (code === null) {
25649 effects.consume(code);
25650 return;
25651 }
25652 effects.enter("lineEnding");
25653 effects.consume(code);
25654 effects.exit("lineEnding");
25655 return factorySpace(effects, contentStart, "linePrefix");
25656 }
25657 function paragraphInitial(code) {
25658 effects.enter("paragraph");
25659 return lineStart(code);
25660 }
25661 function lineStart(code) {
25662 const token2 = effects.enter("chunkText", {
25663 contentType: "text",
25664 previous: previous2
25665 });
25666 if (previous2) {
25667 previous2.next = token2;
25668 }
25669 previous2 = token2;
25670 return data(code);
25671 }
25672 function data(code) {
25673 if (code === null) {
25674 effects.exit("chunkText");
25675 effects.exit("paragraph");
25676 effects.consume(code);
25677 return;
25678 }
25679 if (markdownLineEnding(code)) {
25680 effects.consume(code);
25681 effects.exit("chunkText");
25682 return lineStart;
25683 }
25684 effects.consume(code);
25685 return data;
25686 }
25687 }
25688 const document$2 = {
25689 tokenize: initializeDocument
25690 };
25691 const containerConstruct = {
25692 tokenize: tokenizeContainer
25693 };
25694 function initializeDocument(effects) {
25695 const self2 = this;
25696 const stack = [];
25697 let continued = 0;
25698 let childFlow;
25699 let childToken;
25700 let lineStartOffset;
25701 return start2;
25702 function start2(code) {
25703 if (continued < stack.length) {
25704 const item = stack[continued];
25705 self2.containerState = item[1];
25706 return effects.attempt(
25707 item[0].continuation,
25708 documentContinue,
25709 checkNewContainers
25710 )(code);
25711 }
25712 return checkNewContainers(code);
25713 }
25714 function documentContinue(code) {
25715 continued++;
25716 if (self2.containerState._closeFlow) {
25717 self2.containerState._closeFlow = void 0;
25718 if (childFlow) {
25719 closeFlow();
25720 }
25721 const indexBeforeExits = self2.events.length;
25722 let indexBeforeFlow = indexBeforeExits;
25723 let point2;
25724 while (indexBeforeFlow--) {
25725 if (self2.events[indexBeforeFlow][0] === "exit" && self2.events[indexBeforeFlow][1].type === "chunkFlow") {
25726 point2 = self2.events[indexBeforeFlow][1].end;
25727 break;
25728 }
25729 }
25730 exitContainers(continued);
25731 let index2 = indexBeforeExits;
25732 while (index2 < self2.events.length) {
25733 self2.events[index2][1].end = Object.assign({}, point2);
25734 index2++;
25735 }
25736 splice(
25737 self2.events,
25738 indexBeforeFlow + 1,
25739 0,
25740 self2.events.slice(indexBeforeExits)
25741 );
25742 self2.events.length = index2;
25743 return checkNewContainers(code);
25744 }
25745 return start2(code);
25746 }
25747 function checkNewContainers(code) {
25748 if (continued === stack.length) {
25749 if (!childFlow) {
25750 return documentContinued(code);
25751 }
25752 if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) {
25753 return flowStart(code);
25754 }
25755 self2.interrupt = Boolean(
25756 childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack
25757 );
25758 }
25759 self2.containerState = {};
25760 return effects.check(
25761 containerConstruct,
25762 thereIsANewContainer,
25763 thereIsNoNewContainer
25764 )(code);
25765 }
25766 function thereIsANewContainer(code) {
25767 if (childFlow)
25768 closeFlow();
25769 exitContainers(continued);
25770 return documentContinued(code);
25771 }
25772 function thereIsNoNewContainer(code) {
25773 self2.parser.lazy[self2.now().line] = continued !== stack.length;
25774 lineStartOffset = self2.now().offset;
25775 return flowStart(code);
25776 }
25777 function documentContinued(code) {
25778 self2.containerState = {};
25779 return effects.attempt(
25780 containerConstruct,
25781 containerContinue,
25782 flowStart
25783 )(code);
25784 }
25785 function containerContinue(code) {
25786 continued++;
25787 stack.push([self2.currentConstruct, self2.containerState]);
25788 return documentContinued(code);
25789 }
25790 function flowStart(code) {
25791 if (code === null) {
25792 if (childFlow)
25793 closeFlow();
25794 exitContainers(0);
25795 effects.consume(code);
25796 return;
25797 }
25798 childFlow = childFlow || self2.parser.flow(self2.now());
25799 effects.enter("chunkFlow", {
25800 contentType: "flow",
25801 previous: childToken,
25802 _tokenizer: childFlow
25803 });
25804 return flowContinue(code);
25805 }
25806 function flowContinue(code) {
25807 if (code === null) {
25808 writeToChild(effects.exit("chunkFlow"), true);
25809 exitContainers(0);
25810 effects.consume(code);
25811 return;
25812 }
25813 if (markdownLineEnding(code)) {
25814 effects.consume(code);
25815 writeToChild(effects.exit("chunkFlow"));
25816 continued = 0;
25817 self2.interrupt = void 0;
25818 return start2;
25819 }
25820 effects.consume(code);
25821 return flowContinue;
25822 }
25823 function writeToChild(token2, eof) {
25824 const stream = self2.sliceStream(token2);
25825 if (eof)
25826 stream.push(null);
25827 token2.previous = childToken;
25828 if (childToken)
25829 childToken.next = token2;
25830 childToken = token2;
25831 childFlow.defineSkip(token2.start);
25832 childFlow.write(stream);
25833 if (self2.parser.lazy[token2.start.line]) {
25834 let index2 = childFlow.events.length;
25835 while (index2--) {
25836 if (
25837 // The token starts before the line ending…
25838 childFlow.events[index2][1].start.offset < lineStartOffset && // …and either is not ended yet…
25839 (!childFlow.events[index2][1].end || // …or ends after it.
25840 childFlow.events[index2][1].end.offset > lineStartOffset)
25841 ) {
25842 return;
25843 }
25844 }
25845 const indexBeforeExits = self2.events.length;
25846 let indexBeforeFlow = indexBeforeExits;
25847 let seen;
25848 let point2;
25849 while (indexBeforeFlow--) {
25850 if (self2.events[indexBeforeFlow][0] === "exit" && self2.events[indexBeforeFlow][1].type === "chunkFlow") {
25851 if (seen) {
25852 point2 = self2.events[indexBeforeFlow][1].end;
25853 break;
25854 }
25855 seen = true;
25856 }
25857 }
25858 exitContainers(continued);
25859 index2 = indexBeforeExits;
25860 while (index2 < self2.events.length) {
25861 self2.events[index2][1].end = Object.assign({}, point2);
25862 index2++;
25863 }
25864 splice(
25865 self2.events,
25866 indexBeforeFlow + 1,
25867 0,
25868 self2.events.slice(indexBeforeExits)
25869 );
25870 self2.events.length = index2;
25871 }
25872 }
25873 function exitContainers(size2) {
25874 let index2 = stack.length;
25875 while (index2-- > size2) {
25876 const entry = stack[index2];
25877 self2.containerState = entry[1];
25878 entry[0].exit.call(self2, effects);
25879 }
25880 stack.length = size2;
25881 }
25882 function closeFlow() {
25883 childFlow.write([null]);
25884 childToken = void 0;
25885 childFlow = void 0;
25886 self2.containerState._closeFlow = void 0;
25887 }
25888 }
25889 function tokenizeContainer(effects, ok, nok) {
25890 return factorySpace(
25891 effects,
25892 effects.attempt(this.parser.constructs.document, ok, nok),
25893 "linePrefix",
25894 this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4
25895 );
25896 }
25897 function classifyCharacter(code) {
25898 if (code === null || markdownLineEndingOrSpace(code) || unicodeWhitespace(code)) {
25899 return 1;
25900 }
25901 if (unicodePunctuation(code)) {
25902 return 2;
25903 }
25904 }
25905 function resolveAll(constructs2, events, context) {
25906 const called = [];
25907 let index2 = -1;
25908 while (++index2 < constructs2.length) {
25909 const resolve = constructs2[index2].resolveAll;
25910 if (resolve && !called.includes(resolve)) {
25911 events = resolve(events, context);
25912 called.push(resolve);
25913 }
25914 }
25915 return events;
25916 }
25917 const attention = {
25918 name: "attention",
25919 tokenize: tokenizeAttention,
25920 resolveAll: resolveAllAttention
25921 };
25922 function resolveAllAttention(events, context) {
25923 let index2 = -1;
25924 let open;
25925 let group;
25926 let text2;
25927 let openingSequence;
25928 let closingSequence;
25929 let use;
25930 let nextEvents;
25931 let offset;
25932 while (++index2 < events.length) {
25933 if (events[index2][0] === "enter" && events[index2][1].type === "attentionSequence" && events[index2][1]._close) {
25934 open = index2;
25935 while (open--) {
25936 if (events[open][0] === "exit" && events[open][1].type === "attentionSequence" && events[open][1]._open && // If the markers are the same:
25937 context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index2][1]).charCodeAt(0)) {
25938 if ((events[open][1]._close || events[index2][1]._open) && (events[index2][1].end.offset - events[index2][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index2][1].end.offset - events[index2][1].start.offset) % 3)) {
25939 continue;
25940 }
25941 use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index2][1].end.offset - events[index2][1].start.offset > 1 ? 2 : 1;
25942 const start2 = Object.assign({}, events[open][1].end);
25943 const end2 = Object.assign({}, events[index2][1].start);
25944 movePoint(start2, -use);
25945 movePoint(end2, use);
25946 openingSequence = {
25947 type: use > 1 ? "strongSequence" : "emphasisSequence",
25948 start: start2,
25949 end: Object.assign({}, events[open][1].end)
25950 };
25951 closingSequence = {
25952 type: use > 1 ? "strongSequence" : "emphasisSequence",
25953 start: Object.assign({}, events[index2][1].start),
25954 end: end2
25955 };
25956 text2 = {
25957 type: use > 1 ? "strongText" : "emphasisText",
25958 start: Object.assign({}, events[open][1].end),
25959 end: Object.assign({}, events[index2][1].start)
25960 };
25961 group = {
25962 type: use > 1 ? "strong" : "emphasis",
25963 start: Object.assign({}, openingSequence.start),
25964 end: Object.assign({}, closingSequence.end)
25965 };
25966 events[open][1].end = Object.assign({}, openingSequence.start);
25967 events[index2][1].start = Object.assign({}, closingSequence.end);
25968 nextEvents = [];
25969 if (events[open][1].end.offset - events[open][1].start.offset) {
25970 nextEvents = push(nextEvents, [
25971 ["enter", events[open][1], context],
25972 ["exit", events[open][1], context]
25973 ]);
25974 }
25975 nextEvents = push(nextEvents, [
25976 ["enter", group, context],
25977 ["enter", openingSequence, context],
25978 ["exit", openingSequence, context],
25979 ["enter", text2, context]
25980 ]);
25981 nextEvents = push(
25982 nextEvents,
25983 resolveAll(
25984 context.parser.constructs.insideSpan.null,
25985 events.slice(open + 1, index2),
25986 context
25987 )
25988 );
25989 nextEvents = push(nextEvents, [
25990 ["exit", text2, context],
25991 ["enter", closingSequence, context],
25992 ["exit", closingSequence, context],
25993 ["exit", group, context]
25994 ]);
25995 if (events[index2][1].end.offset - events[index2][1].start.offset) {
25996 offset = 2;
25997 nextEvents = push(nextEvents, [
25998 ["enter", events[index2][1], context],
25999 ["exit", events[index2][1], context]
26000 ]);
26001 } else {
26002 offset = 0;
26003 }
26004 splice(events, open - 1, index2 - open + 3, nextEvents);
26005 index2 = open + nextEvents.length - offset - 2;
26006 break;
26007 }
26008 }
26009 }
26010 }
26011 index2 = -1;
26012 while (++index2 < events.length) {
26013 if (events[index2][1].type === "attentionSequence") {
26014 events[index2][1].type = "data";
26015 }
26016 }
26017 return events;
26018 }
26019 function tokenizeAttention(effects, ok) {
26020 const attentionMarkers2 = this.parser.constructs.attentionMarkers.null;
26021 const previous2 = this.previous;
26022 const before = classifyCharacter(previous2);
26023 let marker;
26024 return start2;
26025 function start2(code) {
26026 effects.enter("attentionSequence");
26027 marker = code;
26028 return sequence2(code);
26029 }
26030 function sequence2(code) {
26031 if (code === marker) {
26032 effects.consume(code);
26033 return sequence2;
26034 }
26035 const token2 = effects.exit("attentionSequence");
26036 const after = classifyCharacter(code);
26037 const open = !after || after === 2 && before || attentionMarkers2.includes(code);
26038 const close = !before || before === 2 && after || attentionMarkers2.includes(previous2);
26039 token2._open = Boolean(marker === 42 ? open : open && (before || !close));
26040 token2._close = Boolean(marker === 42 ? close : close && (after || !open));
26041 return ok(code);
26042 }
26043 }
26044 function movePoint(point2, offset) {
26045 point2.column += offset;
26046 point2.offset += offset;
26047 point2._bufferIndex += offset;
26048 }
26049 const autolink = {
26050 name: "autolink",
26051 tokenize: tokenizeAutolink
26052 };
26053 function tokenizeAutolink(effects, ok, nok) {
26054 let size2 = 1;
26055 return start2;
26056 function start2(code) {
26057 effects.enter("autolink");
26058 effects.enter("autolinkMarker");
26059 effects.consume(code);
26060 effects.exit("autolinkMarker");
26061 effects.enter("autolinkProtocol");
26062 return open;
26063 }
26064 function open(code) {
26065 if (asciiAlpha(code)) {
26066 effects.consume(code);
26067 return schemeOrEmailAtext;
26068 }
26069 return asciiAtext(code) ? emailAtext(code) : nok(code);
26070 }
26071 function schemeOrEmailAtext(code) {
26072 return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code) ? schemeInsideOrEmailAtext(code) : emailAtext(code);
26073 }
26074 function schemeInsideOrEmailAtext(code) {
26075 if (code === 58) {
26076 effects.consume(code);
26077 return urlInside;
26078 }
26079 if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size2++ < 32) {
26080 effects.consume(code);
26081 return schemeInsideOrEmailAtext;
26082 }
26083 return emailAtext(code);
26084 }
26085 function urlInside(code) {
26086 if (code === 62) {
26087 effects.exit("autolinkProtocol");
26088 return end2(code);
26089 }
26090 if (code === null || code === 32 || code === 60 || asciiControl(code)) {
26091 return nok(code);
26092 }
26093 effects.consume(code);
26094 return urlInside;
26095 }
26096 function emailAtext(code) {
26097 if (code === 64) {
26098 effects.consume(code);
26099 size2 = 0;
26100 return emailAtSignOrDot;
26101 }
26102 if (asciiAtext(code)) {
26103 effects.consume(code);
26104 return emailAtext;
26105 }
26106 return nok(code);
26107 }
26108 function emailAtSignOrDot(code) {
26109 return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);
26110 }
26111 function emailLabel(code) {
26112 if (code === 46) {
26113 effects.consume(code);
26114 size2 = 0;
26115 return emailAtSignOrDot;
26116 }
26117 if (code === 62) {
26118 effects.exit("autolinkProtocol").type = "autolinkEmail";
26119 return end2(code);
26120 }
26121 return emailValue(code);
26122 }
26123 function emailValue(code) {
26124 if ((code === 45 || asciiAlphanumeric(code)) && size2++ < 63) {
26125 effects.consume(code);
26126 return code === 45 ? emailValue : emailLabel;
26127 }
26128 return nok(code);
26129 }
26130 function end2(code) {
26131 effects.enter("autolinkMarker");
26132 effects.consume(code);
26133 effects.exit("autolinkMarker");
26134 effects.exit("autolink");
26135 return ok;
26136 }
26137 }
26138 const blankLine = {
26139 tokenize: tokenizeBlankLine,
26140 partial: true
26141 };
26142 function tokenizeBlankLine(effects, ok, nok) {
26143 return factorySpace(effects, afterWhitespace, "linePrefix");
26144 function afterWhitespace(code) {
26145 return code === null || markdownLineEnding(code) ? ok(code) : nok(code);
26146 }
26147 }
26148 const blockQuote = {
26149 name: "blockQuote",
26150 tokenize: tokenizeBlockQuoteStart,
26151 continuation: {
26152 tokenize: tokenizeBlockQuoteContinuation
26153 },
26154 exit
26155 };
26156 function tokenizeBlockQuoteStart(effects, ok, nok) {
26157 const self2 = this;
26158 return start2;
26159 function start2(code) {
26160 if (code === 62) {
26161 const state2 = self2.containerState;
26162 if (!state2.open) {
26163 effects.enter("blockQuote", {
26164 _container: true
26165 });
26166 state2.open = true;
26167 }
26168 effects.enter("blockQuotePrefix");
26169 effects.enter("blockQuoteMarker");
26170 effects.consume(code);
26171 effects.exit("blockQuoteMarker");
26172 return after;
26173 }
26174 return nok(code);
26175 }
26176 function after(code) {
26177 if (markdownSpace(code)) {
26178 effects.enter("blockQuotePrefixWhitespace");
26179 effects.consume(code);
26180 effects.exit("blockQuotePrefixWhitespace");
26181 effects.exit("blockQuotePrefix");
26182 return ok;
26183 }
26184 effects.exit("blockQuotePrefix");
26185 return ok(code);
26186 }
26187 }
26188 function tokenizeBlockQuoteContinuation(effects, ok, nok) {
26189 return factorySpace(
26190 effects,
26191 effects.attempt(blockQuote, ok, nok),
26192 "linePrefix",
26193 this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4
26194 );
26195 }
26196 function exit(effects) {
26197 effects.exit("blockQuote");
26198 }
26199 const characterEscape = {
26200 name: "characterEscape",
26201 tokenize: tokenizeCharacterEscape
26202 };
26203 function tokenizeCharacterEscape(effects, ok, nok) {
26204 return start2;
26205 function start2(code) {
26206 effects.enter("characterEscape");
26207 effects.enter("escapeMarker");
26208 effects.consume(code);
26209 effects.exit("escapeMarker");
26210 return open;
26211 }
26212 function open(code) {
26213 if (asciiPunctuation(code)) {
26214 effects.enter("characterEscapeValue");
26215 effects.consume(code);
26216 effects.exit("characterEscapeValue");
26217 effects.exit("characterEscape");
26218 return ok;
26219 }
26220 return nok(code);
26221 }
26222 }
26223 const element = document.createElement("i");
26224 function decodeNamedCharacterReference(value) {
26225 const characterReference2 = "&" + value + ";";
26226 element.innerHTML = characterReference2;
26227 const char2 = element.textContent;
26228 if (char2.charCodeAt(char2.length - 1) === 59 && value !== "semi") {
26229 return false;
26230 }
26231 return char2 === characterReference2 ? false : char2;
26232 }
26233 const characterReference = {
26234 name: "characterReference",
26235 tokenize: tokenizeCharacterReference
26236 };
26237 function tokenizeCharacterReference(effects, ok, nok) {
26238 const self2 = this;
26239 let size2 = 0;
26240 let max2;
26241 let test;
26242 return start2;
26243 function start2(code) {
26244 effects.enter("characterReference");
26245 effects.enter("characterReferenceMarker");
26246 effects.consume(code);
26247 effects.exit("characterReferenceMarker");
26248 return open;
26249 }
26250 function open(code) {
26251 if (code === 35) {
26252 effects.enter("characterReferenceMarkerNumeric");
26253 effects.consume(code);
26254 effects.exit("characterReferenceMarkerNumeric");
26255 return numeric;
26256 }
26257 effects.enter("characterReferenceValue");
26258 max2 = 31;
26259 test = asciiAlphanumeric;
26260 return value(code);
26261 }
26262 function numeric(code) {
26263 if (code === 88 || code === 120) {
26264 effects.enter("characterReferenceMarkerHexadecimal");
26265 effects.consume(code);
26266 effects.exit("characterReferenceMarkerHexadecimal");
26267 effects.enter("characterReferenceValue");
26268 max2 = 6;
26269 test = asciiHexDigit;
26270 return value;
26271 }
26272 effects.enter("characterReferenceValue");
26273 max2 = 7;
26274 test = asciiDigit;
26275 return value(code);
26276 }
26277 function value(code) {
26278 let token2;
26279 if (code === 59 && size2) {
26280 token2 = effects.exit("characterReferenceValue");
26281 if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self2.sliceSerialize(token2))) {
26282 return nok(code);
26283 }
26284 effects.enter("characterReferenceMarker");
26285 effects.consume(code);
26286 effects.exit("characterReferenceMarker");
26287 effects.exit("characterReference");
26288 return ok;
26289 }
26290 if (test(code) && size2++ < max2) {
26291 effects.consume(code);
26292 return value;
26293 }
26294 return nok(code);
26295 }
26296 }
26297 const codeFenced = {
26298 name: "codeFenced",
26299 tokenize: tokenizeCodeFenced,
26300 concrete: true
26301 };
26302 function tokenizeCodeFenced(effects, ok, nok) {
26303 const self2 = this;
26304 const closingFenceConstruct = {
26305 tokenize: tokenizeClosingFence,
26306 partial: true
26307 };
26308 const nonLazyLine = {
26309 tokenize: tokenizeNonLazyLine,
26310 partial: true
26311 };
26312 const tail = this.events[this.events.length - 1];
26313 const initialPrefix = tail && tail[1].type === "linePrefix" ? tail[2].sliceSerialize(tail[1], true).length : 0;
26314 let sizeOpen = 0;
26315 let marker;
26316 return start2;
26317 function start2(code) {
26318 effects.enter("codeFenced");
26319 effects.enter("codeFencedFence");
26320 effects.enter("codeFencedFenceSequence");
26321 marker = code;
26322 return sequenceOpen(code);
26323 }
26324 function sequenceOpen(code) {
26325 if (code === marker) {
26326 effects.consume(code);
26327 sizeOpen++;
26328 return sequenceOpen;
26329 }
26330 effects.exit("codeFencedFenceSequence");
26331 return sizeOpen < 3 ? nok(code) : factorySpace(effects, infoOpen, "whitespace")(code);
26332 }
26333 function infoOpen(code) {
26334 if (code === null || markdownLineEnding(code)) {
26335 return openAfter(code);
26336 }
26337 effects.enter("codeFencedFenceInfo");
26338 effects.enter("chunkString", {
26339 contentType: "string"
26340 });
26341 return info2(code);
26342 }
26343 function info2(code) {
26344 if (code === null || markdownLineEndingOrSpace(code)) {
26345 effects.exit("chunkString");
26346 effects.exit("codeFencedFenceInfo");
26347 return factorySpace(effects, infoAfter, "whitespace")(code);
26348 }
26349 if (code === 96 && code === marker)
26350 return nok(code);
26351 effects.consume(code);
26352 return info2;
26353 }
26354 function infoAfter(code) {
26355 if (code === null || markdownLineEnding(code)) {
26356 return openAfter(code);
26357 }
26358 effects.enter("codeFencedFenceMeta");
26359 effects.enter("chunkString", {
26360 contentType: "string"
26361 });
26362 return meta(code);
26363 }
26364 function meta(code) {
26365 if (code === null || markdownLineEnding(code)) {
26366 effects.exit("chunkString");
26367 effects.exit("codeFencedFenceMeta");
26368 return openAfter(code);
26369 }
26370 if (code === 96 && code === marker)
26371 return nok(code);
26372 effects.consume(code);
26373 return meta;
26374 }
26375 function openAfter(code) {
26376 effects.exit("codeFencedFence");
26377 return self2.interrupt ? ok(code) : contentStart(code);
26378 }
26379 function contentStart(code) {
26380 if (code === null) {
26381 return after(code);
26382 }
26383 if (markdownLineEnding(code)) {
26384 return effects.attempt(
26385 nonLazyLine,
26386 effects.attempt(
26387 closingFenceConstruct,
26388 after,
26389 initialPrefix ? factorySpace(
26390 effects,
26391 contentStart,
26392 "linePrefix",
26393 initialPrefix + 1
26394 ) : contentStart
26395 ),
26396 after
26397 )(code);
26398 }
26399 effects.enter("codeFlowValue");
26400 return contentContinue(code);
26401 }
26402 function contentContinue(code) {
26403 if (code === null || markdownLineEnding(code)) {
26404 effects.exit("codeFlowValue");
26405 return contentStart(code);
26406 }
26407 effects.consume(code);
26408 return contentContinue;
26409 }
26410 function after(code) {
26411 effects.exit("codeFenced");
26412 return ok(code);
26413 }
26414 function tokenizeNonLazyLine(effects2, ok2, nok2) {
26415 const self3 = this;
26416 return start3;
26417 function start3(code) {
26418 effects2.enter("lineEnding");
26419 effects2.consume(code);
26420 effects2.exit("lineEnding");
26421 return lineStart;
26422 }
26423 function lineStart(code) {
26424 return self3.parser.lazy[self3.now().line] ? nok2(code) : ok2(code);
26425 }
26426 }
26427 function tokenizeClosingFence(effects2, ok2, nok2) {
26428 let size2 = 0;
26429 return factorySpace(
26430 effects2,
26431 closingSequenceStart,
26432 "linePrefix",
26433 this.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4
26434 );
26435 function closingSequenceStart(code) {
26436 effects2.enter("codeFencedFence");
26437 effects2.enter("codeFencedFenceSequence");
26438 return closingSequence(code);
26439 }
26440 function closingSequence(code) {
26441 if (code === marker) {
26442 effects2.consume(code);
26443 size2++;
26444 return closingSequence;
26445 }
26446 if (size2 < sizeOpen)
26447 return nok2(code);
26448 effects2.exit("codeFencedFenceSequence");
26449 return factorySpace(effects2, closingSequenceEnd, "whitespace")(code);
26450 }
26451 function closingSequenceEnd(code) {
26452 if (code === null || markdownLineEnding(code)) {
26453 effects2.exit("codeFencedFence");
26454 return ok2(code);
26455 }
26456 return nok2(code);
26457 }
26458 }
26459 }
26460 const codeIndented = {
26461 name: "codeIndented",
26462 tokenize: tokenizeCodeIndented
26463 };
26464 const indentedContent = {
26465 tokenize: tokenizeIndentedContent,
26466 partial: true
26467 };
26468 function tokenizeCodeIndented(effects, ok, nok) {
26469 const self2 = this;
26470 return start2;
26471 function start2(code) {
26472 effects.enter("codeIndented");
26473 return factorySpace(effects, afterStartPrefix, "linePrefix", 4 + 1)(code);
26474 }
26475 function afterStartPrefix(code) {
26476 const tail = self2.events[self2.events.length - 1];
26477 return tail && tail[1].type === "linePrefix" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? afterPrefix(code) : nok(code);
26478 }
26479 function afterPrefix(code) {
26480 if (code === null) {
26481 return after(code);
26482 }
26483 if (markdownLineEnding(code)) {
26484 return effects.attempt(indentedContent, afterPrefix, after)(code);
26485 }
26486 effects.enter("codeFlowValue");
26487 return content2(code);
26488 }
26489 function content2(code) {
26490 if (code === null || markdownLineEnding(code)) {
26491 effects.exit("codeFlowValue");
26492 return afterPrefix(code);
26493 }
26494 effects.consume(code);
26495 return content2;
26496 }
26497 function after(code) {
26498 effects.exit("codeIndented");
26499 return ok(code);
26500 }
26501 }
26502 function tokenizeIndentedContent(effects, ok, nok) {
26503 const self2 = this;
26504 return start2;
26505 function start2(code) {
26506 if (self2.parser.lazy[self2.now().line]) {
26507 return nok(code);
26508 }
26509 if (markdownLineEnding(code)) {
26510 effects.enter("lineEnding");
26511 effects.consume(code);
26512 effects.exit("lineEnding");
26513 return start2;
26514 }
26515 return factorySpace(effects, afterPrefix, "linePrefix", 4 + 1)(code);
26516 }
26517 function afterPrefix(code) {
26518 const tail = self2.events[self2.events.length - 1];
26519 return tail && tail[1].type === "linePrefix" && tail[2].sliceSerialize(tail[1], true).length >= 4 ? ok(code) : markdownLineEnding(code) ? start2(code) : nok(code);
26520 }
26521 }
26522 const codeText = {
26523 name: "codeText",
26524 tokenize: tokenizeCodeText,
26525 resolve: resolveCodeText,
26526 previous
26527 };
26528 function resolveCodeText(events) {
26529 let tailExitIndex = events.length - 4;
26530 let headEnterIndex = 3;
26531 let index2;
26532 let enter2;
26533 if ((events[headEnterIndex][1].type === "lineEnding" || events[headEnterIndex][1].type === "space") && (events[tailExitIndex][1].type === "lineEnding" || events[tailExitIndex][1].type === "space")) {
26534 index2 = headEnterIndex;
26535 while (++index2 < tailExitIndex) {
26536 if (events[index2][1].type === "codeTextData") {
26537 events[headEnterIndex][1].type = "codeTextPadding";
26538 events[tailExitIndex][1].type = "codeTextPadding";
26539 headEnterIndex += 2;
26540 tailExitIndex -= 2;
26541 break;
26542 }
26543 }
26544 }
26545 index2 = headEnterIndex - 1;
26546 tailExitIndex++;
26547 while (++index2 <= tailExitIndex) {
26548 if (enter2 === void 0) {
26549 if (index2 !== tailExitIndex && events[index2][1].type !== "lineEnding") {
26550 enter2 = index2;
26551 }
26552 } else if (index2 === tailExitIndex || events[index2][1].type === "lineEnding") {
26553 events[enter2][1].type = "codeTextData";
26554 if (index2 !== enter2 + 2) {
26555 events[enter2][1].end = events[index2 - 1][1].end;
26556 events.splice(enter2 + 2, index2 - enter2 - 2);
26557 tailExitIndex -= index2 - enter2 - 2;
26558 index2 = enter2 + 2;
26559 }
26560 enter2 = void 0;
26561 }
26562 }
26563 return events;
26564 }
26565 function previous(code) {
26566 return code !== 96 || this.events[this.events.length - 1][1].type === "characterEscape";
26567 }
26568 function tokenizeCodeText(effects, ok, nok) {
26569 let sizeOpen = 0;
26570 let size2;
26571 let token2;
26572 return start2;
26573 function start2(code) {
26574 effects.enter("codeText");
26575 effects.enter("codeTextSequence");
26576 return openingSequence(code);
26577 }
26578 function openingSequence(code) {
26579 if (code === 96) {
26580 effects.consume(code);
26581 sizeOpen++;
26582 return openingSequence;
26583 }
26584 effects.exit("codeTextSequence");
26585 return gap(code);
26586 }
26587 function gap(code) {
26588 if (code === null) {
26589 return nok(code);
26590 }
26591 if (code === 96) {
26592 token2 = effects.enter("codeTextSequence");
26593 size2 = 0;
26594 return closingSequence(code);
26595 }
26596 if (code === 32) {
26597 effects.enter("space");
26598 effects.consume(code);
26599 effects.exit("space");
26600 return gap;
26601 }
26602 if (markdownLineEnding(code)) {
26603 effects.enter("lineEnding");
26604 effects.consume(code);
26605 effects.exit("lineEnding");
26606 return gap;
26607 }
26608 effects.enter("codeTextData");
26609 return data(code);
26610 }
26611 function data(code) {
26612 if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {
26613 effects.exit("codeTextData");
26614 return gap(code);
26615 }
26616 effects.consume(code);
26617 return data;
26618 }
26619 function closingSequence(code) {
26620 if (code === 96) {
26621 effects.consume(code);
26622 size2++;
26623 return closingSequence;
26624 }
26625 if (size2 === sizeOpen) {
26626 effects.exit("codeTextSequence");
26627 effects.exit("codeText");
26628 return ok(code);
26629 }
26630 token2.type = "codeTextData";
26631 return data(code);
26632 }
26633 }
26634 function subtokenize(events) {
26635 const jumps = {};
26636 let index2 = -1;
26637 let event;
26638 let lineIndex;
26639 let otherIndex;
26640 let otherEvent;
26641 let parameters;
26642 let subevents;
26643 let more;
26644 while (++index2 < events.length) {
26645 while (index2 in jumps) {
26646 index2 = jumps[index2];
26647 }
26648 event = events[index2];
26649 if (index2 && event[1].type === "chunkFlow" && events[index2 - 1][1].type === "listItemPrefix") {
26650 subevents = event[1]._tokenizer.events;
26651 otherIndex = 0;
26652 if (otherIndex < subevents.length && subevents[otherIndex][1].type === "lineEndingBlank") {
26653 otherIndex += 2;
26654 }
26655 if (otherIndex < subevents.length && subevents[otherIndex][1].type === "content") {
26656 while (++otherIndex < subevents.length) {
26657 if (subevents[otherIndex][1].type === "content") {
26658 break;
26659 }
26660 if (subevents[otherIndex][1].type === "chunkText") {
26661 subevents[otherIndex][1]._isInFirstContentOfListItem = true;
26662 otherIndex++;
26663 }
26664 }
26665 }
26666 }
26667 if (event[0] === "enter") {
26668 if (event[1].contentType) {
26669 Object.assign(jumps, subcontent(events, index2));
26670 index2 = jumps[index2];
26671 more = true;
26672 }
26673 } else if (event[1]._container) {
26674 otherIndex = index2;
26675 lineIndex = void 0;
26676 while (otherIndex--) {
26677 otherEvent = events[otherIndex];
26678 if (otherEvent[1].type === "lineEnding" || otherEvent[1].type === "lineEndingBlank") {
26679 if (otherEvent[0] === "enter") {
26680 if (lineIndex) {
26681 events[lineIndex][1].type = "lineEndingBlank";
26682 }
26683 otherEvent[1].type = "lineEnding";
26684 lineIndex = otherIndex;
26685 }
26686 } else {
26687 break;
26688 }
26689 }
26690 if (lineIndex) {
26691 event[1].end = Object.assign({}, events[lineIndex][1].start);
26692 parameters = events.slice(lineIndex, index2);
26693 parameters.unshift(event);
26694 splice(events, lineIndex, index2 - lineIndex + 1, parameters);
26695 }
26696 }
26697 }
26698 return !more;
26699 }
26700 function subcontent(events, eventIndex) {
26701 const token2 = events[eventIndex][1];
26702 const context = events[eventIndex][2];
26703 let startPosition = eventIndex - 1;
26704 const startPositions = [];
26705 const tokenizer = token2._tokenizer || context.parser[token2.contentType](token2.start);
26706 const childEvents = tokenizer.events;
26707 const jumps = [];
26708 const gaps = {};
26709 let stream;
26710 let previous2;
26711 let index2 = -1;
26712 let current = token2;
26713 let adjust2 = 0;
26714 let start2 = 0;
26715 const breaks = [start2];
26716 while (current) {
26717 while (events[++startPosition][1] !== current) {
26718 }
26719 startPositions.push(startPosition);
26720 if (!current._tokenizer) {
26721 stream = context.sliceStream(current);
26722 if (!current.next) {
26723 stream.push(null);
26724 }
26725 if (previous2) {
26726 tokenizer.defineSkip(current.start);
26727 }
26728 if (current._isInFirstContentOfListItem) {
26729 tokenizer._gfmTasklistFirstContentOfListItem = true;
26730 }
26731 tokenizer.write(stream);
26732 if (current._isInFirstContentOfListItem) {
26733 tokenizer._gfmTasklistFirstContentOfListItem = void 0;
26734 }
26735 }
26736 previous2 = current;
26737 current = current.next;
26738 }
26739 current = token2;
26740 while (++index2 < childEvents.length) {
26741 if (
26742 // Find a void token that includes a break.
26743 childEvents[index2][0] === "exit" && childEvents[index2 - 1][0] === "enter" && childEvents[index2][1].type === childEvents[index2 - 1][1].type && childEvents[index2][1].start.line !== childEvents[index2][1].end.line
26744 ) {
26745 start2 = index2 + 1;
26746 breaks.push(start2);
26747 current._tokenizer = void 0;
26748 current.previous = void 0;
26749 current = current.next;
26750 }
26751 }
26752 tokenizer.events = [];
26753 if (current) {
26754 current._tokenizer = void 0;
26755 current.previous = void 0;
26756 } else {
26757 breaks.pop();
26758 }
26759 index2 = breaks.length;
26760 while (index2--) {
26761 const slice2 = childEvents.slice(breaks[index2], breaks[index2 + 1]);
26762 const start3 = startPositions.pop();
26763 jumps.unshift([start3, start3 + slice2.length - 1]);
26764 splice(events, start3, 2, slice2);
26765 }
26766 index2 = -1;
26767 while (++index2 < jumps.length) {
26768 gaps[adjust2 + jumps[index2][0]] = adjust2 + jumps[index2][1];
26769 adjust2 += jumps[index2][1] - jumps[index2][0] - 1;
26770 }
26771 return gaps;
26772 }
26773 const content = {
26774 tokenize: tokenizeContent,
26775 resolve: resolveContent
26776 };
26777 const continuationConstruct = {
26778 tokenize: tokenizeContinuation,
26779 partial: true
26780 };
26781 function resolveContent(events) {
26782 subtokenize(events);
26783 return events;
26784 }
26785 function tokenizeContent(effects, ok) {
26786 let previous2;
26787 return start2;
26788 function start2(code) {
26789 effects.enter("content");
26790 previous2 = effects.enter("chunkContent", {
26791 contentType: "content"
26792 });
26793 return data(code);
26794 }
26795 function data(code) {
26796 if (code === null) {
26797 return contentEnd(code);
26798 }
26799 if (markdownLineEnding(code)) {
26800 return effects.check(
26801 continuationConstruct,
26802 contentContinue,
26803 contentEnd
26804 )(code);
26805 }
26806 effects.consume(code);
26807 return data;
26808 }
26809 function contentEnd(code) {
26810 effects.exit("chunkContent");
26811 effects.exit("content");
26812 return ok(code);
26813 }
26814 function contentContinue(code) {
26815 effects.consume(code);
26816 effects.exit("chunkContent");
26817 previous2.next = effects.enter("chunkContent", {
26818 contentType: "content",
26819 previous: previous2
26820 });
26821 previous2 = previous2.next;
26822 return data;
26823 }
26824 }
26825 function tokenizeContinuation(effects, ok, nok) {
26826 const self2 = this;
26827 return startLookahead;
26828 function startLookahead(code) {
26829 effects.exit("chunkContent");
26830 effects.enter("lineEnding");
26831 effects.consume(code);
26832 effects.exit("lineEnding");
26833 return factorySpace(effects, prefixed, "linePrefix");
26834 }
26835 function prefixed(code) {
26836 if (code === null || markdownLineEnding(code)) {
26837 return nok(code);
26838 }
26839 const tail = self2.events[self2.events.length - 1];
26840 if (!self2.parser.constructs.disable.null.includes("codeIndented") && tail && tail[1].type === "linePrefix" && tail[2].sliceSerialize(tail[1], true).length >= 4) {
26841 return ok(code);
26842 }
26843 return effects.interrupt(self2.parser.constructs.flow, nok, ok)(code);
26844 }
26845 }
26846 function factoryDestination(effects, ok, nok, type2, literalType, literalMarkerType, rawType, stringType, max2) {
26847 const limit = max2 || Number.POSITIVE_INFINITY;
26848 let balance2 = 0;
26849 return start2;
26850 function start2(code) {
26851 if (code === 60) {
26852 effects.enter(type2);
26853 effects.enter(literalType);
26854 effects.enter(literalMarkerType);
26855 effects.consume(code);
26856 effects.exit(literalMarkerType);
26857 return destinationEnclosedBefore;
26858 }
26859 if (code === null || code === 41 || asciiControl(code)) {
26860 return nok(code);
26861 }
26862 effects.enter(type2);
26863 effects.enter(rawType);
26864 effects.enter(stringType);
26865 effects.enter("chunkString", {
26866 contentType: "string"
26867 });
26868 return destinationRaw(code);
26869 }
26870 function destinationEnclosedBefore(code) {
26871 if (code === 62) {
26872 effects.enter(literalMarkerType);
26873 effects.consume(code);
26874 effects.exit(literalMarkerType);
26875 effects.exit(literalType);
26876 effects.exit(type2);
26877 return ok;
26878 }
26879 effects.enter(stringType);
26880 effects.enter("chunkString", {
26881 contentType: "string"
26882 });
26883 return destinationEnclosed(code);
26884 }
26885 function destinationEnclosed(code) {
26886 if (code === 62) {
26887 effects.exit("chunkString");
26888 effects.exit(stringType);
26889 return destinationEnclosedBefore(code);
26890 }
26891 if (code === null || code === 60 || markdownLineEnding(code)) {
26892 return nok(code);
26893 }
26894 effects.consume(code);
26895 return code === 92 ? destinationEnclosedEscape : destinationEnclosed;
26896 }
26897 function destinationEnclosedEscape(code) {
26898 if (code === 60 || code === 62 || code === 92) {
26899 effects.consume(code);
26900 return destinationEnclosed;
26901 }
26902 return destinationEnclosed(code);
26903 }
26904 function destinationRaw(code) {
26905 if (code === 40) {
26906 if (++balance2 > limit)
26907 return nok(code);
26908 effects.consume(code);
26909 return destinationRaw;
26910 }
26911 if (code === 41) {
26912 if (!balance2--) {
26913 effects.exit("chunkString");
26914 effects.exit(stringType);
26915 effects.exit(rawType);
26916 effects.exit(type2);
26917 return ok(code);
26918 }
26919 effects.consume(code);
26920 return destinationRaw;
26921 }
26922 if (code === null || markdownLineEndingOrSpace(code)) {
26923 if (balance2)
26924 return nok(code);
26925 effects.exit("chunkString");
26926 effects.exit(stringType);
26927 effects.exit(rawType);
26928 effects.exit(type2);
26929 return ok(code);
26930 }
26931 if (asciiControl(code))
26932 return nok(code);
26933 effects.consume(code);
26934 return code === 92 ? destinationRawEscape : destinationRaw;
26935 }
26936 function destinationRawEscape(code) {
26937 if (code === 40 || code === 41 || code === 92) {
26938 effects.consume(code);
26939 return destinationRaw;
26940 }
26941 return destinationRaw(code);
26942 }
26943 }
26944 function factoryLabel(effects, ok, nok, type2, markerType, stringType) {
26945 const self2 = this;
26946 let size2 = 0;
26947 let data;
26948 return start2;
26949 function start2(code) {
26950 effects.enter(type2);
26951 effects.enter(markerType);
26952 effects.consume(code);
26953 effects.exit(markerType);
26954 effects.enter(stringType);
26955 return atBreak;
26956 }
26957 function atBreak(code) {
26958 if (code === null || code === 91 || code === 93 && !data || /* To do: remove in the future once we’ve switched from
26959 * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,
26960 * which doesn’t need this */
26961 /* Hidden footnotes hook */
26962 /* c8 ignore next 3 */
26963 code === 94 && !size2 && "_hiddenFootnoteSupport" in self2.parser.constructs || size2 > 999) {
26964 return nok(code);
26965 }
26966 if (code === 93) {
26967 effects.exit(stringType);
26968 effects.enter(markerType);
26969 effects.consume(code);
26970 effects.exit(markerType);
26971 effects.exit(type2);
26972 return ok;
26973 }
26974 if (markdownLineEnding(code)) {
26975 effects.enter("lineEnding");
26976 effects.consume(code);
26977 effects.exit("lineEnding");
26978 return atBreak;
26979 }
26980 effects.enter("chunkString", {
26981 contentType: "string"
26982 });
26983 return label(code);
26984 }
26985 function label(code) {
26986 if (code === null || code === 91 || code === 93 || markdownLineEnding(code) || size2++ > 999) {
26987 effects.exit("chunkString");
26988 return atBreak(code);
26989 }
26990 effects.consume(code);
26991 data = data || !markdownSpace(code);
26992 return code === 92 ? labelEscape : label;
26993 }
26994 function labelEscape(code) {
26995 if (code === 91 || code === 92 || code === 93) {
26996 effects.consume(code);
26997 size2++;
26998 return label;
26999 }
27000 return label(code);
27001 }
27002 }
27003 function factoryTitle(effects, ok, nok, type2, markerType, stringType) {
27004 let marker;
27005 return start2;
27006 function start2(code) {
27007 effects.enter(type2);
27008 effects.enter(markerType);
27009 effects.consume(code);
27010 effects.exit(markerType);
27011 marker = code === 40 ? 41 : code;
27012 return atFirstTitleBreak;
27013 }
27014 function atFirstTitleBreak(code) {
27015 if (code === marker) {
27016 effects.enter(markerType);
27017 effects.consume(code);
27018 effects.exit(markerType);
27019 effects.exit(type2);
27020 return ok;
27021 }
27022 effects.enter(stringType);
27023 return atTitleBreak(code);
27024 }
27025 function atTitleBreak(code) {
27026 if (code === marker) {
27027 effects.exit(stringType);
27028 return atFirstTitleBreak(marker);
27029 }
27030 if (code === null) {
27031 return nok(code);
27032 }
27033 if (markdownLineEnding(code)) {
27034 effects.enter("lineEnding");
27035 effects.consume(code);
27036 effects.exit("lineEnding");
27037 return factorySpace(effects, atTitleBreak, "linePrefix");
27038 }
27039 effects.enter("chunkString", {
27040 contentType: "string"
27041 });
27042 return title2(code);
27043 }
27044 function title2(code) {
27045 if (code === marker || code === null || markdownLineEnding(code)) {
27046 effects.exit("chunkString");
27047 return atTitleBreak(code);
27048 }
27049 effects.consume(code);
27050 return code === 92 ? titleEscape : title2;
27051 }
27052 function titleEscape(code) {
27053 if (code === marker || code === 92) {
27054 effects.consume(code);
27055 return title2;
27056 }
27057 return title2(code);
27058 }
27059 }
27060 function factoryWhitespace(effects, ok) {
27061 let seen;
27062 return start2;
27063 function start2(code) {
27064 if (markdownLineEnding(code)) {
27065 effects.enter("lineEnding");
27066 effects.consume(code);
27067 effects.exit("lineEnding");
27068 seen = true;
27069 return start2;
27070 }
27071 if (markdownSpace(code)) {
27072 return factorySpace(
27073 effects,
27074 start2,
27075 seen ? "linePrefix" : "lineSuffix"
27076 )(code);
27077 }
27078 return ok(code);
27079 }
27080 }
27081 function normalizeIdentifier(value) {
27082 return value.replace(/[\t\n\r ]+/g, " ").replace(/^ | $/g, "").toLowerCase().toUpperCase();
27083 }
27084 const definition = {
27085 name: "definition",
27086 tokenize: tokenizeDefinition
27087 };
27088 const titleConstruct = {
27089 tokenize: tokenizeTitle,
27090 partial: true
27091 };
27092 function tokenizeDefinition(effects, ok, nok) {
27093 const self2 = this;
27094 let identifier2;
27095 return start2;
27096 function start2(code) {
27097 effects.enter("definition");
27098 return factoryLabel.call(
27099 self2,
27100 effects,
27101 labelAfter,
27102 nok,
27103 "definitionLabel",
27104 "definitionLabelMarker",
27105 "definitionLabelString"
27106 )(code);
27107 }
27108 function labelAfter(code) {
27109 identifier2 = normalizeIdentifier(
27110 self2.sliceSerialize(self2.events[self2.events.length - 1][1]).slice(1, -1)
27111 );
27112 if (code === 58) {
27113 effects.enter("definitionMarker");
27114 effects.consume(code);
27115 effects.exit("definitionMarker");
27116 return factoryWhitespace(
27117 effects,
27118 factoryDestination(
27119 effects,
27120 effects.attempt(
27121 titleConstruct,
27122 factorySpace(effects, after, "whitespace"),
27123 factorySpace(effects, after, "whitespace")
27124 ),
27125 nok,
27126 "definitionDestination",
27127 "definitionDestinationLiteral",
27128 "definitionDestinationLiteralMarker",
27129 "definitionDestinationRaw",
27130 "definitionDestinationString"
27131 )
27132 );
27133 }
27134 return nok(code);
27135 }
27136 function after(code) {
27137 if (code === null || markdownLineEnding(code)) {
27138 effects.exit("definition");
27139 if (!self2.parser.defined.includes(identifier2)) {
27140 self2.parser.defined.push(identifier2);
27141 }
27142 return ok(code);
27143 }
27144 return nok(code);
27145 }
27146 }
27147 function tokenizeTitle(effects, ok, nok) {
27148 return start2;
27149 function start2(code) {
27150 return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, before)(code) : nok(code);
27151 }
27152 function before(code) {
27153 if (code === 34 || code === 39 || code === 40) {
27154 return factoryTitle(
27155 effects,
27156 factorySpace(effects, after, "whitespace"),
27157 nok,
27158 "definitionTitle",
27159 "definitionTitleMarker",
27160 "definitionTitleString"
27161 )(code);
27162 }
27163 return nok(code);
27164 }
27165 function after(code) {
27166 return code === null || markdownLineEnding(code) ? ok(code) : nok(code);
27167 }
27168 }
27169 const hardBreakEscape = {
27170 name: "hardBreakEscape",
27171 tokenize: tokenizeHardBreakEscape
27172 };
27173 function tokenizeHardBreakEscape(effects, ok, nok) {
27174 return start2;
27175 function start2(code) {
27176 effects.enter("hardBreakEscape");
27177 effects.enter("escapeMarker");
27178 effects.consume(code);
27179 return open;
27180 }
27181 function open(code) {
27182 if (markdownLineEnding(code)) {
27183 effects.exit("escapeMarker");
27184 effects.exit("hardBreakEscape");
27185 return ok(code);
27186 }
27187 return nok(code);
27188 }
27189 }
27190 const headingAtx = {
27191 name: "headingAtx",
27192 tokenize: tokenizeHeadingAtx,
27193 resolve: resolveHeadingAtx
27194 };
27195 function resolveHeadingAtx(events, context) {
27196 let contentEnd = events.length - 2;
27197 let contentStart = 3;
27198 let content2;
27199 let text2;
27200 if (events[contentStart][1].type === "whitespace") {
27201 contentStart += 2;
27202 }
27203 if (contentEnd - 2 > contentStart && events[contentEnd][1].type === "whitespace") {
27204 contentEnd -= 2;
27205 }
27206 if (events[contentEnd][1].type === "atxHeadingSequence" && (contentStart === contentEnd - 1 || contentEnd - 4 > contentStart && events[contentEnd - 2][1].type === "whitespace")) {
27207 contentEnd -= contentStart + 1 === contentEnd ? 2 : 4;
27208 }
27209 if (contentEnd > contentStart) {
27210 content2 = {
27211 type: "atxHeadingText",
27212 start: events[contentStart][1].start,
27213 end: events[contentEnd][1].end
27214 };
27215 text2 = {
27216 type: "chunkText",
27217 start: events[contentStart][1].start,
27218 end: events[contentEnd][1].end,
27219 // @ts-expect-error Constants are fine to assign.
27220 contentType: "text"
27221 };
27222 splice(events, contentStart, contentEnd - contentStart + 1, [
27223 ["enter", content2, context],
27224 ["enter", text2, context],
27225 ["exit", text2, context],
27226 ["exit", content2, context]
27227 ]);
27228 }
27229 return events;
27230 }
27231 function tokenizeHeadingAtx(effects, ok, nok) {
27232 const self2 = this;
27233 let size2 = 0;
27234 return start2;
27235 function start2(code) {
27236 effects.enter("atxHeading");
27237 effects.enter("atxHeadingSequence");
27238 return fenceOpenInside(code);
27239 }
27240 function fenceOpenInside(code) {
27241 if (code === 35 && size2++ < 6) {
27242 effects.consume(code);
27243 return fenceOpenInside;
27244 }
27245 if (code === null || markdownLineEndingOrSpace(code)) {
27246 effects.exit("atxHeadingSequence");
27247 return self2.interrupt ? ok(code) : headingBreak(code);
27248 }
27249 return nok(code);
27250 }
27251 function headingBreak(code) {
27252 if (code === 35) {
27253 effects.enter("atxHeadingSequence");
27254 return sequence2(code);
27255 }
27256 if (code === null || markdownLineEnding(code)) {
27257 effects.exit("atxHeading");
27258 return ok(code);
27259 }
27260 if (markdownSpace(code)) {
27261 return factorySpace(effects, headingBreak, "whitespace")(code);
27262 }
27263 effects.enter("atxHeadingText");
27264 return data(code);
27265 }
27266 function sequence2(code) {
27267 if (code === 35) {
27268 effects.consume(code);
27269 return sequence2;
27270 }
27271 effects.exit("atxHeadingSequence");
27272 return headingBreak(code);
27273 }
27274 function data(code) {
27275 if (code === null || code === 35 || markdownLineEndingOrSpace(code)) {
27276 effects.exit("atxHeadingText");
27277 return headingBreak(code);
27278 }
27279 effects.consume(code);
27280 return data;
27281 }
27282 }
27283 const htmlBlockNames = [
27284 "address",
27285 "article",
27286 "aside",
27287 "base",
27288 "basefont",
27289 "blockquote",
27290 "body",
27291 "caption",
27292 "center",
27293 "col",
27294 "colgroup",
27295 "dd",
27296 "details",
27297 "dialog",
27298 "dir",
27299 "div",
27300 "dl",
27301 "dt",
27302 "fieldset",
27303 "figcaption",
27304 "figure",
27305 "footer",
27306 "form",
27307 "frame",
27308 "frameset",
27309 "h1",
27310 "h2",
27311 "h3",
27312 "h4",
27313 "h5",
27314 "h6",
27315 "head",
27316 "header",
27317 "hr",
27318 "html",
27319 "iframe",
27320 "legend",
27321 "li",
27322 "link",
27323 "main",
27324 "menu",
27325 "menuitem",
27326 "nav",
27327 "noframes",
27328 "ol",
27329 "optgroup",
27330 "option",
27331 "p",
27332 "param",
27333 "section",
27334 "summary",
27335 "table",
27336 "tbody",
27337 "td",
27338 "tfoot",
27339 "th",
27340 "thead",
27341 "title",
27342 "tr",
27343 "track",
27344 "ul"
27345 ];
27346 const htmlRawNames = ["pre", "script", "style", "textarea"];
27347 const htmlFlow = {
27348 name: "htmlFlow",
27349 tokenize: tokenizeHtmlFlow,
27350 resolveTo: resolveToHtmlFlow,
27351 concrete: true
27352 };
27353 const nextBlankConstruct = {
27354 tokenize: tokenizeNextBlank,
27355 partial: true
27356 };
27357 function resolveToHtmlFlow(events) {
27358 let index2 = events.length;
27359 while (index2--) {
27360 if (events[index2][0] === "enter" && events[index2][1].type === "htmlFlow") {
27361 break;
27362 }
27363 }
27364 if (index2 > 1 && events[index2 - 2][1].type === "linePrefix") {
27365 events[index2][1].start = events[index2 - 2][1].start;
27366 events[index2 + 1][1].start = events[index2 - 2][1].start;
27367 events.splice(index2 - 2, 2);
27368 }
27369 return events;
27370 }
27371 function tokenizeHtmlFlow(effects, ok, nok) {
27372 const self2 = this;
27373 let kind;
27374 let startTag;
27375 let buffer;
27376 let index2;
27377 let marker;
27378 return start2;
27379 function start2(code) {
27380 effects.enter("htmlFlow");
27381 effects.enter("htmlFlowData");
27382 effects.consume(code);
27383 return open;
27384 }
27385 function open(code) {
27386 if (code === 33) {
27387 effects.consume(code);
27388 return declarationStart;
27389 }
27390 if (code === 47) {
27391 effects.consume(code);
27392 return tagCloseStart;
27393 }
27394 if (code === 63) {
27395 effects.consume(code);
27396 kind = 3;
27397 return self2.interrupt ? ok : continuationDeclarationInside;
27398 }
27399 if (asciiAlpha(code)) {
27400 effects.consume(code);
27401 buffer = String.fromCharCode(code);
27402 startTag = true;
27403 return tagName;
27404 }
27405 return nok(code);
27406 }
27407 function declarationStart(code) {
27408 if (code === 45) {
27409 effects.consume(code);
27410 kind = 2;
27411 return commentOpenInside;
27412 }
27413 if (code === 91) {
27414 effects.consume(code);
27415 kind = 5;
27416 buffer = "CDATA[";
27417 index2 = 0;
27418 return cdataOpenInside;
27419 }
27420 if (asciiAlpha(code)) {
27421 effects.consume(code);
27422 kind = 4;
27423 return self2.interrupt ? ok : continuationDeclarationInside;
27424 }
27425 return nok(code);
27426 }
27427 function commentOpenInside(code) {
27428 if (code === 45) {
27429 effects.consume(code);
27430 return self2.interrupt ? ok : continuationDeclarationInside;
27431 }
27432 return nok(code);
27433 }
27434 function cdataOpenInside(code) {
27435 if (code === buffer.charCodeAt(index2++)) {
27436 effects.consume(code);
27437 return index2 === buffer.length ? self2.interrupt ? ok : continuation : cdataOpenInside;
27438 }
27439 return nok(code);
27440 }
27441 function tagCloseStart(code) {
27442 if (asciiAlpha(code)) {
27443 effects.consume(code);
27444 buffer = String.fromCharCode(code);
27445 return tagName;
27446 }
27447 return nok(code);
27448 }
27449 function tagName(code) {
27450 if (code === null || code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {
27451 if (code !== 47 && startTag && htmlRawNames.includes(buffer.toLowerCase())) {
27452 kind = 1;
27453 return self2.interrupt ? ok(code) : continuation(code);
27454 }
27455 if (htmlBlockNames.includes(buffer.toLowerCase())) {
27456 kind = 6;
27457 if (code === 47) {
27458 effects.consume(code);
27459 return basicSelfClosing;
27460 }
27461 return self2.interrupt ? ok(code) : continuation(code);
27462 }
27463 kind = 7;
27464 return self2.interrupt && !self2.parser.lazy[self2.now().line] ? nok(code) : startTag ? completeAttributeNameBefore(code) : completeClosingTagAfter(code);
27465 }
27466 if (code === 45 || asciiAlphanumeric(code)) {
27467 effects.consume(code);
27468 buffer += String.fromCharCode(code);
27469 return tagName;
27470 }
27471 return nok(code);
27472 }
27473 function basicSelfClosing(code) {
27474 if (code === 62) {
27475 effects.consume(code);
27476 return self2.interrupt ? ok : continuation;
27477 }
27478 return nok(code);
27479 }
27480 function completeClosingTagAfter(code) {
27481 if (markdownSpace(code)) {
27482 effects.consume(code);
27483 return completeClosingTagAfter;
27484 }
27485 return completeEnd(code);
27486 }
27487 function completeAttributeNameBefore(code) {
27488 if (code === 47) {
27489 effects.consume(code);
27490 return completeEnd;
27491 }
27492 if (code === 58 || code === 95 || asciiAlpha(code)) {
27493 effects.consume(code);
27494 return completeAttributeName;
27495 }
27496 if (markdownSpace(code)) {
27497 effects.consume(code);
27498 return completeAttributeNameBefore;
27499 }
27500 return completeEnd(code);
27501 }
27502 function completeAttributeName(code) {
27503 if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {
27504 effects.consume(code);
27505 return completeAttributeName;
27506 }
27507 return completeAttributeNameAfter(code);
27508 }
27509 function completeAttributeNameAfter(code) {
27510 if (code === 61) {
27511 effects.consume(code);
27512 return completeAttributeValueBefore;
27513 }
27514 if (markdownSpace(code)) {
27515 effects.consume(code);
27516 return completeAttributeNameAfter;
27517 }
27518 return completeAttributeNameBefore(code);
27519 }
27520 function completeAttributeValueBefore(code) {
27521 if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {
27522 return nok(code);
27523 }
27524 if (code === 34 || code === 39) {
27525 effects.consume(code);
27526 marker = code;
27527 return completeAttributeValueQuoted;
27528 }
27529 if (markdownSpace(code)) {
27530 effects.consume(code);
27531 return completeAttributeValueBefore;
27532 }
27533 marker = null;
27534 return completeAttributeValueUnquoted(code);
27535 }
27536 function completeAttributeValueQuoted(code) {
27537 if (code === null || markdownLineEnding(code)) {
27538 return nok(code);
27539 }
27540 if (code === marker) {
27541 effects.consume(code);
27542 return completeAttributeValueQuotedAfter;
27543 }
27544 effects.consume(code);
27545 return completeAttributeValueQuoted;
27546 }
27547 function completeAttributeValueUnquoted(code) {
27548 if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 62 || code === 96 || markdownLineEndingOrSpace(code)) {
27549 return completeAttributeNameAfter(code);
27550 }
27551 effects.consume(code);
27552 return completeAttributeValueUnquoted;
27553 }
27554 function completeAttributeValueQuotedAfter(code) {
27555 if (code === 47 || code === 62 || markdownSpace(code)) {
27556 return completeAttributeNameBefore(code);
27557 }
27558 return nok(code);
27559 }
27560 function completeEnd(code) {
27561 if (code === 62) {
27562 effects.consume(code);
27563 return completeAfter;
27564 }
27565 return nok(code);
27566 }
27567 function completeAfter(code) {
27568 if (markdownSpace(code)) {
27569 effects.consume(code);
27570 return completeAfter;
27571 }
27572 return code === null || markdownLineEnding(code) ? continuation(code) : nok(code);
27573 }
27574 function continuation(code) {
27575 if (code === 45 && kind === 2) {
27576 effects.consume(code);
27577 return continuationCommentInside;
27578 }
27579 if (code === 60 && kind === 1) {
27580 effects.consume(code);
27581 return continuationRawTagOpen;
27582 }
27583 if (code === 62 && kind === 4) {
27584 effects.consume(code);
27585 return continuationClose;
27586 }
27587 if (code === 63 && kind === 3) {
27588 effects.consume(code);
27589 return continuationDeclarationInside;
27590 }
27591 if (code === 93 && kind === 5) {
27592 effects.consume(code);
27593 return continuationCharacterDataInside;
27594 }
27595 if (markdownLineEnding(code) && (kind === 6 || kind === 7)) {
27596 return effects.check(
27597 nextBlankConstruct,
27598 continuationClose,
27599 continuationAtLineEnding
27600 )(code);
27601 }
27602 if (code === null || markdownLineEnding(code)) {
27603 return continuationAtLineEnding(code);
27604 }
27605 effects.consume(code);
27606 return continuation;
27607 }
27608 function continuationAtLineEnding(code) {
27609 effects.exit("htmlFlowData");
27610 return htmlContinueStart(code);
27611 }
27612 function htmlContinueStart(code) {
27613 if (code === null) {
27614 return done(code);
27615 }
27616 if (markdownLineEnding(code)) {
27617 return effects.attempt(
27618 {
27619 tokenize: htmlLineEnd,
27620 partial: true
27621 },
27622 htmlContinueStart,
27623 done
27624 )(code);
27625 }
27626 effects.enter("htmlFlowData");
27627 return continuation(code);
27628 }
27629 function htmlLineEnd(effects2, ok2, nok2) {
27630 return start3;
27631 function start3(code) {
27632 effects2.enter("lineEnding");
27633 effects2.consume(code);
27634 effects2.exit("lineEnding");
27635 return lineStart;
27636 }
27637 function lineStart(code) {
27638 return self2.parser.lazy[self2.now().line] ? nok2(code) : ok2(code);
27639 }
27640 }
27641 function continuationCommentInside(code) {
27642 if (code === 45) {
27643 effects.consume(code);
27644 return continuationDeclarationInside;
27645 }
27646 return continuation(code);
27647 }
27648 function continuationRawTagOpen(code) {
27649 if (code === 47) {
27650 effects.consume(code);
27651 buffer = "";
27652 return continuationRawEndTag;
27653 }
27654 return continuation(code);
27655 }
27656 function continuationRawEndTag(code) {
27657 if (code === 62 && htmlRawNames.includes(buffer.toLowerCase())) {
27658 effects.consume(code);
27659 return continuationClose;
27660 }
27661 if (asciiAlpha(code) && buffer.length < 8) {
27662 effects.consume(code);
27663 buffer += String.fromCharCode(code);
27664 return continuationRawEndTag;
27665 }
27666 return continuation(code);
27667 }
27668 function continuationCharacterDataInside(code) {
27669 if (code === 93) {
27670 effects.consume(code);
27671 return continuationDeclarationInside;
27672 }
27673 return continuation(code);
27674 }
27675 function continuationDeclarationInside(code) {
27676 if (code === 62) {
27677 effects.consume(code);
27678 return continuationClose;
27679 }
27680 if (code === 45 && kind === 2) {
27681 effects.consume(code);
27682 return continuationDeclarationInside;
27683 }
27684 return continuation(code);
27685 }
27686 function continuationClose(code) {
27687 if (code === null || markdownLineEnding(code)) {
27688 effects.exit("htmlFlowData");
27689 return done(code);
27690 }
27691 effects.consume(code);
27692 return continuationClose;
27693 }
27694 function done(code) {
27695 effects.exit("htmlFlow");
27696 return ok(code);
27697 }
27698 }
27699 function tokenizeNextBlank(effects, ok, nok) {
27700 return start2;
27701 function start2(code) {
27702 effects.exit("htmlFlowData");
27703 effects.enter("lineEndingBlank");
27704 effects.consume(code);
27705 effects.exit("lineEndingBlank");
27706 return effects.attempt(blankLine, ok, nok);
27707 }
27708 }
27709 const htmlText = {
27710 name: "htmlText",
27711 tokenize: tokenizeHtmlText
27712 };
27713 function tokenizeHtmlText(effects, ok, nok) {
27714 const self2 = this;
27715 let marker;
27716 let buffer;
27717 let index2;
27718 let returnState;
27719 return start2;
27720 function start2(code) {
27721 effects.enter("htmlText");
27722 effects.enter("htmlTextData");
27723 effects.consume(code);
27724 return open;
27725 }
27726 function open(code) {
27727 if (code === 33) {
27728 effects.consume(code);
27729 return declarationOpen;
27730 }
27731 if (code === 47) {
27732 effects.consume(code);
27733 return tagCloseStart;
27734 }
27735 if (code === 63) {
27736 effects.consume(code);
27737 return instruction;
27738 }
27739 if (asciiAlpha(code)) {
27740 effects.consume(code);
27741 return tagOpen;
27742 }
27743 return nok(code);
27744 }
27745 function declarationOpen(code) {
27746 if (code === 45) {
27747 effects.consume(code);
27748 return commentOpen;
27749 }
27750 if (code === 91) {
27751 effects.consume(code);
27752 buffer = "CDATA[";
27753 index2 = 0;
27754 return cdataOpen;
27755 }
27756 if (asciiAlpha(code)) {
27757 effects.consume(code);
27758 return declaration2;
27759 }
27760 return nok(code);
27761 }
27762 function commentOpen(code) {
27763 if (code === 45) {
27764 effects.consume(code);
27765 return commentStart;
27766 }
27767 return nok(code);
27768 }
27769 function commentStart(code) {
27770 if (code === null || code === 62) {
27771 return nok(code);
27772 }
27773 if (code === 45) {
27774 effects.consume(code);
27775 return commentStartDash;
27776 }
27777 return comment2(code);
27778 }
27779 function commentStartDash(code) {
27780 if (code === null || code === 62) {
27781 return nok(code);
27782 }
27783 return comment2(code);
27784 }
27785 function comment2(code) {
27786 if (code === null) {
27787 return nok(code);
27788 }
27789 if (code === 45) {
27790 effects.consume(code);
27791 return commentClose;
27792 }
27793 if (markdownLineEnding(code)) {
27794 returnState = comment2;
27795 return atLineEnding(code);
27796 }
27797 effects.consume(code);
27798 return comment2;
27799 }
27800 function commentClose(code) {
27801 if (code === 45) {
27802 effects.consume(code);
27803 return end2;
27804 }
27805 return comment2(code);
27806 }
27807 function cdataOpen(code) {
27808 if (code === buffer.charCodeAt(index2++)) {
27809 effects.consume(code);
27810 return index2 === buffer.length ? cdata : cdataOpen;
27811 }
27812 return nok(code);
27813 }
27814 function cdata(code) {
27815 if (code === null) {
27816 return nok(code);
27817 }
27818 if (code === 93) {
27819 effects.consume(code);
27820 return cdataClose;
27821 }
27822 if (markdownLineEnding(code)) {
27823 returnState = cdata;
27824 return atLineEnding(code);
27825 }
27826 effects.consume(code);
27827 return cdata;
27828 }
27829 function cdataClose(code) {
27830 if (code === 93) {
27831 effects.consume(code);
27832 return cdataEnd;
27833 }
27834 return cdata(code);
27835 }
27836 function cdataEnd(code) {
27837 if (code === 62) {
27838 return end2(code);
27839 }
27840 if (code === 93) {
27841 effects.consume(code);
27842 return cdataEnd;
27843 }
27844 return cdata(code);
27845 }
27846 function declaration2(code) {
27847 if (code === null || code === 62) {
27848 return end2(code);
27849 }
27850 if (markdownLineEnding(code)) {
27851 returnState = declaration2;
27852 return atLineEnding(code);
27853 }
27854 effects.consume(code);
27855 return declaration2;
27856 }
27857 function instruction(code) {
27858 if (code === null) {
27859 return nok(code);
27860 }
27861 if (code === 63) {
27862 effects.consume(code);
27863 return instructionClose;
27864 }
27865 if (markdownLineEnding(code)) {
27866 returnState = instruction;
27867 return atLineEnding(code);
27868 }
27869 effects.consume(code);
27870 return instruction;
27871 }
27872 function instructionClose(code) {
27873 return code === 62 ? end2(code) : instruction(code);
27874 }
27875 function tagCloseStart(code) {
27876 if (asciiAlpha(code)) {
27877 effects.consume(code);
27878 return tagClose;
27879 }
27880 return nok(code);
27881 }
27882 function tagClose(code) {
27883 if (code === 45 || asciiAlphanumeric(code)) {
27884 effects.consume(code);
27885 return tagClose;
27886 }
27887 return tagCloseBetween(code);
27888 }
27889 function tagCloseBetween(code) {
27890 if (markdownLineEnding(code)) {
27891 returnState = tagCloseBetween;
27892 return atLineEnding(code);
27893 }
27894 if (markdownSpace(code)) {
27895 effects.consume(code);
27896 return tagCloseBetween;
27897 }
27898 return end2(code);
27899 }
27900 function tagOpen(code) {
27901 if (code === 45 || asciiAlphanumeric(code)) {
27902 effects.consume(code);
27903 return tagOpen;
27904 }
27905 if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {
27906 return tagOpenBetween(code);
27907 }
27908 return nok(code);
27909 }
27910 function tagOpenBetween(code) {
27911 if (code === 47) {
27912 effects.consume(code);
27913 return end2;
27914 }
27915 if (code === 58 || code === 95 || asciiAlpha(code)) {
27916 effects.consume(code);
27917 return tagOpenAttributeName;
27918 }
27919 if (markdownLineEnding(code)) {
27920 returnState = tagOpenBetween;
27921 return atLineEnding(code);
27922 }
27923 if (markdownSpace(code)) {
27924 effects.consume(code);
27925 return tagOpenBetween;
27926 }
27927 return end2(code);
27928 }
27929 function tagOpenAttributeName(code) {
27930 if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {
27931 effects.consume(code);
27932 return tagOpenAttributeName;
27933 }
27934 return tagOpenAttributeNameAfter(code);
27935 }
27936 function tagOpenAttributeNameAfter(code) {
27937 if (code === 61) {
27938 effects.consume(code);
27939 return tagOpenAttributeValueBefore;
27940 }
27941 if (markdownLineEnding(code)) {
27942 returnState = tagOpenAttributeNameAfter;
27943 return atLineEnding(code);
27944 }
27945 if (markdownSpace(code)) {
27946 effects.consume(code);
27947 return tagOpenAttributeNameAfter;
27948 }
27949 return tagOpenBetween(code);
27950 }
27951 function tagOpenAttributeValueBefore(code) {
27952 if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {
27953 return nok(code);
27954 }
27955 if (code === 34 || code === 39) {
27956 effects.consume(code);
27957 marker = code;
27958 return tagOpenAttributeValueQuoted;
27959 }
27960 if (markdownLineEnding(code)) {
27961 returnState = tagOpenAttributeValueBefore;
27962 return atLineEnding(code);
27963 }
27964 if (markdownSpace(code)) {
27965 effects.consume(code);
27966 return tagOpenAttributeValueBefore;
27967 }
27968 effects.consume(code);
27969 marker = void 0;
27970 return tagOpenAttributeValueUnquoted;
27971 }
27972 function tagOpenAttributeValueQuoted(code) {
27973 if (code === marker) {
27974 effects.consume(code);
27975 return tagOpenAttributeValueQuotedAfter;
27976 }
27977 if (code === null) {
27978 return nok(code);
27979 }
27980 if (markdownLineEnding(code)) {
27981 returnState = tagOpenAttributeValueQuoted;
27982 return atLineEnding(code);
27983 }
27984 effects.consume(code);
27985 return tagOpenAttributeValueQuoted;
27986 }
27987 function tagOpenAttributeValueQuotedAfter(code) {
27988 if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) {
27989 return tagOpenBetween(code);
27990 }
27991 return nok(code);
27992 }
27993 function tagOpenAttributeValueUnquoted(code) {
27994 if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {
27995 return nok(code);
27996 }
27997 if (code === 62 || markdownLineEndingOrSpace(code)) {
27998 return tagOpenBetween(code);
27999 }
28000 effects.consume(code);
28001 return tagOpenAttributeValueUnquoted;
28002 }
28003 function atLineEnding(code) {
28004 effects.exit("htmlTextData");
28005 effects.enter("lineEnding");
28006 effects.consume(code);
28007 effects.exit("lineEnding");
28008 return factorySpace(
28009 effects,
28010 afterPrefix,
28011 "linePrefix",
28012 self2.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4
28013 );
28014 }
28015 function afterPrefix(code) {
28016 effects.enter("htmlTextData");
28017 return returnState(code);
28018 }
28019 function end2(code) {
28020 if (code === 62) {
28021 effects.consume(code);
28022 effects.exit("htmlTextData");
28023 effects.exit("htmlText");
28024 return ok;
28025 }
28026 return nok(code);
28027 }
28028 }
28029 const labelEnd = {
28030 name: "labelEnd",
28031 tokenize: tokenizeLabelEnd,
28032 resolveTo: resolveToLabelEnd,
28033 resolveAll: resolveAllLabelEnd
28034 };
28035 const resourceConstruct = {
28036 tokenize: tokenizeResource
28037 };
28038 const fullReferenceConstruct = {
28039 tokenize: tokenizeFullReference
28040 };
28041 const collapsedReferenceConstruct = {
28042 tokenize: tokenizeCollapsedReference
28043 };
28044 function resolveAllLabelEnd(events) {
28045 let index2 = -1;
28046 let token2;
28047 while (++index2 < events.length) {
28048 token2 = events[index2][1];
28049 if (token2.type === "labelImage" || token2.type === "labelLink" || token2.type === "labelEnd") {
28050 events.splice(index2 + 1, token2.type === "labelImage" ? 4 : 2);
28051 token2.type = "data";
28052 index2++;
28053 }
28054 }
28055 return events;
28056 }
28057 function resolveToLabelEnd(events, context) {
28058 let index2 = events.length;
28059 let offset = 0;
28060 let token2;
28061 let open;
28062 let close;
28063 let media;
28064 while (index2--) {
28065 token2 = events[index2][1];
28066 if (open) {
28067 if (token2.type === "link" || token2.type === "labelLink" && token2._inactive) {
28068 break;
28069 }
28070 if (events[index2][0] === "enter" && token2.type === "labelLink") {
28071 token2._inactive = true;
28072 }
28073 } else if (close) {
28074 if (events[index2][0] === "enter" && (token2.type === "labelImage" || token2.type === "labelLink") && !token2._balanced) {
28075 open = index2;
28076 if (token2.type !== "labelLink") {
28077 offset = 2;
28078 break;
28079 }
28080 }
28081 } else if (token2.type === "labelEnd") {
28082 close = index2;
28083 }
28084 }
28085 const group = {
28086 type: events[open][1].type === "labelLink" ? "link" : "image",
28087 start: Object.assign({}, events[open][1].start),
28088 end: Object.assign({}, events[events.length - 1][1].end)
28089 };
28090 const label = {
28091 type: "label",
28092 start: Object.assign({}, events[open][1].start),
28093 end: Object.assign({}, events[close][1].end)
28094 };
28095 const text2 = {
28096 type: "labelText",
28097 start: Object.assign({}, events[open + offset + 2][1].end),
28098 end: Object.assign({}, events[close - 2][1].start)
28099 };
28100 media = [
28101 ["enter", group, context],
28102 ["enter", label, context]
28103 ];
28104 media = push(media, events.slice(open + 1, open + offset + 3));
28105 media = push(media, [["enter", text2, context]]);
28106 media = push(
28107 media,
28108 resolveAll(
28109 context.parser.constructs.insideSpan.null,
28110 events.slice(open + offset + 4, close - 3),
28111 context
28112 )
28113 );
28114 media = push(media, [
28115 ["exit", text2, context],
28116 events[close - 2],
28117 events[close - 1],
28118 ["exit", label, context]
28119 ]);
28120 media = push(media, events.slice(close + 1));
28121 media = push(media, [["exit", group, context]]);
28122 splice(events, open, events.length, media);
28123 return events;
28124 }
28125 function tokenizeLabelEnd(effects, ok, nok) {
28126 const self2 = this;
28127 let index2 = self2.events.length;
28128 let labelStart;
28129 let defined;
28130 while (index2--) {
28131 if ((self2.events[index2][1].type === "labelImage" || self2.events[index2][1].type === "labelLink") && !self2.events[index2][1]._balanced) {
28132 labelStart = self2.events[index2][1];
28133 break;
28134 }
28135 }
28136 return start2;
28137 function start2(code) {
28138 if (!labelStart) {
28139 return nok(code);
28140 }
28141 if (labelStart._inactive)
28142 return balanced(code);
28143 defined = self2.parser.defined.includes(
28144 normalizeIdentifier(
28145 self2.sliceSerialize({
28146 start: labelStart.end,
28147 end: self2.now()
28148 })
28149 )
28150 );
28151 effects.enter("labelEnd");
28152 effects.enter("labelMarker");
28153 effects.consume(code);
28154 effects.exit("labelMarker");
28155 effects.exit("labelEnd");
28156 return afterLabelEnd;
28157 }
28158 function afterLabelEnd(code) {
28159 if (code === 40) {
28160 return effects.attempt(
28161 resourceConstruct,
28162 ok,
28163 defined ? ok : balanced
28164 )(code);
28165 }
28166 if (code === 91) {
28167 return effects.attempt(
28168 fullReferenceConstruct,
28169 ok,
28170 defined ? effects.attempt(collapsedReferenceConstruct, ok, balanced) : balanced
28171 )(code);
28172 }
28173 return defined ? ok(code) : balanced(code);
28174 }
28175 function balanced(code) {
28176 labelStart._balanced = true;
28177 return nok(code);
28178 }
28179 }
28180 function tokenizeResource(effects, ok, nok) {
28181 return start2;
28182 function start2(code) {
28183 effects.enter("resource");
28184 effects.enter("resourceMarker");
28185 effects.consume(code);
28186 effects.exit("resourceMarker");
28187 return factoryWhitespace(effects, open);
28188 }
28189 function open(code) {
28190 if (code === 41) {
28191 return end2(code);
28192 }
28193 return factoryDestination(
28194 effects,
28195 destinationAfter,
28196 nok,
28197 "resourceDestination",
28198 "resourceDestinationLiteral",
28199 "resourceDestinationLiteralMarker",
28200 "resourceDestinationRaw",
28201 "resourceDestinationString",
28202 32
28203 )(code);
28204 }
28205 function destinationAfter(code) {
28206 return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, between)(code) : end2(code);
28207 }
28208 function between(code) {
28209 if (code === 34 || code === 39 || code === 40) {
28210 return factoryTitle(
28211 effects,
28212 factoryWhitespace(effects, end2),
28213 nok,
28214 "resourceTitle",
28215 "resourceTitleMarker",
28216 "resourceTitleString"
28217 )(code);
28218 }
28219 return end2(code);
28220 }
28221 function end2(code) {
28222 if (code === 41) {
28223 effects.enter("resourceMarker");
28224 effects.consume(code);
28225 effects.exit("resourceMarker");
28226 effects.exit("resource");
28227 return ok;
28228 }
28229 return nok(code);
28230 }
28231 }
28232 function tokenizeFullReference(effects, ok, nok) {
28233 const self2 = this;
28234 return start2;
28235 function start2(code) {
28236 return factoryLabel.call(
28237 self2,
28238 effects,
28239 afterLabel,
28240 nok,
28241 "reference",
28242 "referenceMarker",
28243 "referenceString"
28244 )(code);
28245 }
28246 function afterLabel(code) {
28247 return self2.parser.defined.includes(
28248 normalizeIdentifier(
28249 self2.sliceSerialize(self2.events[self2.events.length - 1][1]).slice(1, -1)
28250 )
28251 ) ? ok(code) : nok(code);
28252 }
28253 }
28254 function tokenizeCollapsedReference(effects, ok, nok) {
28255 return start2;
28256 function start2(code) {
28257 effects.enter("reference");
28258 effects.enter("referenceMarker");
28259 effects.consume(code);
28260 effects.exit("referenceMarker");
28261 return open;
28262 }
28263 function open(code) {
28264 if (code === 93) {
28265 effects.enter("referenceMarker");
28266 effects.consume(code);
28267 effects.exit("referenceMarker");
28268 effects.exit("reference");
28269 return ok;
28270 }
28271 return nok(code);
28272 }
28273 }
28274 const labelStartImage = {
28275 name: "labelStartImage",
28276 tokenize: tokenizeLabelStartImage,
28277 resolveAll: labelEnd.resolveAll
28278 };
28279 function tokenizeLabelStartImage(effects, ok, nok) {
28280 const self2 = this;
28281 return start2;
28282 function start2(code) {
28283 effects.enter("labelImage");
28284 effects.enter("labelImageMarker");
28285 effects.consume(code);
28286 effects.exit("labelImageMarker");
28287 return open;
28288 }
28289 function open(code) {
28290 if (code === 91) {
28291 effects.enter("labelMarker");
28292 effects.consume(code);
28293 effects.exit("labelMarker");
28294 effects.exit("labelImage");
28295 return after;
28296 }
28297 return nok(code);
28298 }
28299 function after(code) {
28300 return code === 94 && "_hiddenFootnoteSupport" in self2.parser.constructs ? nok(code) : ok(code);
28301 }
28302 }
28303 const labelStartLink = {
28304 name: "labelStartLink",
28305 tokenize: tokenizeLabelStartLink,
28306 resolveAll: labelEnd.resolveAll
28307 };
28308 function tokenizeLabelStartLink(effects, ok, nok) {
28309 const self2 = this;
28310 return start2;
28311 function start2(code) {
28312 effects.enter("labelLink");
28313 effects.enter("labelMarker");
28314 effects.consume(code);
28315 effects.exit("labelMarker");
28316 effects.exit("labelLink");
28317 return after;
28318 }
28319 function after(code) {
28320 return code === 94 && "_hiddenFootnoteSupport" in self2.parser.constructs ? nok(code) : ok(code);
28321 }
28322 }
28323 const lineEnding = {
28324 name: "lineEnding",
28325 tokenize: tokenizeLineEnding
28326 };
28327 function tokenizeLineEnding(effects, ok) {
28328 return start2;
28329 function start2(code) {
28330 effects.enter("lineEnding");
28331 effects.consume(code);
28332 effects.exit("lineEnding");
28333 return factorySpace(effects, ok, "linePrefix");
28334 }
28335 }
28336 const thematicBreak = {
28337 name: "thematicBreak",
28338 tokenize: tokenizeThematicBreak
28339 };
28340 function tokenizeThematicBreak(effects, ok, nok) {
28341 let size2 = 0;
28342 let marker;
28343 return start2;
28344 function start2(code) {
28345 effects.enter("thematicBreak");
28346 marker = code;
28347 return atBreak(code);
28348 }
28349 function atBreak(code) {
28350 if (code === marker) {
28351 effects.enter("thematicBreakSequence");
28352 return sequence2(code);
28353 }
28354 if (markdownSpace(code)) {
28355 return factorySpace(effects, atBreak, "whitespace")(code);
28356 }
28357 if (size2 < 3 || code !== null && !markdownLineEnding(code)) {
28358 return nok(code);
28359 }
28360 effects.exit("thematicBreak");
28361 return ok(code);
28362 }
28363 function sequence2(code) {
28364 if (code === marker) {
28365 effects.consume(code);
28366 size2++;
28367 return sequence2;
28368 }
28369 effects.exit("thematicBreakSequence");
28370 return atBreak(code);
28371 }
28372 }
28373 const list = {
28374 name: "list",
28375 tokenize: tokenizeListStart,
28376 continuation: {
28377 tokenize: tokenizeListContinuation
28378 },
28379 exit: tokenizeListEnd
28380 };
28381 const listItemPrefixWhitespaceConstruct = {
28382 tokenize: tokenizeListItemPrefixWhitespace,
28383 partial: true
28384 };
28385 const indentConstruct = {
28386 tokenize: tokenizeIndent,
28387 partial: true
28388 };
28389 function tokenizeListStart(effects, ok, nok) {
28390 const self2 = this;
28391 const tail = self2.events[self2.events.length - 1];
28392 let initialSize = tail && tail[1].type === "linePrefix" ? tail[2].sliceSerialize(tail[1], true).length : 0;
28393 let size2 = 0;
28394 return start2;
28395 function start2(code) {
28396 const kind = self2.containerState.type || (code === 42 || code === 43 || code === 45 ? "listUnordered" : "listOrdered");
28397 if (kind === "listUnordered" ? !self2.containerState.marker || code === self2.containerState.marker : asciiDigit(code)) {
28398 if (!self2.containerState.type) {
28399 self2.containerState.type = kind;
28400 effects.enter(kind, {
28401 _container: true
28402 });
28403 }
28404 if (kind === "listUnordered") {
28405 effects.enter("listItemPrefix");
28406 return code === 42 || code === 45 ? effects.check(thematicBreak, nok, atMarker)(code) : atMarker(code);
28407 }
28408 if (!self2.interrupt || code === 49) {
28409 effects.enter("listItemPrefix");
28410 effects.enter("listItemValue");
28411 return inside(code);
28412 }
28413 }
28414 return nok(code);
28415 }
28416 function inside(code) {
28417 if (asciiDigit(code) && ++size2 < 10) {
28418 effects.consume(code);
28419 return inside;
28420 }
28421 if ((!self2.interrupt || size2 < 2) && (self2.containerState.marker ? code === self2.containerState.marker : code === 41 || code === 46)) {
28422 effects.exit("listItemValue");
28423 return atMarker(code);
28424 }
28425 return nok(code);
28426 }
28427 function atMarker(code) {
28428 effects.enter("listItemMarker");
28429 effects.consume(code);
28430 effects.exit("listItemMarker");
28431 self2.containerState.marker = self2.containerState.marker || code;
28432 return effects.check(
28433 blankLine,
28434 // Can’t be empty when interrupting.
28435 self2.interrupt ? nok : onBlank,
28436 effects.attempt(
28437 listItemPrefixWhitespaceConstruct,
28438 endOfPrefix,
28439 otherPrefix
28440 )
28441 );
28442 }
28443 function onBlank(code) {
28444 self2.containerState.initialBlankLine = true;
28445 initialSize++;
28446 return endOfPrefix(code);
28447 }
28448 function otherPrefix(code) {
28449 if (markdownSpace(code)) {
28450 effects.enter("listItemPrefixWhitespace");
28451 effects.consume(code);
28452 effects.exit("listItemPrefixWhitespace");
28453 return endOfPrefix;
28454 }
28455 return nok(code);
28456 }
28457 function endOfPrefix(code) {
28458 self2.containerState.size = initialSize + self2.sliceSerialize(effects.exit("listItemPrefix"), true).length;
28459 return ok(code);
28460 }
28461 }
28462 function tokenizeListContinuation(effects, ok, nok) {
28463 const self2 = this;
28464 self2.containerState._closeFlow = void 0;
28465 return effects.check(blankLine, onBlank, notBlank);
28466 function onBlank(code) {
28467 self2.containerState.furtherBlankLines = self2.containerState.furtherBlankLines || self2.containerState.initialBlankLine;
28468 return factorySpace(
28469 effects,
28470 ok,
28471 "listItemIndent",
28472 self2.containerState.size + 1
28473 )(code);
28474 }
28475 function notBlank(code) {
28476 if (self2.containerState.furtherBlankLines || !markdownSpace(code)) {
28477 self2.containerState.furtherBlankLines = void 0;
28478 self2.containerState.initialBlankLine = void 0;
28479 return notInCurrentItem(code);
28480 }
28481 self2.containerState.furtherBlankLines = void 0;
28482 self2.containerState.initialBlankLine = void 0;
28483 return effects.attempt(indentConstruct, ok, notInCurrentItem)(code);
28484 }
28485 function notInCurrentItem(code) {
28486 self2.containerState._closeFlow = true;
28487 self2.interrupt = void 0;
28488 return factorySpace(
28489 effects,
28490 effects.attempt(list, ok, nok),
28491 "linePrefix",
28492 self2.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4
28493 )(code);
28494 }
28495 }
28496 function tokenizeIndent(effects, ok, nok) {
28497 const self2 = this;
28498 return factorySpace(
28499 effects,
28500 afterPrefix,
28501 "listItemIndent",
28502 self2.containerState.size + 1
28503 );
28504 function afterPrefix(code) {
28505 const tail = self2.events[self2.events.length - 1];
28506 return tail && tail[1].type === "listItemIndent" && tail[2].sliceSerialize(tail[1], true).length === self2.containerState.size ? ok(code) : nok(code);
28507 }
28508 }
28509 function tokenizeListEnd(effects) {
28510 effects.exit(this.containerState.type);
28511 }
28512 function tokenizeListItemPrefixWhitespace(effects, ok, nok) {
28513 const self2 = this;
28514 return factorySpace(
28515 effects,
28516 afterPrefix,
28517 "listItemPrefixWhitespace",
28518 self2.parser.constructs.disable.null.includes("codeIndented") ? void 0 : 4 + 1
28519 );
28520 function afterPrefix(code) {
28521 const tail = self2.events[self2.events.length - 1];
28522 return !markdownSpace(code) && tail && tail[1].type === "listItemPrefixWhitespace" ? ok(code) : nok(code);
28523 }
28524 }
28525 const setextUnderline = {
28526 name: "setextUnderline",
28527 tokenize: tokenizeSetextUnderline,
28528 resolveTo: resolveToSetextUnderline
28529 };
28530 function resolveToSetextUnderline(events, context) {
28531 let index2 = events.length;
28532 let content2;
28533 let text2;
28534 let definition2;
28535 while (index2--) {
28536 if (events[index2][0] === "enter") {
28537 if (events[index2][1].type === "content") {
28538 content2 = index2;
28539 break;
28540 }
28541 if (events[index2][1].type === "paragraph") {
28542 text2 = index2;
28543 }
28544 } else {
28545 if (events[index2][1].type === "content") {
28546 events.splice(index2, 1);
28547 }
28548 if (!definition2 && events[index2][1].type === "definition") {
28549 definition2 = index2;
28550 }
28551 }
28552 }
28553 const heading = {
28554 type: "setextHeading",
28555 start: Object.assign({}, events[text2][1].start),
28556 end: Object.assign({}, events[events.length - 1][1].end)
28557 };
28558 events[text2][1].type = "setextHeadingText";
28559 if (definition2) {
28560 events.splice(text2, 0, ["enter", heading, context]);
28561 events.splice(definition2 + 1, 0, ["exit", events[content2][1], context]);
28562 events[content2][1].end = Object.assign({}, events[definition2][1].end);
28563 } else {
28564 events[content2][1] = heading;
28565 }
28566 events.push(["exit", heading, context]);
28567 return events;
28568 }
28569 function tokenizeSetextUnderline(effects, ok, nok) {
28570 const self2 = this;
28571 let index2 = self2.events.length;
28572 let marker;
28573 let paragraph;
28574 while (index2--) {
28575 if (self2.events[index2][1].type !== "lineEnding" && self2.events[index2][1].type !== "linePrefix" && self2.events[index2][1].type !== "content") {
28576 paragraph = self2.events[index2][1].type === "paragraph";
28577 break;
28578 }
28579 }
28580 return start2;
28581 function start2(code) {
28582 if (!self2.parser.lazy[self2.now().line] && (self2.interrupt || paragraph)) {
28583 effects.enter("setextHeadingLine");
28584 effects.enter("setextHeadingLineSequence");
28585 marker = code;
28586 return closingSequence(code);
28587 }
28588 return nok(code);
28589 }
28590 function closingSequence(code) {
28591 if (code === marker) {
28592 effects.consume(code);
28593 return closingSequence;
28594 }
28595 effects.exit("setextHeadingLineSequence");
28596 return factorySpace(effects, closingSequenceEnd, "lineSuffix")(code);
28597 }
28598 function closingSequenceEnd(code) {
28599 if (code === null || markdownLineEnding(code)) {
28600 effects.exit("setextHeadingLine");
28601 return ok(code);
28602 }
28603 return nok(code);
28604 }
28605 }
28606 const flow$1 = {
28607 tokenize: initializeFlow
28608 };
28609 function initializeFlow(effects) {
28610 const self2 = this;
28611 const initial = effects.attempt(
28612 // Try to parse a blank line.
28613 blankLine,
28614 atBlankEnding,
28615 // Try to parse initial flow (essentially, only code).
28616 effects.attempt(
28617 this.parser.constructs.flowInitial,
28618 afterConstruct,
28619 factorySpace(
28620 effects,
28621 effects.attempt(
28622 this.parser.constructs.flow,
28623 afterConstruct,
28624 effects.attempt(content, afterConstruct)
28625 ),
28626 "linePrefix"
28627 )
28628 )
28629 );
28630 return initial;
28631 function atBlankEnding(code) {
28632 if (code === null) {
28633 effects.consume(code);
28634 return;
28635 }
28636 effects.enter("lineEndingBlank");
28637 effects.consume(code);
28638 effects.exit("lineEndingBlank");
28639 self2.currentConstruct = void 0;
28640 return initial;
28641 }
28642 function afterConstruct(code) {
28643 if (code === null) {
28644 effects.consume(code);
28645 return;
28646 }
28647 effects.enter("lineEnding");
28648 effects.consume(code);
28649 effects.exit("lineEnding");
28650 self2.currentConstruct = void 0;
28651 return initial;
28652 }
28653 }
28654 const resolver = {
28655 resolveAll: createResolver()
28656 };
28657 const string$1 = initializeFactory("string");
28658 const text$1 = initializeFactory("text");
28659 function initializeFactory(field) {
28660 return {
28661 tokenize: initializeText,
28662 resolveAll: createResolver(
28663 field === "text" ? resolveAllLineSuffixes : void 0
28664 )
28665 };
28666 function initializeText(effects) {
28667 const self2 = this;
28668 const constructs2 = this.parser.constructs[field];
28669 const text2 = effects.attempt(constructs2, start2, notText);
28670 return start2;
28671 function start2(code) {
28672 return atBreak(code) ? text2(code) : notText(code);
28673 }
28674 function notText(code) {
28675 if (code === null) {
28676 effects.consume(code);
28677 return;
28678 }
28679 effects.enter("data");
28680 effects.consume(code);
28681 return data;
28682 }
28683 function data(code) {
28684 if (atBreak(code)) {
28685 effects.exit("data");
28686 return text2(code);
28687 }
28688 effects.consume(code);
28689 return data;
28690 }
28691 function atBreak(code) {
28692 if (code === null) {
28693 return true;
28694 }
28695 const list2 = constructs2[code];
28696 let index2 = -1;
28697 if (list2) {
28698 while (++index2 < list2.length) {
28699 const item = list2[index2];
28700 if (!item.previous || item.previous.call(self2, self2.previous)) {
28701 return true;
28702 }
28703 }
28704 }
28705 return false;
28706 }
28707 }
28708 }
28709 function createResolver(extraResolver) {
28710 return resolveAllText;
28711 function resolveAllText(events, context) {
28712 let index2 = -1;
28713 let enter2;
28714 while (++index2 <= events.length) {
28715 if (enter2 === void 0) {
28716 if (events[index2] && events[index2][1].type === "data") {
28717 enter2 = index2;
28718 index2++;
28719 }
28720 } else if (!events[index2] || events[index2][1].type !== "data") {
28721 if (index2 !== enter2 + 2) {
28722 events[enter2][1].end = events[index2 - 1][1].end;
28723 events.splice(enter2 + 2, index2 - enter2 - 2);
28724 index2 = enter2 + 2;
28725 }
28726 enter2 = void 0;
28727 }
28728 }
28729 return extraResolver ? extraResolver(events, context) : events;
28730 }
28731 }
28732 function resolveAllLineSuffixes(events, context) {
28733 let eventIndex = 0;
28734 while (++eventIndex <= events.length) {
28735 if ((eventIndex === events.length || events[eventIndex][1].type === "lineEnding") && events[eventIndex - 1][1].type === "data") {
28736 const data = events[eventIndex - 1][1];
28737 const chunks = context.sliceStream(data);
28738 let index2 = chunks.length;
28739 let bufferIndex = -1;
28740 let size2 = 0;
28741 let tabs;
28742 while (index2--) {
28743 const chunk = chunks[index2];
28744 if (typeof chunk === "string") {
28745 bufferIndex = chunk.length;
28746 while (chunk.charCodeAt(bufferIndex - 1) === 32) {
28747 size2++;
28748 bufferIndex--;
28749 }
28750 if (bufferIndex)
28751 break;
28752 bufferIndex = -1;
28753 } else if (chunk === -2) {
28754 tabs = true;
28755 size2++;
28756 } else if (chunk === -1)
28757 ;
28758 else {
28759 index2++;
28760 break;
28761 }
28762 }
28763 if (size2) {
28764 const token2 = {
28765 type: eventIndex === events.length || tabs || size2 < 2 ? "lineSuffix" : "hardBreakTrailing",
28766 start: {
28767 line: data.end.line,
28768 column: data.end.column - size2,
28769 offset: data.end.offset - size2,
28770 _index: data.start._index + index2,
28771 _bufferIndex: index2 ? bufferIndex : data.start._bufferIndex + bufferIndex
28772 },
28773 end: Object.assign({}, data.end)
28774 };
28775 data.end = Object.assign({}, token2.start);
28776 if (data.start.offset === data.end.offset) {
28777 Object.assign(data, token2);
28778 } else {
28779 events.splice(
28780 eventIndex,
28781 0,
28782 ["enter", token2, context],
28783 ["exit", token2, context]
28784 );
28785 eventIndex += 2;
28786 }
28787 }
28788 eventIndex++;
28789 }
28790 }
28791 return events;
28792 }
28793 function createTokenizer(parser2, initialize2, from2) {
28794 let point2 = Object.assign(
28795 from2 ? Object.assign({}, from2) : {
28796 line: 1,
28797 column: 1,
28798 offset: 0
28799 },
28800 {
28801 _index: 0,
28802 _bufferIndex: -1
28803 }
28804 );
28805 const columnStart = {};
28806 const resolveAllConstructs = [];
28807 let chunks = [];
28808 let stack = [];
28809 const effects = {
28810 consume,
28811 enter: enter2,
28812 exit: exit2,
28813 attempt: constructFactory(onsuccessfulconstruct),
28814 check: constructFactory(onsuccessfulcheck),
28815 interrupt: constructFactory(onsuccessfulcheck, {
28816 interrupt: true
28817 })
28818 };
28819 const context = {
28820 previous: null,
28821 code: null,
28822 containerState: {},
28823 events: [],
28824 parser: parser2,
28825 sliceStream,
28826 sliceSerialize,
28827 now: now2,
28828 defineSkip,
28829 write: write2
28830 };
28831 let state2 = initialize2.tokenize.call(context, effects);
28832 if (initialize2.resolveAll) {
28833 resolveAllConstructs.push(initialize2);
28834 }
28835 return context;
28836 function write2(slice2) {
28837 chunks = push(chunks, slice2);
28838 main();
28839 if (chunks[chunks.length - 1] !== null) {
28840 return [];
28841 }
28842 addResult(initialize2, 0);
28843 context.events = resolveAll(resolveAllConstructs, context.events, context);
28844 return context.events;
28845 }
28846 function sliceSerialize(token2, expandTabs) {
28847 return serializeChunks(sliceStream(token2), expandTabs);
28848 }
28849 function sliceStream(token2) {
28850 return sliceChunks(chunks, token2);
28851 }
28852 function now2() {
28853 return Object.assign({}, point2);
28854 }
28855 function defineSkip(value) {
28856 columnStart[value.line] = value.column;
28857 accountForPotentialSkip();
28858 }
28859 function main() {
28860 let chunkIndex;
28861 while (point2._index < chunks.length) {
28862 const chunk = chunks[point2._index];
28863 if (typeof chunk === "string") {
28864 chunkIndex = point2._index;
28865 if (point2._bufferIndex < 0) {
28866 point2._bufferIndex = 0;
28867 }
28868 while (point2._index === chunkIndex && point2._bufferIndex < chunk.length) {
28869 go(chunk.charCodeAt(point2._bufferIndex));
28870 }
28871 } else {
28872 go(chunk);
28873 }
28874 }
28875 }
28876 function go(code) {
28877 state2 = state2(code);
28878 }
28879 function consume(code) {
28880 if (markdownLineEnding(code)) {
28881 point2.line++;
28882 point2.column = 1;
28883 point2.offset += code === -3 ? 2 : 1;
28884 accountForPotentialSkip();
28885 } else if (code !== -1) {
28886 point2.column++;
28887 point2.offset++;
28888 }
28889 if (point2._bufferIndex < 0) {
28890 point2._index++;
28891 } else {
28892 point2._bufferIndex++;
28893 if (point2._bufferIndex === chunks[point2._index].length) {
28894 point2._bufferIndex = -1;
28895 point2._index++;
28896 }
28897 }
28898 context.previous = code;
28899 }
28900 function enter2(type2, fields) {
28901 const token2 = fields || {};
28902 token2.type = type2;
28903 token2.start = now2();
28904 context.events.push(["enter", token2, context]);
28905 stack.push(token2);
28906 return token2;
28907 }
28908 function exit2(type2) {
28909 const token2 = stack.pop();
28910 token2.end = now2();
28911 context.events.push(["exit", token2, context]);
28912 return token2;
28913 }
28914 function onsuccessfulconstruct(construct2, info2) {
28915 addResult(construct2, info2.from);
28916 }
28917 function onsuccessfulcheck(_2, info2) {
28918 info2.restore();
28919 }
28920 function constructFactory(onreturn, fields) {
28921 return hook;
28922 function hook(constructs2, returnState, bogusState) {
28923 let listOfConstructs;
28924 let constructIndex;
28925 let currentConstruct;
28926 let info2;
28927 return Array.isArray(constructs2) ? (
28928 /* c8 ignore next 1 */
28929 handleListOfConstructs(constructs2)
28930 ) : "tokenize" in constructs2 ? handleListOfConstructs([constructs2]) : handleMapOfConstructs(constructs2);
28931 function handleMapOfConstructs(map2) {
28932 return start2;
28933 function start2(code) {
28934 const def = code !== null && map2[code];
28935 const all2 = code !== null && map2.null;
28936 const list2 = [
28937 // To do: add more extension tests.
28938 /* c8 ignore next 2 */
28939 ...Array.isArray(def) ? def : def ? [def] : [],
28940 ...Array.isArray(all2) ? all2 : all2 ? [all2] : []
28941 ];
28942 return handleListOfConstructs(list2)(code);
28943 }
28944 }
28945 function handleListOfConstructs(list2) {
28946 listOfConstructs = list2;
28947 constructIndex = 0;
28948 if (list2.length === 0) {
28949 return bogusState;
28950 }
28951 return handleConstruct(list2[constructIndex]);
28952 }
28953 function handleConstruct(construct2) {
28954 return start2;
28955 function start2(code) {
28956 info2 = store();
28957 currentConstruct = construct2;
28958 if (!construct2.partial) {
28959 context.currentConstruct = construct2;
28960 }
28961 if (construct2.name && context.parser.constructs.disable.null.includes(construct2.name)) {
28962 return nok();
28963 }
28964 return construct2.tokenize.call(
28965 // If we do have fields, create an object w/ `context` as its
28966 // prototype.
28967 // This allows a “live binding”, which is needed for `interrupt`.
28968 fields ? Object.assign(Object.create(context), fields) : context,
28969 effects,
28970 ok,
28971 nok
28972 )(code);
28973 }
28974 }
28975 function ok(code) {
28976 onreturn(currentConstruct, info2);
28977 return returnState;
28978 }
28979 function nok(code) {
28980 info2.restore();
28981 if (++constructIndex < listOfConstructs.length) {
28982 return handleConstruct(listOfConstructs[constructIndex]);
28983 }
28984 return bogusState;
28985 }
28986 }
28987 }
28988 function addResult(construct2, from3) {
28989 if (construct2.resolveAll && !resolveAllConstructs.includes(construct2)) {
28990 resolveAllConstructs.push(construct2);
28991 }
28992 if (construct2.resolve) {
28993 splice(
28994 context.events,
28995 from3,
28996 context.events.length - from3,
28997 construct2.resolve(context.events.slice(from3), context)
28998 );
28999 }
29000 if (construct2.resolveTo) {
29001 context.events = construct2.resolveTo(context.events, context);
29002 }
29003 }
29004 function store() {
29005 const startPoint = now2();
29006 const startPrevious = context.previous;
29007 const startCurrentConstruct = context.currentConstruct;
29008 const startEventsIndex = context.events.length;
29009 const startStack = Array.from(stack);
29010 return {
29011 restore,
29012 from: startEventsIndex
29013 };
29014 function restore() {
29015 point2 = startPoint;
29016 context.previous = startPrevious;
29017 context.currentConstruct = startCurrentConstruct;
29018 context.events.length = startEventsIndex;
29019 stack = startStack;
29020 accountForPotentialSkip();
29021 }
29022 }
29023 function accountForPotentialSkip() {
29024 if (point2.line in columnStart && point2.column < 2) {
29025 point2.column = columnStart[point2.line];
29026 point2.offset += columnStart[point2.line] - 1;
29027 }
29028 }
29029 }
29030 function sliceChunks(chunks, token2) {
29031 const startIndex = token2.start._index;
29032 const startBufferIndex = token2.start._bufferIndex;
29033 const endIndex = token2.end._index;
29034 const endBufferIndex = token2.end._bufferIndex;
29035 let view;
29036 if (startIndex === endIndex) {
29037 view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)];
29038 } else {
29039 view = chunks.slice(startIndex, endIndex);
29040 if (startBufferIndex > -1) {
29041 view[0] = view[0].slice(startBufferIndex);
29042 }
29043 if (endBufferIndex > 0) {
29044 view.push(chunks[endIndex].slice(0, endBufferIndex));
29045 }
29046 }
29047 return view;
29048 }
29049 function serializeChunks(chunks, expandTabs) {
29050 let index2 = -1;
29051 const result = [];
29052 let atTab;
29053 while (++index2 < chunks.length) {
29054 const chunk = chunks[index2];
29055 let value;
29056 if (typeof chunk === "string") {
29057 value = chunk;
29058 } else
29059 switch (chunk) {
29060 case -5: {
29061 value = "\r";
29062 break;
29063 }
29064 case -4: {
29065 value = "\n";
29066 break;
29067 }
29068 case -3: {
29069 value = "\r\n";
29070 break;
29071 }
29072 case -2: {
29073 value = expandTabs ? " " : " ";
29074 break;
29075 }
29076 case -1: {
29077 if (!expandTabs && atTab)
29078 continue;
29079 value = " ";
29080 break;
29081 }
29082 default: {
29083 value = String.fromCharCode(chunk);
29084 }
29085 }
29086 atTab = chunk === -2;
29087 result.push(value);
29088 }
29089 return result.join("");
29090 }
29091 const document$1 = {
29092 [42]: list,
29093 [43]: list,
29094 [45]: list,
29095 [48]: list,
29096 [49]: list,
29097 [50]: list,
29098 [51]: list,
29099 [52]: list,
29100 [53]: list,
29101 [54]: list,
29102 [55]: list,
29103 [56]: list,
29104 [57]: list,
29105 [62]: blockQuote
29106 };
29107 const contentInitial = {
29108 [91]: definition
29109 };
29110 const flowInitial = {
29111 [-2]: codeIndented,
29112 [-1]: codeIndented,
29113 [32]: codeIndented
29114 };
29115 const flow = {
29116 [35]: headingAtx,
29117 [42]: thematicBreak,
29118 [45]: [setextUnderline, thematicBreak],
29119 [60]: htmlFlow,
29120 [61]: setextUnderline,
29121 [95]: thematicBreak,
29122 [96]: codeFenced,
29123 [126]: codeFenced
29124 };
29125 const string = {
29126 [38]: characterReference,
29127 [92]: characterEscape
29128 };
29129 const text = {
29130 [-5]: lineEnding,
29131 [-4]: lineEnding,
29132 [-3]: lineEnding,
29133 [33]: labelStartImage,
29134 [38]: characterReference,
29135 [42]: attention,
29136 [60]: [autolink, htmlText],
29137 [91]: labelStartLink,
29138 [92]: [hardBreakEscape, characterEscape],
29139 [93]: labelEnd,
29140 [95]: attention,
29141 [96]: codeText
29142 };
29143 const insideSpan = {
29144 null: [attention, resolver]
29145 };
29146 const attentionMarkers = {
29147 null: [42, 95]
29148 };
29149 const disable = {
29150 null: []
29151 };
29152 const defaultConstructs = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
29153 __proto__: null,
29154 attentionMarkers,
29155 contentInitial,
29156 disable,
29157 document: document$1,
29158 flow,
29159 flowInitial,
29160 insideSpan,
29161 string,
29162 text
29163 }, Symbol.toStringTag, { value: "Module" }));
29164 function parse$1(options2 = {}) {
29165 const constructs2 = combineExtensions(
29166 // @ts-expect-error Same as above.
29167 [defaultConstructs].concat(options2.extensions || [])
29168 );
29169 const parser2 = {
29170 defined: [],
29171 lazy: {},
29172 constructs: constructs2,
29173 content: create2(content$1),
29174 document: create2(document$2),
29175 flow: create2(flow$1),
29176 string: create2(string$1),
29177 text: create2(text$1)
29178 };
29179 return parser2;
29180 function create2(initial) {
29181 return creator2;
29182 function creator2(from2) {
29183 return createTokenizer(parser2, initial, from2);
29184 }
29185 }
29186 }
29187 const search = /[\0\t\n\r]/g;
29188 function preprocess() {
29189 let column2 = 1;
29190 let buffer = "";
29191 let start2 = true;
29192 let atCarriageReturn;
29193 return preprocessor;
29194 function preprocessor(value, encoding, end2) {
29195 const chunks = [];
29196 let match;
29197 let next2;
29198 let startPosition;
29199 let endPosition;
29200 let code;
29201 value = buffer + value.toString(encoding);
29202 startPosition = 0;
29203 buffer = "";
29204 if (start2) {
29205 if (value.charCodeAt(0) === 65279) {
29206 startPosition++;
29207 }
29208 start2 = void 0;
29209 }
29210 while (startPosition < value.length) {
29211 search.lastIndex = startPosition;
29212 match = search.exec(value);
29213 endPosition = match && match.index !== void 0 ? match.index : value.length;
29214 code = value.charCodeAt(endPosition);
29215 if (!match) {
29216 buffer = value.slice(startPosition);
29217 break;
29218 }
29219 if (code === 10 && startPosition === endPosition && atCarriageReturn) {
29220 chunks.push(-3);
29221 atCarriageReturn = void 0;
29222 } else {
29223 if (atCarriageReturn) {
29224 chunks.push(-5);
29225 atCarriageReturn = void 0;
29226 }
29227 if (startPosition < endPosition) {
29228 chunks.push(value.slice(startPosition, endPosition));
29229 column2 += endPosition - startPosition;
29230 }
29231 switch (code) {
29232 case 0: {
29233 chunks.push(65533);
29234 column2++;
29235 break;
29236 }
29237 case 9: {
29238 next2 = Math.ceil(column2 / 4) * 4;
29239 chunks.push(-2);
29240 while (column2++ < next2)
29241 chunks.push(-1);
29242 break;
29243 }
29244 case 10: {
29245 chunks.push(-4);
29246 column2 = 1;
29247 break;
29248 }
29249 default: {
29250 atCarriageReturn = true;
29251 column2 = 1;
29252 }
29253 }
29254 }
29255 startPosition = endPosition + 1;
29256 }
29257 if (end2) {
29258 if (atCarriageReturn)
29259 chunks.push(-5);
29260 if (buffer)
29261 chunks.push(buffer);
29262 chunks.push(null);
29263 }
29264 return chunks;
29265 }
29266 }
29267 function postprocess(events) {
29268 while (!subtokenize(events)) {
29269 }
29270 return events;
29271 }
29272 function decodeNumericCharacterReference(value, base) {
29273 const code = Number.parseInt(value, base);
29274 if (
29275 // C0 except for HT, LF, FF, CR, space
29276 code < 9 || code === 11 || code > 13 && code < 32 || // Control character (DEL) of the basic block and C1 controls.
29277 code > 126 && code < 160 || // Lone high surrogates and low surrogates.
29278 code > 55295 && code < 57344 || // Noncharacters.
29279 code > 64975 && code < 65008 || (code & 65535) === 65535 || (code & 65535) === 65534 || // Out of range
29280 code > 1114111
29281 ) {
29282 return "�";
29283 }
29284 return String.fromCharCode(code);
29285 }
29286 const characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;
29287 function decodeString(value) {
29288 return value.replace(characterEscapeOrReference, decode);
29289 }
29290 function decode($0, $1, $2) {
29291 if ($1) {
29292 return $1;
29293 }
29294 const head2 = $2.charCodeAt(0);
29295 if (head2 === 35) {
29296 const head3 = $2.charCodeAt(1);
29297 const hex2 = head3 === 120 || head3 === 88;
29298 return decodeNumericCharacterReference($2.slice(hex2 ? 2 : 1), hex2 ? 16 : 10);
29299 }
29300 return decodeNamedCharacterReference($2) || $0;
29301 }
29302 function stringifyPosition(value) {
29303 if (!value || typeof value !== "object") {
29304 return "";
29305 }
29306 if ("position" in value || "type" in value) {
29307 return position(value.position);
29308 }
29309 if ("start" in value || "end" in value) {
29310 return position(value);
29311 }
29312 if ("line" in value || "column" in value) {
29313 return point$1(value);
29314 }
29315 return "";
29316 }
29317 function point$1(point2) {
29318 return index(point2 && point2.line) + ":" + index(point2 && point2.column);
29319 }
29320 function position(pos) {
29321 return point$1(pos && pos.start) + "-" + point$1(pos && pos.end);
29322 }
29323 function index(value) {
29324 return value && typeof value === "number" ? value : 1;
29325 }
29326 const own = {}.hasOwnProperty;
29327 const fromMarkdown = (
29328 /**
29329 * @type {(
29330 * ((value: Value, encoding: Encoding, options?: Options | null | undefined) => Root) &
29331 * ((value: Value, options?: Options | null | undefined) => Root)
29332 * )}
29333 */
29334 /**
29335 * @param {Value} value
29336 * @param {Encoding | Options | null | undefined} [encoding]
29337 * @param {Options | null | undefined} [options]
29338 * @returns {Root}
29339 */
29340 function(value, encoding, options2) {
29341 if (typeof encoding !== "string") {
29342 options2 = encoding;
29343 encoding = void 0;
29344 }
29345 return compiler(options2)(
29346 postprocess(
29347 // @ts-expect-error: micromark types need to accept `null`.
29348 parse$1(options2).document().write(preprocess()(value, encoding, true))
29349 )
29350 );
29351 }
29352 );
29353 function compiler(options2) {
29354 const config2 = {
29355 transforms: [],
29356 canContainEols: ["emphasis", "fragment", "heading", "paragraph", "strong"],
29357 enter: {
29358 autolink: opener(link),
29359 autolinkProtocol: onenterdata,
29360 autolinkEmail: onenterdata,
29361 atxHeading: opener(heading),
29362 blockQuote: opener(blockQuote2),
29363 characterEscape: onenterdata,
29364 characterReference: onenterdata,
29365 codeFenced: opener(codeFlow),
29366 codeFencedFenceInfo: buffer,
29367 codeFencedFenceMeta: buffer,
29368 codeIndented: opener(codeFlow, buffer),
29369 codeText: opener(codeText2, buffer),
29370 codeTextData: onenterdata,
29371 data: onenterdata,
29372 codeFlowValue: onenterdata,
29373 definition: opener(definition2),
29374 definitionDestinationString: buffer,
29375 definitionLabelString: buffer,
29376 definitionTitleString: buffer,
29377 emphasis: opener(emphasis),
29378 hardBreakEscape: opener(hardBreak),
29379 hardBreakTrailing: opener(hardBreak),
29380 htmlFlow: opener(html2, buffer),
29381 htmlFlowData: onenterdata,
29382 htmlText: opener(html2, buffer),
29383 htmlTextData: onenterdata,
29384 image: opener(image),
29385 label: buffer,
29386 link: opener(link),
29387 listItem: opener(listItem),
29388 listItemValue: onenterlistitemvalue,
29389 listOrdered: opener(list2, onenterlistordered),
29390 listUnordered: opener(list2),
29391 paragraph: opener(paragraph),
29392 reference: onenterreference,
29393 referenceString: buffer,
29394 resourceDestinationString: buffer,
29395 resourceTitleString: buffer,
29396 setextHeading: opener(heading),
29397 strong: opener(strong),
29398 thematicBreak: opener(thematicBreak2)
29399 },
29400 exit: {
29401 atxHeading: closer(),
29402 atxHeadingSequence: onexitatxheadingsequence,
29403 autolink: closer(),
29404 autolinkEmail: onexitautolinkemail,
29405 autolinkProtocol: onexitautolinkprotocol,
29406 blockQuote: closer(),
29407 characterEscapeValue: onexitdata,
29408 characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,
29409 characterReferenceMarkerNumeric: onexitcharacterreferencemarker,
29410 characterReferenceValue: onexitcharacterreferencevalue,
29411 codeFenced: closer(onexitcodefenced),
29412 codeFencedFence: onexitcodefencedfence,
29413 codeFencedFenceInfo: onexitcodefencedfenceinfo,
29414 codeFencedFenceMeta: onexitcodefencedfencemeta,
29415 codeFlowValue: onexitdata,
29416 codeIndented: closer(onexitcodeindented),
29417 codeText: closer(onexitcodetext),
29418 codeTextData: onexitdata,
29419 data: onexitdata,
29420 definition: closer(),
29421 definitionDestinationString: onexitdefinitiondestinationstring,
29422 definitionLabelString: onexitdefinitionlabelstring,
29423 definitionTitleString: onexitdefinitiontitlestring,
29424 emphasis: closer(),
29425 hardBreakEscape: closer(onexithardbreak),
29426 hardBreakTrailing: closer(onexithardbreak),
29427 htmlFlow: closer(onexithtmlflow),
29428 htmlFlowData: onexitdata,
29429 htmlText: closer(onexithtmltext),
29430 htmlTextData: onexitdata,
29431 image: closer(onexitimage),
29432 label: onexitlabel,
29433 labelText: onexitlabeltext,
29434 lineEnding: onexitlineending,
29435 link: closer(onexitlink),
29436 listItem: closer(),
29437 listOrdered: closer(),
29438 listUnordered: closer(),
29439 paragraph: closer(),
29440 referenceString: onexitreferencestring,
29441 resourceDestinationString: onexitresourcedestinationstring,
29442 resourceTitleString: onexitresourcetitlestring,
29443 resource: onexitresource,
29444 setextHeading: closer(onexitsetextheading),
29445 setextHeadingLineSequence: onexitsetextheadinglinesequence,
29446 setextHeadingText: onexitsetextheadingtext,
29447 strong: closer(),
29448 thematicBreak: closer()
29449 }
29450 };
29451 configure(config2, (options2 || {}).mdastExtensions || []);
29452 const data = {};
29453 return compile2;
29454 function compile2(events) {
29455 let tree = {
29456 type: "root",
29457 children: []
29458 };
29459 const context = {
29460 stack: [tree],
29461 tokenStack: [],
29462 config: config2,
29463 enter: enter2,
29464 exit: exit2,
29465 buffer,
29466 resume,
29467 setData,
29468 getData
29469 };
29470 const listStack = [];
29471 let index2 = -1;
29472 while (++index2 < events.length) {
29473 if (events[index2][1].type === "listOrdered" || events[index2][1].type === "listUnordered") {
29474 if (events[index2][0] === "enter") {
29475 listStack.push(index2);
29476 } else {
29477 const tail = listStack.pop();
29478 index2 = prepareList(events, tail, index2);
29479 }
29480 }
29481 }
29482 index2 = -1;
29483 while (++index2 < events.length) {
29484 const handler = config2[events[index2][0]];
29485 if (own.call(handler, events[index2][1].type)) {
29486 handler[events[index2][1].type].call(
29487 Object.assign(
29488 {
29489 sliceSerialize: events[index2][2].sliceSerialize
29490 },
29491 context
29492 ),
29493 events[index2][1]
29494 );
29495 }
29496 }
29497 if (context.tokenStack.length > 0) {
29498 const tail = context.tokenStack[context.tokenStack.length - 1];
29499 const handler = tail[1] || defaultOnError;
29500 handler.call(context, void 0, tail[0]);
29501 }
29502 tree.position = {
29503 start: point(
29504 events.length > 0 ? events[0][1].start : {
29505 line: 1,
29506 column: 1,
29507 offset: 0
29508 }
29509 ),
29510 end: point(
29511 events.length > 0 ? events[events.length - 2][1].end : {
29512 line: 1,
29513 column: 1,
29514 offset: 0
29515 }
29516 )
29517 };
29518 index2 = -1;
29519 while (++index2 < config2.transforms.length) {
29520 tree = config2.transforms[index2](tree) || tree;
29521 }
29522 return tree;
29523 }
29524 function prepareList(events, start2, length2) {
29525 let index2 = start2 - 1;
29526 let containerBalance = -1;
29527 let listSpread = false;
29528 let listItem2;
29529 let lineIndex;
29530 let firstBlankLineIndex;
29531 let atMarker;
29532 while (++index2 <= length2) {
29533 const event = events[index2];
29534 if (event[1].type === "listUnordered" || event[1].type === "listOrdered" || event[1].type === "blockQuote") {
29535 if (event[0] === "enter") {
29536 containerBalance++;
29537 } else {
29538 containerBalance--;
29539 }
29540 atMarker = void 0;
29541 } else if (event[1].type === "lineEndingBlank") {
29542 if (event[0] === "enter") {
29543 if (listItem2 && !atMarker && !containerBalance && !firstBlankLineIndex) {
29544 firstBlankLineIndex = index2;
29545 }
29546 atMarker = void 0;
29547 }
29548 } else if (event[1].type === "linePrefix" || event[1].type === "listItemValue" || event[1].type === "listItemMarker" || event[1].type === "listItemPrefix" || event[1].type === "listItemPrefixWhitespace")
29549 ;
29550 else {
29551 atMarker = void 0;
29552 }
29553 if (!containerBalance && event[0] === "enter" && event[1].type === "listItemPrefix" || containerBalance === -1 && event[0] === "exit" && (event[1].type === "listUnordered" || event[1].type === "listOrdered")) {
29554 if (listItem2) {
29555 let tailIndex = index2;
29556 lineIndex = void 0;
29557 while (tailIndex--) {
29558 const tailEvent = events[tailIndex];
29559 if (tailEvent[1].type === "lineEnding" || tailEvent[1].type === "lineEndingBlank") {
29560 if (tailEvent[0] === "exit")
29561 continue;
29562 if (lineIndex) {
29563 events[lineIndex][1].type = "lineEndingBlank";
29564 listSpread = true;
29565 }
29566 tailEvent[1].type = "lineEnding";
29567 lineIndex = tailIndex;
29568 } else if (tailEvent[1].type === "linePrefix" || tailEvent[1].type === "blockQuotePrefix" || tailEvent[1].type === "blockQuotePrefixWhitespace" || tailEvent[1].type === "blockQuoteMarker" || tailEvent[1].type === "listItemIndent")
29569 ;
29570 else {
29571 break;
29572 }
29573 }
29574 if (firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex)) {
29575 listItem2._spread = true;
29576 }
29577 listItem2.end = Object.assign(
29578 {},
29579 lineIndex ? events[lineIndex][1].start : event[1].end
29580 );
29581 events.splice(lineIndex || index2, 0, ["exit", listItem2, event[2]]);
29582 index2++;
29583 length2++;
29584 }
29585 if (event[1].type === "listItemPrefix") {
29586 listItem2 = {
29587 type: "listItem",
29588 // @ts-expect-error Patched
29589 _spread: false,
29590 start: Object.assign({}, event[1].start)
29591 };
29592 events.splice(index2, 0, ["enter", listItem2, event[2]]);
29593 index2++;
29594 length2++;
29595 firstBlankLineIndex = void 0;
29596 atMarker = true;
29597 }
29598 }
29599 }
29600 events[start2][1]._spread = listSpread;
29601 return length2;
29602 }
29603 function setData(key, value) {
29604 data[key] = value;
29605 }
29606 function getData(key) {
29607 return data[key];
29608 }
29609 function opener(create2, and) {
29610 return open;
29611 function open(token2) {
29612 enter2.call(this, create2(token2), token2);
29613 if (and)
29614 and.call(this, token2);
29615 }
29616 }
29617 function buffer() {
29618 this.stack.push({
29619 type: "fragment",
29620 children: []
29621 });
29622 }
29623 function enter2(node2, token2, errorHandler) {
29624 const parent = this.stack[this.stack.length - 1];
29625 parent.children.push(node2);
29626 this.stack.push(node2);
29627 this.tokenStack.push([token2, errorHandler]);
29628 node2.position = {
29629 start: point(token2.start)
29630 };
29631 return node2;
29632 }
29633 function closer(and) {
29634 return close;
29635 function close(token2) {
29636 if (and)
29637 and.call(this, token2);
29638 exit2.call(this, token2);
29639 }
29640 }
29641 function exit2(token2, onExitError) {
29642 const node2 = this.stack.pop();
29643 const open = this.tokenStack.pop();
29644 if (!open) {
29645 throw new Error(
29646 "Cannot close `" + token2.type + "` (" + stringifyPosition({
29647 start: token2.start,
29648 end: token2.end
29649 }) + "): it’s not open"
29650 );
29651 } else if (open[0].type !== token2.type) {
29652 if (onExitError) {
29653 onExitError.call(this, token2, open[0]);
29654 } else {
29655 const handler = open[1] || defaultOnError;
29656 handler.call(this, token2, open[0]);
29657 }
29658 }
29659 node2.position.end = point(token2.end);
29660 return node2;
29661 }
29662 function resume() {
29663 return toString(this.stack.pop());
29664 }
29665 function onenterlistordered() {
29666 setData("expectingFirstListItemValue", true);
29667 }
29668 function onenterlistitemvalue(token2) {
29669 if (getData("expectingFirstListItemValue")) {
29670 const ancestor = this.stack[this.stack.length - 2];
29671 ancestor.start = Number.parseInt(this.sliceSerialize(token2), 10);
29672 setData("expectingFirstListItemValue");
29673 }
29674 }
29675 function onexitcodefencedfenceinfo() {
29676 const data2 = this.resume();
29677 const node2 = this.stack[this.stack.length - 1];
29678 node2.lang = data2;
29679 }
29680 function onexitcodefencedfencemeta() {
29681 const data2 = this.resume();
29682 const node2 = this.stack[this.stack.length - 1];
29683 node2.meta = data2;
29684 }
29685 function onexitcodefencedfence() {
29686 if (getData("flowCodeInside"))
29687 return;
29688 this.buffer();
29689 setData("flowCodeInside", true);
29690 }
29691 function onexitcodefenced() {
29692 const data2 = this.resume();
29693 const node2 = this.stack[this.stack.length - 1];
29694 node2.value = data2.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, "");
29695 setData("flowCodeInside");
29696 }
29697 function onexitcodeindented() {
29698 const data2 = this.resume();
29699 const node2 = this.stack[this.stack.length - 1];
29700 node2.value = data2.replace(/(\r?\n|\r)$/g, "");
29701 }
29702 function onexitdefinitionlabelstring(token2) {
29703 const label = this.resume();
29704 const node2 = this.stack[this.stack.length - 1];
29705 node2.label = label;
29706 node2.identifier = normalizeIdentifier(
29707 this.sliceSerialize(token2)
29708 ).toLowerCase();
29709 }
29710 function onexitdefinitiontitlestring() {
29711 const data2 = this.resume();
29712 const node2 = this.stack[this.stack.length - 1];
29713 node2.title = data2;
29714 }
29715 function onexitdefinitiondestinationstring() {
29716 const data2 = this.resume();
29717 const node2 = this.stack[this.stack.length - 1];
29718 node2.url = data2;
29719 }
29720 function onexitatxheadingsequence(token2) {
29721 const node2 = this.stack[this.stack.length - 1];
29722 if (!node2.depth) {
29723 const depth = this.sliceSerialize(token2).length;
29724 node2.depth = depth;
29725 }
29726 }
29727 function onexitsetextheadingtext() {
29728 setData("setextHeadingSlurpLineEnding", true);
29729 }
29730 function onexitsetextheadinglinesequence(token2) {
29731 const node2 = this.stack[this.stack.length - 1];
29732 node2.depth = this.sliceSerialize(token2).charCodeAt(0) === 61 ? 1 : 2;
29733 }
29734 function onexitsetextheading() {
29735 setData("setextHeadingSlurpLineEnding");
29736 }
29737 function onenterdata(token2) {
29738 const node2 = this.stack[this.stack.length - 1];
29739 let tail = node2.children[node2.children.length - 1];
29740 if (!tail || tail.type !== "text") {
29741 tail = text2();
29742 tail.position = {
29743 start: point(token2.start)
29744 };
29745 node2.children.push(tail);
29746 }
29747 this.stack.push(tail);
29748 }
29749 function onexitdata(token2) {
29750 const tail = this.stack.pop();
29751 tail.value += this.sliceSerialize(token2);
29752 tail.position.end = point(token2.end);
29753 }
29754 function onexitlineending(token2) {
29755 const context = this.stack[this.stack.length - 1];
29756 if (getData("atHardBreak")) {
29757 const tail = context.children[context.children.length - 1];
29758 tail.position.end = point(token2.end);
29759 setData("atHardBreak");
29760 return;
29761 }
29762 if (!getData("setextHeadingSlurpLineEnding") && config2.canContainEols.includes(context.type)) {
29763 onenterdata.call(this, token2);
29764 onexitdata.call(this, token2);
29765 }
29766 }
29767 function onexithardbreak() {
29768 setData("atHardBreak", true);
29769 }
29770 function onexithtmlflow() {
29771 const data2 = this.resume();
29772 const node2 = this.stack[this.stack.length - 1];
29773 node2.value = data2;
29774 }
29775 function onexithtmltext() {
29776 const data2 = this.resume();
29777 const node2 = this.stack[this.stack.length - 1];
29778 node2.value = data2;
29779 }
29780 function onexitcodetext() {
29781 const data2 = this.resume();
29782 const node2 = this.stack[this.stack.length - 1];
29783 node2.value = data2;
29784 }
29785 function onexitlink() {
29786 const node2 = this.stack[this.stack.length - 1];
29787 if (getData("inReference")) {
29788 const referenceType = getData("referenceType") || "shortcut";
29789 node2.type += "Reference";
29790 node2.referenceType = referenceType;
29791 delete node2.url;
29792 delete node2.title;
29793 } else {
29794 delete node2.identifier;
29795 delete node2.label;
29796 }
29797 setData("referenceType");
29798 }
29799 function onexitimage() {
29800 const node2 = this.stack[this.stack.length - 1];
29801 if (getData("inReference")) {
29802 const referenceType = getData("referenceType") || "shortcut";
29803 node2.type += "Reference";
29804 node2.referenceType = referenceType;
29805 delete node2.url;
29806 delete node2.title;
29807 } else {
29808 delete node2.identifier;
29809 delete node2.label;
29810 }
29811 setData("referenceType");
29812 }
29813 function onexitlabeltext(token2) {
29814 const string2 = this.sliceSerialize(token2);
29815 const ancestor = this.stack[this.stack.length - 2];
29816 ancestor.label = decodeString(string2);
29817 ancestor.identifier = normalizeIdentifier(string2).toLowerCase();
29818 }
29819 function onexitlabel() {
29820 const fragment = this.stack[this.stack.length - 1];
29821 const value = this.resume();
29822 const node2 = this.stack[this.stack.length - 1];
29823 setData("inReference", true);
29824 if (node2.type === "link") {
29825 const children2 = fragment.children;
29826 node2.children = children2;
29827 } else {
29828 node2.alt = value;
29829 }
29830 }
29831 function onexitresourcedestinationstring() {
29832 const data2 = this.resume();
29833 const node2 = this.stack[this.stack.length - 1];
29834 node2.url = data2;
29835 }
29836 function onexitresourcetitlestring() {
29837 const data2 = this.resume();
29838 const node2 = this.stack[this.stack.length - 1];
29839 node2.title = data2;
29840 }
29841 function onexitresource() {
29842 setData("inReference");
29843 }
29844 function onenterreference() {
29845 setData("referenceType", "collapsed");
29846 }
29847 function onexitreferencestring(token2) {
29848 const label = this.resume();
29849 const node2 = this.stack[this.stack.length - 1];
29850 node2.label = label;
29851 node2.identifier = normalizeIdentifier(
29852 this.sliceSerialize(token2)
29853 ).toLowerCase();
29854 setData("referenceType", "full");
29855 }
29856 function onexitcharacterreferencemarker(token2) {
29857 setData("characterReferenceType", token2.type);
29858 }
29859 function onexitcharacterreferencevalue(token2) {
29860 const data2 = this.sliceSerialize(token2);
29861 const type2 = getData("characterReferenceType");
29862 let value;
29863 if (type2) {
29864 value = decodeNumericCharacterReference(
29865 data2,
29866 type2 === "characterReferenceMarkerNumeric" ? 10 : 16
29867 );
29868 setData("characterReferenceType");
29869 } else {
29870 const result = decodeNamedCharacterReference(data2);
29871 value = result;
29872 }
29873 const tail = this.stack.pop();
29874 tail.value += value;
29875 tail.position.end = point(token2.end);
29876 }
29877 function onexitautolinkprotocol(token2) {
29878 onexitdata.call(this, token2);
29879 const node2 = this.stack[this.stack.length - 1];
29880 node2.url = this.sliceSerialize(token2);
29881 }
29882 function onexitautolinkemail(token2) {
29883 onexitdata.call(this, token2);
29884 const node2 = this.stack[this.stack.length - 1];
29885 node2.url = "mailto:" + this.sliceSerialize(token2);
29886 }
29887 function blockQuote2() {
29888 return {
29889 type: "blockquote",
29890 children: []
29891 };
29892 }
29893 function codeFlow() {
29894 return {
29895 type: "code",
29896 lang: null,
29897 meta: null,
29898 value: ""
29899 };
29900 }
29901 function codeText2() {
29902 return {
29903 type: "inlineCode",
29904 value: ""
29905 };
29906 }
29907 function definition2() {
29908 return {
29909 type: "definition",
29910 identifier: "",
29911 label: null,
29912 title: null,
29913 url: ""
29914 };
29915 }
29916 function emphasis() {
29917 return {
29918 type: "emphasis",
29919 children: []
29920 };
29921 }
29922 function heading() {
29923 return {
29924 type: "heading",
29925 depth: void 0,
29926 children: []
29927 };
29928 }
29929 function hardBreak() {
29930 return {
29931 type: "break"
29932 };
29933 }
29934 function html2() {
29935 return {
29936 type: "html",
29937 value: ""
29938 };
29939 }
29940 function image() {
29941 return {
29942 type: "image",
29943 title: null,
29944 url: "",
29945 alt: null
29946 };
29947 }
29948 function link() {
29949 return {
29950 type: "link",
29951 title: null,
29952 url: "",
29953 children: []
29954 };
29955 }
29956 function list2(token2) {
29957 return {
29958 type: "list",
29959 ordered: token2.type === "listOrdered",
29960 start: null,
29961 // @ts-expect-error Patched.
29962 spread: token2._spread,
29963 children: []
29964 };
29965 }
29966 function listItem(token2) {
29967 return {
29968 type: "listItem",
29969 // @ts-expect-error Patched.
29970 spread: token2._spread,
29971 checked: null,
29972 children: []
29973 };
29974 }
29975 function paragraph() {
29976 return {
29977 type: "paragraph",
29978 children: []
29979 };
29980 }
29981 function strong() {
29982 return {
29983 type: "strong",
29984 children: []
29985 };
29986 }
29987 function text2() {
29988 return {
29989 type: "text",
29990 value: ""
29991 };
29992 }
29993 function thematicBreak2() {
29994 return {
29995 type: "thematicBreak"
29996 };
29997 }
29998 }
29999 function point(d) {
30000 return {
30001 line: d.line,
30002 column: d.column,
30003 offset: d.offset
30004 };
30005 }
30006 function configure(combined, extensions) {
30007 let index2 = -1;
30008 while (++index2 < extensions.length) {
30009 const value = extensions[index2];
30010 if (Array.isArray(value)) {
30011 configure(combined, value);
30012 } else {
30013 extension(combined, value);
30014 }
30015 }
30016 }
30017 function extension(combined, extension2) {
30018 let key;
30019 for (key in extension2) {
30020 if (own.call(extension2, key)) {
30021 if (key === "canContainEols") {
30022 const right2 = extension2[key];
30023 if (right2) {
30024 combined[key].push(...right2);
30025 }
30026 } else if (key === "transforms") {
30027 const right2 = extension2[key];
30028 if (right2) {
30029 combined[key].push(...right2);
30030 }
30031 } else if (key === "enter" || key === "exit") {
30032 const right2 = extension2[key];
30033 if (right2) {
30034 Object.assign(combined[key], right2);
30035 }
30036 }
30037 }
30038 }
30039 }
30040 function defaultOnError(left2, right2) {
30041 if (left2) {
30042 throw new Error(
30043 "Cannot close `" + left2.type + "` (" + stringifyPosition({
30044 start: left2.start,
30045 end: left2.end
30046 }) + "): a different token (`" + right2.type + "`, " + stringifyPosition({
30047 start: right2.start,
30048 end: right2.end
30049 }) + ") is open"
30050 );
30051 } else {
30052 throw new Error(
30053 "Cannot close document, a token (`" + right2.type + "`, " + stringifyPosition({
30054 start: right2.start,
30055 end: right2.end
30056 }) + ") is still open"
30057 );
30058 }
30059 }
30060 function preprocessMarkdown(markdown) {
30061 const withoutMultipleNewlines = markdown.replace(/\n{2,}/g, "\n");
30062 const withoutExtraSpaces = dedent(withoutMultipleNewlines);
30063 return withoutExtraSpaces;
30064 }
30065 function markdownToLines(markdown) {
30066 const preprocessedMarkdown = preprocessMarkdown(markdown);
30067 const { children: children2 } = fromMarkdown(preprocessedMarkdown);
30068 const lines = [[]];
30069 let currentLine = 0;
30070 function processNode(node2, parentType = "normal") {
30071 if (node2.type === "text") {
30072 const textLines = node2.value.split("\n");
30073 textLines.forEach((textLine, index2) => {
30074 if (index2 !== 0) {
30075 currentLine++;
30076 lines.push([]);
30077 }
30078 textLine.split(" ").forEach((word) => {
30079 if (word) {
30080 lines[currentLine].push({ content: word, type: parentType });
30081 }
30082 });
30083 });
30084 } else if (node2.type === "strong" || node2.type === "emphasis") {
30085 node2.children.forEach((contentNode) => {
30086 processNode(contentNode, node2.type);
30087 });
30088 }
30089 }
30090 children2.forEach((treeNode) => {
30091 if (treeNode.type === "paragraph") {
30092 treeNode.children.forEach((contentNode) => {
30093 processNode(contentNode);
30094 });
30095 }
30096 });
30097 return lines;
30098 }
30099 function markdownToHTML(markdown) {
30100 const { children: children2 } = fromMarkdown(markdown);
30101 function output(node2) {
30102 if (node2.type === "text") {
30103 return node2.value.replace(/\n/g, "<br/>");
30104 } else if (node2.type === "strong") {
30105 return `<strong>${node2.children.map(output).join("")}</strong>`;
30106 } else if (node2.type === "emphasis") {
30107 return `<em>${node2.children.map(output).join("")}</em>`;
30108 } else if (node2.type === "paragraph") {
30109 return `<p>${node2.children.map(output).join("")}</p>`;
30110 }
30111 return `Unsupported markdown: ${node2.type}`;
30112 }
30113 return children2.map(output).join("");
30114 }
30115 function applyStyle(dom, styleFn) {
30116 if (styleFn) {
30117 dom.attr("style", styleFn);
30118 }
30119 }
30120 function addHtmlSpan(element2, node2, width2, classes2, addBackground = false) {
30121 const fo = element2.append("foreignObject");
30122 const div = fo.append("xhtml:div");
30123 const label = node2.label;
30124 const labelClass = node2.isNode ? "nodeLabel" : "edgeLabel";
30125 div.html(
30126 `
30127 <span class="${labelClass} ${classes2}" ` + (node2.labelStyle ? 'style="' + node2.labelStyle + '"' : "") + ">" + label + "</span>"
30128 );
30129 applyStyle(div, node2.labelStyle);
30130 div.style("display", "table-cell");
30131 div.style("white-space", "nowrap");
30132 div.style("max-width", width2 + "px");
30133 div.attr("xmlns", "http://www.w3.org/1999/xhtml");
30134 if (addBackground) {
30135 div.attr("class", "labelBkg");
30136 }
30137 let bbox = div.node().getBoundingClientRect();
30138 if (bbox.width === width2) {
30139 div.style("display", "table");
30140 div.style("white-space", "break-spaces");
30141 div.style("width", width2 + "px");
30142 bbox = div.node().getBoundingClientRect();
30143 }
30144 fo.style("width", bbox.width);
30145 fo.style("height", bbox.height);
30146 return fo.node();
30147 }
30148 function createTspan(textElement, lineIndex, lineHeight) {
30149 return textElement.append("tspan").attr("class", "text-outer-tspan").attr("x", 0).attr("y", lineIndex * lineHeight - 0.1 + "em").attr("dy", lineHeight + "em");
30150 }
30151 function createFormattedText(width2, g, structuredText, addBackground = false) {
30152 const lineHeight = 1.1;
30153 const labelGroup = g.append("g");
30154 let bkg = labelGroup.insert("rect").attr("class", "background");
30155 const textElement = labelGroup.append("text").attr("y", "-10.1");
30156 let lineIndex = -1;
30157 structuredText.forEach((line2) => {
30158 lineIndex++;
30159 let tspan = createTspan(textElement, lineIndex, lineHeight);
30160 let words = [...line2].reverse();
30161 let currentWord;
30162 let wrappedLine = [];
30163 while (words.length) {
30164 currentWord = words.pop();
30165 wrappedLine.push(currentWord);
30166 updateTextContentAndStyles(tspan, wrappedLine);
30167 if (tspan.node().getComputedTextLength() > width2) {
30168 wrappedLine.pop();
30169 words.push(currentWord);
30170 updateTextContentAndStyles(tspan, wrappedLine);
30171 wrappedLine = [];
30172 lineIndex++;
30173 tspan = createTspan(textElement, lineIndex, lineHeight);
30174 }
30175 }
30176 });
30177 if (addBackground) {
30178 const bbox = textElement.node().getBBox();
30179 const padding2 = 2;
30180 bkg.attr("x", -padding2).attr("y", -padding2).attr("width", bbox.width + 2 * padding2).attr("height", bbox.height + 2 * padding2);
30181 return labelGroup.node();
30182 } else {
30183 return textElement.node();
30184 }
30185 }
30186 function updateTextContentAndStyles(tspan, wrappedLine) {
30187 tspan.text("");
30188 wrappedLine.forEach((word, index2) => {
30189 const innerTspan = tspan.append("tspan").attr("font-style", word.type === "em" ? "italic" : "normal").attr("class", "text-inner-tspan").attr("font-weight", word.type === "strong" ? "bold" : "normal");
30190 if (index2 === 0) {
30191 innerTspan.text(word.content);
30192 } else {
30193 innerTspan.text(" " + word.content);
30194 }
30195 });
30196 }
30197 const createText = (el, text2 = "", {
30198 style = "",
30199 isTitle = false,
30200 classes: classes2 = "",
30201 useHtmlLabels = true,
30202 isNode = true,
30203 width: width2,
30204 addSvgBackground = false
30205 } = {}) => {
30206 log$1.info("createText", text2, style, isTitle, classes2, useHtmlLabels, isNode, addSvgBackground);
30207 if (useHtmlLabels) {
30208 const htmlText2 = markdownToHTML(text2);
30209 const node2 = {
30210 isNode,
30211 label: decodeEntities(htmlText2).replace(
30212 /fa[blrs]?:fa-[\w-]+/g,
30213 (s) => `<i class='${s.replace(":", " ")}'></i>`
30214 ),
30215 labelStyle: style.replace("fill:", "color:")
30216 };
30217 let vertexNode = addHtmlSpan(el, node2, width2, classes2, addSvgBackground);
30218 return vertexNode;
30219 } else {
30220 const structuredText = markdownToLines(text2);
30221 const svgLabel = createFormattedText(width2, el, structuredText, addSvgBackground);
30222 return svgLabel;
30223 }
30224 };
30225 const labelHelper = async (parent, node2, _classes, isNode) => {
30226 let classes2;
30227 const useHtmlLabels = node2.useHtmlLabels || evaluate(getConfig$1().flowchart.htmlLabels);
30228 if (!_classes) {
30229 classes2 = "node default";
30230 } else {
30231 classes2 = _classes;
30232 }
30233 const shapeSvg = parent.insert("g").attr("class", classes2).attr("id", node2.domId || node2.id);
30234 const label = shapeSvg.insert("g").attr("class", "label").attr("style", node2.labelStyle);
30235 let labelText;
30236 if (node2.labelText === void 0) {
30237 labelText = "";
30238 } else {
30239 labelText = typeof node2.labelText === "string" ? node2.labelText : node2.labelText[0];
30240 }
30241 const textNode = label.node();
30242 let text2;
30243 if (node2.labelType === "markdown") {
30244 text2 = createText(label, sanitizeText$6(decodeEntities(labelText), getConfig$1()), {
30245 useHtmlLabels,
30246 width: node2.width || getConfig$1().flowchart.wrappingWidth,
30247 classes: "markdown-node-label"
30248 });
30249 } else {
30250 text2 = textNode.appendChild(
30251 createLabel$1(
30252 sanitizeText$6(decodeEntities(labelText), getConfig$1()),
30253 node2.labelStyle,
30254 false,
30255 isNode
30256 )
30257 );
30258 }
30259 let bbox = text2.getBBox();
30260 const halfPadding = node2.padding / 2;
30261 if (evaluate(getConfig$1().flowchart.htmlLabels)) {
30262 const div = text2.children[0];
30263 const dv = select(text2);
30264 const images = div.getElementsByTagName("img");
30265 if (images) {
30266 const noImgText = labelText.replace(/<img[^>]*>/g, "").trim() === "";
30267 await Promise.all(
30268 [...images].map(
30269 (img) => new Promise(
30270 (res) => img.addEventListener("load", function() {
30271 img.style.display = "flex";
30272 img.style.flexDirection = "column";
30273 if (noImgText) {
30274 const bodyFontSize = getConfig$1().fontSize ? getConfig$1().fontSize : window.getComputedStyle(document.body).fontSize;
30275 const enlargingFactor = 5;
30276 img.style.width = parseInt(bodyFontSize, 10) * enlargingFactor + "px";
30277 } else {
30278 img.style.width = "100%";
30279 }
30280 res(img);
30281 })
30282 )
30283 )
30284 );
30285 }
30286 bbox = div.getBoundingClientRect();
30287 dv.attr("width", bbox.width);
30288 dv.attr("height", bbox.height);
30289 }
30290 if (useHtmlLabels) {
30291 label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
30292 } else {
30293 label.attr("transform", "translate(0, " + -bbox.height / 2 + ")");
30294 }
30295 if (node2.centerLabel) {
30296 label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
30297 }
30298 label.insert("rect", ":first-child");
30299 return { shapeSvg, bbox, halfPadding, label };
30300 };
30301 const updateNodeBounds = (node2, element2) => {
30302 const bbox = element2.node().getBBox();
30303 node2.width = bbox.width;
30304 node2.height = bbox.height;
30305 };
30306 function insertPolygonShape$1(parent, w2, h, points) {
30307 return parent.insert("polygon", ":first-child").attr(
30308 "points",
30309 points.map(function(d) {
30310 return d.x + "," + d.y;
30311 }).join(" ")
30312 ).attr("class", "label-container").attr("transform", "translate(" + -w2 / 2 + "," + h / 2 + ")");
30313 }
30314 let clusterDb = {};
30315 let descendants = {};
30316 let parents = {};
30317 const clear$g = () => {
30318 descendants = {};
30319 parents = {};
30320 clusterDb = {};
30321 };
30322 const isDescendant = (id2, ancenstorId) => {
30323 log$1.trace("In isDecendant", ancenstorId, " ", id2, " = ", descendants[ancenstorId].includes(id2));
30324 if (descendants[ancenstorId].includes(id2)) {
30325 return true;
30326 }
30327 return false;
30328 };
30329 const edgeInCluster = (edge, clusterId) => {
30330 log$1.info("Decendants of ", clusterId, " is ", descendants[clusterId]);
30331 log$1.info("Edge is ", edge);
30332 if (edge.v === clusterId) {
30333 return false;
30334 }
30335 if (edge.w === clusterId) {
30336 return false;
30337 }
30338 if (!descendants[clusterId]) {
30339 log$1.debug("Tilt, ", clusterId, ",not in decendants");
30340 return false;
30341 }
30342 return descendants[clusterId].includes(edge.v) || isDescendant(edge.v, clusterId) || isDescendant(edge.w, clusterId) || descendants[clusterId].includes(edge.w);
30343 };
30344 const copy = (clusterId, graph, newGraph, rootId) => {
30345 log$1.warn(
30346 "Copying children of ",
30347 clusterId,
30348 "root",
30349 rootId,
30350 "data",
30351 graph.node(clusterId),
30352 rootId
30353 );
30354 const nodes2 = graph.children(clusterId) || [];
30355 if (clusterId !== rootId) {
30356 nodes2.push(clusterId);
30357 }
30358 log$1.warn("Copying (nodes) clusterId", clusterId, "nodes", nodes2);
30359 nodes2.forEach((node2) => {
30360 if (graph.children(node2).length > 0) {
30361 copy(node2, graph, newGraph, rootId);
30362 } else {
30363 const data = graph.node(node2);
30364 log$1.info("cp ", node2, " to ", rootId, " with parent ", clusterId);
30365 newGraph.setNode(node2, data);
30366 if (rootId !== graph.parent(node2)) {
30367 log$1.warn("Setting parent", node2, graph.parent(node2));
30368 newGraph.setParent(node2, graph.parent(node2));
30369 }
30370 if (clusterId !== rootId && node2 !== clusterId) {
30371 log$1.debug("Setting parent", node2, clusterId);
30372 newGraph.setParent(node2, clusterId);
30373 } else {
30374 log$1.info("In copy ", clusterId, "root", rootId, "data", graph.node(clusterId), rootId);
30375 log$1.debug(
30376 "Not Setting parent for node=",
30377 node2,
30378 "cluster!==rootId",
30379 clusterId !== rootId,
30380 "node!==clusterId",
30381 node2 !== clusterId
30382 );
30383 }
30384 const edges2 = graph.edges(node2);
30385 log$1.debug("Copying Edges", edges2);
30386 edges2.forEach((edge) => {
30387 log$1.info("Edge", edge);
30388 const data2 = graph.edge(edge.v, edge.w, edge.name);
30389 log$1.info("Edge data", data2, rootId);
30390 try {
30391 if (edgeInCluster(edge, rootId)) {
30392 log$1.info("Copying as ", edge.v, edge.w, data2, edge.name);
30393 newGraph.setEdge(edge.v, edge.w, data2, edge.name);
30394 log$1.info("newGraph edges ", newGraph.edges(), newGraph.edge(newGraph.edges()[0]));
30395 } else {
30396 log$1.info(
30397 "Skipping copy of edge ",
30398 edge.v,
30399 "-->",
30400 edge.w,
30401 " rootId: ",
30402 rootId,
30403 " clusterId:",
30404 clusterId
30405 );
30406 }
30407 } catch (e) {
30408 log$1.error(e);
30409 }
30410 });
30411 }
30412 log$1.debug("Removing node", node2);
30413 graph.removeNode(node2);
30414 });
30415 };
30416 const extractDescendants = (id2, graph) => {
30417 const children2 = graph.children(id2);
30418 let res = [...children2];
30419 for (const child of children2) {
30420 parents[child] = id2;
30421 res = [...res, ...extractDescendants(child, graph)];
30422 }
30423 return res;
30424 };
30425 const findNonClusterChild = (id2, graph) => {
30426 log$1.trace("Searching", id2);
30427 const children2 = graph.children(id2);
30428 log$1.trace("Searching children of id ", id2, children2);
30429 if (children2.length < 1) {
30430 log$1.trace("This is a valid node", id2);
30431 return id2;
30432 }
30433 for (const child of children2) {
30434 const _id = findNonClusterChild(child, graph);
30435 if (_id) {
30436 log$1.trace("Found replacement for", id2, " => ", _id);
30437 return _id;
30438 }
30439 }
30440 };
30441 const getAnchorId = (id2) => {
30442 if (!clusterDb[id2]) {
30443 return id2;
30444 }
30445 if (!clusterDb[id2].externalConnections) {
30446 return id2;
30447 }
30448 if (clusterDb[id2]) {
30449 return clusterDb[id2].id;
30450 }
30451 return id2;
30452 };
30453 const adjustClustersAndEdges = (graph, depth) => {
30454 if (!graph || depth > 10) {
30455 log$1.debug("Opting out, no graph ");
30456 return;
30457 } else {
30458 log$1.debug("Opting in, graph ");
30459 }
30460 graph.nodes().forEach(function(id2) {
30461 const children2 = graph.children(id2);
30462 if (children2.length > 0) {
30463 log$1.warn(
30464 "Cluster identified",
30465 id2,
30466 " Replacement id in edges: ",
30467 findNonClusterChild(id2, graph)
30468 );
30469 descendants[id2] = extractDescendants(id2, graph);
30470 clusterDb[id2] = { id: findNonClusterChild(id2, graph), clusterData: graph.node(id2) };
30471 }
30472 });
30473 graph.nodes().forEach(function(id2) {
30474 const children2 = graph.children(id2);
30475 const edges2 = graph.edges();
30476 if (children2.length > 0) {
30477 log$1.debug("Cluster identified", id2, descendants);
30478 edges2.forEach((edge) => {
30479 if (edge.v !== id2 && edge.w !== id2) {
30480 const d1 = isDescendant(edge.v, id2);
30481 const d2 = isDescendant(edge.w, id2);
30482 if (d1 ^ d2) {
30483 log$1.warn("Edge: ", edge, " leaves cluster ", id2);
30484 log$1.warn("Decendants of XXX ", id2, ": ", descendants[id2]);
30485 clusterDb[id2].externalConnections = true;
30486 }
30487 }
30488 });
30489 } else {
30490 log$1.debug("Not a cluster ", id2, descendants);
30491 }
30492 });
30493 graph.edges().forEach(function(e) {
30494 const edge = graph.edge(e);
30495 log$1.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
30496 log$1.warn("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e)));
30497 let v = e.v;
30498 let w2 = e.w;
30499 log$1.warn(
30500 "Fix XXX",
30501 clusterDb,
30502 "ids:",
30503 e.v,
30504 e.w,
30505 "Translating: ",
30506 clusterDb[e.v],
30507 " --- ",
30508 clusterDb[e.w]
30509 );
30510 if (clusterDb[e.v] && clusterDb[e.w] && clusterDb[e.v] === clusterDb[e.w]) {
30511 log$1.warn("Fixing and trixing link to self - removing XXX", e.v, e.w, e.name);
30512 log$1.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name);
30513 v = getAnchorId(e.v);
30514 w2 = getAnchorId(e.w);
30515 graph.removeEdge(e.v, e.w, e.name);
30516 const specialId = e.w + "---" + e.v;
30517 graph.setNode(specialId, {
30518 domId: specialId,
30519 id: specialId,
30520 labelStyle: "",
30521 labelText: edge.label,
30522 padding: 0,
30523 shape: "labelRect",
30524 style: ""
30525 });
30526 const edge1 = JSON.parse(JSON.stringify(edge));
30527 const edge2 = JSON.parse(JSON.stringify(edge));
30528 edge1.label = "";
30529 edge1.arrowTypeEnd = "none";
30530 edge2.label = "";
30531 edge1.fromCluster = e.v;
30532 edge2.toCluster = e.v;
30533 graph.setEdge(v, specialId, edge1, e.name + "-cyclic-special");
30534 graph.setEdge(specialId, w2, edge2, e.name + "-cyclic-special");
30535 } else if (clusterDb[e.v] || clusterDb[e.w]) {
30536 log$1.warn("Fixing and trixing - removing XXX", e.v, e.w, e.name);
30537 v = getAnchorId(e.v);
30538 w2 = getAnchorId(e.w);
30539 graph.removeEdge(e.v, e.w, e.name);
30540 if (v !== e.v) {
30541 edge.fromCluster = e.v;
30542 }
30543 if (w2 !== e.w) {
30544 edge.toCluster = e.w;
30545 }
30546 log$1.warn("Fix Replacing with XXX", v, w2, e.name);
30547 graph.setEdge(v, w2, edge, e.name);
30548 }
30549 });
30550 log$1.warn("Adjusted Graph", write(graph));
30551 extractor(graph, 0);
30552 log$1.trace(clusterDb);
30553 };
30554 const extractor = (graph, depth) => {
30555 log$1.warn("extractor - ", depth, write(graph), graph.children("D"));
30556 if (depth > 10) {
30557 log$1.error("Bailing out");
30558 return;
30559 }
30560 let nodes2 = graph.nodes();
30561 let hasChildren = false;
30562 for (const node2 of nodes2) {
30563 const children2 = graph.children(node2);
30564 hasChildren = hasChildren || children2.length > 0;
30565 }
30566 if (!hasChildren) {
30567 log$1.debug("Done, no node has children", graph.nodes());
30568 return;
30569 }
30570 log$1.debug("Nodes = ", nodes2, depth);
30571 for (const node2 of nodes2) {
30572 log$1.debug(
30573 "Extracting node",
30574 node2,
30575 clusterDb,
30576 clusterDb[node2] && !clusterDb[node2].externalConnections,
30577 !graph.parent(node2),
30578 graph.node(node2),
30579 graph.children("D"),
30580 " Depth ",
30581 depth
30582 );
30583 if (!clusterDb[node2]) {
30584 log$1.debug("Not a cluster", node2, depth);
30585 } else if (!clusterDb[node2].externalConnections && // !graph.parent(node) &&
30586 graph.children(node2) && graph.children(node2).length > 0) {
30587 log$1.warn(
30588 "Cluster without external connections, without a parent and with children",
30589 node2,
30590 depth
30591 );
30592 const graphSettings = graph.graph();
30593 let dir = graphSettings.rankdir === "TB" ? "LR" : "TB";
30594 if (clusterDb[node2] && clusterDb[node2].clusterData && clusterDb[node2].clusterData.dir) {
30595 dir = clusterDb[node2].clusterData.dir;
30596 log$1.warn("Fixing dir", clusterDb[node2].clusterData.dir, dir);
30597 }
30598 const clusterGraph = new Graph({
30599 multigraph: true,
30600 compound: true
30601 }).setGraph({
30602 rankdir: dir,
30603 // Todo: set proper spacing
30604 nodesep: 50,
30605 ranksep: 50,
30606 marginx: 8,
30607 marginy: 8
30608 }).setDefaultEdgeLabel(function() {
30609 return {};
30610 });
30611 log$1.warn("Old graph before copy", write(graph));
30612 copy(node2, graph, clusterGraph, node2);
30613 graph.setNode(node2, {
30614 clusterNode: true,
30615 id: node2,
30616 clusterData: clusterDb[node2].clusterData,
30617 labelText: clusterDb[node2].labelText,
30618 graph: clusterGraph
30619 });
30620 log$1.warn("New graph after copy node: (", node2, ")", write(clusterGraph));
30621 log$1.debug("Old graph after copy", write(graph));
30622 } else {
30623 log$1.warn(
30624 "Cluster ** ",
30625 node2,
30626 " **not meeting the criteria !externalConnections:",
30627 !clusterDb[node2].externalConnections,
30628 " no parent: ",
30629 !graph.parent(node2),
30630 " children ",
30631 graph.children(node2) && graph.children(node2).length > 0,
30632 graph.children("D"),
30633 depth
30634 );
30635 log$1.debug(clusterDb);
30636 }
30637 }
30638 nodes2 = graph.nodes();
30639 log$1.warn("New list of nodes", nodes2);
30640 for (const node2 of nodes2) {
30641 const data = graph.node(node2);
30642 log$1.warn(" Now next level", node2, data);
30643 if (data.clusterNode) {
30644 extractor(data.graph, depth + 1);
30645 }
30646 }
30647 };
30648 const sorter = (graph, nodes2) => {
30649 if (nodes2.length === 0) {
30650 return [];
30651 }
30652 let result = Object.assign(nodes2);
30653 nodes2.forEach((node2) => {
30654 const children2 = graph.children(node2);
30655 const sorted = sorter(graph, children2);
30656 result = [...result, ...sorted];
30657 });
30658 return result;
30659 };
30660 const sortNodesByHierarchy = (graph) => sorter(graph, graph.children());
30661 function intersectNode(node2, point2) {
30662 return node2.intersect(point2);
30663 }
30664 function intersectEllipse(node2, rx, ry, point2) {
30665 var cx = node2.x;
30666 var cy = node2.y;
30667 var px = cx - point2.x;
30668 var py = cy - point2.y;
30669 var det = Math.sqrt(rx * rx * py * py + ry * ry * px * px);
30670 var dx = Math.abs(rx * ry * px / det);
30671 if (point2.x < cx) {
30672 dx = -dx;
30673 }
30674 var dy = Math.abs(rx * ry * py / det);
30675 if (point2.y < cy) {
30676 dy = -dy;
30677 }
30678 return { x: cx + dx, y: cy + dy };
30679 }
30680 function intersectCircle(node2, rx, point2) {
30681 return intersectEllipse(node2, rx, rx, point2);
30682 }
30683 function intersectLine(p1, p2, q1, q2) {
30684 var a1, a2, b1, b2, c1, c2;
30685 var r1, r2, r3, r4;
30686 var denom, offset, num;
30687 var x2, y2;
30688 a1 = p2.y - p1.y;
30689 b1 = p1.x - p2.x;
30690 c1 = p2.x * p1.y - p1.x * p2.y;
30691 r3 = a1 * q1.x + b1 * q1.y + c1;
30692 r4 = a1 * q2.x + b1 * q2.y + c1;
30693 if (r3 !== 0 && r4 !== 0 && sameSign(r3, r4)) {
30694 return;
30695 }
30696 a2 = q2.y - q1.y;
30697 b2 = q1.x - q2.x;
30698 c2 = q2.x * q1.y - q1.x * q2.y;
30699 r1 = a2 * p1.x + b2 * p1.y + c2;
30700 r2 = a2 * p2.x + b2 * p2.y + c2;
30701 if (r1 !== 0 && r2 !== 0 && sameSign(r1, r2)) {
30702 return;
30703 }
30704 denom = a1 * b2 - a2 * b1;
30705 if (denom === 0) {
30706 return;
30707 }
30708 offset = Math.abs(denom / 2);
30709 num = b1 * c2 - b2 * c1;
30710 x2 = num < 0 ? (num - offset) / denom : (num + offset) / denom;
30711 num = a2 * c1 - a1 * c2;
30712 y2 = num < 0 ? (num - offset) / denom : (num + offset) / denom;
30713 return { x: x2, y: y2 };
30714 }
30715 function sameSign(r1, r2) {
30716 return r1 * r2 > 0;
30717 }
30718 function intersectPolygon(node2, polyPoints, point2) {
30719 var x1 = node2.x;
30720 var y1 = node2.y;
30721 var intersections = [];
30722 var minX = Number.POSITIVE_INFINITY;
30723 var minY = Number.POSITIVE_INFINITY;
30724 if (typeof polyPoints.forEach === "function") {
30725 polyPoints.forEach(function(entry) {
30726 minX = Math.min(minX, entry.x);
30727 minY = Math.min(minY, entry.y);
30728 });
30729 } else {
30730 minX = Math.min(minX, polyPoints.x);
30731 minY = Math.min(minY, polyPoints.y);
30732 }
30733 var left2 = x1 - node2.width / 2 - minX;
30734 var top2 = y1 - node2.height / 2 - minY;
30735 for (var i2 = 0; i2 < polyPoints.length; i2++) {
30736 var p1 = polyPoints[i2];
30737 var p2 = polyPoints[i2 < polyPoints.length - 1 ? i2 + 1 : 0];
30738 var intersect2 = intersectLine(
30739 node2,
30740 point2,
30741 { x: left2 + p1.x, y: top2 + p1.y },
30742 { x: left2 + p2.x, y: top2 + p2.y }
30743 );
30744 if (intersect2) {
30745 intersections.push(intersect2);
30746 }
30747 }
30748 if (!intersections.length) {
30749 return node2;
30750 }
30751 if (intersections.length > 1) {
30752 intersections.sort(function(p, q) {
30753 var pdx = p.x - point2.x;
30754 var pdy = p.y - point2.y;
30755 var distp = Math.sqrt(pdx * pdx + pdy * pdy);
30756 var qdx = q.x - point2.x;
30757 var qdy = q.y - point2.y;
30758 var distq = Math.sqrt(qdx * qdx + qdy * qdy);
30759 return distp < distq ? -1 : distp === distq ? 0 : 1;
30760 });
30761 }
30762 return intersections[0];
30763 }
30764 const intersectRect = (node2, point2) => {
30765 var x2 = node2.x;
30766 var y2 = node2.y;
30767 var dx = point2.x - x2;
30768 var dy = point2.y - y2;
30769 var w2 = node2.width / 2;
30770 var h = node2.height / 2;
30771 var sx, sy;
30772 if (Math.abs(dy) * w2 > Math.abs(dx) * h) {
30773 if (dy < 0) {
30774 h = -h;
30775 }
30776 sx = dy === 0 ? 0 : h * dx / dy;
30777 sy = h;
30778 } else {
30779 if (dx < 0) {
30780 w2 = -w2;
30781 }
30782 sx = w2;
30783 sy = dx === 0 ? 0 : w2 * dy / dx;
30784 }
30785 return { x: x2 + sx, y: y2 + sy };
30786 };
30787 const intersectRect$1 = intersectRect;
30788 const intersect = {
30789 node: intersectNode,
30790 circle: intersectCircle,
30791 ellipse: intersectEllipse,
30792 polygon: intersectPolygon,
30793 rect: intersectRect$1
30794 };
30795 const note = async (parent, node2) => {
30796 const useHtmlLabels = node2.useHtmlLabels || getConfig$1().flowchart.htmlLabels;
30797 if (!useHtmlLabels) {
30798 node2.centerLabel = true;
30799 }
30800 const { shapeSvg, bbox, halfPadding } = await labelHelper(
30801 parent,
30802 node2,
30803 "node " + node2.classes,
30804 true
30805 );
30806 log$1.info("Classes = ", node2.classes);
30807 const rect2 = shapeSvg.insert("rect", ":first-child");
30808 rect2.attr("rx", node2.rx).attr("ry", node2.ry).attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node2.padding).attr("height", bbox.height + node2.padding);
30809 updateNodeBounds(node2, rect2);
30810 node2.intersect = function(point2) {
30811 return intersect.rect(node2, point2);
30812 };
30813 return shapeSvg;
30814 };
30815 const note$1 = note;
30816 let edgeCount$1 = 0;
30817 const drawEdge$2 = function(elem, path2, relation, conf2, diagObj) {
30818 const getRelationType = function(type2) {
30819 switch (type2) {
30820 case diagObj.db.relationType.AGGREGATION:
30821 return "aggregation";
30822 case diagObj.db.relationType.EXTENSION:
30823 return "extension";
30824 case diagObj.db.relationType.COMPOSITION:
30825 return "composition";
30826 case diagObj.db.relationType.DEPENDENCY:
30827 return "dependency";
30828 case diagObj.db.relationType.LOLLIPOP:
30829 return "lollipop";
30830 }
30831 };
30832 path2.points = path2.points.filter((p) => !Number.isNaN(p.y));
30833 const lineData = path2.points;
30834 const lineFunction = line$1().x(function(d) {
30835 return d.x;
30836 }).y(function(d) {
30837 return d.y;
30838 }).curve(curveBasis);
30839 const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount$1).attr("class", "relation");
30840 let url = "";
30841 if (conf2.arrowMarkerAbsolute) {
30842 url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
30843 url = url.replace(/\(/g, "\\(");
30844 url = url.replace(/\)/g, "\\)");
30845 }
30846 if (relation.relation.lineType == 1) {
30847 svgPath.attr("class", "relation dashed-line");
30848 }
30849 if (relation.relation.lineType == 10) {
30850 svgPath.attr("class", "relation dotted-line");
30851 }
30852 if (relation.relation.type1 !== "none") {
30853 svgPath.attr(
30854 "marker-start",
30855 "url(" + url + "#" + getRelationType(relation.relation.type1) + "Start)"
30856 );
30857 }
30858 if (relation.relation.type2 !== "none") {
30859 svgPath.attr(
30860 "marker-end",
30861 "url(" + url + "#" + getRelationType(relation.relation.type2) + "End)"
30862 );
30863 }
30864 let x2, y2;
30865 const l = path2.points.length;
30866 let labelPosition = utils.calcLabelPosition(path2.points);
30867 x2 = labelPosition.x;
30868 y2 = labelPosition.y;
30869 let p1_card_x, p1_card_y;
30870 let p2_card_x, p2_card_y;
30871 if (l % 2 !== 0 && l > 1) {
30872 let cardinality_1_point = utils.calcCardinalityPosition(
30873 relation.relation.type1 !== "none",
30874 path2.points,
30875 path2.points[0]
30876 );
30877 let cardinality_2_point = utils.calcCardinalityPosition(
30878 relation.relation.type2 !== "none",
30879 path2.points,
30880 path2.points[l - 1]
30881 );
30882 log$1.debug("cardinality_1_point " + JSON.stringify(cardinality_1_point));
30883 log$1.debug("cardinality_2_point " + JSON.stringify(cardinality_2_point));
30884 p1_card_x = cardinality_1_point.x;
30885 p1_card_y = cardinality_1_point.y;
30886 p2_card_x = cardinality_2_point.x;
30887 p2_card_y = cardinality_2_point.y;
30888 }
30889 if (relation.title !== void 0) {
30890 const g = elem.append("g").attr("class", "classLabel");
30891 const label = g.append("text").attr("class", "label").attr("x", x2).attr("y", y2).attr("fill", "red").attr("text-anchor", "middle").text(relation.title);
30892 window.label = label;
30893 const bounds2 = label.node().getBBox();
30894 g.insert("rect", ":first-child").attr("class", "box").attr("x", bounds2.x - conf2.padding / 2).attr("y", bounds2.y - conf2.padding / 2).attr("width", bounds2.width + conf2.padding).attr("height", bounds2.height + conf2.padding);
30895 }
30896 log$1.info("Rendering relation " + JSON.stringify(relation));
30897 if (relation.relationTitle1 !== void 0 && relation.relationTitle1 !== "none") {
30898 const g = elem.append("g").attr("class", "cardinality");
30899 g.append("text").attr("class", "type1").attr("x", p1_card_x).attr("y", p1_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle1);
30900 }
30901 if (relation.relationTitle2 !== void 0 && relation.relationTitle2 !== "none") {
30902 const g = elem.append("g").attr("class", "cardinality");
30903 g.append("text").attr("class", "type2").attr("x", p2_card_x).attr("y", p2_card_y).attr("fill", "black").attr("font-size", "6").text(relation.relationTitle2);
30904 }
30905 edgeCount$1++;
30906 };
30907 const drawClass = function(elem, classDef, conf2, diagObj) {
30908 log$1.debug("Rendering class ", classDef, conf2);
30909 const id2 = classDef.id;
30910 const classInfo = {
30911 id: id2,
30912 label: classDef.id,
30913 width: 0,
30914 height: 0
30915 };
30916 const g = elem.append("g").attr("id", diagObj.db.lookUpDomId(id2)).attr("class", "classGroup");
30917 let title2;
30918 if (classDef.link) {
30919 title2 = g.append("svg:a").attr("xlink:href", classDef.link).attr("target", classDef.linkTarget).append("text").attr("y", conf2.textHeight + conf2.padding).attr("x", 0);
30920 } else {
30921 title2 = g.append("text").attr("y", conf2.textHeight + conf2.padding).attr("x", 0);
30922 }
30923 let isFirst = true;
30924 classDef.annotations.forEach(function(member) {
30925 const titleText2 = title2.append("tspan").text("«" + member + "»");
30926 if (!isFirst) {
30927 titleText2.attr("dy", conf2.textHeight);
30928 }
30929 isFirst = false;
30930 });
30931 let classTitleString = getClassTitleString(classDef);
30932 const classTitle = title2.append("tspan").text(classTitleString).attr("class", "title");
30933 if (!isFirst) {
30934 classTitle.attr("dy", conf2.textHeight);
30935 }
30936 const titleHeight = title2.node().getBBox().height;
30937 const membersLine = g.append("line").attr("x1", 0).attr("y1", conf2.padding + titleHeight + conf2.dividerMargin / 2).attr("y2", conf2.padding + titleHeight + conf2.dividerMargin / 2);
30938 const members = g.append("text").attr("x", conf2.padding).attr("y", titleHeight + conf2.dividerMargin + conf2.textHeight).attr("fill", "white").attr("class", "classText");
30939 isFirst = true;
30940 classDef.members.forEach(function(member) {
30941 addTspan(members, member, isFirst, conf2);
30942 isFirst = false;
30943 });
30944 const membersBox = members.node().getBBox();
30945 const methodsLine = g.append("line").attr("x1", 0).attr("y1", conf2.padding + titleHeight + conf2.dividerMargin + membersBox.height).attr("y2", conf2.padding + titleHeight + conf2.dividerMargin + membersBox.height);
30946 const methods = g.append("text").attr("x", conf2.padding).attr("y", titleHeight + 2 * conf2.dividerMargin + membersBox.height + conf2.textHeight).attr("fill", "white").attr("class", "classText");
30947 isFirst = true;
30948 classDef.methods.forEach(function(method) {
30949 addTspan(methods, method, isFirst, conf2);
30950 isFirst = false;
30951 });
30952 const classBox = g.node().getBBox();
30953 var cssClassStr = " ";
30954 if (classDef.cssClasses.length > 0) {
30955 cssClassStr = cssClassStr + classDef.cssClasses.join(" ");
30956 }
30957 const rect2 = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", classBox.width + 2 * conf2.padding).attr("height", classBox.height + conf2.padding + 0.5 * conf2.dividerMargin).attr("class", cssClassStr);
30958 const rectWidth = rect2.node().getBBox().width;
30959 title2.node().childNodes.forEach(function(x2) {
30960 x2.setAttribute("x", (rectWidth - x2.getBBox().width) / 2);
30961 });
30962 if (classDef.tooltip) {
30963 title2.insert("title").text(classDef.tooltip);
30964 }
30965 membersLine.attr("x2", rectWidth);
30966 methodsLine.attr("x2", rectWidth);
30967 classInfo.width = rectWidth;
30968 classInfo.height = classBox.height + conf2.padding + 0.5 * conf2.dividerMargin;
30969 return classInfo;
30970 };
30971 const getClassTitleString = function(classDef) {
30972 let classTitleString = classDef.id;
30973 if (classDef.type) {
30974 classTitleString += "<" + classDef.type + ">";
30975 }
30976 return classTitleString;
30977 };
30978 const drawNote$2 = function(elem, note2, conf2, diagObj) {
30979 log$1.debug("Rendering note ", note2, conf2);
30980 const id2 = note2.id;
30981 const noteInfo = {
30982 id: id2,
30983 text: note2.text,
30984 width: 0,
30985 height: 0
30986 };
30987 const g = elem.append("g").attr("id", id2).attr("class", "classGroup");
30988 let text2 = g.append("text").attr("y", conf2.textHeight + conf2.padding).attr("x", 0);
30989 const lines = JSON.parse(`"${note2.text}"`).split("\n");
30990 lines.forEach(function(line2) {
30991 log$1.debug(`Adding line: ${line2}`);
30992 text2.append("tspan").text(line2).attr("class", "title").attr("dy", conf2.textHeight);
30993 });
30994 const noteBox = g.node().getBBox();
30995 const rect2 = g.insert("rect", ":first-child").attr("x", 0).attr("y", 0).attr("width", noteBox.width + 2 * conf2.padding).attr(
30996 "height",
30997 noteBox.height + lines.length * conf2.textHeight + conf2.padding + 0.5 * conf2.dividerMargin
30998 );
30999 const rectWidth = rect2.node().getBBox().width;
31000 text2.node().childNodes.forEach(function(x2) {
31001 x2.setAttribute("x", (rectWidth - x2.getBBox().width) / 2);
31002 });
31003 noteInfo.width = rectWidth;
31004 noteInfo.height = noteBox.height + lines.length * conf2.textHeight + conf2.padding + 0.5 * conf2.dividerMargin;
31005 return noteInfo;
31006 };
31007 const parseMember = function(text2) {
31008 let displayText = "";
31009 let cssStyle = "";
31010 let returnType = "";
31011 let visibility = "";
31012 let firstChar = text2.substring(0, 1);
31013 let lastChar = text2.substring(text2.length - 1, text2.length);
31014 if (firstChar.match(/[#+~-]/)) {
31015 visibility = firstChar;
31016 }
31017 let noClassifierRe = /[\s\w)~]/;
31018 if (!lastChar.match(noClassifierRe)) {
31019 cssStyle = parseClassifier(lastChar);
31020 }
31021 const startIndex = visibility === "" ? 0 : 1;
31022 let endIndex = cssStyle === "" ? text2.length : text2.length - 1;
31023 text2 = text2.substring(startIndex, endIndex);
31024 const methodStart = text2.indexOf("(");
31025 const methodEnd = text2.indexOf(")");
31026 const isMethod = methodStart > 1 && methodEnd > methodStart && methodEnd <= text2.length;
31027 if (isMethod) {
31028 let methodName = text2.substring(0, methodStart).trim();
31029 const parameters = text2.substring(methodStart + 1, methodEnd);
31030 displayText = visibility + methodName + "(" + parseGenericTypes(parameters.trim()) + ")";
31031 if (methodEnd < text2.length) {
31032 let potentialClassifier = text2.substring(methodEnd + 1, methodEnd + 2);
31033 if (cssStyle === "" && !potentialClassifier.match(noClassifierRe)) {
31034 cssStyle = parseClassifier(potentialClassifier);
31035 returnType = text2.substring(methodEnd + 2).trim();
31036 } else {
31037 returnType = text2.substring(methodEnd + 1).trim();
31038 }
31039 if (returnType !== "") {
31040 if (returnType.charAt(0) === ":") {
31041 returnType = returnType.substring(1).trim();
31042 }
31043 returnType = " : " + parseGenericTypes(returnType);
31044 displayText += returnType;
31045 }
31046 }
31047 } else {
31048 displayText = visibility + parseGenericTypes(text2);
31049 }
31050 return {
31051 displayText,
31052 cssStyle
31053 };
31054 };
31055 const addTspan = function(textEl, txt, isFirst, conf2) {
31056 let member = parseMember(txt);
31057 const tSpan = textEl.append("tspan").attr("x", conf2.padding).text(member.displayText);
31058 if (member.cssStyle !== "") {
31059 tSpan.attr("style", member.cssStyle);
31060 }
31061 if (!isFirst) {
31062 tSpan.attr("dy", conf2.textHeight);
31063 }
31064 };
31065 const parseClassifier = function(classifier) {
31066 switch (classifier) {
31067 case "*":
31068 return "font-style:italic;";
31069 case "$":
31070 return "text-decoration:underline;";
31071 default:
31072 return "";
31073 }
31074 };
31075 const svgDraw$4 = {
31076 getClassTitleString,
31077 drawClass,
31078 drawEdge: drawEdge$2,
31079 drawNote: drawNote$2,
31080 parseMember
31081 };
31082 const question = async (parent, node2) => {
31083 const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
31084 const w2 = bbox.width + node2.padding;
31085 const h = bbox.height + node2.padding;
31086 const s = w2 + h;
31087 const points = [
31088 { x: s / 2, y: 0 },
31089 { x: s, y: -s / 2 },
31090 { x: s / 2, y: -s },
31091 { x: 0, y: -s / 2 }
31092 ];
31093 log$1.info("Question main (Circle)");
31094 const questionElem = insertPolygonShape$1(shapeSvg, s, s, points);
31095 questionElem.attr("style", node2.style);
31096 updateNodeBounds(node2, questionElem);
31097 node2.intersect = function(point2) {
31098 log$1.warn("Intersect called");
31099 return intersect.polygon(node2, points, point2);
31100 };
31101 return shapeSvg;
31102 };
31103 const choice = (parent, node2) => {
31104 const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
31105 const s = 28;
31106 const points = [
31107 { x: 0, y: s / 2 },
31108 { x: s / 2, y: 0 },
31109 { x: 0, y: -s / 2 },
31110 { x: -s / 2, y: 0 }
31111 ];
31112 const choice2 = shapeSvg.insert("polygon", ":first-child").attr(
31113 "points",
31114 points.map(function(d) {
31115 return d.x + "," + d.y;
31116 }).join(" ")
31117 );
31118 choice2.attr("class", "state-start").attr("r", 7).attr("width", 28).attr("height", 28);
31119 node2.width = 28;
31120 node2.height = 28;
31121 node2.intersect = function(point2) {
31122 return intersect.circle(node2, 14, point2);
31123 };
31124 return shapeSvg;
31125 };
31126 const hexagon = async (parent, node2) => {
31127 const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
31128 const f2 = 4;
31129 const h = bbox.height + node2.padding;
31130 const m = h / f2;
31131 const w2 = bbox.width + 2 * m + node2.padding;
31132 const points = [
31133 { x: m, y: 0 },
31134 { x: w2 - m, y: 0 },
31135 { x: w2, y: -h / 2 },
31136 { x: w2 - m, y: -h },
31137 { x: m, y: -h },
31138 { x: 0, y: -h / 2 }
31139 ];
31140 const hex2 = insertPolygonShape$1(shapeSvg, w2, h, points);
31141 hex2.attr("style", node2.style);
31142 updateNodeBounds(node2, hex2);
31143 node2.intersect = function(point2) {
31144 return intersect.polygon(node2, points, point2);
31145 };
31146 return shapeSvg;
31147 };
31148 const rect_left_inv_arrow = async (parent, node2) => {
31149 const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
31150 const w2 = bbox.width + node2.padding;
31151 const h = bbox.height + node2.padding;
31152 const points = [
31153 { x: -h / 2, y: 0 },
31154 { x: w2, y: 0 },
31155 { x: w2, y: -h },
31156 { x: -h / 2, y: -h },
31157 { x: 0, y: -h / 2 }
31158 ];
31159 const el = insertPolygonShape$1(shapeSvg, w2, h, points);
31160 el.attr("style", node2.style);
31161 node2.width = w2 + h;
31162 node2.height = h;
31163 node2.intersect = function(point2) {
31164 return intersect.polygon(node2, points, point2);
31165 };
31166 return shapeSvg;
31167 };
31168 const lean_right = async (parent, node2) => {
31169 const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
31170 const w2 = bbox.width + node2.padding;
31171 const h = bbox.height + node2.padding;
31172 const points = [
31173 { x: -2 * h / 6, y: 0 },
31174 { x: w2 - h / 6, y: 0 },
31175 { x: w2 + 2 * h / 6, y: -h },
31176 { x: h / 6, y: -h }
31177 ];
31178 const el = insertPolygonShape$1(shapeSvg, w2, h, points);
31179 el.attr("style", node2.style);
31180 updateNodeBounds(node2, el);
31181 node2.intersect = function(point2) {
31182 return intersect.polygon(node2, points, point2);
31183 };
31184 return shapeSvg;
31185 };
31186 const lean_left = async (parent, node2) => {
31187 const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
31188 const w2 = bbox.width + node2.padding;
31189 const h = bbox.height + node2.padding;
31190 const points = [
31191 { x: 2 * h / 6, y: 0 },
31192 { x: w2 + h / 6, y: 0 },
31193 { x: w2 - 2 * h / 6, y: -h },
31194 { x: -h / 6, y: -h }
31195 ];
31196 const el = insertPolygonShape$1(shapeSvg, w2, h, points);
31197 el.attr("style", node2.style);
31198 updateNodeBounds(node2, el);
31199 node2.intersect = function(point2) {
31200 return intersect.polygon(node2, points, point2);
31201 };
31202 return shapeSvg;
31203 };
31204 const trapezoid = async (parent, node2) => {
31205 const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
31206 const w2 = bbox.width + node2.padding;
31207 const h = bbox.height + node2.padding;
31208 const points = [
31209 { x: -2 * h / 6, y: 0 },
31210 { x: w2 + 2 * h / 6, y: 0 },
31211 { x: w2 - h / 6, y: -h },
31212 { x: h / 6, y: -h }
31213 ];
31214 const el = insertPolygonShape$1(shapeSvg, w2, h, points);
31215 el.attr("style", node2.style);
31216 updateNodeBounds(node2, el);
31217 node2.intersect = function(point2) {
31218 return intersect.polygon(node2, points, point2);
31219 };
31220 return shapeSvg;
31221 };
31222 const inv_trapezoid = async (parent, node2) => {
31223 const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
31224 const w2 = bbox.width + node2.padding;
31225 const h = bbox.height + node2.padding;
31226 const points = [
31227 { x: h / 6, y: 0 },
31228 { x: w2 - h / 6, y: 0 },
31229 { x: w2 + 2 * h / 6, y: -h },
31230 { x: -2 * h / 6, y: -h }
31231 ];
31232 const el = insertPolygonShape$1(shapeSvg, w2, h, points);
31233 el.attr("style", node2.style);
31234 updateNodeBounds(node2, el);
31235 node2.intersect = function(point2) {
31236 return intersect.polygon(node2, points, point2);
31237 };
31238 return shapeSvg;
31239 };
31240 const rect_right_inv_arrow = async (parent, node2) => {
31241 const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
31242 const w2 = bbox.width + node2.padding;
31243 const h = bbox.height + node2.padding;
31244 const points = [
31245 { x: 0, y: 0 },
31246 { x: w2 + h / 2, y: 0 },
31247 { x: w2, y: -h / 2 },
31248 { x: w2 + h / 2, y: -h },
31249 { x: 0, y: -h }
31250 ];
31251 const el = insertPolygonShape$1(shapeSvg, w2, h, points);
31252 el.attr("style", node2.style);
31253 updateNodeBounds(node2, el);
31254 node2.intersect = function(point2) {
31255 return intersect.polygon(node2, points, point2);
31256 };
31257 return shapeSvg;
31258 };
31259 const cylinder = async (parent, node2) => {
31260 const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
31261 const w2 = bbox.width + node2.padding;
31262 const rx = w2 / 2;
31263 const ry = rx / (2.5 + w2 / 50);
31264 const h = bbox.height + ry + node2.padding;
31265 const shape = "M 0," + ry + " a " + rx + "," + ry + " 0,0,0 " + w2 + " 0 a " + rx + "," + ry + " 0,0,0 " + -w2 + " 0 l 0," + h + " a " + rx + "," + ry + " 0,0,0 " + w2 + " 0 l 0," + -h;
31266 const el = shapeSvg.attr("label-offset-y", ry).insert("path", ":first-child").attr("style", node2.style).attr("d", shape).attr("transform", "translate(" + -w2 / 2 + "," + -(h / 2 + ry) + ")");
31267 updateNodeBounds(node2, el);
31268 node2.intersect = function(point2) {
31269 const pos = intersect.rect(node2, point2);
31270 const x2 = pos.x - node2.x;
31271 if (rx != 0 && (Math.abs(x2) < node2.width / 2 || Math.abs(x2) == node2.width / 2 && Math.abs(pos.y - node2.y) > node2.height / 2 - ry)) {
31272 let y2 = ry * ry * (1 - x2 * x2 / (rx * rx));
31273 if (y2 != 0) {
31274 y2 = Math.sqrt(y2);
31275 }
31276 y2 = ry - y2;
31277 if (point2.y - node2.y > 0) {
31278 y2 = -y2;
31279 }
31280 pos.y += y2;
31281 }
31282 return pos;
31283 };
31284 return shapeSvg;
31285 };
31286 const rect$1 = async (parent, node2) => {
31287 const { shapeSvg, bbox, halfPadding } = await labelHelper(
31288 parent,
31289 node2,
31290 "node " + node2.classes,
31291 true
31292 );
31293 const rect2 = shapeSvg.insert("rect", ":first-child");
31294 const totalWidth = bbox.width + node2.padding;
31295 const totalHeight = bbox.height + node2.padding;
31296 rect2.attr("class", "basic label-container").attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", totalWidth).attr("height", totalHeight);
31297 if (node2.props) {
31298 const propKeys = new Set(Object.keys(node2.props));
31299 if (node2.props.borders) {
31300 applyNodePropertyBorders(rect2, node2.props.borders, totalWidth, totalHeight);
31301 propKeys.delete("borders");
31302 }
31303 propKeys.forEach((propKey) => {
31304 log$1.warn(`Unknown node property ${propKey}`);
31305 });
31306 }
31307 updateNodeBounds(node2, rect2);
31308 node2.intersect = function(point2) {
31309 return intersect.rect(node2, point2);
31310 };
31311 return shapeSvg;
31312 };
31313 const labelRect = async (parent, node2) => {
31314 const { shapeSvg } = await labelHelper(parent, node2, "label", true);
31315 log$1.trace("Classes = ", node2.classes);
31316 const rect2 = shapeSvg.insert("rect", ":first-child");
31317 const totalWidth = 0;
31318 const totalHeight = 0;
31319 rect2.attr("width", totalWidth).attr("height", totalHeight);
31320 shapeSvg.attr("class", "label edgeLabel");
31321 if (node2.props) {
31322 const propKeys = new Set(Object.keys(node2.props));
31323 if (node2.props.borders) {
31324 applyNodePropertyBorders(rect2, node2.props.borders, totalWidth, totalHeight);
31325 propKeys.delete("borders");
31326 }
31327 propKeys.forEach((propKey) => {
31328 log$1.warn(`Unknown node property ${propKey}`);
31329 });
31330 }
31331 updateNodeBounds(node2, rect2);
31332 node2.intersect = function(point2) {
31333 return intersect.rect(node2, point2);
31334 };
31335 return shapeSvg;
31336 };
31337 function applyNodePropertyBorders(rect2, borders, totalWidth, totalHeight) {
31338 const strokeDashArray = [];
31339 const addBorder = (length2) => {
31340 strokeDashArray.push(length2, 0);
31341 };
31342 const skipBorder = (length2) => {
31343 strokeDashArray.push(0, length2);
31344 };
31345 if (borders.includes("t")) {
31346 log$1.debug("add top border");
31347 addBorder(totalWidth);
31348 } else {
31349 skipBorder(totalWidth);
31350 }
31351 if (borders.includes("r")) {
31352 log$1.debug("add right border");
31353 addBorder(totalHeight);
31354 } else {
31355 skipBorder(totalHeight);
31356 }
31357 if (borders.includes("b")) {
31358 log$1.debug("add bottom border");
31359 addBorder(totalWidth);
31360 } else {
31361 skipBorder(totalWidth);
31362 }
31363 if (borders.includes("l")) {
31364 log$1.debug("add left border");
31365 addBorder(totalHeight);
31366 } else {
31367 skipBorder(totalHeight);
31368 }
31369 rect2.attr("stroke-dasharray", strokeDashArray.join(" "));
31370 }
31371 const rectWithTitle = (parent, node2) => {
31372 let classes2;
31373 if (!node2.classes) {
31374 classes2 = "node default";
31375 } else {
31376 classes2 = "node " + node2.classes;
31377 }
31378 const shapeSvg = parent.insert("g").attr("class", classes2).attr("id", node2.domId || node2.id);
31379 const rect2 = shapeSvg.insert("rect", ":first-child");
31380 const innerLine = shapeSvg.insert("line");
31381 const label = shapeSvg.insert("g").attr("class", "label");
31382 const text2 = node2.labelText.flat ? node2.labelText.flat() : node2.labelText;
31383 let title2 = "";
31384 if (typeof text2 === "object") {
31385 title2 = text2[0];
31386 } else {
31387 title2 = text2;
31388 }
31389 log$1.info("Label text abc79", title2, text2, typeof text2 === "object");
31390 const text3 = label.node().appendChild(createLabel$1(title2, node2.labelStyle, true, true));
31391 let bbox = { width: 0, height: 0 };
31392 if (evaluate(getConfig$1().flowchart.htmlLabels)) {
31393 const div = text3.children[0];
31394 const dv = select(text3);
31395 bbox = div.getBoundingClientRect();
31396 dv.attr("width", bbox.width);
31397 dv.attr("height", bbox.height);
31398 }
31399 log$1.info("Text 2", text2);
31400 const textRows = text2.slice(1, text2.length);
31401 let titleBox = text3.getBBox();
31402 const descr = label.node().appendChild(
31403 createLabel$1(textRows.join ? textRows.join("<br/>") : textRows, node2.labelStyle, true, true)
31404 );
31405 if (evaluate(getConfig$1().flowchart.htmlLabels)) {
31406 const div = descr.children[0];
31407 const dv = select(descr);
31408 bbox = div.getBoundingClientRect();
31409 dv.attr("width", bbox.width);
31410 dv.attr("height", bbox.height);
31411 }
31412 const halfPadding = node2.padding / 2;
31413 select(descr).attr(
31414 "transform",
31415 "translate( " + // (titleBox.width - bbox.width) / 2 +
31416 (bbox.width > titleBox.width ? 0 : (titleBox.width - bbox.width) / 2) + ", " + (titleBox.height + halfPadding + 5) + ")"
31417 );
31418 select(text3).attr(
31419 "transform",
31420 "translate( " + // (titleBox.width - bbox.width) / 2 +
31421 (bbox.width < titleBox.width ? 0 : -(titleBox.width - bbox.width) / 2) + ", 0)"
31422 );
31423 bbox = label.node().getBBox();
31424 label.attr(
31425 "transform",
31426 "translate(" + -bbox.width / 2 + ", " + (-bbox.height / 2 - halfPadding + 3) + ")"
31427 );
31428 rect2.attr("class", "outer title-state").attr("x", -bbox.width / 2 - halfPadding).attr("y", -bbox.height / 2 - halfPadding).attr("width", bbox.width + node2.padding).attr("height", bbox.height + node2.padding);
31429 innerLine.attr("class", "divider").attr("x1", -bbox.width / 2 - halfPadding).attr("x2", bbox.width / 2 + halfPadding).attr("y1", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding).attr("y2", -bbox.height / 2 - halfPadding + titleBox.height + halfPadding);
31430 updateNodeBounds(node2, rect2);
31431 node2.intersect = function(point2) {
31432 return intersect.rect(node2, point2);
31433 };
31434 return shapeSvg;
31435 };
31436 const stadium = async (parent, node2) => {
31437 const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
31438 const h = bbox.height + node2.padding;
31439 const w2 = bbox.width + h / 4 + node2.padding;
31440 const rect2 = shapeSvg.insert("rect", ":first-child").attr("style", node2.style).attr("rx", h / 2).attr("ry", h / 2).attr("x", -w2 / 2).attr("y", -h / 2).attr("width", w2).attr("height", h);
31441 updateNodeBounds(node2, rect2);
31442 node2.intersect = function(point2) {
31443 return intersect.rect(node2, point2);
31444 };
31445 return shapeSvg;
31446 };
31447 const circle = async (parent, node2) => {
31448 const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node2, void 0, true);
31449 const circle2 = shapeSvg.insert("circle", ":first-child");
31450 circle2.attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node2.padding).attr("height", bbox.height + node2.padding);
31451 log$1.info("Circle main");
31452 updateNodeBounds(node2, circle2);
31453 node2.intersect = function(point2) {
31454 log$1.info("Circle intersect", node2, bbox.width / 2 + halfPadding, point2);
31455 return intersect.circle(node2, bbox.width / 2 + halfPadding, point2);
31456 };
31457 return shapeSvg;
31458 };
31459 const doublecircle = async (parent, node2) => {
31460 const { shapeSvg, bbox, halfPadding } = await labelHelper(parent, node2, void 0, true);
31461 const gap = 5;
31462 const circleGroup = shapeSvg.insert("g", ":first-child");
31463 const outerCircle = circleGroup.insert("circle");
31464 const innerCircle = circleGroup.insert("circle");
31465 outerCircle.attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("r", bbox.width / 2 + halfPadding + gap).attr("width", bbox.width + node2.padding + gap * 2).attr("height", bbox.height + node2.padding + gap * 2);
31466 innerCircle.attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("r", bbox.width / 2 + halfPadding).attr("width", bbox.width + node2.padding).attr("height", bbox.height + node2.padding);
31467 log$1.info("DoubleCircle main");
31468 updateNodeBounds(node2, outerCircle);
31469 node2.intersect = function(point2) {
31470 log$1.info("DoubleCircle intersect", node2, bbox.width / 2 + halfPadding + gap, point2);
31471 return intersect.circle(node2, bbox.width / 2 + halfPadding + gap, point2);
31472 };
31473 return shapeSvg;
31474 };
31475 const subroutine = async (parent, node2) => {
31476 const { shapeSvg, bbox } = await labelHelper(parent, node2, void 0, true);
31477 const w2 = bbox.width + node2.padding;
31478 const h = bbox.height + node2.padding;
31479 const points = [
31480 { x: 0, y: 0 },
31481 { x: w2, y: 0 },
31482 { x: w2, y: -h },
31483 { x: 0, y: -h },
31484 { x: 0, y: 0 },
31485 { x: -8, y: 0 },
31486 { x: w2 + 8, y: 0 },
31487 { x: w2 + 8, y: -h },
31488 { x: -8, y: -h },
31489 { x: -8, y: 0 }
31490 ];
31491 const el = insertPolygonShape$1(shapeSvg, w2, h, points);
31492 el.attr("style", node2.style);
31493 updateNodeBounds(node2, el);
31494 node2.intersect = function(point2) {
31495 return intersect.polygon(node2, points, point2);
31496 };
31497 return shapeSvg;
31498 };
31499 const start = (parent, node2) => {
31500 const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
31501 const circle2 = shapeSvg.insert("circle", ":first-child");
31502 circle2.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
31503 updateNodeBounds(node2, circle2);
31504 node2.intersect = function(point2) {
31505 return intersect.circle(node2, 7, point2);
31506 };
31507 return shapeSvg;
31508 };
31509 const forkJoin = (parent, node2, dir) => {
31510 const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
31511 let width2 = 70;
31512 let height2 = 10;
31513 if (dir === "LR") {
31514 width2 = 10;
31515 height2 = 70;
31516 }
31517 const shape = shapeSvg.append("rect").attr("x", -1 * width2 / 2).attr("y", -1 * height2 / 2).attr("width", width2).attr("height", height2).attr("class", "fork-join");
31518 updateNodeBounds(node2, shape);
31519 node2.height = node2.height + node2.padding / 2;
31520 node2.width = node2.width + node2.padding / 2;
31521 node2.intersect = function(point2) {
31522 return intersect.rect(node2, point2);
31523 };
31524 return shapeSvg;
31525 };
31526 const end = (parent, node2) => {
31527 const shapeSvg = parent.insert("g").attr("class", "node default").attr("id", node2.domId || node2.id);
31528 const innerCircle = shapeSvg.insert("circle", ":first-child");
31529 const circle2 = shapeSvg.insert("circle", ":first-child");
31530 circle2.attr("class", "state-start").attr("r", 7).attr("width", 14).attr("height", 14);
31531 innerCircle.attr("class", "state-end").attr("r", 5).attr("width", 10).attr("height", 10);
31532 updateNodeBounds(node2, circle2);
31533 node2.intersect = function(point2) {
31534 return intersect.circle(node2, 7, point2);
31535 };
31536 return shapeSvg;
31537 };
31538 const class_box = (parent, node2) => {
31539 const halfPadding = node2.padding / 2;
31540 const rowPadding = 4;
31541 const lineHeight = 8;
31542 let classes2;
31543 if (!node2.classes) {
31544 classes2 = "node default";
31545 } else {
31546 classes2 = "node " + node2.classes;
31547 }
31548 const shapeSvg = parent.insert("g").attr("class", classes2).attr("id", node2.domId || node2.id);
31549 const rect2 = shapeSvg.insert("rect", ":first-child");
31550 const topLine = shapeSvg.insert("line");
31551 const bottomLine = shapeSvg.insert("line");
31552 let maxWidth = 0;
31553 let maxHeight = rowPadding;
31554 const labelContainer = shapeSvg.insert("g").attr("class", "label");
31555 let verticalPos = 0;
31556 const hasInterface = node2.classData.annotations && node2.classData.annotations[0];
31557 const interfaceLabelText = node2.classData.annotations[0] ? "«" + node2.classData.annotations[0] + "»" : "";
31558 const interfaceLabel = labelContainer.node().appendChild(createLabel$1(interfaceLabelText, node2.labelStyle, true, true));
31559 let interfaceBBox = interfaceLabel.getBBox();
31560 if (evaluate(getConfig$1().flowchart.htmlLabels)) {
31561 const div = interfaceLabel.children[0];
31562 const dv = select(interfaceLabel);
31563 interfaceBBox = div.getBoundingClientRect();
31564 dv.attr("width", interfaceBBox.width);
31565 dv.attr("height", interfaceBBox.height);
31566 }
31567 if (node2.classData.annotations[0]) {
31568 maxHeight += interfaceBBox.height + rowPadding;
31569 maxWidth += interfaceBBox.width;
31570 }
31571 let classTitleString = node2.classData.label;
31572 if (node2.classData.type !== void 0 && node2.classData.type !== "") {
31573 if (getConfig$1().flowchart.htmlLabels) {
31574 classTitleString += "&lt;" + node2.classData.type + "&gt;";
31575 } else {
31576 classTitleString += "<" + node2.classData.type + ">";
31577 }
31578 }
31579 const classTitleLabel = labelContainer.node().appendChild(createLabel$1(classTitleString, node2.labelStyle, true, true));
31580 select(classTitleLabel).attr("class", "classTitle");
31581 let classTitleBBox = classTitleLabel.getBBox();
31582 if (evaluate(getConfig$1().flowchart.htmlLabels)) {
31583 const div = classTitleLabel.children[0];
31584 const dv = select(classTitleLabel);
31585 classTitleBBox = div.getBoundingClientRect();
31586 dv.attr("width", classTitleBBox.width);
31587 dv.attr("height", classTitleBBox.height);
31588 }
31589 maxHeight += classTitleBBox.height + rowPadding;
31590 if (classTitleBBox.width > maxWidth) {
31591 maxWidth = classTitleBBox.width;
31592 }
31593 const classAttributes = [];
31594 node2.classData.members.forEach((str2) => {
31595 const parsedInfo = parseMember(str2);
31596 let parsedText = parsedInfo.displayText;
31597 if (getConfig$1().flowchart.htmlLabels) {
31598 parsedText = parsedText.replace(/</g, "&lt;").replace(/>/g, "&gt;");
31599 }
31600 const lbl = labelContainer.node().appendChild(
31601 createLabel$1(
31602 parsedText,
31603 parsedInfo.cssStyle ? parsedInfo.cssStyle : node2.labelStyle,
31604 true,
31605 true
31606 )
31607 );
31608 let bbox = lbl.getBBox();
31609 if (evaluate(getConfig$1().flowchart.htmlLabels)) {
31610 const div = lbl.children[0];
31611 const dv = select(lbl);
31612 bbox = div.getBoundingClientRect();
31613 dv.attr("width", bbox.width);
31614 dv.attr("height", bbox.height);
31615 }
31616 if (bbox.width > maxWidth) {
31617 maxWidth = bbox.width;
31618 }
31619 maxHeight += bbox.height + rowPadding;
31620 classAttributes.push(lbl);
31621 });
31622 maxHeight += lineHeight;
31623 const classMethods = [];
31624 node2.classData.methods.forEach((str2) => {
31625 const parsedInfo = parseMember(str2);
31626 let displayText = parsedInfo.displayText;
31627 if (getConfig$1().flowchart.htmlLabels) {
31628 displayText = displayText.replace(/</g, "&lt;").replace(/>/g, "&gt;");
31629 }
31630 const lbl = labelContainer.node().appendChild(
31631 createLabel$1(
31632 displayText,
31633 parsedInfo.cssStyle ? parsedInfo.cssStyle : node2.labelStyle,
31634 true,
31635 true
31636 )
31637 );
31638 let bbox = lbl.getBBox();
31639 if (evaluate(getConfig$1().flowchart.htmlLabels)) {
31640 const div = lbl.children[0];
31641 const dv = select(lbl);
31642 bbox = div.getBoundingClientRect();
31643 dv.attr("width", bbox.width);
31644 dv.attr("height", bbox.height);
31645 }
31646 if (bbox.width > maxWidth) {
31647 maxWidth = bbox.width;
31648 }
31649 maxHeight += bbox.height + rowPadding;
31650 classMethods.push(lbl);
31651 });
31652 maxHeight += lineHeight;
31653 if (hasInterface) {
31654 let diffX2 = (maxWidth - interfaceBBox.width) / 2;
31655 select(interfaceLabel).attr(
31656 "transform",
31657 "translate( " + (-1 * maxWidth / 2 + diffX2) + ", " + -1 * maxHeight / 2 + ")"
31658 );
31659 verticalPos = interfaceBBox.height + rowPadding;
31660 }
31661 let diffX = (maxWidth - classTitleBBox.width) / 2;
31662 select(classTitleLabel).attr(
31663 "transform",
31664 "translate( " + (-1 * maxWidth / 2 + diffX) + ", " + (-1 * maxHeight / 2 + verticalPos) + ")"
31665 );
31666 verticalPos += classTitleBBox.height + rowPadding;
31667 topLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);
31668 verticalPos += lineHeight;
31669 classAttributes.forEach((lbl) => {
31670 select(lbl).attr(
31671 "transform",
31672 "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos + lineHeight / 2) + ")"
31673 );
31674 verticalPos += classTitleBBox.height + rowPadding;
31675 });
31676 verticalPos += lineHeight;
31677 bottomLine.attr("class", "divider").attr("x1", -maxWidth / 2 - halfPadding).attr("x2", maxWidth / 2 + halfPadding).attr("y1", -maxHeight / 2 - halfPadding + lineHeight + verticalPos).attr("y2", -maxHeight / 2 - halfPadding + lineHeight + verticalPos);
31678 verticalPos += lineHeight;
31679 classMethods.forEach((lbl) => {
31680 select(lbl).attr(
31681 "transform",
31682 "translate( " + -maxWidth / 2 + ", " + (-1 * maxHeight / 2 + verticalPos) + ")"
31683 );
31684 verticalPos += classTitleBBox.height + rowPadding;
31685 });
31686 rect2.attr("class", "outer title-state").attr("x", -maxWidth / 2 - halfPadding).attr("y", -(maxHeight / 2) - halfPadding).attr("width", maxWidth + node2.padding).attr("height", maxHeight + node2.padding);
31687 updateNodeBounds(node2, rect2);
31688 node2.intersect = function(point2) {
31689 return intersect.rect(node2, point2);
31690 };
31691 return shapeSvg;
31692 };
31693 const shapes$1 = {
31694 rhombus: question,
31695 question,
31696 rect: rect$1,
31697 labelRect,
31698 rectWithTitle,
31699 choice,
31700 circle,
31701 doublecircle,
31702 stadium,
31703 hexagon,
31704 rect_left_inv_arrow,
31705 lean_right,
31706 lean_left,
31707 trapezoid,
31708 inv_trapezoid,
31709 rect_right_inv_arrow,
31710 cylinder,
31711 start,
31712 end,
31713 note: note$1,
31714 subroutine,
31715 fork: forkJoin,
31716 join: forkJoin,
31717 class_box
31718 };
31719 let nodeElems = {};
31720 const insertNode = async (elem, node2, dir) => {
31721 let newEl;
31722 let el;
31723 if (node2.link) {
31724 let target;
31725 if (getConfig$1().securityLevel === "sandbox") {
31726 target = "_top";
31727 } else if (node2.linkTarget) {
31728 target = node2.linkTarget || "_blank";
31729 }
31730 newEl = elem.insert("svg:a").attr("xlink:href", node2.link).attr("target", target);
31731 el = await shapes$1[node2.shape](newEl, node2, dir);
31732 } else {
31733 el = await shapes$1[node2.shape](elem, node2, dir);
31734 newEl = el;
31735 }
31736 if (node2.tooltip) {
31737 el.attr("title", node2.tooltip);
31738 }
31739 if (node2.class) {
31740 el.attr("class", "node default " + node2.class);
31741 }
31742 nodeElems[node2.id] = newEl;
31743 if (node2.haveCallback) {
31744 nodeElems[node2.id].attr("class", nodeElems[node2.id].attr("class") + " clickable");
31745 }
31746 return newEl;
31747 };
31748 const setNodeElem = (elem, node2) => {
31749 nodeElems[node2.id] = elem;
31750 };
31751 const clear$f = () => {
31752 nodeElems = {};
31753 };
31754 const positionNode$1 = (node2) => {
31755 const el = nodeElems[node2.id];
31756 log$1.trace(
31757 "Transforming node",
31758 node2.diff,
31759 node2,
31760 "translate(" + (node2.x - node2.width / 2 - 5) + ", " + node2.width / 2 + ")"
31761 );
31762 const padding2 = 8;
31763 const diff = node2.diff || 0;
31764 if (node2.clusterNode) {
31765 el.attr(
31766 "transform",
31767 "translate(" + (node2.x + diff - node2.width / 2) + ", " + (node2.y - node2.height / 2 - padding2) + ")"
31768 );
31769 } else {
31770 el.attr("transform", "translate(" + node2.x + ", " + node2.y + ")");
31771 }
31772 return diff;
31773 };
31774 const rect = (parent, node2) => {
31775 log$1.info("Creating subgraph rect for ", node2.id, node2);
31776 const shapeSvg = parent.insert("g").attr("class", "cluster" + (node2.class ? " " + node2.class : "")).attr("id", node2.id);
31777 const rect2 = shapeSvg.insert("rect", ":first-child");
31778 const useHtmlLabels = evaluate(getConfig$1().flowchart.htmlLabels);
31779 const label = shapeSvg.insert("g").attr("class", "cluster-label");
31780 const text2 = node2.labelType === "markdown" ? createText(label, node2.labelText, { style: node2.labelStyle, useHtmlLabels }) : label.node().appendChild(createLabel$1(node2.labelText, node2.labelStyle, void 0, true));
31781 let bbox = text2.getBBox();
31782 if (evaluate(getConfig$1().flowchart.htmlLabels)) {
31783 const div = text2.children[0];
31784 const dv = select(text2);
31785 bbox = div.getBoundingClientRect();
31786 dv.attr("width", bbox.width);
31787 dv.attr("height", bbox.height);
31788 }
31789 const padding2 = 0 * node2.padding;
31790 const halfPadding = padding2 / 2;
31791 const width2 = node2.width <= bbox.width + padding2 ? bbox.width + padding2 : node2.width;
31792 if (node2.width <= bbox.width + padding2) {
31793 node2.diff = (bbox.width - node2.width) / 2 - node2.padding / 2;
31794 } else {
31795 node2.diff = -node2.padding / 2;
31796 }
31797 log$1.trace("Data ", node2, JSON.stringify(node2));
31798 rect2.attr("style", node2.style).attr("rx", node2.rx).attr("ry", node2.ry).attr("x", node2.x - width2 / 2).attr("y", node2.y - node2.height / 2 - halfPadding).attr("width", width2).attr("height", node2.height + padding2);
31799 if (useHtmlLabels) {
31800 label.attr(
31801 "transform",
31802 // This puts the labal on top of the box instead of inside it
31803 "translate(" + (node2.x - bbox.width / 2) + ", " + (node2.y - node2.height / 2) + ")"
31804 );
31805 } else {
31806 label.attr(
31807 "transform",
31808 // This puts the labal on top of the box instead of inside it
31809 "translate(" + node2.x + ", " + (node2.y - node2.height / 2) + ")"
31810 );
31811 }
31812 const rectBox = rect2.node().getBBox();
31813 node2.width = rectBox.width;
31814 node2.height = rectBox.height;
31815 node2.intersect = function(point2) {
31816 return intersectRect$1(node2, point2);
31817 };
31818 return shapeSvg;
31819 };
31820 const noteGroup = (parent, node2) => {
31821 const shapeSvg = parent.insert("g").attr("class", "note-cluster").attr("id", node2.id);
31822 const rect2 = shapeSvg.insert("rect", ":first-child");
31823 const padding2 = 0 * node2.padding;
31824 const halfPadding = padding2 / 2;
31825 rect2.attr("rx", node2.rx).attr("ry", node2.ry).attr("x", node2.x - node2.width / 2 - halfPadding).attr("y", node2.y - node2.height / 2 - halfPadding).attr("width", node2.width + padding2).attr("height", node2.height + padding2).attr("fill", "none");
31826 const rectBox = rect2.node().getBBox();
31827 node2.width = rectBox.width;
31828 node2.height = rectBox.height;
31829 node2.intersect = function(point2) {
31830 return intersectRect$1(node2, point2);
31831 };
31832 return shapeSvg;
31833 };
31834 const roundedWithTitle = (parent, node2) => {
31835 const shapeSvg = parent.insert("g").attr("class", node2.classes).attr("id", node2.id);
31836 const rect2 = shapeSvg.insert("rect", ":first-child");
31837 const label = shapeSvg.insert("g").attr("class", "cluster-label");
31838 const innerRect = shapeSvg.append("rect");
31839 const text2 = label.node().appendChild(createLabel$1(node2.labelText, node2.labelStyle, void 0, true));
31840 let bbox = text2.getBBox();
31841 if (evaluate(getConfig$1().flowchart.htmlLabels)) {
31842 const div = text2.children[0];
31843 const dv = select(text2);
31844 bbox = div.getBoundingClientRect();
31845 dv.attr("width", bbox.width);
31846 dv.attr("height", bbox.height);
31847 }
31848 bbox = text2.getBBox();
31849 const padding2 = 0 * node2.padding;
31850 const halfPadding = padding2 / 2;
31851 const width2 = node2.width <= bbox.width + node2.padding ? bbox.width + node2.padding : node2.width;
31852 if (node2.width <= bbox.width + node2.padding) {
31853 node2.diff = (bbox.width + node2.padding * 0 - node2.width) / 2;
31854 } else {
31855 node2.diff = -node2.padding / 2;
31856 }
31857 rect2.attr("class", "outer").attr("x", node2.x - width2 / 2 - halfPadding).attr("y", node2.y - node2.height / 2 - halfPadding).attr("width", width2 + padding2).attr("height", node2.height + padding2);
31858 innerRect.attr("class", "inner").attr("x", node2.x - width2 / 2 - halfPadding).attr("y", node2.y - node2.height / 2 - halfPadding + bbox.height - 1).attr("width", width2 + padding2).attr("height", node2.height + padding2 - bbox.height - 3);
31859 label.attr(
31860 "transform",
31861 "translate(" + (node2.x - bbox.width / 2) + ", " + (node2.y - node2.height / 2 - node2.padding / 3 + (evaluate(getConfig$1().flowchart.htmlLabels) ? 5 : 3)) + ")"
31862 );
31863 const rectBox = rect2.node().getBBox();
31864 node2.height = rectBox.height;
31865 node2.intersect = function(point2) {
31866 return intersectRect$1(node2, point2);
31867 };
31868 return shapeSvg;
31869 };
31870 const divider = (parent, node2) => {
31871 const shapeSvg = parent.insert("g").attr("class", node2.classes).attr("id", node2.id);
31872 const rect2 = shapeSvg.insert("rect", ":first-child");
31873 const padding2 = 0 * node2.padding;
31874 const halfPadding = padding2 / 2;
31875 rect2.attr("class", "divider").attr("x", node2.x - node2.width / 2 - halfPadding).attr("y", node2.y - node2.height / 2).attr("width", node2.width + padding2).attr("height", node2.height + padding2);
31876 const rectBox = rect2.node().getBBox();
31877 node2.width = rectBox.width;
31878 node2.height = rectBox.height;
31879 node2.diff = -node2.padding / 2;
31880 node2.intersect = function(point2) {
31881 return intersectRect$1(node2, point2);
31882 };
31883 return shapeSvg;
31884 };
31885 const shapes = { rect, roundedWithTitle, noteGroup, divider };
31886 let clusterElems = {};
31887 const insertCluster = (elem, node2) => {
31888 log$1.trace("Inserting cluster");
31889 const shape = node2.shape || "rect";
31890 clusterElems[node2.id] = shapes[shape](elem, node2);
31891 };
31892 const clear$e = () => {
31893 clusterElems = {};
31894 };
31895 let edgeLabels = {};
31896 let terminalLabels = {};
31897 const clear$d = () => {
31898 edgeLabels = {};
31899 terminalLabels = {};
31900 };
31901 const insertEdgeLabel = (elem, edge) => {
31902 const useHtmlLabels = evaluate(getConfig$1().flowchart.htmlLabels);
31903 const labelElement = edge.labelType === "markdown" ? createText(elem, edge.label, {
31904 style: edge.labelStyle,
31905 useHtmlLabels,
31906 addSvgBackground: true
31907 }) : createLabel$1(edge.label, edge.labelStyle);
31908 log$1.info("abc82", edge, edge.labelType);
31909 const edgeLabel = elem.insert("g").attr("class", "edgeLabel");
31910 const label = edgeLabel.insert("g").attr("class", "label");
31911 label.node().appendChild(labelElement);
31912 let bbox = labelElement.getBBox();
31913 if (useHtmlLabels) {
31914 const div = labelElement.children[0];
31915 const dv = select(labelElement);
31916 bbox = div.getBoundingClientRect();
31917 dv.attr("width", bbox.width);
31918 dv.attr("height", bbox.height);
31919 }
31920 label.attr("transform", "translate(" + -bbox.width / 2 + ", " + -bbox.height / 2 + ")");
31921 edgeLabels[edge.id] = edgeLabel;
31922 edge.width = bbox.width;
31923 edge.height = bbox.height;
31924 let fo;
31925 if (edge.startLabelLeft) {
31926 const startLabelElement = createLabel$1(edge.startLabelLeft, edge.labelStyle);
31927 const startEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
31928 const inner = startEdgeLabelLeft.insert("g").attr("class", "inner");
31929 fo = inner.node().appendChild(startLabelElement);
31930 const slBox = startLabelElement.getBBox();
31931 inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
31932 if (!terminalLabels[edge.id]) {
31933 terminalLabels[edge.id] = {};
31934 }
31935 terminalLabels[edge.id].startLeft = startEdgeLabelLeft;
31936 setTerminalWidth(fo, edge.startLabelLeft);
31937 }
31938 if (edge.startLabelRight) {
31939 const startLabelElement = createLabel$1(edge.startLabelRight, edge.labelStyle);
31940 const startEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
31941 const inner = startEdgeLabelRight.insert("g").attr("class", "inner");
31942 fo = startEdgeLabelRight.node().appendChild(startLabelElement);
31943 inner.node().appendChild(startLabelElement);
31944 const slBox = startLabelElement.getBBox();
31945 inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
31946 if (!terminalLabels[edge.id]) {
31947 terminalLabels[edge.id] = {};
31948 }
31949 terminalLabels[edge.id].startRight = startEdgeLabelRight;
31950 setTerminalWidth(fo, edge.startLabelRight);
31951 }
31952 if (edge.endLabelLeft) {
31953 const endLabelElement = createLabel$1(edge.endLabelLeft, edge.labelStyle);
31954 const endEdgeLabelLeft = elem.insert("g").attr("class", "edgeTerminals");
31955 const inner = endEdgeLabelLeft.insert("g").attr("class", "inner");
31956 fo = inner.node().appendChild(endLabelElement);
31957 const slBox = endLabelElement.getBBox();
31958 inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
31959 endEdgeLabelLeft.node().appendChild(endLabelElement);
31960 if (!terminalLabels[edge.id]) {
31961 terminalLabels[edge.id] = {};
31962 }
31963 terminalLabels[edge.id].endLeft = endEdgeLabelLeft;
31964 setTerminalWidth(fo, edge.endLabelLeft);
31965 }
31966 if (edge.endLabelRight) {
31967 const endLabelElement = createLabel$1(edge.endLabelRight, edge.labelStyle);
31968 const endEdgeLabelRight = elem.insert("g").attr("class", "edgeTerminals");
31969 const inner = endEdgeLabelRight.insert("g").attr("class", "inner");
31970 fo = inner.node().appendChild(endLabelElement);
31971 const slBox = endLabelElement.getBBox();
31972 inner.attr("transform", "translate(" + -slBox.width / 2 + ", " + -slBox.height / 2 + ")");
31973 endEdgeLabelRight.node().appendChild(endLabelElement);
31974 if (!terminalLabels[edge.id]) {
31975 terminalLabels[edge.id] = {};
31976 }
31977 terminalLabels[edge.id].endRight = endEdgeLabelRight;
31978 setTerminalWidth(fo, edge.endLabelRight);
31979 }
31980 return labelElement;
31981 };
31982 function setTerminalWidth(fo, value) {
31983 if (getConfig$1().flowchart.htmlLabels && fo) {
31984 fo.style.width = value.length * 9 + "px";
31985 fo.style.height = "12px";
31986 }
31987 }
31988 const positionEdgeLabel = (edge, paths) => {
31989 log$1.info("Moving label abc78 ", edge.id, edge.label, edgeLabels[edge.id]);
31990 let path2 = paths.updatedPath ? paths.updatedPath : paths.originalPath;
31991 if (edge.label) {
31992 const el = edgeLabels[edge.id];
31993 let x2 = edge.x;
31994 let y2 = edge.y;
31995 if (path2) {
31996 const pos = utils.calcLabelPosition(path2);
31997 log$1.info(
31998 "Moving label " + edge.label + " from (",
31999 x2,
32000 ",",
32001 y2,
32002 ") to (",
32003 pos.x,
32004 ",",
32005 pos.y,
32006 ") abc78"
32007 );
32008 if (paths.updatedPath) {
32009 x2 = pos.x;
32010 y2 = pos.y;
32011 }
32012 }
32013 el.attr("transform", "translate(" + x2 + ", " + y2 + ")");
32014 }
32015 if (edge.startLabelLeft) {
32016 const el = terminalLabels[edge.id].startLeft;
32017 let x2 = edge.x;
32018 let y2 = edge.y;
32019 if (path2) {
32020 const pos = utils.calcTerminalLabelPosition(edge.arrowTypeStart ? 10 : 0, "start_left", path2);
32021 x2 = pos.x;
32022 y2 = pos.y;
32023 }
32024 el.attr("transform", "translate(" + x2 + ", " + y2 + ")");
32025 }
32026 if (edge.startLabelRight) {
32027 const el = terminalLabels[edge.id].startRight;
32028 let x2 = edge.x;
32029 let y2 = edge.y;
32030 if (path2) {
32031 const pos = utils.calcTerminalLabelPosition(
32032 edge.arrowTypeStart ? 10 : 0,
32033 "start_right",
32034 path2
32035 );
32036 x2 = pos.x;
32037 y2 = pos.y;
32038 }
32039 el.attr("transform", "translate(" + x2 + ", " + y2 + ")");
32040 }
32041 if (edge.endLabelLeft) {
32042 const el = terminalLabels[edge.id].endLeft;
32043 let x2 = edge.x;
32044 let y2 = edge.y;
32045 if (path2) {
32046 const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_left", path2);
32047 x2 = pos.x;
32048 y2 = pos.y;
32049 }
32050 el.attr("transform", "translate(" + x2 + ", " + y2 + ")");
32051 }
32052 if (edge.endLabelRight) {
32053 const el = terminalLabels[edge.id].endRight;
32054 let x2 = edge.x;
32055 let y2 = edge.y;
32056 if (path2) {
32057 const pos = utils.calcTerminalLabelPosition(edge.arrowTypeEnd ? 10 : 0, "end_right", path2);
32058 x2 = pos.x;
32059 y2 = pos.y;
32060 }
32061 el.attr("transform", "translate(" + x2 + ", " + y2 + ")");
32062 }
32063 };
32064 const outsideNode = (node2, point2) => {
32065 const x2 = node2.x;
32066 const y2 = node2.y;
32067 const dx = Math.abs(point2.x - x2);
32068 const dy = Math.abs(point2.y - y2);
32069 const w2 = node2.width / 2;
32070 const h = node2.height / 2;
32071 if (dx >= w2 || dy >= h) {
32072 return true;
32073 }
32074 return false;
32075 };
32076 const intersection = (node2, outsidePoint, insidePoint) => {
32077 log$1.warn(`intersection calc abc89:
32078 outsidePoint: ${JSON.stringify(outsidePoint)}
32079 insidePoint : ${JSON.stringify(insidePoint)}
32080 node : x:${node2.x} y:${node2.y} w:${node2.width} h:${node2.height}`);
32081 const x2 = node2.x;
32082 const y2 = node2.y;
32083 const dx = Math.abs(x2 - insidePoint.x);
32084 const w2 = node2.width / 2;
32085 let r = insidePoint.x < outsidePoint.x ? w2 - dx : w2 + dx;
32086 const h = node2.height / 2;
32087 const Q2 = Math.abs(outsidePoint.y - insidePoint.y);
32088 const R = Math.abs(outsidePoint.x - insidePoint.x);
32089 if (Math.abs(y2 - outsidePoint.y) * w2 > Math.abs(x2 - outsidePoint.x) * h) {
32090 let q = insidePoint.y < outsidePoint.y ? outsidePoint.y - h - y2 : y2 - h - outsidePoint.y;
32091 r = R * q / Q2;
32092 const res = {
32093 x: insidePoint.x < outsidePoint.x ? insidePoint.x + r : insidePoint.x - R + r,
32094 y: insidePoint.y < outsidePoint.y ? insidePoint.y + Q2 - q : insidePoint.y - Q2 + q
32095 };
32096 if (r === 0) {
32097 res.x = outsidePoint.x;
32098 res.y = outsidePoint.y;
32099 }
32100 if (R === 0) {
32101 res.x = outsidePoint.x;
32102 }
32103 if (Q2 === 0) {
32104 res.y = outsidePoint.y;
32105 }
32106 log$1.warn(`abc89 topp/bott calc, Q ${Q2}, q ${q}, R ${R}, r ${r}`, res);
32107 return res;
32108 } else {
32109 if (insidePoint.x < outsidePoint.x) {
32110 r = outsidePoint.x - w2 - x2;
32111 } else {
32112 r = x2 - w2 - outsidePoint.x;
32113 }
32114 let q = Q2 * r / R;
32115 let _x = insidePoint.x < outsidePoint.x ? insidePoint.x + R - r : insidePoint.x - R + r;
32116 let _y = insidePoint.y < outsidePoint.y ? insidePoint.y + q : insidePoint.y - q;
32117 log$1.warn(`sides calc abc89, Q ${Q2}, q ${q}, R ${R}, r ${r}`, { _x, _y });
32118 if (r === 0) {
32119 _x = outsidePoint.x;
32120 _y = outsidePoint.y;
32121 }
32122 if (R === 0) {
32123 _x = outsidePoint.x;
32124 }
32125 if (Q2 === 0) {
32126 _y = outsidePoint.y;
32127 }
32128 return { x: _x, y: _y };
32129 }
32130 };
32131 const cutPathAtIntersect = (_points, boundryNode) => {
32132 log$1.warn("abc88 cutPathAtIntersect", _points, boundryNode);
32133 let points = [];
32134 let lastPointOutside = _points[0];
32135 let isInside = false;
32136 _points.forEach((point2) => {
32137 log$1.info("abc88 checking point", point2, boundryNode);
32138 if (!outsideNode(boundryNode, point2) && !isInside) {
32139 const inter = intersection(boundryNode, lastPointOutside, point2);
32140 log$1.warn("abc88 inside", point2, lastPointOutside, inter);
32141 log$1.warn("abc88 intersection", inter);
32142 let pointPresent = false;
32143 points.forEach((p) => {
32144 pointPresent = pointPresent || p.x === inter.x && p.y === inter.y;
32145 });
32146 if (!points.some((e) => e.x === inter.x && e.y === inter.y)) {
32147 points.push(inter);
32148 } else {
32149 log$1.warn("abc88 no intersect", inter, points);
32150 }
32151 isInside = true;
32152 } else {
32153 log$1.warn("abc88 outside", point2, lastPointOutside);
32154 lastPointOutside = point2;
32155 if (!isInside) {
32156 points.push(point2);
32157 }
32158 }
32159 });
32160 log$1.warn("abc88 returning points", points);
32161 return points;
32162 };
32163 const insertEdge$1 = function(elem, e, edge, clusterDb2, diagramType, graph) {
32164 let points = edge.points;
32165 let pointsHasChanged = false;
32166 const tail = graph.node(e.v);
32167 var head2 = graph.node(e.w);
32168 log$1.info("abc88 InsertEdge: ", edge);
32169 if (head2.intersect && tail.intersect) {
32170 points = points.slice(1, edge.points.length - 1);
32171 points.unshift(tail.intersect(points[0]));
32172 log$1.info(
32173 "Last point",
32174 points[points.length - 1],
32175 head2,
32176 head2.intersect(points[points.length - 1])
32177 );
32178 points.push(head2.intersect(points[points.length - 1]));
32179 }
32180 if (edge.toCluster) {
32181 log$1.info("to cluster abc88", clusterDb2[edge.toCluster]);
32182 points = cutPathAtIntersect(edge.points, clusterDb2[edge.toCluster].node);
32183 pointsHasChanged = true;
32184 }
32185 if (edge.fromCluster) {
32186 log$1.info("from cluster abc88", clusterDb2[edge.fromCluster]);
32187 points = cutPathAtIntersect(points.reverse(), clusterDb2[edge.fromCluster].node).reverse();
32188 pointsHasChanged = true;
32189 }
32190 const lineData = points.filter((p) => !Number.isNaN(p.y));
32191 let curve;
32192 if (diagramType === "graph" || diagramType === "flowchart") {
32193 curve = edge.curve || curveBasis;
32194 } else {
32195 curve = curveBasis;
32196 }
32197 const lineFunction = line$1().x(function(d) {
32198 return d.x;
32199 }).y(function(d) {
32200 return d.y;
32201 }).curve(curve);
32202 let strokeClasses;
32203 switch (edge.thickness) {
32204 case "normal":
32205 strokeClasses = "edge-thickness-normal";
32206 break;
32207 case "thick":
32208 strokeClasses = "edge-thickness-thick";
32209 break;
32210 case "invisible":
32211 strokeClasses = "edge-thickness-thick";
32212 break;
32213 default:
32214 strokeClasses = "";
32215 }
32216 switch (edge.pattern) {
32217 case "solid":
32218 strokeClasses += " edge-pattern-solid";
32219 break;
32220 case "dotted":
32221 strokeClasses += " edge-pattern-dotted";
32222 break;
32223 case "dashed":
32224 strokeClasses += " edge-pattern-dashed";
32225 break;
32226 }
32227 const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", edge.id).attr("class", " " + strokeClasses + (edge.classes ? " " + edge.classes : "")).attr("style", edge.style);
32228 let url = "";
32229 if (getConfig$1().flowchart.arrowMarkerAbsolute || getConfig$1().state.arrowMarkerAbsolute) {
32230 url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
32231 url = url.replace(/\(/g, "\\(");
32232 url = url.replace(/\)/g, "\\)");
32233 }
32234 log$1.info("arrowTypeStart", edge.arrowTypeStart);
32235 log$1.info("arrowTypeEnd", edge.arrowTypeEnd);
32236 switch (edge.arrowTypeStart) {
32237 case "arrow_cross":
32238 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-crossStart)");
32239 break;
32240 case "arrow_point":
32241 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-pointStart)");
32242 break;
32243 case "arrow_barb":
32244 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-barbStart)");
32245 break;
32246 case "arrow_circle":
32247 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-circleStart)");
32248 break;
32249 case "aggregation":
32250 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-aggregationStart)");
32251 break;
32252 case "extension":
32253 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-extensionStart)");
32254 break;
32255 case "composition":
32256 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-compositionStart)");
32257 break;
32258 case "dependency":
32259 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-dependencyStart)");
32260 break;
32261 case "lollipop":
32262 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-lollipopStart)");
32263 break;
32264 }
32265 switch (edge.arrowTypeEnd) {
32266 case "arrow_cross":
32267 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-crossEnd)");
32268 break;
32269 case "arrow_point":
32270 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-pointEnd)");
32271 break;
32272 case "arrow_barb":
32273 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-barbEnd)");
32274 break;
32275 case "arrow_circle":
32276 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-circleEnd)");
32277 break;
32278 case "aggregation":
32279 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-aggregationEnd)");
32280 break;
32281 case "extension":
32282 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-extensionEnd)");
32283 break;
32284 case "composition":
32285 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-compositionEnd)");
32286 break;
32287 case "dependency":
32288 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-dependencyEnd)");
32289 break;
32290 case "lollipop":
32291 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-lollipopEnd)");
32292 break;
32293 }
32294 let paths = {};
32295 if (pointsHasChanged) {
32296 paths.updatedPath = points;
32297 }
32298 paths.originalPath = edge.points;
32299 return paths;
32300 };
32301 const recursiveRender = async (_elem, graph, diagramtype, parentCluster) => {
32302 log$1.info("Graph in recursive render: XXX", write(graph), parentCluster);
32303 const dir = graph.graph().rankdir;
32304 log$1.trace("Dir in recursive render - dir:", dir);
32305 const elem = _elem.insert("g").attr("class", "root");
32306 if (!graph.nodes()) {
32307 log$1.info("No nodes found for", graph);
32308 } else {
32309 log$1.info("Recursive render XXX", graph.nodes());
32310 }
32311 if (graph.edges().length > 0) {
32312 log$1.trace("Recursive edges", graph.edge(graph.edges()[0]));
32313 }
32314 const clusters = elem.insert("g").attr("class", "clusters");
32315 const edgePaths = elem.insert("g").attr("class", "edgePaths");
32316 const edgeLabels2 = elem.insert("g").attr("class", "edgeLabels");
32317 const nodes2 = elem.insert("g").attr("class", "nodes");
32318 await Promise.all(
32319 graph.nodes().map(async function(v) {
32320 const node2 = graph.node(v);
32321 if (parentCluster !== void 0) {
32322 const data = JSON.parse(JSON.stringify(parentCluster.clusterData));
32323 log$1.info("Setting data for cluster XXX (", v, ") ", data, parentCluster);
32324 graph.setNode(parentCluster.id, data);
32325 if (!graph.parent(v)) {
32326 log$1.trace("Setting parent", v, parentCluster.id);
32327 graph.setParent(v, parentCluster.id, data);
32328 }
32329 }
32330 log$1.info("(Insert) Node XXX" + v + ": " + JSON.stringify(graph.node(v)));
32331 if (node2 && node2.clusterNode) {
32332 log$1.info("Cluster identified", v, node2.width, graph.node(v));
32333 const o = await recursiveRender(nodes2, node2.graph, diagramtype, graph.node(v));
32334 const newEl = o.elem;
32335 updateNodeBounds(node2, newEl);
32336 node2.diff = o.diff || 0;
32337 log$1.info("Node bounds (abc123)", v, node2, node2.width, node2.x, node2.y);
32338 setNodeElem(newEl, node2);
32339 log$1.warn("Recursive render complete ", newEl, node2);
32340 } else {
32341 if (graph.children(v).length > 0) {
32342 log$1.info("Cluster - the non recursive path XXX", v, node2.id, node2, graph);
32343 log$1.info(findNonClusterChild(node2.id, graph));
32344 clusterDb[node2.id] = { id: findNonClusterChild(node2.id, graph), node: node2 };
32345 } else {
32346 log$1.info("Node - the non recursive path", v, node2.id, node2);
32347 await insertNode(nodes2, graph.node(v), dir);
32348 }
32349 }
32350 })
32351 );
32352 graph.edges().forEach(function(e) {
32353 const edge = graph.edge(e.v, e.w, e.name);
32354 log$1.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
32355 log$1.info("Edge " + e.v + " -> " + e.w + ": ", e, " ", JSON.stringify(graph.edge(e)));
32356 log$1.info("Fix", clusterDb, "ids:", e.v, e.w, "Translateing: ", clusterDb[e.v], clusterDb[e.w]);
32357 insertEdgeLabel(edgeLabels2, edge);
32358 });
32359 graph.edges().forEach(function(e) {
32360 log$1.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(e));
32361 });
32362 log$1.info("#############################################");
32363 log$1.info("### Layout ###");
32364 log$1.info("#############################################");
32365 log$1.info(graph);
32366 layout(graph);
32367 log$1.info("Graph after layout:", write(graph));
32368 let diff = 0;
32369 sortNodesByHierarchy(graph).forEach(function(v) {
32370 const node2 = graph.node(v);
32371 log$1.info("Position " + v + ": " + JSON.stringify(graph.node(v)));
32372 log$1.info(
32373 "Position " + v + ": (" + node2.x,
32374 "," + node2.y,
32375 ") width: ",
32376 node2.width,
32377 " height: ",
32378 node2.height
32379 );
32380 if (node2 && node2.clusterNode) {
32381 positionNode$1(node2);
32382 } else {
32383 if (graph.children(v).length > 0) {
32384 insertCluster(clusters, node2);
32385 clusterDb[node2.id].node = node2;
32386 } else {
32387 positionNode$1(node2);
32388 }
32389 }
32390 });
32391 graph.edges().forEach(function(e) {
32392 const edge = graph.edge(e);
32393 log$1.info("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(edge), edge);
32394 const paths = insertEdge$1(edgePaths, e, edge, clusterDb, diagramtype, graph);
32395 positionEdgeLabel(edge, paths);
32396 });
32397 graph.nodes().forEach(function(v) {
32398 const n = graph.node(v);
32399 log$1.info(v, n.type, n.diff);
32400 if (n.type === "group") {
32401 diff = n.diff;
32402 }
32403 });
32404 return { elem, diff };
32405 };
32406 const render = async (elem, graph, markers2, diagramtype, id2) => {
32407 insertMarkers$4(elem, markers2, diagramtype, id2);
32408 clear$f();
32409 clear$d();
32410 clear$e();
32411 clear$g();
32412 log$1.warn("Graph at first:", write(graph));
32413 adjustClustersAndEdges(graph);
32414 log$1.warn("Graph after:", write(graph));
32415 await recursiveRender(elem, graph, diagramtype);
32416 };
32417 const conf$8 = {};
32418 const setConf$7 = function(cnf) {
32419 const keys2 = Object.keys(cnf);
32420 for (const key of keys2) {
32421 conf$8[key] = cnf[key];
32422 }
32423 };
32424 const addVertices$1 = function(vert, g, svgId, root2, doc, diagObj) {
32425 const svg2 = root2.select(`[id="${svgId}"]`);
32426 const keys2 = Object.keys(vert);
32427 keys2.forEach(function(id2) {
32428 const vertex = vert[id2];
32429 let classStr = "default";
32430 if (vertex.classes.length > 0) {
32431 classStr = vertex.classes.join(" ");
32432 }
32433 classStr = classStr + " flowchart-label";
32434 const styles2 = getStylesFromArray(vertex.styles);
32435 let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;
32436 let vertexNode;
32437 log$1.info("vertex", vertex, vertex.labelType);
32438 if (vertex.labelType === "markdown") {
32439 log$1.info("vertex", vertex, vertex.labelType);
32440 } else {
32441 if (evaluate(getConfig$1().flowchart.htmlLabels)) {
32442 const node2 = {
32443 label: vertexText.replace(
32444 /fa[blrs]?:fa-[\w-]+/g,
32445 (s) => `<i class='${s.replace(":", " ")}'></i>`
32446 )
32447 };
32448 vertexNode = addHtmlLabel$1(svg2, node2).node();
32449 vertexNode.parentNode.removeChild(vertexNode);
32450 } else {
32451 const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text");
32452 svgLabel.setAttribute("style", styles2.labelStyle.replace("color:", "fill:"));
32453 const rows = vertexText.split(common$1.lineBreakRegex);
32454 for (const row of rows) {
32455 const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan");
32456 tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
32457 tspan.setAttribute("dy", "1em");
32458 tspan.setAttribute("x", "1");
32459 tspan.textContent = row;
32460 svgLabel.appendChild(tspan);
32461 }
32462 vertexNode = svgLabel;
32463 }
32464 }
32465 let radious = 0;
32466 let _shape = "";
32467 switch (vertex.type) {
32468 case "round":
32469 radious = 5;
32470 _shape = "rect";
32471 break;
32472 case "square":
32473 _shape = "rect";
32474 break;
32475 case "diamond":
32476 _shape = "question";
32477 break;
32478 case "hexagon":
32479 _shape = "hexagon";
32480 break;
32481 case "odd":
32482 _shape = "rect_left_inv_arrow";
32483 break;
32484 case "lean_right":
32485 _shape = "lean_right";
32486 break;
32487 case "lean_left":
32488 _shape = "lean_left";
32489 break;
32490 case "trapezoid":
32491 _shape = "trapezoid";
32492 break;
32493 case "inv_trapezoid":
32494 _shape = "inv_trapezoid";
32495 break;
32496 case "odd_right":
32497 _shape = "rect_left_inv_arrow";
32498 break;
32499 case "circle":
32500 _shape = "circle";
32501 break;
32502 case "ellipse":
32503 _shape = "ellipse";
32504 break;
32505 case "stadium":
32506 _shape = "stadium";
32507 break;
32508 case "subroutine":
32509 _shape = "subroutine";
32510 break;
32511 case "cylinder":
32512 _shape = "cylinder";
32513 break;
32514 case "group":
32515 _shape = "rect";
32516 break;
32517 case "doublecircle":
32518 _shape = "doublecircle";
32519 break;
32520 default:
32521 _shape = "rect";
32522 }
32523 g.setNode(vertex.id, {
32524 labelStyle: styles2.labelStyle,
32525 shape: _shape,
32526 labelText: vertexText,
32527 labelType: vertex.labelType,
32528 rx: radious,
32529 ry: radious,
32530 class: classStr,
32531 style: styles2.style,
32532 id: vertex.id,
32533 link: vertex.link,
32534 linkTarget: vertex.linkTarget,
32535 tooltip: diagObj.db.getTooltip(vertex.id) || "",
32536 domId: diagObj.db.lookUpDomId(vertex.id),
32537 haveCallback: vertex.haveCallback,
32538 width: vertex.type === "group" ? 500 : void 0,
32539 dir: vertex.dir,
32540 type: vertex.type,
32541 props: vertex.props,
32542 padding: getConfig$1().flowchart.padding
32543 });
32544 log$1.info("setNode", {
32545 labelStyle: styles2.labelStyle,
32546 labelType: vertex.labelType,
32547 shape: _shape,
32548 labelText: vertexText,
32549 rx: radious,
32550 ry: radious,
32551 class: classStr,
32552 style: styles2.style,
32553 id: vertex.id,
32554 domId: diagObj.db.lookUpDomId(vertex.id),
32555 width: vertex.type === "group" ? 500 : void 0,
32556 type: vertex.type,
32557 dir: vertex.dir,
32558 props: vertex.props,
32559 padding: getConfig$1().flowchart.padding
32560 });
32561 });
32562 };
32563 const addEdges$1 = function(edges2, g, diagObj) {
32564 log$1.info("abc78 edges = ", edges2);
32565 let cnt2 = 0;
32566 let linkIdCnt = {};
32567 let defaultStyle2;
32568 let defaultLabelStyle;
32569 if (edges2.defaultStyle !== void 0) {
32570 const defaultStyles = getStylesFromArray(edges2.defaultStyle);
32571 defaultStyle2 = defaultStyles.style;
32572 defaultLabelStyle = defaultStyles.labelStyle;
32573 }
32574 edges2.forEach(function(edge) {
32575 cnt2++;
32576 const linkIdBase = "L-" + edge.start + "-" + edge.end;
32577 if (linkIdCnt[linkIdBase] === void 0) {
32578 linkIdCnt[linkIdBase] = 0;
32579 log$1.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
32580 } else {
32581 linkIdCnt[linkIdBase]++;
32582 log$1.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
32583 }
32584 let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase];
32585 log$1.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]);
32586 const linkNameStart = "LS-" + edge.start;
32587 const linkNameEnd = "LE-" + edge.end;
32588 const edgeData = { style: "", labelStyle: "" };
32589 edgeData.minlen = edge.length || 1;
32590 if (edge.type === "arrow_open") {
32591 edgeData.arrowhead = "none";
32592 } else {
32593 edgeData.arrowhead = "normal";
32594 }
32595 edgeData.arrowTypeStart = "arrow_open";
32596 edgeData.arrowTypeEnd = "arrow_open";
32597 switch (edge.type) {
32598 case "double_arrow_cross":
32599 edgeData.arrowTypeStart = "arrow_cross";
32600 case "arrow_cross":
32601 edgeData.arrowTypeEnd = "arrow_cross";
32602 break;
32603 case "double_arrow_point":
32604 edgeData.arrowTypeStart = "arrow_point";
32605 case "arrow_point":
32606 edgeData.arrowTypeEnd = "arrow_point";
32607 break;
32608 case "double_arrow_circle":
32609 edgeData.arrowTypeStart = "arrow_circle";
32610 case "arrow_circle":
32611 edgeData.arrowTypeEnd = "arrow_circle";
32612 break;
32613 }
32614 let style = "";
32615 let labelStyle = "";
32616 switch (edge.stroke) {
32617 case "normal":
32618 style = "fill:none;";
32619 if (defaultStyle2 !== void 0) {
32620 style = defaultStyle2;
32621 }
32622 if (defaultLabelStyle !== void 0) {
32623 labelStyle = defaultLabelStyle;
32624 }
32625 edgeData.thickness = "normal";
32626 edgeData.pattern = "solid";
32627 break;
32628 case "dotted":
32629 edgeData.thickness = "normal";
32630 edgeData.pattern = "dotted";
32631 edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;";
32632 break;
32633 case "thick":
32634 edgeData.thickness = "thick";
32635 edgeData.pattern = "solid";
32636 edgeData.style = "stroke-width: 3.5px;fill:none;";
32637 break;
32638 case "invisible":
32639 edgeData.thickness = "invisible";
32640 edgeData.pattern = "solid";
32641 edgeData.style = "stroke-width: 0;fill:none;";
32642 break;
32643 }
32644 if (edge.style !== void 0) {
32645 const styles2 = getStylesFromArray(edge.style);
32646 style = styles2.style;
32647 labelStyle = styles2.labelStyle;
32648 }
32649 edgeData.style = edgeData.style += style;
32650 edgeData.labelStyle = edgeData.labelStyle += labelStyle;
32651 if (edge.interpolate !== void 0) {
32652 edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);
32653 } else if (edges2.defaultInterpolate !== void 0) {
32654 edgeData.curve = interpolateToCurve(edges2.defaultInterpolate, curveLinear);
32655 } else {
32656 edgeData.curve = interpolateToCurve(conf$8.curve, curveLinear);
32657 }
32658 if (edge.text === void 0) {
32659 if (edge.style !== void 0) {
32660 edgeData.arrowheadStyle = "fill: #333";
32661 }
32662 } else {
32663 edgeData.arrowheadStyle = "fill: #333";
32664 edgeData.labelpos = "c";
32665 }
32666 edgeData.labelType = edge.labelType;
32667 edgeData.label = edge.text.replace(common$1.lineBreakRegex, "\n");
32668 if (edge.style === void 0) {
32669 edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;";
32670 }
32671 edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
32672 edgeData.id = linkId;
32673 edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd;
32674 g.setEdge(edge.start, edge.end, edgeData, cnt2);
32675 });
32676 };
32677 const getClasses$4 = function(text2, diagObj) {
32678 log$1.info("Extracting classes");
32679 diagObj.db.clear();
32680 try {
32681 diagObj.parse(text2);
32682 return diagObj.db.getClasses();
32683 } catch (e) {
32684 return;
32685 }
32686 };
32687 const draw$g = async function(text2, id2, _version, diagObj) {
32688 log$1.info("Drawing flowchart");
32689 diagObj.db.clear();
32690 flowDb.setGen("gen-2");
32691 diagObj.parser.parse(text2);
32692 let dir = diagObj.db.getDirection();
32693 if (dir === void 0) {
32694 dir = "TD";
32695 }
32696 const { securityLevel, flowchart: conf2 } = getConfig$1();
32697 const nodeSpacing = conf2.nodeSpacing || 50;
32698 const rankSpacing = conf2.rankSpacing || 50;
32699 let sandboxElement;
32700 if (securityLevel === "sandbox") {
32701 sandboxElement = select("#i" + id2);
32702 }
32703 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
32704 const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
32705 const g = new Graph({
32706 multigraph: true,
32707 compound: true
32708 }).setGraph({
32709 rankdir: dir,
32710 nodesep: nodeSpacing,
32711 ranksep: rankSpacing,
32712 marginx: 0,
32713 marginy: 0
32714 }).setDefaultEdgeLabel(function() {
32715 return {};
32716 });
32717 let subG;
32718 const subGraphs2 = diagObj.db.getSubGraphs();
32719 log$1.info("Subgraphs - ", subGraphs2);
32720 for (let i3 = subGraphs2.length - 1; i3 >= 0; i3--) {
32721 subG = subGraphs2[i3];
32722 log$1.info("Subgraph - ", subG);
32723 diagObj.db.addVertex(
32724 subG.id,
32725 { text: subG.title, type: subG.labelType },
32726 "group",
32727 void 0,
32728 subG.classes,
32729 subG.dir
32730 );
32731 }
32732 const vert = diagObj.db.getVertices();
32733 const edges2 = diagObj.db.getEdges();
32734 log$1.info("Edges", edges2);
32735 let i2 = 0;
32736 for (i2 = subGraphs2.length - 1; i2 >= 0; i2--) {
32737 subG = subGraphs2[i2];
32738 selectAll("cluster").append("text");
32739 for (let j = 0; j < subG.nodes.length; j++) {
32740 log$1.info("Setting up subgraphs", subG.nodes[j], subG.id);
32741 g.setParent(subG.nodes[j], subG.id);
32742 }
32743 }
32744 addVertices$1(vert, g, id2, root2, doc, diagObj);
32745 addEdges$1(edges2, g);
32746 const svg2 = root2.select(`[id="${id2}"]`);
32747 const element2 = root2.select("#" + id2 + " g");
32748 await render(element2, g, ["point", "circle", "cross"], "flowchart", id2);
32749 utils.insertTitle(svg2, "flowchartTitleText", conf2.titleTopMargin, diagObj.db.getDiagramTitle());
32750 setupGraphViewbox$1(g, svg2, conf2.diagramPadding, conf2.useMaxWidth);
32751 diagObj.db.indexNodes("subGraph" + i2);
32752 if (!conf2.htmlLabels) {
32753 const labels = doc.querySelectorAll('[id="' + id2 + '"] .edgeLabel .label');
32754 for (const label of labels) {
32755 const dim = label.getBBox();
32756 const rect2 = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
32757 rect2.setAttribute("rx", 0);
32758 rect2.setAttribute("ry", 0);
32759 rect2.setAttribute("width", dim.width);
32760 rect2.setAttribute("height", dim.height);
32761 label.insertBefore(rect2, label.firstChild);
32762 }
32763 }
32764 const keys2 = Object.keys(vert);
32765 keys2.forEach(function(key) {
32766 const vertex = vert[key];
32767 if (vertex.link) {
32768 const node2 = select("#" + id2 + ' [id="' + key + '"]');
32769 if (node2) {
32770 const link = doc.createElementNS("http://www.w3.org/2000/svg", "a");
32771 link.setAttributeNS("http://www.w3.org/2000/svg", "class", vertex.classes.join(" "));
32772 link.setAttributeNS("http://www.w3.org/2000/svg", "href", vertex.link);
32773 link.setAttributeNS("http://www.w3.org/2000/svg", "rel", "noopener");
32774 if (securityLevel === "sandbox") {
32775 link.setAttributeNS("http://www.w3.org/2000/svg", "target", "_top");
32776 } else if (vertex.linkTarget) {
32777 link.setAttributeNS("http://www.w3.org/2000/svg", "target", vertex.linkTarget);
32778 }
32779 const linkNode = node2.insert(function() {
32780 return link;
32781 }, ":first-child");
32782 const shape = node2.select(".label-container");
32783 if (shape) {
32784 linkNode.append(function() {
32785 return shape.node();
32786 });
32787 }
32788 const label = node2.select(".label");
32789 if (label) {
32790 linkNode.append(function() {
32791 return label.node();
32792 });
32793 }
32794 }
32795 }
32796 });
32797 };
32798 const flowRendererV2 = {
32799 setConf: setConf$7,
32800 addVertices: addVertices$1,
32801 addEdges: addEdges$1,
32802 getClasses: getClasses$4,
32803 draw: draw$g
32804 };
32805 const fade = (color2, opacity) => {
32806 const channel2 = channel$1;
32807 const r = channel2(color2, "r");
32808 const g = channel2(color2, "g");
32809 const b = channel2(color2, "b");
32810 return rgba$1(r, g, b, opacity);
32811 };
32812 const getStyles$d = (options2) => `.label {
32813 font-family: ${options2.fontFamily};
32814 color: ${options2.nodeTextColor || options2.textColor};
32815 }
32816 .cluster-label text {
32817 fill: ${options2.titleColor};
32818 }
32819 .cluster-label span,p {
32820 color: ${options2.titleColor};
32821 }
32822
32823 .label text,span,p {
32824 fill: ${options2.nodeTextColor || options2.textColor};
32825 color: ${options2.nodeTextColor || options2.textColor};
32826 }
32827
32828 .node rect,
32829 .node circle,
32830 .node ellipse,
32831 .node polygon,
32832 .node path {
32833 fill: ${options2.mainBkg};
32834 stroke: ${options2.nodeBorder};
32835 stroke-width: 1px;
32836 }
32837 .flowchart-label text {
32838 text-anchor: middle;
32839 }
32840 // .flowchart-label .text-outer-tspan {
32841 // text-anchor: middle;
32842 // }
32843 // .flowchart-label .text-inner-tspan {
32844 // text-anchor: start;
32845 // }
32846
32847 .node .label {
32848 text-align: center;
32849 }
32850 .node.clickable {
32851 cursor: pointer;
32852 }
32853
32854 .arrowheadPath {
32855 fill: ${options2.arrowheadColor};
32856 }
32857
32858 .edgePath .path {
32859 stroke: ${options2.lineColor};
32860 stroke-width: 2.0px;
32861 }
32862
32863 .flowchart-link {
32864 stroke: ${options2.lineColor};
32865 fill: none;
32866 }
32867
32868 .edgeLabel {
32869 background-color: ${options2.edgeLabelBackground};
32870 rect {
32871 opacity: 0.5;
32872 background-color: ${options2.edgeLabelBackground};
32873 fill: ${options2.edgeLabelBackground};
32874 }
32875 text-align: center;
32876 }
32877
32878 /* For html labels only */
32879 .labelBkg {
32880 background-color: ${fade(options2.edgeLabelBackground, 0.5)};
32881 // background-color:
32882 }
32883
32884 .cluster rect {
32885 fill: ${options2.clusterBkg};
32886 stroke: ${options2.clusterBorder};
32887 stroke-width: 1px;
32888 }
32889
32890 .cluster text {
32891 fill: ${options2.titleColor};
32892 }
32893
32894 .cluster span,p {
32895 color: ${options2.titleColor};
32896 }
32897 /* .cluster div {
32898 color: ${options2.titleColor};
32899 } */
32900
32901 div.mermaidTooltip {
32902 position: absolute;
32903 text-align: center;
32904 max-width: 200px;
32905 padding: 2px;
32906 font-family: ${options2.fontFamily};
32907 font-size: 12px;
32908 background: ${options2.tertiaryColor};
32909 border: 1px solid ${options2.border2};
32910 border-radius: 2px;
32911 pointer-events: none;
32912 z-index: 100;
32913 }
32914
32915 .flowchartTitleText {
32916 text-anchor: middle;
32917 font-size: 18px;
32918 fill: ${options2.textColor};
32919 }
32920`;
32921 const flowStyles = getStyles$d;
32922 const diagram$h = {
32923 parser: parser$n,
32924 db: flowDb,
32925 renderer: flowRendererV2,
32926 styles: flowStyles,
32927 init: (cnf) => {
32928 if (!cnf.flowchart) {
32929 cnf.flowchart = {};
32930 }
32931 cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
32932 flowRenderer.setConf(cnf.flowchart);
32933 flowDb.clear();
32934 flowDb.setGen("gen-1");
32935 }
32936 };
32937 const flowDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
32938 __proto__: null,
32939 diagram: diagram$h
32940 }, Symbol.toStringTag, { value: "Module" }));
32941 const diagram$g = {
32942 parser: parser$n,
32943 db: flowDb,
32944 renderer: flowRendererV2,
32945 styles: flowStyles,
32946 init: (cnf) => {
32947 if (!cnf.flowchart) {
32948 cnf.flowchart = {};
32949 }
32950 cnf.flowchart.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
32951 setConfig({ flowchart: { arrowMarkerAbsolute: cnf.arrowMarkerAbsolute } });
32952 flowRendererV2.setConf(cnf.flowchart);
32953 flowDb.clear();
32954 flowDb.setGen("gen-2");
32955 }
32956 };
32957 const flowDiagramV2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
32958 __proto__: null,
32959 diagram: diagram$g
32960 }, Symbol.toStringTag, { value: "Module" }));
32961 var parser$l = function() {
32962 var o = function(k, v, o2, l) {
32963 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
32964 ;
32965 return o2;
32966 }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 23, 25, 27, 29, 30, 31, 52], $V3 = [1, 17], $V4 = [1, 18], $V5 = [1, 19], $V6 = [1, 20], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 25], $Va = [1, 30], $Vb = [1, 31], $Vc = [1, 32], $Vd = [1, 33], $Ve = [1, 34], $Vf = [6, 9, 11, 15, 20, 23, 25, 27, 29, 30, 31, 44, 45, 46, 47, 48, 52], $Vg = [1, 46], $Vh = [30, 31, 49, 50], $Vi = [4, 6, 9, 11, 23, 25, 27, 29, 30, 31, 52], $Vj = [44, 45, 46, 47, 48], $Vk = [22, 37], $Vl = [1, 66], $Vm = [1, 65], $Vn = [22, 37, 39, 41];
32967 var parser2 = {
32968 trace: function trace() {
32969 },
32970 yy: {},
32971 symbols_: { "error": 2, "start": 3, "ER_DIAGRAM": 4, "document": 5, "EOF": 6, "directive": 7, "line": 8, "SPACE": 9, "statement": 10, "NEWLINE": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, ":": 15, "argDirective": 16, "entityName": 17, "relSpec": 18, "role": 19, "BLOCK_START": 20, "attributes": 21, "BLOCK_STOP": 22, "title": 23, "title_value": 24, "acc_title": 25, "acc_title_value": 26, "acc_descr": 27, "acc_descr_value": 28, "acc_descr_multiline_value": 29, "ALPHANUM": 30, "ENTITY_NAME": 31, "attribute": 32, "attributeType": 33, "attributeName": 34, "attributeKeyTypeList": 35, "attributeComment": 36, "ATTRIBUTE_WORD": 37, "attributeKeyType": 38, "COMMA": 39, "ATTRIBUTE_KEY": 40, "COMMENT": 41, "cardinality": 42, "relType": 43, "ZERO_OR_ONE": 44, "ZERO_OR_MORE": 45, "ONE_OR_MORE": 46, "ONLY_ONE": 47, "MD_PARENT": 48, "NON_IDENTIFYING": 49, "IDENTIFYING": 50, "WORD": 51, "open_directive": 52, "type_directive": 53, "arg_directive": 54, "close_directive": 55, "$accept": 0, "$end": 1 },
32972 terminals_: { 2: "error", 4: "ER_DIAGRAM", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 20: "BLOCK_START", 22: "BLOCK_STOP", 23: "title", 24: "title_value", 25: "acc_title", 26: "acc_title_value", 27: "acc_descr", 28: "acc_descr_value", 29: "acc_descr_multiline_value", 30: "ALPHANUM", 31: "ENTITY_NAME", 37: "ATTRIBUTE_WORD", 39: "COMMA", 40: "ATTRIBUTE_KEY", 41: "COMMENT", 44: "ZERO_OR_ONE", 45: "ZERO_OR_MORE", 46: "ONE_OR_MORE", 47: "ONLY_ONE", 48: "MD_PARENT", 49: "NON_IDENTIFYING", 50: "IDENTIFYING", 51: "WORD", 52: "open_directive", 53: "type_directive", 54: "arg_directive", 55: "close_directive" },
32973 productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 5], [10, 4], [10, 3], [10, 1], [10, 2], [10, 2], [10, 2], [10, 1], [17, 1], [17, 1], [21, 1], [21, 2], [32, 2], [32, 3], [32, 3], [32, 4], [33, 1], [34, 1], [35, 1], [35, 3], [38, 1], [36, 1], [18, 3], [42, 1], [42, 1], [42, 1], [42, 1], [42, 1], [43, 1], [43, 1], [19, 1], [19, 1], [19, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
32974 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
32975 var $0 = $$.length - 1;
32976 switch (yystate) {
32977 case 1:
32978 break;
32979 case 3:
32980 this.$ = [];
32981 break;
32982 case 4:
32983 $$[$0 - 1].push($$[$0]);
32984 this.$ = $$[$0 - 1];
32985 break;
32986 case 5:
32987 case 6:
32988 this.$ = $$[$0];
32989 break;
32990 case 7:
32991 case 8:
32992 this.$ = [];
32993 break;
32994 case 12:
32995 yy.addEntity($$[$0 - 4]);
32996 yy.addEntity($$[$0 - 2]);
32997 yy.addRelationship($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 3]);
32998 break;
32999 case 13:
33000 yy.addEntity($$[$0 - 3]);
33001 yy.addAttributes($$[$0 - 3], $$[$0 - 1]);
33002 break;
33003 case 14:
33004 yy.addEntity($$[$0 - 2]);
33005 break;
33006 case 15:
33007 yy.addEntity($$[$0]);
33008 break;
33009 case 16:
33010 case 17:
33011 this.$ = $$[$0].trim();
33012 yy.setAccTitle(this.$);
33013 break;
33014 case 18:
33015 case 19:
33016 this.$ = $$[$0].trim();
33017 yy.setAccDescription(this.$);
33018 break;
33019 case 20:
33020 case 44:
33021 this.$ = $$[$0];
33022 break;
33023 case 21:
33024 case 42:
33025 case 43:
33026 this.$ = $$[$0].replace(/"/g, "");
33027 break;
33028 case 22:
33029 case 30:
33030 this.$ = [$$[$0]];
33031 break;
33032 case 23:
33033 $$[$0].push($$[$0 - 1]);
33034 this.$ = $$[$0];
33035 break;
33036 case 24:
33037 this.$ = { attributeType: $$[$0 - 1], attributeName: $$[$0] };
33038 break;
33039 case 25:
33040 this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeKeyTypeList: $$[$0] };
33041 break;
33042 case 26:
33043 this.$ = { attributeType: $$[$0 - 2], attributeName: $$[$0 - 1], attributeComment: $$[$0] };
33044 break;
33045 case 27:
33046 this.$ = { attributeType: $$[$0 - 3], attributeName: $$[$0 - 2], attributeKeyTypeList: $$[$0 - 1], attributeComment: $$[$0] };
33047 break;
33048 case 28:
33049 case 29:
33050 case 32:
33051 this.$ = $$[$0];
33052 break;
33053 case 31:
33054 $$[$0 - 2].push($$[$0]);
33055 this.$ = $$[$0 - 2];
33056 break;
33057 case 33:
33058 this.$ = $$[$0].replace(/"/g, "");
33059 break;
33060 case 34:
33061 this.$ = { cardA: $$[$0], relType: $$[$0 - 1], cardB: $$[$0 - 2] };
33062 break;
33063 case 35:
33064 this.$ = yy.Cardinality.ZERO_OR_ONE;
33065 break;
33066 case 36:
33067 this.$ = yy.Cardinality.ZERO_OR_MORE;
33068 break;
33069 case 37:
33070 this.$ = yy.Cardinality.ONE_OR_MORE;
33071 break;
33072 case 38:
33073 this.$ = yy.Cardinality.ONLY_ONE;
33074 break;
33075 case 39:
33076 this.$ = yy.Cardinality.MD_PARENT;
33077 break;
33078 case 40:
33079 this.$ = yy.Identification.NON_IDENTIFYING;
33080 break;
33081 case 41:
33082 this.$ = yy.Identification.IDENTIFYING;
33083 break;
33084 case 45:
33085 yy.parseDirective("%%{", "open_directive");
33086 break;
33087 case 46:
33088 yy.parseDirective($$[$0], "type_directive");
33089 break;
33090 case 47:
33091 $$[$0] = $$[$0].trim().replace(/'/g, '"');
33092 yy.parseDirective($$[$0], "arg_directive");
33093 break;
33094 case 48:
33095 yy.parseDirective("}%%", "close_directive", "er");
33096 break;
33097 }
33098 },
33099 table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 52: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 52: $V1 }, { 13: 8, 53: [1, 9] }, { 53: [2, 45] }, { 6: [1, 10], 7: 15, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: 16, 23: $V3, 25: $V4, 27: $V5, 29: $V6, 30: $V7, 31: $V8, 52: $V1 }, { 1: [2, 2] }, { 14: 23, 15: [1, 24], 55: $V9 }, o([15, 55], [2, 46]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 15, 10: 26, 12: 4, 17: 16, 23: $V3, 25: $V4, 27: $V5, 29: $V6, 30: $V7, 31: $V8, 52: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), o($V2, [2, 15], { 18: 27, 42: 29, 20: [1, 28], 44: $Va, 45: $Vb, 46: $Vc, 47: $Vd, 48: $Ve }), { 24: [1, 35] }, { 26: [1, 36] }, { 28: [1, 37] }, o($V2, [2, 19]), o($Vf, [2, 20]), o($Vf, [2, 21]), { 11: [1, 38] }, { 16: 39, 54: [1, 40] }, { 11: [2, 48] }, o($V2, [2, 5]), { 17: 41, 30: $V7, 31: $V8 }, { 21: 42, 22: [1, 43], 32: 44, 33: 45, 37: $Vg }, { 43: 47, 49: [1, 48], 50: [1, 49] }, o($Vh, [2, 35]), o($Vh, [2, 36]), o($Vh, [2, 37]), o($Vh, [2, 38]), o($Vh, [2, 39]), o($V2, [2, 16]), o($V2, [2, 17]), o($V2, [2, 18]), o($Vi, [2, 9]), { 14: 50, 55: $V9 }, { 55: [2, 47] }, { 15: [1, 51] }, { 22: [1, 52] }, o($V2, [2, 14]), { 21: 53, 22: [2, 22], 32: 44, 33: 45, 37: $Vg }, { 34: 54, 37: [1, 55] }, { 37: [2, 28] }, { 42: 56, 44: $Va, 45: $Vb, 46: $Vc, 47: $Vd, 48: $Ve }, o($Vj, [2, 40]), o($Vj, [2, 41]), { 11: [1, 57] }, { 19: 58, 30: [1, 61], 31: [1, 60], 51: [1, 59] }, o($V2, [2, 13]), { 22: [2, 23] }, o($Vk, [2, 24], { 35: 62, 36: 63, 38: 64, 40: $Vl, 41: $Vm }), o([22, 37, 40, 41], [2, 29]), o([30, 31], [2, 34]), o($Vi, [2, 10]), o($V2, [2, 12]), o($V2, [2, 42]), o($V2, [2, 43]), o($V2, [2, 44]), o($Vk, [2, 25], { 36: 67, 39: [1, 68], 41: $Vm }), o($Vk, [2, 26]), o($Vn, [2, 30]), o($Vk, [2, 33]), o($Vn, [2, 32]), o($Vk, [2, 27]), { 38: 69, 40: $Vl }, o($Vn, [2, 31])],
33100 defaultActions: { 5: [2, 45], 7: [2, 2], 25: [2, 48], 40: [2, 47], 46: [2, 28], 53: [2, 23] },
33101 parseError: function parseError2(str2, hash) {
33102 if (hash.recoverable) {
33103 this.trace(str2);
33104 } else {
33105 var error = new Error(str2);
33106 error.hash = hash;
33107 throw error;
33108 }
33109 },
33110 parse: function parse2(input) {
33111 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
33112 var args = lstack.slice.call(arguments, 1);
33113 var lexer2 = Object.create(this.lexer);
33114 var sharedState = { yy: {} };
33115 for (var k in this.yy) {
33116 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
33117 sharedState.yy[k] = this.yy[k];
33118 }
33119 }
33120 lexer2.setInput(input, sharedState.yy);
33121 sharedState.yy.lexer = lexer2;
33122 sharedState.yy.parser = this;
33123 if (typeof lexer2.yylloc == "undefined") {
33124 lexer2.yylloc = {};
33125 }
33126 var yyloc = lexer2.yylloc;
33127 lstack.push(yyloc);
33128 var ranges = lexer2.options && lexer2.options.ranges;
33129 if (typeof sharedState.yy.parseError === "function") {
33130 this.parseError = sharedState.yy.parseError;
33131 } else {
33132 this.parseError = Object.getPrototypeOf(this).parseError;
33133 }
33134 function lex2() {
33135 var token2;
33136 token2 = tstack.pop() || lexer2.lex() || EOF;
33137 if (typeof token2 !== "number") {
33138 if (token2 instanceof Array) {
33139 tstack = token2;
33140 token2 = tstack.pop();
33141 }
33142 token2 = self2.symbols_[token2] || token2;
33143 }
33144 return token2;
33145 }
33146 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
33147 while (true) {
33148 state2 = stack[stack.length - 1];
33149 if (this.defaultActions[state2]) {
33150 action = this.defaultActions[state2];
33151 } else {
33152 if (symbol === null || typeof symbol == "undefined") {
33153 symbol = lex2();
33154 }
33155 action = table[state2] && table[state2][symbol];
33156 }
33157 if (typeof action === "undefined" || !action.length || !action[0]) {
33158 var errStr = "";
33159 expected = [];
33160 for (p in table[state2]) {
33161 if (this.terminals_[p] && p > TERROR) {
33162 expected.push("'" + this.terminals_[p] + "'");
33163 }
33164 }
33165 if (lexer2.showPosition) {
33166 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
33167 } else {
33168 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
33169 }
33170 this.parseError(errStr, {
33171 text: lexer2.match,
33172 token: this.terminals_[symbol] || symbol,
33173 line: lexer2.yylineno,
33174 loc: yyloc,
33175 expected
33176 });
33177 }
33178 if (action[0] instanceof Array && action.length > 1) {
33179 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
33180 }
33181 switch (action[0]) {
33182 case 1:
33183 stack.push(symbol);
33184 vstack.push(lexer2.yytext);
33185 lstack.push(lexer2.yylloc);
33186 stack.push(action[1]);
33187 symbol = null;
33188 {
33189 yyleng = lexer2.yyleng;
33190 yytext = lexer2.yytext;
33191 yylineno = lexer2.yylineno;
33192 yyloc = lexer2.yylloc;
33193 }
33194 break;
33195 case 2:
33196 len = this.productions_[action[1]][1];
33197 yyval.$ = vstack[vstack.length - len];
33198 yyval._$ = {
33199 first_line: lstack[lstack.length - (len || 1)].first_line,
33200 last_line: lstack[lstack.length - 1].last_line,
33201 first_column: lstack[lstack.length - (len || 1)].first_column,
33202 last_column: lstack[lstack.length - 1].last_column
33203 };
33204 if (ranges) {
33205 yyval._$.range = [
33206 lstack[lstack.length - (len || 1)].range[0],
33207 lstack[lstack.length - 1].range[1]
33208 ];
33209 }
33210 r = this.performAction.apply(yyval, [
33211 yytext,
33212 yyleng,
33213 yylineno,
33214 sharedState.yy,
33215 action[1],
33216 vstack,
33217 lstack
33218 ].concat(args));
33219 if (typeof r !== "undefined") {
33220 return r;
33221 }
33222 if (len) {
33223 stack = stack.slice(0, -1 * len * 2);
33224 vstack = vstack.slice(0, -1 * len);
33225 lstack = lstack.slice(0, -1 * len);
33226 }
33227 stack.push(this.productions_[action[1]][0]);
33228 vstack.push(yyval.$);
33229 lstack.push(yyval._$);
33230 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
33231 stack.push(newState);
33232 break;
33233 case 3:
33234 return true;
33235 }
33236 }
33237 return true;
33238 }
33239 };
33240 var lexer = function() {
33241 var lexer2 = {
33242 EOF: 1,
33243 parseError: function parseError2(str2, hash) {
33244 if (this.yy.parser) {
33245 this.yy.parser.parseError(str2, hash);
33246 } else {
33247 throw new Error(str2);
33248 }
33249 },
33250 // resets the lexer, sets new input
33251 setInput: function(input, yy) {
33252 this.yy = yy || this.yy || {};
33253 this._input = input;
33254 this._more = this._backtrack = this.done = false;
33255 this.yylineno = this.yyleng = 0;
33256 this.yytext = this.matched = this.match = "";
33257 this.conditionStack = ["INITIAL"];
33258 this.yylloc = {
33259 first_line: 1,
33260 first_column: 0,
33261 last_line: 1,
33262 last_column: 0
33263 };
33264 if (this.options.ranges) {
33265 this.yylloc.range = [0, 0];
33266 }
33267 this.offset = 0;
33268 return this;
33269 },
33270 // consumes and returns one char from the input
33271 input: function() {
33272 var ch = this._input[0];
33273 this.yytext += ch;
33274 this.yyleng++;
33275 this.offset++;
33276 this.match += ch;
33277 this.matched += ch;
33278 var lines = ch.match(/(?:\r\n?|\n).*/g);
33279 if (lines) {
33280 this.yylineno++;
33281 this.yylloc.last_line++;
33282 } else {
33283 this.yylloc.last_column++;
33284 }
33285 if (this.options.ranges) {
33286 this.yylloc.range[1]++;
33287 }
33288 this._input = this._input.slice(1);
33289 return ch;
33290 },
33291 // unshifts one char (or a string) into the input
33292 unput: function(ch) {
33293 var len = ch.length;
33294 var lines = ch.split(/(?:\r\n?|\n)/g);
33295 this._input = ch + this._input;
33296 this.yytext = this.yytext.substr(0, this.yytext.length - len);
33297 this.offset -= len;
33298 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
33299 this.match = this.match.substr(0, this.match.length - 1);
33300 this.matched = this.matched.substr(0, this.matched.length - 1);
33301 if (lines.length - 1) {
33302 this.yylineno -= lines.length - 1;
33303 }
33304 var r = this.yylloc.range;
33305 this.yylloc = {
33306 first_line: this.yylloc.first_line,
33307 last_line: this.yylineno + 1,
33308 first_column: this.yylloc.first_column,
33309 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
33310 };
33311 if (this.options.ranges) {
33312 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
33313 }
33314 this.yyleng = this.yytext.length;
33315 return this;
33316 },
33317 // When called from action, caches matched text and appends it on next action
33318 more: function() {
33319 this._more = true;
33320 return this;
33321 },
33322 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
33323 reject: function() {
33324 if (this.options.backtrack_lexer) {
33325 this._backtrack = true;
33326 } else {
33327 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
33328 text: "",
33329 token: null,
33330 line: this.yylineno
33331 });
33332 }
33333 return this;
33334 },
33335 // retain first n characters of the match
33336 less: function(n) {
33337 this.unput(this.match.slice(n));
33338 },
33339 // displays already matched input, i.e. for error messages
33340 pastInput: function() {
33341 var past = this.matched.substr(0, this.matched.length - this.match.length);
33342 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
33343 },
33344 // displays upcoming input, i.e. for error messages
33345 upcomingInput: function() {
33346 var next2 = this.match;
33347 if (next2.length < 20) {
33348 next2 += this._input.substr(0, 20 - next2.length);
33349 }
33350 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
33351 },
33352 // displays the character position where the lexing error occurred, i.e. for error messages
33353 showPosition: function() {
33354 var pre = this.pastInput();
33355 var c2 = new Array(pre.length + 1).join("-");
33356 return pre + this.upcomingInput() + "\n" + c2 + "^";
33357 },
33358 // test the lexed token: return FALSE when not a match, otherwise return token
33359 test_match: function(match, indexed_rule) {
33360 var token2, lines, backup;
33361 if (this.options.backtrack_lexer) {
33362 backup = {
33363 yylineno: this.yylineno,
33364 yylloc: {
33365 first_line: this.yylloc.first_line,
33366 last_line: this.last_line,
33367 first_column: this.yylloc.first_column,
33368 last_column: this.yylloc.last_column
33369 },
33370 yytext: this.yytext,
33371 match: this.match,
33372 matches: this.matches,
33373 matched: this.matched,
33374 yyleng: this.yyleng,
33375 offset: this.offset,
33376 _more: this._more,
33377 _input: this._input,
33378 yy: this.yy,
33379 conditionStack: this.conditionStack.slice(0),
33380 done: this.done
33381 };
33382 if (this.options.ranges) {
33383 backup.yylloc.range = this.yylloc.range.slice(0);
33384 }
33385 }
33386 lines = match[0].match(/(?:\r\n?|\n).*/g);
33387 if (lines) {
33388 this.yylineno += lines.length;
33389 }
33390 this.yylloc = {
33391 first_line: this.yylloc.last_line,
33392 last_line: this.yylineno + 1,
33393 first_column: this.yylloc.last_column,
33394 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
33395 };
33396 this.yytext += match[0];
33397 this.match += match[0];
33398 this.matches = match;
33399 this.yyleng = this.yytext.length;
33400 if (this.options.ranges) {
33401 this.yylloc.range = [this.offset, this.offset += this.yyleng];
33402 }
33403 this._more = false;
33404 this._backtrack = false;
33405 this._input = this._input.slice(match[0].length);
33406 this.matched += match[0];
33407 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
33408 if (this.done && this._input) {
33409 this.done = false;
33410 }
33411 if (token2) {
33412 return token2;
33413 } else if (this._backtrack) {
33414 for (var k in backup) {
33415 this[k] = backup[k];
33416 }
33417 return false;
33418 }
33419 return false;
33420 },
33421 // return next match in input
33422 next: function() {
33423 if (this.done) {
33424 return this.EOF;
33425 }
33426 if (!this._input) {
33427 this.done = true;
33428 }
33429 var token2, match, tempMatch, index2;
33430 if (!this._more) {
33431 this.yytext = "";
33432 this.match = "";
33433 }
33434 var rules = this._currentRules();
33435 for (var i2 = 0; i2 < rules.length; i2++) {
33436 tempMatch = this._input.match(this.rules[rules[i2]]);
33437 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
33438 match = tempMatch;
33439 index2 = i2;
33440 if (this.options.backtrack_lexer) {
33441 token2 = this.test_match(tempMatch, rules[i2]);
33442 if (token2 !== false) {
33443 return token2;
33444 } else if (this._backtrack) {
33445 match = false;
33446 continue;
33447 } else {
33448 return false;
33449 }
33450 } else if (!this.options.flex) {
33451 break;
33452 }
33453 }
33454 }
33455 if (match) {
33456 token2 = this.test_match(match, rules[index2]);
33457 if (token2 !== false) {
33458 return token2;
33459 }
33460 return false;
33461 }
33462 if (this._input === "") {
33463 return this.EOF;
33464 } else {
33465 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
33466 text: "",
33467 token: null,
33468 line: this.yylineno
33469 });
33470 }
33471 },
33472 // return next match that has a token
33473 lex: function lex2() {
33474 var r = this.next();
33475 if (r) {
33476 return r;
33477 } else {
33478 return this.lex();
33479 }
33480 },
33481 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
33482 begin: function begin(condition) {
33483 this.conditionStack.push(condition);
33484 },
33485 // pop the previously active lexer condition state off the condition stack
33486 popState: function popState() {
33487 var n = this.conditionStack.length - 1;
33488 if (n > 0) {
33489 return this.conditionStack.pop();
33490 } else {
33491 return this.conditionStack[0];
33492 }
33493 },
33494 // produce the lexer rule set which is active for the currently active lexer condition state
33495 _currentRules: function _currentRules() {
33496 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
33497 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
33498 } else {
33499 return this.conditions["INITIAL"].rules;
33500 }
33501 },
33502 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
33503 topState: function topState(n) {
33504 n = this.conditionStack.length - 1 - Math.abs(n || 0);
33505 if (n >= 0) {
33506 return this.conditionStack[n];
33507 } else {
33508 return "INITIAL";
33509 }
33510 },
33511 // alias for begin(condition)
33512 pushState: function pushState(condition) {
33513 this.begin(condition);
33514 },
33515 // return the number of states currently on the stack
33516 stateStackSize: function stateStackSize() {
33517 return this.conditionStack.length;
33518 },
33519 options: { "case-insensitive": true },
33520 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
33521 switch ($avoiding_name_collisions) {
33522 case 0:
33523 this.begin("acc_title");
33524 return 25;
33525 case 1:
33526 this.popState();
33527 return "acc_title_value";
33528 case 2:
33529 this.begin("acc_descr");
33530 return 27;
33531 case 3:
33532 this.popState();
33533 return "acc_descr_value";
33534 case 4:
33535 this.begin("acc_descr_multiline");
33536 break;
33537 case 5:
33538 this.popState();
33539 break;
33540 case 6:
33541 return "acc_descr_multiline_value";
33542 case 7:
33543 this.begin("open_directive");
33544 return 52;
33545 case 8:
33546 this.begin("type_directive");
33547 return 53;
33548 case 9:
33549 this.popState();
33550 this.begin("arg_directive");
33551 return 15;
33552 case 10:
33553 this.popState();
33554 this.popState();
33555 return 55;
33556 case 11:
33557 return 54;
33558 case 12:
33559 return 11;
33560 case 13:
33561 break;
33562 case 14:
33563 return 9;
33564 case 15:
33565 return 31;
33566 case 16:
33567 return 51;
33568 case 17:
33569 return 4;
33570 case 18:
33571 this.begin("block");
33572 return 20;
33573 case 19:
33574 return 39;
33575 case 20:
33576 break;
33577 case 21:
33578 return 40;
33579 case 22:
33580 return 37;
33581 case 23:
33582 return 37;
33583 case 24:
33584 return 41;
33585 case 25:
33586 break;
33587 case 26:
33588 this.popState();
33589 return 22;
33590 case 27:
33591 return yy_.yytext[0];
33592 case 28:
33593 return 44;
33594 case 29:
33595 return 46;
33596 case 30:
33597 return 46;
33598 case 31:
33599 return 46;
33600 case 32:
33601 return 44;
33602 case 33:
33603 return 44;
33604 case 34:
33605 return 45;
33606 case 35:
33607 return 45;
33608 case 36:
33609 return 45;
33610 case 37:
33611 return 45;
33612 case 38:
33613 return 45;
33614 case 39:
33615 return 46;
33616 case 40:
33617 return 45;
33618 case 41:
33619 return 46;
33620 case 42:
33621 return 47;
33622 case 43:
33623 return 47;
33624 case 44:
33625 return 47;
33626 case 45:
33627 return 47;
33628 case 46:
33629 return 44;
33630 case 47:
33631 return 45;
33632 case 48:
33633 return 46;
33634 case 49:
33635 return 48;
33636 case 50:
33637 return 49;
33638 case 51:
33639 return 50;
33640 case 52:
33641 return 50;
33642 case 53:
33643 return 49;
33644 case 54:
33645 return 49;
33646 case 55:
33647 return 49;
33648 case 56:
33649 return 30;
33650 case 57:
33651 return yy_.yytext[0];
33652 case 58:
33653 return 6;
33654 }
33655 },
33656 rules: [/^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:[\s]+)/i, /^(?:"[^"%\r\n\v\b\\]+")/i, /^(?:"[^"]*")/i, /^(?:erDiagram\b)/i, /^(?:\{)/i, /^(?:,)/i, /^(?:\s+)/i, /^(?:\b((?:PK)|(?:FK)|(?:UK))\b)/i, /^(?:(.*?)[~](.*?)*[~])/i, /^(?:[A-Za-z_][A-Za-z0-9\-_\[\]\(\)]*)/i, /^(?:"[^"]*")/i, /^(?:[\n]+)/i, /^(?:\})/i, /^(?:.)/i, /^(?:one or zero\b)/i, /^(?:one or more\b)/i, /^(?:one or many\b)/i, /^(?:1\+)/i, /^(?:\|o\b)/i, /^(?:zero or one\b)/i, /^(?:zero or more\b)/i, /^(?:zero or many\b)/i, /^(?:0\+)/i, /^(?:\}o\b)/i, /^(?:many\(0\))/i, /^(?:many\(1\))/i, /^(?:many\b)/i, /^(?:\}\|)/i, /^(?:one\b)/i, /^(?:only one\b)/i, /^(?:1\b)/i, /^(?:\|\|)/i, /^(?:o\|)/i, /^(?:o\{)/i, /^(?:\|\{)/i, /^(?:\s*u\b)/i, /^(?:\.\.)/i, /^(?:--)/i, /^(?:to\b)/i, /^(?:optionally to\b)/i, /^(?:\.-)/i, /^(?:-\.)/i, /^(?:[A-Za-z][A-Za-z0-9\-_]*)/i, /^(?:.)/i, /^(?:$)/i],
33657 conditions: { "acc_descr_multiline": { "rules": [5, 6], "inclusive": false }, "acc_descr": { "rules": [3], "inclusive": false }, "acc_title": { "rules": [1], "inclusive": false }, "open_directive": { "rules": [8], "inclusive": false }, "type_directive": { "rules": [9, 10], "inclusive": false }, "arg_directive": { "rules": [10, 11], "inclusive": false }, "block": { "rules": [19, 20, 21, 22, 23, 24, 25, 26, 27], "inclusive": false }, "INITIAL": { "rules": [0, 2, 4, 7, 12, 13, 14, 15, 16, 17, 18, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58], "inclusive": true } }
33658 };
33659 return lexer2;
33660 }();
33661 parser2.lexer = lexer;
33662 function Parser() {
33663 this.yy = {};
33664 }
33665 Parser.prototype = parser2;
33666 parser2.Parser = Parser;
33667 return new Parser();
33668 }();
33669 parser$l.parser = parser$l;
33670 const erParser = parser$l;
33671 let entities = {};
33672 let relationships = [];
33673 const Cardinality = {
33674 ZERO_OR_ONE: "ZERO_OR_ONE",
33675 ZERO_OR_MORE: "ZERO_OR_MORE",
33676 ONE_OR_MORE: "ONE_OR_MORE",
33677 ONLY_ONE: "ONLY_ONE",
33678 MD_PARENT: "MD_PARENT"
33679 };
33680 const Identification = {
33681 NON_IDENTIFYING: "NON_IDENTIFYING",
33682 IDENTIFYING: "IDENTIFYING"
33683 };
33684 const parseDirective$a = function(statement, context, type2) {
33685 mermaidAPI.parseDirective(this, statement, context, type2);
33686 };
33687 const addEntity = function(name2) {
33688 if (entities[name2] === void 0) {
33689 entities[name2] = { attributes: [] };
33690 log$1.info("Added new entity :", name2);
33691 }
33692 return entities[name2];
33693 };
33694 const getEntities = () => entities;
33695 const addAttributes = function(entityName, attribs) {
33696 let entity = addEntity(entityName);
33697 let i2;
33698 for (i2 = attribs.length - 1; i2 >= 0; i2--) {
33699 entity.attributes.push(attribs[i2]);
33700 log$1.debug("Added attribute ", attribs[i2].attributeName);
33701 }
33702 };
33703 const addRelationship$1 = function(entA, rolA, entB, rSpec) {
33704 let rel = {
33705 entityA: entA,
33706 roleA: rolA,
33707 entityB: entB,
33708 relSpec: rSpec
33709 };
33710 relationships.push(rel);
33711 log$1.debug("Added new relationship :", rel);
33712 };
33713 const getRelationships$1 = () => relationships;
33714 const clear$c = function() {
33715 entities = {};
33716 relationships = [];
33717 clear$j();
33718 };
33719 const erDb = {
33720 Cardinality,
33721 Identification,
33722 parseDirective: parseDirective$a,
33723 getConfig: () => getConfig$1().er,
33724 addEntity,
33725 addAttributes,
33726 getEntities,
33727 addRelationship: addRelationship$1,
33728 getRelationships: getRelationships$1,
33729 clear: clear$c,
33730 setAccTitle,
33731 getAccTitle,
33732 setAccDescription,
33733 getAccDescription,
33734 setDiagramTitle,
33735 getDiagramTitle
33736 };
33737 const ERMarkers = {
33738 ONLY_ONE_START: "ONLY_ONE_START",
33739 ONLY_ONE_END: "ONLY_ONE_END",
33740 ZERO_OR_ONE_START: "ZERO_OR_ONE_START",
33741 ZERO_OR_ONE_END: "ZERO_OR_ONE_END",
33742 ONE_OR_MORE_START: "ONE_OR_MORE_START",
33743 ONE_OR_MORE_END: "ONE_OR_MORE_END",
33744 ZERO_OR_MORE_START: "ZERO_OR_MORE_START",
33745 ZERO_OR_MORE_END: "ZERO_OR_MORE_END",
33746 MD_PARENT_END: "MD_PARENT_END",
33747 MD_PARENT_START: "MD_PARENT_START"
33748 };
33749 const insertMarkers$2 = function(elem, conf2) {
33750 let marker;
33751 elem.append("defs").append("marker").attr("id", ERMarkers.MD_PARENT_START).attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
33752 elem.append("defs").append("marker").attr("id", ERMarkers.MD_PARENT_END).attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
33753 elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M9,0 L9,18 M15,0 L15,18");
33754 elem.append("defs").append("marker").attr("id", ERMarkers.ONLY_ONE_END).attr("refX", 18).attr("refY", 9).attr("markerWidth", 18).attr("markerHeight", 18).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M3,0 L3,18 M9,0 L9,18");
33755 marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_START).attr("refX", 0).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
33756 marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 21).attr("cy", 9).attr("r", 6);
33757 marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M9,0 L9,18");
33758 marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_ONE_END).attr("refX", 30).attr("refY", 9).attr("markerWidth", 30).attr("markerHeight", 18).attr("orient", "auto");
33759 marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 9).attr("r", 6);
33760 marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M21,0 L21,18");
33761 elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M0,18 Q 18,0 36,18 Q 18,36 0,18 M42,9 L42,27");
33762 elem.append("defs").append("marker").attr("id", ERMarkers.ONE_OR_MORE_END).attr("refX", 27).attr("refY", 18).attr("markerWidth", 45).attr("markerHeight", 36).attr("orient", "auto").append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M3,9 L3,27 M9,18 Q27,0 45,18 Q27,36 9,18");
33763 marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_START).attr("refX", 18).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
33764 marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 48).attr("cy", 18).attr("r", 6);
33765 marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M0,18 Q18,0 36,18 Q18,36 0,18");
33766 marker = elem.append("defs").append("marker").attr("id", ERMarkers.ZERO_OR_MORE_END).attr("refX", 39).attr("refY", 18).attr("markerWidth", 57).attr("markerHeight", 36).attr("orient", "auto");
33767 marker.append("circle").attr("stroke", conf2.stroke).attr("fill", "white").attr("cx", 9).attr("cy", 18).attr("r", 6);
33768 marker.append("path").attr("stroke", conf2.stroke).attr("fill", "none").attr("d", "M21,18 Q39,0 57,18 Q39,36 21,18");
33769 return;
33770 };
33771 const erMarkers = {
33772 ERMarkers,
33773 insertMarkers: insertMarkers$2
33774 };
33775 const REGEX = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
33776 function validate(uuid) {
33777 return typeof uuid === "string" && REGEX.test(uuid);
33778 }
33779 const byteToHex = [];
33780 for (let i2 = 0; i2 < 256; ++i2) {
33781 byteToHex.push((i2 + 256).toString(16).slice(1));
33782 }
33783 function unsafeStringify(arr, offset = 0) {
33784 return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + "-" + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + "-" + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + "-" + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + "-" + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();
33785 }
33786 function parse(uuid) {
33787 if (!validate(uuid)) {
33788 throw TypeError("Invalid UUID");
33789 }
33790 let v;
33791 const arr = new Uint8Array(16);
33792 arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;
33793 arr[1] = v >>> 16 & 255;
33794 arr[2] = v >>> 8 & 255;
33795 arr[3] = v & 255;
33796 arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;
33797 arr[5] = v & 255;
33798 arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;
33799 arr[7] = v & 255;
33800 arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;
33801 arr[9] = v & 255;
33802 arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 1099511627776 & 255;
33803 arr[11] = v / 4294967296 & 255;
33804 arr[12] = v >>> 24 & 255;
33805 arr[13] = v >>> 16 & 255;
33806 arr[14] = v >>> 8 & 255;
33807 arr[15] = v & 255;
33808 return arr;
33809 }
33810 function stringToBytes(str2) {
33811 str2 = unescape(encodeURIComponent(str2));
33812 const bytes = [];
33813 for (let i2 = 0; i2 < str2.length; ++i2) {
33814 bytes.push(str2.charCodeAt(i2));
33815 }
33816 return bytes;
33817 }
33818 const DNS = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
33819 const URL = "6ba7b811-9dad-11d1-80b4-00c04fd430c8";
33820 function v35(name2, version2, hashfunc) {
33821 function generateUUID(value, namespace2, buf, offset) {
33822 var _namespace;
33823 if (typeof value === "string") {
33824 value = stringToBytes(value);
33825 }
33826 if (typeof namespace2 === "string") {
33827 namespace2 = parse(namespace2);
33828 }
33829 if (((_namespace = namespace2) === null || _namespace === void 0 ? void 0 : _namespace.length) !== 16) {
33830 throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");
33831 }
33832 let bytes = new Uint8Array(16 + value.length);
33833 bytes.set(namespace2);
33834 bytes.set(value, namespace2.length);
33835 bytes = hashfunc(bytes);
33836 bytes[6] = bytes[6] & 15 | version2;
33837 bytes[8] = bytes[8] & 63 | 128;
33838 if (buf) {
33839 offset = offset || 0;
33840 for (let i2 = 0; i2 < 16; ++i2) {
33841 buf[offset + i2] = bytes[i2];
33842 }
33843 return buf;
33844 }
33845 return unsafeStringify(bytes);
33846 }
33847 try {
33848 generateUUID.name = name2;
33849 } catch (err) {
33850 }
33851 generateUUID.DNS = DNS;
33852 generateUUID.URL = URL;
33853 return generateUUID;
33854 }
33855 function f(s, x2, y2, z) {
33856 switch (s) {
33857 case 0:
33858 return x2 & y2 ^ ~x2 & z;
33859 case 1:
33860 return x2 ^ y2 ^ z;
33861 case 2:
33862 return x2 & y2 ^ x2 & z ^ y2 & z;
33863 case 3:
33864 return x2 ^ y2 ^ z;
33865 }
33866 }
33867 function ROTL(x2, n) {
33868 return x2 << n | x2 >>> 32 - n;
33869 }
33870 function sha1(bytes) {
33871 const K2 = [1518500249, 1859775393, 2400959708, 3395469782];
33872 const H2 = [1732584193, 4023233417, 2562383102, 271733878, 3285377520];
33873 if (typeof bytes === "string") {
33874 const msg = unescape(encodeURIComponent(bytes));
33875 bytes = [];
33876 for (let i2 = 0; i2 < msg.length; ++i2) {
33877 bytes.push(msg.charCodeAt(i2));
33878 }
33879 } else if (!Array.isArray(bytes)) {
33880 bytes = Array.prototype.slice.call(bytes);
33881 }
33882 bytes.push(128);
33883 const l = bytes.length / 4 + 2;
33884 const N = Math.ceil(l / 16);
33885 const M2 = new Array(N);
33886 for (let i2 = 0; i2 < N; ++i2) {
33887 const arr = new Uint32Array(16);
33888 for (let j = 0; j < 16; ++j) {
33889 arr[j] = bytes[i2 * 64 + j * 4] << 24 | bytes[i2 * 64 + j * 4 + 1] << 16 | bytes[i2 * 64 + j * 4 + 2] << 8 | bytes[i2 * 64 + j * 4 + 3];
33890 }
33891 M2[i2] = arr;
33892 }
33893 M2[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);
33894 M2[N - 1][14] = Math.floor(M2[N - 1][14]);
33895 M2[N - 1][15] = (bytes.length - 1) * 8 & 4294967295;
33896 for (let i2 = 0; i2 < N; ++i2) {
33897 const W2 = new Uint32Array(80);
33898 for (let t4 = 0; t4 < 16; ++t4) {
33899 W2[t4] = M2[i2][t4];
33900 }
33901 for (let t4 = 16; t4 < 80; ++t4) {
33902 W2[t4] = ROTL(W2[t4 - 3] ^ W2[t4 - 8] ^ W2[t4 - 14] ^ W2[t4 - 16], 1);
33903 }
33904 let a = H2[0];
33905 let b = H2[1];
33906 let c2 = H2[2];
33907 let d = H2[3];
33908 let e = H2[4];
33909 for (let t4 = 0; t4 < 80; ++t4) {
33910 const s = Math.floor(t4 / 20);
33911 const T = ROTL(a, 5) + f(s, b, c2, d) + e + K2[s] + W2[t4] >>> 0;
33912 e = d;
33913 d = c2;
33914 c2 = ROTL(b, 30) >>> 0;
33915 b = a;
33916 a = T;
33917 }
33918 H2[0] = H2[0] + a >>> 0;
33919 H2[1] = H2[1] + b >>> 0;
33920 H2[2] = H2[2] + c2 >>> 0;
33921 H2[3] = H2[3] + d >>> 0;
33922 H2[4] = H2[4] + e >>> 0;
33923 }
33924 return [H2[0] >> 24 & 255, H2[0] >> 16 & 255, H2[0] >> 8 & 255, H2[0] & 255, H2[1] >> 24 & 255, H2[1] >> 16 & 255, H2[1] >> 8 & 255, H2[1] & 255, H2[2] >> 24 & 255, H2[2] >> 16 & 255, H2[2] >> 8 & 255, H2[2] & 255, H2[3] >> 24 & 255, H2[3] >> 16 & 255, H2[3] >> 8 & 255, H2[3] & 255, H2[4] >> 24 & 255, H2[4] >> 16 & 255, H2[4] >> 8 & 255, H2[4] & 255];
33925 }
33926 const v5 = v35("v5", 80, sha1);
33927 const uuid5 = v5;
33928 const BAD_ID_CHARS_REGEXP = /[^\dA-Za-z](\W)*/g;
33929 let conf$7 = {};
33930 let entityNameIds = /* @__PURE__ */ new Map();
33931 const setConf$6 = function(cnf) {
33932 const keys2 = Object.keys(cnf);
33933 for (const key of keys2) {
33934 conf$7[key] = cnf[key];
33935 }
33936 };
33937 const drawAttributes = (groupNode, entityTextNode, attributes) => {
33938 const heightPadding = conf$7.entityPadding / 3;
33939 const widthPadding = conf$7.entityPadding / 3;
33940 const attrFontSize = conf$7.fontSize * 0.85;
33941 const labelBBox = entityTextNode.node().getBBox();
33942 const attributeNodes = [];
33943 let hasKeyType = false;
33944 let hasComment = false;
33945 let maxTypeWidth = 0;
33946 let maxNameWidth = 0;
33947 let maxKeyWidth = 0;
33948 let maxCommentWidth = 0;
33949 let cumulativeHeight = labelBBox.height + heightPadding * 2;
33950 let attrNum = 1;
33951 attributes.forEach((item) => {
33952 if (item.attributeKeyTypeList !== void 0 && item.attributeKeyTypeList.length > 0) {
33953 hasKeyType = true;
33954 }
33955 if (item.attributeComment !== void 0) {
33956 hasComment = true;
33957 }
33958 });
33959 attributes.forEach((item) => {
33960 const attrPrefix = `${entityTextNode.node().id}-attr-${attrNum}`;
33961 let nodeHeight = 0;
33962 const attributeType = parseGenericTypes(item.attributeType);
33963 const typeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-type`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig$1().fontFamily).style("font-size", attrFontSize + "px").text(attributeType);
33964 const nameNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-name`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig$1().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeName);
33965 const attributeNode = {};
33966 attributeNode.tn = typeNode;
33967 attributeNode.nn = nameNode;
33968 const typeBBox = typeNode.node().getBBox();
33969 const nameBBox = nameNode.node().getBBox();
33970 maxTypeWidth = Math.max(maxTypeWidth, typeBBox.width);
33971 maxNameWidth = Math.max(maxNameWidth, nameBBox.width);
33972 nodeHeight = Math.max(typeBBox.height, nameBBox.height);
33973 if (hasKeyType) {
33974 const keyTypeNodeText = item.attributeKeyTypeList !== void 0 ? item.attributeKeyTypeList.join(",") : "";
33975 const keyTypeNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-key`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig$1().fontFamily).style("font-size", attrFontSize + "px").text(keyTypeNodeText);
33976 attributeNode.kn = keyTypeNode;
33977 const keyTypeBBox = keyTypeNode.node().getBBox();
33978 maxKeyWidth = Math.max(maxKeyWidth, keyTypeBBox.width);
33979 nodeHeight = Math.max(nodeHeight, keyTypeBBox.height);
33980 }
33981 if (hasComment) {
33982 const commentNode = groupNode.append("text").classed("er entityLabel", true).attr("id", `${attrPrefix}-comment`).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "left").style("font-family", getConfig$1().fontFamily).style("font-size", attrFontSize + "px").text(item.attributeComment || "");
33983 attributeNode.cn = commentNode;
33984 const commentNodeBBox = commentNode.node().getBBox();
33985 maxCommentWidth = Math.max(maxCommentWidth, commentNodeBBox.width);
33986 nodeHeight = Math.max(nodeHeight, commentNodeBBox.height);
33987 }
33988 attributeNode.height = nodeHeight;
33989 attributeNodes.push(attributeNode);
33990 cumulativeHeight += nodeHeight + heightPadding * 2;
33991 attrNum += 1;
33992 });
33993 let widthPaddingFactor = 4;
33994 if (hasKeyType) {
33995 widthPaddingFactor += 2;
33996 }
33997 if (hasComment) {
33998 widthPaddingFactor += 2;
33999 }
34000 const maxWidth = maxTypeWidth + maxNameWidth + maxKeyWidth + maxCommentWidth;
34001 const bBox = {
34002 width: Math.max(
34003 conf$7.minEntityWidth,
34004 Math.max(
34005 labelBBox.width + conf$7.entityPadding * 2,
34006 maxWidth + widthPadding * widthPaddingFactor
34007 )
34008 ),
34009 height: attributes.length > 0 ? cumulativeHeight : Math.max(conf$7.minEntityHeight, labelBBox.height + conf$7.entityPadding * 2)
34010 };
34011 if (attributes.length > 0) {
34012 const spareColumnWidth = Math.max(
34013 0,
34014 (bBox.width - maxWidth - widthPadding * widthPaddingFactor) / (widthPaddingFactor / 2)
34015 );
34016 entityTextNode.attr(
34017 "transform",
34018 "translate(" + bBox.width / 2 + "," + (heightPadding + labelBBox.height / 2) + ")"
34019 );
34020 let heightOffset = labelBBox.height + heightPadding * 2;
34021 let attribStyle = "attributeBoxOdd";
34022 attributeNodes.forEach((attributeNode) => {
34023 const alignY = heightOffset + heightPadding + attributeNode.height / 2;
34024 attributeNode.tn.attr("transform", "translate(" + widthPadding + "," + alignY + ")");
34025 const typeRect = groupNode.insert("rect", "#" + attributeNode.tn.node().id).classed(`er ${attribStyle}`, true).attr("x", 0).attr("y", heightOffset).attr("width", maxTypeWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
34026 const nameXOffset = parseFloat(typeRect.attr("x")) + parseFloat(typeRect.attr("width"));
34027 attributeNode.nn.attr(
34028 "transform",
34029 "translate(" + (nameXOffset + widthPadding) + "," + alignY + ")"
34030 );
34031 const nameRect = groupNode.insert("rect", "#" + attributeNode.nn.node().id).classed(`er ${attribStyle}`, true).attr("x", nameXOffset).attr("y", heightOffset).attr("width", maxNameWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
34032 let keyTypeAndCommentXOffset = parseFloat(nameRect.attr("x")) + parseFloat(nameRect.attr("width"));
34033 if (hasKeyType) {
34034 attributeNode.kn.attr(
34035 "transform",
34036 "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")"
34037 );
34038 const keyTypeRect = groupNode.insert("rect", "#" + attributeNode.kn.node().id).classed(`er ${attribStyle}`, true).attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxKeyWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
34039 keyTypeAndCommentXOffset = parseFloat(keyTypeRect.attr("x")) + parseFloat(keyTypeRect.attr("width"));
34040 }
34041 if (hasComment) {
34042 attributeNode.cn.attr(
34043 "transform",
34044 "translate(" + (keyTypeAndCommentXOffset + widthPadding) + "," + alignY + ")"
34045 );
34046 groupNode.insert("rect", "#" + attributeNode.cn.node().id).classed(`er ${attribStyle}`, "true").attr("x", keyTypeAndCommentXOffset).attr("y", heightOffset).attr("width", maxCommentWidth + widthPadding * 2 + spareColumnWidth).attr("height", attributeNode.height + heightPadding * 2);
34047 }
34048 heightOffset += attributeNode.height + heightPadding * 2;
34049 attribStyle = attribStyle === "attributeBoxOdd" ? "attributeBoxEven" : "attributeBoxOdd";
34050 });
34051 } else {
34052 bBox.height = Math.max(conf$7.minEntityHeight, cumulativeHeight);
34053 entityTextNode.attr("transform", "translate(" + bBox.width / 2 + "," + bBox.height / 2 + ")");
34054 }
34055 return bBox;
34056 };
34057 const drawEntities = function(svgNode2, entities2, graph) {
34058 const keys2 = Object.keys(entities2);
34059 let firstOne;
34060 keys2.forEach(function(entityName) {
34061 const entityId = generateId(entityName, "entity");
34062 entityNameIds.set(entityName, entityId);
34063 const groupNode = svgNode2.append("g").attr("id", entityId);
34064 firstOne = firstOne === void 0 ? entityId : firstOne;
34065 const textId = "text-" + entityId;
34066 const textNode = groupNode.append("text").classed("er entityLabel", true).attr("id", textId).attr("x", 0).attr("y", 0).style("dominant-baseline", "middle").style("text-anchor", "middle").style("font-family", getConfig$1().fontFamily).style("font-size", conf$7.fontSize + "px").text(entityName);
34067 const { width: entityWidth, height: entityHeight } = drawAttributes(
34068 groupNode,
34069 textNode,
34070 entities2[entityName].attributes
34071 );
34072 const rectNode = groupNode.insert("rect", "#" + textId).classed("er entityBox", true).attr("x", 0).attr("y", 0).attr("width", entityWidth).attr("height", entityHeight);
34073 const rectBBox = rectNode.node().getBBox();
34074 graph.setNode(entityId, {
34075 width: rectBBox.width,
34076 height: rectBBox.height,
34077 shape: "rect",
34078 id: entityId
34079 });
34080 });
34081 return firstOne;
34082 };
34083 const adjustEntities$1 = function(svgNode2, graph) {
34084 graph.nodes().forEach(function(v) {
34085 if (v !== void 0 && graph.node(v) !== void 0) {
34086 svgNode2.select("#" + v).attr(
34087 "transform",
34088 "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y - graph.node(v).height / 2) + " )"
34089 );
34090 }
34091 });
34092 };
34093 const getEdgeName = function(rel) {
34094 return (rel.entityA + rel.roleA + rel.entityB).replace(/\s/g, "");
34095 };
34096 const addRelationships$1 = function(relationships2, g) {
34097 relationships2.forEach(function(r) {
34098 g.setEdge(
34099 entityNameIds.get(r.entityA),
34100 entityNameIds.get(r.entityB),
34101 { relationship: r },
34102 getEdgeName(r)
34103 );
34104 });
34105 return relationships2;
34106 };
34107 let relCnt$1 = 0;
34108 const drawRelationshipFromLayout$1 = function(svg2, rel, g, insert, diagObj) {
34109 relCnt$1++;
34110 const edge = g.edge(
34111 entityNameIds.get(rel.entityA),
34112 entityNameIds.get(rel.entityB),
34113 getEdgeName(rel)
34114 );
34115 const lineFunction = line$1().x(function(d) {
34116 return d.x;
34117 }).y(function(d) {
34118 return d.y;
34119 }).curve(curveBasis);
34120 const svgPath = svg2.insert("path", "#" + insert).classed("er relationshipLine", true).attr("d", lineFunction(edge.points)).style("stroke", conf$7.stroke).style("fill", "none");
34121 if (rel.relSpec.relType === diagObj.db.Identification.NON_IDENTIFYING) {
34122 svgPath.attr("stroke-dasharray", "8,8");
34123 }
34124 let url = "";
34125 if (conf$7.arrowMarkerAbsolute) {
34126 url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
34127 url = url.replace(/\(/g, "\\(");
34128 url = url.replace(/\)/g, "\\)");
34129 }
34130 switch (rel.relSpec.cardA) {
34131 case diagObj.db.Cardinality.ZERO_OR_ONE:
34132 svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_ONE_END + ")");
34133 break;
34134 case diagObj.db.Cardinality.ZERO_OR_MORE:
34135 svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_MORE_END + ")");
34136 break;
34137 case diagObj.db.Cardinality.ONE_OR_MORE:
34138 svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ONE_OR_MORE_END + ")");
34139 break;
34140 case diagObj.db.Cardinality.ONLY_ONE:
34141 svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.ONLY_ONE_END + ")");
34142 break;
34143 case diagObj.db.Cardinality.MD_PARENT:
34144 svgPath.attr("marker-end", "url(" + url + "#" + erMarkers.ERMarkers.MD_PARENT_END + ")");
34145 break;
34146 }
34147 switch (rel.relSpec.cardB) {
34148 case diagObj.db.Cardinality.ZERO_OR_ONE:
34149 svgPath.attr(
34150 "marker-start",
34151 "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_ONE_START + ")"
34152 );
34153 break;
34154 case diagObj.db.Cardinality.ZERO_OR_MORE:
34155 svgPath.attr(
34156 "marker-start",
34157 "url(" + url + "#" + erMarkers.ERMarkers.ZERO_OR_MORE_START + ")"
34158 );
34159 break;
34160 case diagObj.db.Cardinality.ONE_OR_MORE:
34161 svgPath.attr(
34162 "marker-start",
34163 "url(" + url + "#" + erMarkers.ERMarkers.ONE_OR_MORE_START + ")"
34164 );
34165 break;
34166 case diagObj.db.Cardinality.ONLY_ONE:
34167 svgPath.attr("marker-start", "url(" + url + "#" + erMarkers.ERMarkers.ONLY_ONE_START + ")");
34168 break;
34169 case diagObj.db.Cardinality.MD_PARENT:
34170 svgPath.attr("marker-start", "url(" + url + "#" + erMarkers.ERMarkers.MD_PARENT_START + ")");
34171 break;
34172 }
34173 const len = svgPath.node().getTotalLength();
34174 const labelPoint = svgPath.node().getPointAtLength(len * 0.5);
34175 const labelId = "rel" + relCnt$1;
34176 const labelNode = svg2.append("text").classed("er relationshipLabel", true).attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).style("text-anchor", "middle").style("dominant-baseline", "middle").style("font-family", getConfig$1().fontFamily).style("font-size", conf$7.fontSize + "px").text(rel.roleA);
34177 const labelBBox = labelNode.node().getBBox();
34178 svg2.insert("rect", "#" + labelId).classed("er relationshipLabelBox", true).attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height);
34179 };
34180 const draw$f = function(text2, id2, _version, diagObj) {
34181 conf$7 = getConfig$1().er;
34182 log$1.info("Drawing ER diagram");
34183 const securityLevel = getConfig$1().securityLevel;
34184 let sandboxElement;
34185 if (securityLevel === "sandbox") {
34186 sandboxElement = select("#i" + id2);
34187 }
34188 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
34189 const svg2 = root2.select(`[id='${id2}']`);
34190 erMarkers.insertMarkers(svg2, conf$7);
34191 let g;
34192 g = new Graph({
34193 multigraph: true,
34194 directed: true,
34195 compound: false
34196 }).setGraph({
34197 rankdir: conf$7.layoutDirection,
34198 marginx: 20,
34199 marginy: 20,
34200 nodesep: 100,
34201 edgesep: 100,
34202 ranksep: 100
34203 }).setDefaultEdgeLabel(function() {
34204 return {};
34205 });
34206 const firstEntity = drawEntities(svg2, diagObj.db.getEntities(), g);
34207 const relationships2 = addRelationships$1(diagObj.db.getRelationships(), g);
34208 layout(g);
34209 adjustEntities$1(svg2, g);
34210 relationships2.forEach(function(rel) {
34211 drawRelationshipFromLayout$1(svg2, rel, g, firstEntity, diagObj);
34212 });
34213 const padding2 = conf$7.diagramPadding;
34214 utils.insertTitle(svg2, "entityTitleText", conf$7.titleTopMargin, diagObj.db.getDiagramTitle());
34215 const svgBounds = svg2.node().getBBox();
34216 const width2 = svgBounds.width + padding2 * 2;
34217 const height2 = svgBounds.height + padding2 * 2;
34218 configureSvgSize(svg2, height2, width2, conf$7.useMaxWidth);
34219 svg2.attr("viewBox", `${svgBounds.x - padding2} ${svgBounds.y - padding2} ${width2} ${height2}`);
34220 };
34221 const MERMAID_ERDIAGRAM_UUID = "28e9f9db-3c8d-5aa5-9faf-44286ae5937c";
34222 function generateId(str2 = "", prefix = "") {
34223 const simplifiedStr = str2.replace(BAD_ID_CHARS_REGEXP, "");
34224 return `${strWithHyphen(prefix)}${strWithHyphen(simplifiedStr)}${uuid5(
34225 str2,
34226 MERMAID_ERDIAGRAM_UUID
34227 )}`;
34228 }
34229 function strWithHyphen(str2 = "") {
34230 return str2.length > 0 ? `${str2}-` : "";
34231 }
34232 const erRenderer = {
34233 setConf: setConf$6,
34234 draw: draw$f
34235 };
34236 const getStyles$c = (options2) => `
34237 .entityBox {
34238 fill: ${options2.mainBkg};
34239 stroke: ${options2.nodeBorder};
34240 }
34241
34242 .attributeBoxOdd {
34243 fill: ${options2.attributeBackgroundColorOdd};
34244 stroke: ${options2.nodeBorder};
34245 }
34246
34247 .attributeBoxEven {
34248 fill: ${options2.attributeBackgroundColorEven};
34249 stroke: ${options2.nodeBorder};
34250 }
34251
34252 .relationshipLabelBox {
34253 fill: ${options2.tertiaryColor};
34254 opacity: 0.7;
34255 background-color: ${options2.tertiaryColor};
34256 rect {
34257 opacity: 0.5;
34258 }
34259 }
34260
34261 .relationshipLine {
34262 stroke: ${options2.lineColor};
34263 }
34264
34265 .entityTitleText {
34266 text-anchor: middle;
34267 font-size: 18px;
34268 fill: ${options2.textColor};
34269 }
34270 #MD_PARENT_START {
34271 fill: #f5f5f5 !important;
34272 stroke: ${options2.lineColor} !important;
34273 stroke-width: 1;
34274 }
34275 #MD_PARENT_END {
34276 fill: #f5f5f5 !important;
34277 stroke: ${options2.lineColor} !important;
34278 stroke-width: 1;
34279 }
34280
34281`;
34282 const erStyles = getStyles$c;
34283 const diagram$f = {
34284 parser: erParser,
34285 db: erDb,
34286 renderer: erRenderer,
34287 styles: erStyles
34288 };
34289 const erDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
34290 __proto__: null,
34291 diagram: diagram$f
34292 }, Symbol.toStringTag, { value: "Module" }));
34293 var parser$k = function() {
34294 var o = function(k, v, o2, l) {
34295 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
34296 ;
34297 return o2;
34298 }, $V0 = [1, 4], $V1 = [1, 7], $V2 = [1, 5], $V3 = [1, 9], $V4 = [1, 6], $V5 = [2, 6], $V6 = [1, 16], $V7 = [6, 8, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40, 50, 55], $V8 = [8, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40], $V9 = [8, 13, 14, 20, 22, 24, 25, 27, 29, 32, 37, 40], $Va = [1, 26], $Vb = [6, 8, 14, 50, 55], $Vc = [8, 14, 55], $Vd = [1, 53], $Ve = [1, 52], $Vf = [8, 14, 30, 33, 35, 38, 55], $Vg = [1, 67], $Vh = [1, 68], $Vi = [1, 69], $Vj = [8, 14, 33, 35, 42, 55];
34299 var parser2 = {
34300 trace: function trace() {
34301 },
34302 yy: {},
34303 symbols_: { "error": 2, "start": 3, "eol": 4, "directive": 5, "GG": 6, "document": 7, "EOF": 8, ":": 9, "DIR": 10, "options": 11, "body": 12, "OPT": 13, "NL": 14, "line": 15, "statement": 16, "commitStatement": 17, "mergeStatement": 18, "cherryPickStatement": 19, "acc_title": 20, "acc_title_value": 21, "acc_descr": 22, "acc_descr_value": 23, "acc_descr_multiline_value": 24, "section": 25, "branchStatement": 26, "CHECKOUT": 27, "ref": 28, "BRANCH": 29, "ORDER": 30, "NUM": 31, "CHERRY_PICK": 32, "COMMIT_ID": 33, "STR": 34, "COMMIT_TAG": 35, "EMPTYSTR": 36, "MERGE": 37, "COMMIT_TYPE": 38, "commitType": 39, "COMMIT": 40, "commit_arg": 41, "COMMIT_MSG": 42, "NORMAL": 43, "REVERSE": 44, "HIGHLIGHT": 45, "openDirective": 46, "typeDirective": 47, "closeDirective": 48, "argDirective": 49, "open_directive": 50, "type_directive": 51, "arg_directive": 52, "close_directive": 53, "ID": 54, ";": 55, "$accept": 0, "$end": 1 },
34304 terminals_: { 2: "error", 6: "GG", 8: "EOF", 9: ":", 10: "DIR", 13: "OPT", 14: "NL", 20: "acc_title", 21: "acc_title_value", 22: "acc_descr", 23: "acc_descr_value", 24: "acc_descr_multiline_value", 25: "section", 27: "CHECKOUT", 29: "BRANCH", 30: "ORDER", 31: "NUM", 32: "CHERRY_PICK", 33: "COMMIT_ID", 34: "STR", 35: "COMMIT_TAG", 36: "EMPTYSTR", 37: "MERGE", 38: "COMMIT_TYPE", 40: "COMMIT", 42: "COMMIT_MSG", 43: "NORMAL", 44: "REVERSE", 45: "HIGHLIGHT", 50: "open_directive", 51: "type_directive", 52: "arg_directive", 53: "close_directive", 54: "ID", 55: ";" },
34305 productions_: [0, [3, 2], [3, 2], [3, 3], [3, 4], [3, 5], [7, 0], [7, 2], [11, 2], [11, 1], [12, 0], [12, 2], [15, 2], [15, 1], [16, 1], [16, 1], [16, 1], [16, 2], [16, 2], [16, 1], [16, 1], [16, 1], [16, 2], [26, 2], [26, 4], [19, 3], [19, 5], [19, 5], [19, 5], [19, 5], [18, 2], [18, 4], [18, 4], [18, 4], [18, 6], [18, 6], [18, 6], [18, 6], [18, 6], [18, 6], [18, 8], [18, 8], [18, 8], [18, 8], [18, 8], [18, 8], [17, 2], [17, 3], [17, 3], [17, 5], [17, 5], [17, 3], [17, 5], [17, 5], [17, 5], [17, 5], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 3], [17, 5], [17, 5], [17, 5], [17, 5], [17, 5], [17, 5], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 7], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [17, 9], [41, 0], [41, 1], [39, 1], [39, 1], [39, 1], [5, 3], [5, 5], [46, 1], [47, 1], [49, 1], [48, 1], [28, 1], [28, 1], [4, 1], [4, 1], [4, 1]],
34306 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
34307 var $0 = $$.length - 1;
34308 switch (yystate) {
34309 case 3:
34310 return $$[$0];
34311 case 4:
34312 return $$[$0 - 1];
34313 case 5:
34314 yy.setDirection($$[$0 - 3]);
34315 return $$[$0 - 1];
34316 case 7:
34317 yy.setOptions($$[$0 - 1]);
34318 this.$ = $$[$0];
34319 break;
34320 case 8:
34321 $$[$0 - 1] += $$[$0];
34322 this.$ = $$[$0 - 1];
34323 break;
34324 case 10:
34325 this.$ = [];
34326 break;
34327 case 11:
34328 $$[$0 - 1].push($$[$0]);
34329 this.$ = $$[$0 - 1];
34330 break;
34331 case 12:
34332 this.$ = $$[$0 - 1];
34333 break;
34334 case 17:
34335 this.$ = $$[$0].trim();
34336 yy.setAccTitle(this.$);
34337 break;
34338 case 18:
34339 case 19:
34340 this.$ = $$[$0].trim();
34341 yy.setAccDescription(this.$);
34342 break;
34343 case 20:
34344 yy.addSection($$[$0].substr(8));
34345 this.$ = $$[$0].substr(8);
34346 break;
34347 case 22:
34348 yy.checkout($$[$0]);
34349 break;
34350 case 23:
34351 yy.branch($$[$0]);
34352 break;
34353 case 24:
34354 yy.branch($$[$0 - 2], $$[$0]);
34355 break;
34356 case 25:
34357 yy.cherryPick($$[$0], "", void 0);
34358 break;
34359 case 26:
34360 yy.cherryPick($$[$0 - 2], "", $$[$0]);
34361 break;
34362 case 27:
34363 case 29:
34364 yy.cherryPick($$[$0 - 2], "", "");
34365 break;
34366 case 28:
34367 yy.cherryPick($$[$0], "", $$[$0 - 2]);
34368 break;
34369 case 30:
34370 yy.merge($$[$0], "", "", "");
34371 break;
34372 case 31:
34373 yy.merge($$[$0 - 2], $$[$0], "", "");
34374 break;
34375 case 32:
34376 yy.merge($$[$0 - 2], "", $$[$0], "");
34377 break;
34378 case 33:
34379 yy.merge($$[$0 - 2], "", "", $$[$0]);
34380 break;
34381 case 34:
34382 yy.merge($$[$0 - 4], $$[$0], "", $$[$0 - 2]);
34383 break;
34384 case 35:
34385 yy.merge($$[$0 - 4], "", $$[$0], $$[$0 - 2]);
34386 break;
34387 case 36:
34388 yy.merge($$[$0 - 4], "", $$[$0 - 2], $$[$0]);
34389 break;
34390 case 37:
34391 yy.merge($$[$0 - 4], $$[$0 - 2], $$[$0], "");
34392 break;
34393 case 38:
34394 yy.merge($$[$0 - 4], $$[$0 - 2], "", $$[$0]);
34395 break;
34396 case 39:
34397 yy.merge($$[$0 - 4], $$[$0], $$[$0 - 2], "");
34398 break;
34399 case 40:
34400 yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]);
34401 break;
34402 case 41:
34403 yy.merge($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]);
34404 break;
34405 case 42:
34406 yy.merge($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]);
34407 break;
34408 case 43:
34409 yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]);
34410 break;
34411 case 44:
34412 yy.merge($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]);
34413 break;
34414 case 45:
34415 yy.merge($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]);
34416 break;
34417 case 46:
34418 yy.commit($$[$0]);
34419 break;
34420 case 47:
34421 yy.commit("", "", yy.commitType.NORMAL, $$[$0]);
34422 break;
34423 case 48:
34424 yy.commit("", "", $$[$0], "");
34425 break;
34426 case 49:
34427 yy.commit("", "", $$[$0], $$[$0 - 2]);
34428 break;
34429 case 50:
34430 yy.commit("", "", $$[$0 - 2], $$[$0]);
34431 break;
34432 case 51:
34433 yy.commit("", $$[$0], yy.commitType.NORMAL, "");
34434 break;
34435 case 52:
34436 yy.commit("", $$[$0 - 2], yy.commitType.NORMAL, $$[$0]);
34437 break;
34438 case 53:
34439 yy.commit("", $$[$0], yy.commitType.NORMAL, $$[$0 - 2]);
34440 break;
34441 case 54:
34442 yy.commit("", $$[$0 - 2], $$[$0], "");
34443 break;
34444 case 55:
34445 yy.commit("", $$[$0], $$[$0 - 2], "");
34446 break;
34447 case 56:
34448 yy.commit("", $$[$0 - 4], $$[$0 - 2], $$[$0]);
34449 break;
34450 case 57:
34451 yy.commit("", $$[$0 - 4], $$[$0], $$[$0 - 2]);
34452 break;
34453 case 58:
34454 yy.commit("", $$[$0 - 2], $$[$0 - 4], $$[$0]);
34455 break;
34456 case 59:
34457 yy.commit("", $$[$0], $$[$0 - 4], $$[$0 - 2]);
34458 break;
34459 case 60:
34460 yy.commit("", $$[$0], $$[$0 - 2], $$[$0 - 4]);
34461 break;
34462 case 61:
34463 yy.commit("", $$[$0 - 2], $$[$0], $$[$0 - 4]);
34464 break;
34465 case 62:
34466 yy.commit($$[$0], "", yy.commitType.NORMAL, "");
34467 break;
34468 case 63:
34469 yy.commit($$[$0], "", yy.commitType.NORMAL, $$[$0 - 2]);
34470 break;
34471 case 64:
34472 yy.commit($$[$0 - 2], "", yy.commitType.NORMAL, $$[$0]);
34473 break;
34474 case 65:
34475 yy.commit($$[$0 - 2], "", $$[$0], "");
34476 break;
34477 case 66:
34478 yy.commit($$[$0], "", $$[$0 - 2], "");
34479 break;
34480 case 67:
34481 yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, "");
34482 break;
34483 case 68:
34484 yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, "");
34485 break;
34486 case 69:
34487 yy.commit($$[$0 - 4], "", $$[$0 - 2], $$[$0]);
34488 break;
34489 case 70:
34490 yy.commit($$[$0 - 4], "", $$[$0], $$[$0 - 2]);
34491 break;
34492 case 71:
34493 yy.commit($$[$0 - 2], "", $$[$0 - 4], $$[$0]);
34494 break;
34495 case 72:
34496 yy.commit($$[$0], "", $$[$0 - 4], $$[$0 - 2]);
34497 break;
34498 case 73:
34499 yy.commit($$[$0], "", $$[$0 - 2], $$[$0 - 4]);
34500 break;
34501 case 74:
34502 yy.commit($$[$0 - 2], "", $$[$0], $$[$0 - 4]);
34503 break;
34504 case 75:
34505 yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], "");
34506 break;
34507 case 76:
34508 yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], "");
34509 break;
34510 case 77:
34511 yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], "");
34512 break;
34513 case 78:
34514 yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], "");
34515 break;
34516 case 79:
34517 yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], "");
34518 break;
34519 case 80:
34520 yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], "");
34521 break;
34522 case 81:
34523 yy.commit($$[$0 - 4], $$[$0], yy.commitType.NORMAL, $$[$0 - 2]);
34524 break;
34525 case 82:
34526 yy.commit($$[$0 - 4], $$[$0 - 2], yy.commitType.NORMAL, $$[$0]);
34527 break;
34528 case 83:
34529 yy.commit($$[$0 - 2], $$[$0], yy.commitType.NORMAL, $$[$0 - 4]);
34530 break;
34531 case 84:
34532 yy.commit($$[$0], $$[$0 - 2], yy.commitType.NORMAL, $$[$0 - 4]);
34533 break;
34534 case 85:
34535 yy.commit($$[$0], $$[$0 - 4], yy.commitType.NORMAL, $$[$0 - 2]);
34536 break;
34537 case 86:
34538 yy.commit($$[$0 - 2], $$[$0 - 4], yy.commitType.NORMAL, $$[$0]);
34539 break;
34540 case 87:
34541 yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0 - 2], $$[$0]);
34542 break;
34543 case 88:
34544 yy.commit($$[$0 - 6], $$[$0 - 4], $$[$0], $$[$0 - 2]);
34545 break;
34546 case 89:
34547 yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0 - 4], $$[$0]);
34548 break;
34549 case 90:
34550 yy.commit($$[$0 - 6], $$[$0], $$[$0 - 4], $$[$0 - 2]);
34551 break;
34552 case 91:
34553 yy.commit($$[$0 - 6], $$[$0 - 2], $$[$0], $$[$0 - 4]);
34554 break;
34555 case 92:
34556 yy.commit($$[$0 - 6], $$[$0], $$[$0 - 2], $$[$0 - 4]);
34557 break;
34558 case 93:
34559 yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0 - 2], $$[$0]);
34560 break;
34561 case 94:
34562 yy.commit($$[$0 - 4], $$[$0 - 6], $$[$0], $$[$0 - 2]);
34563 break;
34564 case 95:
34565 yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0 - 4], $$[$0]);
34566 break;
34567 case 96:
34568 yy.commit($$[$0], $$[$0 - 6], $$[$0 - 4], $$[$0 - 2]);
34569 break;
34570 case 97:
34571 yy.commit($$[$0 - 2], $$[$0 - 6], $$[$0], $$[$0 - 4]);
34572 break;
34573 case 98:
34574 yy.commit($$[$0], $$[$0 - 6], $$[$0 - 2], $$[$0 - 4]);
34575 break;
34576 case 99:
34577 yy.commit($$[$0], $$[$0 - 4], $$[$0 - 2], $$[$0 - 6]);
34578 break;
34579 case 100:
34580 yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0], $$[$0 - 6]);
34581 break;
34582 case 101:
34583 yy.commit($$[$0], $$[$0 - 2], $$[$0 - 4], $$[$0 - 6]);
34584 break;
34585 case 102:
34586 yy.commit($$[$0 - 2], $$[$0], $$[$0 - 4], $$[$0 - 6]);
34587 break;
34588 case 103:
34589 yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0], $$[$0 - 6]);
34590 break;
34591 case 104:
34592 yy.commit($$[$0 - 4], $$[$0], $$[$0 - 2], $$[$0 - 6]);
34593 break;
34594 case 105:
34595 yy.commit($$[$0 - 2], $$[$0 - 4], $$[$0 - 6], $$[$0]);
34596 break;
34597 case 106:
34598 yy.commit($$[$0], $$[$0 - 4], $$[$0 - 6], $$[$0 - 2]);
34599 break;
34600 case 107:
34601 yy.commit($$[$0 - 2], $$[$0], $$[$0 - 6], $$[$0 - 4]);
34602 break;
34603 case 108:
34604 yy.commit($$[$0], $$[$0 - 2], $$[$0 - 6], $$[$0 - 4]);
34605 break;
34606 case 109:
34607 yy.commit($$[$0 - 4], $$[$0 - 2], $$[$0 - 6], $$[$0]);
34608 break;
34609 case 110:
34610 yy.commit($$[$0 - 4], $$[$0], $$[$0 - 6], $$[$0 - 2]);
34611 break;
34612 case 111:
34613 this.$ = "";
34614 break;
34615 case 112:
34616 this.$ = $$[$0];
34617 break;
34618 case 113:
34619 this.$ = yy.commitType.NORMAL;
34620 break;
34621 case 114:
34622 this.$ = yy.commitType.REVERSE;
34623 break;
34624 case 115:
34625 this.$ = yy.commitType.HIGHLIGHT;
34626 break;
34627 case 118:
34628 yy.parseDirective("%%{", "open_directive");
34629 break;
34630 case 119:
34631 yy.parseDirective($$[$0], "type_directive");
34632 break;
34633 case 120:
34634 $$[$0] = $$[$0].trim().replace(/'/g, '"');
34635 yy.parseDirective($$[$0], "arg_directive");
34636 break;
34637 case 121:
34638 yy.parseDirective("}%%", "close_directive", "gitGraph");
34639 break;
34640 }
34641 },
34642 table: [{ 3: 1, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 3: 11, 4: 2, 5: 3, 6: $V0, 8: $V1, 14: $V2, 46: 8, 50: $V3, 55: $V4 }, { 7: 12, 8: $V5, 9: [1, 13], 10: [1, 14], 11: 15, 14: $V6 }, o($V7, [2, 124]), o($V7, [2, 125]), o($V7, [2, 126]), { 47: 17, 51: [1, 18] }, { 51: [2, 118] }, { 1: [2, 1] }, { 1: [2, 2] }, { 8: [1, 19] }, { 7: 20, 8: $V5, 11: 15, 14: $V6 }, { 9: [1, 21] }, o($V8, [2, 10], { 12: 22, 13: [1, 23] }), o($V9, [2, 9]), { 9: [1, 25], 48: 24, 53: $Va }, o([9, 53], [2, 119]), { 1: [2, 3] }, { 8: [1, 27] }, { 7: 28, 8: $V5, 11: 15, 14: $V6 }, { 8: [2, 7], 14: [1, 31], 15: 29, 16: 30, 17: 32, 18: 33, 19: 34, 20: [1, 35], 22: [1, 36], 24: [1, 37], 25: [1, 38], 26: 39, 27: [1, 40], 29: [1, 44], 32: [1, 43], 37: [1, 42], 40: [1, 41] }, o($V9, [2, 8]), o($Vb, [2, 116]), { 49: 45, 52: [1, 46] }, o($Vb, [2, 121]), { 1: [2, 4] }, { 8: [1, 47] }, o($V8, [2, 11]), { 4: 48, 8: $V1, 14: $V2, 55: $V4 }, o($V8, [2, 13]), o($Vc, [2, 14]), o($Vc, [2, 15]), o($Vc, [2, 16]), { 21: [1, 49] }, { 23: [1, 50] }, o($Vc, [2, 19]), o($Vc, [2, 20]), o($Vc, [2, 21]), { 28: 51, 34: $Vd, 54: $Ve }, o($Vc, [2, 111], { 41: 54, 33: [1, 57], 34: [1, 59], 35: [1, 55], 38: [1, 56], 42: [1, 58] }), { 28: 60, 34: $Vd, 54: $Ve }, { 33: [1, 61], 35: [1, 62] }, { 28: 63, 34: $Vd, 54: $Ve }, { 48: 64, 53: $Va }, { 53: [2, 120] }, { 1: [2, 5] }, o($V8, [2, 12]), o($Vc, [2, 17]), o($Vc, [2, 18]), o($Vc, [2, 22]), o($Vf, [2, 122]), o($Vf, [2, 123]), o($Vc, [2, 46]), { 34: [1, 65] }, { 39: 66, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 70] }, { 34: [1, 71] }, o($Vc, [2, 112]), o($Vc, [2, 30], { 33: [1, 72], 35: [1, 74], 38: [1, 73] }), { 34: [1, 75] }, { 34: [1, 76], 36: [1, 77] }, o($Vc, [2, 23], { 30: [1, 78] }), o($Vb, [2, 117]), o($Vc, [2, 47], { 33: [1, 80], 38: [1, 79], 42: [1, 81] }), o($Vc, [2, 48], { 33: [1, 83], 35: [1, 82], 42: [1, 84] }), o($Vj, [2, 113]), o($Vj, [2, 114]), o($Vj, [2, 115]), o($Vc, [2, 51], { 35: [1, 85], 38: [1, 86], 42: [1, 87] }), o($Vc, [2, 62], { 33: [1, 90], 35: [1, 88], 38: [1, 89] }), { 34: [1, 91] }, { 39: 92, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 93] }, o($Vc, [2, 25], { 35: [1, 94] }), { 33: [1, 95] }, { 33: [1, 96] }, { 31: [1, 97] }, { 39: 98, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 99] }, { 34: [1, 100] }, { 34: [1, 101] }, { 34: [1, 102] }, { 34: [1, 103] }, { 34: [1, 104] }, { 39: 105, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 106] }, { 34: [1, 107] }, { 39: 108, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 109] }, o($Vc, [2, 31], { 35: [1, 111], 38: [1, 110] }), o($Vc, [2, 32], { 33: [1, 113], 35: [1, 112] }), o($Vc, [2, 33], { 33: [1, 114], 38: [1, 115] }), { 34: [1, 116], 36: [1, 117] }, { 34: [1, 118] }, { 34: [1, 119] }, o($Vc, [2, 24]), o($Vc, [2, 49], { 33: [1, 120], 42: [1, 121] }), o($Vc, [2, 53], { 38: [1, 122], 42: [1, 123] }), o($Vc, [2, 63], { 33: [1, 125], 38: [1, 124] }), o($Vc, [2, 50], { 33: [1, 126], 42: [1, 127] }), o($Vc, [2, 55], { 35: [1, 128], 42: [1, 129] }), o($Vc, [2, 66], { 33: [1, 131], 35: [1, 130] }), o($Vc, [2, 52], { 38: [1, 132], 42: [1, 133] }), o($Vc, [2, 54], { 35: [1, 134], 42: [1, 135] }), o($Vc, [2, 67], { 35: [1, 137], 38: [1, 136] }), o($Vc, [2, 64], { 33: [1, 139], 38: [1, 138] }), o($Vc, [2, 65], { 33: [1, 141], 35: [1, 140] }), o($Vc, [2, 68], { 35: [1, 143], 38: [1, 142] }), { 39: 144, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 145] }, { 34: [1, 146] }, { 34: [1, 147] }, { 34: [1, 148] }, { 39: 149, 43: $Vg, 44: $Vh, 45: $Vi }, o($Vc, [2, 26]), o($Vc, [2, 27]), o($Vc, [2, 28]), o($Vc, [2, 29]), { 34: [1, 150] }, { 34: [1, 151] }, { 39: 152, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 153] }, { 39: 154, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 155] }, { 34: [1, 156] }, { 34: [1, 157] }, { 34: [1, 158] }, { 34: [1, 159] }, { 34: [1, 160] }, { 34: [1, 161] }, { 39: 162, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 163] }, { 34: [1, 164] }, { 34: [1, 165] }, { 39: 166, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 167] }, { 39: 168, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 169] }, { 34: [1, 170] }, { 34: [1, 171] }, { 39: 172, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 173] }, o($Vc, [2, 37], { 35: [1, 174] }), o($Vc, [2, 38], { 38: [1, 175] }), o($Vc, [2, 36], { 33: [1, 176] }), o($Vc, [2, 39], { 35: [1, 177] }), o($Vc, [2, 34], { 38: [1, 178] }), o($Vc, [2, 35], { 33: [1, 179] }), o($Vc, [2, 60], { 42: [1, 180] }), o($Vc, [2, 73], { 33: [1, 181] }), o($Vc, [2, 61], { 42: [1, 182] }), o($Vc, [2, 84], { 38: [1, 183] }), o($Vc, [2, 74], { 33: [1, 184] }), o($Vc, [2, 83], { 38: [1, 185] }), o($Vc, [2, 59], { 42: [1, 186] }), o($Vc, [2, 72], { 33: [1, 187] }), o($Vc, [2, 58], { 42: [1, 188] }), o($Vc, [2, 78], { 35: [1, 189] }), o($Vc, [2, 71], { 33: [1, 190] }), o($Vc, [2, 77], { 35: [1, 191] }), o($Vc, [2, 57], { 42: [1, 192] }), o($Vc, [2, 85], { 38: [1, 193] }), o($Vc, [2, 56], { 42: [1, 194] }), o($Vc, [2, 79], { 35: [1, 195] }), o($Vc, [2, 80], { 35: [1, 196] }), o($Vc, [2, 86], { 38: [1, 197] }), o($Vc, [2, 70], { 33: [1, 198] }), o($Vc, [2, 81], { 38: [1, 199] }), o($Vc, [2, 69], { 33: [1, 200] }), o($Vc, [2, 75], { 35: [1, 201] }), o($Vc, [2, 76], { 35: [1, 202] }), o($Vc, [2, 82], { 38: [1, 203] }), { 34: [1, 204] }, { 39: 205, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 206] }, { 34: [1, 207] }, { 39: 208, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 209] }, { 34: [1, 210] }, { 34: [1, 211] }, { 34: [1, 212] }, { 39: 213, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 214] }, { 39: 215, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 216] }, { 34: [1, 217] }, { 34: [1, 218] }, { 34: [1, 219] }, { 34: [1, 220] }, { 34: [1, 221] }, { 34: [1, 222] }, { 39: 223, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 224] }, { 34: [1, 225] }, { 34: [1, 226] }, { 39: 227, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 228] }, { 39: 229, 43: $Vg, 44: $Vh, 45: $Vi }, { 34: [1, 230] }, { 34: [1, 231] }, { 34: [1, 232] }, { 39: 233, 43: $Vg, 44: $Vh, 45: $Vi }, o($Vc, [2, 40]), o($Vc, [2, 42]), o($Vc, [2, 41]), o($Vc, [2, 43]), o($Vc, [2, 45]), o($Vc, [2, 44]), o($Vc, [2, 101]), o($Vc, [2, 102]), o($Vc, [2, 99]), o($Vc, [2, 100]), o($Vc, [2, 104]), o($Vc, [2, 103]), o($Vc, [2, 108]), o($Vc, [2, 107]), o($Vc, [2, 106]), o($Vc, [2, 105]), o($Vc, [2, 110]), o($Vc, [2, 109]), o($Vc, [2, 98]), o($Vc, [2, 97]), o($Vc, [2, 96]), o($Vc, [2, 95]), o($Vc, [2, 93]), o($Vc, [2, 94]), o($Vc, [2, 92]), o($Vc, [2, 91]), o($Vc, [2, 90]), o($Vc, [2, 89]), o($Vc, [2, 87]), o($Vc, [2, 88])],
34643 defaultActions: { 9: [2, 118], 10: [2, 1], 11: [2, 2], 19: [2, 3], 27: [2, 4], 46: [2, 120], 47: [2, 5] },
34644 parseError: function parseError2(str2, hash) {
34645 if (hash.recoverable) {
34646 this.trace(str2);
34647 } else {
34648 var error = new Error(str2);
34649 error.hash = hash;
34650 throw error;
34651 }
34652 },
34653 parse: function parse2(input) {
34654 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
34655 var args = lstack.slice.call(arguments, 1);
34656 var lexer2 = Object.create(this.lexer);
34657 var sharedState = { yy: {} };
34658 for (var k in this.yy) {
34659 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
34660 sharedState.yy[k] = this.yy[k];
34661 }
34662 }
34663 lexer2.setInput(input, sharedState.yy);
34664 sharedState.yy.lexer = lexer2;
34665 sharedState.yy.parser = this;
34666 if (typeof lexer2.yylloc == "undefined") {
34667 lexer2.yylloc = {};
34668 }
34669 var yyloc = lexer2.yylloc;
34670 lstack.push(yyloc);
34671 var ranges = lexer2.options && lexer2.options.ranges;
34672 if (typeof sharedState.yy.parseError === "function") {
34673 this.parseError = sharedState.yy.parseError;
34674 } else {
34675 this.parseError = Object.getPrototypeOf(this).parseError;
34676 }
34677 function lex2() {
34678 var token2;
34679 token2 = tstack.pop() || lexer2.lex() || EOF;
34680 if (typeof token2 !== "number") {
34681 if (token2 instanceof Array) {
34682 tstack = token2;
34683 token2 = tstack.pop();
34684 }
34685 token2 = self2.symbols_[token2] || token2;
34686 }
34687 return token2;
34688 }
34689 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
34690 while (true) {
34691 state2 = stack[stack.length - 1];
34692 if (this.defaultActions[state2]) {
34693 action = this.defaultActions[state2];
34694 } else {
34695 if (symbol === null || typeof symbol == "undefined") {
34696 symbol = lex2();
34697 }
34698 action = table[state2] && table[state2][symbol];
34699 }
34700 if (typeof action === "undefined" || !action.length || !action[0]) {
34701 var errStr = "";
34702 expected = [];
34703 for (p in table[state2]) {
34704 if (this.terminals_[p] && p > TERROR) {
34705 expected.push("'" + this.terminals_[p] + "'");
34706 }
34707 }
34708 if (lexer2.showPosition) {
34709 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
34710 } else {
34711 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
34712 }
34713 this.parseError(errStr, {
34714 text: lexer2.match,
34715 token: this.terminals_[symbol] || symbol,
34716 line: lexer2.yylineno,
34717 loc: yyloc,
34718 expected
34719 });
34720 }
34721 if (action[0] instanceof Array && action.length > 1) {
34722 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
34723 }
34724 switch (action[0]) {
34725 case 1:
34726 stack.push(symbol);
34727 vstack.push(lexer2.yytext);
34728 lstack.push(lexer2.yylloc);
34729 stack.push(action[1]);
34730 symbol = null;
34731 {
34732 yyleng = lexer2.yyleng;
34733 yytext = lexer2.yytext;
34734 yylineno = lexer2.yylineno;
34735 yyloc = lexer2.yylloc;
34736 }
34737 break;
34738 case 2:
34739 len = this.productions_[action[1]][1];
34740 yyval.$ = vstack[vstack.length - len];
34741 yyval._$ = {
34742 first_line: lstack[lstack.length - (len || 1)].first_line,
34743 last_line: lstack[lstack.length - 1].last_line,
34744 first_column: lstack[lstack.length - (len || 1)].first_column,
34745 last_column: lstack[lstack.length - 1].last_column
34746 };
34747 if (ranges) {
34748 yyval._$.range = [
34749 lstack[lstack.length - (len || 1)].range[0],
34750 lstack[lstack.length - 1].range[1]
34751 ];
34752 }
34753 r = this.performAction.apply(yyval, [
34754 yytext,
34755 yyleng,
34756 yylineno,
34757 sharedState.yy,
34758 action[1],
34759 vstack,
34760 lstack
34761 ].concat(args));
34762 if (typeof r !== "undefined") {
34763 return r;
34764 }
34765 if (len) {
34766 stack = stack.slice(0, -1 * len * 2);
34767 vstack = vstack.slice(0, -1 * len);
34768 lstack = lstack.slice(0, -1 * len);
34769 }
34770 stack.push(this.productions_[action[1]][0]);
34771 vstack.push(yyval.$);
34772 lstack.push(yyval._$);
34773 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
34774 stack.push(newState);
34775 break;
34776 case 3:
34777 return true;
34778 }
34779 }
34780 return true;
34781 }
34782 };
34783 var lexer = function() {
34784 var lexer2 = {
34785 EOF: 1,
34786 parseError: function parseError2(str2, hash) {
34787 if (this.yy.parser) {
34788 this.yy.parser.parseError(str2, hash);
34789 } else {
34790 throw new Error(str2);
34791 }
34792 },
34793 // resets the lexer, sets new input
34794 setInput: function(input, yy) {
34795 this.yy = yy || this.yy || {};
34796 this._input = input;
34797 this._more = this._backtrack = this.done = false;
34798 this.yylineno = this.yyleng = 0;
34799 this.yytext = this.matched = this.match = "";
34800 this.conditionStack = ["INITIAL"];
34801 this.yylloc = {
34802 first_line: 1,
34803 first_column: 0,
34804 last_line: 1,
34805 last_column: 0
34806 };
34807 if (this.options.ranges) {
34808 this.yylloc.range = [0, 0];
34809 }
34810 this.offset = 0;
34811 return this;
34812 },
34813 // consumes and returns one char from the input
34814 input: function() {
34815 var ch = this._input[0];
34816 this.yytext += ch;
34817 this.yyleng++;
34818 this.offset++;
34819 this.match += ch;
34820 this.matched += ch;
34821 var lines = ch.match(/(?:\r\n?|\n).*/g);
34822 if (lines) {
34823 this.yylineno++;
34824 this.yylloc.last_line++;
34825 } else {
34826 this.yylloc.last_column++;
34827 }
34828 if (this.options.ranges) {
34829 this.yylloc.range[1]++;
34830 }
34831 this._input = this._input.slice(1);
34832 return ch;
34833 },
34834 // unshifts one char (or a string) into the input
34835 unput: function(ch) {
34836 var len = ch.length;
34837 var lines = ch.split(/(?:\r\n?|\n)/g);
34838 this._input = ch + this._input;
34839 this.yytext = this.yytext.substr(0, this.yytext.length - len);
34840 this.offset -= len;
34841 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
34842 this.match = this.match.substr(0, this.match.length - 1);
34843 this.matched = this.matched.substr(0, this.matched.length - 1);
34844 if (lines.length - 1) {
34845 this.yylineno -= lines.length - 1;
34846 }
34847 var r = this.yylloc.range;
34848 this.yylloc = {
34849 first_line: this.yylloc.first_line,
34850 last_line: this.yylineno + 1,
34851 first_column: this.yylloc.first_column,
34852 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
34853 };
34854 if (this.options.ranges) {
34855 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
34856 }
34857 this.yyleng = this.yytext.length;
34858 return this;
34859 },
34860 // When called from action, caches matched text and appends it on next action
34861 more: function() {
34862 this._more = true;
34863 return this;
34864 },
34865 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
34866 reject: function() {
34867 if (this.options.backtrack_lexer) {
34868 this._backtrack = true;
34869 } else {
34870 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
34871 text: "",
34872 token: null,
34873 line: this.yylineno
34874 });
34875 }
34876 return this;
34877 },
34878 // retain first n characters of the match
34879 less: function(n) {
34880 this.unput(this.match.slice(n));
34881 },
34882 // displays already matched input, i.e. for error messages
34883 pastInput: function() {
34884 var past = this.matched.substr(0, this.matched.length - this.match.length);
34885 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
34886 },
34887 // displays upcoming input, i.e. for error messages
34888 upcomingInput: function() {
34889 var next2 = this.match;
34890 if (next2.length < 20) {
34891 next2 += this._input.substr(0, 20 - next2.length);
34892 }
34893 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
34894 },
34895 // displays the character position where the lexing error occurred, i.e. for error messages
34896 showPosition: function() {
34897 var pre = this.pastInput();
34898 var c2 = new Array(pre.length + 1).join("-");
34899 return pre + this.upcomingInput() + "\n" + c2 + "^";
34900 },
34901 // test the lexed token: return FALSE when not a match, otherwise return token
34902 test_match: function(match, indexed_rule) {
34903 var token2, lines, backup;
34904 if (this.options.backtrack_lexer) {
34905 backup = {
34906 yylineno: this.yylineno,
34907 yylloc: {
34908 first_line: this.yylloc.first_line,
34909 last_line: this.last_line,
34910 first_column: this.yylloc.first_column,
34911 last_column: this.yylloc.last_column
34912 },
34913 yytext: this.yytext,
34914 match: this.match,
34915 matches: this.matches,
34916 matched: this.matched,
34917 yyleng: this.yyleng,
34918 offset: this.offset,
34919 _more: this._more,
34920 _input: this._input,
34921 yy: this.yy,
34922 conditionStack: this.conditionStack.slice(0),
34923 done: this.done
34924 };
34925 if (this.options.ranges) {
34926 backup.yylloc.range = this.yylloc.range.slice(0);
34927 }
34928 }
34929 lines = match[0].match(/(?:\r\n?|\n).*/g);
34930 if (lines) {
34931 this.yylineno += lines.length;
34932 }
34933 this.yylloc = {
34934 first_line: this.yylloc.last_line,
34935 last_line: this.yylineno + 1,
34936 first_column: this.yylloc.last_column,
34937 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
34938 };
34939 this.yytext += match[0];
34940 this.match += match[0];
34941 this.matches = match;
34942 this.yyleng = this.yytext.length;
34943 if (this.options.ranges) {
34944 this.yylloc.range = [this.offset, this.offset += this.yyleng];
34945 }
34946 this._more = false;
34947 this._backtrack = false;
34948 this._input = this._input.slice(match[0].length);
34949 this.matched += match[0];
34950 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
34951 if (this.done && this._input) {
34952 this.done = false;
34953 }
34954 if (token2) {
34955 return token2;
34956 } else if (this._backtrack) {
34957 for (var k in backup) {
34958 this[k] = backup[k];
34959 }
34960 return false;
34961 }
34962 return false;
34963 },
34964 // return next match in input
34965 next: function() {
34966 if (this.done) {
34967 return this.EOF;
34968 }
34969 if (!this._input) {
34970 this.done = true;
34971 }
34972 var token2, match, tempMatch, index2;
34973 if (!this._more) {
34974 this.yytext = "";
34975 this.match = "";
34976 }
34977 var rules = this._currentRules();
34978 for (var i2 = 0; i2 < rules.length; i2++) {
34979 tempMatch = this._input.match(this.rules[rules[i2]]);
34980 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
34981 match = tempMatch;
34982 index2 = i2;
34983 if (this.options.backtrack_lexer) {
34984 token2 = this.test_match(tempMatch, rules[i2]);
34985 if (token2 !== false) {
34986 return token2;
34987 } else if (this._backtrack) {
34988 match = false;
34989 continue;
34990 } else {
34991 return false;
34992 }
34993 } else if (!this.options.flex) {
34994 break;
34995 }
34996 }
34997 }
34998 if (match) {
34999 token2 = this.test_match(match, rules[index2]);
35000 if (token2 !== false) {
35001 return token2;
35002 }
35003 return false;
35004 }
35005 if (this._input === "") {
35006 return this.EOF;
35007 } else {
35008 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
35009 text: "",
35010 token: null,
35011 line: this.yylineno
35012 });
35013 }
35014 },
35015 // return next match that has a token
35016 lex: function lex2() {
35017 var r = this.next();
35018 if (r) {
35019 return r;
35020 } else {
35021 return this.lex();
35022 }
35023 },
35024 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
35025 begin: function begin(condition) {
35026 this.conditionStack.push(condition);
35027 },
35028 // pop the previously active lexer condition state off the condition stack
35029 popState: function popState() {
35030 var n = this.conditionStack.length - 1;
35031 if (n > 0) {
35032 return this.conditionStack.pop();
35033 } else {
35034 return this.conditionStack[0];
35035 }
35036 },
35037 // produce the lexer rule set which is active for the currently active lexer condition state
35038 _currentRules: function _currentRules() {
35039 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
35040 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
35041 } else {
35042 return this.conditions["INITIAL"].rules;
35043 }
35044 },
35045 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
35046 topState: function topState(n) {
35047 n = this.conditionStack.length - 1 - Math.abs(n || 0);
35048 if (n >= 0) {
35049 return this.conditionStack[n];
35050 } else {
35051 return "INITIAL";
35052 }
35053 },
35054 // alias for begin(condition)
35055 pushState: function pushState(condition) {
35056 this.begin(condition);
35057 },
35058 // return the number of states currently on the stack
35059 stateStackSize: function stateStackSize() {
35060 return this.conditionStack.length;
35061 },
35062 options: { "case-insensitive": true },
35063 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
35064 switch ($avoiding_name_collisions) {
35065 case 0:
35066 this.begin("open_directive");
35067 return 50;
35068 case 1:
35069 this.begin("type_directive");
35070 return 51;
35071 case 2:
35072 this.popState();
35073 this.begin("arg_directive");
35074 return 9;
35075 case 3:
35076 this.popState();
35077 this.popState();
35078 return 53;
35079 case 4:
35080 return 52;
35081 case 5:
35082 this.begin("acc_title");
35083 return 20;
35084 case 6:
35085 this.popState();
35086 return "acc_title_value";
35087 case 7:
35088 this.begin("acc_descr");
35089 return 22;
35090 case 8:
35091 this.popState();
35092 return "acc_descr_value";
35093 case 9:
35094 this.begin("acc_descr_multiline");
35095 break;
35096 case 10:
35097 this.popState();
35098 break;
35099 case 11:
35100 return "acc_descr_multiline_value";
35101 case 12:
35102 return 14;
35103 case 13:
35104 break;
35105 case 14:
35106 break;
35107 case 15:
35108 return 6;
35109 case 16:
35110 return 40;
35111 case 17:
35112 return 33;
35113 case 18:
35114 return 38;
35115 case 19:
35116 return 42;
35117 case 20:
35118 return 43;
35119 case 21:
35120 return 44;
35121 case 22:
35122 return 45;
35123 case 23:
35124 return 35;
35125 case 24:
35126 return 29;
35127 case 25:
35128 return 30;
35129 case 26:
35130 return 37;
35131 case 27:
35132 return 32;
35133 case 28:
35134 return 27;
35135 case 29:
35136 return 10;
35137 case 30:
35138 return 10;
35139 case 31:
35140 return 9;
35141 case 32:
35142 return "CARET";
35143 case 33:
35144 this.begin("options");
35145 break;
35146 case 34:
35147 this.popState();
35148 break;
35149 case 35:
35150 return 13;
35151 case 36:
35152 return 36;
35153 case 37:
35154 this.begin("string");
35155 break;
35156 case 38:
35157 this.popState();
35158 break;
35159 case 39:
35160 return 34;
35161 case 40:
35162 return 31;
35163 case 41:
35164 return 54;
35165 case 42:
35166 return 8;
35167 }
35168 },
35169 rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:gitGraph\b)/i, /^(?:commit(?=\s|$))/i, /^(?:id:)/i, /^(?:type:)/i, /^(?:msg:)/i, /^(?:NORMAL\b)/i, /^(?:REVERSE\b)/i, /^(?:HIGHLIGHT\b)/i, /^(?:tag:)/i, /^(?:branch(?=\s|$))/i, /^(?:order:)/i, /^(?:merge(?=\s|$))/i, /^(?:cherry-pick(?=\s|$))/i, /^(?:checkout(?=\s|$))/i, /^(?:LR\b)/i, /^(?:BT\b)/i, /^(?::)/i, /^(?:\^)/i, /^(?:options\r?\n)/i, /^(?:[ \r\n\t]+end\b)/i, /^(?:[\s\S]+(?=[ \r\n\t]+end))/i, /^(?:["]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[0-9]+(?=\s|$))/i, /^(?:\w([-\./\w]*[-\w])?)/i, /^(?:$)/i, /^(?:\s+)/i],
35170 conditions: { "acc_descr_multiline": { "rules": [10, 11], "inclusive": false }, "acc_descr": { "rules": [8], "inclusive": false }, "acc_title": { "rules": [6], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "options": { "rules": [34, 35], "inclusive": false }, "string": { "rules": [38, 39], "inclusive": false }, "INITIAL": { "rules": [0, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 36, 37, 40, 41, 42, 43], "inclusive": true } }
35171 };
35172 return lexer2;
35173 }();
35174 parser2.lexer = lexer;
35175 function Parser() {
35176 this.yy = {};
35177 }
35178 Parser.prototype = parser2;
35179 parser2.Parser = Parser;
35180 return new Parser();
35181 }();
35182 parser$k.parser = parser$k;
35183 const gitGraphParser = parser$k;
35184 let mainBranchName = getConfig$1().gitGraph.mainBranchName;
35185 let mainBranchOrder = getConfig$1().gitGraph.mainBranchOrder;
35186 let commits = {};
35187 let head = null;
35188 let branchesConfig = {};
35189 branchesConfig[mainBranchName] = { name: mainBranchName, order: mainBranchOrder };
35190 let branches = {};
35191 branches[mainBranchName] = head;
35192 let curBranch = mainBranchName;
35193 let direction$2 = "LR";
35194 let seq = 0;
35195 function getId() {
35196 return random({ length: 7 });
35197 }
35198 const parseDirective$9 = function(statement, context, type2) {
35199 mermaidAPI.parseDirective(this, statement, context, type2);
35200 };
35201 function uniqBy(list2, fn) {
35202 const recordMap = /* @__PURE__ */ Object.create(null);
35203 return list2.reduce((out, item) => {
35204 const key = fn(item);
35205 if (!recordMap[key]) {
35206 recordMap[key] = true;
35207 out.push(item);
35208 }
35209 return out;
35210 }, []);
35211 }
35212 const setDirection$2 = function(dir) {
35213 direction$2 = dir;
35214 };
35215 let options = {};
35216 const setOptions = function(rawOptString) {
35217 log$1.debug("options str", rawOptString);
35218 rawOptString = rawOptString && rawOptString.trim();
35219 rawOptString = rawOptString || "{}";
35220 try {
35221 options = JSON.parse(rawOptString);
35222 } catch (e) {
35223 log$1.error("error while parsing gitGraph options", e.message);
35224 }
35225 };
35226 const getOptions = function() {
35227 return options;
35228 };
35229 const commit = function(msg, id2, type2, tag) {
35230 log$1.debug("Entering commit:", msg, id2, type2, tag);
35231 id2 = common$1.sanitizeText(id2, getConfig$1());
35232 msg = common$1.sanitizeText(msg, getConfig$1());
35233 tag = common$1.sanitizeText(tag, getConfig$1());
35234 const commit2 = {
35235 id: id2 ? id2 : seq + "-" + getId(),
35236 message: msg,
35237 seq: seq++,
35238 type: type2 ? type2 : commitType$1.NORMAL,
35239 tag: tag ? tag : "",
35240 parents: head == null ? [] : [head.id],
35241 branch: curBranch
35242 };
35243 head = commit2;
35244 commits[commit2.id] = commit2;
35245 branches[curBranch] = commit2.id;
35246 log$1.debug("in pushCommit " + commit2.id);
35247 };
35248 const branch = function(name2, order2) {
35249 name2 = common$1.sanitizeText(name2, getConfig$1());
35250 if (branches[name2] === void 0) {
35251 branches[name2] = head != null ? head.id : null;
35252 branchesConfig[name2] = { name: name2, order: order2 ? parseInt(order2, 10) : null };
35253 checkout(name2);
35254 log$1.debug("in createBranch");
35255 } else {
35256 let error = new Error(
35257 'Trying to create an existing branch. (Help: Either use a new name if you want create a new branch or try using "checkout ' + name2 + '")'
35258 );
35259 error.hash = {
35260 text: "branch " + name2,
35261 token: "branch " + name2,
35262 line: "1",
35263 loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
35264 expected: ['"checkout ' + name2 + '"']
35265 };
35266 throw error;
35267 }
35268 };
35269 const merge = function(otherBranch, custom_id, override_type, custom_tag) {
35270 otherBranch = common$1.sanitizeText(otherBranch, getConfig$1());
35271 custom_id = common$1.sanitizeText(custom_id, getConfig$1());
35272 const currentCommit = commits[branches[curBranch]];
35273 const otherCommit = commits[branches[otherBranch]];
35274 if (curBranch === otherBranch) {
35275 let error = new Error('Incorrect usage of "merge". Cannot merge a branch to itself');
35276 error.hash = {
35277 text: "merge " + otherBranch,
35278 token: "merge " + otherBranch,
35279 line: "1",
35280 loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
35281 expected: ["branch abc"]
35282 };
35283 throw error;
35284 } else if (currentCommit === void 0 || !currentCommit) {
35285 let error = new Error(
35286 'Incorrect usage of "merge". Current branch (' + curBranch + ")has no commits"
35287 );
35288 error.hash = {
35289 text: "merge " + otherBranch,
35290 token: "merge " + otherBranch,
35291 line: "1",
35292 loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
35293 expected: ["commit"]
35294 };
35295 throw error;
35296 } else if (branches[otherBranch] === void 0) {
35297 let error = new Error(
35298 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") does not exist"
35299 );
35300 error.hash = {
35301 text: "merge " + otherBranch,
35302 token: "merge " + otherBranch,
35303 line: "1",
35304 loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
35305 expected: ["branch " + otherBranch]
35306 };
35307 throw error;
35308 } else if (otherCommit === void 0 || !otherCommit) {
35309 let error = new Error(
35310 'Incorrect usage of "merge". Branch to be merged (' + otherBranch + ") has no commits"
35311 );
35312 error.hash = {
35313 text: "merge " + otherBranch,
35314 token: "merge " + otherBranch,
35315 line: "1",
35316 loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
35317 expected: ['"commit"']
35318 };
35319 throw error;
35320 } else if (currentCommit === otherCommit) {
35321 let error = new Error('Incorrect usage of "merge". Both branches have same head');
35322 error.hash = {
35323 text: "merge " + otherBranch,
35324 token: "merge " + otherBranch,
35325 line: "1",
35326 loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
35327 expected: ["branch abc"]
35328 };
35329 throw error;
35330 } else if (custom_id && commits[custom_id] !== void 0) {
35331 let error = new Error(
35332 'Incorrect usage of "merge". Commit with id:' + custom_id + " already exists, use different custom Id"
35333 );
35334 error.hash = {
35335 text: "merge " + otherBranch + custom_id + override_type + custom_tag,
35336 token: "merge " + otherBranch + custom_id + override_type + custom_tag,
35337 line: "1",
35338 loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
35339 expected: [
35340 "merge " + otherBranch + " " + custom_id + "_UNIQUE " + override_type + " " + custom_tag
35341 ]
35342 };
35343 throw error;
35344 }
35345 const commit2 = {
35346 id: custom_id ? custom_id : seq + "-" + getId(),
35347 message: "merged branch " + otherBranch + " into " + curBranch,
35348 seq: seq++,
35349 parents: [head == null ? null : head.id, branches[otherBranch]],
35350 branch: curBranch,
35351 type: commitType$1.MERGE,
35352 customType: override_type,
35353 customId: custom_id ? true : false,
35354 tag: custom_tag ? custom_tag : ""
35355 };
35356 head = commit2;
35357 commits[commit2.id] = commit2;
35358 branches[curBranch] = commit2.id;
35359 log$1.debug(branches);
35360 log$1.debug("in mergeBranch");
35361 };
35362 const cherryPick = function(sourceId, targetId, tag) {
35363 log$1.debug("Entering cherryPick:", sourceId, targetId, tag);
35364 sourceId = common$1.sanitizeText(sourceId, getConfig$1());
35365 targetId = common$1.sanitizeText(targetId, getConfig$1());
35366 tag = common$1.sanitizeText(tag, getConfig$1());
35367 if (!sourceId || commits[sourceId] === void 0) {
35368 let error = new Error(
35369 'Incorrect usage of "cherryPick". Source commit id should exist and provided'
35370 );
35371 error.hash = {
35372 text: "cherryPick " + sourceId + " " + targetId,
35373 token: "cherryPick " + sourceId + " " + targetId,
35374 line: "1",
35375 loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
35376 expected: ["cherry-pick abc"]
35377 };
35378 throw error;
35379 }
35380 let sourceCommit = commits[sourceId];
35381 let sourceCommitBranch = sourceCommit.branch;
35382 if (sourceCommit.type === commitType$1.MERGE) {
35383 let error = new Error(
35384 'Incorrect usage of "cherryPick". Source commit should not be a merge commit'
35385 );
35386 error.hash = {
35387 text: "cherryPick " + sourceId + " " + targetId,
35388 token: "cherryPick " + sourceId + " " + targetId,
35389 line: "1",
35390 loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
35391 expected: ["cherry-pick abc"]
35392 };
35393 throw error;
35394 }
35395 if (!targetId || commits[targetId] === void 0) {
35396 if (sourceCommitBranch === curBranch) {
35397 let error = new Error(
35398 'Incorrect usage of "cherryPick". Source commit is already on current branch'
35399 );
35400 error.hash = {
35401 text: "cherryPick " + sourceId + " " + targetId,
35402 token: "cherryPick " + sourceId + " " + targetId,
35403 line: "1",
35404 loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
35405 expected: ["cherry-pick abc"]
35406 };
35407 throw error;
35408 }
35409 const currentCommit = commits[branches[curBranch]];
35410 if (currentCommit === void 0 || !currentCommit) {
35411 let error = new Error(
35412 'Incorrect usage of "cherry-pick". Current branch (' + curBranch + ")has no commits"
35413 );
35414 error.hash = {
35415 text: "cherryPick " + sourceId + " " + targetId,
35416 token: "cherryPick " + sourceId + " " + targetId,
35417 line: "1",
35418 loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
35419 expected: ["cherry-pick abc"]
35420 };
35421 throw error;
35422 }
35423 const commit2 = {
35424 id: seq + "-" + getId(),
35425 message: "cherry-picked " + sourceCommit + " into " + curBranch,
35426 seq: seq++,
35427 parents: [head == null ? null : head.id, sourceCommit.id],
35428 branch: curBranch,
35429 type: commitType$1.CHERRY_PICK,
35430 tag: tag ?? "cherry-pick:" + sourceCommit.id
35431 };
35432 head = commit2;
35433 commits[commit2.id] = commit2;
35434 branches[curBranch] = commit2.id;
35435 log$1.debug(branches);
35436 log$1.debug("in cherryPick");
35437 }
35438 };
35439 const checkout = function(branch2) {
35440 branch2 = common$1.sanitizeText(branch2, getConfig$1());
35441 if (branches[branch2] === void 0) {
35442 let error = new Error(
35443 'Trying to checkout branch which is not yet created. (Help try using "branch ' + branch2 + '")'
35444 );
35445 error.hash = {
35446 text: "checkout " + branch2,
35447 token: "checkout " + branch2,
35448 line: "1",
35449 loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
35450 expected: ['"branch ' + branch2 + '"']
35451 };
35452 throw error;
35453 } else {
35454 curBranch = branch2;
35455 const id2 = branches[curBranch];
35456 head = commits[id2];
35457 }
35458 };
35459 function upsert(arr, key, newVal) {
35460 const index2 = arr.indexOf(key);
35461 if (index2 === -1) {
35462 arr.push(newVal);
35463 } else {
35464 arr.splice(index2, 1, newVal);
35465 }
35466 }
35467 function prettyPrintCommitHistory(commitArr) {
35468 const commit2 = commitArr.reduce((out, commit3) => {
35469 if (out.seq > commit3.seq) {
35470 return out;
35471 }
35472 return commit3;
35473 }, commitArr[0]);
35474 let line2 = "";
35475 commitArr.forEach(function(c2) {
35476 if (c2 === commit2) {
35477 line2 += " *";
35478 } else {
35479 line2 += " |";
35480 }
35481 });
35482 const label = [line2, commit2.id, commit2.seq];
35483 for (let branch2 in branches) {
35484 if (branches[branch2] === commit2.id) {
35485 label.push(branch2);
35486 }
35487 }
35488 log$1.debug(label.join(" "));
35489 if (commit2.parents && commit2.parents.length == 2) {
35490 const newCommit = commits[commit2.parents[0]];
35491 upsert(commitArr, commit2, newCommit);
35492 commitArr.push(commits[commit2.parents[1]]);
35493 } else if (commit2.parents.length == 0) {
35494 return;
35495 } else {
35496 const nextCommit = commits[commit2.parents];
35497 upsert(commitArr, commit2, nextCommit);
35498 }
35499 commitArr = uniqBy(commitArr, (c2) => c2.id);
35500 prettyPrintCommitHistory(commitArr);
35501 }
35502 const prettyPrint = function() {
35503 log$1.debug(commits);
35504 const node2 = getCommitsArray()[0];
35505 prettyPrintCommitHistory([node2]);
35506 };
35507 const clear$b = function() {
35508 commits = {};
35509 head = null;
35510 let mainBranch = getConfig$1().gitGraph.mainBranchName;
35511 let mainBranchOrder2 = getConfig$1().gitGraph.mainBranchOrder;
35512 branches = {};
35513 branches[mainBranch] = null;
35514 branchesConfig = {};
35515 branchesConfig[mainBranch] = { name: mainBranch, order: mainBranchOrder2 };
35516 curBranch = mainBranch;
35517 seq = 0;
35518 clear$j();
35519 };
35520 const getBranchesAsObjArray = function() {
35521 const branchesArray = Object.values(branchesConfig).map((branchConfig, i2) => {
35522 if (branchConfig.order !== null) {
35523 return branchConfig;
35524 }
35525 return {
35526 ...branchConfig,
35527 order: parseFloat(`0.${i2}`, 10)
35528 };
35529 }).sort((a, b) => a.order - b.order).map(({ name: name2 }) => ({ name: name2 }));
35530 return branchesArray;
35531 };
35532 const getBranches = function() {
35533 return branches;
35534 };
35535 const getCommits = function() {
35536 return commits;
35537 };
35538 const getCommitsArray = function() {
35539 const commitArr = Object.keys(commits).map(function(key) {
35540 return commits[key];
35541 });
35542 commitArr.forEach(function(o) {
35543 log$1.debug(o.id);
35544 });
35545 commitArr.sort((a, b) => a.seq - b.seq);
35546 return commitArr;
35547 };
35548 const getCurrentBranch = function() {
35549 return curBranch;
35550 };
35551 const getDirection$2 = function() {
35552 return direction$2;
35553 };
35554 const getHead = function() {
35555 return head;
35556 };
35557 const commitType$1 = {
35558 NORMAL: 0,
35559 REVERSE: 1,
35560 HIGHLIGHT: 2,
35561 MERGE: 3,
35562 CHERRY_PICK: 4
35563 };
35564 const gitGraphDb = {
35565 parseDirective: parseDirective$9,
35566 getConfig: () => getConfig$1().gitGraph,
35567 setDirection: setDirection$2,
35568 setOptions,
35569 getOptions,
35570 commit,
35571 branch,
35572 merge,
35573 cherryPick,
35574 checkout,
35575 //reset,
35576 prettyPrint,
35577 clear: clear$b,
35578 getBranchesAsObjArray,
35579 getBranches,
35580 getCommits,
35581 getCommitsArray,
35582 getCurrentBranch,
35583 getDirection: getDirection$2,
35584 getHead,
35585 setAccTitle,
35586 getAccTitle,
35587 getAccDescription,
35588 setAccDescription,
35589 setDiagramTitle,
35590 getDiagramTitle,
35591 commitType: commitType$1
35592 };
35593 let allCommitsDict = {};
35594 const commitType = {
35595 NORMAL: 0,
35596 REVERSE: 1,
35597 HIGHLIGHT: 2,
35598 MERGE: 3,
35599 CHERRY_PICK: 4
35600 };
35601 const THEME_COLOR_LIMIT = 8;
35602 let branchPos = {};
35603 let commitPos = {};
35604 let lanes = [];
35605 let maxPos = 0;
35606 const clear$a = () => {
35607 branchPos = {};
35608 commitPos = {};
35609 allCommitsDict = {};
35610 maxPos = 0;
35611 lanes = [];
35612 };
35613 const drawText$3 = (txt) => {
35614 const svgLabel = document.createElementNS("http://www.w3.org/2000/svg", "text");
35615 let rows = [];
35616 if (typeof txt === "string") {
35617 rows = txt.split(/\\n|\n|<br\s*\/?>/gi);
35618 } else if (Array.isArray(txt)) {
35619 rows = txt;
35620 } else {
35621 rows = [];
35622 }
35623 for (const row of rows) {
35624 const tspan = document.createElementNS("http://www.w3.org/2000/svg", "tspan");
35625 tspan.setAttributeNS("http://www.w3.org/XML/1998/namespace", "xml:space", "preserve");
35626 tspan.setAttribute("dy", "1em");
35627 tspan.setAttribute("x", "0");
35628 tspan.setAttribute("class", "row");
35629 tspan.textContent = row.trim();
35630 svgLabel.appendChild(tspan);
35631 }
35632 return svgLabel;
35633 };
35634 const drawCommits = (svg2, commits2, modifyGraph) => {
35635 const gitGraphConfig = getConfig().gitGraph;
35636 const gBullets = svg2.append("g").attr("class", "commit-bullets");
35637 const gLabels = svg2.append("g").attr("class", "commit-labels");
35638 let pos = 0;
35639 const keys2 = Object.keys(commits2);
35640 const sortedKeys = keys2.sort((a, b) => {
35641 return commits2[a].seq - commits2[b].seq;
35642 });
35643 sortedKeys.forEach((key) => {
35644 const commit2 = commits2[key];
35645 const y2 = branchPos[commit2.branch].pos;
35646 const x2 = pos + 10;
35647 if (modifyGraph) {
35648 let typeClass;
35649 let commitSymbolType = commit2.customType !== void 0 && commit2.customType !== "" ? commit2.customType : commit2.type;
35650 switch (commitSymbolType) {
35651 case commitType.NORMAL:
35652 typeClass = "commit-normal";
35653 break;
35654 case commitType.REVERSE:
35655 typeClass = "commit-reverse";
35656 break;
35657 case commitType.HIGHLIGHT:
35658 typeClass = "commit-highlight";
35659 break;
35660 case commitType.MERGE:
35661 typeClass = "commit-merge";
35662 break;
35663 case commitType.CHERRY_PICK:
35664 typeClass = "commit-cherry-pick";
35665 break;
35666 default:
35667 typeClass = "commit-normal";
35668 }
35669 if (commitSymbolType === commitType.HIGHLIGHT) {
35670 const circle2 = gBullets.append("rect");
35671 circle2.attr("x", x2 - 10);
35672 circle2.attr("y", y2 - 10);
35673 circle2.attr("height", 20);
35674 circle2.attr("width", 20);
35675 circle2.attr(
35676 "class",
35677 `commit ${commit2.id} commit-highlight${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-outer`
35678 );
35679 gBullets.append("rect").attr("x", x2 - 6).attr("y", y2 - 6).attr("height", 12).attr("width", 12).attr(
35680 "class",
35681 `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT} ${typeClass}-inner`
35682 );
35683 } else if (commitSymbolType === commitType.CHERRY_PICK) {
35684 gBullets.append("circle").attr("cx", x2).attr("cy", y2).attr("r", 10).attr("class", `commit ${commit2.id} ${typeClass}`);
35685 gBullets.append("circle").attr("cx", x2 - 3).attr("cy", y2 + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
35686 gBullets.append("circle").attr("cx", x2 + 3).attr("cy", y2 + 2).attr("r", 2.75).attr("fill", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
35687 gBullets.append("line").attr("x1", x2 + 3).attr("y1", y2 + 1).attr("x2", x2).attr("y2", y2 - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
35688 gBullets.append("line").attr("x1", x2 - 3).attr("y1", y2 + 1).attr("x2", x2).attr("y2", y2 - 5).attr("stroke", "#fff").attr("class", `commit ${commit2.id} ${typeClass}`);
35689 } else {
35690 const circle2 = gBullets.append("circle");
35691 circle2.attr("cx", x2);
35692 circle2.attr("cy", y2);
35693 circle2.attr("r", commit2.type === commitType.MERGE ? 9 : 10);
35694 circle2.attr(
35695 "class",
35696 `commit ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`
35697 );
35698 if (commitSymbolType === commitType.MERGE) {
35699 const circle22 = gBullets.append("circle");
35700 circle22.attr("cx", x2);
35701 circle22.attr("cy", y2);
35702 circle22.attr("r", 6);
35703 circle22.attr(
35704 "class",
35705 `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`
35706 );
35707 }
35708 if (commitSymbolType === commitType.REVERSE) {
35709 const cross2 = gBullets.append("path");
35710 cross2.attr("d", `M ${x2 - 5},${y2 - 5}L${x2 + 5},${y2 + 5}M${x2 - 5},${y2 + 5}L${x2 + 5},${y2 - 5}`).attr(
35711 "class",
35712 `commit ${typeClass} ${commit2.id} commit${branchPos[commit2.branch].index % THEME_COLOR_LIMIT}`
35713 );
35714 }
35715 }
35716 }
35717 commitPos[commit2.id] = { x: pos + 10, y: y2 };
35718 if (modifyGraph) {
35719 const px = 4;
35720 const py = 2;
35721 if (commit2.type !== commitType.CHERRY_PICK && (commit2.customId && commit2.type === commitType.MERGE || commit2.type !== commitType.MERGE) && gitGraphConfig.showCommitLabel) {
35722 const wrapper2 = gLabels.append("g");
35723 const labelBkg = wrapper2.insert("rect").attr("class", "commit-label-bkg");
35724 const text2 = wrapper2.append("text").attr("x", pos).attr("y", y2 + 25).attr("class", "commit-label").text(commit2.id);
35725 let bbox = text2.node().getBBox();
35726 labelBkg.attr("x", pos + 10 - bbox.width / 2 - py).attr("y", y2 + 13.5).attr("width", bbox.width + 2 * py).attr("height", bbox.height + 2 * py);
35727 text2.attr("x", pos + 10 - bbox.width / 2);
35728 if (gitGraphConfig.rotateCommitLabel) {
35729 let r_x = -7.5 - (bbox.width + 10) / 25 * 9.5;
35730 let r_y = 10 + bbox.width / 25 * 8.5;
35731 wrapper2.attr(
35732 "transform",
35733 "translate(" + r_x + ", " + r_y + ") rotate(-45, " + pos + ", " + y2 + ")"
35734 );
35735 }
35736 }
35737 if (commit2.tag) {
35738 const rect2 = gLabels.insert("polygon");
35739 const hole = gLabels.append("circle");
35740 const tag = gLabels.append("text").attr("y", y2 - 16).attr("class", "tag-label").text(commit2.tag);
35741 let tagBbox = tag.node().getBBox();
35742 tag.attr("x", pos + 10 - tagBbox.width / 2);
35743 const h2 = tagBbox.height / 2;
35744 const ly = y2 - 19.2;
35745 rect2.attr("class", "tag-label-bkg").attr(
35746 "points",
35747 `
35748 ${pos - tagBbox.width / 2 - px / 2},${ly + py}
35749 ${pos - tagBbox.width / 2 - px / 2},${ly - py}
35750 ${pos + 10 - tagBbox.width / 2 - px},${ly - h2 - py}
35751 ${pos + 10 + tagBbox.width / 2 + px},${ly - h2 - py}
35752 ${pos + 10 + tagBbox.width / 2 + px},${ly + h2 + py}
35753 ${pos + 10 - tagBbox.width / 2 - px},${ly + h2 + py}`
35754 );
35755 hole.attr("cx", pos - tagBbox.width / 2 + px / 2).attr("cy", ly).attr("r", 1.5).attr("class", "tag-hole");
35756 }
35757 }
35758 pos += 50;
35759 if (pos > maxPos) {
35760 maxPos = pos;
35761 }
35762 });
35763 };
35764 const hasOverlappingCommits = (commit1, commit2, allCommits) => {
35765 const keys2 = Object.keys(allCommits);
35766 const overlappingComits = keys2.filter((key) => {
35767 return allCommits[key].branch === commit2.branch && allCommits[key].seq > commit1.seq && allCommits[key].seq < commit2.seq;
35768 });
35769 return overlappingComits.length > 0;
35770 };
35771 const findLane = (y1, y2, depth = 0) => {
35772 const candidate = y1 + Math.abs(y1 - y2) / 2;
35773 if (depth > 5) {
35774 return candidate;
35775 }
35776 let ok = lanes.every((lane) => Math.abs(lane - candidate) >= 10);
35777 if (ok) {
35778 lanes.push(candidate);
35779 return candidate;
35780 }
35781 const diff = Math.abs(y1 - y2);
35782 return findLane(y1, y2 - diff / 5, depth + 1);
35783 };
35784 const drawArrow = (svg2, commit1, commit2, allCommits) => {
35785 const p1 = commitPos[commit1.id];
35786 const p2 = commitPos[commit2.id];
35787 const overlappingCommits = hasOverlappingCommits(commit1, commit2, allCommits);
35788 let arc = "";
35789 let arc2 = "";
35790 let radius = 0;
35791 let offset = 0;
35792 let colorClassNum = branchPos[commit2.branch].index;
35793 let lineDef;
35794 if (overlappingCommits) {
35795 arc = "A 10 10, 0, 0, 0,";
35796 arc2 = "A 10 10, 0, 0, 1,";
35797 radius = 10;
35798 offset = 10;
35799 colorClassNum = branchPos[commit2.branch].index;
35800 const lineY = p1.y < p2.y ? findLane(p1.y, p2.y) : findLane(p2.y, p1.y);
35801 if (p1.y < p2.y) {
35802 lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY - radius} ${arc} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc2} ${p2.x} ${lineY + offset} L ${p2.x} ${p2.y}`;
35803 } else {
35804 lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${lineY + radius} ${arc2} ${p1.x + offset} ${lineY} L ${p2.x - radius} ${lineY} ${arc} ${p2.x} ${lineY - offset} L ${p2.x} ${p2.y}`;
35805 }
35806 } else {
35807 if (p1.y < p2.y) {
35808 arc = "A 20 20, 0, 0, 0,";
35809 radius = 20;
35810 offset = 20;
35811 colorClassNum = branchPos[commit2.branch].index;
35812 lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;
35813 }
35814 if (p1.y > p2.y) {
35815 arc = "A 20 20, 0, 0, 0,";
35816 radius = 20;
35817 offset = 20;
35818 colorClassNum = branchPos[commit1.branch].index;
35819 lineDef = `M ${p1.x} ${p1.y} L ${p2.x - radius} ${p1.y} ${arc} ${p2.x} ${p1.y - offset} L ${p2.x} ${p2.y}`;
35820 }
35821 if (p1.y === p2.y) {
35822 colorClassNum = branchPos[commit1.branch].index;
35823 lineDef = `M ${p1.x} ${p1.y} L ${p1.x} ${p2.y - radius} ${arc} ${p1.x + offset} ${p2.y} L ${p2.x} ${p2.y}`;
35824 }
35825 }
35826 svg2.append("path").attr("d", lineDef).attr("class", "arrow arrow" + colorClassNum % THEME_COLOR_LIMIT);
35827 };
35828 const drawArrows = (svg2, commits2) => {
35829 const gArrows = svg2.append("g").attr("class", "commit-arrows");
35830 Object.keys(commits2).forEach((key) => {
35831 const commit2 = commits2[key];
35832 if (commit2.parents && commit2.parents.length > 0) {
35833 commit2.parents.forEach((parent) => {
35834 drawArrow(gArrows, commits2[parent], commit2, commits2);
35835 });
35836 }
35837 });
35838 };
35839 const drawBranches = (svg2, branches2) => {
35840 const gitGraphConfig = getConfig().gitGraph;
35841 const g = svg2.append("g");
35842 branches2.forEach((branch2, index2) => {
35843 const adjustIndexForTheme = index2 % THEME_COLOR_LIMIT;
35844 const pos = branchPos[branch2.name].pos;
35845 const line2 = g.append("line");
35846 line2.attr("x1", 0);
35847 line2.attr("y1", pos);
35848 line2.attr("x2", maxPos);
35849 line2.attr("y2", pos);
35850 line2.attr("class", "branch branch" + adjustIndexForTheme);
35851 lanes.push(pos);
35852 let name2 = branch2.name;
35853 const labelElement = drawText$3(name2);
35854 const bkg = g.insert("rect");
35855 const branchLabel = g.insert("g").attr("class", "branchLabel");
35856 const label = branchLabel.insert("g").attr("class", "label branch-label" + adjustIndexForTheme);
35857 label.node().appendChild(labelElement);
35858 let bbox = labelElement.getBBox();
35859 bkg.attr("class", "branchLabelBkg label" + adjustIndexForTheme).attr("rx", 4).attr("ry", 4).attr("x", -bbox.width - 4 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)).attr("y", -bbox.height / 2 + 8).attr("width", bbox.width + 18).attr("height", bbox.height + 4);
35860 label.attr(
35861 "transform",
35862 "translate(" + (-bbox.width - 14 - (gitGraphConfig.rotateCommitLabel === true ? 30 : 0)) + ", " + (pos - bbox.height / 2 - 1) + ")"
35863 );
35864 bkg.attr("transform", "translate(-19, " + (pos - bbox.height / 2) + ")");
35865 });
35866 };
35867 const draw$e = function(txt, id2, ver, diagObj) {
35868 clear$a();
35869 const conf2 = getConfig();
35870 const gitGraphConfig = conf2.gitGraph;
35871 log$1.debug("in gitgraph renderer", txt + "\n", "id:", id2, ver);
35872 allCommitsDict = diagObj.db.getCommits();
35873 const branches2 = diagObj.db.getBranchesAsObjArray();
35874 let pos = 0;
35875 branches2.forEach((branch2, index2) => {
35876 branchPos[branch2.name] = { pos, index: index2 };
35877 pos += 50 + (gitGraphConfig.rotateCommitLabel ? 40 : 0);
35878 });
35879 const diagram2 = select(`[id="${id2}"]`);
35880 drawCommits(diagram2, allCommitsDict, false);
35881 if (gitGraphConfig.showBranches) {
35882 drawBranches(diagram2, branches2);
35883 }
35884 drawArrows(diagram2, allCommitsDict);
35885 drawCommits(diagram2, allCommitsDict, true);
35886 utils.insertTitle(
35887 diagram2,
35888 "gitTitleText",
35889 gitGraphConfig.titleTopMargin,
35890 diagObj.db.getDiagramTitle()
35891 );
35892 setupGraphViewbox(
35893 void 0,
35894 diagram2,
35895 gitGraphConfig.diagramPadding,
35896 gitGraphConfig.useMaxWidth ?? conf2.useMaxWidth
35897 );
35898 };
35899 const gitGraphRenderer = {
35900 draw: draw$e
35901 };
35902 const getStyles$b = (options2) => `
35903 .commit-id,
35904 .commit-msg,
35905 .branch-label {
35906 fill: lightgrey;
35907 color: lightgrey;
35908 font-family: 'trebuchet ms', verdana, arial, sans-serif;
35909 font-family: var(--mermaid-font-family);
35910 }
35911 ${[0, 1, 2, 3, 4, 5, 6, 7].map(
35912 (i2) => `
35913 .branch-label${i2} { fill: ${options2["gitBranchLabel" + i2]}; }
35914 .commit${i2} { stroke: ${options2["git" + i2]}; fill: ${options2["git" + i2]}; }
35915 .commit-highlight${i2} { stroke: ${options2["gitInv" + i2]}; fill: ${options2["gitInv" + i2]}; }
35916 .label${i2} { fill: ${options2["git" + i2]}; }
35917 .arrow${i2} { stroke: ${options2["git" + i2]}; }
35918 `
35919 ).join("\n")}
35920
35921 .branch {
35922 stroke-width: 1;
35923 stroke: ${options2.lineColor};
35924 stroke-dasharray: 2;
35925 }
35926 .commit-label { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelColor};}
35927 .commit-label-bkg { font-size: ${options2.commitLabelFontSize}; fill: ${options2.commitLabelBackground}; opacity: 0.5; }
35928 .tag-label { font-size: ${options2.tagLabelFontSize}; fill: ${options2.tagLabelColor};}
35929 .tag-label-bkg { fill: ${options2.tagLabelBackground}; stroke: ${options2.tagLabelBorder}; }
35930 .tag-hole { fill: ${options2.textColor}; }
35931
35932 .commit-merge {
35933 stroke: ${options2.primaryColor};
35934 fill: ${options2.primaryColor};
35935 }
35936 .commit-reverse {
35937 stroke: ${options2.primaryColor};
35938 fill: ${options2.primaryColor};
35939 stroke-width: 3;
35940 }
35941 .commit-highlight-outer {
35942 }
35943 .commit-highlight-inner {
35944 stroke: ${options2.primaryColor};
35945 fill: ${options2.primaryColor};
35946 }
35947
35948 .arrow { stroke-width: 8; stroke-linecap: round; fill: none}
35949 .gitTitleText {
35950 text-anchor: middle;
35951 font-size: 18px;
35952 fill: ${options2.textColor};
35953 }
35954`;
35955 const gitGraphStyles = getStyles$b;
35956 const diagram$e = {
35957 parser: gitGraphParser,
35958 db: gitGraphDb,
35959 renderer: gitGraphRenderer,
35960 styles: gitGraphStyles
35961 };
35962 const gitGraphDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
35963 __proto__: null,
35964 diagram: diagram$e
35965 }, Symbol.toStringTag, { value: "Module" }));
35966 var parser$j = function() {
35967 var o = function(k, v, o2, l) {
35968 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
35969 ;
35970 return o2;
35971 }, $V0 = [1, 3], $V1 = [1, 5], $V2 = [7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 28, 35, 40], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 20], $V9 = [1, 21], $Va = [1, 22], $Vb = [1, 23], $Vc = [1, 24], $Vd = [1, 25], $Ve = [1, 26], $Vf = [1, 27], $Vg = [1, 29], $Vh = [1, 31], $Vi = [1, 34], $Vj = [5, 7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 25, 26, 28, 35, 40];
35972 var parser2 = {
35973 trace: function trace() {
35974 },
35975 yy: {},
35976 symbols_: { "error": 2, "start": 3, "directive": 4, "gantt": 5, "document": 6, "EOF": 7, "line": 8, "SPACE": 9, "statement": 10, "NL": 11, "dateFormat": 12, "inclusiveEndDates": 13, "topAxis": 14, "axisFormat": 15, "tickInterval": 16, "excludes": 17, "includes": 18, "todayMarker": 19, "title": 20, "acc_title": 21, "acc_title_value": 22, "acc_descr": 23, "acc_descr_value": 24, "acc_descr_multiline_value": 25, "section": 26, "clickStatement": 27, "taskTxt": 28, "taskData": 29, "openDirective": 30, "typeDirective": 31, "closeDirective": 32, ":": 33, "argDirective": 34, "click": 35, "callbackname": 36, "callbackargs": 37, "href": 38, "clickStatementDebug": 39, "open_directive": 40, "type_directive": 41, "arg_directive": 42, "close_directive": 43, "$accept": 0, "$end": 1 },
35977 terminals_: { 2: "error", 5: "gantt", 7: "EOF", 9: "SPACE", 11: "NL", 12: "dateFormat", 13: "inclusiveEndDates", 14: "topAxis", 15: "axisFormat", 16: "tickInterval", 17: "excludes", 18: "includes", 19: "todayMarker", 20: "title", 21: "acc_title", 22: "acc_title_value", 23: "acc_descr", 24: "acc_descr_value", 25: "acc_descr_multiline_value", 26: "section", 28: "taskTxt", 29: "taskData", 33: ":", 35: "click", 36: "callbackname", 37: "callbackargs", 38: "href", 40: "open_directive", 41: "type_directive", 42: "arg_directive", 43: "close_directive" },
35978 productions_: [0, [3, 2], [3, 3], [6, 0], [6, 2], [8, 2], [8, 1], [8, 1], [8, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [10, 2], [10, 1], [4, 4], [4, 6], [27, 2], [27, 3], [27, 3], [27, 4], [27, 3], [27, 4], [27, 2], [39, 2], [39, 3], [39, 3], [39, 4], [39, 3], [39, 4], [39, 2], [30, 1], [31, 1], [34, 1], [32, 1]],
35979 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
35980 var $0 = $$.length - 1;
35981 switch (yystate) {
35982 case 2:
35983 return $$[$0 - 1];
35984 case 3:
35985 this.$ = [];
35986 break;
35987 case 4:
35988 $$[$0 - 1].push($$[$0]);
35989 this.$ = $$[$0 - 1];
35990 break;
35991 case 5:
35992 case 6:
35993 this.$ = $$[$0];
35994 break;
35995 case 7:
35996 case 8:
35997 this.$ = [];
35998 break;
35999 case 9:
36000 yy.setDateFormat($$[$0].substr(11));
36001 this.$ = $$[$0].substr(11);
36002 break;
36003 case 10:
36004 yy.enableInclusiveEndDates();
36005 this.$ = $$[$0].substr(18);
36006 break;
36007 case 11:
36008 yy.TopAxis();
36009 this.$ = $$[$0].substr(8);
36010 break;
36011 case 12:
36012 yy.setAxisFormat($$[$0].substr(11));
36013 this.$ = $$[$0].substr(11);
36014 break;
36015 case 13:
36016 yy.setTickInterval($$[$0].substr(13));
36017 this.$ = $$[$0].substr(13);
36018 break;
36019 case 14:
36020 yy.setExcludes($$[$0].substr(9));
36021 this.$ = $$[$0].substr(9);
36022 break;
36023 case 15:
36024 yy.setIncludes($$[$0].substr(9));
36025 this.$ = $$[$0].substr(9);
36026 break;
36027 case 16:
36028 yy.setTodayMarker($$[$0].substr(12));
36029 this.$ = $$[$0].substr(12);
36030 break;
36031 case 17:
36032 yy.setDiagramTitle($$[$0].substr(6));
36033 this.$ = $$[$0].substr(6);
36034 break;
36035 case 18:
36036 this.$ = $$[$0].trim();
36037 yy.setAccTitle(this.$);
36038 break;
36039 case 19:
36040 case 20:
36041 this.$ = $$[$0].trim();
36042 yy.setAccDescription(this.$);
36043 break;
36044 case 21:
36045 yy.addSection($$[$0].substr(8));
36046 this.$ = $$[$0].substr(8);
36047 break;
36048 case 23:
36049 yy.addTask($$[$0 - 1], $$[$0]);
36050 this.$ = "task";
36051 break;
36052 case 27:
36053 this.$ = $$[$0 - 1];
36054 yy.setClickEvent($$[$0 - 1], $$[$0], null);
36055 break;
36056 case 28:
36057 this.$ = $$[$0 - 2];
36058 yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
36059 break;
36060 case 29:
36061 this.$ = $$[$0 - 2];
36062 yy.setClickEvent($$[$0 - 2], $$[$0 - 1], null);
36063 yy.setLink($$[$0 - 2], $$[$0]);
36064 break;
36065 case 30:
36066 this.$ = $$[$0 - 3];
36067 yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);
36068 yy.setLink($$[$0 - 3], $$[$0]);
36069 break;
36070 case 31:
36071 this.$ = $$[$0 - 2];
36072 yy.setClickEvent($$[$0 - 2], $$[$0], null);
36073 yy.setLink($$[$0 - 2], $$[$0 - 1]);
36074 break;
36075 case 32:
36076 this.$ = $$[$0 - 3];
36077 yy.setClickEvent($$[$0 - 3], $$[$0 - 1], $$[$0]);
36078 yy.setLink($$[$0 - 3], $$[$0 - 2]);
36079 break;
36080 case 33:
36081 this.$ = $$[$0 - 1];
36082 yy.setLink($$[$0 - 1], $$[$0]);
36083 break;
36084 case 34:
36085 case 40:
36086 this.$ = $$[$0 - 1] + " " + $$[$0];
36087 break;
36088 case 35:
36089 case 36:
36090 case 38:
36091 this.$ = $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0];
36092 break;
36093 case 37:
36094 case 39:
36095 this.$ = $$[$0 - 3] + " " + $$[$0 - 2] + " " + $$[$0 - 1] + " " + $$[$0];
36096 break;
36097 case 41:
36098 yy.parseDirective("%%{", "open_directive");
36099 break;
36100 case 42:
36101 yy.parseDirective($$[$0], "type_directive");
36102 break;
36103 case 43:
36104 $$[$0] = $$[$0].trim().replace(/'/g, '"');
36105 yy.parseDirective($$[$0], "arg_directive");
36106 break;
36107 case 44:
36108 yy.parseDirective("}%%", "close_directive", "gantt");
36109 break;
36110 }
36111 },
36112 table: [{ 3: 1, 4: 2, 5: $V0, 30: 4, 40: $V1 }, { 1: [3] }, { 3: 6, 4: 2, 5: $V0, 30: 4, 40: $V1 }, o($V2, [2, 3], { 6: 7 }), { 31: 8, 41: [1, 9] }, { 41: [2, 41] }, { 1: [2, 1] }, { 4: 30, 7: [1, 10], 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: $V3, 13: $V4, 14: $V5, 15: $V6, 16: $V7, 17: $V8, 18: $V9, 19: $Va, 20: $Vb, 21: $Vc, 23: $Vd, 25: $Ve, 26: $Vf, 27: 28, 28: $Vg, 30: 4, 35: $Vh, 40: $V1 }, { 32: 32, 33: [1, 33], 43: $Vi }, o([33, 43], [2, 42]), o($V2, [2, 8], { 1: [2, 2] }), o($V2, [2, 4]), { 4: 30, 10: 35, 12: $V3, 13: $V4, 14: $V5, 15: $V6, 16: $V7, 17: $V8, 18: $V9, 19: $Va, 20: $Vb, 21: $Vc, 23: $Vd, 25: $Ve, 26: $Vf, 27: 28, 28: $Vg, 30: 4, 35: $Vh, 40: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 9]), o($V2, [2, 10]), o($V2, [2, 11]), o($V2, [2, 12]), o($V2, [2, 13]), o($V2, [2, 14]), o($V2, [2, 15]), o($V2, [2, 16]), o($V2, [2, 17]), { 22: [1, 36] }, { 24: [1, 37] }, o($V2, [2, 20]), o($V2, [2, 21]), o($V2, [2, 22]), { 29: [1, 38] }, o($V2, [2, 24]), { 36: [1, 39], 38: [1, 40] }, { 11: [1, 41] }, { 34: 42, 42: [1, 43] }, { 11: [2, 44] }, o($V2, [2, 5]), o($V2, [2, 18]), o($V2, [2, 19]), o($V2, [2, 23]), o($V2, [2, 27], { 37: [1, 44], 38: [1, 45] }), o($V2, [2, 33], { 36: [1, 46] }), o($Vj, [2, 25]), { 32: 47, 43: $Vi }, { 43: [2, 43] }, o($V2, [2, 28], { 38: [1, 48] }), o($V2, [2, 29]), o($V2, [2, 31], { 37: [1, 49] }), { 11: [1, 50] }, o($V2, [2, 30]), o($V2, [2, 32]), o($Vj, [2, 26])],
36113 defaultActions: { 5: [2, 41], 6: [2, 1], 34: [2, 44], 43: [2, 43] },
36114 parseError: function parseError2(str2, hash) {
36115 if (hash.recoverable) {
36116 this.trace(str2);
36117 } else {
36118 var error = new Error(str2);
36119 error.hash = hash;
36120 throw error;
36121 }
36122 },
36123 parse: function parse2(input) {
36124 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
36125 var args = lstack.slice.call(arguments, 1);
36126 var lexer2 = Object.create(this.lexer);
36127 var sharedState = { yy: {} };
36128 for (var k in this.yy) {
36129 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
36130 sharedState.yy[k] = this.yy[k];
36131 }
36132 }
36133 lexer2.setInput(input, sharedState.yy);
36134 sharedState.yy.lexer = lexer2;
36135 sharedState.yy.parser = this;
36136 if (typeof lexer2.yylloc == "undefined") {
36137 lexer2.yylloc = {};
36138 }
36139 var yyloc = lexer2.yylloc;
36140 lstack.push(yyloc);
36141 var ranges = lexer2.options && lexer2.options.ranges;
36142 if (typeof sharedState.yy.parseError === "function") {
36143 this.parseError = sharedState.yy.parseError;
36144 } else {
36145 this.parseError = Object.getPrototypeOf(this).parseError;
36146 }
36147 function lex2() {
36148 var token2;
36149 token2 = tstack.pop() || lexer2.lex() || EOF;
36150 if (typeof token2 !== "number") {
36151 if (token2 instanceof Array) {
36152 tstack = token2;
36153 token2 = tstack.pop();
36154 }
36155 token2 = self2.symbols_[token2] || token2;
36156 }
36157 return token2;
36158 }
36159 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
36160 while (true) {
36161 state2 = stack[stack.length - 1];
36162 if (this.defaultActions[state2]) {
36163 action = this.defaultActions[state2];
36164 } else {
36165 if (symbol === null || typeof symbol == "undefined") {
36166 symbol = lex2();
36167 }
36168 action = table[state2] && table[state2][symbol];
36169 }
36170 if (typeof action === "undefined" || !action.length || !action[0]) {
36171 var errStr = "";
36172 expected = [];
36173 for (p in table[state2]) {
36174 if (this.terminals_[p] && p > TERROR) {
36175 expected.push("'" + this.terminals_[p] + "'");
36176 }
36177 }
36178 if (lexer2.showPosition) {
36179 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
36180 } else {
36181 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
36182 }
36183 this.parseError(errStr, {
36184 text: lexer2.match,
36185 token: this.terminals_[symbol] || symbol,
36186 line: lexer2.yylineno,
36187 loc: yyloc,
36188 expected
36189 });
36190 }
36191 if (action[0] instanceof Array && action.length > 1) {
36192 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
36193 }
36194 switch (action[0]) {
36195 case 1:
36196 stack.push(symbol);
36197 vstack.push(lexer2.yytext);
36198 lstack.push(lexer2.yylloc);
36199 stack.push(action[1]);
36200 symbol = null;
36201 {
36202 yyleng = lexer2.yyleng;
36203 yytext = lexer2.yytext;
36204 yylineno = lexer2.yylineno;
36205 yyloc = lexer2.yylloc;
36206 }
36207 break;
36208 case 2:
36209 len = this.productions_[action[1]][1];
36210 yyval.$ = vstack[vstack.length - len];
36211 yyval._$ = {
36212 first_line: lstack[lstack.length - (len || 1)].first_line,
36213 last_line: lstack[lstack.length - 1].last_line,
36214 first_column: lstack[lstack.length - (len || 1)].first_column,
36215 last_column: lstack[lstack.length - 1].last_column
36216 };
36217 if (ranges) {
36218 yyval._$.range = [
36219 lstack[lstack.length - (len || 1)].range[0],
36220 lstack[lstack.length - 1].range[1]
36221 ];
36222 }
36223 r = this.performAction.apply(yyval, [
36224 yytext,
36225 yyleng,
36226 yylineno,
36227 sharedState.yy,
36228 action[1],
36229 vstack,
36230 lstack
36231 ].concat(args));
36232 if (typeof r !== "undefined") {
36233 return r;
36234 }
36235 if (len) {
36236 stack = stack.slice(0, -1 * len * 2);
36237 vstack = vstack.slice(0, -1 * len);
36238 lstack = lstack.slice(0, -1 * len);
36239 }
36240 stack.push(this.productions_[action[1]][0]);
36241 vstack.push(yyval.$);
36242 lstack.push(yyval._$);
36243 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
36244 stack.push(newState);
36245 break;
36246 case 3:
36247 return true;
36248 }
36249 }
36250 return true;
36251 }
36252 };
36253 var lexer = function() {
36254 var lexer2 = {
36255 EOF: 1,
36256 parseError: function parseError2(str2, hash) {
36257 if (this.yy.parser) {
36258 this.yy.parser.parseError(str2, hash);
36259 } else {
36260 throw new Error(str2);
36261 }
36262 },
36263 // resets the lexer, sets new input
36264 setInput: function(input, yy) {
36265 this.yy = yy || this.yy || {};
36266 this._input = input;
36267 this._more = this._backtrack = this.done = false;
36268 this.yylineno = this.yyleng = 0;
36269 this.yytext = this.matched = this.match = "";
36270 this.conditionStack = ["INITIAL"];
36271 this.yylloc = {
36272 first_line: 1,
36273 first_column: 0,
36274 last_line: 1,
36275 last_column: 0
36276 };
36277 if (this.options.ranges) {
36278 this.yylloc.range = [0, 0];
36279 }
36280 this.offset = 0;
36281 return this;
36282 },
36283 // consumes and returns one char from the input
36284 input: function() {
36285 var ch = this._input[0];
36286 this.yytext += ch;
36287 this.yyleng++;
36288 this.offset++;
36289 this.match += ch;
36290 this.matched += ch;
36291 var lines = ch.match(/(?:\r\n?|\n).*/g);
36292 if (lines) {
36293 this.yylineno++;
36294 this.yylloc.last_line++;
36295 } else {
36296 this.yylloc.last_column++;
36297 }
36298 if (this.options.ranges) {
36299 this.yylloc.range[1]++;
36300 }
36301 this._input = this._input.slice(1);
36302 return ch;
36303 },
36304 // unshifts one char (or a string) into the input
36305 unput: function(ch) {
36306 var len = ch.length;
36307 var lines = ch.split(/(?:\r\n?|\n)/g);
36308 this._input = ch + this._input;
36309 this.yytext = this.yytext.substr(0, this.yytext.length - len);
36310 this.offset -= len;
36311 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
36312 this.match = this.match.substr(0, this.match.length - 1);
36313 this.matched = this.matched.substr(0, this.matched.length - 1);
36314 if (lines.length - 1) {
36315 this.yylineno -= lines.length - 1;
36316 }
36317 var r = this.yylloc.range;
36318 this.yylloc = {
36319 first_line: this.yylloc.first_line,
36320 last_line: this.yylineno + 1,
36321 first_column: this.yylloc.first_column,
36322 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
36323 };
36324 if (this.options.ranges) {
36325 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
36326 }
36327 this.yyleng = this.yytext.length;
36328 return this;
36329 },
36330 // When called from action, caches matched text and appends it on next action
36331 more: function() {
36332 this._more = true;
36333 return this;
36334 },
36335 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
36336 reject: function() {
36337 if (this.options.backtrack_lexer) {
36338 this._backtrack = true;
36339 } else {
36340 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
36341 text: "",
36342 token: null,
36343 line: this.yylineno
36344 });
36345 }
36346 return this;
36347 },
36348 // retain first n characters of the match
36349 less: function(n) {
36350 this.unput(this.match.slice(n));
36351 },
36352 // displays already matched input, i.e. for error messages
36353 pastInput: function() {
36354 var past = this.matched.substr(0, this.matched.length - this.match.length);
36355 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
36356 },
36357 // displays upcoming input, i.e. for error messages
36358 upcomingInput: function() {
36359 var next2 = this.match;
36360 if (next2.length < 20) {
36361 next2 += this._input.substr(0, 20 - next2.length);
36362 }
36363 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
36364 },
36365 // displays the character position where the lexing error occurred, i.e. for error messages
36366 showPosition: function() {
36367 var pre = this.pastInput();
36368 var c2 = new Array(pre.length + 1).join("-");
36369 return pre + this.upcomingInput() + "\n" + c2 + "^";
36370 },
36371 // test the lexed token: return FALSE when not a match, otherwise return token
36372 test_match: function(match, indexed_rule) {
36373 var token2, lines, backup;
36374 if (this.options.backtrack_lexer) {
36375 backup = {
36376 yylineno: this.yylineno,
36377 yylloc: {
36378 first_line: this.yylloc.first_line,
36379 last_line: this.last_line,
36380 first_column: this.yylloc.first_column,
36381 last_column: this.yylloc.last_column
36382 },
36383 yytext: this.yytext,
36384 match: this.match,
36385 matches: this.matches,
36386 matched: this.matched,
36387 yyleng: this.yyleng,
36388 offset: this.offset,
36389 _more: this._more,
36390 _input: this._input,
36391 yy: this.yy,
36392 conditionStack: this.conditionStack.slice(0),
36393 done: this.done
36394 };
36395 if (this.options.ranges) {
36396 backup.yylloc.range = this.yylloc.range.slice(0);
36397 }
36398 }
36399 lines = match[0].match(/(?:\r\n?|\n).*/g);
36400 if (lines) {
36401 this.yylineno += lines.length;
36402 }
36403 this.yylloc = {
36404 first_line: this.yylloc.last_line,
36405 last_line: this.yylineno + 1,
36406 first_column: this.yylloc.last_column,
36407 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
36408 };
36409 this.yytext += match[0];
36410 this.match += match[0];
36411 this.matches = match;
36412 this.yyleng = this.yytext.length;
36413 if (this.options.ranges) {
36414 this.yylloc.range = [this.offset, this.offset += this.yyleng];
36415 }
36416 this._more = false;
36417 this._backtrack = false;
36418 this._input = this._input.slice(match[0].length);
36419 this.matched += match[0];
36420 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
36421 if (this.done && this._input) {
36422 this.done = false;
36423 }
36424 if (token2) {
36425 return token2;
36426 } else if (this._backtrack) {
36427 for (var k in backup) {
36428 this[k] = backup[k];
36429 }
36430 return false;
36431 }
36432 return false;
36433 },
36434 // return next match in input
36435 next: function() {
36436 if (this.done) {
36437 return this.EOF;
36438 }
36439 if (!this._input) {
36440 this.done = true;
36441 }
36442 var token2, match, tempMatch, index2;
36443 if (!this._more) {
36444 this.yytext = "";
36445 this.match = "";
36446 }
36447 var rules = this._currentRules();
36448 for (var i2 = 0; i2 < rules.length; i2++) {
36449 tempMatch = this._input.match(this.rules[rules[i2]]);
36450 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
36451 match = tempMatch;
36452 index2 = i2;
36453 if (this.options.backtrack_lexer) {
36454 token2 = this.test_match(tempMatch, rules[i2]);
36455 if (token2 !== false) {
36456 return token2;
36457 } else if (this._backtrack) {
36458 match = false;
36459 continue;
36460 } else {
36461 return false;
36462 }
36463 } else if (!this.options.flex) {
36464 break;
36465 }
36466 }
36467 }
36468 if (match) {
36469 token2 = this.test_match(match, rules[index2]);
36470 if (token2 !== false) {
36471 return token2;
36472 }
36473 return false;
36474 }
36475 if (this._input === "") {
36476 return this.EOF;
36477 } else {
36478 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
36479 text: "",
36480 token: null,
36481 line: this.yylineno
36482 });
36483 }
36484 },
36485 // return next match that has a token
36486 lex: function lex2() {
36487 var r = this.next();
36488 if (r) {
36489 return r;
36490 } else {
36491 return this.lex();
36492 }
36493 },
36494 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
36495 begin: function begin(condition) {
36496 this.conditionStack.push(condition);
36497 },
36498 // pop the previously active lexer condition state off the condition stack
36499 popState: function popState() {
36500 var n = this.conditionStack.length - 1;
36501 if (n > 0) {
36502 return this.conditionStack.pop();
36503 } else {
36504 return this.conditionStack[0];
36505 }
36506 },
36507 // produce the lexer rule set which is active for the currently active lexer condition state
36508 _currentRules: function _currentRules() {
36509 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
36510 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
36511 } else {
36512 return this.conditions["INITIAL"].rules;
36513 }
36514 },
36515 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
36516 topState: function topState(n) {
36517 n = this.conditionStack.length - 1 - Math.abs(n || 0);
36518 if (n >= 0) {
36519 return this.conditionStack[n];
36520 } else {
36521 return "INITIAL";
36522 }
36523 },
36524 // alias for begin(condition)
36525 pushState: function pushState(condition) {
36526 this.begin(condition);
36527 },
36528 // return the number of states currently on the stack
36529 stateStackSize: function stateStackSize() {
36530 return this.conditionStack.length;
36531 },
36532 options: { "case-insensitive": true },
36533 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
36534 switch ($avoiding_name_collisions) {
36535 case 0:
36536 this.begin("open_directive");
36537 return 40;
36538 case 1:
36539 this.begin("type_directive");
36540 return 41;
36541 case 2:
36542 this.popState();
36543 this.begin("arg_directive");
36544 return 33;
36545 case 3:
36546 this.popState();
36547 this.popState();
36548 return 43;
36549 case 4:
36550 return 42;
36551 case 5:
36552 this.begin("acc_title");
36553 return 21;
36554 case 6:
36555 this.popState();
36556 return "acc_title_value";
36557 case 7:
36558 this.begin("acc_descr");
36559 return 23;
36560 case 8:
36561 this.popState();
36562 return "acc_descr_value";
36563 case 9:
36564 this.begin("acc_descr_multiline");
36565 break;
36566 case 10:
36567 this.popState();
36568 break;
36569 case 11:
36570 return "acc_descr_multiline_value";
36571 case 12:
36572 break;
36573 case 13:
36574 break;
36575 case 14:
36576 break;
36577 case 15:
36578 return 11;
36579 case 16:
36580 break;
36581 case 17:
36582 break;
36583 case 18:
36584 break;
36585 case 19:
36586 this.begin("href");
36587 break;
36588 case 20:
36589 this.popState();
36590 break;
36591 case 21:
36592 return 38;
36593 case 22:
36594 this.begin("callbackname");
36595 break;
36596 case 23:
36597 this.popState();
36598 break;
36599 case 24:
36600 this.popState();
36601 this.begin("callbackargs");
36602 break;
36603 case 25:
36604 return 36;
36605 case 26:
36606 this.popState();
36607 break;
36608 case 27:
36609 return 37;
36610 case 28:
36611 this.begin("click");
36612 break;
36613 case 29:
36614 this.popState();
36615 break;
36616 case 30:
36617 return 35;
36618 case 31:
36619 return 5;
36620 case 32:
36621 return 12;
36622 case 33:
36623 return 13;
36624 case 34:
36625 return 14;
36626 case 35:
36627 return 15;
36628 case 36:
36629 return 16;
36630 case 37:
36631 return 18;
36632 case 38:
36633 return 17;
36634 case 39:
36635 return 19;
36636 case 40:
36637 return "date";
36638 case 41:
36639 return 20;
36640 case 42:
36641 return "accDescription";
36642 case 43:
36643 return 26;
36644 case 44:
36645 return 28;
36646 case 45:
36647 return 29;
36648 case 46:
36649 return 33;
36650 case 47:
36651 return 7;
36652 case 48:
36653 return "INVALID";
36654 }
36655 },
36656 rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:%%(?!\{)*[^\n]*)/i, /^(?:[^\}]%%*[^\n]*)/i, /^(?:%%*[^\n]*[\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:href[\s]+["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:call[\s]+)/i, /^(?:\([\s]*\))/i, /^(?:\()/i, /^(?:[^(]*)/i, /^(?:\))/i, /^(?:[^)]*)/i, /^(?:click[\s]+)/i, /^(?:[\s\n])/i, /^(?:[^\s\n]*)/i, /^(?:gantt\b)/i, /^(?:dateFormat\s[^#\n;]+)/i, /^(?:inclusiveEndDates\b)/i, /^(?:topAxis\b)/i, /^(?:axisFormat\s[^#\n;]+)/i, /^(?:tickInterval\s[^#\n;]+)/i, /^(?:includes\s[^#\n;]+)/i, /^(?:excludes\s[^#\n;]+)/i, /^(?:todayMarker\s[^\n;]+)/i, /^(?:\d\d\d\d-\d\d-\d\d\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accDescription\s[^#\n;]+)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
36657 conditions: { "acc_descr_multiline": { "rules": [10, 11], "inclusive": false }, "acc_descr": { "rules": [8], "inclusive": false }, "acc_title": { "rules": [6], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "callbackargs": { "rules": [26, 27], "inclusive": false }, "callbackname": { "rules": [23, 24, 25], "inclusive": false }, "href": { "rules": [20, 21], "inclusive": false }, "click": { "rules": [29, 30], "inclusive": false }, "INITIAL": { "rules": [0, 5, 7, 9, 12, 13, 14, 15, 16, 17, 18, 19, 22, 28, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], "inclusive": true } }
36658 };
36659 return lexer2;
36660 }();
36661 parser2.lexer = lexer;
36662 function Parser() {
36663 this.yy = {};
36664 }
36665 Parser.prototype = parser2;
36666 parser2.Parser = Parser;
36667 return new Parser();
36668 }();
36669 parser$j.parser = parser$j;
36670 const ganttParser = parser$j;
36671 var isoWeekPrettyUnit = "isoweek";
36672 const dayjsIsoWeek = function(o, c2, d) {
36673 var getYearFirstThursday = function getYearFirstThursday2(year2, isUtc) {
36674 var yearFirstDay = (isUtc ? d.utc : d)().year(year2).startOf(Y);
36675 var addDiffDays = 4 - yearFirstDay.isoWeekday();
36676 if (yearFirstDay.isoWeekday() > 4) {
36677 addDiffDays += 7;
36678 }
36679 return yearFirstDay.add(addDiffDays, D);
36680 };
36681 var getCurrentWeekThursday = function getCurrentWeekThursday2(ins) {
36682 return ins.add(4 - ins.isoWeekday(), D);
36683 };
36684 var proto2 = c2.prototype;
36685 proto2.isoWeekYear = function() {
36686 var nowWeekThursday = getCurrentWeekThursday(this);
36687 return nowWeekThursday.year();
36688 };
36689 proto2.isoWeek = function(week) {
36690 if (!this.$utils().u(week)) {
36691 return this.add((week - this.isoWeek()) * 7, D);
36692 }
36693 var nowWeekThursday = getCurrentWeekThursday(this);
36694 var diffWeekThursday = getYearFirstThursday(this.isoWeekYear(), this.$u);
36695 return nowWeekThursday.diff(diffWeekThursday, W) + 1;
36696 };
36697 proto2.isoWeekday = function(week) {
36698 if (!this.$utils().u(week)) {
36699 return this.day(this.day() % 7 ? week : week - 7);
36700 }
36701 return this.day() || 7;
36702 };
36703 var oldStartOf = proto2.startOf;
36704 proto2.startOf = function(units, startOf) {
36705 var utils2 = this.$utils();
36706 var isStartOf = !utils2.u(startOf) ? startOf : true;
36707 var unit2 = utils2.p(units);
36708 if (unit2 === isoWeekPrettyUnit) {
36709 return isStartOf ? this.date(this.date() - (this.isoWeekday() - 1)).startOf("day") : this.date(this.date() - 1 - (this.isoWeekday() - 1) + 7).endOf("day");
36710 }
36711 return oldStartOf.bind(this)(units, startOf);
36712 };
36713 };
36714 var t = function t4(format2) {
36715 return format2.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g, function(_2, a, b) {
36716 return a || b.slice(1);
36717 });
36718 };
36719 var englishFormats = {
36720 LTS: "h:mm:ss A",
36721 LT: "h:mm A",
36722 L: "MM/DD/YYYY",
36723 LL: "MMMM D, YYYY",
36724 LLL: "MMMM D, YYYY h:mm A",
36725 LLLL: "dddd, MMMM D, YYYY h:mm A"
36726 };
36727 var u = function u2(formatStr, formats) {
36728 return formatStr.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g, function(_2, a, b) {
36729 var B = b && b.toUpperCase();
36730 return a || formats[b] || englishFormats[b] || t(formats[B]);
36731 });
36732 };
36733 var formattingTokens = /(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g;
36734 var match1 = /\d/;
36735 var match2 = /\d\d/;
36736 var match3 = /\d{3}/;
36737 var match4 = /\d{4}/;
36738 var match1to2 = /\d\d?/;
36739 var matchSigned = /[+-]?\d+/;
36740 var matchOffset = /[+-]\d\d:?(\d\d)?|Z/;
36741 var matchWord = /\d*[^-_:/,()\s\d]+/;
36742 var locale = {};
36743 var parseTwoDigitYear = function parseTwoDigitYear2(input) {
36744 input = +input;
36745 return input + (input > 68 ? 1900 : 2e3);
36746 };
36747 function offsetFromString(string2) {
36748 if (!string2)
36749 return 0;
36750 if (string2 === "Z")
36751 return 0;
36752 var parts = string2.match(/([+-]|\d\d)/g);
36753 var minutes = +(parts[1] * 60) + (+parts[2] || 0);
36754 return minutes === 0 ? 0 : parts[0] === "+" ? -minutes : minutes;
36755 }
36756 var addInput = function addInput2(property2) {
36757 return function(input) {
36758 this[property2] = +input;
36759 };
36760 };
36761 var zoneExpressions = [matchOffset, function(input) {
36762 var zone = this.zone || (this.zone = {});
36763 zone.offset = offsetFromString(input);
36764 }];
36765 var getLocalePart = function getLocalePart2(name2) {
36766 var part = locale[name2];
36767 return part && (part.indexOf ? part : part.s.concat(part.f));
36768 };
36769 var meridiemMatch = function meridiemMatch2(input, isLowerCase) {
36770 var isAfternoon;
36771 var _locale = locale, meridiem = _locale.meridiem;
36772 if (!meridiem) {
36773 isAfternoon = input === (isLowerCase ? "pm" : "PM");
36774 } else {
36775 for (var i2 = 1; i2 <= 24; i2 += 1) {
36776 if (input.indexOf(meridiem(i2, 0, isLowerCase)) > -1) {
36777 isAfternoon = i2 > 12;
36778 break;
36779 }
36780 }
36781 }
36782 return isAfternoon;
36783 };
36784 var expressions = {
36785 A: [matchWord, function(input) {
36786 this.afternoon = meridiemMatch(input, false);
36787 }],
36788 a: [matchWord, function(input) {
36789 this.afternoon = meridiemMatch(input, true);
36790 }],
36791 S: [match1, function(input) {
36792 this.milliseconds = +input * 100;
36793 }],
36794 SS: [match2, function(input) {
36795 this.milliseconds = +input * 10;
36796 }],
36797 SSS: [match3, function(input) {
36798 this.milliseconds = +input;
36799 }],
36800 s: [match1to2, addInput("seconds")],
36801 ss: [match1to2, addInput("seconds")],
36802 m: [match1to2, addInput("minutes")],
36803 mm: [match1to2, addInput("minutes")],
36804 H: [match1to2, addInput("hours")],
36805 h: [match1to2, addInput("hours")],
36806 HH: [match1to2, addInput("hours")],
36807 hh: [match1to2, addInput("hours")],
36808 D: [match1to2, addInput("day")],
36809 DD: [match2, addInput("day")],
36810 Do: [matchWord, function(input) {
36811 var _locale2 = locale, ordinal2 = _locale2.ordinal;
36812 var _input$match = input.match(/\d+/);
36813 this.day = _input$match[0];
36814 if (!ordinal2)
36815 return;
36816 for (var i2 = 1; i2 <= 31; i2 += 1) {
36817 if (ordinal2(i2).replace(/\[|\]/g, "") === input) {
36818 this.day = i2;
36819 }
36820 }
36821 }],
36822 M: [match1to2, addInput("month")],
36823 MM: [match2, addInput("month")],
36824 MMM: [matchWord, function(input) {
36825 var months = getLocalePart("months");
36826 var monthsShort = getLocalePart("monthsShort");
36827 var matchIndex = (monthsShort || months.map(function(_2) {
36828 return _2.slice(0, 3);
36829 })).indexOf(input) + 1;
36830 if (matchIndex < 1) {
36831 throw new Error();
36832 }
36833 this.month = matchIndex % 12 || matchIndex;
36834 }],
36835 MMMM: [matchWord, function(input) {
36836 var months = getLocalePart("months");
36837 var matchIndex = months.indexOf(input) + 1;
36838 if (matchIndex < 1) {
36839 throw new Error();
36840 }
36841 this.month = matchIndex % 12 || matchIndex;
36842 }],
36843 Y: [matchSigned, addInput("year")],
36844 YY: [match2, function(input) {
36845 this.year = parseTwoDigitYear(input);
36846 }],
36847 YYYY: [match4, addInput("year")],
36848 Z: zoneExpressions,
36849 ZZ: zoneExpressions
36850 };
36851 function correctHours(time2) {
36852 var afternoon = time2.afternoon;
36853 if (afternoon !== void 0) {
36854 var hours = time2.hours;
36855 if (afternoon) {
36856 if (hours < 12) {
36857 time2.hours += 12;
36858 }
36859 } else if (hours === 12) {
36860 time2.hours = 0;
36861 }
36862 delete time2.afternoon;
36863 }
36864 }
36865 function makeParser(format2) {
36866 format2 = u(format2, locale && locale.formats);
36867 var array2 = format2.match(formattingTokens);
36868 var length2 = array2.length;
36869 for (var i2 = 0; i2 < length2; i2 += 1) {
36870 var token2 = array2[i2];
36871 var parseTo = expressions[token2];
36872 var regex = parseTo && parseTo[0];
36873 var parser2 = parseTo && parseTo[1];
36874 if (parser2) {
36875 array2[i2] = {
36876 regex,
36877 parser: parser2
36878 };
36879 } else {
36880 array2[i2] = token2.replace(/^\[|\]$/g, "");
36881 }
36882 }
36883 return function(input) {
36884 var time2 = {};
36885 for (var _i = 0, start2 = 0; _i < length2; _i += 1) {
36886 var _token = array2[_i];
36887 if (typeof _token === "string") {
36888 start2 += _token.length;
36889 } else {
36890 var _regex = _token.regex, _parser = _token.parser;
36891 var part = input.slice(start2);
36892 var match = _regex.exec(part);
36893 var value = match[0];
36894 _parser.call(time2, value);
36895 input = input.replace(value, "");
36896 }
36897 }
36898 correctHours(time2);
36899 return time2;
36900 };
36901 }
36902 var parseFormattedInput = function parseFormattedInput2(input, format2, utc) {
36903 try {
36904 if (["x", "X"].indexOf(format2) > -1)
36905 return new Date((format2 === "X" ? 1e3 : 1) * input);
36906 var parser2 = makeParser(format2);
36907 var _parser2 = parser2(input), year2 = _parser2.year, month2 = _parser2.month, day2 = _parser2.day, hours = _parser2.hours, minutes = _parser2.minutes, seconds = _parser2.seconds, milliseconds = _parser2.milliseconds, zone = _parser2.zone;
36908 var now2 = /* @__PURE__ */ new Date();
36909 var d = day2 || (!year2 && !month2 ? now2.getDate() : 1);
36910 var y2 = year2 || now2.getFullYear();
36911 var M2 = 0;
36912 if (!(year2 && !month2)) {
36913 M2 = month2 > 0 ? month2 - 1 : now2.getMonth();
36914 }
36915 var h = hours || 0;
36916 var m = minutes || 0;
36917 var s = seconds || 0;
36918 var ms = milliseconds || 0;
36919 if (zone) {
36920 return new Date(Date.UTC(y2, M2, d, h, m, s, ms + zone.offset * 60 * 1e3));
36921 }
36922 if (utc) {
36923 return new Date(Date.UTC(y2, M2, d, h, m, s, ms));
36924 }
36925 return new Date(y2, M2, d, h, m, s, ms);
36926 } catch (e) {
36927 return /* @__PURE__ */ new Date("");
36928 }
36929 };
36930 const dayjsCustomParseFormat = function(o, C, d) {
36931 d.p.customParseFormat = true;
36932 if (o && o.parseTwoDigitYear) {
36933 parseTwoDigitYear = o.parseTwoDigitYear;
36934 }
36935 var proto2 = C.prototype;
36936 var oldParse = proto2.parse;
36937 proto2.parse = function(cfg) {
36938 var date2 = cfg.date, utc = cfg.utc, args = cfg.args;
36939 this.$u = utc;
36940 var format2 = args[1];
36941 if (typeof format2 === "string") {
36942 var isStrictWithoutLocale = args[2] === true;
36943 var isStrictWithLocale = args[3] === true;
36944 var isStrict = isStrictWithoutLocale || isStrictWithLocale;
36945 var pl = args[2];
36946 if (isStrictWithLocale) {
36947 pl = args[2];
36948 }
36949 locale = this.$locale();
36950 if (!isStrictWithoutLocale && pl) {
36951 locale = d.Ls[pl];
36952 }
36953 this.$d = parseFormattedInput(date2, format2, utc);
36954 this.init();
36955 if (pl && pl !== true)
36956 this.$L = this.locale(pl).$L;
36957 if (isStrict && date2 != this.format(format2)) {
36958 this.$d = /* @__PURE__ */ new Date("");
36959 }
36960 locale = {};
36961 } else if (format2 instanceof Array) {
36962 var len = format2.length;
36963 for (var i2 = 1; i2 <= len; i2 += 1) {
36964 args[1] = format2[i2 - 1];
36965 var result = d.apply(this, args);
36966 if (result.isValid()) {
36967 this.$d = result.$d;
36968 this.$L = result.$L;
36969 this.init();
36970 break;
36971 }
36972 if (i2 === len)
36973 this.$d = /* @__PURE__ */ new Date("");
36974 }
36975 } else {
36976 oldParse.call(this, cfg);
36977 }
36978 };
36979 };
36980 const dayjsAdvancedFormat = function(o, c2) {
36981 var proto2 = c2.prototype;
36982 var oldFormat = proto2.format;
36983 proto2.format = function(formatStr) {
36984 var _this = this;
36985 var locale2 = this.$locale();
36986 if (!this.isValid()) {
36987 return oldFormat.bind(this)(formatStr);
36988 }
36989 var utils2 = this.$utils();
36990 var str2 = formatStr || FORMAT_DEFAULT;
36991 var result = str2.replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g, function(match) {
36992 switch (match) {
36993 case "Q":
36994 return Math.ceil((_this.$M + 1) / 3);
36995 case "Do":
36996 return locale2.ordinal(_this.$D);
36997 case "gggg":
36998 return _this.weekYear();
36999 case "GGGG":
37000 return _this.isoWeekYear();
37001 case "wo":
37002 return locale2.ordinal(_this.week(), "W");
37003 case "w":
37004 case "ww":
37005 return utils2.s(_this.week(), match === "w" ? 1 : 2, "0");
37006 case "W":
37007 case "WW":
37008 return utils2.s(_this.isoWeek(), match === "W" ? 1 : 2, "0");
37009 case "k":
37010 case "kk":
37011 return utils2.s(String(_this.$H === 0 ? 24 : _this.$H), match === "k" ? 1 : 2, "0");
37012 case "X":
37013 return Math.floor(_this.$d.getTime() / 1e3);
37014 case "x":
37015 return _this.$d.getTime();
37016 case "z":
37017 return "[" + _this.offsetName() + "]";
37018 case "zzz":
37019 return "[" + _this.offsetName("long") + "]";
37020 default:
37021 return match;
37022 }
37023 });
37024 return oldFormat.bind(this)(result);
37025 };
37026 };
37027 dayjs.extend(dayjsIsoWeek);
37028 dayjs.extend(dayjsCustomParseFormat);
37029 dayjs.extend(dayjsAdvancedFormat);
37030 let dateFormat = "";
37031 let axisFormat = "";
37032 let tickInterval = void 0;
37033 let todayMarker = "";
37034 let includes = [];
37035 let excludes = [];
37036 let links = {};
37037 let sections$3 = [];
37038 let tasks$2 = [];
37039 let currentSection$2 = "";
37040 let displayMode = "";
37041 const tags = ["active", "done", "crit", "milestone"];
37042 let funs = [];
37043 let inclusiveEndDates = false;
37044 let topAxis = false;
37045 let lastOrder = 0;
37046 const parseDirective$8 = function(statement, context, type2) {
37047 mermaidAPI.parseDirective(this, statement, context, type2);
37048 };
37049 const clear$9 = function() {
37050 sections$3 = [];
37051 tasks$2 = [];
37052 currentSection$2 = "";
37053 funs = [];
37054 taskCnt = 0;
37055 lastTask = void 0;
37056 lastTaskID = void 0;
37057 rawTasks$2 = [];
37058 dateFormat = "";
37059 axisFormat = "";
37060 displayMode = "";
37061 tickInterval = void 0;
37062 todayMarker = "";
37063 includes = [];
37064 excludes = [];
37065 inclusiveEndDates = false;
37066 topAxis = false;
37067 lastOrder = 0;
37068 links = {};
37069 clear$j();
37070 };
37071 const setAxisFormat = function(txt) {
37072 axisFormat = txt;
37073 };
37074 const getAxisFormat = function() {
37075 return axisFormat;
37076 };
37077 const setTickInterval = function(txt) {
37078 tickInterval = txt;
37079 };
37080 const getTickInterval = function() {
37081 return tickInterval;
37082 };
37083 const setTodayMarker = function(txt) {
37084 todayMarker = txt;
37085 };
37086 const getTodayMarker = function() {
37087 return todayMarker;
37088 };
37089 const setDateFormat = function(txt) {
37090 dateFormat = txt;
37091 };
37092 const enableInclusiveEndDates = function() {
37093 inclusiveEndDates = true;
37094 };
37095 const endDatesAreInclusive = function() {
37096 return inclusiveEndDates;
37097 };
37098 const enableTopAxis = function() {
37099 topAxis = true;
37100 };
37101 const topAxisEnabled = function() {
37102 return topAxis;
37103 };
37104 const setDisplayMode = function(txt) {
37105 displayMode = txt;
37106 };
37107 const getDisplayMode = function() {
37108 return displayMode;
37109 };
37110 const getDateFormat = function() {
37111 return dateFormat;
37112 };
37113 const setIncludes = function(txt) {
37114 includes = txt.toLowerCase().split(/[\s,]+/);
37115 };
37116 const getIncludes = function() {
37117 return includes;
37118 };
37119 const setExcludes = function(txt) {
37120 excludes = txt.toLowerCase().split(/[\s,]+/);
37121 };
37122 const getExcludes = function() {
37123 return excludes;
37124 };
37125 const getLinks = function() {
37126 return links;
37127 };
37128 const addSection$3 = function(txt) {
37129 currentSection$2 = txt;
37130 sections$3.push(txt);
37131 };
37132 const getSections$3 = function() {
37133 return sections$3;
37134 };
37135 const getTasks$2 = function() {
37136 let allItemsProcessed = compileTasks$2();
37137 const maxDepth = 10;
37138 let iterationCount = 0;
37139 while (!allItemsProcessed && iterationCount < maxDepth) {
37140 allItemsProcessed = compileTasks$2();
37141 iterationCount++;
37142 }
37143 tasks$2 = rawTasks$2;
37144 return tasks$2;
37145 };
37146 const isInvalidDate = function(date2, dateFormat2, excludes2, includes2) {
37147 if (includes2.includes(date2.format(dateFormat2.trim()))) {
37148 return false;
37149 }
37150 if (date2.isoWeekday() >= 6 && excludes2.includes("weekends")) {
37151 return true;
37152 }
37153 if (excludes2.includes(date2.format("dddd").toLowerCase())) {
37154 return true;
37155 }
37156 return excludes2.includes(date2.format(dateFormat2.trim()));
37157 };
37158 const checkTaskDates = function(task, dateFormat2, excludes2, includes2) {
37159 if (!excludes2.length || task.manualEndTime) {
37160 return;
37161 }
37162 let startTime;
37163 if (task.startTime instanceof Date) {
37164 startTime = dayjs(task.startTime);
37165 } else {
37166 startTime = dayjs(task.startTime, dateFormat2, true);
37167 }
37168 startTime = startTime.add(1, "d");
37169 let originalEndTime;
37170 if (task.endTime instanceof Date) {
37171 originalEndTime = dayjs(task.endTime);
37172 } else {
37173 originalEndTime = dayjs(task.endTime, dateFormat2, true);
37174 }
37175 const [fixedEndTime, renderEndTime] = fixTaskDates(
37176 startTime,
37177 originalEndTime,
37178 dateFormat2,
37179 excludes2,
37180 includes2
37181 );
37182 task.endTime = fixedEndTime.toDate();
37183 task.renderEndTime = renderEndTime;
37184 };
37185 const fixTaskDates = function(startTime, endTime, dateFormat2, excludes2, includes2) {
37186 let invalid = false;
37187 let renderEndTime = null;
37188 while (startTime <= endTime) {
37189 if (!invalid) {
37190 renderEndTime = endTime.toDate();
37191 }
37192 invalid = isInvalidDate(startTime, dateFormat2, excludes2, includes2);
37193 if (invalid) {
37194 endTime = endTime.add(1, "d");
37195 }
37196 startTime = startTime.add(1, "d");
37197 }
37198 return [endTime, renderEndTime];
37199 };
37200 const getStartDate = function(prevTime, dateFormat2, str2) {
37201 str2 = str2.trim();
37202 const re2 = /^after\s+([\d\w- ]+)/;
37203 const afterStatement = re2.exec(str2.trim());
37204 if (afterStatement !== null) {
37205 let latestEndingTask = null;
37206 afterStatement[1].split(" ").forEach(function(id2) {
37207 let task = findTaskById(id2);
37208 if (task !== void 0) {
37209 if (!latestEndingTask) {
37210 latestEndingTask = task;
37211 } else {
37212 if (task.endTime > latestEndingTask.endTime) {
37213 latestEndingTask = task;
37214 }
37215 }
37216 }
37217 });
37218 if (!latestEndingTask) {
37219 const dt = /* @__PURE__ */ new Date();
37220 dt.setHours(0, 0, 0, 0);
37221 return dt;
37222 } else {
37223 return latestEndingTask.endTime;
37224 }
37225 }
37226 let mDate = dayjs(str2, dateFormat2.trim(), true);
37227 if (mDate.isValid()) {
37228 return mDate.toDate();
37229 } else {
37230 log$1.debug("Invalid date:" + str2);
37231 log$1.debug("With date format:" + dateFormat2.trim());
37232 const d = new Date(str2);
37233 if (d === void 0 || isNaN(d.getTime()) || // WebKit browsers can mis-parse invalid dates to be ridiculously
37234 // huge numbers, e.g. new Date('202304') gets parsed as January 1, 202304.
37235 // This can cause virtually infinite loops while rendering, so for the
37236 // purposes of Gantt charts we'll just treat any date beyond 10,000 AD/BC as
37237 // invalid.
37238 d.getFullYear() < -1e4 || d.getFullYear() > 1e4) {
37239 throw new Error("Invalid date:" + str2);
37240 }
37241 return d;
37242 }
37243 };
37244 const parseDuration = function(str2) {
37245 const statement = /^(\d+(?:\.\d+)?)([Mdhmswy]|ms)$/.exec(str2.trim());
37246 if (statement !== null) {
37247 return [Number.parseFloat(statement[1]), statement[2]];
37248 }
37249 return [NaN, "ms"];
37250 };
37251 const getEndDate = function(prevTime, dateFormat2, str2, inclusive = false) {
37252 str2 = str2.trim();
37253 let mDate = dayjs(str2, dateFormat2.trim(), true);
37254 if (mDate.isValid()) {
37255 if (inclusive) {
37256 mDate = mDate.add(1, "d");
37257 }
37258 return mDate.toDate();
37259 }
37260 let endTime = dayjs(prevTime);
37261 const [durationValue, durationUnit] = parseDuration(str2);
37262 if (!Number.isNaN(durationValue)) {
37263 const newEndTime = endTime.add(durationValue, durationUnit);
37264 if (newEndTime.isValid()) {
37265 endTime = newEndTime;
37266 }
37267 }
37268 return endTime.toDate();
37269 };
37270 let taskCnt = 0;
37271 const parseId = function(idStr) {
37272 if (idStr === void 0) {
37273 taskCnt = taskCnt + 1;
37274 return "task" + taskCnt;
37275 }
37276 return idStr;
37277 };
37278 const compileData = function(prevTask, dataStr) {
37279 let ds;
37280 if (dataStr.substr(0, 1) === ":") {
37281 ds = dataStr.substr(1, dataStr.length);
37282 } else {
37283 ds = dataStr;
37284 }
37285 const data = ds.split(",");
37286 const task = {};
37287 getTaskTags(data, task, tags);
37288 for (let i2 = 0; i2 < data.length; i2++) {
37289 data[i2] = data[i2].trim();
37290 }
37291 let endTimeData = "";
37292 switch (data.length) {
37293 case 1:
37294 task.id = parseId();
37295 task.startTime = prevTask.endTime;
37296 endTimeData = data[0];
37297 break;
37298 case 2:
37299 task.id = parseId();
37300 task.startTime = getStartDate(void 0, dateFormat, data[0]);
37301 endTimeData = data[1];
37302 break;
37303 case 3:
37304 task.id = parseId(data[0]);
37305 task.startTime = getStartDate(void 0, dateFormat, data[1]);
37306 endTimeData = data[2];
37307 break;
37308 }
37309 if (endTimeData) {
37310 task.endTime = getEndDate(task.startTime, dateFormat, endTimeData, inclusiveEndDates);
37311 task.manualEndTime = dayjs(endTimeData, "YYYY-MM-DD", true).isValid();
37312 checkTaskDates(task, dateFormat, excludes, includes);
37313 }
37314 return task;
37315 };
37316 const parseData = function(prevTaskId, dataStr) {
37317 let ds;
37318 if (dataStr.substr(0, 1) === ":") {
37319 ds = dataStr.substr(1, dataStr.length);
37320 } else {
37321 ds = dataStr;
37322 }
37323 const data = ds.split(",");
37324 const task = {};
37325 getTaskTags(data, task, tags);
37326 for (let i2 = 0; i2 < data.length; i2++) {
37327 data[i2] = data[i2].trim();
37328 }
37329 switch (data.length) {
37330 case 1:
37331 task.id = parseId();
37332 task.startTime = {
37333 type: "prevTaskEnd",
37334 id: prevTaskId
37335 };
37336 task.endTime = {
37337 data: data[0]
37338 };
37339 break;
37340 case 2:
37341 task.id = parseId();
37342 task.startTime = {
37343 type: "getStartDate",
37344 startData: data[0]
37345 };
37346 task.endTime = {
37347 data: data[1]
37348 };
37349 break;
37350 case 3:
37351 task.id = parseId(data[0]);
37352 task.startTime = {
37353 type: "getStartDate",
37354 startData: data[1]
37355 };
37356 task.endTime = {
37357 data: data[2]
37358 };
37359 break;
37360 }
37361 return task;
37362 };
37363 let lastTask;
37364 let lastTaskID;
37365 let rawTasks$2 = [];
37366 const taskDb = {};
37367 const addTask$2 = function(descr, data) {
37368 const rawTask = {
37369 section: currentSection$2,
37370 type: currentSection$2,
37371 processed: false,
37372 manualEndTime: false,
37373 renderEndTime: null,
37374 raw: { data },
37375 task: descr,
37376 classes: []
37377 };
37378 const taskInfo = parseData(lastTaskID, data);
37379 rawTask.raw.startTime = taskInfo.startTime;
37380 rawTask.raw.endTime = taskInfo.endTime;
37381 rawTask.id = taskInfo.id;
37382 rawTask.prevTaskId = lastTaskID;
37383 rawTask.active = taskInfo.active;
37384 rawTask.done = taskInfo.done;
37385 rawTask.crit = taskInfo.crit;
37386 rawTask.milestone = taskInfo.milestone;
37387 rawTask.order = lastOrder;
37388 lastOrder++;
37389 const pos = rawTasks$2.push(rawTask);
37390 lastTaskID = rawTask.id;
37391 taskDb[rawTask.id] = pos - 1;
37392 };
37393 const findTaskById = function(id2) {
37394 const pos = taskDb[id2];
37395 return rawTasks$2[pos];
37396 };
37397 const addTaskOrg$2 = function(descr, data) {
37398 const newTask = {
37399 section: currentSection$2,
37400 type: currentSection$2,
37401 description: descr,
37402 task: descr,
37403 classes: []
37404 };
37405 const taskInfo = compileData(lastTask, data);
37406 newTask.startTime = taskInfo.startTime;
37407 newTask.endTime = taskInfo.endTime;
37408 newTask.id = taskInfo.id;
37409 newTask.active = taskInfo.active;
37410 newTask.done = taskInfo.done;
37411 newTask.crit = taskInfo.crit;
37412 newTask.milestone = taskInfo.milestone;
37413 lastTask = newTask;
37414 tasks$2.push(newTask);
37415 };
37416 const compileTasks$2 = function() {
37417 const compileTask = function(pos) {
37418 const task = rawTasks$2[pos];
37419 let startTime = "";
37420 switch (rawTasks$2[pos].raw.startTime.type) {
37421 case "prevTaskEnd": {
37422 const prevTask = findTaskById(task.prevTaskId);
37423 task.startTime = prevTask.endTime;
37424 break;
37425 }
37426 case "getStartDate":
37427 startTime = getStartDate(void 0, dateFormat, rawTasks$2[pos].raw.startTime.startData);
37428 if (startTime) {
37429 rawTasks$2[pos].startTime = startTime;
37430 }
37431 break;
37432 }
37433 if (rawTasks$2[pos].startTime) {
37434 rawTasks$2[pos].endTime = getEndDate(
37435 rawTasks$2[pos].startTime,
37436 dateFormat,
37437 rawTasks$2[pos].raw.endTime.data,
37438 inclusiveEndDates
37439 );
37440 if (rawTasks$2[pos].endTime) {
37441 rawTasks$2[pos].processed = true;
37442 rawTasks$2[pos].manualEndTime = dayjs(
37443 rawTasks$2[pos].raw.endTime.data,
37444 "YYYY-MM-DD",
37445 true
37446 ).isValid();
37447 checkTaskDates(rawTasks$2[pos], dateFormat, excludes, includes);
37448 }
37449 }
37450 return rawTasks$2[pos].processed;
37451 };
37452 let allProcessed = true;
37453 for (const [i2, rawTask] of rawTasks$2.entries()) {
37454 compileTask(i2);
37455 allProcessed = allProcessed && rawTask.processed;
37456 }
37457 return allProcessed;
37458 };
37459 const setLink$1 = function(ids, _linkStr) {
37460 let linkStr = _linkStr;
37461 if (getConfig$1().securityLevel !== "loose") {
37462 linkStr = sanitizeUrl_1(_linkStr);
37463 }
37464 ids.split(",").forEach(function(id2) {
37465 let rawTask = findTaskById(id2);
37466 if (rawTask !== void 0) {
37467 pushFun(id2, () => {
37468 window.open(linkStr, "_self");
37469 });
37470 links[id2] = linkStr;
37471 }
37472 });
37473 setClass(ids, "clickable");
37474 };
37475 const setClass = function(ids, className) {
37476 ids.split(",").forEach(function(id2) {
37477 let rawTask = findTaskById(id2);
37478 if (rawTask !== void 0) {
37479 rawTask.classes.push(className);
37480 }
37481 });
37482 };
37483 const setClickFun = function(id2, functionName, functionArgs) {
37484 if (getConfig$1().securityLevel !== "loose") {
37485 return;
37486 }
37487 if (functionName === void 0) {
37488 return;
37489 }
37490 let argList = [];
37491 if (typeof functionArgs === "string") {
37492 argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
37493 for (let i2 = 0; i2 < argList.length; i2++) {
37494 let item = argList[i2].trim();
37495 if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
37496 item = item.substr(1, item.length - 2);
37497 }
37498 argList[i2] = item;
37499 }
37500 }
37501 if (argList.length === 0) {
37502 argList.push(id2);
37503 }
37504 let rawTask = findTaskById(id2);
37505 if (rawTask !== void 0) {
37506 pushFun(id2, () => {
37507 utils.runFunc(functionName, ...argList);
37508 });
37509 }
37510 };
37511 const pushFun = function(id2, callbackFunction) {
37512 funs.push(
37513 function() {
37514 const elem = document.querySelector(`[id="${id2}"]`);
37515 if (elem !== null) {
37516 elem.addEventListener("click", function() {
37517 callbackFunction();
37518 });
37519 }
37520 },
37521 function() {
37522 const elem = document.querySelector(`[id="${id2}-text"]`);
37523 if (elem !== null) {
37524 elem.addEventListener("click", function() {
37525 callbackFunction();
37526 });
37527 }
37528 }
37529 );
37530 };
37531 const setClickEvent$1 = function(ids, functionName, functionArgs) {
37532 ids.split(",").forEach(function(id2) {
37533 setClickFun(id2, functionName, functionArgs);
37534 });
37535 setClass(ids, "clickable");
37536 };
37537 const bindFunctions$1 = function(element2) {
37538 funs.forEach(function(fun) {
37539 fun(element2);
37540 });
37541 };
37542 const ganttDb = {
37543 parseDirective: parseDirective$8,
37544 getConfig: () => getConfig$1().gantt,
37545 clear: clear$9,
37546 setDateFormat,
37547 getDateFormat,
37548 enableInclusiveEndDates,
37549 endDatesAreInclusive,
37550 enableTopAxis,
37551 topAxisEnabled,
37552 setAxisFormat,
37553 getAxisFormat,
37554 setTickInterval,
37555 getTickInterval,
37556 setTodayMarker,
37557 getTodayMarker,
37558 setAccTitle,
37559 getAccTitle,
37560 setDiagramTitle,
37561 getDiagramTitle,
37562 setDisplayMode,
37563 getDisplayMode,
37564 setAccDescription,
37565 getAccDescription,
37566 addSection: addSection$3,
37567 getSections: getSections$3,
37568 getTasks: getTasks$2,
37569 addTask: addTask$2,
37570 findTaskById,
37571 addTaskOrg: addTaskOrg$2,
37572 setIncludes,
37573 getIncludes,
37574 setExcludes,
37575 getExcludes,
37576 setClickEvent: setClickEvent$1,
37577 setLink: setLink$1,
37578 getLinks,
37579 bindFunctions: bindFunctions$1,
37580 parseDuration,
37581 isInvalidDate
37582 };
37583 function getTaskTags(data, task, tags2) {
37584 let matchFound = true;
37585 while (matchFound) {
37586 matchFound = false;
37587 tags2.forEach(function(t4) {
37588 const pattern = "^\\s*" + t4 + "\\s*$";
37589 const regex = new RegExp(pattern);
37590 if (data[0].match(regex)) {
37591 task[t4] = true;
37592 data.shift(1);
37593 matchFound = true;
37594 }
37595 });
37596 }
37597 }
37598 const setConf$5 = function() {
37599 log$1.debug("Something is calling, setConf, remove the call");
37600 };
37601 const getMaxIntersections = (tasks2, orderOffset) => {
37602 let timeline2 = [...tasks2].map(() => -Infinity);
37603 let sorted = [...tasks2].sort((a, b) => a.startTime - b.startTime || a.order - b.order);
37604 let maxIntersections = 0;
37605 for (const element2 of sorted) {
37606 for (let j = 0; j < timeline2.length; j++) {
37607 if (element2.startTime >= timeline2[j]) {
37608 timeline2[j] = element2.endTime;
37609 element2.order = j + orderOffset;
37610 if (j > maxIntersections) {
37611 maxIntersections = j;
37612 }
37613 break;
37614 }
37615 }
37616 }
37617 return maxIntersections;
37618 };
37619 let w;
37620 const draw$d = function(text2, id2, version2, diagObj) {
37621 const conf2 = getConfig$1().gantt;
37622 const securityLevel = getConfig$1().securityLevel;
37623 let sandboxElement;
37624 if (securityLevel === "sandbox") {
37625 sandboxElement = select("#i" + id2);
37626 }
37627 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
37628 const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
37629 const elem = doc.getElementById(id2);
37630 w = elem.parentElement.offsetWidth;
37631 if (w === void 0) {
37632 w = 1200;
37633 }
37634 if (conf2.useWidth !== void 0) {
37635 w = conf2.useWidth;
37636 }
37637 const taskArray = diagObj.db.getTasks();
37638 let categories = [];
37639 for (const element2 of taskArray) {
37640 categories.push(element2.type);
37641 }
37642 categories = checkUnique(categories);
37643 const categoryHeights = {};
37644 let h = 2 * conf2.topPadding;
37645 if (diagObj.db.getDisplayMode() === "compact" || conf2.displayMode === "compact") {
37646 const categoryElements = {};
37647 for (const element2 of taskArray) {
37648 if (categoryElements[element2.section] === void 0) {
37649 categoryElements[element2.section] = [element2];
37650 } else {
37651 categoryElements[element2.section].push(element2);
37652 }
37653 }
37654 let intersections = 0;
37655 for (const category of Object.keys(categoryElements)) {
37656 const categoryHeight = getMaxIntersections(categoryElements[category], intersections) + 1;
37657 intersections += categoryHeight;
37658 h += categoryHeight * (conf2.barHeight + conf2.barGap);
37659 categoryHeights[category] = categoryHeight;
37660 }
37661 } else {
37662 h += taskArray.length * (conf2.barHeight + conf2.barGap);
37663 for (const category of categories) {
37664 categoryHeights[category] = taskArray.filter((task) => task.type === category).length;
37665 }
37666 }
37667 elem.setAttribute("viewBox", "0 0 " + w + " " + h);
37668 const svg2 = root2.select(`[id="${id2}"]`);
37669 const timeScale = time$1().domain([
37670 min$2(taskArray, function(d) {
37671 return d.startTime;
37672 }),
37673 max$2(taskArray, function(d) {
37674 return d.endTime;
37675 })
37676 ]).rangeRound([0, w - conf2.leftPadding - conf2.rightPadding]);
37677 function taskCompare(a, b) {
37678 const taskA = a.startTime;
37679 const taskB = b.startTime;
37680 let result = 0;
37681 if (taskA > taskB) {
37682 result = 1;
37683 } else if (taskA < taskB) {
37684 result = -1;
37685 }
37686 return result;
37687 }
37688 taskArray.sort(taskCompare);
37689 makeGant(taskArray, w, h);
37690 configureSvgSize(svg2, h, w, conf2.useMaxWidth);
37691 svg2.append("text").text(diagObj.db.getDiagramTitle()).attr("x", w / 2).attr("y", conf2.titleTopMargin).attr("class", "titleText");
37692 function makeGant(tasks2, pageWidth, pageHeight) {
37693 const barHeight = conf2.barHeight;
37694 const gap = barHeight + conf2.barGap;
37695 const topPadding = conf2.topPadding;
37696 const leftPadding = conf2.leftPadding;
37697 const colorScale = linear().domain([0, categories.length]).range(["#00B9FA", "#F95002"]).interpolate(interpolateHcl);
37698 drawExcludeDays(
37699 gap,
37700 topPadding,
37701 leftPadding,
37702 pageWidth,
37703 pageHeight,
37704 tasks2,
37705 diagObj.db.getExcludes(),
37706 diagObj.db.getIncludes()
37707 );
37708 makeGrid(leftPadding, topPadding, pageWidth, pageHeight);
37709 drawRects(tasks2, gap, topPadding, leftPadding, barHeight, colorScale, pageWidth);
37710 vertLabels(gap, topPadding);
37711 drawToday(leftPadding, topPadding, pageWidth, pageHeight);
37712 }
37713 function drawRects(theArray, theGap, theTopPad, theSidePad, theBarHeight, theColorScale, w2) {
37714 const uniqueTaskOrderIds = [...new Set(theArray.map((item) => item.order))];
37715 const uniqueTasks = uniqueTaskOrderIds.map((id3) => theArray.find((item) => item.order === id3));
37716 svg2.append("g").selectAll("rect").data(uniqueTasks).enter().append("rect").attr("x", 0).attr("y", function(d, i2) {
37717 i2 = d.order;
37718 return i2 * theGap + theTopPad - 2;
37719 }).attr("width", function() {
37720 return w2 - conf2.rightPadding / 2;
37721 }).attr("height", theGap).attr("class", function(d) {
37722 for (const [i2, category] of categories.entries()) {
37723 if (d.type === category) {
37724 return "section section" + i2 % conf2.numberSectionStyles;
37725 }
37726 }
37727 return "section section0";
37728 });
37729 const rectangles = svg2.append("g").selectAll("rect").data(theArray).enter();
37730 const links2 = diagObj.db.getLinks();
37731 rectangles.append("rect").attr("id", function(d) {
37732 return d.id;
37733 }).attr("rx", 3).attr("ry", 3).attr("x", function(d) {
37734 if (d.milestone) {
37735 return timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
37736 }
37737 return timeScale(d.startTime) + theSidePad;
37738 }).attr("y", function(d, i2) {
37739 i2 = d.order;
37740 return i2 * theGap + theTopPad;
37741 }).attr("width", function(d) {
37742 if (d.milestone) {
37743 return theBarHeight;
37744 }
37745 return timeScale(d.renderEndTime || d.endTime) - timeScale(d.startTime);
37746 }).attr("height", theBarHeight).attr("transform-origin", function(d, i2) {
37747 i2 = d.order;
37748 return (timeScale(d.startTime) + theSidePad + 0.5 * (timeScale(d.endTime) - timeScale(d.startTime))).toString() + "px " + (i2 * theGap + theTopPad + 0.5 * theBarHeight).toString() + "px";
37749 }).attr("class", function(d) {
37750 const res = "task";
37751 let classStr = "";
37752 if (d.classes.length > 0) {
37753 classStr = d.classes.join(" ");
37754 }
37755 let secNum = 0;
37756 for (const [i2, category] of categories.entries()) {
37757 if (d.type === category) {
37758 secNum = i2 % conf2.numberSectionStyles;
37759 }
37760 }
37761 let taskClass = "";
37762 if (d.active) {
37763 if (d.crit) {
37764 taskClass += " activeCrit";
37765 } else {
37766 taskClass = " active";
37767 }
37768 } else if (d.done) {
37769 if (d.crit) {
37770 taskClass = " doneCrit";
37771 } else {
37772 taskClass = " done";
37773 }
37774 } else {
37775 if (d.crit) {
37776 taskClass += " crit";
37777 }
37778 }
37779 if (taskClass.length === 0) {
37780 taskClass = " task";
37781 }
37782 if (d.milestone) {
37783 taskClass = " milestone " + taskClass;
37784 }
37785 taskClass += secNum;
37786 taskClass += " " + classStr;
37787 return res + taskClass;
37788 });
37789 rectangles.append("text").attr("id", function(d) {
37790 return d.id + "-text";
37791 }).text(function(d) {
37792 return d.task;
37793 }).attr("font-size", conf2.fontSize).attr("x", function(d) {
37794 let startX = timeScale(d.startTime);
37795 let endX = timeScale(d.renderEndTime || d.endTime);
37796 if (d.milestone) {
37797 startX += 0.5 * (timeScale(d.endTime) - timeScale(d.startTime)) - 0.5 * theBarHeight;
37798 }
37799 if (d.milestone) {
37800 endX = startX + theBarHeight;
37801 }
37802 const textWidth = this.getBBox().width;
37803 if (textWidth > endX - startX) {
37804 if (endX + textWidth + 1.5 * conf2.leftPadding > w2) {
37805 return startX + theSidePad - 5;
37806 } else {
37807 return endX + theSidePad + 5;
37808 }
37809 } else {
37810 return (endX - startX) / 2 + startX + theSidePad;
37811 }
37812 }).attr("y", function(d, i2) {
37813 i2 = d.order;
37814 return i2 * theGap + conf2.barHeight / 2 + (conf2.fontSize / 2 - 2) + theTopPad;
37815 }).attr("text-height", theBarHeight).attr("class", function(d) {
37816 const startX = timeScale(d.startTime);
37817 let endX = timeScale(d.endTime);
37818 if (d.milestone) {
37819 endX = startX + theBarHeight;
37820 }
37821 const textWidth = this.getBBox().width;
37822 let classStr = "";
37823 if (d.classes.length > 0) {
37824 classStr = d.classes.join(" ");
37825 }
37826 let secNum = 0;
37827 for (const [i2, category] of categories.entries()) {
37828 if (d.type === category) {
37829 secNum = i2 % conf2.numberSectionStyles;
37830 }
37831 }
37832 let taskType = "";
37833 if (d.active) {
37834 if (d.crit) {
37835 taskType = "activeCritText" + secNum;
37836 } else {
37837 taskType = "activeText" + secNum;
37838 }
37839 }
37840 if (d.done) {
37841 if (d.crit) {
37842 taskType = taskType + " doneCritText" + secNum;
37843 } else {
37844 taskType = taskType + " doneText" + secNum;
37845 }
37846 } else {
37847 if (d.crit) {
37848 taskType = taskType + " critText" + secNum;
37849 }
37850 }
37851 if (d.milestone) {
37852 taskType += " milestoneText";
37853 }
37854 if (textWidth > endX - startX) {
37855 if (endX + textWidth + 1.5 * conf2.leftPadding > w2) {
37856 return classStr + " taskTextOutsideLeft taskTextOutside" + secNum + " " + taskType;
37857 } else {
37858 return classStr + " taskTextOutsideRight taskTextOutside" + secNum + " " + taskType + " width-" + textWidth;
37859 }
37860 } else {
37861 return classStr + " taskText taskText" + secNum + " " + taskType + " width-" + textWidth;
37862 }
37863 });
37864 const securityLevel2 = getConfig$1().securityLevel;
37865 if (securityLevel2 === "sandbox") {
37866 let sandboxElement2;
37867 sandboxElement2 = select("#i" + id2);
37868 const doc2 = sandboxElement2.nodes()[0].contentDocument;
37869 rectangles.filter(function(d) {
37870 return links2[d.id] !== void 0;
37871 }).each(function(o) {
37872 var taskRect = doc2.querySelector("#" + o.id);
37873 var taskText = doc2.querySelector("#" + o.id + "-text");
37874 const oldParent = taskRect.parentNode;
37875 var Link = doc2.createElement("a");
37876 Link.setAttribute("xlink:href", links2[o.id]);
37877 Link.setAttribute("target", "_top");
37878 oldParent.appendChild(Link);
37879 Link.appendChild(taskRect);
37880 Link.appendChild(taskText);
37881 });
37882 }
37883 }
37884 function drawExcludeDays(theGap, theTopPad, theSidePad, w2, h2, tasks2, excludes2, includes2) {
37885 const minTime = tasks2.reduce(
37886 (min2, { startTime }) => min2 ? Math.min(min2, startTime) : startTime,
37887 0
37888 );
37889 const maxTime = tasks2.reduce((max2, { endTime }) => max2 ? Math.max(max2, endTime) : endTime, 0);
37890 const dateFormat2 = diagObj.db.getDateFormat();
37891 if (!minTime || !maxTime) {
37892 return;
37893 }
37894 const excludeRanges = [];
37895 let range2 = null;
37896 let d = dayjs(minTime);
37897 while (d.valueOf() <= maxTime) {
37898 if (diagObj.db.isInvalidDate(d, dateFormat2, excludes2, includes2)) {
37899 if (!range2) {
37900 range2 = {
37901 start: d,
37902 end: d
37903 };
37904 } else {
37905 range2.end = d;
37906 }
37907 } else {
37908 if (range2) {
37909 excludeRanges.push(range2);
37910 range2 = null;
37911 }
37912 }
37913 d = d.add(1, "d");
37914 }
37915 const rectangles = svg2.append("g").selectAll("rect").data(excludeRanges).enter();
37916 rectangles.append("rect").attr("id", function(d2) {
37917 return "exclude-" + d2.start.format("YYYY-MM-DD");
37918 }).attr("x", function(d2) {
37919 return timeScale(d2.start) + theSidePad;
37920 }).attr("y", conf2.gridLineStartPadding).attr("width", function(d2) {
37921 const renderEnd = d2.end.add(1, "day");
37922 return timeScale(renderEnd) - timeScale(d2.start);
37923 }).attr("height", h2 - theTopPad - conf2.gridLineStartPadding).attr("transform-origin", function(d2, i2) {
37924 return (timeScale(d2.start) + theSidePad + 0.5 * (timeScale(d2.end) - timeScale(d2.start))).toString() + "px " + (i2 * theGap + 0.5 * h2).toString() + "px";
37925 }).attr("class", "exclude-range");
37926 }
37927 function makeGrid(theSidePad, theTopPad, w2, h2) {
37928 let bottomXAxis = axisBottom(timeScale).tickSize(-h2 + theTopPad + conf2.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf2.axisFormat || "%Y-%m-%d"));
37929 const reTickInterval = /^([1-9]\d*)(minute|hour|day|week|month)$/;
37930 const resultTickInterval = reTickInterval.exec(
37931 diagObj.db.getTickInterval() || conf2.tickInterval
37932 );
37933 if (resultTickInterval !== null) {
37934 const every = resultTickInterval[1];
37935 const interval2 = resultTickInterval[2];
37936 switch (interval2) {
37937 case "minute":
37938 bottomXAxis.ticks(timeMinute.every(every));
37939 break;
37940 case "hour":
37941 bottomXAxis.ticks(timeHour.every(every));
37942 break;
37943 case "day":
37944 bottomXAxis.ticks(timeDay.every(every));
37945 break;
37946 case "week":
37947 bottomXAxis.ticks(sunday.every(every));
37948 break;
37949 case "month":
37950 bottomXAxis.ticks(timeMonth.every(every));
37951 break;
37952 }
37953 }
37954 svg2.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + (h2 - 50) + ")").call(bottomXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10).attr("dy", "1em");
37955 if (diagObj.db.topAxisEnabled() || conf2.topAxis) {
37956 let topXAxis = axisTop(timeScale).tickSize(-h2 + theTopPad + conf2.gridLineStartPadding).tickFormat(timeFormat(diagObj.db.getAxisFormat() || conf2.axisFormat || "%Y-%m-%d"));
37957 if (resultTickInterval !== null) {
37958 const every = resultTickInterval[1];
37959 const interval2 = resultTickInterval[2];
37960 switch (interval2) {
37961 case "minute":
37962 topXAxis.ticks(timeMinute.every(every));
37963 break;
37964 case "hour":
37965 topXAxis.ticks(timeHour.every(every));
37966 break;
37967 case "day":
37968 topXAxis.ticks(timeDay.every(every));
37969 break;
37970 case "week":
37971 topXAxis.ticks(sunday.every(every));
37972 break;
37973 case "month":
37974 topXAxis.ticks(timeMonth.every(every));
37975 break;
37976 }
37977 }
37978 svg2.append("g").attr("class", "grid").attr("transform", "translate(" + theSidePad + ", " + theTopPad + ")").call(topXAxis).selectAll("text").style("text-anchor", "middle").attr("fill", "#000").attr("stroke", "none").attr("font-size", 10);
37979 }
37980 }
37981 function vertLabels(theGap, theTopPad) {
37982 let prevGap = 0;
37983 const numOccurances = Object.keys(categoryHeights).map((d) => [d, categoryHeights[d]]);
37984 svg2.append("g").selectAll("text").data(numOccurances).enter().append(function(d) {
37985 const rows = d[0].split(common$1.lineBreakRegex);
37986 const dy = -(rows.length - 1) / 2;
37987 const svgLabel = doc.createElementNS("http://www.w3.org/2000/svg", "text");
37988 svgLabel.setAttribute("dy", dy + "em");
37989 for (const [j, row] of rows.entries()) {
37990 const tspan = doc.createElementNS("http://www.w3.org/2000/svg", "tspan");
37991 tspan.setAttribute("alignment-baseline", "central");
37992 tspan.setAttribute("x", "10");
37993 if (j > 0) {
37994 tspan.setAttribute("dy", "1em");
37995 }
37996 tspan.textContent = row;
37997 svgLabel.appendChild(tspan);
37998 }
37999 return svgLabel;
38000 }).attr("x", 10).attr("y", function(d, i2) {
38001 if (i2 > 0) {
38002 for (let j = 0; j < i2; j++) {
38003 prevGap += numOccurances[i2 - 1][1];
38004 return d[1] * theGap / 2 + prevGap * theGap + theTopPad;
38005 }
38006 } else {
38007 return d[1] * theGap / 2 + theTopPad;
38008 }
38009 }).attr("font-size", conf2.sectionFontSize).attr("class", function(d) {
38010 for (const [i2, category] of categories.entries()) {
38011 if (d[0] === category) {
38012 return "sectionTitle sectionTitle" + i2 % conf2.numberSectionStyles;
38013 }
38014 }
38015 return "sectionTitle";
38016 });
38017 }
38018 function drawToday(theSidePad, theTopPad, w2, h2) {
38019 const todayMarker2 = diagObj.db.getTodayMarker();
38020 if (todayMarker2 === "off") {
38021 return;
38022 }
38023 const todayG = svg2.append("g").attr("class", "today");
38024 const today = /* @__PURE__ */ new Date();
38025 const todayLine = todayG.append("line");
38026 todayLine.attr("x1", timeScale(today) + theSidePad).attr("x2", timeScale(today) + theSidePad).attr("y1", conf2.titleTopMargin).attr("y2", h2 - conf2.titleTopMargin).attr("class", "today");
38027 if (todayMarker2 !== "") {
38028 todayLine.attr("style", todayMarker2.replace(/,/g, ";"));
38029 }
38030 }
38031 function checkUnique(arr) {
38032 const hash = {};
38033 const result = [];
38034 for (let i2 = 0, l = arr.length; i2 < l; ++i2) {
38035 if (!Object.prototype.hasOwnProperty.call(hash, arr[i2])) {
38036 hash[arr[i2]] = true;
38037 result.push(arr[i2]);
38038 }
38039 }
38040 return result;
38041 }
38042 };
38043 const ganttRenderer = {
38044 setConf: setConf$5,
38045 draw: draw$d
38046 };
38047 const getStyles$a = (options2) => `
38048 .mermaid-main-font {
38049 font-family: "trebuchet ms", verdana, arial, sans-serif;
38050 font-family: var(--mermaid-font-family);
38051 }
38052 .exclude-range {
38053 fill: ${options2.excludeBkgColor};
38054 }
38055
38056 .section {
38057 stroke: none;
38058 opacity: 0.2;
38059 }
38060
38061 .section0 {
38062 fill: ${options2.sectionBkgColor};
38063 }
38064
38065 .section2 {
38066 fill: ${options2.sectionBkgColor2};
38067 }
38068
38069 .section1,
38070 .section3 {
38071 fill: ${options2.altSectionBkgColor};
38072 opacity: 0.2;
38073 }
38074
38075 .sectionTitle0 {
38076 fill: ${options2.titleColor};
38077 }
38078
38079 .sectionTitle1 {
38080 fill: ${options2.titleColor};
38081 }
38082
38083 .sectionTitle2 {
38084 fill: ${options2.titleColor};
38085 }
38086
38087 .sectionTitle3 {
38088 fill: ${options2.titleColor};
38089 }
38090
38091 .sectionTitle {
38092 text-anchor: start;
38093 // font-size: ${options2.ganttFontSize};
38094 // text-height: 14px;
38095 font-family: 'trebuchet ms', verdana, arial, sans-serif;
38096 font-family: var(--mermaid-font-family);
38097
38098 }
38099
38100
38101 /* Grid and axis */
38102
38103 .grid .tick {
38104 stroke: ${options2.gridColor};
38105 opacity: 0.8;
38106 shape-rendering: crispEdges;
38107 text {
38108 font-family: ${options2.fontFamily};
38109 fill: ${options2.textColor};
38110 }
38111 }
38112
38113 .grid path {
38114 stroke-width: 0;
38115 }
38116
38117
38118 /* Today line */
38119
38120 .today {
38121 fill: none;
38122 stroke: ${options2.todayLineColor};
38123 stroke-width: 2px;
38124 }
38125
38126
38127 /* Task styling */
38128
38129 /* Default task */
38130
38131 .task {
38132 stroke-width: 2;
38133 }
38134
38135 .taskText {
38136 text-anchor: middle;
38137 font-family: 'trebuchet ms', verdana, arial, sans-serif;
38138 font-family: var(--mermaid-font-family);
38139 }
38140
38141 // .taskText:not([font-size]) {
38142 // font-size: ${options2.ganttFontSize};
38143 // }
38144
38145 .taskTextOutsideRight {
38146 fill: ${options2.taskTextDarkColor};
38147 text-anchor: start;
38148 // font-size: ${options2.ganttFontSize};
38149 font-family: 'trebuchet ms', verdana, arial, sans-serif;
38150 font-family: var(--mermaid-font-family);
38151
38152 }
38153
38154 .taskTextOutsideLeft {
38155 fill: ${options2.taskTextDarkColor};
38156 text-anchor: end;
38157 // font-size: ${options2.ganttFontSize};
38158 }
38159
38160 /* Special case clickable */
38161 .task.clickable {
38162 cursor: pointer;
38163 }
38164 .taskText.clickable {
38165 cursor: pointer;
38166 fill: ${options2.taskTextClickableColor} !important;
38167 font-weight: bold;
38168 }
38169
38170 .taskTextOutsideLeft.clickable {
38171 cursor: pointer;
38172 fill: ${options2.taskTextClickableColor} !important;
38173 font-weight: bold;
38174 }
38175
38176 .taskTextOutsideRight.clickable {
38177 cursor: pointer;
38178 fill: ${options2.taskTextClickableColor} !important;
38179 font-weight: bold;
38180 }
38181
38182 /* Specific task settings for the sections*/
38183
38184 .taskText0,
38185 .taskText1,
38186 .taskText2,
38187 .taskText3 {
38188 fill: ${options2.taskTextColor};
38189 }
38190
38191 .task0,
38192 .task1,
38193 .task2,
38194 .task3 {
38195 fill: ${options2.taskBkgColor};
38196 stroke: ${options2.taskBorderColor};
38197 }
38198
38199 .taskTextOutside0,
38200 .taskTextOutside2
38201 {
38202 fill: ${options2.taskTextOutsideColor};
38203 }
38204
38205 .taskTextOutside1,
38206 .taskTextOutside3 {
38207 fill: ${options2.taskTextOutsideColor};
38208 }
38209
38210
38211 /* Active task */
38212
38213 .active0,
38214 .active1,
38215 .active2,
38216 .active3 {
38217 fill: ${options2.activeTaskBkgColor};
38218 stroke: ${options2.activeTaskBorderColor};
38219 }
38220
38221 .activeText0,
38222 .activeText1,
38223 .activeText2,
38224 .activeText3 {
38225 fill: ${options2.taskTextDarkColor} !important;
38226 }
38227
38228
38229 /* Completed task */
38230
38231 .done0,
38232 .done1,
38233 .done2,
38234 .done3 {
38235 stroke: ${options2.doneTaskBorderColor};
38236 fill: ${options2.doneTaskBkgColor};
38237 stroke-width: 2;
38238 }
38239
38240 .doneText0,
38241 .doneText1,
38242 .doneText2,
38243 .doneText3 {
38244 fill: ${options2.taskTextDarkColor} !important;
38245 }
38246
38247
38248 /* Tasks on the critical line */
38249
38250 .crit0,
38251 .crit1,
38252 .crit2,
38253 .crit3 {
38254 stroke: ${options2.critBorderColor};
38255 fill: ${options2.critBkgColor};
38256 stroke-width: 2;
38257 }
38258
38259 .activeCrit0,
38260 .activeCrit1,
38261 .activeCrit2,
38262 .activeCrit3 {
38263 stroke: ${options2.critBorderColor};
38264 fill: ${options2.activeTaskBkgColor};
38265 stroke-width: 2;
38266 }
38267
38268 .doneCrit0,
38269 .doneCrit1,
38270 .doneCrit2,
38271 .doneCrit3 {
38272 stroke: ${options2.critBorderColor};
38273 fill: ${options2.doneTaskBkgColor};
38274 stroke-width: 2;
38275 cursor: pointer;
38276 shape-rendering: crispEdges;
38277 }
38278
38279 .milestone {
38280 transform: rotate(45deg) scale(0.8,0.8);
38281 }
38282
38283 .milestoneText {
38284 font-style: italic;
38285 }
38286 .doneCritText0,
38287 .doneCritText1,
38288 .doneCritText2,
38289 .doneCritText3 {
38290 fill: ${options2.taskTextDarkColor} !important;
38291 }
38292
38293 .activeCritText0,
38294 .activeCritText1,
38295 .activeCritText2,
38296 .activeCritText3 {
38297 fill: ${options2.taskTextDarkColor} !important;
38298 }
38299
38300 .titleText {
38301 text-anchor: middle;
38302 font-size: 18px;
38303 fill: ${options2.textColor} ;
38304 font-family: 'trebuchet ms', verdana, arial, sans-serif;
38305 font-family: var(--mermaid-font-family);
38306 }
38307`;
38308 const ganttStyles = getStyles$a;
38309 const diagram$d = {
38310 parser: ganttParser,
38311 db: ganttDb,
38312 renderer: ganttRenderer,
38313 styles: ganttStyles
38314 };
38315 const ganttDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
38316 __proto__: null,
38317 diagram: diagram$d
38318 }, Symbol.toStringTag, { value: "Module" }));
38319 var parser$h = function() {
38320 var o = function(k, v, o2, l) {
38321 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
38322 ;
38323 return o2;
38324 }, $V0 = [6, 9, 10];
38325 var parser2 = {
38326 trace: function trace() {
38327 },
38328 yy: {},
38329 symbols_: { "error": 2, "start": 3, "info": 4, "document": 5, "EOF": 6, "line": 7, "statement": 8, "NL": 9, "showInfo": 10, "$accept": 0, "$end": 1 },
38330 terminals_: { 2: "error", 4: "info", 6: "EOF", 9: "NL", 10: "showInfo" },
38331 productions_: [0, [3, 3], [5, 0], [5, 2], [7, 1], [7, 1], [8, 1]],
38332 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
38333 $$.length - 1;
38334 switch (yystate) {
38335 case 1:
38336 return yy;
38337 case 4:
38338 break;
38339 case 6:
38340 yy.setInfo(true);
38341 break;
38342 }
38343 },
38344 table: [{ 3: 1, 4: [1, 2] }, { 1: [3] }, o($V0, [2, 2], { 5: 3 }), { 6: [1, 4], 7: 5, 8: 6, 9: [1, 7], 10: [1, 8] }, { 1: [2, 1] }, o($V0, [2, 3]), o($V0, [2, 4]), o($V0, [2, 5]), o($V0, [2, 6])],
38345 defaultActions: { 4: [2, 1] },
38346 parseError: function parseError2(str2, hash) {
38347 if (hash.recoverable) {
38348 this.trace(str2);
38349 } else {
38350 var error = new Error(str2);
38351 error.hash = hash;
38352 throw error;
38353 }
38354 },
38355 parse: function parse2(input) {
38356 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
38357 var args = lstack.slice.call(arguments, 1);
38358 var lexer2 = Object.create(this.lexer);
38359 var sharedState = { yy: {} };
38360 for (var k in this.yy) {
38361 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
38362 sharedState.yy[k] = this.yy[k];
38363 }
38364 }
38365 lexer2.setInput(input, sharedState.yy);
38366 sharedState.yy.lexer = lexer2;
38367 sharedState.yy.parser = this;
38368 if (typeof lexer2.yylloc == "undefined") {
38369 lexer2.yylloc = {};
38370 }
38371 var yyloc = lexer2.yylloc;
38372 lstack.push(yyloc);
38373 var ranges = lexer2.options && lexer2.options.ranges;
38374 if (typeof sharedState.yy.parseError === "function") {
38375 this.parseError = sharedState.yy.parseError;
38376 } else {
38377 this.parseError = Object.getPrototypeOf(this).parseError;
38378 }
38379 function lex2() {
38380 var token2;
38381 token2 = tstack.pop() || lexer2.lex() || EOF;
38382 if (typeof token2 !== "number") {
38383 if (token2 instanceof Array) {
38384 tstack = token2;
38385 token2 = tstack.pop();
38386 }
38387 token2 = self2.symbols_[token2] || token2;
38388 }
38389 return token2;
38390 }
38391 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
38392 while (true) {
38393 state2 = stack[stack.length - 1];
38394 if (this.defaultActions[state2]) {
38395 action = this.defaultActions[state2];
38396 } else {
38397 if (symbol === null || typeof symbol == "undefined") {
38398 symbol = lex2();
38399 }
38400 action = table[state2] && table[state2][symbol];
38401 }
38402 if (typeof action === "undefined" || !action.length || !action[0]) {
38403 var errStr = "";
38404 expected = [];
38405 for (p in table[state2]) {
38406 if (this.terminals_[p] && p > TERROR) {
38407 expected.push("'" + this.terminals_[p] + "'");
38408 }
38409 }
38410 if (lexer2.showPosition) {
38411 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
38412 } else {
38413 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
38414 }
38415 this.parseError(errStr, {
38416 text: lexer2.match,
38417 token: this.terminals_[symbol] || symbol,
38418 line: lexer2.yylineno,
38419 loc: yyloc,
38420 expected
38421 });
38422 }
38423 if (action[0] instanceof Array && action.length > 1) {
38424 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
38425 }
38426 switch (action[0]) {
38427 case 1:
38428 stack.push(symbol);
38429 vstack.push(lexer2.yytext);
38430 lstack.push(lexer2.yylloc);
38431 stack.push(action[1]);
38432 symbol = null;
38433 {
38434 yyleng = lexer2.yyleng;
38435 yytext = lexer2.yytext;
38436 yylineno = lexer2.yylineno;
38437 yyloc = lexer2.yylloc;
38438 }
38439 break;
38440 case 2:
38441 len = this.productions_[action[1]][1];
38442 yyval.$ = vstack[vstack.length - len];
38443 yyval._$ = {
38444 first_line: lstack[lstack.length - (len || 1)].first_line,
38445 last_line: lstack[lstack.length - 1].last_line,
38446 first_column: lstack[lstack.length - (len || 1)].first_column,
38447 last_column: lstack[lstack.length - 1].last_column
38448 };
38449 if (ranges) {
38450 yyval._$.range = [
38451 lstack[lstack.length - (len || 1)].range[0],
38452 lstack[lstack.length - 1].range[1]
38453 ];
38454 }
38455 r = this.performAction.apply(yyval, [
38456 yytext,
38457 yyleng,
38458 yylineno,
38459 sharedState.yy,
38460 action[1],
38461 vstack,
38462 lstack
38463 ].concat(args));
38464 if (typeof r !== "undefined") {
38465 return r;
38466 }
38467 if (len) {
38468 stack = stack.slice(0, -1 * len * 2);
38469 vstack = vstack.slice(0, -1 * len);
38470 lstack = lstack.slice(0, -1 * len);
38471 }
38472 stack.push(this.productions_[action[1]][0]);
38473 vstack.push(yyval.$);
38474 lstack.push(yyval._$);
38475 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
38476 stack.push(newState);
38477 break;
38478 case 3:
38479 return true;
38480 }
38481 }
38482 return true;
38483 }
38484 };
38485 var lexer = function() {
38486 var lexer2 = {
38487 EOF: 1,
38488 parseError: function parseError2(str2, hash) {
38489 if (this.yy.parser) {
38490 this.yy.parser.parseError(str2, hash);
38491 } else {
38492 throw new Error(str2);
38493 }
38494 },
38495 // resets the lexer, sets new input
38496 setInput: function(input, yy) {
38497 this.yy = yy || this.yy || {};
38498 this._input = input;
38499 this._more = this._backtrack = this.done = false;
38500 this.yylineno = this.yyleng = 0;
38501 this.yytext = this.matched = this.match = "";
38502 this.conditionStack = ["INITIAL"];
38503 this.yylloc = {
38504 first_line: 1,
38505 first_column: 0,
38506 last_line: 1,
38507 last_column: 0
38508 };
38509 if (this.options.ranges) {
38510 this.yylloc.range = [0, 0];
38511 }
38512 this.offset = 0;
38513 return this;
38514 },
38515 // consumes and returns one char from the input
38516 input: function() {
38517 var ch = this._input[0];
38518 this.yytext += ch;
38519 this.yyleng++;
38520 this.offset++;
38521 this.match += ch;
38522 this.matched += ch;
38523 var lines = ch.match(/(?:\r\n?|\n).*/g);
38524 if (lines) {
38525 this.yylineno++;
38526 this.yylloc.last_line++;
38527 } else {
38528 this.yylloc.last_column++;
38529 }
38530 if (this.options.ranges) {
38531 this.yylloc.range[1]++;
38532 }
38533 this._input = this._input.slice(1);
38534 return ch;
38535 },
38536 // unshifts one char (or a string) into the input
38537 unput: function(ch) {
38538 var len = ch.length;
38539 var lines = ch.split(/(?:\r\n?|\n)/g);
38540 this._input = ch + this._input;
38541 this.yytext = this.yytext.substr(0, this.yytext.length - len);
38542 this.offset -= len;
38543 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
38544 this.match = this.match.substr(0, this.match.length - 1);
38545 this.matched = this.matched.substr(0, this.matched.length - 1);
38546 if (lines.length - 1) {
38547 this.yylineno -= lines.length - 1;
38548 }
38549 var r = this.yylloc.range;
38550 this.yylloc = {
38551 first_line: this.yylloc.first_line,
38552 last_line: this.yylineno + 1,
38553 first_column: this.yylloc.first_column,
38554 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
38555 };
38556 if (this.options.ranges) {
38557 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
38558 }
38559 this.yyleng = this.yytext.length;
38560 return this;
38561 },
38562 // When called from action, caches matched text and appends it on next action
38563 more: function() {
38564 this._more = true;
38565 return this;
38566 },
38567 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
38568 reject: function() {
38569 if (this.options.backtrack_lexer) {
38570 this._backtrack = true;
38571 } else {
38572 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
38573 text: "",
38574 token: null,
38575 line: this.yylineno
38576 });
38577 }
38578 return this;
38579 },
38580 // retain first n characters of the match
38581 less: function(n) {
38582 this.unput(this.match.slice(n));
38583 },
38584 // displays already matched input, i.e. for error messages
38585 pastInput: function() {
38586 var past = this.matched.substr(0, this.matched.length - this.match.length);
38587 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
38588 },
38589 // displays upcoming input, i.e. for error messages
38590 upcomingInput: function() {
38591 var next2 = this.match;
38592 if (next2.length < 20) {
38593 next2 += this._input.substr(0, 20 - next2.length);
38594 }
38595 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
38596 },
38597 // displays the character position where the lexing error occurred, i.e. for error messages
38598 showPosition: function() {
38599 var pre = this.pastInput();
38600 var c2 = new Array(pre.length + 1).join("-");
38601 return pre + this.upcomingInput() + "\n" + c2 + "^";
38602 },
38603 // test the lexed token: return FALSE when not a match, otherwise return token
38604 test_match: function(match, indexed_rule) {
38605 var token2, lines, backup;
38606 if (this.options.backtrack_lexer) {
38607 backup = {
38608 yylineno: this.yylineno,
38609 yylloc: {
38610 first_line: this.yylloc.first_line,
38611 last_line: this.last_line,
38612 first_column: this.yylloc.first_column,
38613 last_column: this.yylloc.last_column
38614 },
38615 yytext: this.yytext,
38616 match: this.match,
38617 matches: this.matches,
38618 matched: this.matched,
38619 yyleng: this.yyleng,
38620 offset: this.offset,
38621 _more: this._more,
38622 _input: this._input,
38623 yy: this.yy,
38624 conditionStack: this.conditionStack.slice(0),
38625 done: this.done
38626 };
38627 if (this.options.ranges) {
38628 backup.yylloc.range = this.yylloc.range.slice(0);
38629 }
38630 }
38631 lines = match[0].match(/(?:\r\n?|\n).*/g);
38632 if (lines) {
38633 this.yylineno += lines.length;
38634 }
38635 this.yylloc = {
38636 first_line: this.yylloc.last_line,
38637 last_line: this.yylineno + 1,
38638 first_column: this.yylloc.last_column,
38639 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
38640 };
38641 this.yytext += match[0];
38642 this.match += match[0];
38643 this.matches = match;
38644 this.yyleng = this.yytext.length;
38645 if (this.options.ranges) {
38646 this.yylloc.range = [this.offset, this.offset += this.yyleng];
38647 }
38648 this._more = false;
38649 this._backtrack = false;
38650 this._input = this._input.slice(match[0].length);
38651 this.matched += match[0];
38652 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
38653 if (this.done && this._input) {
38654 this.done = false;
38655 }
38656 if (token2) {
38657 return token2;
38658 } else if (this._backtrack) {
38659 for (var k in backup) {
38660 this[k] = backup[k];
38661 }
38662 return false;
38663 }
38664 return false;
38665 },
38666 // return next match in input
38667 next: function() {
38668 if (this.done) {
38669 return this.EOF;
38670 }
38671 if (!this._input) {
38672 this.done = true;
38673 }
38674 var token2, match, tempMatch, index2;
38675 if (!this._more) {
38676 this.yytext = "";
38677 this.match = "";
38678 }
38679 var rules = this._currentRules();
38680 for (var i2 = 0; i2 < rules.length; i2++) {
38681 tempMatch = this._input.match(this.rules[rules[i2]]);
38682 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
38683 match = tempMatch;
38684 index2 = i2;
38685 if (this.options.backtrack_lexer) {
38686 token2 = this.test_match(tempMatch, rules[i2]);
38687 if (token2 !== false) {
38688 return token2;
38689 } else if (this._backtrack) {
38690 match = false;
38691 continue;
38692 } else {
38693 return false;
38694 }
38695 } else if (!this.options.flex) {
38696 break;
38697 }
38698 }
38699 }
38700 if (match) {
38701 token2 = this.test_match(match, rules[index2]);
38702 if (token2 !== false) {
38703 return token2;
38704 }
38705 return false;
38706 }
38707 if (this._input === "") {
38708 return this.EOF;
38709 } else {
38710 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
38711 text: "",
38712 token: null,
38713 line: this.yylineno
38714 });
38715 }
38716 },
38717 // return next match that has a token
38718 lex: function lex2() {
38719 var r = this.next();
38720 if (r) {
38721 return r;
38722 } else {
38723 return this.lex();
38724 }
38725 },
38726 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
38727 begin: function begin(condition) {
38728 this.conditionStack.push(condition);
38729 },
38730 // pop the previously active lexer condition state off the condition stack
38731 popState: function popState() {
38732 var n = this.conditionStack.length - 1;
38733 if (n > 0) {
38734 return this.conditionStack.pop();
38735 } else {
38736 return this.conditionStack[0];
38737 }
38738 },
38739 // produce the lexer rule set which is active for the currently active lexer condition state
38740 _currentRules: function _currentRules() {
38741 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
38742 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
38743 } else {
38744 return this.conditions["INITIAL"].rules;
38745 }
38746 },
38747 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
38748 topState: function topState(n) {
38749 n = this.conditionStack.length - 1 - Math.abs(n || 0);
38750 if (n >= 0) {
38751 return this.conditionStack[n];
38752 } else {
38753 return "INITIAL";
38754 }
38755 },
38756 // alias for begin(condition)
38757 pushState: function pushState(condition) {
38758 this.begin(condition);
38759 },
38760 // return the number of states currently on the stack
38761 stateStackSize: function stateStackSize() {
38762 return this.conditionStack.length;
38763 },
38764 options: { "case-insensitive": true },
38765 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
38766 switch ($avoiding_name_collisions) {
38767 case 0:
38768 return 4;
38769 case 1:
38770 return 9;
38771 case 2:
38772 return "space";
38773 case 3:
38774 return 10;
38775 case 4:
38776 return 6;
38777 case 5:
38778 return "TXT";
38779 }
38780 },
38781 rules: [/^(?:info\b)/i, /^(?:[\s\n\r]+)/i, /^(?:[\s]+)/i, /^(?:showInfo\b)/i, /^(?:$)/i, /^(?:.)/i],
38782 conditions: { "INITIAL": { "rules": [0, 1, 2, 3, 4, 5], "inclusive": true } }
38783 };
38784 return lexer2;
38785 }();
38786 parser2.lexer = lexer;
38787 function Parser() {
38788 this.yy = {};
38789 }
38790 Parser.prototype = parser2;
38791 parser2.Parser = Parser;
38792 return new Parser();
38793 }();
38794 parser$h.parser = parser$h;
38795 const parser$i = parser$h;
38796 var message = "";
38797 var info = false;
38798 const setMessage = (txt) => {
38799 log$1.debug("Setting message to: " + txt);
38800 message = txt;
38801 };
38802 const getMessage = () => {
38803 return message;
38804 };
38805 const setInfo = (inf) => {
38806 info = inf;
38807 };
38808 const getInfo = () => {
38809 return info;
38810 };
38811 const db$8 = {
38812 setMessage,
38813 getMessage,
38814 setInfo,
38815 getInfo,
38816 clear: clear$j
38817 // parseError
38818 };
38819 const getStyles$9 = () => ``;
38820 const styles$8 = getStyles$9;
38821 const draw$c = (text2, id2, version2) => {
38822 try {
38823 log$1.debug("Rendering info diagram\n" + text2);
38824 const securityLevel = getConfig$1().securityLevel;
38825 let sandboxElement;
38826 if (securityLevel === "sandbox") {
38827 sandboxElement = select("#i" + id2);
38828 }
38829 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
38830 const svg2 = root2.select("#" + id2);
38831 const g = svg2.append("g");
38832 g.append("text").attr("x", 100).attr("y", 40).attr("class", "version").attr("font-size", "32px").style("text-anchor", "middle").text("v " + version2);
38833 svg2.attr("height", 100);
38834 svg2.attr("width", 400);
38835 } catch (e) {
38836 log$1.error("Error while rendering info diagram");
38837 log$1.error(e.message);
38838 }
38839 };
38840 const renderer$b = {
38841 draw: draw$c
38842 };
38843 const diagram$c = {
38844 parser: parser$i,
38845 db: db$8,
38846 renderer: renderer$b,
38847 styles: styles$8
38848 };
38849 const infoDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
38850 __proto__: null,
38851 diagram: diagram$c
38852 }, Symbol.toStringTag, { value: "Module" }));
38853 var parser$f = function() {
38854 var o = function(k, v, o2, l) {
38855 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
38856 ;
38857 return o2;
38858 }, $V0 = [1, 4], $V1 = [1, 5], $V2 = [1, 6], $V3 = [1, 7], $V4 = [1, 9], $V5 = [1, 11, 13, 15, 17, 19, 20, 26, 27, 28, 29], $V6 = [2, 5], $V7 = [1, 6, 11, 13, 15, 17, 19, 20, 26, 27, 28, 29], $V8 = [26, 27, 28], $V9 = [2, 8], $Va = [1, 18], $Vb = [1, 19], $Vc = [1, 20], $Vd = [1, 21], $Ve = [1, 22], $Vf = [1, 23], $Vg = [1, 28], $Vh = [6, 26, 27, 28, 29];
38859 var parser2 = {
38860 trace: function trace() {
38861 },
38862 yy: {},
38863 symbols_: { "error": 2, "start": 3, "eol": 4, "directive": 5, "PIE": 6, "document": 7, "showData": 8, "line": 9, "statement": 10, "txt": 11, "value": 12, "title": 13, "title_value": 14, "acc_title": 15, "acc_title_value": 16, "acc_descr": 17, "acc_descr_value": 18, "acc_descr_multiline_value": 19, "section": 20, "openDirective": 21, "typeDirective": 22, "closeDirective": 23, ":": 24, "argDirective": 25, "NEWLINE": 26, ";": 27, "EOF": 28, "open_directive": 29, "type_directive": 30, "arg_directive": 31, "close_directive": 32, "$accept": 0, "$end": 1 },
38864 terminals_: { 2: "error", 6: "PIE", 8: "showData", 11: "txt", 12: "value", 13: "title", 14: "title_value", 15: "acc_title", 16: "acc_title_value", 17: "acc_descr", 18: "acc_descr_value", 19: "acc_descr_multiline_value", 20: "section", 24: ":", 26: "NEWLINE", 27: ";", 28: "EOF", 29: "open_directive", 30: "type_directive", 31: "arg_directive", 32: "close_directive" },
38865 productions_: [0, [3, 2], [3, 2], [3, 2], [3, 3], [7, 0], [7, 2], [9, 2], [10, 0], [10, 2], [10, 2], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [5, 3], [5, 5], [4, 1], [4, 1], [4, 1], [21, 1], [22, 1], [25, 1], [23, 1]],
38866 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
38867 var $0 = $$.length - 1;
38868 switch (yystate) {
38869 case 4:
38870 yy.setShowData(true);
38871 break;
38872 case 7:
38873 this.$ = $$[$0 - 1];
38874 break;
38875 case 9:
38876 yy.addSection($$[$0 - 1], yy.cleanupValue($$[$0]));
38877 break;
38878 case 10:
38879 this.$ = $$[$0].trim();
38880 yy.setDiagramTitle(this.$);
38881 break;
38882 case 11:
38883 this.$ = $$[$0].trim();
38884 yy.setAccTitle(this.$);
38885 break;
38886 case 12:
38887 case 13:
38888 this.$ = $$[$0].trim();
38889 yy.setAccDescription(this.$);
38890 break;
38891 case 14:
38892 yy.addSection($$[$0].substr(8));
38893 this.$ = $$[$0].substr(8);
38894 break;
38895 case 21:
38896 yy.parseDirective("%%{", "open_directive");
38897 break;
38898 case 22:
38899 yy.parseDirective($$[$0], "type_directive");
38900 break;
38901 case 23:
38902 $$[$0] = $$[$0].trim().replace(/'/g, '"');
38903 yy.parseDirective($$[$0], "arg_directive");
38904 break;
38905 case 24:
38906 yy.parseDirective("}%%", "close_directive", "pie");
38907 break;
38908 }
38909 },
38910 table: [{ 3: 1, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, { 3: 11, 4: 2, 5: 3, 6: $V0, 21: 8, 26: $V1, 27: $V2, 28: $V3, 29: $V4 }, o($V5, $V6, { 7: 12, 8: [1, 13] }), o($V7, [2, 18]), o($V7, [2, 19]), o($V7, [2, 20]), { 22: 14, 30: [1, 15] }, { 30: [2, 21] }, { 1: [2, 1] }, { 1: [2, 2] }, o($V8, $V9, { 21: 8, 9: 16, 10: 17, 5: 24, 1: [2, 3], 11: $Va, 13: $Vb, 15: $Vc, 17: $Vd, 19: $Ve, 20: $Vf, 29: $V4 }), o($V5, $V6, { 7: 25 }), { 23: 26, 24: [1, 27], 32: $Vg }, o([24, 32], [2, 22]), o($V5, [2, 6]), { 4: 29, 26: $V1, 27: $V2, 28: $V3 }, { 12: [1, 30] }, { 14: [1, 31] }, { 16: [1, 32] }, { 18: [1, 33] }, o($V8, [2, 13]), o($V8, [2, 14]), o($V8, [2, 15]), o($V8, $V9, { 21: 8, 9: 16, 10: 17, 5: 24, 1: [2, 4], 11: $Va, 13: $Vb, 15: $Vc, 17: $Vd, 19: $Ve, 20: $Vf, 29: $V4 }), o($Vh, [2, 16]), { 25: 34, 31: [1, 35] }, o($Vh, [2, 24]), o($V5, [2, 7]), o($V8, [2, 9]), o($V8, [2, 10]), o($V8, [2, 11]), o($V8, [2, 12]), { 23: 36, 32: $Vg }, { 32: [2, 23] }, o($Vh, [2, 17])],
38911 defaultActions: { 9: [2, 21], 10: [2, 1], 11: [2, 2], 35: [2, 23] },
38912 parseError: function parseError2(str2, hash) {
38913 if (hash.recoverable) {
38914 this.trace(str2);
38915 } else {
38916 var error = new Error(str2);
38917 error.hash = hash;
38918 throw error;
38919 }
38920 },
38921 parse: function parse2(input) {
38922 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
38923 var args = lstack.slice.call(arguments, 1);
38924 var lexer2 = Object.create(this.lexer);
38925 var sharedState = { yy: {} };
38926 for (var k in this.yy) {
38927 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
38928 sharedState.yy[k] = this.yy[k];
38929 }
38930 }
38931 lexer2.setInput(input, sharedState.yy);
38932 sharedState.yy.lexer = lexer2;
38933 sharedState.yy.parser = this;
38934 if (typeof lexer2.yylloc == "undefined") {
38935 lexer2.yylloc = {};
38936 }
38937 var yyloc = lexer2.yylloc;
38938 lstack.push(yyloc);
38939 var ranges = lexer2.options && lexer2.options.ranges;
38940 if (typeof sharedState.yy.parseError === "function") {
38941 this.parseError = sharedState.yy.parseError;
38942 } else {
38943 this.parseError = Object.getPrototypeOf(this).parseError;
38944 }
38945 function lex2() {
38946 var token2;
38947 token2 = tstack.pop() || lexer2.lex() || EOF;
38948 if (typeof token2 !== "number") {
38949 if (token2 instanceof Array) {
38950 tstack = token2;
38951 token2 = tstack.pop();
38952 }
38953 token2 = self2.symbols_[token2] || token2;
38954 }
38955 return token2;
38956 }
38957 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
38958 while (true) {
38959 state2 = stack[stack.length - 1];
38960 if (this.defaultActions[state2]) {
38961 action = this.defaultActions[state2];
38962 } else {
38963 if (symbol === null || typeof symbol == "undefined") {
38964 symbol = lex2();
38965 }
38966 action = table[state2] && table[state2][symbol];
38967 }
38968 if (typeof action === "undefined" || !action.length || !action[0]) {
38969 var errStr = "";
38970 expected = [];
38971 for (p in table[state2]) {
38972 if (this.terminals_[p] && p > TERROR) {
38973 expected.push("'" + this.terminals_[p] + "'");
38974 }
38975 }
38976 if (lexer2.showPosition) {
38977 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
38978 } else {
38979 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
38980 }
38981 this.parseError(errStr, {
38982 text: lexer2.match,
38983 token: this.terminals_[symbol] || symbol,
38984 line: lexer2.yylineno,
38985 loc: yyloc,
38986 expected
38987 });
38988 }
38989 if (action[0] instanceof Array && action.length > 1) {
38990 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
38991 }
38992 switch (action[0]) {
38993 case 1:
38994 stack.push(symbol);
38995 vstack.push(lexer2.yytext);
38996 lstack.push(lexer2.yylloc);
38997 stack.push(action[1]);
38998 symbol = null;
38999 {
39000 yyleng = lexer2.yyleng;
39001 yytext = lexer2.yytext;
39002 yylineno = lexer2.yylineno;
39003 yyloc = lexer2.yylloc;
39004 }
39005 break;
39006 case 2:
39007 len = this.productions_[action[1]][1];
39008 yyval.$ = vstack[vstack.length - len];
39009 yyval._$ = {
39010 first_line: lstack[lstack.length - (len || 1)].first_line,
39011 last_line: lstack[lstack.length - 1].last_line,
39012 first_column: lstack[lstack.length - (len || 1)].first_column,
39013 last_column: lstack[lstack.length - 1].last_column
39014 };
39015 if (ranges) {
39016 yyval._$.range = [
39017 lstack[lstack.length - (len || 1)].range[0],
39018 lstack[lstack.length - 1].range[1]
39019 ];
39020 }
39021 r = this.performAction.apply(yyval, [
39022 yytext,
39023 yyleng,
39024 yylineno,
39025 sharedState.yy,
39026 action[1],
39027 vstack,
39028 lstack
39029 ].concat(args));
39030 if (typeof r !== "undefined") {
39031 return r;
39032 }
39033 if (len) {
39034 stack = stack.slice(0, -1 * len * 2);
39035 vstack = vstack.slice(0, -1 * len);
39036 lstack = lstack.slice(0, -1 * len);
39037 }
39038 stack.push(this.productions_[action[1]][0]);
39039 vstack.push(yyval.$);
39040 lstack.push(yyval._$);
39041 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
39042 stack.push(newState);
39043 break;
39044 case 3:
39045 return true;
39046 }
39047 }
39048 return true;
39049 }
39050 };
39051 var lexer = function() {
39052 var lexer2 = {
39053 EOF: 1,
39054 parseError: function parseError2(str2, hash) {
39055 if (this.yy.parser) {
39056 this.yy.parser.parseError(str2, hash);
39057 } else {
39058 throw new Error(str2);
39059 }
39060 },
39061 // resets the lexer, sets new input
39062 setInput: function(input, yy) {
39063 this.yy = yy || this.yy || {};
39064 this._input = input;
39065 this._more = this._backtrack = this.done = false;
39066 this.yylineno = this.yyleng = 0;
39067 this.yytext = this.matched = this.match = "";
39068 this.conditionStack = ["INITIAL"];
39069 this.yylloc = {
39070 first_line: 1,
39071 first_column: 0,
39072 last_line: 1,
39073 last_column: 0
39074 };
39075 if (this.options.ranges) {
39076 this.yylloc.range = [0, 0];
39077 }
39078 this.offset = 0;
39079 return this;
39080 },
39081 // consumes and returns one char from the input
39082 input: function() {
39083 var ch = this._input[0];
39084 this.yytext += ch;
39085 this.yyleng++;
39086 this.offset++;
39087 this.match += ch;
39088 this.matched += ch;
39089 var lines = ch.match(/(?:\r\n?|\n).*/g);
39090 if (lines) {
39091 this.yylineno++;
39092 this.yylloc.last_line++;
39093 } else {
39094 this.yylloc.last_column++;
39095 }
39096 if (this.options.ranges) {
39097 this.yylloc.range[1]++;
39098 }
39099 this._input = this._input.slice(1);
39100 return ch;
39101 },
39102 // unshifts one char (or a string) into the input
39103 unput: function(ch) {
39104 var len = ch.length;
39105 var lines = ch.split(/(?:\r\n?|\n)/g);
39106 this._input = ch + this._input;
39107 this.yytext = this.yytext.substr(0, this.yytext.length - len);
39108 this.offset -= len;
39109 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
39110 this.match = this.match.substr(0, this.match.length - 1);
39111 this.matched = this.matched.substr(0, this.matched.length - 1);
39112 if (lines.length - 1) {
39113 this.yylineno -= lines.length - 1;
39114 }
39115 var r = this.yylloc.range;
39116 this.yylloc = {
39117 first_line: this.yylloc.first_line,
39118 last_line: this.yylineno + 1,
39119 first_column: this.yylloc.first_column,
39120 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
39121 };
39122 if (this.options.ranges) {
39123 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
39124 }
39125 this.yyleng = this.yytext.length;
39126 return this;
39127 },
39128 // When called from action, caches matched text and appends it on next action
39129 more: function() {
39130 this._more = true;
39131 return this;
39132 },
39133 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
39134 reject: function() {
39135 if (this.options.backtrack_lexer) {
39136 this._backtrack = true;
39137 } else {
39138 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
39139 text: "",
39140 token: null,
39141 line: this.yylineno
39142 });
39143 }
39144 return this;
39145 },
39146 // retain first n characters of the match
39147 less: function(n) {
39148 this.unput(this.match.slice(n));
39149 },
39150 // displays already matched input, i.e. for error messages
39151 pastInput: function() {
39152 var past = this.matched.substr(0, this.matched.length - this.match.length);
39153 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
39154 },
39155 // displays upcoming input, i.e. for error messages
39156 upcomingInput: function() {
39157 var next2 = this.match;
39158 if (next2.length < 20) {
39159 next2 += this._input.substr(0, 20 - next2.length);
39160 }
39161 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
39162 },
39163 // displays the character position where the lexing error occurred, i.e. for error messages
39164 showPosition: function() {
39165 var pre = this.pastInput();
39166 var c2 = new Array(pre.length + 1).join("-");
39167 return pre + this.upcomingInput() + "\n" + c2 + "^";
39168 },
39169 // test the lexed token: return FALSE when not a match, otherwise return token
39170 test_match: function(match, indexed_rule) {
39171 var token2, lines, backup;
39172 if (this.options.backtrack_lexer) {
39173 backup = {
39174 yylineno: this.yylineno,
39175 yylloc: {
39176 first_line: this.yylloc.first_line,
39177 last_line: this.last_line,
39178 first_column: this.yylloc.first_column,
39179 last_column: this.yylloc.last_column
39180 },
39181 yytext: this.yytext,
39182 match: this.match,
39183 matches: this.matches,
39184 matched: this.matched,
39185 yyleng: this.yyleng,
39186 offset: this.offset,
39187 _more: this._more,
39188 _input: this._input,
39189 yy: this.yy,
39190 conditionStack: this.conditionStack.slice(0),
39191 done: this.done
39192 };
39193 if (this.options.ranges) {
39194 backup.yylloc.range = this.yylloc.range.slice(0);
39195 }
39196 }
39197 lines = match[0].match(/(?:\r\n?|\n).*/g);
39198 if (lines) {
39199 this.yylineno += lines.length;
39200 }
39201 this.yylloc = {
39202 first_line: this.yylloc.last_line,
39203 last_line: this.yylineno + 1,
39204 first_column: this.yylloc.last_column,
39205 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
39206 };
39207 this.yytext += match[0];
39208 this.match += match[0];
39209 this.matches = match;
39210 this.yyleng = this.yytext.length;
39211 if (this.options.ranges) {
39212 this.yylloc.range = [this.offset, this.offset += this.yyleng];
39213 }
39214 this._more = false;
39215 this._backtrack = false;
39216 this._input = this._input.slice(match[0].length);
39217 this.matched += match[0];
39218 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
39219 if (this.done && this._input) {
39220 this.done = false;
39221 }
39222 if (token2) {
39223 return token2;
39224 } else if (this._backtrack) {
39225 for (var k in backup) {
39226 this[k] = backup[k];
39227 }
39228 return false;
39229 }
39230 return false;
39231 },
39232 // return next match in input
39233 next: function() {
39234 if (this.done) {
39235 return this.EOF;
39236 }
39237 if (!this._input) {
39238 this.done = true;
39239 }
39240 var token2, match, tempMatch, index2;
39241 if (!this._more) {
39242 this.yytext = "";
39243 this.match = "";
39244 }
39245 var rules = this._currentRules();
39246 for (var i2 = 0; i2 < rules.length; i2++) {
39247 tempMatch = this._input.match(this.rules[rules[i2]]);
39248 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
39249 match = tempMatch;
39250 index2 = i2;
39251 if (this.options.backtrack_lexer) {
39252 token2 = this.test_match(tempMatch, rules[i2]);
39253 if (token2 !== false) {
39254 return token2;
39255 } else if (this._backtrack) {
39256 match = false;
39257 continue;
39258 } else {
39259 return false;
39260 }
39261 } else if (!this.options.flex) {
39262 break;
39263 }
39264 }
39265 }
39266 if (match) {
39267 token2 = this.test_match(match, rules[index2]);
39268 if (token2 !== false) {
39269 return token2;
39270 }
39271 return false;
39272 }
39273 if (this._input === "") {
39274 return this.EOF;
39275 } else {
39276 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
39277 text: "",
39278 token: null,
39279 line: this.yylineno
39280 });
39281 }
39282 },
39283 // return next match that has a token
39284 lex: function lex2() {
39285 var r = this.next();
39286 if (r) {
39287 return r;
39288 } else {
39289 return this.lex();
39290 }
39291 },
39292 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
39293 begin: function begin(condition) {
39294 this.conditionStack.push(condition);
39295 },
39296 // pop the previously active lexer condition state off the condition stack
39297 popState: function popState() {
39298 var n = this.conditionStack.length - 1;
39299 if (n > 0) {
39300 return this.conditionStack.pop();
39301 } else {
39302 return this.conditionStack[0];
39303 }
39304 },
39305 // produce the lexer rule set which is active for the currently active lexer condition state
39306 _currentRules: function _currentRules() {
39307 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
39308 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
39309 } else {
39310 return this.conditions["INITIAL"].rules;
39311 }
39312 },
39313 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
39314 topState: function topState(n) {
39315 n = this.conditionStack.length - 1 - Math.abs(n || 0);
39316 if (n >= 0) {
39317 return this.conditionStack[n];
39318 } else {
39319 return "INITIAL";
39320 }
39321 },
39322 // alias for begin(condition)
39323 pushState: function pushState(condition) {
39324 this.begin(condition);
39325 },
39326 // return the number of states currently on the stack
39327 stateStackSize: function stateStackSize() {
39328 return this.conditionStack.length;
39329 },
39330 options: { "case-insensitive": true },
39331 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
39332 switch ($avoiding_name_collisions) {
39333 case 0:
39334 this.begin("open_directive");
39335 return 29;
39336 case 1:
39337 this.begin("type_directive");
39338 return 30;
39339 case 2:
39340 this.popState();
39341 this.begin("arg_directive");
39342 return 24;
39343 case 3:
39344 this.popState();
39345 this.popState();
39346 return 32;
39347 case 4:
39348 return 31;
39349 case 5:
39350 break;
39351 case 6:
39352 break;
39353 case 7:
39354 return 26;
39355 case 8:
39356 break;
39357 case 9:
39358 break;
39359 case 10:
39360 this.begin("title");
39361 return 13;
39362 case 11:
39363 this.popState();
39364 return "title_value";
39365 case 12:
39366 this.begin("acc_title");
39367 return 15;
39368 case 13:
39369 this.popState();
39370 return "acc_title_value";
39371 case 14:
39372 this.begin("acc_descr");
39373 return 17;
39374 case 15:
39375 this.popState();
39376 return "acc_descr_value";
39377 case 16:
39378 this.begin("acc_descr_multiline");
39379 break;
39380 case 17:
39381 this.popState();
39382 break;
39383 case 18:
39384 return "acc_descr_multiline_value";
39385 case 19:
39386 this.begin("string");
39387 break;
39388 case 20:
39389 this.popState();
39390 break;
39391 case 21:
39392 return "txt";
39393 case 22:
39394 return 6;
39395 case 23:
39396 return 8;
39397 case 24:
39398 return "value";
39399 case 25:
39400 return 28;
39401 }
39402 },
39403 rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:[\s]+)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:pie\b)/i, /^(?:showData\b)/i, /^(?::[\s]*[\d]+(?:\.[\d]+)?)/i, /^(?:$)/i],
39404 conditions: { "acc_descr_multiline": { "rules": [17, 18], "inclusive": false }, "acc_descr": { "rules": [15], "inclusive": false }, "acc_title": { "rules": [13], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "title": { "rules": [11], "inclusive": false }, "string": { "rules": [20, 21], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 10, 12, 14, 16, 19, 22, 23, 24, 25], "inclusive": true } }
39405 };
39406 return lexer2;
39407 }();
39408 parser2.lexer = lexer;
39409 function Parser() {
39410 this.yy = {};
39411 }
39412 Parser.prototype = parser2;
39413 parser2.Parser = Parser;
39414 return new Parser();
39415 }();
39416 parser$f.parser = parser$f;
39417 const parser$g = parser$f;
39418 let sections$2 = {};
39419 let showData = false;
39420 const parseDirective$7 = function(statement, context, type2) {
39421 mermaidAPI.parseDirective(this, statement, context, type2);
39422 };
39423 const addSection$2 = function(id2, value) {
39424 id2 = common$1.sanitizeText(id2, getConfig$1());
39425 if (sections$2[id2] === void 0) {
39426 sections$2[id2] = value;
39427 log$1.debug("Added new section :", id2);
39428 }
39429 };
39430 const getSections$2 = () => sections$2;
39431 const setShowData = function(toggle) {
39432 showData = toggle;
39433 };
39434 const getShowData = function() {
39435 return showData;
39436 };
39437 const cleanupValue = function(value) {
39438 if (value.substring(0, 1) === ":") {
39439 value = value.substring(1).trim();
39440 return Number(value.trim());
39441 } else {
39442 return Number(value.trim());
39443 }
39444 };
39445 const clear$8 = function() {
39446 sections$2 = {};
39447 showData = false;
39448 clear$j();
39449 };
39450 const db$7 = {
39451 parseDirective: parseDirective$7,
39452 getConfig: () => getConfig$1().pie,
39453 addSection: addSection$2,
39454 getSections: getSections$2,
39455 cleanupValue,
39456 clear: clear$8,
39457 setAccTitle,
39458 getAccTitle,
39459 setDiagramTitle,
39460 getDiagramTitle,
39461 setShowData,
39462 getShowData,
39463 getAccDescription,
39464 setAccDescription
39465 };
39466 const getStyles$8 = (options2) => `
39467 .pieCircle{
39468 stroke: ${options2.pieStrokeColor};
39469 stroke-width : ${options2.pieStrokeWidth};
39470 opacity : ${options2.pieOpacity};
39471 }
39472 .pieOuterCircle{
39473 stroke: ${options2.pieOuterStrokeColor};
39474 stroke-width: ${options2.pieOuterStrokeWidth};
39475 fill: none;
39476 }
39477 .pieTitleText {
39478 text-anchor: middle;
39479 font-size: ${options2.pieTitleTextSize};
39480 fill: ${options2.pieTitleTextColor};
39481 font-family: ${options2.fontFamily};
39482 }
39483 .slice {
39484 font-family: ${options2.fontFamily};
39485 fill: ${options2.pieSectionTextColor};
39486 font-size:${options2.pieSectionTextSize};
39487 // fill: white;
39488 }
39489 .legend text {
39490 fill: ${options2.pieLegendTextColor};
39491 font-family: ${options2.fontFamily};
39492 font-size: ${options2.pieLegendTextSize};
39493 }
39494`;
39495 const styles$7 = getStyles$8;
39496 let conf$6 = getConfig$1();
39497 let width;
39498 const height = 450;
39499 const draw$b = (txt, id2, _version, diagObj) => {
39500 var _a;
39501 try {
39502 conf$6 = getConfig$1();
39503 log$1.debug("Rendering info diagram\n" + txt);
39504 const securityLevel = getConfig$1().securityLevel;
39505 let sandboxElement;
39506 if (securityLevel === "sandbox") {
39507 sandboxElement = select("#i" + id2);
39508 }
39509 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
39510 const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
39511 diagObj.db.clear();
39512 diagObj.parser.parse(txt);
39513 log$1.debug("Parsed info diagram");
39514 const elem = doc.getElementById(id2);
39515 width = elem.parentElement.offsetWidth;
39516 if (width === void 0) {
39517 width = 1200;
39518 }
39519 if (conf$6.useWidth !== void 0) {
39520 width = conf$6.useWidth;
39521 }
39522 if (conf$6.pie.useWidth !== void 0) {
39523 width = conf$6.pie.useWidth;
39524 }
39525 const diagram2 = root2.select("#" + id2);
39526 configureSvgSize(diagram2, height, width, conf$6.pie.useMaxWidth);
39527 elem.setAttribute("viewBox", "0 0 " + width + " " + height);
39528 var margin = 40;
39529 var legendRectSize = 18;
39530 var legendSpacing = 4;
39531 var radius = Math.min(width, height) / 2 - margin;
39532 var svg2 = diagram2.append("g").attr("transform", "translate(" + width / 2 + "," + height / 2 + ")");
39533 var data = diagObj.db.getSections();
39534 var sum = 0;
39535 Object.keys(data).forEach(function(key) {
39536 sum += data[key];
39537 });
39538 const themeVariables = conf$6.themeVariables;
39539 var myGeneratedColors = [
39540 themeVariables.pie1,
39541 themeVariables.pie2,
39542 themeVariables.pie3,
39543 themeVariables.pie4,
39544 themeVariables.pie5,
39545 themeVariables.pie6,
39546 themeVariables.pie7,
39547 themeVariables.pie8,
39548 themeVariables.pie9,
39549 themeVariables.pie10,
39550 themeVariables.pie11,
39551 themeVariables.pie12
39552 ];
39553 const textPosition = ((_a = conf$6.pie) == null ? void 0 : _a.textPosition) ?? 0.75;
39554 let [outerStrokeWidth] = parseFontSize(themeVariables.pieOuterStrokeWidth);
39555 outerStrokeWidth ?? (outerStrokeWidth = 2);
39556 var color2 = ordinal().range(myGeneratedColors);
39557 var pieData = Object.entries(data).map(function(el, idx) {
39558 return {
39559 order: idx,
39560 name: el[0],
39561 value: el[1]
39562 };
39563 });
39564 var pie2 = d3pie().value(function(d) {
39565 return d.value;
39566 }).sort(function(a, b) {
39567 return a.order - b.order;
39568 });
39569 var dataReady = pie2(pieData);
39570 var arcGenerator = d3arc().innerRadius(0).outerRadius(radius);
39571 var labelArcGenerator = d3arc().innerRadius(radius * textPosition).outerRadius(radius * textPosition);
39572 svg2.append("circle").attr("cx", 0).attr("cy", 0).attr("r", radius + outerStrokeWidth / 2).attr("class", "pieOuterCircle");
39573 svg2.selectAll("mySlices").data(dataReady).enter().append("path").attr("d", arcGenerator).attr("fill", function(d) {
39574 return color2(d.data.name);
39575 }).attr("class", "pieCircle");
39576 svg2.selectAll("mySlices").data(dataReady).enter().append("text").text(function(d) {
39577 return (d.data.value / sum * 100).toFixed(0) + "%";
39578 }).attr("transform", function(d) {
39579 return "translate(" + labelArcGenerator.centroid(d) + ")";
39580 }).style("text-anchor", "middle").attr("class", "slice");
39581 svg2.append("text").text(diagObj.db.getDiagramTitle()).attr("x", 0).attr("y", -(height - 50) / 2).attr("class", "pieTitleText");
39582 var legend = svg2.selectAll(".legend").data(color2.domain()).enter().append("g").attr("class", "legend").attr("transform", function(d, i2) {
39583 const height2 = legendRectSize + legendSpacing;
39584 const offset = height2 * color2.domain().length / 2;
39585 const horizontal = 12 * legendRectSize;
39586 const vertical = i2 * height2 - offset;
39587 return "translate(" + horizontal + "," + vertical + ")";
39588 });
39589 legend.append("rect").attr("width", legendRectSize).attr("height", legendRectSize).style("fill", color2).style("stroke", color2);
39590 legend.data(dataReady).append("text").attr("x", legendRectSize + legendSpacing).attr("y", legendRectSize - legendSpacing).text(function(d) {
39591 if (diagObj.db.getShowData() || conf$6.showData || conf$6.pie.showData) {
39592 return d.data.name + " [" + d.data.value + "]";
39593 } else {
39594 return d.data.name;
39595 }
39596 });
39597 } catch (e) {
39598 log$1.error("Error while rendering info diagram");
39599 log$1.error(e);
39600 }
39601 };
39602 const renderer$a = {
39603 draw: draw$b
39604 };
39605 const diagram$b = {
39606 parser: parser$g,
39607 db: db$7,
39608 renderer: renderer$a,
39609 styles: styles$7
39610 };
39611 const pieDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
39612 __proto__: null,
39613 diagram: diagram$b
39614 }, Symbol.toStringTag, { value: "Module" }));
39615 var parser$d = function() {
39616 var o = function(k, v, o2, l) {
39617 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
39618 ;
39619 return o2;
39620 }, $V0 = [1, 3], $V1 = [1, 5], $V2 = [1, 6], $V3 = [1, 7], $V4 = [1, 8], $V5 = [1, 10], $V6 = [1, 5, 14, 16, 18, 20, 21, 26, 28, 29, 30, 31, 32, 38, 39, 40, 41, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], $V7 = [1, 5, 7, 14, 16, 18, 20, 21, 26, 28, 29, 30, 31, 32, 38, 39, 40, 41, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60], $V8 = [38, 39, 40], $V9 = [2, 8], $Va = [1, 19], $Vb = [1, 23], $Vc = [1, 24], $Vd = [1, 25], $Ve = [1, 26], $Vf = [1, 27], $Vg = [1, 29], $Vh = [1, 30], $Vi = [1, 31], $Vj = [1, 32], $Vk = [1, 33], $Vl = [1, 34], $Vm = [1, 37], $Vn = [1, 38], $Vo = [1, 39], $Vp = [1, 40], $Vq = [1, 41], $Vr = [1, 42], $Vs = [1, 43], $Vt = [1, 44], $Vu = [1, 45], $Vv = [1, 46], $Vw = [1, 47], $Vx = [1, 48], $Vy = [1, 49], $Vz = [1, 52], $VA = [1, 67], $VB = [1, 68], $VC = [5, 23, 27, 38, 39, 40, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61], $VD = [5, 7, 38, 39, 40, 41];
39621 var parser2 = {
39622 trace: function trace() {
39623 },
39624 yy: {},
39625 symbols_: { "error": 2, "start": 3, "eol": 4, "SPACE": 5, "directive": 6, "QUADRANT": 7, "document": 8, "line": 9, "statement": 10, "axisDetails": 11, "quadrantDetails": 12, "points": 13, "title": 14, "title_value": 15, "acc_title": 16, "acc_title_value": 17, "acc_descr": 18, "acc_descr_value": 19, "acc_descr_multiline_value": 20, "section": 21, "text": 22, "point_start": 23, "point_x": 24, "point_y": 25, "X-AXIS": 26, "AXIS-TEXT-DELIMITER": 27, "Y-AXIS": 28, "QUADRANT_1": 29, "QUADRANT_2": 30, "QUADRANT_3": 31, "QUADRANT_4": 32, "openDirective": 33, "typeDirective": 34, "closeDirective": 35, ":": 36, "argDirective": 37, "NEWLINE": 38, "SEMI": 39, "EOF": 40, "open_directive": 41, "type_directive": 42, "arg_directive": 43, "close_directive": 44, "alphaNumToken": 45, "textNoTagsToken": 46, "STR": 47, "MD_STR": 48, "alphaNum": 49, "PUNCTUATION": 50, "AMP": 51, "NUM": 52, "ALPHA": 53, "COMMA": 54, "PLUS": 55, "EQUALS": 56, "MULT": 57, "DOT": 58, "BRKT": 59, "UNDERSCORE": 60, "MINUS": 61, "$accept": 0, "$end": 1 },
39626 terminals_: { 2: "error", 5: "SPACE", 7: "QUADRANT", 14: "title", 15: "title_value", 16: "acc_title", 17: "acc_title_value", 18: "acc_descr", 19: "acc_descr_value", 20: "acc_descr_multiline_value", 21: "section", 23: "point_start", 24: "point_x", 25: "point_y", 26: "X-AXIS", 27: "AXIS-TEXT-DELIMITER", 28: "Y-AXIS", 29: "QUADRANT_1", 30: "QUADRANT_2", 31: "QUADRANT_3", 32: "QUADRANT_4", 36: ":", 38: "NEWLINE", 39: "SEMI", 40: "EOF", 41: "open_directive", 42: "type_directive", 43: "arg_directive", 44: "close_directive", 47: "STR", 48: "MD_STR", 50: "PUNCTUATION", 51: "AMP", 52: "NUM", 53: "ALPHA", 54: "COMMA", 55: "PLUS", 56: "EQUALS", 57: "MULT", 58: "DOT", 59: "BRKT", 60: "UNDERSCORE", 61: "MINUS" },
39627 productions_: [0, [3, 2], [3, 2], [3, 2], [3, 2], [8, 0], [8, 2], [9, 2], [10, 0], [10, 2], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [13, 4], [11, 4], [11, 3], [11, 2], [11, 4], [11, 3], [11, 2], [12, 2], [12, 2], [12, 2], [12, 2], [6, 3], [6, 5], [4, 1], [4, 1], [4, 1], [33, 1], [34, 1], [37, 1], [35, 1], [22, 1], [22, 2], [22, 1], [22, 1], [49, 1], [49, 2], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [45, 1], [46, 1], [46, 1], [46, 1]],
39628 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
39629 var $0 = $$.length - 1;
39630 switch (yystate) {
39631 case 13:
39632 this.$ = $$[$0].trim();
39633 yy.setDiagramTitle(this.$);
39634 break;
39635 case 14:
39636 this.$ = $$[$0].trim();
39637 yy.setAccTitle(this.$);
39638 break;
39639 case 15:
39640 case 16:
39641 this.$ = $$[$0].trim();
39642 yy.setAccDescription(this.$);
39643 break;
39644 case 17:
39645 yy.addSection($$[$0].substr(8));
39646 this.$ = $$[$0].substr(8);
39647 break;
39648 case 19:
39649 yy.addPoint($$[$0 - 3], $$[$0 - 1], $$[$0]);
39650 break;
39651 case 20:
39652 yy.setXAxisLeftText($$[$0 - 2]);
39653 yy.setXAxisRightText($$[$0]);
39654 break;
39655 case 21:
39656 $$[$0 - 1].text += $$[$0];
39657 yy.setXAxisLeftText($$[$0 - 1]);
39658 break;
39659 case 22:
39660 yy.setXAxisLeftText($$[$0]);
39661 break;
39662 case 23:
39663 yy.setYAxisBottomText($$[$0 - 2]);
39664 yy.setYAxisTopText($$[$0]);
39665 break;
39666 case 24:
39667 $$[$0 - 1].text += $$[$0];
39668 yy.setYAxisBottomText($$[$0 - 1]);
39669 break;
39670 case 25:
39671 yy.setYAxisBottomText($$[$0]);
39672 break;
39673 case 26:
39674 yy.setQuadrant1Text($$[$0]);
39675 break;
39676 case 27:
39677 yy.setQuadrant2Text($$[$0]);
39678 break;
39679 case 28:
39680 yy.setQuadrant3Text($$[$0]);
39681 break;
39682 case 29:
39683 yy.setQuadrant4Text($$[$0]);
39684 break;
39685 case 35:
39686 yy.parseDirective("%%{", "open_directive");
39687 break;
39688 case 36:
39689 yy.parseDirective($$[$0], "type_directive");
39690 break;
39691 case 37:
39692 $$[$0] = $$[$0].trim().replace(/'/g, '"');
39693 yy.parseDirective($$[$0], "arg_directive");
39694 break;
39695 case 38:
39696 yy.parseDirective("}%%", "close_directive", "quadrantChart");
39697 break;
39698 case 39:
39699 this.$ = { text: $$[$0], type: "text" };
39700 break;
39701 case 40:
39702 this.$ = { text: $$[$0 - 1].text + "" + $$[$0], type: $$[$0 - 1].type };
39703 break;
39704 case 41:
39705 this.$ = { text: $$[$0], type: "text" };
39706 break;
39707 case 42:
39708 this.$ = { text: $$[$0], type: "markdown" };
39709 break;
39710 case 43:
39711 this.$ = $$[$0];
39712 break;
39713 case 44:
39714 this.$ = $$[$0 - 1] + "" + $$[$0];
39715 break;
39716 }
39717 },
39718 table: [{ 3: 1, 4: 2, 5: $V0, 6: 4, 7: $V1, 33: 9, 38: $V2, 39: $V3, 40: $V4, 41: $V5 }, { 1: [3] }, { 3: 11, 4: 2, 5: $V0, 6: 4, 7: $V1, 33: 9, 38: $V2, 39: $V3, 40: $V4, 41: $V5 }, { 3: 12, 4: 2, 5: $V0, 6: 4, 7: $V1, 33: 9, 38: $V2, 39: $V3, 40: $V4, 41: $V5 }, { 3: 13, 4: 2, 5: $V0, 6: 4, 7: $V1, 33: 9, 38: $V2, 39: $V3, 40: $V4, 41: $V5 }, o($V6, [2, 5], { 8: 14 }), o($V7, [2, 32]), o($V7, [2, 33]), o($V7, [2, 34]), { 34: 15, 42: [1, 16] }, { 42: [2, 35] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, o($V8, $V9, { 33: 9, 9: 17, 10: 18, 11: 20, 12: 21, 13: 22, 6: 28, 22: 35, 45: 36, 1: [2, 4], 5: $Va, 14: $Vb, 16: $Vc, 18: $Vd, 20: $Ve, 21: $Vf, 26: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 32: $Vl, 41: $V5, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }), { 35: 50, 36: [1, 51], 44: $Vz }, o([36, 44], [2, 36]), o($V6, [2, 6]), { 4: 53, 38: $V2, 39: $V3, 40: $V4 }, o($V8, $V9, { 33: 9, 11: 20, 12: 21, 13: 22, 6: 28, 22: 35, 45: 36, 10: 54, 5: $Va, 14: $Vb, 16: $Vc, 18: $Vd, 20: $Ve, 21: $Vf, 26: $Vg, 28: $Vh, 29: $Vi, 30: $Vj, 31: $Vk, 32: $Vl, 41: $V5, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }), o($V8, [2, 10]), o($V8, [2, 11]), o($V8, [2, 12]), { 15: [1, 55] }, { 17: [1, 56] }, { 19: [1, 57] }, o($V8, [2, 16]), o($V8, [2, 17]), o($V8, [2, 18]), { 22: 58, 45: 36, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }, { 22: 59, 45: 36, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }, { 22: 60, 45: 36, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }, { 22: 61, 45: 36, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }, { 22: 62, 45: 36, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }, { 22: 63, 45: 36, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }, { 5: $VA, 23: [1, 64], 45: 66, 46: 65, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }, o($VC, [2, 39]), o($VC, [2, 41]), o($VC, [2, 42]), o($VC, [2, 45]), o($VC, [2, 46]), o($VC, [2, 47]), o($VC, [2, 48]), o($VC, [2, 49]), o($VC, [2, 50]), o($VC, [2, 51]), o($VC, [2, 52]), o($VC, [2, 53]), o($VC, [2, 54]), o($VC, [2, 55]), o($VD, [2, 30]), { 37: 69, 43: [1, 70] }, o($VD, [2, 38]), o($V6, [2, 7]), o($V8, [2, 9]), o($V8, [2, 13]), o($V8, [2, 14]), o($V8, [2, 15]), o($V8, [2, 22], { 46: 65, 45: 66, 5: $VA, 27: [1, 71], 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), o($V8, [2, 25], { 46: 65, 45: 66, 5: $VA, 27: [1, 72], 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), o($V8, [2, 26], { 46: 65, 45: 66, 5: $VA, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), o($V8, [2, 27], { 46: 65, 45: 66, 5: $VA, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), o($V8, [2, 28], { 46: 65, 45: 66, 5: $VA, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), o($V8, [2, 29], { 46: 65, 45: 66, 5: $VA, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), { 24: [1, 73] }, o($VC, [2, 40]), o($VC, [2, 56]), o($VC, [2, 57]), o($VC, [2, 58]), { 35: 74, 44: $Vz }, { 44: [2, 37] }, o($V8, [2, 21], { 45: 36, 22: 75, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }), o($V8, [2, 24], { 45: 36, 22: 76, 47: $Vm, 48: $Vn, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy }), { 25: [1, 77] }, o($VD, [2, 31]), o($V8, [2, 20], { 46: 65, 45: 66, 5: $VA, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), o($V8, [2, 23], { 46: 65, 45: 66, 5: $VA, 50: $Vo, 51: $Vp, 52: $Vq, 53: $Vr, 54: $Vs, 55: $Vt, 56: $Vu, 57: $Vv, 58: $Vw, 59: $Vx, 60: $Vy, 61: $VB }), o($V8, [2, 19])],
39719 defaultActions: { 10: [2, 35], 11: [2, 1], 12: [2, 2], 13: [2, 3], 70: [2, 37] },
39720 parseError: function parseError2(str2, hash) {
39721 if (hash.recoverable) {
39722 this.trace(str2);
39723 } else {
39724 var error = new Error(str2);
39725 error.hash = hash;
39726 throw error;
39727 }
39728 },
39729 parse: function parse2(input) {
39730 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
39731 var args = lstack.slice.call(arguments, 1);
39732 var lexer2 = Object.create(this.lexer);
39733 var sharedState = { yy: {} };
39734 for (var k in this.yy) {
39735 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
39736 sharedState.yy[k] = this.yy[k];
39737 }
39738 }
39739 lexer2.setInput(input, sharedState.yy);
39740 sharedState.yy.lexer = lexer2;
39741 sharedState.yy.parser = this;
39742 if (typeof lexer2.yylloc == "undefined") {
39743 lexer2.yylloc = {};
39744 }
39745 var yyloc = lexer2.yylloc;
39746 lstack.push(yyloc);
39747 var ranges = lexer2.options && lexer2.options.ranges;
39748 if (typeof sharedState.yy.parseError === "function") {
39749 this.parseError = sharedState.yy.parseError;
39750 } else {
39751 this.parseError = Object.getPrototypeOf(this).parseError;
39752 }
39753 function lex2() {
39754 var token2;
39755 token2 = tstack.pop() || lexer2.lex() || EOF;
39756 if (typeof token2 !== "number") {
39757 if (token2 instanceof Array) {
39758 tstack = token2;
39759 token2 = tstack.pop();
39760 }
39761 token2 = self2.symbols_[token2] || token2;
39762 }
39763 return token2;
39764 }
39765 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
39766 while (true) {
39767 state2 = stack[stack.length - 1];
39768 if (this.defaultActions[state2]) {
39769 action = this.defaultActions[state2];
39770 } else {
39771 if (symbol === null || typeof symbol == "undefined") {
39772 symbol = lex2();
39773 }
39774 action = table[state2] && table[state2][symbol];
39775 }
39776 if (typeof action === "undefined" || !action.length || !action[0]) {
39777 var errStr = "";
39778 expected = [];
39779 for (p in table[state2]) {
39780 if (this.terminals_[p] && p > TERROR) {
39781 expected.push("'" + this.terminals_[p] + "'");
39782 }
39783 }
39784 if (lexer2.showPosition) {
39785 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
39786 } else {
39787 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
39788 }
39789 this.parseError(errStr, {
39790 text: lexer2.match,
39791 token: this.terminals_[symbol] || symbol,
39792 line: lexer2.yylineno,
39793 loc: yyloc,
39794 expected
39795 });
39796 }
39797 if (action[0] instanceof Array && action.length > 1) {
39798 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
39799 }
39800 switch (action[0]) {
39801 case 1:
39802 stack.push(symbol);
39803 vstack.push(lexer2.yytext);
39804 lstack.push(lexer2.yylloc);
39805 stack.push(action[1]);
39806 symbol = null;
39807 {
39808 yyleng = lexer2.yyleng;
39809 yytext = lexer2.yytext;
39810 yylineno = lexer2.yylineno;
39811 yyloc = lexer2.yylloc;
39812 }
39813 break;
39814 case 2:
39815 len = this.productions_[action[1]][1];
39816 yyval.$ = vstack[vstack.length - len];
39817 yyval._$ = {
39818 first_line: lstack[lstack.length - (len || 1)].first_line,
39819 last_line: lstack[lstack.length - 1].last_line,
39820 first_column: lstack[lstack.length - (len || 1)].first_column,
39821 last_column: lstack[lstack.length - 1].last_column
39822 };
39823 if (ranges) {
39824 yyval._$.range = [
39825 lstack[lstack.length - (len || 1)].range[0],
39826 lstack[lstack.length - 1].range[1]
39827 ];
39828 }
39829 r = this.performAction.apply(yyval, [
39830 yytext,
39831 yyleng,
39832 yylineno,
39833 sharedState.yy,
39834 action[1],
39835 vstack,
39836 lstack
39837 ].concat(args));
39838 if (typeof r !== "undefined") {
39839 return r;
39840 }
39841 if (len) {
39842 stack = stack.slice(0, -1 * len * 2);
39843 vstack = vstack.slice(0, -1 * len);
39844 lstack = lstack.slice(0, -1 * len);
39845 }
39846 stack.push(this.productions_[action[1]][0]);
39847 vstack.push(yyval.$);
39848 lstack.push(yyval._$);
39849 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
39850 stack.push(newState);
39851 break;
39852 case 3:
39853 return true;
39854 }
39855 }
39856 return true;
39857 }
39858 };
39859 var lexer = function() {
39860 var lexer2 = {
39861 EOF: 1,
39862 parseError: function parseError2(str2, hash) {
39863 if (this.yy.parser) {
39864 this.yy.parser.parseError(str2, hash);
39865 } else {
39866 throw new Error(str2);
39867 }
39868 },
39869 // resets the lexer, sets new input
39870 setInput: function(input, yy) {
39871 this.yy = yy || this.yy || {};
39872 this._input = input;
39873 this._more = this._backtrack = this.done = false;
39874 this.yylineno = this.yyleng = 0;
39875 this.yytext = this.matched = this.match = "";
39876 this.conditionStack = ["INITIAL"];
39877 this.yylloc = {
39878 first_line: 1,
39879 first_column: 0,
39880 last_line: 1,
39881 last_column: 0
39882 };
39883 if (this.options.ranges) {
39884 this.yylloc.range = [0, 0];
39885 }
39886 this.offset = 0;
39887 return this;
39888 },
39889 // consumes and returns one char from the input
39890 input: function() {
39891 var ch = this._input[0];
39892 this.yytext += ch;
39893 this.yyleng++;
39894 this.offset++;
39895 this.match += ch;
39896 this.matched += ch;
39897 var lines = ch.match(/(?:\r\n?|\n).*/g);
39898 if (lines) {
39899 this.yylineno++;
39900 this.yylloc.last_line++;
39901 } else {
39902 this.yylloc.last_column++;
39903 }
39904 if (this.options.ranges) {
39905 this.yylloc.range[1]++;
39906 }
39907 this._input = this._input.slice(1);
39908 return ch;
39909 },
39910 // unshifts one char (or a string) into the input
39911 unput: function(ch) {
39912 var len = ch.length;
39913 var lines = ch.split(/(?:\r\n?|\n)/g);
39914 this._input = ch + this._input;
39915 this.yytext = this.yytext.substr(0, this.yytext.length - len);
39916 this.offset -= len;
39917 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
39918 this.match = this.match.substr(0, this.match.length - 1);
39919 this.matched = this.matched.substr(0, this.matched.length - 1);
39920 if (lines.length - 1) {
39921 this.yylineno -= lines.length - 1;
39922 }
39923 var r = this.yylloc.range;
39924 this.yylloc = {
39925 first_line: this.yylloc.first_line,
39926 last_line: this.yylineno + 1,
39927 first_column: this.yylloc.first_column,
39928 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
39929 };
39930 if (this.options.ranges) {
39931 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
39932 }
39933 this.yyleng = this.yytext.length;
39934 return this;
39935 },
39936 // When called from action, caches matched text and appends it on next action
39937 more: function() {
39938 this._more = true;
39939 return this;
39940 },
39941 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
39942 reject: function() {
39943 if (this.options.backtrack_lexer) {
39944 this._backtrack = true;
39945 } else {
39946 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
39947 text: "",
39948 token: null,
39949 line: this.yylineno
39950 });
39951 }
39952 return this;
39953 },
39954 // retain first n characters of the match
39955 less: function(n) {
39956 this.unput(this.match.slice(n));
39957 },
39958 // displays already matched input, i.e. for error messages
39959 pastInput: function() {
39960 var past = this.matched.substr(0, this.matched.length - this.match.length);
39961 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
39962 },
39963 // displays upcoming input, i.e. for error messages
39964 upcomingInput: function() {
39965 var next2 = this.match;
39966 if (next2.length < 20) {
39967 next2 += this._input.substr(0, 20 - next2.length);
39968 }
39969 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
39970 },
39971 // displays the character position where the lexing error occurred, i.e. for error messages
39972 showPosition: function() {
39973 var pre = this.pastInput();
39974 var c2 = new Array(pre.length + 1).join("-");
39975 return pre + this.upcomingInput() + "\n" + c2 + "^";
39976 },
39977 // test the lexed token: return FALSE when not a match, otherwise return token
39978 test_match: function(match, indexed_rule) {
39979 var token2, lines, backup;
39980 if (this.options.backtrack_lexer) {
39981 backup = {
39982 yylineno: this.yylineno,
39983 yylloc: {
39984 first_line: this.yylloc.first_line,
39985 last_line: this.last_line,
39986 first_column: this.yylloc.first_column,
39987 last_column: this.yylloc.last_column
39988 },
39989 yytext: this.yytext,
39990 match: this.match,
39991 matches: this.matches,
39992 matched: this.matched,
39993 yyleng: this.yyleng,
39994 offset: this.offset,
39995 _more: this._more,
39996 _input: this._input,
39997 yy: this.yy,
39998 conditionStack: this.conditionStack.slice(0),
39999 done: this.done
40000 };
40001 if (this.options.ranges) {
40002 backup.yylloc.range = this.yylloc.range.slice(0);
40003 }
40004 }
40005 lines = match[0].match(/(?:\r\n?|\n).*/g);
40006 if (lines) {
40007 this.yylineno += lines.length;
40008 }
40009 this.yylloc = {
40010 first_line: this.yylloc.last_line,
40011 last_line: this.yylineno + 1,
40012 first_column: this.yylloc.last_column,
40013 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
40014 };
40015 this.yytext += match[0];
40016 this.match += match[0];
40017 this.matches = match;
40018 this.yyleng = this.yytext.length;
40019 if (this.options.ranges) {
40020 this.yylloc.range = [this.offset, this.offset += this.yyleng];
40021 }
40022 this._more = false;
40023 this._backtrack = false;
40024 this._input = this._input.slice(match[0].length);
40025 this.matched += match[0];
40026 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
40027 if (this.done && this._input) {
40028 this.done = false;
40029 }
40030 if (token2) {
40031 return token2;
40032 } else if (this._backtrack) {
40033 for (var k in backup) {
40034 this[k] = backup[k];
40035 }
40036 return false;
40037 }
40038 return false;
40039 },
40040 // return next match in input
40041 next: function() {
40042 if (this.done) {
40043 return this.EOF;
40044 }
40045 if (!this._input) {
40046 this.done = true;
40047 }
40048 var token2, match, tempMatch, index2;
40049 if (!this._more) {
40050 this.yytext = "";
40051 this.match = "";
40052 }
40053 var rules = this._currentRules();
40054 for (var i2 = 0; i2 < rules.length; i2++) {
40055 tempMatch = this._input.match(this.rules[rules[i2]]);
40056 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
40057 match = tempMatch;
40058 index2 = i2;
40059 if (this.options.backtrack_lexer) {
40060 token2 = this.test_match(tempMatch, rules[i2]);
40061 if (token2 !== false) {
40062 return token2;
40063 } else if (this._backtrack) {
40064 match = false;
40065 continue;
40066 } else {
40067 return false;
40068 }
40069 } else if (!this.options.flex) {
40070 break;
40071 }
40072 }
40073 }
40074 if (match) {
40075 token2 = this.test_match(match, rules[index2]);
40076 if (token2 !== false) {
40077 return token2;
40078 }
40079 return false;
40080 }
40081 if (this._input === "") {
40082 return this.EOF;
40083 } else {
40084 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
40085 text: "",
40086 token: null,
40087 line: this.yylineno
40088 });
40089 }
40090 },
40091 // return next match that has a token
40092 lex: function lex2() {
40093 var r = this.next();
40094 if (r) {
40095 return r;
40096 } else {
40097 return this.lex();
40098 }
40099 },
40100 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
40101 begin: function begin(condition) {
40102 this.conditionStack.push(condition);
40103 },
40104 // pop the previously active lexer condition state off the condition stack
40105 popState: function popState() {
40106 var n = this.conditionStack.length - 1;
40107 if (n > 0) {
40108 return this.conditionStack.pop();
40109 } else {
40110 return this.conditionStack[0];
40111 }
40112 },
40113 // produce the lexer rule set which is active for the currently active lexer condition state
40114 _currentRules: function _currentRules() {
40115 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
40116 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
40117 } else {
40118 return this.conditions["INITIAL"].rules;
40119 }
40120 },
40121 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
40122 topState: function topState(n) {
40123 n = this.conditionStack.length - 1 - Math.abs(n || 0);
40124 if (n >= 0) {
40125 return this.conditionStack[n];
40126 } else {
40127 return "INITIAL";
40128 }
40129 },
40130 // alias for begin(condition)
40131 pushState: function pushState(condition) {
40132 this.begin(condition);
40133 },
40134 // return the number of states currently on the stack
40135 stateStackSize: function stateStackSize() {
40136 return this.conditionStack.length;
40137 },
40138 options: { "case-insensitive": true },
40139 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
40140 switch ($avoiding_name_collisions) {
40141 case 0:
40142 this.begin("open_directive");
40143 return 41;
40144 case 1:
40145 this.begin("type_directive");
40146 return 42;
40147 case 2:
40148 this.popState();
40149 this.begin("arg_directive");
40150 return 36;
40151 case 3:
40152 this.popState();
40153 this.popState();
40154 return 44;
40155 case 4:
40156 return 43;
40157 case 5:
40158 break;
40159 case 6:
40160 break;
40161 case 7:
40162 return 38;
40163 case 8:
40164 break;
40165 case 9:
40166 this.begin("title");
40167 return 14;
40168 case 10:
40169 this.popState();
40170 return "title_value";
40171 case 11:
40172 this.begin("acc_title");
40173 return 16;
40174 case 12:
40175 this.popState();
40176 return "acc_title_value";
40177 case 13:
40178 this.begin("acc_descr");
40179 return 18;
40180 case 14:
40181 this.popState();
40182 return "acc_descr_value";
40183 case 15:
40184 this.begin("acc_descr_multiline");
40185 break;
40186 case 16:
40187 this.popState();
40188 break;
40189 case 17:
40190 return "acc_descr_multiline_value";
40191 case 18:
40192 return 26;
40193 case 19:
40194 return 28;
40195 case 20:
40196 return 27;
40197 case 21:
40198 return 29;
40199 case 22:
40200 return 30;
40201 case 23:
40202 return 31;
40203 case 24:
40204 return 32;
40205 case 25:
40206 this.begin("md_string");
40207 break;
40208 case 26:
40209 return "MD_STR";
40210 case 27:
40211 this.popState();
40212 break;
40213 case 28:
40214 this.begin("string");
40215 break;
40216 case 29:
40217 this.popState();
40218 break;
40219 case 30:
40220 return "STR";
40221 case 31:
40222 this.begin("point_start");
40223 return 23;
40224 case 32:
40225 this.begin("point_x");
40226 return 24;
40227 case 33:
40228 this.popState();
40229 break;
40230 case 34:
40231 this.popState();
40232 this.begin("point_y");
40233 break;
40234 case 35:
40235 this.popState();
40236 return 25;
40237 case 36:
40238 return 7;
40239 case 37:
40240 return 53;
40241 case 38:
40242 return "COLON";
40243 case 39:
40244 return 55;
40245 case 40:
40246 return 54;
40247 case 41:
40248 return 56;
40249 case 42:
40250 return 56;
40251 case 43:
40252 return 57;
40253 case 44:
40254 return 59;
40255 case 45:
40256 return 60;
40257 case 46:
40258 return 58;
40259 case 47:
40260 return 51;
40261 case 48:
40262 return 61;
40263 case 49:
40264 return 52;
40265 case 50:
40266 return 5;
40267 case 51:
40268 return 39;
40269 case 52:
40270 return 50;
40271 case 53:
40272 return 40;
40273 }
40274 },
40275 rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n\r]+)/i, /^(?:%%[^\n]*)/i, /^(?:title\b)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?: *x-axis *)/i, /^(?: *y-axis *)/i, /^(?: *--+> *)/i, /^(?: *quadrant-1 *)/i, /^(?: *quadrant-2 *)/i, /^(?: *quadrant-3 *)/i, /^(?: *quadrant-4 *)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:\s*:\s*\[\s*)/i, /^(?:(1)|(0(.\d+)?))/i, /^(?:\s*\] *)/i, /^(?:\s*,\s*)/i, /^(?:(1)|(0(.\d+)?))/i, /^(?: *quadrantChart *)/i, /^(?:[A-Za-z]+)/i, /^(?::)/i, /^(?:\+)/i, /^(?:,)/i, /^(?:=)/i, /^(?:=)/i, /^(?:\*)/i, /^(?:#)/i, /^(?:[\_])/i, /^(?:\.)/i, /^(?:&)/i, /^(?:-)/i, /^(?:[0-9]+)/i, /^(?:\s)/i, /^(?:;)/i, /^(?:[!"#$%&'*+,-.`?\\_/])/i, /^(?:$)/i],
40276 conditions: { "point_y": { "rules": [35], "inclusive": false }, "point_x": { "rules": [34], "inclusive": false }, "point_start": { "rules": [32, 33], "inclusive": false }, "acc_descr_multiline": { "rules": [16, 17], "inclusive": false }, "acc_descr": { "rules": [14], "inclusive": false }, "acc_title": { "rules": [12], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "title": { "rules": [10], "inclusive": false }, "md_string": { "rules": [26, 27], "inclusive": false }, "string": { "rules": [29, 30], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 11, 13, 15, 18, 19, 20, 21, 22, 23, 24, 25, 28, 31, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53], "inclusive": true } }
40277 };
40278 return lexer2;
40279 }();
40280 parser2.lexer = lexer;
40281 function Parser() {
40282 this.yy = {};
40283 }
40284 Parser.prototype = parser2;
40285 parser2.Parser = Parser;
40286 return new Parser();
40287 }();
40288 parser$d.parser = parser$d;
40289 const parser$e = parser$d;
40290 const defaultThemeVariables = getThemeVariables$2();
40291 class QuadrantBuilder {
40292 constructor() {
40293 this.config = this.getDefaultConfig();
40294 this.themeConfig = this.getDefaultThemeConfig();
40295 this.data = this.getDefaultData();
40296 }
40297 getDefaultData() {
40298 return {
40299 titleText: "",
40300 quadrant1Text: "",
40301 quadrant2Text: "",
40302 quadrant3Text: "",
40303 quadrant4Text: "",
40304 xAxisLeftText: "",
40305 xAxisRightText: "",
40306 yAxisBottomText: "",
40307 yAxisTopText: "",
40308 points: []
40309 };
40310 }
40311 getDefaultConfig() {
40312 var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r;
40313 return {
40314 showXAxis: true,
40315 showYAxis: true,
40316 showTitle: true,
40317 chartHeight: ((_a = defaultConfig$1.quadrantChart) == null ? void 0 : _a.chartWidth) || 500,
40318 chartWidth: ((_b = defaultConfig$1.quadrantChart) == null ? void 0 : _b.chartHeight) || 500,
40319 titlePadding: ((_c = defaultConfig$1.quadrantChart) == null ? void 0 : _c.titlePadding) || 10,
40320 titleFontSize: ((_d = defaultConfig$1.quadrantChart) == null ? void 0 : _d.titleFontSize) || 20,
40321 quadrantPadding: ((_e = defaultConfig$1.quadrantChart) == null ? void 0 : _e.quadrantPadding) || 5,
40322 xAxisLabelPadding: ((_f = defaultConfig$1.quadrantChart) == null ? void 0 : _f.xAxisLabelPadding) || 5,
40323 yAxisLabelPadding: ((_g = defaultConfig$1.quadrantChart) == null ? void 0 : _g.yAxisLabelPadding) || 5,
40324 xAxisLabelFontSize: ((_h = defaultConfig$1.quadrantChart) == null ? void 0 : _h.xAxisLabelFontSize) || 16,
40325 yAxisLabelFontSize: ((_i = defaultConfig$1.quadrantChart) == null ? void 0 : _i.yAxisLabelFontSize) || 16,
40326 quadrantLabelFontSize: ((_j = defaultConfig$1.quadrantChart) == null ? void 0 : _j.quadrantLabelFontSize) || 16,
40327 quadrantTextTopPadding: ((_k = defaultConfig$1.quadrantChart) == null ? void 0 : _k.quadrantTextTopPadding) || 5,
40328 pointTextPadding: ((_l = defaultConfig$1.quadrantChart) == null ? void 0 : _l.pointTextPadding) || 5,
40329 pointLabelFontSize: ((_m = defaultConfig$1.quadrantChart) == null ? void 0 : _m.pointLabelFontSize) || 12,
40330 pointRadius: ((_n = defaultConfig$1.quadrantChart) == null ? void 0 : _n.pointRadius) || 5,
40331 xAxisPosition: ((_o = defaultConfig$1.quadrantChart) == null ? void 0 : _o.xAxisPosition) || "top",
40332 yAxisPosition: ((_p = defaultConfig$1.quadrantChart) == null ? void 0 : _p.yAxisPosition) || "left",
40333 quadrantInternalBorderStrokeWidth: ((_q = defaultConfig$1.quadrantChart) == null ? void 0 : _q.quadrantInternalBorderStrokeWidth) || 1,
40334 quadrantExternalBorderStrokeWidth: ((_r = defaultConfig$1.quadrantChart) == null ? void 0 : _r.quadrantExternalBorderStrokeWidth) || 2
40335 };
40336 }
40337 getDefaultThemeConfig() {
40338 return {
40339 quadrant1Fill: defaultThemeVariables.quadrant1Fill,
40340 quadrant2Fill: defaultThemeVariables.quadrant2Fill,
40341 quadrant3Fill: defaultThemeVariables.quadrant3Fill,
40342 quadrant4Fill: defaultThemeVariables.quadrant4Fill,
40343 quadrant1TextFill: defaultThemeVariables.quadrant1TextFill,
40344 quadrant2TextFill: defaultThemeVariables.quadrant2TextFill,
40345 quadrant3TextFill: defaultThemeVariables.quadrant3TextFill,
40346 quadrant4TextFill: defaultThemeVariables.quadrant4TextFill,
40347 quadrantPointFill: defaultThemeVariables.quadrantPointFill,
40348 quadrantPointTextFill: defaultThemeVariables.quadrantPointTextFill,
40349 quadrantXAxisTextFill: defaultThemeVariables.quadrantXAxisTextFill,
40350 quadrantYAxisTextFill: defaultThemeVariables.quadrantYAxisTextFill,
40351 quadrantTitleFill: defaultThemeVariables.quadrantTitleFill,
40352 quadrantInternalBorderStrokeFill: defaultThemeVariables.quadrantInternalBorderStrokeFill,
40353 quadrantExternalBorderStrokeFill: defaultThemeVariables.quadrantExternalBorderStrokeFill
40354 };
40355 }
40356 clear() {
40357 this.config = this.getDefaultConfig();
40358 this.themeConfig = this.getDefaultThemeConfig();
40359 this.data = this.getDefaultData();
40360 log$1.info("clear called");
40361 }
40362 setData(data) {
40363 this.data = { ...this.data, ...data };
40364 }
40365 addPoints(points) {
40366 this.data.points = [...points, ...this.data.points];
40367 }
40368 setConfig(config2) {
40369 log$1.trace("setConfig called with: ", config2);
40370 this.config = { ...this.config, ...config2 };
40371 }
40372 setThemeConfig(themeConfig) {
40373 log$1.trace("setThemeConfig called with: ", themeConfig);
40374 this.themeConfig = { ...this.themeConfig, ...themeConfig };
40375 }
40376 calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle) {
40377 const xAxisSpaceCalculation = this.config.xAxisLabelPadding * 2 + this.config.xAxisLabelFontSize;
40378 const xAxisSpace = {
40379 top: xAxisPosition === "top" && showXAxis ? xAxisSpaceCalculation : 0,
40380 bottom: xAxisPosition === "bottom" && showXAxis ? xAxisSpaceCalculation : 0
40381 };
40382 const yAxisSpaceCalculation = this.config.yAxisLabelPadding * 2 + this.config.yAxisLabelFontSize;
40383 const yAxisSpace = {
40384 left: this.config.yAxisPosition === "left" && showYAxis ? yAxisSpaceCalculation : 0,
40385 right: this.config.yAxisPosition === "right" && showYAxis ? yAxisSpaceCalculation : 0
40386 };
40387 const titleSpaceCalculation = this.config.titleFontSize + this.config.titlePadding * 2;
40388 const titleSpace = {
40389 top: showTitle ? titleSpaceCalculation : 0
40390 };
40391 const quadrantLeft = this.config.quadrantPadding + yAxisSpace.left;
40392 const quadrantTop = this.config.quadrantPadding + xAxisSpace.top + titleSpace.top;
40393 const quadrantWidth = this.config.chartWidth - this.config.quadrantPadding * 2 - yAxisSpace.left - yAxisSpace.right;
40394 const quadrantHeight = this.config.chartHeight - this.config.quadrantPadding * 2 - xAxisSpace.top - xAxisSpace.bottom - titleSpace.top;
40395 const quadrantHalfWidth = quadrantWidth / 2;
40396 const quadrantHalfHeight = quadrantHeight / 2;
40397 const quadrantSpace = {
40398 quadrantLeft,
40399 quadrantTop,
40400 quadrantWidth,
40401 quadrantHalfWidth,
40402 quadrantHeight,
40403 quadrantHalfHeight
40404 };
40405 return {
40406 xAxisSpace,
40407 yAxisSpace,
40408 titleSpace,
40409 quadrantSpace
40410 };
40411 }
40412 getAxisLabels(xAxisPosition, showXAxis, showYAxis, spaceData) {
40413 const { quadrantSpace, titleSpace } = spaceData;
40414 const {
40415 quadrantHalfHeight,
40416 quadrantHeight,
40417 quadrantLeft,
40418 quadrantHalfWidth,
40419 quadrantTop,
40420 quadrantWidth
40421 } = quadrantSpace;
40422 const drawAxisLabelInMiddle = this.data.points.length === 0;
40423 const axisLabels = [];
40424 if (this.data.xAxisLeftText && showXAxis) {
40425 axisLabels.push({
40426 text: this.data.xAxisLeftText,
40427 fill: this.themeConfig.quadrantXAxisTextFill,
40428 x: quadrantLeft + (drawAxisLabelInMiddle ? quadrantHalfWidth / 2 : 0),
40429 y: xAxisPosition === "top" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,
40430 fontSize: this.config.xAxisLabelFontSize,
40431 verticalPos: drawAxisLabelInMiddle ? "center" : "left",
40432 horizontalPos: "top",
40433 rotation: 0
40434 });
40435 }
40436 if (this.data.xAxisRightText && showXAxis) {
40437 axisLabels.push({
40438 text: this.data.xAxisRightText,
40439 fill: this.themeConfig.quadrantXAxisTextFill,
40440 x: quadrantLeft + quadrantHalfWidth + (drawAxisLabelInMiddle ? quadrantHalfWidth / 2 : 0),
40441 y: xAxisPosition === "top" ? this.config.xAxisLabelPadding + titleSpace.top : this.config.xAxisLabelPadding + quadrantTop + quadrantHeight + this.config.quadrantPadding,
40442 fontSize: this.config.xAxisLabelFontSize,
40443 verticalPos: drawAxisLabelInMiddle ? "center" : "left",
40444 horizontalPos: "top",
40445 rotation: 0
40446 });
40447 }
40448 if (this.data.yAxisBottomText && showYAxis) {
40449 axisLabels.push({
40450 text: this.data.yAxisBottomText,
40451 fill: this.themeConfig.quadrantYAxisTextFill,
40452 x: this.config.yAxisPosition === "left" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,
40453 y: quadrantTop + quadrantHeight - (drawAxisLabelInMiddle ? quadrantHalfHeight / 2 : 0),
40454 fontSize: this.config.yAxisLabelFontSize,
40455 verticalPos: drawAxisLabelInMiddle ? "center" : "left",
40456 horizontalPos: "top",
40457 rotation: -90
40458 });
40459 }
40460 if (this.data.yAxisTopText && showYAxis) {
40461 axisLabels.push({
40462 text: this.data.yAxisTopText,
40463 fill: this.themeConfig.quadrantYAxisTextFill,
40464 x: this.config.yAxisPosition === "left" ? this.config.yAxisLabelPadding : this.config.yAxisLabelPadding + quadrantLeft + quadrantWidth + this.config.quadrantPadding,
40465 y: quadrantTop + quadrantHalfHeight - (drawAxisLabelInMiddle ? quadrantHalfHeight / 2 : 0),
40466 fontSize: this.config.yAxisLabelFontSize,
40467 verticalPos: drawAxisLabelInMiddle ? "center" : "left",
40468 horizontalPos: "top",
40469 rotation: -90
40470 });
40471 }
40472 return axisLabels;
40473 }
40474 getQuadrants(spaceData) {
40475 const { quadrantSpace } = spaceData;
40476 const { quadrantHalfHeight, quadrantLeft, quadrantHalfWidth, quadrantTop } = quadrantSpace;
40477 const quadrants = [
40478 {
40479 text: {
40480 text: this.data.quadrant1Text,
40481 fill: this.themeConfig.quadrant1TextFill,
40482 x: 0,
40483 y: 0,
40484 fontSize: this.config.quadrantLabelFontSize,
40485 verticalPos: "center",
40486 horizontalPos: "middle",
40487 rotation: 0
40488 },
40489 x: quadrantLeft + quadrantHalfWidth,
40490 y: quadrantTop,
40491 width: quadrantHalfWidth,
40492 height: quadrantHalfHeight,
40493 fill: this.themeConfig.quadrant1Fill
40494 },
40495 {
40496 text: {
40497 text: this.data.quadrant2Text,
40498 fill: this.themeConfig.quadrant2TextFill,
40499 x: 0,
40500 y: 0,
40501 fontSize: this.config.quadrantLabelFontSize,
40502 verticalPos: "center",
40503 horizontalPos: "middle",
40504 rotation: 0
40505 },
40506 x: quadrantLeft,
40507 y: quadrantTop,
40508 width: quadrantHalfWidth,
40509 height: quadrantHalfHeight,
40510 fill: this.themeConfig.quadrant2Fill
40511 },
40512 {
40513 text: {
40514 text: this.data.quadrant3Text,
40515 fill: this.themeConfig.quadrant3TextFill,
40516 x: 0,
40517 y: 0,
40518 fontSize: this.config.quadrantLabelFontSize,
40519 verticalPos: "center",
40520 horizontalPos: "middle",
40521 rotation: 0
40522 },
40523 x: quadrantLeft,
40524 y: quadrantTop + quadrantHalfHeight,
40525 width: quadrantHalfWidth,
40526 height: quadrantHalfHeight,
40527 fill: this.themeConfig.quadrant3Fill
40528 },
40529 {
40530 text: {
40531 text: this.data.quadrant4Text,
40532 fill: this.themeConfig.quadrant4TextFill,
40533 x: 0,
40534 y: 0,
40535 fontSize: this.config.quadrantLabelFontSize,
40536 verticalPos: "center",
40537 horizontalPos: "middle",
40538 rotation: 0
40539 },
40540 x: quadrantLeft + quadrantHalfWidth,
40541 y: quadrantTop + quadrantHalfHeight,
40542 width: quadrantHalfWidth,
40543 height: quadrantHalfHeight,
40544 fill: this.themeConfig.quadrant4Fill
40545 }
40546 ];
40547 for (const quadrant of quadrants) {
40548 quadrant.text.x = quadrant.x + quadrant.width / 2;
40549 if (this.data.points.length === 0) {
40550 quadrant.text.y = quadrant.y + quadrant.height / 2;
40551 quadrant.text.horizontalPos = "middle";
40552 } else {
40553 quadrant.text.y = quadrant.y + this.config.quadrantTextTopPadding;
40554 quadrant.text.horizontalPos = "top";
40555 }
40556 }
40557 return quadrants;
40558 }
40559 getQuadrantPoints(spaceData) {
40560 const { quadrantSpace } = spaceData;
40561 const { quadrantHeight, quadrantLeft, quadrantTop, quadrantWidth } = quadrantSpace;
40562 const xAxis = linear().domain([0, 1]).range([quadrantLeft, quadrantWidth + quadrantLeft]);
40563 const yAxis = linear().domain([0, 1]).range([quadrantHeight + quadrantTop, quadrantTop]);
40564 const points = this.data.points.map((point2) => {
40565 const props = {
40566 x: xAxis(point2.x),
40567 y: yAxis(point2.y),
40568 fill: this.themeConfig.quadrantPointFill,
40569 radius: this.config.pointRadius,
40570 text: {
40571 text: point2.text,
40572 fill: this.themeConfig.quadrantPointTextFill,
40573 x: xAxis(point2.x),
40574 y: yAxis(point2.y) + this.config.pointTextPadding,
40575 verticalPos: "center",
40576 horizontalPos: "top",
40577 fontSize: this.config.pointLabelFontSize,
40578 rotation: 0
40579 }
40580 };
40581 return props;
40582 });
40583 return points;
40584 }
40585 getBorders(spaceData) {
40586 const halfExternalBorderWidth = this.config.quadrantExternalBorderStrokeWidth / 2;
40587 const { quadrantSpace } = spaceData;
40588 const {
40589 quadrantHalfHeight,
40590 quadrantHeight,
40591 quadrantLeft,
40592 quadrantHalfWidth,
40593 quadrantTop,
40594 quadrantWidth
40595 } = quadrantSpace;
40596 const borderLines = [
40597 // top border
40598 {
40599 strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,
40600 strokeWidth: this.config.quadrantExternalBorderStrokeWidth,
40601 x1: quadrantLeft - halfExternalBorderWidth,
40602 y1: quadrantTop,
40603 x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,
40604 y2: quadrantTop
40605 },
40606 // right border
40607 {
40608 strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,
40609 strokeWidth: this.config.quadrantExternalBorderStrokeWidth,
40610 x1: quadrantLeft + quadrantWidth,
40611 y1: quadrantTop + halfExternalBorderWidth,
40612 x2: quadrantLeft + quadrantWidth,
40613 y2: quadrantTop + quadrantHeight - halfExternalBorderWidth
40614 },
40615 // bottom border
40616 {
40617 strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,
40618 strokeWidth: this.config.quadrantExternalBorderStrokeWidth,
40619 x1: quadrantLeft - halfExternalBorderWidth,
40620 y1: quadrantTop + quadrantHeight,
40621 x2: quadrantLeft + quadrantWidth + halfExternalBorderWidth,
40622 y2: quadrantTop + quadrantHeight
40623 },
40624 // left border
40625 {
40626 strokeFill: this.themeConfig.quadrantExternalBorderStrokeFill,
40627 strokeWidth: this.config.quadrantExternalBorderStrokeWidth,
40628 x1: quadrantLeft,
40629 y1: quadrantTop + halfExternalBorderWidth,
40630 x2: quadrantLeft,
40631 y2: quadrantTop + quadrantHeight - halfExternalBorderWidth
40632 },
40633 // vertical inner border
40634 {
40635 strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,
40636 strokeWidth: this.config.quadrantInternalBorderStrokeWidth,
40637 x1: quadrantLeft + quadrantHalfWidth,
40638 y1: quadrantTop + halfExternalBorderWidth,
40639 x2: quadrantLeft + quadrantHalfWidth,
40640 y2: quadrantTop + quadrantHeight - halfExternalBorderWidth
40641 },
40642 // horizontal inner border
40643 {
40644 strokeFill: this.themeConfig.quadrantInternalBorderStrokeFill,
40645 strokeWidth: this.config.quadrantInternalBorderStrokeWidth,
40646 x1: quadrantLeft + halfExternalBorderWidth,
40647 y1: quadrantTop + quadrantHalfHeight,
40648 x2: quadrantLeft + quadrantWidth - halfExternalBorderWidth,
40649 y2: quadrantTop + quadrantHalfHeight
40650 }
40651 ];
40652 return borderLines;
40653 }
40654 getTitle(showTitle) {
40655 if (showTitle) {
40656 return {
40657 text: this.data.titleText,
40658 fill: this.themeConfig.quadrantTitleFill,
40659 fontSize: this.config.titleFontSize,
40660 horizontalPos: "top",
40661 verticalPos: "center",
40662 rotation: 0,
40663 y: this.config.titlePadding,
40664 x: this.config.chartWidth / 2
40665 };
40666 }
40667 return;
40668 }
40669 build() {
40670 const showXAxis = this.config.showXAxis && !!(this.data.xAxisLeftText || this.data.xAxisRightText);
40671 const showYAxis = this.config.showYAxis && !!(this.data.yAxisTopText || this.data.yAxisBottomText);
40672 const showTitle = this.config.showTitle && !!this.data.titleText;
40673 const xAxisPosition = this.data.points.length > 0 ? "bottom" : this.config.xAxisPosition;
40674 const calculatedSpace = this.calculateSpace(xAxisPosition, showXAxis, showYAxis, showTitle);
40675 return {
40676 points: this.getQuadrantPoints(calculatedSpace),
40677 quadrants: this.getQuadrants(calculatedSpace),
40678 axisLabels: this.getAxisLabels(xAxisPosition, showXAxis, showYAxis, calculatedSpace),
40679 borderLines: this.getBorders(calculatedSpace),
40680 title: this.getTitle(showTitle)
40681 };
40682 }
40683 }
40684 const config = getConfig$1();
40685 function textSanitizer(text2) {
40686 return sanitizeText$6(text2.trim(), config);
40687 }
40688 const quadrantBuilder = new QuadrantBuilder();
40689 function setQuadrant1Text(textObj) {
40690 quadrantBuilder.setData({ quadrant1Text: textSanitizer(textObj.text) });
40691 }
40692 function setQuadrant2Text(textObj) {
40693 quadrantBuilder.setData({ quadrant2Text: textSanitizer(textObj.text) });
40694 }
40695 function setQuadrant3Text(textObj) {
40696 quadrantBuilder.setData({ quadrant3Text: textSanitizer(textObj.text) });
40697 }
40698 function setQuadrant4Text(textObj) {
40699 quadrantBuilder.setData({ quadrant4Text: textSanitizer(textObj.text) });
40700 }
40701 function setXAxisLeftText(textObj) {
40702 quadrantBuilder.setData({ xAxisLeftText: textSanitizer(textObj.text) });
40703 }
40704 function setXAxisRightText(textObj) {
40705 quadrantBuilder.setData({ xAxisRightText: textSanitizer(textObj.text) });
40706 }
40707 function setYAxisTopText(textObj) {
40708 quadrantBuilder.setData({ yAxisTopText: textSanitizer(textObj.text) });
40709 }
40710 function setYAxisBottomText(textObj) {
40711 quadrantBuilder.setData({ yAxisBottomText: textSanitizer(textObj.text) });
40712 }
40713 function addPoint(textObj, x2, y2) {
40714 quadrantBuilder.addPoints([{ x: x2, y: y2, text: textSanitizer(textObj.text) }]);
40715 }
40716 function setWidth(width2) {
40717 quadrantBuilder.setConfig({ chartWidth: width2 });
40718 }
40719 function setHeight(height2) {
40720 quadrantBuilder.setConfig({ chartHeight: height2 });
40721 }
40722 function getQuadrantData() {
40723 const config2 = getConfig$1();
40724 const { themeVariables, quadrantChart: quadrantChartConfig } = config2;
40725 if (quadrantChartConfig) {
40726 quadrantBuilder.setConfig(quadrantChartConfig);
40727 }
40728 quadrantBuilder.setThemeConfig({
40729 quadrant1Fill: themeVariables.quadrant1Fill,
40730 quadrant2Fill: themeVariables.quadrant2Fill,
40731 quadrant3Fill: themeVariables.quadrant3Fill,
40732 quadrant4Fill: themeVariables.quadrant4Fill,
40733 quadrant1TextFill: themeVariables.quadrant1TextFill,
40734 quadrant2TextFill: themeVariables.quadrant2TextFill,
40735 quadrant3TextFill: themeVariables.quadrant3TextFill,
40736 quadrant4TextFill: themeVariables.quadrant4TextFill,
40737 quadrantPointFill: themeVariables.quadrantPointFill,
40738 quadrantPointTextFill: themeVariables.quadrantPointTextFill,
40739 quadrantXAxisTextFill: themeVariables.quadrantXAxisTextFill,
40740 quadrantYAxisTextFill: themeVariables.quadrantYAxisTextFill,
40741 quadrantExternalBorderStrokeFill: themeVariables.quadrantExternalBorderStrokeFill,
40742 quadrantInternalBorderStrokeFill: themeVariables.quadrantInternalBorderStrokeFill,
40743 quadrantTitleFill: themeVariables.quadrantTitleFill
40744 });
40745 quadrantBuilder.setData({ titleText: getDiagramTitle() });
40746 return quadrantBuilder.build();
40747 }
40748 const parseDirective$6 = function(statement, context, type2) {
40749 mermaidAPI.parseDirective(this, statement, context, type2);
40750 };
40751 const clear$7 = function() {
40752 quadrantBuilder.clear();
40753 clear$j();
40754 };
40755 const db$6 = {
40756 setWidth,
40757 setHeight,
40758 setQuadrant1Text,
40759 setQuadrant2Text,
40760 setQuadrant3Text,
40761 setQuadrant4Text,
40762 setXAxisLeftText,
40763 setXAxisRightText,
40764 setYAxisTopText,
40765 setYAxisBottomText,
40766 addPoint,
40767 getQuadrantData,
40768 parseDirective: parseDirective$6,
40769 clear: clear$7,
40770 setAccTitle,
40771 getAccTitle,
40772 setDiagramTitle,
40773 getDiagramTitle,
40774 getAccDescription,
40775 setAccDescription
40776 };
40777 const draw$a = (txt, id2, _version, diagObj) => {
40778 var _a, _b, _c;
40779 function getDominantBaseLine(horizontalPos) {
40780 return horizontalPos === "top" ? "hanging" : "middle";
40781 }
40782 function getTextAnchor(verticalPos) {
40783 return verticalPos === "left" ? "start" : "middle";
40784 }
40785 function getTransformation(data) {
40786 return `translate(${data.x}, ${data.y}) rotate(${data.rotation || 0})`;
40787 }
40788 const conf2 = getConfig$1();
40789 log$1.debug("Rendering quadrant chart\n" + txt);
40790 const securityLevel = conf2.securityLevel;
40791 let sandboxElement;
40792 if (securityLevel === "sandbox") {
40793 sandboxElement = select("#i" + id2);
40794 }
40795 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
40796 const svg2 = root2.select(`[id="${id2}"]`);
40797 const group = svg2.append("g").attr("class", "main");
40798 const width2 = ((_a = conf2.quadrantChart) == null ? void 0 : _a.chartWidth) || 500;
40799 const height2 = ((_b = conf2.quadrantChart) == null ? void 0 : _b.chartHeight) || 500;
40800 configureSvgSize(svg2, height2, width2, ((_c = conf2.quadrantChart) == null ? void 0 : _c.useMaxWidth) || true);
40801 svg2.attr("viewBox", "0 0 " + width2 + " " + height2);
40802 diagObj.db.setHeight(height2);
40803 diagObj.db.setWidth(width2);
40804 const quadrantData = diagObj.db.getQuadrantData();
40805 const quadrantsGroup = group.append("g").attr("class", "quadrants");
40806 const borderGroup = group.append("g").attr("class", "border");
40807 const dataPointGroup = group.append("g").attr("class", "data-points");
40808 const labelGroup = group.append("g").attr("class", "labels");
40809 const titleGroup = group.append("g").attr("class", "title");
40810 if (quadrantData.title) {
40811 titleGroup.append("text").attr("x", 0).attr("y", 0).attr("fill", quadrantData.title.fill).attr("font-size", quadrantData.title.fontSize).attr("dominant-baseline", getDominantBaseLine(quadrantData.title.horizontalPos)).attr("text-anchor", getTextAnchor(quadrantData.title.verticalPos)).attr("transform", getTransformation(quadrantData.title)).text(quadrantData.title.text);
40812 }
40813 if (quadrantData.borderLines) {
40814 borderGroup.selectAll("line").data(quadrantData.borderLines).enter().append("line").attr("x1", (data) => data.x1).attr("y1", (data) => data.y1).attr("x2", (data) => data.x2).attr("y2", (data) => data.y2).style("stroke", (data) => data.strokeFill).style("stroke-width", (data) => data.strokeWidth);
40815 }
40816 const quadrants = quadrantsGroup.selectAll("g.quadrant").data(quadrantData.quadrants).enter().append("g").attr("class", "quadrant");
40817 quadrants.append("rect").attr("x", (data) => data.x).attr("y", (data) => data.y).attr("width", (data) => data.width).attr("height", (data) => data.height).attr("fill", (data) => data.fill);
40818 quadrants.append("text").attr("x", 0).attr("y", 0).attr("fill", (data) => data.text.fill).attr("font-size", (data) => data.text.fontSize).attr(
40819 "dominant-baseline",
40820 (data) => getDominantBaseLine(data.text.horizontalPos)
40821 ).attr("text-anchor", (data) => getTextAnchor(data.text.verticalPos)).attr("transform", (data) => getTransformation(data.text)).text((data) => data.text.text);
40822 const labels = labelGroup.selectAll("g.label").data(quadrantData.axisLabels).enter().append("g").attr("class", "label");
40823 labels.append("text").attr("x", 0).attr("y", 0).text((data) => data.text).attr("fill", (data) => data.fill).attr("font-size", (data) => data.fontSize).attr("dominant-baseline", (data) => getDominantBaseLine(data.horizontalPos)).attr("text-anchor", (data) => getTextAnchor(data.verticalPos)).attr("transform", (data) => getTransformation(data));
40824 const dataPoints = dataPointGroup.selectAll("g.data-point").data(quadrantData.points).enter().append("g").attr("class", "data-point");
40825 dataPoints.append("circle").attr("cx", (data) => data.x).attr("cy", (data) => data.y).attr("r", (data) => data.radius).attr("fill", (data) => data.fill);
40826 dataPoints.append("text").attr("x", 0).attr("y", 0).text((data) => data.text.text).attr("fill", (data) => data.text.fill).attr("font-size", (data) => data.text.fontSize).attr(
40827 "dominant-baseline",
40828 (data) => getDominantBaseLine(data.text.horizontalPos)
40829 ).attr("text-anchor", (data) => getTextAnchor(data.text.verticalPos)).attr("transform", (data) => getTransformation(data.text));
40830 };
40831 const renderer$9 = {
40832 draw: draw$a
40833 };
40834 const diagram$a = {
40835 parser: parser$e,
40836 db: db$6,
40837 renderer: renderer$9,
40838 styles: () => ""
40839 };
40840 const quadrantDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
40841 __proto__: null,
40842 diagram: diagram$a
40843 }, Symbol.toStringTag, { value: "Module" }));
40844 var parser$b = function() {
40845 var o = function(k, v, o2, l) {
40846 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
40847 ;
40848 return o2;
40849 }, $V0 = [1, 3], $V1 = [1, 5], $V2 = [1, 6], $V3 = [1, 7], $V4 = [1, 8], $V5 = [5, 6, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 71, 72], $V6 = [1, 22], $V7 = [2, 13], $V8 = [1, 26], $V9 = [1, 27], $Va = [1, 28], $Vb = [1, 29], $Vc = [1, 30], $Vd = [1, 31], $Ve = [1, 24], $Vf = [1, 32], $Vg = [1, 33], $Vh = [1, 36], $Vi = [71, 72], $Vj = [5, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 60, 62, 71, 72], $Vk = [1, 56], $Vl = [1, 57], $Vm = [1, 58], $Vn = [1, 59], $Vo = [1, 60], $Vp = [1, 61], $Vq = [1, 62], $Vr = [62, 63], $Vs = [1, 74], $Vt = [1, 70], $Vu = [1, 71], $Vv = [1, 72], $Vw = [1, 73], $Vx = [1, 75], $Vy = [1, 79], $Vz = [1, 80], $VA = [1, 77], $VB = [1, 78], $VC = [5, 8, 14, 16, 18, 19, 40, 41, 42, 43, 44, 45, 53, 71, 72];
40850 var parser2 = {
40851 trace: function trace() {
40852 },
40853 yy: {},
40854 symbols_: { "error": 2, "start": 3, "directive": 4, "NEWLINE": 5, "RD": 6, "diagram": 7, "EOF": 8, "openDirective": 9, "typeDirective": 10, "closeDirective": 11, ":": 12, "argDirective": 13, "acc_title": 14, "acc_title_value": 15, "acc_descr": 16, "acc_descr_value": 17, "acc_descr_multiline_value": 18, "open_directive": 19, "type_directive": 20, "arg_directive": 21, "close_directive": 22, "requirementDef": 23, "elementDef": 24, "relationshipDef": 25, "requirementType": 26, "requirementName": 27, "STRUCT_START": 28, "requirementBody": 29, "ID": 30, "COLONSEP": 31, "id": 32, "TEXT": 33, "text": 34, "RISK": 35, "riskLevel": 36, "VERIFYMTHD": 37, "verifyType": 38, "STRUCT_STOP": 39, "REQUIREMENT": 40, "FUNCTIONAL_REQUIREMENT": 41, "INTERFACE_REQUIREMENT": 42, "PERFORMANCE_REQUIREMENT": 43, "PHYSICAL_REQUIREMENT": 44, "DESIGN_CONSTRAINT": 45, "LOW_RISK": 46, "MED_RISK": 47, "HIGH_RISK": 48, "VERIFY_ANALYSIS": 49, "VERIFY_DEMONSTRATION": 50, "VERIFY_INSPECTION": 51, "VERIFY_TEST": 52, "ELEMENT": 53, "elementName": 54, "elementBody": 55, "TYPE": 56, "type": 57, "DOCREF": 58, "ref": 59, "END_ARROW_L": 60, "relationship": 61, "LINE": 62, "END_ARROW_R": 63, "CONTAINS": 64, "COPIES": 65, "DERIVES": 66, "SATISFIES": 67, "VERIFIES": 68, "REFINES": 69, "TRACES": 70, "unqString": 71, "qString": 72, "$accept": 0, "$end": 1 },
40855 terminals_: { 2: "error", 5: "NEWLINE", 6: "RD", 8: "EOF", 12: ":", 14: "acc_title", 15: "acc_title_value", 16: "acc_descr", 17: "acc_descr_value", 18: "acc_descr_multiline_value", 19: "open_directive", 20: "type_directive", 21: "arg_directive", 22: "close_directive", 28: "STRUCT_START", 30: "ID", 31: "COLONSEP", 33: "TEXT", 35: "RISK", 37: "VERIFYMTHD", 39: "STRUCT_STOP", 40: "REQUIREMENT", 41: "FUNCTIONAL_REQUIREMENT", 42: "INTERFACE_REQUIREMENT", 43: "PERFORMANCE_REQUIREMENT", 44: "PHYSICAL_REQUIREMENT", 45: "DESIGN_CONSTRAINT", 46: "LOW_RISK", 47: "MED_RISK", 48: "HIGH_RISK", 49: "VERIFY_ANALYSIS", 50: "VERIFY_DEMONSTRATION", 51: "VERIFY_INSPECTION", 52: "VERIFY_TEST", 53: "ELEMENT", 56: "TYPE", 58: "DOCREF", 60: "END_ARROW_L", 62: "LINE", 63: "END_ARROW_R", 64: "CONTAINS", 65: "COPIES", 66: "DERIVES", 67: "SATISFIES", 68: "VERIFIES", 69: "REFINES", 70: "TRACES", 71: "unqString", 72: "qString" },
40856 productions_: [0, [3, 3], [3, 2], [3, 4], [4, 3], [4, 5], [4, 2], [4, 2], [4, 1], [9, 1], [10, 1], [13, 1], [11, 1], [7, 0], [7, 2], [7, 2], [7, 2], [7, 2], [7, 2], [23, 5], [29, 5], [29, 5], [29, 5], [29, 5], [29, 2], [29, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [26, 1], [36, 1], [36, 1], [36, 1], [38, 1], [38, 1], [38, 1], [38, 1], [24, 5], [55, 5], [55, 5], [55, 2], [55, 1], [25, 5], [25, 5], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [61, 1], [27, 1], [27, 1], [32, 1], [32, 1], [34, 1], [34, 1], [54, 1], [54, 1], [57, 1], [57, 1], [59, 1], [59, 1]],
40857 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
40858 var $0 = $$.length - 1;
40859 switch (yystate) {
40860 case 6:
40861 this.$ = $$[$0].trim();
40862 yy.setAccTitle(this.$);
40863 break;
40864 case 7:
40865 case 8:
40866 this.$ = $$[$0].trim();
40867 yy.setAccDescription(this.$);
40868 break;
40869 case 9:
40870 yy.parseDirective("%%{", "open_directive");
40871 break;
40872 case 10:
40873 yy.parseDirective($$[$0], "type_directive");
40874 break;
40875 case 11:
40876 $$[$0] = $$[$0].trim().replace(/'/g, '"');
40877 yy.parseDirective($$[$0], "arg_directive");
40878 break;
40879 case 12:
40880 yy.parseDirective("}%%", "close_directive", "pie");
40881 break;
40882 case 13:
40883 this.$ = [];
40884 break;
40885 case 19:
40886 yy.addRequirement($$[$0 - 3], $$[$0 - 4]);
40887 break;
40888 case 20:
40889 yy.setNewReqId($$[$0 - 2]);
40890 break;
40891 case 21:
40892 yy.setNewReqText($$[$0 - 2]);
40893 break;
40894 case 22:
40895 yy.setNewReqRisk($$[$0 - 2]);
40896 break;
40897 case 23:
40898 yy.setNewReqVerifyMethod($$[$0 - 2]);
40899 break;
40900 case 26:
40901 this.$ = yy.RequirementType.REQUIREMENT;
40902 break;
40903 case 27:
40904 this.$ = yy.RequirementType.FUNCTIONAL_REQUIREMENT;
40905 break;
40906 case 28:
40907 this.$ = yy.RequirementType.INTERFACE_REQUIREMENT;
40908 break;
40909 case 29:
40910 this.$ = yy.RequirementType.PERFORMANCE_REQUIREMENT;
40911 break;
40912 case 30:
40913 this.$ = yy.RequirementType.PHYSICAL_REQUIREMENT;
40914 break;
40915 case 31:
40916 this.$ = yy.RequirementType.DESIGN_CONSTRAINT;
40917 break;
40918 case 32:
40919 this.$ = yy.RiskLevel.LOW_RISK;
40920 break;
40921 case 33:
40922 this.$ = yy.RiskLevel.MED_RISK;
40923 break;
40924 case 34:
40925 this.$ = yy.RiskLevel.HIGH_RISK;
40926 break;
40927 case 35:
40928 this.$ = yy.VerifyType.VERIFY_ANALYSIS;
40929 break;
40930 case 36:
40931 this.$ = yy.VerifyType.VERIFY_DEMONSTRATION;
40932 break;
40933 case 37:
40934 this.$ = yy.VerifyType.VERIFY_INSPECTION;
40935 break;
40936 case 38:
40937 this.$ = yy.VerifyType.VERIFY_TEST;
40938 break;
40939 case 39:
40940 yy.addElement($$[$0 - 3]);
40941 break;
40942 case 40:
40943 yy.setNewElementType($$[$0 - 2]);
40944 break;
40945 case 41:
40946 yy.setNewElementDocRef($$[$0 - 2]);
40947 break;
40948 case 44:
40949 yy.addRelationship($$[$0 - 2], $$[$0], $$[$0 - 4]);
40950 break;
40951 case 45:
40952 yy.addRelationship($$[$0 - 2], $$[$0 - 4], $$[$0]);
40953 break;
40954 case 46:
40955 this.$ = yy.Relationships.CONTAINS;
40956 break;
40957 case 47:
40958 this.$ = yy.Relationships.COPIES;
40959 break;
40960 case 48:
40961 this.$ = yy.Relationships.DERIVES;
40962 break;
40963 case 49:
40964 this.$ = yy.Relationships.SATISFIES;
40965 break;
40966 case 50:
40967 this.$ = yy.Relationships.VERIFIES;
40968 break;
40969 case 51:
40970 this.$ = yy.Relationships.REFINES;
40971 break;
40972 case 52:
40973 this.$ = yy.Relationships.TRACES;
40974 break;
40975 }
40976 },
40977 table: [{ 3: 1, 4: 2, 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 1: [3] }, { 3: 10, 4: 2, 5: [1, 9], 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 5: [1, 11] }, { 10: 12, 20: [1, 13] }, { 15: [1, 14] }, { 17: [1, 15] }, o($V5, [2, 8]), { 20: [2, 9] }, { 3: 16, 4: 2, 6: $V0, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4 }, { 1: [2, 2] }, { 4: 21, 5: $V6, 7: 17, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 11: 34, 12: [1, 35], 22: $Vh }, o([12, 22], [2, 10]), o($V5, [2, 6]), o($V5, [2, 7]), { 1: [2, 1] }, { 8: [1, 37] }, { 4: 21, 5: $V6, 7: 38, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 39, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 40, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 41, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 4: 21, 5: $V6, 7: 42, 8: $V7, 9: 4, 14: $V1, 16: $V2, 18: $V3, 19: $V4, 23: 18, 24: 19, 25: 20, 26: 23, 32: 25, 40: $V8, 41: $V9, 42: $Va, 43: $Vb, 44: $Vc, 45: $Vd, 53: $Ve, 71: $Vf, 72: $Vg }, { 27: 43, 71: [1, 44], 72: [1, 45] }, { 54: 46, 71: [1, 47], 72: [1, 48] }, { 60: [1, 49], 62: [1, 50] }, o($Vi, [2, 26]), o($Vi, [2, 27]), o($Vi, [2, 28]), o($Vi, [2, 29]), o($Vi, [2, 30]), o($Vi, [2, 31]), o($Vj, [2, 55]), o($Vj, [2, 56]), o($V5, [2, 4]), { 13: 51, 21: [1, 52] }, o($V5, [2, 12]), { 1: [2, 3] }, { 8: [2, 14] }, { 8: [2, 15] }, { 8: [2, 16] }, { 8: [2, 17] }, { 8: [2, 18] }, { 28: [1, 53] }, { 28: [2, 53] }, { 28: [2, 54] }, { 28: [1, 54] }, { 28: [2, 59] }, { 28: [2, 60] }, { 61: 55, 64: $Vk, 65: $Vl, 66: $Vm, 67: $Vn, 68: $Vo, 69: $Vp, 70: $Vq }, { 61: 63, 64: $Vk, 65: $Vl, 66: $Vm, 67: $Vn, 68: $Vo, 69: $Vp, 70: $Vq }, { 11: 64, 22: $Vh }, { 22: [2, 11] }, { 5: [1, 65] }, { 5: [1, 66] }, { 62: [1, 67] }, o($Vr, [2, 46]), o($Vr, [2, 47]), o($Vr, [2, 48]), o($Vr, [2, 49]), o($Vr, [2, 50]), o($Vr, [2, 51]), o($Vr, [2, 52]), { 63: [1, 68] }, o($V5, [2, 5]), { 5: $Vs, 29: 69, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vy, 39: $Vz, 55: 76, 56: $VA, 58: $VB }, { 32: 81, 71: $Vf, 72: $Vg }, { 32: 82, 71: $Vf, 72: $Vg }, o($VC, [2, 19]), { 31: [1, 83] }, { 31: [1, 84] }, { 31: [1, 85] }, { 31: [1, 86] }, { 5: $Vs, 29: 87, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, o($VC, [2, 25]), o($VC, [2, 39]), { 31: [1, 88] }, { 31: [1, 89] }, { 5: $Vy, 39: $Vz, 55: 90, 56: $VA, 58: $VB }, o($VC, [2, 43]), o($VC, [2, 44]), o($VC, [2, 45]), { 32: 91, 71: $Vf, 72: $Vg }, { 34: 92, 71: [1, 93], 72: [1, 94] }, { 36: 95, 46: [1, 96], 47: [1, 97], 48: [1, 98] }, { 38: 99, 49: [1, 100], 50: [1, 101], 51: [1, 102], 52: [1, 103] }, o($VC, [2, 24]), { 57: 104, 71: [1, 105], 72: [1, 106] }, { 59: 107, 71: [1, 108], 72: [1, 109] }, o($VC, [2, 42]), { 5: [1, 110] }, { 5: [1, 111] }, { 5: [2, 57] }, { 5: [2, 58] }, { 5: [1, 112] }, { 5: [2, 32] }, { 5: [2, 33] }, { 5: [2, 34] }, { 5: [1, 113] }, { 5: [2, 35] }, { 5: [2, 36] }, { 5: [2, 37] }, { 5: [2, 38] }, { 5: [1, 114] }, { 5: [2, 61] }, { 5: [2, 62] }, { 5: [1, 115] }, { 5: [2, 63] }, { 5: [2, 64] }, { 5: $Vs, 29: 116, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 117, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 118, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vs, 29: 119, 30: $Vt, 33: $Vu, 35: $Vv, 37: $Vw, 39: $Vx }, { 5: $Vy, 39: $Vz, 55: 120, 56: $VA, 58: $VB }, { 5: $Vy, 39: $Vz, 55: 121, 56: $VA, 58: $VB }, o($VC, [2, 20]), o($VC, [2, 21]), o($VC, [2, 22]), o($VC, [2, 23]), o($VC, [2, 40]), o($VC, [2, 41])],
40978 defaultActions: { 8: [2, 9], 10: [2, 2], 16: [2, 1], 37: [2, 3], 38: [2, 14], 39: [2, 15], 40: [2, 16], 41: [2, 17], 42: [2, 18], 44: [2, 53], 45: [2, 54], 47: [2, 59], 48: [2, 60], 52: [2, 11], 93: [2, 57], 94: [2, 58], 96: [2, 32], 97: [2, 33], 98: [2, 34], 100: [2, 35], 101: [2, 36], 102: [2, 37], 103: [2, 38], 105: [2, 61], 106: [2, 62], 108: [2, 63], 109: [2, 64] },
40979 parseError: function parseError2(str2, hash) {
40980 if (hash.recoverable) {
40981 this.trace(str2);
40982 } else {
40983 var error = new Error(str2);
40984 error.hash = hash;
40985 throw error;
40986 }
40987 },
40988 parse: function parse2(input) {
40989 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
40990 var args = lstack.slice.call(arguments, 1);
40991 var lexer2 = Object.create(this.lexer);
40992 var sharedState = { yy: {} };
40993 for (var k in this.yy) {
40994 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
40995 sharedState.yy[k] = this.yy[k];
40996 }
40997 }
40998 lexer2.setInput(input, sharedState.yy);
40999 sharedState.yy.lexer = lexer2;
41000 sharedState.yy.parser = this;
41001 if (typeof lexer2.yylloc == "undefined") {
41002 lexer2.yylloc = {};
41003 }
41004 var yyloc = lexer2.yylloc;
41005 lstack.push(yyloc);
41006 var ranges = lexer2.options && lexer2.options.ranges;
41007 if (typeof sharedState.yy.parseError === "function") {
41008 this.parseError = sharedState.yy.parseError;
41009 } else {
41010 this.parseError = Object.getPrototypeOf(this).parseError;
41011 }
41012 function lex2() {
41013 var token2;
41014 token2 = tstack.pop() || lexer2.lex() || EOF;
41015 if (typeof token2 !== "number") {
41016 if (token2 instanceof Array) {
41017 tstack = token2;
41018 token2 = tstack.pop();
41019 }
41020 token2 = self2.symbols_[token2] || token2;
41021 }
41022 return token2;
41023 }
41024 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
41025 while (true) {
41026 state2 = stack[stack.length - 1];
41027 if (this.defaultActions[state2]) {
41028 action = this.defaultActions[state2];
41029 } else {
41030 if (symbol === null || typeof symbol == "undefined") {
41031 symbol = lex2();
41032 }
41033 action = table[state2] && table[state2][symbol];
41034 }
41035 if (typeof action === "undefined" || !action.length || !action[0]) {
41036 var errStr = "";
41037 expected = [];
41038 for (p in table[state2]) {
41039 if (this.terminals_[p] && p > TERROR) {
41040 expected.push("'" + this.terminals_[p] + "'");
41041 }
41042 }
41043 if (lexer2.showPosition) {
41044 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
41045 } else {
41046 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
41047 }
41048 this.parseError(errStr, {
41049 text: lexer2.match,
41050 token: this.terminals_[symbol] || symbol,
41051 line: lexer2.yylineno,
41052 loc: yyloc,
41053 expected
41054 });
41055 }
41056 if (action[0] instanceof Array && action.length > 1) {
41057 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
41058 }
41059 switch (action[0]) {
41060 case 1:
41061 stack.push(symbol);
41062 vstack.push(lexer2.yytext);
41063 lstack.push(lexer2.yylloc);
41064 stack.push(action[1]);
41065 symbol = null;
41066 {
41067 yyleng = lexer2.yyleng;
41068 yytext = lexer2.yytext;
41069 yylineno = lexer2.yylineno;
41070 yyloc = lexer2.yylloc;
41071 }
41072 break;
41073 case 2:
41074 len = this.productions_[action[1]][1];
41075 yyval.$ = vstack[vstack.length - len];
41076 yyval._$ = {
41077 first_line: lstack[lstack.length - (len || 1)].first_line,
41078 last_line: lstack[lstack.length - 1].last_line,
41079 first_column: lstack[lstack.length - (len || 1)].first_column,
41080 last_column: lstack[lstack.length - 1].last_column
41081 };
41082 if (ranges) {
41083 yyval._$.range = [
41084 lstack[lstack.length - (len || 1)].range[0],
41085 lstack[lstack.length - 1].range[1]
41086 ];
41087 }
41088 r = this.performAction.apply(yyval, [
41089 yytext,
41090 yyleng,
41091 yylineno,
41092 sharedState.yy,
41093 action[1],
41094 vstack,
41095 lstack
41096 ].concat(args));
41097 if (typeof r !== "undefined") {
41098 return r;
41099 }
41100 if (len) {
41101 stack = stack.slice(0, -1 * len * 2);
41102 vstack = vstack.slice(0, -1 * len);
41103 lstack = lstack.slice(0, -1 * len);
41104 }
41105 stack.push(this.productions_[action[1]][0]);
41106 vstack.push(yyval.$);
41107 lstack.push(yyval._$);
41108 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
41109 stack.push(newState);
41110 break;
41111 case 3:
41112 return true;
41113 }
41114 }
41115 return true;
41116 }
41117 };
41118 var lexer = function() {
41119 var lexer2 = {
41120 EOF: 1,
41121 parseError: function parseError2(str2, hash) {
41122 if (this.yy.parser) {
41123 this.yy.parser.parseError(str2, hash);
41124 } else {
41125 throw new Error(str2);
41126 }
41127 },
41128 // resets the lexer, sets new input
41129 setInput: function(input, yy) {
41130 this.yy = yy || this.yy || {};
41131 this._input = input;
41132 this._more = this._backtrack = this.done = false;
41133 this.yylineno = this.yyleng = 0;
41134 this.yytext = this.matched = this.match = "";
41135 this.conditionStack = ["INITIAL"];
41136 this.yylloc = {
41137 first_line: 1,
41138 first_column: 0,
41139 last_line: 1,
41140 last_column: 0
41141 };
41142 if (this.options.ranges) {
41143 this.yylloc.range = [0, 0];
41144 }
41145 this.offset = 0;
41146 return this;
41147 },
41148 // consumes and returns one char from the input
41149 input: function() {
41150 var ch = this._input[0];
41151 this.yytext += ch;
41152 this.yyleng++;
41153 this.offset++;
41154 this.match += ch;
41155 this.matched += ch;
41156 var lines = ch.match(/(?:\r\n?|\n).*/g);
41157 if (lines) {
41158 this.yylineno++;
41159 this.yylloc.last_line++;
41160 } else {
41161 this.yylloc.last_column++;
41162 }
41163 if (this.options.ranges) {
41164 this.yylloc.range[1]++;
41165 }
41166 this._input = this._input.slice(1);
41167 return ch;
41168 },
41169 // unshifts one char (or a string) into the input
41170 unput: function(ch) {
41171 var len = ch.length;
41172 var lines = ch.split(/(?:\r\n?|\n)/g);
41173 this._input = ch + this._input;
41174 this.yytext = this.yytext.substr(0, this.yytext.length - len);
41175 this.offset -= len;
41176 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
41177 this.match = this.match.substr(0, this.match.length - 1);
41178 this.matched = this.matched.substr(0, this.matched.length - 1);
41179 if (lines.length - 1) {
41180 this.yylineno -= lines.length - 1;
41181 }
41182 var r = this.yylloc.range;
41183 this.yylloc = {
41184 first_line: this.yylloc.first_line,
41185 last_line: this.yylineno + 1,
41186 first_column: this.yylloc.first_column,
41187 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
41188 };
41189 if (this.options.ranges) {
41190 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
41191 }
41192 this.yyleng = this.yytext.length;
41193 return this;
41194 },
41195 // When called from action, caches matched text and appends it on next action
41196 more: function() {
41197 this._more = true;
41198 return this;
41199 },
41200 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
41201 reject: function() {
41202 if (this.options.backtrack_lexer) {
41203 this._backtrack = true;
41204 } else {
41205 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
41206 text: "",
41207 token: null,
41208 line: this.yylineno
41209 });
41210 }
41211 return this;
41212 },
41213 // retain first n characters of the match
41214 less: function(n) {
41215 this.unput(this.match.slice(n));
41216 },
41217 // displays already matched input, i.e. for error messages
41218 pastInput: function() {
41219 var past = this.matched.substr(0, this.matched.length - this.match.length);
41220 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
41221 },
41222 // displays upcoming input, i.e. for error messages
41223 upcomingInput: function() {
41224 var next2 = this.match;
41225 if (next2.length < 20) {
41226 next2 += this._input.substr(0, 20 - next2.length);
41227 }
41228 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
41229 },
41230 // displays the character position where the lexing error occurred, i.e. for error messages
41231 showPosition: function() {
41232 var pre = this.pastInput();
41233 var c2 = new Array(pre.length + 1).join("-");
41234 return pre + this.upcomingInput() + "\n" + c2 + "^";
41235 },
41236 // test the lexed token: return FALSE when not a match, otherwise return token
41237 test_match: function(match, indexed_rule) {
41238 var token2, lines, backup;
41239 if (this.options.backtrack_lexer) {
41240 backup = {
41241 yylineno: this.yylineno,
41242 yylloc: {
41243 first_line: this.yylloc.first_line,
41244 last_line: this.last_line,
41245 first_column: this.yylloc.first_column,
41246 last_column: this.yylloc.last_column
41247 },
41248 yytext: this.yytext,
41249 match: this.match,
41250 matches: this.matches,
41251 matched: this.matched,
41252 yyleng: this.yyleng,
41253 offset: this.offset,
41254 _more: this._more,
41255 _input: this._input,
41256 yy: this.yy,
41257 conditionStack: this.conditionStack.slice(0),
41258 done: this.done
41259 };
41260 if (this.options.ranges) {
41261 backup.yylloc.range = this.yylloc.range.slice(0);
41262 }
41263 }
41264 lines = match[0].match(/(?:\r\n?|\n).*/g);
41265 if (lines) {
41266 this.yylineno += lines.length;
41267 }
41268 this.yylloc = {
41269 first_line: this.yylloc.last_line,
41270 last_line: this.yylineno + 1,
41271 first_column: this.yylloc.last_column,
41272 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
41273 };
41274 this.yytext += match[0];
41275 this.match += match[0];
41276 this.matches = match;
41277 this.yyleng = this.yytext.length;
41278 if (this.options.ranges) {
41279 this.yylloc.range = [this.offset, this.offset += this.yyleng];
41280 }
41281 this._more = false;
41282 this._backtrack = false;
41283 this._input = this._input.slice(match[0].length);
41284 this.matched += match[0];
41285 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
41286 if (this.done && this._input) {
41287 this.done = false;
41288 }
41289 if (token2) {
41290 return token2;
41291 } else if (this._backtrack) {
41292 for (var k in backup) {
41293 this[k] = backup[k];
41294 }
41295 return false;
41296 }
41297 return false;
41298 },
41299 // return next match in input
41300 next: function() {
41301 if (this.done) {
41302 return this.EOF;
41303 }
41304 if (!this._input) {
41305 this.done = true;
41306 }
41307 var token2, match, tempMatch, index2;
41308 if (!this._more) {
41309 this.yytext = "";
41310 this.match = "";
41311 }
41312 var rules = this._currentRules();
41313 for (var i2 = 0; i2 < rules.length; i2++) {
41314 tempMatch = this._input.match(this.rules[rules[i2]]);
41315 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
41316 match = tempMatch;
41317 index2 = i2;
41318 if (this.options.backtrack_lexer) {
41319 token2 = this.test_match(tempMatch, rules[i2]);
41320 if (token2 !== false) {
41321 return token2;
41322 } else if (this._backtrack) {
41323 match = false;
41324 continue;
41325 } else {
41326 return false;
41327 }
41328 } else if (!this.options.flex) {
41329 break;
41330 }
41331 }
41332 }
41333 if (match) {
41334 token2 = this.test_match(match, rules[index2]);
41335 if (token2 !== false) {
41336 return token2;
41337 }
41338 return false;
41339 }
41340 if (this._input === "") {
41341 return this.EOF;
41342 } else {
41343 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
41344 text: "",
41345 token: null,
41346 line: this.yylineno
41347 });
41348 }
41349 },
41350 // return next match that has a token
41351 lex: function lex2() {
41352 var r = this.next();
41353 if (r) {
41354 return r;
41355 } else {
41356 return this.lex();
41357 }
41358 },
41359 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
41360 begin: function begin(condition) {
41361 this.conditionStack.push(condition);
41362 },
41363 // pop the previously active lexer condition state off the condition stack
41364 popState: function popState() {
41365 var n = this.conditionStack.length - 1;
41366 if (n > 0) {
41367 return this.conditionStack.pop();
41368 } else {
41369 return this.conditionStack[0];
41370 }
41371 },
41372 // produce the lexer rule set which is active for the currently active lexer condition state
41373 _currentRules: function _currentRules() {
41374 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
41375 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
41376 } else {
41377 return this.conditions["INITIAL"].rules;
41378 }
41379 },
41380 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
41381 topState: function topState(n) {
41382 n = this.conditionStack.length - 1 - Math.abs(n || 0);
41383 if (n >= 0) {
41384 return this.conditionStack[n];
41385 } else {
41386 return "INITIAL";
41387 }
41388 },
41389 // alias for begin(condition)
41390 pushState: function pushState(condition) {
41391 this.begin(condition);
41392 },
41393 // return the number of states currently on the stack
41394 stateStackSize: function stateStackSize() {
41395 return this.conditionStack.length;
41396 },
41397 options: { "case-insensitive": true },
41398 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
41399 switch ($avoiding_name_collisions) {
41400 case 0:
41401 this.begin("open_directive");
41402 return 19;
41403 case 1:
41404 this.begin("type_directive");
41405 return 20;
41406 case 2:
41407 this.popState();
41408 this.begin("arg_directive");
41409 return 12;
41410 case 3:
41411 this.popState();
41412 this.popState();
41413 return 22;
41414 case 4:
41415 return 21;
41416 case 5:
41417 return "title";
41418 case 6:
41419 this.begin("acc_title");
41420 return 14;
41421 case 7:
41422 this.popState();
41423 return "acc_title_value";
41424 case 8:
41425 this.begin("acc_descr");
41426 return 16;
41427 case 9:
41428 this.popState();
41429 return "acc_descr_value";
41430 case 10:
41431 this.begin("acc_descr_multiline");
41432 break;
41433 case 11:
41434 this.popState();
41435 break;
41436 case 12:
41437 return "acc_descr_multiline_value";
41438 case 13:
41439 return 5;
41440 case 14:
41441 break;
41442 case 15:
41443 break;
41444 case 16:
41445 break;
41446 case 17:
41447 return 8;
41448 case 18:
41449 return 6;
41450 case 19:
41451 return 28;
41452 case 20:
41453 return 39;
41454 case 21:
41455 return 31;
41456 case 22:
41457 return 30;
41458 case 23:
41459 return 33;
41460 case 24:
41461 return 35;
41462 case 25:
41463 return 37;
41464 case 26:
41465 return 40;
41466 case 27:
41467 return 41;
41468 case 28:
41469 return 42;
41470 case 29:
41471 return 43;
41472 case 30:
41473 return 44;
41474 case 31:
41475 return 45;
41476 case 32:
41477 return 46;
41478 case 33:
41479 return 47;
41480 case 34:
41481 return 48;
41482 case 35:
41483 return 49;
41484 case 36:
41485 return 50;
41486 case 37:
41487 return 51;
41488 case 38:
41489 return 52;
41490 case 39:
41491 return 53;
41492 case 40:
41493 return 64;
41494 case 41:
41495 return 65;
41496 case 42:
41497 return 66;
41498 case 43:
41499 return 67;
41500 case 44:
41501 return 68;
41502 case 45:
41503 return 69;
41504 case 46:
41505 return 70;
41506 case 47:
41507 return 56;
41508 case 48:
41509 return 58;
41510 case 49:
41511 return 60;
41512 case 50:
41513 return 63;
41514 case 51:
41515 return 62;
41516 case 52:
41517 this.begin("string");
41518 break;
41519 case 53:
41520 this.popState();
41521 break;
41522 case 54:
41523 return "qString";
41524 case 55:
41525 yy_.yytext = yy_.yytext.trim();
41526 return 71;
41527 }
41528 },
41529 rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:(\r?\n)+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:$)/i, /^(?:requirementDiagram\b)/i, /^(?:\{)/i, /^(?:\})/i, /^(?::)/i, /^(?:id\b)/i, /^(?:text\b)/i, /^(?:risk\b)/i, /^(?:verifyMethod\b)/i, /^(?:requirement\b)/i, /^(?:functionalRequirement\b)/i, /^(?:interfaceRequirement\b)/i, /^(?:performanceRequirement\b)/i, /^(?:physicalRequirement\b)/i, /^(?:designConstraint\b)/i, /^(?:low\b)/i, /^(?:medium\b)/i, /^(?:high\b)/i, /^(?:analysis\b)/i, /^(?:demonstration\b)/i, /^(?:inspection\b)/i, /^(?:test\b)/i, /^(?:element\b)/i, /^(?:contains\b)/i, /^(?:copies\b)/i, /^(?:derives\b)/i, /^(?:satisfies\b)/i, /^(?:verifies\b)/i, /^(?:refines\b)/i, /^(?:traces\b)/i, /^(?:type\b)/i, /^(?:docref\b)/i, /^(?:<-)/i, /^(?:->)/i, /^(?:-)/i, /^(?:["])/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[\w][^\r\n\{\<\>\-\=]*)/i],
41530 conditions: { "acc_descr_multiline": { "rules": [11, 12], "inclusive": false }, "acc_descr": { "rules": [9], "inclusive": false }, "acc_title": { "rules": [7], "inclusive": false }, "close_directive": { "rules": [], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "open_directive": { "rules": [1], "inclusive": false }, "unqString": { "rules": [], "inclusive": false }, "token": { "rules": [], "inclusive": false }, "string": { "rules": [53, 54], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 8, 10, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 55], "inclusive": true } }
41531 };
41532 return lexer2;
41533 }();
41534 parser2.lexer = lexer;
41535 function Parser() {
41536 this.yy = {};
41537 }
41538 Parser.prototype = parser2;
41539 parser2.Parser = Parser;
41540 return new Parser();
41541 }();
41542 parser$b.parser = parser$b;
41543 const parser$c = parser$b;
41544 let relations$1 = [];
41545 let latestRequirement = {};
41546 let requirements = {};
41547 let latestElement = {};
41548 let elements$1 = {};
41549 const RequirementType = {
41550 REQUIREMENT: "Requirement",
41551 FUNCTIONAL_REQUIREMENT: "Functional Requirement",
41552 INTERFACE_REQUIREMENT: "Interface Requirement",
41553 PERFORMANCE_REQUIREMENT: "Performance Requirement",
41554 PHYSICAL_REQUIREMENT: "Physical Requirement",
41555 DESIGN_CONSTRAINT: "Design Constraint"
41556 };
41557 const RiskLevel = {
41558 LOW_RISK: "Low",
41559 MED_RISK: "Medium",
41560 HIGH_RISK: "High"
41561 };
41562 const VerifyType = {
41563 VERIFY_ANALYSIS: "Analysis",
41564 VERIFY_DEMONSTRATION: "Demonstration",
41565 VERIFY_INSPECTION: "Inspection",
41566 VERIFY_TEST: "Test"
41567 };
41568 const Relationships = {
41569 CONTAINS: "contains",
41570 COPIES: "copies",
41571 DERIVES: "derives",
41572 SATISFIES: "satisfies",
41573 VERIFIES: "verifies",
41574 REFINES: "refines",
41575 TRACES: "traces"
41576 };
41577 const parseDirective$5 = function(statement, context, type2) {
41578 mermaidAPI.parseDirective(this, statement, context, type2);
41579 };
41580 const addRequirement = (name2, type2) => {
41581 if (requirements[name2] === void 0) {
41582 requirements[name2] = {
41583 name: name2,
41584 type: type2,
41585 id: latestRequirement.id,
41586 text: latestRequirement.text,
41587 risk: latestRequirement.risk,
41588 verifyMethod: latestRequirement.verifyMethod
41589 };
41590 }
41591 latestRequirement = {};
41592 return requirements[name2];
41593 };
41594 const getRequirements = () => requirements;
41595 const setNewReqId = (id2) => {
41596 if (latestRequirement !== void 0) {
41597 latestRequirement.id = id2;
41598 }
41599 };
41600 const setNewReqText = (text2) => {
41601 if (latestRequirement !== void 0) {
41602 latestRequirement.text = text2;
41603 }
41604 };
41605 const setNewReqRisk = (risk) => {
41606 if (latestRequirement !== void 0) {
41607 latestRequirement.risk = risk;
41608 }
41609 };
41610 const setNewReqVerifyMethod = (verifyMethod) => {
41611 if (latestRequirement !== void 0) {
41612 latestRequirement.verifyMethod = verifyMethod;
41613 }
41614 };
41615 const addElement = (name2) => {
41616 if (elements$1[name2] === void 0) {
41617 elements$1[name2] = {
41618 name: name2,
41619 type: latestElement.type,
41620 docRef: latestElement.docRef
41621 };
41622 log$1.info("Added new requirement: ", name2);
41623 }
41624 latestElement = {};
41625 return elements$1[name2];
41626 };
41627 const getElements = () => elements$1;
41628 const setNewElementType = (type2) => {
41629 if (latestElement !== void 0) {
41630 latestElement.type = type2;
41631 }
41632 };
41633 const setNewElementDocRef = (docRef) => {
41634 if (latestElement !== void 0) {
41635 latestElement.docRef = docRef;
41636 }
41637 };
41638 const addRelationship = (type2, src, dst) => {
41639 relations$1.push({
41640 type: type2,
41641 src,
41642 dst
41643 });
41644 };
41645 const getRelationships = () => relations$1;
41646 const clear$6 = () => {
41647 relations$1 = [];
41648 latestRequirement = {};
41649 requirements = {};
41650 latestElement = {};
41651 elements$1 = {};
41652 clear$j();
41653 };
41654 const db$5 = {
41655 RequirementType,
41656 RiskLevel,
41657 VerifyType,
41658 Relationships,
41659 parseDirective: parseDirective$5,
41660 getConfig: () => getConfig$1().req,
41661 addRequirement,
41662 getRequirements,
41663 setNewReqId,
41664 setNewReqText,
41665 setNewReqRisk,
41666 setNewReqVerifyMethod,
41667 setAccTitle,
41668 getAccTitle,
41669 setAccDescription,
41670 getAccDescription,
41671 addElement,
41672 getElements,
41673 setNewElementType,
41674 setNewElementDocRef,
41675 addRelationship,
41676 getRelationships,
41677 clear: clear$6
41678 };
41679 const getStyles$7 = (options2) => `
41680
41681 marker {
41682 fill: ${options2.relationColor};
41683 stroke: ${options2.relationColor};
41684 }
41685
41686 marker.cross {
41687 stroke: ${options2.lineColor};
41688 }
41689
41690 svg {
41691 font-family: ${options2.fontFamily};
41692 font-size: ${options2.fontSize};
41693 }
41694
41695 .reqBox {
41696 fill: ${options2.requirementBackground};
41697 fill-opacity: 1.0;
41698 stroke: ${options2.requirementBorderColor};
41699 stroke-width: ${options2.requirementBorderSize};
41700 }
41701
41702 .reqTitle, .reqLabel{
41703 fill: ${options2.requirementTextColor};
41704 }
41705 .reqLabelBox {
41706 fill: ${options2.relationLabelBackground};
41707 fill-opacity: 1.0;
41708 }
41709
41710 .req-title-line {
41711 stroke: ${options2.requirementBorderColor};
41712 stroke-width: ${options2.requirementBorderSize};
41713 }
41714 .relationshipLine {
41715 stroke: ${options2.relationColor};
41716 stroke-width: 1;
41717 }
41718 .relationshipLabel {
41719 fill: ${options2.relationLabelColor};
41720 }
41721
41722`;
41723 const styles$6 = getStyles$7;
41724 const ReqMarkers = {
41725 CONTAINS: "contains",
41726 ARROW: "arrow"
41727 };
41728 const insertLineEndings = (parentNode, conf2) => {
41729 let containsNode = parentNode.append("defs").append("marker").attr("id", ReqMarkers.CONTAINS + "_line_ending").attr("refX", 0).attr("refY", conf2.line_height / 2).attr("markerWidth", conf2.line_height).attr("markerHeight", conf2.line_height).attr("orient", "auto").append("g");
41730 containsNode.append("circle").attr("cx", conf2.line_height / 2).attr("cy", conf2.line_height / 2).attr("r", conf2.line_height / 2).attr("fill", "none");
41731 containsNode.append("line").attr("x1", 0).attr("x2", conf2.line_height).attr("y1", conf2.line_height / 2).attr("y2", conf2.line_height / 2).attr("stroke-width", 1);
41732 containsNode.append("line").attr("y1", 0).attr("y2", conf2.line_height).attr("x1", conf2.line_height / 2).attr("x2", conf2.line_height / 2).attr("stroke-width", 1);
41733 parentNode.append("defs").append("marker").attr("id", ReqMarkers.ARROW + "_line_ending").attr("refX", conf2.line_height).attr("refY", 0.5 * conf2.line_height).attr("markerWidth", conf2.line_height).attr("markerHeight", conf2.line_height).attr("orient", "auto").append("path").attr(
41734 "d",
41735 `M0,0
41736 L${conf2.line_height},${conf2.line_height / 2}
41737 M${conf2.line_height},${conf2.line_height / 2}
41738 L0,${conf2.line_height}`
41739 ).attr("stroke-width", 1);
41740 };
41741 const markers = {
41742 ReqMarkers,
41743 insertLineEndings
41744 };
41745 let conf$5 = {};
41746 let relCnt = 0;
41747 const newRectNode = (parentNode, id2) => {
41748 return parentNode.insert("rect", "#" + id2).attr("class", "req reqBox").attr("x", 0).attr("y", 0).attr("width", conf$5.rect_min_width + "px").attr("height", conf$5.rect_min_height + "px");
41749 };
41750 const newTitleNode = (parentNode, id2, txts) => {
41751 let x2 = conf$5.rect_min_width / 2;
41752 let title2 = parentNode.append("text").attr("class", "req reqLabel reqTitle").attr("id", id2).attr("x", x2).attr("y", conf$5.rect_padding).attr("dominant-baseline", "hanging");
41753 let i2 = 0;
41754 txts.forEach((textStr) => {
41755 if (i2 == 0) {
41756 title2.append("tspan").attr("text-anchor", "middle").attr("x", conf$5.rect_min_width / 2).attr("dy", 0).text(textStr);
41757 } else {
41758 title2.append("tspan").attr("text-anchor", "middle").attr("x", conf$5.rect_min_width / 2).attr("dy", conf$5.line_height * 0.75).text(textStr);
41759 }
41760 i2++;
41761 });
41762 let yPadding = 1.5 * conf$5.rect_padding;
41763 let linePadding = i2 * conf$5.line_height * 0.75;
41764 let totalY = yPadding + linePadding;
41765 parentNode.append("line").attr("class", "req-title-line").attr("x1", "0").attr("x2", conf$5.rect_min_width).attr("y1", totalY).attr("y2", totalY);
41766 return {
41767 titleNode: title2,
41768 y: totalY
41769 };
41770 };
41771 const newBodyNode = (parentNode, id2, txts, yStart) => {
41772 let body = parentNode.append("text").attr("class", "req reqLabel").attr("id", id2).attr("x", conf$5.rect_padding).attr("y", yStart).attr("dominant-baseline", "hanging");
41773 let currentRow = 0;
41774 const charLimit = 30;
41775 let wrappedTxts = [];
41776 txts.forEach((textStr) => {
41777 let currentTextLen = textStr.length;
41778 while (currentTextLen > charLimit && currentRow < 3) {
41779 let firstPart = textStr.substring(0, charLimit);
41780 textStr = textStr.substring(charLimit, textStr.length);
41781 currentTextLen = textStr.length;
41782 wrappedTxts[wrappedTxts.length] = firstPart;
41783 currentRow++;
41784 }
41785 if (currentRow == 3) {
41786 let lastStr = wrappedTxts[wrappedTxts.length - 1];
41787 wrappedTxts[wrappedTxts.length - 1] = lastStr.substring(0, lastStr.length - 4) + "...";
41788 } else {
41789 wrappedTxts[wrappedTxts.length] = textStr;
41790 }
41791 currentRow = 0;
41792 });
41793 wrappedTxts.forEach((textStr) => {
41794 body.append("tspan").attr("x", conf$5.rect_padding).attr("dy", conf$5.line_height).text(textStr);
41795 });
41796 return body;
41797 };
41798 const addEdgeLabel = (parentNode, svgPath, conf2, txt) => {
41799 const len = svgPath.node().getTotalLength();
41800 const labelPoint = svgPath.node().getPointAtLength(len * 0.5);
41801 const labelId = "rel" + relCnt;
41802 relCnt++;
41803 const labelNode = parentNode.append("text").attr("class", "req relationshipLabel").attr("id", labelId).attr("x", labelPoint.x).attr("y", labelPoint.y).attr("text-anchor", "middle").attr("dominant-baseline", "middle").text(txt);
41804 const labelBBox = labelNode.node().getBBox();
41805 parentNode.insert("rect", "#" + labelId).attr("class", "req reqLabelBox").attr("x", labelPoint.x - labelBBox.width / 2).attr("y", labelPoint.y - labelBBox.height / 2).attr("width", labelBBox.width).attr("height", labelBBox.height).attr("fill", "white").attr("fill-opacity", "85%");
41806 };
41807 const drawRelationshipFromLayout = function(svg2, rel, g, insert, diagObj) {
41808 const edge = g.edge(elementString(rel.src), elementString(rel.dst));
41809 const lineFunction = line$1().x(function(d) {
41810 return d.x;
41811 }).y(function(d) {
41812 return d.y;
41813 });
41814 const svgPath = svg2.insert("path", "#" + insert).attr("class", "er relationshipLine").attr("d", lineFunction(edge.points)).attr("fill", "none");
41815 if (rel.type == diagObj.db.Relationships.CONTAINS) {
41816 svgPath.attr(
41817 "marker-start",
41818 "url(" + common$1.getUrl(conf$5.arrowMarkerAbsolute) + "#" + rel.type + "_line_ending)"
41819 );
41820 } else {
41821 svgPath.attr("stroke-dasharray", "10,7");
41822 svgPath.attr(
41823 "marker-end",
41824 "url(" + common$1.getUrl(conf$5.arrowMarkerAbsolute) + "#" + markers.ReqMarkers.ARROW + "_line_ending)"
41825 );
41826 }
41827 addEdgeLabel(svg2, svgPath, conf$5, `<<${rel.type}>>`);
41828 return;
41829 };
41830 const drawReqs = (reqs, graph, svgNode2) => {
41831 Object.keys(reqs).forEach((reqName) => {
41832 let req = reqs[reqName];
41833 reqName = elementString(reqName);
41834 log$1.info("Added new requirement: ", reqName);
41835 const groupNode = svgNode2.append("g").attr("id", reqName);
41836 const textId = "req-" + reqName;
41837 const rectNode = newRectNode(groupNode, textId);
41838 let titleNodeInfo = newTitleNode(groupNode, reqName + "_title", [
41839 `<<${req.type}>>`,
41840 `${req.name}`
41841 ]);
41842 newBodyNode(
41843 groupNode,
41844 reqName + "_body",
41845 [
41846 `Id: ${req.id}`,
41847 `Text: ${req.text}`,
41848 `Risk: ${req.risk}`,
41849 `Verification: ${req.verifyMethod}`
41850 ],
41851 titleNodeInfo.y
41852 );
41853 const rectBBox = rectNode.node().getBBox();
41854 graph.setNode(reqName, {
41855 width: rectBBox.width,
41856 height: rectBBox.height,
41857 shape: "rect",
41858 id: reqName
41859 });
41860 });
41861 };
41862 const drawElements = (els, graph, svgNode2) => {
41863 Object.keys(els).forEach((elName) => {
41864 let el = els[elName];
41865 const id2 = elementString(elName);
41866 const groupNode = svgNode2.append("g").attr("id", id2);
41867 const textId = "element-" + id2;
41868 const rectNode = newRectNode(groupNode, textId);
41869 let titleNodeInfo = newTitleNode(groupNode, textId + "_title", [`<<Element>>`, `${elName}`]);
41870 newBodyNode(
41871 groupNode,
41872 textId + "_body",
41873 [`Type: ${el.type || "Not Specified"}`, `Doc Ref: ${el.docRef || "None"}`],
41874 titleNodeInfo.y
41875 );
41876 const rectBBox = rectNode.node().getBBox();
41877 graph.setNode(id2, {
41878 width: rectBBox.width,
41879 height: rectBBox.height,
41880 shape: "rect",
41881 id: id2
41882 });
41883 });
41884 };
41885 const addRelationships = (relationships2, g) => {
41886 relationships2.forEach(function(r) {
41887 let src = elementString(r.src);
41888 let dst = elementString(r.dst);
41889 g.setEdge(src, dst, { relationship: r });
41890 });
41891 return relationships2;
41892 };
41893 const adjustEntities = function(svgNode2, graph) {
41894 graph.nodes().forEach(function(v) {
41895 if (v !== void 0 && graph.node(v) !== void 0) {
41896 svgNode2.select("#" + v);
41897 svgNode2.select("#" + v).attr(
41898 "transform",
41899 "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y - graph.node(v).height / 2) + " )"
41900 );
41901 }
41902 });
41903 return;
41904 };
41905 const elementString = (str2) => {
41906 return str2.replace(/\s/g, "").replace(/\./g, "_");
41907 };
41908 const draw$9 = (text2, id2, _version, diagObj) => {
41909 conf$5 = getConfig$1().requirement;
41910 diagObj.db.clear();
41911 diagObj.parser.parse(text2);
41912 const securityLevel = conf$5.securityLevel;
41913 let sandboxElement;
41914 if (securityLevel === "sandbox") {
41915 sandboxElement = select("#i" + id2);
41916 }
41917 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
41918 const svg2 = root2.select(`[id='${id2}']`);
41919 markers.insertLineEndings(svg2, conf$5);
41920 const g = new Graph({
41921 multigraph: false,
41922 compound: false,
41923 directed: true
41924 }).setGraph({
41925 rankdir: conf$5.layoutDirection,
41926 marginx: 20,
41927 marginy: 20,
41928 nodesep: 100,
41929 edgesep: 100,
41930 ranksep: 100
41931 }).setDefaultEdgeLabel(function() {
41932 return {};
41933 });
41934 let requirements2 = diagObj.db.getRequirements();
41935 let elements2 = diagObj.db.getElements();
41936 let relationships2 = diagObj.db.getRelationships();
41937 drawReqs(requirements2, g, svg2);
41938 drawElements(elements2, g, svg2);
41939 addRelationships(relationships2, g);
41940 layout(g);
41941 adjustEntities(svg2, g);
41942 relationships2.forEach(function(rel) {
41943 drawRelationshipFromLayout(svg2, rel, g, id2, diagObj);
41944 });
41945 const padding2 = conf$5.rect_padding;
41946 const svgBounds = svg2.node().getBBox();
41947 const width2 = svgBounds.width + padding2 * 2;
41948 const height2 = svgBounds.height + padding2 * 2;
41949 configureSvgSize(svg2, height2, width2, conf$5.useMaxWidth);
41950 svg2.attr("viewBox", `${svgBounds.x - padding2} ${svgBounds.y - padding2} ${width2} ${height2}`);
41951 };
41952 const renderer$8 = {
41953 draw: draw$9
41954 };
41955 const diagram$9 = {
41956 parser: parser$c,
41957 db: db$5,
41958 renderer: renderer$8,
41959 styles: styles$6
41960 };
41961 const requirementDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
41962 __proto__: null,
41963 diagram: diagram$9
41964 }, Symbol.toStringTag, { value: "Module" }));
41965 var parser$9 = function() {
41966 var o = function(k, v, o2, l) {
41967 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
41968 ;
41969 return o2;
41970 }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 7], $V4 = [2, 5], $V5 = [1, 15], $V6 = [1, 17], $V7 = [1, 19], $V8 = [1, 21], $V9 = [1, 22], $Va = [1, 23], $Vb = [1, 29], $Vc = [1, 30], $Vd = [1, 31], $Ve = [1, 32], $Vf = [1, 33], $Vg = [1, 34], $Vh = [1, 35], $Vi = [1, 36], $Vj = [1, 37], $Vk = [1, 38], $Vl = [1, 39], $Vm = [1, 40], $Vn = [1, 41], $Vo = [1, 43], $Vp = [1, 44], $Vq = [1, 46], $Vr = [1, 47], $Vs = [1, 48], $Vt = [1, 49], $Vu = [1, 50], $Vv = [1, 51], $Vw = [1, 54], $Vx = [1, 4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 51, 52, 53, 54, 55, 57, 58, 63, 64, 65, 66, 74, 84], $Vy = [4, 5, 21, 55, 57], $Vz = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 51, 55, 57, 58, 63, 64, 65, 66, 74, 84], $VA = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 51, 54, 55, 57, 58, 63, 64, 65, 66, 74, 84], $VB = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 51, 53, 55, 57, 58, 63, 64, 65, 66, 74, 84], $VC = [4, 5, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 51, 52, 55, 57, 58, 63, 64, 65, 66, 74, 84], $VD = [72, 73, 74], $VE = [1, 128], $VF = [1, 4, 5, 7, 19, 21, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 51, 52, 53, 54, 55, 57, 58, 63, 64, 65, 66, 74, 84];
41971 var parser2 = {
41972 trace: function trace() {
41973 },
41974 yy: {},
41975 symbols_: { "error": 2, "start": 3, "SPACE": 4, "NEWLINE": 5, "directive": 6, "SD": 7, "document": 8, "line": 9, "statement": 10, "box_section": 11, "box_line": 12, "participant_statement": 13, "openDirective": 14, "typeDirective": 15, "closeDirective": 16, ":": 17, "argDirective": 18, "box": 19, "restOfLine": 20, "end": 21, "signal": 22, "autonumber": 23, "NUM": 24, "off": 25, "activate": 26, "actor": 27, "deactivate": 28, "note_statement": 29, "links_statement": 30, "link_statement": 31, "properties_statement": 32, "details_statement": 33, "title": 34, "legacy_title": 35, "acc_title": 36, "acc_title_value": 37, "acc_descr": 38, "acc_descr_value": 39, "acc_descr_multiline_value": 40, "loop": 41, "rect": 42, "opt": 43, "alt": 44, "else_sections": 45, "par": 46, "par_sections": 47, "par_over": 48, "critical": 49, "option_sections": 50, "break": 51, "option": 52, "and": 53, "else": 54, "participant": 55, "AS": 56, "participant_actor": 57, "note": 58, "placement": 59, "text2": 60, "over": 61, "actor_pair": 62, "links": 63, "link": 64, "properties": 65, "details": 66, "spaceList": 67, ",": 68, "left_of": 69, "right_of": 70, "signaltype": 71, "+": 72, "-": 73, "ACTOR": 74, "SOLID_OPEN_ARROW": 75, "DOTTED_OPEN_ARROW": 76, "SOLID_ARROW": 77, "DOTTED_ARROW": 78, "SOLID_CROSS": 79, "DOTTED_CROSS": 80, "SOLID_POINT": 81, "DOTTED_POINT": 82, "TXT": 83, "open_directive": 84, "type_directive": 85, "arg_directive": 86, "close_directive": 87, "$accept": 0, "$end": 1 },
41976 terminals_: { 2: "error", 4: "SPACE", 5: "NEWLINE", 7: "SD", 17: ":", 19: "box", 20: "restOfLine", 21: "end", 23: "autonumber", 24: "NUM", 25: "off", 26: "activate", 28: "deactivate", 34: "title", 35: "legacy_title", 36: "acc_title", 37: "acc_title_value", 38: "acc_descr", 39: "acc_descr_value", 40: "acc_descr_multiline_value", 41: "loop", 42: "rect", 43: "opt", 44: "alt", 46: "par", 48: "par_over", 49: "critical", 51: "break", 52: "option", 53: "and", 54: "else", 55: "participant", 56: "AS", 57: "participant_actor", 58: "note", 61: "over", 63: "links", 64: "link", 65: "properties", 66: "details", 68: ",", 69: "left_of", 70: "right_of", 72: "+", 73: "-", 74: "ACTOR", 75: "SOLID_OPEN_ARROW", 76: "DOTTED_OPEN_ARROW", 77: "SOLID_ARROW", 78: "DOTTED_ARROW", 79: "SOLID_CROSS", 80: "DOTTED_CROSS", 81: "SOLID_POINT", 82: "DOTTED_POINT", 83: "TXT", 84: "open_directive", 85: "type_directive", 86: "arg_directive", 87: "close_directive" },
41977 productions_: [0, [3, 2], [3, 2], [3, 2], [3, 2], [8, 0], [8, 2], [9, 2], [9, 1], [9, 1], [11, 0], [11, 2], [12, 2], [12, 1], [12, 1], [6, 4], [6, 6], [10, 1], [10, 4], [10, 2], [10, 4], [10, 3], [10, 3], [10, 2], [10, 3], [10, 3], [10, 2], [10, 2], [10, 2], [10, 2], [10, 2], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 4], [10, 1], [50, 1], [50, 4], [47, 1], [47, 4], [45, 1], [45, 4], [13, 5], [13, 3], [13, 5], [13, 3], [29, 4], [29, 4], [30, 3], [31, 3], [32, 3], [33, 3], [67, 2], [67, 1], [62, 3], [62, 1], [59, 1], [59, 1], [22, 5], [22, 5], [22, 4], [27, 1], [71, 1], [71, 1], [71, 1], [71, 1], [71, 1], [71, 1], [71, 1], [71, 1], [60, 1], [14, 1], [15, 1], [18, 1], [16, 1]],
41978 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
41979 var $0 = $$.length - 1;
41980 switch (yystate) {
41981 case 4:
41982 yy.apply($$[$0]);
41983 return $$[$0];
41984 case 5:
41985 case 10:
41986 this.$ = [];
41987 break;
41988 case 6:
41989 case 11:
41990 $$[$0 - 1].push($$[$0]);
41991 this.$ = $$[$0 - 1];
41992 break;
41993 case 7:
41994 case 8:
41995 case 12:
41996 case 13:
41997 this.$ = $$[$0];
41998 break;
41999 case 9:
42000 case 14:
42001 this.$ = [];
42002 break;
42003 case 18:
42004 $$[$0 - 1].unshift({ type: "boxStart", boxData: yy.parseBoxData($$[$0 - 2]) });
42005 $$[$0 - 1].push({ type: "boxEnd", boxText: $$[$0 - 2] });
42006 this.$ = $$[$0 - 1];
42007 break;
42008 case 20:
42009 this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 2]), sequenceIndexStep: Number($$[$0 - 1]), sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
42010 break;
42011 case 21:
42012 this.$ = { type: "sequenceIndex", sequenceIndex: Number($$[$0 - 1]), sequenceIndexStep: 1, sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
42013 break;
42014 case 22:
42015 this.$ = { type: "sequenceIndex", sequenceVisible: false, signalType: yy.LINETYPE.AUTONUMBER };
42016 break;
42017 case 23:
42018 this.$ = { type: "sequenceIndex", sequenceVisible: true, signalType: yy.LINETYPE.AUTONUMBER };
42019 break;
42020 case 24:
42021 this.$ = { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] };
42022 break;
42023 case 25:
42024 this.$ = { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 1] };
42025 break;
42026 case 31:
42027 yy.setDiagramTitle($$[$0].substring(6));
42028 this.$ = $$[$0].substring(6);
42029 break;
42030 case 32:
42031 yy.setDiagramTitle($$[$0].substring(7));
42032 this.$ = $$[$0].substring(7);
42033 break;
42034 case 33:
42035 this.$ = $$[$0].trim();
42036 yy.setAccTitle(this.$);
42037 break;
42038 case 34:
42039 case 35:
42040 this.$ = $$[$0].trim();
42041 yy.setAccDescription(this.$);
42042 break;
42043 case 36:
42044 $$[$0 - 1].unshift({ type: "loopStart", loopText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.LOOP_START });
42045 $$[$0 - 1].push({ type: "loopEnd", loopText: $$[$0 - 2], signalType: yy.LINETYPE.LOOP_END });
42046 this.$ = $$[$0 - 1];
42047 break;
42048 case 37:
42049 $$[$0 - 1].unshift({ type: "rectStart", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_START });
42050 $$[$0 - 1].push({ type: "rectEnd", color: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.RECT_END });
42051 this.$ = $$[$0 - 1];
42052 break;
42053 case 38:
42054 $$[$0 - 1].unshift({ type: "optStart", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_START });
42055 $$[$0 - 1].push({ type: "optEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.OPT_END });
42056 this.$ = $$[$0 - 1];
42057 break;
42058 case 39:
42059 $$[$0 - 1].unshift({ type: "altStart", altText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.ALT_START });
42060 $$[$0 - 1].push({ type: "altEnd", signalType: yy.LINETYPE.ALT_END });
42061 this.$ = $$[$0 - 1];
42062 break;
42063 case 40:
42064 $$[$0 - 1].unshift({ type: "parStart", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_START });
42065 $$[$0 - 1].push({ type: "parEnd", signalType: yy.LINETYPE.PAR_END });
42066 this.$ = $$[$0 - 1];
42067 break;
42068 case 41:
42069 $$[$0 - 1].unshift({ type: "parStart", parText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.PAR_OVER_START });
42070 $$[$0 - 1].push({ type: "parEnd", signalType: yy.LINETYPE.PAR_END });
42071 this.$ = $$[$0 - 1];
42072 break;
42073 case 42:
42074 $$[$0 - 1].unshift({ type: "criticalStart", criticalText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.CRITICAL_START });
42075 $$[$0 - 1].push({ type: "criticalEnd", signalType: yy.LINETYPE.CRITICAL_END });
42076 this.$ = $$[$0 - 1];
42077 break;
42078 case 43:
42079 $$[$0 - 1].unshift({ type: "breakStart", breakText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_START });
42080 $$[$0 - 1].push({ type: "breakEnd", optText: yy.parseMessage($$[$0 - 2]), signalType: yy.LINETYPE.BREAK_END });
42081 this.$ = $$[$0 - 1];
42082 break;
42083 case 46:
42084 this.$ = $$[$0 - 3].concat([{ type: "option", optionText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.CRITICAL_OPTION }, $$[$0]]);
42085 break;
42086 case 48:
42087 this.$ = $$[$0 - 3].concat([{ type: "and", parText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.PAR_AND }, $$[$0]]);
42088 break;
42089 case 50:
42090 this.$ = $$[$0 - 3].concat([{ type: "else", altText: yy.parseMessage($$[$0 - 1]), signalType: yy.LINETYPE.ALT_ELSE }, $$[$0]]);
42091 break;
42092 case 51:
42093 $$[$0 - 3].type = "addParticipant";
42094 $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);
42095 this.$ = $$[$0 - 3];
42096 break;
42097 case 52:
42098 $$[$0 - 1].type = "addParticipant";
42099 this.$ = $$[$0 - 1];
42100 break;
42101 case 53:
42102 $$[$0 - 3].type = "addActor";
42103 $$[$0 - 3].description = yy.parseMessage($$[$0 - 1]);
42104 this.$ = $$[$0 - 3];
42105 break;
42106 case 54:
42107 $$[$0 - 1].type = "addActor";
42108 this.$ = $$[$0 - 1];
42109 break;
42110 case 55:
42111 this.$ = [$$[$0 - 1], { type: "addNote", placement: $$[$0 - 2], actor: $$[$0 - 1].actor, text: $$[$0] }];
42112 break;
42113 case 56:
42114 $$[$0 - 2] = [].concat($$[$0 - 1], $$[$0 - 1]).slice(0, 2);
42115 $$[$0 - 2][0] = $$[$0 - 2][0].actor;
42116 $$[$0 - 2][1] = $$[$0 - 2][1].actor;
42117 this.$ = [$$[$0 - 1], { type: "addNote", placement: yy.PLACEMENT.OVER, actor: $$[$0 - 2].slice(0, 2), text: $$[$0] }];
42118 break;
42119 case 57:
42120 this.$ = [$$[$0 - 1], { type: "addLinks", actor: $$[$0 - 1].actor, text: $$[$0] }];
42121 break;
42122 case 58:
42123 this.$ = [$$[$0 - 1], { type: "addALink", actor: $$[$0 - 1].actor, text: $$[$0] }];
42124 break;
42125 case 59:
42126 this.$ = [$$[$0 - 1], { type: "addProperties", actor: $$[$0 - 1].actor, text: $$[$0] }];
42127 break;
42128 case 60:
42129 this.$ = [$$[$0 - 1], { type: "addDetails", actor: $$[$0 - 1].actor, text: $$[$0] }];
42130 break;
42131 case 63:
42132 this.$ = [$$[$0 - 2], $$[$0]];
42133 break;
42134 case 64:
42135 this.$ = $$[$0];
42136 break;
42137 case 65:
42138 this.$ = yy.PLACEMENT.LEFTOF;
42139 break;
42140 case 66:
42141 this.$ = yy.PLACEMENT.RIGHTOF;
42142 break;
42143 case 67:
42144 this.$ = [
42145 $$[$0 - 4],
42146 $$[$0 - 1],
42147 { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] },
42148 { type: "activeStart", signalType: yy.LINETYPE.ACTIVE_START, actor: $$[$0 - 1] }
42149 ];
42150 break;
42151 case 68:
42152 this.$ = [
42153 $$[$0 - 4],
42154 $$[$0 - 1],
42155 { type: "addMessage", from: $$[$0 - 4].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 3], msg: $$[$0] },
42156 { type: "activeEnd", signalType: yy.LINETYPE.ACTIVE_END, actor: $$[$0 - 4] }
42157 ];
42158 break;
42159 case 69:
42160 this.$ = [$$[$0 - 3], $$[$0 - 1], { type: "addMessage", from: $$[$0 - 3].actor, to: $$[$0 - 1].actor, signalType: $$[$0 - 2], msg: $$[$0] }];
42161 break;
42162 case 70:
42163 this.$ = { type: "addParticipant", actor: $$[$0] };
42164 break;
42165 case 71:
42166 this.$ = yy.LINETYPE.SOLID_OPEN;
42167 break;
42168 case 72:
42169 this.$ = yy.LINETYPE.DOTTED_OPEN;
42170 break;
42171 case 73:
42172 this.$ = yy.LINETYPE.SOLID;
42173 break;
42174 case 74:
42175 this.$ = yy.LINETYPE.DOTTED;
42176 break;
42177 case 75:
42178 this.$ = yy.LINETYPE.SOLID_CROSS;
42179 break;
42180 case 76:
42181 this.$ = yy.LINETYPE.DOTTED_CROSS;
42182 break;
42183 case 77:
42184 this.$ = yy.LINETYPE.SOLID_POINT;
42185 break;
42186 case 78:
42187 this.$ = yy.LINETYPE.DOTTED_POINT;
42188 break;
42189 case 79:
42190 this.$ = yy.parseMessage($$[$0].trim().substring(1));
42191 break;
42192 case 80:
42193 yy.parseDirective("%%{", "open_directive");
42194 break;
42195 case 81:
42196 yy.parseDirective($$[$0], "type_directive");
42197 break;
42198 case 82:
42199 $$[$0] = $$[$0].trim().replace(/'/g, '"');
42200 yy.parseDirective($$[$0], "arg_directive");
42201 break;
42202 case 83:
42203 yy.parseDirective("}%%", "close_directive", "sequence");
42204 break;
42205 }
42206 },
42207 table: [{ 3: 1, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 84: $V3 }, { 1: [3] }, { 3: 8, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 84: $V3 }, { 3: 9, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 84: $V3 }, { 3: 10, 4: $V0, 5: $V1, 6: 4, 7: $V2, 14: 6, 84: $V3 }, o([1, 4, 5, 19, 23, 26, 28, 34, 35, 36, 38, 40, 41, 42, 43, 44, 46, 48, 49, 51, 55, 57, 58, 63, 64, 65, 66, 74, 84], $V4, { 8: 11 }), { 15: 12, 85: [1, 13] }, { 85: [2, 80] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 1: [2, 4], 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 16: 52, 17: [1, 53], 87: $Vw }, o([17, 87], [2, 81]), o($Vx, [2, 6]), { 6: 42, 10: 55, 13: 18, 14: 6, 19: $V7, 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, o($Vx, [2, 8]), o($Vx, [2, 9]), o($Vx, [2, 17]), { 20: [1, 56] }, { 5: [1, 57] }, { 5: [1, 60], 24: [1, 58], 25: [1, 59] }, { 27: 61, 74: $Vv }, { 27: 62, 74: $Vv }, { 5: [1, 63] }, { 5: [1, 64] }, { 5: [1, 65] }, { 5: [1, 66] }, { 5: [1, 67] }, o($Vx, [2, 31]), o($Vx, [2, 32]), { 37: [1, 68] }, { 39: [1, 69] }, o($Vx, [2, 35]), { 20: [1, 70] }, { 20: [1, 71] }, { 20: [1, 72] }, { 20: [1, 73] }, { 20: [1, 74] }, { 20: [1, 75] }, { 20: [1, 76] }, { 20: [1, 77] }, o($Vx, [2, 44]), { 27: 78, 74: $Vv }, { 27: 79, 74: $Vv }, { 71: 80, 75: [1, 81], 76: [1, 82], 77: [1, 83], 78: [1, 84], 79: [1, 85], 80: [1, 86], 81: [1, 87], 82: [1, 88] }, { 59: 89, 61: [1, 90], 69: [1, 91], 70: [1, 92] }, { 27: 93, 74: $Vv }, { 27: 94, 74: $Vv }, { 27: 95, 74: $Vv }, { 27: 96, 74: $Vv }, o([5, 56, 68, 75, 76, 77, 78, 79, 80, 81, 82, 83], [2, 70]), { 5: [1, 97] }, { 18: 98, 86: [1, 99] }, { 5: [2, 83] }, o($Vx, [2, 7]), o($Vy, [2, 10], { 11: 100 }), o($Vx, [2, 19]), { 5: [1, 102], 24: [1, 101] }, { 5: [1, 103] }, o($Vx, [2, 23]), { 5: [1, 104] }, { 5: [1, 105] }, o($Vx, [2, 26]), o($Vx, [2, 27]), o($Vx, [2, 28]), o($Vx, [2, 29]), o($Vx, [2, 30]), o($Vx, [2, 33]), o($Vx, [2, 34]), o($Vz, $V4, { 8: 106 }), o($Vz, $V4, { 8: 107 }), o($Vz, $V4, { 8: 108 }), o($VA, $V4, { 45: 109, 8: 110 }), o($VB, $V4, { 47: 111, 8: 112 }), o($VB, $V4, { 8: 112, 47: 113 }), o($VC, $V4, { 50: 114, 8: 115 }), o($Vz, $V4, { 8: 116 }), { 5: [1, 118], 56: [1, 117] }, { 5: [1, 120], 56: [1, 119] }, { 27: 123, 72: [1, 121], 73: [1, 122], 74: $Vv }, o($VD, [2, 71]), o($VD, [2, 72]), o($VD, [2, 73]), o($VD, [2, 74]), o($VD, [2, 75]), o($VD, [2, 76]), o($VD, [2, 77]), o($VD, [2, 78]), { 27: 124, 74: $Vv }, { 27: 126, 62: 125, 74: $Vv }, { 74: [2, 65] }, { 74: [2, 66] }, { 60: 127, 83: $VE }, { 60: 129, 83: $VE }, { 60: 130, 83: $VE }, { 60: 131, 83: $VE }, o($VF, [2, 15]), { 16: 132, 87: $Vw }, { 87: [2, 82] }, { 4: [1, 135], 5: [1, 137], 12: 134, 13: 136, 21: [1, 133], 55: $Vo, 57: $Vp }, { 5: [1, 138] }, o($Vx, [2, 21]), o($Vx, [2, 22]), o($Vx, [2, 24]), o($Vx, [2, 25]), { 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 139], 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 140], 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 141], 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 21: [1, 142] }, { 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 49], 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 54: [1, 143], 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 21: [1, 144] }, { 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 47], 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 53: [1, 145], 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 21: [1, 146] }, { 21: [1, 147] }, { 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [2, 45], 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 52: [1, 148], 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 4: $V5, 5: $V6, 6: 42, 9: 14, 10: 16, 13: 18, 14: 6, 19: $V7, 21: [1, 149], 22: 20, 23: $V8, 26: $V9, 27: 45, 28: $Va, 29: 24, 30: 25, 31: 26, 32: 27, 33: 28, 34: $Vb, 35: $Vc, 36: $Vd, 38: $Ve, 40: $Vf, 41: $Vg, 42: $Vh, 43: $Vi, 44: $Vj, 46: $Vk, 48: $Vl, 49: $Vm, 51: $Vn, 55: $Vo, 57: $Vp, 58: $Vq, 63: $Vr, 64: $Vs, 65: $Vt, 66: $Vu, 74: $Vv, 84: $V3 }, { 20: [1, 150] }, o($Vx, [2, 52]), { 20: [1, 151] }, o($Vx, [2, 54]), { 27: 152, 74: $Vv }, { 27: 153, 74: $Vv }, { 60: 154, 83: $VE }, { 60: 155, 83: $VE }, { 60: 156, 83: $VE }, { 68: [1, 157], 83: [2, 64] }, { 5: [2, 57] }, { 5: [2, 79] }, { 5: [2, 58] }, { 5: [2, 59] }, { 5: [2, 60] }, { 5: [1, 158] }, o($Vx, [2, 18]), o($Vy, [2, 11]), { 13: 159, 55: $Vo, 57: $Vp }, o($Vy, [2, 13]), o($Vy, [2, 14]), o($Vx, [2, 20]), o($Vx, [2, 36]), o($Vx, [2, 37]), o($Vx, [2, 38]), o($Vx, [2, 39]), { 20: [1, 160] }, o($Vx, [2, 40]), { 20: [1, 161] }, o($Vx, [2, 41]), o($Vx, [2, 42]), { 20: [1, 162] }, o($Vx, [2, 43]), { 5: [1, 163] }, { 5: [1, 164] }, { 60: 165, 83: $VE }, { 60: 166, 83: $VE }, { 5: [2, 69] }, { 5: [2, 55] }, { 5: [2, 56] }, { 27: 167, 74: $Vv }, o($VF, [2, 16]), o($Vy, [2, 12]), o($VA, $V4, { 8: 110, 45: 168 }), o($VB, $V4, { 8: 112, 47: 169 }), o($VC, $V4, { 8: 115, 50: 170 }), o($Vx, [2, 51]), o($Vx, [2, 53]), { 5: [2, 67] }, { 5: [2, 68] }, { 83: [2, 63] }, { 21: [2, 50] }, { 21: [2, 48] }, { 21: [2, 46] }],
42208 defaultActions: { 7: [2, 80], 8: [2, 1], 9: [2, 2], 10: [2, 3], 54: [2, 83], 91: [2, 65], 92: [2, 66], 99: [2, 82], 127: [2, 57], 128: [2, 79], 129: [2, 58], 130: [2, 59], 131: [2, 60], 154: [2, 69], 155: [2, 55], 156: [2, 56], 165: [2, 67], 166: [2, 68], 167: [2, 63], 168: [2, 50], 169: [2, 48], 170: [2, 46] },
42209 parseError: function parseError2(str2, hash) {
42210 if (hash.recoverable) {
42211 this.trace(str2);
42212 } else {
42213 var error = new Error(str2);
42214 error.hash = hash;
42215 throw error;
42216 }
42217 },
42218 parse: function parse2(input) {
42219 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
42220 var args = lstack.slice.call(arguments, 1);
42221 var lexer2 = Object.create(this.lexer);
42222 var sharedState = { yy: {} };
42223 for (var k in this.yy) {
42224 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
42225 sharedState.yy[k] = this.yy[k];
42226 }
42227 }
42228 lexer2.setInput(input, sharedState.yy);
42229 sharedState.yy.lexer = lexer2;
42230 sharedState.yy.parser = this;
42231 if (typeof lexer2.yylloc == "undefined") {
42232 lexer2.yylloc = {};
42233 }
42234 var yyloc = lexer2.yylloc;
42235 lstack.push(yyloc);
42236 var ranges = lexer2.options && lexer2.options.ranges;
42237 if (typeof sharedState.yy.parseError === "function") {
42238 this.parseError = sharedState.yy.parseError;
42239 } else {
42240 this.parseError = Object.getPrototypeOf(this).parseError;
42241 }
42242 function lex2() {
42243 var token2;
42244 token2 = tstack.pop() || lexer2.lex() || EOF;
42245 if (typeof token2 !== "number") {
42246 if (token2 instanceof Array) {
42247 tstack = token2;
42248 token2 = tstack.pop();
42249 }
42250 token2 = self2.symbols_[token2] || token2;
42251 }
42252 return token2;
42253 }
42254 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
42255 while (true) {
42256 state2 = stack[stack.length - 1];
42257 if (this.defaultActions[state2]) {
42258 action = this.defaultActions[state2];
42259 } else {
42260 if (symbol === null || typeof symbol == "undefined") {
42261 symbol = lex2();
42262 }
42263 action = table[state2] && table[state2][symbol];
42264 }
42265 if (typeof action === "undefined" || !action.length || !action[0]) {
42266 var errStr = "";
42267 expected = [];
42268 for (p in table[state2]) {
42269 if (this.terminals_[p] && p > TERROR) {
42270 expected.push("'" + this.terminals_[p] + "'");
42271 }
42272 }
42273 if (lexer2.showPosition) {
42274 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
42275 } else {
42276 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
42277 }
42278 this.parseError(errStr, {
42279 text: lexer2.match,
42280 token: this.terminals_[symbol] || symbol,
42281 line: lexer2.yylineno,
42282 loc: yyloc,
42283 expected
42284 });
42285 }
42286 if (action[0] instanceof Array && action.length > 1) {
42287 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
42288 }
42289 switch (action[0]) {
42290 case 1:
42291 stack.push(symbol);
42292 vstack.push(lexer2.yytext);
42293 lstack.push(lexer2.yylloc);
42294 stack.push(action[1]);
42295 symbol = null;
42296 {
42297 yyleng = lexer2.yyleng;
42298 yytext = lexer2.yytext;
42299 yylineno = lexer2.yylineno;
42300 yyloc = lexer2.yylloc;
42301 }
42302 break;
42303 case 2:
42304 len = this.productions_[action[1]][1];
42305 yyval.$ = vstack[vstack.length - len];
42306 yyval._$ = {
42307 first_line: lstack[lstack.length - (len || 1)].first_line,
42308 last_line: lstack[lstack.length - 1].last_line,
42309 first_column: lstack[lstack.length - (len || 1)].first_column,
42310 last_column: lstack[lstack.length - 1].last_column
42311 };
42312 if (ranges) {
42313 yyval._$.range = [
42314 lstack[lstack.length - (len || 1)].range[0],
42315 lstack[lstack.length - 1].range[1]
42316 ];
42317 }
42318 r = this.performAction.apply(yyval, [
42319 yytext,
42320 yyleng,
42321 yylineno,
42322 sharedState.yy,
42323 action[1],
42324 vstack,
42325 lstack
42326 ].concat(args));
42327 if (typeof r !== "undefined") {
42328 return r;
42329 }
42330 if (len) {
42331 stack = stack.slice(0, -1 * len * 2);
42332 vstack = vstack.slice(0, -1 * len);
42333 lstack = lstack.slice(0, -1 * len);
42334 }
42335 stack.push(this.productions_[action[1]][0]);
42336 vstack.push(yyval.$);
42337 lstack.push(yyval._$);
42338 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
42339 stack.push(newState);
42340 break;
42341 case 3:
42342 return true;
42343 }
42344 }
42345 return true;
42346 }
42347 };
42348 var lexer = function() {
42349 var lexer2 = {
42350 EOF: 1,
42351 parseError: function parseError2(str2, hash) {
42352 if (this.yy.parser) {
42353 this.yy.parser.parseError(str2, hash);
42354 } else {
42355 throw new Error(str2);
42356 }
42357 },
42358 // resets the lexer, sets new input
42359 setInput: function(input, yy) {
42360 this.yy = yy || this.yy || {};
42361 this._input = input;
42362 this._more = this._backtrack = this.done = false;
42363 this.yylineno = this.yyleng = 0;
42364 this.yytext = this.matched = this.match = "";
42365 this.conditionStack = ["INITIAL"];
42366 this.yylloc = {
42367 first_line: 1,
42368 first_column: 0,
42369 last_line: 1,
42370 last_column: 0
42371 };
42372 if (this.options.ranges) {
42373 this.yylloc.range = [0, 0];
42374 }
42375 this.offset = 0;
42376 return this;
42377 },
42378 // consumes and returns one char from the input
42379 input: function() {
42380 var ch = this._input[0];
42381 this.yytext += ch;
42382 this.yyleng++;
42383 this.offset++;
42384 this.match += ch;
42385 this.matched += ch;
42386 var lines = ch.match(/(?:\r\n?|\n).*/g);
42387 if (lines) {
42388 this.yylineno++;
42389 this.yylloc.last_line++;
42390 } else {
42391 this.yylloc.last_column++;
42392 }
42393 if (this.options.ranges) {
42394 this.yylloc.range[1]++;
42395 }
42396 this._input = this._input.slice(1);
42397 return ch;
42398 },
42399 // unshifts one char (or a string) into the input
42400 unput: function(ch) {
42401 var len = ch.length;
42402 var lines = ch.split(/(?:\r\n?|\n)/g);
42403 this._input = ch + this._input;
42404 this.yytext = this.yytext.substr(0, this.yytext.length - len);
42405 this.offset -= len;
42406 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
42407 this.match = this.match.substr(0, this.match.length - 1);
42408 this.matched = this.matched.substr(0, this.matched.length - 1);
42409 if (lines.length - 1) {
42410 this.yylineno -= lines.length - 1;
42411 }
42412 var r = this.yylloc.range;
42413 this.yylloc = {
42414 first_line: this.yylloc.first_line,
42415 last_line: this.yylineno + 1,
42416 first_column: this.yylloc.first_column,
42417 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
42418 };
42419 if (this.options.ranges) {
42420 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
42421 }
42422 this.yyleng = this.yytext.length;
42423 return this;
42424 },
42425 // When called from action, caches matched text and appends it on next action
42426 more: function() {
42427 this._more = true;
42428 return this;
42429 },
42430 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
42431 reject: function() {
42432 if (this.options.backtrack_lexer) {
42433 this._backtrack = true;
42434 } else {
42435 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
42436 text: "",
42437 token: null,
42438 line: this.yylineno
42439 });
42440 }
42441 return this;
42442 },
42443 // retain first n characters of the match
42444 less: function(n) {
42445 this.unput(this.match.slice(n));
42446 },
42447 // displays already matched input, i.e. for error messages
42448 pastInput: function() {
42449 var past = this.matched.substr(0, this.matched.length - this.match.length);
42450 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
42451 },
42452 // displays upcoming input, i.e. for error messages
42453 upcomingInput: function() {
42454 var next2 = this.match;
42455 if (next2.length < 20) {
42456 next2 += this._input.substr(0, 20 - next2.length);
42457 }
42458 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
42459 },
42460 // displays the character position where the lexing error occurred, i.e. for error messages
42461 showPosition: function() {
42462 var pre = this.pastInput();
42463 var c2 = new Array(pre.length + 1).join("-");
42464 return pre + this.upcomingInput() + "\n" + c2 + "^";
42465 },
42466 // test the lexed token: return FALSE when not a match, otherwise return token
42467 test_match: function(match, indexed_rule) {
42468 var token2, lines, backup;
42469 if (this.options.backtrack_lexer) {
42470 backup = {
42471 yylineno: this.yylineno,
42472 yylloc: {
42473 first_line: this.yylloc.first_line,
42474 last_line: this.last_line,
42475 first_column: this.yylloc.first_column,
42476 last_column: this.yylloc.last_column
42477 },
42478 yytext: this.yytext,
42479 match: this.match,
42480 matches: this.matches,
42481 matched: this.matched,
42482 yyleng: this.yyleng,
42483 offset: this.offset,
42484 _more: this._more,
42485 _input: this._input,
42486 yy: this.yy,
42487 conditionStack: this.conditionStack.slice(0),
42488 done: this.done
42489 };
42490 if (this.options.ranges) {
42491 backup.yylloc.range = this.yylloc.range.slice(0);
42492 }
42493 }
42494 lines = match[0].match(/(?:\r\n?|\n).*/g);
42495 if (lines) {
42496 this.yylineno += lines.length;
42497 }
42498 this.yylloc = {
42499 first_line: this.yylloc.last_line,
42500 last_line: this.yylineno + 1,
42501 first_column: this.yylloc.last_column,
42502 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
42503 };
42504 this.yytext += match[0];
42505 this.match += match[0];
42506 this.matches = match;
42507 this.yyleng = this.yytext.length;
42508 if (this.options.ranges) {
42509 this.yylloc.range = [this.offset, this.offset += this.yyleng];
42510 }
42511 this._more = false;
42512 this._backtrack = false;
42513 this._input = this._input.slice(match[0].length);
42514 this.matched += match[0];
42515 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
42516 if (this.done && this._input) {
42517 this.done = false;
42518 }
42519 if (token2) {
42520 return token2;
42521 } else if (this._backtrack) {
42522 for (var k in backup) {
42523 this[k] = backup[k];
42524 }
42525 return false;
42526 }
42527 return false;
42528 },
42529 // return next match in input
42530 next: function() {
42531 if (this.done) {
42532 return this.EOF;
42533 }
42534 if (!this._input) {
42535 this.done = true;
42536 }
42537 var token2, match, tempMatch, index2;
42538 if (!this._more) {
42539 this.yytext = "";
42540 this.match = "";
42541 }
42542 var rules = this._currentRules();
42543 for (var i2 = 0; i2 < rules.length; i2++) {
42544 tempMatch = this._input.match(this.rules[rules[i2]]);
42545 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
42546 match = tempMatch;
42547 index2 = i2;
42548 if (this.options.backtrack_lexer) {
42549 token2 = this.test_match(tempMatch, rules[i2]);
42550 if (token2 !== false) {
42551 return token2;
42552 } else if (this._backtrack) {
42553 match = false;
42554 continue;
42555 } else {
42556 return false;
42557 }
42558 } else if (!this.options.flex) {
42559 break;
42560 }
42561 }
42562 }
42563 if (match) {
42564 token2 = this.test_match(match, rules[index2]);
42565 if (token2 !== false) {
42566 return token2;
42567 }
42568 return false;
42569 }
42570 if (this._input === "") {
42571 return this.EOF;
42572 } else {
42573 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
42574 text: "",
42575 token: null,
42576 line: this.yylineno
42577 });
42578 }
42579 },
42580 // return next match that has a token
42581 lex: function lex2() {
42582 var r = this.next();
42583 if (r) {
42584 return r;
42585 } else {
42586 return this.lex();
42587 }
42588 },
42589 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
42590 begin: function begin(condition) {
42591 this.conditionStack.push(condition);
42592 },
42593 // pop the previously active lexer condition state off the condition stack
42594 popState: function popState() {
42595 var n = this.conditionStack.length - 1;
42596 if (n > 0) {
42597 return this.conditionStack.pop();
42598 } else {
42599 return this.conditionStack[0];
42600 }
42601 },
42602 // produce the lexer rule set which is active for the currently active lexer condition state
42603 _currentRules: function _currentRules() {
42604 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
42605 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
42606 } else {
42607 return this.conditions["INITIAL"].rules;
42608 }
42609 },
42610 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
42611 topState: function topState(n) {
42612 n = this.conditionStack.length - 1 - Math.abs(n || 0);
42613 if (n >= 0) {
42614 return this.conditionStack[n];
42615 } else {
42616 return "INITIAL";
42617 }
42618 },
42619 // alias for begin(condition)
42620 pushState: function pushState(condition) {
42621 this.begin(condition);
42622 },
42623 // return the number of states currently on the stack
42624 stateStackSize: function stateStackSize() {
42625 return this.conditionStack.length;
42626 },
42627 options: { "case-insensitive": true },
42628 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
42629 switch ($avoiding_name_collisions) {
42630 case 0:
42631 this.begin("open_directive");
42632 return 84;
42633 case 1:
42634 this.begin("type_directive");
42635 return 85;
42636 case 2:
42637 this.popState();
42638 this.begin("arg_directive");
42639 return 17;
42640 case 3:
42641 this.popState();
42642 this.popState();
42643 return 87;
42644 case 4:
42645 return 86;
42646 case 5:
42647 return 5;
42648 case 6:
42649 break;
42650 case 7:
42651 break;
42652 case 8:
42653 break;
42654 case 9:
42655 break;
42656 case 10:
42657 break;
42658 case 11:
42659 return 24;
42660 case 12:
42661 this.begin("LINE");
42662 return 19;
42663 case 13:
42664 this.begin("ID");
42665 return 55;
42666 case 14:
42667 this.begin("ID");
42668 return 57;
42669 case 15:
42670 yy_.yytext = yy_.yytext.trim();
42671 this.begin("ALIAS");
42672 return 74;
42673 case 16:
42674 this.popState();
42675 this.popState();
42676 this.begin("LINE");
42677 return 56;
42678 case 17:
42679 this.popState();
42680 this.popState();
42681 return 5;
42682 case 18:
42683 this.begin("LINE");
42684 return 41;
42685 case 19:
42686 this.begin("LINE");
42687 return 42;
42688 case 20:
42689 this.begin("LINE");
42690 return 43;
42691 case 21:
42692 this.begin("LINE");
42693 return 44;
42694 case 22:
42695 this.begin("LINE");
42696 return 54;
42697 case 23:
42698 this.begin("LINE");
42699 return 46;
42700 case 24:
42701 this.begin("LINE");
42702 return 48;
42703 case 25:
42704 this.begin("LINE");
42705 return 53;
42706 case 26:
42707 this.begin("LINE");
42708 return 49;
42709 case 27:
42710 this.begin("LINE");
42711 return 52;
42712 case 28:
42713 this.begin("LINE");
42714 return 51;
42715 case 29:
42716 this.popState();
42717 return 20;
42718 case 30:
42719 return 21;
42720 case 31:
42721 return 69;
42722 case 32:
42723 return 70;
42724 case 33:
42725 return 63;
42726 case 34:
42727 return 64;
42728 case 35:
42729 return 65;
42730 case 36:
42731 return 66;
42732 case 37:
42733 return 61;
42734 case 38:
42735 return 58;
42736 case 39:
42737 this.begin("ID");
42738 return 26;
42739 case 40:
42740 this.begin("ID");
42741 return 28;
42742 case 41:
42743 return 34;
42744 case 42:
42745 return 35;
42746 case 43:
42747 this.begin("acc_title");
42748 return 36;
42749 case 44:
42750 this.popState();
42751 return "acc_title_value";
42752 case 45:
42753 this.begin("acc_descr");
42754 return 38;
42755 case 46:
42756 this.popState();
42757 return "acc_descr_value";
42758 case 47:
42759 this.begin("acc_descr_multiline");
42760 break;
42761 case 48:
42762 this.popState();
42763 break;
42764 case 49:
42765 return "acc_descr_multiline_value";
42766 case 50:
42767 return 7;
42768 case 51:
42769 return 23;
42770 case 52:
42771 return 25;
42772 case 53:
42773 return 68;
42774 case 54:
42775 return 5;
42776 case 55:
42777 yy_.yytext = yy_.yytext.trim();
42778 return 74;
42779 case 56:
42780 return 77;
42781 case 57:
42782 return 78;
42783 case 58:
42784 return 75;
42785 case 59:
42786 return 76;
42787 case 60:
42788 return 79;
42789 case 61:
42790 return 80;
42791 case 62:
42792 return 81;
42793 case 63:
42794 return 82;
42795 case 64:
42796 return 83;
42797 case 65:
42798 return 72;
42799 case 66:
42800 return 73;
42801 case 67:
42802 return 5;
42803 case 68:
42804 return "INVALID";
42805 }
42806 },
42807 rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[0-9]+(?=[ \n]+))/i, /^(?:box\b)/i, /^(?:participant\b)/i, /^(?:actor\b)/i, /^(?:[^\->:\n,;]+?([\-]*[^\->:\n,;]+?)*?(?=((?!\n)\s)+as(?!\n)\s|[#\n;]|$))/i, /^(?:as\b)/i, /^(?:(?:))/i, /^(?:loop\b)/i, /^(?:rect\b)/i, /^(?:opt\b)/i, /^(?:alt\b)/i, /^(?:else\b)/i, /^(?:par\b)/i, /^(?:par_over\b)/i, /^(?:and\b)/i, /^(?:critical\b)/i, /^(?:option\b)/i, /^(?:break\b)/i, /^(?:(?:[:]?(?:no)?wrap)?[^#\n;]*)/i, /^(?:end\b)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:links\b)/i, /^(?:link\b)/i, /^(?:properties\b)/i, /^(?:details\b)/i, /^(?:over\b)/i, /^(?:note\b)/i, /^(?:activate\b)/i, /^(?:deactivate\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:title:\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:sequenceDiagram\b)/i, /^(?:autonumber\b)/i, /^(?:off\b)/i, /^(?:,)/i, /^(?:;)/i, /^(?:[^\+\->:\n,;]+((?!(-x|--x|-\)|--\)))[\-]*[^\+\->:\n,;]+)*)/i, /^(?:->>)/i, /^(?:-->>)/i, /^(?:->)/i, /^(?:-->)/i, /^(?:-[x])/i, /^(?:--[x])/i, /^(?:-[\)])/i, /^(?:--[\)])/i, /^(?::(?:(?:no)?wrap)?[^#\n;]+)/i, /^(?:\+)/i, /^(?:-)/i, /^(?:$)/i, /^(?:.)/i],
42808 conditions: { "acc_descr_multiline": { "rules": [48, 49], "inclusive": false }, "acc_descr": { "rules": [46], "inclusive": false }, "acc_title": { "rules": [44], "inclusive": false }, "open_directive": { "rules": [1, 8], "inclusive": false }, "type_directive": { "rules": [2, 3, 8], "inclusive": false }, "arg_directive": { "rules": [3, 4, 8], "inclusive": false }, "ID": { "rules": [7, 8, 15], "inclusive": false }, "ALIAS": { "rules": [7, 8, 16, 17], "inclusive": false }, "LINE": { "rules": [7, 8, 29], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 8, 9, 10, 11, 12, 13, 14, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 47, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68], "inclusive": true } }
42809 };
42810 return lexer2;
42811 }();
42812 parser2.lexer = lexer;
42813 function Parser() {
42814 this.yy = {};
42815 }
42816 Parser.prototype = parser2;
42817 parser2.Parser = Parser;
42818 return new Parser();
42819 }();
42820 parser$9.parser = parser$9;
42821 const parser$a = parser$9;
42822 let prevActor = void 0;
42823 let actors$1 = {};
42824 let boxes = [];
42825 let messages = [];
42826 let sequenceNumbersEnabled = false;
42827 let wrapEnabled;
42828 let currentBox = void 0;
42829 const parseDirective$4 = function(statement, context, type2) {
42830 mermaidAPI.parseDirective(this, statement, context, type2);
42831 };
42832 const addBox = function(data) {
42833 boxes.push({
42834 name: data.text,
42835 wrap: data.wrap === void 0 && autoWrap() || !!data.wrap,
42836 fill: data.color,
42837 actorKeys: []
42838 });
42839 currentBox = boxes.slice(-1)[0];
42840 };
42841 const addActor = function(id2, name2, description2, type2) {
42842 let assignedBox = currentBox;
42843 const old = actors$1[id2];
42844 if (old) {
42845 if (currentBox && old.box && currentBox !== old.box) {
42846 throw new Error(
42847 "A same participant should only be defined in one Box: " + old.name + " can't be in '" + old.box.name + "' and in '" + currentBox.name + "' at the same time."
42848 );
42849 }
42850 assignedBox = old.box ? old.box : currentBox;
42851 old.box = assignedBox;
42852 if (old && name2 === old.name && description2 == null) {
42853 return;
42854 }
42855 }
42856 if (description2 == null || description2.text == null) {
42857 description2 = { text: name2, wrap: null, type: type2 };
42858 }
42859 if (type2 == null || description2.text == null) {
42860 description2 = { text: name2, wrap: null, type: type2 };
42861 }
42862 actors$1[id2] = {
42863 box: assignedBox,
42864 name: name2,
42865 description: description2.text,
42866 wrap: description2.wrap === void 0 && autoWrap() || !!description2.wrap,
42867 prevActor,
42868 links: {},
42869 properties: {},
42870 actorCnt: null,
42871 rectData: null,
42872 type: type2 || "participant"
42873 };
42874 if (prevActor && actors$1[prevActor]) {
42875 actors$1[prevActor].nextActor = id2;
42876 }
42877 if (currentBox) {
42878 currentBox.actorKeys.push(id2);
42879 }
42880 prevActor = id2;
42881 };
42882 const activationCount = (part) => {
42883 let i2;
42884 let count = 0;
42885 for (i2 = 0; i2 < messages.length; i2++) {
42886 if (messages[i2].type === LINETYPE.ACTIVE_START && messages[i2].from.actor === part) {
42887 count++;
42888 }
42889 if (messages[i2].type === LINETYPE.ACTIVE_END && messages[i2].from.actor === part) {
42890 count--;
42891 }
42892 }
42893 return count;
42894 };
42895 const addMessage = function(idFrom, idTo, message2, answer) {
42896 messages.push({
42897 from: idFrom,
42898 to: idTo,
42899 message: message2.text,
42900 wrap: message2.wrap === void 0 && autoWrap() || !!message2.wrap,
42901 answer
42902 });
42903 };
42904 const addSignal = function(idFrom, idTo, message2 = { text: void 0, wrap: void 0 }, messageType) {
42905 if (messageType === LINETYPE.ACTIVE_END) {
42906 const cnt2 = activationCount(idFrom.actor);
42907 if (cnt2 < 1) {
42908 let error = new Error("Trying to inactivate an inactive participant (" + idFrom.actor + ")");
42909 error.hash = {
42910 text: "->>-",
42911 token: "->>-",
42912 line: "1",
42913 loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
42914 expected: ["'ACTIVE_PARTICIPANT'"]
42915 };
42916 throw error;
42917 }
42918 }
42919 messages.push({
42920 from: idFrom,
42921 to: idTo,
42922 message: message2.text,
42923 wrap: message2.wrap === void 0 && autoWrap() || !!message2.wrap,
42924 type: messageType
42925 });
42926 return true;
42927 };
42928 const hasAtLeastOneBox = function() {
42929 return boxes.length > 0;
42930 };
42931 const hasAtLeastOneBoxWithTitle = function() {
42932 return boxes.some((b) => b.name);
42933 };
42934 const getMessages = function() {
42935 return messages;
42936 };
42937 const getBoxes = function() {
42938 return boxes;
42939 };
42940 const getActors$1 = function() {
42941 return actors$1;
42942 };
42943 const getActor = function(id2) {
42944 return actors$1[id2];
42945 };
42946 const getActorKeys = function() {
42947 return Object.keys(actors$1);
42948 };
42949 const enableSequenceNumbers = function() {
42950 sequenceNumbersEnabled = true;
42951 };
42952 const disableSequenceNumbers = function() {
42953 sequenceNumbersEnabled = false;
42954 };
42955 const showSequenceNumbers = () => sequenceNumbersEnabled;
42956 const setWrap = function(wrapSetting) {
42957 wrapEnabled = wrapSetting;
42958 };
42959 const autoWrap = () => {
42960 if (wrapEnabled !== void 0) {
42961 return wrapEnabled;
42962 }
42963 return getConfig$1().sequence.wrap;
42964 };
42965 const clear$5 = function() {
42966 actors$1 = {};
42967 boxes = [];
42968 messages = [];
42969 sequenceNumbersEnabled = false;
42970 clear$j();
42971 };
42972 const parseMessage = function(str2) {
42973 const _str = str2.trim();
42974 const message2 = {
42975 text: _str.replace(/^:?(?:no)?wrap:/, "").trim(),
42976 wrap: _str.match(/^:?wrap:/) !== null ? true : _str.match(/^:?nowrap:/) !== null ? false : void 0
42977 };
42978 log$1.debug("parseMessage:", message2);
42979 return message2;
42980 };
42981 const parseBoxData = function(str2) {
42982 const match = str2.match(/^((?:rgba?|hsla?)\s*\(.*\)|\w*)(.*)$/);
42983 let color2 = match != null && match[1] ? match[1].trim() : "transparent";
42984 let title2 = match != null && match[2] ? match[2].trim() : void 0;
42985 if (window && window.CSS) {
42986 if (!window.CSS.supports("color", color2)) {
42987 color2 = "transparent";
42988 title2 = str2.trim();
42989 }
42990 } else {
42991 const style = new Option().style;
42992 style.color = color2;
42993 if (style.color !== color2) {
42994 color2 = "transparent";
42995 title2 = str2.trim();
42996 }
42997 }
42998 const boxData = {
42999 color: color2,
43000 text: title2 !== void 0 ? sanitizeText$6(title2.replace(/^:?(?:no)?wrap:/, ""), getConfig$1()) : void 0,
43001 wrap: title2 !== void 0 ? title2.match(/^:?wrap:/) !== null ? true : title2.match(/^:?nowrap:/) !== null ? false : void 0 : void 0
43002 };
43003 return boxData;
43004 };
43005 const LINETYPE = {
43006 SOLID: 0,
43007 DOTTED: 1,
43008 NOTE: 2,
43009 SOLID_CROSS: 3,
43010 DOTTED_CROSS: 4,
43011 SOLID_OPEN: 5,
43012 DOTTED_OPEN: 6,
43013 LOOP_START: 10,
43014 LOOP_END: 11,
43015 ALT_START: 12,
43016 ALT_ELSE: 13,
43017 ALT_END: 14,
43018 OPT_START: 15,
43019 OPT_END: 16,
43020 ACTIVE_START: 17,
43021 ACTIVE_END: 18,
43022 PAR_START: 19,
43023 PAR_AND: 20,
43024 PAR_END: 21,
43025 RECT_START: 22,
43026 RECT_END: 23,
43027 SOLID_POINT: 24,
43028 DOTTED_POINT: 25,
43029 AUTONUMBER: 26,
43030 CRITICAL_START: 27,
43031 CRITICAL_OPTION: 28,
43032 CRITICAL_END: 29,
43033 BREAK_START: 30,
43034 BREAK_END: 31,
43035 PAR_OVER_START: 32
43036 };
43037 const ARROWTYPE = {
43038 FILLED: 0,
43039 OPEN: 1
43040 };
43041 const PLACEMENT = {
43042 LEFTOF: 0,
43043 RIGHTOF: 1,
43044 OVER: 2
43045 };
43046 const addNote$1 = function(actor, placement, message2) {
43047 ({
43048 actor,
43049 placement,
43050 message: message2.text,
43051 wrap: message2.wrap === void 0 && autoWrap() || !!message2.wrap
43052 });
43053 const actors2 = [].concat(actor, actor);
43054 messages.push({
43055 from: actors2[0],
43056 to: actors2[1],
43057 message: message2.text,
43058 wrap: message2.wrap === void 0 && autoWrap() || !!message2.wrap,
43059 type: LINETYPE.NOTE,
43060 placement
43061 });
43062 };
43063 const addLinks = function(actorId, text2) {
43064 const actor = getActor(actorId);
43065 try {
43066 let sanitizedText = sanitizeText$6(text2.text, getConfig$1());
43067 sanitizedText = sanitizedText.replace(/&amp;/g, "&");
43068 sanitizedText = sanitizedText.replace(/&equals;/g, "=");
43069 const links2 = JSON.parse(sanitizedText);
43070 insertLinks(actor, links2);
43071 } catch (e) {
43072 log$1.error("error while parsing actor link text", e);
43073 }
43074 };
43075 const addALink = function(actorId, text2) {
43076 const actor = getActor(actorId);
43077 try {
43078 const links2 = {};
43079 let sanitizedText = sanitizeText$6(text2.text, getConfig$1());
43080 var sep2 = sanitizedText.indexOf("@");
43081 sanitizedText = sanitizedText.replace(/&amp;/g, "&");
43082 sanitizedText = sanitizedText.replace(/&equals;/g, "=");
43083 var label = sanitizedText.slice(0, sep2 - 1).trim();
43084 var link = sanitizedText.slice(sep2 + 1).trim();
43085 links2[label] = link;
43086 insertLinks(actor, links2);
43087 } catch (e) {
43088 log$1.error("error while parsing actor link text", e);
43089 }
43090 };
43091 function insertLinks(actor, links2) {
43092 if (actor.links == null) {
43093 actor.links = links2;
43094 } else {
43095 for (let key in links2) {
43096 actor.links[key] = links2[key];
43097 }
43098 }
43099 }
43100 const addProperties = function(actorId, text2) {
43101 const actor = getActor(actorId);
43102 try {
43103 let sanitizedText = sanitizeText$6(text2.text, getConfig$1());
43104 const properties = JSON.parse(sanitizedText);
43105 insertProperties(actor, properties);
43106 } catch (e) {
43107 log$1.error("error while parsing actor properties text", e);
43108 }
43109 };
43110 function insertProperties(actor, properties) {
43111 if (actor.properties == null) {
43112 actor.properties = properties;
43113 } else {
43114 for (let key in properties) {
43115 actor.properties[key] = properties[key];
43116 }
43117 }
43118 }
43119 function boxEnd() {
43120 currentBox = void 0;
43121 }
43122 const addDetails = function(actorId, text2) {
43123 const actor = getActor(actorId);
43124 const elem = document.getElementById(text2.text);
43125 try {
43126 const text3 = elem.innerHTML;
43127 const details = JSON.parse(text3);
43128 if (details["properties"]) {
43129 insertProperties(actor, details["properties"]);
43130 }
43131 if (details["links"]) {
43132 insertLinks(actor, details["links"]);
43133 }
43134 } catch (e) {
43135 log$1.error("error while parsing actor details text", e);
43136 }
43137 };
43138 const getActorProperty = function(actor, key) {
43139 if (actor !== void 0 && actor.properties !== void 0) {
43140 return actor.properties[key];
43141 }
43142 return void 0;
43143 };
43144 const apply = function(param) {
43145 if (Array.isArray(param)) {
43146 param.forEach(function(item) {
43147 apply(item);
43148 });
43149 } else {
43150 switch (param.type) {
43151 case "sequenceIndex":
43152 messages.push({
43153 from: void 0,
43154 to: void 0,
43155 message: {
43156 start: param.sequenceIndex,
43157 step: param.sequenceIndexStep,
43158 visible: param.sequenceVisible
43159 },
43160 wrap: false,
43161 type: param.signalType
43162 });
43163 break;
43164 case "addParticipant":
43165 addActor(param.actor, param.actor, param.description, "participant");
43166 break;
43167 case "addActor":
43168 addActor(param.actor, param.actor, param.description, "actor");
43169 break;
43170 case "activeStart":
43171 addSignal(param.actor, void 0, void 0, param.signalType);
43172 break;
43173 case "activeEnd":
43174 addSignal(param.actor, void 0, void 0, param.signalType);
43175 break;
43176 case "addNote":
43177 addNote$1(param.actor, param.placement, param.text);
43178 break;
43179 case "addLinks":
43180 addLinks(param.actor, param.text);
43181 break;
43182 case "addALink":
43183 addALink(param.actor, param.text);
43184 break;
43185 case "addProperties":
43186 addProperties(param.actor, param.text);
43187 break;
43188 case "addDetails":
43189 addDetails(param.actor, param.text);
43190 break;
43191 case "addMessage":
43192 addSignal(param.from, param.to, param.msg, param.signalType);
43193 break;
43194 case "boxStart":
43195 addBox(param.boxData);
43196 break;
43197 case "boxEnd":
43198 boxEnd();
43199 break;
43200 case "loopStart":
43201 addSignal(void 0, void 0, param.loopText, param.signalType);
43202 break;
43203 case "loopEnd":
43204 addSignal(void 0, void 0, void 0, param.signalType);
43205 break;
43206 case "rectStart":
43207 addSignal(void 0, void 0, param.color, param.signalType);
43208 break;
43209 case "rectEnd":
43210 addSignal(void 0, void 0, void 0, param.signalType);
43211 break;
43212 case "optStart":
43213 addSignal(void 0, void 0, param.optText, param.signalType);
43214 break;
43215 case "optEnd":
43216 addSignal(void 0, void 0, void 0, param.signalType);
43217 break;
43218 case "altStart":
43219 addSignal(void 0, void 0, param.altText, param.signalType);
43220 break;
43221 case "else":
43222 addSignal(void 0, void 0, param.altText, param.signalType);
43223 break;
43224 case "altEnd":
43225 addSignal(void 0, void 0, void 0, param.signalType);
43226 break;
43227 case "setAccTitle":
43228 setAccTitle(param.text);
43229 break;
43230 case "parStart":
43231 addSignal(void 0, void 0, param.parText, param.signalType);
43232 break;
43233 case "and":
43234 addSignal(void 0, void 0, param.parText, param.signalType);
43235 break;
43236 case "parEnd":
43237 addSignal(void 0, void 0, void 0, param.signalType);
43238 break;
43239 case "criticalStart":
43240 addSignal(void 0, void 0, param.criticalText, param.signalType);
43241 break;
43242 case "option":
43243 addSignal(void 0, void 0, param.optionText, param.signalType);
43244 break;
43245 case "criticalEnd":
43246 addSignal(void 0, void 0, void 0, param.signalType);
43247 break;
43248 case "breakStart":
43249 addSignal(void 0, void 0, param.breakText, param.signalType);
43250 break;
43251 case "breakEnd":
43252 addSignal(void 0, void 0, void 0, param.signalType);
43253 break;
43254 }
43255 }
43256 };
43257 const db$4 = {
43258 addActor,
43259 addMessage,
43260 addSignal,
43261 addLinks,
43262 addDetails,
43263 addProperties,
43264 autoWrap,
43265 setWrap,
43266 enableSequenceNumbers,
43267 disableSequenceNumbers,
43268 showSequenceNumbers,
43269 getMessages,
43270 getActors: getActors$1,
43271 getActor,
43272 getActorKeys,
43273 getActorProperty,
43274 getAccTitle,
43275 getBoxes,
43276 getDiagramTitle,
43277 setDiagramTitle,
43278 parseDirective: parseDirective$4,
43279 getConfig: () => getConfig$1().sequence,
43280 clear: clear$5,
43281 parseMessage,
43282 parseBoxData,
43283 LINETYPE,
43284 ARROWTYPE,
43285 PLACEMENT,
43286 addNote: addNote$1,
43287 setAccTitle,
43288 apply,
43289 setAccDescription,
43290 getAccDescription,
43291 hasAtLeastOneBox,
43292 hasAtLeastOneBoxWithTitle
43293 };
43294 const getStyles$6 = (options2) => `.actor {
43295 stroke: ${options2.actorBorder};
43296 fill: ${options2.actorBkg};
43297 }
43298
43299 text.actor > tspan {
43300 fill: ${options2.actorTextColor};
43301 stroke: none;
43302 }
43303
43304 .actor-line {
43305 stroke: ${options2.actorLineColor};
43306 }
43307
43308 .messageLine0 {
43309 stroke-width: 1.5;
43310 stroke-dasharray: none;
43311 stroke: ${options2.signalColor};
43312 }
43313
43314 .messageLine1 {
43315 stroke-width: 1.5;
43316 stroke-dasharray: 2, 2;
43317 stroke: ${options2.signalColor};
43318 }
43319
43320 #arrowhead path {
43321 fill: ${options2.signalColor};
43322 stroke: ${options2.signalColor};
43323 }
43324
43325 .sequenceNumber {
43326 fill: ${options2.sequenceNumberColor};
43327 }
43328
43329 #sequencenumber {
43330 fill: ${options2.signalColor};
43331 }
43332
43333 #crosshead path {
43334 fill: ${options2.signalColor};
43335 stroke: ${options2.signalColor};
43336 }
43337
43338 .messageText {
43339 fill: ${options2.signalTextColor};
43340 stroke: none;
43341 }
43342
43343 .labelBox {
43344 stroke: ${options2.labelBoxBorderColor};
43345 fill: ${options2.labelBoxBkgColor};
43346 }
43347
43348 .labelText, .labelText > tspan {
43349 fill: ${options2.labelTextColor};
43350 stroke: none;
43351 }
43352
43353 .loopText, .loopText > tspan {
43354 fill: ${options2.loopTextColor};
43355 stroke: none;
43356 }
43357
43358 .loopLine {
43359 stroke-width: 2px;
43360 stroke-dasharray: 2, 2;
43361 stroke: ${options2.labelBoxBorderColor};
43362 fill: ${options2.labelBoxBorderColor};
43363 }
43364
43365 .note {
43366 //stroke: #decc93;
43367 stroke: ${options2.noteBorderColor};
43368 fill: ${options2.noteBkgColor};
43369 }
43370
43371 .noteText, .noteText > tspan {
43372 fill: ${options2.noteTextColor};
43373 stroke: none;
43374 }
43375
43376 .activation0 {
43377 fill: ${options2.activationBkgColor};
43378 stroke: ${options2.activationBorderColor};
43379 }
43380
43381 .activation1 {
43382 fill: ${options2.activationBkgColor};
43383 stroke: ${options2.activationBorderColor};
43384 }
43385
43386 .activation2 {
43387 fill: ${options2.activationBkgColor};
43388 stroke: ${options2.activationBorderColor};
43389 }
43390
43391 .actorPopupMenu {
43392 position: absolute;
43393 }
43394
43395 .actorPopupMenuPanel {
43396 position: absolute;
43397 fill: ${options2.actorBkg};
43398 box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
43399 filter: drop-shadow(3px 5px 2px rgb(0 0 0 / 0.4));
43400}
43401 .actor-man line {
43402 stroke: ${options2.actorBorder};
43403 fill: ${options2.actorBkg};
43404 }
43405 .actor-man circle, line {
43406 stroke: ${options2.actorBorder};
43407 fill: ${options2.actorBkg};
43408 stroke-width: 2px;
43409 }
43410`;
43411 const styles$5 = getStyles$6;
43412 const drawRect$2 = function(elem, rectData) {
43413 return drawRect$4(elem, rectData);
43414 };
43415 const addPopupInteraction = (id2, actorCnt2) => {
43416 addFunction(() => {
43417 const arr = document.querySelectorAll(id2);
43418 if (arr.length === 0) {
43419 return;
43420 }
43421 arr[0].addEventListener("mouseover", function() {
43422 popupMenuUpFunc("actor" + actorCnt2 + "_popup");
43423 });
43424 arr[0].addEventListener("mouseout", function() {
43425 popupMenuDownFunc("actor" + actorCnt2 + "_popup");
43426 });
43427 });
43428 };
43429 const drawPopup = function(elem, actor, minMenuWidth, textAttrs, forceMenus) {
43430 if (actor.links === void 0 || actor.links === null || Object.keys(actor.links).length === 0) {
43431 return { height: 0, width: 0 };
43432 }
43433 const links2 = actor.links;
43434 const actorCnt2 = actor.actorCnt;
43435 const rectData = actor.rectData;
43436 var displayValue = "none";
43437 if (forceMenus) {
43438 displayValue = "block !important";
43439 }
43440 const g = elem.append("g");
43441 g.attr("id", "actor" + actorCnt2 + "_popup");
43442 g.attr("class", "actorPopupMenu");
43443 g.attr("display", displayValue);
43444 addPopupInteraction("#actor" + actorCnt2 + "_popup", actorCnt2);
43445 var actorClass = "";
43446 if (rectData.class !== void 0) {
43447 actorClass = " " + rectData.class;
43448 }
43449 let menuWidth = rectData.width > minMenuWidth ? rectData.width : minMenuWidth;
43450 const rectElem = g.append("rect");
43451 rectElem.attr("class", "actorPopupMenuPanel" + actorClass);
43452 rectElem.attr("x", rectData.x);
43453 rectElem.attr("y", rectData.height);
43454 rectElem.attr("fill", rectData.fill);
43455 rectElem.attr("stroke", rectData.stroke);
43456 rectElem.attr("width", menuWidth);
43457 rectElem.attr("height", rectData.height);
43458 rectElem.attr("rx", rectData.rx);
43459 rectElem.attr("ry", rectData.ry);
43460 if (links2 != null) {
43461 var linkY = 20;
43462 for (let key in links2) {
43463 var linkElem = g.append("a");
43464 var sanitizedLink = sanitizeUrl_1(links2[key]);
43465 linkElem.attr("xlink:href", sanitizedLink);
43466 linkElem.attr("target", "_blank");
43467 _drawMenuItemTextCandidateFunc(textAttrs)(
43468 key,
43469 linkElem,
43470 rectData.x + 10,
43471 rectData.height + linkY,
43472 menuWidth,
43473 20,
43474 { class: "actor" },
43475 textAttrs
43476 );
43477 linkY += 30;
43478 }
43479 }
43480 rectElem.attr("height", linkY);
43481 return { height: rectData.height + linkY, width: menuWidth };
43482 };
43483 const popupMenu = function(popid) {
43484 return "var pu = document.getElementById('" + popid + "'); if (pu != null) { pu.style.display = 'block'; }";
43485 };
43486 const popdownMenu = function(popid) {
43487 return "var pu = document.getElementById('" + popid + "'); if (pu != null) { pu.style.display = 'none'; }";
43488 };
43489 const popupMenuUpFunc = function(popupId) {
43490 var pu = document.getElementById(popupId);
43491 if (pu != null) {
43492 pu.style.display = "block";
43493 }
43494 };
43495 const popupMenuDownFunc = function(popupId) {
43496 var pu = document.getElementById(popupId);
43497 if (pu != null) {
43498 pu.style.display = "none";
43499 }
43500 };
43501 const drawText$2 = function(elem, textData) {
43502 let prevTextHeight = 0;
43503 let textHeight = 0;
43504 const lines = textData.text.split(common$1.lineBreakRegex);
43505 const [_textFontSize, _textFontSizePx] = parseFontSize(textData.fontSize);
43506 let textElems = [];
43507 let dy = 0;
43508 let yfunc = () => textData.y;
43509 if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {
43510 switch (textData.valign) {
43511 case "top":
43512 case "start":
43513 yfunc = () => Math.round(textData.y + textData.textMargin);
43514 break;
43515 case "middle":
43516 case "center":
43517 yfunc = () => Math.round(textData.y + (prevTextHeight + textHeight + textData.textMargin) / 2);
43518 break;
43519 case "bottom":
43520 case "end":
43521 yfunc = () => Math.round(
43522 textData.y + (prevTextHeight + textHeight + 2 * textData.textMargin) - textData.textMargin
43523 );
43524 break;
43525 }
43526 }
43527 if (textData.anchor !== void 0 && textData.textMargin !== void 0 && textData.width !== void 0) {
43528 switch (textData.anchor) {
43529 case "left":
43530 case "start":
43531 textData.x = Math.round(textData.x + textData.textMargin);
43532 textData.anchor = "start";
43533 textData.dominantBaseline = "middle";
43534 textData.alignmentBaseline = "middle";
43535 break;
43536 case "middle":
43537 case "center":
43538 textData.x = Math.round(textData.x + textData.width / 2);
43539 textData.anchor = "middle";
43540 textData.dominantBaseline = "middle";
43541 textData.alignmentBaseline = "middle";
43542 break;
43543 case "right":
43544 case "end":
43545 textData.x = Math.round(textData.x + textData.width - textData.textMargin);
43546 textData.anchor = "end";
43547 textData.dominantBaseline = "middle";
43548 textData.alignmentBaseline = "middle";
43549 break;
43550 }
43551 }
43552 for (let [i2, line2] of lines.entries()) {
43553 if (textData.textMargin !== void 0 && textData.textMargin === 0 && _textFontSize !== void 0) {
43554 dy = i2 * _textFontSize;
43555 }
43556 const textElem = elem.append("text");
43557 textElem.attr("x", textData.x);
43558 textElem.attr("y", yfunc());
43559 if (textData.anchor !== void 0) {
43560 textElem.attr("text-anchor", textData.anchor).attr("dominant-baseline", textData.dominantBaseline).attr("alignment-baseline", textData.alignmentBaseline);
43561 }
43562 if (textData.fontFamily !== void 0) {
43563 textElem.style("font-family", textData.fontFamily);
43564 }
43565 if (_textFontSizePx !== void 0) {
43566 textElem.style("font-size", _textFontSizePx);
43567 }
43568 if (textData.fontWeight !== void 0) {
43569 textElem.style("font-weight", textData.fontWeight);
43570 }
43571 if (textData.fill !== void 0) {
43572 textElem.attr("fill", textData.fill);
43573 }
43574 if (textData.class !== void 0) {
43575 textElem.attr("class", textData.class);
43576 }
43577 if (textData.dy !== void 0) {
43578 textElem.attr("dy", textData.dy);
43579 } else if (dy !== 0) {
43580 textElem.attr("dy", dy);
43581 }
43582 if (textData.tspan) {
43583 const span = textElem.append("tspan");
43584 span.attr("x", textData.x);
43585 if (textData.fill !== void 0) {
43586 span.attr("fill", textData.fill);
43587 }
43588 span.text(line2);
43589 } else {
43590 textElem.text(line2);
43591 }
43592 if (textData.valign !== void 0 && textData.textMargin !== void 0 && textData.textMargin > 0) {
43593 textHeight += (textElem._groups || textElem)[0][0].getBBox().height;
43594 prevTextHeight = textHeight;
43595 }
43596 textElems.push(textElem);
43597 }
43598 return textElems;
43599 };
43600 const drawLabel$2 = function(elem, txtObject) {
43601 function genPoints(x2, y2, width2, height2, cut) {
43602 return x2 + "," + y2 + " " + (x2 + width2) + "," + y2 + " " + (x2 + width2) + "," + (y2 + height2 - cut) + " " + (x2 + width2 - cut * 1.2) + "," + (y2 + height2) + " " + x2 + "," + (y2 + height2);
43603 }
43604 const polygon = elem.append("polygon");
43605 polygon.attr("points", genPoints(txtObject.x, txtObject.y, txtObject.width, txtObject.height, 7));
43606 polygon.attr("class", "labelBox");
43607 txtObject.y = txtObject.y + txtObject.height / 2;
43608 drawText$2(elem, txtObject);
43609 return polygon;
43610 };
43611 let actorCnt = -1;
43612 const fixLifeLineHeights = (diagram2, bounds2) => {
43613 if (!diagram2.selectAll) {
43614 return;
43615 }
43616 diagram2.selectAll(".actor-line").attr("class", "200").attr("y2", bounds2 - 55);
43617 };
43618 const drawActorTypeParticipant = function(elem, actor, conf2, isFooter) {
43619 const center2 = actor.x + actor.width / 2;
43620 const centerY = actor.y + 5;
43621 const boxpluslineGroup = elem.append("g");
43622 var g = boxpluslineGroup;
43623 if (!isFooter) {
43624 actorCnt++;
43625 g.append("line").attr("id", "actor" + actorCnt).attr("x1", center2).attr("y1", centerY).attr("x2", center2).attr("y2", 2e3).attr("class", "actor-line").attr("stroke-width", "0.5px").attr("stroke", "#999");
43626 g = boxpluslineGroup.append("g");
43627 actor.actorCnt = actorCnt;
43628 if (actor.links != null) {
43629 g.attr("id", "root-" + actorCnt);
43630 addPopupInteraction("#root-" + actorCnt, actorCnt);
43631 }
43632 }
43633 const rect2 = getNoteRect$2();
43634 var cssclass = "actor";
43635 if (actor.properties != null && actor.properties["class"]) {
43636 cssclass = actor.properties["class"];
43637 } else {
43638 rect2.fill = "#eaeaea";
43639 }
43640 rect2.x = actor.x;
43641 rect2.y = actor.y;
43642 rect2.width = actor.width;
43643 rect2.height = actor.height;
43644 rect2.class = cssclass;
43645 rect2.rx = 3;
43646 rect2.ry = 3;
43647 const rectElem = drawRect$2(g, rect2);
43648 actor.rectData = rect2;
43649 if (actor.properties != null && actor.properties["icon"]) {
43650 const iconSrc = actor.properties["icon"].trim();
43651 if (iconSrc.charAt(0) === "@") {
43652 drawEmbeddedImage(g, rect2.x + rect2.width - 20, rect2.y + 10, iconSrc.substr(1));
43653 } else {
43654 drawImage$1(g, rect2.x + rect2.width - 20, rect2.y + 10, iconSrc);
43655 }
43656 }
43657 _drawTextCandidateFunc$2(conf2)(
43658 actor.description,
43659 g,
43660 rect2.x,
43661 rect2.y,
43662 rect2.width,
43663 rect2.height,
43664 { class: "actor" },
43665 conf2
43666 );
43667 let height2 = actor.height;
43668 if (rectElem.node) {
43669 const bounds2 = rectElem.node().getBBox();
43670 actor.height = bounds2.height;
43671 height2 = bounds2.height;
43672 }
43673 return height2;
43674 };
43675 const drawActorTypeActor = function(elem, actor, conf2, isFooter) {
43676 const center2 = actor.x + actor.width / 2;
43677 const centerY = actor.y + 80;
43678 if (!isFooter) {
43679 actorCnt++;
43680 elem.append("line").attr("id", "actor" + actorCnt).attr("x1", center2).attr("y1", centerY).attr("x2", center2).attr("y2", 2e3).attr("class", "actor-line").attr("stroke-width", "0.5px").attr("stroke", "#999");
43681 }
43682 const actElem = elem.append("g");
43683 actElem.attr("class", "actor-man");
43684 const rect2 = getNoteRect$2();
43685 rect2.x = actor.x;
43686 rect2.y = actor.y;
43687 rect2.fill = "#eaeaea";
43688 rect2.width = actor.width;
43689 rect2.height = actor.height;
43690 rect2.class = "actor";
43691 rect2.rx = 3;
43692 rect2.ry = 3;
43693 actElem.append("line").attr("id", "actor-man-torso" + actorCnt).attr("x1", center2).attr("y1", actor.y + 25).attr("x2", center2).attr("y2", actor.y + 45);
43694 actElem.append("line").attr("id", "actor-man-arms" + actorCnt).attr("x1", center2 - 18).attr("y1", actor.y + 33).attr("x2", center2 + 18).attr("y2", actor.y + 33);
43695 actElem.append("line").attr("x1", center2 - 18).attr("y1", actor.y + 60).attr("x2", center2).attr("y2", actor.y + 45);
43696 actElem.append("line").attr("x1", center2).attr("y1", actor.y + 45).attr("x2", center2 + 16).attr("y2", actor.y + 60);
43697 const circle2 = actElem.append("circle");
43698 circle2.attr("cx", actor.x + actor.width / 2);
43699 circle2.attr("cy", actor.y + 10);
43700 circle2.attr("r", 15);
43701 circle2.attr("width", actor.width);
43702 circle2.attr("height", actor.height);
43703 const bounds2 = actElem.node().getBBox();
43704 actor.height = bounds2.height;
43705 _drawTextCandidateFunc$2(conf2)(
43706 actor.description,
43707 actElem,
43708 rect2.x,
43709 rect2.y + 35,
43710 rect2.width,
43711 rect2.height,
43712 { class: "actor" },
43713 conf2
43714 );
43715 return actor.height;
43716 };
43717 const drawActor = function(elem, actor, conf2, isFooter) {
43718 switch (actor.type) {
43719 case "actor":
43720 return drawActorTypeActor(elem, actor, conf2, isFooter);
43721 case "participant":
43722 return drawActorTypeParticipant(elem, actor, conf2, isFooter);
43723 }
43724 };
43725 const drawBox = function(elem, box, conf2) {
43726 const boxplustextGroup = elem.append("g");
43727 const g = boxplustextGroup;
43728 drawBackgroundRect$2(g, box);
43729 if (box.name) {
43730 _drawTextCandidateFunc$2(conf2)(
43731 box.name,
43732 g,
43733 box.x,
43734 box.y + (box.textMaxHeight || 0) / 2,
43735 box.width,
43736 0,
43737 { class: "text" },
43738 conf2
43739 );
43740 }
43741 g.lower();
43742 };
43743 const anchorElement = function(elem) {
43744 return elem.append("g");
43745 };
43746 const drawActivation = function(elem, bounds2, verticalPos, conf2, actorActivations2) {
43747 const rect2 = getNoteRect$2();
43748 const g = bounds2.anchored;
43749 rect2.x = bounds2.startx;
43750 rect2.y = bounds2.starty;
43751 rect2.class = "activation" + actorActivations2 % 3;
43752 rect2.width = bounds2.stopx - bounds2.startx;
43753 rect2.height = verticalPos - bounds2.starty;
43754 drawRect$2(g, rect2);
43755 };
43756 const drawLoop = function(elem, loopModel, labelText, conf2) {
43757 const {
43758 boxMargin,
43759 boxTextMargin,
43760 labelBoxHeight,
43761 labelBoxWidth,
43762 messageFontFamily: fontFamily,
43763 messageFontSize: fontSize,
43764 messageFontWeight: fontWeight
43765 } = conf2;
43766 const g = elem.append("g");
43767 const drawLoopLine = function(startx, starty, stopx, stopy) {
43768 return g.append("line").attr("x1", startx).attr("y1", starty).attr("x2", stopx).attr("y2", stopy).attr("class", "loopLine");
43769 };
43770 drawLoopLine(loopModel.startx, loopModel.starty, loopModel.stopx, loopModel.starty);
43771 drawLoopLine(loopModel.stopx, loopModel.starty, loopModel.stopx, loopModel.stopy);
43772 drawLoopLine(loopModel.startx, loopModel.stopy, loopModel.stopx, loopModel.stopy);
43773 drawLoopLine(loopModel.startx, loopModel.starty, loopModel.startx, loopModel.stopy);
43774 if (loopModel.sections !== void 0) {
43775 loopModel.sections.forEach(function(item) {
43776 drawLoopLine(loopModel.startx, item.y, loopModel.stopx, item.y).style(
43777 "stroke-dasharray",
43778 "3, 3"
43779 );
43780 });
43781 }
43782 let txt = getTextObj$2();
43783 txt.text = labelText;
43784 txt.x = loopModel.startx;
43785 txt.y = loopModel.starty;
43786 txt.fontFamily = fontFamily;
43787 txt.fontSize = fontSize;
43788 txt.fontWeight = fontWeight;
43789 txt.anchor = "middle";
43790 txt.valign = "middle";
43791 txt.tspan = false;
43792 txt.width = labelBoxWidth || 50;
43793 txt.height = labelBoxHeight || 20;
43794 txt.textMargin = boxTextMargin;
43795 txt.class = "labelText";
43796 drawLabel$2(g, txt);
43797 txt = getTextObj$1();
43798 txt.text = loopModel.title;
43799 txt.x = loopModel.startx + labelBoxWidth / 2 + (loopModel.stopx - loopModel.startx) / 2;
43800 txt.y = loopModel.starty + boxMargin + boxTextMargin;
43801 txt.anchor = "middle";
43802 txt.valign = "middle";
43803 txt.textMargin = boxTextMargin;
43804 txt.class = "loopText";
43805 txt.fontFamily = fontFamily;
43806 txt.fontSize = fontSize;
43807 txt.fontWeight = fontWeight;
43808 txt.wrap = true;
43809 let textElem = drawText$2(g, txt);
43810 if (loopModel.sectionTitles !== void 0) {
43811 loopModel.sectionTitles.forEach(function(item, idx) {
43812 if (item.message) {
43813 txt.text = item.message;
43814 txt.x = loopModel.startx + (loopModel.stopx - loopModel.startx) / 2;
43815 txt.y = loopModel.sections[idx].y + boxMargin + boxTextMargin;
43816 txt.class = "loopText";
43817 txt.anchor = "middle";
43818 txt.valign = "middle";
43819 txt.tspan = false;
43820 txt.fontFamily = fontFamily;
43821 txt.fontSize = fontSize;
43822 txt.fontWeight = fontWeight;
43823 txt.wrap = loopModel.wrap;
43824 textElem = drawText$2(g, txt);
43825 let sectionHeight = Math.round(
43826 textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)
43827 );
43828 loopModel.sections[idx].height += sectionHeight - (boxMargin + boxTextMargin);
43829 }
43830 });
43831 }
43832 loopModel.height = Math.round(loopModel.stopy - loopModel.starty);
43833 return g;
43834 };
43835 const drawBackgroundRect$2 = function(elem, bounds2) {
43836 drawBackgroundRect$3(elem, bounds2);
43837 };
43838 const insertDatabaseIcon = function(elem) {
43839 elem.append("defs").append("symbol").attr("id", "database").attr("fill-rule", "evenodd").attr("clip-rule", "evenodd").append("path").attr("transform", "scale(.5)").attr(
43840 "d",
43841 "M12.258.001l.256.004.255.005.253.008.251.01.249.012.247.015.246.016.242.019.241.02.239.023.236.024.233.027.231.028.229.031.225.032.223.034.22.036.217.038.214.04.211.041.208.043.205.045.201.046.198.048.194.05.191.051.187.053.183.054.18.056.175.057.172.059.168.06.163.061.16.063.155.064.15.066.074.033.073.033.071.034.07.034.069.035.068.035.067.035.066.035.064.036.064.036.062.036.06.036.06.037.058.037.058.037.055.038.055.038.053.038.052.038.051.039.05.039.048.039.047.039.045.04.044.04.043.04.041.04.04.041.039.041.037.041.036.041.034.041.033.042.032.042.03.042.029.042.027.042.026.043.024.043.023.043.021.043.02.043.018.044.017.043.015.044.013.044.012.044.011.045.009.044.007.045.006.045.004.045.002.045.001.045v17l-.001.045-.002.045-.004.045-.006.045-.007.045-.009.044-.011.045-.012.044-.013.044-.015.044-.017.043-.018.044-.02.043-.021.043-.023.043-.024.043-.026.043-.027.042-.029.042-.03.042-.032.042-.033.042-.034.041-.036.041-.037.041-.039.041-.04.041-.041.04-.043.04-.044.04-.045.04-.047.039-.048.039-.05.039-.051.039-.052.038-.053.038-.055.038-.055.038-.058.037-.058.037-.06.037-.06.036-.062.036-.064.036-.064.036-.066.035-.067.035-.068.035-.069.035-.07.034-.071.034-.073.033-.074.033-.15.066-.155.064-.16.063-.163.061-.168.06-.172.059-.175.057-.18.056-.183.054-.187.053-.191.051-.194.05-.198.048-.201.046-.205.045-.208.043-.211.041-.214.04-.217.038-.22.036-.223.034-.225.032-.229.031-.231.028-.233.027-.236.024-.239.023-.241.02-.242.019-.246.016-.247.015-.249.012-.251.01-.253.008-.255.005-.256.004-.258.001-.258-.001-.256-.004-.255-.005-.253-.008-.251-.01-.249-.012-.247-.015-.245-.016-.243-.019-.241-.02-.238-.023-.236-.024-.234-.027-.231-.028-.228-.031-.226-.032-.223-.034-.22-.036-.217-.038-.214-.04-.211-.041-.208-.043-.204-.045-.201-.046-.198-.048-.195-.05-.19-.051-.187-.053-.184-.054-.179-.056-.176-.057-.172-.059-.167-.06-.164-.061-.159-.063-.155-.064-.151-.066-.074-.033-.072-.033-.072-.034-.07-.034-.069-.035-.068-.035-.067-.035-.066-.035-.064-.036-.063-.036-.062-.036-.061-.036-.06-.037-.058-.037-.057-.037-.056-.038-.055-.038-.053-.038-.052-.038-.051-.039-.049-.039-.049-.039-.046-.039-.046-.04-.044-.04-.043-.04-.041-.04-.04-.041-.039-.041-.037-.041-.036-.041-.034-.041-.033-.042-.032-.042-.03-.042-.029-.042-.027-.042-.026-.043-.024-.043-.023-.043-.021-.043-.02-.043-.018-.044-.017-.043-.015-.044-.013-.044-.012-.044-.011-.045-.009-.044-.007-.045-.006-.045-.004-.045-.002-.045-.001-.045v-17l.001-.045.002-.045.004-.045.006-.045.007-.045.009-.044.011-.045.012-.044.013-.044.015-.044.017-.043.018-.044.02-.043.021-.043.023-.043.024-.043.026-.043.027-.042.029-.042.03-.042.032-.042.033-.042.034-.041.036-.041.037-.041.039-.041.04-.041.041-.04.043-.04.044-.04.046-.04.046-.039.049-.039.049-.039.051-.039.052-.038.053-.038.055-.038.056-.038.057-.037.058-.037.06-.037.061-.036.062-.036.063-.036.064-.036.066-.035.067-.035.068-.035.069-.035.07-.034.072-.034.072-.033.074-.033.151-.066.155-.064.159-.063.164-.061.167-.06.172-.059.176-.057.179-.056.184-.054.187-.053.19-.051.195-.05.198-.048.201-.046.204-.045.208-.043.211-.041.214-.04.217-.038.22-.036.223-.034.226-.032.228-.031.231-.028.234-.027.236-.024.238-.023.241-.02.243-.019.245-.016.247-.015.249-.012.251-.01.253-.008.255-.005.256-.004.258-.001.258.001zm-9.258 20.499v.01l.001.021.003.021.004.022.005.021.006.022.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.023.018.024.019.024.021.024.022.025.023.024.024.025.052.049.056.05.061.051.066.051.07.051.075.051.079.052.084.052.088.052.092.052.097.052.102.051.105.052.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.048.144.049.147.047.152.047.155.047.16.045.163.045.167.043.171.043.176.041.178.041.183.039.187.039.19.037.194.035.197.035.202.033.204.031.209.03.212.029.216.027.219.025.222.024.226.021.23.02.233.018.236.016.24.015.243.012.246.01.249.008.253.005.256.004.259.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.021.224-.024.22-.026.216-.027.212-.028.21-.031.205-.031.202-.034.198-.034.194-.036.191-.037.187-.039.183-.04.179-.04.175-.042.172-.043.168-.044.163-.045.16-.046.155-.046.152-.047.148-.048.143-.049.139-.049.136-.05.131-.05.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.053.083-.051.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.05.023-.024.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.023.01-.022.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.127l-.077.055-.08.053-.083.054-.085.053-.087.052-.09.052-.093.051-.095.05-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.045-.118.044-.12.043-.122.042-.124.042-.126.041-.128.04-.13.04-.132.038-.134.038-.135.037-.138.037-.139.035-.142.035-.143.034-.144.033-.147.032-.148.031-.15.03-.151.03-.153.029-.154.027-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.01-.179.008-.179.008-.181.006-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.006-.179-.008-.179-.008-.178-.01-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.027-.153-.029-.151-.03-.15-.03-.148-.031-.146-.032-.145-.033-.143-.034-.141-.035-.14-.035-.137-.037-.136-.037-.134-.038-.132-.038-.13-.04-.128-.04-.126-.041-.124-.042-.122-.042-.12-.044-.117-.043-.116-.045-.113-.045-.112-.046-.109-.047-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.05-.093-.052-.09-.051-.087-.052-.085-.053-.083-.054-.08-.054-.077-.054v4.127zm0-5.654v.011l.001.021.003.021.004.021.005.022.006.022.007.022.009.022.01.022.011.023.012.023.013.023.015.024.016.023.017.024.018.024.019.024.021.024.022.024.023.025.024.024.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.052.11.051.114.051.119.052.123.05.127.051.131.05.135.049.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.044.171.042.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.022.23.02.233.018.236.016.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.012.241-.015.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.048.139-.05.136-.049.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.051.051-.049.023-.025.023-.024.021-.025.02-.024.019-.024.018-.024.017-.024.015-.023.014-.023.013-.024.012-.022.01-.023.01-.023.008-.022.006-.022.006-.022.004-.021.004-.022.001-.021.001-.021v-4.139l-.077.054-.08.054-.083.054-.085.052-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.049-.105.048-.106.047-.109.047-.111.046-.114.045-.115.044-.118.044-.12.044-.122.042-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.035-.143.033-.144.033-.147.033-.148.031-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.025-.161.024-.162.023-.163.022-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.011-.178.009-.179.009-.179.007-.181.007-.182.005-.182.004-.184.003-.184.002h-.37l-.184-.002-.184-.003-.182-.004-.182-.005-.181-.007-.179-.007-.179-.009-.178-.009-.176-.011-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.022-.162-.023-.161-.024-.159-.025-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.031-.146-.033-.145-.033-.143-.033-.141-.035-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.04-.126-.041-.124-.042-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.047-.105-.048-.102-.049-.1-.049-.097-.05-.095-.051-.093-.051-.09-.051-.087-.053-.085-.052-.083-.054-.08-.054-.077-.054v4.139zm0-5.666v.011l.001.02.003.022.004.021.005.022.006.021.007.022.009.023.01.022.011.023.012.023.013.023.015.023.016.024.017.024.018.023.019.024.021.025.022.024.023.024.024.025.052.05.056.05.061.05.066.051.07.051.075.052.079.051.084.052.088.052.092.052.097.052.102.052.105.051.11.052.114.051.119.051.123.051.127.05.131.05.135.05.139.049.144.048.147.048.152.047.155.046.16.045.163.045.167.043.171.043.176.042.178.04.183.04.187.038.19.037.194.036.197.034.202.033.204.032.209.03.212.028.216.027.219.025.222.024.226.021.23.02.233.018.236.017.24.014.243.012.246.01.249.008.253.006.256.003.259.001.26-.001.257-.003.254-.006.25-.008.247-.01.244-.013.241-.014.237-.016.233-.018.231-.02.226-.022.224-.024.22-.025.216-.027.212-.029.21-.03.205-.032.202-.033.198-.035.194-.036.191-.037.187-.039.183-.039.179-.041.175-.042.172-.043.168-.044.163-.045.16-.045.155-.047.152-.047.148-.048.143-.049.139-.049.136-.049.131-.051.126-.05.123-.051.118-.052.114-.051.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.052.07-.051.065-.051.06-.051.056-.05.051-.049.023-.025.023-.025.021-.024.02-.024.019-.024.018-.024.017-.024.015-.023.014-.024.013-.023.012-.023.01-.022.01-.023.008-.022.006-.022.006-.022.004-.022.004-.021.001-.021.001-.021v-4.153l-.077.054-.08.054-.083.053-.085.053-.087.053-.09.051-.093.051-.095.051-.097.05-.1.049-.102.048-.105.048-.106.048-.109.046-.111.046-.114.046-.115.044-.118.044-.12.043-.122.043-.124.042-.126.041-.128.04-.13.039-.132.039-.134.038-.135.037-.138.036-.139.036-.142.034-.143.034-.144.033-.147.032-.148.032-.15.03-.151.03-.153.028-.154.028-.156.027-.158.026-.159.024-.161.024-.162.023-.163.023-.165.021-.166.02-.167.019-.169.018-.169.017-.171.016-.173.015-.173.014-.175.013-.175.012-.177.01-.178.01-.179.009-.179.007-.181.006-.182.006-.182.004-.184.003-.184.001-.185.001-.185-.001-.184-.001-.184-.003-.182-.004-.182-.006-.181-.006-.179-.007-.179-.009-.178-.01-.176-.01-.176-.012-.175-.013-.173-.014-.172-.015-.171-.016-.17-.017-.169-.018-.167-.019-.166-.02-.165-.021-.163-.023-.162-.023-.161-.024-.159-.024-.157-.026-.156-.027-.155-.028-.153-.028-.151-.03-.15-.03-.148-.032-.146-.032-.145-.033-.143-.034-.141-.034-.14-.036-.137-.036-.136-.037-.134-.038-.132-.039-.13-.039-.128-.041-.126-.041-.124-.041-.122-.043-.12-.043-.117-.044-.116-.044-.113-.046-.112-.046-.109-.046-.106-.048-.105-.048-.102-.048-.1-.05-.097-.049-.095-.051-.093-.051-.09-.052-.087-.052-.085-.053-.083-.053-.08-.054-.077-.054v4.153zm8.74-8.179l-.257.004-.254.005-.25.008-.247.011-.244.012-.241.014-.237.016-.233.018-.231.021-.226.022-.224.023-.22.026-.216.027-.212.028-.21.031-.205.032-.202.033-.198.034-.194.036-.191.038-.187.038-.183.04-.179.041-.175.042-.172.043-.168.043-.163.045-.16.046-.155.046-.152.048-.148.048-.143.048-.139.049-.136.05-.131.05-.126.051-.123.051-.118.051-.114.052-.11.052-.106.052-.101.052-.096.052-.092.052-.088.052-.083.052-.079.052-.074.051-.07.052-.065.051-.06.05-.056.05-.051.05-.023.025-.023.024-.021.024-.02.025-.019.024-.018.024-.017.023-.015.024-.014.023-.013.023-.012.023-.01.023-.01.022-.008.022-.006.023-.006.021-.004.022-.004.021-.001.021-.001.021.001.021.001.021.004.021.004.022.006.021.006.023.008.022.01.022.01.023.012.023.013.023.014.023.015.024.017.023.018.024.019.024.02.025.021.024.023.024.023.025.051.05.056.05.06.05.065.051.07.052.074.051.079.052.083.052.088.052.092.052.096.052.101.052.106.052.11.052.114.052.118.051.123.051.126.051.131.05.136.05.139.049.143.048.148.048.152.048.155.046.16.046.163.045.168.043.172.043.175.042.179.041.183.04.187.038.191.038.194.036.198.034.202.033.205.032.21.031.212.028.216.027.22.026.224.023.226.022.231.021.233.018.237.016.241.014.244.012.247.011.25.008.254.005.257.004.26.001.26-.001.257-.004.254-.005.25-.008.247-.011.244-.012.241-.014.237-.016.233-.018.231-.021.226-.022.224-.023.22-.026.216-.027.212-.028.21-.031.205-.032.202-.033.198-.034.194-.036.191-.038.187-.038.183-.04.179-.041.175-.042.172-.043.168-.043.163-.045.16-.046.155-.046.152-.048.148-.048.143-.048.139-.049.136-.05.131-.05.126-.051.123-.051.118-.051.114-.052.11-.052.106-.052.101-.052.096-.052.092-.052.088-.052.083-.052.079-.052.074-.051.07-.052.065-.051.06-.05.056-.05.051-.05.023-.025.023-.024.021-.024.02-.025.019-.024.018-.024.017-.023.015-.024.014-.023.013-.023.012-.023.01-.023.01-.022.008-.022.006-.023.006-.021.004-.022.004-.021.001-.021.001-.021-.001-.021-.001-.021-.004-.021-.004-.022-.006-.021-.006-.023-.008-.022-.01-.022-.01-.023-.012-.023-.013-.023-.014-.023-.015-.024-.017-.023-.018-.024-.019-.024-.02-.025-.021-.024-.023-.024-.023-.025-.051-.05-.056-.05-.06-.05-.065-.051-.07-.052-.074-.051-.079-.052-.083-.052-.088-.052-.092-.052-.096-.052-.101-.052-.106-.052-.11-.052-.114-.052-.118-.051-.123-.051-.126-.051-.131-.05-.136-.05-.139-.049-.143-.048-.148-.048-.152-.048-.155-.046-.16-.046-.163-.045-.168-.043-.172-.043-.175-.042-.179-.041-.183-.04-.187-.038-.191-.038-.194-.036-.198-.034-.202-.033-.205-.032-.21-.031-.212-.028-.216-.027-.22-.026-.224-.023-.226-.022-.231-.021-.233-.018-.237-.016-.241-.014-.244-.012-.247-.011-.25-.008-.254-.005-.257-.004-.26-.001-.26.001z"
43842 );
43843 };
43844 const insertComputerIcon = function(elem) {
43845 elem.append("defs").append("symbol").attr("id", "computer").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
43846 "d",
43847 "M2 2v13h20v-13h-20zm18 11h-16v-9h16v9zm-10.228 6l.466-1h3.524l.467 1h-4.457zm14.228 3h-24l2-6h2.104l-1.33 4h18.45l-1.297-4h2.073l2 6zm-5-10h-14v-7h14v7z"
43848 );
43849 };
43850 const insertClockIcon = function(elem) {
43851 elem.append("defs").append("symbol").attr("id", "clock").attr("width", "24").attr("height", "24").append("path").attr("transform", "scale(.5)").attr(
43852 "d",
43853 "M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10-10-4.486-10-10 4.486-10 10-10zm0-2c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm5.848 12.459c.202.038.202.333.001.372-1.907.361-6.045 1.111-6.547 1.111-.719 0-1.301-.582-1.301-1.301 0-.512.77-5.447 1.125-7.445.034-.192.312-.181.343.014l.985 6.238 5.394 1.011z"
43854 );
43855 };
43856 const insertArrowHead = function(elem) {
43857 elem.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 9).attr("refY", 5).attr("markerUnits", "userSpaceOnUse").attr("markerWidth", 12).attr("markerHeight", 12).attr("orient", "auto").append("path").attr("d", "M 0 0 L 10 5 L 0 10 z");
43858 };
43859 const insertArrowFilledHead = function(elem) {
43860 elem.append("defs").append("marker").attr("id", "filled-head").attr("refX", 18).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
43861 };
43862 const insertSequenceNumber = function(elem) {
43863 elem.append("defs").append("marker").attr("id", "sequencenumber").attr("refX", 15).attr("refY", 15).attr("markerWidth", 60).attr("markerHeight", 40).attr("orient", "auto").append("circle").attr("cx", 15).attr("cy", 15).attr("r", 6);
43864 };
43865 const insertArrowCrossHead = function(elem) {
43866 const defs = elem.append("defs");
43867 const marker = defs.append("marker").attr("id", "crosshead").attr("markerWidth", 15).attr("markerHeight", 8).attr("orient", "auto").attr("refX", 4).attr("refY", 5);
43868 marker.append("path").attr("fill", "none").attr("stroke", "#000000").style("stroke-dasharray", "0, 0").attr("stroke-width", "1pt").attr("d", "M 1,2 L 6,7 M 6,2 L 1,7");
43869 };
43870 const getTextObj$1 = function() {
43871 return {
43872 x: 0,
43873 y: 0,
43874 fill: void 0,
43875 anchor: void 0,
43876 style: "#666",
43877 width: void 0,
43878 height: void 0,
43879 textMargin: 0,
43880 rx: 0,
43881 ry: 0,
43882 tspan: true,
43883 valign: void 0
43884 };
43885 };
43886 const getNoteRect$1 = function() {
43887 return {
43888 x: 0,
43889 y: 0,
43890 fill: "#EDF2AE",
43891 stroke: "#666",
43892 width: 100,
43893 anchor: "start",
43894 height: 100,
43895 rx: 0,
43896 ry: 0
43897 };
43898 };
43899 const _drawTextCandidateFunc$2 = function() {
43900 function byText(content2, g, x2, y2, width2, height2, textAttrs) {
43901 const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2 + height2 / 2 + 5).style("text-anchor", "middle").text(content2);
43902 _setTextAttrs(text2, textAttrs);
43903 }
43904 function byTspan(content2, g, x2, y2, width2, height2, textAttrs, conf2) {
43905 const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;
43906 const [_actorFontSize, _actorFontSizePx] = parseFontSize(actorFontSize);
43907 const lines = content2.split(common$1.lineBreakRegex);
43908 for (let i2 = 0; i2 < lines.length; i2++) {
43909 const dy = i2 * _actorFontSize - _actorFontSize * (lines.length - 1) / 2;
43910 const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2).style("text-anchor", "middle").style("font-size", _actorFontSizePx).style("font-weight", actorFontWeight).style("font-family", actorFontFamily);
43911 text2.append("tspan").attr("x", x2 + width2 / 2).attr("dy", dy).text(lines[i2]);
43912 text2.attr("y", y2 + height2 / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
43913 _setTextAttrs(text2, textAttrs);
43914 }
43915 }
43916 function byFo(content2, g, x2, y2, width2, height2, textAttrs, conf2) {
43917 const s = g.append("switch");
43918 const f2 = s.append("foreignObject").attr("x", x2).attr("y", y2).attr("width", width2).attr("height", height2);
43919 const text2 = f2.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
43920 text2.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content2);
43921 byTspan(content2, s, x2, y2, width2, height2, textAttrs, conf2);
43922 _setTextAttrs(text2, textAttrs);
43923 }
43924 function _setTextAttrs(toText, fromTextAttrsDict) {
43925 for (const key in fromTextAttrsDict) {
43926 if (fromTextAttrsDict.hasOwnProperty(key)) {
43927 toText.attr(key, fromTextAttrsDict[key]);
43928 }
43929 }
43930 }
43931 return function(conf2) {
43932 return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
43933 };
43934 }();
43935 const _drawMenuItemTextCandidateFunc = function() {
43936 function byText(content2, g, x2, y2, width2, height2, textAttrs) {
43937 const text2 = g.append("text").attr("x", x2).attr("y", y2).style("text-anchor", "start").text(content2);
43938 _setTextAttrs(text2, textAttrs);
43939 }
43940 function byTspan(content2, g, x2, y2, width2, height2, textAttrs, conf2) {
43941 const { actorFontSize, actorFontFamily, actorFontWeight } = conf2;
43942 const lines = content2.split(common$1.lineBreakRegex);
43943 for (let i2 = 0; i2 < lines.length; i2++) {
43944 const dy = i2 * actorFontSize - actorFontSize * (lines.length - 1) / 2;
43945 const text2 = g.append("text").attr("x", x2).attr("y", y2).style("text-anchor", "start").style("font-size", actorFontSize).style("font-weight", actorFontWeight).style("font-family", actorFontFamily);
43946 text2.append("tspan").attr("x", x2).attr("dy", dy).text(lines[i2]);
43947 text2.attr("y", y2 + height2 / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
43948 _setTextAttrs(text2, textAttrs);
43949 }
43950 }
43951 function byFo(content2, g, x2, y2, width2, height2, textAttrs, conf2) {
43952 const s = g.append("switch");
43953 const f2 = s.append("foreignObject").attr("x", x2).attr("y", y2).attr("width", width2).attr("height", height2);
43954 const text2 = f2.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
43955 text2.append("div").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content2);
43956 byTspan(content2, s, x2, y2, width2, height2, textAttrs, conf2);
43957 _setTextAttrs(text2, textAttrs);
43958 }
43959 function _setTextAttrs(toText, fromTextAttrsDict) {
43960 for (const key in fromTextAttrsDict) {
43961 if (fromTextAttrsDict.hasOwnProperty(key)) {
43962 toText.attr(key, fromTextAttrsDict[key]);
43963 }
43964 }
43965 }
43966 return function(conf2) {
43967 return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
43968 };
43969 }();
43970 const svgDraw$3 = {
43971 drawRect: drawRect$2,
43972 drawText: drawText$2,
43973 drawLabel: drawLabel$2,
43974 drawActor,
43975 drawBox,
43976 drawPopup,
43977 anchorElement,
43978 drawActivation,
43979 drawLoop,
43980 drawBackgroundRect: drawBackgroundRect$2,
43981 insertArrowHead,
43982 insertArrowFilledHead,
43983 insertSequenceNumber,
43984 insertArrowCrossHead,
43985 insertDatabaseIcon,
43986 insertComputerIcon,
43987 insertClockIcon,
43988 getTextObj: getTextObj$1,
43989 getNoteRect: getNoteRect$1,
43990 popupMenu,
43991 popdownMenu,
43992 fixLifeLineHeights,
43993 sanitizeUrl: sanitizeUrl_1
43994 };
43995 let conf$4 = {};
43996 const bounds$1 = {
43997 data: {
43998 startx: void 0,
43999 stopx: void 0,
44000 starty: void 0,
44001 stopy: void 0
44002 },
44003 verticalPos: 0,
44004 sequenceItems: [],
44005 activations: [],
44006 models: {
44007 getHeight: function() {
44008 return Math.max.apply(
44009 null,
44010 this.actors.length === 0 ? [0] : this.actors.map((actor) => actor.height || 0)
44011 ) + (this.loops.length === 0 ? 0 : this.loops.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.messages.length === 0 ? 0 : this.messages.map((it) => it.height || 0).reduce((acc, h) => acc + h)) + (this.notes.length === 0 ? 0 : this.notes.map((it) => it.height || 0).reduce((acc, h) => acc + h));
44012 },
44013 clear: function() {
44014 this.actors = [];
44015 this.boxes = [];
44016 this.loops = [];
44017 this.messages = [];
44018 this.notes = [];
44019 },
44020 addBox: function(boxModel) {
44021 this.boxes.push(boxModel);
44022 },
44023 addActor: function(actorModel) {
44024 this.actors.push(actorModel);
44025 },
44026 addLoop: function(loopModel) {
44027 this.loops.push(loopModel);
44028 },
44029 addMessage: function(msgModel) {
44030 this.messages.push(msgModel);
44031 },
44032 addNote: function(noteModel) {
44033 this.notes.push(noteModel);
44034 },
44035 lastActor: function() {
44036 return this.actors[this.actors.length - 1];
44037 },
44038 lastLoop: function() {
44039 return this.loops[this.loops.length - 1];
44040 },
44041 lastMessage: function() {
44042 return this.messages[this.messages.length - 1];
44043 },
44044 lastNote: function() {
44045 return this.notes[this.notes.length - 1];
44046 },
44047 actors: [],
44048 boxes: [],
44049 loops: [],
44050 messages: [],
44051 notes: []
44052 },
44053 init: function() {
44054 this.sequenceItems = [];
44055 this.activations = [];
44056 this.models.clear();
44057 this.data = {
44058 startx: void 0,
44059 stopx: void 0,
44060 starty: void 0,
44061 stopy: void 0
44062 };
44063 this.verticalPos = 0;
44064 setConf$4(getConfig$1());
44065 },
44066 updateVal: function(obj, key, val, fun) {
44067 if (obj[key] === void 0) {
44068 obj[key] = val;
44069 } else {
44070 obj[key] = fun(val, obj[key]);
44071 }
44072 },
44073 updateBounds: function(startx, starty, stopx, stopy) {
44074 const _self = this;
44075 let cnt2 = 0;
44076 function updateFn(type2) {
44077 return function updateItemBounds(item) {
44078 cnt2++;
44079 const n = _self.sequenceItems.length - cnt2 + 1;
44080 _self.updateVal(item, "starty", starty - n * conf$4.boxMargin, Math.min);
44081 _self.updateVal(item, "stopy", stopy + n * conf$4.boxMargin, Math.max);
44082 _self.updateVal(bounds$1.data, "startx", startx - n * conf$4.boxMargin, Math.min);
44083 _self.updateVal(bounds$1.data, "stopx", stopx + n * conf$4.boxMargin, Math.max);
44084 if (!(type2 === "activation")) {
44085 _self.updateVal(item, "startx", startx - n * conf$4.boxMargin, Math.min);
44086 _self.updateVal(item, "stopx", stopx + n * conf$4.boxMargin, Math.max);
44087 _self.updateVal(bounds$1.data, "starty", starty - n * conf$4.boxMargin, Math.min);
44088 _self.updateVal(bounds$1.data, "stopy", stopy + n * conf$4.boxMargin, Math.max);
44089 }
44090 };
44091 }
44092 this.sequenceItems.forEach(updateFn());
44093 this.activations.forEach(updateFn("activation"));
44094 },
44095 insert: function(startx, starty, stopx, stopy) {
44096 const _startx = common$1.getMin(startx, stopx);
44097 const _stopx = common$1.getMax(startx, stopx);
44098 const _starty = common$1.getMin(starty, stopy);
44099 const _stopy = common$1.getMax(starty, stopy);
44100 this.updateVal(bounds$1.data, "startx", _startx, Math.min);
44101 this.updateVal(bounds$1.data, "starty", _starty, Math.min);
44102 this.updateVal(bounds$1.data, "stopx", _stopx, Math.max);
44103 this.updateVal(bounds$1.data, "stopy", _stopy, Math.max);
44104 this.updateBounds(_startx, _starty, _stopx, _stopy);
44105 },
44106 newActivation: function(message2, diagram2, actors2) {
44107 const actorRect = actors2[message2.from.actor];
44108 const stackedSize = actorActivations(message2.from.actor).length || 0;
44109 const x2 = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf$4.activationWidth / 2;
44110 this.activations.push({
44111 startx: x2,
44112 starty: this.verticalPos + 2,
44113 stopx: x2 + conf$4.activationWidth,
44114 stopy: void 0,
44115 actor: message2.from.actor,
44116 anchored: svgDraw$3.anchorElement(diagram2)
44117 });
44118 },
44119 endActivation: function(message2) {
44120 const lastActorActivationIdx = this.activations.map(function(activation) {
44121 return activation.actor;
44122 }).lastIndexOf(message2.from.actor);
44123 return this.activations.splice(lastActorActivationIdx, 1)[0];
44124 },
44125 createLoop: function(title2 = { message: void 0, wrap: false, width: void 0 }, fill) {
44126 return {
44127 startx: void 0,
44128 starty: this.verticalPos,
44129 stopx: void 0,
44130 stopy: void 0,
44131 title: title2.message,
44132 wrap: title2.wrap,
44133 width: title2.width,
44134 height: 0,
44135 fill
44136 };
44137 },
44138 newLoop: function(title2 = { message: void 0, wrap: false, width: void 0 }, fill) {
44139 this.sequenceItems.push(this.createLoop(title2, fill));
44140 },
44141 endLoop: function() {
44142 return this.sequenceItems.pop();
44143 },
44144 isLoopOverlap: function() {
44145 return this.sequenceItems.length ? this.sequenceItems[this.sequenceItems.length - 1].overlap : false;
44146 },
44147 addSectionToLoop: function(message2) {
44148 const loop = this.sequenceItems.pop();
44149 loop.sections = loop.sections || [];
44150 loop.sectionTitles = loop.sectionTitles || [];
44151 loop.sections.push({ y: bounds$1.getVerticalPos(), height: 0 });
44152 loop.sectionTitles.push(message2);
44153 this.sequenceItems.push(loop);
44154 },
44155 saveVerticalPos: function() {
44156 if (this.isLoopOverlap()) {
44157 this.savedVerticalPos = this.verticalPos;
44158 }
44159 },
44160 resetVerticalPos: function() {
44161 if (this.isLoopOverlap()) {
44162 this.verticalPos = this.savedVerticalPos;
44163 }
44164 },
44165 bumpVerticalPos: function(bump) {
44166 this.verticalPos = this.verticalPos + bump;
44167 this.data.stopy = common$1.getMax(this.data.stopy, this.verticalPos);
44168 },
44169 getVerticalPos: function() {
44170 return this.verticalPos;
44171 },
44172 getBounds: function() {
44173 return { bounds: this.data, models: this.models };
44174 }
44175 };
44176 const drawNote$1 = function(elem, noteModel) {
44177 bounds$1.bumpVerticalPos(conf$4.boxMargin);
44178 noteModel.height = conf$4.boxMargin;
44179 noteModel.starty = bounds$1.getVerticalPos();
44180 const rect2 = getNoteRect$2();
44181 rect2.x = noteModel.startx;
44182 rect2.y = noteModel.starty;
44183 rect2.width = noteModel.width || conf$4.width;
44184 rect2.class = "note";
44185 const g = elem.append("g");
44186 const rectElem = svgDraw$3.drawRect(g, rect2);
44187 const textObj = getTextObj$2();
44188 textObj.x = noteModel.startx;
44189 textObj.y = noteModel.starty;
44190 textObj.width = rect2.width;
44191 textObj.dy = "1em";
44192 textObj.text = noteModel.message;
44193 textObj.class = "noteText";
44194 textObj.fontFamily = conf$4.noteFontFamily;
44195 textObj.fontSize = conf$4.noteFontSize;
44196 textObj.fontWeight = conf$4.noteFontWeight;
44197 textObj.anchor = conf$4.noteAlign;
44198 textObj.textMargin = conf$4.noteMargin;
44199 textObj.valign = "center";
44200 const textElem = drawText$2(g, textObj);
44201 const textHeight = Math.round(
44202 textElem.map((te) => (te._groups || te)[0][0].getBBox().height).reduce((acc, curr) => acc + curr)
44203 );
44204 rectElem.attr("height", textHeight + 2 * conf$4.noteMargin);
44205 noteModel.height += textHeight + 2 * conf$4.noteMargin;
44206 bounds$1.bumpVerticalPos(textHeight + 2 * conf$4.noteMargin);
44207 noteModel.stopy = noteModel.starty + textHeight + 2 * conf$4.noteMargin;
44208 noteModel.stopx = noteModel.startx + rect2.width;
44209 bounds$1.insert(noteModel.startx, noteModel.starty, noteModel.stopx, noteModel.stopy);
44210 bounds$1.models.addNote(noteModel);
44211 };
44212 const messageFont = (cnf) => {
44213 return {
44214 fontFamily: cnf.messageFontFamily,
44215 fontSize: cnf.messageFontSize,
44216 fontWeight: cnf.messageFontWeight
44217 };
44218 };
44219 const noteFont = (cnf) => {
44220 return {
44221 fontFamily: cnf.noteFontFamily,
44222 fontSize: cnf.noteFontSize,
44223 fontWeight: cnf.noteFontWeight
44224 };
44225 };
44226 const actorFont = (cnf) => {
44227 return {
44228 fontFamily: cnf.actorFontFamily,
44229 fontSize: cnf.actorFontSize,
44230 fontWeight: cnf.actorFontWeight
44231 };
44232 };
44233 function boundMessage(_diagram, msgModel) {
44234 bounds$1.bumpVerticalPos(10);
44235 const { startx, stopx, message: message2 } = msgModel;
44236 const lines = common$1.splitBreaks(message2).length;
44237 const textDims = utils.calculateTextDimensions(message2, messageFont(conf$4));
44238 const lineHeight = textDims.height / lines;
44239 msgModel.height += lineHeight;
44240 bounds$1.bumpVerticalPos(lineHeight);
44241 let lineStartY;
44242 let totalOffset = textDims.height - 10;
44243 const textWidth = textDims.width;
44244 if (startx === stopx) {
44245 lineStartY = bounds$1.getVerticalPos() + totalOffset;
44246 if (!conf$4.rightAngles) {
44247 totalOffset += conf$4.boxMargin;
44248 lineStartY = bounds$1.getVerticalPos() + totalOffset;
44249 }
44250 totalOffset += 30;
44251 const dx = common$1.getMax(textWidth / 2, conf$4.width / 2);
44252 bounds$1.insert(
44253 startx - dx,
44254 bounds$1.getVerticalPos() - 10 + totalOffset,
44255 stopx + dx,
44256 bounds$1.getVerticalPos() + 30 + totalOffset
44257 );
44258 } else {
44259 totalOffset += conf$4.boxMargin;
44260 lineStartY = bounds$1.getVerticalPos() + totalOffset;
44261 bounds$1.insert(startx, lineStartY - 10, stopx, lineStartY);
44262 }
44263 bounds$1.bumpVerticalPos(totalOffset);
44264 msgModel.height += totalOffset;
44265 msgModel.stopy = msgModel.starty + msgModel.height;
44266 bounds$1.insert(msgModel.fromBounds, msgModel.starty, msgModel.toBounds, msgModel.stopy);
44267 return lineStartY;
44268 }
44269 const drawMessage = function(diagram2, msgModel, lineStartY, diagObj) {
44270 const { startx, stopx, starty, message: message2, type: type2, sequenceIndex, sequenceVisible } = msgModel;
44271 const textDims = utils.calculateTextDimensions(message2, messageFont(conf$4));
44272 const textObj = getTextObj$2();
44273 textObj.x = startx;
44274 textObj.y = starty + 10;
44275 textObj.width = stopx - startx;
44276 textObj.class = "messageText";
44277 textObj.dy = "1em";
44278 textObj.text = message2;
44279 textObj.fontFamily = conf$4.messageFontFamily;
44280 textObj.fontSize = conf$4.messageFontSize;
44281 textObj.fontWeight = conf$4.messageFontWeight;
44282 textObj.anchor = conf$4.messageAlign;
44283 textObj.valign = "center";
44284 textObj.textMargin = conf$4.wrapPadding;
44285 textObj.tspan = false;
44286 drawText$2(diagram2, textObj);
44287 const textWidth = textDims.width;
44288 let line2;
44289 if (startx === stopx) {
44290 if (conf$4.rightAngles) {
44291 line2 = diagram2.append("path").attr(
44292 "d",
44293 `M ${startx},${lineStartY} H ${startx + common$1.getMax(conf$4.width / 2, textWidth / 2)} V ${lineStartY + 25} H ${startx}`
44294 );
44295 } else {
44296 line2 = diagram2.append("path").attr(
44297 "d",
44298 "M " + startx + "," + lineStartY + " C " + (startx + 60) + "," + (lineStartY - 10) + " " + (startx + 60) + "," + (lineStartY + 30) + " " + startx + "," + (lineStartY + 20)
44299 );
44300 }
44301 } else {
44302 line2 = diagram2.append("line");
44303 line2.attr("x1", startx);
44304 line2.attr("y1", lineStartY);
44305 line2.attr("x2", stopx);
44306 line2.attr("y2", lineStartY);
44307 }
44308 if (type2 === diagObj.db.LINETYPE.DOTTED || type2 === diagObj.db.LINETYPE.DOTTED_CROSS || type2 === diagObj.db.LINETYPE.DOTTED_POINT || type2 === diagObj.db.LINETYPE.DOTTED_OPEN) {
44309 line2.style("stroke-dasharray", "3, 3");
44310 line2.attr("class", "messageLine1");
44311 } else {
44312 line2.attr("class", "messageLine0");
44313 }
44314 let url = "";
44315 if (conf$4.arrowMarkerAbsolute) {
44316 url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
44317 url = url.replace(/\(/g, "\\(");
44318 url = url.replace(/\)/g, "\\)");
44319 }
44320 line2.attr("stroke-width", 2);
44321 line2.attr("stroke", "none");
44322 line2.style("fill", "none");
44323 if (type2 === diagObj.db.LINETYPE.SOLID || type2 === diagObj.db.LINETYPE.DOTTED) {
44324 line2.attr("marker-end", "url(" + url + "#arrowhead)");
44325 }
44326 if (type2 === diagObj.db.LINETYPE.SOLID_POINT || type2 === diagObj.db.LINETYPE.DOTTED_POINT) {
44327 line2.attr("marker-end", "url(" + url + "#filled-head)");
44328 }
44329 if (type2 === diagObj.db.LINETYPE.SOLID_CROSS || type2 === diagObj.db.LINETYPE.DOTTED_CROSS) {
44330 line2.attr("marker-end", "url(" + url + "#crosshead)");
44331 }
44332 if (sequenceVisible || conf$4.showSequenceNumbers) {
44333 line2.attr("marker-start", "url(" + url + "#sequencenumber)");
44334 diagram2.append("text").attr("x", startx).attr("y", lineStartY + 4).attr("font-family", "sans-serif").attr("font-size", "12px").attr("text-anchor", "middle").attr("class", "sequenceNumber").text(sequenceIndex);
44335 }
44336 };
44337 const drawActors = function(diagram2, actors2, actorKeys, verticalPos, configuration, messages2, isFooter) {
44338 if (configuration.hideUnusedParticipants === true) {
44339 const newActors = /* @__PURE__ */ new Set();
44340 messages2.forEach((message2) => {
44341 newActors.add(message2.from);
44342 newActors.add(message2.to);
44343 });
44344 actorKeys = actorKeys.filter((actorKey) => newActors.has(actorKey));
44345 }
44346 let prevWidth = 0;
44347 let prevMargin = 0;
44348 let maxHeight = 0;
44349 let prevBox = void 0;
44350 for (const actorKey of actorKeys) {
44351 const actor = actors2[actorKey];
44352 const box = actor.box;
44353 if (prevBox && prevBox != box) {
44354 if (!isFooter) {
44355 bounds$1.models.addBox(prevBox);
44356 }
44357 prevMargin += conf$4.boxMargin + prevBox.margin;
44358 }
44359 if (box && box != prevBox) {
44360 if (!isFooter) {
44361 box.x = prevWidth + prevMargin;
44362 box.y = verticalPos;
44363 }
44364 prevMargin += box.margin;
44365 }
44366 actor.width = actor.width || conf$4.width;
44367 actor.height = common$1.getMax(actor.height || conf$4.height, conf$4.height);
44368 actor.margin = actor.margin || conf$4.actorMargin;
44369 actor.x = prevWidth + prevMargin;
44370 actor.y = bounds$1.getVerticalPos();
44371 const height2 = svgDraw$3.drawActor(diagram2, actor, conf$4, isFooter);
44372 maxHeight = common$1.getMax(maxHeight, height2);
44373 bounds$1.insert(actor.x, verticalPos, actor.x + actor.width, actor.height);
44374 prevWidth += actor.width + prevMargin;
44375 if (actor.box) {
44376 actor.box.width = prevWidth + box.margin - actor.box.x;
44377 }
44378 prevMargin = actor.margin;
44379 prevBox = actor.box;
44380 bounds$1.models.addActor(actor);
44381 }
44382 if (prevBox && !isFooter) {
44383 bounds$1.models.addBox(prevBox);
44384 }
44385 bounds$1.bumpVerticalPos(maxHeight);
44386 };
44387 const drawActorsPopup = function(diagram2, actors2, actorKeys, doc) {
44388 let maxHeight = 0;
44389 let maxWidth = 0;
44390 for (const actorKey of actorKeys) {
44391 const actor = actors2[actorKey];
44392 const minMenuWidth = getRequiredPopupWidth(actor);
44393 const menuDimensions = svgDraw$3.drawPopup(
44394 diagram2,
44395 actor,
44396 minMenuWidth,
44397 conf$4,
44398 conf$4.forceMenus,
44399 doc
44400 );
44401 if (menuDimensions.height > maxHeight) {
44402 maxHeight = menuDimensions.height;
44403 }
44404 if (menuDimensions.width + actor.x > maxWidth) {
44405 maxWidth = menuDimensions.width + actor.x;
44406 }
44407 }
44408 return { maxHeight, maxWidth };
44409 };
44410 const setConf$4 = function(cnf) {
44411 assignWithDepth$1(conf$4, cnf);
44412 if (cnf.fontFamily) {
44413 conf$4.actorFontFamily = conf$4.noteFontFamily = conf$4.messageFontFamily = cnf.fontFamily;
44414 }
44415 if (cnf.fontSize) {
44416 conf$4.actorFontSize = conf$4.noteFontSize = conf$4.messageFontSize = cnf.fontSize;
44417 }
44418 if (cnf.fontWeight) {
44419 conf$4.actorFontWeight = conf$4.noteFontWeight = conf$4.messageFontWeight = cnf.fontWeight;
44420 }
44421 };
44422 const actorActivations = function(actor) {
44423 return bounds$1.activations.filter(function(activation) {
44424 return activation.actor === actor;
44425 });
44426 };
44427 const activationBounds = function(actor, actors2) {
44428 const actorObj = actors2[actor];
44429 const activations = actorActivations(actor);
44430 const left2 = activations.reduce(function(acc, activation) {
44431 return common$1.getMin(acc, activation.startx);
44432 }, actorObj.x + actorObj.width / 2);
44433 const right2 = activations.reduce(function(acc, activation) {
44434 return common$1.getMax(acc, activation.stopx);
44435 }, actorObj.x + actorObj.width / 2);
44436 return [left2, right2];
44437 };
44438 function adjustLoopHeightForWrap(loopWidths, msg, preMargin, postMargin, addLoopFn) {
44439 bounds$1.bumpVerticalPos(preMargin);
44440 let heightAdjust = postMargin;
44441 if (msg.id && msg.message && loopWidths[msg.id]) {
44442 const loopWidth = loopWidths[msg.id].width;
44443 const textConf = messageFont(conf$4);
44444 msg.message = utils.wrapLabel(`[${msg.message}]`, loopWidth - 2 * conf$4.wrapPadding, textConf);
44445 msg.width = loopWidth;
44446 msg.wrap = true;
44447 const textDims = utils.calculateTextDimensions(msg.message, textConf);
44448 const totalOffset = common$1.getMax(textDims.height, conf$4.labelBoxHeight);
44449 heightAdjust = postMargin + totalOffset;
44450 log$1.debug(`${totalOffset} - ${msg.message}`);
44451 }
44452 addLoopFn(msg);
44453 bounds$1.bumpVerticalPos(heightAdjust);
44454 }
44455 const draw$8 = function(_text, id2, _version, diagObj) {
44456 const { securityLevel, sequence: sequence2 } = getConfig$1();
44457 conf$4 = sequence2;
44458 diagObj.db.clear();
44459 diagObj.parser.parse(_text);
44460 let sandboxElement;
44461 if (securityLevel === "sandbox") {
44462 sandboxElement = select("#i" + id2);
44463 }
44464 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
44465 const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
44466 bounds$1.init();
44467 log$1.debug(diagObj.db);
44468 const diagram2 = securityLevel === "sandbox" ? root2.select(`[id="${id2}"]`) : select(`[id="${id2}"]`);
44469 const actors2 = diagObj.db.getActors();
44470 const boxes2 = diagObj.db.getBoxes();
44471 const actorKeys = diagObj.db.getActorKeys();
44472 const messages2 = diagObj.db.getMessages();
44473 const title2 = diagObj.db.getDiagramTitle();
44474 const hasBoxes = diagObj.db.hasAtLeastOneBox();
44475 const hasBoxTitles = diagObj.db.hasAtLeastOneBoxWithTitle();
44476 const maxMessageWidthPerActor = getMaxMessageWidthPerActor(actors2, messages2, diagObj);
44477 conf$4.height = calculateActorMargins(actors2, maxMessageWidthPerActor, boxes2);
44478 svgDraw$3.insertComputerIcon(diagram2);
44479 svgDraw$3.insertDatabaseIcon(diagram2);
44480 svgDraw$3.insertClockIcon(diagram2);
44481 if (hasBoxes) {
44482 bounds$1.bumpVerticalPos(conf$4.boxMargin);
44483 if (hasBoxTitles) {
44484 bounds$1.bumpVerticalPos(boxes2[0].textMaxHeight);
44485 }
44486 }
44487 drawActors(diagram2, actors2, actorKeys, 0, conf$4, messages2, false);
44488 const loopWidths = calculateLoopBounds(messages2, actors2, maxMessageWidthPerActor, diagObj);
44489 svgDraw$3.insertArrowHead(diagram2);
44490 svgDraw$3.insertArrowCrossHead(diagram2);
44491 svgDraw$3.insertArrowFilledHead(diagram2);
44492 svgDraw$3.insertSequenceNumber(diagram2);
44493 function activeEnd(msg, verticalPos) {
44494 const activationData = bounds$1.endActivation(msg);
44495 if (activationData.starty + 18 > verticalPos) {
44496 activationData.starty = verticalPos - 6;
44497 verticalPos += 12;
44498 }
44499 svgDraw$3.drawActivation(
44500 diagram2,
44501 activationData,
44502 verticalPos,
44503 conf$4,
44504 actorActivations(msg.from.actor).length
44505 );
44506 bounds$1.insert(activationData.startx, verticalPos - 10, activationData.stopx, verticalPos);
44507 }
44508 let sequenceIndex = 1;
44509 let sequenceIndexStep = 1;
44510 const messagesToDraw = [];
44511 messages2.forEach(function(msg) {
44512 let loopModel, noteModel, msgModel;
44513 switch (msg.type) {
44514 case diagObj.db.LINETYPE.NOTE:
44515 bounds$1.resetVerticalPos();
44516 noteModel = msg.noteModel;
44517 drawNote$1(diagram2, noteModel);
44518 break;
44519 case diagObj.db.LINETYPE.ACTIVE_START:
44520 bounds$1.newActivation(msg, diagram2, actors2);
44521 break;
44522 case diagObj.db.LINETYPE.ACTIVE_END:
44523 activeEnd(msg, bounds$1.getVerticalPos());
44524 break;
44525 case diagObj.db.LINETYPE.LOOP_START:
44526 adjustLoopHeightForWrap(
44527 loopWidths,
44528 msg,
44529 conf$4.boxMargin,
44530 conf$4.boxMargin + conf$4.boxTextMargin,
44531 (message2) => bounds$1.newLoop(message2)
44532 );
44533 break;
44534 case diagObj.db.LINETYPE.LOOP_END:
44535 loopModel = bounds$1.endLoop();
44536 svgDraw$3.drawLoop(diagram2, loopModel, "loop", conf$4);
44537 bounds$1.bumpVerticalPos(loopModel.stopy - bounds$1.getVerticalPos());
44538 bounds$1.models.addLoop(loopModel);
44539 break;
44540 case diagObj.db.LINETYPE.RECT_START:
44541 adjustLoopHeightForWrap(
44542 loopWidths,
44543 msg,
44544 conf$4.boxMargin,
44545 conf$4.boxMargin,
44546 (message2) => bounds$1.newLoop(void 0, message2.message)
44547 );
44548 break;
44549 case diagObj.db.LINETYPE.RECT_END:
44550 loopModel = bounds$1.endLoop();
44551 svgDraw$3.drawBackgroundRect(diagram2, loopModel);
44552 bounds$1.models.addLoop(loopModel);
44553 bounds$1.bumpVerticalPos(loopModel.stopy - bounds$1.getVerticalPos());
44554 break;
44555 case diagObj.db.LINETYPE.OPT_START:
44556 adjustLoopHeightForWrap(
44557 loopWidths,
44558 msg,
44559 conf$4.boxMargin,
44560 conf$4.boxMargin + conf$4.boxTextMargin,
44561 (message2) => bounds$1.newLoop(message2)
44562 );
44563 break;
44564 case diagObj.db.LINETYPE.OPT_END:
44565 loopModel = bounds$1.endLoop();
44566 svgDraw$3.drawLoop(diagram2, loopModel, "opt", conf$4);
44567 bounds$1.bumpVerticalPos(loopModel.stopy - bounds$1.getVerticalPos());
44568 bounds$1.models.addLoop(loopModel);
44569 break;
44570 case diagObj.db.LINETYPE.ALT_START:
44571 adjustLoopHeightForWrap(
44572 loopWidths,
44573 msg,
44574 conf$4.boxMargin,
44575 conf$4.boxMargin + conf$4.boxTextMargin,
44576 (message2) => bounds$1.newLoop(message2)
44577 );
44578 break;
44579 case diagObj.db.LINETYPE.ALT_ELSE:
44580 adjustLoopHeightForWrap(
44581 loopWidths,
44582 msg,
44583 conf$4.boxMargin + conf$4.boxTextMargin,
44584 conf$4.boxMargin,
44585 (message2) => bounds$1.addSectionToLoop(message2)
44586 );
44587 break;
44588 case diagObj.db.LINETYPE.ALT_END:
44589 loopModel = bounds$1.endLoop();
44590 svgDraw$3.drawLoop(diagram2, loopModel, "alt", conf$4);
44591 bounds$1.bumpVerticalPos(loopModel.stopy - bounds$1.getVerticalPos());
44592 bounds$1.models.addLoop(loopModel);
44593 break;
44594 case diagObj.db.LINETYPE.PAR_START:
44595 case diagObj.db.LINETYPE.PAR_OVER_START:
44596 adjustLoopHeightForWrap(
44597 loopWidths,
44598 msg,
44599 conf$4.boxMargin,
44600 conf$4.boxMargin + conf$4.boxTextMargin,
44601 (message2) => bounds$1.newLoop(message2)
44602 );
44603 bounds$1.saveVerticalPos();
44604 break;
44605 case diagObj.db.LINETYPE.PAR_AND:
44606 adjustLoopHeightForWrap(
44607 loopWidths,
44608 msg,
44609 conf$4.boxMargin + conf$4.boxTextMargin,
44610 conf$4.boxMargin,
44611 (message2) => bounds$1.addSectionToLoop(message2)
44612 );
44613 break;
44614 case diagObj.db.LINETYPE.PAR_END:
44615 loopModel = bounds$1.endLoop();
44616 svgDraw$3.drawLoop(diagram2, loopModel, "par", conf$4);
44617 bounds$1.bumpVerticalPos(loopModel.stopy - bounds$1.getVerticalPos());
44618 bounds$1.models.addLoop(loopModel);
44619 break;
44620 case diagObj.db.LINETYPE.AUTONUMBER:
44621 sequenceIndex = msg.message.start || sequenceIndex;
44622 sequenceIndexStep = msg.message.step || sequenceIndexStep;
44623 if (msg.message.visible) {
44624 diagObj.db.enableSequenceNumbers();
44625 } else {
44626 diagObj.db.disableSequenceNumbers();
44627 }
44628 break;
44629 case diagObj.db.LINETYPE.CRITICAL_START:
44630 adjustLoopHeightForWrap(
44631 loopWidths,
44632 msg,
44633 conf$4.boxMargin,
44634 conf$4.boxMargin + conf$4.boxTextMargin,
44635 (message2) => bounds$1.newLoop(message2)
44636 );
44637 break;
44638 case diagObj.db.LINETYPE.CRITICAL_OPTION:
44639 adjustLoopHeightForWrap(
44640 loopWidths,
44641 msg,
44642 conf$4.boxMargin + conf$4.boxTextMargin,
44643 conf$4.boxMargin,
44644 (message2) => bounds$1.addSectionToLoop(message2)
44645 );
44646 break;
44647 case diagObj.db.LINETYPE.CRITICAL_END:
44648 loopModel = bounds$1.endLoop();
44649 svgDraw$3.drawLoop(diagram2, loopModel, "critical", conf$4);
44650 bounds$1.bumpVerticalPos(loopModel.stopy - bounds$1.getVerticalPos());
44651 bounds$1.models.addLoop(loopModel);
44652 break;
44653 case diagObj.db.LINETYPE.BREAK_START:
44654 adjustLoopHeightForWrap(
44655 loopWidths,
44656 msg,
44657 conf$4.boxMargin,
44658 conf$4.boxMargin + conf$4.boxTextMargin,
44659 (message2) => bounds$1.newLoop(message2)
44660 );
44661 break;
44662 case diagObj.db.LINETYPE.BREAK_END:
44663 loopModel = bounds$1.endLoop();
44664 svgDraw$3.drawLoop(diagram2, loopModel, "break", conf$4);
44665 bounds$1.bumpVerticalPos(loopModel.stopy - bounds$1.getVerticalPos());
44666 bounds$1.models.addLoop(loopModel);
44667 break;
44668 default:
44669 try {
44670 bounds$1.resetVerticalPos();
44671 msgModel = msg.msgModel;
44672 msgModel.starty = bounds$1.getVerticalPos();
44673 msgModel.sequenceIndex = sequenceIndex;
44674 msgModel.sequenceVisible = diagObj.db.showSequenceNumbers();
44675 const lineStartY = boundMessage(diagram2, msgModel);
44676 messagesToDraw.push({ messageModel: msgModel, lineStartY });
44677 bounds$1.models.addMessage(msgModel);
44678 } catch (e) {
44679 log$1.error("error while drawing message", e);
44680 }
44681 }
44682 if ([
44683 diagObj.db.LINETYPE.SOLID_OPEN,
44684 diagObj.db.LINETYPE.DOTTED_OPEN,
44685 diagObj.db.LINETYPE.SOLID,
44686 diagObj.db.LINETYPE.DOTTED,
44687 diagObj.db.LINETYPE.SOLID_CROSS,
44688 diagObj.db.LINETYPE.DOTTED_CROSS,
44689 diagObj.db.LINETYPE.SOLID_POINT,
44690 diagObj.db.LINETYPE.DOTTED_POINT
44691 ].includes(msg.type)) {
44692 sequenceIndex = sequenceIndex + sequenceIndexStep;
44693 }
44694 });
44695 messagesToDraw.forEach((e) => drawMessage(diagram2, e.messageModel, e.lineStartY, diagObj));
44696 if (conf$4.mirrorActors) {
44697 bounds$1.bumpVerticalPos(conf$4.boxMargin * 2);
44698 drawActors(diagram2, actors2, actorKeys, bounds$1.getVerticalPos(), conf$4, messages2, true);
44699 bounds$1.bumpVerticalPos(conf$4.boxMargin);
44700 fixLifeLineHeights(diagram2, bounds$1.getVerticalPos());
44701 }
44702 bounds$1.models.boxes.forEach(function(box2) {
44703 box2.height = bounds$1.getVerticalPos() - box2.y;
44704 bounds$1.insert(box2.x, box2.y, box2.x + box2.width, box2.height);
44705 box2.startx = box2.x;
44706 box2.starty = box2.y;
44707 box2.stopx = box2.startx + box2.width;
44708 box2.stopy = box2.starty + box2.height;
44709 box2.stroke = "rgb(0,0,0, 0.5)";
44710 svgDraw$3.drawBox(diagram2, box2, conf$4);
44711 });
44712 if (hasBoxes) {
44713 bounds$1.bumpVerticalPos(conf$4.boxMargin);
44714 }
44715 const requiredBoxSize = drawActorsPopup(diagram2, actors2, actorKeys, doc);
44716 const { bounds: box } = bounds$1.getBounds();
44717 log$1.debug("For line height fix Querying: #" + id2 + " .actor-line");
44718 const actorLines = selectAll("#" + id2 + " .actor-line");
44719 actorLines.attr("y2", box.stopy);
44720 let boxHeight = box.stopy - box.starty;
44721 if (boxHeight < requiredBoxSize.maxHeight) {
44722 boxHeight = requiredBoxSize.maxHeight;
44723 }
44724 let height2 = boxHeight + 2 * conf$4.diagramMarginY;
44725 if (conf$4.mirrorActors) {
44726 height2 = height2 - conf$4.boxMargin + conf$4.bottomMarginAdj;
44727 }
44728 let boxWidth = box.stopx - box.startx;
44729 if (boxWidth < requiredBoxSize.maxWidth) {
44730 boxWidth = requiredBoxSize.maxWidth;
44731 }
44732 const width2 = boxWidth + 2 * conf$4.diagramMarginX;
44733 if (title2) {
44734 diagram2.append("text").text(title2).attr("x", (box.stopx - box.startx) / 2 - 2 * conf$4.diagramMarginX).attr("y", -25);
44735 }
44736 configureSvgSize(diagram2, height2, width2, conf$4.useMaxWidth);
44737 const extraVertForTitle = title2 ? 40 : 0;
44738 diagram2.attr(
44739 "viewBox",
44740 box.startx - conf$4.diagramMarginX + " -" + (conf$4.diagramMarginY + extraVertForTitle) + " " + width2 + " " + (height2 + extraVertForTitle)
44741 );
44742 log$1.debug(`models:`, bounds$1.models);
44743 };
44744 function getMaxMessageWidthPerActor(actors2, messages2, diagObj) {
44745 const maxMessageWidthPerActor = {};
44746 messages2.forEach(function(msg) {
44747 if (actors2[msg.to] && actors2[msg.from]) {
44748 const actor = actors2[msg.to];
44749 if (msg.placement === diagObj.db.PLACEMENT.LEFTOF && !actor.prevActor) {
44750 return;
44751 }
44752 if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF && !actor.nextActor) {
44753 return;
44754 }
44755 const isNote = msg.placement !== void 0;
44756 const isMessage = !isNote;
44757 const textFont = isNote ? noteFont(conf$4) : messageFont(conf$4);
44758 const wrappedMessage = msg.wrap ? utils.wrapLabel(msg.message, conf$4.width - 2 * conf$4.wrapPadding, textFont) : msg.message;
44759 const messageDimensions = utils.calculateTextDimensions(wrappedMessage, textFont);
44760 const messageWidth = messageDimensions.width + 2 * conf$4.wrapPadding;
44761 if (isMessage && msg.from === actor.nextActor) {
44762 maxMessageWidthPerActor[msg.to] = common$1.getMax(
44763 maxMessageWidthPerActor[msg.to] || 0,
44764 messageWidth
44765 );
44766 } else if (isMessage && msg.from === actor.prevActor) {
44767 maxMessageWidthPerActor[msg.from] = common$1.getMax(
44768 maxMessageWidthPerActor[msg.from] || 0,
44769 messageWidth
44770 );
44771 } else if (isMessage && msg.from === msg.to) {
44772 maxMessageWidthPerActor[msg.from] = common$1.getMax(
44773 maxMessageWidthPerActor[msg.from] || 0,
44774 messageWidth / 2
44775 );
44776 maxMessageWidthPerActor[msg.to] = common$1.getMax(
44777 maxMessageWidthPerActor[msg.to] || 0,
44778 messageWidth / 2
44779 );
44780 } else if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {
44781 maxMessageWidthPerActor[msg.from] = common$1.getMax(
44782 maxMessageWidthPerActor[msg.from] || 0,
44783 messageWidth
44784 );
44785 } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {
44786 maxMessageWidthPerActor[actor.prevActor] = common$1.getMax(
44787 maxMessageWidthPerActor[actor.prevActor] || 0,
44788 messageWidth
44789 );
44790 } else if (msg.placement === diagObj.db.PLACEMENT.OVER) {
44791 if (actor.prevActor) {
44792 maxMessageWidthPerActor[actor.prevActor] = common$1.getMax(
44793 maxMessageWidthPerActor[actor.prevActor] || 0,
44794 messageWidth / 2
44795 );
44796 }
44797 if (actor.nextActor) {
44798 maxMessageWidthPerActor[msg.from] = common$1.getMax(
44799 maxMessageWidthPerActor[msg.from] || 0,
44800 messageWidth / 2
44801 );
44802 }
44803 }
44804 }
44805 });
44806 log$1.debug("maxMessageWidthPerActor:", maxMessageWidthPerActor);
44807 return maxMessageWidthPerActor;
44808 }
44809 const getRequiredPopupWidth = function(actor) {
44810 let requiredPopupWidth = 0;
44811 const textFont = actorFont(conf$4);
44812 for (const key in actor.links) {
44813 const labelDimensions = utils.calculateTextDimensions(key, textFont);
44814 const labelWidth = labelDimensions.width + 2 * conf$4.wrapPadding + 2 * conf$4.boxMargin;
44815 if (requiredPopupWidth < labelWidth) {
44816 requiredPopupWidth = labelWidth;
44817 }
44818 }
44819 return requiredPopupWidth;
44820 };
44821 function calculateActorMargins(actors2, actorToMessageWidth, boxes2) {
44822 let maxHeight = 0;
44823 Object.keys(actors2).forEach((prop) => {
44824 const actor = actors2[prop];
44825 if (actor.wrap) {
44826 actor.description = utils.wrapLabel(
44827 actor.description,
44828 conf$4.width - 2 * conf$4.wrapPadding,
44829 actorFont(conf$4)
44830 );
44831 }
44832 const actDims = utils.calculateTextDimensions(actor.description, actorFont(conf$4));
44833 actor.width = actor.wrap ? conf$4.width : common$1.getMax(conf$4.width, actDims.width + 2 * conf$4.wrapPadding);
44834 actor.height = actor.wrap ? common$1.getMax(actDims.height, conf$4.height) : conf$4.height;
44835 maxHeight = common$1.getMax(maxHeight, actor.height);
44836 });
44837 for (const actorKey in actorToMessageWidth) {
44838 const actor = actors2[actorKey];
44839 if (!actor) {
44840 continue;
44841 }
44842 const nextActor = actors2[actor.nextActor];
44843 if (!nextActor) {
44844 const messageWidth2 = actorToMessageWidth[actorKey];
44845 const actorWidth2 = messageWidth2 + conf$4.actorMargin - actor.width / 2;
44846 actor.margin = common$1.getMax(actorWidth2, conf$4.actorMargin);
44847 continue;
44848 }
44849 const messageWidth = actorToMessageWidth[actorKey];
44850 const actorWidth = messageWidth + conf$4.actorMargin - actor.width / 2 - nextActor.width / 2;
44851 actor.margin = common$1.getMax(actorWidth, conf$4.actorMargin);
44852 }
44853 let maxBoxHeight = 0;
44854 boxes2.forEach((box) => {
44855 const textFont = messageFont(conf$4);
44856 let totalWidth = box.actorKeys.reduce((total, aKey) => {
44857 return total += actors2[aKey].width + (actors2[aKey].margin || 0);
44858 }, 0);
44859 totalWidth -= 2 * conf$4.boxTextMargin;
44860 if (box.wrap) {
44861 box.name = utils.wrapLabel(box.name, totalWidth - 2 * conf$4.wrapPadding, textFont);
44862 }
44863 const boxMsgDimensions = utils.calculateTextDimensions(box.name, textFont);
44864 maxBoxHeight = common$1.getMax(boxMsgDimensions.height, maxBoxHeight);
44865 const minWidth = common$1.getMax(totalWidth, boxMsgDimensions.width + 2 * conf$4.wrapPadding);
44866 box.margin = conf$4.boxTextMargin;
44867 if (totalWidth < minWidth) {
44868 const missing = (minWidth - totalWidth) / 2;
44869 box.margin += missing;
44870 }
44871 });
44872 boxes2.forEach((box) => box.textMaxHeight = maxBoxHeight);
44873 return common$1.getMax(maxHeight, conf$4.height);
44874 }
44875 const buildNoteModel = function(msg, actors2, diagObj) {
44876 const startx = actors2[msg.from].x;
44877 const stopx = actors2[msg.to].x;
44878 const shouldWrap = msg.wrap && msg.message;
44879 let textDimensions = utils.calculateTextDimensions(
44880 shouldWrap ? utils.wrapLabel(msg.message, conf$4.width, noteFont(conf$4)) : msg.message,
44881 noteFont(conf$4)
44882 );
44883 const noteModel = {
44884 width: shouldWrap ? conf$4.width : common$1.getMax(conf$4.width, textDimensions.width + 2 * conf$4.noteMargin),
44885 height: 0,
44886 startx: actors2[msg.from].x,
44887 stopx: 0,
44888 starty: 0,
44889 stopy: 0,
44890 message: msg.message
44891 };
44892 if (msg.placement === diagObj.db.PLACEMENT.RIGHTOF) {
44893 noteModel.width = shouldWrap ? common$1.getMax(conf$4.width, textDimensions.width) : common$1.getMax(
44894 actors2[msg.from].width / 2 + actors2[msg.to].width / 2,
44895 textDimensions.width + 2 * conf$4.noteMargin
44896 );
44897 noteModel.startx = startx + (actors2[msg.from].width + conf$4.actorMargin) / 2;
44898 } else if (msg.placement === diagObj.db.PLACEMENT.LEFTOF) {
44899 noteModel.width = shouldWrap ? common$1.getMax(conf$4.width, textDimensions.width + 2 * conf$4.noteMargin) : common$1.getMax(
44900 actors2[msg.from].width / 2 + actors2[msg.to].width / 2,
44901 textDimensions.width + 2 * conf$4.noteMargin
44902 );
44903 noteModel.startx = startx - noteModel.width + (actors2[msg.from].width - conf$4.actorMargin) / 2;
44904 } else if (msg.to === msg.from) {
44905 textDimensions = utils.calculateTextDimensions(
44906 shouldWrap ? utils.wrapLabel(
44907 msg.message,
44908 common$1.getMax(conf$4.width, actors2[msg.from].width),
44909 noteFont(conf$4)
44910 ) : msg.message,
44911 noteFont(conf$4)
44912 );
44913 noteModel.width = shouldWrap ? common$1.getMax(conf$4.width, actors2[msg.from].width) : common$1.getMax(
44914 actors2[msg.from].width,
44915 conf$4.width,
44916 textDimensions.width + 2 * conf$4.noteMargin
44917 );
44918 noteModel.startx = startx + (actors2[msg.from].width - noteModel.width) / 2;
44919 } else {
44920 noteModel.width = Math.abs(startx + actors2[msg.from].width / 2 - (stopx + actors2[msg.to].width / 2)) + conf$4.actorMargin;
44921 noteModel.startx = startx < stopx ? startx + actors2[msg.from].width / 2 - conf$4.actorMargin / 2 : stopx + actors2[msg.to].width / 2 - conf$4.actorMargin / 2;
44922 }
44923 if (shouldWrap) {
44924 noteModel.message = utils.wrapLabel(
44925 msg.message,
44926 noteModel.width - 2 * conf$4.wrapPadding,
44927 noteFont(conf$4)
44928 );
44929 }
44930 log$1.debug(
44931 `NM:[${noteModel.startx},${noteModel.stopx},${noteModel.starty},${noteModel.stopy}:${noteModel.width},${noteModel.height}=${msg.message}]`
44932 );
44933 return noteModel;
44934 };
44935 const buildMessageModel = function(msg, actors2, diagObj) {
44936 let process = false;
44937 if ([
44938 diagObj.db.LINETYPE.SOLID_OPEN,
44939 diagObj.db.LINETYPE.DOTTED_OPEN,
44940 diagObj.db.LINETYPE.SOLID,
44941 diagObj.db.LINETYPE.DOTTED,
44942 diagObj.db.LINETYPE.SOLID_CROSS,
44943 diagObj.db.LINETYPE.DOTTED_CROSS,
44944 diagObj.db.LINETYPE.SOLID_POINT,
44945 diagObj.db.LINETYPE.DOTTED_POINT
44946 ].includes(msg.type)) {
44947 process = true;
44948 }
44949 if (!process) {
44950 return {};
44951 }
44952 const fromBounds = activationBounds(msg.from, actors2);
44953 const toBounds = activationBounds(msg.to, actors2);
44954 const fromIdx = fromBounds[0] <= toBounds[0] ? 1 : 0;
44955 const toIdx = fromBounds[0] < toBounds[0] ? 0 : 1;
44956 const allBounds = [...fromBounds, ...toBounds];
44957 const boundedWidth = Math.abs(toBounds[toIdx] - fromBounds[fromIdx]);
44958 if (msg.wrap && msg.message) {
44959 msg.message = utils.wrapLabel(
44960 msg.message,
44961 common$1.getMax(boundedWidth + 2 * conf$4.wrapPadding, conf$4.width),
44962 messageFont(conf$4)
44963 );
44964 }
44965 const msgDims = utils.calculateTextDimensions(msg.message, messageFont(conf$4));
44966 return {
44967 width: common$1.getMax(
44968 msg.wrap ? 0 : msgDims.width + 2 * conf$4.wrapPadding,
44969 boundedWidth + 2 * conf$4.wrapPadding,
44970 conf$4.width
44971 ),
44972 height: 0,
44973 startx: fromBounds[fromIdx],
44974 stopx: toBounds[toIdx],
44975 starty: 0,
44976 stopy: 0,
44977 message: msg.message,
44978 type: msg.type,
44979 wrap: msg.wrap,
44980 fromBounds: Math.min.apply(null, allBounds),
44981 toBounds: Math.max.apply(null, allBounds)
44982 };
44983 };
44984 const calculateLoopBounds = function(messages2, actors2, _maxWidthPerActor, diagObj) {
44985 const loops = {};
44986 const stack = [];
44987 let current, noteModel, msgModel;
44988 messages2.forEach(function(msg) {
44989 msg.id = utils.random({ length: 10 });
44990 switch (msg.type) {
44991 case diagObj.db.LINETYPE.LOOP_START:
44992 case diagObj.db.LINETYPE.ALT_START:
44993 case diagObj.db.LINETYPE.OPT_START:
44994 case diagObj.db.LINETYPE.PAR_START:
44995 case diagObj.db.LINETYPE.PAR_OVER_START:
44996 case diagObj.db.LINETYPE.CRITICAL_START:
44997 case diagObj.db.LINETYPE.BREAK_START:
44998 stack.push({
44999 id: msg.id,
45000 msg: msg.message,
45001 from: Number.MAX_SAFE_INTEGER,
45002 to: Number.MIN_SAFE_INTEGER,
45003 width: 0
45004 });
45005 break;
45006 case diagObj.db.LINETYPE.ALT_ELSE:
45007 case diagObj.db.LINETYPE.PAR_AND:
45008 case diagObj.db.LINETYPE.CRITICAL_OPTION:
45009 if (msg.message) {
45010 current = stack.pop();
45011 loops[current.id] = current;
45012 loops[msg.id] = current;
45013 stack.push(current);
45014 }
45015 break;
45016 case diagObj.db.LINETYPE.LOOP_END:
45017 case diagObj.db.LINETYPE.ALT_END:
45018 case diagObj.db.LINETYPE.OPT_END:
45019 case diagObj.db.LINETYPE.PAR_END:
45020 case diagObj.db.LINETYPE.CRITICAL_END:
45021 case diagObj.db.LINETYPE.BREAK_END:
45022 current = stack.pop();
45023 loops[current.id] = current;
45024 break;
45025 case diagObj.db.LINETYPE.ACTIVE_START:
45026 {
45027 const actorRect = actors2[msg.from ? msg.from.actor : msg.to.actor];
45028 const stackedSize = actorActivations(msg.from ? msg.from.actor : msg.to.actor).length;
45029 const x2 = actorRect.x + actorRect.width / 2 + (stackedSize - 1) * conf$4.activationWidth / 2;
45030 const toAdd = {
45031 startx: x2,
45032 stopx: x2 + conf$4.activationWidth,
45033 actor: msg.from.actor,
45034 enabled: true
45035 };
45036 bounds$1.activations.push(toAdd);
45037 }
45038 break;
45039 case diagObj.db.LINETYPE.ACTIVE_END:
45040 {
45041 const lastActorActivationIdx = bounds$1.activations.map((a) => a.actor).lastIndexOf(msg.from.actor);
45042 delete bounds$1.activations.splice(lastActorActivationIdx, 1)[0];
45043 }
45044 break;
45045 }
45046 const isNote = msg.placement !== void 0;
45047 if (isNote) {
45048 noteModel = buildNoteModel(msg, actors2, diagObj);
45049 msg.noteModel = noteModel;
45050 stack.forEach((stk) => {
45051 current = stk;
45052 current.from = common$1.getMin(current.from, noteModel.startx);
45053 current.to = common$1.getMax(current.to, noteModel.startx + noteModel.width);
45054 current.width = common$1.getMax(current.width, Math.abs(current.from - current.to)) - conf$4.labelBoxWidth;
45055 });
45056 } else {
45057 msgModel = buildMessageModel(msg, actors2, diagObj);
45058 msg.msgModel = msgModel;
45059 if (msgModel.startx && msgModel.stopx && stack.length > 0) {
45060 stack.forEach((stk) => {
45061 current = stk;
45062 if (msgModel.startx === msgModel.stopx) {
45063 const from2 = actors2[msg.from];
45064 const to = actors2[msg.to];
45065 current.from = common$1.getMin(
45066 from2.x - msgModel.width / 2,
45067 from2.x - from2.width / 2,
45068 current.from
45069 );
45070 current.to = common$1.getMax(
45071 to.x + msgModel.width / 2,
45072 to.x + from2.width / 2,
45073 current.to
45074 );
45075 current.width = common$1.getMax(current.width, Math.abs(current.to - current.from)) - conf$4.labelBoxWidth;
45076 } else {
45077 current.from = common$1.getMin(msgModel.startx, current.from);
45078 current.to = common$1.getMax(msgModel.stopx, current.to);
45079 current.width = common$1.getMax(current.width, msgModel.width) - conf$4.labelBoxWidth;
45080 }
45081 });
45082 }
45083 }
45084 });
45085 bounds$1.activations = [];
45086 log$1.debug("Loop type widths:", loops);
45087 return loops;
45088 };
45089 const renderer$7 = {
45090 bounds: bounds$1,
45091 drawActors,
45092 drawActorsPopup,
45093 setConf: setConf$4,
45094 draw: draw$8
45095 };
45096 const diagram$8 = {
45097 parser: parser$a,
45098 db: db$4,
45099 renderer: renderer$7,
45100 styles: styles$5
45101 };
45102 const sequenceDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
45103 __proto__: null,
45104 diagram: diagram$8
45105 }, Symbol.toStringTag, { value: "Module" }));
45106 var parser$7 = function() {
45107 var o = function(k, v, o2, l) {
45108 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
45109 ;
45110 return o2;
45111 }, $V0 = [1, 34], $V1 = [1, 35], $V2 = [1, 36], $V3 = [1, 37], $V4 = [1, 9], $V5 = [1, 8], $V6 = [1, 19], $V7 = [1, 20], $V8 = [1, 21], $V9 = [1, 40], $Va = [1, 41], $Vb = [1, 27], $Vc = [1, 25], $Vd = [1, 26], $Ve = [1, 32], $Vf = [1, 33], $Vg = [1, 28], $Vh = [1, 29], $Vi = [1, 30], $Vj = [1, 31], $Vk = [1, 45], $Vl = [1, 42], $Vm = [1, 43], $Vn = [1, 44], $Vo = [1, 46], $Vp = [1, 24], $Vq = [1, 16, 24], $Vr = [1, 60], $Vs = [1, 61], $Vt = [1, 62], $Vu = [1, 63], $Vv = [1, 64], $Vw = [1, 65], $Vx = [1, 66], $Vy = [1, 16, 24, 52], $Vz = [1, 77], $VA = [1, 16, 24, 27, 28, 36, 50, 52, 55, 68, 69, 70, 71, 72, 73, 74, 79, 81], $VB = [1, 16, 24, 27, 28, 34, 36, 50, 52, 55, 59, 68, 69, 70, 71, 72, 73, 74, 79, 81, 94, 96, 97, 98, 99], $VC = [1, 86], $VD = [28, 94, 96, 97, 98, 99], $VE = [28, 73, 74, 94, 96, 97, 98, 99], $VF = [28, 68, 69, 70, 71, 72, 94, 96, 97, 98, 99], $VG = [1, 99], $VH = [1, 16, 24, 50, 52, 55], $VI = [1, 16, 24, 36], $VJ = [8, 9, 10, 11, 19, 23, 44, 46, 48, 53, 57, 58, 60, 61, 63, 65, 75, 76, 78, 82, 94, 96, 97, 98, 99];
45112 var parser2 = {
45113 trace: function trace() {
45114 },
45115 yy: {},
45116 symbols_: { "error": 2, "start": 3, "mermaidDoc": 4, "directive": 5, "statements": 6, "direction": 7, "direction_tb": 8, "direction_bt": 9, "direction_rl": 10, "direction_lr": 11, "graphConfig": 12, "openDirective": 13, "typeDirective": 14, "closeDirective": 15, "NEWLINE": 16, ":": 17, "argDirective": 18, "open_directive": 19, "type_directive": 20, "arg_directive": 21, "close_directive": 22, "CLASS_DIAGRAM": 23, "EOF": 24, "statement": 25, "classLabel": 26, "SQS": 27, "STR": 28, "SQE": 29, "namespaceName": 30, "alphaNumToken": 31, "className": 32, "classLiteralName": 33, "GENERICTYPE": 34, "relationStatement": 35, "LABEL": 36, "namespaceStatement": 37, "classStatement": 38, "methodStatement": 39, "annotationStatement": 40, "clickStatement": 41, "cssClassStatement": 42, "noteStatement": 43, "acc_title": 44, "acc_title_value": 45, "acc_descr": 46, "acc_descr_value": 47, "acc_descr_multiline_value": 48, "namespaceIdentifier": 49, "STRUCT_START": 50, "classStatements": 51, "STRUCT_STOP": 52, "NAMESPACE": 53, "classIdentifier": 54, "STYLE_SEPARATOR": 55, "members": 56, "CLASS": 57, "ANNOTATION_START": 58, "ANNOTATION_END": 59, "MEMBER": 60, "SEPARATOR": 61, "relation": 62, "NOTE_FOR": 63, "noteText": 64, "NOTE": 65, "relationType": 66, "lineType": 67, "AGGREGATION": 68, "EXTENSION": 69, "COMPOSITION": 70, "DEPENDENCY": 71, "LOLLIPOP": 72, "LINE": 73, "DOTTED_LINE": 74, "CALLBACK": 75, "LINK": 76, "LINK_TARGET": 77, "CLICK": 78, "CALLBACK_NAME": 79, "CALLBACK_ARGS": 80, "HREF": 81, "CSSCLASS": 82, "commentToken": 83, "textToken": 84, "graphCodeTokens": 85, "textNoTagsToken": 86, "TAGSTART": 87, "TAGEND": 88, "==": 89, "--": 90, "PCT": 91, "DEFAULT": 92, "SPACE": 93, "MINUS": 94, "keywords": 95, "UNICODE_TEXT": 96, "NUM": 97, "ALPHA": 98, "BQUOTE_STR": 99, "$accept": 0, "$end": 1 },
45117 terminals_: { 2: "error", 8: "direction_tb", 9: "direction_bt", 10: "direction_rl", 11: "direction_lr", 16: "NEWLINE", 17: ":", 19: "open_directive", 20: "type_directive", 21: "arg_directive", 22: "close_directive", 23: "CLASS_DIAGRAM", 24: "EOF", 27: "SQS", 28: "STR", 29: "SQE", 34: "GENERICTYPE", 36: "LABEL", 44: "acc_title", 45: "acc_title_value", 46: "acc_descr", 47: "acc_descr_value", 48: "acc_descr_multiline_value", 50: "STRUCT_START", 52: "STRUCT_STOP", 53: "NAMESPACE", 55: "STYLE_SEPARATOR", 57: "CLASS", 58: "ANNOTATION_START", 59: "ANNOTATION_END", 60: "MEMBER", 61: "SEPARATOR", 63: "NOTE_FOR", 65: "NOTE", 68: "AGGREGATION", 69: "EXTENSION", 70: "COMPOSITION", 71: "DEPENDENCY", 72: "LOLLIPOP", 73: "LINE", 74: "DOTTED_LINE", 75: "CALLBACK", 76: "LINK", 77: "LINK_TARGET", 78: "CLICK", 79: "CALLBACK_NAME", 80: "CALLBACK_ARGS", 81: "HREF", 82: "CSSCLASS", 85: "graphCodeTokens", 87: "TAGSTART", 88: "TAGEND", 89: "==", 90: "--", 91: "PCT", 92: "DEFAULT", 93: "SPACE", 94: "MINUS", 95: "keywords", 96: "UNICODE_TEXT", 97: "NUM", 98: "ALPHA", 99: "BQUOTE_STR" },
45118 productions_: [0, [3, 1], [3, 2], [3, 1], [7, 1], [7, 1], [7, 1], [7, 1], [4, 1], [5, 4], [5, 6], [13, 1], [14, 1], [18, 1], [15, 1], [12, 4], [6, 1], [6, 2], [6, 3], [26, 3], [30, 1], [30, 2], [32, 1], [32, 1], [32, 2], [32, 2], [32, 2], [25, 1], [25, 2], [25, 1], [25, 1], [25, 1], [25, 1], [25, 1], [25, 1], [25, 1], [25, 1], [25, 2], [25, 2], [25, 1], [37, 4], [37, 5], [49, 2], [51, 1], [51, 2], [51, 3], [38, 1], [38, 3], [38, 4], [38, 6], [54, 2], [54, 3], [40, 4], [56, 1], [56, 2], [39, 1], [39, 2], [39, 1], [39, 1], [35, 3], [35, 4], [35, 4], [35, 5], [43, 3], [43, 2], [62, 3], [62, 2], [62, 2], [62, 1], [66, 1], [66, 1], [66, 1], [66, 1], [66, 1], [67, 1], [67, 1], [41, 3], [41, 4], [41, 3], [41, 4], [41, 4], [41, 5], [41, 3], [41, 4], [41, 4], [41, 5], [41, 3], [41, 4], [41, 4], [41, 5], [42, 3], [83, 1], [83, 1], [84, 1], [84, 1], [84, 1], [84, 1], [84, 1], [84, 1], [84, 1], [86, 1], [86, 1], [86, 1], [86, 1], [31, 1], [31, 1], [31, 1], [31, 1], [33, 1], [64, 1]],
45119 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
45120 var $0 = $$.length - 1;
45121 switch (yystate) {
45122 case 4:
45123 yy.setDirection("TB");
45124 break;
45125 case 5:
45126 yy.setDirection("BT");
45127 break;
45128 case 6:
45129 yy.setDirection("RL");
45130 break;
45131 case 7:
45132 yy.setDirection("LR");
45133 break;
45134 case 11:
45135 yy.parseDirective("%%{", "open_directive");
45136 break;
45137 case 12:
45138 yy.parseDirective($$[$0], "type_directive");
45139 break;
45140 case 13:
45141 $$[$0] = $$[$0].trim().replace(/'/g, '"');
45142 yy.parseDirective($$[$0], "arg_directive");
45143 break;
45144 case 14:
45145 yy.parseDirective("}%%", "close_directive", "class");
45146 break;
45147 case 19:
45148 this.$ = $$[$0 - 1];
45149 break;
45150 case 20:
45151 case 22:
45152 case 23:
45153 this.$ = $$[$0];
45154 break;
45155 case 21:
45156 case 24:
45157 this.$ = $$[$0 - 1] + $$[$0];
45158 break;
45159 case 25:
45160 case 26:
45161 this.$ = $$[$0 - 1] + "~" + $$[$0] + "~";
45162 break;
45163 case 27:
45164 yy.addRelation($$[$0]);
45165 break;
45166 case 28:
45167 $$[$0 - 1].title = yy.cleanupLabel($$[$0]);
45168 yy.addRelation($$[$0 - 1]);
45169 break;
45170 case 37:
45171 this.$ = $$[$0].trim();
45172 yy.setAccTitle(this.$);
45173 break;
45174 case 38:
45175 case 39:
45176 this.$ = $$[$0].trim();
45177 yy.setAccDescription(this.$);
45178 break;
45179 case 40:
45180 yy.addClassesToNamespace($$[$0 - 3], $$[$0 - 1]);
45181 break;
45182 case 41:
45183 yy.addClassesToNamespace($$[$0 - 4], $$[$0 - 1]);
45184 break;
45185 case 42:
45186 this.$ = $$[$0];
45187 yy.addNamespace($$[$0]);
45188 break;
45189 case 43:
45190 this.$ = [$$[$0]];
45191 break;
45192 case 44:
45193 this.$ = [$$[$0 - 1]];
45194 break;
45195 case 45:
45196 $$[$0].unshift($$[$0 - 2]);
45197 this.$ = $$[$0];
45198 break;
45199 case 47:
45200 yy.setCssClass($$[$0 - 2], $$[$0]);
45201 break;
45202 case 48:
45203 yy.addMembers($$[$0 - 3], $$[$0 - 1]);
45204 break;
45205 case 49:
45206 yy.setCssClass($$[$0 - 5], $$[$0 - 3]);
45207 yy.addMembers($$[$0 - 5], $$[$0 - 1]);
45208 break;
45209 case 50:
45210 this.$ = $$[$0];
45211 yy.addClass($$[$0]);
45212 break;
45213 case 51:
45214 this.$ = $$[$0 - 1];
45215 yy.addClass($$[$0 - 1]);
45216 yy.setClassLabel($$[$0 - 1], $$[$0]);
45217 break;
45218 case 52:
45219 yy.addAnnotation($$[$0], $$[$0 - 2]);
45220 break;
45221 case 53:
45222 this.$ = [$$[$0]];
45223 break;
45224 case 54:
45225 $$[$0].push($$[$0 - 1]);
45226 this.$ = $$[$0];
45227 break;
45228 case 55:
45229 break;
45230 case 56:
45231 yy.addMember($$[$0 - 1], yy.cleanupLabel($$[$0]));
45232 break;
45233 case 57:
45234 break;
45235 case 58:
45236 break;
45237 case 59:
45238 this.$ = { "id1": $$[$0 - 2], "id2": $$[$0], relation: $$[$0 - 1], relationTitle1: "none", relationTitle2: "none" };
45239 break;
45240 case 60:
45241 this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 1], relationTitle1: $$[$0 - 2], relationTitle2: "none" };
45242 break;
45243 case 61:
45244 this.$ = { id1: $$[$0 - 3], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: "none", relationTitle2: $$[$0 - 1] };
45245 break;
45246 case 62:
45247 this.$ = { id1: $$[$0 - 4], id2: $$[$0], relation: $$[$0 - 2], relationTitle1: $$[$0 - 3], relationTitle2: $$[$0 - 1] };
45248 break;
45249 case 63:
45250 yy.addNote($$[$0], $$[$0 - 1]);
45251 break;
45252 case 64:
45253 yy.addNote($$[$0]);
45254 break;
45255 case 65:
45256 this.$ = { type1: $$[$0 - 2], type2: $$[$0], lineType: $$[$0 - 1] };
45257 break;
45258 case 66:
45259 this.$ = { type1: "none", type2: $$[$0], lineType: $$[$0 - 1] };
45260 break;
45261 case 67:
45262 this.$ = { type1: $$[$0 - 1], type2: "none", lineType: $$[$0] };
45263 break;
45264 case 68:
45265 this.$ = { type1: "none", type2: "none", lineType: $$[$0] };
45266 break;
45267 case 69:
45268 this.$ = yy.relationType.AGGREGATION;
45269 break;
45270 case 70:
45271 this.$ = yy.relationType.EXTENSION;
45272 break;
45273 case 71:
45274 this.$ = yy.relationType.COMPOSITION;
45275 break;
45276 case 72:
45277 this.$ = yy.relationType.DEPENDENCY;
45278 break;
45279 case 73:
45280 this.$ = yy.relationType.LOLLIPOP;
45281 break;
45282 case 74:
45283 this.$ = yy.lineType.LINE;
45284 break;
45285 case 75:
45286 this.$ = yy.lineType.DOTTED_LINE;
45287 break;
45288 case 76:
45289 case 82:
45290 this.$ = $$[$0 - 2];
45291 yy.setClickEvent($$[$0 - 1], $$[$0]);
45292 break;
45293 case 77:
45294 case 83:
45295 this.$ = $$[$0 - 3];
45296 yy.setClickEvent($$[$0 - 2], $$[$0 - 1]);
45297 yy.setTooltip($$[$0 - 2], $$[$0]);
45298 break;
45299 case 78:
45300 case 86:
45301 this.$ = $$[$0 - 2];
45302 yy.setLink($$[$0 - 1], $$[$0]);
45303 break;
45304 case 79:
45305 this.$ = $$[$0 - 3];
45306 yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]);
45307 break;
45308 case 80:
45309 case 88:
45310 this.$ = $$[$0 - 3];
45311 yy.setLink($$[$0 - 2], $$[$0 - 1]);
45312 yy.setTooltip($$[$0 - 2], $$[$0]);
45313 break;
45314 case 81:
45315 case 89:
45316 this.$ = $$[$0 - 4];
45317 yy.setLink($$[$0 - 3], $$[$0 - 2], $$[$0]);
45318 yy.setTooltip($$[$0 - 3], $$[$0 - 1]);
45319 break;
45320 case 84:
45321 this.$ = $$[$0 - 3];
45322 yy.setClickEvent($$[$0 - 2], $$[$0 - 1], $$[$0]);
45323 break;
45324 case 85:
45325 this.$ = $$[$0 - 4];
45326 yy.setClickEvent($$[$0 - 3], $$[$0 - 2], $$[$0 - 1]);
45327 yy.setTooltip($$[$0 - 3], $$[$0]);
45328 break;
45329 case 87:
45330 this.$ = $$[$0 - 3];
45331 yy.setLink($$[$0 - 2], $$[$0 - 1], $$[$0]);
45332 break;
45333 case 90:
45334 yy.setCssClass($$[$0 - 1], $$[$0]);
45335 break;
45336 }
45337 },
45338 table: [{ 3: 1, 4: 2, 5: 3, 6: 4, 7: 18, 8: $V0, 9: $V1, 10: $V2, 11: $V3, 12: 5, 13: 6, 19: $V4, 23: $V5, 25: 7, 31: 38, 32: 22, 33: 39, 35: 10, 37: 11, 38: 12, 39: 13, 40: 14, 41: 15, 42: 16, 43: 17, 44: $V6, 46: $V7, 48: $V8, 49: 23, 53: $V9, 54: 24, 57: $Va, 58: $Vb, 60: $Vc, 61: $Vd, 63: $Ve, 65: $Vf, 75: $Vg, 76: $Vh, 78: $Vi, 82: $Vj, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 1: [3] }, { 1: [2, 1] }, { 3: 47, 4: 2, 5: 3, 6: 4, 7: 18, 8: $V0, 9: $V1, 10: $V2, 11: $V3, 12: 5, 13: 6, 19: $V4, 23: $V5, 25: 7, 31: 38, 32: 22, 33: 39, 35: 10, 37: 11, 38: 12, 39: 13, 40: 14, 41: 15, 42: 16, 43: 17, 44: $V6, 46: $V7, 48: $V8, 49: 23, 53: $V9, 54: 24, 57: $Va, 58: $Vb, 60: $Vc, 61: $Vd, 63: $Ve, 65: $Vf, 75: $Vg, 76: $Vh, 78: $Vi, 82: $Vj, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 1: [2, 3] }, { 1: [2, 8] }, { 14: 48, 20: [1, 49] }, o($Vp, [2, 16], { 16: [1, 50] }), { 16: [1, 51] }, { 20: [2, 11] }, o($Vq, [2, 27], { 36: [1, 52] }), o($Vq, [2, 29]), o($Vq, [2, 30]), o($Vq, [2, 31]), o($Vq, [2, 32]), o($Vq, [2, 33]), o($Vq, [2, 34]), o($Vq, [2, 35]), o($Vq, [2, 36]), { 45: [1, 53] }, { 47: [1, 54] }, o($Vq, [2, 39]), o($Vq, [2, 55], { 62: 55, 66: 58, 67: 59, 28: [1, 56], 36: [1, 57], 68: $Vr, 69: $Vs, 70: $Vt, 71: $Vu, 72: $Vv, 73: $Vw, 74: $Vx }), { 50: [1, 67] }, o($Vy, [2, 46], { 50: [1, 69], 55: [1, 68] }), o($Vq, [2, 57]), o($Vq, [2, 58]), { 31: 70, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn }, { 31: 38, 32: 71, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 31: 38, 32: 72, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 31: 38, 32: 73, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 28: [1, 74] }, { 31: 38, 32: 75, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 28: $Vz, 64: 76 }, o($Vq, [2, 4]), o($Vq, [2, 5]), o($Vq, [2, 6]), o($Vq, [2, 7]), o($VA, [2, 22], { 31: 38, 33: 39, 32: 78, 34: [1, 79], 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }), o($VA, [2, 23], { 34: [1, 80] }), { 30: 81, 31: 82, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn }, { 31: 38, 32: 83, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, o($VB, [2, 104]), o($VB, [2, 105]), o($VB, [2, 106]), o($VB, [2, 107]), o([1, 16, 24, 27, 28, 34, 36, 50, 52, 55, 68, 69, 70, 71, 72, 73, 74, 79, 81], [2, 108]), { 1: [2, 2] }, { 15: 84, 17: [1, 85], 22: $VC }, o([17, 22], [2, 12]), o($Vp, [2, 17], { 25: 7, 35: 10, 37: 11, 38: 12, 39: 13, 40: 14, 41: 15, 42: 16, 43: 17, 7: 18, 32: 22, 49: 23, 54: 24, 31: 38, 33: 39, 6: 87, 8: $V0, 9: $V1, 10: $V2, 11: $V3, 44: $V6, 46: $V7, 48: $V8, 53: $V9, 57: $Va, 58: $Vb, 60: $Vc, 61: $Vd, 63: $Ve, 65: $Vf, 75: $Vg, 76: $Vh, 78: $Vi, 82: $Vj, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }), { 6: 88, 7: 18, 8: $V0, 9: $V1, 10: $V2, 11: $V3, 25: 7, 31: 38, 32: 22, 33: 39, 35: 10, 37: 11, 38: 12, 39: 13, 40: 14, 41: 15, 42: 16, 43: 17, 44: $V6, 46: $V7, 48: $V8, 49: 23, 53: $V9, 54: 24, 57: $Va, 58: $Vb, 60: $Vc, 61: $Vd, 63: $Ve, 65: $Vf, 75: $Vg, 76: $Vh, 78: $Vi, 82: $Vj, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, o($Vq, [2, 28]), o($Vq, [2, 37]), o($Vq, [2, 38]), { 28: [1, 90], 31: 38, 32: 89, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 62: 91, 66: 58, 67: 59, 68: $Vr, 69: $Vs, 70: $Vt, 71: $Vu, 72: $Vv, 73: $Vw, 74: $Vx }, o($Vq, [2, 56]), { 67: 92, 73: $Vw, 74: $Vx }, o($VD, [2, 68], { 66: 93, 68: $Vr, 69: $Vs, 70: $Vt, 71: $Vu, 72: $Vv }), o($VE, [2, 69]), o($VE, [2, 70]), o($VE, [2, 71]), o($VE, [2, 72]), o($VE, [2, 73]), o($VF, [2, 74]), o($VF, [2, 75]), { 16: [1, 95], 38: 96, 51: 94, 54: 24, 57: $Va }, { 31: 97, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn }, { 56: 98, 60: $VG }, { 59: [1, 100] }, { 28: [1, 101] }, { 28: [1, 102] }, { 79: [1, 103], 81: [1, 104] }, { 31: 105, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn }, { 28: $Vz, 64: 106 }, o($Vq, [2, 64]), o($Vq, [2, 109]), o($VA, [2, 24]), o($VA, [2, 25]), o($VA, [2, 26]), { 50: [2, 42] }, { 30: 107, 31: 82, 50: [2, 20], 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn }, o($VH, [2, 50], { 26: 108, 27: [1, 109] }), { 16: [1, 110] }, { 18: 111, 21: [1, 112] }, { 16: [2, 14] }, o($Vp, [2, 18]), { 24: [1, 113] }, o($VI, [2, 59]), { 31: 38, 32: 114, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, { 28: [1, 116], 31: 38, 32: 115, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, o($VD, [2, 67], { 66: 117, 68: $Vr, 69: $Vs, 70: $Vt, 71: $Vu, 72: $Vv }), o($VD, [2, 66]), { 52: [1, 118] }, { 38: 96, 51: 119, 54: 24, 57: $Va }, { 16: [1, 120], 52: [2, 43] }, o($Vy, [2, 47], { 50: [1, 121] }), { 52: [1, 122] }, { 52: [2, 53], 56: 123, 60: $VG }, { 31: 38, 32: 124, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, o($Vq, [2, 76], { 28: [1, 125] }), o($Vq, [2, 78], { 28: [1, 127], 77: [1, 126] }), o($Vq, [2, 82], { 28: [1, 128], 80: [1, 129] }), o($Vq, [2, 86], { 28: [1, 131], 77: [1, 130] }), o($Vq, [2, 90]), o($Vq, [2, 63]), { 50: [2, 21] }, o($VH, [2, 51]), { 28: [1, 132] }, o($VJ, [2, 9]), { 15: 133, 22: $VC }, { 22: [2, 13] }, { 1: [2, 15] }, o($VI, [2, 61]), o($VI, [2, 60]), { 31: 38, 32: 134, 33: 39, 94: $Vk, 96: $Vl, 97: $Vm, 98: $Vn, 99: $Vo }, o($VD, [2, 65]), o($Vq, [2, 40]), { 52: [1, 135] }, { 38: 96, 51: 136, 52: [2, 44], 54: 24, 57: $Va }, { 56: 137, 60: $VG }, o($Vy, [2, 48]), { 52: [2, 54] }, o($Vq, [2, 52]), o($Vq, [2, 77]), o($Vq, [2, 79]), o($Vq, [2, 80], { 77: [1, 138] }), o($Vq, [2, 83]), o($Vq, [2, 84], { 28: [1, 139] }), o($Vq, [2, 87]), o($Vq, [2, 88], { 77: [1, 140] }), { 29: [1, 141] }, { 16: [1, 142] }, o($VI, [2, 62]), o($Vq, [2, 41]), { 52: [2, 45] }, { 52: [1, 143] }, o($Vq, [2, 81]), o($Vq, [2, 85]), o($Vq, [2, 89]), o($VH, [2, 19]), o($VJ, [2, 10]), o($Vy, [2, 49])],
45339 defaultActions: { 2: [2, 1], 4: [2, 3], 5: [2, 8], 9: [2, 11], 47: [2, 2], 81: [2, 42], 86: [2, 14], 107: [2, 21], 112: [2, 13], 113: [2, 15], 123: [2, 54], 136: [2, 45] },
45340 parseError: function parseError2(str2, hash) {
45341 if (hash.recoverable) {
45342 this.trace(str2);
45343 } else {
45344 var error = new Error(str2);
45345 error.hash = hash;
45346 throw error;
45347 }
45348 },
45349 parse: function parse2(input) {
45350 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
45351 var args = lstack.slice.call(arguments, 1);
45352 var lexer2 = Object.create(this.lexer);
45353 var sharedState = { yy: {} };
45354 for (var k in this.yy) {
45355 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
45356 sharedState.yy[k] = this.yy[k];
45357 }
45358 }
45359 lexer2.setInput(input, sharedState.yy);
45360 sharedState.yy.lexer = lexer2;
45361 sharedState.yy.parser = this;
45362 if (typeof lexer2.yylloc == "undefined") {
45363 lexer2.yylloc = {};
45364 }
45365 var yyloc = lexer2.yylloc;
45366 lstack.push(yyloc);
45367 var ranges = lexer2.options && lexer2.options.ranges;
45368 if (typeof sharedState.yy.parseError === "function") {
45369 this.parseError = sharedState.yy.parseError;
45370 } else {
45371 this.parseError = Object.getPrototypeOf(this).parseError;
45372 }
45373 function lex2() {
45374 var token2;
45375 token2 = tstack.pop() || lexer2.lex() || EOF;
45376 if (typeof token2 !== "number") {
45377 if (token2 instanceof Array) {
45378 tstack = token2;
45379 token2 = tstack.pop();
45380 }
45381 token2 = self2.symbols_[token2] || token2;
45382 }
45383 return token2;
45384 }
45385 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
45386 while (true) {
45387 state2 = stack[stack.length - 1];
45388 if (this.defaultActions[state2]) {
45389 action = this.defaultActions[state2];
45390 } else {
45391 if (symbol === null || typeof symbol == "undefined") {
45392 symbol = lex2();
45393 }
45394 action = table[state2] && table[state2][symbol];
45395 }
45396 if (typeof action === "undefined" || !action.length || !action[0]) {
45397 var errStr = "";
45398 expected = [];
45399 for (p in table[state2]) {
45400 if (this.terminals_[p] && p > TERROR) {
45401 expected.push("'" + this.terminals_[p] + "'");
45402 }
45403 }
45404 if (lexer2.showPosition) {
45405 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
45406 } else {
45407 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
45408 }
45409 this.parseError(errStr, {
45410 text: lexer2.match,
45411 token: this.terminals_[symbol] || symbol,
45412 line: lexer2.yylineno,
45413 loc: yyloc,
45414 expected
45415 });
45416 }
45417 if (action[0] instanceof Array && action.length > 1) {
45418 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
45419 }
45420 switch (action[0]) {
45421 case 1:
45422 stack.push(symbol);
45423 vstack.push(lexer2.yytext);
45424 lstack.push(lexer2.yylloc);
45425 stack.push(action[1]);
45426 symbol = null;
45427 {
45428 yyleng = lexer2.yyleng;
45429 yytext = lexer2.yytext;
45430 yylineno = lexer2.yylineno;
45431 yyloc = lexer2.yylloc;
45432 }
45433 break;
45434 case 2:
45435 len = this.productions_[action[1]][1];
45436 yyval.$ = vstack[vstack.length - len];
45437 yyval._$ = {
45438 first_line: lstack[lstack.length - (len || 1)].first_line,
45439 last_line: lstack[lstack.length - 1].last_line,
45440 first_column: lstack[lstack.length - (len || 1)].first_column,
45441 last_column: lstack[lstack.length - 1].last_column
45442 };
45443 if (ranges) {
45444 yyval._$.range = [
45445 lstack[lstack.length - (len || 1)].range[0],
45446 lstack[lstack.length - 1].range[1]
45447 ];
45448 }
45449 r = this.performAction.apply(yyval, [
45450 yytext,
45451 yyleng,
45452 yylineno,
45453 sharedState.yy,
45454 action[1],
45455 vstack,
45456 lstack
45457 ].concat(args));
45458 if (typeof r !== "undefined") {
45459 return r;
45460 }
45461 if (len) {
45462 stack = stack.slice(0, -1 * len * 2);
45463 vstack = vstack.slice(0, -1 * len);
45464 lstack = lstack.slice(0, -1 * len);
45465 }
45466 stack.push(this.productions_[action[1]][0]);
45467 vstack.push(yyval.$);
45468 lstack.push(yyval._$);
45469 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
45470 stack.push(newState);
45471 break;
45472 case 3:
45473 return true;
45474 }
45475 }
45476 return true;
45477 }
45478 };
45479 var lexer = function() {
45480 var lexer2 = {
45481 EOF: 1,
45482 parseError: function parseError2(str2, hash) {
45483 if (this.yy.parser) {
45484 this.yy.parser.parseError(str2, hash);
45485 } else {
45486 throw new Error(str2);
45487 }
45488 },
45489 // resets the lexer, sets new input
45490 setInput: function(input, yy) {
45491 this.yy = yy || this.yy || {};
45492 this._input = input;
45493 this._more = this._backtrack = this.done = false;
45494 this.yylineno = this.yyleng = 0;
45495 this.yytext = this.matched = this.match = "";
45496 this.conditionStack = ["INITIAL"];
45497 this.yylloc = {
45498 first_line: 1,
45499 first_column: 0,
45500 last_line: 1,
45501 last_column: 0
45502 };
45503 if (this.options.ranges) {
45504 this.yylloc.range = [0, 0];
45505 }
45506 this.offset = 0;
45507 return this;
45508 },
45509 // consumes and returns one char from the input
45510 input: function() {
45511 var ch = this._input[0];
45512 this.yytext += ch;
45513 this.yyleng++;
45514 this.offset++;
45515 this.match += ch;
45516 this.matched += ch;
45517 var lines = ch.match(/(?:\r\n?|\n).*/g);
45518 if (lines) {
45519 this.yylineno++;
45520 this.yylloc.last_line++;
45521 } else {
45522 this.yylloc.last_column++;
45523 }
45524 if (this.options.ranges) {
45525 this.yylloc.range[1]++;
45526 }
45527 this._input = this._input.slice(1);
45528 return ch;
45529 },
45530 // unshifts one char (or a string) into the input
45531 unput: function(ch) {
45532 var len = ch.length;
45533 var lines = ch.split(/(?:\r\n?|\n)/g);
45534 this._input = ch + this._input;
45535 this.yytext = this.yytext.substr(0, this.yytext.length - len);
45536 this.offset -= len;
45537 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
45538 this.match = this.match.substr(0, this.match.length - 1);
45539 this.matched = this.matched.substr(0, this.matched.length - 1);
45540 if (lines.length - 1) {
45541 this.yylineno -= lines.length - 1;
45542 }
45543 var r = this.yylloc.range;
45544 this.yylloc = {
45545 first_line: this.yylloc.first_line,
45546 last_line: this.yylineno + 1,
45547 first_column: this.yylloc.first_column,
45548 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
45549 };
45550 if (this.options.ranges) {
45551 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
45552 }
45553 this.yyleng = this.yytext.length;
45554 return this;
45555 },
45556 // When called from action, caches matched text and appends it on next action
45557 more: function() {
45558 this._more = true;
45559 return this;
45560 },
45561 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
45562 reject: function() {
45563 if (this.options.backtrack_lexer) {
45564 this._backtrack = true;
45565 } else {
45566 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
45567 text: "",
45568 token: null,
45569 line: this.yylineno
45570 });
45571 }
45572 return this;
45573 },
45574 // retain first n characters of the match
45575 less: function(n) {
45576 this.unput(this.match.slice(n));
45577 },
45578 // displays already matched input, i.e. for error messages
45579 pastInput: function() {
45580 var past = this.matched.substr(0, this.matched.length - this.match.length);
45581 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
45582 },
45583 // displays upcoming input, i.e. for error messages
45584 upcomingInput: function() {
45585 var next2 = this.match;
45586 if (next2.length < 20) {
45587 next2 += this._input.substr(0, 20 - next2.length);
45588 }
45589 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
45590 },
45591 // displays the character position where the lexing error occurred, i.e. for error messages
45592 showPosition: function() {
45593 var pre = this.pastInput();
45594 var c2 = new Array(pre.length + 1).join("-");
45595 return pre + this.upcomingInput() + "\n" + c2 + "^";
45596 },
45597 // test the lexed token: return FALSE when not a match, otherwise return token
45598 test_match: function(match, indexed_rule) {
45599 var token2, lines, backup;
45600 if (this.options.backtrack_lexer) {
45601 backup = {
45602 yylineno: this.yylineno,
45603 yylloc: {
45604 first_line: this.yylloc.first_line,
45605 last_line: this.last_line,
45606 first_column: this.yylloc.first_column,
45607 last_column: this.yylloc.last_column
45608 },
45609 yytext: this.yytext,
45610 match: this.match,
45611 matches: this.matches,
45612 matched: this.matched,
45613 yyleng: this.yyleng,
45614 offset: this.offset,
45615 _more: this._more,
45616 _input: this._input,
45617 yy: this.yy,
45618 conditionStack: this.conditionStack.slice(0),
45619 done: this.done
45620 };
45621 if (this.options.ranges) {
45622 backup.yylloc.range = this.yylloc.range.slice(0);
45623 }
45624 }
45625 lines = match[0].match(/(?:\r\n?|\n).*/g);
45626 if (lines) {
45627 this.yylineno += lines.length;
45628 }
45629 this.yylloc = {
45630 first_line: this.yylloc.last_line,
45631 last_line: this.yylineno + 1,
45632 first_column: this.yylloc.last_column,
45633 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
45634 };
45635 this.yytext += match[0];
45636 this.match += match[0];
45637 this.matches = match;
45638 this.yyleng = this.yytext.length;
45639 if (this.options.ranges) {
45640 this.yylloc.range = [this.offset, this.offset += this.yyleng];
45641 }
45642 this._more = false;
45643 this._backtrack = false;
45644 this._input = this._input.slice(match[0].length);
45645 this.matched += match[0];
45646 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
45647 if (this.done && this._input) {
45648 this.done = false;
45649 }
45650 if (token2) {
45651 return token2;
45652 } else if (this._backtrack) {
45653 for (var k in backup) {
45654 this[k] = backup[k];
45655 }
45656 return false;
45657 }
45658 return false;
45659 },
45660 // return next match in input
45661 next: function() {
45662 if (this.done) {
45663 return this.EOF;
45664 }
45665 if (!this._input) {
45666 this.done = true;
45667 }
45668 var token2, match, tempMatch, index2;
45669 if (!this._more) {
45670 this.yytext = "";
45671 this.match = "";
45672 }
45673 var rules = this._currentRules();
45674 for (var i2 = 0; i2 < rules.length; i2++) {
45675 tempMatch = this._input.match(this.rules[rules[i2]]);
45676 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
45677 match = tempMatch;
45678 index2 = i2;
45679 if (this.options.backtrack_lexer) {
45680 token2 = this.test_match(tempMatch, rules[i2]);
45681 if (token2 !== false) {
45682 return token2;
45683 } else if (this._backtrack) {
45684 match = false;
45685 continue;
45686 } else {
45687 return false;
45688 }
45689 } else if (!this.options.flex) {
45690 break;
45691 }
45692 }
45693 }
45694 if (match) {
45695 token2 = this.test_match(match, rules[index2]);
45696 if (token2 !== false) {
45697 return token2;
45698 }
45699 return false;
45700 }
45701 if (this._input === "") {
45702 return this.EOF;
45703 } else {
45704 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
45705 text: "",
45706 token: null,
45707 line: this.yylineno
45708 });
45709 }
45710 },
45711 // return next match that has a token
45712 lex: function lex2() {
45713 var r = this.next();
45714 if (r) {
45715 return r;
45716 } else {
45717 return this.lex();
45718 }
45719 },
45720 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
45721 begin: function begin(condition) {
45722 this.conditionStack.push(condition);
45723 },
45724 // pop the previously active lexer condition state off the condition stack
45725 popState: function popState() {
45726 var n = this.conditionStack.length - 1;
45727 if (n > 0) {
45728 return this.conditionStack.pop();
45729 } else {
45730 return this.conditionStack[0];
45731 }
45732 },
45733 // produce the lexer rule set which is active for the currently active lexer condition state
45734 _currentRules: function _currentRules() {
45735 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
45736 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
45737 } else {
45738 return this.conditions["INITIAL"].rules;
45739 }
45740 },
45741 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
45742 topState: function topState(n) {
45743 n = this.conditionStack.length - 1 - Math.abs(n || 0);
45744 if (n >= 0) {
45745 return this.conditionStack[n];
45746 } else {
45747 return "INITIAL";
45748 }
45749 },
45750 // alias for begin(condition)
45751 pushState: function pushState(condition) {
45752 this.begin(condition);
45753 },
45754 // return the number of states currently on the stack
45755 stateStackSize: function stateStackSize() {
45756 return this.conditionStack.length;
45757 },
45758 options: {},
45759 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
45760 switch ($avoiding_name_collisions) {
45761 case 0:
45762 this.begin("open_directive");
45763 return 19;
45764 case 1:
45765 return 8;
45766 case 2:
45767 return 9;
45768 case 3:
45769 return 10;
45770 case 4:
45771 return 11;
45772 case 5:
45773 this.begin("type_directive");
45774 return 20;
45775 case 6:
45776 this.popState();
45777 this.begin("arg_directive");
45778 return 17;
45779 case 7:
45780 this.popState();
45781 this.popState();
45782 return 22;
45783 case 8:
45784 return 21;
45785 case 9:
45786 break;
45787 case 10:
45788 break;
45789 case 11:
45790 this.begin("acc_title");
45791 return 44;
45792 case 12:
45793 this.popState();
45794 return "acc_title_value";
45795 case 13:
45796 this.begin("acc_descr");
45797 return 46;
45798 case 14:
45799 this.popState();
45800 return "acc_descr_value";
45801 case 15:
45802 this.begin("acc_descr_multiline");
45803 break;
45804 case 16:
45805 this.popState();
45806 break;
45807 case 17:
45808 return "acc_descr_multiline_value";
45809 case 18:
45810 return 16;
45811 case 19:
45812 break;
45813 case 20:
45814 return 23;
45815 case 21:
45816 return 23;
45817 case 22:
45818 return "EDGE_STATE";
45819 case 23:
45820 this.begin("namespace");
45821 return 53;
45822 case 24:
45823 this.popState();
45824 return 16;
45825 case 25:
45826 break;
45827 case 26:
45828 this.begin("namespace-body");
45829 return 50;
45830 case 27:
45831 this.popState();
45832 return 52;
45833 case 28:
45834 return "EOF_IN_STRUCT";
45835 case 29:
45836 return 16;
45837 case 30:
45838 break;
45839 case 31:
45840 return "EDGE_STATE";
45841 case 32:
45842 this.begin("class");
45843 return 57;
45844 case 33:
45845 this.popState();
45846 return 16;
45847 case 34:
45848 break;
45849 case 35:
45850 this.popState();
45851 this.popState();
45852 return 52;
45853 case 36:
45854 this.begin("class-body");
45855 return 50;
45856 case 37:
45857 this.popState();
45858 return 52;
45859 case 38:
45860 return "EOF_IN_STRUCT";
45861 case 39:
45862 return "EDGE_STATE";
45863 case 40:
45864 return "OPEN_IN_STRUCT";
45865 case 41:
45866 break;
45867 case 42:
45868 return "MEMBER";
45869 case 43:
45870 return 82;
45871 case 44:
45872 return 75;
45873 case 45:
45874 return 76;
45875 case 46:
45876 return 78;
45877 case 47:
45878 return 63;
45879 case 48:
45880 return 65;
45881 case 49:
45882 return 58;
45883 case 50:
45884 return 59;
45885 case 51:
45886 this.begin("href");
45887 break;
45888 case 52:
45889 this.popState();
45890 break;
45891 case 53:
45892 return 81;
45893 case 54:
45894 this.begin("callback_name");
45895 break;
45896 case 55:
45897 this.popState();
45898 break;
45899 case 56:
45900 this.popState();
45901 this.begin("callback_args");
45902 break;
45903 case 57:
45904 return 79;
45905 case 58:
45906 this.popState();
45907 break;
45908 case 59:
45909 return 80;
45910 case 60:
45911 this.popState();
45912 break;
45913 case 61:
45914 return "GENERICTYPE";
45915 case 62:
45916 this.begin("generic");
45917 break;
45918 case 63:
45919 this.popState();
45920 break;
45921 case 64:
45922 return "STR";
45923 case 65:
45924 this.begin("string");
45925 break;
45926 case 66:
45927 this.popState();
45928 break;
45929 case 67:
45930 return "BQUOTE_STR";
45931 case 68:
45932 this.begin("bqstring");
45933 break;
45934 case 69:
45935 return 77;
45936 case 70:
45937 return 77;
45938 case 71:
45939 return 77;
45940 case 72:
45941 return 77;
45942 case 73:
45943 return 69;
45944 case 74:
45945 return 69;
45946 case 75:
45947 return 71;
45948 case 76:
45949 return 71;
45950 case 77:
45951 return 70;
45952 case 78:
45953 return 68;
45954 case 79:
45955 return 72;
45956 case 80:
45957 return 73;
45958 case 81:
45959 return 74;
45960 case 82:
45961 return 36;
45962 case 83:
45963 return 55;
45964 case 84:
45965 return 94;
45966 case 85:
45967 return "DOT";
45968 case 86:
45969 return "PLUS";
45970 case 87:
45971 return 91;
45972 case 88:
45973 return "EQUALS";
45974 case 89:
45975 return "EQUALS";
45976 case 90:
45977 return 98;
45978 case 91:
45979 return 27;
45980 case 92:
45981 return 29;
45982 case 93:
45983 return "PUNCTUATION";
45984 case 94:
45985 return 97;
45986 case 95:
45987 return 96;
45988 case 96:
45989 return 93;
45990 case 97:
45991 return 24;
45992 }
45993 },
45994 rules: [/^(?:%%\{)/, /^(?:.*direction\s+TB[^\n]*)/, /^(?:.*direction\s+BT[^\n]*)/, /^(?:.*direction\s+RL[^\n]*)/, /^(?:.*direction\s+LR[^\n]*)/, /^(?:((?:(?!\}%%)[^:.])*))/, /^(?::)/, /^(?:\}%%)/, /^(?:((?:(?!\}%%).|\n)*))/, /^(?:%%(?!\{)*[^\n]*(\r?\n?)+)/, /^(?:%%[^\n]*(\r?\n)*)/, /^(?:accTitle\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*:\s*)/, /^(?:(?!\n||)*[^\n]*)/, /^(?:accDescr\s*\{\s*)/, /^(?:[\}])/, /^(?:[^\}]*)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:classDiagram-v2\b)/, /^(?:classDiagram\b)/, /^(?:\[\*\])/, /^(?:namespace\b)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:[{])/, /^(?:[}])/, /^(?:$)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:\[\*\])/, /^(?:class\b)/, /^(?:\s*(\r?\n)+)/, /^(?:\s+)/, /^(?:[}])/, /^(?:[{])/, /^(?:[}])/, /^(?:$)/, /^(?:\[\*\])/, /^(?:[{])/, /^(?:[\n])/, /^(?:[^{}\n]*)/, /^(?:cssClass\b)/, /^(?:callback\b)/, /^(?:link\b)/, /^(?:click\b)/, /^(?:note for\b)/, /^(?:note\b)/, /^(?:<<)/, /^(?:>>)/, /^(?:href[\s]+["])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:call[\s]+)/, /^(?:\([\s]*\))/, /^(?:\()/, /^(?:[^(]*)/, /^(?:\))/, /^(?:[^)]*)/, /^(?:[~])/, /^(?:[^~]*)/, /^(?:[~])/, /^(?:["])/, /^(?:[^"]*)/, /^(?:["])/, /^(?:[`])/, /^(?:[^`]+)/, /^(?:[`])/, /^(?:_self\b)/, /^(?:_blank\b)/, /^(?:_parent\b)/, /^(?:_top\b)/, /^(?:\s*<\|)/, /^(?:\s*\|>)/, /^(?:\s*>)/, /^(?:\s*<)/, /^(?:\s*\*)/, /^(?:\s*o\b)/, /^(?:\s*\(\))/, /^(?:--)/, /^(?:\.\.)/, /^(?::{1}[^:\n;]+)/, /^(?::{3})/, /^(?:-)/, /^(?:\.)/, /^(?:\+)/, /^(?:%)/, /^(?:=)/, /^(?:=)/, /^(?:\w+)/, /^(?:\[)/, /^(?:\])/, /^(?:[!"#$%&'*+,-.`?\\/])/, /^(?:[0-9]+)/, /^(?:[\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6]|[\u00F8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377]|[\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5]|[\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA]|[\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE]|[\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA]|[\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0]|[\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977]|[\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2]|[\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A]|[\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39]|[\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8]|[\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C]|[\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C]|[\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99]|[\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0]|[\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D]|[\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3]|[\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10]|[\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1]|[\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81]|[\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3]|[\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6]|[\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A]|[\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081]|[\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D]|[\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0]|[\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310]|[\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C]|[\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711]|[\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7]|[\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C]|[\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16]|[\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF]|[\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC]|[\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D]|[\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D]|[\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3]|[\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F]|[\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128]|[\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184]|[\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3]|[\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6]|[\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE]|[\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C]|[\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D]|[\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC]|[\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B]|[\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788]|[\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805]|[\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB]|[\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28]|[\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5]|[\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4]|[\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E]|[\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D]|[\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36]|[\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D]|[\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC]|[\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF]|[\uFFD2-\uFFD7\uFFDA-\uFFDC])/, /^(?:\s)/, /^(?:$)/],
45995 conditions: { "namespace-body": { "rules": [27, 28, 29, 30, 31, 32, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "namespace": { "rules": [23, 24, 25, 26, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "class-body": { "rules": [37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "class": { "rules": [33, 34, 35, 36, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "acc_descr_multiline": { "rules": [16, 17, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "acc_descr": { "rules": [14, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "acc_title": { "rules": [12, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "arg_directive": { "rules": [7, 8, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "type_directive": { "rules": [6, 7, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "open_directive": { "rules": [5, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "callback_args": { "rules": [43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 58, 59, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "callback_name": { "rules": [43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 55, 56, 57, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "href": { "rules": [43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "struct": { "rules": [43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "generic": { "rules": [43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 60, 61, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "bqstring": { "rules": [43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "string": { "rules": [43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 63, 64, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 9, 10, 11, 13, 15, 18, 19, 20, 21, 22, 23, 32, 43, 44, 45, 46, 47, 48, 49, 50, 51, 54, 62, 65, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97], "inclusive": true } }
45996 };
45997 return lexer2;
45998 }();
45999 parser2.lexer = lexer;
46000 function Parser() {
46001 this.yy = {};
46002 }
46003 Parser.prototype = parser2;
46004 parser2.Parser = Parser;
46005 return new Parser();
46006 }();
46007 parser$7.parser = parser$7;
46008 const parser$8 = parser$7;
46009 const MERMAID_DOM_ID_PREFIX = "classId-";
46010 let relations = [];
46011 let classes$1 = {};
46012 let notes = [];
46013 let classCounter = 0;
46014 let namespaces = {};
46015 let namespaceCounter = 0;
46016 let functions = [];
46017 const sanitizeText$2 = (txt) => common$1.sanitizeText(txt, getConfig$1());
46018 const parseDirective$3 = function(statement, context, type2) {
46019 mermaidAPI.parseDirective(this, statement, context, type2);
46020 };
46021 const splitClassNameAndType = function(id2) {
46022 let genericType = "";
46023 let className = id2;
46024 if (id2.indexOf("~") > 0) {
46025 const split = id2.split("~");
46026 className = sanitizeText$2(split[0]);
46027 genericType = sanitizeText$2(split[1]);
46028 }
46029 return { className, type: genericType };
46030 };
46031 const setClassLabel = function(id2, label) {
46032 if (label) {
46033 label = sanitizeText$2(label);
46034 }
46035 const { className } = splitClassNameAndType(id2);
46036 classes$1[className].label = label;
46037 };
46038 const addClass = function(id2) {
46039 const classId = splitClassNameAndType(id2);
46040 if (classes$1[classId.className] !== void 0) {
46041 return;
46042 }
46043 classes$1[classId.className] = {
46044 id: classId.className,
46045 type: classId.type,
46046 label: classId.className,
46047 cssClasses: [],
46048 methods: [],
46049 members: [],
46050 annotations: [],
46051 domId: MERMAID_DOM_ID_PREFIX + classId.className + "-" + classCounter
46052 };
46053 classCounter++;
46054 };
46055 const lookUpDomId = function(id2) {
46056 if (id2 in classes$1) {
46057 return classes$1[id2].domId;
46058 }
46059 throw new Error("Class not found: " + id2);
46060 };
46061 const clear$4 = function() {
46062 relations = [];
46063 classes$1 = {};
46064 notes = [];
46065 functions = [];
46066 functions.push(setupToolTips);
46067 namespaces = {};
46068 namespaceCounter = 0;
46069 clear$j();
46070 };
46071 const getClass = function(id2) {
46072 return classes$1[id2];
46073 };
46074 const getClasses$3 = function() {
46075 return classes$1;
46076 };
46077 const getRelations$1 = function() {
46078 return relations;
46079 };
46080 const getNotes = function() {
46081 return notes;
46082 };
46083 const addRelation$1 = function(relation) {
46084 log$1.debug("Adding relation: " + JSON.stringify(relation));
46085 addClass(relation.id1);
46086 addClass(relation.id2);
46087 relation.id1 = splitClassNameAndType(relation.id1).className;
46088 relation.id2 = splitClassNameAndType(relation.id2).className;
46089 relation.relationTitle1 = common$1.sanitizeText(
46090 relation.relationTitle1.trim(),
46091 getConfig$1()
46092 );
46093 relation.relationTitle2 = common$1.sanitizeText(
46094 relation.relationTitle2.trim(),
46095 getConfig$1()
46096 );
46097 relations.push(relation);
46098 };
46099 const addAnnotation = function(className, annotation) {
46100 const validatedClassName = splitClassNameAndType(className).className;
46101 classes$1[validatedClassName].annotations.push(annotation);
46102 };
46103 const addMember = function(className, member) {
46104 const validatedClassName = splitClassNameAndType(className).className;
46105 const theClass = classes$1[validatedClassName];
46106 if (typeof member === "string") {
46107 const memberString = member.trim();
46108 if (memberString.startsWith("<<") && memberString.endsWith(">>")) {
46109 theClass.annotations.push(sanitizeText$2(memberString.substring(2, memberString.length - 2)));
46110 } else if (memberString.indexOf(")") > 0) {
46111 theClass.methods.push(sanitizeText$2(memberString));
46112 } else if (memberString) {
46113 theClass.members.push(sanitizeText$2(memberString));
46114 }
46115 }
46116 };
46117 const addMembers = function(className, members) {
46118 if (Array.isArray(members)) {
46119 members.reverse();
46120 members.forEach((member) => addMember(className, member));
46121 }
46122 };
46123 const addNote = function(text2, className) {
46124 const note2 = {
46125 id: `note${notes.length}`,
46126 class: className,
46127 text: text2
46128 };
46129 notes.push(note2);
46130 };
46131 const cleanupLabel$1 = function(label) {
46132 if (label.startsWith(":")) {
46133 label = label.substring(1);
46134 }
46135 return sanitizeText$2(label.trim());
46136 };
46137 const setCssClass$1 = function(ids, className) {
46138 ids.split(",").forEach(function(_id) {
46139 let id2 = _id;
46140 if (_id[0].match(/\d/)) {
46141 id2 = MERMAID_DOM_ID_PREFIX + id2;
46142 }
46143 if (classes$1[id2] !== void 0) {
46144 classes$1[id2].cssClasses.push(className);
46145 }
46146 });
46147 };
46148 const setTooltip = function(ids, tooltip) {
46149 ids.split(",").forEach(function(id2) {
46150 if (tooltip !== void 0) {
46151 classes$1[id2].tooltip = sanitizeText$2(tooltip);
46152 }
46153 });
46154 };
46155 const getTooltip = function(id2, namespace2) {
46156 if (namespace2) {
46157 return namespaces[namespace2].classes[id2].tooltip;
46158 }
46159 return classes$1[id2].tooltip;
46160 };
46161 const setLink = function(ids, linkStr, target) {
46162 const config2 = getConfig$1();
46163 ids.split(",").forEach(function(_id) {
46164 let id2 = _id;
46165 if (_id[0].match(/\d/)) {
46166 id2 = MERMAID_DOM_ID_PREFIX + id2;
46167 }
46168 if (classes$1[id2] !== void 0) {
46169 classes$1[id2].link = utils.formatUrl(linkStr, config2);
46170 if (config2.securityLevel === "sandbox") {
46171 classes$1[id2].linkTarget = "_top";
46172 } else if (typeof target === "string") {
46173 classes$1[id2].linkTarget = sanitizeText$2(target);
46174 } else {
46175 classes$1[id2].linkTarget = "_blank";
46176 }
46177 }
46178 });
46179 setCssClass$1(ids, "clickable");
46180 };
46181 const setClickEvent = function(ids, functionName, functionArgs) {
46182 ids.split(",").forEach(function(id2) {
46183 setClickFunc(id2, functionName, functionArgs);
46184 classes$1[id2].haveCallback = true;
46185 });
46186 setCssClass$1(ids, "clickable");
46187 };
46188 const setClickFunc = function(domId, functionName, functionArgs) {
46189 const config2 = getConfig$1();
46190 if (config2.securityLevel !== "loose") {
46191 return;
46192 }
46193 if (functionName === void 0) {
46194 return;
46195 }
46196 const id2 = domId;
46197 if (classes$1[id2] !== void 0) {
46198 const elemId = lookUpDomId(id2);
46199 let argList = [];
46200 if (typeof functionArgs === "string") {
46201 argList = functionArgs.split(/,(?=(?:(?:[^"]*"){2})*[^"]*$)/);
46202 for (let i2 = 0; i2 < argList.length; i2++) {
46203 let item = argList[i2].trim();
46204 if (item.charAt(0) === '"' && item.charAt(item.length - 1) === '"') {
46205 item = item.substr(1, item.length - 2);
46206 }
46207 argList[i2] = item;
46208 }
46209 }
46210 if (argList.length === 0) {
46211 argList.push(elemId);
46212 }
46213 functions.push(function() {
46214 const elem = document.querySelector(`[id="${elemId}"]`);
46215 if (elem !== null) {
46216 elem.addEventListener(
46217 "click",
46218 function() {
46219 utils.runFunc(functionName, ...argList);
46220 },
46221 false
46222 );
46223 }
46224 });
46225 }
46226 };
46227 const bindFunctions = function(element2) {
46228 functions.forEach(function(fun) {
46229 fun(element2);
46230 });
46231 };
46232 const lineType$1 = {
46233 LINE: 0,
46234 DOTTED_LINE: 1
46235 };
46236 const relationType$1 = {
46237 AGGREGATION: 0,
46238 EXTENSION: 1,
46239 COMPOSITION: 2,
46240 DEPENDENCY: 3,
46241 LOLLIPOP: 4
46242 };
46243 const setupToolTips = function(element2) {
46244 let tooltipElem = select(".mermaidTooltip");
46245 if ((tooltipElem._groups || tooltipElem)[0][0] === null) {
46246 tooltipElem = select("body").append("div").attr("class", "mermaidTooltip").style("opacity", 0);
46247 }
46248 const svg2 = select(element2).select("svg");
46249 const nodes2 = svg2.selectAll("g.node");
46250 nodes2.on("mouseover", function() {
46251 const el = select(this);
46252 const title2 = el.attr("title");
46253 if (title2 === null) {
46254 return;
46255 }
46256 const rect2 = this.getBoundingClientRect();
46257 tooltipElem.transition().duration(200).style("opacity", ".9");
46258 tooltipElem.text(el.attr("title")).style("left", window.scrollX + rect2.left + (rect2.right - rect2.left) / 2 + "px").style("top", window.scrollY + rect2.top - 14 + document.body.scrollTop + "px");
46259 tooltipElem.html(tooltipElem.html().replace(/&lt;br\/&gt;/g, "<br/>"));
46260 el.classed("hover", true);
46261 }).on("mouseout", function() {
46262 tooltipElem.transition().duration(500).style("opacity", 0);
46263 const el = select(this);
46264 el.classed("hover", false);
46265 });
46266 };
46267 functions.push(setupToolTips);
46268 let direction$1 = "TB";
46269 const getDirection$1 = () => direction$1;
46270 const setDirection$1 = (dir) => {
46271 direction$1 = dir;
46272 };
46273 const addNamespace = function(id2) {
46274 if (namespaces[id2] !== void 0) {
46275 return;
46276 }
46277 namespaces[id2] = {
46278 id: id2,
46279 classes: {},
46280 children: {},
46281 domId: MERMAID_DOM_ID_PREFIX + id2 + "-" + namespaceCounter
46282 };
46283 namespaceCounter++;
46284 };
46285 const getNamespace = function(name2) {
46286 return namespaces[name2];
46287 };
46288 const getNamespaces = function() {
46289 return namespaces;
46290 };
46291 const addClassesToNamespace = function(id2, classNames) {
46292 if (namespaces[id2] !== void 0) {
46293 classNames.map((className) => {
46294 namespaces[id2].classes[className] = classes$1[className];
46295 delete classes$1[className];
46296 classCounter--;
46297 });
46298 }
46299 };
46300 const db$3 = {
46301 parseDirective: parseDirective$3,
46302 setAccTitle,
46303 getAccTitle,
46304 getAccDescription,
46305 setAccDescription,
46306 getConfig: () => getConfig$1().class,
46307 addClass,
46308 bindFunctions,
46309 clear: clear$4,
46310 getClass,
46311 getClasses: getClasses$3,
46312 getNotes,
46313 addAnnotation,
46314 addNote,
46315 getRelations: getRelations$1,
46316 addRelation: addRelation$1,
46317 getDirection: getDirection$1,
46318 setDirection: setDirection$1,
46319 addMember,
46320 addMembers,
46321 cleanupLabel: cleanupLabel$1,
46322 lineType: lineType$1,
46323 relationType: relationType$1,
46324 setClickEvent,
46325 setCssClass: setCssClass$1,
46326 setLink,
46327 getTooltip,
46328 setTooltip,
46329 lookUpDomId,
46330 setDiagramTitle,
46331 getDiagramTitle,
46332 setClassLabel,
46333 addNamespace,
46334 addClassesToNamespace,
46335 getNamespace,
46336 getNamespaces
46337 };
46338 const getStyles$5 = (options2) => `g.classGroup text {
46339 fill: ${options2.nodeBorder};
46340 fill: ${options2.classText};
46341 stroke: none;
46342 font-family: ${options2.fontFamily};
46343 font-size: 10px;
46344
46345 .title {
46346 font-weight: bolder;
46347 }
46348
46349}
46350
46351.nodeLabel, .edgeLabel {
46352 color: ${options2.classText};
46353}
46354.edgeLabel .label rect {
46355 fill: ${options2.mainBkg};
46356}
46357.label text {
46358 fill: ${options2.classText};
46359}
46360.edgeLabel .label span {
46361 background: ${options2.mainBkg};
46362}
46363
46364.classTitle {
46365 font-weight: bolder;
46366}
46367.node rect,
46368 .node circle,
46369 .node ellipse,
46370 .node polygon,
46371 .node path {
46372 fill: ${options2.mainBkg};
46373 stroke: ${options2.nodeBorder};
46374 stroke-width: 1px;
46375 }
46376
46377
46378.divider {
46379 stroke: ${options2.nodeBorder};
46380 stroke-width: 1;
46381}
46382
46383g.clickable {
46384 cursor: pointer;
46385}
46386
46387g.classGroup rect {
46388 fill: ${options2.mainBkg};
46389 stroke: ${options2.nodeBorder};
46390}
46391
46392g.classGroup line {
46393 stroke: ${options2.nodeBorder};
46394 stroke-width: 1;
46395}
46396
46397.classLabel .box {
46398 stroke: none;
46399 stroke-width: 0;
46400 fill: ${options2.mainBkg};
46401 opacity: 0.5;
46402}
46403
46404.classLabel .label {
46405 fill: ${options2.nodeBorder};
46406 font-size: 10px;
46407}
46408
46409.relation {
46410 stroke: ${options2.lineColor};
46411 stroke-width: 1;
46412 fill: none;
46413}
46414
46415.dashed-line{
46416 stroke-dasharray: 3;
46417}
46418
46419.dotted-line{
46420 stroke-dasharray: 1 2;
46421}
46422
46423#compositionStart, .composition {
46424 fill: ${options2.lineColor} !important;
46425 stroke: ${options2.lineColor} !important;
46426 stroke-width: 1;
46427}
46428
46429#compositionEnd, .composition {
46430 fill: ${options2.lineColor} !important;
46431 stroke: ${options2.lineColor} !important;
46432 stroke-width: 1;
46433}
46434
46435#dependencyStart, .dependency {
46436 fill: ${options2.lineColor} !important;
46437 stroke: ${options2.lineColor} !important;
46438 stroke-width: 1;
46439}
46440
46441#dependencyStart, .dependency {
46442 fill: ${options2.lineColor} !important;
46443 stroke: ${options2.lineColor} !important;
46444 stroke-width: 1;
46445}
46446
46447#extensionStart, .extension {
46448 fill: ${options2.mainBkg} !important;
46449 stroke: ${options2.lineColor} !important;
46450 stroke-width: 1;
46451}
46452
46453#extensionEnd, .extension {
46454 fill: ${options2.mainBkg} !important;
46455 stroke: ${options2.lineColor} !important;
46456 stroke-width: 1;
46457}
46458
46459#aggregationStart, .aggregation {
46460 fill: ${options2.mainBkg} !important;
46461 stroke: ${options2.lineColor} !important;
46462 stroke-width: 1;
46463}
46464
46465#aggregationEnd, .aggregation {
46466 fill: ${options2.mainBkg} !important;
46467 stroke: ${options2.lineColor} !important;
46468 stroke-width: 1;
46469}
46470
46471#lollipopStart, .lollipop {
46472 fill: ${options2.mainBkg} !important;
46473 stroke: ${options2.lineColor} !important;
46474 stroke-width: 1;
46475}
46476
46477#lollipopEnd, .lollipop {
46478 fill: ${options2.mainBkg} !important;
46479 stroke: ${options2.lineColor} !important;
46480 stroke-width: 1;
46481}
46482
46483.edgeTerminals {
46484 font-size: 11px;
46485}
46486
46487.classTitleText {
46488 text-anchor: middle;
46489 font-size: 18px;
46490 fill: ${options2.textColor};
46491}
46492`;
46493 const styles$4 = getStyles$5;
46494 let idCache$2 = {};
46495 const padding = 20;
46496 const getGraphId = function(label) {
46497 const foundEntry = Object.entries(idCache$2).find((entry) => entry[1].label === label);
46498 if (foundEntry) {
46499 return foundEntry[0];
46500 }
46501 };
46502 const insertMarkers$1 = function(elem) {
46503 elem.append("defs").append("marker").attr("id", "extensionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 1,7 L18,13 V 1 Z");
46504 elem.append("defs").append("marker").attr("id", "extensionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 1,1 V 13 L18,7 Z");
46505 elem.append("defs").append("marker").attr("id", "compositionStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
46506 elem.append("defs").append("marker").attr("id", "compositionEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
46507 elem.append("defs").append("marker").attr("id", "aggregationStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
46508 elem.append("defs").append("marker").attr("id", "aggregationEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L1,7 L9,1 Z");
46509 elem.append("defs").append("marker").attr("id", "dependencyStart").attr("class", "extension").attr("refX", 0).attr("refY", 7).attr("markerWidth", 190).attr("markerHeight", 240).attr("orient", "auto").append("path").attr("d", "M 5,7 L9,13 L1,7 L9,1 Z");
46510 elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 18,7 L9,13 L14,7 L9,1 Z");
46511 };
46512 const draw$7 = function(text2, id2, _version, diagObj) {
46513 const conf2 = getConfig$1().class;
46514 idCache$2 = {};
46515 log$1.info("Rendering diagram " + text2);
46516 const securityLevel = getConfig$1().securityLevel;
46517 let sandboxElement;
46518 if (securityLevel === "sandbox") {
46519 sandboxElement = select("#i" + id2);
46520 }
46521 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
46522 const diagram2 = root2.select(`[id='${id2}']`);
46523 insertMarkers$1(diagram2);
46524 const g = new Graph({
46525 multigraph: true
46526 });
46527 g.setGraph({
46528 isMultiGraph: true
46529 });
46530 g.setDefaultEdgeLabel(function() {
46531 return {};
46532 });
46533 const classes2 = diagObj.db.getClasses();
46534 const keys2 = Object.keys(classes2);
46535 for (const key of keys2) {
46536 const classDef = classes2[key];
46537 const node2 = svgDraw$4.drawClass(diagram2, classDef, conf2, diagObj);
46538 idCache$2[node2.id] = node2;
46539 g.setNode(node2.id, node2);
46540 log$1.info("Org height: " + node2.height);
46541 }
46542 const relations2 = diagObj.db.getRelations();
46543 relations2.forEach(function(relation) {
46544 log$1.info(
46545 "tjoho" + getGraphId(relation.id1) + getGraphId(relation.id2) + JSON.stringify(relation)
46546 );
46547 g.setEdge(
46548 getGraphId(relation.id1),
46549 getGraphId(relation.id2),
46550 {
46551 relation
46552 },
46553 relation.title || "DEFAULT"
46554 );
46555 });
46556 const notes2 = diagObj.db.getNotes();
46557 notes2.forEach(function(note2) {
46558 log$1.debug(`Adding note: ${JSON.stringify(note2)}`);
46559 const node2 = svgDraw$4.drawNote(diagram2, note2, conf2, diagObj);
46560 idCache$2[node2.id] = node2;
46561 g.setNode(node2.id, node2);
46562 if (note2.class && note2.class in classes2) {
46563 g.setEdge(
46564 note2.id,
46565 getGraphId(note2.class),
46566 {
46567 relation: {
46568 id1: note2.id,
46569 id2: note2.class,
46570 relation: {
46571 type1: "none",
46572 type2: "none",
46573 lineType: 10
46574 }
46575 }
46576 },
46577 "DEFAULT"
46578 );
46579 }
46580 });
46581 layout(g);
46582 g.nodes().forEach(function(v) {
46583 if (v !== void 0 && g.node(v) !== void 0) {
46584 log$1.debug("Node " + v + ": " + JSON.stringify(g.node(v)));
46585 root2.select("#" + (diagObj.db.lookUpDomId(v) || v)).attr(
46586 "transform",
46587 "translate(" + (g.node(v).x - g.node(v).width / 2) + "," + (g.node(v).y - g.node(v).height / 2) + " )"
46588 );
46589 }
46590 });
46591 g.edges().forEach(function(e) {
46592 if (e !== void 0 && g.edge(e) !== void 0) {
46593 log$1.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(g.edge(e)));
46594 svgDraw$4.drawEdge(diagram2, g.edge(e), g.edge(e).relation, conf2, diagObj);
46595 }
46596 });
46597 const svgBounds = diagram2.node().getBBox();
46598 const width2 = svgBounds.width + padding * 2;
46599 const height2 = svgBounds.height + padding * 2;
46600 configureSvgSize(diagram2, height2, width2, conf2.useMaxWidth);
46601 const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${width2} ${height2}`;
46602 log$1.debug(`viewBox ${vBox}`);
46603 diagram2.attr("viewBox", vBox);
46604 };
46605 const renderer$6 = {
46606 draw: draw$7
46607 };
46608 const diagram$7 = {
46609 parser: parser$8,
46610 db: db$3,
46611 renderer: renderer$6,
46612 styles: styles$4,
46613 init: (cnf) => {
46614 if (!cnf.class) {
46615 cnf.class = {};
46616 }
46617 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
46618 db$3.clear();
46619 }
46620 };
46621 const classDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
46622 __proto__: null,
46623 diagram: diagram$7
46624 }, Symbol.toStringTag, { value: "Module" }));
46625 const sanitizeText$1 = (txt) => common$1.sanitizeText(txt, getConfig$1());
46626 let conf$3 = {
46627 dividerMargin: 10,
46628 padding: 5,
46629 textHeight: 10,
46630 curve: void 0
46631 };
46632 const addNamespaces = function(namespaces2, g, _id, diagObj) {
46633 const keys2 = Object.keys(namespaces2);
46634 log$1.info("keys:", keys2);
46635 log$1.info(namespaces2);
46636 keys2.forEach(function(id2) {
46637 var _a, _b;
46638 const vertex = namespaces2[id2];
46639 const shape = "rect";
46640 const node2 = {
46641 shape,
46642 id: vertex.id,
46643 domId: vertex.domId,
46644 labelText: sanitizeText$1(vertex.id),
46645 labelStyle: "",
46646 style: "fill: none; stroke: black",
46647 // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release
46648 padding: ((_a = getConfig$1().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig$1().class) == null ? void 0 : _b.padding)
46649 };
46650 g.setNode(vertex.id, node2);
46651 addClasses(vertex.classes, g, _id, diagObj, vertex.id);
46652 log$1.info("setNode", node2);
46653 });
46654 };
46655 const addClasses = function(classes2, g, _id, diagObj, parent) {
46656 const keys2 = Object.keys(classes2);
46657 log$1.info("keys:", keys2);
46658 log$1.info(classes2);
46659 keys2.forEach(function(id2) {
46660 var _a, _b;
46661 const vertex = classes2[id2];
46662 let cssClassStr = "";
46663 if (vertex.cssClasses.length > 0) {
46664 cssClassStr = cssClassStr + " " + vertex.cssClasses.join(" ");
46665 }
46666 const styles2 = { labelStyle: "", style: "" };
46667 const vertexText = vertex.label ?? vertex.id;
46668 const radius = 0;
46669 const shape = "class_box";
46670 const node2 = {
46671 labelStyle: styles2.labelStyle,
46672 shape,
46673 labelText: sanitizeText$1(vertexText),
46674 classData: vertex,
46675 rx: radius,
46676 ry: radius,
46677 class: cssClassStr,
46678 style: styles2.style,
46679 id: vertex.id,
46680 domId: vertex.domId,
46681 tooltip: diagObj.db.getTooltip(vertex.id, parent) || "",
46682 haveCallback: vertex.haveCallback,
46683 link: vertex.link,
46684 width: vertex.type === "group" ? 500 : void 0,
46685 type: vertex.type,
46686 // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release
46687 padding: ((_a = getConfig$1().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig$1().class) == null ? void 0 : _b.padding)
46688 };
46689 g.setNode(vertex.id, node2);
46690 if (parent) {
46691 g.setParent(vertex.id, parent);
46692 }
46693 log$1.info("setNode", node2);
46694 });
46695 };
46696 const addNotes = function(notes2, g, startEdgeId, classes2) {
46697 log$1.info(notes2);
46698 notes2.forEach(function(note2, i2) {
46699 var _a, _b;
46700 const vertex = note2;
46701 const cssNoteStr = "";
46702 const styles2 = { labelStyle: "", style: "" };
46703 const vertexText = vertex.text;
46704 const radius = 0;
46705 const shape = "note";
46706 const node2 = {
46707 labelStyle: styles2.labelStyle,
46708 shape,
46709 labelText: sanitizeText$1(vertexText),
46710 noteData: vertex,
46711 rx: radius,
46712 ry: radius,
46713 class: cssNoteStr,
46714 style: styles2.style,
46715 id: vertex.id,
46716 domId: vertex.id,
46717 tooltip: "",
46718 type: "note",
46719 // TODO V10: Flowchart ? Keeping flowchart for backwards compatibility. Remove in next major release
46720 padding: ((_a = getConfig$1().flowchart) == null ? void 0 : _a.padding) ?? ((_b = getConfig$1().class) == null ? void 0 : _b.padding)
46721 };
46722 g.setNode(vertex.id, node2);
46723 log$1.info("setNode", node2);
46724 if (!vertex.class || !(vertex.class in classes2)) {
46725 return;
46726 }
46727 const edgeId = startEdgeId + i2;
46728 const edgeData = {
46729 id: `edgeNote${edgeId}`,
46730 //Set relationship style and line type
46731 classes: "relation",
46732 pattern: "dotted",
46733 // Set link type for rendering
46734 arrowhead: "none",
46735 //Set edge extra labels
46736 startLabelRight: "",
46737 endLabelLeft: "",
46738 //Set relation arrow types
46739 arrowTypeStart: "none",
46740 arrowTypeEnd: "none",
46741 style: "fill:none",
46742 labelStyle: "",
46743 curve: interpolateToCurve(conf$3.curve, curveLinear)
46744 };
46745 g.setEdge(vertex.id, vertex.class, edgeData, edgeId);
46746 });
46747 };
46748 const addRelations = function(relations2, g) {
46749 const conf2 = getConfig$1().flowchart;
46750 let cnt2 = 0;
46751 relations2.forEach(function(edge) {
46752 var _a;
46753 cnt2++;
46754 const edgeData = {
46755 //Set relationship style and line type
46756 classes: "relation",
46757 pattern: edge.relation.lineType == 1 ? "dashed" : "solid",
46758 id: "id" + cnt2,
46759 // Set link type for rendering
46760 arrowhead: edge.type === "arrow_open" ? "none" : "normal",
46761 //Set edge extra labels
46762 startLabelRight: edge.relationTitle1 === "none" ? "" : edge.relationTitle1,
46763 endLabelLeft: edge.relationTitle2 === "none" ? "" : edge.relationTitle2,
46764 //Set relation arrow types
46765 arrowTypeStart: getArrowMarker(edge.relation.type1),
46766 arrowTypeEnd: getArrowMarker(edge.relation.type2),
46767 style: "fill:none",
46768 labelStyle: "",
46769 curve: interpolateToCurve(conf2 == null ? void 0 : conf2.curve, curveLinear)
46770 };
46771 log$1.info(edgeData, edge);
46772 if (edge.style !== void 0) {
46773 const styles2 = getStylesFromArray(edge.style);
46774 edgeData.style = styles2.style;
46775 edgeData.labelStyle = styles2.labelStyle;
46776 }
46777 edge.text = edge.title;
46778 if (edge.text === void 0) {
46779 if (edge.style !== void 0) {
46780 edgeData.arrowheadStyle = "fill: #333";
46781 }
46782 } else {
46783 edgeData.arrowheadStyle = "fill: #333";
46784 edgeData.labelpos = "c";
46785 if (((_a = getConfig$1().flowchart) == null ? void 0 : _a.htmlLabels) ?? getConfig$1().htmlLabels) {
46786 edgeData.labelType = "html";
46787 edgeData.label = '<span class="edgeLabel">' + edge.text + "</span>";
46788 } else {
46789 edgeData.labelType = "text";
46790 edgeData.label = edge.text.replace(common$1.lineBreakRegex, "\n");
46791 if (edge.style === void 0) {
46792 edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none";
46793 }
46794 edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
46795 }
46796 }
46797 g.setEdge(edge.id1, edge.id2, edgeData, cnt2);
46798 });
46799 };
46800 const setConf$3 = function(cnf) {
46801 conf$3 = {
46802 ...conf$3,
46803 ...cnf
46804 };
46805 };
46806 const draw$6 = async function(text2, id2, _version, diagObj) {
46807 log$1.info("Drawing class - ", id2);
46808 const conf2 = getConfig$1().flowchart ?? getConfig$1().class;
46809 const securityLevel = getConfig$1().securityLevel;
46810 log$1.info("config:", conf2);
46811 const nodeSpacing = (conf2 == null ? void 0 : conf2.nodeSpacing) ?? 50;
46812 const rankSpacing = (conf2 == null ? void 0 : conf2.rankSpacing) ?? 50;
46813 const g = new Graph({
46814 multigraph: true,
46815 compound: true
46816 }).setGraph({
46817 rankdir: diagObj.db.getDirection(),
46818 nodesep: nodeSpacing,
46819 ranksep: rankSpacing,
46820 marginx: 8,
46821 marginy: 8
46822 }).setDefaultEdgeLabel(function() {
46823 return {};
46824 });
46825 const namespaces2 = diagObj.db.getNamespaces();
46826 const classes2 = diagObj.db.getClasses();
46827 const relations2 = diagObj.db.getRelations();
46828 const notes2 = diagObj.db.getNotes();
46829 log$1.info(relations2);
46830 addNamespaces(namespaces2, g, id2, diagObj);
46831 addClasses(classes2, g, id2, diagObj);
46832 addRelations(relations2, g);
46833 addNotes(notes2, g, relations2.length + 1, classes2);
46834 let sandboxElement;
46835 if (securityLevel === "sandbox") {
46836 sandboxElement = select("#i" + id2);
46837 }
46838 const root2 = securityLevel === "sandbox" ? (
46839 // @ts-ignore Ignore type error for now
46840 select(sandboxElement.nodes()[0].contentDocument.body)
46841 ) : select("body");
46842 const svg2 = root2.select(`[id="${id2}"]`);
46843 const element2 = root2.select("#" + id2 + " g");
46844 await render(
46845 element2,
46846 g,
46847 ["aggregation", "extension", "composition", "dependency", "lollipop"],
46848 "classDiagram",
46849 id2
46850 );
46851 utils.insertTitle(svg2, "classTitleText", (conf2 == null ? void 0 : conf2.titleTopMargin) ?? 5, diagObj.db.getDiagramTitle());
46852 setupGraphViewbox$1(g, svg2, conf2 == null ? void 0 : conf2.diagramPadding, conf2 == null ? void 0 : conf2.useMaxWidth);
46853 if (!(conf2 == null ? void 0 : conf2.htmlLabels)) {
46854 const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
46855 const labels = doc.querySelectorAll('[id="' + id2 + '"] .edgeLabel .label');
46856 for (const label of labels) {
46857 const dim = label.getBBox();
46858 const rect2 = doc.createElementNS("http://www.w3.org/2000/svg", "rect");
46859 rect2.setAttribute("rx", 0);
46860 rect2.setAttribute("ry", 0);
46861 rect2.setAttribute("width", dim.width);
46862 rect2.setAttribute("height", dim.height);
46863 label.insertBefore(rect2, label.firstChild);
46864 }
46865 }
46866 };
46867 function getArrowMarker(type2) {
46868 let marker;
46869 switch (type2) {
46870 case 0:
46871 marker = "aggregation";
46872 break;
46873 case 1:
46874 marker = "extension";
46875 break;
46876 case 2:
46877 marker = "composition";
46878 break;
46879 case 3:
46880 marker = "dependency";
46881 break;
46882 case 4:
46883 marker = "lollipop";
46884 break;
46885 default:
46886 marker = "none";
46887 }
46888 return marker;
46889 }
46890 const renderer$5 = {
46891 setConf: setConf$3,
46892 draw: draw$6
46893 };
46894 const diagram$6 = {
46895 parser: parser$8,
46896 db: db$3,
46897 renderer: renderer$5,
46898 styles: styles$4,
46899 init: (cnf) => {
46900 if (!cnf.class) {
46901 cnf.class = {};
46902 }
46903 cnf.class.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
46904 db$3.clear();
46905 }
46906 };
46907 const classDiagramV2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
46908 __proto__: null,
46909 diagram: diagram$6
46910 }, Symbol.toStringTag, { value: "Module" }));
46911 var parser$5 = function() {
46912 var o = function(k, v, o2, l) {
46913 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
46914 ;
46915 return o2;
46916 }, $V0 = [1, 2], $V1 = [1, 3], $V2 = [1, 5], $V3 = [1, 7], $V4 = [2, 5], $V5 = [1, 15], $V6 = [1, 17], $V7 = [1, 21], $V8 = [1, 22], $V9 = [1, 23], $Va = [1, 24], $Vb = [1, 37], $Vc = [1, 25], $Vd = [1, 26], $Ve = [1, 27], $Vf = [1, 28], $Vg = [1, 29], $Vh = [1, 32], $Vi = [1, 33], $Vj = [1, 34], $Vk = [1, 35], $Vl = [1, 36], $Vm = [1, 39], $Vn = [1, 40], $Vo = [1, 41], $Vp = [1, 42], $Vq = [1, 38], $Vr = [1, 45], $Vs = [1, 4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vt = [1, 4, 5, 14, 15, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vu = [1, 4, 5, 7, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $Vv = [4, 5, 16, 17, 19, 21, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60];
46917 var parser2 = {
46918 trace: function trace() {
46919 },
46920 yy: {},
46921 symbols_: { "error": 2, "start": 3, "SPACE": 4, "NL": 5, "directive": 6, "SD": 7, "document": 8, "line": 9, "statement": 10, "classDefStatement": 11, "cssClassStatement": 12, "idStatement": 13, "DESCR": 14, "-->": 15, "HIDE_EMPTY": 16, "scale": 17, "WIDTH": 18, "COMPOSIT_STATE": 19, "STRUCT_START": 20, "STRUCT_STOP": 21, "STATE_DESCR": 22, "AS": 23, "ID": 24, "FORK": 25, "JOIN": 26, "CHOICE": 27, "CONCURRENT": 28, "note": 29, "notePosition": 30, "NOTE_TEXT": 31, "direction": 32, "acc_title": 33, "acc_title_value": 34, "acc_descr": 35, "acc_descr_value": 36, "acc_descr_multiline_value": 37, "classDef": 38, "CLASSDEF_ID": 39, "CLASSDEF_STYLEOPTS": 40, "DEFAULT": 41, "class": 42, "CLASSENTITY_IDS": 43, "STYLECLASS": 44, "openDirective": 45, "typeDirective": 46, "closeDirective": 47, ":": 48, "argDirective": 49, "direction_tb": 50, "direction_bt": 51, "direction_rl": 52, "direction_lr": 53, "eol": 54, ";": 55, "EDGE_STATE": 56, "STYLE_SEPARATOR": 57, "left_of": 58, "right_of": 59, "open_directive": 60, "type_directive": 61, "arg_directive": 62, "close_directive": 63, "$accept": 0, "$end": 1 },
46922 terminals_: { 2: "error", 4: "SPACE", 5: "NL", 7: "SD", 14: "DESCR", 15: "-->", 16: "HIDE_EMPTY", 17: "scale", 18: "WIDTH", 19: "COMPOSIT_STATE", 20: "STRUCT_START", 21: "STRUCT_STOP", 22: "STATE_DESCR", 23: "AS", 24: "ID", 25: "FORK", 26: "JOIN", 27: "CHOICE", 28: "CONCURRENT", 29: "note", 31: "NOTE_TEXT", 33: "acc_title", 34: "acc_title_value", 35: "acc_descr", 36: "acc_descr_value", 37: "acc_descr_multiline_value", 38: "classDef", 39: "CLASSDEF_ID", 40: "CLASSDEF_STYLEOPTS", 41: "DEFAULT", 42: "class", 43: "CLASSENTITY_IDS", 44: "STYLECLASS", 48: ":", 50: "direction_tb", 51: "direction_bt", 52: "direction_rl", 53: "direction_lr", 55: ";", 56: "EDGE_STATE", 57: "STYLE_SEPARATOR", 58: "left_of", 59: "right_of", 60: "open_directive", 61: "type_directive", 62: "arg_directive", 63: "close_directive" },
46923 productions_: [0, [3, 2], [3, 2], [3, 2], [3, 2], [8, 0], [8, 2], [9, 2], [9, 1], [9, 1], [10, 1], [10, 1], [10, 1], [10, 2], [10, 3], [10, 4], [10, 1], [10, 2], [10, 1], [10, 4], [10, 3], [10, 6], [10, 1], [10, 1], [10, 1], [10, 1], [10, 4], [10, 4], [10, 1], [10, 1], [10, 2], [10, 2], [10, 1], [11, 3], [11, 3], [12, 3], [6, 3], [6, 5], [32, 1], [32, 1], [32, 1], [32, 1], [54, 1], [54, 1], [13, 1], [13, 1], [13, 3], [13, 3], [30, 1], [30, 1], [45, 1], [46, 1], [49, 1], [47, 1]],
46924 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
46925 var $0 = $$.length - 1;
46926 switch (yystate) {
46927 case 4:
46928 yy.setRootDoc($$[$0]);
46929 return $$[$0];
46930 case 5:
46931 this.$ = [];
46932 break;
46933 case 6:
46934 if ($$[$0] != "nl") {
46935 $$[$0 - 1].push($$[$0]);
46936 this.$ = $$[$0 - 1];
46937 }
46938 break;
46939 case 7:
46940 case 8:
46941 this.$ = $$[$0];
46942 break;
46943 case 9:
46944 this.$ = "nl";
46945 break;
46946 case 12:
46947 this.$ = $$[$0];
46948 break;
46949 case 13:
46950 const stateStmt = $$[$0 - 1];
46951 stateStmt.description = yy.trimColon($$[$0]);
46952 this.$ = stateStmt;
46953 break;
46954 case 14:
46955 this.$ = { stmt: "relation", state1: $$[$0 - 2], state2: $$[$0] };
46956 break;
46957 case 15:
46958 const relDescription = yy.trimColon($$[$0]);
46959 this.$ = { stmt: "relation", state1: $$[$0 - 3], state2: $$[$0 - 1], description: relDescription };
46960 break;
46961 case 19:
46962 this.$ = { stmt: "state", id: $$[$0 - 3], type: "default", description: "", doc: $$[$0 - 1] };
46963 break;
46964 case 20:
46965 var id2 = $$[$0];
46966 var description2 = $$[$0 - 2].trim();
46967 if ($$[$0].match(":")) {
46968 var parts = $$[$0].split(":");
46969 id2 = parts[0];
46970 description2 = [description2, parts[1]];
46971 }
46972 this.$ = { stmt: "state", id: id2, type: "default", description: description2 };
46973 break;
46974 case 21:
46975 this.$ = { stmt: "state", id: $$[$0 - 3], type: "default", description: $$[$0 - 5], doc: $$[$0 - 1] };
46976 break;
46977 case 22:
46978 this.$ = { stmt: "state", id: $$[$0], type: "fork" };
46979 break;
46980 case 23:
46981 this.$ = { stmt: "state", id: $$[$0], type: "join" };
46982 break;
46983 case 24:
46984 this.$ = { stmt: "state", id: $$[$0], type: "choice" };
46985 break;
46986 case 25:
46987 this.$ = { stmt: "state", id: yy.getDividerId(), type: "divider" };
46988 break;
46989 case 26:
46990 this.$ = { stmt: "state", id: $$[$0 - 1].trim(), note: { position: $$[$0 - 2].trim(), text: $$[$0].trim() } };
46991 break;
46992 case 30:
46993 this.$ = $$[$0].trim();
46994 yy.setAccTitle(this.$);
46995 break;
46996 case 31:
46997 case 32:
46998 this.$ = $$[$0].trim();
46999 yy.setAccDescription(this.$);
47000 break;
47001 case 33:
47002 case 34:
47003 this.$ = { stmt: "classDef", id: $$[$0 - 1].trim(), classes: $$[$0].trim() };
47004 break;
47005 case 35:
47006 this.$ = { stmt: "applyClass", id: $$[$0 - 1].trim(), styleClass: $$[$0].trim() };
47007 break;
47008 case 38:
47009 yy.setDirection("TB");
47010 this.$ = { stmt: "dir", value: "TB" };
47011 break;
47012 case 39:
47013 yy.setDirection("BT");
47014 this.$ = { stmt: "dir", value: "BT" };
47015 break;
47016 case 40:
47017 yy.setDirection("RL");
47018 this.$ = { stmt: "dir", value: "RL" };
47019 break;
47020 case 41:
47021 yy.setDirection("LR");
47022 this.$ = { stmt: "dir", value: "LR" };
47023 break;
47024 case 44:
47025 case 45:
47026 this.$ = { stmt: "state", id: $$[$0].trim(), type: "default", description: "" };
47027 break;
47028 case 46:
47029 this.$ = { stmt: "state", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: "default", description: "" };
47030 break;
47031 case 47:
47032 this.$ = { stmt: "state", id: $$[$0 - 2].trim(), classes: [$$[$0].trim()], type: "default", description: "" };
47033 break;
47034 case 50:
47035 yy.parseDirective("%%{", "open_directive");
47036 break;
47037 case 51:
47038 yy.parseDirective($$[$0], "type_directive");
47039 break;
47040 case 52:
47041 $$[$0] = $$[$0].trim().replace(/'/g, '"');
47042 yy.parseDirective($$[$0], "arg_directive");
47043 break;
47044 case 53:
47045 yy.parseDirective("}%%", "close_directive", "state");
47046 break;
47047 }
47048 },
47049 table: [{ 3: 1, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 1: [3] }, { 3: 8, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 3: 9, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, { 3: 10, 4: $V0, 5: $V1, 6: 4, 7: $V2, 45: 6, 60: $V3 }, o([1, 4, 5, 16, 17, 19, 22, 24, 25, 26, 27, 28, 29, 33, 35, 37, 38, 42, 50, 51, 52, 53, 56, 60], $V4, { 8: 11 }), { 46: 12, 61: [1, 13] }, { 61: [2, 50] }, { 1: [2, 1] }, { 1: [2, 2] }, { 1: [2, 3] }, { 1: [2, 4], 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, { 47: 43, 48: [1, 44], 63: $Vr }, o([48, 63], [2, 51]), o($Vs, [2, 6]), { 6: 30, 10: 46, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 8]), o($Vs, [2, 9]), o($Vs, [2, 10]), o($Vs, [2, 11]), o($Vs, [2, 12], { 14: [1, 47], 15: [1, 48] }), o($Vs, [2, 16]), { 18: [1, 49] }, o($Vs, [2, 18], { 20: [1, 50] }), { 23: [1, 51] }, o($Vs, [2, 22]), o($Vs, [2, 23]), o($Vs, [2, 24]), o($Vs, [2, 25]), { 30: 52, 31: [1, 53], 58: [1, 54], 59: [1, 55] }, o($Vs, [2, 28]), o($Vs, [2, 29]), { 34: [1, 56] }, { 36: [1, 57] }, o($Vs, [2, 32]), { 39: [1, 58], 41: [1, 59] }, { 43: [1, 60] }, o($Vt, [2, 44], { 57: [1, 61] }), o($Vt, [2, 45], { 57: [1, 62] }), o($Vs, [2, 38]), o($Vs, [2, 39]), o($Vs, [2, 40]), o($Vs, [2, 41]), o($Vu, [2, 36]), { 49: 63, 62: [1, 64] }, o($Vu, [2, 53]), o($Vs, [2, 7]), o($Vs, [2, 13]), { 13: 65, 24: $Vb, 56: $Vq }, o($Vs, [2, 17]), o($Vv, $V4, { 8: 66 }), { 24: [1, 67] }, { 24: [1, 68] }, { 23: [1, 69] }, { 24: [2, 48] }, { 24: [2, 49] }, o($Vs, [2, 30]), o($Vs, [2, 31]), { 40: [1, 70] }, { 40: [1, 71] }, { 44: [1, 72] }, { 24: [1, 73] }, { 24: [1, 74] }, { 47: 75, 63: $Vr }, { 63: [2, 52] }, o($Vs, [2, 14], { 14: [1, 76] }), { 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 21: [1, 77], 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 20], { 20: [1, 78] }), { 31: [1, 79] }, { 24: [1, 80] }, o($Vs, [2, 33]), o($Vs, [2, 34]), o($Vs, [2, 35]), o($Vt, [2, 46]), o($Vt, [2, 47]), o($Vu, [2, 37]), o($Vs, [2, 15]), o($Vs, [2, 19]), o($Vv, $V4, { 8: 81 }), o($Vs, [2, 26]), o($Vs, [2, 27]), { 4: $V5, 5: $V6, 6: 30, 9: 14, 10: 16, 11: 18, 12: 19, 13: 20, 16: $V7, 17: $V8, 19: $V9, 21: [1, 82], 22: $Va, 24: $Vb, 25: $Vc, 26: $Vd, 27: $Ve, 28: $Vf, 29: $Vg, 32: 31, 33: $Vh, 35: $Vi, 37: $Vj, 38: $Vk, 42: $Vl, 45: 6, 50: $Vm, 51: $Vn, 52: $Vo, 53: $Vp, 56: $Vq, 60: $V3 }, o($Vs, [2, 21])],
47050 defaultActions: { 7: [2, 50], 8: [2, 1], 9: [2, 2], 10: [2, 3], 54: [2, 48], 55: [2, 49], 64: [2, 52] },
47051 parseError: function parseError2(str2, hash) {
47052 if (hash.recoverable) {
47053 this.trace(str2);
47054 } else {
47055 var error = new Error(str2);
47056 error.hash = hash;
47057 throw error;
47058 }
47059 },
47060 parse: function parse2(input) {
47061 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
47062 var args = lstack.slice.call(arguments, 1);
47063 var lexer2 = Object.create(this.lexer);
47064 var sharedState = { yy: {} };
47065 for (var k in this.yy) {
47066 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
47067 sharedState.yy[k] = this.yy[k];
47068 }
47069 }
47070 lexer2.setInput(input, sharedState.yy);
47071 sharedState.yy.lexer = lexer2;
47072 sharedState.yy.parser = this;
47073 if (typeof lexer2.yylloc == "undefined") {
47074 lexer2.yylloc = {};
47075 }
47076 var yyloc = lexer2.yylloc;
47077 lstack.push(yyloc);
47078 var ranges = lexer2.options && lexer2.options.ranges;
47079 if (typeof sharedState.yy.parseError === "function") {
47080 this.parseError = sharedState.yy.parseError;
47081 } else {
47082 this.parseError = Object.getPrototypeOf(this).parseError;
47083 }
47084 function lex2() {
47085 var token2;
47086 token2 = tstack.pop() || lexer2.lex() || EOF;
47087 if (typeof token2 !== "number") {
47088 if (token2 instanceof Array) {
47089 tstack = token2;
47090 token2 = tstack.pop();
47091 }
47092 token2 = self2.symbols_[token2] || token2;
47093 }
47094 return token2;
47095 }
47096 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
47097 while (true) {
47098 state2 = stack[stack.length - 1];
47099 if (this.defaultActions[state2]) {
47100 action = this.defaultActions[state2];
47101 } else {
47102 if (symbol === null || typeof symbol == "undefined") {
47103 symbol = lex2();
47104 }
47105 action = table[state2] && table[state2][symbol];
47106 }
47107 if (typeof action === "undefined" || !action.length || !action[0]) {
47108 var errStr = "";
47109 expected = [];
47110 for (p in table[state2]) {
47111 if (this.terminals_[p] && p > TERROR) {
47112 expected.push("'" + this.terminals_[p] + "'");
47113 }
47114 }
47115 if (lexer2.showPosition) {
47116 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
47117 } else {
47118 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
47119 }
47120 this.parseError(errStr, {
47121 text: lexer2.match,
47122 token: this.terminals_[symbol] || symbol,
47123 line: lexer2.yylineno,
47124 loc: yyloc,
47125 expected
47126 });
47127 }
47128 if (action[0] instanceof Array && action.length > 1) {
47129 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
47130 }
47131 switch (action[0]) {
47132 case 1:
47133 stack.push(symbol);
47134 vstack.push(lexer2.yytext);
47135 lstack.push(lexer2.yylloc);
47136 stack.push(action[1]);
47137 symbol = null;
47138 {
47139 yyleng = lexer2.yyleng;
47140 yytext = lexer2.yytext;
47141 yylineno = lexer2.yylineno;
47142 yyloc = lexer2.yylloc;
47143 }
47144 break;
47145 case 2:
47146 len = this.productions_[action[1]][1];
47147 yyval.$ = vstack[vstack.length - len];
47148 yyval._$ = {
47149 first_line: lstack[lstack.length - (len || 1)].first_line,
47150 last_line: lstack[lstack.length - 1].last_line,
47151 first_column: lstack[lstack.length - (len || 1)].first_column,
47152 last_column: lstack[lstack.length - 1].last_column
47153 };
47154 if (ranges) {
47155 yyval._$.range = [
47156 lstack[lstack.length - (len || 1)].range[0],
47157 lstack[lstack.length - 1].range[1]
47158 ];
47159 }
47160 r = this.performAction.apply(yyval, [
47161 yytext,
47162 yyleng,
47163 yylineno,
47164 sharedState.yy,
47165 action[1],
47166 vstack,
47167 lstack
47168 ].concat(args));
47169 if (typeof r !== "undefined") {
47170 return r;
47171 }
47172 if (len) {
47173 stack = stack.slice(0, -1 * len * 2);
47174 vstack = vstack.slice(0, -1 * len);
47175 lstack = lstack.slice(0, -1 * len);
47176 }
47177 stack.push(this.productions_[action[1]][0]);
47178 vstack.push(yyval.$);
47179 lstack.push(yyval._$);
47180 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
47181 stack.push(newState);
47182 break;
47183 case 3:
47184 return true;
47185 }
47186 }
47187 return true;
47188 }
47189 };
47190 var lexer = function() {
47191 var lexer2 = {
47192 EOF: 1,
47193 parseError: function parseError2(str2, hash) {
47194 if (this.yy.parser) {
47195 this.yy.parser.parseError(str2, hash);
47196 } else {
47197 throw new Error(str2);
47198 }
47199 },
47200 // resets the lexer, sets new input
47201 setInput: function(input, yy) {
47202 this.yy = yy || this.yy || {};
47203 this._input = input;
47204 this._more = this._backtrack = this.done = false;
47205 this.yylineno = this.yyleng = 0;
47206 this.yytext = this.matched = this.match = "";
47207 this.conditionStack = ["INITIAL"];
47208 this.yylloc = {
47209 first_line: 1,
47210 first_column: 0,
47211 last_line: 1,
47212 last_column: 0
47213 };
47214 if (this.options.ranges) {
47215 this.yylloc.range = [0, 0];
47216 }
47217 this.offset = 0;
47218 return this;
47219 },
47220 // consumes and returns one char from the input
47221 input: function() {
47222 var ch = this._input[0];
47223 this.yytext += ch;
47224 this.yyleng++;
47225 this.offset++;
47226 this.match += ch;
47227 this.matched += ch;
47228 var lines = ch.match(/(?:\r\n?|\n).*/g);
47229 if (lines) {
47230 this.yylineno++;
47231 this.yylloc.last_line++;
47232 } else {
47233 this.yylloc.last_column++;
47234 }
47235 if (this.options.ranges) {
47236 this.yylloc.range[1]++;
47237 }
47238 this._input = this._input.slice(1);
47239 return ch;
47240 },
47241 // unshifts one char (or a string) into the input
47242 unput: function(ch) {
47243 var len = ch.length;
47244 var lines = ch.split(/(?:\r\n?|\n)/g);
47245 this._input = ch + this._input;
47246 this.yytext = this.yytext.substr(0, this.yytext.length - len);
47247 this.offset -= len;
47248 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
47249 this.match = this.match.substr(0, this.match.length - 1);
47250 this.matched = this.matched.substr(0, this.matched.length - 1);
47251 if (lines.length - 1) {
47252 this.yylineno -= lines.length - 1;
47253 }
47254 var r = this.yylloc.range;
47255 this.yylloc = {
47256 first_line: this.yylloc.first_line,
47257 last_line: this.yylineno + 1,
47258 first_column: this.yylloc.first_column,
47259 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
47260 };
47261 if (this.options.ranges) {
47262 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
47263 }
47264 this.yyleng = this.yytext.length;
47265 return this;
47266 },
47267 // When called from action, caches matched text and appends it on next action
47268 more: function() {
47269 this._more = true;
47270 return this;
47271 },
47272 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
47273 reject: function() {
47274 if (this.options.backtrack_lexer) {
47275 this._backtrack = true;
47276 } else {
47277 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
47278 text: "",
47279 token: null,
47280 line: this.yylineno
47281 });
47282 }
47283 return this;
47284 },
47285 // retain first n characters of the match
47286 less: function(n) {
47287 this.unput(this.match.slice(n));
47288 },
47289 // displays already matched input, i.e. for error messages
47290 pastInput: function() {
47291 var past = this.matched.substr(0, this.matched.length - this.match.length);
47292 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
47293 },
47294 // displays upcoming input, i.e. for error messages
47295 upcomingInput: function() {
47296 var next2 = this.match;
47297 if (next2.length < 20) {
47298 next2 += this._input.substr(0, 20 - next2.length);
47299 }
47300 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
47301 },
47302 // displays the character position where the lexing error occurred, i.e. for error messages
47303 showPosition: function() {
47304 var pre = this.pastInput();
47305 var c2 = new Array(pre.length + 1).join("-");
47306 return pre + this.upcomingInput() + "\n" + c2 + "^";
47307 },
47308 // test the lexed token: return FALSE when not a match, otherwise return token
47309 test_match: function(match, indexed_rule) {
47310 var token2, lines, backup;
47311 if (this.options.backtrack_lexer) {
47312 backup = {
47313 yylineno: this.yylineno,
47314 yylloc: {
47315 first_line: this.yylloc.first_line,
47316 last_line: this.last_line,
47317 first_column: this.yylloc.first_column,
47318 last_column: this.yylloc.last_column
47319 },
47320 yytext: this.yytext,
47321 match: this.match,
47322 matches: this.matches,
47323 matched: this.matched,
47324 yyleng: this.yyleng,
47325 offset: this.offset,
47326 _more: this._more,
47327 _input: this._input,
47328 yy: this.yy,
47329 conditionStack: this.conditionStack.slice(0),
47330 done: this.done
47331 };
47332 if (this.options.ranges) {
47333 backup.yylloc.range = this.yylloc.range.slice(0);
47334 }
47335 }
47336 lines = match[0].match(/(?:\r\n?|\n).*/g);
47337 if (lines) {
47338 this.yylineno += lines.length;
47339 }
47340 this.yylloc = {
47341 first_line: this.yylloc.last_line,
47342 last_line: this.yylineno + 1,
47343 first_column: this.yylloc.last_column,
47344 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
47345 };
47346 this.yytext += match[0];
47347 this.match += match[0];
47348 this.matches = match;
47349 this.yyleng = this.yytext.length;
47350 if (this.options.ranges) {
47351 this.yylloc.range = [this.offset, this.offset += this.yyleng];
47352 }
47353 this._more = false;
47354 this._backtrack = false;
47355 this._input = this._input.slice(match[0].length);
47356 this.matched += match[0];
47357 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
47358 if (this.done && this._input) {
47359 this.done = false;
47360 }
47361 if (token2) {
47362 return token2;
47363 } else if (this._backtrack) {
47364 for (var k in backup) {
47365 this[k] = backup[k];
47366 }
47367 return false;
47368 }
47369 return false;
47370 },
47371 // return next match in input
47372 next: function() {
47373 if (this.done) {
47374 return this.EOF;
47375 }
47376 if (!this._input) {
47377 this.done = true;
47378 }
47379 var token2, match, tempMatch, index2;
47380 if (!this._more) {
47381 this.yytext = "";
47382 this.match = "";
47383 }
47384 var rules = this._currentRules();
47385 for (var i2 = 0; i2 < rules.length; i2++) {
47386 tempMatch = this._input.match(this.rules[rules[i2]]);
47387 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
47388 match = tempMatch;
47389 index2 = i2;
47390 if (this.options.backtrack_lexer) {
47391 token2 = this.test_match(tempMatch, rules[i2]);
47392 if (token2 !== false) {
47393 return token2;
47394 } else if (this._backtrack) {
47395 match = false;
47396 continue;
47397 } else {
47398 return false;
47399 }
47400 } else if (!this.options.flex) {
47401 break;
47402 }
47403 }
47404 }
47405 if (match) {
47406 token2 = this.test_match(match, rules[index2]);
47407 if (token2 !== false) {
47408 return token2;
47409 }
47410 return false;
47411 }
47412 if (this._input === "") {
47413 return this.EOF;
47414 } else {
47415 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
47416 text: "",
47417 token: null,
47418 line: this.yylineno
47419 });
47420 }
47421 },
47422 // return next match that has a token
47423 lex: function lex2() {
47424 var r = this.next();
47425 if (r) {
47426 return r;
47427 } else {
47428 return this.lex();
47429 }
47430 },
47431 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
47432 begin: function begin(condition) {
47433 this.conditionStack.push(condition);
47434 },
47435 // pop the previously active lexer condition state off the condition stack
47436 popState: function popState() {
47437 var n = this.conditionStack.length - 1;
47438 if (n > 0) {
47439 return this.conditionStack.pop();
47440 } else {
47441 return this.conditionStack[0];
47442 }
47443 },
47444 // produce the lexer rule set which is active for the currently active lexer condition state
47445 _currentRules: function _currentRules() {
47446 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
47447 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
47448 } else {
47449 return this.conditions["INITIAL"].rules;
47450 }
47451 },
47452 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
47453 topState: function topState(n) {
47454 n = this.conditionStack.length - 1 - Math.abs(n || 0);
47455 if (n >= 0) {
47456 return this.conditionStack[n];
47457 } else {
47458 return "INITIAL";
47459 }
47460 },
47461 // alias for begin(condition)
47462 pushState: function pushState(condition) {
47463 this.begin(condition);
47464 },
47465 // return the number of states currently on the stack
47466 stateStackSize: function stateStackSize() {
47467 return this.conditionStack.length;
47468 },
47469 options: { "case-insensitive": true },
47470 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
47471 switch ($avoiding_name_collisions) {
47472 case 0:
47473 return 41;
47474 case 1:
47475 return 50;
47476 case 2:
47477 return 51;
47478 case 3:
47479 return 52;
47480 case 4:
47481 return 53;
47482 case 5:
47483 this.begin("open_directive");
47484 return 60;
47485 case 6:
47486 this.begin("type_directive");
47487 return 61;
47488 case 7:
47489 this.popState();
47490 this.begin("arg_directive");
47491 return 48;
47492 case 8:
47493 this.popState();
47494 this.popState();
47495 return 63;
47496 case 9:
47497 return 62;
47498 case 10:
47499 break;
47500 case 11:
47501 break;
47502 case 12:
47503 return 5;
47504 case 13:
47505 break;
47506 case 14:
47507 break;
47508 case 15:
47509 break;
47510 case 16:
47511 break;
47512 case 17:
47513 this.pushState("SCALE");
47514 return 17;
47515 case 18:
47516 return 18;
47517 case 19:
47518 this.popState();
47519 break;
47520 case 20:
47521 this.begin("acc_title");
47522 return 33;
47523 case 21:
47524 this.popState();
47525 return "acc_title_value";
47526 case 22:
47527 this.begin("acc_descr");
47528 return 35;
47529 case 23:
47530 this.popState();
47531 return "acc_descr_value";
47532 case 24:
47533 this.begin("acc_descr_multiline");
47534 break;
47535 case 25:
47536 this.popState();
47537 break;
47538 case 26:
47539 return "acc_descr_multiline_value";
47540 case 27:
47541 this.pushState("CLASSDEF");
47542 return 38;
47543 case 28:
47544 this.popState();
47545 this.pushState("CLASSDEFID");
47546 return "DEFAULT_CLASSDEF_ID";
47547 case 29:
47548 this.popState();
47549 this.pushState("CLASSDEFID");
47550 return 39;
47551 case 30:
47552 this.popState();
47553 return 40;
47554 case 31:
47555 this.pushState("CLASS");
47556 return 42;
47557 case 32:
47558 this.popState();
47559 this.pushState("CLASS_STYLE");
47560 return 43;
47561 case 33:
47562 this.popState();
47563 return 44;
47564 case 34:
47565 this.pushState("SCALE");
47566 return 17;
47567 case 35:
47568 return 18;
47569 case 36:
47570 this.popState();
47571 break;
47572 case 37:
47573 this.pushState("STATE");
47574 break;
47575 case 38:
47576 this.popState();
47577 yy_.yytext = yy_.yytext.slice(0, -8).trim();
47578 return 25;
47579 case 39:
47580 this.popState();
47581 yy_.yytext = yy_.yytext.slice(0, -8).trim();
47582 return 26;
47583 case 40:
47584 this.popState();
47585 yy_.yytext = yy_.yytext.slice(0, -10).trim();
47586 return 27;
47587 case 41:
47588 this.popState();
47589 yy_.yytext = yy_.yytext.slice(0, -8).trim();
47590 return 25;
47591 case 42:
47592 this.popState();
47593 yy_.yytext = yy_.yytext.slice(0, -8).trim();
47594 return 26;
47595 case 43:
47596 this.popState();
47597 yy_.yytext = yy_.yytext.slice(0, -10).trim();
47598 return 27;
47599 case 44:
47600 return 50;
47601 case 45:
47602 return 51;
47603 case 46:
47604 return 52;
47605 case 47:
47606 return 53;
47607 case 48:
47608 this.pushState("STATE_STRING");
47609 break;
47610 case 49:
47611 this.pushState("STATE_ID");
47612 return "AS";
47613 case 50:
47614 this.popState();
47615 return "ID";
47616 case 51:
47617 this.popState();
47618 break;
47619 case 52:
47620 return "STATE_DESCR";
47621 case 53:
47622 return 19;
47623 case 54:
47624 this.popState();
47625 break;
47626 case 55:
47627 this.popState();
47628 this.pushState("struct");
47629 return 20;
47630 case 56:
47631 break;
47632 case 57:
47633 this.popState();
47634 return 21;
47635 case 58:
47636 break;
47637 case 59:
47638 this.begin("NOTE");
47639 return 29;
47640 case 60:
47641 this.popState();
47642 this.pushState("NOTE_ID");
47643 return 58;
47644 case 61:
47645 this.popState();
47646 this.pushState("NOTE_ID");
47647 return 59;
47648 case 62:
47649 this.popState();
47650 this.pushState("FLOATING_NOTE");
47651 break;
47652 case 63:
47653 this.popState();
47654 this.pushState("FLOATING_NOTE_ID");
47655 return "AS";
47656 case 64:
47657 break;
47658 case 65:
47659 return "NOTE_TEXT";
47660 case 66:
47661 this.popState();
47662 return "ID";
47663 case 67:
47664 this.popState();
47665 this.pushState("NOTE_TEXT");
47666 return 24;
47667 case 68:
47668 this.popState();
47669 yy_.yytext = yy_.yytext.substr(2).trim();
47670 return 31;
47671 case 69:
47672 this.popState();
47673 yy_.yytext = yy_.yytext.slice(0, -8).trim();
47674 return 31;
47675 case 70:
47676 return 7;
47677 case 71:
47678 return 7;
47679 case 72:
47680 return 16;
47681 case 73:
47682 return 56;
47683 case 74:
47684 return 24;
47685 case 75:
47686 yy_.yytext = yy_.yytext.trim();
47687 return 14;
47688 case 76:
47689 return 15;
47690 case 77:
47691 return 28;
47692 case 78:
47693 return 57;
47694 case 79:
47695 return 5;
47696 case 80:
47697 return "INVALID";
47698 }
47699 },
47700 rules: [/^(?:default\b)/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:[\s]+)/i, /^(?:((?!\n)\s)+)/i, /^(?:#[^\n]*)/i, /^(?:%[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:classDef\s+)/i, /^(?:DEFAULT\s+)/i, /^(?:\w+\s+)/i, /^(?:[^\n]*)/i, /^(?:class\s+)/i, /^(?:(\w+)+((,\s*\w+)*))/i, /^(?:[^\n]*)/i, /^(?:scale\s+)/i, /^(?:\d+)/i, /^(?:\s+width\b)/i, /^(?:state\s+)/i, /^(?:.*<<fork>>)/i, /^(?:.*<<join>>)/i, /^(?:.*<<choice>>)/i, /^(?:.*\[\[fork\]\])/i, /^(?:.*\[\[join\]\])/i, /^(?:.*\[\[choice\]\])/i, /^(?:.*direction\s+TB[^\n]*)/i, /^(?:.*direction\s+BT[^\n]*)/i, /^(?:.*direction\s+RL[^\n]*)/i, /^(?:.*direction\s+LR[^\n]*)/i, /^(?:["])/i, /^(?:\s*as\s+)/i, /^(?:[^\n\{]*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n\s\{]+)/i, /^(?:\n)/i, /^(?:\{)/i, /^(?:%%(?!\{)[^\n]*)/i, /^(?:\})/i, /^(?:[\n])/i, /^(?:note\s+)/i, /^(?:left of\b)/i, /^(?:right of\b)/i, /^(?:")/i, /^(?:\s*as\s*)/i, /^(?:["])/i, /^(?:[^"]*)/i, /^(?:[^\n]*)/i, /^(?:\s*[^:\n\s\-]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:[\s\S]*?end note\b)/i, /^(?:stateDiagram\s+)/i, /^(?:stateDiagram-v2\s+)/i, /^(?:hide empty description\b)/i, /^(?:\[\*\])/i, /^(?:[^:\n\s\-\{]+)/i, /^(?:\s*:[^:\n;]+)/i, /^(?:-->)/i, /^(?:--)/i, /^(?::::)/i, /^(?:$)/i, /^(?:.)/i],
47701 conditions: { "LINE": { "rules": [14, 15], "inclusive": false }, "close_directive": { "rules": [14, 15], "inclusive": false }, "arg_directive": { "rules": [8, 9, 14, 15], "inclusive": false }, "type_directive": { "rules": [7, 8, 14, 15], "inclusive": false }, "open_directive": { "rules": [6, 14, 15], "inclusive": false }, "struct": { "rules": [14, 15, 27, 31, 37, 44, 45, 46, 47, 56, 57, 58, 59, 73, 74, 75, 76, 77], "inclusive": false }, "FLOATING_NOTE_ID": { "rules": [66], "inclusive": false }, "FLOATING_NOTE": { "rules": [63, 64, 65], "inclusive": false }, "NOTE_TEXT": { "rules": [68, 69], "inclusive": false }, "NOTE_ID": { "rules": [67], "inclusive": false }, "NOTE": { "rules": [60, 61, 62], "inclusive": false }, "CLASS_STYLE": { "rules": [33], "inclusive": false }, "CLASS": { "rules": [32], "inclusive": false }, "CLASSDEFID": { "rules": [30], "inclusive": false }, "CLASSDEF": { "rules": [28, 29], "inclusive": false }, "acc_descr_multiline": { "rules": [25, 26], "inclusive": false }, "acc_descr": { "rules": [23], "inclusive": false }, "acc_title": { "rules": [21], "inclusive": false }, "SCALE": { "rules": [18, 19, 35, 36], "inclusive": false }, "ALIAS": { "rules": [], "inclusive": false }, "STATE_ID": { "rules": [50], "inclusive": false }, "STATE_STRING": { "rules": [51, 52], "inclusive": false }, "FORK_STATE": { "rules": [], "inclusive": false }, "STATE": { "rules": [14, 15, 38, 39, 40, 41, 42, 43, 48, 49, 53, 54, 55], "inclusive": false }, "ID": { "rules": [14, 15], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 3, 4, 5, 10, 11, 12, 13, 15, 16, 17, 20, 22, 24, 27, 31, 34, 37, 55, 59, 70, 71, 72, 73, 74, 75, 76, 78, 79, 80], "inclusive": true } }
47702 };
47703 return lexer2;
47704 }();
47705 parser2.lexer = lexer;
47706 function Parser() {
47707 this.yy = {};
47708 }
47709 Parser.prototype = parser2;
47710 parser2.Parser = Parser;
47711 return new Parser();
47712 }();
47713 parser$5.parser = parser$5;
47714 const parser$6 = parser$5;
47715 const DEFAULT_DIAGRAM_DIRECTION = "LR";
47716 const DEFAULT_NESTED_DOC_DIR = "TB";
47717 const STMT_STATE = "state";
47718 const STMT_RELATION = "relation";
47719 const STMT_CLASSDEF = "classDef";
47720 const STMT_APPLYCLASS = "applyClass";
47721 const DEFAULT_STATE_TYPE = "default";
47722 const DIVIDER_TYPE = "divider";
47723 const START_NODE = "[*]";
47724 const START_TYPE = "start";
47725 const END_NODE = START_NODE;
47726 const END_TYPE = "end";
47727 const COLOR_KEYWORD = "color";
47728 const FILL_KEYWORD = "fill";
47729 const BG_FILL = "bgFill";
47730 const STYLECLASS_SEP = ",";
47731 function newClassesList() {
47732 return {};
47733 }
47734 let direction = DEFAULT_DIAGRAM_DIRECTION;
47735 let rootDoc = [];
47736 let classes = newClassesList();
47737 const newDoc = () => {
47738 return {
47739 relations: [],
47740 states: {},
47741 documents: {}
47742 };
47743 };
47744 let documents = {
47745 root: newDoc()
47746 };
47747 let currentDocument = documents.root;
47748 let startEndCount = 0;
47749 let dividerCnt = 0;
47750 const lineType = {
47751 LINE: 0,
47752 DOTTED_LINE: 1
47753 };
47754 const relationType = {
47755 AGGREGATION: 0,
47756 EXTENSION: 1,
47757 COMPOSITION: 2,
47758 DEPENDENCY: 3
47759 };
47760 const clone = (o) => JSON.parse(JSON.stringify(o));
47761 const parseDirective$2 = function(statement, context, type2) {
47762 mermaidAPI.parseDirective(this, statement, context, type2);
47763 };
47764 const setRootDoc = (o) => {
47765 log$1.info("Setting root doc", o);
47766 rootDoc = o;
47767 };
47768 const getRootDoc = () => rootDoc;
47769 const docTranslator = (parent, node2, first) => {
47770 if (node2.stmt === STMT_RELATION) {
47771 docTranslator(parent, node2.state1, true);
47772 docTranslator(parent, node2.state2, false);
47773 } else {
47774 if (node2.stmt === STMT_STATE) {
47775 if (node2.id === "[*]") {
47776 node2.id = first ? parent.id + "_start" : parent.id + "_end";
47777 node2.start = first;
47778 } else {
47779 node2.id = node2.id.trim();
47780 }
47781 }
47782 if (node2.doc) {
47783 const doc = [];
47784 let currentDoc = [];
47785 let i2;
47786 for (i2 = 0; i2 < node2.doc.length; i2++) {
47787 if (node2.doc[i2].type === DIVIDER_TYPE) {
47788 const newNode = clone(node2.doc[i2]);
47789 newNode.doc = clone(currentDoc);
47790 doc.push(newNode);
47791 currentDoc = [];
47792 } else {
47793 currentDoc.push(node2.doc[i2]);
47794 }
47795 }
47796 if (doc.length > 0 && currentDoc.length > 0) {
47797 const newNode = {
47798 stmt: STMT_STATE,
47799 id: generateId$1(),
47800 type: "divider",
47801 doc: clone(currentDoc)
47802 };
47803 doc.push(clone(newNode));
47804 node2.doc = doc;
47805 }
47806 node2.doc.forEach((docNode) => docTranslator(node2, docNode, true));
47807 }
47808 }
47809 };
47810 const getRootDocV2 = () => {
47811 docTranslator({ id: "root" }, { id: "root", doc: rootDoc }, true);
47812 return { id: "root", doc: rootDoc };
47813 };
47814 const extract = (_doc) => {
47815 let doc;
47816 if (_doc.doc) {
47817 doc = _doc.doc;
47818 } else {
47819 doc = _doc;
47820 }
47821 log$1.info(doc);
47822 clear$3(true);
47823 log$1.info("Extract", doc);
47824 doc.forEach((item) => {
47825 switch (item.stmt) {
47826 case STMT_STATE:
47827 addState(
47828 item.id.trim(),
47829 item.type,
47830 item.doc,
47831 item.description,
47832 item.note,
47833 item.classes,
47834 item.styles,
47835 item.textStyles
47836 );
47837 break;
47838 case STMT_RELATION:
47839 addRelation(item.state1, item.state2, item.description);
47840 break;
47841 case STMT_CLASSDEF:
47842 addStyleClass(item.id.trim(), item.classes);
47843 break;
47844 case STMT_APPLYCLASS:
47845 setCssClass(item.id.trim(), item.styleClass);
47846 break;
47847 }
47848 });
47849 };
47850 const addState = function(id2, type2 = DEFAULT_STATE_TYPE, doc = null, descr = null, note2 = null, classes2 = null, styles2 = null, textStyles = null) {
47851 const trimmedId = id2 == null ? void 0 : id2.trim();
47852 if (currentDocument.states[trimmedId] === void 0) {
47853 log$1.info("Adding state ", trimmedId, descr);
47854 currentDocument.states[trimmedId] = {
47855 id: trimmedId,
47856 descriptions: [],
47857 type: type2,
47858 doc,
47859 note: note2,
47860 classes: [],
47861 styles: [],
47862 textStyles: []
47863 };
47864 } else {
47865 if (!currentDocument.states[trimmedId].doc) {
47866 currentDocument.states[trimmedId].doc = doc;
47867 }
47868 if (!currentDocument.states[trimmedId].type) {
47869 currentDocument.states[trimmedId].type = type2;
47870 }
47871 }
47872 if (descr) {
47873 log$1.info("Setting state description", trimmedId, descr);
47874 if (typeof descr === "string") {
47875 addDescription(trimmedId, descr.trim());
47876 }
47877 if (typeof descr === "object") {
47878 descr.forEach((des) => addDescription(trimmedId, des.trim()));
47879 }
47880 }
47881 if (note2) {
47882 currentDocument.states[trimmedId].note = note2;
47883 currentDocument.states[trimmedId].note.text = common$1.sanitizeText(
47884 currentDocument.states[trimmedId].note.text,
47885 getConfig$1()
47886 );
47887 }
47888 if (classes2) {
47889 log$1.info("Setting state classes", trimmedId, classes2);
47890 const classesList = typeof classes2 === "string" ? [classes2] : classes2;
47891 classesList.forEach((klass) => setCssClass(trimmedId, klass.trim()));
47892 }
47893 if (styles2) {
47894 log$1.info("Setting state styles", trimmedId, styles2);
47895 const stylesList = typeof styles2 === "string" ? [styles2] : styles2;
47896 stylesList.forEach((style) => setStyle(trimmedId, style.trim()));
47897 }
47898 if (textStyles) {
47899 log$1.info("Setting state styles", trimmedId, styles2);
47900 const textStylesList = typeof textStyles === "string" ? [textStyles] : textStyles;
47901 textStylesList.forEach((textStyle) => setTextStyle(trimmedId, textStyle.trim()));
47902 }
47903 };
47904 const clear$3 = function(saveCommon) {
47905 documents = {
47906 root: newDoc()
47907 };
47908 currentDocument = documents.root;
47909 startEndCount = 0;
47910 classes = newClassesList();
47911 if (!saveCommon) {
47912 clear$j();
47913 }
47914 };
47915 const getState = function(id2) {
47916 return currentDocument.states[id2];
47917 };
47918 const getStates = function() {
47919 return currentDocument.states;
47920 };
47921 const logDocuments = function() {
47922 log$1.info("Documents = ", documents);
47923 };
47924 const getRelations = function() {
47925 return currentDocument.relations;
47926 };
47927 function startIdIfNeeded(id2 = "") {
47928 let fixedId = id2;
47929 if (id2 === START_NODE) {
47930 startEndCount++;
47931 fixedId = `${START_TYPE}${startEndCount}`;
47932 }
47933 return fixedId;
47934 }
47935 function startTypeIfNeeded(id2 = "", type2 = DEFAULT_STATE_TYPE) {
47936 return id2 === START_NODE ? START_TYPE : type2;
47937 }
47938 function endIdIfNeeded(id2 = "") {
47939 let fixedId = id2;
47940 if (id2 === END_NODE) {
47941 startEndCount++;
47942 fixedId = `${END_TYPE}${startEndCount}`;
47943 }
47944 return fixedId;
47945 }
47946 function endTypeIfNeeded(id2 = "", type2 = DEFAULT_STATE_TYPE) {
47947 return id2 === END_NODE ? END_TYPE : type2;
47948 }
47949 function addRelationObjs(item1, item2, relationTitle) {
47950 let id1 = startIdIfNeeded(item1.id.trim());
47951 let type1 = startTypeIfNeeded(item1.id.trim(), item1.type);
47952 let id2 = startIdIfNeeded(item2.id.trim());
47953 let type2 = startTypeIfNeeded(item2.id.trim(), item2.type);
47954 addState(
47955 id1,
47956 type1,
47957 item1.doc,
47958 item1.description,
47959 item1.note,
47960 item1.classes,
47961 item1.styles,
47962 item1.textStyles
47963 );
47964 addState(
47965 id2,
47966 type2,
47967 item2.doc,
47968 item2.description,
47969 item2.note,
47970 item2.classes,
47971 item2.styles,
47972 item2.textStyles
47973 );
47974 currentDocument.relations.push({
47975 id1,
47976 id2,
47977 relationTitle: common$1.sanitizeText(relationTitle, getConfig$1())
47978 });
47979 }
47980 const addRelation = function(item1, item2, title2) {
47981 if (typeof item1 === "object") {
47982 addRelationObjs(item1, item2, title2);
47983 } else {
47984 const id1 = startIdIfNeeded(item1.trim());
47985 const type1 = startTypeIfNeeded(item1);
47986 const id2 = endIdIfNeeded(item2.trim());
47987 const type2 = endTypeIfNeeded(item2);
47988 addState(id1, type1);
47989 addState(id2, type2);
47990 currentDocument.relations.push({
47991 id1,
47992 id2,
47993 title: common$1.sanitizeText(title2, getConfig$1())
47994 });
47995 }
47996 };
47997 const addDescription = function(id2, descr) {
47998 const theState = currentDocument.states[id2];
47999 const _descr = descr.startsWith(":") ? descr.replace(":", "").trim() : descr;
48000 theState.descriptions.push(common$1.sanitizeText(_descr, getConfig$1()));
48001 };
48002 const cleanupLabel = function(label) {
48003 if (label.substring(0, 1) === ":") {
48004 return label.substr(2).trim();
48005 } else {
48006 return label.trim();
48007 }
48008 };
48009 const getDividerId = () => {
48010 dividerCnt++;
48011 return "divider-id-" + dividerCnt;
48012 };
48013 const addStyleClass = function(id2, styleAttributes = "") {
48014 if (classes[id2] === void 0) {
48015 classes[id2] = { id: id2, styles: [], textStyles: [] };
48016 }
48017 const foundClass = classes[id2];
48018 if (styleAttributes !== void 0 && styleAttributes !== null) {
48019 styleAttributes.split(STYLECLASS_SEP).forEach((attrib) => {
48020 const fixedAttrib = attrib.replace(/([^;]*);/, "$1").trim();
48021 if (attrib.match(COLOR_KEYWORD)) {
48022 const newStyle1 = fixedAttrib.replace(FILL_KEYWORD, BG_FILL);
48023 const newStyle2 = newStyle1.replace(COLOR_KEYWORD, FILL_KEYWORD);
48024 foundClass.textStyles.push(newStyle2);
48025 }
48026 foundClass.styles.push(fixedAttrib);
48027 });
48028 }
48029 };
48030 const getClasses$2 = function() {
48031 return classes;
48032 };
48033 const setCssClass = function(itemIds, cssClassName) {
48034 itemIds.split(",").forEach(function(id2) {
48035 let foundState = getState(id2);
48036 if (foundState === void 0) {
48037 const trimmedId = id2.trim();
48038 addState(trimmedId);
48039 foundState = getState(trimmedId);
48040 }
48041 foundState.classes.push(cssClassName);
48042 });
48043 };
48044 const setStyle = function(itemId, styleText) {
48045 const item = getState(itemId);
48046 if (item !== void 0) {
48047 item.textStyles.push(styleText);
48048 }
48049 };
48050 const setTextStyle = function(itemId, cssClassName) {
48051 const item = getState(itemId);
48052 if (item !== void 0) {
48053 item.textStyles.push(cssClassName);
48054 }
48055 };
48056 const getDirection = () => direction;
48057 const setDirection = (dir) => {
48058 direction = dir;
48059 };
48060 const trimColon = (str2) => str2 && str2[0] === ":" ? str2.substr(1).trim() : str2.trim();
48061 const db$2 = {
48062 parseDirective: parseDirective$2,
48063 getConfig: () => getConfig$1().state,
48064 addState,
48065 clear: clear$3,
48066 getState,
48067 getStates,
48068 getRelations,
48069 getClasses: getClasses$2,
48070 getDirection,
48071 addRelation,
48072 getDividerId,
48073 setDirection,
48074 cleanupLabel,
48075 lineType,
48076 relationType,
48077 logDocuments,
48078 getRootDoc,
48079 setRootDoc,
48080 getRootDocV2,
48081 extract,
48082 trimColon,
48083 getAccTitle,
48084 setAccTitle,
48085 getAccDescription,
48086 setAccDescription,
48087 addStyleClass,
48088 setCssClass,
48089 addDescription,
48090 setDiagramTitle,
48091 getDiagramTitle
48092 };
48093 const getStyles$4 = (options2) => `
48094defs #statediagram-barbEnd {
48095 fill: ${options2.transitionColor};
48096 stroke: ${options2.transitionColor};
48097 }
48098g.stateGroup text {
48099 fill: ${options2.nodeBorder};
48100 stroke: none;
48101 font-size: 10px;
48102}
48103g.stateGroup text {
48104 fill: ${options2.textColor};
48105 stroke: none;
48106 font-size: 10px;
48107
48108}
48109g.stateGroup .state-title {
48110 font-weight: bolder;
48111 fill: ${options2.stateLabelColor};
48112}
48113
48114g.stateGroup rect {
48115 fill: ${options2.mainBkg};
48116 stroke: ${options2.nodeBorder};
48117}
48118
48119g.stateGroup line {
48120 stroke: ${options2.lineColor};
48121 stroke-width: 1;
48122}
48123
48124.transition {
48125 stroke: ${options2.transitionColor};
48126 stroke-width: 1;
48127 fill: none;
48128}
48129
48130.stateGroup .composit {
48131 fill: ${options2.background};
48132 border-bottom: 1px
48133}
48134
48135.stateGroup .alt-composit {
48136 fill: #e0e0e0;
48137 border-bottom: 1px
48138}
48139
48140.state-note {
48141 stroke: ${options2.noteBorderColor};
48142 fill: ${options2.noteBkgColor};
48143
48144 text {
48145 fill: ${options2.noteTextColor};
48146 stroke: none;
48147 font-size: 10px;
48148 }
48149}
48150
48151.stateLabel .box {
48152 stroke: none;
48153 stroke-width: 0;
48154 fill: ${options2.mainBkg};
48155 opacity: 0.5;
48156}
48157
48158.edgeLabel .label rect {
48159 fill: ${options2.labelBackgroundColor};
48160 opacity: 0.5;
48161}
48162.edgeLabel .label text {
48163 fill: ${options2.transitionLabelColor || options2.tertiaryTextColor};
48164}
48165.label div .edgeLabel {
48166 color: ${options2.transitionLabelColor || options2.tertiaryTextColor};
48167}
48168
48169.stateLabel text {
48170 fill: ${options2.stateLabelColor};
48171 font-size: 10px;
48172 font-weight: bold;
48173}
48174
48175.node circle.state-start {
48176 fill: ${options2.specialStateColor};
48177 stroke: ${options2.specialStateColor};
48178}
48179
48180.node .fork-join {
48181 fill: ${options2.specialStateColor};
48182 stroke: ${options2.specialStateColor};
48183}
48184
48185.node circle.state-end {
48186 fill: ${options2.innerEndBackground};
48187 stroke: ${options2.background};
48188 stroke-width: 1.5
48189}
48190.end-state-inner {
48191 fill: ${options2.compositeBackground || options2.background};
48192 // stroke: ${options2.background};
48193 stroke-width: 1.5
48194}
48195
48196.node rect {
48197 fill: ${options2.stateBkg || options2.mainBkg};
48198 stroke: ${options2.stateBorder || options2.nodeBorder};
48199 stroke-width: 1px;
48200}
48201.node polygon {
48202 fill: ${options2.mainBkg};
48203 stroke: ${options2.stateBorder || options2.nodeBorder};;
48204 stroke-width: 1px;
48205}
48206#statediagram-barbEnd {
48207 fill: ${options2.lineColor};
48208}
48209
48210.statediagram-cluster rect {
48211 fill: ${options2.compositeTitleBackground};
48212 stroke: ${options2.stateBorder || options2.nodeBorder};
48213 stroke-width: 1px;
48214}
48215
48216.cluster-label, .nodeLabel {
48217 color: ${options2.stateLabelColor};
48218}
48219
48220.statediagram-cluster rect.outer {
48221 rx: 5px;
48222 ry: 5px;
48223}
48224.statediagram-state .divider {
48225 stroke: ${options2.stateBorder || options2.nodeBorder};
48226}
48227
48228.statediagram-state .title-state {
48229 rx: 5px;
48230 ry: 5px;
48231}
48232.statediagram-cluster.statediagram-cluster .inner {
48233 fill: ${options2.compositeBackground || options2.background};
48234}
48235.statediagram-cluster.statediagram-cluster-alt .inner {
48236 fill: ${options2.altBackground ? options2.altBackground : "#efefef"};
48237}
48238
48239.statediagram-cluster .inner {
48240 rx:0;
48241 ry:0;
48242}
48243
48244.statediagram-state rect.basic {
48245 rx: 5px;
48246 ry: 5px;
48247}
48248.statediagram-state rect.divider {
48249 stroke-dasharray: 10,10;
48250 fill: ${options2.altBackground ? options2.altBackground : "#efefef"};
48251}
48252
48253.note-edge {
48254 stroke-dasharray: 5;
48255}
48256
48257.statediagram-note rect {
48258 fill: ${options2.noteBkgColor};
48259 stroke: ${options2.noteBorderColor};
48260 stroke-width: 1px;
48261 rx: 0;
48262 ry: 0;
48263}
48264.statediagram-note rect {
48265 fill: ${options2.noteBkgColor};
48266 stroke: ${options2.noteBorderColor};
48267 stroke-width: 1px;
48268 rx: 0;
48269 ry: 0;
48270}
48271
48272.statediagram-note text {
48273 fill: ${options2.noteTextColor};
48274}
48275
48276.statediagram-note .nodeLabel {
48277 color: ${options2.noteTextColor};
48278}
48279.statediagram .edgeLabel {
48280 color: red; // ${options2.noteTextColor};
48281}
48282
48283#dependencyStart, #dependencyEnd {
48284 fill: ${options2.lineColor};
48285 stroke: ${options2.lineColor};
48286 stroke-width: 1;
48287}
48288
48289.statediagramTitleText {
48290 text-anchor: middle;
48291 font-size: 18px;
48292 fill: ${options2.textColor};
48293}
48294`;
48295 const styles$3 = getStyles$4;
48296 const idCache = {};
48297 const set = (key, val) => {
48298 idCache[key] = val;
48299 };
48300 const get = (k) => idCache[k];
48301 const keys = () => Object.keys(idCache);
48302 const size = () => keys().length;
48303 const idCache$1 = {
48304 get,
48305 set,
48306 keys,
48307 size
48308 };
48309 const drawStartState = (g) => g.append("circle").attr("class", "start-state").attr("r", getConfig$1().state.sizeUnit).attr("cx", getConfig$1().state.padding + getConfig$1().state.sizeUnit).attr("cy", getConfig$1().state.padding + getConfig$1().state.sizeUnit);
48310 const drawDivider = (g) => g.append("line").style("stroke", "grey").style("stroke-dasharray", "3").attr("x1", getConfig$1().state.textHeight).attr("class", "divider").attr("x2", getConfig$1().state.textHeight * 2).attr("y1", 0).attr("y2", 0);
48311 const drawSimpleState = (g, stateDef) => {
48312 const state2 = g.append("text").attr("x", 2 * getConfig$1().state.padding).attr("y", getConfig$1().state.textHeight + 2 * getConfig$1().state.padding).attr("font-size", getConfig$1().state.fontSize).attr("class", "state-title").text(stateDef.id);
48313 const classBox = state2.node().getBBox();
48314 g.insert("rect", ":first-child").attr("x", getConfig$1().state.padding).attr("y", getConfig$1().state.padding).attr("width", classBox.width + 2 * getConfig$1().state.padding).attr("height", classBox.height + 2 * getConfig$1().state.padding).attr("rx", getConfig$1().state.radius);
48315 return state2;
48316 };
48317 const drawDescrState = (g, stateDef) => {
48318 const addTspan2 = function(textEl, txt, isFirst2) {
48319 const tSpan = textEl.append("tspan").attr("x", 2 * getConfig$1().state.padding).text(txt);
48320 if (!isFirst2) {
48321 tSpan.attr("dy", getConfig$1().state.textHeight);
48322 }
48323 };
48324 const title2 = g.append("text").attr("x", 2 * getConfig$1().state.padding).attr("y", getConfig$1().state.textHeight + 1.3 * getConfig$1().state.padding).attr("font-size", getConfig$1().state.fontSize).attr("class", "state-title").text(stateDef.descriptions[0]);
48325 const titleBox = title2.node().getBBox();
48326 const titleHeight = titleBox.height;
48327 const description2 = g.append("text").attr("x", getConfig$1().state.padding).attr(
48328 "y",
48329 titleHeight + getConfig$1().state.padding * 0.4 + getConfig$1().state.dividerMargin + getConfig$1().state.textHeight
48330 ).attr("class", "state-description");
48331 let isFirst = true;
48332 let isSecond = true;
48333 stateDef.descriptions.forEach(function(descr) {
48334 if (!isFirst) {
48335 addTspan2(description2, descr, isSecond);
48336 isSecond = false;
48337 }
48338 isFirst = false;
48339 });
48340 const descrLine = g.append("line").attr("x1", getConfig$1().state.padding).attr("y1", getConfig$1().state.padding + titleHeight + getConfig$1().state.dividerMargin / 2).attr("y2", getConfig$1().state.padding + titleHeight + getConfig$1().state.dividerMargin / 2).attr("class", "descr-divider");
48341 const descrBox = description2.node().getBBox();
48342 const width2 = Math.max(descrBox.width, titleBox.width);
48343 descrLine.attr("x2", width2 + 3 * getConfig$1().state.padding);
48344 g.insert("rect", ":first-child").attr("x", getConfig$1().state.padding).attr("y", getConfig$1().state.padding).attr("width", width2 + 2 * getConfig$1().state.padding).attr("height", descrBox.height + titleHeight + 2 * getConfig$1().state.padding).attr("rx", getConfig$1().state.radius);
48345 return g;
48346 };
48347 const addTitleAndBox = (g, stateDef, altBkg) => {
48348 const pad2 = getConfig$1().state.padding;
48349 const dblPad = 2 * getConfig$1().state.padding;
48350 const orgBox = g.node().getBBox();
48351 const orgWidth = orgBox.width;
48352 const orgX = orgBox.x;
48353 const title2 = g.append("text").attr("x", 0).attr("y", getConfig$1().state.titleShift).attr("font-size", getConfig$1().state.fontSize).attr("class", "state-title").text(stateDef.id);
48354 const titleBox = title2.node().getBBox();
48355 const titleWidth = titleBox.width + dblPad;
48356 let width2 = Math.max(titleWidth, orgWidth);
48357 if (width2 === orgWidth) {
48358 width2 = width2 + dblPad;
48359 }
48360 let startX;
48361 const graphBox = g.node().getBBox();
48362 if (stateDef.doc)
48363 ;
48364 startX = orgX - pad2;
48365 if (titleWidth > orgWidth) {
48366 startX = (orgWidth - width2) / 2 + pad2;
48367 }
48368 if (Math.abs(orgX - graphBox.x) < pad2 && titleWidth > orgWidth) {
48369 startX = orgX - (titleWidth - orgWidth) / 2;
48370 }
48371 const lineY = 1 - getConfig$1().state.textHeight;
48372 g.insert("rect", ":first-child").attr("x", startX).attr("y", lineY).attr("class", altBkg ? "alt-composit" : "composit").attr("width", width2).attr(
48373 "height",
48374 graphBox.height + getConfig$1().state.textHeight + getConfig$1().state.titleShift + 1
48375 ).attr("rx", "0");
48376 title2.attr("x", startX + pad2);
48377 if (titleWidth <= orgWidth) {
48378 title2.attr("x", orgX + (width2 - dblPad) / 2 - titleWidth / 2 + pad2);
48379 }
48380 g.insert("rect", ":first-child").attr("x", startX).attr(
48381 "y",
48382 getConfig$1().state.titleShift - getConfig$1().state.textHeight - getConfig$1().state.padding
48383 ).attr("width", width2).attr("height", getConfig$1().state.textHeight * 3).attr("rx", getConfig$1().state.radius);
48384 g.insert("rect", ":first-child").attr("x", startX).attr(
48385 "y",
48386 getConfig$1().state.titleShift - getConfig$1().state.textHeight - getConfig$1().state.padding
48387 ).attr("width", width2).attr("height", graphBox.height + 3 + 2 * getConfig$1().state.textHeight).attr("rx", getConfig$1().state.radius);
48388 return g;
48389 };
48390 const drawEndState = (g) => {
48391 g.append("circle").attr("class", "end-state-outer").attr("r", getConfig$1().state.sizeUnit + getConfig$1().state.miniPadding).attr(
48392 "cx",
48393 getConfig$1().state.padding + getConfig$1().state.sizeUnit + getConfig$1().state.miniPadding
48394 ).attr(
48395 "cy",
48396 getConfig$1().state.padding + getConfig$1().state.sizeUnit + getConfig$1().state.miniPadding
48397 );
48398 return g.append("circle").attr("class", "end-state-inner").attr("r", getConfig$1().state.sizeUnit).attr("cx", getConfig$1().state.padding + getConfig$1().state.sizeUnit + 2).attr("cy", getConfig$1().state.padding + getConfig$1().state.sizeUnit + 2);
48399 };
48400 const drawForkJoinState = (g, stateDef) => {
48401 let width2 = getConfig$1().state.forkWidth;
48402 let height2 = getConfig$1().state.forkHeight;
48403 if (stateDef.parentId) {
48404 let tmp = width2;
48405 width2 = height2;
48406 height2 = tmp;
48407 }
48408 return g.append("rect").style("stroke", "black").style("fill", "black").attr("width", width2).attr("height", height2).attr("x", getConfig$1().state.padding).attr("y", getConfig$1().state.padding);
48409 };
48410 const _drawLongText = (_text, x2, y2, g) => {
48411 let textHeight = 0;
48412 const textElem = g.append("text");
48413 textElem.style("text-anchor", "start");
48414 textElem.attr("class", "noteText");
48415 let text2 = _text.replace(/\r\n/g, "<br/>");
48416 text2 = text2.replace(/\n/g, "<br/>");
48417 const lines = text2.split(common$1.lineBreakRegex);
48418 let tHeight = 1.25 * getConfig$1().state.noteMargin;
48419 for (const line2 of lines) {
48420 const txt = line2.trim();
48421 if (txt.length > 0) {
48422 const span = textElem.append("tspan");
48423 span.text(txt);
48424 if (tHeight === 0) {
48425 const textBounds = span.node().getBBox();
48426 tHeight += textBounds.height;
48427 }
48428 textHeight += tHeight;
48429 span.attr("x", x2 + getConfig$1().state.noteMargin);
48430 span.attr("y", y2 + textHeight + 1.25 * getConfig$1().state.noteMargin);
48431 }
48432 }
48433 return { textWidth: textElem.node().getBBox().width, textHeight };
48434 };
48435 const drawNote = (text2, g) => {
48436 g.attr("class", "state-note");
48437 const note2 = g.append("rect").attr("x", 0).attr("y", getConfig$1().state.padding);
48438 const rectElem = g.append("g");
48439 const { textWidth, textHeight } = _drawLongText(text2, 0, 0, rectElem);
48440 note2.attr("height", textHeight + 2 * getConfig$1().state.noteMargin);
48441 note2.attr("width", textWidth + getConfig$1().state.noteMargin * 2);
48442 return note2;
48443 };
48444 const drawState = function(elem, stateDef) {
48445 const id2 = stateDef.id;
48446 const stateInfo = {
48447 id: id2,
48448 label: stateDef.id,
48449 width: 0,
48450 height: 0
48451 };
48452 const g = elem.append("g").attr("id", id2).attr("class", "stateGroup");
48453 if (stateDef.type === "start") {
48454 drawStartState(g);
48455 }
48456 if (stateDef.type === "end") {
48457 drawEndState(g);
48458 }
48459 if (stateDef.type === "fork" || stateDef.type === "join") {
48460 drawForkJoinState(g, stateDef);
48461 }
48462 if (stateDef.type === "note") {
48463 drawNote(stateDef.note.text, g);
48464 }
48465 if (stateDef.type === "divider") {
48466 drawDivider(g);
48467 }
48468 if (stateDef.type === "default" && stateDef.descriptions.length === 0) {
48469 drawSimpleState(g, stateDef);
48470 }
48471 if (stateDef.type === "default" && stateDef.descriptions.length > 0) {
48472 drawDescrState(g, stateDef);
48473 }
48474 const stateBox = g.node().getBBox();
48475 stateInfo.width = stateBox.width + 2 * getConfig$1().state.padding;
48476 stateInfo.height = stateBox.height + 2 * getConfig$1().state.padding;
48477 idCache$1.set(id2, stateInfo);
48478 return stateInfo;
48479 };
48480 let edgeCount = 0;
48481 const drawEdge$1 = function(elem, path2, relation) {
48482 const getRelationType = function(type2) {
48483 switch (type2) {
48484 case db$2.relationType.AGGREGATION:
48485 return "aggregation";
48486 case db$2.relationType.EXTENSION:
48487 return "extension";
48488 case db$2.relationType.COMPOSITION:
48489 return "composition";
48490 case db$2.relationType.DEPENDENCY:
48491 return "dependency";
48492 }
48493 };
48494 path2.points = path2.points.filter((p) => !Number.isNaN(p.y));
48495 const lineData = path2.points;
48496 const lineFunction = line$1().x(function(d) {
48497 return d.x;
48498 }).y(function(d) {
48499 return d.y;
48500 }).curve(curveBasis);
48501 const svgPath = elem.append("path").attr("d", lineFunction(lineData)).attr("id", "edge" + edgeCount).attr("class", "transition");
48502 let url = "";
48503 if (getConfig$1().state.arrowMarkerAbsolute) {
48504 url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
48505 url = url.replace(/\(/g, "\\(");
48506 url = url.replace(/\)/g, "\\)");
48507 }
48508 svgPath.attr(
48509 "marker-end",
48510 "url(" + url + "#" + getRelationType(db$2.relationType.DEPENDENCY) + "End)"
48511 );
48512 if (relation.title !== void 0) {
48513 const label = elem.append("g").attr("class", "stateLabel");
48514 const { x: x2, y: y2 } = utils.calcLabelPosition(path2.points);
48515 const rows = common$1.getRows(relation.title);
48516 let titleHeight = 0;
48517 const titleRows = [];
48518 let maxWidth = 0;
48519 let minX = 0;
48520 for (let i2 = 0; i2 <= rows.length; i2++) {
48521 const title2 = label.append("text").attr("text-anchor", "middle").text(rows[i2]).attr("x", x2).attr("y", y2 + titleHeight);
48522 const boundstmp = title2.node().getBBox();
48523 maxWidth = Math.max(maxWidth, boundstmp.width);
48524 minX = Math.min(minX, boundstmp.x);
48525 log$1.info(boundstmp.x, x2, y2 + titleHeight);
48526 if (titleHeight === 0) {
48527 const titleBox = title2.node().getBBox();
48528 titleHeight = titleBox.height;
48529 log$1.info("Title height", titleHeight, y2);
48530 }
48531 titleRows.push(title2);
48532 }
48533 let boxHeight = titleHeight * rows.length;
48534 if (rows.length > 1) {
48535 const heightAdj = (rows.length - 1) * titleHeight * 0.5;
48536 titleRows.forEach((title2, i2) => title2.attr("y", y2 + i2 * titleHeight - heightAdj));
48537 boxHeight = titleHeight * rows.length;
48538 }
48539 const bounds2 = label.node().getBBox();
48540 label.insert("rect", ":first-child").attr("class", "box").attr("x", x2 - maxWidth / 2 - getConfig$1().state.padding / 2).attr("y", y2 - boxHeight / 2 - getConfig$1().state.padding / 2 - 3.5).attr("width", maxWidth + getConfig$1().state.padding).attr("height", boxHeight + getConfig$1().state.padding);
48541 log$1.info(bounds2);
48542 }
48543 edgeCount++;
48544 };
48545 let conf$2;
48546 const transformationLog = {};
48547 const setConf$2 = function() {
48548 };
48549 const insertMarkers = function(elem) {
48550 elem.append("defs").append("marker").attr("id", "dependencyEnd").attr("refX", 19).attr("refY", 7).attr("markerWidth", 20).attr("markerHeight", 28).attr("orient", "auto").append("path").attr("d", "M 19,7 L9,13 L14,7 L9,1 Z");
48551 };
48552 const draw$5 = function(text2, id2, _version, diagObj) {
48553 conf$2 = getConfig$1().state;
48554 const securityLevel = getConfig$1().securityLevel;
48555 let sandboxElement;
48556 if (securityLevel === "sandbox") {
48557 sandboxElement = select("#i" + id2);
48558 }
48559 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
48560 const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
48561 log$1.debug("Rendering diagram " + text2);
48562 const diagram2 = root2.select(`[id='${id2}']`);
48563 insertMarkers(diagram2);
48564 const graph = new Graph({
48565 multigraph: true,
48566 compound: true,
48567 // acyclicer: 'greedy',
48568 rankdir: "RL"
48569 // ranksep: '20'
48570 });
48571 graph.setDefaultEdgeLabel(function() {
48572 return {};
48573 });
48574 const rootDoc2 = diagObj.db.getRootDoc();
48575 renderDoc(rootDoc2, diagram2, void 0, false, root2, doc, diagObj);
48576 const padding2 = conf$2.padding;
48577 const bounds2 = diagram2.node().getBBox();
48578 const width2 = bounds2.width + padding2 * 2;
48579 const height2 = bounds2.height + padding2 * 2;
48580 const svgWidth = width2 * 1.75;
48581 configureSvgSize(diagram2, height2, svgWidth, conf$2.useMaxWidth);
48582 diagram2.attr(
48583 "viewBox",
48584 `${bounds2.x - conf$2.padding} ${bounds2.y - conf$2.padding} ` + width2 + " " + height2
48585 );
48586 };
48587 const getLabelWidth = (text2) => {
48588 return text2 ? text2.length * conf$2.fontSizeFactor : 1;
48589 };
48590 const renderDoc = (doc, diagram2, parentId, altBkg, root2, domDocument, diagObj) => {
48591 const graph = new Graph({
48592 compound: true,
48593 multigraph: true
48594 });
48595 let i2;
48596 let edgeFreeDoc = true;
48597 for (i2 = 0; i2 < doc.length; i2++) {
48598 if (doc[i2].stmt === "relation") {
48599 edgeFreeDoc = false;
48600 break;
48601 }
48602 }
48603 if (parentId) {
48604 graph.setGraph({
48605 rankdir: "LR",
48606 multigraph: true,
48607 compound: true,
48608 // acyclicer: 'greedy',
48609 ranker: "tight-tree",
48610 ranksep: edgeFreeDoc ? 1 : conf$2.edgeLengthFactor,
48611 nodeSep: edgeFreeDoc ? 1 : 50,
48612 isMultiGraph: true
48613 // ranksep: 5,
48614 // nodesep: 1
48615 });
48616 } else {
48617 graph.setGraph({
48618 rankdir: "TB",
48619 multigraph: true,
48620 compound: true,
48621 // isCompound: true,
48622 // acyclicer: 'greedy',
48623 // ranker: 'longest-path'
48624 ranksep: edgeFreeDoc ? 1 : conf$2.edgeLengthFactor,
48625 nodeSep: edgeFreeDoc ? 1 : 50,
48626 ranker: "tight-tree",
48627 // ranker: 'network-simplex'
48628 isMultiGraph: true
48629 });
48630 }
48631 graph.setDefaultEdgeLabel(function() {
48632 return {};
48633 });
48634 diagObj.db.extract(doc);
48635 const states = diagObj.db.getStates();
48636 const relations2 = diagObj.db.getRelations();
48637 const keys2 = Object.keys(states);
48638 for (const key of keys2) {
48639 const stateDef = states[key];
48640 if (parentId) {
48641 stateDef.parentId = parentId;
48642 }
48643 let node2;
48644 if (stateDef.doc) {
48645 let sub = diagram2.append("g").attr("id", stateDef.id).attr("class", "stateGroup");
48646 node2 = renderDoc(stateDef.doc, sub, stateDef.id, !altBkg, root2, domDocument, diagObj);
48647 {
48648 sub = addTitleAndBox(sub, stateDef, altBkg);
48649 let boxBounds = sub.node().getBBox();
48650 node2.width = boxBounds.width;
48651 node2.height = boxBounds.height + conf$2.padding / 2;
48652 transformationLog[stateDef.id] = { y: conf$2.compositTitleSize };
48653 }
48654 } else {
48655 node2 = drawState(diagram2, stateDef);
48656 }
48657 if (stateDef.note) {
48658 const noteDef = {
48659 descriptions: [],
48660 id: stateDef.id + "-note",
48661 note: stateDef.note,
48662 type: "note"
48663 };
48664 const note2 = drawState(diagram2, noteDef);
48665 if (stateDef.note.position === "left of") {
48666 graph.setNode(node2.id + "-note", note2);
48667 graph.setNode(node2.id, node2);
48668 } else {
48669 graph.setNode(node2.id, node2);
48670 graph.setNode(node2.id + "-note", note2);
48671 }
48672 graph.setParent(node2.id, node2.id + "-group");
48673 graph.setParent(node2.id + "-note", node2.id + "-group");
48674 } else {
48675 graph.setNode(node2.id, node2);
48676 }
48677 }
48678 log$1.debug("Count=", graph.nodeCount(), graph);
48679 let cnt2 = 0;
48680 relations2.forEach(function(relation) {
48681 cnt2++;
48682 log$1.debug("Setting edge", relation);
48683 graph.setEdge(
48684 relation.id1,
48685 relation.id2,
48686 {
48687 relation,
48688 width: getLabelWidth(relation.title),
48689 height: conf$2.labelHeight * common$1.getRows(relation.title).length,
48690 labelpos: "c"
48691 },
48692 "id" + cnt2
48693 );
48694 });
48695 layout(graph);
48696 log$1.debug("Graph after layout", graph.nodes());
48697 const svgElem = diagram2.node();
48698 graph.nodes().forEach(function(v) {
48699 if (v !== void 0 && graph.node(v) !== void 0) {
48700 log$1.warn("Node " + v + ": " + JSON.stringify(graph.node(v)));
48701 root2.select("#" + svgElem.id + " #" + v).attr(
48702 "transform",
48703 "translate(" + (graph.node(v).x - graph.node(v).width / 2) + "," + (graph.node(v).y + (transformationLog[v] ? transformationLog[v].y : 0) - graph.node(v).height / 2) + " )"
48704 );
48705 root2.select("#" + svgElem.id + " #" + v).attr("data-x-shift", graph.node(v).x - graph.node(v).width / 2);
48706 const dividers = domDocument.querySelectorAll("#" + svgElem.id + " #" + v + " .divider");
48707 dividers.forEach((divider2) => {
48708 const parent = divider2.parentElement;
48709 let pWidth = 0;
48710 let pShift = 0;
48711 if (parent) {
48712 if (parent.parentElement) {
48713 pWidth = parent.parentElement.getBBox().width;
48714 }
48715 pShift = parseInt(parent.getAttribute("data-x-shift"), 10);
48716 if (Number.isNaN(pShift)) {
48717 pShift = 0;
48718 }
48719 }
48720 divider2.setAttribute("x1", 0 - pShift + 8);
48721 divider2.setAttribute("x2", pWidth - pShift - 8);
48722 });
48723 } else {
48724 log$1.debug("No Node " + v + ": " + JSON.stringify(graph.node(v)));
48725 }
48726 });
48727 let stateBox = svgElem.getBBox();
48728 graph.edges().forEach(function(e) {
48729 if (e !== void 0 && graph.edge(e) !== void 0) {
48730 log$1.debug("Edge " + e.v + " -> " + e.w + ": " + JSON.stringify(graph.edge(e)));
48731 drawEdge$1(diagram2, graph.edge(e), graph.edge(e).relation);
48732 }
48733 });
48734 stateBox = svgElem.getBBox();
48735 const stateInfo = {
48736 id: parentId ? parentId : "root",
48737 label: parentId ? parentId : "root",
48738 width: 0,
48739 height: 0
48740 };
48741 stateInfo.width = stateBox.width + 2 * conf$2.padding;
48742 stateInfo.height = stateBox.height + 2 * conf$2.padding;
48743 log$1.debug("Doc rendered", stateInfo, graph);
48744 return stateInfo;
48745 };
48746 const renderer$4 = {
48747 setConf: setConf$2,
48748 draw: draw$5
48749 };
48750 const diagram$5 = {
48751 parser: parser$6,
48752 db: db$2,
48753 renderer: renderer$4,
48754 styles: styles$3,
48755 init: (cnf) => {
48756 if (!cnf.state) {
48757 cnf.state = {};
48758 }
48759 cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
48760 db$2.clear();
48761 }
48762 };
48763 const stateDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
48764 __proto__: null,
48765 diagram: diagram$5
48766 }, Symbol.toStringTag, { value: "Module" }));
48767 const SHAPE_STATE = "rect";
48768 const SHAPE_STATE_WITH_DESC = "rectWithTitle";
48769 const SHAPE_START = "start";
48770 const SHAPE_END = "end";
48771 const SHAPE_DIVIDER = "divider";
48772 const SHAPE_GROUP = "roundedWithTitle";
48773 const SHAPE_NOTE = "note";
48774 const SHAPE_NOTEGROUP = "noteGroup";
48775 const CSS_DIAGRAM = "statediagram";
48776 const CSS_STATE = "state";
48777 const CSS_DIAGRAM_STATE = `${CSS_DIAGRAM}-${CSS_STATE}`;
48778 const CSS_EDGE = "transition";
48779 const CSS_NOTE = "note";
48780 const CSS_NOTE_EDGE = "note-edge";
48781 const CSS_EDGE_NOTE_EDGE = `${CSS_EDGE} ${CSS_NOTE_EDGE}`;
48782 const CSS_DIAGRAM_NOTE = `${CSS_DIAGRAM}-${CSS_NOTE}`;
48783 const CSS_CLUSTER = "cluster";
48784 const CSS_DIAGRAM_CLUSTER = `${CSS_DIAGRAM}-${CSS_CLUSTER}`;
48785 const CSS_CLUSTER_ALT = "cluster-alt";
48786 const CSS_DIAGRAM_CLUSTER_ALT = `${CSS_DIAGRAM}-${CSS_CLUSTER_ALT}`;
48787 const PARENT = "parent";
48788 const NOTE = "note";
48789 const DOMID_STATE = "state";
48790 const DOMID_TYPE_SPACER = "----";
48791 const NOTE_ID = `${DOMID_TYPE_SPACER}${NOTE}`;
48792 const PARENT_ID = `${DOMID_TYPE_SPACER}${PARENT}`;
48793 const G_EDGE_STYLE = "fill:none";
48794 const G_EDGE_ARROWHEADSTYLE = "fill: #333";
48795 const G_EDGE_LABELPOS = "c";
48796 const G_EDGE_LABELTYPE = "text";
48797 const G_EDGE_THICKNESS = "normal";
48798 let nodeDb$1 = {};
48799 let graphItemCount = 0;
48800 const setConf$1 = function(cnf) {
48801 const keys2 = Object.keys(cnf);
48802 for (const key of keys2) {
48803 cnf[key];
48804 }
48805 };
48806 const getClasses$1 = function(text2, diagramObj) {
48807 log$1.trace("Extracting classes");
48808 diagramObj.db.clear();
48809 try {
48810 diagramObj.parser.parse(text2);
48811 diagramObj.db.extract(diagramObj.db.getRootDocV2());
48812 return diagramObj.db.getClasses();
48813 } catch (e) {
48814 return e;
48815 }
48816 };
48817 function getClassesFromDbInfo(dbInfoItem) {
48818 if (dbInfoItem === void 0 || dbInfoItem === null) {
48819 return "";
48820 } else {
48821 if (dbInfoItem.classes) {
48822 return dbInfoItem.classes.join(" ");
48823 } else {
48824 return "";
48825 }
48826 }
48827 }
48828 function stateDomId(itemId = "", counter = 0, type2 = "", typeSpacer = DOMID_TYPE_SPACER) {
48829 const typeStr = type2 !== null && type2.length > 0 ? `${typeSpacer}${type2}` : "";
48830 return `${DOMID_STATE}-${itemId}${typeStr}-${counter}`;
48831 }
48832 const setupNode = (g, parent, parsedItem, diagramStates, diagramDb, altFlag) => {
48833 const itemId = parsedItem.id;
48834 const classStr = getClassesFromDbInfo(diagramStates[itemId]);
48835 if (itemId !== "root") {
48836 let shape = SHAPE_STATE;
48837 if (parsedItem.start === true) {
48838 shape = SHAPE_START;
48839 }
48840 if (parsedItem.start === false) {
48841 shape = SHAPE_END;
48842 }
48843 if (parsedItem.type !== DEFAULT_STATE_TYPE) {
48844 shape = parsedItem.type;
48845 }
48846 if (!nodeDb$1[itemId]) {
48847 nodeDb$1[itemId] = {
48848 id: itemId,
48849 shape,
48850 description: common$1.sanitizeText(itemId, getConfig$1()),
48851 classes: `${classStr} ${CSS_DIAGRAM_STATE}`
48852 };
48853 }
48854 const newNode = nodeDb$1[itemId];
48855 if (parsedItem.description) {
48856 if (Array.isArray(newNode.description)) {
48857 newNode.shape = SHAPE_STATE_WITH_DESC;
48858 newNode.description.push(parsedItem.description);
48859 } else {
48860 if (newNode.description.length > 0) {
48861 newNode.shape = SHAPE_STATE_WITH_DESC;
48862 if (newNode.description === itemId) {
48863 newNode.description = [parsedItem.description];
48864 } else {
48865 newNode.description = [newNode.description, parsedItem.description];
48866 }
48867 } else {
48868 newNode.shape = SHAPE_STATE;
48869 newNode.description = parsedItem.description;
48870 }
48871 }
48872 newNode.description = common$1.sanitizeTextOrArray(newNode.description, getConfig$1());
48873 }
48874 if (newNode.description.length === 1 && newNode.shape === SHAPE_STATE_WITH_DESC) {
48875 newNode.shape = SHAPE_STATE;
48876 }
48877 if (!newNode.type && parsedItem.doc) {
48878 log$1.info("Setting cluster for ", itemId, getDir(parsedItem));
48879 newNode.type = "group";
48880 newNode.dir = getDir(parsedItem);
48881 newNode.shape = parsedItem.type === DIVIDER_TYPE ? SHAPE_DIVIDER : SHAPE_GROUP;
48882 newNode.classes = newNode.classes + " " + CSS_DIAGRAM_CLUSTER + " " + (altFlag ? CSS_DIAGRAM_CLUSTER_ALT : "");
48883 }
48884 const nodeData = {
48885 labelStyle: "",
48886 shape: newNode.shape,
48887 labelText: newNode.description,
48888 // typeof newNode.description === 'object'
48889 // ? newNode.description[0]
48890 // : newNode.description,
48891 classes: newNode.classes,
48892 style: "",
48893 //styles.style,
48894 id: itemId,
48895 dir: newNode.dir,
48896 domId: stateDomId(itemId, graphItemCount),
48897 type: newNode.type,
48898 padding: 15
48899 //getConfig().flowchart.padding
48900 };
48901 nodeData.centerLabel = true;
48902 if (parsedItem.note) {
48903 const noteData = {
48904 labelStyle: "",
48905 shape: SHAPE_NOTE,
48906 labelText: parsedItem.note.text,
48907 classes: CSS_DIAGRAM_NOTE,
48908 // useHtmlLabels: false,
48909 style: "",
48910 // styles.style,
48911 id: itemId + NOTE_ID + "-" + graphItemCount,
48912 domId: stateDomId(itemId, graphItemCount, NOTE),
48913 type: newNode.type,
48914 padding: 15
48915 //getConfig().flowchart.padding
48916 };
48917 const groupData = {
48918 labelStyle: "",
48919 shape: SHAPE_NOTEGROUP,
48920 labelText: parsedItem.note.text,
48921 classes: newNode.classes,
48922 style: "",
48923 // styles.style,
48924 id: itemId + PARENT_ID,
48925 domId: stateDomId(itemId, graphItemCount, PARENT),
48926 type: "group",
48927 padding: 0
48928 //getConfig().flowchart.padding
48929 };
48930 graphItemCount++;
48931 const parentNodeId = itemId + PARENT_ID;
48932 g.setNode(parentNodeId, groupData);
48933 g.setNode(noteData.id, noteData);
48934 g.setNode(itemId, nodeData);
48935 g.setParent(itemId, parentNodeId);
48936 g.setParent(noteData.id, parentNodeId);
48937 let from2 = itemId;
48938 let to = noteData.id;
48939 if (parsedItem.note.position === "left of") {
48940 from2 = noteData.id;
48941 to = itemId;
48942 }
48943 g.setEdge(from2, to, {
48944 arrowhead: "none",
48945 arrowType: "",
48946 style: G_EDGE_STYLE,
48947 labelStyle: "",
48948 classes: CSS_EDGE_NOTE_EDGE,
48949 arrowheadStyle: G_EDGE_ARROWHEADSTYLE,
48950 labelpos: G_EDGE_LABELPOS,
48951 labelType: G_EDGE_LABELTYPE,
48952 thickness: G_EDGE_THICKNESS
48953 });
48954 } else {
48955 g.setNode(itemId, nodeData);
48956 }
48957 }
48958 if (parent && parent.id !== "root") {
48959 log$1.trace("Setting node ", itemId, " to be child of its parent ", parent.id);
48960 g.setParent(itemId, parent.id);
48961 }
48962 if (parsedItem.doc) {
48963 log$1.trace("Adding nodes children ");
48964 setupDoc(g, parsedItem, parsedItem.doc, diagramStates, diagramDb, !altFlag);
48965 }
48966 };
48967 const setupDoc = (g, parentParsedItem, doc, diagramStates, diagramDb, altFlag) => {
48968 log$1.trace("items", doc);
48969 doc.forEach((item) => {
48970 switch (item.stmt) {
48971 case STMT_STATE:
48972 setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);
48973 break;
48974 case DEFAULT_STATE_TYPE:
48975 setupNode(g, parentParsedItem, item, diagramStates, diagramDb, altFlag);
48976 break;
48977 case STMT_RELATION:
48978 {
48979 setupNode(g, parentParsedItem, item.state1, diagramStates, diagramDb, altFlag);
48980 setupNode(g, parentParsedItem, item.state2, diagramStates, diagramDb, altFlag);
48981 const edgeData = {
48982 id: "edge" + graphItemCount,
48983 arrowhead: "normal",
48984 arrowTypeEnd: "arrow_barb",
48985 style: G_EDGE_STYLE,
48986 labelStyle: "",
48987 label: common$1.sanitizeText(item.description, getConfig$1()),
48988 arrowheadStyle: G_EDGE_ARROWHEADSTYLE,
48989 labelpos: G_EDGE_LABELPOS,
48990 labelType: G_EDGE_LABELTYPE,
48991 thickness: G_EDGE_THICKNESS,
48992 classes: CSS_EDGE
48993 };
48994 g.setEdge(item.state1.id, item.state2.id, edgeData, graphItemCount);
48995 graphItemCount++;
48996 }
48997 break;
48998 }
48999 });
49000 };
49001 const getDir = (parsedItem, defaultDir = DEFAULT_NESTED_DOC_DIR) => {
49002 let dir = defaultDir;
49003 if (parsedItem.doc) {
49004 for (let i2 = 0; i2 < parsedItem.doc.length; i2++) {
49005 const parsedItemDoc = parsedItem.doc[i2];
49006 if (parsedItemDoc.stmt === "dir") {
49007 dir = parsedItemDoc.value;
49008 }
49009 }
49010 }
49011 return dir;
49012 };
49013 const draw$4 = async function(text2, id2, _version, diag) {
49014 log$1.info("Drawing state diagram (v2)", id2);
49015 nodeDb$1 = {};
49016 diag.db.getDirection();
49017 const { securityLevel, state: conf2 } = getConfig$1();
49018 const nodeSpacing = conf2.nodeSpacing || 50;
49019 const rankSpacing = conf2.rankSpacing || 50;
49020 log$1.info(diag.db.getRootDocV2());
49021 diag.db.extract(diag.db.getRootDocV2());
49022 log$1.info(diag.db.getRootDocV2());
49023 const diagramStates = diag.db.getStates();
49024 const g = new Graph({
49025 multigraph: true,
49026 compound: true
49027 }).setGraph({
49028 rankdir: getDir(diag.db.getRootDocV2()),
49029 nodesep: nodeSpacing,
49030 ranksep: rankSpacing,
49031 marginx: 8,
49032 marginy: 8
49033 }).setDefaultEdgeLabel(function() {
49034 return {};
49035 });
49036 setupNode(g, void 0, diag.db.getRootDocV2(), diagramStates, diag.db, true);
49037 let sandboxElement;
49038 if (securityLevel === "sandbox") {
49039 sandboxElement = select("#i" + id2);
49040 }
49041 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
49042 const svg2 = root2.select(`[id="${id2}"]`);
49043 const element2 = root2.select("#" + id2 + " g");
49044 await render(element2, g, ["barb"], CSS_DIAGRAM, id2);
49045 const padding2 = 8;
49046 utils.insertTitle(svg2, "statediagramTitleText", conf2.titleTopMargin, diag.db.getDiagramTitle());
49047 const bounds2 = svg2.node().getBBox();
49048 const width2 = bounds2.width + padding2 * 2;
49049 const height2 = bounds2.height + padding2 * 2;
49050 svg2.attr("class", CSS_DIAGRAM);
49051 const svgBounds = svg2.node().getBBox();
49052 configureSvgSize(svg2, height2, width2, conf2.useMaxWidth);
49053 const vBox = `${svgBounds.x - padding2} ${svgBounds.y - padding2} ${width2} ${height2}`;
49054 log$1.debug(`viewBox ${vBox}`);
49055 svg2.attr("viewBox", vBox);
49056 const labels = document.querySelectorAll('[id="' + id2 + '"] .edgeLabel .label');
49057 for (const label of labels) {
49058 const dim = label.getBBox();
49059 const rect2 = document.createElementNS("http://www.w3.org/2000/svg", SHAPE_STATE);
49060 rect2.setAttribute("rx", 0);
49061 rect2.setAttribute("ry", 0);
49062 rect2.setAttribute("width", dim.width);
49063 rect2.setAttribute("height", dim.height);
49064 label.insertBefore(rect2, label.firstChild);
49065 }
49066 };
49067 const renderer$3 = {
49068 setConf: setConf$1,
49069 getClasses: getClasses$1,
49070 draw: draw$4
49071 };
49072 const diagram$4 = {
49073 parser: parser$6,
49074 db: db$2,
49075 renderer: renderer$3,
49076 styles: styles$3,
49077 init: (cnf) => {
49078 if (!cnf.state) {
49079 cnf.state = {};
49080 }
49081 cnf.state.arrowMarkerAbsolute = cnf.arrowMarkerAbsolute;
49082 db$2.clear();
49083 }
49084 };
49085 const stateDiagramV2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
49086 __proto__: null,
49087 diagram: diagram$4
49088 }, Symbol.toStringTag, { value: "Module" }));
49089 var parser$3 = function() {
49090 var o = function(k, v, o2, l) {
49091 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
49092 ;
49093 return o2;
49094 }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 17, 18, 20, 22, 23, 24, 26], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 20], $V9 = [1, 24], $Va = [4, 6, 9, 11, 17, 18, 20, 22, 23, 24, 26];
49095 var parser2 = {
49096 trace: function trace() {
49097 },
49098 yy: {},
49099 symbols_: { "error": 2, "start": 3, "journey": 4, "document": 5, "EOF": 6, "directive": 7, "line": 8, "SPACE": 9, "statement": 10, "NEWLINE": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, ":": 15, "argDirective": 16, "title": 17, "acc_title": 18, "acc_title_value": 19, "acc_descr": 20, "acc_descr_value": 21, "acc_descr_multiline_value": 22, "section": 23, "taskName": 24, "taskData": 25, "open_directive": 26, "type_directive": 27, "arg_directive": 28, "close_directive": 29, "$accept": 0, "$end": 1 },
49100 terminals_: { 2: "error", 4: "journey", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 17: "title", 18: "acc_title", 19: "acc_title_value", 20: "acc_descr", 21: "acc_descr_value", 22: "acc_descr_multiline_value", 23: "section", 24: "taskName", 25: "taskData", 26: "open_directive", 27: "type_directive", 28: "arg_directive", 29: "close_directive" },
49101 productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 2], [10, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
49102 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
49103 var $0 = $$.length - 1;
49104 switch (yystate) {
49105 case 1:
49106 return $$[$0 - 1];
49107 case 3:
49108 this.$ = [];
49109 break;
49110 case 4:
49111 $$[$0 - 1].push($$[$0]);
49112 this.$ = $$[$0 - 1];
49113 break;
49114 case 5:
49115 case 6:
49116 this.$ = $$[$0];
49117 break;
49118 case 7:
49119 case 8:
49120 this.$ = [];
49121 break;
49122 case 11:
49123 yy.setDiagramTitle($$[$0].substr(6));
49124 this.$ = $$[$0].substr(6);
49125 break;
49126 case 12:
49127 this.$ = $$[$0].trim();
49128 yy.setAccTitle(this.$);
49129 break;
49130 case 13:
49131 case 14:
49132 this.$ = $$[$0].trim();
49133 yy.setAccDescription(this.$);
49134 break;
49135 case 15:
49136 yy.addSection($$[$0].substr(8));
49137 this.$ = $$[$0].substr(8);
49138 break;
49139 case 16:
49140 yy.addTask($$[$0 - 1], $$[$0]);
49141 this.$ = "task";
49142 break;
49143 case 18:
49144 yy.parseDirective("%%{", "open_directive");
49145 break;
49146 case 19:
49147 yy.parseDirective($$[$0], "type_directive");
49148 break;
49149 case 20:
49150 $$[$0] = $$[$0].trim().replace(/'/g, '"');
49151 yy.parseDirective($$[$0], "arg_directive");
49152 break;
49153 case 21:
49154 yy.parseDirective("}%%", "close_directive", "journey");
49155 break;
49156 }
49157 },
49158 table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 26: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 26: $V1 }, { 13: 8, 27: [1, 9] }, { 27: [2, 18] }, { 6: [1, 10], 7: 21, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: $V8, 26: $V1 }, { 1: [2, 2] }, { 14: 22, 15: [1, 23], 29: $V9 }, o([15, 29], [2, 19]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 21, 10: 25, 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: $V8, 26: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), { 19: [1, 26] }, { 21: [1, 27] }, o($V2, [2, 14]), o($V2, [2, 15]), { 25: [1, 28] }, o($V2, [2, 17]), { 11: [1, 29] }, { 16: 30, 28: [1, 31] }, { 11: [2, 21] }, o($V2, [2, 5]), o($V2, [2, 12]), o($V2, [2, 13]), o($V2, [2, 16]), o($Va, [2, 9]), { 14: 32, 29: $V9 }, { 29: [2, 20] }, { 11: [1, 33] }, o($Va, [2, 10])],
49159 defaultActions: { 5: [2, 18], 7: [2, 2], 24: [2, 21], 31: [2, 20] },
49160 parseError: function parseError2(str2, hash) {
49161 if (hash.recoverable) {
49162 this.trace(str2);
49163 } else {
49164 var error = new Error(str2);
49165 error.hash = hash;
49166 throw error;
49167 }
49168 },
49169 parse: function parse2(input) {
49170 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
49171 var args = lstack.slice.call(arguments, 1);
49172 var lexer2 = Object.create(this.lexer);
49173 var sharedState = { yy: {} };
49174 for (var k in this.yy) {
49175 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
49176 sharedState.yy[k] = this.yy[k];
49177 }
49178 }
49179 lexer2.setInput(input, sharedState.yy);
49180 sharedState.yy.lexer = lexer2;
49181 sharedState.yy.parser = this;
49182 if (typeof lexer2.yylloc == "undefined") {
49183 lexer2.yylloc = {};
49184 }
49185 var yyloc = lexer2.yylloc;
49186 lstack.push(yyloc);
49187 var ranges = lexer2.options && lexer2.options.ranges;
49188 if (typeof sharedState.yy.parseError === "function") {
49189 this.parseError = sharedState.yy.parseError;
49190 } else {
49191 this.parseError = Object.getPrototypeOf(this).parseError;
49192 }
49193 function lex2() {
49194 var token2;
49195 token2 = tstack.pop() || lexer2.lex() || EOF;
49196 if (typeof token2 !== "number") {
49197 if (token2 instanceof Array) {
49198 tstack = token2;
49199 token2 = tstack.pop();
49200 }
49201 token2 = self2.symbols_[token2] || token2;
49202 }
49203 return token2;
49204 }
49205 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
49206 while (true) {
49207 state2 = stack[stack.length - 1];
49208 if (this.defaultActions[state2]) {
49209 action = this.defaultActions[state2];
49210 } else {
49211 if (symbol === null || typeof symbol == "undefined") {
49212 symbol = lex2();
49213 }
49214 action = table[state2] && table[state2][symbol];
49215 }
49216 if (typeof action === "undefined" || !action.length || !action[0]) {
49217 var errStr = "";
49218 expected = [];
49219 for (p in table[state2]) {
49220 if (this.terminals_[p] && p > TERROR) {
49221 expected.push("'" + this.terminals_[p] + "'");
49222 }
49223 }
49224 if (lexer2.showPosition) {
49225 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
49226 } else {
49227 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
49228 }
49229 this.parseError(errStr, {
49230 text: lexer2.match,
49231 token: this.terminals_[symbol] || symbol,
49232 line: lexer2.yylineno,
49233 loc: yyloc,
49234 expected
49235 });
49236 }
49237 if (action[0] instanceof Array && action.length > 1) {
49238 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
49239 }
49240 switch (action[0]) {
49241 case 1:
49242 stack.push(symbol);
49243 vstack.push(lexer2.yytext);
49244 lstack.push(lexer2.yylloc);
49245 stack.push(action[1]);
49246 symbol = null;
49247 {
49248 yyleng = lexer2.yyleng;
49249 yytext = lexer2.yytext;
49250 yylineno = lexer2.yylineno;
49251 yyloc = lexer2.yylloc;
49252 }
49253 break;
49254 case 2:
49255 len = this.productions_[action[1]][1];
49256 yyval.$ = vstack[vstack.length - len];
49257 yyval._$ = {
49258 first_line: lstack[lstack.length - (len || 1)].first_line,
49259 last_line: lstack[lstack.length - 1].last_line,
49260 first_column: lstack[lstack.length - (len || 1)].first_column,
49261 last_column: lstack[lstack.length - 1].last_column
49262 };
49263 if (ranges) {
49264 yyval._$.range = [
49265 lstack[lstack.length - (len || 1)].range[0],
49266 lstack[lstack.length - 1].range[1]
49267 ];
49268 }
49269 r = this.performAction.apply(yyval, [
49270 yytext,
49271 yyleng,
49272 yylineno,
49273 sharedState.yy,
49274 action[1],
49275 vstack,
49276 lstack
49277 ].concat(args));
49278 if (typeof r !== "undefined") {
49279 return r;
49280 }
49281 if (len) {
49282 stack = stack.slice(0, -1 * len * 2);
49283 vstack = vstack.slice(0, -1 * len);
49284 lstack = lstack.slice(0, -1 * len);
49285 }
49286 stack.push(this.productions_[action[1]][0]);
49287 vstack.push(yyval.$);
49288 lstack.push(yyval._$);
49289 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
49290 stack.push(newState);
49291 break;
49292 case 3:
49293 return true;
49294 }
49295 }
49296 return true;
49297 }
49298 };
49299 var lexer = function() {
49300 var lexer2 = {
49301 EOF: 1,
49302 parseError: function parseError2(str2, hash) {
49303 if (this.yy.parser) {
49304 this.yy.parser.parseError(str2, hash);
49305 } else {
49306 throw new Error(str2);
49307 }
49308 },
49309 // resets the lexer, sets new input
49310 setInput: function(input, yy) {
49311 this.yy = yy || this.yy || {};
49312 this._input = input;
49313 this._more = this._backtrack = this.done = false;
49314 this.yylineno = this.yyleng = 0;
49315 this.yytext = this.matched = this.match = "";
49316 this.conditionStack = ["INITIAL"];
49317 this.yylloc = {
49318 first_line: 1,
49319 first_column: 0,
49320 last_line: 1,
49321 last_column: 0
49322 };
49323 if (this.options.ranges) {
49324 this.yylloc.range = [0, 0];
49325 }
49326 this.offset = 0;
49327 return this;
49328 },
49329 // consumes and returns one char from the input
49330 input: function() {
49331 var ch = this._input[0];
49332 this.yytext += ch;
49333 this.yyleng++;
49334 this.offset++;
49335 this.match += ch;
49336 this.matched += ch;
49337 var lines = ch.match(/(?:\r\n?|\n).*/g);
49338 if (lines) {
49339 this.yylineno++;
49340 this.yylloc.last_line++;
49341 } else {
49342 this.yylloc.last_column++;
49343 }
49344 if (this.options.ranges) {
49345 this.yylloc.range[1]++;
49346 }
49347 this._input = this._input.slice(1);
49348 return ch;
49349 },
49350 // unshifts one char (or a string) into the input
49351 unput: function(ch) {
49352 var len = ch.length;
49353 var lines = ch.split(/(?:\r\n?|\n)/g);
49354 this._input = ch + this._input;
49355 this.yytext = this.yytext.substr(0, this.yytext.length - len);
49356 this.offset -= len;
49357 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
49358 this.match = this.match.substr(0, this.match.length - 1);
49359 this.matched = this.matched.substr(0, this.matched.length - 1);
49360 if (lines.length - 1) {
49361 this.yylineno -= lines.length - 1;
49362 }
49363 var r = this.yylloc.range;
49364 this.yylloc = {
49365 first_line: this.yylloc.first_line,
49366 last_line: this.yylineno + 1,
49367 first_column: this.yylloc.first_column,
49368 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
49369 };
49370 if (this.options.ranges) {
49371 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
49372 }
49373 this.yyleng = this.yytext.length;
49374 return this;
49375 },
49376 // When called from action, caches matched text and appends it on next action
49377 more: function() {
49378 this._more = true;
49379 return this;
49380 },
49381 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
49382 reject: function() {
49383 if (this.options.backtrack_lexer) {
49384 this._backtrack = true;
49385 } else {
49386 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
49387 text: "",
49388 token: null,
49389 line: this.yylineno
49390 });
49391 }
49392 return this;
49393 },
49394 // retain first n characters of the match
49395 less: function(n) {
49396 this.unput(this.match.slice(n));
49397 },
49398 // displays already matched input, i.e. for error messages
49399 pastInput: function() {
49400 var past = this.matched.substr(0, this.matched.length - this.match.length);
49401 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
49402 },
49403 // displays upcoming input, i.e. for error messages
49404 upcomingInput: function() {
49405 var next2 = this.match;
49406 if (next2.length < 20) {
49407 next2 += this._input.substr(0, 20 - next2.length);
49408 }
49409 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
49410 },
49411 // displays the character position where the lexing error occurred, i.e. for error messages
49412 showPosition: function() {
49413 var pre = this.pastInput();
49414 var c2 = new Array(pre.length + 1).join("-");
49415 return pre + this.upcomingInput() + "\n" + c2 + "^";
49416 },
49417 // test the lexed token: return FALSE when not a match, otherwise return token
49418 test_match: function(match, indexed_rule) {
49419 var token2, lines, backup;
49420 if (this.options.backtrack_lexer) {
49421 backup = {
49422 yylineno: this.yylineno,
49423 yylloc: {
49424 first_line: this.yylloc.first_line,
49425 last_line: this.last_line,
49426 first_column: this.yylloc.first_column,
49427 last_column: this.yylloc.last_column
49428 },
49429 yytext: this.yytext,
49430 match: this.match,
49431 matches: this.matches,
49432 matched: this.matched,
49433 yyleng: this.yyleng,
49434 offset: this.offset,
49435 _more: this._more,
49436 _input: this._input,
49437 yy: this.yy,
49438 conditionStack: this.conditionStack.slice(0),
49439 done: this.done
49440 };
49441 if (this.options.ranges) {
49442 backup.yylloc.range = this.yylloc.range.slice(0);
49443 }
49444 }
49445 lines = match[0].match(/(?:\r\n?|\n).*/g);
49446 if (lines) {
49447 this.yylineno += lines.length;
49448 }
49449 this.yylloc = {
49450 first_line: this.yylloc.last_line,
49451 last_line: this.yylineno + 1,
49452 first_column: this.yylloc.last_column,
49453 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
49454 };
49455 this.yytext += match[0];
49456 this.match += match[0];
49457 this.matches = match;
49458 this.yyleng = this.yytext.length;
49459 if (this.options.ranges) {
49460 this.yylloc.range = [this.offset, this.offset += this.yyleng];
49461 }
49462 this._more = false;
49463 this._backtrack = false;
49464 this._input = this._input.slice(match[0].length);
49465 this.matched += match[0];
49466 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
49467 if (this.done && this._input) {
49468 this.done = false;
49469 }
49470 if (token2) {
49471 return token2;
49472 } else if (this._backtrack) {
49473 for (var k in backup) {
49474 this[k] = backup[k];
49475 }
49476 return false;
49477 }
49478 return false;
49479 },
49480 // return next match in input
49481 next: function() {
49482 if (this.done) {
49483 return this.EOF;
49484 }
49485 if (!this._input) {
49486 this.done = true;
49487 }
49488 var token2, match, tempMatch, index2;
49489 if (!this._more) {
49490 this.yytext = "";
49491 this.match = "";
49492 }
49493 var rules = this._currentRules();
49494 for (var i2 = 0; i2 < rules.length; i2++) {
49495 tempMatch = this._input.match(this.rules[rules[i2]]);
49496 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
49497 match = tempMatch;
49498 index2 = i2;
49499 if (this.options.backtrack_lexer) {
49500 token2 = this.test_match(tempMatch, rules[i2]);
49501 if (token2 !== false) {
49502 return token2;
49503 } else if (this._backtrack) {
49504 match = false;
49505 continue;
49506 } else {
49507 return false;
49508 }
49509 } else if (!this.options.flex) {
49510 break;
49511 }
49512 }
49513 }
49514 if (match) {
49515 token2 = this.test_match(match, rules[index2]);
49516 if (token2 !== false) {
49517 return token2;
49518 }
49519 return false;
49520 }
49521 if (this._input === "") {
49522 return this.EOF;
49523 } else {
49524 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
49525 text: "",
49526 token: null,
49527 line: this.yylineno
49528 });
49529 }
49530 },
49531 // return next match that has a token
49532 lex: function lex2() {
49533 var r = this.next();
49534 if (r) {
49535 return r;
49536 } else {
49537 return this.lex();
49538 }
49539 },
49540 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
49541 begin: function begin(condition) {
49542 this.conditionStack.push(condition);
49543 },
49544 // pop the previously active lexer condition state off the condition stack
49545 popState: function popState() {
49546 var n = this.conditionStack.length - 1;
49547 if (n > 0) {
49548 return this.conditionStack.pop();
49549 } else {
49550 return this.conditionStack[0];
49551 }
49552 },
49553 // produce the lexer rule set which is active for the currently active lexer condition state
49554 _currentRules: function _currentRules() {
49555 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
49556 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
49557 } else {
49558 return this.conditions["INITIAL"].rules;
49559 }
49560 },
49561 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
49562 topState: function topState(n) {
49563 n = this.conditionStack.length - 1 - Math.abs(n || 0);
49564 if (n >= 0) {
49565 return this.conditionStack[n];
49566 } else {
49567 return "INITIAL";
49568 }
49569 },
49570 // alias for begin(condition)
49571 pushState: function pushState(condition) {
49572 this.begin(condition);
49573 },
49574 // return the number of states currently on the stack
49575 stateStackSize: function stateStackSize() {
49576 return this.conditionStack.length;
49577 },
49578 options: { "case-insensitive": true },
49579 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
49580 switch ($avoiding_name_collisions) {
49581 case 0:
49582 this.begin("open_directive");
49583 return 26;
49584 case 1:
49585 this.begin("type_directive");
49586 return 27;
49587 case 2:
49588 this.popState();
49589 this.begin("arg_directive");
49590 return 15;
49591 case 3:
49592 this.popState();
49593 this.popState();
49594 return 29;
49595 case 4:
49596 return 28;
49597 case 5:
49598 break;
49599 case 6:
49600 break;
49601 case 7:
49602 return 11;
49603 case 8:
49604 break;
49605 case 9:
49606 break;
49607 case 10:
49608 return 4;
49609 case 11:
49610 return 17;
49611 case 12:
49612 this.begin("acc_title");
49613 return 18;
49614 case 13:
49615 this.popState();
49616 return "acc_title_value";
49617 case 14:
49618 this.begin("acc_descr");
49619 return 20;
49620 case 15:
49621 this.popState();
49622 return "acc_descr_value";
49623 case 16:
49624 this.begin("acc_descr_multiline");
49625 break;
49626 case 17:
49627 this.popState();
49628 break;
49629 case 18:
49630 return "acc_descr_multiline_value";
49631 case 19:
49632 return 23;
49633 case 20:
49634 return 24;
49635 case 21:
49636 return 25;
49637 case 22:
49638 return 15;
49639 case 23:
49640 return 6;
49641 case 24:
49642 return "INVALID";
49643 }
49644 },
49645 rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:journey\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?::[^#\n;]+)/i, /^(?::)/i, /^(?:$)/i, /^(?:.)/i],
49646 conditions: { "open_directive": { "rules": [1], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "acc_descr_multiline": { "rules": [17, 18], "inclusive": false }, "acc_descr": { "rules": [15], "inclusive": false }, "acc_title": { "rules": [13], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23, 24], "inclusive": true } }
49647 };
49648 return lexer2;
49649 }();
49650 parser2.lexer = lexer;
49651 function Parser() {
49652 this.yy = {};
49653 }
49654 Parser.prototype = parser2;
49655 parser2.Parser = Parser;
49656 return new Parser();
49657 }();
49658 parser$3.parser = parser$3;
49659 const parser$4 = parser$3;
49660 let currentSection$1 = "";
49661 const sections$1 = [];
49662 const tasks$1 = [];
49663 const rawTasks$1 = [];
49664 const parseDirective$1 = function(statement, context, type2) {
49665 mermaidAPI.parseDirective(this, statement, context, type2);
49666 };
49667 const clear$2 = function() {
49668 sections$1.length = 0;
49669 tasks$1.length = 0;
49670 currentSection$1 = "";
49671 rawTasks$1.length = 0;
49672 clear$j();
49673 };
49674 const addSection$1 = function(txt) {
49675 currentSection$1 = txt;
49676 sections$1.push(txt);
49677 };
49678 const getSections$1 = function() {
49679 return sections$1;
49680 };
49681 const getTasks$1 = function() {
49682 let allItemsProcessed = compileTasks$1();
49683 const maxDepth = 100;
49684 let iterationCount = 0;
49685 while (!allItemsProcessed && iterationCount < maxDepth) {
49686 allItemsProcessed = compileTasks$1();
49687 iterationCount++;
49688 }
49689 tasks$1.push(...rawTasks$1);
49690 return tasks$1;
49691 };
49692 const updateActors = function() {
49693 const tempActors = [];
49694 tasks$1.forEach((task) => {
49695 if (task.people) {
49696 tempActors.push(...task.people);
49697 }
49698 });
49699 const unique = new Set(tempActors);
49700 return [...unique].sort();
49701 };
49702 const addTask$1 = function(descr, taskData) {
49703 const pieces = taskData.substr(1).split(":");
49704 let score = 0;
49705 let peeps = [];
49706 if (pieces.length === 1) {
49707 score = Number(pieces[0]);
49708 peeps = [];
49709 } else {
49710 score = Number(pieces[0]);
49711 peeps = pieces[1].split(",");
49712 }
49713 const peopleList = peeps.map((s) => s.trim());
49714 const rawTask = {
49715 section: currentSection$1,
49716 type: currentSection$1,
49717 people: peopleList,
49718 task: descr,
49719 score
49720 };
49721 rawTasks$1.push(rawTask);
49722 };
49723 const addTaskOrg$1 = function(descr) {
49724 const newTask = {
49725 section: currentSection$1,
49726 type: currentSection$1,
49727 description: descr,
49728 task: descr,
49729 classes: []
49730 };
49731 tasks$1.push(newTask);
49732 };
49733 const compileTasks$1 = function() {
49734 const compileTask = function(pos) {
49735 return rawTasks$1[pos].processed;
49736 };
49737 let allProcessed = true;
49738 for (const [i2, rawTask] of rawTasks$1.entries()) {
49739 compileTask(i2);
49740 allProcessed = allProcessed && rawTask.processed;
49741 }
49742 return allProcessed;
49743 };
49744 const getActors = function() {
49745 return updateActors();
49746 };
49747 const db$1 = {
49748 parseDirective: parseDirective$1,
49749 getConfig: () => getConfig$1().journey,
49750 clear: clear$2,
49751 setDiagramTitle,
49752 getDiagramTitle,
49753 setAccTitle,
49754 getAccTitle,
49755 setAccDescription,
49756 getAccDescription,
49757 addSection: addSection$1,
49758 getSections: getSections$1,
49759 getTasks: getTasks$1,
49760 addTask: addTask$1,
49761 addTaskOrg: addTaskOrg$1,
49762 getActors
49763 };
49764 const getStyles$3 = (options2) => `.label {
49765 font-family: 'trebuchet ms', verdana, arial, sans-serif;
49766 font-family: var(--mermaid-font-family);
49767 color: ${options2.textColor};
49768 }
49769 .mouth {
49770 stroke: #666;
49771 }
49772
49773 line {
49774 stroke: ${options2.textColor}
49775 }
49776
49777 .legend {
49778 fill: ${options2.textColor};
49779 }
49780
49781 .label text {
49782 fill: #333;
49783 }
49784 .label {
49785 color: ${options2.textColor}
49786 }
49787
49788 .face {
49789 ${options2.faceColor ? `fill: ${options2.faceColor}` : "fill: #FFF8DC"};
49790 stroke: #999;
49791 }
49792
49793 .node rect,
49794 .node circle,
49795 .node ellipse,
49796 .node polygon,
49797 .node path {
49798 fill: ${options2.mainBkg};
49799 stroke: ${options2.nodeBorder};
49800 stroke-width: 1px;
49801 }
49802
49803 .node .label {
49804 text-align: center;
49805 }
49806 .node.clickable {
49807 cursor: pointer;
49808 }
49809
49810 .arrowheadPath {
49811 fill: ${options2.arrowheadColor};
49812 }
49813
49814 .edgePath .path {
49815 stroke: ${options2.lineColor};
49816 stroke-width: 1.5px;
49817 }
49818
49819 .flowchart-link {
49820 stroke: ${options2.lineColor};
49821 fill: none;
49822 }
49823
49824 .edgeLabel {
49825 background-color: ${options2.edgeLabelBackground};
49826 rect {
49827 opacity: 0.5;
49828 }
49829 text-align: center;
49830 }
49831
49832 .cluster rect {
49833 }
49834
49835 .cluster text {
49836 fill: ${options2.titleColor};
49837 }
49838
49839 div.mermaidTooltip {
49840 position: absolute;
49841 text-align: center;
49842 max-width: 200px;
49843 padding: 2px;
49844 font-family: 'trebuchet ms', verdana, arial, sans-serif;
49845 font-family: var(--mermaid-font-family);
49846 font-size: 12px;
49847 background: ${options2.tertiaryColor};
49848 border: 1px solid ${options2.border2};
49849 border-radius: 2px;
49850 pointer-events: none;
49851 z-index: 100;
49852 }
49853
49854 .task-type-0, .section-type-0 {
49855 ${options2.fillType0 ? `fill: ${options2.fillType0}` : ""};
49856 }
49857 .task-type-1, .section-type-1 {
49858 ${options2.fillType0 ? `fill: ${options2.fillType1}` : ""};
49859 }
49860 .task-type-2, .section-type-2 {
49861 ${options2.fillType0 ? `fill: ${options2.fillType2}` : ""};
49862 }
49863 .task-type-3, .section-type-3 {
49864 ${options2.fillType0 ? `fill: ${options2.fillType3}` : ""};
49865 }
49866 .task-type-4, .section-type-4 {
49867 ${options2.fillType0 ? `fill: ${options2.fillType4}` : ""};
49868 }
49869 .task-type-5, .section-type-5 {
49870 ${options2.fillType0 ? `fill: ${options2.fillType5}` : ""};
49871 }
49872 .task-type-6, .section-type-6 {
49873 ${options2.fillType0 ? `fill: ${options2.fillType6}` : ""};
49874 }
49875 .task-type-7, .section-type-7 {
49876 ${options2.fillType0 ? `fill: ${options2.fillType7}` : ""};
49877 }
49878
49879 .actor-0 {
49880 ${options2.actor0 ? `fill: ${options2.actor0}` : ""};
49881 }
49882 .actor-1 {
49883 ${options2.actor1 ? `fill: ${options2.actor1}` : ""};
49884 }
49885 .actor-2 {
49886 ${options2.actor2 ? `fill: ${options2.actor2}` : ""};
49887 }
49888 .actor-3 {
49889 ${options2.actor3 ? `fill: ${options2.actor3}` : ""};
49890 }
49891 .actor-4 {
49892 ${options2.actor4 ? `fill: ${options2.actor4}` : ""};
49893 }
49894 .actor-5 {
49895 ${options2.actor5 ? `fill: ${options2.actor5}` : ""};
49896 }
49897`;
49898 const styles$2 = getStyles$3;
49899 const drawRect$1 = function(elem, rectData) {
49900 return drawRect$4(elem, rectData);
49901 };
49902 const drawFace$1 = function(element2, faceData) {
49903 const radius = 15;
49904 const circleElement = element2.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible");
49905 const face = element2.append("g");
49906 face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
49907 face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
49908 function smile(face2) {
49909 const arc = d3arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
49910 face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")");
49911 }
49912 function sad(face2) {
49913 const arc = d3arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
49914 face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")");
49915 }
49916 function ambivalent(face2) {
49917 face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666");
49918 }
49919 if (faceData.score > 3) {
49920 smile(face);
49921 } else if (faceData.score < 3) {
49922 sad(face);
49923 } else {
49924 ambivalent(face);
49925 }
49926 return circleElement;
49927 };
49928 const drawCircle$1 = function(element2, circleData) {
49929 const circleElement = element2.append("circle");
49930 circleElement.attr("cx", circleData.cx);
49931 circleElement.attr("cy", circleData.cy);
49932 circleElement.attr("class", "actor-" + circleData.pos);
49933 circleElement.attr("fill", circleData.fill);
49934 circleElement.attr("stroke", circleData.stroke);
49935 circleElement.attr("r", circleData.r);
49936 if (circleElement.class !== void 0) {
49937 circleElement.attr("class", circleElement.class);
49938 }
49939 if (circleData.title !== void 0) {
49940 circleElement.append("title").text(circleData.title);
49941 }
49942 return circleElement;
49943 };
49944 const drawText$1 = function(elem, textData) {
49945 return drawText$4(elem, textData);
49946 };
49947 const drawLabel$1 = function(elem, txtObject) {
49948 function genPoints(x2, y2, width2, height2, cut) {
49949 return x2 + "," + y2 + " " + (x2 + width2) + "," + y2 + " " + (x2 + width2) + "," + (y2 + height2 - cut) + " " + (x2 + width2 - cut * 1.2) + "," + (y2 + height2) + " " + x2 + "," + (y2 + height2);
49950 }
49951 const polygon = elem.append("polygon");
49952 polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7));
49953 polygon.attr("class", "labelBox");
49954 txtObject.y = txtObject.y + txtObject.labelMargin;
49955 txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
49956 drawText$1(elem, txtObject);
49957 };
49958 const drawSection$1 = function(elem, section, conf2) {
49959 const g = elem.append("g");
49960 const rect2 = getNoteRect$2();
49961 rect2.x = section.x;
49962 rect2.y = section.y;
49963 rect2.fill = section.fill;
49964 rect2.width = conf2.width * section.taskCount + // width of the tasks
49965 conf2.diagramMarginX * (section.taskCount - 1);
49966 rect2.height = conf2.height;
49967 rect2.class = "journey-section section-type-" + section.num;
49968 rect2.rx = 3;
49969 rect2.ry = 3;
49970 drawRect$1(g, rect2);
49971 _drawTextCandidateFunc$1(conf2)(
49972 section.text,
49973 g,
49974 rect2.x,
49975 rect2.y,
49976 rect2.width,
49977 rect2.height,
49978 { class: "journey-section section-type-" + section.num },
49979 conf2,
49980 section.colour
49981 );
49982 };
49983 let taskCount$1 = -1;
49984 const drawTask$1 = function(elem, task, conf2) {
49985 const center2 = task.x + conf2.width / 2;
49986 const g = elem.append("g");
49987 taskCount$1++;
49988 const maxHeight = 300 + 5 * 30;
49989 g.append("line").attr("id", "task" + taskCount$1).attr("x1", center2).attr("y1", task.y).attr("x2", center2).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666");
49990 drawFace$1(g, {
49991 cx: center2,
49992 cy: 300 + (5 - task.score) * 30,
49993 score: task.score
49994 });
49995 const rect2 = getNoteRect$2();
49996 rect2.x = task.x;
49997 rect2.y = task.y;
49998 rect2.fill = task.fill;
49999 rect2.width = conf2.width;
50000 rect2.height = conf2.height;
50001 rect2.class = "task task-type-" + task.num;
50002 rect2.rx = 3;
50003 rect2.ry = 3;
50004 drawRect$1(g, rect2);
50005 let xPos = task.x + 14;
50006 task.people.forEach((person) => {
50007 const colour = task.actors[person].color;
50008 const circle2 = {
50009 cx: xPos,
50010 cy: task.y,
50011 r: 7,
50012 fill: colour,
50013 stroke: "#000",
50014 title: person,
50015 pos: task.actors[person].position
50016 };
50017 drawCircle$1(g, circle2);
50018 xPos += 10;
50019 });
50020 _drawTextCandidateFunc$1(conf2)(
50021 task.task,
50022 g,
50023 rect2.x,
50024 rect2.y,
50025 rect2.width,
50026 rect2.height,
50027 { class: "task" },
50028 conf2,
50029 task.colour
50030 );
50031 };
50032 const drawBackgroundRect$1 = function(elem, bounds2) {
50033 drawBackgroundRect$3(elem, bounds2);
50034 };
50035 const _drawTextCandidateFunc$1 = function() {
50036 function byText(content2, g, x2, y2, width2, height2, textAttrs, colour) {
50037 const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2 + height2 / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content2);
50038 _setTextAttrs(text2, textAttrs);
50039 }
50040 function byTspan(content2, g, x2, y2, width2, height2, textAttrs, conf2, colour) {
50041 const { taskFontSize, taskFontFamily } = conf2;
50042 const lines = content2.split(/<br\s*\/?>/gi);
50043 for (let i2 = 0; i2 < lines.length; i2++) {
50044 const dy = i2 * taskFontSize - taskFontSize * (lines.length - 1) / 2;
50045 const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily);
50046 text2.append("tspan").attr("x", x2 + width2 / 2).attr("dy", dy).text(lines[i2]);
50047 text2.attr("y", y2 + height2 / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
50048 _setTextAttrs(text2, textAttrs);
50049 }
50050 }
50051 function byFo(content2, g, x2, y2, width2, height2, textAttrs, conf2) {
50052 const body = g.append("switch");
50053 const f2 = body.append("foreignObject").attr("x", x2).attr("y", y2).attr("width", width2).attr("height", height2).attr("position", "fixed");
50054 const text2 = f2.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
50055 text2.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content2);
50056 byTspan(content2, body, x2, y2, width2, height2, textAttrs, conf2);
50057 _setTextAttrs(text2, textAttrs);
50058 }
50059 function _setTextAttrs(toText, fromTextAttrsDict) {
50060 for (const key in fromTextAttrsDict) {
50061 if (key in fromTextAttrsDict) {
50062 toText.attr(key, fromTextAttrsDict[key]);
50063 }
50064 }
50065 }
50066 return function(conf2) {
50067 return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
50068 };
50069 }();
50070 const initGraphics$1 = function(graphics) {
50071 graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z");
50072 };
50073 const svgDraw$2 = {
50074 drawRect: drawRect$1,
50075 drawCircle: drawCircle$1,
50076 drawSection: drawSection$1,
50077 drawText: drawText$1,
50078 drawLabel: drawLabel$1,
50079 drawTask: drawTask$1,
50080 drawBackgroundRect: drawBackgroundRect$1,
50081 initGraphics: initGraphics$1
50082 };
50083 const setConf = function(cnf) {
50084 const keys2 = Object.keys(cnf);
50085 keys2.forEach(function(key) {
50086 conf$1[key] = cnf[key];
50087 });
50088 };
50089 const actors = {};
50090 function drawActorLegend(diagram2) {
50091 const conf2 = getConfig$1().journey;
50092 let yPos = 60;
50093 Object.keys(actors).forEach((person) => {
50094 const colour = actors[person].color;
50095 const circleData = {
50096 cx: 20,
50097 cy: yPos,
50098 r: 7,
50099 fill: colour,
50100 stroke: "#000",
50101 pos: actors[person].position
50102 };
50103 svgDraw$2.drawCircle(diagram2, circleData);
50104 const labelData = {
50105 x: 40,
50106 y: yPos + 7,
50107 fill: "#666",
50108 text: person,
50109 textMargin: conf2.boxTextMargin | 5
50110 };
50111 svgDraw$2.drawText(diagram2, labelData);
50112 yPos += 20;
50113 });
50114 }
50115 const conf$1 = getConfig$1().journey;
50116 const LEFT_MARGIN = conf$1.leftMargin;
50117 const draw$3 = function(text2, id2, version2, diagObj) {
50118 const conf2 = getConfig$1().journey;
50119 diagObj.db.clear();
50120 diagObj.parser.parse(text2 + "\n");
50121 const securityLevel = getConfig$1().securityLevel;
50122 let sandboxElement;
50123 if (securityLevel === "sandbox") {
50124 sandboxElement = select("#i" + id2);
50125 }
50126 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
50127 bounds.init();
50128 const diagram2 = root2.select("#" + id2);
50129 svgDraw$2.initGraphics(diagram2);
50130 const tasks2 = diagObj.db.getTasks();
50131 const title2 = diagObj.db.getDiagramTitle();
50132 const actorNames = diagObj.db.getActors();
50133 for (const member in actors) {
50134 delete actors[member];
50135 }
50136 let actorPos = 0;
50137 actorNames.forEach((actorName) => {
50138 actors[actorName] = {
50139 color: conf2.actorColours[actorPos % conf2.actorColours.length],
50140 position: actorPos
50141 };
50142 actorPos++;
50143 });
50144 drawActorLegend(diagram2);
50145 bounds.insert(0, 0, LEFT_MARGIN, Object.keys(actors).length * 50);
50146 drawTasks$1(diagram2, tasks2, 0);
50147 const box = bounds.getBounds();
50148 if (title2) {
50149 diagram2.append("text").text(title2).attr("x", LEFT_MARGIN).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 25);
50150 }
50151 const height2 = box.stopy - box.starty + 2 * conf2.diagramMarginY;
50152 const width2 = LEFT_MARGIN + box.stopx + 2 * conf2.diagramMarginX;
50153 configureSvgSize(diagram2, height2, width2, conf2.useMaxWidth);
50154 diagram2.append("line").attr("x1", LEFT_MARGIN).attr("y1", conf2.height * 4).attr("x2", width2 - LEFT_MARGIN - 4).attr("y2", conf2.height * 4).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
50155 const extraVertForTitle = title2 ? 70 : 0;
50156 diagram2.attr("viewBox", `${box.startx} -25 ${width2} ${height2 + extraVertForTitle}`);
50157 diagram2.attr("preserveAspectRatio", "xMinYMin meet");
50158 diagram2.attr("height", height2 + extraVertForTitle + 25);
50159 };
50160 const bounds = {
50161 data: {
50162 startx: void 0,
50163 stopx: void 0,
50164 starty: void 0,
50165 stopy: void 0
50166 },
50167 verticalPos: 0,
50168 sequenceItems: [],
50169 init: function() {
50170 this.sequenceItems = [];
50171 this.data = {
50172 startx: void 0,
50173 stopx: void 0,
50174 starty: void 0,
50175 stopy: void 0
50176 };
50177 this.verticalPos = 0;
50178 },
50179 updateVal: function(obj, key, val, fun) {
50180 if (obj[key] === void 0) {
50181 obj[key] = val;
50182 } else {
50183 obj[key] = fun(val, obj[key]);
50184 }
50185 },
50186 updateBounds: function(startx, starty, stopx, stopy) {
50187 const conf2 = getConfig$1().journey;
50188 const _self = this;
50189 let cnt2 = 0;
50190 function updateFn(type2) {
50191 return function updateItemBounds(item) {
50192 cnt2++;
50193 const n = _self.sequenceItems.length - cnt2 + 1;
50194 _self.updateVal(item, "starty", starty - n * conf2.boxMargin, Math.min);
50195 _self.updateVal(item, "stopy", stopy + n * conf2.boxMargin, Math.max);
50196 _self.updateVal(bounds.data, "startx", startx - n * conf2.boxMargin, Math.min);
50197 _self.updateVal(bounds.data, "stopx", stopx + n * conf2.boxMargin, Math.max);
50198 if (!(type2 === "activation")) {
50199 _self.updateVal(item, "startx", startx - n * conf2.boxMargin, Math.min);
50200 _self.updateVal(item, "stopx", stopx + n * conf2.boxMargin, Math.max);
50201 _self.updateVal(bounds.data, "starty", starty - n * conf2.boxMargin, Math.min);
50202 _self.updateVal(bounds.data, "stopy", stopy + n * conf2.boxMargin, Math.max);
50203 }
50204 };
50205 }
50206 this.sequenceItems.forEach(updateFn());
50207 },
50208 insert: function(startx, starty, stopx, stopy) {
50209 const _startx = Math.min(startx, stopx);
50210 const _stopx = Math.max(startx, stopx);
50211 const _starty = Math.min(starty, stopy);
50212 const _stopy = Math.max(starty, stopy);
50213 this.updateVal(bounds.data, "startx", _startx, Math.min);
50214 this.updateVal(bounds.data, "starty", _starty, Math.min);
50215 this.updateVal(bounds.data, "stopx", _stopx, Math.max);
50216 this.updateVal(bounds.data, "stopy", _stopy, Math.max);
50217 this.updateBounds(_startx, _starty, _stopx, _stopy);
50218 },
50219 bumpVerticalPos: function(bump) {
50220 this.verticalPos = this.verticalPos + bump;
50221 this.data.stopy = this.verticalPos;
50222 },
50223 getVerticalPos: function() {
50224 return this.verticalPos;
50225 },
50226 getBounds: function() {
50227 return this.data;
50228 }
50229 };
50230 const fills = conf$1.sectionFills;
50231 const textColours = conf$1.sectionColours;
50232 const drawTasks$1 = function(diagram2, tasks2, verticalPos) {
50233 const conf2 = getConfig$1().journey;
50234 let lastSection = "";
50235 const sectionVHeight = conf2.height * 2 + conf2.diagramMarginY;
50236 const taskPos = verticalPos + sectionVHeight;
50237 let sectionNumber = 0;
50238 let fill = "#CCC";
50239 let colour = "black";
50240 let num = 0;
50241 for (const [i2, task] of tasks2.entries()) {
50242 if (lastSection !== task.section) {
50243 fill = fills[sectionNumber % fills.length];
50244 num = sectionNumber % fills.length;
50245 colour = textColours[sectionNumber % textColours.length];
50246 let taskInSectionCount = 0;
50247 const currentSection2 = task.section;
50248 for (let taskIndex = i2; taskIndex < tasks2.length; taskIndex++) {
50249 if (tasks2[taskIndex].section == currentSection2) {
50250 taskInSectionCount = taskInSectionCount + 1;
50251 } else {
50252 break;
50253 }
50254 }
50255 const section = {
50256 x: i2 * conf2.taskMargin + i2 * conf2.width + LEFT_MARGIN,
50257 y: 50,
50258 text: task.section,
50259 fill,
50260 num,
50261 colour,
50262 taskCount: taskInSectionCount
50263 };
50264 svgDraw$2.drawSection(diagram2, section, conf2);
50265 lastSection = task.section;
50266 sectionNumber++;
50267 }
50268 const taskActors = task.people.reduce((acc, actorName) => {
50269 if (actors[actorName]) {
50270 acc[actorName] = actors[actorName];
50271 }
50272 return acc;
50273 }, {});
50274 task.x = i2 * conf2.taskMargin + i2 * conf2.width + LEFT_MARGIN;
50275 task.y = taskPos;
50276 task.width = conf2.diagramMarginX;
50277 task.height = conf2.diagramMarginY;
50278 task.colour = colour;
50279 task.fill = fill;
50280 task.num = num;
50281 task.actors = taskActors;
50282 svgDraw$2.drawTask(diagram2, task, conf2);
50283 bounds.insert(task.x, task.y, task.x + task.width + conf2.taskMargin, 300 + 5 * 30);
50284 }
50285 };
50286 const renderer$2 = {
50287 setConf,
50288 draw: draw$3
50289 };
50290 const diagram$3 = {
50291 parser: parser$4,
50292 db: db$1,
50293 renderer: renderer$2,
50294 styles: styles$2,
50295 init: (cnf) => {
50296 renderer$2.setConf(cnf.journey);
50297 db$1.clear();
50298 }
50299 };
50300 const journeyDiagram = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
50301 __proto__: null,
50302 diagram: diagram$3
50303 }, Symbol.toStringTag, { value: "Module" }));
50304 const findCommonAncestor = (id1, id2, treeData) => {
50305 const { parentById } = treeData;
50306 const visited = /* @__PURE__ */ new Set();
50307 let currentId = id1;
50308 while (currentId) {
50309 visited.add(currentId);
50310 if (currentId === id2) {
50311 return currentId;
50312 }
50313 currentId = parentById[currentId];
50314 }
50315 currentId = id2;
50316 while (currentId) {
50317 if (visited.has(currentId)) {
50318 return currentId;
50319 }
50320 currentId = parentById[currentId];
50321 }
50322 return "root";
50323 };
50324 function commonjsRequire(path2) {
50325 throw new Error('Could not dynamically require "' + path2 + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
50326 }
50327 var elk_bundledExports = {};
50328 var elk_bundled = {
50329 get exports() {
50330 return elk_bundledExports;
50331 },
50332 set exports(v) {
50333 elk_bundledExports = v;
50334 }
50335 };
50336 (function(module2, exports2) {
50337 (function(f2) {
50338 {
50339 module2.exports = f2();
50340 }
50341 })(function() {
50342 return function() {
50343 function r(e, n, t4) {
50344 function o(i3, f2) {
50345 if (!n[i3]) {
50346 if (!e[i3]) {
50347 var c2 = "function" == typeof commonjsRequire && commonjsRequire;
50348 if (!f2 && c2)
50349 return c2(i3, true);
50350 if (u2)
50351 return u2(i3, true);
50352 var a = new Error("Cannot find module '" + i3 + "'");
50353 throw a.code = "MODULE_NOT_FOUND", a;
50354 }
50355 var p = n[i3] = { exports: {} };
50356 e[i3][0].call(p.exports, function(r2) {
50357 var n2 = e[i3][1][r2];
50358 return o(n2 || r2);
50359 }, p, p.exports, r, e, n, t4);
50360 }
50361 return n[i3].exports;
50362 }
50363 for (var u2 = "function" == typeof commonjsRequire && commonjsRequire, i2 = 0; i2 < t4.length; i2++)
50364 o(t4[i2]);
50365 return o;
50366 }
50367 return r;
50368 }()({ 1: [function(require, module3, exports3) {
50369 Object.defineProperty(exports3, "__esModule", {
50370 value: true
50371 });
50372 var _createClass = function() {
50373 function defineProperties(target, props) {
50374 for (var i2 = 0; i2 < props.length; i2++) {
50375 var descriptor = props[i2];
50376 descriptor.enumerable = descriptor.enumerable || false;
50377 descriptor.configurable = true;
50378 if ("value" in descriptor)
50379 descriptor.writable = true;
50380 Object.defineProperty(target, descriptor.key, descriptor);
50381 }
50382 }
50383 return function(Constructor, protoProps, staticProps) {
50384 if (protoProps)
50385 defineProperties(Constructor.prototype, protoProps);
50386 if (staticProps)
50387 defineProperties(Constructor, staticProps);
50388 return Constructor;
50389 };
50390 }();
50391 function _classCallCheck(instance2, Constructor) {
50392 if (!(instance2 instanceof Constructor)) {
50393 throw new TypeError("Cannot call a class as a function");
50394 }
50395 }
50396 var ELK2 = function() {
50397 function ELK3() {
50398 var _this = this;
50399 var _ref = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, _ref$defaultLayoutOpt = _ref.defaultLayoutOptions, defaultLayoutOptions = _ref$defaultLayoutOpt === void 0 ? {} : _ref$defaultLayoutOpt, _ref$algorithms = _ref.algorithms, algorithms = _ref$algorithms === void 0 ? ["layered", "stress", "mrtree", "radial", "force", "disco", "sporeOverlap", "sporeCompaction", "rectpacking"] : _ref$algorithms, workerFactory = _ref.workerFactory, workerUrl = _ref.workerUrl;
50400 _classCallCheck(this, ELK3);
50401 this.defaultLayoutOptions = defaultLayoutOptions;
50402 this.initialized = false;
50403 if (typeof workerUrl === "undefined" && typeof workerFactory === "undefined") {
50404 throw new Error("Cannot construct an ELK without both 'workerUrl' and 'workerFactory'.");
50405 }
50406 var factory = workerFactory;
50407 if (typeof workerUrl !== "undefined" && typeof workerFactory === "undefined") {
50408 factory = function factory2(url) {
50409 return new Worker(url);
50410 };
50411 }
50412 var worker = factory(workerUrl);
50413 if (typeof worker.postMessage !== "function") {
50414 throw new TypeError("Created worker does not provide the required 'postMessage' function.");
50415 }
50416 this.worker = new PromisedWorker(worker);
50417 this.worker.postMessage({
50418 cmd: "register",
50419 algorithms
50420 }).then(function(r) {
50421 return _this.initialized = true;
50422 }).catch(console.err);
50423 }
50424 _createClass(ELK3, [{
50425 key: "layout",
50426 value: function layout2(graph) {
50427 var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref2$layoutOptions = _ref2.layoutOptions, layoutOptions = _ref2$layoutOptions === void 0 ? this.defaultLayoutOptions : _ref2$layoutOptions, _ref2$logging = _ref2.logging, logging = _ref2$logging === void 0 ? false : _ref2$logging, _ref2$measureExecutio = _ref2.measureExecutionTime, measureExecutionTime = _ref2$measureExecutio === void 0 ? false : _ref2$measureExecutio;
50428 if (!graph) {
50429 return Promise.reject(new Error("Missing mandatory parameter 'graph'."));
50430 }
50431 return this.worker.postMessage({
50432 cmd: "layout",
50433 graph,
50434 layoutOptions,
50435 options: {
50436 logging,
50437 measureExecutionTime
50438 }
50439 });
50440 }
50441 }, {
50442 key: "knownLayoutAlgorithms",
50443 value: function knownLayoutAlgorithms() {
50444 return this.worker.postMessage({ cmd: "algorithms" });
50445 }
50446 }, {
50447 key: "knownLayoutOptions",
50448 value: function knownLayoutOptions() {
50449 return this.worker.postMessage({ cmd: "options" });
50450 }
50451 }, {
50452 key: "knownLayoutCategories",
50453 value: function knownLayoutCategories() {
50454 return this.worker.postMessage({ cmd: "categories" });
50455 }
50456 }, {
50457 key: "terminateWorker",
50458 value: function terminateWorker() {
50459 this.worker.terminate();
50460 }
50461 }]);
50462 return ELK3;
50463 }();
50464 exports3.default = ELK2;
50465 var PromisedWorker = function() {
50466 function PromisedWorker2(worker) {
50467 var _this2 = this;
50468 _classCallCheck(this, PromisedWorker2);
50469 if (worker === void 0) {
50470 throw new Error("Missing mandatory parameter 'worker'.");
50471 }
50472 this.resolvers = {};
50473 this.worker = worker;
50474 this.worker.onmessage = function(answer) {
50475 setTimeout(function() {
50476 _this2.receive(_this2, answer);
50477 }, 0);
50478 };
50479 }
50480 _createClass(PromisedWorker2, [{
50481 key: "postMessage",
50482 value: function postMessage(msg) {
50483 var id2 = this.id || 0;
50484 this.id = id2 + 1;
50485 msg.id = id2;
50486 var self2 = this;
50487 return new Promise(function(resolve, reject) {
50488 self2.resolvers[id2] = function(err, res) {
50489 if (err) {
50490 self2.convertGwtStyleError(err);
50491 reject(err);
50492 } else {
50493 resolve(res);
50494 }
50495 };
50496 self2.worker.postMessage(msg);
50497 });
50498 }
50499 }, {
50500 key: "receive",
50501 value: function receive(self2, answer) {
50502 var json2 = answer.data;
50503 var resolver2 = self2.resolvers[json2.id];
50504 if (resolver2) {
50505 delete self2.resolvers[json2.id];
50506 if (json2.error) {
50507 resolver2(json2.error);
50508 } else {
50509 resolver2(null, json2.data);
50510 }
50511 }
50512 }
50513 }, {
50514 key: "terminate",
50515 value: function terminate() {
50516 if (this.worker.terminate) {
50517 this.worker.terminate();
50518 }
50519 }
50520 }, {
50521 key: "convertGwtStyleError",
50522 value: function convertGwtStyleError(err) {
50523 if (!err) {
50524 return;
50525 }
50526 var javaException = err["__java$exception"];
50527 if (javaException) {
50528 if (javaException.cause && javaException.cause.backingJsObject) {
50529 err.cause = javaException.cause.backingJsObject;
50530 this.convertGwtStyleError(err.cause);
50531 }
50532 delete err["__java$exception"];
50533 }
50534 }
50535 }]);
50536 return PromisedWorker2;
50537 }();
50538 }, {}], 2: [function(require, module3, exports3) {
50539 (function(global2) {
50540 (function() {
50541 var $wnd;
50542 if (typeof window !== "undefined")
50543 $wnd = window;
50544 else if (typeof global2 !== "undefined")
50545 $wnd = global2;
50546 else if (typeof self !== "undefined")
50547 $wnd = self;
50548 var o;
50549 function nb() {
50550 }
50551 function xb() {
50552 }
50553 function Fd() {
50554 }
50555 function $g() {
50556 }
50557 function _p() {
50558 }
50559 function yq() {
50560 }
50561 function Sq() {
50562 }
50563 function Es() {
50564 }
50565 function Jw() {
50566 }
50567 function Vw() {
50568 }
50569 function VA() {
50570 }
50571 function dA() {
50572 }
50573 function MA() {
50574 }
50575 function PA() {
50576 }
50577 function PB() {
50578 }
50579 function bx() {
50580 }
50581 function cx() {
50582 }
50583 function vy() {
50584 }
50585 function Nz() {
50586 }
50587 function Yz() {
50588 }
50589 function Ylb() {
50590 }
50591 function Ymb() {
50592 }
50593 function xmb() {
50594 }
50595 function Fmb() {
50596 }
50597 function Qmb() {
50598 }
50599 function gcb() {
50600 }
50601 function ccb() {
50602 }
50603 function jcb() {
50604 }
50605 function jtb() {
50606 }
50607 function otb() {
50608 }
50609 function qtb() {
50610 }
50611 function _fb() {
50612 }
50613 function bpb() {
50614 }
50615 function kpb() {
50616 }
50617 function ppb() {
50618 }
50619 function Gpb() {
50620 }
50621 function drb() {
50622 }
50623 function dzb() {
50624 }
50625 function fzb() {
50626 }
50627 function fxb() {
50628 }
50629 function Vxb() {
50630 }
50631 function Ovb() {
50632 }
50633 function byb() {
50634 }
50635 function zyb() {
50636 }
50637 function Zyb() {
50638 }
50639 function _yb() {
50640 }
50641 function hzb() {
50642 }
50643 function jzb() {
50644 }
50645 function lzb() {
50646 }
50647 function nzb() {
50648 }
50649 function rzb() {
50650 }
50651 function zzb() {
50652 }
50653 function Czb() {
50654 }
50655 function Ezb() {
50656 }
50657 function Gzb() {
50658 }
50659 function Izb() {
50660 }
50661 function Mzb() {
50662 }
50663 function bBb() {
50664 }
50665 function NBb() {
50666 }
50667 function PBb() {
50668 }
50669 function RBb() {
50670 }
50671 function iCb() {
50672 }
50673 function OCb() {
50674 }
50675 function SCb() {
50676 }
50677 function GDb() {
50678 }
50679 function JDb() {
50680 }
50681 function fEb() {
50682 }
50683 function xEb() {
50684 }
50685 function CEb() {
50686 }
50687 function GEb() {
50688 }
50689 function yFb() {
50690 }
50691 function KGb() {
50692 }
50693 function tIb() {
50694 }
50695 function vIb() {
50696 }
50697 function xIb() {
50698 }
50699 function zIb() {
50700 }
50701 function OIb() {
50702 }
50703 function SIb() {
50704 }
50705 function TJb() {
50706 }
50707 function VJb() {
50708 }
50709 function XJb() {
50710 }
50711 function XKb() {
50712 }
50713 function fKb() {
50714 }
50715 function VKb() {
50716 }
50717 function VLb() {
50718 }
50719 function jLb() {
50720 }
50721 function nLb() {
50722 }
50723 function GLb() {
50724 }
50725 function KLb() {
50726 }
50727 function MLb() {
50728 }
50729 function OLb() {
50730 }
50731 function RLb() {
50732 }
50733 function YLb() {
50734 }
50735 function bMb() {
50736 }
50737 function gMb() {
50738 }
50739 function lMb() {
50740 }
50741 function pMb() {
50742 }
50743 function wMb() {
50744 }
50745 function zMb() {
50746 }
50747 function CMb() {
50748 }
50749 function FMb() {
50750 }
50751 function LMb() {
50752 }
50753 function zNb() {
50754 }
50755 function PNb() {
50756 }
50757 function kOb() {
50758 }
50759 function pOb() {
50760 }
50761 function tOb() {
50762 }
50763 function yOb() {
50764 }
50765 function FOb() {
50766 }
50767 function GPb() {
50768 }
50769 function aQb() {
50770 }
50771 function cQb() {
50772 }
50773 function eQb() {
50774 }
50775 function gQb() {
50776 }
50777 function iQb() {
50778 }
50779 function CQb() {
50780 }
50781 function MQb() {
50782 }
50783 function OQb() {
50784 }
50785 function ASb() {
50786 }
50787 function fTb() {
50788 }
50789 function kTb() {
50790 }
50791 function STb() {
50792 }
50793 function fUb() {
50794 }
50795 function DUb() {
50796 }
50797 function VUb() {
50798 }
50799 function YUb() {
50800 }
50801 function _Ub() {
50802 }
50803 function _Wb() {
50804 }
50805 function QWb() {
50806 }
50807 function XWb() {
50808 }
50809 function jVb() {
50810 }
50811 function DVb() {
50812 }
50813 function VVb() {
50814 }
50815 function $Vb() {
50816 }
50817 function dXb() {
50818 }
50819 function hXb() {
50820 }
50821 function lXb() {
50822 }
50823 function gYb() {
50824 }
50825 function HYb() {
50826 }
50827 function SYb() {
50828 }
50829 function VYb() {
50830 }
50831 function dZb() {
50832 }
50833 function P$b() {
50834 }
50835 function T$b() {
50836 }
50837 function h1b() {
50838 }
50839 function m1b() {
50840 }
50841 function q1b() {
50842 }
50843 function u1b() {
50844 }
50845 function y1b() {
50846 }
50847 function C1b() {
50848 }
50849 function e2b() {
50850 }
50851 function g2b() {
50852 }
50853 function m2b() {
50854 }
50855 function q2b() {
50856 }
50857 function u2b() {
50858 }
50859 function S2b() {
50860 }
50861 function U2b() {
50862 }
50863 function W2b() {
50864 }
50865 function _2b() {
50866 }
50867 function e3b() {
50868 }
50869 function h3b() {
50870 }
50871 function p3b() {
50872 }
50873 function t3b() {
50874 }
50875 function w3b() {
50876 }
50877 function y3b() {
50878 }
50879 function A3b() {
50880 }
50881 function M3b() {
50882 }
50883 function Q3b() {
50884 }
50885 function U3b() {
50886 }
50887 function Y3b() {
50888 }
50889 function l4b() {
50890 }
50891 function q4b() {
50892 }
50893 function s4b() {
50894 }
50895 function u4b() {
50896 }
50897 function w4b() {
50898 }
50899 function y4b() {
50900 }
50901 function L4b() {
50902 }
50903 function N4b() {
50904 }
50905 function P4b() {
50906 }
50907 function R4b() {
50908 }
50909 function T4b() {
50910 }
50911 function X4b() {
50912 }
50913 function I5b() {
50914 }
50915 function Q5b() {
50916 }
50917 function T5b() {
50918 }
50919 function Z5b() {
50920 }
50921 function l6b() {
50922 }
50923 function o6b() {
50924 }
50925 function t6b() {
50926 }
50927 function z6b() {
50928 }
50929 function L6b() {
50930 }
50931 function M6b() {
50932 }
50933 function P6b() {
50934 }
50935 function X6b() {
50936 }
50937 function $6b() {
50938 }
50939 function a7b() {
50940 }
50941 function c7b() {
50942 }
50943 function g7b() {
50944 }
50945 function j7b() {
50946 }
50947 function m7b() {
50948 }
50949 function r7b() {
50950 }
50951 function x7b() {
50952 }
50953 function D7b() {
50954 }
50955 function D9b() {
50956 }
50957 function b9b() {
50958 }
50959 function h9b() {
50960 }
50961 function j9b() {
50962 }
50963 function l9b() {
50964 }
50965 function w9b() {
50966 }
50967 function F9b() {
50968 }
50969 function hac() {
50970 }
50971 function jac() {
50972 }
50973 function pac() {
50974 }
50975 function uac() {
50976 }
50977 function Iac() {
50978 }
50979 function Kac() {
50980 }
50981 function Sac() {
50982 }
50983 function obc() {
50984 }
50985 function rbc() {
50986 }
50987 function vbc() {
50988 }
50989 function Fbc() {
50990 }
50991 function Jbc() {
50992 }
50993 function Xbc() {
50994 }
50995 function ccc() {
50996 }
50997 function fcc() {
50998 }
50999 function lcc() {
51000 }
51001 function occ() {
51002 }
51003 function tcc() {
51004 }
51005 function ycc() {
51006 }
51007 function Acc() {
51008 }
51009 function Ccc() {
51010 }
51011 function Ecc() {
51012 }
51013 function Gcc() {
51014 }
51015 function Zcc() {
51016 }
51017 function _cc() {
51018 }
51019 function bdc() {
51020 }
51021 function fdc() {
51022 }
51023 function jdc() {
51024 }
51025 function pdc() {
51026 }
51027 function sdc() {
51028 }
51029 function ydc() {
51030 }
51031 function Adc() {
51032 }
51033 function Cdc() {
51034 }
51035 function Edc() {
51036 }
51037 function Idc() {
51038 }
51039 function Ndc() {
51040 }
51041 function Qdc() {
51042 }
51043 function Sdc() {
51044 }
51045 function Udc() {
51046 }
51047 function Wdc() {
51048 }
51049 function Ydc() {
51050 }
51051 function aec() {
51052 }
51053 function hec() {
51054 }
51055 function jec() {
51056 }
51057 function lec() {
51058 }
51059 function nec() {
51060 }
51061 function uec() {
51062 }
51063 function wec() {
51064 }
51065 function yec() {
51066 }
51067 function Aec() {
51068 }
51069 function Fec() {
51070 }
51071 function Jec() {
51072 }
51073 function Lec() {
51074 }
51075 function Nec() {
51076 }
51077 function Rec() {
51078 }
51079 function Uec() {
51080 }
51081 function Zec() {
51082 }
51083 function Zfc() {
51084 }
51085 function lfc() {
51086 }
51087 function tfc() {
51088 }
51089 function xfc() {
51090 }
51091 function zfc() {
51092 }
51093 function Ffc() {
51094 }
51095 function Jfc() {
51096 }
51097 function Nfc() {
51098 }
51099 function Pfc() {
51100 }
51101 function Vfc() {
51102 }
51103 function _fc() {
51104 }
51105 function fgc() {
51106 }
51107 function jgc() {
51108 }
51109 function lgc() {
51110 }
51111 function Bgc() {
51112 }
51113 function ehc() {
51114 }
51115 function ghc() {
51116 }
51117 function ihc() {
51118 }
51119 function khc() {
51120 }
51121 function mhc() {
51122 }
51123 function ohc() {
51124 }
51125 function qhc() {
51126 }
51127 function yhc() {
51128 }
51129 function Ahc() {
51130 }
51131 function Ghc() {
51132 }
51133 function Ihc() {
51134 }
51135 function Khc() {
51136 }
51137 function Mhc() {
51138 }
51139 function Shc() {
51140 }
51141 function Uhc() {
51142 }
51143 function Whc() {
51144 }
51145 function dic() {
51146 }
51147 function dlc() {
51148 }
51149 function blc() {
51150 }
51151 function flc() {
51152 }
51153 function hlc() {
51154 }
51155 function jlc() {
51156 }
51157 function Glc() {
51158 }
51159 function Ilc() {
51160 }
51161 function Klc() {
51162 }
51163 function Mlc() {
51164 }
51165 function Mjc() {
51166 }
51167 function Qjc() {
51168 }
51169 function Qlc() {
51170 }
51171 function Ulc() {
51172 }
51173 function Ylc() {
51174 }
51175 function Lkc() {
51176 }
51177 function Nkc() {
51178 }
51179 function Pkc() {
51180 }
51181 function Rkc() {
51182 }
51183 function Xkc() {
51184 }
51185 function _kc() {
51186 }
51187 function gmc() {
51188 }
51189 function kmc() {
51190 }
51191 function zmc() {
51192 }
51193 function Fmc() {
51194 }
51195 function Wmc() {
51196 }
51197 function $mc() {
51198 }
51199 function anc() {
51200 }
51201 function mnc() {
51202 }
51203 function wnc() {
51204 }
51205 function Hnc() {
51206 }
51207 function Jnc() {
51208 }
51209 function Lnc() {
51210 }
51211 function Nnc() {
51212 }
51213 function Pnc() {
51214 }
51215 function Ync() {
51216 }
51217 function eoc() {
51218 }
51219 function Aoc() {
51220 }
51221 function Coc() {
51222 }
51223 function Eoc() {
51224 }
51225 function Joc() {
51226 }
51227 function Loc() {
51228 }
51229 function Zoc() {
51230 }
51231 function _oc() {
51232 }
51233 function bpc() {
51234 }
51235 function hpc() {
51236 }
51237 function kpc() {
51238 }
51239 function ppc() {
51240 }
51241 function pFc() {
51242 }
51243 function Ryc() {
51244 }
51245 function QCc() {
51246 }
51247 function PDc() {
51248 }
51249 function xGc() {
51250 }
51251 function HGc() {
51252 }
51253 function JGc() {
51254 }
51255 function NGc() {
51256 }
51257 function GIc() {
51258 }
51259 function iKc() {
51260 }
51261 function mKc() {
51262 }
51263 function wKc() {
51264 }
51265 function yKc() {
51266 }
51267 function AKc() {
51268 }
51269 function EKc() {
51270 }
51271 function KKc() {
51272 }
51273 function OKc() {
51274 }
51275 function QKc() {
51276 }
51277 function SKc() {
51278 }
51279 function UKc() {
51280 }
51281 function YKc() {
51282 }
51283 function aLc() {
51284 }
51285 function fLc() {
51286 }
51287 function hLc() {
51288 }
51289 function nLc() {
51290 }
51291 function pLc() {
51292 }
51293 function tLc() {
51294 }
51295 function vLc() {
51296 }
51297 function zLc() {
51298 }
51299 function BLc() {
51300 }
51301 function DLc() {
51302 }
51303 function FLc() {
51304 }
51305 function sMc() {
51306 }
51307 function JMc() {
51308 }
51309 function hNc() {
51310 }
51311 function RNc() {
51312 }
51313 function ZNc() {
51314 }
51315 function _Nc() {
51316 }
51317 function bOc() {
51318 }
51319 function dOc() {
51320 }
51321 function fOc() {
51322 }
51323 function hOc() {
51324 }
51325 function hRc() {
51326 }
51327 function jRc() {
51328 }
51329 function KRc() {
51330 }
51331 function NRc() {
51332 }
51333 function NQc() {
51334 }
51335 function LQc() {
51336 }
51337 function _Qc() {
51338 }
51339 function cPc() {
51340 }
51341 function iPc() {
51342 }
51343 function kPc() {
51344 }
51345 function mPc() {
51346 }
51347 function xPc() {
51348 }
51349 function zPc() {
51350 }
51351 function zSc() {
51352 }
51353 function BSc() {
51354 }
51355 function GSc() {
51356 }
51357 function ISc() {
51358 }
51359 function NSc() {
51360 }
51361 function TSc() {
51362 }
51363 function NTc() {
51364 }
51365 function NVc() {
51366 }
51367 function oVc() {
51368 }
51369 function SVc() {
51370 }
51371 function VVc() {
51372 }
51373 function XVc() {
51374 }
51375 function ZVc() {
51376 }
51377 function bWc() {
51378 }
51379 function bXc() {
51380 }
51381 function CXc() {
51382 }
51383 function FXc() {
51384 }
51385 function IXc() {
51386 }
51387 function MXc() {
51388 }
51389 function UXc() {
51390 }
51391 function bYc() {
51392 }
51393 function fYc() {
51394 }
51395 function oYc() {
51396 }
51397 function qYc() {
51398 }
51399 function uYc() {
51400 }
51401 function pZc() {
51402 }
51403 function G$c() {
51404 }
51405 function h0c() {
51406 }
51407 function N0c() {
51408 }
51409 function k1c() {
51410 }
51411 function I1c() {
51412 }
51413 function Q1c() {
51414 }
51415 function f2c() {
51416 }
51417 function i2c() {
51418 }
51419 function k2c() {
51420 }
51421 function w2c() {
51422 }
51423 function O2c() {
51424 }
51425 function S2c() {
51426 }
51427 function Z2c() {
51428 }
51429 function v3c() {
51430 }
51431 function x3c() {
51432 }
51433 function R3c() {
51434 }
51435 function U3c() {
51436 }
51437 function e4c() {
51438 }
51439 function w4c() {
51440 }
51441 function x4c() {
51442 }
51443 function z4c() {
51444 }
51445 function B4c() {
51446 }
51447 function D4c() {
51448 }
51449 function F4c() {
51450 }
51451 function H4c() {
51452 }
51453 function J4c() {
51454 }
51455 function L4c() {
51456 }
51457 function N4c() {
51458 }
51459 function P4c() {
51460 }
51461 function R4c() {
51462 }
51463 function T4c() {
51464 }
51465 function V4c() {
51466 }
51467 function X4c() {
51468 }
51469 function Z4c() {
51470 }
51471 function _4c() {
51472 }
51473 function _7c() {
51474 }
51475 function b5c() {
51476 }
51477 function d5c() {
51478 }
51479 function f5c() {
51480 }
51481 function h5c() {
51482 }
51483 function H5c() {
51484 }
51485 function Hfd() {
51486 }
51487 function Zfd() {
51488 }
51489 function Zed() {
51490 }
51491 function ged() {
51492 }
51493 function Jed() {
51494 }
51495 function Ned() {
51496 }
51497 function Red() {
51498 }
51499 function Ved() {
51500 }
51501 function bbd() {
51502 }
51503 function mdd() {
51504 }
51505 function _fd() {
51506 }
51507 function fgd() {
51508 }
51509 function kgd() {
51510 }
51511 function Mgd() {
51512 }
51513 function Ahd() {
51514 }
51515 function Ald() {
51516 }
51517 function Tld() {
51518 }
51519 function xkd() {
51520 }
51521 function rmd() {
51522 }
51523 function knd() {
51524 }
51525 function Jod() {
51526 }
51527 function JCd() {
51528 }
51529 function Bpd() {
51530 }
51531 function BFd() {
51532 }
51533 function oFd() {
51534 }
51535 function bqd() {
51536 }
51537 function bvd() {
51538 }
51539 function jvd() {
51540 }
51541 function yud() {
51542 }
51543 function Hxd() {
51544 }
51545 function EBd() {
51546 }
51547 function aDd() {
51548 }
51549 function MGd() {
51550 }
51551 function vHd() {
51552 }
51553 function RHd() {
51554 }
51555 function wNd() {
51556 }
51557 function zNd() {
51558 }
51559 function CNd() {
51560 }
51561 function KNd() {
51562 }
51563 function XNd() {
51564 }
51565 function $Nd() {
51566 }
51567 function HPd() {
51568 }
51569 function lUd() {
51570 }
51571 function XUd() {
51572 }
51573 function DWd() {
51574 }
51575 function GWd() {
51576 }
51577 function JWd() {
51578 }
51579 function MWd() {
51580 }
51581 function PWd() {
51582 }
51583 function SWd() {
51584 }
51585 function VWd() {
51586 }
51587 function YWd() {
51588 }
51589 function _Wd() {
51590 }
51591 function xYd() {
51592 }
51593 function BYd() {
51594 }
51595 function mZd() {
51596 }
51597 function EZd() {
51598 }
51599 function GZd() {
51600 }
51601 function JZd() {
51602 }
51603 function MZd() {
51604 }
51605 function PZd() {
51606 }
51607 function SZd() {
51608 }
51609 function VZd() {
51610 }
51611 function YZd() {
51612 }
51613 function _Zd() {
51614 }
51615 function c$d() {
51616 }
51617 function f$d() {
51618 }
51619 function i$d() {
51620 }
51621 function l$d() {
51622 }
51623 function o$d() {
51624 }
51625 function r$d() {
51626 }
51627 function u$d() {
51628 }
51629 function x$d() {
51630 }
51631 function A$d() {
51632 }
51633 function D$d() {
51634 }
51635 function G$d() {
51636 }
51637 function J$d() {
51638 }
51639 function M$d() {
51640 }
51641 function P$d() {
51642 }
51643 function S$d() {
51644 }
51645 function V$d() {
51646 }
51647 function Y$d() {
51648 }
51649 function _$d() {
51650 }
51651 function c_d() {
51652 }
51653 function f_d() {
51654 }
51655 function i_d() {
51656 }
51657 function l_d() {
51658 }
51659 function o_d() {
51660 }
51661 function r_d() {
51662 }
51663 function u_d() {
51664 }
51665 function x_d() {
51666 }
51667 function A_d() {
51668 }
51669 function D_d() {
51670 }
51671 function G_d() {
51672 }
51673 function J_d() {
51674 }
51675 function M_d() {
51676 }
51677 function P_d() {
51678 }
51679 function S_d() {
51680 }
51681 function V_d() {
51682 }
51683 function Y_d() {
51684 }
51685 function h5d() {
51686 }
51687 function U6d() {
51688 }
51689 function U9d() {
51690 }
51691 function _8d() {
51692 }
51693 function fae() {
51694 }
51695 function hae() {
51696 }
51697 function kae() {
51698 }
51699 function nae() {
51700 }
51701 function qae() {
51702 }
51703 function tae() {
51704 }
51705 function wae() {
51706 }
51707 function zae() {
51708 }
51709 function Cae() {
51710 }
51711 function Fae() {
51712 }
51713 function Iae() {
51714 }
51715 function Lae() {
51716 }
51717 function Oae() {
51718 }
51719 function Rae() {
51720 }
51721 function Uae() {
51722 }
51723 function Xae() {
51724 }
51725 function $ae() {
51726 }
51727 function bbe() {
51728 }
51729 function ebe() {
51730 }
51731 function hbe() {
51732 }
51733 function kbe() {
51734 }
51735 function nbe() {
51736 }
51737 function qbe() {
51738 }
51739 function tbe() {
51740 }
51741 function wbe() {
51742 }
51743 function zbe() {
51744 }
51745 function Cbe() {
51746 }
51747 function Fbe() {
51748 }
51749 function Ibe() {
51750 }
51751 function Lbe() {
51752 }
51753 function Obe() {
51754 }
51755 function Rbe() {
51756 }
51757 function Ube() {
51758 }
51759 function Xbe() {
51760 }
51761 function $be() {
51762 }
51763 function bce() {
51764 }
51765 function ece() {
51766 }
51767 function hce() {
51768 }
51769 function kce() {
51770 }
51771 function nce() {
51772 }
51773 function qce() {
51774 }
51775 function tce() {
51776 }
51777 function wce() {
51778 }
51779 function zce() {
51780 }
51781 function Cce() {
51782 }
51783 function Fce() {
51784 }
51785 function Ice() {
51786 }
51787 function Lce() {
51788 }
51789 function Oce() {
51790 }
51791 function Rce() {
51792 }
51793 function Uce() {
51794 }
51795 function Xce() {
51796 }
51797 function ude() {
51798 }
51799 function Vge() {
51800 }
51801 function dhe() {
51802 }
51803 function ol() {
51804 wb();
51805 }
51806 function oPb() {
51807 nPb();
51808 }
51809 function EPb() {
51810 CPb();
51811 }
51812 function gFb() {
51813 fFb();
51814 }
51815 function TRb() {
51816 SRb();
51817 }
51818 function ySb() {
51819 wSb();
51820 }
51821 function PSb() {
51822 OSb();
51823 }
51824 function dTb() {
51825 bTb();
51826 }
51827 function i4b() {
51828 b4b();
51829 }
51830 function D2b() {
51831 x2b();
51832 }
51833 function J6b() {
51834 D6b();
51835 }
51836 function u9b() {
51837 q9b();
51838 }
51839 function $9b() {
51840 I9b();
51841 }
51842 function Umc() {
51843 Imc();
51844 }
51845 function abc() {
51846 Vac();
51847 }
51848 function ZCc() {
51849 VCc();
51850 }
51851 function kCc() {
51852 hCc();
51853 }
51854 function rCc() {
51855 oCc();
51856 }
51857 function Tcc() {
51858 Occ();
51859 }
51860 function xkc() {
51861 gkc();
51862 }
51863 function xDc() {
51864 rDc();
51865 }
51866 function iDc() {
51867 cDc();
51868 }
51869 function kwc() {
51870 jwc();
51871 }
51872 function tJc() {
51873 jJc();
51874 }
51875 function dJc() {
51876 aJc();
51877 }
51878 function Pyc() {
51879 Nyc();
51880 }
51881 function VBc() {
51882 SBc();
51883 }
51884 function CFc() {
51885 yFc();
51886 }
51887 function CUc() {
51888 wUc();
51889 }
51890 function lUc() {
51891 fUc();
51892 }
51893 function sUc() {
51894 pUc();
51895 }
51896 function IUc() {
51897 GUc();
51898 }
51899 function IWc() {
51900 HWc();
51901 }
51902 function _Wc() {
51903 ZWc();
51904 }
51905 function fHc() {
51906 dHc();
51907 }
51908 function f0c() {
51909 d0c();
51910 }
51911 function B0c() {
51912 A0c();
51913 }
51914 function L0c() {
51915 J0c();
51916 }
51917 function LTc() {
51918 JTc();
51919 }
51920 function sTc() {
51921 rTc();
51922 }
51923 function KLc() {
51924 ILc();
51925 }
51926 function wNc() {
51927 tNc();
51928 }
51929 function PYc() {
51930 OYc();
51931 }
51932 function nZc() {
51933 lZc();
51934 }
51935 function q3c() {
51936 p3c();
51937 }
51938 function Z7c() {
51939 X7c();
51940 }
51941 function Z9c() {
51942 Y9c();
51943 }
51944 function _ad() {
51945 Zad();
51946 }
51947 function kdd() {
51948 idd();
51949 }
51950 function $md() {
51951 Smd();
51952 }
51953 function HGd() {
51954 tGd();
51955 }
51956 function hLd() {
51957 NKd();
51958 }
51959 function J6d() {
51960 Uge();
51961 }
51962 function Mvb(a) {
51963 uCb(a);
51964 }
51965 function Yb(a) {
51966 this.a = a;
51967 }
51968 function cc(a) {
51969 this.a = a;
51970 }
51971 function cj(a) {
51972 this.a = a;
51973 }
51974 function ij(a) {
51975 this.a = a;
51976 }
51977 function Dj(a) {
51978 this.a = a;
51979 }
51980 function df(a) {
51981 this.a = a;
51982 }
51983 function kf(a) {
51984 this.a = a;
51985 }
51986 function ah(a) {
51987 this.a = a;
51988 }
51989 function lh(a) {
51990 this.a = a;
51991 }
51992 function th(a) {
51993 this.a = a;
51994 }
51995 function Ph(a) {
51996 this.a = a;
51997 }
51998 function vi(a) {
51999 this.a = a;
52000 }
52001 function Ci(a) {
52002 this.a = a;
52003 }
52004 function Fk(a) {
52005 this.a = a;
52006 }
52007 function Ln(a) {
52008 this.a = a;
52009 }
52010 function ap(a) {
52011 this.a = a;
52012 }
52013 function zp(a) {
52014 this.a = a;
52015 }
52016 function Yp(a) {
52017 this.a = a;
52018 }
52019 function qq(a) {
52020 this.a = a;
52021 }
52022 function Dq(a) {
52023 this.a = a;
52024 }
52025 function wr(a) {
52026 this.a = a;
52027 }
52028 function Ir(a) {
52029 this.b = a;
52030 }
52031 function sj(a) {
52032 this.c = a;
52033 }
52034 function sw(a) {
52035 this.a = a;
52036 }
52037 function fw(a) {
52038 this.a = a;
52039 }
52040 function xw(a) {
52041 this.a = a;
52042 }
52043 function Cw(a) {
52044 this.a = a;
52045 }
52046 function Qw(a) {
52047 this.a = a;
52048 }
52049 function Rw(a) {
52050 this.a = a;
52051 }
52052 function Xw(a) {
52053 this.a = a;
52054 }
52055 function Xv(a) {
52056 this.a = a;
52057 }
52058 function Sv(a) {
52059 this.a = a;
52060 }
52061 function eu(a) {
52062 this.a = a;
52063 }
52064 function Zx(a) {
52065 this.a = a;
52066 }
52067 function _x(a) {
52068 this.a = a;
52069 }
52070 function xy(a) {
52071 this.a = a;
52072 }
52073 function xB(a) {
52074 this.a = a;
52075 }
52076 function HB(a) {
52077 this.a = a;
52078 }
52079 function TB(a) {
52080 this.a = a;
52081 }
52082 function fC(a) {
52083 this.a = a;
52084 }
52085 function wB() {
52086 this.a = [];
52087 }
52088 function MBb(a, b) {
52089 a.a = b;
52090 }
52091 function w_b(a, b) {
52092 a.a = b;
52093 }
52094 function x_b(a, b) {
52095 a.b = b;
52096 }
52097 function YOb(a, b) {
52098 a.b = b;
52099 }
52100 function $Ob(a, b) {
52101 a.b = b;
52102 }
52103 function ZGb(a, b) {
52104 a.j = b;
52105 }
52106 function qNb(a, b) {
52107 a.g = b;
52108 }
52109 function rNb(a, b) {
52110 a.i = b;
52111 }
52112 function dRb(a, b) {
52113 a.c = b;
52114 }
52115 function eRb(a, b) {
52116 a.d = b;
52117 }
52118 function z_b(a, b) {
52119 a.d = b;
52120 }
52121 function y_b(a, b) {
52122 a.c = b;
52123 }
52124 function __b(a, b) {
52125 a.k = b;
52126 }
52127 function E0b(a, b) {
52128 a.c = b;
52129 }
52130 function njc(a, b) {
52131 a.c = b;
52132 }
52133 function mjc(a, b) {
52134 a.a = b;
52135 }
52136 function dFc(a, b) {
52137 a.a = b;
52138 }
52139 function eFc(a, b) {
52140 a.f = b;
52141 }
52142 function nOc(a, b) {
52143 a.a = b;
52144 }
52145 function oOc(a, b) {
52146 a.b = b;
52147 }
52148 function pOc(a, b) {
52149 a.d = b;
52150 }
52151 function qOc(a, b) {
52152 a.i = b;
52153 }
52154 function rOc(a, b) {
52155 a.o = b;
52156 }
52157 function sOc(a, b) {
52158 a.r = b;
52159 }
52160 function $Pc(a, b) {
52161 a.a = b;
52162 }
52163 function _Pc(a, b) {
52164 a.b = b;
52165 }
52166 function DVc(a, b) {
52167 a.e = b;
52168 }
52169 function EVc(a, b) {
52170 a.f = b;
52171 }
52172 function FVc(a, b) {
52173 a.g = b;
52174 }
52175 function SZc(a, b) {
52176 a.e = b;
52177 }
52178 function TZc(a, b) {
52179 a.f = b;
52180 }
52181 function c$c(a, b) {
52182 a.f = b;
52183 }
52184 function bJd(a, b) {
52185 a.n = b;
52186 }
52187 function A1d(a, b) {
52188 a.a = b;
52189 }
52190 function J1d(a, b) {
52191 a.a = b;
52192 }
52193 function B1d(a, b) {
52194 a.c = b;
52195 }
52196 function K1d(a, b) {
52197 a.c = b;
52198 }
52199 function L1d(a, b) {
52200 a.d = b;
52201 }
52202 function M1d(a, b) {
52203 a.e = b;
52204 }
52205 function N1d(a, b) {
52206 a.g = b;
52207 }
52208 function d2d(a, b) {
52209 a.a = b;
52210 }
52211 function e2d(a, b) {
52212 a.c = b;
52213 }
52214 function f2d(a, b) {
52215 a.d = b;
52216 }
52217 function g2d(a, b) {
52218 a.e = b;
52219 }
52220 function h2d(a, b) {
52221 a.f = b;
52222 }
52223 function i2d(a, b) {
52224 a.j = b;
52225 }
52226 function Z8d(a, b) {
52227 a.a = b;
52228 }
52229 function $8d(a, b) {
52230 a.b = b;
52231 }
52232 function g9d(a, b) {
52233 a.a = b;
52234 }
52235 function Cic(a) {
52236 a.b = a.a;
52237 }
52238 function Dg(a) {
52239 a.c = a.d.d;
52240 }
52241 function vib(a) {
52242 this.d = a;
52243 }
52244 function eib(a) {
52245 this.a = a;
52246 }
52247 function Pib(a) {
52248 this.a = a;
52249 }
52250 function Vib(a) {
52251 this.a = a;
52252 }
52253 function $ib(a) {
52254 this.a = a;
52255 }
52256 function mcb(a) {
52257 this.a = a;
52258 }
52259 function Mcb(a) {
52260 this.a = a;
52261 }
52262 function Xcb(a) {
52263 this.a = a;
52264 }
52265 function Ndb(a) {
52266 this.a = a;
52267 }
52268 function _db(a) {
52269 this.a = a;
52270 }
52271 function teb(a) {
52272 this.a = a;
52273 }
52274 function Qeb(a) {
52275 this.a = a;
52276 }
52277 function djb(a) {
52278 this.a = a;
52279 }
52280 function Gjb(a) {
52281 this.a = a;
52282 }
52283 function Njb(a) {
52284 this.a = a;
52285 }
52286 function Bjb(a) {
52287 this.b = a;
52288 }
52289 function lnb(a) {
52290 this.b = a;
52291 }
52292 function Dnb(a) {
52293 this.b = a;
52294 }
52295 function anb(a) {
52296 this.a = a;
52297 }
52298 function Mob(a) {
52299 this.a = a;
52300 }
52301 function Rob(a) {
52302 this.a = a;
52303 }
52304 function iob(a) {
52305 this.c = a;
52306 }
52307 function olb(a) {
52308 this.c = a;
52309 }
52310 function qub(a) {
52311 this.c = a;
52312 }
52313 function Tub(a) {
52314 this.a = a;
52315 }
52316 function Vub(a) {
52317 this.a = a;
52318 }
52319 function Xub(a) {
52320 this.a = a;
52321 }
52322 function Zub(a) {
52323 this.a = a;
52324 }
52325 function tpb(a) {
52326 this.a = a;
52327 }
52328 function _pb(a) {
52329 this.a = a;
52330 }
52331 function Wqb(a) {
52332 this.a = a;
52333 }
52334 function nsb(a) {
52335 this.a = a;
52336 }
52337 function Rxb(a) {
52338 this.a = a;
52339 }
52340 function Txb(a) {
52341 this.a = a;
52342 }
52343 function Xxb(a) {
52344 this.a = a;
52345 }
52346 function bzb(a) {
52347 this.a = a;
52348 }
52349 function tzb(a) {
52350 this.a = a;
52351 }
52352 function vzb(a) {
52353 this.a = a;
52354 }
52355 function xzb(a) {
52356 this.a = a;
52357 }
52358 function Kzb(a) {
52359 this.a = a;
52360 }
52361 function Ozb(a) {
52362 this.a = a;
52363 }
52364 function iAb(a) {
52365 this.a = a;
52366 }
52367 function kAb(a) {
52368 this.a = a;
52369 }
52370 function mAb(a) {
52371 this.a = a;
52372 }
52373 function BAb(a) {
52374 this.a = a;
52375 }
52376 function hBb(a) {
52377 this.a = a;
52378 }
52379 function jBb(a) {
52380 this.a = a;
52381 }
52382 function nBb(a) {
52383 this.a = a;
52384 }
52385 function TBb(a) {
52386 this.a = a;
52387 }
52388 function XBb(a) {
52389 this.a = a;
52390 }
52391 function QCb(a) {
52392 this.a = a;
52393 }
52394 function WCb(a) {
52395 this.a = a;
52396 }
52397 function _Cb(a) {
52398 this.a = a;
52399 }
52400 function dEb(a) {
52401 this.a = a;
52402 }
52403 function QGb(a) {
52404 this.a = a;
52405 }
52406 function YGb(a) {
52407 this.a = a;
52408 }
52409 function tKb(a) {
52410 this.a = a;
52411 }
52412 function CLb(a) {
52413 this.a = a;
52414 }
52415 function JMb(a) {
52416 this.a = a;
52417 }
52418 function RNb(a) {
52419 this.a = a;
52420 }
52421 function kQb(a) {
52422 this.a = a;
52423 }
52424 function mQb(a) {
52425 this.a = a;
52426 }
52427 function FQb(a) {
52428 this.a = a;
52429 }
52430 function ETb(a) {
52431 this.a = a;
52432 }
52433 function UTb(a) {
52434 this.a = a;
52435 }
52436 function dUb(a) {
52437 this.a = a;
52438 }
52439 function hUb(a) {
52440 this.a = a;
52441 }
52442 function EZb(a) {
52443 this.a = a;
52444 }
52445 function j$b(a) {
52446 this.a = a;
52447 }
52448 function v$b(a) {
52449 this.e = a;
52450 }
52451 function J0b(a) {
52452 this.a = a;
52453 }
52454 function M0b(a) {
52455 this.a = a;
52456 }
52457 function R0b(a) {
52458 this.a = a;
52459 }
52460 function U0b(a) {
52461 this.a = a;
52462 }
52463 function i2b(a) {
52464 this.a = a;
52465 }
52466 function k2b(a) {
52467 this.a = a;
52468 }
52469 function o2b(a) {
52470 this.a = a;
52471 }
52472 function s2b(a) {
52473 this.a = a;
52474 }
52475 function G2b(a) {
52476 this.a = a;
52477 }
52478 function I2b(a) {
52479 this.a = a;
52480 }
52481 function K2b(a) {
52482 this.a = a;
52483 }
52484 function M2b(a) {
52485 this.a = a;
52486 }
52487 function W3b(a) {
52488 this.a = a;
52489 }
52490 function $3b(a) {
52491 this.a = a;
52492 }
52493 function V4b(a) {
52494 this.a = a;
52495 }
52496 function u5b(a) {
52497 this.a = a;
52498 }
52499 function A7b(a) {
52500 this.a = a;
52501 }
52502 function G7b(a) {
52503 this.a = a;
52504 }
52505 function J7b(a) {
52506 this.a = a;
52507 }
52508 function M7b(a) {
52509 this.a = a;
52510 }
52511 function Mbc(a) {
52512 this.a = a;
52513 }
52514 function Pbc(a) {
52515 this.a = a;
52516 }
52517 function lac(a) {
52518 this.a = a;
52519 }
52520 function nac(a) {
52521 this.a = a;
52522 }
52523 function qcc(a) {
52524 this.a = a;
52525 }
52526 function Gdc(a) {
52527 this.a = a;
52528 }
52529 function $dc(a) {
52530 this.a = a;
52531 }
52532 function cec(a) {
52533 this.a = a;
52534 }
52535 function _ec(a) {
52536 this.a = a;
52537 }
52538 function pfc(a) {
52539 this.a = a;
52540 }
52541 function Bfc(a) {
52542 this.a = a;
52543 }
52544 function Lfc(a) {
52545 this.a = a;
52546 }
52547 function ygc(a) {
52548 this.a = a;
52549 }
52550 function Dgc(a) {
52551 this.a = a;
52552 }
52553 function shc(a) {
52554 this.a = a;
52555 }
52556 function uhc(a) {
52557 this.a = a;
52558 }
52559 function whc(a) {
52560 this.a = a;
52561 }
52562 function Chc(a) {
52563 this.a = a;
52564 }
52565 function Ehc(a) {
52566 this.a = a;
52567 }
52568 function Ohc(a) {
52569 this.a = a;
52570 }
52571 function Yhc(a) {
52572 this.a = a;
52573 }
52574 function Tkc(a) {
52575 this.a = a;
52576 }
52577 function Vkc(a) {
52578 this.a = a;
52579 }
52580 function Olc(a) {
52581 this.a = a;
52582 }
52583 function pnc(a) {
52584 this.a = a;
52585 }
52586 function rnc(a) {
52587 this.a = a;
52588 }
52589 function dpc(a) {
52590 this.a = a;
52591 }
52592 function fpc(a) {
52593 this.a = a;
52594 }
52595 function GCc(a) {
52596 this.a = a;
52597 }
52598 function KCc(a) {
52599 this.a = a;
52600 }
52601 function mDc(a) {
52602 this.a = a;
52603 }
52604 function jEc(a) {
52605 this.a = a;
52606 }
52607 function HEc(a) {
52608 this.a = a;
52609 }
52610 function FEc(a) {
52611 this.c = a;
52612 }
52613 function qoc(a) {
52614 this.b = a;
52615 }
52616 function bFc(a) {
52617 this.a = a;
52618 }
52619 function GFc(a) {
52620 this.a = a;
52621 }
52622 function iGc(a) {
52623 this.a = a;
52624 }
52625 function kGc(a) {
52626 this.a = a;
52627 }
52628 function mGc(a) {
52629 this.a = a;
52630 }
52631 function $Gc(a) {
52632 this.a = a;
52633 }
52634 function hIc(a) {
52635 this.a = a;
52636 }
52637 function lIc(a) {
52638 this.a = a;
52639 }
52640 function pIc(a) {
52641 this.a = a;
52642 }
52643 function tIc(a) {
52644 this.a = a;
52645 }
52646 function xIc(a) {
52647 this.a = a;
52648 }
52649 function zIc(a) {
52650 this.a = a;
52651 }
52652 function CIc(a) {
52653 this.a = a;
52654 }
52655 function LIc(a) {
52656 this.a = a;
52657 }
52658 function CKc(a) {
52659 this.a = a;
52660 }
52661 function IKc(a) {
52662 this.a = a;
52663 }
52664 function MKc(a) {
52665 this.a = a;
52666 }
52667 function $Kc(a) {
52668 this.a = a;
52669 }
52670 function cLc(a) {
52671 this.a = a;
52672 }
52673 function jLc(a) {
52674 this.a = a;
52675 }
52676 function rLc(a) {
52677 this.a = a;
52678 }
52679 function xLc(a) {
52680 this.a = a;
52681 }
52682 function OMc(a) {
52683 this.a = a;
52684 }
52685 function ZOc(a) {
52686 this.a = a;
52687 }
52688 function ZRc(a) {
52689 this.a = a;
52690 }
52691 function aSc(a) {
52692 this.a = a;
52693 }
52694 function I$c(a) {
52695 this.a = a;
52696 }
52697 function K$c(a) {
52698 this.a = a;
52699 }
52700 function M$c(a) {
52701 this.a = a;
52702 }
52703 function O$c(a) {
52704 this.a = a;
52705 }
52706 function U$c(a) {
52707 this.a = a;
52708 }
52709 function n1c(a) {
52710 this.a = a;
52711 }
52712 function z1c(a) {
52713 this.a = a;
52714 }
52715 function B1c(a) {
52716 this.a = a;
52717 }
52718 function Q2c(a) {
52719 this.a = a;
52720 }
52721 function U2c(a) {
52722 this.a = a;
52723 }
52724 function z3c(a) {
52725 this.a = a;
52726 }
52727 function med(a) {
52728 this.a = a;
52729 }
52730 function Xed(a) {
52731 this.a = a;
52732 }
52733 function _ed(a) {
52734 this.a = a;
52735 }
52736 function Qfd(a) {
52737 this.a = a;
52738 }
52739 function Bgd(a) {
52740 this.a = a;
52741 }
52742 function $gd(a) {
52743 this.a = a;
52744 }
52745 function lrd(a) {
52746 this.a = a;
52747 }
52748 function urd(a) {
52749 this.a = a;
52750 }
52751 function vrd(a) {
52752 this.a = a;
52753 }
52754 function wrd(a) {
52755 this.a = a;
52756 }
52757 function xrd(a) {
52758 this.a = a;
52759 }
52760 function yrd(a) {
52761 this.a = a;
52762 }
52763 function zrd(a) {
52764 this.a = a;
52765 }
52766 function Ard(a) {
52767 this.a = a;
52768 }
52769 function Brd(a) {
52770 this.a = a;
52771 }
52772 function Crd(a) {
52773 this.a = a;
52774 }
52775 function Ird(a) {
52776 this.a = a;
52777 }
52778 function Krd(a) {
52779 this.a = a;
52780 }
52781 function Lrd(a) {
52782 this.a = a;
52783 }
52784 function Mrd(a) {
52785 this.a = a;
52786 }
52787 function Nrd(a) {
52788 this.a = a;
52789 }
52790 function Prd(a) {
52791 this.a = a;
52792 }
52793 function Srd(a) {
52794 this.a = a;
52795 }
52796 function Yrd(a) {
52797 this.a = a;
52798 }
52799 function Zrd(a) {
52800 this.a = a;
52801 }
52802 function _rd(a) {
52803 this.a = a;
52804 }
52805 function asd(a) {
52806 this.a = a;
52807 }
52808 function bsd(a) {
52809 this.a = a;
52810 }
52811 function csd(a) {
52812 this.a = a;
52813 }
52814 function dsd(a) {
52815 this.a = a;
52816 }
52817 function msd(a) {
52818 this.a = a;
52819 }
52820 function osd(a) {
52821 this.a = a;
52822 }
52823 function qsd(a) {
52824 this.a = a;
52825 }
52826 function ssd(a) {
52827 this.a = a;
52828 }
52829 function Wsd(a) {
52830 this.a = a;
52831 }
52832 function Lsd(a) {
52833 this.b = a;
52834 }
52835 function thd(a) {
52836 this.f = a;
52837 }
52838 function qtd(a) {
52839 this.a = a;
52840 }
52841 function yBd(a) {
52842 this.a = a;
52843 }
52844 function GBd(a) {
52845 this.a = a;
52846 }
52847 function MBd(a) {
52848 this.a = a;
52849 }
52850 function SBd(a) {
52851 this.a = a;
52852 }
52853 function iCd(a) {
52854 this.a = a;
52855 }
52856 function YMd(a) {
52857 this.a = a;
52858 }
52859 function GNd(a) {
52860 this.a = a;
52861 }
52862 function EPd(a) {
52863 this.a = a;
52864 }
52865 function EQd(a) {
52866 this.a = a;
52867 }
52868 function NTd(a) {
52869 this.a = a;
52870 }
52871 function qOd(a) {
52872 this.b = a;
52873 }
52874 function lVd(a) {
52875 this.c = a;
52876 }
52877 function VVd(a) {
52878 this.e = a;
52879 }
52880 function iYd(a) {
52881 this.a = a;
52882 }
52883 function RYd(a) {
52884 this.a = a;
52885 }
52886 function ZYd(a) {
52887 this.a = a;
52888 }
52889 function z0d(a) {
52890 this.a = a;
52891 }
52892 function O0d(a) {
52893 this.a = a;
52894 }
52895 function s0d(a) {
52896 this.d = a;
52897 }
52898 function W5d(a) {
52899 this.a = a;
52900 }
52901 function cge(a) {
52902 this.a = a;
52903 }
52904 function xfe(a) {
52905 this.e = a;
52906 }
52907 function Tfd() {
52908 this.a = 0;
52909 }
52910 function jkb() {
52911 Vjb(this);
52912 }
52913 function Rkb() {
52914 Ckb(this);
52915 }
52916 function Lqb() {
52917 Uhb(this);
52918 }
52919 function lEb() {
52920 kEb(this);
52921 }
52922 function A_b() {
52923 }
52924 function UQd() {
52925 this.c = FQd;
52926 }
52927 function v6d(a, b) {
52928 b.Wb(a);
52929 }
52930 function moc(a, b) {
52931 a.b += b;
52932 }
52933 function yXb(a) {
52934 a.b = new Ji();
52935 }
52936 function vbb(a) {
52937 return a.e;
52938 }
52939 function DB(a) {
52940 return a.a;
52941 }
52942 function LB(a) {
52943 return a.a;
52944 }
52945 function ZB(a) {
52946 return a.a;
52947 }
52948 function lC(a) {
52949 return a.a;
52950 }
52951 function EC(a) {
52952 return a.a;
52953 }
52954 function wC() {
52955 return null;
52956 }
52957 function SB() {
52958 return null;
52959 }
52960 function hcb() {
52961 mvd();
52962 ovd();
52963 }
52964 function zJb(a) {
52965 a.b.tf(a.e);
52966 }
52967 function j5b(a, b) {
52968 a.b = b - a.b;
52969 }
52970 function g5b(a, b) {
52971 a.a = b - a.a;
52972 }
52973 function PXc(a, b) {
52974 b.ad(a.a);
52975 }
52976 function plc(a, b) {
52977 G0b(b, a);
52978 }
52979 function hp(a, b, c2) {
52980 a.Od(c2, b);
52981 }
52982 function As(a, b) {
52983 a.e = b;
52984 b.b = a;
52985 }
52986 function Zl(a) {
52987 Ql();
52988 this.a = a;
52989 }
52990 function jq(a) {
52991 Ql();
52992 this.a = a;
52993 }
52994 function sq(a) {
52995 Ql();
52996 this.a = a;
52997 }
52998 function Fq(a) {
52999 im();
53000 this.a = a;
53001 }
53002 function Sz(a) {
53003 Rz();
53004 Qz.be(a);
53005 }
53006 function gz() {
53007 Xy.call(this);
53008 }
53009 function xcb() {
53010 Xy.call(this);
53011 }
53012 function pcb() {
53013 gz.call(this);
53014 }
53015 function tcb() {
53016 gz.call(this);
53017 }
53018 function Bdb() {
53019 gz.call(this);
53020 }
53021 function Vdb() {
53022 gz.call(this);
53023 }
53024 function Ydb() {
53025 gz.call(this);
53026 }
53027 function Geb() {
53028 gz.call(this);
53029 }
53030 function bgb() {
53031 gz.call(this);
53032 }
53033 function Apb() {
53034 gz.call(this);
53035 }
53036 function Jpb() {
53037 gz.call(this);
53038 }
53039 function utb() {
53040 gz.call(this);
53041 }
53042 function x2c() {
53043 gz.call(this);
53044 }
53045 function rQd() {
53046 this.a = this;
53047 }
53048 function MPd() {
53049 this.Bb |= 256;
53050 }
53051 function tTb() {
53052 this.b = new mt();
53053 }
53054 function fA() {
53055 fA = ccb;
53056 new Lqb();
53057 }
53058 function rcb() {
53059 pcb.call(this);
53060 }
53061 function dCb(a, b) {
53062 a.length = b;
53063 }
53064 function Tvb(a, b) {
53065 Ekb(a.a, b);
53066 }
53067 function sKb(a, b) {
53068 UHb(a.c, b);
53069 }
53070 function SMc(a, b) {
53071 Qqb(a.b, b);
53072 }
53073 function vBd(a, b) {
53074 uAd(a.a, b);
53075 }
53076 function wBd(a, b) {
53077 vAd(a.a, b);
53078 }
53079 function GLd(a, b) {
53080 Uhd(a.e, b);
53081 }
53082 function d7d(a) {
53083 D2d(a.c, a.b);
53084 }
53085 function mj(a, b) {
53086 a.kc().Nb(b);
53087 }
53088 function Odb(a) {
53089 this.a = Tdb(a);
53090 }
53091 function Tqb() {
53092 this.a = new Lqb();
53093 }
53094 function gyb() {
53095 this.a = new Lqb();
53096 }
53097 function Wvb() {
53098 this.a = new Rkb();
53099 }
53100 function KFb() {
53101 this.a = new Rkb();
53102 }
53103 function PFb() {
53104 this.a = new Rkb();
53105 }
53106 function FFb() {
53107 this.a = new yFb();
53108 }
53109 function pGb() {
53110 this.a = new MFb();
53111 }
53112 function ZQb() {
53113 this.a = new MQb();
53114 }
53115 function Gxb() {
53116 this.a = new Pwb();
53117 }
53118 function jUb() {
53119 this.a = new PTb();
53120 }
53121 function sDb() {
53122 this.a = new oDb();
53123 }
53124 function zDb() {
53125 this.a = new tDb();
53126 }
53127 function CWb() {
53128 this.a = new Rkb();
53129 }
53130 function HXb() {
53131 this.a = new Rkb();
53132 }
53133 function nYb() {
53134 this.a = new Rkb();
53135 }
53136 function BYb() {
53137 this.a = new Rkb();
53138 }
53139 function fLb() {
53140 this.d = new Rkb();
53141 }
53142 function vYb() {
53143 this.a = new Tqb();
53144 }
53145 function a2b() {
53146 this.a = new Lqb();
53147 }
53148 function wZb() {
53149 this.b = new Lqb();
53150 }
53151 function TCc() {
53152 this.b = new Rkb();
53153 }
53154 function zJc() {
53155 this.e = new Rkb();
53156 }
53157 function uMc() {
53158 this.d = new Rkb();
53159 }
53160 function wdc() {
53161 this.a = new xkc();
53162 }
53163 function vKc() {
53164 Rkb.call(this);
53165 }
53166 function twb() {
53167 Wvb.call(this);
53168 }
53169 function oHb() {
53170 $Gb.call(this);
53171 }
53172 function LXb() {
53173 HXb.call(this);
53174 }
53175 function L_b() {
53176 H_b.call(this);
53177 }
53178 function H_b() {
53179 A_b.call(this);
53180 }
53181 function p0b() {
53182 A_b.call(this);
53183 }
53184 function s0b() {
53185 p0b.call(this);
53186 }
53187 function WMc() {
53188 VMc.call(this);
53189 }
53190 function bNc() {
53191 VMc.call(this);
53192 }
53193 function EPc() {
53194 CPc.call(this);
53195 }
53196 function JPc() {
53197 CPc.call(this);
53198 }
53199 function OPc() {
53200 CPc.call(this);
53201 }
53202 function w1c() {
53203 s1c.call(this);
53204 }
53205 function s7c() {
53206 Psb.call(this);
53207 }
53208 function apd() {
53209 Ald.call(this);
53210 }
53211 function ppd() {
53212 Ald.call(this);
53213 }
53214 function lDd() {
53215 YCd.call(this);
53216 }
53217 function NDd() {
53218 YCd.call(this);
53219 }
53220 function mFd() {
53221 Lqb.call(this);
53222 }
53223 function vFd() {
53224 Lqb.call(this);
53225 }
53226 function GFd() {
53227 Lqb.call(this);
53228 }
53229 function KPd() {
53230 Tqb.call(this);
53231 }
53232 function OJd() {
53233 hJd.call(this);
53234 }
53235 function aQd() {
53236 MPd.call(this);
53237 }
53238 function SSd() {
53239 FId.call(this);
53240 }
53241 function rUd() {
53242 FId.call(this);
53243 }
53244 function oUd() {
53245 Lqb.call(this);
53246 }
53247 function NYd() {
53248 Lqb.call(this);
53249 }
53250 function cZd() {
53251 Lqb.call(this);
53252 }
53253 function R8d() {
53254 MGd.call(this);
53255 }
53256 function o9d() {
53257 MGd.call(this);
53258 }
53259 function i9d() {
53260 R8d.call(this);
53261 }
53262 function hee() {
53263 ude.call(this);
53264 }
53265 function Dd(a) {
53266 yd.call(this, a);
53267 }
53268 function Hd(a) {
53269 yd.call(this, a);
53270 }
53271 function ph(a) {
53272 lh.call(this, a);
53273 }
53274 function Sh(a) {
53275 Wc.call(this, a);
53276 }
53277 function oi(a) {
53278 Sh.call(this, a);
53279 }
53280 function Ii(a) {
53281 Wc.call(this, a);
53282 }
53283 function Zdd() {
53284 this.a = new Psb();
53285 }
53286 function CPc() {
53287 this.a = new Tqb();
53288 }
53289 function s1c() {
53290 this.a = new Lqb();
53291 }
53292 function QSc() {
53293 this.a = new Rkb();
53294 }
53295 function D2c() {
53296 this.j = new Rkb();
53297 }
53298 function QXc() {
53299 this.a = new UXc();
53300 }
53301 function e_c() {
53302 this.a = new d_c();
53303 }
53304 function YCd() {
53305 this.a = new aDd();
53306 }
53307 function _k() {
53308 _k = ccb;
53309 $k = new al();
53310 }
53311 function Lk() {
53312 Lk = ccb;
53313 Kk = new Mk();
53314 }
53315 function wb() {
53316 wb = ccb;
53317 vb = new xb();
53318 }
53319 function hs() {
53320 hs = ccb;
53321 gs = new is();
53322 }
53323 function rs(a) {
53324 Sh.call(this, a);
53325 }
53326 function Gp(a) {
53327 Sh.call(this, a);
53328 }
53329 function xp(a) {
53330 Lo.call(this, a);
53331 }
53332 function Ep(a) {
53333 Lo.call(this, a);
53334 }
53335 function Tp(a) {
53336 Wn.call(this, a);
53337 }
53338 function wx(a) {
53339 un.call(this, a);
53340 }
53341 function ov(a) {
53342 dv.call(this, a);
53343 }
53344 function Mv(a) {
53345 Br.call(this, a);
53346 }
53347 function Ov(a) {
53348 Br.call(this, a);
53349 }
53350 function Lw(a) {
53351 Br.call(this, a);
53352 }
53353 function hz(a) {
53354 Yy.call(this, a);
53355 }
53356 function MB(a) {
53357 hz.call(this, a);
53358 }
53359 function eC() {
53360 fC.call(this, {});
53361 }
53362 function Ftb(a) {
53363 Atb();
53364 this.a = a;
53365 }
53366 function zwb(a) {
53367 a.b = null;
53368 a.c = 0;
53369 }
53370 function Vy(a, b) {
53371 a.e = b;
53372 Sy(a, b);
53373 }
53374 function LVb(a, b) {
53375 a.a = b;
53376 NVb(a);
53377 }
53378 function lIb(a, b, c2) {
53379 a.a[b.g] = c2;
53380 }
53381 function vfd(a, b, c2) {
53382 Dfd(c2, a, b);
53383 }
53384 function Odc(a, b) {
53385 rjc(b.i, a.n);
53386 }
53387 function Wyc(a, b) {
53388 Xyc(a).td(b);
53389 }
53390 function ERb(a, b) {
53391 return a * a / b;
53392 }
53393 function Xr(a, b) {
53394 return a.g - b.g;
53395 }
53396 function tC(a) {
53397 return new TB(a);
53398 }
53399 function vC(a) {
53400 return new yC(a);
53401 }
53402 function ocb(a) {
53403 hz.call(this, a);
53404 }
53405 function qcb(a) {
53406 hz.call(this, a);
53407 }
53408 function ucb(a) {
53409 hz.call(this, a);
53410 }
53411 function vcb(a) {
53412 Yy.call(this, a);
53413 }
53414 function fGc(a) {
53415 LFc();
53416 this.a = a;
53417 }
53418 function c0d(a) {
53419 kzd();
53420 this.a = a;
53421 }
53422 function bhd(a) {
53423 Rgd();
53424 this.f = a;
53425 }
53426 function dhd(a) {
53427 Rgd();
53428 this.f = a;
53429 }
53430 function Cdb(a) {
53431 hz.call(this, a);
53432 }
53433 function Wdb(a) {
53434 hz.call(this, a);
53435 }
53436 function Zdb(a) {
53437 hz.call(this, a);
53438 }
53439 function Feb(a) {
53440 hz.call(this, a);
53441 }
53442 function Heb(a) {
53443 hz.call(this, a);
53444 }
53445 function Ccb(a) {
53446 return uCb(a), a;
53447 }
53448 function Edb(a) {
53449 return uCb(a), a;
53450 }
53451 function Gdb(a) {
53452 return uCb(a), a;
53453 }
53454 function jfb(a) {
53455 return uCb(a), a;
53456 }
53457 function tfb(a) {
53458 return uCb(a), a;
53459 }
53460 function akb(a) {
53461 return a.b == a.c;
53462 }
53463 function Hwb(a) {
53464 return !!a && a.b;
53465 }
53466 function pIb(a) {
53467 return !!a && a.k;
53468 }
53469 function qIb(a) {
53470 return !!a && a.j;
53471 }
53472 function amb(a) {
53473 uCb(a);
53474 this.a = a;
53475 }
53476 function wVb(a) {
53477 qVb(a);
53478 return a;
53479 }
53480 function Blb(a) {
53481 Glb(a, a.length);
53482 }
53483 function cgb(a) {
53484 hz.call(this, a);
53485 }
53486 function cqd(a) {
53487 hz.call(this, a);
53488 }
53489 function n8d(a) {
53490 hz.call(this, a);
53491 }
53492 function y2c(a) {
53493 hz.call(this, a);
53494 }
53495 function z2c(a) {
53496 hz.call(this, a);
53497 }
53498 function mde(a) {
53499 hz.call(this, a);
53500 }
53501 function pc(a) {
53502 qc.call(this, a, 0);
53503 }
53504 function Ji() {
53505 Ki.call(this, 12, 3);
53506 }
53507 function Kz() {
53508 Kz = ccb;
53509 Jz = new Nz();
53510 }
53511 function jz() {
53512 jz = ccb;
53513 iz = new nb();
53514 }
53515 function KA() {
53516 KA = ccb;
53517 JA = new MA();
53518 }
53519 function OB() {
53520 OB = ccb;
53521 NB = new PB();
53522 }
53523 function jc() {
53524 throw vbb(new bgb());
53525 }
53526 function zh() {
53527 throw vbb(new bgb());
53528 }
53529 function Pi() {
53530 throw vbb(new bgb());
53531 }
53532 function Pj() {
53533 throw vbb(new bgb());
53534 }
53535 function Qj() {
53536 throw vbb(new bgb());
53537 }
53538 function Ym() {
53539 throw vbb(new bgb());
53540 }
53541 function Gb() {
53542 this.a = GD(Qb(She));
53543 }
53544 function oy(a) {
53545 Ql();
53546 this.a = Qb(a);
53547 }
53548 function Bs(a, b) {
53549 a.Td(b);
53550 b.Sd(a);
53551 }
53552 function iw(a, b) {
53553 a.a.ec().Mc(b);
53554 }
53555 function CYb(a, b, c2) {
53556 a.c.lf(b, c2);
53557 }
53558 function scb(a) {
53559 qcb.call(this, a);
53560 }
53561 function Oeb(a) {
53562 Wdb.call(this, a);
53563 }
53564 function Hfb() {
53565 mcb.call(this, "");
53566 }
53567 function Ifb() {
53568 mcb.call(this, "");
53569 }
53570 function Ufb() {
53571 mcb.call(this, "");
53572 }
53573 function Vfb() {
53574 mcb.call(this, "");
53575 }
53576 function Xfb(a) {
53577 qcb.call(this, a);
53578 }
53579 function zob(a) {
53580 lnb.call(this, a);
53581 }
53582 function Yob(a) {
53583 Inb.call(this, a);
53584 }
53585 function Gob(a) {
53586 zob.call(this, a);
53587 }
53588 function Mk() {
53589 Fk.call(this, null);
53590 }
53591 function al() {
53592 Fk.call(this, null);
53593 }
53594 function Az() {
53595 Az = ccb;
53596 !!(Rz(), Qz);
53597 }
53598 function wrb() {
53599 wrb = ccb;
53600 vrb = yrb();
53601 }
53602 function Mtb(a) {
53603 return a.a ? a.b : 0;
53604 }
53605 function Vtb(a) {
53606 return a.a ? a.b : 0;
53607 }
53608 function Lcb(a, b) {
53609 return a.a - b.a;
53610 }
53611 function Wcb(a, b) {
53612 return a.a - b.a;
53613 }
53614 function Peb(a, b) {
53615 return a.a - b.a;
53616 }
53617 function eCb(a, b) {
53618 return PC(a, b);
53619 }
53620 function GC(a, b) {
53621 return rdb(a, b);
53622 }
53623 function _B(b, a) {
53624 return a in b.a;
53625 }
53626 function _Db(a, b) {
53627 a.f = b;
53628 return a;
53629 }
53630 function ZDb(a, b) {
53631 a.b = b;
53632 return a;
53633 }
53634 function $Db(a, b) {
53635 a.c = b;
53636 return a;
53637 }
53638 function aEb(a, b) {
53639 a.g = b;
53640 return a;
53641 }
53642 function HGb(a, b) {
53643 a.a = b;
53644 return a;
53645 }
53646 function IGb(a, b) {
53647 a.f = b;
53648 return a;
53649 }
53650 function JGb(a, b) {
53651 a.k = b;
53652 return a;
53653 }
53654 function dLb(a, b) {
53655 a.a = b;
53656 return a;
53657 }
53658 function eLb(a, b) {
53659 a.e = b;
53660 return a;
53661 }
53662 function zVb(a, b) {
53663 a.e = b;
53664 return a;
53665 }
53666 function AVb(a, b) {
53667 a.f = b;
53668 return a;
53669 }
53670 function KOb(a, b) {
53671 a.b = true;
53672 a.d = b;
53673 }
53674 function DHb(a, b) {
53675 a.b = new g7c(b);
53676 }
53677 function uvb(a, b, c2) {
53678 b.td(a.a[c2]);
53679 }
53680 function zvb(a, b, c2) {
53681 b.we(a.a[c2]);
53682 }
53683 function wJc(a, b) {
53684 return a.b - b.b;
53685 }
53686 function kOc(a, b) {
53687 return a.g - b.g;
53688 }
53689 function WQc(a, b) {
53690 return a.s - b.s;
53691 }
53692 function Lic(a, b) {
53693 return a ? 0 : b - 1;
53694 }
53695 function SFc(a, b) {
53696 return a ? 0 : b - 1;
53697 }
53698 function RFc(a, b) {
53699 return a ? b - 1 : 0;
53700 }
53701 function M2c(a, b) {
53702 return b.Yf(a);
53703 }
53704 function M3c(a, b) {
53705 a.b = b;
53706 return a;
53707 }
53708 function L3c(a, b) {
53709 a.a = b;
53710 return a;
53711 }
53712 function N3c(a, b) {
53713 a.c = b;
53714 return a;
53715 }
53716 function O3c(a, b) {
53717 a.d = b;
53718 return a;
53719 }
53720 function P3c(a, b) {
53721 a.e = b;
53722 return a;
53723 }
53724 function Q3c(a, b) {
53725 a.f = b;
53726 return a;
53727 }
53728 function b4c(a, b) {
53729 a.a = b;
53730 return a;
53731 }
53732 function c4c(a, b) {
53733 a.b = b;
53734 return a;
53735 }
53736 function d4c(a, b) {
53737 a.c = b;
53738 return a;
53739 }
53740 function z5c(a, b) {
53741 a.c = b;
53742 return a;
53743 }
53744 function y5c(a, b) {
53745 a.b = b;
53746 return a;
53747 }
53748 function A5c(a, b) {
53749 a.d = b;
53750 return a;
53751 }
53752 function B5c(a, b) {
53753 a.e = b;
53754 return a;
53755 }
53756 function C5c(a, b) {
53757 a.f = b;
53758 return a;
53759 }
53760 function D5c(a, b) {
53761 a.g = b;
53762 return a;
53763 }
53764 function E5c(a, b) {
53765 a.a = b;
53766 return a;
53767 }
53768 function F5c(a, b) {
53769 a.i = b;
53770 return a;
53771 }
53772 function G5c(a, b) {
53773 a.j = b;
53774 return a;
53775 }
53776 function Vdd(a, b) {
53777 a.k = b;
53778 return a;
53779 }
53780 function Wdd(a, b) {
53781 a.j = b;
53782 return a;
53783 }
53784 function ykc(a, b) {
53785 gkc();
53786 F0b(b, a);
53787 }
53788 function T$c(a, b, c2) {
53789 R$c(a.a, b, c2);
53790 }
53791 function RGc(a) {
53792 cEc.call(this, a);
53793 }
53794 function iHc(a) {
53795 cEc.call(this, a);
53796 }
53797 function t7c(a) {
53798 Qsb.call(this, a);
53799 }
53800 function aPb(a) {
53801 _Ob.call(this, a);
53802 }
53803 function Ixd(a) {
53804 zud.call(this, a);
53805 }
53806 function dCd(a) {
53807 ZBd.call(this, a);
53808 }
53809 function fCd(a) {
53810 ZBd.call(this, a);
53811 }
53812 function p_b() {
53813 q_b.call(this, "");
53814 }
53815 function d7c() {
53816 this.a = 0;
53817 this.b = 0;
53818 }
53819 function aPc() {
53820 this.b = 0;
53821 this.a = 0;
53822 }
53823 function NJd(a, b) {
53824 a.b = 0;
53825 DId(a, b);
53826 }
53827 function X1d(a, b) {
53828 a.c = b;
53829 a.b = true;
53830 }
53831 function Oc(a, b) {
53832 return a.c._b(b);
53833 }
53834 function gdb(a) {
53835 return a.e && a.e();
53836 }
53837 function Vd(a) {
53838 return !a ? null : a.d;
53839 }
53840 function sn(a, b) {
53841 return Gv(a.b, b);
53842 }
53843 function Fv(a) {
53844 return !a ? null : a.g;
53845 }
53846 function Kv(a) {
53847 return !a ? null : a.i;
53848 }
53849 function hdb(a) {
53850 fdb(a);
53851 return a.o;
53852 }
53853 function Fhd() {
53854 Fhd = ccb;
53855 Ehd = ond();
53856 }
53857 function Hhd() {
53858 Hhd = ccb;
53859 Ghd = Cod();
53860 }
53861 function LFd() {
53862 LFd = ccb;
53863 KFd = qZd();
53864 }
53865 function p8d() {
53866 p8d = ccb;
53867 o8d = Y9d();
53868 }
53869 function r8d() {
53870 r8d = ccb;
53871 q8d = dae();
53872 }
53873 function mvd() {
53874 mvd = ccb;
53875 lvd = n4c();
53876 }
53877 function Srb() {
53878 throw vbb(new bgb());
53879 }
53880 function enb() {
53881 throw vbb(new bgb());
53882 }
53883 function fnb() {
53884 throw vbb(new bgb());
53885 }
53886 function gnb() {
53887 throw vbb(new bgb());
53888 }
53889 function jnb() {
53890 throw vbb(new bgb());
53891 }
53892 function Cnb() {
53893 throw vbb(new bgb());
53894 }
53895 function Uqb(a) {
53896 this.a = new Mqb(a);
53897 }
53898 function tgb(a) {
53899 lgb();
53900 ngb(this, a);
53901 }
53902 function Hxb(a) {
53903 this.a = new Qwb(a);
53904 }
53905 function _ub(a, b) {
53906 while (a.ye(b))
53907 ;
53908 }
53909 function Sub(a, b) {
53910 while (a.sd(b))
53911 ;
53912 }
53913 function Bfb(a, b) {
53914 a.a += b;
53915 return a;
53916 }
53917 function Cfb(a, b) {
53918 a.a += b;
53919 return a;
53920 }
53921 function Ffb(a, b) {
53922 a.a += b;
53923 return a;
53924 }
53925 function Lfb(a, b) {
53926 a.a += b;
53927 return a;
53928 }
53929 function WAb(a) {
53930 Tzb(a);
53931 return a.a;
53932 }
53933 function Wsb(a) {
53934 return a.b != a.d.c;
53935 }
53936 function pD(a) {
53937 return a.l | a.m << 22;
53938 }
53939 function aIc(a, b) {
53940 return a.d[b.p];
53941 }
53942 function h2c(a, b) {
53943 return c2c(a, b);
53944 }
53945 function cCb(a, b, c2) {
53946 a.splice(b, c2);
53947 }
53948 function WHb(a) {
53949 a.c ? VHb(a) : XHb(a);
53950 }
53951 function jVc(a) {
53952 this.a = 0;
53953 this.b = a;
53954 }
53955 function ZUc() {
53956 this.a = new L2c(K$);
53957 }
53958 function tRc() {
53959 this.b = new L2c(h$);
53960 }
53961 function Q$c() {
53962 this.b = new L2c(J_);
53963 }
53964 function d_c() {
53965 this.b = new L2c(J_);
53966 }
53967 function OCd() {
53968 throw vbb(new bgb());
53969 }
53970 function PCd() {
53971 throw vbb(new bgb());
53972 }
53973 function QCd() {
53974 throw vbb(new bgb());
53975 }
53976 function RCd() {
53977 throw vbb(new bgb());
53978 }
53979 function SCd() {
53980 throw vbb(new bgb());
53981 }
53982 function TCd() {
53983 throw vbb(new bgb());
53984 }
53985 function UCd() {
53986 throw vbb(new bgb());
53987 }
53988 function VCd() {
53989 throw vbb(new bgb());
53990 }
53991 function WCd() {
53992 throw vbb(new bgb());
53993 }
53994 function XCd() {
53995 throw vbb(new bgb());
53996 }
53997 function ahe() {
53998 throw vbb(new utb());
53999 }
54000 function bhe() {
54001 throw vbb(new utb());
54002 }
54003 function Rge(a) {
54004 this.a = new ege(a);
54005 }
54006 function ege(a) {
54007 dge(this, a, Vee());
54008 }
54009 function Fhe(a) {
54010 return !a || Ehe(a);
54011 }
54012 function dde(a) {
54013 return $ce[a] != -1;
54014 }
54015 function Iz() {
54016 xz != 0 && (xz = 0);
54017 zz = -1;
54018 }
54019 function Ybb() {
54020 Wbb == null && (Wbb = []);
54021 }
54022 function ONd(a, b) {
54023 Rxd(ZKd(a.a), b);
54024 }
54025 function TNd(a, b) {
54026 Rxd(ZKd(a.a), b);
54027 }
54028 function Yf(a, b) {
54029 zf.call(this, a, b);
54030 }
54031 function $f(a, b) {
54032 Yf.call(this, a, b);
54033 }
54034 function Hf(a, b) {
54035 this.b = a;
54036 this.c = b;
54037 }
54038 function rk(a, b) {
54039 this.b = a;
54040 this.a = b;
54041 }
54042 function ek(a, b) {
54043 this.a = a;
54044 this.b = b;
54045 }
54046 function gk(a, b) {
54047 this.a = a;
54048 this.b = b;
54049 }
54050 function pk(a, b) {
54051 this.a = a;
54052 this.b = b;
54053 }
54054 function yk(a, b) {
54055 this.a = a;
54056 this.b = b;
54057 }
54058 function Ak(a, b) {
54059 this.a = a;
54060 this.b = b;
54061 }
54062 function Fj(a, b) {
54063 this.a = a;
54064 this.b = b;
54065 }
54066 function _j(a, b) {
54067 this.a = a;
54068 this.b = b;
54069 }
54070 function dr(a, b) {
54071 this.a = a;
54072 this.b = b;
54073 }
54074 function zr(a, b) {
54075 this.b = a;
54076 this.a = b;
54077 }
54078 function So(a, b) {
54079 this.b = a;
54080 this.a = b;
54081 }
54082 function qp(a, b) {
54083 this.b = a;
54084 this.a = b;
54085 }
54086 function $q(a, b) {
54087 this.b = a;
54088 this.a = b;
54089 }
54090 function $r(a, b) {
54091 this.f = a;
54092 this.g = b;
54093 }
54094 function ne(a, b) {
54095 this.e = a;
54096 this.d = b;
54097 }
54098 function Wo(a, b) {
54099 this.g = a;
54100 this.i = b;
54101 }
54102 function bu(a, b) {
54103 this.a = a;
54104 this.b = b;
54105 }
54106 function qu(a, b) {
54107 this.a = a;
54108 this.f = b;
54109 }
54110 function qv(a, b) {
54111 this.b = a;
54112 this.c = b;
54113 }
54114 function ox(a, b) {
54115 this.a = a;
54116 this.b = b;
54117 }
54118 function Px(a, b) {
54119 this.a = a;
54120 this.b = b;
54121 }
54122 function mC(a, b) {
54123 this.a = a;
54124 this.b = b;
54125 }
54126 function Wc(a) {
54127 Lb(a.dc());
54128 this.c = a;
54129 }
54130 function rf(a) {
54131 this.b = BD(Qb(a), 83);
54132 }
54133 function Zv(a) {
54134 this.a = BD(Qb(a), 83);
54135 }
54136 function dv(a) {
54137 this.a = BD(Qb(a), 15);
54138 }
54139 function $u(a) {
54140 this.a = BD(Qb(a), 15);
54141 }
54142 function Br(a) {
54143 this.b = BD(Qb(a), 47);
54144 }
54145 function eB() {
54146 this.q = new $wnd.Date();
54147 }
54148 function Zfb() {
54149 Zfb = ccb;
54150 Yfb = new jcb();
54151 }
54152 function Emb() {
54153 Emb = ccb;
54154 Dmb = new Fmb();
54155 }
54156 function Vhb(a) {
54157 return a.f.c + a.g.c;
54158 }
54159 function hnb(a, b) {
54160 return a.b.Hc(b);
54161 }
54162 function inb(a, b) {
54163 return a.b.Ic(b);
54164 }
54165 function knb(a, b) {
54166 return a.b.Qc(b);
54167 }
54168 function Dob(a, b) {
54169 return a.b.Hc(b);
54170 }
54171 function dob(a, b) {
54172 return a.c.uc(b);
54173 }
54174 function Rqb(a, b) {
54175 return a.a._b(b);
54176 }
54177 function fob(a, b) {
54178 return pb(a.c, b);
54179 }
54180 function jt(a, b) {
54181 return Mhb(a.b, b);
54182 }
54183 function Lp(a, b) {
54184 return a > b && b < Iie;
54185 }
54186 function Ryb(a, b) {
54187 return a.Gc(b), a;
54188 }
54189 function Syb(a, b) {
54190 return ye(a, b), a;
54191 }
54192 function sC(a) {
54193 return GB(), a ? FB : EB;
54194 }
54195 function Mqb(a) {
54196 Whb.call(this, a, 0);
54197 }
54198 function Pwb() {
54199 Qwb.call(this, null);
54200 }
54201 function yAb() {
54202 Vzb.call(this, null);
54203 }
54204 function Gqb(a) {
54205 this.c = a;
54206 Dqb(this);
54207 }
54208 function Psb() {
54209 Csb(this);
54210 Osb(this);
54211 }
54212 function MAb(a, b) {
54213 Tzb(a);
54214 a.a.Nb(b);
54215 }
54216 function Myb(a, b) {
54217 a.Gc(b);
54218 return a;
54219 }
54220 function qDb(a, b) {
54221 a.a.f = b;
54222 return a;
54223 }
54224 function wDb(a, b) {
54225 a.a.d = b;
54226 return a;
54227 }
54228 function xDb(a, b) {
54229 a.a.g = b;
54230 return a;
54231 }
54232 function yDb(a, b) {
54233 a.a.j = b;
54234 return a;
54235 }
54236 function BFb(a, b) {
54237 a.a.a = b;
54238 return a;
54239 }
54240 function CFb(a, b) {
54241 a.a.d = b;
54242 return a;
54243 }
54244 function DFb(a, b) {
54245 a.a.e = b;
54246 return a;
54247 }
54248 function EFb(a, b) {
54249 a.a.g = b;
54250 return a;
54251 }
54252 function oGb(a, b) {
54253 a.a.f = b;
54254 return a;
54255 }
54256 function TGb(a) {
54257 a.b = false;
54258 return a;
54259 }
54260 function Ltb() {
54261 Ltb = ccb;
54262 Ktb = new Otb();
54263 }
54264 function Utb() {
54265 Utb = ccb;
54266 Ttb = new Wtb();
54267 }
54268 function $xb() {
54269 $xb = ccb;
54270 Zxb = new byb();
54271 }
54272 function $Yb() {
54273 $Yb = ccb;
54274 ZYb = new dZb();
54275 }
54276 function cPb() {
54277 cPb = ccb;
54278 bPb = new dPb();
54279 }
54280 function EAb() {
54281 EAb = ccb;
54282 DAb = new PBb();
54283 }
54284 function a$b() {
54285 a$b = ccb;
54286 _Zb = new P$b();
54287 }
54288 function FDb() {
54289 FDb = ccb;
54290 EDb = new GDb();
54291 }
54292 function xUb() {
54293 xUb = ccb;
54294 wUb = new DUb();
54295 }
54296 function x2b() {
54297 x2b = ccb;
54298 w2b = new d7c();
54299 }
54300 function iVb() {
54301 iVb = ccb;
54302 hVb = new jVb();
54303 }
54304 function nVb() {
54305 nVb = ccb;
54306 mVb = new OVb();
54307 }
54308 function LWb() {
54309 LWb = ccb;
54310 KWb = new QWb();
54311 }
54312 function b4b() {
54313 b4b = ccb;
54314 a4b = new l4b();
54315 }
54316 function q9b() {
54317 q9b = ccb;
54318 p9b = new w9b();
54319 }
54320 function qgc() {
54321 qgc = ccb;
54322 pgc = new dic();
54323 }
54324 function Imc() {
54325 Imc = ccb;
54326 Hmc = new Wmc();
54327 }
54328 function GUc() {
54329 GUc = ccb;
54330 FUc = new j3c();
54331 }
54332 function i_c() {
54333 i_c = ccb;
54334 h_c = new k_c();
54335 }
54336 function s_c() {
54337 s_c = ccb;
54338 r_c = new t_c();
54339 }
54340 function R0c() {
54341 R0c = ccb;
54342 Q0c = new T0c();
54343 }
54344 function Vyc() {
54345 Vyc = ccb;
54346 Uyc = new Ved();
54347 }
54348 function DCc() {
54349 vCc();
54350 this.c = new Ji();
54351 }
54352 function k_c() {
54353 $r.call(this, Une, 0);
54354 }
54355 function r4c(a, b) {
54356 Xrb(a.c.b, b.c, b);
54357 }
54358 function s4c(a, b) {
54359 Xrb(a.c.c, b.b, b);
54360 }
54361 function B3c(a, b, c2) {
54362 Shb(a.d, b.f, c2);
54363 }
54364 function kKb(a, b, c2, d) {
54365 jKb(a, d, b, c2);
54366 }
54367 function E3b(a, b, c2, d) {
54368 J3b(d, a, b, c2);
54369 }
54370 function e9b(a, b, c2, d) {
54371 f9b(d, a, b, c2);
54372 }
54373 function g3c(a, b) {
54374 a.a = b.g;
54375 return a;
54376 }
54377 function DQd(a, b) {
54378 return qA(a.a, b);
54379 }
54380 function nQd(a) {
54381 return a.b ? a.b : a.a;
54382 }
54383 function $Oc(a) {
54384 return (a.c + a.a) / 2;
54385 }
54386 function Pgd() {
54387 Pgd = ccb;
54388 Ogd = new Ahd();
54389 }
54390 function AFd() {
54391 AFd = ccb;
54392 zFd = new BFd();
54393 }
54394 function tFd() {
54395 tFd = ccb;
54396 sFd = new vFd();
54397 }
54398 function EFd() {
54399 EFd = ccb;
54400 DFd = new GFd();
54401 }
54402 function yFd() {
54403 yFd = ccb;
54404 xFd = new oUd();
54405 }
54406 function JFd() {
54407 JFd = ccb;
54408 IFd = new cZd();
54409 }
54410 function nRd() {
54411 nRd = ccb;
54412 mRd = new u4d();
54413 }
54414 function LRd() {
54415 LRd = ccb;
54416 KRd = new y4d();
54417 }
54418 function g5d() {
54419 g5d = ccb;
54420 f5d = new h5d();
54421 }
54422 function Q6d() {
54423 Q6d = ccb;
54424 P6d = new U6d();
54425 }
54426 function pEd() {
54427 pEd = ccb;
54428 oEd = new Lqb();
54429 }
54430 function tZd() {
54431 tZd = ccb;
54432 rZd = new Rkb();
54433 }
54434 function Xge() {
54435 Xge = ccb;
54436 Wge = new dhe();
54437 }
54438 function Hz(a) {
54439 $wnd.clearTimeout(a);
54440 }
54441 function jw(a) {
54442 this.a = BD(Qb(a), 224);
54443 }
54444 function Lv(a) {
54445 return BD(a, 42).cd();
54446 }
54447 function sib(a) {
54448 return a.b < a.d.gc();
54449 }
54450 function Lpb(a, b) {
54451 return tqb(a.a, b);
54452 }
54453 function Dbb(a, b) {
54454 return ybb(a, b) > 0;
54455 }
54456 function Gbb(a, b) {
54457 return ybb(a, b) < 0;
54458 }
54459 function Crb(a, b) {
54460 return a.a.get(b);
54461 }
54462 function icb(b, a) {
54463 return a.split(b);
54464 }
54465 function Vrb(a, b) {
54466 return Mhb(a.e, b);
54467 }
54468 function Nvb(a) {
54469 return uCb(a), false;
54470 }
54471 function Rub(a) {
54472 Kub.call(this, a, 21);
54473 }
54474 function wcb(a, b) {
54475 Zy.call(this, a, b);
54476 }
54477 function mxb(a, b) {
54478 $r.call(this, a, b);
54479 }
54480 function Gyb(a, b) {
54481 $r.call(this, a, b);
54482 }
54483 function zx(a) {
54484 yx();
54485 Wn.call(this, a);
54486 }
54487 function zlb(a, b) {
54488 Dlb(a, a.length, b);
54489 }
54490 function Alb(a, b) {
54491 Flb(a, a.length, b);
54492 }
54493 function ABb(a, b, c2) {
54494 b.ud(a.a.Ge(c2));
54495 }
54496 function uBb(a, b, c2) {
54497 b.we(a.a.Fe(c2));
54498 }
54499 function GBb(a, b, c2) {
54500 b.td(a.a.Kb(c2));
54501 }
54502 function Zq(a, b, c2) {
54503 a.Mb(c2) && b.td(c2);
54504 }
54505 function aCb(a, b, c2) {
54506 a.splice(b, 0, c2);
54507 }
54508 function lDb(a, b) {
54509 return uqb(a.e, b);
54510 }
54511 function pjb(a, b) {
54512 this.d = a;
54513 this.e = b;
54514 }
54515 function kqb(a, b) {
54516 this.b = a;
54517 this.a = b;
54518 }
54519 function VBb(a, b) {
54520 this.b = a;
54521 this.a = b;
54522 }
54523 function BEb(a, b) {
54524 this.b = a;
54525 this.a = b;
54526 }
54527 function sBb(a, b) {
54528 this.a = a;
54529 this.b = b;
54530 }
54531 function yBb(a, b) {
54532 this.a = a;
54533 this.b = b;
54534 }
54535 function EBb(a, b) {
54536 this.a = a;
54537 this.b = b;
54538 }
54539 function KBb(a, b) {
54540 this.a = a;
54541 this.b = b;
54542 }
54543 function aDb(a, b) {
54544 this.a = a;
54545 this.b = b;
54546 }
54547 function tMb(a, b) {
54548 this.b = a;
54549 this.a = b;
54550 }
54551 function oOb(a, b) {
54552 this.b = a;
54553 this.a = b;
54554 }
54555 function SOb(a, b) {
54556 $r.call(this, a, b);
54557 }
54558 function SMb(a, b) {
54559 $r.call(this, a, b);
54560 }
54561 function NEb(a, b) {
54562 $r.call(this, a, b);
54563 }
54564 function VEb(a, b) {
54565 $r.call(this, a, b);
54566 }
54567 function sFb(a, b) {
54568 $r.call(this, a, b);
54569 }
54570 function hHb(a, b) {
54571 $r.call(this, a, b);
54572 }
54573 function OHb(a, b) {
54574 $r.call(this, a, b);
54575 }
54576 function FIb(a, b) {
54577 $r.call(this, a, b);
54578 }
54579 function wLb(a, b) {
54580 $r.call(this, a, b);
54581 }
54582 function YRb(a, b) {
54583 $r.call(this, a, b);
54584 }
54585 function zTb(a, b) {
54586 $r.call(this, a, b);
54587 }
54588 function rUb(a, b) {
54589 $r.call(this, a, b);
54590 }
54591 function oWb(a, b) {
54592 $r.call(this, a, b);
54593 }
54594 function SXb(a, b) {
54595 $r.call(this, a, b);
54596 }
54597 function k0b(a, b) {
54598 $r.call(this, a, b);
54599 }
54600 function z5b(a, b) {
54601 $r.call(this, a, b);
54602 }
54603 function T8b(a, b) {
54604 $r.call(this, a, b);
54605 }
54606 function ibc(a, b) {
54607 $r.call(this, a, b);
54608 }
54609 function Cec(a, b) {
54610 this.a = a;
54611 this.b = b;
54612 }
54613 function rfc(a, b) {
54614 this.a = a;
54615 this.b = b;
54616 }
54617 function Rfc(a, b) {
54618 this.a = a;
54619 this.b = b;
54620 }
54621 function Tfc(a, b) {
54622 this.a = a;
54623 this.b = b;
54624 }
54625 function bgc(a, b) {
54626 this.a = a;
54627 this.b = b;
54628 }
54629 function ngc(a, b) {
54630 this.a = a;
54631 this.b = b;
54632 }
54633 function Qhc(a, b) {
54634 this.a = a;
54635 this.b = b;
54636 }
54637 function $hc(a, b) {
54638 this.a = a;
54639 this.b = b;
54640 }
54641 function Z0b(a, b) {
54642 this.a = a;
54643 this.b = b;
54644 }
54645 function ZVb(a, b) {
54646 this.b = a;
54647 this.a = b;
54648 }
54649 function Dfc(a, b) {
54650 this.b = a;
54651 this.a = b;
54652 }
54653 function dgc(a, b) {
54654 this.b = a;
54655 this.a = b;
54656 }
54657 function Bmc(a, b) {
54658 this.b = a;
54659 this.a = b;
54660 }
54661 function cWb(a, b) {
54662 this.c = a;
54663 this.d = b;
54664 }
54665 function I$b(a, b) {
54666 this.e = a;
54667 this.d = b;
54668 }
54669 function Unc(a, b) {
54670 this.a = a;
54671 this.b = b;
54672 }
54673 function Oic(a, b) {
54674 this.b = b;
54675 this.c = a;
54676 }
54677 function Bjc(a, b) {
54678 $r.call(this, a, b);
54679 }
54680 function Yjc(a, b) {
54681 $r.call(this, a, b);
54682 }
54683 function Gkc(a, b) {
54684 $r.call(this, a, b);
54685 }
54686 function Bpc(a, b) {
54687 $r.call(this, a, b);
54688 }
54689 function Jpc(a, b) {
54690 $r.call(this, a, b);
54691 }
54692 function Tpc(a, b) {
54693 $r.call(this, a, b);
54694 }
54695 function cqc(a, b) {
54696 $r.call(this, a, b);
54697 }
54698 function oqc(a, b) {
54699 $r.call(this, a, b);
54700 }
54701 function yqc(a, b) {
54702 $r.call(this, a, b);
54703 }
54704 function Hqc(a, b) {
54705 $r.call(this, a, b);
54706 }
54707 function Uqc(a, b) {
54708 $r.call(this, a, b);
54709 }
54710 function arc(a, b) {
54711 $r.call(this, a, b);
54712 }
54713 function mrc(a, b) {
54714 $r.call(this, a, b);
54715 }
54716 function zrc(a, b) {
54717 $r.call(this, a, b);
54718 }
54719 function Prc(a, b) {
54720 $r.call(this, a, b);
54721 }
54722 function Yrc(a, b) {
54723 $r.call(this, a, b);
54724 }
54725 function fsc(a, b) {
54726 $r.call(this, a, b);
54727 }
54728 function nsc(a, b) {
54729 $r.call(this, a, b);
54730 }
54731 function nzc(a, b) {
54732 $r.call(this, a, b);
54733 }
54734 function zzc(a, b) {
54735 $r.call(this, a, b);
54736 }
54737 function Kzc(a, b) {
54738 $r.call(this, a, b);
54739 }
54740 function Xzc(a, b) {
54741 $r.call(this, a, b);
54742 }
54743 function Dtc(a, b) {
54744 $r.call(this, a, b);
54745 }
54746 function lAc(a, b) {
54747 $r.call(this, a, b);
54748 }
54749 function uAc(a, b) {
54750 $r.call(this, a, b);
54751 }
54752 function CAc(a, b) {
54753 $r.call(this, a, b);
54754 }
54755 function LAc(a, b) {
54756 $r.call(this, a, b);
54757 }
54758 function UAc(a, b) {
54759 $r.call(this, a, b);
54760 }
54761 function aBc(a, b) {
54762 $r.call(this, a, b);
54763 }
54764 function uBc(a, b) {
54765 $r.call(this, a, b);
54766 }
54767 function DBc(a, b) {
54768 $r.call(this, a, b);
54769 }
54770 function MBc(a, b) {
54771 $r.call(this, a, b);
54772 }
54773 function sGc(a, b) {
54774 $r.call(this, a, b);
54775 }
54776 function VIc(a, b) {
54777 $r.call(this, a, b);
54778 }
54779 function EIc(a, b) {
54780 this.b = a;
54781 this.a = b;
54782 }
54783 function qKc(a, b) {
54784 this.a = a;
54785 this.b = b;
54786 }
54787 function GKc(a, b) {
54788 this.a = a;
54789 this.b = b;
54790 }
54791 function lLc(a, b) {
54792 this.a = a;
54793 this.b = b;
54794 }
54795 function mMc(a, b) {
54796 this.a = a;
54797 this.b = b;
54798 }
54799 function fMc(a, b) {
54800 $r.call(this, a, b);
54801 }
54802 function ZLc(a, b) {
54803 $r.call(this, a, b);
54804 }
54805 function ZMc(a, b) {
54806 this.b = a;
54807 this.d = b;
54808 }
54809 function IOc(a, b) {
54810 $r.call(this, a, b);
54811 }
54812 function GQc(a, b) {
54813 $r.call(this, a, b);
54814 }
54815 function PQc(a, b) {
54816 this.a = a;
54817 this.b = b;
54818 }
54819 function RQc(a, b) {
54820 this.a = a;
54821 this.b = b;
54822 }
54823 function ARc(a, b) {
54824 $r.call(this, a, b);
54825 }
54826 function rSc(a, b) {
54827 $r.call(this, a, b);
54828 }
54829 function TTc(a, b) {
54830 $r.call(this, a, b);
54831 }
54832 function _Tc(a, b) {
54833 $r.call(this, a, b);
54834 }
54835 function RUc(a, b) {
54836 $r.call(this, a, b);
54837 }
54838 function uVc(a, b) {
54839 $r.call(this, a, b);
54840 }
54841 function hWc(a, b) {
54842 $r.call(this, a, b);
54843 }
54844 function rWc(a, b) {
54845 $r.call(this, a, b);
54846 }
54847 function kXc(a, b) {
54848 $r.call(this, a, b);
54849 }
54850 function uXc(a, b) {
54851 $r.call(this, a, b);
54852 }
54853 function AYc(a, b) {
54854 $r.call(this, a, b);
54855 }
54856 function l$c(a, b) {
54857 $r.call(this, a, b);
54858 }
54859 function Z$c(a, b) {
54860 $r.call(this, a, b);
54861 }
54862 function D_c(a, b) {
54863 $r.call(this, a, b);
54864 }
54865 function O_c(a, b) {
54866 $r.call(this, a, b);
54867 }
54868 function c1c(a, b) {
54869 $r.call(this, a, b);
54870 }
54871 function cVb(a, b) {
54872 return uqb(a.c, b);
54873 }
54874 function nnc(a, b) {
54875 return uqb(b.b, a);
54876 }
54877 function x1c(a, b) {
54878 return -a.b.Je(b);
54879 }
54880 function D3c(a, b) {
54881 return uqb(a.g, b);
54882 }
54883 function O5c(a, b) {
54884 $r.call(this, a, b);
54885 }
54886 function a6c(a, b) {
54887 $r.call(this, a, b);
54888 }
54889 function m2c(a, b) {
54890 this.a = a;
54891 this.b = b;
54892 }
54893 function W2c(a, b) {
54894 this.a = a;
54895 this.b = b;
54896 }
54897 function f7c(a, b) {
54898 this.a = a;
54899 this.b = b;
54900 }
54901 function G7c(a, b) {
54902 $r.call(this, a, b);
54903 }
54904 function j8c(a, b) {
54905 $r.call(this, a, b);
54906 }
54907 function iad(a, b) {
54908 $r.call(this, a, b);
54909 }
54910 function rad(a, b) {
54911 $r.call(this, a, b);
54912 }
54913 function Bad(a, b) {
54914 $r.call(this, a, b);
54915 }
54916 function Nad(a, b) {
54917 $r.call(this, a, b);
54918 }
54919 function ibd(a, b) {
54920 $r.call(this, a, b);
54921 }
54922 function tbd(a, b) {
54923 $r.call(this, a, b);
54924 }
54925 function Ibd(a, b) {
54926 $r.call(this, a, b);
54927 }
54928 function Ubd(a, b) {
54929 $r.call(this, a, b);
54930 }
54931 function gcd(a, b) {
54932 $r.call(this, a, b);
54933 }
54934 function scd(a, b) {
54935 $r.call(this, a, b);
54936 }
54937 function Ycd(a, b) {
54938 $r.call(this, a, b);
54939 }
54940 function udd(a, b) {
54941 $r.call(this, a, b);
54942 }
54943 function Jdd(a, b) {
54944 $r.call(this, a, b);
54945 }
54946 function Eed(a, b) {
54947 $r.call(this, a, b);
54948 }
54949 function bfd(a, b) {
54950 this.a = a;
54951 this.b = b;
54952 }
54953 function dfd(a, b) {
54954 this.a = a;
54955 this.b = b;
54956 }
54957 function ffd(a, b) {
54958 this.a = a;
54959 this.b = b;
54960 }
54961 function Kfd(a, b) {
54962 this.a = a;
54963 this.b = b;
54964 }
54965 function Mfd(a, b) {
54966 this.a = a;
54967 this.b = b;
54968 }
54969 function Ofd(a, b) {
54970 this.a = a;
54971 this.b = b;
54972 }
54973 function vgd(a, b) {
54974 this.a = a;
54975 this.b = b;
54976 }
54977 function qgd(a, b) {
54978 $r.call(this, a, b);
54979 }
54980 function jrd(a, b) {
54981 this.a = a;
54982 this.b = b;
54983 }
54984 function krd(a, b) {
54985 this.a = a;
54986 this.b = b;
54987 }
54988 function mrd(a, b) {
54989 this.a = a;
54990 this.b = b;
54991 }
54992 function nrd(a, b) {
54993 this.a = a;
54994 this.b = b;
54995 }
54996 function qrd(a, b) {
54997 this.a = a;
54998 this.b = b;
54999 }
55000 function rrd(a, b) {
55001 this.a = a;
55002 this.b = b;
55003 }
55004 function srd(a, b) {
55005 this.b = a;
55006 this.a = b;
55007 }
55008 function trd(a, b) {
55009 this.b = a;
55010 this.a = b;
55011 }
55012 function Drd(a, b) {
55013 this.b = a;
55014 this.a = b;
55015 }
55016 function Frd(a, b) {
55017 this.b = a;
55018 this.a = b;
55019 }
55020 function Hrd(a, b) {
55021 this.a = a;
55022 this.b = b;
55023 }
55024 function Jrd(a, b) {
55025 this.a = a;
55026 this.b = b;
55027 }
55028 function Ord(a, b) {
55029 Xqd(a.a, BD(b, 56));
55030 }
55031 function BIc(a, b) {
55032 gIc(a.a, BD(b, 11));
55033 }
55034 function fIc(a, b) {
55035 FHc();
55036 return b != a;
55037 }
55038 function Arb() {
55039 wrb();
55040 return new vrb();
55041 }
55042 function CMc() {
55043 wMc();
55044 this.b = new Tqb();
55045 }
55046 function NNc() {
55047 FNc();
55048 this.a = new Tqb();
55049 }
55050 function eCc() {
55051 ZBc();
55052 aCc.call(this);
55053 }
55054 function Dsd(a, b) {
55055 $r.call(this, a, b);
55056 }
55057 function Urd(a, b) {
55058 this.a = a;
55059 this.b = b;
55060 }
55061 function Wrd(a, b) {
55062 this.a = a;
55063 this.b = b;
55064 }
55065 function kGd(a, b) {
55066 this.a = a;
55067 this.b = b;
55068 }
55069 function nGd(a, b) {
55070 this.a = a;
55071 this.b = b;
55072 }
55073 function bUd(a, b) {
55074 this.a = a;
55075 this.b = b;
55076 }
55077 function zVd(a, b) {
55078 this.a = a;
55079 this.b = b;
55080 }
55081 function C1d(a, b) {
55082 this.d = a;
55083 this.b = b;
55084 }
55085 function MLd(a, b) {
55086 this.d = a;
55087 this.e = b;
55088 }
55089 function Wud(a, b) {
55090 this.f = a;
55091 this.c = b;
55092 }
55093 function f7d(a, b) {
55094 this.b = a;
55095 this.c = b;
55096 }
55097 function _zd(a, b) {
55098 this.i = a;
55099 this.g = b;
55100 }
55101 function Y1d(a, b) {
55102 this.e = a;
55103 this.a = b;
55104 }
55105 function c8d(a, b) {
55106 this.a = a;
55107 this.b = b;
55108 }
55109 function $Id(a, b) {
55110 a.i = null;
55111 _Id(a, b);
55112 }
55113 function ivd(a, b) {
55114 !!a && Rhb(cvd, a, b);
55115 }
55116 function hCd(a, b) {
55117 return qAd(a.a, b);
55118 }
55119 function e7d(a) {
55120 return R2d(a.c, a.b);
55121 }
55122 function Wd(a) {
55123 return !a ? null : a.dd();
55124 }
55125 function PD(a) {
55126 return a == null ? null : a;
55127 }
55128 function KD(a) {
55129 return typeof a === Khe;
55130 }
55131 function LD(a) {
55132 return typeof a === Lhe;
55133 }
55134 function ND(a) {
55135 return typeof a === Mhe;
55136 }
55137 function Em(a, b) {
55138 return a.Hd().Xb(b);
55139 }
55140 function Kq(a, b) {
55141 return hr(a.Kc(), b);
55142 }
55143 function Bbb(a, b) {
55144 return ybb(a, b) == 0;
55145 }
55146 function Ebb(a, b) {
55147 return ybb(a, b) >= 0;
55148 }
55149 function Kbb(a, b) {
55150 return ybb(a, b) != 0;
55151 }
55152 function Jdb(a) {
55153 return "" + (uCb(a), a);
55154 }
55155 function pfb(a, b) {
55156 return a.substr(b);
55157 }
55158 function cg(a) {
55159 ag(a);
55160 return a.d.gc();
55161 }
55162 function oVb(a) {
55163 pVb(a, a.c);
55164 return a;
55165 }
55166 function RD(a) {
55167 CCb(a == null);
55168 return a;
55169 }
55170 function Dfb(a, b) {
55171 a.a += "" + b;
55172 return a;
55173 }
55174 function Efb(a, b) {
55175 a.a += "" + b;
55176 return a;
55177 }
55178 function Nfb(a, b) {
55179 a.a += "" + b;
55180 return a;
55181 }
55182 function Pfb(a, b) {
55183 a.a += "" + b;
55184 return a;
55185 }
55186 function Qfb(a, b) {
55187 a.a += "" + b;
55188 return a;
55189 }
55190 function Mfb(a, b) {
55191 return a.a += "" + b, a;
55192 }
55193 function Esb(a, b) {
55194 Gsb(a, b, a.a, a.a.a);
55195 }
55196 function Fsb(a, b) {
55197 Gsb(a, b, a.c.b, a.c);
55198 }
55199 function Mqd(a, b, c2) {
55200 Rpd(b, kqd(a, c2));
55201 }
55202 function Nqd(a, b, c2) {
55203 Rpd(b, kqd(a, c2));
55204 }
55205 function Dhe(a, b) {
55206 Hhe(new Fyd(a), b);
55207 }
55208 function cB(a, b) {
55209 a.q.setTime(Sbb(b));
55210 }
55211 function fvb(a, b) {
55212 bvb.call(this, a, b);
55213 }
55214 function jvb(a, b) {
55215 bvb.call(this, a, b);
55216 }
55217 function nvb(a, b) {
55218 bvb.call(this, a, b);
55219 }
55220 function Nqb(a) {
55221 Uhb(this);
55222 Ld(this, a);
55223 }
55224 function wmb(a) {
55225 tCb(a, 0);
55226 return null;
55227 }
55228 function X6c(a) {
55229 a.a = 0;
55230 a.b = 0;
55231 return a;
55232 }
55233 function f3c(a, b) {
55234 a.a = b.g + 1;
55235 return a;
55236 }
55237 function PJc(a, b) {
55238 return a.j[b.p] == 2;
55239 }
55240 function _Pb(a) {
55241 return VPb(BD(a, 79));
55242 }
55243 function yJb() {
55244 yJb = ccb;
55245 xJb = as(wJb());
55246 }
55247 function Y8b() {
55248 Y8b = ccb;
55249 X8b = as(W8b());
55250 }
55251 function mt() {
55252 this.b = new Mqb(Cv(12));
55253 }
55254 function Otb() {
55255 this.b = 0;
55256 this.a = false;
55257 }
55258 function Wtb() {
55259 this.b = 0;
55260 this.a = false;
55261 }
55262 function sl(a) {
55263 this.a = a;
55264 ol.call(this);
55265 }
55266 function vl(a) {
55267 this.a = a;
55268 ol.call(this);
55269 }
55270 function Nsd(a, b) {
55271 Msd.call(this, a, b);
55272 }
55273 function $zd(a, b) {
55274 Cyd.call(this, a, b);
55275 }
55276 function nNd(a, b) {
55277 _zd.call(this, a, b);
55278 }
55279 function s4d(a, b) {
55280 p4d.call(this, a, b);
55281 }
55282 function w4d(a, b) {
55283 qRd.call(this, a, b);
55284 }
55285 function rEd(a, b) {
55286 pEd();
55287 Rhb(oEd, a, b);
55288 }
55289 function lcb(a, b) {
55290 return qfb(a.a, 0, b);
55291 }
55292 function ww(a, b) {
55293 return a.a.a.a.cc(b);
55294 }
55295 function mb(a, b) {
55296 return PD(a) === PD(b);
55297 }
55298 function Mdb(a, b) {
55299 return Kdb(a.a, b.a);
55300 }
55301 function $db(a, b) {
55302 return beb(a.a, b.a);
55303 }
55304 function seb(a, b) {
55305 return ueb(a.a, b.a);
55306 }
55307 function hfb(a, b) {
55308 return a.indexOf(b);
55309 }
55310 function Ny(a, b) {
55311 return a == b ? 0 : a ? 1 : -1;
55312 }
55313 function kB(a) {
55314 return a < 10 ? "0" + a : "" + a;
55315 }
55316 function Mq(a) {
55317 return Qb(a), new sl(a);
55318 }
55319 function SC(a) {
55320 return TC(a.l, a.m, a.h);
55321 }
55322 function Hdb(a) {
55323 return QD((uCb(a), a));
55324 }
55325 function Idb(a) {
55326 return QD((uCb(a), a));
55327 }
55328 function NIb(a, b) {
55329 return beb(a.g, b.g);
55330 }
55331 function Fbb(a) {
55332 return typeof a === Lhe;
55333 }
55334 function mWb(a) {
55335 return a == hWb || a == kWb;
55336 }
55337 function nWb(a) {
55338 return a == hWb || a == iWb;
55339 }
55340 function G1b(a) {
55341 return Jkb(a.b.b, a, 0);
55342 }
55343 function lrb(a) {
55344 this.a = Arb();
55345 this.b = a;
55346 }
55347 function Frb(a) {
55348 this.a = Arb();
55349 this.b = a;
55350 }
55351 function swb(a, b) {
55352 Ekb(a.a, b);
55353 return b;
55354 }
55355 function Z1c(a, b) {
55356 Ekb(a.c, b);
55357 return a;
55358 }
55359 function E2c(a, b) {
55360 d3c(a.a, b);
55361 return a;
55362 }
55363 function _gc(a, b) {
55364 Hgc();
55365 return b.a += a;
55366 }
55367 function bhc(a, b) {
55368 Hgc();
55369 return b.a += a;
55370 }
55371 function ahc(a, b) {
55372 Hgc();
55373 return b.c += a;
55374 }
55375 function Nlb(a, b) {
55376 Klb(a, 0, a.length, b);
55377 }
55378 function zsb() {
55379 Wqb.call(this, new $rb());
55380 }
55381 function I_b() {
55382 B_b.call(this, 0, 0, 0, 0);
55383 }
55384 function I6c() {
55385 J6c.call(this, 0, 0, 0, 0);
55386 }
55387 function g7c(a) {
55388 this.a = a.a;
55389 this.b = a.b;
55390 }
55391 function fad(a) {
55392 return a == aad || a == bad;
55393 }
55394 function gad(a) {
55395 return a == dad || a == _9c;
55396 }
55397 function Jzc(a) {
55398 return a == Fzc || a == Ezc;
55399 }
55400 function fcd(a) {
55401 return a != bcd && a != ccd;
55402 }
55403 function oid(a) {
55404 return a.Lg() && a.Mg();
55405 }
55406 function Gfd(a) {
55407 return Kkd(BD(a, 118));
55408 }
55409 function k3c(a) {
55410 return d3c(new j3c(), a);
55411 }
55412 function y2d(a, b) {
55413 return new p4d(b, a);
55414 }
55415 function z2d(a, b) {
55416 return new p4d(b, a);
55417 }
55418 function ukd(a, b, c2) {
55419 vkd(a, b);
55420 wkd(a, c2);
55421 }
55422 function _kd(a, b, c2) {
55423 cld(a, b);
55424 ald(a, c2);
55425 }
55426 function bld(a, b, c2) {
55427 dld(a, b);
55428 eld(a, c2);
55429 }
55430 function gmd(a, b, c2) {
55431 hmd(a, b);
55432 imd(a, c2);
55433 }
55434 function nmd(a, b, c2) {
55435 omd(a, b);
55436 pmd(a, c2);
55437 }
55438 function iKd(a, b) {
55439 $Jd(a, b);
55440 _Jd(a, a.D);
55441 }
55442 function _ud(a) {
55443 Wud.call(this, a, true);
55444 }
55445 function Xg(a, b, c2) {
55446 Vg.call(this, a, b, c2);
55447 }
55448 function Ygb(a) {
55449 Hgb();
55450 Zgb.call(this, a);
55451 }
55452 function rxb() {
55453 mxb.call(this, "Head", 1);
55454 }
55455 function wxb() {
55456 mxb.call(this, "Tail", 3);
55457 }
55458 function Ckb(a) {
55459 a.c = KC(SI, Uhe, 1, 0, 5, 1);
55460 }
55461 function Vjb(a) {
55462 a.a = KC(SI, Uhe, 1, 8, 5, 1);
55463 }
55464 function MGb(a) {
55465 Hkb(a.xf(), new QGb(a));
55466 }
55467 function xtb(a) {
55468 return a != null ? tb(a) : 0;
55469 }
55470 function b2b(a, b) {
55471 return ntd(b, mpd(a));
55472 }
55473 function c2b(a, b) {
55474 return ntd(b, mpd(a));
55475 }
55476 function dAb(a, b) {
55477 return a[a.length] = b;
55478 }
55479 function gAb(a, b) {
55480 return a[a.length] = b;
55481 }
55482 function Vq(a) {
55483 return lr(a.b.Kc(), a.a);
55484 }
55485 function dqd(a, b) {
55486 return _o(qo(a.d), b);
55487 }
55488 function eqd(a, b) {
55489 return _o(qo(a.g), b);
55490 }
55491 function fqd(a, b) {
55492 return _o(qo(a.j), b);
55493 }
55494 function Osd(a, b) {
55495 Msd.call(this, a.b, b);
55496 }
55497 function q0b(a) {
55498 B_b.call(this, a, a, a, a);
55499 }
55500 function HOb(a) {
55501 a.b && LOb(a);
55502 return a.a;
55503 }
55504 function IOb(a) {
55505 a.b && LOb(a);
55506 return a.c;
55507 }
55508 function uyb(a, b) {
55509 if (lyb) {
55510 return;
55511 }
55512 a.b = b;
55513 }
55514 function lzd(a, b, c2) {
55515 NC(a, b, c2);
55516 return c2;
55517 }
55518 function mBc(a, b, c2) {
55519 NC(a.c[b.g], b.g, c2);
55520 }
55521 function _Hd(a, b, c2) {
55522 BD(a.c, 69).Xh(b, c2);
55523 }
55524 function wfd(a, b, c2) {
55525 bld(c2, c2.i + a, c2.j + b);
55526 }
55527 function UOd(a, b) {
55528 wtd(VKd(a.a), XOd(b));
55529 }
55530 function bTd(a, b) {
55531 wtd(QSd(a.a), eTd(b));
55532 }
55533 function Lge(a) {
55534 wfe();
55535 xfe.call(this, a);
55536 }
55537 function CAd(a) {
55538 return a == null ? 0 : tb(a);
55539 }
55540 function fNc() {
55541 fNc = ccb;
55542 eNc = new Rpb(v1);
55543 }
55544 function h0d() {
55545 h0d = ccb;
55546 new i0d();
55547 new Rkb();
55548 }
55549 function i0d() {
55550 new Lqb();
55551 new Lqb();
55552 new Lqb();
55553 }
55554 function GA() {
55555 GA = ccb;
55556 fA();
55557 FA = new Lqb();
55558 }
55559 function Iy() {
55560 Iy = ccb;
55561 $wnd.Math.log(2);
55562 }
55563 function UVd() {
55564 UVd = ccb;
55565 TVd = (AFd(), zFd);
55566 }
55567 function _ge() {
55568 throw vbb(new cgb(Cxe));
55569 }
55570 function ohe() {
55571 throw vbb(new cgb(Cxe));
55572 }
55573 function che() {
55574 throw vbb(new cgb(Dxe));
55575 }
55576 function rhe() {
55577 throw vbb(new cgb(Dxe));
55578 }
55579 function Mg(a) {
55580 this.a = a;
55581 Gg.call(this, a);
55582 }
55583 function up(a) {
55584 this.a = a;
55585 rf.call(this, a);
55586 }
55587 function Bp(a) {
55588 this.a = a;
55589 rf.call(this, a);
55590 }
55591 function Okb(a, b) {
55592 Mlb(a.c, a.c.length, b);
55593 }
55594 function llb(a) {
55595 return a.a < a.c.c.length;
55596 }
55597 function Eqb(a) {
55598 return a.a < a.c.a.length;
55599 }
55600 function Ntb(a, b) {
55601 return a.a ? a.b : b.De();
55602 }
55603 function beb(a, b) {
55604 return a < b ? -1 : a > b ? 1 : 0;
55605 }
55606 function Deb(a, b) {
55607 return ybb(a, b) > 0 ? a : b;
55608 }
55609 function TC(a, b, c2) {
55610 return { l: a, m: b, h: c2 };
55611 }
55612 function Ctb(a, b) {
55613 a.a != null && BIc(b, a.a);
55614 }
55615 function Csb(a) {
55616 a.a = new jtb();
55617 a.c = new jtb();
55618 }
55619 function hDb(a) {
55620 this.b = a;
55621 this.a = new Rkb();
55622 }
55623 function dOb(a) {
55624 this.b = new pOb();
55625 this.a = a;
55626 }
55627 function q_b(a) {
55628 n_b.call(this);
55629 this.a = a;
55630 }
55631 function txb() {
55632 mxb.call(this, "Range", 2);
55633 }
55634 function bUb() {
55635 ZTb();
55636 this.a = new L2c(zP);
55637 }
55638 function Bh(a, b) {
55639 Qb(b);
55640 Ah(a).Jc(new Vw());
55641 }
55642 function fKc(a, b) {
55643 FJc();
55644 return b.n.b += a;
55645 }
55646 function Tgc(a, b, c2) {
55647 return Rhb(a.g, c2, b);
55648 }
55649 function LJc(a, b, c2) {
55650 return Rhb(a.k, c2, b);
55651 }
55652 function r1c(a, b) {
55653 return Rhb(a.a, b.a, b);
55654 }
55655 function jBc(a, b, c2) {
55656 return hBc(b, c2, a.c);
55657 }
55658 function E6c(a) {
55659 return new f7c(a.c, a.d);
55660 }
55661 function F6c(a) {
55662 return new f7c(a.c, a.d);
55663 }
55664 function R6c(a) {
55665 return new f7c(a.a, a.b);
55666 }
55667 function CQd(a, b) {
55668 return hA(a.a, b, null);
55669 }
55670 function fec(a) {
55671 QZb(a, null);
55672 RZb(a, null);
55673 }
55674 function AOc(a) {
55675 BOc(a, null);
55676 COc(a, null);
55677 }
55678 function u4d() {
55679 qRd.call(this, null, null);
55680 }
55681 function y4d() {
55682 RRd.call(this, null, null);
55683 }
55684 function a7d(a) {
55685 this.a = a;
55686 Lqb.call(this);
55687 }
55688 function Pp(a) {
55689 this.b = (mmb(), new iob(a));
55690 }
55691 function Py(a) {
55692 a.j = KC(VI, nie, 310, 0, 0, 1);
55693 }
55694 function oAd(a, b, c2) {
55695 a.c.Vc(b, BD(c2, 133));
55696 }
55697 function GAd(a, b, c2) {
55698 a.c.ji(b, BD(c2, 133));
55699 }
55700 function JLd(a, b) {
55701 Uxd(a);
55702 a.Gc(BD(b, 15));
55703 }
55704 function b7d(a, b) {
55705 return t2d(a.c, a.b, b);
55706 }
55707 function Bv(a, b) {
55708 return new Qv(a.Kc(), b);
55709 }
55710 function Lq(a, b) {
55711 return rr(a.Kc(), b) != -1;
55712 }
55713 function Sqb(a, b) {
55714 return a.a.Bc(b) != null;
55715 }
55716 function pr(a) {
55717 return a.Ob() ? a.Pb() : null;
55718 }
55719 function yfb(a) {
55720 return zfb(a, 0, a.length);
55721 }
55722 function JD(a, b) {
55723 return a != null && AD(a, b);
55724 }
55725 function $A(a, b) {
55726 a.q.setHours(b);
55727 YA(a, b);
55728 }
55729 function Yrb(a, b) {
55730 if (a.c) {
55731 jsb(b);
55732 isb(b);
55733 }
55734 }
55735 function nk(a, b, c2) {
55736 BD(a.Kb(c2), 164).Nb(b);
55737 }
55738 function RJc(a, b, c2) {
55739 SJc(a, b, c2);
55740 return c2;
55741 }
55742 function Eub(a, b, c2) {
55743 a.a = b ^ 1502;
55744 a.b = c2 ^ kke;
55745 }
55746 function xHb(a, b, c2) {
55747 return a.a[b.g][c2.g];
55748 }
55749 function REc(a, b) {
55750 return a.a[b.c.p][b.p];
55751 }
55752 function aEc(a, b) {
55753 return a.e[b.c.p][b.p];
55754 }
55755 function tEc(a, b) {
55756 return a.c[b.c.p][b.p];
55757 }
55758 function OJc(a, b) {
55759 return a.j[b.p] = aKc(b);
55760 }
55761 function k5c(a, b) {
55762 return cfb(a.f, b.tg());
55763 }
55764 function Isd(a, b) {
55765 return cfb(a.b, b.tg());
55766 }
55767 function Sfd(a, b) {
55768 return a.a < Kcb(b) ? -1 : 1;
55769 }
55770 function ZDc(a, b, c2) {
55771 return c2 ? b != 0 : b != a - 1;
55772 }
55773 function _6c(a, b, c2) {
55774 a.a = b;
55775 a.b = c2;
55776 return a;
55777 }
55778 function Y6c(a, b) {
55779 a.a *= b;
55780 a.b *= b;
55781 return a;
55782 }
55783 function mud(a, b, c2) {
55784 NC(a.g, b, c2);
55785 return c2;
55786 }
55787 function CHb(a, b, c2, d) {
55788 NC(a.a[b.g], c2.g, d);
55789 }
55790 function EQb(a, b) {
55791 O6c(b, a.a.a.a, a.a.a.b);
55792 }
55793 function Ozd(a) {
55794 a.a = BD(Ajd(a.b.a, 4), 126);
55795 }
55796 function Wzd(a) {
55797 a.a = BD(Ajd(a.b.a, 4), 126);
55798 }
55799 function otd(a) {
55800 ytb(a, hue2);
55801 Rld(a, gtd(a));
55802 }
55803 function Atb() {
55804 Atb = ccb;
55805 ztb = new Ftb(null);
55806 }
55807 function Ivb() {
55808 Ivb = ccb;
55809 Ivb();
55810 Hvb = new Ovb();
55811 }
55812 function FId() {
55813 this.Bb |= 256;
55814 this.Bb |= 512;
55815 }
55816 function Fyd(a) {
55817 this.i = a;
55818 this.f = this.i.j;
55819 }
55820 function xMd(a, b, c2) {
55821 pMd.call(this, a, b, c2);
55822 }
55823 function BMd(a, b, c2) {
55824 xMd.call(this, a, b, c2);
55825 }
55826 function K4d(a, b, c2) {
55827 xMd.call(this, a, b, c2);
55828 }
55829 function N4d(a, b, c2) {
55830 BMd.call(this, a, b, c2);
55831 }
55832 function X4d(a, b, c2) {
55833 pMd.call(this, a, b, c2);
55834 }
55835 function _4d(a, b, c2) {
55836 pMd.call(this, a, b, c2);
55837 }
55838 function C4d(a, b, c2) {
55839 k2d.call(this, a, b, c2);
55840 }
55841 function G4d(a, b, c2) {
55842 k2d.call(this, a, b, c2);
55843 }
55844 function I4d(a, b, c2) {
55845 C4d.call(this, a, b, c2);
55846 }
55847 function c5d(a, b, c2) {
55848 X4d.call(this, a, b, c2);
55849 }
55850 function zf(a, b) {
55851 this.a = a;
55852 rf.call(this, b);
55853 }
55854 function aj(a, b) {
55855 this.a = a;
55856 pc.call(this, b);
55857 }
55858 function kj(a, b) {
55859 this.a = a;
55860 pc.call(this, b);
55861 }
55862 function Jj(a, b) {
55863 this.a = a;
55864 pc.call(this, b);
55865 }
55866 function Rj(a) {
55867 this.a = a;
55868 sj.call(this, a.d);
55869 }
55870 function she(a) {
55871 this.c = a;
55872 this.a = this.c.a;
55873 }
55874 function xl(a, b) {
55875 this.a = b;
55876 pc.call(this, a);
55877 }
55878 function Qo(a, b) {
55879 this.a = b;
55880 Lo.call(this, a);
55881 }
55882 function op(a, b) {
55883 this.a = a;
55884 Lo.call(this, b);
55885 }
55886 function rj(a, b) {
55887 return Rl(Xm(a.c)).Xb(b);
55888 }
55889 function Eb(a, b) {
55890 return Db(a, new Ufb(), b).a;
55891 }
55892 function ur(a, b) {
55893 Qb(b);
55894 return new Gr(a, b);
55895 }
55896 function Gr(a, b) {
55897 this.a = b;
55898 Br.call(this, a);
55899 }
55900 function Hs(a) {
55901 this.b = a;
55902 this.a = this.b.a.e;
55903 }
55904 function Eg(a) {
55905 a.b.Qb();
55906 --a.d.f.d;
55907 bg(a.d);
55908 }
55909 function Uk(a) {
55910 Fk.call(this, BD(Qb(a), 35));
55911 }
55912 function il(a) {
55913 Fk.call(this, BD(Qb(a), 35));
55914 }
55915 function is() {
55916 $r.call(this, "INSTANCE", 0);
55917 }
55918 function Lb(a) {
55919 if (!a) {
55920 throw vbb(new Vdb());
55921 }
55922 }
55923 function Ub(a) {
55924 if (!a) {
55925 throw vbb(new Ydb());
55926 }
55927 }
55928 function ot(a) {
55929 if (!a) {
55930 throw vbb(new utb());
55931 }
55932 }
55933 function I6d() {
55934 I6d = ccb;
55935 g5d();
55936 H6d = new J6d();
55937 }
55938 function Bcb() {
55939 Bcb = ccb;
55940 zcb = false;
55941 Acb = true;
55942 }
55943 function Jfb(a) {
55944 mcb.call(this, (uCb(a), a));
55945 }
55946 function Wfb(a) {
55947 mcb.call(this, (uCb(a), a));
55948 }
55949 function Inb(a) {
55950 lnb.call(this, a);
55951 this.a = a;
55952 }
55953 function Xnb(a) {
55954 Dnb.call(this, a);
55955 this.a = a;
55956 }
55957 function Zob(a) {
55958 zob.call(this, a);
55959 this.a = a;
55960 }
55961 function Xy() {
55962 Py(this);
55963 Ry(this);
55964 this._d();
55965 }
55966 function Qv(a, b) {
55967 this.a = b;
55968 Br.call(this, a);
55969 }
55970 function au(a, b) {
55971 return new xu(a.a, a.b, b);
55972 }
55973 function kfb(a, b) {
55974 return a.lastIndexOf(b);
55975 }
55976 function ifb(a, b, c2) {
55977 return a.indexOf(b, c2);
55978 }
55979 function xfb(a) {
55980 return a == null ? Xhe : fcb(a);
55981 }
55982 function nz(a) {
55983 return a == null ? null : a.name;
55984 }
55985 function Etb(a) {
55986 return a.a != null ? a.a : null;
55987 }
55988 function or(a) {
55989 return Wsb(a.a) ? nr(a) : null;
55990 }
55991 function Fxb(a, b) {
55992 return Jwb(a.a, b) != null;
55993 }
55994 function uqb(a, b) {
55995 return !!b && a.b[b.g] == b;
55996 }
55997 function FCb(a) {
55998 return a.$H || (a.$H = ++ECb);
55999 }
56000 function aD(a) {
56001 return a.l + a.m * Hje + a.h * Ije;
56002 }
56003 function pDb(a, b) {
56004 Ekb(b.a, a.a);
56005 return a.a;
56006 }
56007 function vDb(a, b) {
56008 Ekb(b.b, a.a);
56009 return a.a;
56010 }
56011 function nGb(a, b) {
56012 Ekb(b.a, a.a);
56013 return a.a;
56014 }
56015 function Btb(a) {
56016 sCb(a.a != null);
56017 return a.a;
56018 }
56019 function Asb(a) {
56020 Wqb.call(this, new _rb(a));
56021 }
56022 function GUb(a, b) {
56023 HUb.call(this, a, b, null);
56024 }
56025 function cxb(a) {
56026 this.a = a;
56027 Bjb.call(this, a);
56028 }
56029 function CKb() {
56030 CKb = ccb;
56031 BKb = new Msd(tle, 0);
56032 }
56033 function NFb(a, b) {
56034 ++a.b;
56035 return Ekb(a.a, b);
56036 }
56037 function OFb(a, b) {
56038 ++a.b;
56039 return Lkb(a.a, b);
56040 }
56041 function n6b(a, b) {
56042 return Kdb(a.n.a, b.n.a);
56043 }
56044 function WKb(a, b) {
56045 return Kdb(a.c.d, b.c.d);
56046 }
56047 function gLb(a, b) {
56048 return Kdb(a.c.c, b.c.c);
56049 }
56050 function zXb(a, b) {
56051 return BD(Qc(a.b, b), 15);
56052 }
56053 function s7b(a, b) {
56054 return a.n.b = (uCb(b), b);
56055 }
56056 function t7b(a, b) {
56057 return a.n.b = (uCb(b), b);
56058 }
56059 function a1b(a) {
56060 return llb(a.a) || llb(a.b);
56061 }
56062 function fBc(a, b, c2) {
56063 return gBc(a, b, c2, a.b);
56064 }
56065 function iBc(a, b, c2) {
56066 return gBc(a, b, c2, a.c);
56067 }
56068 function i3c(a, b, c2) {
56069 BD(B2c(a, b), 21).Fc(c2);
56070 }
56071 function xBd(a, b, c2) {
56072 vAd(a.a, c2);
56073 uAd(a.a, b);
56074 }
56075 function qRd(a, b) {
56076 nRd();
56077 this.a = a;
56078 this.b = b;
56079 }
56080 function RRd(a, b) {
56081 LRd();
56082 this.b = a;
56083 this.c = b;
56084 }
56085 function hhd(a, b) {
56086 Rgd();
56087 this.f = b;
56088 this.d = a;
56089 }
56090 function qc(a, b) {
56091 Sb(b, a);
56092 this.d = a;
56093 this.c = b;
56094 }
56095 function n5b(a) {
56096 var b;
56097 b = a.a;
56098 a.a = a.b;
56099 a.b = b;
56100 }
56101 function chc(a) {
56102 Hgc();
56103 return !!a && !a.dc();
56104 }
56105 function Afe(a) {
56106 return new lge(3, a);
56107 }
56108 function jm(a, b) {
56109 return new Vp(a, a.gc(), b);
56110 }
56111 function ns(a) {
56112 hs();
56113 return es((qs(), ps), a);
56114 }
56115 function Oyd(a) {
56116 this.d = a;
56117 Fyd.call(this, a);
56118 }
56119 function $yd(a) {
56120 this.c = a;
56121 Fyd.call(this, a);
56122 }
56123 function bzd(a) {
56124 this.c = a;
56125 Oyd.call(this, a);
56126 }
56127 function sgc() {
56128 qgc();
56129 this.b = new ygc(this);
56130 }
56131 function Pu(a) {
56132 Xj(a, Jie);
56133 return new Skb(a);
56134 }
56135 function Vz(a) {
56136 Rz();
56137 return parseInt(a) || -1;
56138 }
56139 function qfb(a, b, c2) {
56140 return a.substr(b, c2 - b);
56141 }
56142 function gfb(a, b, c2) {
56143 return ifb(a, wfb(b), c2);
56144 }
56145 function Pkb(a) {
56146 return ZBb(a.c, a.c.length);
56147 }
56148 function Yr(a) {
56149 return a.f != null ? a.f : "" + a.g;
56150 }
56151 function Zr(a) {
56152 return a.f != null ? a.f : "" + a.g;
56153 }
56154 function Hsb(a) {
56155 sCb(a.b != 0);
56156 return a.a.a.c;
56157 }
56158 function Isb(a) {
56159 sCb(a.b != 0);
56160 return a.c.b.c;
56161 }
56162 function Cmd(a) {
56163 JD(a, 150) && BD(a, 150).Gh();
56164 }
56165 function Wwb(a) {
56166 return a.b = BD(tib(a.a), 42);
56167 }
56168 function Ptb(a) {
56169 Ltb();
56170 this.b = a;
56171 this.a = true;
56172 }
56173 function Xtb(a) {
56174 Utb();
56175 this.b = a;
56176 this.a = true;
56177 }
56178 function Trb(a) {
56179 a.d = new ksb(a);
56180 a.e = new Lqb();
56181 }
56182 function mkb(a) {
56183 if (!a) {
56184 throw vbb(new Apb());
56185 }
56186 }
56187 function lCb(a) {
56188 if (!a) {
56189 throw vbb(new Vdb());
56190 }
56191 }
56192 function yCb(a) {
56193 if (!a) {
56194 throw vbb(new Ydb());
56195 }
56196 }
56197 function qCb(a) {
56198 if (!a) {
56199 throw vbb(new tcb());
56200 }
56201 }
56202 function sCb(a) {
56203 if (!a) {
56204 throw vbb(new utb());
56205 }
56206 }
56207 function ksb(a) {
56208 lsb.call(this, a, null, null);
56209 }
56210 function dPb() {
56211 $r.call(this, "POLYOMINO", 0);
56212 }
56213 function Cg(a, b, c2, d) {
56214 qg.call(this, a, b, c2, d);
56215 }
56216 function zkc(a, b) {
56217 gkc();
56218 return Rc(a, b.e, b);
56219 }
56220 function azc(a, b, c2) {
56221 Vyc();
56222 return c2.qg(a, b);
56223 }
56224 function wNb(a, b) {
56225 return !!a.q && Mhb(a.q, b);
56226 }
56227 function JRb(a, b) {
56228 return a > 0 ? b * b / a : b * b * 100;
56229 }
56230 function CRb(a, b) {
56231 return a > 0 ? b / (a * a) : b * 100;
56232 }
56233 function G2c(a, b, c2) {
56234 return Ekb(b, I2c(a, c2));
56235 }
56236 function t3c(a, b, c2) {
56237 p3c();
56238 a.Xe(b) && c2.td(a);
56239 }
56240 function St(a, b, c2) {
56241 var d;
56242 d = a.Zc(b);
56243 d.Rb(c2);
56244 }
56245 function O6c(a, b, c2) {
56246 a.a += b;
56247 a.b += c2;
56248 return a;
56249 }
56250 function Z6c(a, b, c2) {
56251 a.a *= b;
56252 a.b *= c2;
56253 return a;
56254 }
56255 function b7c(a, b, c2) {
56256 a.a -= b;
56257 a.b -= c2;
56258 return a;
56259 }
56260 function a7c(a, b) {
56261 a.a = b.a;
56262 a.b = b.b;
56263 return a;
56264 }
56265 function V6c(a) {
56266 a.a = -a.a;
56267 a.b = -a.b;
56268 return a;
56269 }
56270 function Dic(a) {
56271 this.c = a;
56272 this.a = 1;
56273 this.b = 1;
56274 }
56275 function xed(a) {
56276 this.c = a;
56277 dld(a, 0);
56278 eld(a, 0);
56279 }
56280 function u7c(a) {
56281 Psb.call(this);
56282 n7c(this, a);
56283 }
56284 function AXb(a) {
56285 xXb();
56286 yXb(this);
56287 this.mf(a);
56288 }
56289 function GRd(a, b) {
56290 nRd();
56291 qRd.call(this, a, b);
56292 }
56293 function dSd(a, b) {
56294 LRd();
56295 RRd.call(this, a, b);
56296 }
56297 function hSd(a, b) {
56298 LRd();
56299 RRd.call(this, a, b);
56300 }
56301 function fSd(a, b) {
56302 LRd();
56303 dSd.call(this, a, b);
56304 }
56305 function sId(a, b, c2) {
56306 dId.call(this, a, b, c2, 2);
56307 }
56308 function zXd(a, b) {
56309 UVd();
56310 nXd.call(this, a, b);
56311 }
56312 function BXd(a, b) {
56313 UVd();
56314 zXd.call(this, a, b);
56315 }
56316 function DXd(a, b) {
56317 UVd();
56318 zXd.call(this, a, b);
56319 }
56320 function FXd(a, b) {
56321 UVd();
56322 DXd.call(this, a, b);
56323 }
56324 function PXd(a, b) {
56325 UVd();
56326 nXd.call(this, a, b);
56327 }
56328 function RXd(a, b) {
56329 UVd();
56330 PXd.call(this, a, b);
56331 }
56332 function XXd(a, b) {
56333 UVd();
56334 nXd.call(this, a, b);
56335 }
56336 function pAd(a, b) {
56337 return a.c.Fc(BD(b, 133));
56338 }
56339 function w1d(a, b, c2) {
56340 return V1d(p1d(a, b), c2);
56341 }
56342 function N2d(a, b, c2) {
56343 return b.Qk(a.e, a.c, c2);
56344 }
56345 function P2d(a, b, c2) {
56346 return b.Rk(a.e, a.c, c2);
56347 }
56348 function a3d(a, b) {
56349 return xid(a.e, BD(b, 49));
56350 }
56351 function aTd(a, b, c2) {
56352 vtd(QSd(a.a), b, eTd(c2));
56353 }
56354 function TOd(a, b, c2) {
56355 vtd(VKd(a.a), b, XOd(c2));
56356 }
56357 function ypb(a, b) {
56358 b.$modCount = a.$modCount;
56359 }
56360 function MUc() {
56361 MUc = ccb;
56362 LUc = new Lsd("root");
56363 }
56364 function LCd() {
56365 LCd = ccb;
56366 KCd = new lDd();
56367 new NDd();
56368 }
56369 function KVc() {
56370 this.a = new Hp();
56371 this.b = new Hp();
56372 }
56373 function FUd() {
56374 hJd.call(this);
56375 this.Bb |= Tje;
56376 }
56377 function t_c() {
56378 $r.call(this, "GROW_TREE", 0);
56379 }
56380 function C9d(a) {
56381 return a == null ? null : cde(a);
56382 }
56383 function G9d(a) {
56384 return a == null ? null : jde(a);
56385 }
56386 function J9d(a) {
56387 return a == null ? null : fcb(a);
56388 }
56389 function K9d(a) {
56390 return a == null ? null : fcb(a);
56391 }
56392 function fdb(a) {
56393 if (a.o != null) {
56394 return;
56395 }
56396 vdb(a);
56397 }
56398 function DD(a) {
56399 CCb(a == null || KD(a));
56400 return a;
56401 }
56402 function ED(a) {
56403 CCb(a == null || LD(a));
56404 return a;
56405 }
56406 function GD(a) {
56407 CCb(a == null || ND(a));
56408 return a;
56409 }
56410 function gB(a) {
56411 this.q = new $wnd.Date(Sbb(a));
56412 }
56413 function Mf(a, b) {
56414 this.c = a;
56415 ne.call(this, a, b);
56416 }
56417 function Sf(a, b) {
56418 this.a = a;
56419 Mf.call(this, a, b);
56420 }
56421 function Hg(a, b) {
56422 this.d = a;
56423 Dg(this);
56424 this.b = b;
56425 }
56426 function bAb(a, b) {
56427 Vzb.call(this, a);
56428 this.a = b;
56429 }
56430 function vAb(a, b) {
56431 Vzb.call(this, a);
56432 this.a = b;
56433 }
56434 function sNb(a) {
56435 pNb.call(this, 0, 0);
56436 this.f = a;
56437 }
56438 function Vg(a, b, c2) {
56439 dg.call(this, a, b, c2, null);
56440 }
56441 function Yg(a, b, c2) {
56442 dg.call(this, a, b, c2, null);
56443 }
56444 function Pxb(a, b, c2) {
56445 return a.ue(b, c2) <= 0 ? c2 : b;
56446 }
56447 function Qxb(a, b, c2) {
56448 return a.ue(b, c2) <= 0 ? b : c2;
56449 }
56450 function g4c(a, b) {
56451 return BD(Wrb(a.b, b), 149);
56452 }
56453 function i4c(a, b) {
56454 return BD(Wrb(a.c, b), 229);
56455 }
56456 function wic(a) {
56457 return BD(Ikb(a.a, a.b), 287);
56458 }
56459 function B6c(a) {
56460 return new f7c(a.c, a.d + a.a);
56461 }
56462 function eLc(a) {
56463 return FJc(), Jzc(BD(a, 197));
56464 }
56465 function $Jb() {
56466 $Jb = ccb;
56467 ZJb = pqb((tdd(), sdd));
56468 }
56469 function fOb(a, b) {
56470 b.a ? gOb(a, b) : Fxb(a.a, b.b);
56471 }
56472 function qyb(a, b) {
56473 if (lyb) {
56474 return;
56475 }
56476 Ekb(a.a, b);
56477 }
56478 function F2b(a, b) {
56479 x2b();
56480 return f_b(b.d.i, a);
56481 }
56482 function _9b(a, b) {
56483 I9b();
56484 return new gac(b, a);
56485 }
56486 function _Hb(a, b) {
56487 ytb(b, lle);
56488 a.f = b;
56489 return a;
56490 }
56491 function Kld(a, b, c2) {
56492 c2 = _hd(a, b, 3, c2);
56493 return c2;
56494 }
56495 function bmd(a, b, c2) {
56496 c2 = _hd(a, b, 6, c2);
56497 return c2;
56498 }
56499 function kpd(a, b, c2) {
56500 c2 = _hd(a, b, 9, c2);
56501 return c2;
56502 }
56503 function Cvd(a, b, c2) {
56504 ++a.j;
56505 a.Ki();
56506 Atd(a, b, c2);
56507 }
56508 function Avd(a, b, c2) {
56509 ++a.j;
56510 a.Hi(b, a.oi(b, c2));
56511 }
56512 function bRd(a, b, c2) {
56513 var d;
56514 d = a.Zc(b);
56515 d.Rb(c2);
56516 }
56517 function c7d(a, b, c2) {
56518 return C2d(a.c, a.b, b, c2);
56519 }
56520 function DAd(a, b) {
56521 return (b & Ohe) % a.d.length;
56522 }
56523 function Msd(a, b) {
56524 Lsd.call(this, a);
56525 this.a = b;
56526 }
56527 function uVd(a, b) {
56528 lVd.call(this, a);
56529 this.a = b;
56530 }
56531 function sYd(a, b) {
56532 lVd.call(this, a);
56533 this.a = b;
56534 }
56535 function zyd(a, b) {
56536 this.c = a;
56537 zud.call(this, b);
56538 }
56539 function YOd(a, b) {
56540 this.a = a;
56541 qOd.call(this, b);
56542 }
56543 function fTd(a, b) {
56544 this.a = a;
56545 qOd.call(this, b);
56546 }
56547 function Xp(a) {
56548 this.a = (Xj(a, Jie), new Skb(a));
56549 }
56550 function cq(a) {
56551 this.a = (Xj(a, Jie), new Skb(a));
56552 }
56553 function LA(a) {
56554 !a.a && (a.a = new VA());
56555 return a.a;
56556 }
56557 function XMb(a) {
56558 if (a > 8) {
56559 return 0;
56560 }
56561 return a + 1;
56562 }
56563 function Ecb(a, b) {
56564 Bcb();
56565 return a == b ? 0 : a ? 1 : -1;
56566 }
56567 function Opb(a, b, c2) {
56568 return Npb(a, BD(b, 22), c2);
56569 }
56570 function Bz(a, b, c2) {
56571 return a.apply(b, c2);
56572 }
56573 function Sfb(a, b, c2) {
56574 a.a += zfb(b, 0, c2);
56575 return a;
56576 }
56577 function ijb(a, b) {
56578 var c2;
56579 c2 = a.e;
56580 a.e = b;
56581 return c2;
56582 }
56583 function trb(a, b) {
56584 var c2;
56585 c2 = a[hke];
56586 c2.call(a, b);
56587 }
56588 function urb(a, b) {
56589 var c2;
56590 c2 = a[hke];
56591 c2.call(a, b);
56592 }
56593 function Aib(a, b) {
56594 a.a.Vc(a.b, b);
56595 ++a.b;
56596 a.c = -1;
56597 }
56598 function Urb(a) {
56599 Uhb(a.e);
56600 a.d.b = a.d;
56601 a.d.a = a.d;
56602 }
56603 function _f(a) {
56604 a.b ? _f(a.b) : a.f.c.zc(a.e, a.d);
56605 }
56606 function _Ab(a, b, c2) {
56607 EAb();
56608 MBb(a, b.Ce(a.a, c2));
56609 }
56610 function Bxb(a, b) {
56611 return Vd(Cwb(a.a, b, true));
56612 }
56613 function Cxb(a, b) {
56614 return Vd(Dwb(a.a, b, true));
56615 }
56616 function _Bb(a, b) {
56617 return eCb(new Array(b), a);
56618 }
56619 function HD(a) {
56620 return String.fromCharCode(a);
56621 }
56622 function mz(a) {
56623 return a == null ? null : a.message;
56624 }
56625 function gRb() {
56626 this.a = new Rkb();
56627 this.b = new Rkb();
56628 }
56629 function iTb() {
56630 this.a = new MQb();
56631 this.b = new tTb();
56632 }
56633 function tDb() {
56634 this.b = new d7c();
56635 this.c = new Rkb();
56636 }
56637 function _Qb() {
56638 this.d = new d7c();
56639 this.e = new d7c();
56640 }
56641 function n_b() {
56642 this.n = new d7c();
56643 this.o = new d7c();
56644 }
56645 function $Gb() {
56646 this.n = new p0b();
56647 this.i = new I6c();
56648 }
56649 function sec() {
56650 this.a = new Umc();
56651 this.b = new mnc();
56652 }
56653 function NIc() {
56654 this.a = new Rkb();
56655 this.d = new Rkb();
56656 }
56657 function LDc() {
56658 this.b = new Tqb();
56659 this.a = new Tqb();
56660 }
56661 function hSc() {
56662 this.b = new Lqb();
56663 this.a = new Lqb();
56664 }
56665 function HRc() {
56666 this.b = new tRc();
56667 this.a = new hRc();
56668 }
56669 function aHb() {
56670 $Gb.call(this);
56671 this.a = new d7c();
56672 }
56673 function Ywb(a) {
56674 Zwb.call(this, a, (lxb(), hxb));
56675 }
56676 function J_b(a, b, c2, d) {
56677 B_b.call(this, a, b, c2, d);
56678 }
56679 function sqd(a, b, c2) {
56680 c2 != null && kmd(b, Wqd(a, c2));
56681 }
56682 function tqd(a, b, c2) {
56683 c2 != null && lmd(b, Wqd(a, c2));
56684 }
56685 function Tod(a, b, c2) {
56686 c2 = _hd(a, b, 11, c2);
56687 return c2;
56688 }
56689 function P6c(a, b) {
56690 a.a += b.a;
56691 a.b += b.b;
56692 return a;
56693 }
56694 function c7c(a, b) {
56695 a.a -= b.a;
56696 a.b -= b.b;
56697 return a;
56698 }
56699 function u7b(a, b) {
56700 return a.n.a = (uCb(b), b) + 10;
56701 }
56702 function v7b(a, b) {
56703 return a.n.a = (uCb(b), b) + 10;
56704 }
56705 function dLd(a, b) {
56706 return b == a || pud(UKd(b), a);
56707 }
56708 function PYd(a, b) {
56709 return Rhb(a.a, b, "") == null;
56710 }
56711 function E2b(a, b) {
56712 x2b();
56713 return !f_b(b.d.i, a);
56714 }
56715 function rjc(a, b) {
56716 fad(a.f) ? sjc(a, b) : tjc(a, b);
56717 }
56718 function h1d(a, b) {
56719 var c2;
56720 c2 = b.Hh(a.a);
56721 return c2;
56722 }
56723 function Cyd(a, b) {
56724 qcb.call(this, gve + a + mue + b);
56725 }
56726 function gUd(a, b, c2, d) {
56727 cUd.call(this, a, b, c2, d);
56728 }
56729 function Q4d(a, b, c2, d) {
56730 cUd.call(this, a, b, c2, d);
56731 }
56732 function U4d(a, b, c2, d) {
56733 Q4d.call(this, a, b, c2, d);
56734 }
56735 function n5d(a, b, c2, d) {
56736 i5d.call(this, a, b, c2, d);
56737 }
56738 function p5d(a, b, c2, d) {
56739 i5d.call(this, a, b, c2, d);
56740 }
56741 function v5d(a, b, c2, d) {
56742 i5d.call(this, a, b, c2, d);
56743 }
56744 function t5d(a, b, c2, d) {
56745 p5d.call(this, a, b, c2, d);
56746 }
56747 function A5d(a, b, c2, d) {
56748 p5d.call(this, a, b, c2, d);
56749 }
56750 function y5d(a, b, c2, d) {
56751 v5d.call(this, a, b, c2, d);
56752 }
56753 function D5d(a, b, c2, d) {
56754 A5d.call(this, a, b, c2, d);
56755 }
56756 function d6d(a, b, c2, d) {
56757 Y5d.call(this, a, b, c2, d);
56758 }
56759 function Vp(a, b, c2) {
56760 this.a = a;
56761 qc.call(this, b, c2);
56762 }
56763 function tk(a, b, c2) {
56764 this.c = b;
56765 this.b = c2;
56766 this.a = a;
56767 }
56768 function ik(a, b, c2) {
56769 return a.d = BD(b.Kb(c2), 164);
56770 }
56771 function j6d(a, b) {
56772 return a.Aj().Nh().Kh(a, b);
56773 }
56774 function h6d(a, b) {
56775 return a.Aj().Nh().Ih(a, b);
56776 }
56777 function Fdb(a, b) {
56778 return uCb(a), PD(a) === PD(b);
56779 }
56780 function dfb(a, b) {
56781 return uCb(a), PD(a) === PD(b);
56782 }
56783 function Dxb(a, b) {
56784 return Vd(Cwb(a.a, b, false));
56785 }
56786 function Exb(a, b) {
56787 return Vd(Dwb(a.a, b, false));
56788 }
56789 function vBb(a, b) {
56790 return a.b.sd(new yBb(a, b));
56791 }
56792 function BBb(a, b) {
56793 return a.b.sd(new EBb(a, b));
56794 }
56795 function HBb(a, b) {
56796 return a.b.sd(new KBb(a, b));
56797 }
56798 function lfb(a, b, c2) {
56799 return a.lastIndexOf(b, c2);
56800 }
56801 function uTb(a, b, c2) {
56802 return Kdb(a[b.b], a[c2.b]);
56803 }
56804 function RTb(a, b) {
56805 return yNb(b, (Nyc(), Cwc), a);
56806 }
56807 function fmc(a, b) {
56808 return beb(b.a.d.p, a.a.d.p);
56809 }
56810 function emc(a, b) {
56811 return beb(a.a.d.p, b.a.d.p);
56812 }
56813 function _Oc(a, b) {
56814 return Kdb(a.c - a.s, b.c - b.s);
56815 }
56816 function S_b(a) {
56817 return !a.c ? -1 : Jkb(a.c.a, a, 0);
56818 }
56819 function Vxd(a) {
56820 return a < 100 ? null : new Ixd(a);
56821 }
56822 function ecd(a) {
56823 return a == Zbd || a == _bd || a == $bd;
56824 }
56825 function zAd(a, b) {
56826 return JD(b, 15) && Btd(a.c, b);
56827 }
56828 function vyb(a, b) {
56829 if (lyb) {
56830 return;
56831 }
56832 !!b && (a.d = b);
56833 }
56834 function ujb(a, b) {
56835 var c2;
56836 c2 = b;
56837 return !!Awb(a, c2);
56838 }
56839 function czd(a, b) {
56840 this.c = a;
56841 Pyd.call(this, a, b);
56842 }
56843 function fBb(a) {
56844 this.c = a;
56845 nvb.call(this, rie, 0);
56846 }
56847 function Avb(a, b) {
56848 Bvb.call(this, a, a.length, b);
56849 }
56850 function aId(a, b, c2) {
56851 return BD(a.c, 69).lk(b, c2);
56852 }
56853 function bId(a, b, c2) {
56854 return BD(a.c, 69).mk(b, c2);
56855 }
56856 function O2d(a, b, c2) {
56857 return N2d(a, BD(b, 332), c2);
56858 }
56859 function Q2d(a, b, c2) {
56860 return P2d(a, BD(b, 332), c2);
56861 }
56862 function i3d(a, b, c2) {
56863 return h3d(a, BD(b, 332), c2);
56864 }
56865 function k3d(a, b, c2) {
56866 return j3d(a, BD(b, 332), c2);
56867 }
56868 function tn(a, b) {
56869 return b == null ? null : Hv(a.b, b);
56870 }
56871 function Kcb(a) {
56872 return LD(a) ? (uCb(a), a) : a.ke();
56873 }
56874 function Ldb(a) {
56875 return !isNaN(a) && !isFinite(a);
56876 }
56877 function Wn(a) {
56878 Ql();
56879 this.a = (mmb(), new zob(a));
56880 }
56881 function dIc(a) {
56882 FHc();
56883 this.d = a;
56884 this.a = new jkb();
56885 }
56886 function xqb(a, b, c2) {
56887 this.a = a;
56888 this.b = b;
56889 this.c = c2;
56890 }
56891 function Nrb(a, b, c2) {
56892 this.a = a;
56893 this.b = b;
56894 this.c = c2;
56895 }
56896 function $sb(a, b, c2) {
56897 this.d = a;
56898 this.b = c2;
56899 this.a = b;
56900 }
56901 function Qsb(a) {
56902 Csb(this);
56903 Osb(this);
56904 ye(this, a);
56905 }
56906 function Tkb(a) {
56907 Ckb(this);
56908 bCb(this.c, 0, a.Pc());
56909 }
56910 function Xwb(a) {
56911 uib(a.a);
56912 Kwb(a.c, a.b);
56913 a.b = null;
56914 }
56915 function iyb(a) {
56916 this.a = a;
56917 Zfb();
56918 Cbb(Date.now());
56919 }
56920 function JCb() {
56921 JCb = ccb;
56922 GCb = new nb();
56923 ICb = new nb();
56924 }
56925 function ntb() {
56926 ntb = ccb;
56927 ltb = new otb();
56928 mtb = new qtb();
56929 }
56930 function kzd() {
56931 kzd = ccb;
56932 jzd = KC(SI, Uhe, 1, 0, 5, 1);
56933 }
56934 function tGd() {
56935 tGd = ccb;
56936 sGd = KC(SI, Uhe, 1, 0, 5, 1);
56937 }
56938 function $Gd() {
56939 $Gd = ccb;
56940 ZGd = KC(SI, Uhe, 1, 0, 5, 1);
56941 }
56942 function Ql() {
56943 Ql = ccb;
56944 new Zl((mmb(), mmb(), jmb));
56945 }
56946 function pxb(a) {
56947 lxb();
56948 return es((zxb(), yxb), a);
56949 }
56950 function Hyb(a) {
56951 Fyb();
56952 return es((Kyb(), Jyb), a);
56953 }
56954 function OEb(a) {
56955 MEb();
56956 return es((REb(), QEb), a);
56957 }
56958 function WEb(a) {
56959 UEb();
56960 return es((ZEb(), YEb), a);
56961 }
56962 function tFb(a) {
56963 rFb();
56964 return es((wFb(), vFb), a);
56965 }
56966 function iHb(a) {
56967 gHb();
56968 return es((lHb(), kHb), a);
56969 }
56970 function PHb(a) {
56971 NHb();
56972 return es((SHb(), RHb), a);
56973 }
56974 function GIb(a) {
56975 EIb();
56976 return es((JIb(), IIb), a);
56977 }
56978 function vJb(a) {
56979 qJb();
56980 return es((yJb(), xJb), a);
56981 }
56982 function xLb(a) {
56983 vLb();
56984 return es((ALb(), zLb), a);
56985 }
56986 function TMb(a) {
56987 RMb();
56988 return es((WMb(), VMb), a);
56989 }
56990 function TOb(a) {
56991 ROb();
56992 return es((WOb(), VOb), a);
56993 }
56994 function ePb(a) {
56995 cPb();
56996 return es((hPb(), gPb), a);
56997 }
56998 function ZRb(a) {
56999 XRb();
57000 return es((aSb(), _Rb), a);
57001 }
57002 function ATb(a) {
57003 yTb();
57004 return es((DTb(), CTb), a);
57005 }
57006 function sUb(a) {
57007 qUb();
57008 return es((vUb(), uUb), a);
57009 }
57010 function rWb(a) {
57011 lWb();
57012 return es((uWb(), tWb), a);
57013 }
57014 function TXb(a) {
57015 RXb();
57016 return es((WXb(), VXb), a);
57017 }
57018 function Mb(a, b) {
57019 if (!a) {
57020 throw vbb(new Wdb(b));
57021 }
57022 }
57023 function l0b(a) {
57024 j0b();
57025 return es((o0b(), n0b), a);
57026 }
57027 function r0b(a) {
57028 B_b.call(this, a.d, a.c, a.a, a.b);
57029 }
57030 function K_b(a) {
57031 B_b.call(this, a.d, a.c, a.a, a.b);
57032 }
57033 function mKb(a, b, c2) {
57034 this.b = a;
57035 this.c = b;
57036 this.a = c2;
57037 }
57038 function BZb(a, b, c2) {
57039 this.b = a;
57040 this.a = b;
57041 this.c = c2;
57042 }
57043 function TNb(a, b, c2) {
57044 this.a = a;
57045 this.b = b;
57046 this.c = c2;
57047 }
57048 function uOb(a, b, c2) {
57049 this.a = a;
57050 this.b = b;
57051 this.c = c2;
57052 }
57053 function S3b(a, b, c2) {
57054 this.a = a;
57055 this.b = b;
57056 this.c = c2;
57057 }
57058 function Z6b(a, b, c2) {
57059 this.a = a;
57060 this.b = b;
57061 this.c = c2;
57062 }
57063 function n9b(a, b, c2) {
57064 this.b = a;
57065 this.a = b;
57066 this.c = c2;
57067 }
57068 function x$b(a, b, c2) {
57069 this.e = b;
57070 this.b = a;
57071 this.d = c2;
57072 }
57073 function $Ab(a, b, c2) {
57074 EAb();
57075 a.a.Od(b, c2);
57076 return b;
57077 }
57078 function LGb(a) {
57079 var b;
57080 b = new KGb();
57081 b.e = a;
57082 return b;
57083 }
57084 function iLb(a) {
57085 var b;
57086 b = new fLb();
57087 b.b = a;
57088 return b;
57089 }
57090 function D6b() {
57091 D6b = ccb;
57092 B6b = new M6b();
57093 C6b = new P6b();
57094 }
57095 function Hgc() {
57096 Hgc = ccb;
57097 Fgc = new ghc();
57098 Ggc = new ihc();
57099 }
57100 function jbc(a) {
57101 gbc();
57102 return es((mbc(), lbc), a);
57103 }
57104 function Cjc(a) {
57105 Ajc();
57106 return es((Fjc(), Ejc), a);
57107 }
57108 function Clc(a) {
57109 Alc();
57110 return es((Flc(), Elc), a);
57111 }
57112 function Cpc(a) {
57113 Apc();
57114 return es((Fpc(), Epc), a);
57115 }
57116 function Kpc(a) {
57117 Ipc();
57118 return es((Npc(), Mpc), a);
57119 }
57120 function Wpc(a) {
57121 Rpc();
57122 return es((Zpc(), Ypc), a);
57123 }
57124 function $jc(a) {
57125 Xjc();
57126 return es((bkc(), akc), a);
57127 }
57128 function Hkc(a) {
57129 Fkc();
57130 return es((Kkc(), Jkc), a);
57131 }
57132 function dqc(a) {
57133 bqc();
57134 return es((gqc(), fqc), a);
57135 }
57136 function rqc(a) {
57137 mqc();
57138 return es((uqc(), tqc), a);
57139 }
57140 function zqc(a) {
57141 xqc();
57142 return es((Cqc(), Bqc), a);
57143 }
57144 function Iqc(a) {
57145 Gqc();
57146 return es((Lqc(), Kqc), a);
57147 }
57148 function Vqc(a) {
57149 Sqc();
57150 return es((Yqc(), Xqc), a);
57151 }
57152 function brc(a) {
57153 _qc();
57154 return es((erc(), drc), a);
57155 }
57156 function nrc(a) {
57157 lrc();
57158 return es((qrc(), prc), a);
57159 }
57160 function Arc(a) {
57161 yrc();
57162 return es((Drc(), Crc), a);
57163 }
57164 function Qrc(a) {
57165 Orc();
57166 return es((Trc(), Src), a);
57167 }
57168 function Zrc(a) {
57169 Xrc();
57170 return es((asc(), _rc), a);
57171 }
57172 function gsc(a) {
57173 esc();
57174 return es((jsc(), isc), a);
57175 }
57176 function osc(a) {
57177 msc();
57178 return es((rsc(), qsc), a);
57179 }
57180 function Etc(a) {
57181 Ctc();
57182 return es((Htc(), Gtc), a);
57183 }
57184 function qzc(a) {
57185 lzc();
57186 return es((tzc(), szc), a);
57187 }
57188 function Azc(a) {
57189 xzc();
57190 return es((Dzc(), Czc), a);
57191 }
57192 function Mzc(a) {
57193 Izc();
57194 return es((Pzc(), Ozc), a);
57195 }
57196 function MAc(a) {
57197 KAc();
57198 return es((PAc(), OAc), a);
57199 }
57200 function mAc(a) {
57201 kAc();
57202 return es((pAc(), oAc), a);
57203 }
57204 function vAc(a) {
57205 tAc();
57206 return es((yAc(), xAc), a);
57207 }
57208 function DAc(a) {
57209 BAc();
57210 return es((GAc(), FAc), a);
57211 }
57212 function VAc(a) {
57213 TAc();
57214 return es((YAc(), XAc), a);
57215 }
57216 function $zc(a) {
57217 Vzc();
57218 return es((bAc(), aAc), a);
57219 }
57220 function bBc(a) {
57221 _Ac();
57222 return es((eBc(), dBc), a);
57223 }
57224 function vBc(a) {
57225 tBc();
57226 return es((yBc(), xBc), a);
57227 }
57228 function EBc(a) {
57229 CBc();
57230 return es((HBc(), GBc), a);
57231 }
57232 function NBc(a) {
57233 LBc();
57234 return es((QBc(), PBc), a);
57235 }
57236 function tGc(a) {
57237 rGc();
57238 return es((wGc(), vGc), a);
57239 }
57240 function WIc(a) {
57241 UIc();
57242 return es((ZIc(), YIc), a);
57243 }
57244 function $Lc(a) {
57245 YLc();
57246 return es((bMc(), aMc), a);
57247 }
57248 function gMc(a) {
57249 eMc();
57250 return es((jMc(), iMc), a);
57251 }
57252 function JOc(a) {
57253 HOc();
57254 return es((MOc(), LOc), a);
57255 }
57256 function HQc(a) {
57257 FQc();
57258 return es((KQc(), JQc), a);
57259 }
57260 function DRc(a) {
57261 yRc();
57262 return es((GRc(), FRc), a);
57263 }
57264 function tSc(a) {
57265 qSc();
57266 return es((wSc(), vSc), a);
57267 }
57268 function UTc(a) {
57269 STc();
57270 return es((XTc(), WTc), a);
57271 }
57272 function UUc(a) {
57273 PUc();
57274 return es((XUc(), WUc), a);
57275 }
57276 function aUc(a) {
57277 $Tc();
57278 return es((dUc(), cUc), a);
57279 }
57280 function wVc(a) {
57281 tVc();
57282 return es((zVc(), yVc), a);
57283 }
57284 function iWc(a) {
57285 fWc();
57286 return es((lWc(), kWc), a);
57287 }
57288 function sWc(a) {
57289 pWc();
57290 return es((vWc(), uWc), a);
57291 }
57292 function lXc(a) {
57293 iXc();
57294 return es((oXc(), nXc), a);
57295 }
57296 function vXc(a) {
57297 sXc();
57298 return es((yXc(), xXc), a);
57299 }
57300 function BYc(a) {
57301 zYc();
57302 return es((EYc(), DYc), a);
57303 }
57304 function m$c(a) {
57305 k$c();
57306 return es((p$c(), o$c), a);
57307 }
57308 function $$c(a) {
57309 Y$c();
57310 return es((b_c(), a_c), a);
57311 }
57312 function n_c(a) {
57313 i_c();
57314 return es((q_c(), p_c), a);
57315 }
57316 function w_c(a) {
57317 s_c();
57318 return es((z_c(), y_c), a);
57319 }
57320 function E_c(a) {
57321 C_c();
57322 return es((H_c(), G_c), a);
57323 }
57324 function P_c(a) {
57325 N_c();
57326 return es((S_c(), R_c), a);
57327 }
57328 function W0c(a) {
57329 R0c();
57330 return es((Z0c(), Y0c), a);
57331 }
57332 function f1c(a) {
57333 a1c();
57334 return es((i1c(), h1c), a);
57335 }
57336 function P5c(a) {
57337 N5c();
57338 return es((S5c(), R5c), a);
57339 }
57340 function b6c(a) {
57341 _5c();
57342 return es((e6c(), d6c), a);
57343 }
57344 function H7c(a) {
57345 F7c();
57346 return es((K7c(), J7c), a);
57347 }
57348 function k8c(a) {
57349 i8c();
57350 return es((n8c(), m8c), a);
57351 }
57352 function V8b(a) {
57353 S8b();
57354 return es((Y8b(), X8b), a);
57355 }
57356 function A5b(a) {
57357 y5b();
57358 return es((D5b(), C5b), a);
57359 }
57360 function jad(a) {
57361 ead();
57362 return es((mad(), lad), a);
57363 }
57364 function sad(a) {
57365 qad();
57366 return es((vad(), uad), a);
57367 }
57368 function Cad(a) {
57369 Aad();
57370 return es((Fad(), Ead), a);
57371 }
57372 function Oad(a) {
57373 Mad();
57374 return es((Rad(), Qad), a);
57375 }
57376 function jbd(a) {
57377 hbd();
57378 return es((mbd(), lbd), a);
57379 }
57380 function ubd(a) {
57381 rbd();
57382 return es((xbd(), wbd), a);
57383 }
57384 function Kbd(a) {
57385 Hbd();
57386 return es((Nbd(), Mbd), a);
57387 }
57388 function Vbd(a) {
57389 Tbd();
57390 return es((Ybd(), Xbd), a);
57391 }
57392 function hcd(a) {
57393 dcd();
57394 return es((kcd(), jcd), a);
57395 }
57396 function vcd(a) {
57397 rcd();
57398 return es((ycd(), xcd), a);
57399 }
57400 function vdd(a) {
57401 tdd();
57402 return es((ydd(), xdd), a);
57403 }
57404 function Kdd(a) {
57405 Idd();
57406 return es((Ndd(), Mdd), a);
57407 }
57408 function $cd(a) {
57409 Ucd();
57410 return es((cdd(), bdd), a);
57411 }
57412 function Fed(a) {
57413 Ded();
57414 return es((Ied(), Hed), a);
57415 }
57416 function rgd(a) {
57417 pgd();
57418 return es((ugd(), tgd), a);
57419 }
57420 function Esd(a) {
57421 Csd();
57422 return es((Hsd(), Gsd), a);
57423 }
57424 function Yoc(a, b) {
57425 return (uCb(a), a) + (uCb(b), b);
57426 }
57427 function NNd(a, b) {
57428 Zfb();
57429 return wtd(ZKd(a.a), b);
57430 }
57431 function SNd(a, b) {
57432 Zfb();
57433 return wtd(ZKd(a.a), b);
57434 }
57435 function bPc(a, b) {
57436 this.c = a;
57437 this.a = b;
57438 this.b = b - a;
57439 }
57440 function nYc(a, b, c2) {
57441 this.a = a;
57442 this.b = b;
57443 this.c = c2;
57444 }
57445 function L1c(a, b, c2) {
57446 this.a = a;
57447 this.b = b;
57448 this.c = c2;
57449 }
57450 function T1c(a, b, c2) {
57451 this.a = a;
57452 this.b = b;
57453 this.c = c2;
57454 }
57455 function Rrd(a, b, c2) {
57456 this.a = a;
57457 this.b = b;
57458 this.c = c2;
57459 }
57460 function zCd(a, b, c2) {
57461 this.a = a;
57462 this.b = b;
57463 this.c = c2;
57464 }
57465 function IVd(a, b, c2) {
57466 this.e = a;
57467 this.a = b;
57468 this.c = c2;
57469 }
57470 function kWd(a, b, c2) {
57471 UVd();
57472 cWd.call(this, a, b, c2);
57473 }
57474 function HXd(a, b, c2) {
57475 UVd();
57476 oXd.call(this, a, b, c2);
57477 }
57478 function TXd(a, b, c2) {
57479 UVd();
57480 oXd.call(this, a, b, c2);
57481 }
57482 function ZXd(a, b, c2) {
57483 UVd();
57484 oXd.call(this, a, b, c2);
57485 }
57486 function JXd(a, b, c2) {
57487 UVd();
57488 HXd.call(this, a, b, c2);
57489 }
57490 function LXd(a, b, c2) {
57491 UVd();
57492 HXd.call(this, a, b, c2);
57493 }
57494 function NXd(a, b, c2) {
57495 UVd();
57496 LXd.call(this, a, b, c2);
57497 }
57498 function VXd(a, b, c2) {
57499 UVd();
57500 TXd.call(this, a, b, c2);
57501 }
57502 function _Xd(a, b, c2) {
57503 UVd();
57504 ZXd.call(this, a, b, c2);
57505 }
57506 function $j(a, b) {
57507 Qb(a);
57508 Qb(b);
57509 return new _j(a, b);
57510 }
57511 function Nq(a, b) {
57512 Qb(a);
57513 Qb(b);
57514 return new Wq(a, b);
57515 }
57516 function Rq(a, b) {
57517 Qb(a);
57518 Qb(b);
57519 return new ar(a, b);
57520 }
57521 function lr(a, b) {
57522 Qb(a);
57523 Qb(b);
57524 return new zr(a, b);
57525 }
57526 function BD(a, b) {
57527 CCb(a == null || AD(a, b));
57528 return a;
57529 }
57530 function Nu(a) {
57531 var b;
57532 b = new Rkb();
57533 fr(b, a);
57534 return b;
57535 }
57536 function Ex(a) {
57537 var b;
57538 b = new Tqb();
57539 fr(b, a);
57540 return b;
57541 }
57542 function Hx(a) {
57543 var b;
57544 b = new Gxb();
57545 Jq(b, a);
57546 return b;
57547 }
57548 function Ru(a) {
57549 var b;
57550 b = new Psb();
57551 Jq(b, a);
57552 return b;
57553 }
57554 function YEc(a) {
57555 !a.e && (a.e = new Rkb());
57556 return a.e;
57557 }
57558 function SMd(a) {
57559 !a.c && (a.c = new xYd());
57560 return a.c;
57561 }
57562 function Ekb(a, b) {
57563 a.c[a.c.length] = b;
57564 return true;
57565 }
57566 function WA(a, b) {
57567 this.c = a;
57568 this.b = b;
57569 this.a = false;
57570 }
57571 function Gg(a) {
57572 this.d = a;
57573 Dg(this);
57574 this.b = ed(a.d);
57575 }
57576 function pzb() {
57577 this.a = ";,;";
57578 this.b = "";
57579 this.c = "";
57580 }
57581 function Bvb(a, b, c2) {
57582 qvb.call(this, b, c2);
57583 this.a = a;
57584 }
57585 function fAb(a, b, c2) {
57586 this.b = a;
57587 fvb.call(this, b, c2);
57588 }
57589 function lsb(a, b, c2) {
57590 this.c = a;
57591 pjb.call(this, b, c2);
57592 }
57593 function bCb(a, b, c2) {
57594 $Bb(c2, 0, a, b, c2.length, false);
57595 }
57596 function HVb(a, b, c2, d, e) {
57597 a.b = b;
57598 a.c = c2;
57599 a.d = d;
57600 a.a = e;
57601 }
57602 function eBb(a, b) {
57603 if (b) {
57604 a.b = b;
57605 a.a = (Tzb(b), b.a);
57606 }
57607 }
57608 function v_b(a, b, c2, d, e) {
57609 a.d = b;
57610 a.c = c2;
57611 a.a = d;
57612 a.b = e;
57613 }
57614 function h5b(a) {
57615 var b, c2;
57616 b = a.b;
57617 c2 = a.c;
57618 a.b = c2;
57619 a.c = b;
57620 }
57621 function k5b(a) {
57622 var b, c2;
57623 c2 = a.d;
57624 b = a.a;
57625 a.d = b;
57626 a.a = c2;
57627 }
57628 function Lbb(a) {
57629 return zbb(iD(Fbb(a) ? Rbb(a) : a));
57630 }
57631 function rlc(a, b) {
57632 return beb(D0b(a.d), D0b(b.d));
57633 }
57634 function uic(a, b) {
57635 return b == (Ucd(), Tcd) ? a.c : a.d;
57636 }
57637 function FHc() {
57638 FHc = ccb;
57639 DHc = (Ucd(), Tcd);
57640 EHc = zcd;
57641 }
57642 function DRb() {
57643 this.b = Edb(ED(Ksd((wSb(), vSb))));
57644 }
57645 function aBb(a) {
57646 return EAb(), KC(SI, Uhe, 1, a, 5, 1);
57647 }
57648 function C6c(a) {
57649 return new f7c(a.c + a.b, a.d + a.a);
57650 }
57651 function Vmc(a, b) {
57652 Imc();
57653 return beb(a.d.p, b.d.p);
57654 }
57655 function Lsb(a) {
57656 sCb(a.b != 0);
57657 return Nsb(a, a.a.a);
57658 }
57659 function Msb(a) {
57660 sCb(a.b != 0);
57661 return Nsb(a, a.c.b);
57662 }
57663 function rCb(a, b) {
57664 if (!a) {
57665 throw vbb(new ucb(b));
57666 }
57667 }
57668 function mCb(a, b) {
57669 if (!a) {
57670 throw vbb(new Wdb(b));
57671 }
57672 }
57673 function dWb(a, b, c2) {
57674 cWb.call(this, a, b);
57675 this.b = c2;
57676 }
57677 function pMd(a, b, c2) {
57678 MLd.call(this, a, b);
57679 this.c = c2;
57680 }
57681 function Dnc(a, b, c2) {
57682 Cnc.call(this, b, c2);
57683 this.d = a;
57684 }
57685 function _Gd(a) {
57686 $Gd();
57687 MGd.call(this);
57688 this.th(a);
57689 }
57690 function PNd(a, b, c2) {
57691 this.a = a;
57692 nNd.call(this, b, c2);
57693 }
57694 function UNd(a, b, c2) {
57695 this.a = a;
57696 nNd.call(this, b, c2);
57697 }
57698 function k2d(a, b, c2) {
57699 MLd.call(this, a, b);
57700 this.c = c2;
57701 }
57702 function y1d() {
57703 T0d();
57704 z1d.call(this, (yFd(), xFd));
57705 }
57706 function gFd(a) {
57707 return a != null && !OEd(a, CEd, DEd);
57708 }
57709 function dFd(a, b) {
57710 return (jFd(a) << 4 | jFd(b)) & aje;
57711 }
57712 function ln(a, b) {
57713 return Vm(), Wj(a, b), new iy(a, b);
57714 }
57715 function Sdd(a, b) {
57716 var c2;
57717 if (a.n) {
57718 c2 = b;
57719 Ekb(a.f, c2);
57720 }
57721 }
57722 function Upd(a, b, c2) {
57723 var d;
57724 d = new yC(c2);
57725 cC(a, b, d);
57726 }
57727 function WUd(a, b) {
57728 var c2;
57729 c2 = a.c;
57730 VUd(a, b);
57731 return c2;
57732 }
57733 function Ydd(a, b) {
57734 b < 0 ? a.g = -1 : a.g = b;
57735 return a;
57736 }
57737 function $6c(a, b) {
57738 W6c(a);
57739 a.a *= b;
57740 a.b *= b;
57741 return a;
57742 }
57743 function G6c(a, b, c2, d, e) {
57744 a.c = b;
57745 a.d = c2;
57746 a.b = d;
57747 a.a = e;
57748 }
57749 function Dsb(a, b) {
57750 Gsb(a, b, a.c.b, a.c);
57751 return true;
57752 }
57753 function jsb(a) {
57754 a.a.b = a.b;
57755 a.b.a = a.a;
57756 a.a = a.b = null;
57757 }
57758 function Aq(a) {
57759 this.b = a;
57760 this.a = Wm(this.b.a).Ed();
57761 }
57762 function Wq(a, b) {
57763 this.b = a;
57764 this.a = b;
57765 ol.call(this);
57766 }
57767 function ar(a, b) {
57768 this.a = a;
57769 this.b = b;
57770 ol.call(this);
57771 }
57772 function vvb(a, b) {
57773 qvb.call(this, b, 1040);
57774 this.a = a;
57775 }
57776 function Eeb(a) {
57777 return a == 0 || isNaN(a) ? a : a < 0 ? -1 : 1;
57778 }
57779 function WPb(a) {
57780 QPb();
57781 return jtd(a) == Xod(ltd(a));
57782 }
57783 function XPb(a) {
57784 QPb();
57785 return ltd(a) == Xod(jtd(a));
57786 }
57787 function iYb(a, b) {
57788 return hYb(a, new cWb(b.a, b.b));
57789 }
57790 function NZb(a) {
57791 return !OZb(a) && a.c.i.c == a.d.i.c;
57792 }
57793 function _Gb(a) {
57794 var b;
57795 b = a.n;
57796 return a.a.b + b.d + b.a;
57797 }
57798 function YHb(a) {
57799 var b;
57800 b = a.n;
57801 return a.e.b + b.d + b.a;
57802 }
57803 function ZHb(a) {
57804 var b;
57805 b = a.n;
57806 return a.e.a + b.b + b.c;
57807 }
57808 function zfe(a) {
57809 wfe();
57810 return new ige(0, a);
57811 }
57812 function o_b(a) {
57813 if (a.a) {
57814 return a.a;
57815 }
57816 return JZb(a);
57817 }
57818 function CCb(a) {
57819 if (!a) {
57820 throw vbb(new Cdb(null));
57821 }
57822 }
57823 function X6d() {
57824 X6d = ccb;
57825 W6d = (mmb(), new anb(Fwe));
57826 }
57827 function ex() {
57828 ex = ccb;
57829 new gx((_k(), $k), (Lk(), Kk));
57830 }
57831 function oeb() {
57832 oeb = ccb;
57833 neb = KC(JI, nie, 19, 256, 0, 1);
57834 }
57835 function d$c(a, b, c2, d) {
57836 e$c.call(this, a, b, c2, d, 0, 0);
57837 }
57838 function sQc(a, b, c2) {
57839 return Rhb(a.b, BD(c2.b, 17), b);
57840 }
57841 function tQc(a, b, c2) {
57842 return Rhb(a.b, BD(c2.b, 17), b);
57843 }
57844 function xfd(a, b) {
57845 return Ekb(a, new f7c(b.a, b.b));
57846 }
57847 function Bic(a, b) {
57848 return a.c < b.c ? -1 : a.c == b.c ? 0 : 1;
57849 }
57850 function B0b(a) {
57851 return a.e.c.length + a.g.c.length;
57852 }
57853 function D0b(a) {
57854 return a.e.c.length - a.g.c.length;
57855 }
57856 function Ojc(a) {
57857 return a.b.c.length - a.e.c.length;
57858 }
57859 function dKc(a) {
57860 FJc();
57861 return (Ucd(), Ecd).Hc(a.j);
57862 }
57863 function lHd(a) {
57864 $Gd();
57865 _Gd.call(this, a);
57866 this.a = -1;
57867 }
57868 function R7d(a, b) {
57869 f7d.call(this, a, b);
57870 this.a = this;
57871 }
57872 function odb(a, b) {
57873 var c2;
57874 c2 = ldb(a, b);
57875 c2.i = 2;
57876 return c2;
57877 }
57878 function Evd(a, b) {
57879 var c2;
57880 ++a.j;
57881 c2 = a.Ti(b);
57882 return c2;
57883 }
57884 function e3c(a, b, c2) {
57885 a.a = -1;
57886 i3c(a, b.g, c2);
57887 return a;
57888 }
57889 function Qrd(a, b, c2) {
57890 Kqd(a.a, a.b, a.c, BD(b, 202), c2);
57891 }
57892 function OHd(a, b) {
57893 PHd(a, b == null ? null : (uCb(b), b));
57894 }
57895 function SUd(a, b) {
57896 UUd(a, b == null ? null : (uCb(b), b));
57897 }
57898 function TUd(a, b) {
57899 UUd(a, b == null ? null : (uCb(b), b));
57900 }
57901 function Zj(a, b, c2) {
57902 return new tk(oAb(a).Ie(), c2, b);
57903 }
57904 function IC(a, b, c2, d, e, f2) {
57905 return JC(a, b, c2, d, e, 0, f2);
57906 }
57907 function Ucb() {
57908 Ucb = ccb;
57909 Tcb = KC(xI, nie, 217, 256, 0, 1);
57910 }
57911 function Ceb() {
57912 Ceb = ccb;
57913 Beb = KC(MI, nie, 162, 256, 0, 1);
57914 }
57915 function Yeb() {
57916 Yeb = ccb;
57917 Xeb = KC(UI, nie, 184, 256, 0, 1);
57918 }
57919 function ddb() {
57920 ddb = ccb;
57921 cdb = KC(yI, nie, 172, 128, 0, 1);
57922 }
57923 function IVb() {
57924 HVb(this, false, false, false, false);
57925 }
57926 function my(a) {
57927 im();
57928 this.a = (mmb(), new anb(Qb(a)));
57929 }
57930 function ir(a) {
57931 Qb(a);
57932 while (a.Ob()) {
57933 a.Pb();
57934 a.Qb();
57935 }
57936 }
57937 function Tw(a) {
57938 a.a.cd();
57939 BD(a.a.dd(), 14).gc();
57940 zh();
57941 }
57942 function mf(a) {
57943 this.c = a;
57944 this.b = this.c.d.vc().Kc();
57945 }
57946 function fqb(a) {
57947 this.c = a;
57948 this.a = new Gqb(this.c.a);
57949 }
57950 function Vqb(a) {
57951 this.a = new Mqb(a.gc());
57952 ye(this, a);
57953 }
57954 function Bsb(a) {
57955 Wqb.call(this, new $rb());
57956 ye(this, a);
57957 }
57958 function Rfb(a, b) {
57959 a.a += zfb(b, 0, b.length);
57960 return a;
57961 }
57962 function Ikb(a, b) {
57963 tCb(b, a.c.length);
57964 return a.c[b];
57965 }
57966 function $lb(a, b) {
57967 tCb(b, a.a.length);
57968 return a.a[b];
57969 }
57970 function YAb(a, b) {
57971 EAb();
57972 Vzb.call(this, a);
57973 this.a = b;
57974 }
57975 function Qyb(a, b) {
57976 return Aeb(wbb(Aeb(a.a).a, b.a));
57977 }
57978 function jpb(a, b) {
57979 return uCb(a), Fcb(a, (uCb(b), b));
57980 }
57981 function opb(a, b) {
57982 return uCb(b), Fcb(b, (uCb(a), a));
57983 }
57984 function Oyb(a, b) {
57985 return NC(b, 0, Bzb(b[0], Aeb(1)));
57986 }
57987 function Bzb(a, b) {
57988 return Qyb(BD(a, 162), BD(b, 162));
57989 }
57990 function vic(a) {
57991 return a.c - BD(Ikb(a.a, a.b), 287).b;
57992 }
57993 function uNb(a) {
57994 return !a.q ? (mmb(), mmb(), kmb) : a.q;
57995 }
57996 function Xi(a) {
57997 return a.e.Hd().gc() * a.c.Hd().gc();
57998 }
57999 function onc(a, b, c2) {
58000 return beb(b.d[a.g], c2.d[a.g]);
58001 }
58002 function YHc(a, b, c2) {
58003 return beb(a.d[b.p], a.d[c2.p]);
58004 }
58005 function ZHc(a, b, c2) {
58006 return beb(a.d[b.p], a.d[c2.p]);
58007 }
58008 function $Hc(a, b, c2) {
58009 return beb(a.d[b.p], a.d[c2.p]);
58010 }
58011 function _Hc(a, b, c2) {
58012 return beb(a.d[b.p], a.d[c2.p]);
58013 }
58014 function q$c(a, b, c2) {
58015 return $wnd.Math.min(c2 / a, 1 / b);
58016 }
58017 function sEc(a, b) {
58018 return a ? 0 : $wnd.Math.max(0, b - 1);
58019 }
58020 function Elb(a, b) {
58021 var c2;
58022 for (c2 = 0; c2 < b; ++c2) {
58023 a[c2] = -1;
58024 }
58025 }
58026 function bVc(a) {
58027 var b;
58028 b = hVc(a);
58029 return !b ? a : bVc(b);
58030 }
58031 function Voc(a, b) {
58032 a.a == null && Toc(a);
58033 return a.a[b];
58034 }
58035 function qed(a) {
58036 if (a.c) {
58037 return a.c.f;
58038 }
58039 return a.e.b;
58040 }
58041 function red(a) {
58042 if (a.c) {
58043 return a.c.g;
58044 }
58045 return a.e.a;
58046 }
58047 function pFd(a) {
58048 zud.call(this, a.gc());
58049 ytd(this, a);
58050 }
58051 function nXd(a, b) {
58052 UVd();
58053 VVd.call(this, b);
58054 this.a = a;
58055 }
58056 function KYd(a, b, c2) {
58057 this.a = a;
58058 xMd.call(this, b, c2, 2);
58059 }
58060 function B_b(a, b, c2, d) {
58061 v_b(this, a, b, c2, d);
58062 }
58063 function ige(a, b) {
58064 wfe();
58065 xfe.call(this, a);
58066 this.a = b;
58067 }
58068 function jgd(a) {
58069 this.b = new Psb();
58070 this.a = a;
58071 this.c = -1;
58072 }
58073 function MOb() {
58074 this.d = new f7c(0, 0);
58075 this.e = new Tqb();
58076 }
58077 function Nr(a) {
58078 qc.call(this, 0, 0);
58079 this.a = a;
58080 this.b = 0;
58081 }
58082 function ejc(a) {
58083 this.a = a;
58084 this.c = new Lqb();
58085 $ic(this);
58086 }
58087 function ju(a) {
58088 if (a.e.c != a.b) {
58089 throw vbb(new Apb());
58090 }
58091 }
58092 function bt(a) {
58093 if (a.c.e != a.a) {
58094 throw vbb(new Apb());
58095 }
58096 }
58097 function Tbb(a) {
58098 if (Fbb(a)) {
58099 return a | 0;
58100 }
58101 return pD(a);
58102 }
58103 function Bfe(a, b) {
58104 wfe();
58105 return new rge(a, b);
58106 }
58107 function SEd(a, b) {
58108 return a == null ? b == null : dfb(a, b);
58109 }
58110 function TEd(a, b) {
58111 return a == null ? b == null : efb(a, b);
58112 }
58113 function Npb(a, b, c2) {
58114 rqb(a.a, b);
58115 return Qpb(a, b.g, c2);
58116 }
58117 function Mlb(a, b, c2) {
58118 oCb(0, b, a.length);
58119 Klb(a, 0, b, c2);
58120 }
58121 function Dkb(a, b, c2) {
58122 wCb(b, a.c.length);
58123 aCb(a.c, b, c2);
58124 }
58125 function Dlb(a, b, c2) {
58126 var d;
58127 for (d = 0; d < b; ++d) {
58128 a[d] = c2;
58129 }
58130 }
58131 function qqb(a, b) {
58132 var c2;
58133 c2 = pqb(a);
58134 nmb(c2, b);
58135 return c2;
58136 }
58137 function Oz(a, b) {
58138 !a && (a = []);
58139 a[a.length] = b;
58140 return a;
58141 }
58142 function Brb(a, b) {
58143 return !(a.a.get(b) === void 0);
58144 }
58145 function Wyb(a, b) {
58146 return Nyb(new rzb(), new bzb(a), b);
58147 }
58148 function Itb(a) {
58149 return a == null ? ztb : new Ftb(uCb(a));
58150 }
58151 function tqb(a, b) {
58152 return JD(b, 22) && uqb(a, BD(b, 22));
58153 }
58154 function vqb(a, b) {
58155 return JD(b, 22) && wqb(a, BD(b, 22));
58156 }
58157 function Aub(a) {
58158 return Cub(a, 26) * ike + Cub(a, 27) * jke;
58159 }
58160 function MC(a) {
58161 return Array.isArray(a) && a.im === gcb;
58162 }
58163 function bg(a) {
58164 a.b ? bg(a.b) : a.d.dc() && a.f.c.Bc(a.e);
58165 }
58166 function $Nb(a, b) {
58167 P6c(a.c, b);
58168 a.b.c += b.a;
58169 a.b.d += b.b;
58170 }
58171 function ZNb(a, b) {
58172 $Nb(a, c7c(new f7c(b.a, b.b), a.c));
58173 }
58174 function BLb(a, b) {
58175 this.b = new Psb();
58176 this.a = a;
58177 this.c = b;
58178 }
58179 function OVb() {
58180 this.b = new $Vb();
58181 this.c = new SVb(this);
58182 }
58183 function oEb() {
58184 this.d = new CEb();
58185 this.e = new uEb(this);
58186 }
58187 function aCc() {
58188 ZBc();
58189 this.f = new Psb();
58190 this.e = new Psb();
58191 }
58192 function $Jc() {
58193 FJc();
58194 this.k = new Lqb();
58195 this.d = new Tqb();
58196 }
58197 function Rgd() {
58198 Rgd = ccb;
58199 Qgd = new Osd((Y9c(), s9c), 0);
58200 }
58201 function Mr() {
58202 Mr = ccb;
58203 Lr = new Nr(KC(SI, Uhe, 1, 0, 5, 1));
58204 }
58205 function gfc(a, b, c2) {
58206 bfc(c2, a, 1);
58207 Ekb(b, new Tfc(c2, a));
58208 }
58209 function hfc(a, b, c2) {
58210 cfc(c2, a, 1);
58211 Ekb(b, new dgc(c2, a));
58212 }
58213 function R$c(a, b, c2) {
58214 return Qqb(a, new aDb(b.a, c2.a));
58215 }
58216 function ACc(a, b, c2) {
58217 return -beb(a.f[b.p], a.f[c2.p]);
58218 }
58219 function mHb(a, b, c2) {
58220 var d;
58221 if (a) {
58222 d = a.i;
58223 d.c = b;
58224 d.b = c2;
58225 }
58226 }
58227 function nHb(a, b, c2) {
58228 var d;
58229 if (a) {
58230 d = a.i;
58231 d.d = b;
58232 d.a = c2;
58233 }
58234 }
58235 function c3c(a, b, c2) {
58236 a.a = -1;
58237 i3c(a, b.g + 1, c2);
58238 return a;
58239 }
58240 function Dod(a, b, c2) {
58241 c2 = _hd(a, BD(b, 49), 7, c2);
58242 return c2;
58243 }
58244 function JHd(a, b, c2) {
58245 c2 = _hd(a, BD(b, 49), 3, c2);
58246 return c2;
58247 }
58248 function JMd(a, b, c2) {
58249 this.a = a;
58250 BMd.call(this, b, c2, 22);
58251 }
58252 function UTd(a, b, c2) {
58253 this.a = a;
58254 BMd.call(this, b, c2, 14);
58255 }
58256 function eXd(a, b, c2, d) {
58257 UVd();
58258 nWd.call(this, a, b, c2, d);
58259 }
58260 function lXd(a, b, c2, d) {
58261 UVd();
58262 nWd.call(this, a, b, c2, d);
58263 }
58264 function FNd(a, b) {
58265 (b.Bb & ote) != 0 && !a.a.o && (a.a.o = b);
58266 }
58267 function MD(a) {
58268 return a != null && OD(a) && !(a.im === gcb);
58269 }
58270 function ID(a) {
58271 return !Array.isArray(a) && a.im === gcb;
58272 }
58273 function ed(a) {
58274 return JD(a, 15) ? BD(a, 15).Yc() : a.Kc();
58275 }
58276 function De(a) {
58277 return a.Qc(KC(SI, Uhe, 1, a.gc(), 5, 1));
58278 }
58279 function u1d(a, b) {
58280 return W1d(p1d(a, b)) ? b.Qh() : null;
58281 }
58282 function uvd(a) {
58283 a ? Ty(a, (Zfb(), Yfb)) : (Zfb(), Yfb);
58284 }
58285 function Sr(a) {
58286 this.a = (Mr(), Lr);
58287 this.d = BD(Qb(a), 47);
58288 }
58289 function qg(a, b, c2, d) {
58290 this.a = a;
58291 dg.call(this, a, b, c2, d);
58292 }
58293 function Yge(a) {
58294 Xge();
58295 this.a = 0;
58296 this.b = a - 1;
58297 this.c = 1;
58298 }
58299 function Yy(a) {
58300 Py(this);
58301 this.g = a;
58302 Ry(this);
58303 this._d();
58304 }
58305 function Wm(a) {
58306 if (a.c) {
58307 return a.c;
58308 }
58309 return a.c = a.Id();
58310 }
58311 function Xm(a) {
58312 if (a.d) {
58313 return a.d;
58314 }
58315 return a.d = a.Jd();
58316 }
58317 function Rl(a) {
58318 var b;
58319 b = a.c;
58320 return !b ? a.c = a.Dd() : b;
58321 }
58322 function fe(a) {
58323 var b;
58324 b = a.f;
58325 return !b ? a.f = a.Dc() : b;
58326 }
58327 function Ec(a) {
58328 var b;
58329 b = a.i;
58330 return !b ? a.i = a.bc() : b;
58331 }
58332 function Ffe(a) {
58333 wfe();
58334 return new Hge(10, a, 0);
58335 }
58336 function Ubb(a) {
58337 if (Fbb(a)) {
58338 return "" + a;
58339 }
58340 return qD(a);
58341 }
58342 function a4d(a) {
58343 if (a.e.j != a.d) {
58344 throw vbb(new Apb());
58345 }
58346 }
58347 function Nbb(a, b) {
58348 return zbb(kD(Fbb(a) ? Rbb(a) : a, b));
58349 }
58350 function Obb(a, b) {
58351 return zbb(lD(Fbb(a) ? Rbb(a) : a, b));
58352 }
58353 function Pbb(a, b) {
58354 return zbb(mD(Fbb(a) ? Rbb(a) : a, b));
58355 }
58356 function Dcb(a, b) {
58357 return Ecb((uCb(a), a), (uCb(b), b));
58358 }
58359 function Ddb(a, b) {
58360 return Kdb((uCb(a), a), (uCb(b), b));
58361 }
58362 function fx(a, b) {
58363 return Qb(b), a.a.Ad(b) && !a.b.Ad(b);
58364 }
58365 function dD(a, b) {
58366 return TC(a.l & b.l, a.m & b.m, a.h & b.h);
58367 }
58368 function jD(a, b) {
58369 return TC(a.l | b.l, a.m | b.m, a.h | b.h);
58370 }
58371 function rD(a, b) {
58372 return TC(a.l ^ b.l, a.m ^ b.m, a.h ^ b.h);
58373 }
58374 function QAb(a, b) {
58375 return TAb(a, (uCb(b), new Rxb(b)));
58376 }
58377 function RAb(a, b) {
58378 return TAb(a, (uCb(b), new Txb(b)));
58379 }
58380 function g1b(a) {
58381 return z0b(), BD(a, 11).e.c.length != 0;
58382 }
58383 function l1b(a) {
58384 return z0b(), BD(a, 11).g.c.length != 0;
58385 }
58386 function bac(a, b) {
58387 I9b();
58388 return Kdb(b.a.o.a, a.a.o.a);
58389 }
58390 function Rnc(a, b, c2) {
58391 return Snc(a, BD(b, 11), BD(c2, 11));
58392 }
58393 function koc(a) {
58394 if (a.e) {
58395 return poc(a.e);
58396 }
58397 return null;
58398 }
58399 function Iub(a) {
58400 if (!a.d) {
58401 a.d = a.b.Kc();
58402 a.c = a.b.gc();
58403 }
58404 }
58405 function pBb(a, b, c2) {
58406 if (a.a.Mb(c2)) {
58407 a.b = true;
58408 b.td(c2);
58409 }
58410 }
58411 function _vb(a, b) {
58412 if (a < 0 || a >= b) {
58413 throw vbb(new rcb());
58414 }
58415 }
58416 function Pyb(a, b, c2) {
58417 NC(b, 0, Bzb(b[0], c2[0]));
58418 return b;
58419 }
58420 function _yc(a, b, c2) {
58421 b.Ye(c2, Edb(ED(Ohb(a.b, c2))) * a.a);
58422 }
58423 function n6c(a, b, c2) {
58424 i6c();
58425 return m6c(a, b) && m6c(a, c2);
58426 }
58427 function tcd(a) {
58428 rcd();
58429 return !a.Hc(ncd) && !a.Hc(pcd);
58430 }
58431 function D6c(a) {
58432 return new f7c(a.c + a.b / 2, a.d + a.a / 2);
58433 }
58434 function oOd(a, b) {
58435 return b.kh() ? xid(a.b, BD(b, 49)) : b;
58436 }
58437 function bvb(a, b) {
58438 this.e = a;
58439 this.d = (b & 64) != 0 ? b | oie : b;
58440 }
58441 function qvb(a, b) {
58442 this.c = 0;
58443 this.d = a;
58444 this.b = b | 64 | oie;
58445 }
58446 function gub(a) {
58447 this.b = new Skb(11);
58448 this.a = (ipb(), a);
58449 }
58450 function Qwb(a) {
58451 this.b = null;
58452 this.a = (ipb(), !a ? fpb : a);
58453 }
58454 function nHc(a) {
58455 this.a = lHc(a.a);
58456 this.b = new Tkb(a.b);
58457 }
58458 function Pzd(a) {
58459 this.b = a;
58460 Oyd.call(this, a);
58461 Ozd(this);
58462 }
58463 function Xzd(a) {
58464 this.b = a;
58465 bzd.call(this, a);
58466 Wzd(this);
58467 }
58468 function jUd(a, b, c2) {
58469 this.a = a;
58470 gUd.call(this, b, c2, 5, 6);
58471 }
58472 function Y5d(a, b, c2, d) {
58473 this.b = a;
58474 xMd.call(this, b, c2, d);
58475 }
58476 function nSd(a, b, c2, d, e) {
58477 oSd.call(this, a, b, c2, d, e, -1);
58478 }
58479 function DSd(a, b, c2, d, e) {
58480 ESd.call(this, a, b, c2, d, e, -1);
58481 }
58482 function cUd(a, b, c2, d) {
58483 xMd.call(this, a, b, c2);
58484 this.b = d;
58485 }
58486 function i5d(a, b, c2, d) {
58487 pMd.call(this, a, b, c2);
58488 this.b = d;
58489 }
58490 function x0d(a) {
58491 Wud.call(this, a, false);
58492 this.a = false;
58493 }
58494 function Lj(a, b) {
58495 this.b = a;
58496 sj.call(this, a.b);
58497 this.a = b;
58498 }
58499 function px(a, b) {
58500 im();
58501 ox.call(this, a, Dm(new amb(b)));
58502 }
58503 function Cfe(a, b) {
58504 wfe();
58505 return new Dge(a, b, 0);
58506 }
58507 function Efe(a, b) {
58508 wfe();
58509 return new Dge(6, a, b);
58510 }
58511 function nfb(a, b) {
58512 return dfb(a.substr(0, b.length), b);
58513 }
58514 function Mhb(a, b) {
58515 return ND(b) ? Qhb(a, b) : !!irb(a.f, b);
58516 }
58517 function Rrb(a, b) {
58518 uCb(b);
58519 while (a.Ob()) {
58520 b.td(a.Pb());
58521 }
58522 }
58523 function Vgb(a, b, c2) {
58524 Hgb();
58525 this.e = a;
58526 this.d = b;
58527 this.a = c2;
58528 }
58529 function amc(a, b, c2, d) {
58530 var e;
58531 e = a.i;
58532 e.i = b;
58533 e.a = c2;
58534 e.b = d;
58535 }
58536 function xJc(a) {
58537 var b;
58538 b = a;
58539 while (b.f) {
58540 b = b.f;
58541 }
58542 return b;
58543 }
58544 function fkb(a) {
58545 var b;
58546 b = bkb(a);
58547 sCb(b != null);
58548 return b;
58549 }
58550 function gkb(a) {
58551 var b;
58552 b = ckb(a);
58553 sCb(b != null);
58554 return b;
58555 }
58556 function cv(a, b) {
58557 var c2;
58558 c2 = a.a.gc();
58559 Sb(b, c2);
58560 return c2 - b;
58561 }
58562 function Glb(a, b) {
58563 var c2;
58564 for (c2 = 0; c2 < b; ++c2) {
58565 a[c2] = false;
58566 }
58567 }
58568 function Clb(a, b, c2, d) {
58569 var e;
58570 for (e = b; e < c2; ++e) {
58571 a[e] = d;
58572 }
58573 }
58574 function ylb(a, b, c2, d) {
58575 oCb(b, c2, a.length);
58576 Clb(a, b, c2, d);
58577 }
58578 function Vvb(a, b, c2) {
58579 _vb(c2, a.a.c.length);
58580 Nkb(a.a, c2, b);
58581 }
58582 function Lyb(a, b, c2) {
58583 this.c = a;
58584 this.a = b;
58585 mmb();
58586 this.b = c2;
58587 }
58588 function Qpb(a, b, c2) {
58589 var d;
58590 d = a.b[b];
58591 a.b[b] = c2;
58592 return d;
58593 }
58594 function Qqb(a, b) {
58595 var c2;
58596 c2 = a.a.zc(b, a);
58597 return c2 == null;
58598 }
58599 function zjb(a) {
58600 if (!a) {
58601 throw vbb(new utb());
58602 }
58603 return a.d;
58604 }
58605 function vCb(a, b) {
58606 if (a == null) {
58607 throw vbb(new Heb(b));
58608 }
58609 }
58610 function Goc(a, b) {
58611 if (!b) {
58612 return false;
58613 }
58614 return ye(a, b);
58615 }
58616 function K2c(a, b, c2) {
58617 C2c(a, b.g, c2);
58618 rqb(a.c, b);
58619 return a;
58620 }
58621 function vVb(a) {
58622 tVb(a, (ead(), aad));
58623 a.d = true;
58624 return a;
58625 }
58626 function c2d(a) {
58627 !a.j && i2d(a, d1d(a.g, a.b));
58628 return a.j;
58629 }
58630 function nlb(a) {
58631 yCb(a.b != -1);
58632 Kkb(a.c, a.a = a.b);
58633 a.b = -1;
58634 }
58635 function Uhb(a) {
58636 a.f = new lrb(a);
58637 a.g = new Frb(a);
58638 zpb(a);
58639 }
58640 function Plb(a) {
58641 return new YAb(null, Olb(a, a.length));
58642 }
58643 function ul(a) {
58644 return new Sr(new xl(a.a.length, a.a));
58645 }
58646 function iD(a) {
58647 return TC(~a.l & Eje, ~a.m & Eje, ~a.h & Fje);
58648 }
58649 function OD(a) {
58650 return typeof a === Jhe || typeof a === Nhe;
58651 }
58652 function D9d(a) {
58653 return a == Pje ? Nwe : a == Qje ? "-INF" : "" + a;
58654 }
58655 function F9d(a) {
58656 return a == Pje ? Nwe : a == Qje ? "-INF" : "" + a;
58657 }
58658 function yRb(a, b) {
58659 return a > 0 ? $wnd.Math.log(a / b) : -100;
58660 }
58661 function ueb(a, b) {
58662 return ybb(a, b) < 0 ? -1 : ybb(a, b) > 0 ? 1 : 0;
58663 }
58664 function HMb(a, b, c2) {
58665 return IMb(a, BD(b, 46), BD(c2, 167));
58666 }
58667 function iq(a, b) {
58668 return BD(Rl(Wm(a.a)).Xb(b), 42).cd();
58669 }
58670 function Olb(a, b) {
58671 return avb(b, a.length), new vvb(a, b);
58672 }
58673 function Pyd(a, b) {
58674 this.d = a;
58675 Fyd.call(this, a);
58676 this.e = b;
58677 }
58678 function Lub(a) {
58679 this.d = (uCb(a), a);
58680 this.a = 0;
58681 this.c = rie;
58682 }
58683 function rge(a, b) {
58684 xfe.call(this, 1);
58685 this.a = a;
58686 this.b = b;
58687 }
58688 function Rzb(a, b) {
58689 !a.c ? Ekb(a.b, b) : Rzb(a.c, b);
58690 return a;
58691 }
58692 function uB(a, b, c2) {
58693 var d;
58694 d = tB(a, b);
58695 vB(a, b, c2);
58696 return d;
58697 }
58698 function ZBb(a, b) {
58699 var c2;
58700 c2 = a.slice(0, b);
58701 return PC(c2, a);
58702 }
58703 function Flb(a, b, c2) {
58704 var d;
58705 for (d = 0; d < b; ++d) {
58706 NC(a, d, c2);
58707 }
58708 }
58709 function ffb(a, b, c2, d, e) {
58710 while (b < c2) {
58711 d[e++] = bfb(a, b++);
58712 }
58713 }
58714 function hLb(a, b) {
58715 return Kdb(a.c.c + a.c.b, b.c.c + b.c.b);
58716 }
58717 function Axb(a, b) {
58718 return Iwb(a.a, b, (Bcb(), zcb)) == null;
58719 }
58720 function Vsb(a, b) {
58721 Gsb(a.d, b, a.b.b, a.b);
58722 ++a.a;
58723 a.c = null;
58724 }
58725 function d3d(a, b) {
58726 JLd(a, JD(b, 153) ? b : BD(b, 1937).gl());
58727 }
58728 function hkc(a, b) {
58729 MAb(NAb(a.Oc(), new Rkc()), new Tkc(b));
58730 }
58731 function kkc(a, b, c2, d, e) {
58732 jkc(a, BD(Qc(b.k, c2), 15), c2, d, e);
58733 }
58734 function lOc(a) {
58735 a.s = NaN;
58736 a.c = NaN;
58737 mOc(a, a.e);
58738 mOc(a, a.j);
58739 }
58740 function it(a) {
58741 a.a = null;
58742 a.e = null;
58743 Uhb(a.b);
58744 a.d = 0;
58745 ++a.c;
58746 }
58747 function gKc(a) {
58748 return $wnd.Math.abs(a.d.e - a.e.e) - a.a;
58749 }
58750 function MAd(a, b, c2) {
58751 return BD(a.c._c(b, BD(c2, 133)), 42);
58752 }
58753 function os() {
58754 hs();
58755 return OC(GC(yG, 1), Kie, 538, 0, [gs]);
58756 }
58757 function VPb(a) {
58758 QPb();
58759 return Xod(jtd(a)) == Xod(ltd(a));
58760 }
58761 function aRb(a) {
58762 _Qb.call(this);
58763 this.a = a;
58764 Ekb(a.a, this);
58765 }
58766 function tPc(a, b) {
58767 this.d = DPc(a);
58768 this.c = b;
58769 this.a = 0.5 * b;
58770 }
58771 function A6d() {
58772 $rb.call(this);
58773 this.a = true;
58774 this.b = true;
58775 }
58776 function aLd(a) {
58777 return (a.i == null && TKd(a), a.i).length;
58778 }
58779 function oRd(a) {
58780 return JD(a, 99) && (BD(a, 18).Bb & ote) != 0;
58781 }
58782 function w2d(a, b) {
58783 ++a.j;
58784 t3d(a, a.i, b);
58785 v2d(a, BD(b, 332));
58786 }
58787 function vId(a, b) {
58788 b = a.nk(null, b);
58789 return uId(a, null, b);
58790 }
58791 function ytd(a, b) {
58792 a.hi() && (b = Dtd(a, b));
58793 return a.Wh(b);
58794 }
58795 function mdb(a, b, c2) {
58796 var d;
58797 d = ldb(a, b);
58798 zdb(c2, d);
58799 return d;
58800 }
58801 function ldb(a, b) {
58802 var c2;
58803 c2 = new jdb();
58804 c2.j = a;
58805 c2.d = b;
58806 return c2;
58807 }
58808 function Qb(a) {
58809 if (a == null) {
58810 throw vbb(new Geb());
58811 }
58812 return a;
58813 }
58814 function Fc(a) {
58815 var b;
58816 b = a.j;
58817 return !b ? a.j = new Cw(a) : b;
58818 }
58819 function Vi(a) {
58820 var b;
58821 b = a.f;
58822 return !b ? a.f = new Rj(a) : b;
58823 }
58824 function ci(a) {
58825 var b;
58826 return b = a.k, !b ? a.k = new th(a) : b;
58827 }
58828 function Uc(a) {
58829 var b;
58830 return b = a.k, !b ? a.k = new th(a) : b;
58831 }
58832 function Pc(a) {
58833 var b;
58834 return b = a.g, !b ? a.g = new lh(a) : b;
58835 }
58836 function Yi(a) {
58837 var b;
58838 return b = a.i, !b ? a.i = new Ci(a) : b;
58839 }
58840 function qo(a) {
58841 var b;
58842 b = a.d;
58843 return !b ? a.d = new ap(a) : b;
58844 }
58845 function Fb(a) {
58846 Qb(a);
58847 return JD(a, 475) ? BD(a, 475) : fcb(a);
58848 }
58849 function Ix(a) {
58850 if (JD(a, 607)) {
58851 return a;
58852 }
58853 return new by(a);
58854 }
58855 function qj(a, b) {
58856 Pb(b, a.c.b.c.gc());
58857 return new Fj(a, b);
58858 }
58859 function Dfe(a, b, c2) {
58860 wfe();
58861 return new zge(a, b, c2);
58862 }
58863 function NC(a, b, c2) {
58864 qCb(c2 == null || FC(a, c2));
58865 return a[b] = c2;
58866 }
58867 function bv(a, b) {
58868 var c2;
58869 c2 = a.a.gc();
58870 Pb(b, c2);
58871 return c2 - 1 - b;
58872 }
58873 function Afb(a, b) {
58874 a.a += String.fromCharCode(b);
58875 return a;
58876 }
58877 function Kfb(a, b) {
58878 a.a += String.fromCharCode(b);
58879 return a;
58880 }
58881 function ovb(a, b) {
58882 uCb(b);
58883 while (a.c < a.d) {
58884 a.ze(b, a.c++);
58885 }
58886 }
58887 function Ohb(a, b) {
58888 return ND(b) ? Phb(a, b) : Wd(irb(a.f, b));
58889 }
58890 function ZPb(a, b) {
58891 QPb();
58892 return a == jtd(b) ? ltd(b) : jtd(b);
58893 }
58894 function isd(a, b) {
58895 Qpd(a, new yC(b.f != null ? b.f : "" + b.g));
58896 }
58897 function ksd(a, b) {
58898 Qpd(a, new yC(b.f != null ? b.f : "" + b.g));
58899 }
58900 function dVb(a) {
58901 this.b = new Rkb();
58902 this.a = new Rkb();
58903 this.c = a;
58904 }
58905 function H1b(a) {
58906 this.c = new d7c();
58907 this.a = new Rkb();
58908 this.b = a;
58909 }
58910 function pRb(a) {
58911 _Qb.call(this);
58912 this.a = new d7c();
58913 this.c = a;
58914 }
58915 function yC(a) {
58916 if (a == null) {
58917 throw vbb(new Geb());
58918 }
58919 this.a = a;
58920 }
58921 function HA(a) {
58922 fA();
58923 this.b = new Rkb();
58924 this.a = a;
58925 sA(this, a);
58926 }
58927 function v4c(a) {
58928 this.c = a;
58929 this.a = new Psb();
58930 this.b = new Psb();
58931 }
58932 function GB() {
58933 GB = ccb;
58934 EB = new HB(false);
58935 FB = new HB(true);
58936 }
58937 function im() {
58938 im = ccb;
58939 Ql();
58940 hm = new ux((mmb(), mmb(), jmb));
58941 }
58942 function yx() {
58943 yx = ccb;
58944 Ql();
58945 xx = new zx((mmb(), mmb(), lmb));
58946 }
58947 function NFd() {
58948 NFd = ccb;
58949 MFd = BZd();
58950 !!(jGd(), PFd) && DZd();
58951 }
58952 function aac(a, b) {
58953 I9b();
58954 return BD(Mpb(a, b.d), 15).Fc(b);
58955 }
58956 function pTb(a, b, c2, d) {
58957 return c2 == 0 || (c2 - d) / c2 < a.e || b >= a.g;
58958 }
58959 function NHc(a, b, c2) {
58960 var d;
58961 d = THc(a, b, c2);
58962 return MHc(a, d);
58963 }
58964 function Qpd(a, b) {
58965 var c2;
58966 c2 = a.a.length;
58967 tB(a, c2);
58968 vB(a, c2, b);
58969 }
58970 function gCb(a, b) {
58971 var c2;
58972 c2 = console[a];
58973 c2.call(console, b);
58974 }
58975 function Bvd(a, b) {
58976 var c2;
58977 ++a.j;
58978 c2 = a.Vi();
58979 a.Ii(a.oi(c2, b));
58980 }
58981 function E1c(a, b, c2) {
58982 BD(b.b, 65);
58983 Hkb(b.a, new L1c(a, c2, b));
58984 }
58985 function oXd(a, b, c2) {
58986 VVd.call(this, b);
58987 this.a = a;
58988 this.b = c2;
58989 }
58990 function Dge(a, b, c2) {
58991 xfe.call(this, a);
58992 this.a = b;
58993 this.b = c2;
58994 }
58995 function dYd(a, b, c2) {
58996 this.a = a;
58997 lVd.call(this, b);
58998 this.b = c2;
58999 }
59000 function f0d(a, b, c2) {
59001 this.a = a;
59002 mxd.call(this, 8, b, null, c2);
59003 }
59004 function z1d(a) {
59005 this.a = (uCb(Rve), Rve);
59006 this.b = a;
59007 new oUd();
59008 }
59009 function ct(a) {
59010 this.c = a;
59011 this.b = this.c.a;
59012 this.a = this.c.e;
59013 }
59014 function usb(a) {
59015 this.c = a;
59016 this.b = a.a.d.a;
59017 ypb(a.a.e, this);
59018 }
59019 function uib(a) {
59020 yCb(a.c != -1);
59021 a.d.$c(a.c);
59022 a.b = a.c;
59023 a.c = -1;
59024 }
59025 function U6c(a) {
59026 return $wnd.Math.sqrt(a.a * a.a + a.b * a.b);
59027 }
59028 function Uvb(a, b) {
59029 return _vb(b, a.a.c.length), Ikb(a.a, b);
59030 }
59031 function Hb(a, b) {
59032 return PD(a) === PD(b) || a != null && pb(a, b);
59033 }
59034 function oAb(a) {
59035 if (0 >= a) {
59036 return new yAb();
59037 }
59038 return pAb(a - 1);
59039 }
59040 function Nfe(a) {
59041 if (!bfe)
59042 return false;
59043 return Qhb(bfe, a);
59044 }
59045 function Ehe(a) {
59046 if (a)
59047 return a.dc();
59048 return !a.Kc().Ob();
59049 }
59050 function Q_b(a) {
59051 if (!a.a && !!a.c) {
59052 return a.c.b;
59053 }
59054 return a.a;
59055 }
59056 function LHd(a) {
59057 !a.a && (a.a = new xMd(m5, a, 4));
59058 return a.a;
59059 }
59060 function LQd(a) {
59061 !a.d && (a.d = new xMd(j5, a, 1));
59062 return a.d;
59063 }
59064 function uCb(a) {
59065 if (a == null) {
59066 throw vbb(new Geb());
59067 }
59068 return a;
59069 }
59070 function Qzb(a) {
59071 if (!a.c) {
59072 a.d = true;
59073 Szb(a);
59074 } else {
59075 a.c.He();
59076 }
59077 }
59078 function Tzb(a) {
59079 if (!a.c) {
59080 Uzb(a);
59081 a.d = true;
59082 } else {
59083 Tzb(a.c);
59084 }
59085 }
59086 function Kpb(a) {
59087 Ae(a.a);
59088 a.b = KC(SI, Uhe, 1, a.b.length, 5, 1);
59089 }
59090 function qlc(a, b) {
59091 return beb(b.j.c.length, a.j.c.length);
59092 }
59093 function igd(a, b) {
59094 a.c < 0 || a.b.b < a.c ? Fsb(a.b, b) : a.a._e(b);
59095 }
59096 function Did(a, b) {
59097 var c2;
59098 c2 = a.Yg(b);
59099 c2 >= 0 ? a.Bh(c2) : vid(a, b);
59100 }
59101 function WHc(a) {
59102 var b, c2;
59103 b = a.c.i.c;
59104 c2 = a.d.i.c;
59105 return b == c2;
59106 }
59107 function Wwd(a) {
59108 if (a.p != 4)
59109 throw vbb(new Ydb());
59110 return a.e;
59111 }
59112 function Vwd(a) {
59113 if (a.p != 3)
59114 throw vbb(new Ydb());
59115 return a.e;
59116 }
59117 function Ywd(a) {
59118 if (a.p != 6)
59119 throw vbb(new Ydb());
59120 return a.f;
59121 }
59122 function fxd(a) {
59123 if (a.p != 6)
59124 throw vbb(new Ydb());
59125 return a.k;
59126 }
59127 function cxd(a) {
59128 if (a.p != 3)
59129 throw vbb(new Ydb());
59130 return a.j;
59131 }
59132 function dxd(a) {
59133 if (a.p != 4)
59134 throw vbb(new Ydb());
59135 return a.j;
59136 }
59137 function AYd(a) {
59138 !a.b && (a.b = new RYd(new NYd()));
59139 return a.b;
59140 }
59141 function $1d(a) {
59142 a.c == -2 && e2d(a, X0d(a.g, a.b));
59143 return a.c;
59144 }
59145 function pdb(a, b) {
59146 var c2;
59147 c2 = ldb("", a);
59148 c2.n = b;
59149 c2.i = 1;
59150 return c2;
59151 }
59152 function MNb(a, b) {
59153 $Nb(BD(b.b, 65), a);
59154 Hkb(b.a, new RNb(a));
59155 }
59156 function Cnd(a, b) {
59157 wtd((!a.a && (a.a = new fTd(a, a)), a.a), b);
59158 }
59159 function Qzd(a, b) {
59160 this.b = a;
59161 Pyd.call(this, a, b);
59162 Ozd(this);
59163 }
59164 function Yzd(a, b) {
59165 this.b = a;
59166 czd.call(this, a, b);
59167 Wzd(this);
59168 }
59169 function Ms(a, b, c2, d) {
59170 Wo.call(this, a, b);
59171 this.d = c2;
59172 this.a = d;
59173 }
59174 function $o(a, b, c2, d) {
59175 Wo.call(this, a, c2);
59176 this.a = b;
59177 this.f = d;
59178 }
59179 function iy(a, b) {
59180 Pp.call(this, umb(Qb(a), Qb(b)));
59181 this.a = b;
59182 }
59183 function cae() {
59184 fod.call(this, Ewe, (p8d(), o8d));
59185 $9d(this);
59186 }
59187 function AZd() {
59188 fod.call(this, _ve, (LFd(), KFd));
59189 uZd(this);
59190 }
59191 function T0c() {
59192 $r.call(this, "DELAUNAY_TRIANGULATION", 0);
59193 }
59194 function vfb(a) {
59195 return String.fromCharCode.apply(null, a);
59196 }
59197 function Rhb(a, b, c2) {
59198 return ND(b) ? Shb(a, b, c2) : jrb(a.f, b, c2);
59199 }
59200 function tmb(a) {
59201 mmb();
59202 return !a ? (ipb(), ipb(), hpb) : a.ve();
59203 }
59204 function d2c(a, b, c2) {
59205 Y1c();
59206 return c2.pg(a, BD(b.cd(), 146));
59207 }
59208 function ix(a, b) {
59209 ex();
59210 return new gx(new il(a), new Uk(b));
59211 }
59212 function Iu(a) {
59213 Xj(a, Mie);
59214 return Oy(wbb(wbb(5, a), a / 10 | 0));
59215 }
59216 function Vm() {
59217 Vm = ccb;
59218 Um = new wx(OC(GC(CK, 1), zie, 42, 0, []));
59219 }
59220 function hob(a) {
59221 !a.d && (a.d = new lnb(a.c.Cc()));
59222 return a.d;
59223 }
59224 function eob(a) {
59225 !a.a && (a.a = new Gob(a.c.vc()));
59226 return a.a;
59227 }
59228 function gob(a) {
59229 !a.b && (a.b = new zob(a.c.ec()));
59230 return a.b;
59231 }
59232 function keb(a, b) {
59233 while (b-- > 0) {
59234 a = a << 1 | (a < 0 ? 1 : 0);
59235 }
59236 return a;
59237 }
59238 function wtb(a, b) {
59239 return PD(a) === PD(b) || a != null && pb(a, b);
59240 }
59241 function Gbc(a, b) {
59242 return Bcb(), BD(b.b, 19).a < a ? true : false;
59243 }
59244 function Hbc(a, b) {
59245 return Bcb(), BD(b.a, 19).a < a ? true : false;
59246 }
59247 function Mpb(a, b) {
59248 return tqb(a.a, b) ? a.b[BD(b, 22).g] : null;
59249 }
59250 function kcb(a, b, c2, d) {
59251 a.a = qfb(a.a, 0, b) + ("" + d) + pfb(a.a, c2);
59252 }
59253 function OJb(a, b) {
59254 a.u.Hc((rcd(), ncd)) && MJb(a, b);
59255 QJb(a, b);
59256 }
59257 function bfb(a, b) {
59258 BCb(b, a.length);
59259 return a.charCodeAt(b);
59260 }
59261 function vtb() {
59262 hz.call(this, "There is no more element.");
59263 }
59264 function xkb(a) {
59265 this.d = a;
59266 this.a = this.d.b;
59267 this.b = this.d.c;
59268 }
59269 function kEb(a) {
59270 a.b = false;
59271 a.c = false;
59272 a.d = false;
59273 a.a = false;
59274 }
59275 function Znd(a, b, c2, d) {
59276 Ynd(a, b, c2, false);
59277 LPd(a, d);
59278 return a;
59279 }
59280 function h3c(a) {
59281 a.j.c = KC(SI, Uhe, 1, 0, 5, 1);
59282 a.a = -1;
59283 return a;
59284 }
59285 function Old(a) {
59286 !a.c && (a.c = new y5d(z2, a, 5, 8));
59287 return a.c;
59288 }
59289 function Nld(a) {
59290 !a.b && (a.b = new y5d(z2, a, 4, 7));
59291 return a.b;
59292 }
59293 function Kkd(a) {
59294 !a.n && (a.n = new cUd(D2, a, 1, 7));
59295 return a.n;
59296 }
59297 function Yod(a) {
59298 !a.c && (a.c = new cUd(F2, a, 9, 9));
59299 return a.c;
59300 }
59301 function a2d(a) {
59302 a.e == Gwe && g2d(a, a1d(a.g, a.b));
59303 return a.e;
59304 }
59305 function b2d(a) {
59306 a.f == Gwe && h2d(a, b1d(a.g, a.b));
59307 return a.f;
59308 }
59309 function Ah(a) {
59310 var b;
59311 b = a.b;
59312 !b && (a.b = b = new Ph(a));
59313 return b;
59314 }
59315 function Ae(a) {
59316 var b;
59317 for (b = a.Kc(); b.Ob(); ) {
59318 b.Pb();
59319 b.Qb();
59320 }
59321 }
59322 function Fg(a) {
59323 ag(a.d);
59324 if (a.d.d != a.c) {
59325 throw vbb(new Apb());
59326 }
59327 }
59328 function Xx(a, b) {
59329 this.b = a;
59330 this.c = b;
59331 this.a = new Gqb(this.b);
59332 }
59333 function Zeb(a, b, c2) {
59334 this.a = Zie;
59335 this.d = a;
59336 this.b = b;
59337 this.c = c2;
59338 }
59339 function Mub(a, b) {
59340 this.d = (uCb(a), a);
59341 this.a = 16449;
59342 this.c = b;
59343 }
59344 function nqd(a, b) {
59345 ctd(a, Edb(Xpd(b, "x")), Edb(Xpd(b, "y")));
59346 }
59347 function Aqd(a, b) {
59348 ctd(a, Edb(Xpd(b, "x")), Edb(Xpd(b, "y")));
59349 }
59350 function JAb(a, b) {
59351 Uzb(a);
59352 return new YAb(a, new qBb(b, a.a));
59353 }
59354 function NAb(a, b) {
59355 Uzb(a);
59356 return new YAb(a, new IBb(b, a.a));
59357 }
59358 function OAb(a, b) {
59359 Uzb(a);
59360 return new bAb(a, new wBb(b, a.a));
59361 }
59362 function PAb(a, b) {
59363 Uzb(a);
59364 return new vAb(a, new CBb(b, a.a));
59365 }
59366 function Cy(a, b) {
59367 return new Ay(BD(Qb(a), 62), BD(Qb(b), 62));
59368 }
59369 function PWb(a, b) {
59370 LWb();
59371 return Kdb((uCb(a), a), (uCb(b), b));
59372 }
59373 function fPb() {
59374 cPb();
59375 return OC(GC(GO, 1), Kie, 481, 0, [bPb]);
59376 }
59377 function o_c() {
59378 i_c();
59379 return OC(GC(N_, 1), Kie, 482, 0, [h_c]);
59380 }
59381 function x_c() {
59382 s_c();
59383 return OC(GC(O_, 1), Kie, 551, 0, [r_c]);
59384 }
59385 function X0c() {
59386 R0c();
59387 return OC(GC(W_, 1), Kie, 530, 0, [Q0c]);
59388 }
59389 function cEc(a) {
59390 this.a = new Rkb();
59391 this.e = KC(WD, nie, 48, a, 0, 2);
59392 }
59393 function l$b(a, b, c2, d) {
59394 this.a = a;
59395 this.e = b;
59396 this.d = c2;
59397 this.c = d;
59398 }
59399 function QIc(a, b, c2, d) {
59400 this.a = a;
59401 this.c = b;
59402 this.b = c2;
59403 this.d = d;
59404 }
59405 function rKc(a, b, c2, d) {
59406 this.c = a;
59407 this.b = b;
59408 this.a = c2;
59409 this.d = d;
59410 }
59411 function WKc(a, b, c2, d) {
59412 this.c = a;
59413 this.b = b;
59414 this.d = c2;
59415 this.a = d;
59416 }
59417 function J6c(a, b, c2, d) {
59418 this.c = a;
59419 this.d = b;
59420 this.b = c2;
59421 this.a = d;
59422 }
59423 function gPc(a, b, c2, d) {
59424 this.a = a;
59425 this.d = b;
59426 this.c = c2;
59427 this.b = d;
59428 }
59429 function Blc(a, b, c2, d) {
59430 $r.call(this, a, b);
59431 this.a = c2;
59432 this.b = d;
59433 }
59434 function Ggd(a, b, c2, d) {
59435 this.a = a;
59436 this.c = b;
59437 this.d = c2;
59438 this.b = d;
59439 }
59440 function pec(a, b, c2) {
59441 Pmc(a.a, c2);
59442 dmc(c2);
59443 enc(a.b, c2);
59444 xmc(b, c2);
59445 }
59446 function Pid(a, b, c2) {
59447 var d, e;
59448 d = QEd(a);
59449 e = b.Kh(c2, d);
59450 return e;
59451 }
59452 function KPb(a, b) {
59453 var c2, d;
59454 c2 = a / b;
59455 d = QD(c2);
59456 c2 > d && ++d;
59457 return d;
59458 }
59459 function Nnd(a) {
59460 var b, c2;
59461 c2 = (b = new UQd(), b);
59462 NQd(c2, a);
59463 return c2;
59464 }
59465 function Ond(a) {
59466 var b, c2;
59467 c2 = (b = new UQd(), b);
59468 RQd(c2, a);
59469 return c2;
59470 }
59471 function hqd(a, b) {
59472 var c2;
59473 c2 = Ohb(a.f, b);
59474 Yqd(b, c2);
59475 return null;
59476 }
59477 function JZb(a) {
59478 var b;
59479 b = P2b(a);
59480 if (b) {
59481 return b;
59482 }
59483 return null;
59484 }
59485 function Wod(a) {
59486 !a.b && (a.b = new cUd(B2, a, 12, 3));
59487 return a.b;
59488 }
59489 function YEd(a) {
59490 return a != null && hnb(GEd, a.toLowerCase());
59491 }
59492 function ied(a, b) {
59493 return Kdb(red(a) * qed(a), red(b) * qed(b));
59494 }
59495 function jed(a, b) {
59496 return Kdb(red(a) * qed(a), red(b) * qed(b));
59497 }
59498 function wEb(a, b) {
59499 return Kdb(a.d.c + a.d.b / 2, b.d.c + b.d.b / 2);
59500 }
59501 function UVb(a, b) {
59502 return Kdb(a.g.c + a.g.b / 2, b.g.c + b.g.b / 2);
59503 }
59504 function pQb(a, b, c2) {
59505 c2.a ? eld(a, b.b - a.f / 2) : dld(a, b.a - a.g / 2);
59506 }
59507 function prd(a, b, c2, d) {
59508 this.a = a;
59509 this.b = b;
59510 this.c = c2;
59511 this.d = d;
59512 }
59513 function ord(a, b, c2, d) {
59514 this.a = a;
59515 this.b = b;
59516 this.c = c2;
59517 this.d = d;
59518 }
59519 function JVd(a, b, c2, d) {
59520 this.e = a;
59521 this.a = b;
59522 this.c = c2;
59523 this.d = d;
59524 }
59525 function ZVd(a, b, c2, d) {
59526 this.a = a;
59527 this.c = b;
59528 this.d = c2;
59529 this.b = d;
59530 }
59531 function cXd(a, b, c2, d) {
59532 UVd();
59533 mWd.call(this, b, c2, d);
59534 this.a = a;
59535 }
59536 function jXd(a, b, c2, d) {
59537 UVd();
59538 mWd.call(this, b, c2, d);
59539 this.a = a;
59540 }
59541 function Ng(a, b) {
59542 this.a = a;
59543 Hg.call(this, a, BD(a.d, 15).Zc(b));
59544 }
59545 function ZBd(a) {
59546 this.f = a;
59547 this.c = this.f.e;
59548 a.f > 0 && YBd(this);
59549 }
59550 function lBb(a, b, c2, d) {
59551 this.b = a;
59552 this.c = d;
59553 nvb.call(this, b, c2);
59554 }
59555 function tib(a) {
59556 sCb(a.b < a.d.gc());
59557 return a.d.Xb(a.c = a.b++);
59558 }
59559 function Osb(a) {
59560 a.a.a = a.c;
59561 a.c.b = a.a;
59562 a.a.b = a.c.a = null;
59563 a.b = 0;
59564 }
59565 function u_b(a, b) {
59566 a.b = b.b;
59567 a.c = b.c;
59568 a.d = b.d;
59569 a.a = b.a;
59570 return a;
59571 }
59572 function Ry(a) {
59573 if (a.n) {
59574 a.e !== Sie && a._d();
59575 a.j = null;
59576 }
59577 return a;
59578 }
59579 function FD(a) {
59580 CCb(a == null || OD(a) && !(a.im === gcb));
59581 return a;
59582 }
59583 function p4b(a) {
59584 this.b = new Rkb();
59585 Gkb(this.b, this.b);
59586 this.a = a;
59587 }
59588 function QPb() {
59589 QPb = ccb;
59590 PPb = new Rkb();
59591 OPb = new Lqb();
59592 NPb = new Rkb();
59593 }
59594 function mmb() {
59595 mmb = ccb;
59596 jmb = new xmb();
59597 kmb = new Qmb();
59598 lmb = new Ymb();
59599 }
59600 function ipb() {
59601 ipb = ccb;
59602 fpb = new kpb();
59603 gpb = new kpb();
59604 hpb = new ppb();
59605 }
59606 function ODb() {
59607 ODb = ccb;
59608 LDb = new JDb();
59609 NDb = new oEb();
59610 MDb = new fEb();
59611 }
59612 function MCb() {
59613 if (HCb == 256) {
59614 GCb = ICb;
59615 ICb = new nb();
59616 HCb = 0;
59617 }
59618 ++HCb;
59619 }
59620 function nd(a) {
59621 var b;
59622 return b = a.f, !b ? a.f = new ne(a, a.c) : b;
59623 }
59624 function d2b(a) {
59625 return Qld(a) && Ccb(DD(hkd(a, (Nyc(), gxc))));
59626 }
59627 function mcc(a, b) {
59628 return Rc(a, BD(vNb(b, (Nyc(), Nxc)), 19), b);
59629 }
59630 function POc(a, b) {
59631 return vPc(a.j, b.s, b.c) + vPc(b.e, a.s, a.c);
59632 }
59633 function ooc(a, b) {
59634 if (!!a.e && !a.e.a) {
59635 moc(a.e, b);
59636 ooc(a.e, b);
59637 }
59638 }
59639 function noc(a, b) {
59640 if (!!a.d && !a.d.a) {
59641 moc(a.d, b);
59642 noc(a.d, b);
59643 }
59644 }
59645 function hed(a, b) {
59646 return -Kdb(red(a) * qed(a), red(b) * qed(b));
59647 }
59648 function cgd(a) {
59649 return BD(a.cd(), 146).tg() + ":" + fcb(a.dd());
59650 }
59651 function Zgc(a) {
59652 Hgc();
59653 var b;
59654 b = BD(a.g, 10);
59655 b.n.a = a.d.c + b.d.b;
59656 }
59657 function wgc(a, b, c2) {
59658 qgc();
59659 return iEb(BD(Ohb(a.e, b), 522), c2);
59660 }
59661 function Y2c(a, b) {
59662 rb(a);
59663 rb(b);
59664 return Xr(BD(a, 22), BD(b, 22));
59665 }
59666 function oic(a, b, c2) {
59667 a.i = 0;
59668 a.e = 0;
59669 if (b == c2) {
59670 return;
59671 }
59672 kic(a, b, c2);
59673 }
59674 function pic(a, b, c2) {
59675 a.i = 0;
59676 a.e = 0;
59677 if (b == c2) {
59678 return;
59679 }
59680 lic(a, b, c2);
59681 }
59682 function Spd(a, b, c2) {
59683 var d, e;
59684 d = Kcb(c2);
59685 e = new TB(d);
59686 cC(a, b, e);
59687 }
59688 function FSd(a, b, c2, d, e, f2) {
59689 ESd.call(this, a, b, c2, d, e, f2 ? -2 : -1);
59690 }
59691 function U5d(a, b, c2, d) {
59692 MLd.call(this, b, c2);
59693 this.b = a;
59694 this.a = d;
59695 }
59696 function QRc(a, b) {
59697 new Psb();
59698 this.a = new s7c();
59699 this.b = a;
59700 this.c = b;
59701 }
59702 function Hec(a, b) {
59703 BD(vNb(a, (wtc(), Qsc)), 15).Fc(b);
59704 return b;
59705 }
59706 function Rb(a, b) {
59707 if (a == null) {
59708 throw vbb(new Heb(b));
59709 }
59710 return a;
59711 }
59712 function WKd(a) {
59713 !a.q && (a.q = new cUd(n5, a, 11, 10));
59714 return a.q;
59715 }
59716 function ZKd(a) {
59717 !a.s && (a.s = new cUd(t5, a, 21, 17));
59718 return a.s;
59719 }
59720 function Vod(a) {
59721 !a.a && (a.a = new cUd(E2, a, 10, 11));
59722 return a.a;
59723 }
59724 function Dx(a) {
59725 return JD(a, 14) ? new Vqb(BD(a, 14)) : Ex(a.Kc());
59726 }
59727 function Ni(a) {
59728 return new aj(a, a.e.Hd().gc() * a.c.Hd().gc());
59729 }
59730 function Zi(a) {
59731 return new kj(a, a.e.Hd().gc() * a.c.Hd().gc());
59732 }
59733 function rz(a) {
59734 return !!a && !!a.hashCode ? a.hashCode() : FCb(a);
59735 }
59736 function Qhb(a, b) {
59737 return b == null ? !!irb(a.f, null) : Brb(a.g, b);
59738 }
59739 function Oq(a) {
59740 Qb(a);
59741 return mr(new Sr(ur(a.a.Kc(), new Sq())));
59742 }
59743 function vmb(a) {
59744 mmb();
59745 return JD(a, 54) ? new Yob(a) : new Inb(a);
59746 }
59747 function VDb(a, b, c2) {
59748 if (a.f) {
59749 return a.f.Ne(b, c2);
59750 }
59751 return false;
59752 }
59753 function Gfb(a, b) {
59754 a.a = qfb(a.a, 0, b) + "" + pfb(a.a, b + 1);
59755 return a;
59756 }
59757 function fVb(a, b) {
59758 var c2;
59759 c2 = Sqb(a.a, b);
59760 c2 && (b.d = null);
59761 return c2;
59762 }
59763 function zpb(a) {
59764 var b, c2;
59765 c2 = a;
59766 b = c2.$modCount | 0;
59767 c2.$modCount = b + 1;
59768 }
59769 function pu(a) {
59770 this.b = a;
59771 this.c = a;
59772 a.e = null;
59773 a.c = null;
59774 this.a = 1;
59775 }
59776 function hOb(a) {
59777 this.b = a;
59778 this.a = new Hxb(BD(Qb(new kOb()), 62));
59779 }
59780 function uEb(a) {
59781 this.c = a;
59782 this.b = new Hxb(BD(Qb(new xEb()), 62));
59783 }
59784 function SVb(a) {
59785 this.c = a;
59786 this.b = new Hxb(BD(Qb(new VVb()), 62));
59787 }
59788 function FYb() {
59789 this.a = new HXb();
59790 this.b = new LXb();
59791 this.d = new SYb();
59792 }
59793 function UZb() {
59794 this.a = new s7c();
59795 this.b = (Xj(3, Jie), new Skb(3));
59796 }
59797 function VMc() {
59798 this.b = new Tqb();
59799 this.d = new Psb();
59800 this.e = new twb();
59801 }
59802 function K6c(a) {
59803 this.c = a.c;
59804 this.d = a.d;
59805 this.b = a.b;
59806 this.a = a.a;
59807 }
59808 function Ay(a, b) {
59809 oi.call(this, new Qwb(a));
59810 this.a = a;
59811 this.b = b;
59812 }
59813 function eod() {
59814 bod(this, new $md());
59815 this.wb = (NFd(), MFd);
59816 LFd();
59817 }
59818 function eHc(a) {
59819 Odd(a, "No crossing minimization", 1);
59820 Qdd(a);
59821 }
59822 function Gz(a) {
59823 Az();
59824 $wnd.setTimeout(function() {
59825 throw a;
59826 }, 0);
59827 }
59828 function _Kd(a) {
59829 if (!a.u) {
59830 $Kd(a);
59831 a.u = new YOd(a, a);
59832 }
59833 return a.u;
59834 }
59835 function wjd(a) {
59836 var b;
59837 b = BD(Ajd(a, 16), 26);
59838 return !b ? a.zh() : b;
59839 }
59840 function Jsd(a, b) {
59841 return JD(b, 146) && dfb(a.b, BD(b, 146).tg());
59842 }
59843 function t0d(a, b) {
59844 return a.a ? b.Wg().Kc() : BD(b.Wg(), 69).Zh();
59845 }
59846 function u3b(a) {
59847 return a.k == (j0b(), h0b) && wNb(a, (wtc(), Csc));
59848 }
59849 function ux(a) {
59850 this.a = (mmb(), JD(a, 54) ? new Yob(a) : new Inb(a));
59851 }
59852 function Rz() {
59853 Rz = ccb;
59854 var a, b;
59855 b = !Xz();
59856 a = new dA();
59857 Qz = b ? new Yz() : a;
59858 }
59859 function Wy(a, b) {
59860 var c2;
59861 c2 = hdb(a.gm);
59862 return b == null ? c2 : c2 + ": " + b;
59863 }
59864 function Eob(a, b) {
59865 var c2;
59866 c2 = a.b.Qc(b);
59867 Fob(c2, a.b.gc());
59868 return c2;
59869 }
59870 function ytb(a, b) {
59871 if (a == null) {
59872 throw vbb(new Heb(b));
59873 }
59874 return a;
59875 }
59876 function irb(a, b) {
59877 return grb(a, b, hrb(a, b == null ? 0 : a.b.se(b)));
59878 }
59879 function ofb(a, b, c2) {
59880 return c2 >= 0 && dfb(a.substr(c2, b.length), b);
59881 }
59882 function H2d(a, b, c2, d, e, f2, g) {
59883 return new O7d(a.e, b, c2, d, e, f2, g);
59884 }
59885 function Cxd(a, b, c2, d, e, f2) {
59886 this.a = a;
59887 nxd.call(this, b, c2, d, e, f2);
59888 }
59889 function vyd(a, b, c2, d, e, f2) {
59890 this.a = a;
59891 nxd.call(this, b, c2, d, e, f2);
59892 }
59893 function $Ec(a, b) {
59894 this.g = a;
59895 this.d = OC(GC(OQ, 1), kne, 10, 0, [b]);
59896 }
59897 function KVd(a, b) {
59898 this.e = a;
59899 this.a = SI;
59900 this.b = R5d(b);
59901 this.c = b;
59902 }
59903 function cIb(a, b) {
59904 $Gb.call(this);
59905 THb(this);
59906 this.a = a;
59907 this.c = b;
59908 }
59909 function kBc(a, b, c2, d) {
59910 NC(a.c[b.g], c2.g, d);
59911 NC(a.c[c2.g], b.g, d);
59912 }
59913 function nBc(a, b, c2, d) {
59914 NC(a.c[b.g], b.g, c2);
59915 NC(a.b[b.g], b.g, d);
59916 }
59917 function cBc() {
59918 _Ac();
59919 return OC(GC(fX, 1), Kie, 376, 0, [$Ac, ZAc]);
59920 }
59921 function crc() {
59922 _qc();
59923 return OC(GC(MW, 1), Kie, 479, 0, [$qc, Zqc]);
59924 }
59925 function Aqc() {
59926 xqc();
59927 return OC(GC(JW, 1), Kie, 419, 0, [vqc, wqc]);
59928 }
59929 function Lpc() {
59930 Ipc();
59931 return OC(GC(FW, 1), Kie, 422, 0, [Gpc, Hpc]);
59932 }
59933 function psc() {
59934 msc();
59935 return OC(GC(SW, 1), Kie, 420, 0, [ksc, lsc]);
59936 }
59937 function EAc() {
59938 BAc();
59939 return OC(GC(cX, 1), Kie, 421, 0, [zAc, AAc]);
59940 }
59941 function XIc() {
59942 UIc();
59943 return OC(GC(mY, 1), Kie, 523, 0, [TIc, SIc]);
59944 }
59945 function KOc() {
59946 HOc();
59947 return OC(GC(DZ, 1), Kie, 520, 0, [GOc, FOc]);
59948 }
59949 function _Lc() {
59950 YLc();
59951 return OC(GC(fZ, 1), Kie, 516, 0, [XLc, WLc]);
59952 }
59953 function hMc() {
59954 eMc();
59955 return OC(GC(gZ, 1), Kie, 515, 0, [cMc, dMc]);
59956 }
59957 function IQc() {
59958 FQc();
59959 return OC(GC(YZ, 1), Kie, 455, 0, [DQc, EQc]);
59960 }
59961 function bUc() {
59962 $Tc();
59963 return OC(GC(F$, 1), Kie, 425, 0, [ZTc, YTc]);
59964 }
59965 function VTc() {
59966 STc();
59967 return OC(GC(E$, 1), Kie, 480, 0, [QTc, RTc]);
59968 }
59969 function VUc() {
59970 PUc();
59971 return OC(GC(K$, 1), Kie, 495, 0, [NUc, OUc]);
59972 }
59973 function jWc() {
59974 fWc();
59975 return OC(GC(X$, 1), Kie, 426, 0, [dWc, eWc]);
59976 }
59977 function g1c() {
59978 a1c();
59979 return OC(GC(X_, 1), Kie, 429, 0, [_0c, $0c]);
59980 }
59981 function F_c() {
59982 C_c();
59983 return OC(GC(P_, 1), Kie, 430, 0, [B_c, A_c]);
59984 }
59985 function PEb() {
59986 MEb();
59987 return OC(GC(aN, 1), Kie, 428, 0, [LEb, KEb]);
59988 }
59989 function XEb() {
59990 UEb();
59991 return OC(GC(bN, 1), Kie, 427, 0, [SEb, TEb]);
59992 }
59993 function $Rb() {
59994 XRb();
59995 return OC(GC(gP, 1), Kie, 424, 0, [VRb, WRb]);
59996 }
59997 function B5b() {
59998 y5b();
59999 return OC(GC(ZR, 1), Kie, 511, 0, [x5b, w5b]);
60000 }
60001 function lid(a, b, c2, d) {
60002 return c2 >= 0 ? a.jh(b, c2, d) : a.Sg(null, c2, d);
60003 }
60004 function hgd(a) {
60005 if (a.b.b == 0) {
60006 return a.a.$e();
60007 }
60008 return Lsb(a.b);
60009 }
60010 function Xwd(a) {
60011 if (a.p != 5)
60012 throw vbb(new Ydb());
60013 return Tbb(a.f);
60014 }
60015 function exd(a) {
60016 if (a.p != 5)
60017 throw vbb(new Ydb());
60018 return Tbb(a.k);
60019 }
60020 function pNd(a) {
60021 PD(a.a) === PD((NKd(), MKd)) && qNd(a);
60022 return a.a;
60023 }
60024 function by(a) {
60025 this.a = BD(Qb(a), 271);
60026 this.b = (mmb(), new Zob(a));
60027 }
60028 function bQc(a, b) {
60029 $Pc(this, new f7c(a.a, a.b));
60030 _Pc(this, Ru(b));
60031 }
60032 function FQc() {
60033 FQc = ccb;
60034 DQc = new GQc(jle, 0);
60035 EQc = new GQc(kle, 1);
60036 }
60037 function YLc() {
60038 YLc = ccb;
60039 XLc = new ZLc(kle, 0);
60040 WLc = new ZLc(jle, 1);
60041 }
60042 function Hp() {
60043 Gp.call(this, new Mqb(Cv(12)));
60044 Lb(true);
60045 this.a = 2;
60046 }
60047 function Hge(a, b, c2) {
60048 wfe();
60049 xfe.call(this, a);
60050 this.b = b;
60051 this.a = c2;
60052 }
60053 function cWd(a, b, c2) {
60054 UVd();
60055 VVd.call(this, b);
60056 this.a = a;
60057 this.b = c2;
60058 }
60059 function aIb(a) {
60060 $Gb.call(this);
60061 THb(this);
60062 this.a = a;
60063 this.c = true;
60064 }
60065 function isb(a) {
60066 var b;
60067 b = a.c.d.b;
60068 a.b = b;
60069 a.a = a.c.d;
60070 b.a = a.c.d.b = a;
60071 }
60072 function $Cb(a) {
60073 var b;
60074 NGb(a.a);
60075 MGb(a.a);
60076 b = new YGb(a.a);
60077 UGb(b);
60078 }
60079 function iKb(a, b) {
60080 hKb(a, true);
60081 Hkb(a.e.wf(), new mKb(a, true, b));
60082 }
60083 function tlb(a, b) {
60084 pCb(b);
60085 return vlb(a, KC(WD, oje, 25, b, 15, 1), b);
60086 }
60087 function YPb(a, b) {
60088 QPb();
60089 return a == Xod(jtd(b)) || a == Xod(ltd(b));
60090 }
60091 function Phb(a, b) {
60092 return b == null ? Wd(irb(a.f, null)) : Crb(a.g, b);
60093 }
60094 function Ksb(a) {
60095 return a.b == 0 ? null : (sCb(a.b != 0), Nsb(a, a.a.a));
60096 }
60097 function QD(a) {
60098 return Math.max(Math.min(a, Ohe), -2147483648) | 0;
60099 }
60100 function uz(a, b) {
60101 var c2 = tz[a.charCodeAt(0)];
60102 return c2 == null ? a : c2;
60103 }
60104 function Cx(a, b) {
60105 Rb(a, "set1");
60106 Rb(b, "set2");
60107 return new Px(a, b);
60108 }
60109 function QUb(a, b) {
60110 var c2;
60111 c2 = zUb(a.f, b);
60112 return P6c(V6c(c2), a.f.d);
60113 }
60114 function Jwb(a, b) {
60115 var c2, d;
60116 c2 = b;
60117 d = new fxb();
60118 Lwb(a, c2, d);
60119 return d.d;
60120 }
60121 function NJb(a, b, c2, d) {
60122 var e;
60123 e = new aHb();
60124 b.a[c2.g] = e;
60125 Npb(a.b, d, e);
60126 }
60127 function zid(a, b, c2) {
60128 var d;
60129 d = a.Yg(b);
60130 d >= 0 ? a.sh(d, c2) : uid(a, b, c2);
60131 }
60132 function hvd(a, b, c2) {
60133 evd();
60134 !!a && Rhb(dvd, a, b);
60135 !!a && Rhb(cvd, a, c2);
60136 }
60137 function g_c(a, b, c2) {
60138 this.i = new Rkb();
60139 this.b = a;
60140 this.g = b;
60141 this.a = c2;
60142 }
60143 function VZc(a, b, c2) {
60144 this.c = new Rkb();
60145 this.e = a;
60146 this.f = b;
60147 this.b = c2;
60148 }
60149 function b$c(a, b, c2) {
60150 this.a = new Rkb();
60151 this.e = a;
60152 this.f = b;
60153 this.c = c2;
60154 }
60155 function Zy(a, b) {
60156 Py(this);
60157 this.f = b;
60158 this.g = a;
60159 Ry(this);
60160 this._d();
60161 }
60162 function ZA(a, b) {
60163 var c2;
60164 c2 = a.q.getHours();
60165 a.q.setDate(b);
60166 YA(a, c2);
60167 }
60168 function no(a, b) {
60169 var c2;
60170 Qb(b);
60171 for (c2 = a.a; c2; c2 = c2.c) {
60172 b.Od(c2.g, c2.i);
60173 }
60174 }
60175 function Fx(a) {
60176 var b;
60177 b = new Uqb(Cv(a.length));
60178 nmb(b, a);
60179 return b;
60180 }
60181 function ecb(a) {
60182 function b() {
60183 }
60184 b.prototype = a || {};
60185 return new b();
60186 }
60187 function dkb(a, b) {
60188 if (Zjb(a, b)) {
60189 wkb(a);
60190 return true;
60191 }
60192 return false;
60193 }
60194 function aC(a, b) {
60195 if (b == null) {
60196 throw vbb(new Geb());
60197 }
60198 return bC(a, b);
60199 }
60200 function tdb(a) {
60201 if (a.qe()) {
60202 return null;
60203 }
60204 var b = a.n;
60205 return _bb[b];
60206 }
60207 function Mld(a) {
60208 if (a.Db >> 16 != 3)
60209 return null;
60210 return BD(a.Cb, 33);
60211 }
60212 function mpd(a) {
60213 if (a.Db >> 16 != 9)
60214 return null;
60215 return BD(a.Cb, 33);
60216 }
60217 function fmd(a) {
60218 if (a.Db >> 16 != 6)
60219 return null;
60220 return BD(a.Cb, 79);
60221 }
60222 function Ind(a) {
60223 if (a.Db >> 16 != 7)
60224 return null;
60225 return BD(a.Cb, 235);
60226 }
60227 function Fod(a) {
60228 if (a.Db >> 16 != 7)
60229 return null;
60230 return BD(a.Cb, 160);
60231 }
60232 function Xod(a) {
60233 if (a.Db >> 16 != 11)
60234 return null;
60235 return BD(a.Cb, 33);
60236 }
60237 function nid(a, b) {
60238 var c2;
60239 c2 = a.Yg(b);
60240 return c2 >= 0 ? a.lh(c2) : tid(a, b);
60241 }
60242 function Dtd(a, b) {
60243 var c2;
60244 c2 = new Bsb(b);
60245 Ve(c2, a);
60246 return new Tkb(c2);
60247 }
60248 function Uud(a) {
60249 var b;
60250 b = a.d;
60251 b = a.si(a.f);
60252 wtd(a, b);
60253 return b.Ob();
60254 }
60255 function t_b(a, b) {
60256 a.b += b.b;
60257 a.c += b.c;
60258 a.d += b.d;
60259 a.a += b.a;
60260 return a;
60261 }
60262 function A4b(a, b) {
60263 return $wnd.Math.abs(a) < $wnd.Math.abs(b) ? a : b;
60264 }
60265 function Zod(a) {
60266 return !a.a && (a.a = new cUd(E2, a, 10, 11)), a.a.i > 0;
60267 }
60268 function oDb() {
60269 this.a = new zsb();
60270 this.e = new Tqb();
60271 this.g = 0;
60272 this.i = 0;
60273 }
60274 function BGc(a) {
60275 this.a = a;
60276 this.b = KC(SX, nie, 1944, a.e.length, 0, 2);
60277 }
60278 function RHc(a, b, c2) {
60279 var d;
60280 d = SHc(a, b, c2);
60281 a.b = new BHc(d.c.length);
60282 }
60283 function eMc() {
60284 eMc = ccb;
60285 cMc = new fMc(vle, 0);
60286 dMc = new fMc("UP", 1);
60287 }
60288 function STc() {
60289 STc = ccb;
60290 QTc = new TTc(Yqe, 0);
60291 RTc = new TTc("FAN", 1);
60292 }
60293 function evd() {
60294 evd = ccb;
60295 dvd = new Lqb();
60296 cvd = new Lqb();
60297 ivd(hK, new jvd());
60298 }
60299 function Swd(a) {
60300 if (a.p != 0)
60301 throw vbb(new Ydb());
60302 return Kbb(a.f, 0);
60303 }
60304 function _wd(a) {
60305 if (a.p != 0)
60306 throw vbb(new Ydb());
60307 return Kbb(a.k, 0);
60308 }
60309 function MHd(a) {
60310 if (a.Db >> 16 != 3)
60311 return null;
60312 return BD(a.Cb, 147);
60313 }
60314 function ZJd(a) {
60315 if (a.Db >> 16 != 6)
60316 return null;
60317 return BD(a.Cb, 235);
60318 }
60319 function WId(a) {
60320 if (a.Db >> 16 != 17)
60321 return null;
60322 return BD(a.Cb, 26);
60323 }
60324 function rdb(a, b) {
60325 var c2 = a.a = a.a || [];
60326 return c2[b] || (c2[b] = a.le(b));
60327 }
60328 function hrb(a, b) {
60329 var c2;
60330 c2 = a.a.get(b);
60331 return c2 == null ? new Array() : c2;
60332 }
60333 function aB(a, b) {
60334 var c2;
60335 c2 = a.q.getHours();
60336 a.q.setMonth(b);
60337 YA(a, c2);
60338 }
60339 function Shb(a, b, c2) {
60340 return b == null ? jrb(a.f, null, c2) : Drb(a.g, b, c2);
60341 }
60342 function FLd(a, b, c2, d, e, f2) {
60343 return new pSd(a.e, b, a.aj(), c2, d, e, f2);
60344 }
60345 function Tfb(a, b, c2) {
60346 a.a = qfb(a.a, 0, b) + ("" + c2) + pfb(a.a, b);
60347 return a;
60348 }
60349 function bq(a, b, c2) {
60350 Ekb(a.a, (Vm(), Wj(b, c2), new Wo(b, c2)));
60351 return a;
60352 }
60353 function uu(a) {
60354 ot(a.c);
60355 a.e = a.a = a.c;
60356 a.c = a.c.c;
60357 ++a.d;
60358 return a.a.f;
60359 }
60360 function vu(a) {
60361 ot(a.e);
60362 a.c = a.a = a.e;
60363 a.e = a.e.e;
60364 --a.d;
60365 return a.a.f;
60366 }
60367 function RZb(a, b) {
60368 !!a.d && Lkb(a.d.e, a);
60369 a.d = b;
60370 !!a.d && Ekb(a.d.e, a);
60371 }
60372 function QZb(a, b) {
60373 !!a.c && Lkb(a.c.g, a);
60374 a.c = b;
60375 !!a.c && Ekb(a.c.g, a);
60376 }
60377 function $_b(a, b) {
60378 !!a.c && Lkb(a.c.a, a);
60379 a.c = b;
60380 !!a.c && Ekb(a.c.a, a);
60381 }
60382 function F0b(a, b) {
60383 !!a.i && Lkb(a.i.j, a);
60384 a.i = b;
60385 !!a.i && Ekb(a.i.j, a);
60386 }
60387 function jDb(a, b, c2) {
60388 this.a = b;
60389 this.c = a;
60390 this.b = (Qb(c2), new Tkb(c2));
60391 }
60392 function qXb(a, b, c2) {
60393 this.a = b;
60394 this.c = a;
60395 this.b = (Qb(c2), new Tkb(c2));
60396 }
60397 function aOb(a, b) {
60398 this.a = a;
60399 this.c = R6c(this.a);
60400 this.b = new K6c(b);
60401 }
60402 function IAb(a) {
60403 var b;
60404 Uzb(a);
60405 b = new Tqb();
60406 return JAb(a, new jBb(b));
60407 }
60408 function wCb(a, b) {
60409 if (a < 0 || a > b) {
60410 throw vbb(new qcb(Ake + a + Bke + b));
60411 }
60412 }
60413 function Ppb(a, b) {
60414 return vqb(a.a, b) ? Qpb(a, BD(b, 22).g, null) : null;
60415 }
60416 function WUb(a) {
60417 LUb();
60418 return Bcb(), BD(a.a, 81).d.e != 0 ? true : false;
60419 }
60420 function qs() {
60421 qs = ccb;
60422 ps = as((hs(), OC(GC(yG, 1), Kie, 538, 0, [gs])));
60423 }
60424 function SBc() {
60425 SBc = ccb;
60426 RBc = c3c(new j3c(), (qUb(), pUb), (S8b(), J8b));
60427 }
60428 function ZBc() {
60429 ZBc = ccb;
60430 YBc = c3c(new j3c(), (qUb(), pUb), (S8b(), J8b));
60431 }
60432 function oCc() {
60433 oCc = ccb;
60434 nCc = c3c(new j3c(), (qUb(), pUb), (S8b(), J8b));
60435 }
60436 function aJc() {
60437 aJc = ccb;
60438 _Ic = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
60439 }
60440 function FJc() {
60441 FJc = ccb;
60442 EJc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
60443 }
60444 function ILc() {
60445 ILc = ccb;
60446 HLc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
60447 }
60448 function wMc() {
60449 wMc = ccb;
60450 vMc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
60451 }
60452 function fUc() {
60453 fUc = ccb;
60454 eUc = c3c(new j3c(), (yRc(), xRc), (qSc(), kSc));
60455 }
60456 function DOc(a, b, c2, d) {
60457 this.c = a;
60458 this.d = d;
60459 BOc(this, b);
60460 COc(this, c2);
60461 }
60462 function W3c(a) {
60463 this.c = new Psb();
60464 this.b = a.b;
60465 this.d = a.c;
60466 this.a = a.a;
60467 }
60468 function e7c(a) {
60469 this.a = $wnd.Math.cos(a);
60470 this.b = $wnd.Math.sin(a);
60471 }
60472 function BOc(a, b) {
60473 !!a.a && Lkb(a.a.k, a);
60474 a.a = b;
60475 !!a.a && Ekb(a.a.k, a);
60476 }
60477 function COc(a, b) {
60478 !!a.b && Lkb(a.b.f, a);
60479 a.b = b;
60480 !!a.b && Ekb(a.b.f, a);
60481 }
60482 function D1c(a, b) {
60483 E1c(a, a.b, a.c);
60484 BD(a.b.b, 65);
60485 !!b && BD(b.b, 65).b;
60486 }
60487 function BUd(a, b) {
60488 CUd(a, b);
60489 JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 2);
60490 }
60491 function cJd(a, b) {
60492 JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 4);
60493 pnd(a, b);
60494 }
60495 function lKd(a, b) {
60496 JD(a.Cb, 179) && (BD(a.Cb, 179).tb = null);
60497 pnd(a, b);
60498 }
60499 function T2d(a, b) {
60500 return Q6d(), YId(b) ? new R7d(b, a) : new f7d(b, a);
60501 }
60502 function jsd(a, b) {
60503 var c2, d;
60504 c2 = b.c;
60505 d = c2 != null;
60506 d && Qpd(a, new yC(b.c));
60507 }
60508 function XOd(a) {
60509 var b, c2;
60510 c2 = (LFd(), b = new UQd(), b);
60511 NQd(c2, a);
60512 return c2;
60513 }
60514 function eTd(a) {
60515 var b, c2;
60516 c2 = (LFd(), b = new UQd(), b);
60517 NQd(c2, a);
60518 return c2;
60519 }
60520 function yCc(a, b) {
60521 var c2;
60522 c2 = new H1b(a);
60523 b.c[b.c.length] = c2;
60524 return c2;
60525 }
60526 function Aw(a, b) {
60527 var c2;
60528 c2 = BD(Hv(nd(a.a), b), 14);
60529 return !c2 ? 0 : c2.gc();
60530 }
60531 function UAb(a) {
60532 var b;
60533 Uzb(a);
60534 b = (ipb(), ipb(), gpb);
60535 return VAb(a, b);
60536 }
60537 function nr(a) {
60538 var b;
60539 while (true) {
60540 b = a.Pb();
60541 if (!a.Ob()) {
60542 return b;
60543 }
60544 }
60545 }
60546 function Ki(a, b) {
60547 Ii.call(this, new Mqb(Cv(a)));
60548 Xj(b, mie);
60549 this.a = b;
60550 }
60551 function Jib(a, b, c2) {
60552 xCb(b, c2, a.gc());
60553 this.c = a;
60554 this.a = b;
60555 this.b = c2 - b;
60556 }
60557 function Mkb(a, b, c2) {
60558 var d;
60559 xCb(b, c2, a.c.length);
60560 d = c2 - b;
60561 cCb(a.c, b, d);
60562 }
60563 function Fub(a, b) {
60564 Eub(a, Tbb(xbb(Obb(b, 24), nke)), Tbb(xbb(b, nke)));
60565 }
60566 function tCb(a, b) {
60567 if (a < 0 || a >= b) {
60568 throw vbb(new qcb(Ake + a + Bke + b));
60569 }
60570 }
60571 function BCb(a, b) {
60572 if (a < 0 || a >= b) {
60573 throw vbb(new Xfb(Ake + a + Bke + b));
60574 }
60575 }
60576 function Kub(a, b) {
60577 this.b = (uCb(a), a);
60578 this.a = (b & Rje) == 0 ? b | 64 | oie : b;
60579 }
60580 function kkb(a) {
60581 Vjb(this);
60582 dCb(this.a, geb($wnd.Math.max(8, a)) << 1);
60583 }
60584 function A0b(a) {
60585 return l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a]));
60586 }
60587 function Iyb() {
60588 Fyb();
60589 return OC(GC(xL, 1), Kie, 132, 0, [Cyb, Dyb, Eyb]);
60590 }
60591 function jHb() {
60592 gHb();
60593 return OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]);
60594 }
60595 function QHb() {
60596 NHb();
60597 return OC(GC(sN, 1), Kie, 461, 0, [LHb, KHb, MHb]);
60598 }
60599 function HIb() {
60600 EIb();
60601 return OC(GC(zN, 1), Kie, 462, 0, [DIb, CIb, BIb]);
60602 }
60603 function UXb() {
60604 RXb();
60605 return OC(GC(hQ, 1), Kie, 423, 0, [QXb, PXb, OXb]);
60606 }
60607 function BTb() {
60608 yTb();
60609 return OC(GC(oP, 1), Kie, 379, 0, [wTb, vTb, xTb]);
60610 }
60611 function Bzc() {
60612 xzc();
60613 return OC(GC(ZW, 1), Kie, 378, 0, [uzc, vzc, wzc]);
60614 }
60615 function Xpc() {
60616 Rpc();
60617 return OC(GC(GW, 1), Kie, 314, 0, [Ppc, Opc, Qpc]);
60618 }
60619 function eqc() {
60620 bqc();
60621 return OC(GC(HW, 1), Kie, 337, 0, [$pc, aqc, _pc]);
60622 }
60623 function Jqc() {
60624 Gqc();
60625 return OC(GC(KW, 1), Kie, 450, 0, [Eqc, Dqc, Fqc]);
60626 }
60627 function Ikc() {
60628 Fkc();
60629 return OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc]);
60630 }
60631 function hsc() {
60632 esc();
60633 return OC(GC(RW, 1), Kie, 303, 0, [csc, dsc, bsc]);
60634 }
60635 function $rc() {
60636 Xrc();
60637 return OC(GC(QW, 1), Kie, 292, 0, [Vrc, Wrc, Urc]);
60638 }
60639 function NAc() {
60640 KAc();
60641 return OC(GC(dX, 1), Kie, 452, 0, [JAc, HAc, IAc]);
60642 }
60643 function wAc() {
60644 tAc();
60645 return OC(GC(bX, 1), Kie, 339, 0, [rAc, qAc, sAc]);
60646 }
60647 function WAc() {
60648 TAc();
60649 return OC(GC(eX, 1), Kie, 375, 0, [QAc, RAc, SAc]);
60650 }
60651 function OBc() {
60652 LBc();
60653 return OC(GC(jX, 1), Kie, 377, 0, [JBc, KBc, IBc]);
60654 }
60655 function wBc() {
60656 tBc();
60657 return OC(GC(hX, 1), Kie, 336, 0, [qBc, rBc, sBc]);
60658 }
60659 function FBc() {
60660 CBc();
60661 return OC(GC(iX, 1), Kie, 338, 0, [BBc, zBc, ABc]);
60662 }
60663 function uGc() {
60664 rGc();
60665 return OC(GC(PX, 1), Kie, 454, 0, [oGc, pGc, qGc]);
60666 }
60667 function xVc() {
60668 tVc();
60669 return OC(GC(O$, 1), Kie, 442, 0, [sVc, qVc, rVc]);
60670 }
60671 function tWc() {
60672 pWc();
60673 return OC(GC(Y$, 1), Kie, 380, 0, [mWc, nWc, oWc]);
60674 }
60675 function CYc() {
60676 zYc();
60677 return OC(GC(q_, 1), Kie, 381, 0, [xYc, yYc, wYc]);
60678 }
60679 function wXc() {
60680 sXc();
60681 return OC(GC(b_, 1), Kie, 293, 0, [qXc, rXc, pXc]);
60682 }
60683 function _$c() {
60684 Y$c();
60685 return OC(GC(J_, 1), Kie, 437, 0, [V$c, W$c, X$c]);
60686 }
60687 function kbd() {
60688 hbd();
60689 return OC(GC(z1, 1), Kie, 334, 0, [fbd, ebd, gbd]);
60690 }
60691 function tad() {
60692 qad();
60693 return OC(GC(u1, 1), Kie, 272, 0, [nad, oad, pad2]);
60694 }
60695 function o3d(a, b) {
60696 return p3d(a, b, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
60697 }
60698 function LZc(a, b, c2) {
60699 var d;
60700 d = MZc(a, b, false);
60701 return d.b <= b && d.a <= c2;
60702 }
60703 function tMc(a, b, c2) {
60704 var d;
60705 d = new sMc();
60706 d.b = b;
60707 d.a = c2;
60708 ++b.b;
60709 Ekb(a.d, d);
60710 }
60711 function fs(a, b) {
60712 var c2;
60713 c2 = (uCb(a), a).g;
60714 lCb(!!c2);
60715 uCb(b);
60716 return c2(b);
60717 }
60718 function av(a, b) {
60719 var c2, d;
60720 d = cv(a, b);
60721 c2 = a.a.Zc(d);
60722 return new qv(a, c2);
60723 }
60724 function cKd(a) {
60725 if (a.Db >> 16 != 6)
60726 return null;
60727 return BD(aid(a), 235);
60728 }
60729 function Uwd(a) {
60730 if (a.p != 2)
60731 throw vbb(new Ydb());
60732 return Tbb(a.f) & aje;
60733 }
60734 function bxd(a) {
60735 if (a.p != 2)
60736 throw vbb(new Ydb());
60737 return Tbb(a.k) & aje;
60738 }
60739 function Z1d(a) {
60740 a.a == (T0d(), S0d) && d2d(a, U0d(a.g, a.b));
60741 return a.a;
60742 }
60743 function _1d(a) {
60744 a.d == (T0d(), S0d) && f2d(a, Y0d(a.g, a.b));
60745 return a.d;
60746 }
60747 function mlb(a) {
60748 sCb(a.a < a.c.c.length);
60749 a.b = a.a++;
60750 return a.c.c[a.b];
60751 }
60752 function hEb(a, b) {
60753 a.b = a.b | b.b;
60754 a.c = a.c | b.c;
60755 a.d = a.d | b.d;
60756 a.a = a.a | b.a;
60757 }
60758 function xbb(a, b) {
60759 return zbb(dD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
60760 }
60761 function Mbb(a, b) {
60762 return zbb(jD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
60763 }
60764 function Vbb(a, b) {
60765 return zbb(rD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
60766 }
60767 function Dub(a) {
60768 return wbb(Nbb(Cbb(Cub(a, 32)), 32), Cbb(Cub(a, 32)));
60769 }
60770 function Mu(a) {
60771 Qb(a);
60772 return JD(a, 14) ? new Tkb(BD(a, 14)) : Nu(a.Kc());
60773 }
60774 function EWb(a, b) {
60775 AWb();
60776 return a.c == b.c ? Kdb(b.d, a.d) : Kdb(a.c, b.c);
60777 }
60778 function FWb(a, b) {
60779 AWb();
60780 return a.c == b.c ? Kdb(a.d, b.d) : Kdb(a.c, b.c);
60781 }
60782 function HWb(a, b) {
60783 AWb();
60784 return a.c == b.c ? Kdb(a.d, b.d) : Kdb(b.c, a.c);
60785 }
60786 function GWb(a, b) {
60787 AWb();
60788 return a.c == b.c ? Kdb(b.d, a.d) : Kdb(b.c, a.c);
60789 }
60790 function WGb(a, b) {
60791 var c2;
60792 c2 = Edb(ED(a.a.We((Y9c(), Q9c))));
60793 XGb(a, b, c2);
60794 }
60795 function Rgc(a, b) {
60796 var c2;
60797 c2 = BD(Ohb(a.g, b), 57);
60798 Hkb(b.d, new Qhc(a, c2));
60799 }
60800 function GYb(a, b) {
60801 var c2, d;
60802 c2 = d_b(a);
60803 d = d_b(b);
60804 return c2 < d ? -1 : c2 > d ? 1 : 0;
60805 }
60806 function bjc(a, b) {
60807 var c2, d;
60808 c2 = ajc(b);
60809 d = c2;
60810 return BD(Ohb(a.c, d), 19).a;
60811 }
60812 function iSc(a, b) {
60813 var c2;
60814 c2 = a + "";
60815 while (c2.length < b) {
60816 c2 = "0" + c2;
60817 }
60818 return c2;
60819 }
60820 function WRc(a) {
60821 return a.c == null || a.c.length == 0 ? "n_" + a.g : "n_" + a.c;
60822 }
60823 function oRb(a) {
60824 return a.c == null || a.c.length == 0 ? "n_" + a.b : "n_" + a.c;
60825 }
60826 function qz(a, b) {
60827 return !!a && !!a.equals ? a.equals(b) : PD(a) === PD(b);
60828 }
60829 function dkd(a, b) {
60830 if (b == 0) {
60831 return !!a.o && a.o.f != 0;
60832 }
60833 return mid(a, b);
60834 }
60835 function Tdd(a, b, c2) {
60836 var d;
60837 if (a.n && !!b && !!c2) {
60838 d = new kgd();
60839 Ekb(a.e, d);
60840 }
60841 }
60842 function cIc(a, b, c2) {
60843 var d;
60844 d = a.d[b.p];
60845 a.d[b.p] = a.d[c2.p];
60846 a.d[c2.p] = d;
60847 }
60848 function kxd(a, b, c2) {
60849 this.d = a;
60850 this.j = b;
60851 this.e = c2;
60852 this.o = -1;
60853 this.p = 3;
60854 }
60855 function lxd(a, b, c2) {
60856 this.d = a;
60857 this.k = b;
60858 this.f = c2;
60859 this.o = -1;
60860 this.p = 5;
60861 }
60862 function zge(a, b, c2) {
60863 xfe.call(this, 25);
60864 this.b = a;
60865 this.a = b;
60866 this.c = c2;
60867 }
60868 function $fe(a) {
60869 wfe();
60870 xfe.call(this, a);
60871 this.c = false;
60872 this.a = false;
60873 }
60874 function sSd(a, b, c2, d, e, f2) {
60875 rSd.call(this, a, b, c2, d, e);
60876 f2 && (this.o = -2);
60877 }
60878 function uSd(a, b, c2, d, e, f2) {
60879 tSd.call(this, a, b, c2, d, e);
60880 f2 && (this.o = -2);
60881 }
60882 function wSd(a, b, c2, d, e, f2) {
60883 vSd.call(this, a, b, c2, d, e);
60884 f2 && (this.o = -2);
60885 }
60886 function ySd(a, b, c2, d, e, f2) {
60887 xSd.call(this, a, b, c2, d, e);
60888 f2 && (this.o = -2);
60889 }
60890 function ASd(a, b, c2, d, e, f2) {
60891 zSd.call(this, a, b, c2, d, e);
60892 f2 && (this.o = -2);
60893 }
60894 function CSd(a, b, c2, d, e, f2) {
60895 BSd.call(this, a, b, c2, d, e);
60896 f2 && (this.o = -2);
60897 }
60898 function HSd(a, b, c2, d, e, f2) {
60899 GSd.call(this, a, b, c2, d, e);
60900 f2 && (this.o = -2);
60901 }
60902 function JSd(a, b, c2, d, e, f2) {
60903 ISd.call(this, a, b, c2, d, e);
60904 f2 && (this.o = -2);
60905 }
60906 function nWd(a, b, c2, d) {
60907 VVd.call(this, c2);
60908 this.b = a;
60909 this.c = b;
60910 this.d = d;
60911 }
60912 function x$c(a, b) {
60913 this.a = new Rkb();
60914 this.d = new Rkb();
60915 this.f = a;
60916 this.c = b;
60917 }
60918 function PTb() {
60919 this.c = new bUb();
60920 this.a = new FYb();
60921 this.b = new wZb();
60922 $Yb();
60923 }
60924 function b2c() {
60925 Y1c();
60926 this.b = new Lqb();
60927 this.a = new Lqb();
60928 this.c = new Rkb();
60929 }
60930 function j2d(a, b) {
60931 this.g = a;
60932 this.d = (T0d(), S0d);
60933 this.a = S0d;
60934 this.b = b;
60935 }
60936 function O1d(a, b) {
60937 this.f = a;
60938 this.a = (T0d(), R0d);
60939 this.c = R0d;
60940 this.b = b;
60941 }
60942 function h9d(a, b) {
60943 !a.c && (a.c = new u3d(a, 0));
60944 f3d(a.c, (Q8d(), I8d), b);
60945 }
60946 function $Tc() {
60947 $Tc = ccb;
60948 ZTc = new _Tc("DFS", 0);
60949 YTc = new _Tc("BFS", 1);
60950 }
60951 function Cc(a, b, c2) {
60952 var d;
60953 d = BD(a.Zb().xc(b), 14);
60954 return !!d && d.Hc(c2);
60955 }
60956 function Gc(a, b, c2) {
60957 var d;
60958 d = BD(a.Zb().xc(b), 14);
60959 return !!d && d.Mc(c2);
60960 }
60961 function Ofb(a, b, c2, d) {
60962 a.a += "" + qfb(b == null ? Xhe : fcb(b), c2, d);
60963 return a;
60964 }
60965 function Xnd(a, b, c2, d, e, f2) {
60966 Ynd(a, b, c2, f2);
60967 eLd(a, d);
60968 fLd(a, e);
60969 return a;
60970 }
60971 function Ysb(a) {
60972 sCb(a.b.b != a.d.a);
60973 a.c = a.b = a.b.b;
60974 --a.a;
60975 return a.c.c;
60976 }
60977 function Jgb(a) {
60978 while (a.d > 0 && a.a[--a.d] == 0)
60979 ;
60980 a.a[a.d++] == 0 && (a.e = 0);
60981 }
60982 function wwb(a) {
60983 return !a.a ? a.c : a.e.length == 0 ? a.a.a : a.a.a + ("" + a.e);
60984 }
60985 function RSd(a) {
60986 return !!a.a && QSd(a.a.a).i != 0 && !(!!a.b && QTd(a.b));
60987 }
60988 function cLd(a) {
60989 return !!a.u && VKd(a.u.a).i != 0 && !(!!a.n && FMd(a.n));
60990 }
60991 function $i(a) {
60992 return Zj(a.e.Hd().gc() * a.c.Hd().gc(), 16, new ij(a));
60993 }
60994 function XA(a, b) {
60995 return ueb(Cbb(a.q.getTime()), Cbb(b.q.getTime()));
60996 }
60997 function k_b(a) {
60998 return BD(Qkb(a, KC(AQ, jne, 17, a.c.length, 0, 1)), 474);
60999 }
61000 function l_b(a) {
61001 return BD(Qkb(a, KC(OQ, kne, 10, a.c.length, 0, 1)), 193);
61002 }
61003 function cKc(a) {
61004 FJc();
61005 return !OZb(a) && !(!OZb(a) && a.c.i.c == a.d.i.c);
61006 }
61007 function kDb(a, b, c2) {
61008 var d;
61009 d = (Qb(a), new Tkb(a));
61010 iDb(new jDb(d, b, c2));
61011 }
61012 function rXb(a, b, c2) {
61013 var d;
61014 d = (Qb(a), new Tkb(a));
61015 pXb(new qXb(d, b, c2));
61016 }
61017 function Nwb(a, b) {
61018 var c2;
61019 c2 = 1 - b;
61020 a.a[c2] = Owb(a.a[c2], c2);
61021 return Owb(a, b);
61022 }
61023 function YXc(a, b) {
61024 var c2;
61025 a.e = new QXc();
61026 c2 = gVc(b);
61027 Okb(c2, a.c);
61028 ZXc(a, c2, 0);
61029 }
61030 function o4c(a, b, c2, d) {
61031 var e;
61032 e = new w4c();
61033 e.a = b;
61034 e.b = c2;
61035 e.c = d;
61036 Dsb(a.a, e);
61037 }
61038 function p4c(a, b, c2, d) {
61039 var e;
61040 e = new w4c();
61041 e.a = b;
61042 e.b = c2;
61043 e.c = d;
61044 Dsb(a.b, e);
61045 }
61046 function i6d(a) {
61047 var b, c2, d;
61048 b = new A6d();
61049 c2 = s6d(b, a);
61050 z6d(b);
61051 d = c2;
61052 return d;
61053 }
61054 function vZd() {
61055 var a, b, c2;
61056 b = (c2 = (a = new UQd(), a), c2);
61057 Ekb(rZd, b);
61058 return b;
61059 }
61060 function H2c(a) {
61061 a.j.c = KC(SI, Uhe, 1, 0, 5, 1);
61062 Ae(a.c);
61063 h3c(a.a);
61064 return a;
61065 }
61066 function tgc(a) {
61067 qgc();
61068 if (JD(a.g, 10)) {
61069 return BD(a.g, 10);
61070 }
61071 return null;
61072 }
61073 function Zw(a) {
61074 if (Ah(a).dc()) {
61075 return false;
61076 }
61077 Bh(a, new bx());
61078 return true;
61079 }
61080 function _y(b) {
61081 if (!("stack" in b)) {
61082 try {
61083 throw b;
61084 } catch (a) {
61085 }
61086 }
61087 return b;
61088 }
61089 function Pb(a, b) {
61090 if (a < 0 || a >= b) {
61091 throw vbb(new qcb(Ib(a, b)));
61092 }
61093 return a;
61094 }
61095 function Tb(a, b, c2) {
61096 if (a < 0 || b < a || b > c2) {
61097 throw vbb(new qcb(Kb(a, b, c2)));
61098 }
61099 }
61100 function eVb(a, b) {
61101 Qqb(a.a, b);
61102 if (b.d) {
61103 throw vbb(new hz(Hke));
61104 }
61105 b.d = a;
61106 }
61107 function xpb(a, b) {
61108 if (b.$modCount != a.$modCount) {
61109 throw vbb(new Apb());
61110 }
61111 }
61112 function $pb(a, b) {
61113 if (JD(b, 42)) {
61114 return Jd(a.a, BD(b, 42));
61115 }
61116 return false;
61117 }
61118 function dib(a, b) {
61119 if (JD(b, 42)) {
61120 return Jd(a.a, BD(b, 42));
61121 }
61122 return false;
61123 }
61124 function msb(a, b) {
61125 if (JD(b, 42)) {
61126 return Jd(a.a, BD(b, 42));
61127 }
61128 return false;
61129 }
61130 function qAb(a, b) {
61131 if (a.a <= a.b) {
61132 b.ud(a.a++);
61133 return true;
61134 }
61135 return false;
61136 }
61137 function Sbb(a) {
61138 var b;
61139 if (Fbb(a)) {
61140 b = a;
61141 return b == -0 ? 0 : b;
61142 }
61143 return oD(a);
61144 }
61145 function tAb(a) {
61146 var b;
61147 Tzb(a);
61148 b = new drb();
61149 _ub(a.a, new BAb(b));
61150 return b;
61151 }
61152 function Yzb(a) {
61153 var b;
61154 Tzb(a);
61155 b = new Gpb();
61156 _ub(a.a, new mAb(b));
61157 return b;
61158 }
61159 function Bib(a, b) {
61160 this.a = a;
61161 vib.call(this, a);
61162 wCb(b, a.gc());
61163 this.b = b;
61164 }
61165 function orb(a) {
61166 this.e = a;
61167 this.b = this.e.a.entries();
61168 this.a = new Array();
61169 }
61170 function Oi(a) {
61171 return Zj(a.e.Hd().gc() * a.c.Hd().gc(), 273, new cj(a));
61172 }
61173 function Qu(a) {
61174 return new Skb((Xj(a, Mie), Oy(wbb(wbb(5, a), a / 10 | 0))));
61175 }
61176 function m_b(a) {
61177 return BD(Qkb(a, KC(aR, lne, 11, a.c.length, 0, 1)), 1943);
61178 }
61179 function sMb(a, b, c2) {
61180 return c2.f.c.length > 0 ? HMb(a.a, b, c2) : HMb(a.b, b, c2);
61181 }
61182 function SZb(a, b, c2) {
61183 !!a.d && Lkb(a.d.e, a);
61184 a.d = b;
61185 !!a.d && Dkb(a.d.e, c2, a);
61186 }
61187 function a5b(a, b) {
61188 i5b(b, a);
61189 k5b(a.d);
61190 k5b(BD(vNb(a, (Nyc(), wxc)), 207));
61191 }
61192 function _4b(a, b) {
61193 f5b(b, a);
61194 h5b(a.d);
61195 h5b(BD(vNb(a, (Nyc(), wxc)), 207));
61196 }
61197 function Ypd(a, b) {
61198 var c2, d;
61199 c2 = aC(a, b);
61200 d = null;
61201 !!c2 && (d = c2.fe());
61202 return d;
61203 }
61204 function Zpd(a, b) {
61205 var c2, d;
61206 c2 = tB(a, b);
61207 d = null;
61208 !!c2 && (d = c2.ie());
61209 return d;
61210 }
61211 function $pd(a, b) {
61212 var c2, d;
61213 c2 = aC(a, b);
61214 d = null;
61215 !!c2 && (d = c2.ie());
61216 return d;
61217 }
61218 function _pd(a, b) {
61219 var c2, d;
61220 c2 = aC(a, b);
61221 d = null;
61222 !!c2 && (d = aqd(c2));
61223 return d;
61224 }
61225 function Tqd(a, b, c2) {
61226 var d;
61227 d = Wpd(c2);
61228 ro(a.g, d, b);
61229 ro(a.i, b, c2);
61230 return b;
61231 }
61232 function Ez(a, b, c2) {
61233 var d;
61234 d = Cz();
61235 try {
61236 return Bz(a, b, c2);
61237 } finally {
61238 Fz(d);
61239 }
61240 }
61241 function C6d(a) {
61242 var b;
61243 b = a.Wg();
61244 this.a = JD(b, 69) ? BD(b, 69).Zh() : b.Kc();
61245 }
61246 function j3c() {
61247 D2c.call(this);
61248 this.j.c = KC(SI, Uhe, 1, 0, 5, 1);
61249 this.a = -1;
61250 }
61251 function mxd(a, b, c2, d) {
61252 this.d = a;
61253 this.n = b;
61254 this.g = c2;
61255 this.o = d;
61256 this.p = -1;
61257 }
61258 function jk(a, b, c2, d) {
61259 this.e = d;
61260 this.d = null;
61261 this.c = a;
61262 this.a = b;
61263 this.b = c2;
61264 }
61265 function uEc(a, b, c2) {
61266 this.d = new HEc(this);
61267 this.e = a;
61268 this.i = b;
61269 this.f = c2;
61270 }
61271 function msc() {
61272 msc = ccb;
61273 ksc = new nsc(gle, 0);
61274 lsc = new nsc("TOP_LEFT", 1);
61275 }
61276 function cDc() {
61277 cDc = ccb;
61278 bDc = ix(meb(1), meb(4));
61279 aDc = ix(meb(1), meb(2));
61280 }
61281 function z_c() {
61282 z_c = ccb;
61283 y_c = as((s_c(), OC(GC(O_, 1), Kie, 551, 0, [r_c])));
61284 }
61285 function q_c() {
61286 q_c = ccb;
61287 p_c = as((i_c(), OC(GC(N_, 1), Kie, 482, 0, [h_c])));
61288 }
61289 function Z0c() {
61290 Z0c = ccb;
61291 Y0c = as((R0c(), OC(GC(W_, 1), Kie, 530, 0, [Q0c])));
61292 }
61293 function hPb() {
61294 hPb = ccb;
61295 gPb = as((cPb(), OC(GC(GO, 1), Kie, 481, 0, [bPb])));
61296 }
61297 function yLb() {
61298 vLb();
61299 return OC(GC(PN, 1), Kie, 406, 0, [uLb, rLb, sLb, tLb]);
61300 }
61301 function qxb() {
61302 lxb();
61303 return OC(GC(iL, 1), Kie, 297, 0, [hxb, ixb, jxb, kxb]);
61304 }
61305 function UOb() {
61306 ROb();
61307 return OC(GC(CO, 1), Kie, 394, 0, [OOb, NOb, POb, QOb]);
61308 }
61309 function UMb() {
61310 RMb();
61311 return OC(GC(jO, 1), Kie, 323, 0, [OMb, NMb, PMb, QMb]);
61312 }
61313 function sWb() {
61314 lWb();
61315 return OC(GC(SP, 1), Kie, 405, 0, [hWb, kWb, iWb, jWb]);
61316 }
61317 function kbc() {
61318 gbc();
61319 return OC(GC(VS, 1), Kie, 360, 0, [fbc, dbc, ebc, cbc]);
61320 }
61321 function Vc(a, b, c2, d) {
61322 return JD(c2, 54) ? new Cg(a, b, c2, d) : new qg(a, b, c2, d);
61323 }
61324 function Djc() {
61325 Ajc();
61326 return OC(GC(mV, 1), Kie, 411, 0, [wjc, xjc, yjc, zjc]);
61327 }
61328 function okc(a) {
61329 var b;
61330 return a.j == (Ucd(), Rcd) && (b = pkc(a), uqb(b, zcd));
61331 }
61332 function Mdc(a, b) {
61333 var c2;
61334 c2 = b.a;
61335 QZb(c2, b.c.d);
61336 RZb(c2, b.d.d);
61337 q7c(c2.a, a.n);
61338 }
61339 function Smc(a, b) {
61340 return BD(Btb(QAb(BD(Qc(a.k, b), 15).Oc(), Hmc)), 113);
61341 }
61342 function Tmc(a, b) {
61343 return BD(Btb(RAb(BD(Qc(a.k, b), 15).Oc(), Hmc)), 113);
61344 }
61345 function _w(a) {
61346 return new Kub(rmb(BD(a.a.dd(), 14).gc(), a.a.cd()), 16);
61347 }
61348 function Qq(a) {
61349 if (JD(a, 14)) {
61350 return BD(a, 14).dc();
61351 }
61352 return !a.Kc().Ob();
61353 }
61354 function ugc(a) {
61355 qgc();
61356 if (JD(a.g, 145)) {
61357 return BD(a.g, 145);
61358 }
61359 return null;
61360 }
61361 function Ko(a) {
61362 if (a.e.g != a.b) {
61363 throw vbb(new Apb());
61364 }
61365 return !!a.c && a.d > 0;
61366 }
61367 function Xsb(a) {
61368 sCb(a.b != a.d.c);
61369 a.c = a.b;
61370 a.b = a.b.a;
61371 ++a.a;
61372 return a.c.c;
61373 }
61374 function Xjb(a, b) {
61375 uCb(b);
61376 NC(a.a, a.c, b);
61377 a.c = a.c + 1 & a.a.length - 1;
61378 _jb(a);
61379 }
61380 function Wjb(a, b) {
61381 uCb(b);
61382 a.b = a.b - 1 & a.a.length - 1;
61383 NC(a.a, a.b, b);
61384 _jb(a);
61385 }
61386 function A2c(a, b) {
61387 var c2;
61388 for (c2 = a.j.c.length; c2 < b; c2++) {
61389 Ekb(a.j, a.rg());
61390 }
61391 }
61392 function gBc(a, b, c2, d) {
61393 var e;
61394 e = d[b.g][c2.g];
61395 return Edb(ED(vNb(a.a, e)));
61396 }
61397 function goc(a, b, c2, d, e) {
61398 this.i = a;
61399 this.a = b;
61400 this.e = c2;
61401 this.j = d;
61402 this.f = e;
61403 }
61404 function DZc(a, b, c2, d, e) {
61405 this.a = a;
61406 this.e = b;
61407 this.f = c2;
61408 this.b = d;
61409 this.g = e;
61410 }
61411 function Fz(a) {
61412 a && Mz((Kz(), Jz));
61413 --xz;
61414 if (a) {
61415 if (zz != -1) {
61416 Hz(zz);
61417 zz = -1;
61418 }
61419 }
61420 }
61421 function Nzc() {
61422 Izc();
61423 return OC(GC($W, 1), Kie, 197, 0, [Gzc, Hzc, Fzc, Ezc]);
61424 }
61425 function ERc() {
61426 yRc();
61427 return OC(GC(h$, 1), Kie, 393, 0, [uRc, vRc, wRc, xRc]);
61428 }
61429 function mXc() {
61430 iXc();
61431 return OC(GC(a_, 1), Kie, 340, 0, [hXc, fXc, gXc, eXc]);
61432 }
61433 function wdd() {
61434 tdd();
61435 return OC(GC(I1, 1), Kie, 374, 0, [rdd, sdd, qdd, pdd]);
61436 }
61437 function vbd() {
61438 rbd();
61439 return OC(GC(A1, 1), Kie, 285, 0, [qbd, nbd, obd, pbd]);
61440 }
61441 function Dad() {
61442 Aad();
61443 return OC(GC(v1, 1), Kie, 218, 0, [zad, xad, wad, yad]);
61444 }
61445 function Ged() {
61446 Ded();
61447 return OC(GC(O1, 1), Kie, 311, 0, [Ced, zed, Bed, Aed]);
61448 }
61449 function sgd() {
61450 pgd();
61451 return OC(GC(k2, 1), Kie, 396, 0, [mgd, ngd, lgd, ogd]);
61452 }
61453 function gvd(a) {
61454 evd();
61455 return Mhb(dvd, a) ? BD(Ohb(dvd, a), 331).ug() : null;
61456 }
61457 function cid(a, b, c2) {
61458 return b < 0 ? tid(a, c2) : BD(c2, 66).Nj().Sj(a, a.yh(), b);
61459 }
61460 function Sqd(a, b, c2) {
61461 var d;
61462 d = Wpd(c2);
61463 ro(a.d, d, b);
61464 Rhb(a.e, b, c2);
61465 return b;
61466 }
61467 function Uqd(a, b, c2) {
61468 var d;
61469 d = Wpd(c2);
61470 ro(a.j, d, b);
61471 Rhb(a.k, b, c2);
61472 return b;
61473 }
61474 function dtd(a) {
61475 var b, c2;
61476 b = (Fhd(), c2 = new Tld(), c2);
61477 !!a && Rld(b, a);
61478 return b;
61479 }
61480 function wud(a) {
61481 var b;
61482 b = a.ri(a.i);
61483 a.i > 0 && $fb(a.g, 0, b, 0, a.i);
61484 return b;
61485 }
61486 function qEd(a, b) {
61487 pEd();
61488 var c2;
61489 c2 = BD(Ohb(oEd, a), 55);
61490 return !c2 || c2.wj(b);
61491 }
61492 function Twd(a) {
61493 if (a.p != 1)
61494 throw vbb(new Ydb());
61495 return Tbb(a.f) << 24 >> 24;
61496 }
61497 function axd(a) {
61498 if (a.p != 1)
61499 throw vbb(new Ydb());
61500 return Tbb(a.k) << 24 >> 24;
61501 }
61502 function gxd(a) {
61503 if (a.p != 7)
61504 throw vbb(new Ydb());
61505 return Tbb(a.k) << 16 >> 16;
61506 }
61507 function Zwd(a) {
61508 if (a.p != 7)
61509 throw vbb(new Ydb());
61510 return Tbb(a.f) << 16 >> 16;
61511 }
61512 function sr(a) {
61513 var b;
61514 b = 0;
61515 while (a.Ob()) {
61516 a.Pb();
61517 b = wbb(b, 1);
61518 }
61519 return Oy(b);
61520 }
61521 function nx(a, b) {
61522 var c2;
61523 c2 = new Vfb();
61524 a.xd(c2);
61525 c2.a += "..";
61526 b.yd(c2);
61527 return c2.a;
61528 }
61529 function Sgc(a, b, c2) {
61530 var d;
61531 d = BD(Ohb(a.g, c2), 57);
61532 Ekb(a.a.c, new vgd(b, d));
61533 }
61534 function VCb(a, b, c2) {
61535 return Ddb(ED(Wd(irb(a.f, b))), ED(Wd(irb(a.f, c2))));
61536 }
61537 function E2d(a, b, c2) {
61538 return F2d(a, b, c2, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
61539 }
61540 function L2d(a, b, c2) {
61541 return M2d(a, b, c2, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
61542 }
61543 function q3d(a, b, c2) {
61544 return r3d(a, b, c2, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
61545 }
61546 function JJc(a, b) {
61547 return a == (j0b(), h0b) && b == h0b ? 4 : a == h0b || b == h0b ? 8 : 32;
61548 }
61549 function Nd(a, b) {
61550 return PD(b) === PD(a) ? "(this Map)" : b == null ? Xhe : fcb(b);
61551 }
61552 function kFd(a, b) {
61553 return BD(b == null ? Wd(irb(a.f, null)) : Crb(a.g, b), 281);
61554 }
61555 function Rqd(a, b, c2) {
61556 var d;
61557 d = Wpd(c2);
61558 Rhb(a.b, d, b);
61559 Rhb(a.c, b, c2);
61560 return b;
61561 }
61562 function Bfd(a, b) {
61563 var c2;
61564 c2 = b;
61565 while (c2) {
61566 O6c(a, c2.i, c2.j);
61567 c2 = Xod(c2);
61568 }
61569 return a;
61570 }
61571 function kt(a, b) {
61572 var c2;
61573 c2 = vmb(Nu(new wu(a, b)));
61574 ir(new wu(a, b));
61575 return c2;
61576 }
61577 function R6d(a, b) {
61578 Q6d();
61579 var c2;
61580 c2 = BD(a, 66).Mj();
61581 kVd(c2, b);
61582 return c2.Ok(b);
61583 }
61584 function TOc(a, b, c2, d, e) {
61585 var f2;
61586 f2 = OOc(e, c2, d);
61587 Ekb(b, tOc(e, f2));
61588 XOc(a, e, b);
61589 }
61590 function mic(a, b, c2) {
61591 a.i = 0;
61592 a.e = 0;
61593 if (b == c2) {
61594 return;
61595 }
61596 lic(a, b, c2);
61597 kic(a, b, c2);
61598 }
61599 function dB(a, b) {
61600 var c2;
61601 c2 = a.q.getHours();
61602 a.q.setFullYear(b + nje);
61603 YA(a, c2);
61604 }
61605 function dC(d, a, b) {
61606 if (b) {
61607 var c2 = b.ee();
61608 d.a[a] = c2(b);
61609 } else {
61610 delete d.a[a];
61611 }
61612 }
61613 function vB(d, a, b) {
61614 if (b) {
61615 var c2 = b.ee();
61616 b = c2(b);
61617 } else {
61618 b = void 0;
61619 }
61620 d.a[a] = b;
61621 }
61622 function pCb(a) {
61623 if (a < 0) {
61624 throw vbb(new Feb("Negative array size: " + a));
61625 }
61626 }
61627 function VKd(a) {
61628 if (!a.n) {
61629 $Kd(a);
61630 a.n = new JMd(a, j5, a);
61631 _Kd(a);
61632 }
61633 return a.n;
61634 }
61635 function Fqb(a) {
61636 sCb(a.a < a.c.a.length);
61637 a.b = a.a;
61638 Dqb(a);
61639 return a.c.b[a.b];
61640 }
61641 function Yjb(a) {
61642 if (a.b == a.c) {
61643 return;
61644 }
61645 a.a = KC(SI, Uhe, 1, 8, 5, 1);
61646 a.b = 0;
61647 a.c = 0;
61648 }
61649 function AQb(a) {
61650 this.b = new Lqb();
61651 this.c = new Lqb();
61652 this.d = new Lqb();
61653 this.a = a;
61654 }
61655 function lge(a, b) {
61656 wfe();
61657 xfe.call(this, a);
61658 this.a = b;
61659 this.c = -1;
61660 this.b = -1;
61661 }
61662 function lSd(a, b, c2, d) {
61663 kxd.call(this, 1, c2, d);
61664 this.c = a;
61665 this.b = b;
61666 }
61667 function mSd(a, b, c2, d) {
61668 lxd.call(this, 1, c2, d);
61669 this.c = a;
61670 this.b = b;
61671 }
61672 function O7d(a, b, c2, d, e, f2, g) {
61673 nxd.call(this, b, d, e, f2, g);
61674 this.c = a;
61675 this.a = c2;
61676 }
61677 function LVd(a, b, c2) {
61678 this.e = a;
61679 this.a = SI;
61680 this.b = R5d(b);
61681 this.c = b;
61682 this.d = c2;
61683 }
61684 function Lo(a) {
61685 this.e = a;
61686 this.c = this.e.a;
61687 this.b = this.e.g;
61688 this.d = this.e.i;
61689 }
61690 function nYd(a) {
61691 this.c = a;
61692 this.a = BD(wId(a), 148);
61693 this.b = this.a.Aj().Nh();
61694 }
61695 function Irb(a) {
61696 this.d = a;
61697 this.b = this.d.a.entries();
61698 this.a = this.b.next();
61699 }
61700 function $rb() {
61701 Lqb.call(this);
61702 Trb(this);
61703 this.d.b = this.d;
61704 this.d.a = this.d;
61705 }
61706 function mRb(a, b) {
61707 _Qb.call(this);
61708 this.a = a;
61709 this.b = b;
61710 Ekb(this.a.b, this);
61711 }
61712 function uFd(a, b) {
61713 var c2;
61714 return c2 = b != null ? Phb(a, b) : Wd(irb(a.f, b)), RD(c2);
61715 }
61716 function FFd(a, b) {
61717 var c2;
61718 return c2 = b != null ? Phb(a, b) : Wd(irb(a.f, b)), RD(c2);
61719 }
61720 function Fob(a, b) {
61721 var c2;
61722 for (c2 = 0; c2 < b; ++c2) {
61723 NC(a, c2, new Rob(BD(a[c2], 42)));
61724 }
61725 }
61726 function Lgb(a, b) {
61727 var c2;
61728 for (c2 = a.d - 1; c2 >= 0 && a.a[c2] === b[c2]; c2--)
61729 ;
61730 return c2 < 0;
61731 }
61732 function Ucc(a, b) {
61733 Occ();
61734 var c2;
61735 c2 = a.j.g - b.j.g;
61736 if (c2 != 0) {
61737 return c2;
61738 }
61739 return 0;
61740 }
61741 function Dtb(a, b) {
61742 uCb(b);
61743 if (a.a != null) {
61744 return Itb(b.Kb(a.a));
61745 }
61746 return ztb;
61747 }
61748 function Gx(a) {
61749 var b;
61750 if (a) {
61751 return new Bsb(a);
61752 }
61753 b = new zsb();
61754 Jq(b, a);
61755 return b;
61756 }
61757 function GAb(a, b) {
61758 var c2;
61759 return b.b.Kb(SAb(a, b.c.Ee(), (c2 = new TBb(b), c2)));
61760 }
61761 function Hub(a) {
61762 zub();
61763 Eub(this, Tbb(xbb(Obb(a, 24), nke)), Tbb(xbb(a, nke)));
61764 }
61765 function REb() {
61766 REb = ccb;
61767 QEb = as((MEb(), OC(GC(aN, 1), Kie, 428, 0, [LEb, KEb])));
61768 }
61769 function ZEb() {
61770 ZEb = ccb;
61771 YEb = as((UEb(), OC(GC(bN, 1), Kie, 427, 0, [SEb, TEb])));
61772 }
61773 function aSb() {
61774 aSb = ccb;
61775 _Rb = as((XRb(), OC(GC(gP, 1), Kie, 424, 0, [VRb, WRb])));
61776 }
61777 function D5b() {
61778 D5b = ccb;
61779 C5b = as((y5b(), OC(GC(ZR, 1), Kie, 511, 0, [x5b, w5b])));
61780 }
61781 function Cqc() {
61782 Cqc = ccb;
61783 Bqc = as((xqc(), OC(GC(JW, 1), Kie, 419, 0, [vqc, wqc])));
61784 }
61785 function erc() {
61786 erc = ccb;
61787 drc = as((_qc(), OC(GC(MW, 1), Kie, 479, 0, [$qc, Zqc])));
61788 }
61789 function eBc() {
61790 eBc = ccb;
61791 dBc = as((_Ac(), OC(GC(fX, 1), Kie, 376, 0, [$Ac, ZAc])));
61792 }
61793 function GAc() {
61794 GAc = ccb;
61795 FAc = as((BAc(), OC(GC(cX, 1), Kie, 421, 0, [zAc, AAc])));
61796 }
61797 function Npc() {
61798 Npc = ccb;
61799 Mpc = as((Ipc(), OC(GC(FW, 1), Kie, 422, 0, [Gpc, Hpc])));
61800 }
61801 function rsc() {
61802 rsc = ccb;
61803 qsc = as((msc(), OC(GC(SW, 1), Kie, 420, 0, [ksc, lsc])));
61804 }
61805 function MOc() {
61806 MOc = ccb;
61807 LOc = as((HOc(), OC(GC(DZ, 1), Kie, 520, 0, [GOc, FOc])));
61808 }
61809 function ZIc() {
61810 ZIc = ccb;
61811 YIc = as((UIc(), OC(GC(mY, 1), Kie, 523, 0, [TIc, SIc])));
61812 }
61813 function bMc() {
61814 bMc = ccb;
61815 aMc = as((YLc(), OC(GC(fZ, 1), Kie, 516, 0, [XLc, WLc])));
61816 }
61817 function jMc() {
61818 jMc = ccb;
61819 iMc = as((eMc(), OC(GC(gZ, 1), Kie, 515, 0, [cMc, dMc])));
61820 }
61821 function KQc() {
61822 KQc = ccb;
61823 JQc = as((FQc(), OC(GC(YZ, 1), Kie, 455, 0, [DQc, EQc])));
61824 }
61825 function dUc() {
61826 dUc = ccb;
61827 cUc = as(($Tc(), OC(GC(F$, 1), Kie, 425, 0, [ZTc, YTc])));
61828 }
61829 function XUc() {
61830 XUc = ccb;
61831 WUc = as((PUc(), OC(GC(K$, 1), Kie, 495, 0, [NUc, OUc])));
61832 }
61833 function XTc() {
61834 XTc = ccb;
61835 WTc = as((STc(), OC(GC(E$, 1), Kie, 480, 0, [QTc, RTc])));
61836 }
61837 function lWc() {
61838 lWc = ccb;
61839 kWc = as((fWc(), OC(GC(X$, 1), Kie, 426, 0, [dWc, eWc])));
61840 }
61841 function i1c() {
61842 i1c = ccb;
61843 h1c = as((a1c(), OC(GC(X_, 1), Kie, 429, 0, [_0c, $0c])));
61844 }
61845 function H_c() {
61846 H_c = ccb;
61847 G_c = as((C_c(), OC(GC(P_, 1), Kie, 430, 0, [B_c, A_c])));
61848 }
61849 function UIc() {
61850 UIc = ccb;
61851 TIc = new VIc("UPPER", 0);
61852 SIc = new VIc("LOWER", 1);
61853 }
61854 function Lqd(a, b) {
61855 var c2;
61856 c2 = new eC();
61857 Spd(c2, "x", b.a);
61858 Spd(c2, "y", b.b);
61859 Qpd(a, c2);
61860 }
61861 function Oqd(a, b) {
61862 var c2;
61863 c2 = new eC();
61864 Spd(c2, "x", b.a);
61865 Spd(c2, "y", b.b);
61866 Qpd(a, c2);
61867 }
61868 function Jic(a, b) {
61869 var c2, d;
61870 d = false;
61871 do {
61872 c2 = Mic(a, b);
61873 d = d | c2;
61874 } while (c2);
61875 return d;
61876 }
61877 function zHc(a, b) {
61878 var c2, d;
61879 c2 = b;
61880 d = 0;
61881 while (c2 > 0) {
61882 d += a.a[c2];
61883 c2 -= c2 & -c2;
61884 }
61885 return d;
61886 }
61887 function Cfd(a, b) {
61888 var c2;
61889 c2 = b;
61890 while (c2) {
61891 O6c(a, -c2.i, -c2.j);
61892 c2 = Xod(c2);
61893 }
61894 return a;
61895 }
61896 function reb(a, b) {
61897 var c2, d;
61898 uCb(b);
61899 for (d = a.Kc(); d.Ob(); ) {
61900 c2 = d.Pb();
61901 b.td(c2);
61902 }
61903 }
61904 function me(a, b) {
61905 var c2;
61906 c2 = b.cd();
61907 return new Wo(c2, a.e.pc(c2, BD(b.dd(), 14)));
61908 }
61909 function Gsb(a, b, c2, d) {
61910 var e;
61911 e = new jtb();
61912 e.c = b;
61913 e.b = c2;
61914 e.a = d;
61915 d.b = c2.a = e;
61916 ++a.b;
61917 }
61918 function Nkb(a, b, c2) {
61919 var d;
61920 d = (tCb(b, a.c.length), a.c[b]);
61921 a.c[b] = c2;
61922 return d;
61923 }
61924 function lFd(a, b, c2) {
61925 return BD(b == null ? jrb(a.f, null, c2) : Drb(a.g, b, c2), 281);
61926 }
61927 function fRb(a) {
61928 return !!a.c && !!a.d ? oRb(a.c) + "->" + oRb(a.d) : "e_" + FCb(a);
61929 }
61930 function FAb(a, b) {
61931 return (Uzb(a), WAb(new YAb(a, new qBb(b, a.a)))).sd(DAb);
61932 }
61933 function tUb() {
61934 qUb();
61935 return OC(GC(zP, 1), Kie, 356, 0, [lUb, mUb, nUb, oUb, pUb]);
61936 }
61937 function _cd() {
61938 Ucd();
61939 return OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]);
61940 }
61941 function Dz(b) {
61942 Az();
61943 return function() {
61944 return Ez(b, this, arguments);
61945 };
61946 }
61947 function sz() {
61948 if (Date.now) {
61949 return Date.now();
61950 }
61951 return (/* @__PURE__ */ new Date()).getTime();
61952 }
61953 function OZb(a) {
61954 if (!a.c || !a.d) {
61955 return false;
61956 }
61957 return !!a.c.i && a.c.i == a.d.i;
61958 }
61959 function pv(a) {
61960 if (!a.c.Sb()) {
61961 throw vbb(new utb());
61962 }
61963 a.a = true;
61964 return a.c.Ub();
61965 }
61966 function ko(a) {
61967 a.i = 0;
61968 Alb(a.b, null);
61969 Alb(a.c, null);
61970 a.a = null;
61971 a.e = null;
61972 ++a.g;
61973 }
61974 function ycb(a) {
61975 wcb.call(this, a == null ? Xhe : fcb(a), JD(a, 78) ? BD(a, 78) : null);
61976 }
61977 function PYb(a) {
61978 MYb();
61979 yXb(this);
61980 this.a = new Psb();
61981 NYb(this, a);
61982 Dsb(this.a, a);
61983 }
61984 function jYb() {
61985 Ckb(this);
61986 this.b = new f7c(Pje, Pje);
61987 this.a = new f7c(Qje, Qje);
61988 }
61989 function rAb(a, b) {
61990 this.c = 0;
61991 this.b = b;
61992 jvb.call(this, a, 17493);
61993 this.a = this.c;
61994 }
61995 function wyb(a) {
61996 oyb();
61997 if (lyb) {
61998 return;
61999 }
62000 this.c = a;
62001 this.e = true;
62002 this.a = new Rkb();
62003 }
62004 function oyb() {
62005 oyb = ccb;
62006 lyb = true;
62007 jyb = false;
62008 kyb = false;
62009 nyb = false;
62010 myb = false;
62011 }
62012 function C3c(a, b) {
62013 if (JD(b, 149)) {
62014 return dfb(a.c, BD(b, 149).c);
62015 }
62016 return false;
62017 }
62018 function zUc(a, b) {
62019 var c2;
62020 c2 = 0;
62021 !!a && (c2 += a.f.a / 2);
62022 !!b && (c2 += b.f.a / 2);
62023 return c2;
62024 }
62025 function j4c(a, b) {
62026 var c2;
62027 c2 = BD(Wrb(a.d, b), 23);
62028 return c2 ? c2 : BD(Wrb(a.e, b), 23);
62029 }
62030 function Lzd(a) {
62031 this.b = a;
62032 Fyd.call(this, a);
62033 this.a = BD(Ajd(this.b.a, 4), 126);
62034 }
62035 function Uzd(a) {
62036 this.b = a;
62037 $yd.call(this, a);
62038 this.a = BD(Ajd(this.b.a, 4), 126);
62039 }
62040 function $Kd(a) {
62041 if (!a.t) {
62042 a.t = new YMd(a);
62043 vtd(new c0d(a), 0, a.t);
62044 }
62045 return a.t;
62046 }
62047 function kad() {
62048 ead();
62049 return OC(GC(t12, 1), Kie, 103, 0, [cad, bad, aad, _9c, dad]);
62050 }
62051 function Wbd() {
62052 Tbd();
62053 return OC(GC(C1, 1), Kie, 249, 0, [Qbd, Sbd, Obd, Pbd, Rbd]);
62054 }
62055 function Q5c() {
62056 N5c();
62057 return OC(GC(e1, 1), Kie, 175, 0, [L5c, K5c, I5c, M5c, J5c]);
62058 }
62059 function Q_c() {
62060 N_c();
62061 return OC(GC(Q_, 1), Kie, 316, 0, [I_c, J_c, M_c, K_c, L_c]);
62062 }
62063 function _zc() {
62064 Vzc();
62065 return OC(GC(_W, 1), Kie, 315, 0, [Uzc, Rzc, Szc, Qzc, Tzc]);
62066 }
62067 function sqc() {
62068 mqc();
62069 return OC(GC(IW, 1), Kie, 335, 0, [iqc, hqc, kqc, lqc, jqc]);
62070 }
62071 function n$c() {
62072 k$c();
62073 return OC(GC(y_, 1), Kie, 355, 0, [g$c, f$c, i$c, h$c, j$c]);
62074 }
62075 function _jc() {
62076 Xjc();
62077 return OC(GC(uV, 1), Kie, 363, 0, [Tjc, Vjc, Wjc, Ujc, Sjc]);
62078 }
62079 function Ftc() {
62080 Ctc();
62081 return OC(GC(TW, 1), Kie, 163, 0, [Btc, xtc, ytc, ztc, Atc]);
62082 }
62083 function T0d() {
62084 T0d = ccb;
62085 var a, b;
62086 R0d = (LFd(), b = new MPd(), b);
62087 S0d = (a = new OJd(), a);
62088 }
62089 function yUd(a) {
62090 var b;
62091 if (!a.c) {
62092 b = a.r;
62093 JD(b, 88) && (a.c = BD(b, 26));
62094 }
62095 return a.c;
62096 }
62097 function zc(a) {
62098 a.e = 3;
62099 a.d = a.Yb();
62100 if (a.e != 2) {
62101 a.e = 0;
62102 return true;
62103 }
62104 return false;
62105 }
62106 function RC(a) {
62107 var b, c2, d;
62108 b = a & Eje;
62109 c2 = a >> 22 & Eje;
62110 d = a < 0 ? Fje : 0;
62111 return TC(b, c2, d);
62112 }
62113 function uy(a) {
62114 var b, c2, d, e;
62115 for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
62116 b = c2[d];
62117 Qzb(b);
62118 }
62119 }
62120 function Tc(a, b) {
62121 var c2, d;
62122 c2 = BD(Iv(a.c, b), 14);
62123 if (c2) {
62124 d = c2.gc();
62125 c2.$b();
62126 a.d -= d;
62127 }
62128 }
62129 function tjb(a, b) {
62130 var c2, d;
62131 c2 = b.cd();
62132 d = Awb(a, c2);
62133 return !!d && wtb(d.e, b.dd());
62134 }
62135 function Qgb(a, b) {
62136 if (b == 0 || a.e == 0) {
62137 return a;
62138 }
62139 return b > 0 ? ihb(a, b) : lhb(a, -b);
62140 }
62141 function Rgb2(a, b) {
62142 if (b == 0 || a.e == 0) {
62143 return a;
62144 }
62145 return b > 0 ? lhb(a, b) : ihb(a, -b);
62146 }
62147 function Rr(a) {
62148 if (Qr(a)) {
62149 a.c = a.a;
62150 return a.a.Pb();
62151 } else {
62152 throw vbb(new utb());
62153 }
62154 }
62155 function Yac(a) {
62156 var b, c2;
62157 b = a.c.i;
62158 c2 = a.d.i;
62159 return b.k == (j0b(), e0b) && c2.k == e0b;
62160 }
62161 function kZb(a) {
62162 var b;
62163 b = new UZb();
62164 tNb(b, a);
62165 yNb(b, (Nyc(), jxc), null);
62166 return b;
62167 }
62168 function hid(a, b, c2) {
62169 var d;
62170 return d = a.Yg(b), d >= 0 ? a._g(d, c2, true) : sid(a, b, c2);
62171 }
62172 function uHb(a, b, c2, d) {
62173 var e;
62174 for (e = 0; e < rHb; e++) {
62175 nHb(a.a[b.g][e], c2, d[b.g]);
62176 }
62177 }
62178 function vHb(a, b, c2, d) {
62179 var e;
62180 for (e = 0; e < sHb; e++) {
62181 mHb(a.a[e][b.g], c2, d[b.g]);
62182 }
62183 }
62184 function vSd(a, b, c2, d, e) {
62185 kxd.call(this, b, d, e);
62186 this.c = a;
62187 this.a = c2;
62188 }
62189 function zSd(a, b, c2, d, e) {
62190 lxd.call(this, b, d, e);
62191 this.c = a;
62192 this.a = c2;
62193 }
62194 function ISd(a, b, c2, d, e) {
62195 oxd.call(this, b, d, e);
62196 this.c = a;
62197 this.a = c2;
62198 }
62199 function qSd(a, b, c2, d, e) {
62200 oxd.call(this, b, d, e);
62201 this.c = a;
62202 this.b = c2;
62203 }
62204 function mWd(a, b, c2) {
62205 VVd.call(this, c2);
62206 this.b = a;
62207 this.c = b;
62208 this.d = (CWd(), AWd);
62209 }
62210 function oxd(a, b, c2) {
62211 this.d = a;
62212 this.k = b ? 1 : 0;
62213 this.f = c2 ? 1 : 0;
62214 this.o = -1;
62215 this.p = 0;
62216 }
62217 function _6d(a, b, c2) {
62218 var d;
62219 d = new a7d(a.a);
62220 Ld(d, a.a.a);
62221 jrb(d.f, b, c2);
62222 a.a.a = d;
62223 }
62224 function lud(a, b) {
62225 a.qi(a.i + 1);
62226 mud(a, a.i, a.oi(a.i, b));
62227 a.bi(a.i++, b);
62228 a.ci();
62229 }
62230 function oud(a) {
62231 var b, c2;
62232 ++a.j;
62233 b = a.g;
62234 c2 = a.i;
62235 a.g = null;
62236 a.i = 0;
62237 a.di(c2, b);
62238 a.ci();
62239 }
62240 function Ou(a) {
62241 var b, c2;
62242 Qb(a);
62243 b = Iu(a.length);
62244 c2 = new Skb(b);
62245 nmb(c2, a);
62246 return c2;
62247 }
62248 function km(a) {
62249 var b;
62250 b = (Qb(a), a ? new Tkb(a) : Nu(a.Kc()));
62251 smb(b);
62252 return Dm(b);
62253 }
62254 function Kkb(a, b) {
62255 var c2;
62256 c2 = (tCb(b, a.c.length), a.c[b]);
62257 cCb(a.c, b, 1);
62258 return c2;
62259 }
62260 function Qc(a, b) {
62261 var c2;
62262 c2 = BD(a.c.xc(b), 14);
62263 !c2 && (c2 = a.ic(b));
62264 return a.pc(b, c2);
62265 }
62266 function cfb(a, b) {
62267 var c2, d;
62268 c2 = (uCb(a), a);
62269 d = (uCb(b), b);
62270 return c2 == d ? 0 : c2 < d ? -1 : 1;
62271 }
62272 function Fpb(a) {
62273 var b;
62274 b = a.e + a.f;
62275 if (isNaN(b) && Ldb(a.d)) {
62276 return a.d;
62277 }
62278 return b;
62279 }
62280 function uwb(a, b) {
62281 !a.a ? a.a = new Wfb(a.d) : Qfb(a.a, a.b);
62282 Nfb(a.a, b);
62283 return a;
62284 }
62285 function Sb(a, b) {
62286 if (a < 0 || a > b) {
62287 throw vbb(new qcb(Jb(a, b, "index")));
62288 }
62289 return a;
62290 }
62291 function zhb(a, b, c2, d) {
62292 var e;
62293 e = KC(WD, oje, 25, b, 15, 1);
62294 Ahb(e, a, b, c2, d);
62295 return e;
62296 }
62297 function _A(a, b) {
62298 var c2;
62299 c2 = a.q.getHours() + (b / 60 | 0);
62300 a.q.setMinutes(b);
62301 YA(a, c2);
62302 }
62303 function A$c(a, b) {
62304 return $wnd.Math.min(S6c(b.a, a.d.d.c), S6c(b.b, a.d.d.c));
62305 }
62306 function Thb(a, b) {
62307 return ND(b) ? b == null ? krb(a.f, null) : Erb(a.g, b) : krb(a.f, b);
62308 }
62309 function b1b(a) {
62310 this.c = a;
62311 this.a = new olb(this.c.a);
62312 this.b = new olb(this.c.b);
62313 }
62314 function kRb() {
62315 this.e = new Rkb();
62316 this.c = new Rkb();
62317 this.d = new Rkb();
62318 this.b = new Rkb();
62319 }
62320 function MFb() {
62321 this.g = new PFb();
62322 this.b = new PFb();
62323 this.a = new Rkb();
62324 this.k = new Rkb();
62325 }
62326 function Gjc(a, b, c2) {
62327 this.a = a;
62328 this.c = b;
62329 this.d = c2;
62330 Ekb(b.e, this);
62331 Ekb(c2.b, this);
62332 }
62333 function wBb(a, b) {
62334 fvb.call(this, b.rd(), b.qd() & -6);
62335 uCb(a);
62336 this.a = a;
62337 this.b = b;
62338 }
62339 function CBb(a, b) {
62340 jvb.call(this, b.rd(), b.qd() & -6);
62341 uCb(a);
62342 this.a = a;
62343 this.b = b;
62344 }
62345 function IBb(a, b) {
62346 nvb.call(this, b.rd(), b.qd() & -6);
62347 uCb(a);
62348 this.a = a;
62349 this.b = b;
62350 }
62351 function BQc(a, b, c2) {
62352 this.a = a;
62353 this.b = b;
62354 this.c = c2;
62355 Ekb(a.t, this);
62356 Ekb(b.i, this);
62357 }
62358 function SRc() {
62359 this.b = new Psb();
62360 this.a = new Psb();
62361 this.b = new Psb();
62362 this.a = new Psb();
62363 }
62364 function g6c() {
62365 g6c = ccb;
62366 f6c = new Lsd("org.eclipse.elk.labels.labelManager");
62367 }
62368 function Vac() {
62369 Vac = ccb;
62370 Uac = new Msd("separateLayerConnections", (gbc(), fbc));
62371 }
62372 function HOc() {
62373 HOc = ccb;
62374 GOc = new IOc("REGULAR", 0);
62375 FOc = new IOc("CRITICAL", 1);
62376 }
62377 function _Ac() {
62378 _Ac = ccb;
62379 $Ac = new aBc("STACKED", 0);
62380 ZAc = new aBc("SEQUENCED", 1);
62381 }
62382 function C_c() {
62383 C_c = ccb;
62384 B_c = new D_c("FIXED", 0);
62385 A_c = new D_c("CENTER_NODE", 1);
62386 }
62387 function PHc(a, b) {
62388 var c2;
62389 c2 = VHc(a, b);
62390 a.b = new BHc(c2.c.length);
62391 return OHc(a, c2);
62392 }
62393 function KAd(a, b, c2) {
62394 var d;
62395 ++a.e;
62396 --a.f;
62397 d = BD(a.d[b].$c(c2), 133);
62398 return d.dd();
62399 }
62400 function JJd(a) {
62401 var b;
62402 if (!a.a) {
62403 b = a.r;
62404 JD(b, 148) && (a.a = BD(b, 148));
62405 }
62406 return a.a;
62407 }
62408 function poc(a) {
62409 if (a.a) {
62410 if (a.e) {
62411 return poc(a.e);
62412 }
62413 } else {
62414 return a;
62415 }
62416 return null;
62417 }
62418 function ODc(a, b) {
62419 if (a.p < b.p) {
62420 return 1;
62421 } else if (a.p > b.p) {
62422 return -1;
62423 }
62424 return 0;
62425 }
62426 function pvb(a, b) {
62427 uCb(b);
62428 if (a.c < a.d) {
62429 a.ze(b, a.c++);
62430 return true;
62431 }
62432 return false;
62433 }
62434 function QYd(a, b) {
62435 if (Mhb(a.a, b)) {
62436 Thb(a.a, b);
62437 return true;
62438 } else {
62439 return false;
62440 }
62441 }
62442 function fd(a) {
62443 var b, c2;
62444 b = a.cd();
62445 c2 = BD(a.dd(), 14);
62446 return $j(c2.Nc(), new ah(b));
62447 }
62448 function sqb(a) {
62449 var b;
62450 b = BD(ZBb(a.b, a.b.length), 9);
62451 return new xqb(a.a, b, a.c);
62452 }
62453 function _zb(a) {
62454 var b;
62455 Uzb(a);
62456 b = new fAb(a, a.a.e, a.a.d | 4);
62457 return new bAb(a, b);
62458 }
62459 function HAb(a) {
62460 var b;
62461 Tzb(a);
62462 b = 0;
62463 while (a.a.sd(new RBb())) {
62464 b = wbb(b, 1);
62465 }
62466 return b;
62467 }
62468 function UDc(a, b, c2) {
62469 var d, e;
62470 d = 0;
62471 for (e = 0; e < b.length; e++) {
62472 d += a.$f(b[e], d, c2);
62473 }
62474 }
62475 function QJb(a, b) {
62476 var c2;
62477 if (a.C) {
62478 c2 = BD(Mpb(a.b, b), 124).n;
62479 c2.d = a.C.d;
62480 c2.a = a.C.a;
62481 }
62482 }
62483 function Mi(a, b, c2) {
62484 Pb(b, a.e.Hd().gc());
62485 Pb(c2, a.c.Hd().gc());
62486 return a.a[b][c2];
62487 }
62488 function Ugb(a, b) {
62489 Hgb();
62490 this.e = a;
62491 this.d = 1;
62492 this.a = OC(GC(WD, 1), oje, 25, 15, [b]);
62493 }
62494 function dg(a, b, c2, d) {
62495 this.f = a;
62496 this.e = b;
62497 this.d = c2;
62498 this.b = d;
62499 this.c = !d ? null : d.d;
62500 }
62501 function o5b(a) {
62502 var b, c2, d, e;
62503 e = a.d;
62504 b = a.a;
62505 c2 = a.b;
62506 d = a.c;
62507 a.d = c2;
62508 a.a = d;
62509 a.b = e;
62510 a.c = b;
62511 }
62512 function Y2d(a, b, c2, d) {
62513 X2d(a, b, c2, M2d(a, b, d, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0));
62514 }
62515 function tac(a, b) {
62516 Odd(b, "Label management", 1);
62517 RD(vNb(a, (g6c(), f6c)));
62518 Qdd(b);
62519 }
62520 function Skb(a) {
62521 Ckb(this);
62522 mCb(a >= 0, "Initial capacity must not be negative");
62523 }
62524 function lHb() {
62525 lHb = ccb;
62526 kHb = as((gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])));
62527 }
62528 function SHb() {
62529 SHb = ccb;
62530 RHb = as((NHb(), OC(GC(sN, 1), Kie, 461, 0, [LHb, KHb, MHb])));
62531 }
62532 function JIb() {
62533 JIb = ccb;
62534 IIb = as((EIb(), OC(GC(zN, 1), Kie, 462, 0, [DIb, CIb, BIb])));
62535 }
62536 function Kyb() {
62537 Kyb = ccb;
62538 Jyb = as((Fyb(), OC(GC(xL, 1), Kie, 132, 0, [Cyb, Dyb, Eyb])));
62539 }
62540 function DTb() {
62541 DTb = ccb;
62542 CTb = as((yTb(), OC(GC(oP, 1), Kie, 379, 0, [wTb, vTb, xTb])));
62543 }
62544 function WXb() {
62545 WXb = ccb;
62546 VXb = as((RXb(), OC(GC(hQ, 1), Kie, 423, 0, [QXb, PXb, OXb])));
62547 }
62548 function Zpc() {
62549 Zpc = ccb;
62550 Ypc = as((Rpc(), OC(GC(GW, 1), Kie, 314, 0, [Ppc, Opc, Qpc])));
62551 }
62552 function gqc() {
62553 gqc = ccb;
62554 fqc = as((bqc(), OC(GC(HW, 1), Kie, 337, 0, [$pc, aqc, _pc])));
62555 }
62556 function Lqc() {
62557 Lqc = ccb;
62558 Kqc = as((Gqc(), OC(GC(KW, 1), Kie, 450, 0, [Eqc, Dqc, Fqc])));
62559 }
62560 function Kkc() {
62561 Kkc = ccb;
62562 Jkc = as((Fkc(), OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc])));
62563 }
62564 function jsc() {
62565 jsc = ccb;
62566 isc = as((esc(), OC(GC(RW, 1), Kie, 303, 0, [csc, dsc, bsc])));
62567 }
62568 function asc() {
62569 asc = ccb;
62570 _rc = as((Xrc(), OC(GC(QW, 1), Kie, 292, 0, [Vrc, Wrc, Urc])));
62571 }
62572 function Dzc() {
62573 Dzc = ccb;
62574 Czc = as((xzc(), OC(GC(ZW, 1), Kie, 378, 0, [uzc, vzc, wzc])));
62575 }
62576 function YAc() {
62577 YAc = ccb;
62578 XAc = as((TAc(), OC(GC(eX, 1), Kie, 375, 0, [QAc, RAc, SAc])));
62579 }
62580 function yAc() {
62581 yAc = ccb;
62582 xAc = as((tAc(), OC(GC(bX, 1), Kie, 339, 0, [rAc, qAc, sAc])));
62583 }
62584 function PAc() {
62585 PAc = ccb;
62586 OAc = as((KAc(), OC(GC(dX, 1), Kie, 452, 0, [JAc, HAc, IAc])));
62587 }
62588 function QBc() {
62589 QBc = ccb;
62590 PBc = as((LBc(), OC(GC(jX, 1), Kie, 377, 0, [JBc, KBc, IBc])));
62591 }
62592 function yBc() {
62593 yBc = ccb;
62594 xBc = as((tBc(), OC(GC(hX, 1), Kie, 336, 0, [qBc, rBc, sBc])));
62595 }
62596 function HBc() {
62597 HBc = ccb;
62598 GBc = as((CBc(), OC(GC(iX, 1), Kie, 338, 0, [BBc, zBc, ABc])));
62599 }
62600 function wGc() {
62601 wGc = ccb;
62602 vGc = as((rGc(), OC(GC(PX, 1), Kie, 454, 0, [oGc, pGc, qGc])));
62603 }
62604 function zVc() {
62605 zVc = ccb;
62606 yVc = as((tVc(), OC(GC(O$, 1), Kie, 442, 0, [sVc, qVc, rVc])));
62607 }
62608 function vWc() {
62609 vWc = ccb;
62610 uWc = as((pWc(), OC(GC(Y$, 1), Kie, 380, 0, [mWc, nWc, oWc])));
62611 }
62612 function EYc() {
62613 EYc = ccb;
62614 DYc = as((zYc(), OC(GC(q_, 1), Kie, 381, 0, [xYc, yYc, wYc])));
62615 }
62616 function yXc() {
62617 yXc = ccb;
62618 xXc = as((sXc(), OC(GC(b_, 1), Kie, 293, 0, [qXc, rXc, pXc])));
62619 }
62620 function b_c() {
62621 b_c = ccb;
62622 a_c = as((Y$c(), OC(GC(J_, 1), Kie, 437, 0, [V$c, W$c, X$c])));
62623 }
62624 function mbd() {
62625 mbd = ccb;
62626 lbd = as((hbd(), OC(GC(z1, 1), Kie, 334, 0, [fbd, ebd, gbd])));
62627 }
62628 function vad() {
62629 vad = ccb;
62630 uad = as((qad(), OC(GC(u1, 1), Kie, 272, 0, [nad, oad, pad2])));
62631 }
62632 function icd() {
62633 dcd();
62634 return OC(GC(D1, 1), Kie, 98, 0, [ccd, bcd, acd, Zbd, _bd, $bd]);
62635 }
62636 function ikd(a, b) {
62637 return !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), qAd(a.o, b);
62638 }
62639 function NAd(a) {
62640 !a.g && (a.g = new JCd());
62641 !a.g.d && (a.g.d = new MBd(a));
62642 return a.g.d;
62643 }
62644 function yAd(a) {
62645 !a.g && (a.g = new JCd());
62646 !a.g.a && (a.g.a = new SBd(a));
62647 return a.g.a;
62648 }
62649 function EAd(a) {
62650 !a.g && (a.g = new JCd());
62651 !a.g.b && (a.g.b = new GBd(a));
62652 return a.g.b;
62653 }
62654 function FAd(a) {
62655 !a.g && (a.g = new JCd());
62656 !a.g.c && (a.g.c = new iCd(a));
62657 return a.g.c;
62658 }
62659 function A2d(a, b, c2) {
62660 var d, e;
62661 e = new p4d(b, a);
62662 for (d = 0; d < c2; ++d) {
62663 d4d(e);
62664 }
62665 return e;
62666 }
62667 function Atd(a, b, c2) {
62668 var d, e;
62669 if (c2 != null) {
62670 for (d = 0; d < b; ++d) {
62671 e = c2[d];
62672 a.fi(d, e);
62673 }
62674 }
62675 }
62676 function uhb(a, b, c2, d) {
62677 var e;
62678 e = KC(WD, oje, 25, b + 1, 15, 1);
62679 vhb(e, a, b, c2, d);
62680 return e;
62681 }
62682 function KC(a, b, c2, d, e, f2) {
62683 var g;
62684 g = LC(e, d);
62685 e != 10 && OC(GC(a, f2), b, c2, e, g);
62686 return g;
62687 }
62688 function bYd(a, b, c2, d) {
62689 !!c2 && (d = c2.gh(b, bLd(c2.Tg(), a.c.Lj()), null, d));
62690 return d;
62691 }
62692 function cYd(a, b, c2, d) {
62693 !!c2 && (d = c2.ih(b, bLd(c2.Tg(), a.c.Lj()), null, d));
62694 return d;
62695 }
62696 function KNb(a, b, c2) {
62697 BD(a.b, 65);
62698 BD(a.b, 65);
62699 BD(a.b, 65);
62700 Hkb(a.a, new TNb(c2, b, a));
62701 }
62702 function ACb(a, b, c2) {
62703 if (a < 0 || b > c2 || b < a) {
62704 throw vbb(new Xfb(xke + a + zke + b + oke + c2));
62705 }
62706 }
62707 function zCb(a) {
62708 if (!a) {
62709 throw vbb(new Zdb("Unable to add element to queue"));
62710 }
62711 }
62712 function Vzb(a) {
62713 if (!a) {
62714 this.c = null;
62715 this.b = new Rkb();
62716 } else {
62717 this.c = a;
62718 this.b = null;
62719 }
62720 }
62721 function exb(a, b) {
62722 pjb.call(this, a, b);
62723 this.a = KC(dL, zie, 436, 2, 0, 1);
62724 this.b = true;
62725 }
62726 function _rb(a) {
62727 Whb.call(this, a, 0);
62728 Trb(this);
62729 this.d.b = this.d;
62730 this.d.a = this.d;
62731 }
62732 function VRc(a) {
62733 var b;
62734 b = a.b;
62735 if (b.b == 0) {
62736 return null;
62737 }
62738 return BD(Ut(b, 0), 188).b;
62739 }
62740 function Kwb(a, b) {
62741 var c2;
62742 c2 = new fxb();
62743 c2.c = true;
62744 c2.d = b.dd();
62745 return Lwb(a, b.cd(), c2);
62746 }
62747 function bB(a, b) {
62748 var c2;
62749 c2 = a.q.getHours() + (b / 3600 | 0);
62750 a.q.setSeconds(b);
62751 YA(a, c2);
62752 }
62753 function zGc(a, b, c2) {
62754 var d;
62755 d = a.b[c2.c.p][c2.p];
62756 d.b += b.b;
62757 d.c += b.c;
62758 d.a += b.a;
62759 ++d.a;
62760 }
62761 function S6c(a, b) {
62762 var c2, d;
62763 c2 = a.a - b.a;
62764 d = a.b - b.b;
62765 return $wnd.Math.sqrt(c2 * c2 + d * d);
62766 }
62767 function Ipc() {
62768 Ipc = ccb;
62769 Gpc = new Jpc("QUADRATIC", 0);
62770 Hpc = new Jpc("SCANLINE", 1);
62771 }
62772 function hCc() {
62773 hCc = ccb;
62774 gCc = c3c(e3c(new j3c(), (qUb(), lUb), (S8b(), n8b)), pUb, J8b);
62775 }
62776 function l8c() {
62777 i8c();
62778 return OC(GC(r1, 1), Kie, 291, 0, [h8c, g8c, f8c, d8c, c8c, e8c]);
62779 }
62780 function I7c() {
62781 F7c();
62782 return OC(GC(o1, 1), Kie, 248, 0, [z7c, C7c, D7c, E7c, A7c, B7c]);
62783 }
62784 function Dpc() {
62785 Apc();
62786 return OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc]);
62787 }
62788 function Brc() {
62789 yrc();
62790 return OC(GC(OW, 1), Kie, 275, 0, [wrc, trc, xrc, vrc, urc, rrc]);
62791 }
62792 function orc() {
62793 lrc();
62794 return OC(GC(NW, 1), Kie, 274, 0, [irc, hrc, krc, grc, jrc, frc]);
62795 }
62796 function rzc() {
62797 lzc();
62798 return OC(GC(YW, 1), Kie, 313, 0, [jzc, hzc, fzc, gzc, kzc, izc]);
62799 }
62800 function Wqc() {
62801 Sqc();
62802 return OC(GC(LW, 1), Kie, 276, 0, [Nqc, Mqc, Pqc, Oqc, Rqc, Qqc]);
62803 }
62804 function uSc() {
62805 qSc();
62806 return OC(GC(t$, 1), Kie, 327, 0, [pSc, lSc, nSc, mSc, oSc, kSc]);
62807 }
62808 function wcd() {
62809 rcd();
62810 return OC(GC(E1, 1), Kie, 273, 0, [pcd, ncd, ocd, mcd, lcd, qcd]);
62811 }
62812 function Pad() {
62813 Mad();
62814 return OC(GC(w1, 1), Kie, 312, 0, [Kad, Iad, Lad, Gad, Jad, Had]);
62815 }
62816 function m0b() {
62817 j0b();
62818 return OC(GC(NQ, 1), Kie, 267, 0, [h0b, g0b, e0b, i0b, f0b, d0b]);
62819 }
62820 function mib(a) {
62821 yCb(!!a.c);
62822 xpb(a.e, a);
62823 a.c.Qb();
62824 a.c = null;
62825 a.b = kib(a);
62826 ypb(a.e, a);
62827 }
62828 function tsb(a) {
62829 xpb(a.c.a.e, a);
62830 sCb(a.b != a.c.a.d);
62831 a.a = a.b;
62832 a.b = a.b.a;
62833 return a.a;
62834 }
62835 function kSd(a) {
62836 var b;
62837 if (!a.a && a.b != -1) {
62838 b = a.c.Tg();
62839 a.a = XKd(b, a.b);
62840 }
62841 return a.a;
62842 }
62843 function wtd(a, b) {
62844 if (a.hi() && a.Hc(b)) {
62845 return false;
62846 } else {
62847 a.Yh(b);
62848 return true;
62849 }
62850 }
62851 function $Hb(a, b) {
62852 ytb(b, "Horizontal alignment cannot be null");
62853 a.b = b;
62854 return a;
62855 }
62856 function Lfe(a, b, c2) {
62857 wfe();
62858 var d;
62859 d = Kfe(a, b);
62860 c2 && !!d && Nfe(a) && (d = null);
62861 return d;
62862 }
62863 function vXb(a, b, c2) {
62864 var d, e;
62865 for (e = a.Kc(); e.Ob(); ) {
62866 d = BD(e.Pb(), 37);
62867 uXb(d, b, c2);
62868 }
62869 }
62870 function tXb(a, b) {
62871 var c2, d;
62872 for (d = b.Kc(); d.Ob(); ) {
62873 c2 = BD(d.Pb(), 37);
62874 sXb(a, c2, 0, 0);
62875 }
62876 }
62877 function ojc(a, b, c2) {
62878 var d;
62879 a.d[b.g] = c2;
62880 d = a.g.c;
62881 d[b.g] = $wnd.Math.max(d[b.g], c2 + 1);
62882 }
62883 function KZc(a, b) {
62884 var c2, d, e;
62885 e = a.r;
62886 d = a.d;
62887 c2 = MZc(a, b, true);
62888 return c2.b != e || c2.a != d;
62889 }
62890 function Jjc(a, b) {
62891 Vrb(a.e, b) || Xrb(a.e, b, new Pjc(b));
62892 return BD(Wrb(a.e, b), 113);
62893 }
62894 function Byb(a, b, c2, d) {
62895 uCb(a);
62896 uCb(b);
62897 uCb(c2);
62898 uCb(d);
62899 return new Lyb(a, b, new Vxb());
62900 }
62901 function dId(a, b, c2, d) {
62902 this.rj();
62903 this.a = b;
62904 this.b = a;
62905 this.c = new Y5d(this, b, c2, d);
62906 }
62907 function oSd(a, b, c2, d, e, f2) {
62908 mxd.call(this, b, d, e, f2);
62909 this.c = a;
62910 this.b = c2;
62911 }
62912 function ESd(a, b, c2, d, e, f2) {
62913 mxd.call(this, b, d, e, f2);
62914 this.c = a;
62915 this.a = c2;
62916 }
62917 function Bqd(a, b, c2) {
62918 var d, e, f2;
62919 d = aC(a, c2);
62920 e = null;
62921 !!d && (e = aqd(d));
62922 f2 = e;
62923 Vqd(b, c2, f2);
62924 }
62925 function Cqd(a, b, c2) {
62926 var d, e, f2;
62927 d = aC(a, c2);
62928 e = null;
62929 !!d && (e = aqd(d));
62930 f2 = e;
62931 Vqd(b, c2, f2);
62932 }
62933 function v1d(a, b, c2) {
62934 var d, e;
62935 e = (d = nUd(a.b, b), d);
62936 return !e ? null : V1d(p1d(a, e), c2);
62937 }
62938 function gid(a, b) {
62939 var c2;
62940 return c2 = a.Yg(b), c2 >= 0 ? a._g(c2, true, true) : sid(a, b, true);
62941 }
62942 function s6b(a, b) {
62943 return Kdb(Edb(ED(vNb(a, (wtc(), htc)))), Edb(ED(vNb(b, htc))));
62944 }
62945 function pUc() {
62946 pUc = ccb;
62947 oUc = b3c(b3c(g3c(new j3c(), (yRc(), vRc)), (qSc(), pSc)), lSc);
62948 }
62949 function IHc(a, b, c2) {
62950 var d;
62951 d = SHc(a, b, c2);
62952 a.b = new BHc(d.c.length);
62953 return KHc(a, d);
62954 }
62955 function qhe(a) {
62956 if (a.b <= 0)
62957 throw vbb(new utb());
62958 --a.b;
62959 a.a -= a.c.c;
62960 return meb(a.a);
62961 }
62962 function ptd(a) {
62963 var b;
62964 if (!a.a) {
62965 throw vbb(new vtb());
62966 }
62967 b = a.a;
62968 a.a = Xod(a.a);
62969 return b;
62970 }
62971 function dBb(a) {
62972 while (!a.a) {
62973 if (!HBb(a.c, new hBb(a))) {
62974 return false;
62975 }
62976 }
62977 return true;
62978 }
62979 function vr(a) {
62980 var b;
62981 Qb(a);
62982 if (JD(a, 198)) {
62983 b = BD(a, 198);
62984 return b;
62985 }
62986 return new wr(a);
62987 }
62988 function r3c(a) {
62989 p3c();
62990 BD(a.We((Y9c(), x9c)), 174).Fc((rcd(), ocd));
62991 a.Ye(w9c, null);
62992 }
62993 function p3c() {
62994 p3c = ccb;
62995 m3c = new v3c();
62996 o3c = new x3c();
62997 n3c = mn((Y9c(), w9c), m3c, b9c, o3c);
62998 }
62999 function fWc() {
63000 fWc = ccb;
63001 dWc = new hWc("LEAF_NUMBER", 0);
63002 eWc = new hWc("NODE_SIZE", 1);
63003 }
63004 function UMc(a, b, c2) {
63005 a.a = b;
63006 a.c = c2;
63007 a.b.a.$b();
63008 Osb(a.d);
63009 a.e.a.c = KC(SI, Uhe, 1, 0, 5, 1);
63010 }
63011 function yHc(a) {
63012 a.a = KC(WD, oje, 25, a.b + 1, 15, 1);
63013 a.c = KC(WD, oje, 25, a.b, 15, 1);
63014 a.d = 0;
63015 }
63016 function MWb(a, b) {
63017 if (a.a.ue(b.d, a.b) > 0) {
63018 Ekb(a.c, new dWb(b.c, b.d, a.d));
63019 a.b = b.d;
63020 }
63021 }
63022 function nud(a, b) {
63023 if (a.g == null || b >= a.i)
63024 throw vbb(new $zd(b, a.i));
63025 return a.g[b];
63026 }
63027 function pOd(a, b, c2) {
63028 Itd(a, c2);
63029 if (c2 != null && !a.wj(c2)) {
63030 throw vbb(new tcb());
63031 }
63032 return c2;
63033 }
63034 function KLd(a) {
63035 var b;
63036 if (a.Ek()) {
63037 for (b = a.i - 1; b >= 0; --b) {
63038 qud(a, b);
63039 }
63040 }
63041 return wud(a);
63042 }
63043 function Bwb(a) {
63044 var b, c2;
63045 if (!a.b) {
63046 return null;
63047 }
63048 c2 = a.b;
63049 while (b = c2.a[0]) {
63050 c2 = b;
63051 }
63052 return c2;
63053 }
63054 function ulb(a, b) {
63055 var c2, d;
63056 pCb(b);
63057 return c2 = (d = a.slice(0, b), PC(d, a)), c2.length = b, c2;
63058 }
63059 function Klb(a, b, c2, d) {
63060 var e;
63061 d = (ipb(), !d ? fpb : d);
63062 e = a.slice(b, c2);
63063 Llb(e, a, b, c2, -b, d);
63064 }
63065 function bid(a, b, c2, d, e) {
63066 return b < 0 ? sid(a, c2, d) : BD(c2, 66).Nj().Pj(a, a.yh(), b, d, e);
63067 }
63068 function hZd(a) {
63069 if (JD(a, 172)) {
63070 return "" + BD(a, 172).a;
63071 }
63072 return a == null ? null : fcb(a);
63073 }
63074 function iZd(a) {
63075 if (JD(a, 172)) {
63076 return "" + BD(a, 172).a;
63077 }
63078 return a == null ? null : fcb(a);
63079 }
63080 function nDb(a, b) {
63081 if (b.a) {
63082 throw vbb(new hz(Hke));
63083 }
63084 Qqb(a.a, b);
63085 b.a = a;
63086 !a.j && (a.j = b);
63087 }
63088 function qBb(a, b) {
63089 nvb.call(this, b.rd(), b.qd() & -16449);
63090 uCb(a);
63091 this.a = a;
63092 this.c = b;
63093 }
63094 function Ti(a, b) {
63095 var c2, d;
63096 d = b / a.c.Hd().gc() | 0;
63097 c2 = b % a.c.Hd().gc();
63098 return Mi(a, d, c2);
63099 }
63100 function NHb() {
63101 NHb = ccb;
63102 LHb = new OHb(jle, 0);
63103 KHb = new OHb(gle, 1);
63104 MHb = new OHb(kle, 2);
63105 }
63106 function lxb() {
63107 lxb = ccb;
63108 hxb = new mxb("All", 0);
63109 ixb = new rxb();
63110 jxb = new txb();
63111 kxb = new wxb();
63112 }
63113 function zxb() {
63114 zxb = ccb;
63115 yxb = as((lxb(), OC(GC(iL, 1), Kie, 297, 0, [hxb, ixb, jxb, kxb])));
63116 }
63117 function uWb() {
63118 uWb = ccb;
63119 tWb = as((lWb(), OC(GC(SP, 1), Kie, 405, 0, [hWb, kWb, iWb, jWb])));
63120 }
63121 function ALb() {
63122 ALb = ccb;
63123 zLb = as((vLb(), OC(GC(PN, 1), Kie, 406, 0, [uLb, rLb, sLb, tLb])));
63124 }
63125 function WMb() {
63126 WMb = ccb;
63127 VMb = as((RMb(), OC(GC(jO, 1), Kie, 323, 0, [OMb, NMb, PMb, QMb])));
63128 }
63129 function WOb() {
63130 WOb = ccb;
63131 VOb = as((ROb(), OC(GC(CO, 1), Kie, 394, 0, [OOb, NOb, POb, QOb])));
63132 }
63133 function GRc() {
63134 GRc = ccb;
63135 FRc = as((yRc(), OC(GC(h$, 1), Kie, 393, 0, [uRc, vRc, wRc, xRc])));
63136 }
63137 function mbc() {
63138 mbc = ccb;
63139 lbc = as((gbc(), OC(GC(VS, 1), Kie, 360, 0, [fbc, dbc, ebc, cbc])));
63140 }
63141 function oXc() {
63142 oXc = ccb;
63143 nXc = as((iXc(), OC(GC(a_, 1), Kie, 340, 0, [hXc, fXc, gXc, eXc])));
63144 }
63145 function Fjc() {
63146 Fjc = ccb;
63147 Ejc = as((Ajc(), OC(GC(mV, 1), Kie, 411, 0, [wjc, xjc, yjc, zjc])));
63148 }
63149 function Pzc() {
63150 Pzc = ccb;
63151 Ozc = as((Izc(), OC(GC($W, 1), Kie, 197, 0, [Gzc, Hzc, Fzc, Ezc])));
63152 }
63153 function ugd() {
63154 ugd = ccb;
63155 tgd = as((pgd(), OC(GC(k2, 1), Kie, 396, 0, [mgd, ngd, lgd, ogd])));
63156 }
63157 function xbd() {
63158 xbd = ccb;
63159 wbd = as((rbd(), OC(GC(A1, 1), Kie, 285, 0, [qbd, nbd, obd, pbd])));
63160 }
63161 function Fad() {
63162 Fad = ccb;
63163 Ead = as((Aad(), OC(GC(v1, 1), Kie, 218, 0, [zad, xad, wad, yad])));
63164 }
63165 function Ied() {
63166 Ied = ccb;
63167 Hed = as((Ded(), OC(GC(O1, 1), Kie, 311, 0, [Ced, zed, Bed, Aed])));
63168 }
63169 function ydd() {
63170 ydd = ccb;
63171 xdd = as((tdd(), OC(GC(I1, 1), Kie, 374, 0, [rdd, sdd, qdd, pdd])));
63172 }
63173 function A9d() {
63174 A9d = ccb;
63175 Smd();
63176 x9d = Pje;
63177 w9d = Qje;
63178 z9d = new Ndb(Pje);
63179 y9d = new Ndb(Qje);
63180 }
63181 function _qc() {
63182 _qc = ccb;
63183 $qc = new arc(ane, 0);
63184 Zqc = new arc("IMPROVE_STRAIGHTNESS", 1);
63185 }
63186 function eIc(a, b) {
63187 FHc();
63188 return Ekb(a, new vgd(b, meb(b.e.c.length + b.g.c.length)));
63189 }
63190 function gIc(a, b) {
63191 FHc();
63192 return Ekb(a, new vgd(b, meb(b.e.c.length + b.g.c.length)));
63193 }
63194 function PC(a, b) {
63195 HC(b) != 10 && OC(rb(b), b.hm, b.__elementTypeId$, HC(b), a);
63196 return a;
63197 }
63198 function Lkb(a, b) {
63199 var c2;
63200 c2 = Jkb(a, b, 0);
63201 if (c2 == -1) {
63202 return false;
63203 }
63204 Kkb(a, c2);
63205 return true;
63206 }
63207 function Zrb(a, b) {
63208 var c2;
63209 c2 = BD(Thb(a.e, b), 387);
63210 if (c2) {
63211 jsb(c2);
63212 return c2.e;
63213 }
63214 return null;
63215 }
63216 function Jbb(a) {
63217 var b;
63218 if (Fbb(a)) {
63219 b = 0 - a;
63220 if (!isNaN(b)) {
63221 return b;
63222 }
63223 }
63224 return zbb(hD(a));
63225 }
63226 function Jkb(a, b, c2) {
63227 for (; c2 < a.c.length; ++c2) {
63228 if (wtb(b, a.c[c2])) {
63229 return c2;
63230 }
63231 }
63232 return -1;
63233 }
63234 function SAb(a, b, c2) {
63235 var d;
63236 Tzb(a);
63237 d = new NBb();
63238 d.a = b;
63239 a.a.Nb(new VBb(d, c2));
63240 return d.a;
63241 }
63242 function aAb(a) {
63243 var b;
63244 Tzb(a);
63245 b = KC(UD, Vje, 25, 0, 15, 1);
63246 _ub(a.a, new kAb(b));
63247 return b;
63248 }
63249 function ajc(a) {
63250 var b, c2;
63251 c2 = BD(Ikb(a.j, 0), 11);
63252 b = BD(vNb(c2, (wtc(), $sc)), 11);
63253 return b;
63254 }
63255 function yc(a) {
63256 var b;
63257 if (!xc(a)) {
63258 throw vbb(new utb());
63259 }
63260 a.e = 1;
63261 b = a.d;
63262 a.d = null;
63263 return b;
63264 }
63265 function wu(a, b) {
63266 var c2;
63267 this.f = a;
63268 this.b = b;
63269 c2 = BD(Ohb(a.b, b), 283);
63270 this.c = !c2 ? null : c2.b;
63271 }
63272 function Ygc() {
63273 Hgc();
63274 this.b = new Lqb();
63275 this.f = new Lqb();
63276 this.g = new Lqb();
63277 this.e = new Lqb();
63278 }
63279 function Tnc(a, b) {
63280 this.a = KC(OQ, kne, 10, a.a.c.length, 0, 1);
63281 Qkb(a.a, this.a);
63282 this.b = b;
63283 }
63284 function zoc(a) {
63285 var b;
63286 for (b = a.p + 1; b < a.c.a.c.length; ++b) {
63287 --BD(Ikb(a.c.a, b), 10).p;
63288 }
63289 }
63290 function Rwd(a) {
63291 var b;
63292 b = a.Ai();
63293 b != null && a.d != -1 && BD(b, 92).Ng(a);
63294 !!a.i && a.i.Fi();
63295 }
63296 function rFd(a) {
63297 Py(this);
63298 this.g = !a ? null : Wy(a, a.$d());
63299 this.f = a;
63300 Ry(this);
63301 this._d();
63302 }
63303 function pSd(a, b, c2, d, e, f2, g) {
63304 nxd.call(this, b, d, e, f2, g);
63305 this.c = a;
63306 this.b = c2;
63307 }
63308 function Ayb(a, b, c2, d, e) {
63309 uCb(a);
63310 uCb(b);
63311 uCb(c2);
63312 uCb(d);
63313 uCb(e);
63314 return new Lyb(a, b, d);
63315 }
63316 function B2c(a, b) {
63317 if (b < 0) {
63318 throw vbb(new qcb(ese + b));
63319 }
63320 A2c(a, b + 1);
63321 return Ikb(a.j, b);
63322 }
63323 function Ob(a, b, c2, d) {
63324 if (!a) {
63325 throw vbb(new Wdb(hc(b, OC(GC(SI, 1), Uhe, 1, 5, [c2, d]))));
63326 }
63327 }
63328 function dDb(a, b) {
63329 return wtb(b, Ikb(a.f, 0)) || wtb(b, Ikb(a.f, 1)) || wtb(b, Ikb(a.f, 2));
63330 }
63331 function ghd(a, b) {
63332 ecd(BD(BD(a.f, 33).We((Y9c(), t9c)), 98)) && NCd(Yod(BD(a.f, 33)), b);
63333 }
63334 function p1d(a, b) {
63335 var c2, d;
63336 c2 = BD(b, 675);
63337 d = c2.Oh();
63338 !d && c2.Rh(d = new Y1d(a, b));
63339 return d;
63340 }
63341 function q1d(a, b) {
63342 var c2, d;
63343 c2 = BD(b, 677);
63344 d = c2.pk();
63345 !d && c2.tk(d = new j2d(a, b));
63346 return d;
63347 }
63348 function QSd(a) {
63349 if (!a.b) {
63350 a.b = new UTd(a, j5, a);
63351 !a.a && (a.a = new fTd(a, a));
63352 }
63353 return a.b;
63354 }
63355 function yTb() {
63356 yTb = ccb;
63357 wTb = new zTb("XY", 0);
63358 vTb = new zTb("X", 1);
63359 xTb = new zTb("Y", 2);
63360 }
63361 function EIb() {
63362 EIb = ccb;
63363 DIb = new FIb("TOP", 0);
63364 CIb = new FIb(gle, 1);
63365 BIb = new FIb(mle, 2);
63366 }
63367 function esc() {
63368 esc = ccb;
63369 csc = new fsc(ane, 0);
63370 dsc = new fsc("TOP", 1);
63371 bsc = new fsc(mle, 2);
63372 }
63373 function BAc() {
63374 BAc = ccb;
63375 zAc = new CAc("INPUT_ORDER", 0);
63376 AAc = new CAc("PORT_DEGREE", 1);
63377 }
63378 function wD() {
63379 wD = ccb;
63380 sD = TC(Eje, Eje, 524287);
63381 tD = TC(0, 0, Gje);
63382 uD = RC(1);
63383 RC(2);
63384 vD = RC(0);
63385 }
63386 function WDc(a, b, c2) {
63387 a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
63388 $Dc(a, b, c2);
63389 a.a.c.length == 0 || TDc(a, b);
63390 }
63391 function rfb(a) {
63392 var b, c2;
63393 c2 = a.length;
63394 b = KC(TD, $ie, 25, c2, 15, 1);
63395 ffb(a, 0, c2, b, 0);
63396 return b;
63397 }
63398 function Aid(a) {
63399 var b;
63400 if (!a.dh()) {
63401 b = aLd(a.Tg()) - a.Ah();
63402 a.ph().bk(b);
63403 }
63404 return a.Pg();
63405 }
63406 function xjd(a) {
63407 var b;
63408 b = CD(Ajd(a, 32));
63409 if (b == null) {
63410 yjd(a);
63411 b = CD(Ajd(a, 32));
63412 }
63413 return b;
63414 }
63415 function iid(a, b) {
63416 var c2;
63417 c2 = bLd(a.d, b);
63418 return c2 >= 0 ? fid(a, c2, true, true) : sid(a, b, true);
63419 }
63420 function vgc(a, b) {
63421 qgc();
63422 var c2, d;
63423 c2 = ugc(a);
63424 d = ugc(b);
63425 return !!c2 && !!d && !omb(c2.k, d.k);
63426 }
63427 function Gqd(a, b) {
63428 dld(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b));
63429 }
63430 function Hqd(a, b) {
63431 eld(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b));
63432 }
63433 function Iqd(a, b) {
63434 cld(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b));
63435 }
63436 function Jqd(a, b) {
63437 ald(a, b == null || Ldb((uCb(b), b)) || isNaN((uCb(b), b)) ? 0 : (uCb(b), b));
63438 }
63439 function agd(a) {
63440 (!this.q ? (mmb(), mmb(), kmb) : this.q).Ac(!a.q ? (mmb(), mmb(), kmb) : a.q);
63441 }
63442 function S2d(a, b) {
63443 return JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 ? new s4d(b, a) : new p4d(b, a);
63444 }
63445 function U2d(a, b) {
63446 return JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 ? new s4d(b, a) : new p4d(b, a);
63447 }
63448 function INb(a, b) {
63449 HNb = new tOb();
63450 FNb = b;
63451 GNb = a;
63452 BD(GNb.b, 65);
63453 KNb(GNb, HNb, null);
63454 JNb(GNb);
63455 }
63456 function uud(a, b, c2) {
63457 var d;
63458 d = a.g[b];
63459 mud(a, b, a.oi(b, c2));
63460 a.gi(b, c2, d);
63461 a.ci();
63462 return d;
63463 }
63464 function Ftd(a, b) {
63465 var c2;
63466 c2 = a.Xc(b);
63467 if (c2 >= 0) {
63468 a.$c(c2);
63469 return true;
63470 } else {
63471 return false;
63472 }
63473 }
63474 function YId(a) {
63475 var b;
63476 if (a.d != a.r) {
63477 b = wId(a);
63478 a.e = !!b && b.Cj() == Bve;
63479 a.d = b;
63480 }
63481 return a.e;
63482 }
63483 function fr(a, b) {
63484 var c2;
63485 Qb(a);
63486 Qb(b);
63487 c2 = false;
63488 while (b.Ob()) {
63489 c2 = c2 | a.Fc(b.Pb());
63490 }
63491 return c2;
63492 }
63493 function Wrb(a, b) {
63494 var c2;
63495 c2 = BD(Ohb(a.e, b), 387);
63496 if (c2) {
63497 Yrb(a, c2);
63498 return c2.e;
63499 }
63500 return null;
63501 }
63502 function UA(a) {
63503 var b, c2;
63504 b = a / 60 | 0;
63505 c2 = a % 60;
63506 if (c2 == 0) {
63507 return "" + b;
63508 }
63509 return "" + b + ":" + ("" + c2);
63510 }
63511 function LAb(a, b) {
63512 var c2, d;
63513 Uzb(a);
63514 d = new IBb(b, a.a);
63515 c2 = new fBb(d);
63516 return new YAb(a, c2);
63517 }
63518 function tB(d, a) {
63519 var b = d.a[a];
63520 var c2 = (rC(), qC)[typeof b];
63521 return c2 ? c2(b) : xC(typeof b);
63522 }
63523 function yzc(a) {
63524 switch (a.g) {
63525 case 0:
63526 return Ohe;
63527 case 1:
63528 return -1;
63529 default:
63530 return 0;
63531 }
63532 }
63533 function oD(a) {
63534 if (eD(a, (wD(), vD)) < 0) {
63535 return -aD(hD(a));
63536 }
63537 return a.l + a.m * Hje + a.h * Ije;
63538 }
63539 function HC(a) {
63540 return a.__elementTypeCategory$ == null ? 10 : a.__elementTypeCategory$;
63541 }
63542 function dub(a) {
63543 var b;
63544 b = a.b.c.length == 0 ? null : Ikb(a.b, 0);
63545 b != null && fub(a, 0);
63546 return b;
63547 }
63548 function uA(a, b) {
63549 while (b[0] < a.length && hfb(" \r\n", wfb(bfb(a, b[0]))) >= 0) {
63550 ++b[0];
63551 }
63552 }
63553 function sgb(a, b) {
63554 this.e = b;
63555 this.a = vgb(a);
63556 this.a < 54 ? this.f = Sbb(a) : this.c = ghb(a);
63557 }
63558 function vge(a, b, c2, d) {
63559 wfe();
63560 xfe.call(this, 26);
63561 this.c = a;
63562 this.a = b;
63563 this.d = c2;
63564 this.b = d;
63565 }
63566 function EA(a, b, c2) {
63567 var d, e;
63568 d = 10;
63569 for (e = 0; e < c2 - 1; e++) {
63570 b < d && (a.a += "0", a);
63571 d *= 10;
63572 }
63573 a.a += b;
63574 }
63575 function Hhe(a, b) {
63576 var c2;
63577 c2 = 0;
63578 while (a.e != a.i.gc()) {
63579 Qrd(b, Dyd(a), meb(c2));
63580 c2 != Ohe && ++c2;
63581 }
63582 }
63583 function xHc(a, b) {
63584 var c2;
63585 ++a.d;
63586 ++a.c[b];
63587 c2 = b + 1;
63588 while (c2 < a.a.length) {
63589 ++a.a[c2];
63590 c2 += c2 & -c2;
63591 }
63592 }
63593 function Qgc(a, b) {
63594 var c2, d, e;
63595 e = b.c.i;
63596 c2 = BD(Ohb(a.f, e), 57);
63597 d = c2.d.c - c2.e.c;
63598 p7c(b.a, d, 0);
63599 }
63600 function Scb(a) {
63601 var b, c2;
63602 b = a + 128;
63603 c2 = (Ucb(), Tcb)[b];
63604 !c2 && (c2 = Tcb[b] = new Mcb(a));
63605 return c2;
63606 }
63607 function es(a, b) {
63608 var c2;
63609 uCb(b);
63610 c2 = a[":" + b];
63611 nCb(!!c2, OC(GC(SI, 1), Uhe, 1, 5, [b]));
63612 return c2;
63613 }
63614 function Mz(a) {
63615 var b, c2;
63616 if (a.b) {
63617 c2 = null;
63618 do {
63619 b = a.b;
63620 a.b = null;
63621 c2 = Pz(b, c2);
63622 } while (a.b);
63623 a.b = c2;
63624 }
63625 }
63626 function Lz(a) {
63627 var b, c2;
63628 if (a.a) {
63629 c2 = null;
63630 do {
63631 b = a.a;
63632 a.a = null;
63633 c2 = Pz(b, c2);
63634 } while (a.a);
63635 a.a = c2;
63636 }
63637 }
63638 function Dqb(a) {
63639 var b;
63640 ++a.a;
63641 for (b = a.c.a.length; a.a < b; ++a.a) {
63642 if (a.c.b[a.a]) {
63643 return;
63644 }
63645 }
63646 }
63647 function S9b(a, b) {
63648 var c2, d;
63649 d = b.c;
63650 for (c2 = d + 1; c2 <= b.f; c2++) {
63651 a.a[c2] > a.a[d] && (d = c2);
63652 }
63653 return d;
63654 }
63655 function fic(a, b) {
63656 var c2;
63657 c2 = Jy(a.e.c, b.e.c);
63658 if (c2 == 0) {
63659 return Kdb(a.e.d, b.e.d);
63660 }
63661 return c2;
63662 }
63663 function Ogb(a, b) {
63664 if (b.e == 0) {
63665 return Ggb;
63666 }
63667 if (a.e == 0) {
63668 return Ggb;
63669 }
63670 return Dhb(), Ehb(a, b);
63671 }
63672 function nCb(a, b) {
63673 if (!a) {
63674 throw vbb(new Wdb(DCb("Enum constant undefined: %s", b)));
63675 }
63676 }
63677 function AWb() {
63678 AWb = ccb;
63679 xWb = new XWb();
63680 yWb = new _Wb();
63681 vWb = new dXb();
63682 wWb = new hXb();
63683 zWb = new lXb();
63684 }
63685 function UEb() {
63686 UEb = ccb;
63687 SEb = new VEb("BY_SIZE", 0);
63688 TEb = new VEb("BY_SIZE_AND_SHAPE", 1);
63689 }
63690 function XRb() {
63691 XRb = ccb;
63692 VRb = new YRb("EADES", 0);
63693 WRb = new YRb("FRUCHTERMAN_REINGOLD", 1);
63694 }
63695 function xqc() {
63696 xqc = ccb;
63697 vqc = new yqc("READING_DIRECTION", 0);
63698 wqc = new yqc("ROTATION", 1);
63699 }
63700 function uqc() {
63701 uqc = ccb;
63702 tqc = as((mqc(), OC(GC(IW, 1), Kie, 335, 0, [iqc, hqc, kqc, lqc, jqc])));
63703 }
63704 function bAc() {
63705 bAc = ccb;
63706 aAc = as((Vzc(), OC(GC(_W, 1), Kie, 315, 0, [Uzc, Rzc, Szc, Qzc, Tzc])));
63707 }
63708 function bkc() {
63709 bkc = ccb;
63710 akc = as((Xjc(), OC(GC(uV, 1), Kie, 363, 0, [Tjc, Vjc, Wjc, Ujc, Sjc])));
63711 }
63712 function Htc() {
63713 Htc = ccb;
63714 Gtc = as((Ctc(), OC(GC(TW, 1), Kie, 163, 0, [Btc, xtc, ytc, ztc, Atc])));
63715 }
63716 function S_c() {
63717 S_c = ccb;
63718 R_c = as((N_c(), OC(GC(Q_, 1), Kie, 316, 0, [I_c, J_c, M_c, K_c, L_c])));
63719 }
63720 function S5c() {
63721 S5c = ccb;
63722 R5c = as((N5c(), OC(GC(e1, 1), Kie, 175, 0, [L5c, K5c, I5c, M5c, J5c])));
63723 }
63724 function p$c() {
63725 p$c = ccb;
63726 o$c = as((k$c(), OC(GC(y_, 1), Kie, 355, 0, [g$c, f$c, i$c, h$c, j$c])));
63727 }
63728 function vUb() {
63729 vUb = ccb;
63730 uUb = as((qUb(), OC(GC(zP, 1), Kie, 356, 0, [lUb, mUb, nUb, oUb, pUb])));
63731 }
63732 function mad() {
63733 mad = ccb;
63734 lad = as((ead(), OC(GC(t12, 1), Kie, 103, 0, [cad, bad, aad, _9c, dad])));
63735 }
63736 function Ybd() {
63737 Ybd = ccb;
63738 Xbd = as((Tbd(), OC(GC(C1, 1), Kie, 249, 0, [Qbd, Sbd, Obd, Pbd, Rbd])));
63739 }
63740 function cdd() {
63741 cdd = ccb;
63742 bdd = as((Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])));
63743 }
63744 function _1c(a, b) {
63745 var c2;
63746 c2 = BD(Ohb(a.a, b), 134);
63747 if (!c2) {
63748 c2 = new zNb();
63749 Rhb(a.a, b, c2);
63750 }
63751 return c2;
63752 }
63753 function hoc(a) {
63754 var b;
63755 b = BD(vNb(a, (wtc(), usc)), 305);
63756 if (b) {
63757 return b.a == a;
63758 }
63759 return false;
63760 }
63761 function ioc(a) {
63762 var b;
63763 b = BD(vNb(a, (wtc(), usc)), 305);
63764 if (b) {
63765 return b.i == a;
63766 }
63767 return false;
63768 }
63769 function Jub(a, b) {
63770 uCb(b);
63771 Iub(a);
63772 if (a.d.Ob()) {
63773 b.td(a.d.Pb());
63774 return true;
63775 }
63776 return false;
63777 }
63778 function Oy(a) {
63779 if (ybb(a, Ohe) > 0) {
63780 return Ohe;
63781 }
63782 if (ybb(a, Rie) < 0) {
63783 return Rie;
63784 }
63785 return Tbb(a);
63786 }
63787 function Cv(a) {
63788 if (a < 3) {
63789 Xj(a, Hie);
63790 return a + 1;
63791 }
63792 if (a < Iie) {
63793 return QD(a / 0.75 + 1);
63794 }
63795 return Ohe;
63796 }
63797 function XKd(a, b) {
63798 var c2;
63799 c2 = (a.i == null && TKd(a), a.i);
63800 return b >= 0 && b < c2.length ? c2[b] : null;
63801 }
63802 function cC(a, b, c2) {
63803 var d;
63804 if (b == null) {
63805 throw vbb(new Geb());
63806 }
63807 d = aC(a, b);
63808 dC(a, b, c2);
63809 return d;
63810 }
63811 function Emc(a) {
63812 a.a >= -0.01 && a.a <= ple && (a.a = 0);
63813 a.b >= -0.01 && a.b <= ple && (a.b = 0);
63814 return a;
63815 }
63816 function sfb(a, b) {
63817 return b == (ntb(), ntb(), mtb) ? a.toLocaleLowerCase() : a.toLowerCase();
63818 }
63819 function idb(a) {
63820 return ((a.i & 2) != 0 ? "interface " : (a.i & 1) != 0 ? "" : "class ") + (fdb(a), a.o);
63821 }
63822 function Pnd(a) {
63823 var b, c2;
63824 c2 = (b = new SSd(), b);
63825 wtd((!a.q && (a.q = new cUd(n5, a, 11, 10)), a.q), c2);
63826 }
63827 function Pdd(a, b) {
63828 var c2;
63829 c2 = b > 0 ? b - 1 : b;
63830 return Vdd(Wdd(Xdd(Ydd(new Zdd(), c2), a.n), a.j), a.k);
63831 }
63832 function u2d(a, b, c2, d) {
63833 var e;
63834 a.j = -1;
63835 Qxd(a, I2d(a, b, c2), (Q6d(), e = BD(b, 66).Mj(), e.Ok(d)));
63836 }
63837 function VWb(a) {
63838 this.g = a;
63839 this.f = new Rkb();
63840 this.a = $wnd.Math.min(this.g.c.c, this.g.d.c);
63841 }
63842 function mDb(a) {
63843 this.b = new Rkb();
63844 this.a = new Rkb();
63845 this.c = new Rkb();
63846 this.d = new Rkb();
63847 this.e = a;
63848 }
63849 function Cnc(a, b) {
63850 this.a = new Lqb();
63851 this.e = new Lqb();
63852 this.b = (xzc(), wzc);
63853 this.c = a;
63854 this.b = b;
63855 }
63856 function bIb(a, b, c2) {
63857 $Gb.call(this);
63858 THb(this);
63859 this.a = a;
63860 this.c = c2;
63861 this.b = b.d;
63862 this.f = b.e;
63863 }
63864 function yd(a) {
63865 this.d = a;
63866 this.c = a.c.vc().Kc();
63867 this.b = null;
63868 this.a = null;
63869 this.e = (hs(), gs);
63870 }
63871 function zud(a) {
63872 if (a < 0) {
63873 throw vbb(new Wdb("Illegal Capacity: " + a));
63874 }
63875 this.g = this.ri(a);
63876 }
63877 function avb(a, b) {
63878 if (0 > a || a > b) {
63879 throw vbb(new scb("fromIndex: 0, toIndex: " + a + oke + b));
63880 }
63881 }
63882 function Gs(a) {
63883 var b;
63884 if (a.a == a.b.a) {
63885 throw vbb(new utb());
63886 }
63887 b = a.a;
63888 a.c = b;
63889 a.a = a.a.e;
63890 return b;
63891 }
63892 function Zsb(a) {
63893 var b;
63894 yCb(!!a.c);
63895 b = a.c.a;
63896 Nsb(a.d, a.c);
63897 a.b == a.c ? a.b = b : --a.a;
63898 a.c = null;
63899 }
63900 function VAb(a, b) {
63901 var c2;
63902 Uzb(a);
63903 c2 = new lBb(a, a.a.rd(), a.a.qd() | 4, b);
63904 return new YAb(a, c2);
63905 }
63906 function ke(a, b) {
63907 var c2, d;
63908 c2 = BD(Hv(a.d, b), 14);
63909 if (!c2) {
63910 return null;
63911 }
63912 d = b;
63913 return a.e.pc(d, c2);
63914 }
63915 function xac(a, b) {
63916 var c2, d;
63917 for (d = a.Kc(); d.Ob(); ) {
63918 c2 = BD(d.Pb(), 70);
63919 yNb(c2, (wtc(), Ssc), b);
63920 }
63921 }
63922 function t9b(a) {
63923 var b;
63924 b = Edb(ED(vNb(a, (Nyc(), Zwc))));
63925 if (b < 0) {
63926 b = 0;
63927 yNb(a, Zwc, b);
63928 }
63929 return b;
63930 }
63931 function ifc(a, b, c2) {
63932 var d;
63933 d = $wnd.Math.max(0, a.b / 2 - 0.5);
63934 cfc(c2, d, 1);
63935 Ekb(b, new rfc(c2, d));
63936 }
63937 function NMc(a, b, c2) {
63938 var d;
63939 d = a.a.e[BD(b.a, 10).p] - a.a.e[BD(c2.a, 10).p];
63940 return QD(Eeb(d));
63941 }
63942 function iZb(a, b, c2, d, e, f2) {
63943 var g;
63944 g = kZb(d);
63945 QZb(g, e);
63946 RZb(g, f2);
63947 Rc(a.a, d, new BZb(g, b, c2.f));
63948 }
63949 function Bid(a, b) {
63950 var c2;
63951 c2 = YKd(a.Tg(), b);
63952 if (!c2) {
63953 throw vbb(new Wdb(ite + b + lte));
63954 }
63955 return c2;
63956 }
63957 function ntd(a, b) {
63958 var c2;
63959 c2 = a;
63960 while (Xod(c2)) {
63961 c2 = Xod(c2);
63962 if (c2 == b) {
63963 return true;
63964 }
63965 }
63966 return false;
63967 }
63968 function Uw(a, b) {
63969 var c2, d, e;
63970 d = b.a.cd();
63971 c2 = BD(b.a.dd(), 14).gc();
63972 for (e = 0; e < c2; e++) {
63973 a.td(d);
63974 }
63975 }
63976 function Hkb(a, b) {
63977 var c2, d, e, f2;
63978 uCb(b);
63979 for (d = a.c, e = 0, f2 = d.length; e < f2; ++e) {
63980 c2 = d[e];
63981 b.td(c2);
63982 }
63983 }
63984 function Nsb(a, b) {
63985 var c2;
63986 c2 = b.c;
63987 b.a.b = b.b;
63988 b.b.a = b.a;
63989 b.a = b.b = null;
63990 b.c = null;
63991 --a.b;
63992 return c2;
63993 }
63994 function wqb(a, b) {
63995 if (!!b && a.b[b.g] == b) {
63996 NC(a.b, b.g, null);
63997 --a.c;
63998 return true;
63999 }
64000 return false;
64001 }
64002 function lo(a, b) {
64003 return !!vo(a, b, Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15))));
64004 }
64005 function w$b(a, b) {
64006 ecd(BD(vNb(BD(a.e, 10), (Nyc(), Vxc)), 98)) && (mmb(), Okb(BD(a.e, 10).j, b));
64007 }
64008 function THb(a) {
64009 a.b = (NHb(), KHb);
64010 a.f = (EIb(), CIb);
64011 a.d = (Xj(2, Jie), new Skb(2));
64012 a.e = new d7c();
64013 }
64014 function gHb() {
64015 gHb = ccb;
64016 dHb = new hHb("BEGIN", 0);
64017 eHb = new hHb(gle, 1);
64018 fHb = new hHb("END", 2);
64019 }
64020 function qad() {
64021 qad = ccb;
64022 nad = new rad(gle, 0);
64023 oad = new rad("HEAD", 1);
64024 pad2 = new rad("TAIL", 2);
64025 }
64026 function Fsd() {
64027 Csd();
64028 return OC(GC(O3, 1), Kie, 237, 0, [Bsd, ysd, zsd, xsd, Asd, vsd, usd, wsd]);
64029 }
64030 function c6c() {
64031 _5c();
64032 return OC(GC(f1, 1), Kie, 277, 0, [$5c, T5c, X5c, Z5c, U5c, V5c, W5c, Y5c]);
64033 }
64034 function Dlc() {
64035 Alc();
64036 return OC(GC(KV, 1), Kie, 270, 0, [tlc, wlc, slc, zlc, vlc, ulc, ylc, xlc]);
64037 }
64038 function nAc() {
64039 kAc();
64040 return OC(GC(aX, 1), Kie, 260, 0, [iAc, dAc, gAc, eAc, fAc, cAc, hAc, jAc]);
64041 }
64042 function kcd() {
64043 kcd = ccb;
64044 jcd = as((dcd(), OC(GC(D1, 1), Kie, 98, 0, [ccd, bcd, acd, Zbd, _bd, $bd])));
64045 }
64046 function tHb() {
64047 tHb = ccb;
64048 sHb = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])).length;
64049 rHb = sHb;
64050 }
64051 function wed(a) {
64052 this.b = (Qb(a), new Tkb(a));
64053 this.a = new Rkb();
64054 this.d = new Rkb();
64055 this.e = new d7c();
64056 }
64057 function W6c(a) {
64058 var b;
64059 b = $wnd.Math.sqrt(a.a * a.a + a.b * a.b);
64060 if (b > 0) {
64061 a.a /= b;
64062 a.b /= b;
64063 }
64064 return a;
64065 }
64066 function bKd(a) {
64067 var b;
64068 if (a.w) {
64069 return a.w;
64070 } else {
64071 b = cKd(a);
64072 !!b && !b.kh() && (a.w = b);
64073 return b;
64074 }
64075 }
64076 function gZd(a) {
64077 var b;
64078 if (a == null) {
64079 return null;
64080 } else {
64081 b = BD(a, 190);
64082 return Umd(b, b.length);
64083 }
64084 }
64085 function qud(a, b) {
64086 if (a.g == null || b >= a.i)
64087 throw vbb(new $zd(b, a.i));
64088 return a.li(b, a.g[b]);
64089 }
64090 function Mmc(a) {
64091 var b, c2;
64092 b = a.a.d.j;
64093 c2 = a.c.d.j;
64094 while (b != c2) {
64095 rqb(a.b, b);
64096 b = Xcd(b);
64097 }
64098 rqb(a.b, b);
64099 }
64100 function Jmc(a) {
64101 var b;
64102 for (b = 0; b < a.c.length; b++) {
64103 (tCb(b, a.c.length), BD(a.c[b], 11)).p = b;
64104 }
64105 }
64106 function bEc(a, b, c2) {
64107 var d, e, f2;
64108 e = b[c2];
64109 for (d = 0; d < e.length; d++) {
64110 f2 = e[d];
64111 a.e[f2.c.p][f2.p] = d;
64112 }
64113 }
64114 function ZEc(a, b) {
64115 var c2, d, e, f2;
64116 for (d = a.d, e = 0, f2 = d.length; e < f2; ++e) {
64117 c2 = d[e];
64118 REc(a.g, c2).a = b;
64119 }
64120 }
64121 function q7c(a, b) {
64122 var c2, d;
64123 for (d = Jsb(a, 0); d.b != d.d.c; ) {
64124 c2 = BD(Xsb(d), 8);
64125 P6c(c2, b);
64126 }
64127 return a;
64128 }
64129 function zUb(a, b) {
64130 var c2;
64131 c2 = c7c(R6c(BD(Ohb(a.g, b), 8)), E6c(BD(Ohb(a.f, b), 460).b));
64132 return c2;
64133 }
64134 function lib(a) {
64135 var b;
64136 xpb(a.e, a);
64137 sCb(a.b);
64138 a.c = a.a;
64139 b = BD(a.a.Pb(), 42);
64140 a.b = kib(a);
64141 return b;
64142 }
64143 function CD(a) {
64144 var b;
64145 CCb(a == null || Array.isArray(a) && (b = HC(a), !(b >= 14 && b <= 16)));
64146 return a;
64147 }
64148 function dcb(a, b, c2) {
64149 var d = function() {
64150 return a.apply(d, arguments);
64151 };
64152 b.apply(d, c2);
64153 return d;
64154 }
64155 function TLc(a, b, c2) {
64156 var d, e;
64157 d = b;
64158 do {
64159 e = Edb(a.p[d.p]) + c2;
64160 a.p[d.p] = e;
64161 d = a.a[d.p];
64162 } while (d != b);
64163 }
64164 function NQd(a, b) {
64165 var c2, d;
64166 d = a.a;
64167 c2 = OQd(a, b, null);
64168 d != b && !a.e && (c2 = QQd(a, b, c2));
64169 !!c2 && c2.Fi();
64170 }
64171 function ADb(a, b) {
64172 return Iy(), My(Qie), $wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b);
64173 }
64174 function Ky(a, b) {
64175 Iy();
64176 My(Qie);
64177 return $wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b);
64178 }
64179 function Akc(a, b) {
64180 gkc();
64181 return beb(a.b.c.length - a.e.c.length, b.b.c.length - b.e.c.length);
64182 }
64183 function oo(a, b) {
64184 return Kv(uo(a, b, Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)))));
64185 }
64186 function o0b() {
64187 o0b = ccb;
64188 n0b = as((j0b(), OC(GC(NQ, 1), Kie, 267, 0, [h0b, g0b, e0b, i0b, f0b, d0b])));
64189 }
64190 function n8c() {
64191 n8c = ccb;
64192 m8c = as((i8c(), OC(GC(r1, 1), Kie, 291, 0, [h8c, g8c, f8c, d8c, c8c, e8c])));
64193 }
64194 function K7c() {
64195 K7c = ccb;
64196 J7c = as((F7c(), OC(GC(o1, 1), Kie, 248, 0, [z7c, C7c, D7c, E7c, A7c, B7c])));
64197 }
64198 function Fpc() {
64199 Fpc = ccb;
64200 Epc = as((Apc(), OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc])));
64201 }
64202 function Drc() {
64203 Drc = ccb;
64204 Crc = as((yrc(), OC(GC(OW, 1), Kie, 275, 0, [wrc, trc, xrc, vrc, urc, rrc])));
64205 }
64206 function qrc() {
64207 qrc = ccb;
64208 prc = as((lrc(), OC(GC(NW, 1), Kie, 274, 0, [irc, hrc, krc, grc, jrc, frc])));
64209 }
64210 function tzc() {
64211 tzc = ccb;
64212 szc = as((lzc(), OC(GC(YW, 1), Kie, 313, 0, [jzc, hzc, fzc, gzc, kzc, izc])));
64213 }
64214 function Yqc() {
64215 Yqc = ccb;
64216 Xqc = as((Sqc(), OC(GC(LW, 1), Kie, 276, 0, [Nqc, Mqc, Pqc, Oqc, Rqc, Qqc])));
64217 }
64218 function wSc() {
64219 wSc = ccb;
64220 vSc = as((qSc(), OC(GC(t$, 1), Kie, 327, 0, [pSc, lSc, nSc, mSc, oSc, kSc])));
64221 }
64222 function ycd() {
64223 ycd = ccb;
64224 xcd = as((rcd(), OC(GC(E1, 1), Kie, 273, 0, [pcd, ncd, ocd, mcd, lcd, qcd])));
64225 }
64226 function Rad() {
64227 Rad = ccb;
64228 Qad = as((Mad(), OC(GC(w1, 1), Kie, 312, 0, [Kad, Iad, Lad, Gad, Jad, Had])));
64229 }
64230 function Lbd() {
64231 Hbd();
64232 return OC(GC(B1, 1), Kie, 93, 0, [zbd, ybd, Bbd, Gbd, Fbd, Ebd, Cbd, Dbd, Abd]);
64233 }
64234 function vkd(a, b) {
64235 var c2;
64236 c2 = a.a;
64237 a.a = b;
64238 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 0, c2, a.a));
64239 }
64240 function wkd(a, b) {
64241 var c2;
64242 c2 = a.b;
64243 a.b = b;
64244 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 1, c2, a.b));
64245 }
64246 function hmd(a, b) {
64247 var c2;
64248 c2 = a.b;
64249 a.b = b;
64250 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 3, c2, a.b));
64251 }
64252 function ald(a, b) {
64253 var c2;
64254 c2 = a.f;
64255 a.f = b;
64256 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 3, c2, a.f));
64257 }
64258 function cld(a, b) {
64259 var c2;
64260 c2 = a.g;
64261 a.g = b;
64262 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 4, c2, a.g));
64263 }
64264 function dld(a, b) {
64265 var c2;
64266 c2 = a.i;
64267 a.i = b;
64268 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 5, c2, a.i));
64269 }
64270 function eld(a, b) {
64271 var c2;
64272 c2 = a.j;
64273 a.j = b;
64274 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 6, c2, a.j));
64275 }
64276 function omd(a, b) {
64277 var c2;
64278 c2 = a.j;
64279 a.j = b;
64280 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 1, c2, a.j));
64281 }
64282 function imd(a, b) {
64283 var c2;
64284 c2 = a.c;
64285 a.c = b;
64286 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 4, c2, a.c));
64287 }
64288 function pmd(a, b) {
64289 var c2;
64290 c2 = a.k;
64291 a.k = b;
64292 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new lSd(a, 2, c2, a.k));
64293 }
64294 function qQd(a, b) {
64295 var c2;
64296 c2 = a.d;
64297 a.d = b;
64298 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new mSd(a, 2, c2, a.d));
64299 }
64300 function AId(a, b) {
64301 var c2;
64302 c2 = a.s;
64303 a.s = b;
64304 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new mSd(a, 4, c2, a.s));
64305 }
64306 function DId(a, b) {
64307 var c2;
64308 c2 = a.t;
64309 a.t = b;
64310 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new mSd(a, 5, c2, a.t));
64311 }
64312 function _Jd(a, b) {
64313 var c2;
64314 c2 = a.F;
64315 a.F = b;
64316 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 5, c2, b));
64317 }
64318 function izd(a, b) {
64319 var c2;
64320 c2 = BD(Ohb((pEd(), oEd), a), 55);
64321 return c2 ? c2.xj(b) : KC(SI, Uhe, 1, b, 5, 1);
64322 }
64323 function Xpd(a, b) {
64324 var c2, d;
64325 c2 = b in a.a;
64326 if (c2) {
64327 d = aC(a, b).he();
64328 if (d) {
64329 return d.a;
64330 }
64331 }
64332 return null;
64333 }
64334 function ftd(a, b) {
64335 var c2, d, e;
64336 c2 = (d = (Fhd(), e = new Jod(), e), !!b && God(d, b), d);
64337 Hod(c2, a);
64338 return c2;
64339 }
64340 function LLd(a, b, c2) {
64341 Itd(a, c2);
64342 if (!a.Bk() && c2 != null && !a.wj(c2)) {
64343 throw vbb(new tcb());
64344 }
64345 return c2;
64346 }
64347 function Xdd(a, b) {
64348 a.n = b;
64349 if (a.n) {
64350 a.f = new Rkb();
64351 a.e = new Rkb();
64352 } else {
64353 a.f = null;
64354 a.e = null;
64355 }
64356 return a;
64357 }
64358 function ndb(a, b, c2, d, e, f2) {
64359 var g;
64360 g = ldb(a, b);
64361 zdb(c2, g);
64362 g.i = e ? 8 : 0;
64363 g.f = d;
64364 g.e = e;
64365 g.g = f2;
64366 return g;
64367 }
64368 function rSd(a, b, c2, d, e) {
64369 this.d = b;
64370 this.k = d;
64371 this.f = e;
64372 this.o = -1;
64373 this.p = 1;
64374 this.c = a;
64375 this.a = c2;
64376 }
64377 function tSd(a, b, c2, d, e) {
64378 this.d = b;
64379 this.k = d;
64380 this.f = e;
64381 this.o = -1;
64382 this.p = 2;
64383 this.c = a;
64384 this.a = c2;
64385 }
64386 function BSd(a, b, c2, d, e) {
64387 this.d = b;
64388 this.k = d;
64389 this.f = e;
64390 this.o = -1;
64391 this.p = 6;
64392 this.c = a;
64393 this.a = c2;
64394 }
64395 function GSd(a, b, c2, d, e) {
64396 this.d = b;
64397 this.k = d;
64398 this.f = e;
64399 this.o = -1;
64400 this.p = 7;
64401 this.c = a;
64402 this.a = c2;
64403 }
64404 function xSd(a, b, c2, d, e) {
64405 this.d = b;
64406 this.j = d;
64407 this.e = e;
64408 this.o = -1;
64409 this.p = 4;
64410 this.c = a;
64411 this.a = c2;
64412 }
64413 function rDb(a, b) {
64414 var c2, d, e, f2;
64415 for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
64416 c2 = d[e];
64417 nDb(a.a, c2);
64418 }
64419 return a;
64420 }
64421 function pl(a) {
64422 var b, c2, d, e;
64423 for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
64424 b = c2[d];
64425 Qb(b);
64426 }
64427 return new vl(a);
64428 }
64429 function Uz(a) {
64430 var b = /function(?:\s+([\w$]+))?\s*\(/;
64431 var c2 = b.exec(a);
64432 return c2 && c2[1] || Xie;
64433 }
64434 function zdb(a, b) {
64435 if (!a) {
64436 return;
64437 }
64438 b.n = a;
64439 var d = tdb(b);
64440 if (!d) {
64441 _bb[a] = [b];
64442 return;
64443 }
64444 d.gm = b;
64445 }
64446 function vlb(a, b, c2) {
64447 var d, e;
64448 e = a.length;
64449 d = $wnd.Math.min(c2, e);
64450 $Bb(a, 0, b, 0, d, true);
64451 return b;
64452 }
64453 function RPb(a, b, c2) {
64454 var d, e;
64455 for (e = b.Kc(); e.Ob(); ) {
64456 d = BD(e.Pb(), 79);
64457 Qqb(a, BD(c2.Kb(d), 33));
64458 }
64459 }
64460 function Xbb() {
64461 Ybb();
64462 var a = Wbb;
64463 for (var b = 0; b < arguments.length; b++) {
64464 a.push(arguments[b]);
64465 }
64466 }
64467 function n7c(a, b) {
64468 var c2, d, e, f2;
64469 for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
64470 c2 = d[e];
64471 Gsb(a, c2, a.c.b, a.c);
64472 }
64473 }
64474 function s$c(a, b) {
64475 a.b = $wnd.Math.max(a.b, b.d);
64476 a.e += b.r + (a.a.c.length == 0 ? 0 : a.c);
64477 Ekb(a.a, b);
64478 }
64479 function wkb(a) {
64480 yCb(a.c >= 0);
64481 if (ekb(a.d, a.c) < 0) {
64482 a.a = a.a - 1 & a.d.a.length - 1;
64483 a.b = a.d.c;
64484 }
64485 a.c = -1;
64486 }
64487 function pgb(a) {
64488 if (a.a < 54) {
64489 return a.f < 0 ? -1 : a.f > 0 ? 1 : 0;
64490 }
64491 return (!a.c && (a.c = fhb(a.f)), a.c).e;
64492 }
64493 function My(a) {
64494 if (!(a >= 0)) {
64495 throw vbb(new Wdb("tolerance (" + a + ") must be >= 0"));
64496 }
64497 return a;
64498 }
64499 function n4c() {
64500 if (!f4c) {
64501 f4c = new m4c();
64502 l4c(f4c, OC(GC(C0, 1), Uhe, 130, 0, [new Z9c()]));
64503 }
64504 return f4c;
64505 }
64506 function KAc() {
64507 KAc = ccb;
64508 JAc = new LAc(ole, 0);
64509 HAc = new LAc("INPUT", 1);
64510 IAc = new LAc("OUTPUT", 2);
64511 }
64512 function bqc() {
64513 bqc = ccb;
64514 $pc = new cqc("ARD", 0);
64515 aqc = new cqc("MSD", 1);
64516 _pc = new cqc("MANUAL", 2);
64517 }
64518 function rGc() {
64519 rGc = ccb;
64520 oGc = new sGc("BARYCENTER", 0);
64521 pGc = new sGc(Bne, 1);
64522 qGc = new sGc(Cne, 2);
64523 }
64524 function ztd(a, b) {
64525 var c2;
64526 c2 = a.gc();
64527 if (b < 0 || b > c2)
64528 throw vbb(new Cyd(b, c2));
64529 return new czd(a, b);
64530 }
64531 function JAd(a, b) {
64532 var c2;
64533 if (JD(b, 42)) {
64534 return a.c.Mc(b);
64535 } else {
64536 c2 = qAd(a, b);
64537 LAd(a, b);
64538 return c2;
64539 }
64540 }
64541 function $nd(a, b, c2) {
64542 yId(a, b);
64543 pnd(a, c2);
64544 AId(a, 0);
64545 DId(a, 1);
64546 CId(a, true);
64547 BId(a, true);
64548 return a;
64549 }
64550 function Xj(a, b) {
64551 if (a < 0) {
64552 throw vbb(new Wdb(b + " cannot be negative but was: " + a));
64553 }
64554 return a;
64555 }
64556 function Bt(a, b) {
64557 var c2, d;
64558 for (c2 = 0, d = a.gc(); c2 < d; ++c2) {
64559 if (wtb(b, a.Xb(c2))) {
64560 return c2;
64561 }
64562 }
64563 return -1;
64564 }
64565 function Nc(a) {
64566 var b, c2;
64567 for (c2 = a.c.Cc().Kc(); c2.Ob(); ) {
64568 b = BD(c2.Pb(), 14);
64569 b.$b();
64570 }
64571 a.c.$b();
64572 a.d = 0;
64573 }
64574 function Ri(a) {
64575 var b, c2, d, e;
64576 for (c2 = a.a, d = 0, e = c2.length; d < e; ++d) {
64577 b = c2[d];
64578 Flb(b, b.length, null);
64579 }
64580 }
64581 function ieb(a) {
64582 var b, c2;
64583 if (a == 0) {
64584 return 32;
64585 } else {
64586 c2 = 0;
64587 for (b = 1; (b & a) == 0; b <<= 1) {
64588 ++c2;
64589 }
64590 return c2;
64591 }
64592 }
64593 function NGb(a) {
64594 var b, c2;
64595 for (c2 = new olb(ahd(a)); c2.a < c2.c.c.length; ) {
64596 b = BD(mlb(c2), 680);
64597 b.Gf();
64598 }
64599 }
64600 function CUb(a) {
64601 xUb();
64602 this.g = new Lqb();
64603 this.f = new Lqb();
64604 this.b = new Lqb();
64605 this.c = new Hp();
64606 this.i = a;
64607 }
64608 function XZb() {
64609 this.f = new d7c();
64610 this.d = new s0b();
64611 this.c = new d7c();
64612 this.a = new Rkb();
64613 this.b = new Rkb();
64614 }
64615 function c6d(a, b, c2, d) {
64616 this.rj();
64617 this.a = b;
64618 this.b = a;
64619 this.c = null;
64620 this.c = new d6d(this, b, c2, d);
64621 }
64622 function nxd(a, b, c2, d, e) {
64623 this.d = a;
64624 this.n = b;
64625 this.g = c2;
64626 this.o = d;
64627 this.p = -1;
64628 e || (this.o = -2 - d - 1);
64629 }
64630 function hJd() {
64631 FId.call(this);
64632 this.n = -1;
64633 this.g = null;
64634 this.i = null;
64635 this.j = null;
64636 this.Bb |= zte;
64637 }
64638 function Ldd() {
64639 Idd();
64640 return OC(GC(J1, 1), Kie, 259, 0, [Bdd, Ddd, Add, Edd, Fdd, Hdd, Gdd, Cdd, zdd]);
64641 }
64642 function uFb() {
64643 rFb();
64644 return OC(GC(dN, 1), Kie, 250, 0, [qFb, lFb, mFb, kFb, oFb, pFb, nFb, jFb, iFb]);
64645 }
64646 function qeb() {
64647 qeb = ccb;
64648 peb = OC(GC(WD, 1), oje, 25, 15, [0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15]);
64649 }
64650 function vCc() {
64651 vCc = ccb;
64652 uCc = e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
64653 }
64654 function VCc() {
64655 VCc = ccb;
64656 UCc = e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
64657 }
64658 function rDc() {
64659 rDc = ccb;
64660 qDc = e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
64661 }
64662 function yFc() {
64663 yFc = ccb;
64664 xFc = c3c(e3c(e3c(new j3c(), (qUb(), nUb), (S8b(), z8b)), oUb, p8b), pUb, y8b);
64665 }
64666 function Rpc() {
64667 Rpc = ccb;
64668 Ppc = new Tpc("LAYER_SWEEP", 0);
64669 Opc = new Tpc(Tne, 1);
64670 Qpc = new Tpc(ane, 2);
64671 }
64672 function RLc(a, b) {
64673 var c2, d;
64674 c2 = a.c;
64675 d = b.e[a.p];
64676 if (d > 0) {
64677 return BD(Ikb(c2.a, d - 1), 10);
64678 }
64679 return null;
64680 }
64681 function Lkd(a, b) {
64682 var c2;
64683 c2 = a.k;
64684 a.k = b;
64685 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 2, c2, a.k));
64686 }
64687 function kmd(a, b) {
64688 var c2;
64689 c2 = a.f;
64690 a.f = b;
64691 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 8, c2, a.f));
64692 }
64693 function lmd(a, b) {
64694 var c2;
64695 c2 = a.i;
64696 a.i = b;
64697 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 7, c2, a.i));
64698 }
64699 function Hod(a, b) {
64700 var c2;
64701 c2 = a.a;
64702 a.a = b;
64703 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 8, c2, a.a));
64704 }
64705 function zpd(a, b) {
64706 var c2;
64707 c2 = a.b;
64708 a.b = b;
64709 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 0, c2, a.b));
64710 }
64711 function UUd(a, b) {
64712 var c2;
64713 c2 = a.b;
64714 a.b = b;
64715 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 0, c2, a.b));
64716 }
64717 function VUd(a, b) {
64718 var c2;
64719 c2 = a.c;
64720 a.c = b;
64721 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c2, a.c));
64722 }
64723 function Apd(a, b) {
64724 var c2;
64725 c2 = a.c;
64726 a.c = b;
64727 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c2, a.c));
64728 }
64729 function pQd(a, b) {
64730 var c2;
64731 c2 = a.c;
64732 a.c = b;
64733 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 4, c2, a.c));
64734 }
64735 function PHd(a, b) {
64736 var c2;
64737 c2 = a.d;
64738 a.d = b;
64739 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c2, a.d));
64740 }
64741 function jKd(a, b) {
64742 var c2;
64743 c2 = a.D;
64744 a.D = b;
64745 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 2, c2, a.D));
64746 }
64747 function Rdd(a, b) {
64748 if (a.r > 0 && a.c < a.r) {
64749 a.c += b;
64750 !!a.i && a.i.d > 0 && a.g != 0 && Rdd(a.i, b / a.r * a.i.d);
64751 }
64752 }
64753 function dge(a, b, c2) {
64754 var d;
64755 a.b = b;
64756 a.a = c2;
64757 d = (a.a & 512) == 512 ? new hee() : new ude();
64758 a.c = ode(d, a.b, a.a);
64759 }
64760 function g3d(a, b) {
64761 return T6d(a.e, b) ? (Q6d(), YId(b) ? new R7d(b, a) : new f7d(b, a)) : new c8d(b, a);
64762 }
64763 function _o(a, b) {
64764 return Fv(vo(a.a, b, Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)))));
64765 }
64766 function Nyb(a, b, c2) {
64767 return Ayb(a, new Kzb(b), new Mzb(), new Ozb(c2), OC(GC(xL, 1), Kie, 132, 0, []));
64768 }
64769 function pAb(a) {
64770 var b, c2;
64771 if (0 > a) {
64772 return new yAb();
64773 }
64774 b = a + 1;
64775 c2 = new rAb(b, a);
64776 return new vAb(null, c2);
64777 }
64778 function umb(a, b) {
64779 mmb();
64780 var c2;
64781 c2 = new Mqb(1);
64782 ND(a) ? Shb(c2, a, b) : jrb(c2.f, a, b);
64783 return new iob(c2);
64784 }
64785 function aMb(a, b) {
64786 var c2, d;
64787 c2 = a.o + a.p;
64788 d = b.o + b.p;
64789 if (c2 < d) {
64790 return -1;
64791 }
64792 if (c2 == d) {
64793 return 0;
64794 }
64795 return 1;
64796 }
64797 function P2b(a) {
64798 var b;
64799 b = vNb(a, (wtc(), $sc));
64800 if (JD(b, 160)) {
64801 return O2b(BD(b, 160));
64802 }
64803 return null;
64804 }
64805 function Kp(a) {
64806 var b;
64807 a = $wnd.Math.max(a, 2);
64808 b = geb(a);
64809 if (a > b) {
64810 b <<= 1;
64811 return b > 0 ? b : Iie;
64812 }
64813 return b;
64814 }
64815 function xc(a) {
64816 Ub(a.e != 3);
64817 switch (a.e) {
64818 case 2:
64819 return false;
64820 case 0:
64821 return true;
64822 }
64823 return zc(a);
64824 }
64825 function T6c(a, b) {
64826 var c2;
64827 if (JD(b, 8)) {
64828 c2 = BD(b, 8);
64829 return a.a == c2.a && a.b == c2.b;
64830 } else {
64831 return false;
64832 }
64833 }
64834 function _Mb(a, b, c2) {
64835 var d, e, f2;
64836 f2 = b >> 5;
64837 e = b & 31;
64838 d = xbb(Pbb(a.n[c2][f2], Tbb(Nbb(e, 1))), 3);
64839 return d;
64840 }
64841 function IAd(a, b) {
64842 var c2, d;
64843 for (d = b.vc().Kc(); d.Ob(); ) {
64844 c2 = BD(d.Pb(), 42);
64845 HAd(a, c2.cd(), c2.dd());
64846 }
64847 }
64848 function N1c(a, b) {
64849 var c2;
64850 c2 = new tOb();
64851 BD(b.b, 65);
64852 BD(b.b, 65);
64853 BD(b.b, 65);
64854 Hkb(b.a, new T1c(a, c2, b));
64855 }
64856 function DUd(a, b) {
64857 var c2;
64858 c2 = a.b;
64859 a.b = b;
64860 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 21, c2, a.b));
64861 }
64862 function jmd(a, b) {
64863 var c2;
64864 c2 = a.d;
64865 a.d = b;
64866 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 11, c2, a.d));
64867 }
64868 function _Id(a, b) {
64869 var c2;
64870 c2 = a.j;
64871 a.j = b;
64872 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 13, c2, a.j));
64873 }
64874 function $jb(a, b, c2) {
64875 var d, e, f2;
64876 f2 = a.a.length - 1;
64877 for (e = a.b, d = 0; d < c2; e = e + 1 & f2, ++d) {
64878 NC(b, d, a.a[e]);
64879 }
64880 }
64881 function rqb(a, b) {
64882 var c2;
64883 uCb(b);
64884 c2 = b.g;
64885 if (!a.b[c2]) {
64886 NC(a.b, c2, b);
64887 ++a.c;
64888 return true;
64889 }
64890 return false;
64891 }
64892 function eub(a, b) {
64893 var c2;
64894 c2 = b == null ? -1 : Jkb(a.b, b, 0);
64895 if (c2 < 0) {
64896 return false;
64897 }
64898 fub(a, c2);
64899 return true;
64900 }
64901 function fub(a, b) {
64902 var c2;
64903 c2 = Kkb(a.b, a.b.c.length - 1);
64904 if (b < a.b.c.length) {
64905 Nkb(a.b, b, c2);
64906 bub(a, b);
64907 }
64908 }
64909 function eyb(a, b) {
64910 ((oyb(), lyb) ? null : b.c).length == 0 && qyb(b, new zyb());
64911 Shb(a.a, lyb ? null : b.c, b);
64912 }
64913 function M5b(a, b) {
64914 Odd(b, "Hierarchical port constraint processing", 1);
64915 N5b(a);
64916 P5b(a);
64917 Qdd(b);
64918 }
64919 function GOb(a, b) {
64920 var c2, d;
64921 for (d = b.Kc(); d.Ob(); ) {
64922 c2 = BD(d.Pb(), 266);
64923 a.b = true;
64924 Qqb(a.e, c2);
64925 c2.b = a;
64926 }
64927 }
64928 function Owb(a, b) {
64929 var c2, d;
64930 c2 = 1 - b;
64931 d = a.a[c2];
64932 a.a[c2] = d.a[b];
64933 d.a[b] = a;
64934 a.b = true;
64935 d.b = false;
64936 return d;
64937 }
64938 function Gec(a, b) {
64939 var c2, d;
64940 c2 = BD(vNb(a, (Nyc(), ayc)), 8);
64941 d = BD(vNb(b, ayc), 8);
64942 return Kdb(c2.b, d.b);
64943 }
64944 function jfc(a) {
64945 oEb.call(this);
64946 this.b = Edb(ED(vNb(a, (Nyc(), lyc))));
64947 this.a = BD(vNb(a, Swc), 218);
64948 }
64949 function XGc(a, b, c2) {
64950 uEc.call(this, a, b, c2);
64951 this.a = new Lqb();
64952 this.b = new Lqb();
64953 this.d = new $Gc(this);
64954 }
64955 function ku(a) {
64956 this.e = a;
64957 this.d = new Uqb(Cv(Ec(this.e).gc()));
64958 this.c = this.e.a;
64959 this.b = this.e.c;
64960 }
64961 function BHc(a) {
64962 this.b = a;
64963 this.a = KC(WD, oje, 25, a + 1, 15, 1);
64964 this.c = KC(WD, oje, 25, a, 15, 1);
64965 this.d = 0;
64966 }
64967 function THc(a, b, c2) {
64968 var d;
64969 d = new Rkb();
64970 UHc(a, b, d, c2, true, true);
64971 a.b = new BHc(d.c.length);
64972 return d;
64973 }
64974 function nMc(a, b) {
64975 var c2;
64976 c2 = BD(Ohb(a.c, b), 458);
64977 if (!c2) {
64978 c2 = new uMc();
64979 c2.c = b;
64980 Rhb(a.c, c2.c, c2);
64981 }
64982 return c2;
64983 }
64984 function $B(e, a) {
64985 var b = e.a;
64986 var c2 = 0;
64987 for (var d in b) {
64988 b.hasOwnProperty(d) && (a[c2++] = d);
64989 }
64990 return a;
64991 }
64992 function pRd(a) {
64993 var b;
64994 if (a.b == null) {
64995 return LRd(), LRd(), KRd;
64996 }
64997 b = a.Lk() ? a.Kk() : a.Jk();
64998 return b;
64999 }
65000 function r$c(a) {
65001 var b, c2;
65002 for (c2 = new Fyd(a); c2.e != c2.i.gc(); ) {
65003 b = BD(Dyd(c2), 33);
65004 dld(b, 0);
65005 eld(b, 0);
65006 }
65007 }
65008 function HSb() {
65009 HSb = ccb;
65010 FSb = new Lsd(Ime);
65011 GSb = new Lsd(Jme);
65012 ESb = new Lsd(Kme);
65013 DSb = new Lsd(Lme);
65014 }
65015 function y5b() {
65016 y5b = ccb;
65017 x5b = new z5b("TO_INTERNAL_LTR", 0);
65018 w5b = new z5b("TO_INPUT_DIRECTION", 1);
65019 }
65020 function PUc() {
65021 PUc = ccb;
65022 NUc = new RUc("P1_NODE_PLACEMENT", 0);
65023 OUc = new RUc("P2_EDGE_ROUTING", 1);
65024 }
65025 function Fkc() {
65026 Fkc = ccb;
65027 Ekc = new Gkc("START", 0);
65028 Dkc = new Gkc("MIDDLE", 1);
65029 Ckc = new Gkc("END", 2);
65030 }
65031 function I9b() {
65032 I9b = ccb;
65033 H9b = new Msd("edgelabelcenterednessanalysis.includelabel", (Bcb(), zcb));
65034 }
65035 function Zyc(a, b) {
65036 MAb(JAb(new YAb(null, new Kub(new Pib(a.b), 1)), new bfd(a, b)), new ffd(a, b));
65037 }
65038 function $Xc() {
65039 this.c = new jVc(0);
65040 this.b = new jVc(Tqe);
65041 this.d = new jVc(Sqe);
65042 this.a = new jVc(cme);
65043 }
65044 function $Fc(a) {
65045 var b, c2;
65046 for (c2 = a.c.a.ec().Kc(); c2.Ob(); ) {
65047 b = BD(c2.Pb(), 214);
65048 eFc(b, new oHc(b.e));
65049 }
65050 }
65051 function ZFc(a) {
65052 var b, c2;
65053 for (c2 = a.c.a.ec().Kc(); c2.Ob(); ) {
65054 b = BD(c2.Pb(), 214);
65055 dFc(b, new nHc(b.f));
65056 }
65057 }
65058 function pnd(a, b) {
65059 var c2;
65060 c2 = a.zb;
65061 a.zb = b;
65062 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, c2, a.zb));
65063 }
65064 function cod(a, b) {
65065 var c2;
65066 c2 = a.xb;
65067 a.xb = b;
65068 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, c2, a.xb));
65069 }
65070 function dod(a, b) {
65071 var c2;
65072 c2 = a.yb;
65073 a.yb = b;
65074 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 2, c2, a.yb));
65075 }
65076 function Knd(a, b) {
65077 var c2, d;
65078 c2 = (d = new OJd(), d);
65079 c2.n = b;
65080 wtd((!a.s && (a.s = new cUd(t5, a, 21, 17)), a.s), c2);
65081 }
65082 function Qnd(a, b) {
65083 var c2, d;
65084 d = (c2 = new FUd(), c2);
65085 d.n = b;
65086 wtd((!a.s && (a.s = new cUd(t5, a, 21, 17)), a.s), d);
65087 }
65088 function ktb(a, b) {
65089 var c2, d;
65090 c2 = a.Pc();
65091 Klb(c2, 0, c2.length, b);
65092 for (d = 0; d < c2.length; d++) {
65093 a._c(d, c2[d]);
65094 }
65095 }
65096 function ye(a, b) {
65097 var c2, d, e;
65098 uCb(b);
65099 c2 = false;
65100 for (e = b.Kc(); e.Ob(); ) {
65101 d = e.Pb();
65102 c2 = c2 | a.Fc(d);
65103 }
65104 return c2;
65105 }
65106 function Bx(a) {
65107 var b, c2, d;
65108 b = 0;
65109 for (d = a.Kc(); d.Ob(); ) {
65110 c2 = d.Pb();
65111 b += c2 != null ? tb(c2) : 0;
65112 b = ~~b;
65113 }
65114 return b;
65115 }
65116 function SA(a) {
65117 var b;
65118 if (a == 0) {
65119 return "UTC";
65120 }
65121 if (a < 0) {
65122 a = -a;
65123 b = "UTC+";
65124 } else {
65125 b = "UTC-";
65126 }
65127 return b + UA(a);
65128 }
65129 function Jq(a, b) {
65130 var c2;
65131 if (JD(b, 14)) {
65132 c2 = BD(b, 14);
65133 return a.Gc(c2);
65134 }
65135 return fr(a, BD(Qb(b), 20).Kc());
65136 }
65137 function Bnc(a, b, c2) {
65138 Cnc.call(this, b, c2);
65139 this.d = KC(OQ, kne, 10, a.a.c.length, 0, 1);
65140 Qkb(a.a, this.d);
65141 }
65142 function IMc(a) {
65143 a.a = null;
65144 a.e = null;
65145 a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
65146 a.f.c = KC(SI, Uhe, 1, 0, 5, 1);
65147 a.c = null;
65148 }
65149 function gKd(a, b) {
65150 if (b) {
65151 if (a.B == null) {
65152 a.B = a.D;
65153 a.D = null;
65154 }
65155 } else if (a.B != null) {
65156 a.D = a.B;
65157 a.B = null;
65158 }
65159 }
65160 function Poc(a, b) {
65161 return Edb(ED(Btb(TAb(NAb(new YAb(null, new Kub(a.c.b, 16)), new fpc(a)), b))));
65162 }
65163 function Soc(a, b) {
65164 return Edb(ED(Btb(TAb(NAb(new YAb(null, new Kub(a.c.b, 16)), new dpc(a)), b))));
65165 }
65166 function Q2b(a, b) {
65167 Odd(b, zne, 1);
65168 MAb(LAb(new YAb(null, new Kub(a.b, 16)), new U2b()), new W2b());
65169 Qdd(b);
65170 }
65171 function SXc(a, b) {
65172 var c2, d;
65173 c2 = BD(hkd(a, (ZWc(), SWc)), 19);
65174 d = BD(hkd(b, SWc), 19);
65175 return beb(c2.a, d.a);
65176 }
65177 function p7c(a, b, c2) {
65178 var d, e;
65179 for (e = Jsb(a, 0); e.b != e.d.c; ) {
65180 d = BD(Xsb(e), 8);
65181 d.a += b;
65182 d.b += c2;
65183 }
65184 return a;
65185 }
65186 function uo(a, b, c2) {
65187 var d;
65188 for (d = a.b[c2 & a.f]; d; d = d.b) {
65189 if (c2 == d.a && Hb(b, d.g)) {
65190 return d;
65191 }
65192 }
65193 return null;
65194 }
65195 function vo(a, b, c2) {
65196 var d;
65197 for (d = a.c[c2 & a.f]; d; d = d.d) {
65198 if (c2 == d.f && Hb(b, d.i)) {
65199 return d;
65200 }
65201 }
65202 return null;
65203 }
65204 function khb(a, b, c2) {
65205 var d, e, f2;
65206 d = 0;
65207 for (e = 0; e < c2; e++) {
65208 f2 = b[e];
65209 a[e] = f2 << 1 | d;
65210 d = f2 >>> 31;
65211 }
65212 d != 0 && (a[c2] = d);
65213 }
65214 function rmb(a, b) {
65215 mmb();
65216 var c2, d;
65217 d = new Rkb();
65218 for (c2 = 0; c2 < a; ++c2) {
65219 d.c[d.c.length] = b;
65220 }
65221 return new Yob(d);
65222 }
65223 function Zzb(a) {
65224 var b;
65225 b = Yzb(a);
65226 if (Bbb(b.a, 0)) {
65227 return Ltb(), Ltb(), Ktb;
65228 }
65229 return Ltb(), new Ptb(b.b);
65230 }
65231 function $zb(a) {
65232 var b;
65233 b = Yzb(a);
65234 if (Bbb(b.a, 0)) {
65235 return Ltb(), Ltb(), Ktb;
65236 }
65237 return Ltb(), new Ptb(b.c);
65238 }
65239 function uAb(a) {
65240 var b;
65241 b = tAb(a);
65242 if (Bbb(b.a, 0)) {
65243 return Utb(), Utb(), Ttb;
65244 }
65245 return Utb(), new Xtb(b.b);
65246 }
65247 function zZb(a) {
65248 if (a.b.c.i.k == (j0b(), e0b)) {
65249 return BD(vNb(a.b.c.i, (wtc(), $sc)), 11);
65250 }
65251 return a.b.c;
65252 }
65253 function AZb(a) {
65254 if (a.b.d.i.k == (j0b(), e0b)) {
65255 return BD(vNb(a.b.d.i, (wtc(), $sc)), 11);
65256 }
65257 return a.b.d;
65258 }
65259 function Vnd(a, b, c2, d, e, f2, g, h, i3, j, k, l, m) {
65260 aod(a, b, c2, d, e, f2, g, h, i3, j, k, l, m);
65261 MJd(a, false);
65262 return a;
65263 }
65264 function tJb(a, b, c2, d, e, f2, g) {
65265 $r.call(this, a, b);
65266 this.d = c2;
65267 this.e = d;
65268 this.c = e;
65269 this.b = f2;
65270 this.a = Ou(g);
65271 }
65272 function $bb(a, b) {
65273 typeof window === Jhe && typeof window["$gwt"] === Jhe && (window["$gwt"][a] = b);
65274 }
65275 function pWb(a, b) {
65276 lWb();
65277 return a == hWb && b == kWb || a == kWb && b == hWb || a == jWb && b == iWb || a == iWb && b == jWb;
65278 }
65279 function qWb(a, b) {
65280 lWb();
65281 return a == hWb && b == iWb || a == hWb && b == jWb || a == kWb && b == jWb || a == kWb && b == iWb;
65282 }
65283 function IJb(a, b) {
65284 return Iy(), My(ple), $wnd.Math.abs(0 - b) <= ple || 0 == b || isNaN(0) && isNaN(b) ? 0 : a / b;
65285 }
65286 function Rrc() {
65287 Orc();
65288 return OC(GC(PW, 1), Kie, 256, 0, [Frc, Hrc, Irc, Jrc, Krc, Lrc, Nrc, Erc, Grc, Mrc]);
65289 }
65290 function NKd() {
65291 NKd = ccb;
65292 KKd = new KPd();
65293 MKd = OC(GC(t5, 1), Mve, 170, 0, []);
65294 LKd = OC(GC(n5, 1), Nve, 59, 0, []);
65295 }
65296 function CBc() {
65297 CBc = ccb;
65298 BBc = new DBc("NO", 0);
65299 zBc = new DBc("GREEDY", 1);
65300 ABc = new DBc("LOOK_BACK", 2);
65301 }
65302 function z0b() {
65303 z0b = ccb;
65304 w0b = new m1b();
65305 u0b = new h1b();
65306 v0b = new q1b();
65307 t0b = new u1b();
65308 x0b = new y1b();
65309 y0b = new C1b();
65310 }
65311 function J9b(a) {
65312 var b, c2, d;
65313 d = 0;
65314 for (c2 = new olb(a.b); c2.a < c2.c.c.length; ) {
65315 b = BD(mlb(c2), 29);
65316 b.p = d;
65317 ++d;
65318 }
65319 }
65320 function nfd(a, b) {
65321 var c2;
65322 c2 = sfd(a);
65323 return mfd(new f7c(c2.c, c2.d), new f7c(c2.b, c2.a), a.rf(), b, a.Hf());
65324 }
65325 function Udd(a, b) {
65326 var c2;
65327 if (a.b) {
65328 return null;
65329 } else {
65330 c2 = Pdd(a, a.g);
65331 Dsb(a.a, c2);
65332 c2.i = a;
65333 a.d = b;
65334 return c2;
65335 }
65336 }
65337 function kUc(a, b, c2) {
65338 Odd(c2, "DFS Treeifying phase", 1);
65339 jUc(a, b);
65340 hUc(a, b);
65341 a.a = null;
65342 a.b = null;
65343 Qdd(c2);
65344 }
65345 function zic(a, b, c2) {
65346 this.g = a;
65347 this.d = b;
65348 this.e = c2;
65349 this.a = new Rkb();
65350 xic(this);
65351 mmb();
65352 Okb(this.a, null);
65353 }
65354 function Aud(a) {
65355 this.i = a.gc();
65356 if (this.i > 0) {
65357 this.g = this.ri(this.i + (this.i / 8 | 0) + 1);
65358 a.Qc(this.g);
65359 }
65360 }
65361 function u3d(a, b) {
65362 k2d.call(this, D9, a, b);
65363 this.b = this;
65364 this.a = S6d(a.Tg(), XKd(this.e.Tg(), this.c));
65365 }
65366 function Ld(a, b) {
65367 var c2, d;
65368 uCb(b);
65369 for (d = b.vc().Kc(); d.Ob(); ) {
65370 c2 = BD(d.Pb(), 42);
65371 a.zc(c2.cd(), c2.dd());
65372 }
65373 }
65374 function G2d(a, b, c2) {
65375 var d;
65376 for (d = c2.Kc(); d.Ob(); ) {
65377 if (!E2d(a, b, d.Pb())) {
65378 return false;
65379 }
65380 }
65381 return true;
65382 }
65383 function sVd(a, b, c2, d, e) {
65384 var f2;
65385 if (c2) {
65386 f2 = bLd(b.Tg(), a.c);
65387 e = c2.gh(b, -1 - (f2 == -1 ? d : f2), null, e);
65388 }
65389 return e;
65390 }
65391 function tVd(a, b, c2, d, e) {
65392 var f2;
65393 if (c2) {
65394 f2 = bLd(b.Tg(), a.c);
65395 e = c2.ih(b, -1 - (f2 == -1 ? d : f2), null, e);
65396 }
65397 return e;
65398 }
65399 function Mgb(a) {
65400 var b;
65401 if (a.b == -2) {
65402 if (a.e == 0) {
65403 b = -1;
65404 } else {
65405 for (b = 0; a.a[b] == 0; b++)
65406 ;
65407 }
65408 a.b = b;
65409 }
65410 return a.b;
65411 }
65412 function Z4b(a) {
65413 switch (a.g) {
65414 case 2:
65415 return Ucd(), Tcd;
65416 case 4:
65417 return Ucd(), zcd;
65418 default:
65419 return a;
65420 }
65421 }
65422 function $4b(a) {
65423 switch (a.g) {
65424 case 1:
65425 return Ucd(), Rcd;
65426 case 3:
65427 return Ucd(), Acd;
65428 default:
65429 return a;
65430 }
65431 }
65432 function nkc(a) {
65433 var b, c2, d;
65434 return a.j == (Ucd(), Acd) && (b = pkc(a), c2 = uqb(b, zcd), d = uqb(b, Tcd), d || d && c2);
65435 }
65436 function oqb(a) {
65437 var b, c2;
65438 b = BD(a.e && a.e(), 9);
65439 c2 = BD(ZBb(b, b.length), 9);
65440 return new xqb(b, c2, b.length);
65441 }
65442 function l7b(a, b) {
65443 Odd(b, zne, 1);
65444 UGb(TGb(new YGb((a$b(), new l$b(a, false, false, new T$b())))));
65445 Qdd(b);
65446 }
65447 function Fcb(a, b) {
65448 Bcb();
65449 return ND(a) ? cfb(a, GD(b)) : LD(a) ? Ddb(a, ED(b)) : KD(a) ? Dcb(a, DD(b)) : a.wd(b);
65450 }
65451 function WZc(a, b) {
65452 b.q = a;
65453 a.d = $wnd.Math.max(a.d, b.r);
65454 a.b += b.d + (a.a.c.length == 0 ? 0 : a.c);
65455 Ekb(a.a, b);
65456 }
65457 function m6c(a, b) {
65458 var c2, d, e, f2;
65459 e = a.c;
65460 c2 = a.c + a.b;
65461 f2 = a.d;
65462 d = a.d + a.a;
65463 return b.a > e && b.a < c2 && b.b > f2 && b.b < d;
65464 }
65465 function Ynd(a, b, c2, d) {
65466 JD(a.Cb, 179) && (BD(a.Cb, 179).tb = null);
65467 pnd(a, c2);
65468 !!b && hKd(a, b);
65469 d && a.xk(true);
65470 }
65471 function Yqd(a, b) {
65472 var c2;
65473 c2 = BD(b, 183);
65474 Spd(c2, "x", a.i);
65475 Spd(c2, "y", a.j);
65476 Spd(c2, Gte, a.g);
65477 Spd(c2, Fte, a.f);
65478 }
65479 function LFc() {
65480 LFc = ccb;
65481 KFc = b3c(f3c(e3c(e3c(new j3c(), (qUb(), nUb), (S8b(), z8b)), oUb, p8b), pUb), y8b);
65482 }
65483 function dHc() {
65484 dHc = ccb;
65485 cHc = b3c(f3c(e3c(e3c(new j3c(), (qUb(), nUb), (S8b(), z8b)), oUb, p8b), pUb), y8b);
65486 }
65487 function sXc() {
65488 sXc = ccb;
65489 qXc = new uXc(ane, 0);
65490 rXc = new uXc("POLAR_COORDINATE", 1);
65491 pXc = new uXc("ID", 2);
65492 }
65493 function TAc() {
65494 TAc = ccb;
65495 QAc = new UAc("EQUALLY", 0);
65496 RAc = new UAc(xle, 1);
65497 SAc = new UAc("NORTH_SOUTH", 2);
65498 }
65499 function pAc() {
65500 pAc = ccb;
65501 oAc = as((kAc(), OC(GC(aX, 1), Kie, 260, 0, [iAc, dAc, gAc, eAc, fAc, cAc, hAc, jAc])));
65502 }
65503 function Flc() {
65504 Flc = ccb;
65505 Elc = as((Alc(), OC(GC(KV, 1), Kie, 270, 0, [tlc, wlc, slc, zlc, vlc, ulc, ylc, xlc])));
65506 }
65507 function e6c() {
65508 e6c = ccb;
65509 d6c = as((_5c(), OC(GC(f1, 1), Kie, 277, 0, [$5c, T5c, X5c, Z5c, U5c, V5c, W5c, Y5c])));
65510 }
65511 function Hsd() {
65512 Hsd = ccb;
65513 Gsd = as((Csd(), OC(GC(O3, 1), Kie, 237, 0, [Bsd, ysd, zsd, xsd, Asd, vsd, usd, wsd])));
65514 }
65515 function XNb() {
65516 XNb = ccb;
65517 VNb = new Msd("debugSVG", (Bcb(), false));
65518 WNb = new Msd("overlapsExisted", true);
65519 }
65520 function Xyb(a, b) {
65521 return Ayb(new tzb(a), new vzb(b), new xzb(b), new zzb(), OC(GC(xL, 1), Kie, 132, 0, []));
65522 }
65523 function hyb() {
65524 var a;
65525 if (!dyb) {
65526 dyb = new gyb();
65527 a = new wyb("");
65528 uyb(a, ($xb(), Zxb));
65529 eyb(dyb, a);
65530 }
65531 return dyb;
65532 }
65533 function hr(a, b) {
65534 var c2;
65535 Qb(b);
65536 while (a.Ob()) {
65537 c2 = a.Pb();
65538 if (!QNc(BD(c2, 10))) {
65539 return false;
65540 }
65541 }
65542 return true;
65543 }
65544 function T3c(a, b) {
65545 var c2;
65546 c2 = h4c(n4c(), a);
65547 if (c2) {
65548 jkd(b, (Y9c(), F9c), c2);
65549 return true;
65550 } else {
65551 return false;
65552 }
65553 }
65554 function d3c(a, b) {
65555 var c2;
65556 for (c2 = 0; c2 < b.j.c.length; c2++) {
65557 BD(B2c(a, c2), 21).Gc(BD(B2c(b, c2), 14));
65558 }
65559 return a;
65560 }
65561 function M9b(a, b) {
65562 var c2, d;
65563 for (d = new olb(b.b); d.a < d.c.c.length; ) {
65564 c2 = BD(mlb(d), 29);
65565 a.a[c2.p] = _$b(c2);
65566 }
65567 }
65568 function stb(a, b) {
65569 var c2, d;
65570 uCb(b);
65571 for (d = a.vc().Kc(); d.Ob(); ) {
65572 c2 = BD(d.Pb(), 42);
65573 b.Od(c2.cd(), c2.dd());
65574 }
65575 }
65576 function cId(a, b) {
65577 var c2;
65578 if (JD(b, 83)) {
65579 BD(a.c, 76).Xj();
65580 c2 = BD(b, 83);
65581 IAd(a, c2);
65582 } else {
65583 BD(a.c, 76).Wb(b);
65584 }
65585 }
65586 function Su(a) {
65587 return JD(a, 152) ? km(BD(a, 152)) : JD(a, 131) ? BD(a, 131).a : JD(a, 54) ? new ov(a) : new dv(a);
65588 }
65589 function fac(a, b) {
65590 return b < a.b.gc() ? BD(a.b.Xb(b), 10) : b == a.b.gc() ? a.a : BD(Ikb(a.e, b - a.b.gc() - 1), 10);
65591 }
65592 function crb(a, b) {
65593 a.a = wbb(a.a, 1);
65594 a.c = $wnd.Math.min(a.c, b);
65595 a.b = $wnd.Math.max(a.b, b);
65596 a.d = wbb(a.d, b);
65597 }
65598 function n3b(a, b) {
65599 var c2;
65600 Odd(b, "Edge and layer constraint edge reversal", 1);
65601 c2 = m3b(a);
65602 l3b(c2);
65603 Qdd(b);
65604 }
65605 function tAd(a) {
65606 var b;
65607 if (a.d == null) {
65608 ++a.e;
65609 a.f = 0;
65610 sAd(null);
65611 } else {
65612 ++a.e;
65613 b = a.d;
65614 a.d = null;
65615 a.f = 0;
65616 sAd(b);
65617 }
65618 }
65619 function zbb(a) {
65620 var b;
65621 b = a.h;
65622 if (b == 0) {
65623 return a.l + a.m * Hje;
65624 }
65625 if (b == Fje) {
65626 return a.l + a.m * Hje - Ije;
65627 }
65628 return a;
65629 }
65630 function aKb(a) {
65631 $Jb();
65632 if (a.A.Hc((tdd(), pdd))) {
65633 if (!a.B.Hc((Idd(), Ddd))) {
65634 return _Jb(a);
65635 }
65636 }
65637 return null;
65638 }
65639 function Zgb(a) {
65640 uCb(a);
65641 if (a.length == 0) {
65642 throw vbb(new Oeb("Zero length BigInteger"));
65643 }
65644 dhb(this, a);
65645 }
65646 function Vb(a) {
65647 if (!a) {
65648 throw vbb(new Zdb("no calls to next() since the last call to remove()"));
65649 }
65650 }
65651 function Cbb(a) {
65652 if (Kje < a && a < Ije) {
65653 return a < 0 ? $wnd.Math.ceil(a) : $wnd.Math.floor(a);
65654 }
65655 return zbb(fD(a));
65656 }
65657 function Yyb(a, b) {
65658 var c2, d, e;
65659 c2 = a.c.Ee();
65660 for (e = b.Kc(); e.Ob(); ) {
65661 d = e.Pb();
65662 a.a.Od(c2, d);
65663 }
65664 return a.b.Kb(c2);
65665 }
65666 function Uhd(a, b) {
65667 var c2, d, e;
65668 c2 = a.Jg();
65669 if (c2 != null && a.Mg()) {
65670 for (d = 0, e = c2.length; d < e; ++d) {
65671 c2[d].ui(b);
65672 }
65673 }
65674 }
65675 function f_b(a, b) {
65676 var c2, d;
65677 c2 = a;
65678 d = Q_b(c2).e;
65679 while (d) {
65680 c2 = d;
65681 if (c2 == b) {
65682 return true;
65683 }
65684 d = Q_b(c2).e;
65685 }
65686 return false;
65687 }
65688 function lDc(a, b, c2) {
65689 var d, e;
65690 d = a.a.f[b.p];
65691 e = a.a.f[c2.p];
65692 if (d < e) {
65693 return -1;
65694 }
65695 if (d == e) {
65696 return 0;
65697 }
65698 return 1;
65699 }
65700 function Si(a, b, c2) {
65701 var d, e;
65702 e = BD(tn(a.d, b), 19);
65703 d = BD(tn(a.b, c2), 19);
65704 return !e || !d ? null : Mi(a, e.a, d.a);
65705 }
65706 function cYc(a, b) {
65707 var c2, d;
65708 for (d = new Fyd(a); d.e != d.i.gc(); ) {
65709 c2 = BD(Dyd(d), 33);
65710 bld(c2, c2.i + b.b, c2.j + b.d);
65711 }
65712 }
65713 function qjc(a, b) {
65714 var c2, d;
65715 for (d = new olb(b); d.a < d.c.c.length; ) {
65716 c2 = BD(mlb(d), 70);
65717 Ekb(a.d, c2);
65718 ujc(a, c2);
65719 }
65720 }
65721 function pQc(a, b) {
65722 var c2, d;
65723 d = new Rkb();
65724 c2 = b;
65725 do {
65726 d.c[d.c.length] = c2;
65727 c2 = BD(Ohb(a.k, c2), 17);
65728 } while (c2);
65729 return d;
65730 }
65731 function Ajd(a, b) {
65732 var c2;
65733 if ((a.Db & b) != 0) {
65734 c2 = zjd(a, b);
65735 return c2 == -1 ? a.Eb : CD(a.Eb)[c2];
65736 } else {
65737 return null;
65738 }
65739 }
65740 function Lnd(a, b) {
65741 var c2, d;
65742 c2 = (d = new hLd(), d);
65743 c2.G = b;
65744 !a.rb && (a.rb = new jUd(a, d5, a));
65745 wtd(a.rb, c2);
65746 return c2;
65747 }
65748 function Mnd(a, b) {
65749 var c2, d;
65750 c2 = (d = new MPd(), d);
65751 c2.G = b;
65752 !a.rb && (a.rb = new jUd(a, d5, a));
65753 wtd(a.rb, c2);
65754 return c2;
65755 }
65756 function Hkd(a, b) {
65757 switch (b) {
65758 case 1:
65759 return !!a.n && a.n.i != 0;
65760 case 2:
65761 return a.k != null;
65762 }
65763 return dkd(a, b);
65764 }
65765 function gNc(a) {
65766 switch (a.a.g) {
65767 case 1:
65768 return new NNc();
65769 case 3:
65770 return new vQc();
65771 default:
65772 return new wNc();
65773 }
65774 }
65775 function MRd(a) {
65776 var b;
65777 if (a.g > 1 || a.Ob()) {
65778 ++a.a;
65779 a.g = 0;
65780 b = a.i;
65781 a.Ob();
65782 return b;
65783 } else {
65784 throw vbb(new utb());
65785 }
65786 }
65787 function kNc(a) {
65788 fNc();
65789 var b;
65790 if (!Lpb(eNc, a)) {
65791 b = new hNc();
65792 b.a = a;
65793 Opb(eNc, a, b);
65794 }
65795 return BD(Mpb(eNc, a), 635);
65796 }
65797 function Rbb(a) {
65798 var b, c2, d, e;
65799 e = a;
65800 d = 0;
65801 if (e < 0) {
65802 e += Ije;
65803 d = Fje;
65804 }
65805 c2 = QD(e / Hje);
65806 b = QD(e - c2 * Hje);
65807 return TC(b, c2, d);
65808 }
65809 function Ox(a) {
65810 var b, c2, d;
65811 d = 0;
65812 for (c2 = new Gqb(a.a); c2.a < c2.c.a.length; ) {
65813 b = Fqb(c2);
65814 a.b.Hc(b) && ++d;
65815 }
65816 return d;
65817 }
65818 function Ku(a) {
65819 var b, c2, d;
65820 b = 1;
65821 for (d = a.Kc(); d.Ob(); ) {
65822 c2 = d.Pb();
65823 b = 31 * b + (c2 == null ? 0 : tb(c2));
65824 b = ~~b;
65825 }
65826 return b;
65827 }
65828 function Zwb(a, b) {
65829 var c2;
65830 this.c = a;
65831 c2 = new Rkb();
65832 Ewb(a, c2, b, a.b, null, false, null, false);
65833 this.a = new Bib(c2, 0);
65834 }
65835 function p4d(a, b) {
65836 this.b = a;
65837 this.e = b;
65838 this.d = b.j;
65839 this.f = (Q6d(), BD(a, 66).Oj());
65840 this.k = S6d(b.e.Tg(), a);
65841 }
65842 function xwb(a, b, c2) {
65843 this.b = (uCb(a), a);
65844 this.d = (uCb(b), b);
65845 this.e = (uCb(c2), c2);
65846 this.c = this.d + ("" + this.e);
65847 }
65848 function xRb() {
65849 this.a = BD(Ksd((wSb(), eSb)), 19).a;
65850 this.c = Edb(ED(Ksd(uSb)));
65851 this.b = Edb(ED(Ksd(qSb)));
65852 }
65853 function Nbd() {
65854 Nbd = ccb;
65855 Mbd = as((Hbd(), OC(GC(B1, 1), Kie, 93, 0, [zbd, ybd, Bbd, Gbd, Fbd, Ebd, Cbd, Dbd, Abd])));
65856 }
65857 function wFb() {
65858 wFb = ccb;
65859 vFb = as((rFb(), OC(GC(dN, 1), Kie, 250, 0, [qFb, lFb, mFb, kFb, oFb, pFb, nFb, jFb, iFb])));
65860 }
65861 function vLb() {
65862 vLb = ccb;
65863 uLb = new wLb("UP", 0);
65864 rLb = new wLb(vle, 1);
65865 sLb = new wLb(jle, 2);
65866 tLb = new wLb(kle, 3);
65867 }
65868 function rTc() {
65869 rTc = ccb;
65870 qTc = (STc(), QTc);
65871 pTc = new Nsd(Zqe, qTc);
65872 oTc = ($Tc(), ZTc);
65873 nTc = new Nsd($qe, oTc);
65874 }
65875 function Xrc() {
65876 Xrc = ccb;
65877 Vrc = new Yrc("ONE_SIDED", 0);
65878 Wrc = new Yrc("TWO_SIDED", 1);
65879 Urc = new Yrc("OFF", 2);
65880 }
65881 function TQc(a) {
65882 a.r = new Tqb();
65883 a.w = new Tqb();
65884 a.t = new Rkb();
65885 a.i = new Rkb();
65886 a.d = new Tqb();
65887 a.a = new I6c();
65888 a.c = new Lqb();
65889 }
65890 function uOc(a) {
65891 this.n = new Rkb();
65892 this.e = new Psb();
65893 this.j = new Psb();
65894 this.k = new Rkb();
65895 this.f = new Rkb();
65896 this.p = a;
65897 }
65898 function PEc(a, b) {
65899 if (a.c) {
65900 QEc(a, b, true);
65901 MAb(new YAb(null, new Kub(b, 16)), new bFc(a));
65902 }
65903 QEc(a, b, false);
65904 }
65905 function wFc(a, b, c2) {
65906 return a == (rGc(), qGc) ? new pFc() : Cub(b, 1) != 0 ? new iHc(c2.length) : new RGc(c2.length);
65907 }
65908 function tNb(a, b) {
65909 var c2;
65910 if (!b) {
65911 return a;
65912 }
65913 c2 = b.Ve();
65914 c2.dc() || (!a.q ? a.q = new Nqb(c2) : Ld(a.q, c2));
65915 return a;
65916 }
65917 function Erb(a, b) {
65918 var c2;
65919 c2 = a.a.get(b);
65920 if (c2 === void 0) {
65921 ++a.d;
65922 } else {
65923 urb(a.a, b);
65924 --a.c;
65925 zpb(a.b);
65926 }
65927 return c2;
65928 }
65929 function UYb(a, b) {
65930 var c2, d, e;
65931 c2 = b.p - a.p;
65932 if (c2 == 0) {
65933 d = a.f.a * a.f.b;
65934 e = b.f.a * b.f.b;
65935 return Kdb(d, e);
65936 }
65937 return c2;
65938 }
65939 function XLb(a, b) {
65940 var c2, d;
65941 c2 = a.f.c.length;
65942 d = b.f.c.length;
65943 if (c2 < d) {
65944 return -1;
65945 }
65946 if (c2 == d) {
65947 return 0;
65948 }
65949 return 1;
65950 }
65951 function KZb(a) {
65952 if (a.b.c.length != 0 && !!BD(Ikb(a.b, 0), 70).a) {
65953 return BD(Ikb(a.b, 0), 70).a;
65954 }
65955 return JZb(a);
65956 }
65957 function Pq(a) {
65958 var b;
65959 if (a) {
65960 b = a;
65961 if (b.dc()) {
65962 throw vbb(new utb());
65963 }
65964 return b.Xb(b.gc() - 1);
65965 }
65966 return nr(a.Kc());
65967 }
65968 function vgb(a) {
65969 var b;
65970 ybb(a, 0) < 0 && (a = Lbb(a));
65971 return b = Tbb(Obb(a, 32)), 64 - (b != 0 ? heb(b) : heb(Tbb(a)) + 32);
65972 }
65973 function QNc(a) {
65974 var b;
65975 b = BD(vNb(a, (wtc(), Hsc)), 61);
65976 return a.k == (j0b(), e0b) && (b == (Ucd(), Tcd) || b == zcd);
65977 }
65978 function bZb(a, b, c2) {
65979 var d, e;
65980 e = BD(vNb(a, (Nyc(), jxc)), 74);
65981 if (e) {
65982 d = new s7c();
65983 o7c(d, 0, e);
65984 q7c(d, c2);
65985 ye(b, d);
65986 }
65987 }
65988 function M_b(a, b, c2) {
65989 var d, e, f2, g;
65990 g = Q_b(a);
65991 d = g.d;
65992 e = g.c;
65993 f2 = a.n;
65994 b && (f2.a = f2.a - d.b - e.a);
65995 c2 && (f2.b = f2.b - d.d - e.b);
65996 }
65997 function dcc(a, b) {
65998 var c2, d;
65999 c2 = a.j;
66000 d = b.j;
66001 return c2 != d ? c2.g - d.g : a.p == b.p ? 0 : c2 == (Ucd(), Acd) ? a.p - b.p : b.p - a.p;
66002 }
66003 function dmc(a) {
66004 var b, c2;
66005 bmc(a);
66006 for (c2 = new olb(a.d); c2.a < c2.c.c.length; ) {
66007 b = BD(mlb(c2), 101);
66008 !!b.i && cmc(b);
66009 }
66010 }
66011 function lBc(a, b, c2, d, e) {
66012 NC(a.c[b.g], c2.g, d);
66013 NC(a.c[c2.g], b.g, d);
66014 NC(a.b[b.g], c2.g, e);
66015 NC(a.b[c2.g], b.g, e);
66016 }
66017 function G1c(a, b, c2, d) {
66018 BD(c2.b, 65);
66019 BD(c2.b, 65);
66020 BD(d.b, 65);
66021 BD(d.b, 65);
66022 BD(d.b, 65);
66023 Hkb(d.a, new L1c(a, b, d));
66024 }
66025 function WDb(a, b) {
66026 a.d == (ead(), aad) || a.d == dad ? BD(b.a, 57).c.Fc(BD(b.b, 57)) : BD(b.b, 57).c.Fc(BD(b.a, 57));
66027 }
66028 function Gkd(a, b, c2, d) {
66029 if (c2 == 1) {
66030 return !a.n && (a.n = new cUd(D2, a, 1, 7)), Txd(a.n, b, d);
66031 }
66032 return ckd(a, b, c2, d);
66033 }
66034 function Gnd(a, b) {
66035 var c2, d;
66036 d = (c2 = new BYd(), c2);
66037 pnd(d, b);
66038 wtd((!a.A && (a.A = new K4d(u5, a, 7)), a.A), d);
66039 return d;
66040 }
66041 function Zqd(a, b, c2) {
66042 var d, e, f2, g;
66043 f2 = null;
66044 g = b;
66045 e = Ypd(g, Jte);
66046 d = new jrd(a, c2);
66047 f2 = (lqd(d.a, d.b, e), e);
66048 return f2;
66049 }
66050 function KJd(a) {
66051 var b;
66052 if (!a.a || (a.Bb & 1) == 0 && a.a.kh()) {
66053 b = wId(a);
66054 JD(b, 148) && (a.a = BD(b, 148));
66055 }
66056 return a.a;
66057 }
66058 function Be(a, b) {
66059 var c2, d;
66060 uCb(b);
66061 for (d = b.Kc(); d.Ob(); ) {
66062 c2 = d.Pb();
66063 if (!a.Hc(c2)) {
66064 return false;
66065 }
66066 }
66067 return true;
66068 }
66069 function cD(a, b) {
66070 var c2, d, e;
66071 c2 = a.l + b.l;
66072 d = a.m + b.m + (c2 >> 22);
66073 e = a.h + b.h + (d >> 22);
66074 return TC(c2 & Eje, d & Eje, e & Fje);
66075 }
66076 function nD(a, b) {
66077 var c2, d, e;
66078 c2 = a.l - b.l;
66079 d = a.m - b.m + (c2 >> 22);
66080 e = a.h - b.h + (d >> 22);
66081 return TC(c2 & Eje, d & Eje, e & Fje);
66082 }
66083 function bdb(a) {
66084 var b;
66085 if (a < 128) {
66086 b = (ddb(), cdb)[a];
66087 !b && (b = cdb[a] = new Xcb(a));
66088 return b;
66089 }
66090 return new Xcb(a);
66091 }
66092 function ubb(a) {
66093 var b;
66094 if (JD(a, 78)) {
66095 return a;
66096 }
66097 b = a && a.__java$exception;
66098 if (!b) {
66099 b = new lz(a);
66100 Sz(b);
66101 }
66102 return b;
66103 }
66104 function btd(a) {
66105 if (JD(a, 186)) {
66106 return BD(a, 118);
66107 } else if (!a) {
66108 throw vbb(new Heb(gue));
66109 } else {
66110 return null;
66111 }
66112 }
66113 function Zjb(a, b) {
66114 if (b == null) {
66115 return false;
66116 }
66117 while (a.a != a.b) {
66118 if (pb(b, vkb(a))) {
66119 return true;
66120 }
66121 }
66122 return false;
66123 }
66124 function kib(a) {
66125 if (a.a.Ob()) {
66126 return true;
66127 }
66128 if (a.a != a.d) {
66129 return false;
66130 }
66131 a.a = new orb(a.e.f);
66132 return a.a.Ob();
66133 }
66134 function Gkb(a, b) {
66135 var c2, d;
66136 c2 = b.Pc();
66137 d = c2.length;
66138 if (d == 0) {
66139 return false;
66140 }
66141 bCb(a.c, a.c.length, c2);
66142 return true;
66143 }
66144 function Vyb(a, b, c2) {
66145 var d, e;
66146 for (e = b.vc().Kc(); e.Ob(); ) {
66147 d = BD(e.Pb(), 42);
66148 a.yc(d.cd(), d.dd(), c2);
66149 }
66150 return a;
66151 }
66152 function yac(a, b) {
66153 var c2, d;
66154 for (d = new olb(a.b); d.a < d.c.c.length; ) {
66155 c2 = BD(mlb(d), 70);
66156 yNb(c2, (wtc(), Ssc), b);
66157 }
66158 }
66159 function FZc(a, b, c2) {
66160 var d, e;
66161 for (e = new olb(a.b); e.a < e.c.c.length; ) {
66162 d = BD(mlb(e), 33);
66163 bld(d, d.i + b, d.j + c2);
66164 }
66165 }
66166 function Nb(a, b) {
66167 if (!a) {
66168 throw vbb(new Wdb(hc("value already present: %s", OC(GC(SI, 1), Uhe, 1, 5, [b]))));
66169 }
66170 }
66171 function mEb(a, b) {
66172 if (!a || !b || a == b) {
66173 return false;
66174 }
66175 return CDb(a.d.c, b.d.c + b.d.b) && CDb(b.d.c, a.d.c + a.d.b);
66176 }
66177 function xyb() {
66178 oyb();
66179 if (lyb) {
66180 return new wyb(null);
66181 }
66182 return fyb(hyb(), "com.google.common.base.Strings");
66183 }
66184 function J2c(a, b) {
66185 var c2;
66186 c2 = Pu(b.a.gc());
66187 MAb(VAb(new YAb(null, new Kub(b, 1)), a.i), new W2c(a, c2));
66188 return c2;
66189 }
66190 function Hnd(a) {
66191 var b, c2;
66192 c2 = (b = new BYd(), b);
66193 pnd(c2, "T");
66194 wtd((!a.d && (a.d = new K4d(u5, a, 11)), a.d), c2);
66195 return c2;
66196 }
66197 function Etd(a) {
66198 var b, c2, d, e;
66199 b = 1;
66200 for (c2 = 0, e = a.gc(); c2 < e; ++c2) {
66201 d = a.ki(c2);
66202 b = 31 * b + (d == null ? 0 : tb(d));
66203 }
66204 return b;
66205 }
66206 function Wi(a, b, c2, d) {
66207 var e;
66208 Pb(b, a.e.Hd().gc());
66209 Pb(c2, a.c.Hd().gc());
66210 e = a.a[b][c2];
66211 NC(a.a[b], c2, d);
66212 return e;
66213 }
66214 function OC(a, b, c2, d, e) {
66215 e.gm = a;
66216 e.hm = b;
66217 e.im = gcb;
66218 e.__elementTypeId$ = c2;
66219 e.__elementTypeCategory$ = d;
66220 return e;
66221 }
66222 function p6c(a, b, c2, d, e) {
66223 i6c();
66224 return $wnd.Math.min(A6c(a, b, c2, d, e), A6c(c2, d, a, b, V6c(new f7c(e.a, e.b))));
66225 }
66226 function gbc() {
66227 gbc = ccb;
66228 fbc = new ibc(ane, 0);
66229 dbc = new ibc(Gne, 1);
66230 ebc = new ibc(Hne, 2);
66231 cbc = new ibc("BOTH", 3);
66232 }
66233 function Ajc() {
66234 Ajc = ccb;
66235 wjc = new Bjc(gle, 0);
66236 xjc = new Bjc(jle, 1);
66237 yjc = new Bjc(kle, 2);
66238 zjc = new Bjc("TOP", 3);
66239 }
66240 function lWb() {
66241 lWb = ccb;
66242 hWb = new oWb("Q1", 0);
66243 kWb = new oWb("Q4", 1);
66244 iWb = new oWb("Q2", 2);
66245 jWb = new oWb("Q3", 3);
66246 }
66247 function LBc() {
66248 LBc = ccb;
66249 JBc = new MBc("OFF", 0);
66250 KBc = new MBc("SINGLE_EDGE", 1);
66251 IBc = new MBc("MULTI_EDGE", 2);
66252 }
66253 function a1c() {
66254 a1c = ccb;
66255 _0c = new c1c("MINIMUM_SPANNING_TREE", 0);
66256 $0c = new c1c("MAXIMUM_SPANNING_TREE", 1);
66257 }
66258 function Y1c() {
66259 Y1c = ccb;
66260 W1c = new k2c();
66261 V1c = new f2c();
66262 }
66263 function URc(a) {
66264 var b, c2, d;
66265 b = new Psb();
66266 for (d = Jsb(a.d, 0); d.b != d.d.c; ) {
66267 c2 = BD(Xsb(d), 188);
66268 Dsb(b, c2.c);
66269 }
66270 return b;
66271 }
66272 function dVc(a) {
66273 var b, c2, d, e;
66274 e = new Rkb();
66275 for (d = a.Kc(); d.Ob(); ) {
66276 c2 = BD(d.Pb(), 33);
66277 b = gVc(c2);
66278 Gkb(e, b);
66279 }
66280 return e;
66281 }
66282 function xcc(a) {
66283 var b;
66284 PZb(a, true);
66285 b = _ie;
66286 wNb(a, (Nyc(), cyc)) && (b += BD(vNb(a, cyc), 19).a);
66287 yNb(a, cyc, meb(b));
66288 }
66289 function q1c(a, b, c2) {
66290 var d;
66291 Uhb(a.a);
66292 Hkb(c2.i, new B1c(a));
66293 d = new hDb(BD(Ohb(a.a, b.b), 65));
66294 p1c(a, d, b);
66295 c2.f = d;
66296 }
66297 function QLc(a, b) {
66298 var c2, d;
66299 c2 = a.c;
66300 d = b.e[a.p];
66301 if (d < c2.a.c.length - 1) {
66302 return BD(Ikb(c2.a, d + 1), 10);
66303 }
66304 return null;
66305 }
66306 function rr(a, b) {
66307 var c2, d;
66308 Rb(b, "predicate");
66309 for (d = 0; a.Ob(); d++) {
66310 c2 = a.Pb();
66311 if (b.Lb(c2)) {
66312 return d;
66313 }
66314 }
66315 return -1;
66316 }
66317 function ZEd(a, b) {
66318 var c2, d;
66319 d = 0;
66320 if (a < 64 && a <= b) {
66321 b = b < 64 ? b : 63;
66322 for (c2 = a; c2 <= b; c2++) {
66323 d = Mbb(d, Nbb(1, c2));
66324 }
66325 }
66326 return d;
66327 }
66328 function pmb(a) {
66329 mmb();
66330 var b, c2, d;
66331 d = 0;
66332 for (c2 = a.Kc(); c2.Ob(); ) {
66333 b = c2.Pb();
66334 d = d + (b != null ? tb(b) : 0);
66335 d = d | 0;
66336 }
66337 return d;
66338 }
66339 function etd(a) {
66340 var b, c2;
66341 c2 = (Fhd(), b = new rmd(), b);
66342 !!a && wtd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), c2);
66343 return c2;
66344 }
66345 function TA(a) {
66346 var b;
66347 b = new PA();
66348 b.a = a;
66349 b.b = RA(a);
66350 b.c = KC(ZI, nie, 2, 2, 6, 1);
66351 b.c[0] = SA(a);
66352 b.c[1] = SA(a);
66353 return b;
66354 }
66355 function fkd(a, b) {
66356 switch (b) {
66357 case 0:
66358 !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0));
66359 a.o.c.$b();
66360 return;
66361 }
66362 Cid(a, b);
66363 }
66364 function jEb(a, b, c2) {
66365 switch (c2.g) {
66366 case 2:
66367 a.b = b;
66368 break;
66369 case 1:
66370 a.c = b;
66371 break;
66372 case 4:
66373 a.d = b;
66374 break;
66375 case 3:
66376 a.a = b;
66377 }
66378 }
66379 function sbd(a) {
66380 switch (a.g) {
66381 case 1:
66382 return obd;
66383 case 2:
66384 return nbd;
66385 case 3:
66386 return pbd;
66387 default:
66388 return qbd;
66389 }
66390 }
66391 function Zac(a) {
66392 switch (BD(vNb(a, (Nyc(), mxc)), 163).g) {
66393 case 2:
66394 case 4:
66395 return true;
66396 default:
66397 return false;
66398 }
66399 }
66400 function Trc() {
66401 Trc = ccb;
66402 Src = as((Orc(), OC(GC(PW, 1), Kie, 256, 0, [Frc, Hrc, Irc, Jrc, Krc, Lrc, Nrc, Erc, Grc, Mrc])));
66403 }
66404 function Ndd() {
66405 Ndd = ccb;
66406 Mdd = as((Idd(), OC(GC(J1, 1), Kie, 259, 0, [Bdd, Ddd, Add, Edd, Fdd, Hdd, Gdd, Cdd, zdd])));
66407 }
66408 function wUc() {
66409 wUc = ccb;
66410 vUc = e3c(b3c(b3c(g3c(e3c(new j3c(), (yRc(), vRc), (qSc(), pSc)), wRc), mSc), nSc), xRc, oSc);
66411 }
66412 function Gqc() {
66413 Gqc = ccb;
66414 Eqc = new Hqc(ane, 0);
66415 Dqc = new Hqc("INCOMING_ONLY", 1);
66416 Fqc = new Hqc("OUTGOING_ONLY", 2);
66417 }
66418 function rC() {
66419 rC = ccb;
66420 qC = { "boolean": sC, "number": tC, "string": vC, "object": uC, "function": uC, "undefined": wC };
66421 }
66422 function Whb(a, b) {
66423 mCb(a >= 0, "Negative initial capacity");
66424 mCb(b >= 0, "Non-positive load factor");
66425 Uhb(this);
66426 }
66427 function _Ed(a, b, c2) {
66428 if (a >= 128)
66429 return false;
66430 return a < 64 ? Kbb(xbb(Nbb(1, a), c2), 0) : Kbb(xbb(Nbb(1, a - 64), b), 0);
66431 }
66432 function bOb(a, b) {
66433 if (!a || !b || a == b) {
66434 return false;
66435 }
66436 return Jy(a.b.c, b.b.c + b.b.b) < 0 && Jy(b.b.c, a.b.c + a.b.b) < 0;
66437 }
66438 function I4b(a) {
66439 var b, c2, d;
66440 c2 = a.n;
66441 d = a.o;
66442 b = a.d;
66443 return new J6c(c2.a - b.b, c2.b - b.d, d.a + (b.b + b.c), d.b + (b.d + b.a));
66444 }
66445 function $ic(a) {
66446 var b, c2, d, e;
66447 for (c2 = a.a, d = 0, e = c2.length; d < e; ++d) {
66448 b = c2[d];
66449 djc(a, b, (Ucd(), Rcd));
66450 djc(a, b, Acd);
66451 }
66452 }
66453 function Uy(a) {
66454 var b, c2, d, e;
66455 for (b = (a.j == null && (a.j = (Rz(), e = Qz.ce(a), Tz(e))), a.j), c2 = 0, d = b.length; c2 < d; ++c2)
66456 ;
66457 }
66458 function hD(a) {
66459 var b, c2, d;
66460 b = ~a.l + 1 & Eje;
66461 c2 = ~a.m + (b == 0 ? 1 : 0) & Eje;
66462 d = ~a.h + (b == 0 && c2 == 0 ? 1 : 0) & Fje;
66463 return TC(b, c2, d);
66464 }
66465 function C$c(a, b) {
66466 var c2, d;
66467 c2 = BD(BD(Ohb(a.g, b.a), 46).a, 65);
66468 d = BD(BD(Ohb(a.g, b.b), 46).a, 65);
66469 return _Nb(c2, d);
66470 }
66471 function xtd(a, b, c2) {
66472 var d;
66473 d = a.gc();
66474 if (b > d)
66475 throw vbb(new Cyd(b, d));
66476 a.hi() && (c2 = Dtd(a, c2));
66477 return a.Vh(b, c2);
66478 }
66479 function xNb(a, b, c2) {
66480 return c2 == null ? (!a.q && (a.q = new Lqb()), Thb(a.q, b)) : (!a.q && (a.q = new Lqb()), Rhb(a.q, b, c2)), a;
66481 }
66482 function yNb(a, b, c2) {
66483 c2 == null ? (!a.q && (a.q = new Lqb()), Thb(a.q, b)) : (!a.q && (a.q = new Lqb()), Rhb(a.q, b, c2));
66484 return a;
66485 }
66486 function TQb(a) {
66487 var b, c2;
66488 c2 = new kRb();
66489 tNb(c2, a);
66490 yNb(c2, (HSb(), FSb), a);
66491 b = new Lqb();
66492 VQb(a, c2, b);
66493 UQb(a, c2, b);
66494 return c2;
66495 }
66496 function j6c(a) {
66497 i6c();
66498 var b, c2, d;
66499 c2 = KC(m1, nie, 8, 2, 0, 1);
66500 d = 0;
66501 for (b = 0; b < 2; b++) {
66502 d += 0.5;
66503 c2[b] = r6c(d, a);
66504 }
66505 return c2;
66506 }
66507 function Mic(a, b) {
66508 var c2, d, e, f2;
66509 c2 = false;
66510 d = a.a[b].length;
66511 for (f2 = 0; f2 < d - 1; f2++) {
66512 e = f2 + 1;
66513 c2 = c2 | Nic(a, b, f2, e);
66514 }
66515 return c2;
66516 }
66517 function nNb(a, b, c2, d, e) {
66518 var f2, g;
66519 for (g = c2; g <= e; g++) {
66520 for (f2 = b; f2 <= d; f2++) {
66521 YMb(a, f2, g) || aNb(a, f2, g, true, false);
66522 }
66523 }
66524 }
66525 function rNd(a, b) {
66526 this.b = a;
66527 nNd.call(this, (BD(qud(ZKd((NFd(), MFd).o), 10), 18), b.i), b.g);
66528 this.a = (NKd(), MKd);
66529 }
66530 function hj(a, b) {
66531 this.c = a;
66532 this.d = b;
66533 this.b = this.d / this.c.c.Hd().gc() | 0;
66534 this.a = this.d % this.c.c.Hd().gc();
66535 }
66536 function jdb() {
66537 this.o = null;
66538 this.k = null;
66539 this.j = null;
66540 this.d = null;
66541 this.b = null;
66542 this.n = null;
66543 this.a = null;
66544 }
66545 function fB(a, b, c2) {
66546 this.q = new $wnd.Date();
66547 this.q.setFullYear(a + nje, b, c2);
66548 this.q.setHours(0, 0, 0, 0);
66549 YA(this, 0);
66550 }
66551 function tAc() {
66552 tAc = ccb;
66553 rAc = new uAc(ane, 0);
66554 qAc = new uAc("NODES_AND_EDGES", 1);
66555 sAc = new uAc("PREFER_EDGES", 2);
66556 }
66557 function RA(a) {
66558 var b;
66559 if (a == 0) {
66560 return "Etc/GMT";
66561 }
66562 if (a < 0) {
66563 a = -a;
66564 b = "Etc/GMT-";
66565 } else {
66566 b = "Etc/GMT+";
66567 }
66568 return b + UA(a);
66569 }
66570 function geb(a) {
66571 var b;
66572 if (a < 0) {
66573 return Rie;
66574 } else if (a == 0) {
66575 return 0;
66576 } else {
66577 for (b = Iie; (b & a) == 0; b >>= 1)
66578 ;
66579 return b;
66580 }
66581 }
66582 function $C(a) {
66583 var b, c2;
66584 c2 = heb(a.h);
66585 if (c2 == 32) {
66586 b = heb(a.m);
66587 return b == 32 ? heb(a.l) + 32 : b + 20 - 10;
66588 } else {
66589 return c2 - 12;
66590 }
66591 }
66592 function bkb(a) {
66593 var b;
66594 b = a.a[a.b];
66595 if (b == null) {
66596 return null;
66597 }
66598 NC(a.a, a.b, null);
66599 a.b = a.b + 1 & a.a.length - 1;
66600 return b;
66601 }
66602 function EDc(a) {
66603 var b, c2;
66604 b = a.t - a.k[a.o.p] * a.d + a.j[a.o.p] > a.f;
66605 c2 = a.u + a.e[a.o.p] * a.d > a.f * a.s * a.d;
66606 return b || c2;
66607 }
66608 function Iwb(a, b, c2) {
66609 var d, e;
66610 d = new exb(b, c2);
66611 e = new fxb();
66612 a.b = Gwb(a, a.b, d, e);
66613 e.b || ++a.c;
66614 a.b.b = false;
66615 return e.d;
66616 }
66617 function djc(a, b, c2) {
66618 var d, e, f2, g;
66619 g = CHc(b, c2);
66620 f2 = 0;
66621 for (e = g.Kc(); e.Ob(); ) {
66622 d = BD(e.Pb(), 11);
66623 Rhb(a.c, d, meb(f2++));
66624 }
66625 }
66626 function xVb(a) {
66627 var b, c2;
66628 for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
66629 b = BD(mlb(c2), 81);
66630 b.g.c = -b.g.c - b.g.b;
66631 }
66632 sVb(a);
66633 }
66634 function XDb(a) {
66635 var b, c2;
66636 for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
66637 b = BD(mlb(c2), 57);
66638 b.d.c = -b.d.c - b.d.b;
66639 }
66640 RDb(a);
66641 }
66642 function AUd(a) {
66643 var b;
66644 if (!a.c || (a.Bb & 1) == 0 && (a.c.Db & 64) != 0) {
66645 b = wId(a);
66646 JD(b, 88) && (a.c = BD(b, 26));
66647 }
66648 return a.c;
66649 }
66650 function ZC(a) {
66651 var b, c2, d;
66652 b = ~a.l + 1 & Eje;
66653 c2 = ~a.m + (b == 0 ? 1 : 0) & Eje;
66654 d = ~a.h + (b == 0 && c2 == 0 ? 1 : 0) & Fje;
66655 a.l = b;
66656 a.m = c2;
66657 a.h = d;
66658 }
66659 function l7c(a) {
66660 var b, c2, d, e, f2;
66661 b = new d7c();
66662 for (d = a, e = 0, f2 = d.length; e < f2; ++e) {
66663 c2 = d[e];
66664 b.a += c2.a;
66665 b.b += c2.b;
66666 }
66667 return b;
66668 }
66669 function nmb(a, b) {
66670 mmb();
66671 var c2, d, e, f2, g;
66672 g = false;
66673 for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
66674 c2 = d[e];
66675 g = g | a.Fc(c2);
66676 }
66677 return g;
66678 }
66679 function w6c(a) {
66680 i6c();
66681 var b, c2;
66682 c2 = -17976931348623157e292;
66683 for (b = 0; b < a.length; b++) {
66684 a[b] > c2 && (c2 = a[b]);
66685 }
66686 return c2;
66687 }
66688 function SHc(a, b, c2) {
66689 var d;
66690 d = new Rkb();
66691 UHc(a, b, d, (Ucd(), zcd), true, false);
66692 UHc(a, c2, d, Tcd, false, false);
66693 return d;
66694 }
66695 function crd(a, b, c2) {
66696 var d, e, f2, g;
66697 f2 = null;
66698 g = b;
66699 e = Ypd(g, "labels");
66700 d = new Hrd(a, c2);
66701 f2 = (Dqd(d.a, d.b, e), e);
66702 return f2;
66703 }
66704 function j1d(a, b, c2, d) {
66705 var e;
66706 e = r1d(a, b, c2, d);
66707 if (!e) {
66708 e = i1d(a, c2, d);
66709 if (!!e && !e1d(a, b, e)) {
66710 return null;
66711 }
66712 }
66713 return e;
66714 }
66715 function m1d(a, b, c2, d) {
66716 var e;
66717 e = s1d(a, b, c2, d);
66718 if (!e) {
66719 e = l1d(a, c2, d);
66720 if (!!e && !e1d(a, b, e)) {
66721 return null;
66722 }
66723 }
66724 return e;
66725 }
66726 function Xb(a, b) {
66727 var c2;
66728 for (c2 = 0; c2 < a.a.a.length; c2++) {
66729 if (!BD($lb(a.a, c2), 169).Lb(b)) {
66730 return false;
66731 }
66732 }
66733 return true;
66734 }
66735 function Cb(a, b, c2) {
66736 Qb(b);
66737 if (c2.Ob()) {
66738 Mfb(b, Fb(c2.Pb()));
66739 while (c2.Ob()) {
66740 Mfb(b, a.a);
66741 Mfb(b, Fb(c2.Pb()));
66742 }
66743 }
66744 return b;
66745 }
66746 function qmb(a) {
66747 mmb();
66748 var b, c2, d;
66749 d = 1;
66750 for (c2 = a.Kc(); c2.Ob(); ) {
66751 b = c2.Pb();
66752 d = 31 * d + (b != null ? tb(b) : 0);
66753 d = d | 0;
66754 }
66755 return d;
66756 }
66757 function WC(a, b, c2, d, e) {
66758 var f2;
66759 f2 = lD(a, b);
66760 c2 && ZC(f2);
66761 if (e) {
66762 a = YC(a, b);
66763 d ? QC = hD(a) : QC = TC(a.l, a.m, a.h);
66764 }
66765 return f2;
66766 }
66767 function Xzb(b, c2) {
66768 var d;
66769 try {
66770 c2.Vd();
66771 } catch (a) {
66772 a = ubb(a);
66773 if (JD(a, 78)) {
66774 d = a;
66775 b.c[b.c.length] = d;
66776 } else
66777 throw vbb(a);
66778 }
66779 }
66780 function jRb(a, b, c2) {
66781 var d, e;
66782 if (JD(b, 144) && !!c2) {
66783 d = BD(b, 144);
66784 e = c2;
66785 return a.a[d.b][e.b] + a.a[e.b][d.b];
66786 }
66787 return 0;
66788 }
66789 function xld(a, b) {
66790 switch (b) {
66791 case 7:
66792 return !!a.e && a.e.i != 0;
66793 case 8:
66794 return !!a.d && a.d.i != 0;
66795 }
66796 return Ykd(a, b);
66797 }
66798 function YQb(a, b) {
66799 switch (b.g) {
66800 case 0:
66801 JD(a.b, 631) || (a.b = new xRb());
66802 break;
66803 case 1:
66804 JD(a.b, 632) || (a.b = new DRb());
66805 }
66806 }
66807 function Ghe(a, b) {
66808 while (a.g == null && !a.c ? Uud(a) : a.g == null || a.i != 0 && BD(a.g[a.i - 1], 47).Ob()) {
66809 Ord(b, Vud(a));
66810 }
66811 }
66812 function kic(a, b, c2) {
66813 a.g = qic(a, b, (Ucd(), zcd), a.b);
66814 a.d = qic(a, c2, zcd, a.b);
66815 if (a.g.c == 0 || a.d.c == 0) {
66816 return;
66817 }
66818 nic(a);
66819 }
66820 function lic(a, b, c2) {
66821 a.g = qic(a, b, (Ucd(), Tcd), a.j);
66822 a.d = qic(a, c2, Tcd, a.j);
66823 if (a.g.c == 0 || a.d.c == 0) {
66824 return;
66825 }
66826 nic(a);
66827 }
66828 function $yc(a, b, c2) {
66829 return !WAb(JAb(new YAb(null, new Kub(a.c, 16)), new Xxb(new dfd(b, c2)))).sd((EAb(), DAb));
66830 }
66831 function KAb(a) {
66832 var b;
66833 Tzb(a);
66834 b = new NBb();
66835 if (a.a.sd(b)) {
66836 return Atb(), new Ftb(uCb(b.a));
66837 }
66838 return Atb(), Atb(), ztb;
66839 }
66840 function nA(a) {
66841 var b;
66842 if (a.b <= 0) {
66843 return false;
66844 }
66845 b = hfb("MLydhHmsSDkK", wfb(bfb(a.c, 0)));
66846 return b > 1 || b >= 0 && a.b < 3;
66847 }
66848 function w7c(a) {
66849 var b, c2, d;
66850 b = new s7c();
66851 for (d = Jsb(a, 0); d.b != d.d.c; ) {
66852 c2 = BD(Xsb(d), 8);
66853 St(b, 0, new g7c(c2));
66854 }
66855 return b;
66856 }
66857 function qVb(a) {
66858 var b, c2;
66859 for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
66860 b = BD(mlb(c2), 81);
66861 b.f.$b();
66862 }
66863 LVb(a.b, a);
66864 rVb(a);
66865 }
66866 function tb(a) {
66867 return ND(a) ? LCb(a) : LD(a) ? Hdb(a) : KD(a) ? (uCb(a), a) ? 1231 : 1237 : ID(a) ? a.Hb() : MC(a) ? FCb(a) : rz(a);
66868 }
66869 function rb(a) {
66870 return ND(a) ? ZI : LD(a) ? BI : KD(a) ? wI : ID(a) ? a.gm : MC(a) ? a.gm : a.gm || Array.isArray(a) && GC(PH, 1) || PH;
66871 }
66872 function j_c(a) {
66873 switch (a.g) {
66874 case 0:
66875 return new Q1c();
66876 default:
66877 throw vbb(new Wdb(Mre + (a.f != null ? a.f : "" + a.g)));
66878 }
66879 }
66880 function S0c(a) {
66881 switch (a.g) {
66882 case 0:
66883 return new k1c();
66884 default:
66885 throw vbb(new Wdb(Mre + (a.f != null ? a.f : "" + a.g)));
66886 }
66887 }
66888 function ekd(a, b, c2) {
66889 switch (b) {
66890 case 0:
66891 !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0));
66892 cId(a.o, c2);
66893 return;
66894 }
66895 yid(a, b, c2);
66896 }
66897 function XRc(a, b, c2) {
66898 this.g = a;
66899 this.e = new d7c();
66900 this.f = new d7c();
66901 this.d = new Psb();
66902 this.b = new Psb();
66903 this.a = b;
66904 this.c = c2;
66905 }
66906 function PZc(a, b, c2, d) {
66907 this.b = new Rkb();
66908 this.n = new Rkb();
66909 this.i = d;
66910 this.j = c2;
66911 this.s = a;
66912 this.t = b;
66913 this.r = 0;
66914 this.d = 0;
66915 }
66916 function nib(a) {
66917 this.e = a;
66918 this.d = new Irb(this.e.g);
66919 this.a = this.d;
66920 this.b = kib(this);
66921 this.$modCount = a.$modCount;
66922 }
66923 function Pr(a) {
66924 while (!a.d || !a.d.Ob()) {
66925 if (!!a.b && !akb(a.b)) {
66926 a.d = BD(fkb(a.b), 47);
66927 } else {
66928 return null;
66929 }
66930 }
66931 return a.d;
66932 }
66933 function Xyc(a) {
66934 Ekb(a.c, (Y1c(), W1c));
66935 if (Ky(a.a, Edb(ED(Ksd((dzc(), bzc)))))) {
66936 return new Zed();
66937 }
66938 return new _ed(a);
66939 }
66940 function bRc(a) {
66941 switch (a.g) {
66942 case 1:
66943 return Sqe;
66944 default:
66945 case 2:
66946 return 0;
66947 case 3:
66948 return cme;
66949 case 4:
66950 return Tqe;
66951 }
66952 }
66953 function Ife() {
66954 wfe();
66955 var a;
66956 if (dfe)
66957 return dfe;
66958 a = Afe(Kfe("M", true));
66959 a = Bfe(Kfe("M", false), a);
66960 dfe = a;
66961 return dfe;
66962 }
66963 function Awb(a, b) {
66964 var c2, d, e;
66965 e = a.b;
66966 while (e) {
66967 c2 = a.a.ue(b, e.d);
66968 if (c2 == 0) {
66969 return e;
66970 }
66971 d = c2 < 0 ? 0 : 1;
66972 e = e.a[d];
66973 }
66974 return null;
66975 }
66976 function Tyb(a, b, c2) {
66977 var d, e;
66978 d = (Bcb(), _Pb(c2) ? true : false);
66979 e = BD(b.xc(d), 15);
66980 if (!e) {
66981 e = new Rkb();
66982 b.zc(d, e);
66983 }
66984 e.Fc(c2);
66985 }
66986 function dYc(a, b) {
66987 var c2, d;
66988 c2 = BD(hkd(a, (lZc(), UYc)), 19).a;
66989 d = BD(hkd(b, UYc), 19).a;
66990 return c2 == d ? -1 : c2 < d ? -1 : c2 > d ? 1 : 0;
66991 }
66992 function NYb(a, b) {
66993 if (OYb(a, b)) {
66994 Rc(a.b, BD(vNb(b, (wtc(), Esc)), 21), b);
66995 Dsb(a.a, b);
66996 return true;
66997 } else {
66998 return false;
66999 }
67000 }
67001 function d3b(a) {
67002 var b, c2;
67003 b = BD(vNb(a, (wtc(), gtc)), 10);
67004 if (b) {
67005 c2 = b.c;
67006 Lkb(c2.a, b);
67007 c2.a.c.length == 0 && Lkb(Q_b(b).b, c2);
67008 }
67009 }
67010 function syb(a) {
67011 if (lyb) {
67012 return KC(qL, tke, 572, 0, 0, 1);
67013 }
67014 return BD(Qkb(a.a, KC(qL, tke, 572, a.a.c.length, 0, 1)), 842);
67015 }
67016 function mn(a, b, c2, d) {
67017 Vm();
67018 return new wx(OC(GC(CK, 1), zie, 42, 0, [(Wj(a, b), new Wo(a, b)), (Wj(c2, d), new Wo(c2, d))]));
67019 }
67020 function Dnd(a, b, c2) {
67021 var d, e;
67022 e = (d = new SSd(), d);
67023 $nd(e, b, c2);
67024 wtd((!a.q && (a.q = new cUd(n5, a, 11, 10)), a.q), e);
67025 return e;
67026 }
67027 function Zmd(a) {
67028 var b, c2, d, e;
67029 e = icb(Rmd, a);
67030 c2 = e.length;
67031 d = KC(ZI, nie, 2, c2, 6, 1);
67032 for (b = 0; b < c2; ++b) {
67033 d[b] = e[b];
67034 }
67035 return d;
67036 }
67037 function l4c(a, b) {
67038 var c2, d, e, f2, g;
67039 for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
67040 c2 = d[e];
67041 g = new v4c(a);
67042 c2.Qe(g);
67043 q4c(g);
67044 }
67045 Uhb(a.f);
67046 }
67047 function hw(a, b) {
67048 var c2;
67049 if (b === a) {
67050 return true;
67051 }
67052 if (JD(b, 224)) {
67053 c2 = BD(b, 224);
67054 return pb(a.Zb(), c2.Zb());
67055 }
67056 return false;
67057 }
67058 function aub(a, b) {
67059 var c2;
67060 if (b * 2 + 1 >= a.b.c.length) {
67061 return;
67062 }
67063 aub(a, 2 * b + 1);
67064 c2 = 2 * b + 2;
67065 c2 < a.b.c.length && aub(a, c2);
67066 bub(a, b);
67067 }
67068 function Ss(a, b, c2) {
67069 var d, e;
67070 this.g = a;
67071 this.c = b;
67072 this.a = this;
67073 this.d = this;
67074 e = Kp(c2);
67075 d = KC(BG, Gie, 330, e, 0, 1);
67076 this.b = d;
67077 }
67078 function whb(a, b, c2) {
67079 var d;
67080 for (d = c2 - 1; d >= 0 && a[d] === b[d]; d--)
67081 ;
67082 return d < 0 ? 0 : Gbb(xbb(a[d], Yje), xbb(b[d], Yje)) ? -1 : 1;
67083 }
67084 function UFc(a, b) {
67085 var c2, d;
67086 for (d = Jsb(a, 0); d.b != d.d.c; ) {
67087 c2 = BD(Xsb(d), 214);
67088 if (c2.e.length > 0) {
67089 b.td(c2);
67090 c2.i && _Fc(c2);
67091 }
67092 }
67093 }
67094 function nzd(a, b) {
67095 var c2, d;
67096 d = BD(Ajd(a.a, 4), 126);
67097 c2 = KC($3, hve, 415, b, 0, 1);
67098 d != null && $fb(d, 0, c2, 0, d.length);
67099 return c2;
67100 }
67101 function JEd(a, b) {
67102 var c2;
67103 c2 = new NEd((a.f & 256) != 0, a.i, a.a, a.d, (a.f & 16) != 0, a.j, a.g, b);
67104 a.e != null || (c2.c = a);
67105 return c2;
67106 }
67107 function Dc(a, b) {
67108 var c2, d;
67109 for (d = a.Zb().Cc().Kc(); d.Ob(); ) {
67110 c2 = BD(d.Pb(), 14);
67111 if (c2.Hc(b)) {
67112 return true;
67113 }
67114 }
67115 return false;
67116 }
67117 function oNb(a, b, c2, d, e) {
67118 var f2, g;
67119 for (g = c2; g <= e; g++) {
67120 for (f2 = b; f2 <= d; f2++) {
67121 if (YMb(a, f2, g)) {
67122 return true;
67123 }
67124 }
67125 }
67126 return false;
67127 }
67128 function Tt(a, b, c2) {
67129 var d, e, f2, g;
67130 uCb(c2);
67131 g = false;
67132 f2 = a.Zc(b);
67133 for (e = c2.Kc(); e.Ob(); ) {
67134 d = e.Pb();
67135 f2.Rb(d);
67136 g = true;
67137 }
67138 return g;
67139 }
67140 function Dv(a, b) {
67141 var c2;
67142 if (a === b) {
67143 return true;
67144 } else if (JD(b, 83)) {
67145 c2 = BD(b, 83);
67146 return Ax(Wm(a), c2.vc());
67147 }
67148 return false;
67149 }
67150 function Nhb(a, b, c2) {
67151 var d, e;
67152 for (e = c2.Kc(); e.Ob(); ) {
67153 d = BD(e.Pb(), 42);
67154 if (a.re(b, d.dd())) {
67155 return true;
67156 }
67157 }
67158 return false;
67159 }
67160 function Hic(a, b, c2) {
67161 if (!a.d[b.p][c2.p]) {
67162 Gic(a, b, c2);
67163 a.d[b.p][c2.p] = true;
67164 a.d[c2.p][b.p] = true;
67165 }
67166 return a.a[b.p][c2.p];
67167 }
67168 function Itd(a, b) {
67169 if (!a.ai() && b == null) {
67170 throw vbb(new Wdb("The 'no null' constraint is violated"));
67171 }
67172 return b;
67173 }
67174 function $Jd(a, b) {
67175 if (a.D == null && a.B != null) {
67176 a.D = a.B;
67177 a.B = null;
67178 }
67179 jKd(a, b == null ? null : (uCb(b), b));
67180 !!a.C && a.yk(null);
67181 }
67182 function XHc(a, b) {
67183 var c2;
67184 if (!a || a == b || !wNb(b, (wtc(), Psc))) {
67185 return false;
67186 }
67187 c2 = BD(vNb(b, (wtc(), Psc)), 10);
67188 return c2 != a;
67189 }
67190 function b4d(a) {
67191 switch (a.i) {
67192 case 2: {
67193 return true;
67194 }
67195 case 1: {
67196 return false;
67197 }
67198 case -1: {
67199 ++a.c;
67200 }
67201 default: {
67202 return a.pl();
67203 }
67204 }
67205 }
67206 function c4d(a) {
67207 switch (a.i) {
67208 case -2: {
67209 return true;
67210 }
67211 case -1: {
67212 return false;
67213 }
67214 case 1: {
67215 --a.c;
67216 }
67217 default: {
67218 return a.ql();
67219 }
67220 }
67221 }
67222 function Xdb(a) {
67223 Zy.call(this, "The given string does not match the expected format for individual spacings.", a);
67224 }
67225 function pgd() {
67226 pgd = ccb;
67227 mgd = new qgd("ELK", 0);
67228 ngd = new qgd("JSON", 1);
67229 lgd = new qgd("DOT", 2);
67230 ogd = new qgd("SVG", 3);
67231 }
67232 function pWc() {
67233 pWc = ccb;
67234 mWc = new rWc(ane, 0);
67235 nWc = new rWc("RADIAL_COMPACTION", 1);
67236 oWc = new rWc("WEDGE_COMPACTION", 2);
67237 }
67238 function Fyb() {
67239 Fyb = ccb;
67240 Cyb = new Gyb("CONCURRENT", 0);
67241 Dyb = new Gyb("IDENTITY_FINISH", 1);
67242 Eyb = new Gyb("UNORDERED", 2);
67243 }
67244 function nPb() {
67245 nPb = ccb;
67246 kPb = (cPb(), bPb);
67247 jPb = new Nsd(Tle, kPb);
67248 iPb = new Lsd(Ule);
67249 lPb = new Lsd(Vle);
67250 mPb = new Lsd(Wle);
67251 }
67252 function Occ() {
67253 Occ = ccb;
67254 Mcc = new Zcc();
67255 Ncc = new _cc();
67256 Lcc = new bdc();
67257 Kcc = new fdc();
67258 Jcc = new jdc();
67259 Icc = (uCb(Jcc), new bpb());
67260 }
67261 function tBc() {
67262 tBc = ccb;
67263 qBc = new uBc("CONSERVATIVE", 0);
67264 rBc = new uBc("CONSERVATIVE_SOFT", 1);
67265 sBc = new uBc("SLOPPY", 2);
67266 }
67267 function Zad() {
67268 Zad = ccb;
67269 Xad = new q0b(15);
67270 Wad = new Osd((Y9c(), f9c), Xad);
67271 Yad = C9c;
67272 Sad = s8c;
67273 Tad = Y8c;
67274 Vad = _8c;
67275 Uad = $8c;
67276 }
67277 function o7c(a, b, c2) {
67278 var d, e, f2;
67279 d = new Psb();
67280 for (f2 = Jsb(c2, 0); f2.b != f2.d.c; ) {
67281 e = BD(Xsb(f2), 8);
67282 Dsb(d, new g7c(e));
67283 }
67284 Tt(a, b, d);
67285 }
67286 function r7c(a) {
67287 var b, c2, d;
67288 b = 0;
67289 d = KC(m1, nie, 8, a.b, 0, 1);
67290 c2 = Jsb(a, 0);
67291 while (c2.b != c2.d.c) {
67292 d[b++] = BD(Xsb(c2), 8);
67293 }
67294 return d;
67295 }
67296 function $Pd(a) {
67297 var b;
67298 b = (!a.a && (a.a = new cUd(g5, a, 9, 5)), a.a);
67299 if (b.i != 0) {
67300 return nQd(BD(qud(b, 0), 678));
67301 }
67302 return null;
67303 }
67304 function Ly(a, b) {
67305 var c2;
67306 c2 = wbb(a, b);
67307 if (Gbb(Vbb(a, b), 0) | Ebb(Vbb(a, c2), 0)) {
67308 return c2;
67309 }
67310 return wbb(rie, Vbb(Pbb(c2, 63), 1));
67311 }
67312 function Yyc(a, b) {
67313 var c2;
67314 c2 = Ksd((dzc(), bzc)) != null && b.wg() != null ? Edb(ED(b.wg())) / Edb(ED(Ksd(bzc))) : 1;
67315 Rhb(a.b, b, c2);
67316 }
67317 function le(a, b) {
67318 var c2, d;
67319 c2 = BD(a.d.Bc(b), 14);
67320 if (!c2) {
67321 return null;
67322 }
67323 d = a.e.hc();
67324 d.Gc(c2);
67325 a.e.d -= c2.gc();
67326 c2.$b();
67327 return d;
67328 }
67329 function AHc(a, b) {
67330 var c2, d;
67331 d = a.c[b];
67332 if (d == 0) {
67333 return;
67334 }
67335 a.c[b] = 0;
67336 a.d -= d;
67337 c2 = b + 1;
67338 while (c2 < a.a.length) {
67339 a.a[c2] -= d;
67340 c2 += c2 & -c2;
67341 }
67342 }
67343 function rwb(a) {
67344 var b;
67345 b = a.a.c.length;
67346 if (b > 0) {
67347 return _vb(b - 1, a.a.c.length), Kkb(a.a, b - 1);
67348 } else {
67349 throw vbb(new Jpb());
67350 }
67351 }
67352 function C2c(a, b, c2) {
67353 if (b < 0) {
67354 throw vbb(new qcb(ese + b));
67355 }
67356 if (b < a.j.c.length) {
67357 Nkb(a.j, b, c2);
67358 } else {
67359 A2c(a, b);
67360 Ekb(a.j, c2);
67361 }
67362 }
67363 function oCb(a, b, c2) {
67364 if (a > b) {
67365 throw vbb(new Wdb(xke + a + yke + b));
67366 }
67367 if (a < 0 || b > c2) {
67368 throw vbb(new scb(xke + a + zke + b + oke + c2));
67369 }
67370 }
67371 function j5c(a) {
67372 if (!a.a || (a.a.i & 8) == 0) {
67373 throw vbb(new Zdb("Enumeration class expected for layout option " + a.f));
67374 }
67375 }
67376 function vud(a) {
67377 var b;
67378 ++a.j;
67379 if (a.i == 0) {
67380 a.g = null;
67381 } else if (a.i < a.g.length) {
67382 b = a.g;
67383 a.g = a.ri(a.i);
67384 $fb(b, 0, a.g, 0, a.i);
67385 }
67386 }
67387 function hkb(a, b) {
67388 var c2, d;
67389 c2 = a.a.length - 1;
67390 a.c = a.c - 1 & c2;
67391 while (b != a.c) {
67392 d = b + 1 & c2;
67393 NC(a.a, b, a.a[d]);
67394 b = d;
67395 }
67396 NC(a.a, a.c, null);
67397 }
67398 function ikb(a, b) {
67399 var c2, d;
67400 c2 = a.a.length - 1;
67401 while (b != a.b) {
67402 d = b - 1 & c2;
67403 NC(a.a, b, a.a[d]);
67404 b = d;
67405 }
67406 NC(a.a, a.b, null);
67407 a.b = a.b + 1 & c2;
67408 }
67409 function Fkb(a, b, c2) {
67410 var d, e;
67411 wCb(b, a.c.length);
67412 d = c2.Pc();
67413 e = d.length;
67414 if (e == 0) {
67415 return false;
67416 }
67417 bCb(a.c, b, d);
67418 return true;
67419 }
67420 function VEd(a) {
67421 var b, c2;
67422 if (a == null)
67423 return null;
67424 for (b = 0, c2 = a.length; b < c2; b++) {
67425 if (!gFd(a[b]))
67426 return a[b];
67427 }
67428 return null;
67429 }
67430 function grb(a, b, c2) {
67431 var d, e, f2, g;
67432 for (e = c2, f2 = 0, g = e.length; f2 < g; ++f2) {
67433 d = e[f2];
67434 if (a.b.re(b, d.cd())) {
67435 return d;
67436 }
67437 }
67438 return null;
67439 }
67440 function Hlb(a) {
67441 var b, c2, d, e, f2;
67442 f2 = 1;
67443 for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
67444 b = c2[d];
67445 f2 = 31 * f2 + (b != null ? tb(b) : 0);
67446 f2 = f2 | 0;
67447 }
67448 return f2;
67449 }
67450 function as(a) {
67451 var b, c2, d, e, f2;
67452 b = {};
67453 for (d = a, e = 0, f2 = d.length; e < f2; ++e) {
67454 c2 = d[e];
67455 b[":" + (c2.f != null ? c2.f : "" + c2.g)] = c2;
67456 }
67457 return b;
67458 }
67459 function gr(a) {
67460 var b;
67461 Qb(a);
67462 Mb(true, "numberToAdvance must be nonnegative");
67463 for (b = 0; b < 0 && Qr(a); b++) {
67464 Rr(a);
67465 }
67466 return b;
67467 }
67468 function eDc(a) {
67469 var b, c2, d;
67470 d = 0;
67471 for (c2 = new Sr(ur(a.a.Kc(), new Sq())); Qr(c2); ) {
67472 b = BD(Rr(c2), 17);
67473 b.c.i == b.d.i || ++d;
67474 }
67475 return d;
67476 }
67477 function HZb(a, b) {
67478 var c2, d, e;
67479 c2 = a;
67480 e = 0;
67481 do {
67482 if (c2 == b) {
67483 return e;
67484 }
67485 d = c2.e;
67486 if (!d) {
67487 throw vbb(new Vdb());
67488 }
67489 c2 = Q_b(d);
67490 ++e;
67491 } while (true);
67492 }
67493 function w$c(a, b) {
67494 var c2, d, e;
67495 e = b - a.f;
67496 for (d = new olb(a.d); d.a < d.c.c.length; ) {
67497 c2 = BD(mlb(d), 443);
67498 _Zc(c2, c2.e, c2.f + e);
67499 }
67500 a.f = b;
67501 }
67502 function aRc(a, b, c2) {
67503 if ($wnd.Math.abs(b - a) < Rqe || $wnd.Math.abs(c2 - a) < Rqe) {
67504 return true;
67505 }
67506 return b - a > Rqe ? a - c2 > Rqe : c2 - a > Rqe;
67507 }
67508 function pHb(a, b) {
67509 if (!a) {
67510 return 0;
67511 }
67512 if (b && !a.j) {
67513 return 0;
67514 }
67515 if (JD(a, 124)) {
67516 if (BD(a, 124).a.b == 0) {
67517 return 0;
67518 }
67519 }
67520 return a.Re();
67521 }
67522 function qHb(a, b) {
67523 if (!a) {
67524 return 0;
67525 }
67526 if (b && !a.k) {
67527 return 0;
67528 }
67529 if (JD(a, 124)) {
67530 if (BD(a, 124).a.a == 0) {
67531 return 0;
67532 }
67533 }
67534 return a.Se();
67535 }
67536 function fhb(a) {
67537 Hgb();
67538 if (a < 0) {
67539 if (a != -1) {
67540 return new Tgb(-1, -a);
67541 }
67542 return Bgb;
67543 } else
67544 return a <= 10 ? Dgb[QD(a)] : new Tgb(1, a);
67545 }
67546 function xC(a) {
67547 rC();
67548 throw vbb(new MB("Unexpected typeof result '" + a + "'; please report this bug to the GWT team"));
67549 }
67550 function lz(a) {
67551 jz();
67552 Py(this);
67553 Ry(this);
67554 this.e = a;
67555 Sy(this, a);
67556 this.g = a == null ? Xhe : fcb(a);
67557 this.a = "";
67558 this.b = a;
67559 this.a = "";
67560 }
67561 function F$c() {
67562 this.a = new G$c();
67563 this.f = new I$c(this);
67564 this.b = new K$c(this);
67565 this.i = new M$c(this);
67566 this.e = new O$c(this);
67567 }
67568 function ss() {
67569 rs.call(this, new _rb(Cv(16)));
67570 Xj(2, mie);
67571 this.b = 2;
67572 this.a = new Ms(null, null, 0, null);
67573 As(this.a, this.a);
67574 }
67575 function xzc() {
67576 xzc = ccb;
67577 uzc = new zzc("DUMMY_NODE_OVER", 0);
67578 vzc = new zzc("DUMMY_NODE_UNDER", 1);
67579 wzc = new zzc("EQUAL", 2);
67580 }
67581 function LUb() {
67582 LUb = ccb;
67583 JUb = Fx(OC(GC(t12, 1), Kie, 103, 0, [(ead(), aad), bad]));
67584 KUb = Fx(OC(GC(t12, 1), Kie, 103, 0, [dad, _9c]));
67585 }
67586 function VQc(a) {
67587 return (Ucd(), Lcd).Hc(a.j) ? Edb(ED(vNb(a, (wtc(), qtc)))) : l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a])).b;
67588 }
67589 function DOb(a) {
67590 var b, c2, d, e;
67591 d = a.b.a;
67592 for (c2 = d.a.ec().Kc(); c2.Ob(); ) {
67593 b = BD(c2.Pb(), 561);
67594 e = new MPb(b, a.e, a.f);
67595 Ekb(a.g, e);
67596 }
67597 }
67598 function yId(a, b) {
67599 var c2, d, e;
67600 d = a.nk(b, null);
67601 e = null;
67602 if (b) {
67603 e = (LFd(), c2 = new UQd(), c2);
67604 NQd(e, a.r);
67605 }
67606 d = xId(a, e, d);
67607 !!d && d.Fi();
67608 }
67609 function VFc(a, b) {
67610 var c2, d;
67611 d = Cub(a.d, 1) != 0;
67612 c2 = true;
67613 while (c2) {
67614 c2 = false;
67615 c2 = b.c.Tf(b.e, d);
67616 c2 = c2 | dGc(a, b, d, false);
67617 d = !d;
67618 }
67619 $Fc(a);
67620 }
67621 function wZc(a, b) {
67622 var c2, d, e;
67623 d = false;
67624 c2 = b.q.d;
67625 if (b.d < a.b) {
67626 e = ZZc(b.q, a.b);
67627 if (b.q.d > e) {
67628 $Zc(b.q, e);
67629 d = c2 != b.q.d;
67630 }
67631 }
67632 return d;
67633 }
67634 function PVc(a, b) {
67635 var c2, d, e, f2, g, h, i3, j;
67636 i3 = b.i;
67637 j = b.j;
67638 d = a.f;
67639 e = d.i;
67640 f2 = d.j;
67641 g = i3 - e;
67642 h = j - f2;
67643 c2 = $wnd.Math.sqrt(g * g + h * h);
67644 return c2;
67645 }
67646 function Rnd(a, b) {
67647 var c2, d;
67648 d = jid(a);
67649 if (!d) {
67650 c2 = (IEd(), PEd(b));
67651 d = new s0d(c2);
67652 wtd(d.Vk(), a);
67653 }
67654 return d;
67655 }
67656 function Sc(a, b) {
67657 var c2, d;
67658 c2 = BD(a.c.Bc(b), 14);
67659 if (!c2) {
67660 return a.jc();
67661 }
67662 d = a.hc();
67663 d.Gc(c2);
67664 a.d -= c2.gc();
67665 c2.$b();
67666 return a.mc(d);
67667 }
67668 function j7c(a, b) {
67669 var c2;
67670 for (c2 = 0; c2 < b.length; c2++) {
67671 if (a == (BCb(c2, b.length), b.charCodeAt(c2))) {
67672 return true;
67673 }
67674 }
67675 return false;
67676 }
67677 function E_b(a, b) {
67678 var c2;
67679 for (c2 = 0; c2 < b.length; c2++) {
67680 if (a == (BCb(c2, b.length), b.charCodeAt(c2))) {
67681 return true;
67682 }
67683 }
67684 return false;
67685 }
67686 function hFd(a) {
67687 var b, c2;
67688 if (a == null)
67689 return false;
67690 for (b = 0, c2 = a.length; b < c2; b++) {
67691 if (!gFd(a[b]))
67692 return false;
67693 }
67694 return true;
67695 }
67696 function Ngb(a) {
67697 var b;
67698 if (a.c != 0) {
67699 return a.c;
67700 }
67701 for (b = 0; b < a.a.length; b++) {
67702 a.c = a.c * 33 + (a.a[b] & -1);
67703 }
67704 a.c = a.c * a.e;
67705 return a.c;
67706 }
67707 function vkb(a) {
67708 var b;
67709 sCb(a.a != a.b);
67710 b = a.d.a[a.a];
67711 mkb(a.b == a.d.c && b != null);
67712 a.c = a.a;
67713 a.a = a.a + 1 & a.d.a.length - 1;
67714 return b;
67715 }
67716 function phe(a) {
67717 var b;
67718 if (!(a.c.c < 0 ? a.a >= a.c.b : a.a <= a.c.b)) {
67719 throw vbb(new utb());
67720 }
67721 b = a.a;
67722 a.a += a.c.c;
67723 ++a.b;
67724 return meb(b);
67725 }
67726 function BWb(a) {
67727 var b;
67728 b = new VWb(a);
67729 rXb(a.a, zWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [b])));
67730 !!b.d && Ekb(b.f, b.d);
67731 return b.f;
67732 }
67733 function Z1b(a) {
67734 var b;
67735 b = new q_b(a.a);
67736 tNb(b, a);
67737 yNb(b, (wtc(), $sc), a);
67738 b.o.a = a.g;
67739 b.o.b = a.f;
67740 b.n.a = a.i;
67741 b.n.b = a.j;
67742 return b;
67743 }
67744 function A9b(a, b, c2, d) {
67745 var e, f2;
67746 for (f2 = a.Kc(); f2.Ob(); ) {
67747 e = BD(f2.Pb(), 70);
67748 e.n.a = b.a + (d.a - e.o.a) / 2;
67749 e.n.b = b.b;
67750 b.b += e.o.b + c2;
67751 }
67752 }
67753 function UDb(a, b, c2) {
67754 var d, e;
67755 for (e = b.a.a.ec().Kc(); e.Ob(); ) {
67756 d = BD(e.Pb(), 57);
67757 if (VDb(a, d, c2)) {
67758 return true;
67759 }
67760 }
67761 return false;
67762 }
67763 function JDc(a) {
67764 var b, c2;
67765 for (c2 = new olb(a.r); c2.a < c2.c.c.length; ) {
67766 b = BD(mlb(c2), 10);
67767 if (a.n[b.p] <= 0) {
67768 return b;
67769 }
67770 }
67771 return null;
67772 }
67773 function cVc(a) {
67774 var b, c2, d, e;
67775 e = new Tqb();
67776 for (d = new olb(a); d.a < d.c.c.length; ) {
67777 c2 = BD(mlb(d), 33);
67778 b = fVc(c2);
67779 ye(e, b);
67780 }
67781 return e;
67782 }
67783 function zFc(a) {
67784 var b;
67785 b = k3c(xFc);
67786 BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Krc)) && e3c(b, (qUb(), nUb), (S8b(), H8b));
67787 return b;
67788 }
67789 function qKb(a, b, c2) {
67790 var d;
67791 d = new AJb(a, b);
67792 Rc(a.r, b.Hf(), d);
67793 if (c2 && !tcd(a.u)) {
67794 d.c = new aIb(a.d);
67795 Hkb(b.wf(), new tKb(d));
67796 }
67797 }
67798 function ybb(a, b) {
67799 var c2;
67800 if (Fbb(a) && Fbb(b)) {
67801 c2 = a - b;
67802 if (!isNaN(c2)) {
67803 return c2;
67804 }
67805 }
67806 return eD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b);
67807 }
67808 function bFd(a, b) {
67809 return b < a.length && (BCb(b, a.length), a.charCodeAt(b) != 63) && (BCb(b, a.length), a.charCodeAt(b) != 35);
67810 }
67811 function Kic(a, b, c2, d) {
67812 var e, f2;
67813 a.a = b;
67814 f2 = d ? 0 : 1;
67815 a.f = (e = new Iic(a.c, a.a, c2, f2), new jjc(c2, a.a, e, a.e, a.b, a.c == (rGc(), pGc)));
67816 }
67817 function Tmd(a, b, c2) {
67818 var d, e;
67819 e = a.a;
67820 a.a = b;
67821 if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
67822 d = new nSd(a, 1, 1, e, b);
67823 !c2 ? c2 = d : c2.Ei(d);
67824 }
67825 return c2;
67826 }
67827 function GQd(a, b, c2) {
67828 var d, e;
67829 e = a.b;
67830 a.b = b;
67831 if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
67832 d = new nSd(a, 1, 3, e, b);
67833 !c2 ? c2 = d : c2.Ei(d);
67834 }
67835 return c2;
67836 }
67837 function IQd(a, b, c2) {
67838 var d, e;
67839 e = a.f;
67840 a.f = b;
67841 if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
67842 d = new nSd(a, 1, 0, e, b);
67843 !c2 ? c2 = d : c2.Ei(d);
67844 }
67845 return c2;
67846 }
67847 function xid(a, b) {
67848 var c2, d, e, f2;
67849 f2 = (e = a ? jid(a) : null, q6d((d = b, e ? e.Xk() : null, d)));
67850 if (f2 == b) {
67851 c2 = jid(a);
67852 !!c2 && c2.Xk();
67853 }
67854 return f2;
67855 }
67856 function x6c(a, b) {
67857 var c2, d, e;
67858 e = 1;
67859 c2 = a;
67860 d = b >= 0 ? b : -b;
67861 while (d > 0) {
67862 if (d % 2 == 0) {
67863 c2 *= c2;
67864 d = d / 2 | 0;
67865 } else {
67866 e *= c2;
67867 d -= 1;
67868 }
67869 }
67870 return b < 0 ? 1 / e : e;
67871 }
67872 function y6c(a, b) {
67873 var c2, d, e;
67874 e = 1;
67875 c2 = a;
67876 d = b >= 0 ? b : -b;
67877 while (d > 0) {
67878 if (d % 2 == 0) {
67879 c2 *= c2;
67880 d = d / 2 | 0;
67881 } else {
67882 e *= c2;
67883 d -= 1;
67884 }
67885 }
67886 return b < 0 ? 1 / e : e;
67887 }
67888 function sAd(a) {
67889 var b, c2;
67890 if (a != null) {
67891 for (c2 = 0; c2 < a.length; ++c2) {
67892 b = a[c2];
67893 if (b) {
67894 BD(b.g, 367);
67895 b.i;
67896 }
67897 }
67898 }
67899 }
67900 function YZc(a) {
67901 var b, c2, d;
67902 d = 0;
67903 for (c2 = new olb(a.a); c2.a < c2.c.c.length; ) {
67904 b = BD(mlb(c2), 187);
67905 d = $wnd.Math.max(d, b.g);
67906 }
67907 return d;
67908 }
67909 function eGc(a) {
67910 var b, c2, d;
67911 for (d = new olb(a.b); d.a < d.c.c.length; ) {
67912 c2 = BD(mlb(d), 214);
67913 b = c2.c.Rf() ? c2.f : c2.a;
67914 !!b && mHc(b, c2.j);
67915 }
67916 }
67917 function hbd() {
67918 hbd = ccb;
67919 fbd = new ibd("INHERIT", 0);
67920 ebd = new ibd("INCLUDE_CHILDREN", 1);
67921 gbd = new ibd("SEPARATE_CHILDREN", 2);
67922 }
67923 function Jkd(a, b) {
67924 switch (b) {
67925 case 1:
67926 !a.n && (a.n = new cUd(D2, a, 1, 7));
67927 Uxd(a.n);
67928 return;
67929 case 2:
67930 Lkd(a, null);
67931 return;
67932 }
67933 fkd(a, b);
67934 }
67935 function Dm(a) {
67936 var b;
67937 switch (a.gc()) {
67938 case 0:
67939 return hm;
67940 case 1:
67941 return new my(Qb(a.Xb(0)));
67942 default:
67943 b = a;
67944 return new ux(b);
67945 }
67946 }
67947 function Vn(a) {
67948 Ql();
67949 switch (a.gc()) {
67950 case 0:
67951 return yx(), xx;
67952 case 1:
67953 return new oy(a.Kc().Pb());
67954 default:
67955 return new zx(a);
67956 }
67957 }
67958 function Up(a) {
67959 Ql();
67960 switch (a.c) {
67961 case 0:
67962 return yx(), xx;
67963 case 1:
67964 return new oy(qr(new Gqb(a)));
67965 default:
67966 return new Tp(a);
67967 }
67968 }
67969 function Hv(b, c2) {
67970 Qb(b);
67971 try {
67972 return b.xc(c2);
67973 } catch (a) {
67974 a = ubb(a);
67975 if (JD(a, 205) || JD(a, 173)) {
67976 return null;
67977 } else
67978 throw vbb(a);
67979 }
67980 }
67981 function Iv(b, c2) {
67982 Qb(b);
67983 try {
67984 return b.Bc(c2);
67985 } catch (a) {
67986 a = ubb(a);
67987 if (JD(a, 205) || JD(a, 173)) {
67988 return null;
67989 } else
67990 throw vbb(a);
67991 }
67992 }
67993 function Ck(b, c2) {
67994 Qb(b);
67995 try {
67996 return b.Hc(c2);
67997 } catch (a) {
67998 a = ubb(a);
67999 if (JD(a, 205) || JD(a, 173)) {
68000 return false;
68001 } else
68002 throw vbb(a);
68003 }
68004 }
68005 function Dk(b, c2) {
68006 Qb(b);
68007 try {
68008 return b.Mc(c2);
68009 } catch (a) {
68010 a = ubb(a);
68011 if (JD(a, 205) || JD(a, 173)) {
68012 return false;
68013 } else
68014 throw vbb(a);
68015 }
68016 }
68017 function Gv(b, c2) {
68018 Qb(b);
68019 try {
68020 return b._b(c2);
68021 } catch (a) {
68022 a = ubb(a);
68023 if (JD(a, 205) || JD(a, 173)) {
68024 return false;
68025 } else
68026 throw vbb(a);
68027 }
68028 }
68029 function KXb(a, b) {
68030 var c2;
68031 if (a.a.c.length > 0) {
68032 c2 = BD(Ikb(a.a, a.a.c.length - 1), 570);
68033 if (NYb(c2, b)) {
68034 return;
68035 }
68036 }
68037 Ekb(a.a, new PYb(b));
68038 }
68039 function $gc(a) {
68040 Hgc();
68041 var b, c2;
68042 b = a.d.c - a.e.c;
68043 c2 = BD(a.g, 145);
68044 Hkb(c2.b, new shc(b));
68045 Hkb(c2.c, new uhc(b));
68046 reb(c2.i, new whc(b));
68047 }
68048 function gic(a) {
68049 var b;
68050 b = new Ufb();
68051 b.a += "VerticalSegment ";
68052 Pfb(b, a.e);
68053 b.a += " ";
68054 Qfb(b, Eb(new Gb(), new olb(a.k)));
68055 return b.a;
68056 }
68057 function u4c(a) {
68058 var b;
68059 b = BD(Wrb(a.c.c, ""), 229);
68060 if (!b) {
68061 b = new W3c(d4c(c4c(new e4c(), ""), "Other"));
68062 Xrb(a.c.c, "", b);
68063 }
68064 return b;
68065 }
68066 function qnd(a) {
68067 var b;
68068 if ((a.Db & 64) != 0)
68069 return Eid(a);
68070 b = new Jfb(Eid(a));
68071 b.a += " (name: ";
68072 Efb(b, a.zb);
68073 b.a += ")";
68074 return b.a;
68075 }
68076 function Jnd(a, b, c2) {
68077 var d, e;
68078 e = a.sb;
68079 a.sb = b;
68080 if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
68081 d = new nSd(a, 1, 4, e, b);
68082 !c2 ? c2 = d : c2.Ei(d);
68083 }
68084 return c2;
68085 }
68086 function _ic(a, b) {
68087 var c2, d, e;
68088 c2 = 0;
68089 for (e = V_b(a, b).Kc(); e.Ob(); ) {
68090 d = BD(e.Pb(), 11);
68091 c2 += vNb(d, (wtc(), gtc)) != null ? 1 : 0;
68092 }
68093 return c2;
68094 }
68095 function vPc(a, b, c2) {
68096 var d, e, f2;
68097 d = 0;
68098 for (f2 = Jsb(a, 0); f2.b != f2.d.c; ) {
68099 e = Edb(ED(Xsb(f2)));
68100 if (e > c2) {
68101 break;
68102 } else
68103 e >= b && ++d;
68104 }
68105 return d;
68106 }
68107 function RTd(a, b, c2) {
68108 var d, e;
68109 d = new pSd(a.e, 3, 13, null, (e = b.c, e ? e : (jGd(), YFd)), HLd(a, b), false);
68110 !c2 ? c2 = d : c2.Ei(d);
68111 return c2;
68112 }
68113 function STd(a, b, c2) {
68114 var d, e;
68115 d = new pSd(a.e, 4, 13, (e = b.c, e ? e : (jGd(), YFd)), null, HLd(a, b), false);
68116 !c2 ? c2 = d : c2.Ei(d);
68117 return c2;
68118 }
68119 function zId(a, b, c2) {
68120 var d, e;
68121 e = a.r;
68122 a.r = b;
68123 if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
68124 d = new nSd(a, 1, 8, e, a.r);
68125 !c2 ? c2 = d : c2.Ei(d);
68126 }
68127 return c2;
68128 }
68129 function o1d(a, b) {
68130 var c2, d;
68131 c2 = BD(b, 676);
68132 d = c2.vk();
68133 !d && c2.wk(d = JD(b, 88) ? new C1d(a, BD(b, 26)) : new O1d(a, BD(b, 148)));
68134 return d;
68135 }
68136 function kud(a, b, c2) {
68137 var d;
68138 a.qi(a.i + 1);
68139 d = a.oi(b, c2);
68140 b != a.i && $fb(a.g, b, a.g, b + 1, a.i - b);
68141 NC(a.g, b, d);
68142 ++a.i;
68143 a.bi(b, c2);
68144 a.ci();
68145 }
68146 function vwb(a, b) {
68147 var c2;
68148 if (b.a) {
68149 c2 = b.a.a.length;
68150 !a.a ? a.a = new Wfb(a.d) : Qfb(a.a, a.b);
68151 Ofb(a.a, b.a, b.d.length, c2);
68152 }
68153 return a;
68154 }
68155 function __d(a, b) {
68156 var c2, d, e, f2;
68157 b.vi(a.a);
68158 f2 = BD(Ajd(a.a, 8), 1936);
68159 if (f2 != null) {
68160 for (c2 = f2, d = 0, e = c2.length; d < e; ++d) {
68161 null.jm();
68162 }
68163 }
68164 }
68165 function TAb(a, b) {
68166 var c2;
68167 c2 = new NBb();
68168 if (!a.a.sd(c2)) {
68169 Tzb(a);
68170 return Atb(), Atb(), ztb;
68171 }
68172 return Atb(), new Ftb(uCb(SAb(a, c2.a, b)));
68173 }
68174 function CHc(a, b) {
68175 switch (b.g) {
68176 case 2:
68177 case 1:
68178 return V_b(a, b);
68179 case 3:
68180 case 4:
68181 return Su(V_b(a, b));
68182 }
68183 return mmb(), mmb(), jmb;
68184 }
68185 function pb(a, b) {
68186 return ND(a) ? dfb(a, b) : LD(a) ? Fdb(a, b) : KD(a) ? (uCb(a), PD(a) === PD(b)) : ID(a) ? a.Fb(b) : MC(a) ? mb(a, b) : qz(a, b);
68187 }
68188 function r6d(a) {
68189 return !a ? null : (a.i & 1) != 0 ? a == sbb ? wI : a == WD ? JI : a == VD ? FI : a == UD ? BI : a == XD ? MI : a == rbb ? UI : a == SD ? xI : yI : a;
68190 }
68191 function Fhb(a, b, c2, d, e) {
68192 if (b == 0 || d == 0) {
68193 return;
68194 }
68195 b == 1 ? e[d] = Hhb(e, c2, d, a[0]) : d == 1 ? e[b] = Hhb(e, a, b, c2[0]) : Ghb(a, c2, e, b, d);
68196 }
68197 function c6b(a, b) {
68198 var c2;
68199 if (a.c.length == 0) {
68200 return;
68201 }
68202 c2 = BD(Qkb(a, KC(OQ, kne, 10, a.c.length, 0, 1)), 193);
68203 Nlb(c2, new o6b());
68204 _5b(c2, b);
68205 }
68206 function i6b(a, b) {
68207 var c2;
68208 if (a.c.length == 0) {
68209 return;
68210 }
68211 c2 = BD(Qkb(a, KC(OQ, kne, 10, a.c.length, 0, 1)), 193);
68212 Nlb(c2, new t6b());
68213 _5b(c2, b);
68214 }
68215 function Ekd(a, b, c2, d) {
68216 switch (b) {
68217 case 1:
68218 return !a.n && (a.n = new cUd(D2, a, 1, 7)), a.n;
68219 case 2:
68220 return a.k;
68221 }
68222 return bkd(a, b, c2, d);
68223 }
68224 function ead() {
68225 ead = ccb;
68226 cad = new iad(ole, 0);
68227 bad = new iad(kle, 1);
68228 aad = new iad(jle, 2);
68229 _9c = new iad(vle, 3);
68230 dad = new iad("UP", 4);
68231 }
68232 function RXb() {
68233 RXb = ccb;
68234 QXb = new SXb(ane, 0);
68235 PXb = new SXb("INSIDE_PORT_SIDE_GROUPS", 1);
68236 OXb = new SXb("FORCE_MODEL_ORDER", 2);
68237 }
68238 function xCb(a, b, c2) {
68239 if (a < 0 || b > c2) {
68240 throw vbb(new qcb(xke + a + zke + b + ", size: " + c2));
68241 }
68242 if (a > b) {
68243 throw vbb(new Wdb(xke + a + yke + b));
68244 }
68245 }
68246 function eid(a, b, c2) {
68247 if (b < 0) {
68248 vid(a, c2);
68249 } else {
68250 if (!c2.Ij()) {
68251 throw vbb(new Wdb(ite + c2.ne() + jte));
68252 }
68253 BD(c2, 66).Nj().Vj(a, a.yh(), b);
68254 }
68255 }
68256 function Jlb(a, b, c2, d, e, f2, g, h) {
68257 var i3;
68258 i3 = c2;
68259 while (f2 < g) {
68260 i3 >= d || b < c2 && h.ue(a[b], a[i3]) <= 0 ? NC(e, f2++, a[b++]) : NC(e, f2++, a[i3++]);
68261 }
68262 }
68263 function yZb(a, b, c2, d, e, f2) {
68264 this.e = new Rkb();
68265 this.f = (KAc(), JAc);
68266 Ekb(this.e, a);
68267 this.d = b;
68268 this.a = c2;
68269 this.b = d;
68270 this.f = e;
68271 this.c = f2;
68272 }
68273 function VOd(a, b) {
68274 var c2, d;
68275 for (d = new Fyd(a); d.e != d.i.gc(); ) {
68276 c2 = BD(Dyd(d), 26);
68277 if (PD(b) === PD(c2)) {
68278 return true;
68279 }
68280 }
68281 return false;
68282 }
68283 function uJb(a) {
68284 qJb();
68285 var b, c2, d, e;
68286 for (c2 = wJb(), d = 0, e = c2.length; d < e; ++d) {
68287 b = c2[d];
68288 if (Jkb(b.a, a, 0) != -1) {
68289 return b;
68290 }
68291 }
68292 return pJb;
68293 }
68294 function jFd(a) {
68295 if (a >= 65 && a <= 70) {
68296 return a - 65 + 10;
68297 }
68298 if (a >= 97 && a <= 102) {
68299 return a - 97 + 10;
68300 }
68301 if (a >= 48 && a <= 57) {
68302 return a - 48;
68303 }
68304 return 0;
68305 }
68306 function QHd(a) {
68307 var b;
68308 if ((a.Db & 64) != 0)
68309 return Eid(a);
68310 b = new Jfb(Eid(a));
68311 b.a += " (source: ";
68312 Efb(b, a.d);
68313 b.a += ")";
68314 return b.a;
68315 }
68316 function OQd(a, b, c2) {
68317 var d, e;
68318 e = a.a;
68319 a.a = b;
68320 if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
68321 d = new nSd(a, 1, 5, e, a.a);
68322 !c2 ? c2 = d : Qwd(c2, d);
68323 }
68324 return c2;
68325 }
68326 function BId(a, b) {
68327 var c2;
68328 c2 = (a.Bb & 256) != 0;
68329 b ? a.Bb |= 256 : a.Bb &= -257;
68330 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 2, c2, b));
68331 }
68332 function eLd(a, b) {
68333 var c2;
68334 c2 = (a.Bb & 256) != 0;
68335 b ? a.Bb |= 256 : a.Bb &= -257;
68336 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 8, c2, b));
68337 }
68338 function LPd(a, b) {
68339 var c2;
68340 c2 = (a.Bb & 256) != 0;
68341 b ? a.Bb |= 256 : a.Bb &= -257;
68342 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 8, c2, b));
68343 }
68344 function CId(a, b) {
68345 var c2;
68346 c2 = (a.Bb & 512) != 0;
68347 b ? a.Bb |= 512 : a.Bb &= -513;
68348 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 3, c2, b));
68349 }
68350 function fLd(a, b) {
68351 var c2;
68352 c2 = (a.Bb & 512) != 0;
68353 b ? a.Bb |= 512 : a.Bb &= -513;
68354 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 9, c2, b));
68355 }
68356 function N7d(a, b) {
68357 var c2;
68358 if (a.b == -1 && !!a.a) {
68359 c2 = a.a.Gj();
68360 a.b = !c2 ? bLd(a.c.Tg(), a.a) : a.c.Xg(a.a.aj(), c2);
68361 }
68362 return a.c.Og(a.b, b);
68363 }
68364 function meb(a) {
68365 var b, c2;
68366 if (a > -129 && a < 128) {
68367 b = a + 128;
68368 c2 = (oeb(), neb)[b];
68369 !c2 && (c2 = neb[b] = new _db(a));
68370 return c2;
68371 }
68372 return new _db(a);
68373 }
68374 function Web(a) {
68375 var b, c2;
68376 if (a > -129 && a < 128) {
68377 b = a + 128;
68378 c2 = (Yeb(), Xeb)[b];
68379 !c2 && (c2 = Xeb[b] = new Qeb(a));
68380 return c2;
68381 }
68382 return new Qeb(a);
68383 }
68384 function L5b(a) {
68385 var b, c2;
68386 b = a.k;
68387 if (b == (j0b(), e0b)) {
68388 c2 = BD(vNb(a, (wtc(), Hsc)), 61);
68389 return c2 == (Ucd(), Acd) || c2 == Rcd;
68390 }
68391 return false;
68392 }
68393 function i1d(a, b, c2) {
68394 var d, e, f2;
68395 f2 = (e = nUd(a.b, b), e);
68396 if (f2) {
68397 d = BD(V1d(p1d(a, f2), ""), 26);
68398 if (d) {
68399 return r1d(a, d, b, c2);
68400 }
68401 }
68402 return null;
68403 }
68404 function l1d(a, b, c2) {
68405 var d, e, f2;
68406 f2 = (e = nUd(a.b, b), e);
68407 if (f2) {
68408 d = BD(V1d(p1d(a, f2), ""), 26);
68409 if (d) {
68410 return s1d(a, d, b, c2);
68411 }
68412 }
68413 return null;
68414 }
68415 function cTd(a, b) {
68416 var c2, d;
68417 for (d = new Fyd(a); d.e != d.i.gc(); ) {
68418 c2 = BD(Dyd(d), 138);
68419 if (PD(b) === PD(c2)) {
68420 return true;
68421 }
68422 }
68423 return false;
68424 }
68425 function vtd(a, b, c2) {
68426 var d;
68427 d = a.gc();
68428 if (b > d)
68429 throw vbb(new Cyd(b, d));
68430 if (a.hi() && a.Hc(c2)) {
68431 throw vbb(new Wdb(kue));
68432 }
68433 a.Xh(b, c2);
68434 }
68435 function iqd(a, b) {
68436 var c2;
68437 c2 = oo(a.i, b);
68438 if (c2 == null) {
68439 throw vbb(new cqd("Node did not exist in input."));
68440 }
68441 Yqd(b, c2);
68442 return null;
68443 }
68444 function $hd(a, b) {
68445 var c2;
68446 c2 = YKd(a, b);
68447 if (JD(c2, 322)) {
68448 return BD(c2, 34);
68449 }
68450 throw vbb(new Wdb(ite + b + "' is not a valid attribute"));
68451 }
68452 function V2d(a, b, c2) {
68453 var d, e;
68454 e = JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 ? new s4d(b, a) : new p4d(b, a);
68455 for (d = 0; d < c2; ++d) {
68456 d4d(e);
68457 }
68458 return e;
68459 }
68460 function ede(a) {
68461 var b, c2, d;
68462 d = 0;
68463 c2 = a.length;
68464 for (b = 0; b < c2; b++) {
68465 a[b] == 32 || a[b] == 13 || a[b] == 10 || a[b] == 9 || (a[d++] = a[b]);
68466 }
68467 return d;
68468 }
68469 function lYb(a) {
68470 var b, c2, d;
68471 b = new Rkb();
68472 for (d = new olb(a.b); d.a < d.c.c.length; ) {
68473 c2 = BD(mlb(d), 594);
68474 Gkb(b, BD(c2.jf(), 14));
68475 }
68476 return b;
68477 }
68478 function SSc(a) {
68479 var b, c2, d;
68480 b = BD(vNb(a, (mTc(), gTc)), 15);
68481 for (d = b.Kc(); d.Ob(); ) {
68482 c2 = BD(d.Pb(), 188);
68483 Dsb(c2.b.d, c2);
68484 Dsb(c2.c.b, c2);
68485 }
68486 }
68487 function b5b(a) {
68488 switch (BD(vNb(a, (wtc(), Osc)), 303).g) {
68489 case 1:
68490 yNb(a, Osc, (esc(), bsc));
68491 break;
68492 case 2:
68493 yNb(a, Osc, (esc(), dsc));
68494 }
68495 }
68496 function _Fc(a) {
68497 var b;
68498 if (a.g) {
68499 b = a.c.Rf() ? a.f : a.a;
68500 bGc(b.a, a.o, true);
68501 bGc(b.a, a.o, false);
68502 yNb(a.o, (Nyc(), Vxc), (dcd(), Zbd));
68503 }
68504 }
68505 function loc(a) {
68506 var b;
68507 if (!a.a) {
68508 throw vbb(new Zdb("Cannot offset an unassigned cut."));
68509 }
68510 b = a.c - a.b;
68511 a.b += b;
68512 noc(a, b);
68513 ooc(a, b);
68514 }
68515 function ckb(a) {
68516 var b;
68517 b = a.a[a.c - 1 & a.a.length - 1];
68518 if (b == null) {
68519 return null;
68520 }
68521 a.c = a.c - 1 & a.a.length - 1;
68522 NC(a.a, a.c, null);
68523 return b;
68524 }
68525 function zGb(a) {
68526 var b, c2;
68527 for (c2 = a.p.a.ec().Kc(); c2.Ob(); ) {
68528 b = BD(c2.Pb(), 213);
68529 if (b.f && a.b[b.c] < -1e-10) {
68530 return b;
68531 }
68532 }
68533 return null;
68534 }
68535 function bLb(a, b) {
68536 switch (a.b.g) {
68537 case 0:
68538 case 1:
68539 return b;
68540 case 2:
68541 case 3:
68542 return new J6c(b.d, 0, b.a, b.b);
68543 default:
68544 return null;
68545 }
68546 }
68547 function had(a) {
68548 switch (a.g) {
68549 case 2:
68550 return bad;
68551 case 1:
68552 return aad;
68553 case 4:
68554 return _9c;
68555 case 3:
68556 return dad;
68557 default:
68558 return cad;
68559 }
68560 }
68561 function Vcd(a) {
68562 switch (a.g) {
68563 case 1:
68564 return Tcd;
68565 case 2:
68566 return Acd;
68567 case 3:
68568 return zcd;
68569 case 4:
68570 return Rcd;
68571 default:
68572 return Scd;
68573 }
68574 }
68575 function Wcd(a) {
68576 switch (a.g) {
68577 case 1:
68578 return Rcd;
68579 case 2:
68580 return Tcd;
68581 case 3:
68582 return Acd;
68583 case 4:
68584 return zcd;
68585 default:
68586 return Scd;
68587 }
68588 }
68589 function Xcd(a) {
68590 switch (a.g) {
68591 case 1:
68592 return zcd;
68593 case 2:
68594 return Rcd;
68595 case 3:
68596 return Tcd;
68597 case 4:
68598 return Acd;
68599 default:
68600 return Scd;
68601 }
68602 }
68603 function DPc(a) {
68604 switch (a) {
68605 case 0:
68606 return new OPc();
68607 case 1:
68608 return new EPc();
68609 case 2:
68610 return new JPc();
68611 default:
68612 throw vbb(new Vdb());
68613 }
68614 }
68615 function Kdb(a, b) {
68616 if (a < b) {
68617 return -1;
68618 }
68619 if (a > b) {
68620 return 1;
68621 }
68622 if (a == b) {
68623 return a == 0 ? Kdb(1 / a, 1 / b) : 0;
68624 }
68625 return isNaN(a) ? isNaN(b) ? 0 : 1 : -1;
68626 }
68627 function f4b(a, b) {
68628 Odd(b, "Sort end labels", 1);
68629 MAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new q4b()), new s4b()), new u4b());
68630 Qdd(b);
68631 }
68632 function Wxd(a, b, c2) {
68633 var d, e;
68634 if (a.ej()) {
68635 e = a.fj();
68636 d = sud(a, b, c2);
68637 a.$i(a.Zi(7, meb(c2), d, b, e));
68638 return d;
68639 } else {
68640 return sud(a, b, c2);
68641 }
68642 }
68643 function vAd(a, b) {
68644 var c2, d, e;
68645 if (a.d == null) {
68646 ++a.e;
68647 --a.f;
68648 } else {
68649 e = b.cd();
68650 c2 = b.Sh();
68651 d = (c2 & Ohe) % a.d.length;
68652 KAd(a, d, xAd(a, d, c2, e));
68653 }
68654 }
68655 function ZId(a, b) {
68656 var c2;
68657 c2 = (a.Bb & zte) != 0;
68658 b ? a.Bb |= zte : a.Bb &= -1025;
68659 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 10, c2, b));
68660 }
68661 function dJd(a, b) {
68662 var c2;
68663 c2 = (a.Bb & Rje) != 0;
68664 b ? a.Bb |= Rje : a.Bb &= -4097;
68665 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 12, c2, b));
68666 }
68667 function eJd(a, b) {
68668 var c2;
68669 c2 = (a.Bb & Cve) != 0;
68670 b ? a.Bb |= Cve : a.Bb &= -8193;
68671 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 15, c2, b));
68672 }
68673 function fJd(a, b) {
68674 var c2;
68675 c2 = (a.Bb & Dve) != 0;
68676 b ? a.Bb |= Dve : a.Bb &= -2049;
68677 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 11, c2, b));
68678 }
68679 function jOb(a, b) {
68680 var c2;
68681 c2 = Kdb(a.b.c, b.b.c);
68682 if (c2 != 0) {
68683 return c2;
68684 }
68685 c2 = Kdb(a.a.a, b.a.a);
68686 if (c2 != 0) {
68687 return c2;
68688 }
68689 return Kdb(a.a.b, b.a.b);
68690 }
68691 function jqd(a, b) {
68692 var c2;
68693 c2 = Ohb(a.k, b);
68694 if (c2 == null) {
68695 throw vbb(new cqd("Port did not exist in input."));
68696 }
68697 Yqd(b, c2);
68698 return null;
68699 }
68700 function k6d(a) {
68701 var b, c2;
68702 for (c2 = l6d(bKd(a)).Kc(); c2.Ob(); ) {
68703 b = GD(c2.Pb());
68704 if (Dmd(a, b)) {
68705 return uFd((tFd(), sFd), b);
68706 }
68707 }
68708 return null;
68709 }
68710 function n3d(a, b) {
68711 var c2, d, e, f2, g;
68712 g = S6d(a.e.Tg(), b);
68713 f2 = 0;
68714 c2 = BD(a.g, 119);
68715 for (e = 0; e < a.i; ++e) {
68716 d = c2[e];
68717 g.rl(d.ak()) && ++f2;
68718 }
68719 return f2;
68720 }
68721 function Vsd(a, b, c2) {
68722 var d, e;
68723 d = BD(b.We(a.a), 35);
68724 e = BD(c2.We(a.a), 35);
68725 return d != null && e != null ? Fcb(d, e) : d != null ? -1 : e != null ? 1 : 0;
68726 }
68727 function ved(a, b, c2) {
68728 var d, e;
68729 if (a.c) {
68730 Efd(a.c, b, c2);
68731 } else {
68732 for (e = new olb(a.b); e.a < e.c.c.length; ) {
68733 d = BD(mlb(e), 157);
68734 ved(d, b, c2);
68735 }
68736 }
68737 }
68738 function RUb(a, b) {
68739 var c2, d;
68740 for (d = new olb(b); d.a < d.c.c.length; ) {
68741 c2 = BD(mlb(d), 46);
68742 Lkb(a.b.b, c2.b);
68743 fVb(BD(c2.a, 189), BD(c2.b, 81));
68744 }
68745 }
68746 function tr(a) {
68747 var b, c2;
68748 c2 = Kfb(new Ufb(), 91);
68749 b = true;
68750 while (a.Ob()) {
68751 b || (c2.a += She, c2);
68752 b = false;
68753 Pfb(c2, a.Pb());
68754 }
68755 return (c2.a += "]", c2).a;
68756 }
68757 function aJd(a, b) {
68758 var c2;
68759 c2 = (a.Bb & oie) != 0;
68760 b ? a.Bb |= oie : a.Bb &= -16385;
68761 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 16, c2, b));
68762 }
68763 function MJd(a, b) {
68764 var c2;
68765 c2 = (a.Bb & ote) != 0;
68766 b ? a.Bb |= ote : a.Bb &= -32769;
68767 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 18, c2, b));
68768 }
68769 function CUd(a, b) {
68770 var c2;
68771 c2 = (a.Bb & ote) != 0;
68772 b ? a.Bb |= ote : a.Bb &= -32769;
68773 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 18, c2, b));
68774 }
68775 function EUd(a, b) {
68776 var c2;
68777 c2 = (a.Bb & Tje) != 0;
68778 b ? a.Bb |= Tje : a.Bb &= -65537;
68779 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new qSd(a, 1, 20, c2, b));
68780 }
68781 function Tee(a) {
68782 var b;
68783 b = KC(TD, $ie, 25, 2, 15, 1);
68784 a -= Tje;
68785 b[0] = (a >> 10) + Uje & aje;
68786 b[1] = (a & 1023) + 56320 & aje;
68787 return zfb(b, 0, b.length);
68788 }
68789 function a_b(a) {
68790 var b, c2;
68791 c2 = BD(vNb(a, (Nyc(), Lwc)), 103);
68792 if (c2 == (ead(), cad)) {
68793 b = Edb(ED(vNb(a, owc)));
68794 return b >= 1 ? bad : _9c;
68795 }
68796 return c2;
68797 }
68798 function rec(a) {
68799 switch (BD(vNb(a, (Nyc(), Swc)), 218).g) {
68800 case 1:
68801 return new Fmc();
68802 case 3:
68803 return new wnc();
68804 default:
68805 return new zmc();
68806 }
68807 }
68808 function Uzb(a) {
68809 if (a.c) {
68810 Uzb(a.c);
68811 } else if (a.d) {
68812 throw vbb(new Zdb("Stream already terminated, can't be modified or used"));
68813 }
68814 }
68815 function Mkd(a) {
68816 var b;
68817 if ((a.Db & 64) != 0)
68818 return Eid(a);
68819 b = new Jfb(Eid(a));
68820 b.a += " (identifier: ";
68821 Efb(b, a.k);
68822 b.a += ")";
68823 return b.a;
68824 }
68825 function ctd(a, b, c2) {
68826 var d, e;
68827 d = (Fhd(), e = new xkd(), e);
68828 vkd(d, b);
68829 wkd(d, c2);
68830 !!a && wtd((!a.a && (a.a = new xMd(y2, a, 5)), a.a), d);
68831 return d;
68832 }
68833 function ttb(a, b, c2, d) {
68834 var e, f2;
68835 uCb(d);
68836 uCb(c2);
68837 e = a.xc(b);
68838 f2 = e == null ? c2 : Myb(BD(e, 15), BD(c2, 14));
68839 f2 == null ? a.Bc(b) : a.zc(b, f2);
68840 return f2;
68841 }
68842 function pqb(a) {
68843 var b, c2, d, e;
68844 c2 = (b = BD(gdb((d = a.gm, e = d.f, e == CI ? d : e)), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
68845 rqb(c2, a);
68846 return c2;
68847 }
68848 function hDc(a, b, c2) {
68849 var d, e;
68850 for (e = a.a.ec().Kc(); e.Ob(); ) {
68851 d = BD(e.Pb(), 10);
68852 if (Be(c2, BD(Ikb(b, d.p), 14))) {
68853 return d;
68854 }
68855 }
68856 return null;
68857 }
68858 function Db(b, c2, d) {
68859 var e;
68860 try {
68861 Cb(b, c2, d);
68862 } catch (a) {
68863 a = ubb(a);
68864 if (JD(a, 597)) {
68865 e = a;
68866 throw vbb(new ycb(e));
68867 } else
68868 throw vbb(a);
68869 }
68870 return c2;
68871 }
68872 function Qbb(a, b) {
68873 var c2;
68874 if (Fbb(a) && Fbb(b)) {
68875 c2 = a - b;
68876 if (Kje < c2 && c2 < Ije) {
68877 return c2;
68878 }
68879 }
68880 return zbb(nD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
68881 }
68882 function wbb(a, b) {
68883 var c2;
68884 if (Fbb(a) && Fbb(b)) {
68885 c2 = a + b;
68886 if (Kje < c2 && c2 < Ije) {
68887 return c2;
68888 }
68889 }
68890 return zbb(cD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
68891 }
68892 function Ibb(a, b) {
68893 var c2;
68894 if (Fbb(a) && Fbb(b)) {
68895 c2 = a * b;
68896 if (Kje < c2 && c2 < Ije) {
68897 return c2;
68898 }
68899 }
68900 return zbb(gD(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b));
68901 }
68902 function V_b(a, b) {
68903 var c2;
68904 a.i || N_b(a);
68905 c2 = BD(Mpb(a.g, b), 46);
68906 return !c2 ? (mmb(), mmb(), jmb) : new Jib(a.j, BD(c2.a, 19).a, BD(c2.b, 19).a);
68907 }
68908 function Drb(a, b, c2) {
68909 var d;
68910 d = a.a.get(b);
68911 a.a.set(b, c2 === void 0 ? null : c2);
68912 if (d === void 0) {
68913 ++a.c;
68914 zpb(a.b);
68915 } else {
68916 ++a.d;
68917 }
68918 return d;
68919 }
68920 function kNb(a, b, c2) {
68921 a.n = IC(XD, [nie, Sje], [364, 25], 14, [c2, QD($wnd.Math.ceil(b / 32))], 2);
68922 a.o = b;
68923 a.p = c2;
68924 a.j = b - 1 >> 1;
68925 a.k = c2 - 1 >> 1;
68926 }
68927 function Gub() {
68928 zub();
68929 var a, b, c2;
68930 c2 = yub++ + Date.now();
68931 a = QD($wnd.Math.floor(c2 * lke)) & nke;
68932 b = QD(c2 - a * mke);
68933 this.a = a ^ 1502;
68934 this.b = b ^ kke;
68935 }
68936 function O_b(a) {
68937 var b, c2, d;
68938 b = new Rkb();
68939 for (d = new olb(a.j); d.a < d.c.c.length; ) {
68940 c2 = BD(mlb(d), 11);
68941 Ekb(b, c2.b);
68942 }
68943 return Qb(b), new sl(b);
68944 }
68945 function R_b(a) {
68946 var b, c2, d;
68947 b = new Rkb();
68948 for (d = new olb(a.j); d.a < d.c.c.length; ) {
68949 c2 = BD(mlb(d), 11);
68950 Ekb(b, c2.e);
68951 }
68952 return Qb(b), new sl(b);
68953 }
68954 function U_b(a) {
68955 var b, c2, d;
68956 b = new Rkb();
68957 for (d = new olb(a.j); d.a < d.c.c.length; ) {
68958 c2 = BD(mlb(d), 11);
68959 Ekb(b, c2.g);
68960 }
68961 return Qb(b), new sl(b);
68962 }
68963 function n6d(a) {
68964 var b, c2;
68965 for (c2 = o6d(bKd(WId(a))).Kc(); c2.Ob(); ) {
68966 b = GD(c2.Pb());
68967 if (Dmd(a, b))
68968 return FFd((EFd(), DFd), b);
68969 }
68970 return null;
68971 }
68972 function wm(a) {
68973 var b, c2, d;
68974 for (c2 = 0, d = a.length; c2 < d; c2++) {
68975 if (a[c2] == null) {
68976 throw vbb(new Heb("at index " + c2));
68977 }
68978 }
68979 b = a;
68980 return new amb(b);
68981 }
68982 function wid(a, b) {
68983 var c2;
68984 c2 = YKd(a.Tg(), b);
68985 if (JD(c2, 99)) {
68986 return BD(c2, 18);
68987 }
68988 throw vbb(new Wdb(ite + b + "' is not a valid reference"));
68989 }
68990 function Tdb(a) {
68991 var b;
68992 b = Hcb(a);
68993 if (b > 34028234663852886e22) {
68994 return Pje;
68995 } else if (b < -34028234663852886e22) {
68996 return Qje;
68997 }
68998 return b;
68999 }
69000 function aeb(a) {
69001 a -= a >> 1 & 1431655765;
69002 a = (a >> 2 & 858993459) + (a & 858993459);
69003 a = (a >> 4) + a & 252645135;
69004 a += a >> 8;
69005 a += a >> 16;
69006 return a & 63;
69007 }
69008 function Ev(a) {
69009 var b, c2, d, e;
69010 b = new cq(a.Hd().gc());
69011 e = 0;
69012 for (d = vr(a.Hd().Kc()); d.Ob(); ) {
69013 c2 = d.Pb();
69014 bq(b, c2, meb(e++));
69015 }
69016 return fn(b.a);
69017 }
69018 function Uyb(a, b) {
69019 var c2, d, e;
69020 e = new Lqb();
69021 for (d = b.vc().Kc(); d.Ob(); ) {
69022 c2 = BD(d.Pb(), 42);
69023 Rhb(e, c2.cd(), Yyb(a, BD(c2.dd(), 15)));
69024 }
69025 return e;
69026 }
69027 function EZc(a, b) {
69028 a.n.c.length == 0 && Ekb(a.n, new VZc(a.s, a.t, a.i));
69029 Ekb(a.b, b);
69030 QZc(BD(Ikb(a.n, a.n.c.length - 1), 211), b);
69031 GZc(a, b);
69032 }
69033 function LFb(a) {
69034 if (a.c != a.b.b || a.i != a.g.b) {
69035 a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
69036 Gkb(a.a, a.b);
69037 Gkb(a.a, a.g);
69038 a.c = a.b.b;
69039 a.i = a.g.b;
69040 }
69041 return a.a;
69042 }
69043 function Ycc(a, b) {
69044 var c2, d, e;
69045 e = 0;
69046 for (d = BD(b.Kb(a), 20).Kc(); d.Ob(); ) {
69047 c2 = BD(d.Pb(), 17);
69048 Ccb(DD(vNb(c2, (wtc(), ltc)))) || ++e;
69049 }
69050 return e;
69051 }
69052 function efc(a, b) {
69053 var c2, d, e;
69054 d = tgc(b);
69055 e = Edb(ED(pBc(d, (Nyc(), lyc))));
69056 c2 = $wnd.Math.max(0, e / 2 - 0.5);
69057 cfc(b, c2, 1);
69058 Ekb(a, new Dfc(b, c2));
69059 }
69060 function Ctc() {
69061 Ctc = ccb;
69062 Btc = new Dtc(ane, 0);
69063 xtc = new Dtc("FIRST", 1);
69064 ytc = new Dtc(Gne, 2);
69065 ztc = new Dtc("LAST", 3);
69066 Atc = new Dtc(Hne, 4);
69067 }
69068 function Aad() {
69069 Aad = ccb;
69070 zad = new Bad(ole, 0);
69071 xad = new Bad("POLYLINE", 1);
69072 wad = new Bad("ORTHOGONAL", 2);
69073 yad = new Bad("SPLINES", 3);
69074 }
69075 function zYc() {
69076 zYc = ccb;
69077 xYc = new AYc("ASPECT_RATIO_DRIVEN", 0);
69078 yYc = new AYc("MAX_SCALE_DRIVEN", 1);
69079 wYc = new AYc("AREA_DRIVEN", 2);
69080 }
69081 function Y$c() {
69082 Y$c = ccb;
69083 V$c = new Z$c("P1_STRUCTURE", 0);
69084 W$c = new Z$c("P2_PROCESSING_ORDER", 1);
69085 X$c = new Z$c("P3_EXECUTION", 2);
69086 }
69087 function tVc() {
69088 tVc = ccb;
69089 sVc = new uVc("OVERLAP_REMOVAL", 0);
69090 qVc = new uVc("COMPACTION", 1);
69091 rVc = new uVc("GRAPH_SIZE_CALCULATION", 2);
69092 }
69093 function Jy(a, b) {
69094 Iy();
69095 return My(Qie), $wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b));
69096 }
69097 function yOc(a, b) {
69098 var c2, d;
69099 c2 = Jsb(a, 0);
69100 while (c2.b != c2.d.c) {
69101 d = Gdb(ED(Xsb(c2)));
69102 if (d == b) {
69103 return;
69104 } else if (d > b) {
69105 Ysb(c2);
69106 break;
69107 }
69108 }
69109 Vsb(c2, b);
69110 }
69111 function t4c(a, b) {
69112 var c2, d, e, f2, g;
69113 c2 = b.f;
69114 Xrb(a.c.d, c2, b);
69115 if (b.g != null) {
69116 for (e = b.g, f2 = 0, g = e.length; f2 < g; ++f2) {
69117 d = e[f2];
69118 Xrb(a.c.e, d, b);
69119 }
69120 }
69121 }
69122 function Ilb(a, b, c2, d) {
69123 var e, f2, g;
69124 for (e = b + 1; e < c2; ++e) {
69125 for (f2 = e; f2 > b && d.ue(a[f2 - 1], a[f2]) > 0; --f2) {
69126 g = a[f2];
69127 NC(a, f2, a[f2 - 1]);
69128 NC(a, f2 - 1, g);
69129 }
69130 }
69131 }
69132 function did(a, b, c2, d) {
69133 if (b < 0) {
69134 uid(a, c2, d);
69135 } else {
69136 if (!c2.Ij()) {
69137 throw vbb(new Wdb(ite + c2.ne() + jte));
69138 }
69139 BD(c2, 66).Nj().Tj(a, a.yh(), b, d);
69140 }
69141 }
69142 function xFb(a, b) {
69143 if (b == a.d) {
69144 return a.e;
69145 } else if (b == a.e) {
69146 return a.d;
69147 } else {
69148 throw vbb(new Wdb("Node " + b + " not part of edge " + a));
69149 }
69150 }
69151 function iEb(a, b) {
69152 switch (b.g) {
69153 case 2:
69154 return a.b;
69155 case 1:
69156 return a.c;
69157 case 4:
69158 return a.d;
69159 case 3:
69160 return a.a;
69161 default:
69162 return false;
69163 }
69164 }
69165 function GVb(a, b) {
69166 switch (b.g) {
69167 case 2:
69168 return a.b;
69169 case 1:
69170 return a.c;
69171 case 4:
69172 return a.d;
69173 case 3:
69174 return a.a;
69175 default:
69176 return false;
69177 }
69178 }
69179 function Xkd(a, b, c2, d) {
69180 switch (b) {
69181 case 3:
69182 return a.f;
69183 case 4:
69184 return a.g;
69185 case 5:
69186 return a.i;
69187 case 6:
69188 return a.j;
69189 }
69190 return Ekd(a, b, c2, d);
69191 }
69192 function Ljc(a) {
69193 if (a.k != (j0b(), h0b)) {
69194 return false;
69195 }
69196 return FAb(new YAb(null, new Lub(new Sr(ur(U_b(a).a.Kc(), new Sq())))), new Mjc());
69197 }
69198 function MEd(a) {
69199 if (a.e == null) {
69200 return a;
69201 } else
69202 !a.c && (a.c = new NEd((a.f & 256) != 0, a.i, a.a, a.d, (a.f & 16) != 0, a.j, a.g, null));
69203 return a.c;
69204 }
69205 function VC(a, b) {
69206 if (a.h == Gje && a.m == 0 && a.l == 0) {
69207 b && (QC = TC(0, 0, 0));
69208 return SC((wD(), uD));
69209 }
69210 b && (QC = TC(a.l, a.m, a.h));
69211 return TC(0, 0, 0);
69212 }
69213 function fcb(a) {
69214 var b;
69215 if (Array.isArray(a) && a.im === gcb) {
69216 return hdb(rb(a)) + "@" + (b = tb(a) >>> 0, b.toString(16));
69217 }
69218 return a.toString();
69219 }
69220 function Rpb(a) {
69221 var b;
69222 this.a = (b = BD(a.e && a.e(), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
69223 this.b = KC(SI, Uhe, 1, this.a.a.length, 5, 1);
69224 }
69225 function _Ob(a) {
69226 var b, c2, d;
69227 this.a = new zsb();
69228 for (d = new olb(a); d.a < d.c.c.length; ) {
69229 c2 = BD(mlb(d), 14);
69230 b = new MOb();
69231 GOb(b, c2);
69232 Qqb(this.a, b);
69233 }
69234 }
69235 function cKb(a) {
69236 $Jb();
69237 var b, c2, d, e;
69238 b = a.o.b;
69239 for (d = BD(BD(Qc(a.r, (Ucd(), Rcd)), 21), 84).Kc(); d.Ob(); ) {
69240 c2 = BD(d.Pb(), 111);
69241 e = c2.e;
69242 e.b += b;
69243 }
69244 }
69245 function ag(a) {
69246 var b;
69247 if (a.b) {
69248 ag(a.b);
69249 if (a.b.d != a.c) {
69250 throw vbb(new Apb());
69251 }
69252 } else if (a.d.dc()) {
69253 b = BD(a.f.c.xc(a.e), 14);
69254 !!b && (a.d = b);
69255 }
69256 }
69257 function fFd(a) {
69258 var b;
69259 if (a == null)
69260 return true;
69261 b = a.length;
69262 return b > 0 && (BCb(b - 1, a.length), a.charCodeAt(b - 1) == 58) && !OEd(a, CEd, DEd);
69263 }
69264 function OEd(a, b, c2) {
69265 var d, e;
69266 for (d = 0, e = a.length; d < e; d++) {
69267 if (_Ed((BCb(d, a.length), a.charCodeAt(d)), b, c2))
69268 return true;
69269 }
69270 return false;
69271 }
69272 function JOb(a, b) {
69273 var c2, d;
69274 for (d = a.e.a.ec().Kc(); d.Ob(); ) {
69275 c2 = BD(d.Pb(), 266);
69276 if (t6c(b, c2.d) || o6c(b, c2.d)) {
69277 return true;
69278 }
69279 }
69280 return false;
69281 }
69282 function Q9b(a, b) {
69283 var c2, d, e;
69284 d = N9b(a, b);
69285 e = d[d.length - 1] / 2;
69286 for (c2 = 0; c2 < d.length; c2++) {
69287 if (d[c2] >= e) {
69288 return b.c + c2;
69289 }
69290 }
69291 return b.c + b.b.gc();
69292 }
69293 function NCd(a, b) {
69294 LCd();
69295 var c2, d, e, f2;
69296 d = KLd(a);
69297 e = b;
69298 Klb(d, 0, d.length, e);
69299 for (c2 = 0; c2 < d.length; c2++) {
69300 f2 = MCd(a, d[c2], c2);
69301 c2 != f2 && Wxd(a, c2, f2);
69302 }
69303 }
69304 function EHb(a, b) {
69305 var c2, d, e, f2, g, h;
69306 d = 0;
69307 c2 = 0;
69308 for (f2 = b, g = 0, h = f2.length; g < h; ++g) {
69309 e = f2[g];
69310 if (e > 0) {
69311 d += e;
69312 ++c2;
69313 }
69314 }
69315 c2 > 1 && (d += a.d * (c2 - 1));
69316 return d;
69317 }
69318 function Htd(a) {
69319 var b, c2, d;
69320 d = new Hfb();
69321 d.a += "[";
69322 for (b = 0, c2 = a.gc(); b < c2; ) {
69323 Efb(d, xfb(a.ki(b)));
69324 ++b < c2 && (d.a += She, d);
69325 }
69326 d.a += "]";
69327 return d.a;
69328 }
69329 function fsd(a) {
69330 var b, c2, d, e, f2;
69331 f2 = hsd(a);
69332 c2 = Fhe(a.c);
69333 d = !c2;
69334 if (d) {
69335 e = new wB();
69336 cC(f2, "knownLayouters", e);
69337 b = new qsd(e);
69338 reb(a.c, b);
69339 }
69340 return f2;
69341 }
69342 function Ce(a, b) {
69343 var c2, d, e;
69344 uCb(b);
69345 c2 = false;
69346 for (d = new olb(a); d.a < d.c.c.length; ) {
69347 e = mlb(d);
69348 if (ze(b, e, false)) {
69349 nlb(d);
69350 c2 = true;
69351 }
69352 }
69353 return c2;
69354 }
69355 function UGb(a) {
69356 var b, c2, d;
69357 d = Edb(ED(a.a.We((Y9c(), Q9c))));
69358 for (c2 = new olb(a.a.xf()); c2.a < c2.c.c.length; ) {
69359 b = BD(mlb(c2), 680);
69360 XGb(a, b, d);
69361 }
69362 }
69363 function MUb(a, b) {
69364 var c2, d;
69365 for (d = new olb(b); d.a < d.c.c.length; ) {
69366 c2 = BD(mlb(d), 46);
69367 Ekb(a.b.b, BD(c2.b, 81));
69368 eVb(BD(c2.a, 189), BD(c2.b, 81));
69369 }
69370 }
69371 function XCc(a, b, c2) {
69372 var d, e;
69373 e = a.a.b;
69374 for (d = e.c.length; d < c2; d++) {
69375 Dkb(e, 0, new H1b(a.a));
69376 }
69377 $_b(b, BD(Ikb(e, e.c.length - c2), 29));
69378 a.b[b.p] = c2;
69379 }
69380 function JTb(a, b, c2) {
69381 var d;
69382 d = c2;
69383 !d && (d = Ydd(new Zdd(), 0));
69384 Odd(d, Vme, 2);
69385 qZb(a.b, b, Udd(d, 1));
69386 LTb(a, b, Udd(d, 1));
69387 _Yb(b, Udd(d, 1));
69388 Qdd(d);
69389 }
69390 function eKc(a, b, c2, d, e) {
69391 FJc();
69392 AFb(DFb(CFb(BFb(EFb(new FFb(), 0), e.d.e - a), b), e.d));
69393 AFb(DFb(CFb(BFb(EFb(new FFb(), 0), c2 - e.a.e), e.a), d));
69394 }
69395 function e$c(a, b, c2, d, e, f2) {
69396 this.a = a;
69397 this.c = b;
69398 this.b = c2;
69399 this.f = d;
69400 this.d = e;
69401 this.e = f2;
69402 this.c > 0 && this.b > 0 && q$c(this.c, this.b, this.a);
69403 }
69404 function ezc(a) {
69405 dzc();
69406 this.c = Ou(OC(GC(h0, 1), Uhe, 831, 0, [Uyc]));
69407 this.b = new Lqb();
69408 this.a = a;
69409 Rhb(this.b, bzc, 1);
69410 Hkb(czc, new Xed(this));
69411 }
69412 function I2c(a, b) {
69413 var c2;
69414 if (a.d) {
69415 if (Mhb(a.b, b)) {
69416 return BD(Ohb(a.b, b), 51);
69417 } else {
69418 c2 = b.Kf();
69419 Rhb(a.b, b, c2);
69420 return c2;
69421 }
69422 } else {
69423 return b.Kf();
69424 }
69425 }
69426 function Kgb(a, b) {
69427 var c2;
69428 if (PD(a) === PD(b)) {
69429 return true;
69430 }
69431 if (JD(b, 91)) {
69432 c2 = BD(b, 91);
69433 return a.e == c2.e && a.d == c2.d && Lgb(a, c2.a);
69434 }
69435 return false;
69436 }
69437 function Zcd(a) {
69438 Ucd();
69439 switch (a.g) {
69440 case 4:
69441 return Acd;
69442 case 1:
69443 return zcd;
69444 case 3:
69445 return Rcd;
69446 case 2:
69447 return Tcd;
69448 default:
69449 return Scd;
69450 }
69451 }
69452 function Ykd(a, b) {
69453 switch (b) {
69454 case 3:
69455 return a.f != 0;
69456 case 4:
69457 return a.g != 0;
69458 case 5:
69459 return a.i != 0;
69460 case 6:
69461 return a.j != 0;
69462 }
69463 return Hkd(a, b);
69464 }
69465 function gWc(a) {
69466 switch (a.g) {
69467 case 0:
69468 return new FXc();
69469 case 1:
69470 return new IXc();
69471 default:
69472 throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g)));
69473 }
69474 }
69475 function QUc(a) {
69476 switch (a.g) {
69477 case 0:
69478 return new CXc();
69479 case 1:
69480 return new MXc();
69481 default:
69482 throw vbb(new Wdb(Dne + (a.f != null ? a.f : "" + a.g)));
69483 }
69484 }
69485 function b1c(a) {
69486 switch (a.g) {
69487 case 0:
69488 return new s1c();
69489 case 1:
69490 return new w1c();
69491 default:
69492 throw vbb(new Wdb(Mre + (a.f != null ? a.f : "" + a.g)));
69493 }
69494 }
69495 function qWc(a) {
69496 switch (a.g) {
69497 case 1:
69498 return new SVc();
69499 case 2:
69500 return new KVc();
69501 default:
69502 throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g)));
69503 }
69504 }
69505 function ryb(a) {
69506 var b, c2;
69507 if (a.b) {
69508 return a.b;
69509 }
69510 c2 = lyb ? null : a.d;
69511 while (c2) {
69512 b = lyb ? null : c2.b;
69513 if (b) {
69514 return b;
69515 }
69516 c2 = lyb ? null : c2.d;
69517 }
69518 return $xb(), Zxb;
69519 }
69520 function hhb(a) {
69521 var b, c2, d;
69522 if (a.e == 0) {
69523 return 0;
69524 }
69525 b = a.d << 5;
69526 c2 = a.a[a.d - 1];
69527 if (a.e < 0) {
69528 d = Mgb(a);
69529 if (d == a.d - 1) {
69530 --c2;
69531 c2 = c2 | 0;
69532 }
69533 }
69534 b -= heb(c2);
69535 return b;
69536 }
69537 function bhb(a) {
69538 var b, c2, d;
69539 if (a < Fgb.length) {
69540 return Fgb[a];
69541 }
69542 c2 = a >> 5;
69543 b = a & 31;
69544 d = KC(WD, oje, 25, c2 + 1, 15, 1);
69545 d[c2] = 1 << b;
69546 return new Vgb(1, c2 + 1, d);
69547 }
69548 function O2b(a) {
69549 var b, c2, d;
69550 c2 = a.zg();
69551 if (c2) {
69552 b = a.Ug();
69553 if (JD(b, 160)) {
69554 d = O2b(BD(b, 160));
69555 if (d != null) {
69556 return d + "." + c2;
69557 }
69558 }
69559 return c2;
69560 }
69561 return null;
69562 }
69563 function ze(a, b, c2) {
69564 var d, e;
69565 for (e = a.Kc(); e.Ob(); ) {
69566 d = e.Pb();
69567 if (PD(b) === PD(d) || b != null && pb(b, d)) {
69568 c2 && e.Qb();
69569 return true;
69570 }
69571 }
69572 return false;
69573 }
69574 function zvd(a, b, c2) {
69575 var d, e;
69576 ++a.j;
69577 if (c2.dc()) {
69578 return false;
69579 } else {
69580 for (e = c2.Kc(); e.Ob(); ) {
69581 d = e.Pb();
69582 a.Hi(b, a.oi(b, d));
69583 ++b;
69584 }
69585 return true;
69586 }
69587 }
69588 function yA(a, b, c2, d) {
69589 var e, f2;
69590 f2 = c2 - b;
69591 if (f2 < 3) {
69592 while (f2 < 3) {
69593 a *= 10;
69594 ++f2;
69595 }
69596 } else {
69597 e = 1;
69598 while (f2 > 3) {
69599 e *= 10;
69600 --f2;
69601 }
69602 a = (a + (e >> 1)) / e | 0;
69603 }
69604 d.i = a;
69605 return true;
69606 }
69607 function XUb(a) {
69608 LUb();
69609 return Bcb(), GVb(BD(a.a, 81).j, BD(a.b, 103)) || BD(a.a, 81).d.e != 0 && GVb(BD(a.a, 81).j, BD(a.b, 103)) ? true : false;
69610 }
69611 function s3c(a) {
69612 p3c();
69613 if (BD(a.We((Y9c(), b9c)), 174).Hc((Idd(), Gdd))) {
69614 BD(a.We(x9c), 174).Fc((rcd(), qcd));
69615 BD(a.We(b9c), 174).Mc(Gdd);
69616 }
69617 }
69618 function Gxd(a, b) {
69619 var c2, d;
69620 if (!b) {
69621 return false;
69622 } else {
69623 for (c2 = 0; c2 < a.i; ++c2) {
69624 d = BD(a.g[c2], 366);
69625 if (d.Di(b)) {
69626 return false;
69627 }
69628 }
69629 return wtd(a, b);
69630 }
69631 }
69632 function pvd(a) {
69633 var b, c2, d, e;
69634 b = new wB();
69635 for (e = new Dnb(a.b.Kc()); e.b.Ob(); ) {
69636 d = BD(e.b.Pb(), 686);
69637 c2 = lsd(d);
69638 uB(b, b.a.length, c2);
69639 }
69640 return b.a;
69641 }
69642 function cLb(a) {
69643 var b;
69644 !a.c && (a.c = new VKb());
69645 Okb(a.d, new jLb());
69646 _Kb(a);
69647 b = UKb(a);
69648 MAb(new YAb(null, new Kub(a.d, 16)), new CLb(a));
69649 return b;
69650 }
69651 function mKd(a) {
69652 var b;
69653 if ((a.Db & 64) != 0)
69654 return qnd(a);
69655 b = new Jfb(qnd(a));
69656 b.a += " (instanceClassName: ";
69657 Efb(b, a.D);
69658 b.a += ")";
69659 return b.a;
69660 }
69661 function Pqd(a, b) {
69662 var c2, d, e, f2;
69663 if (b) {
69664 e = Xpd(b, "x");
69665 c2 = new bsd(a);
69666 hmd(c2.a, (uCb(e), e));
69667 f2 = Xpd(b, "y");
69668 d = new csd(a);
69669 imd(d.a, (uCb(f2), f2));
69670 }
69671 }
69672 function Eqd(a, b) {
69673 var c2, d, e, f2;
69674 if (b) {
69675 e = Xpd(b, "x");
69676 c2 = new Yrd(a);
69677 omd(c2.a, (uCb(e), e));
69678 f2 = Xpd(b, "y");
69679 d = new _rd(a);
69680 pmd(d.a, (uCb(f2), f2));
69681 }
69682 }
69683 function bLd(a, b) {
69684 var c2, d, e;
69685 c2 = (a.i == null && TKd(a), a.i);
69686 d = b.aj();
69687 if (d != -1) {
69688 for (e = c2.length; d < e; ++d) {
69689 if (c2[d] == b) {
69690 return d;
69691 }
69692 }
69693 }
69694 return -1;
69695 }
69696 function tNd(a) {
69697 var b, c2, d, e, f2;
69698 c2 = BD(a.g, 674);
69699 for (d = a.i - 1; d >= 0; --d) {
69700 b = c2[d];
69701 for (e = 0; e < d; ++e) {
69702 f2 = c2[e];
69703 if (uNd(a, b, f2)) {
69704 tud(a, d);
69705 break;
69706 }
69707 }
69708 }
69709 }
69710 function jCb(b) {
69711 var c2 = b.e;
69712 function d(a) {
69713 if (!a || a.length == 0) {
69714 return "";
69715 }
69716 return " " + a.join("\n ");
69717 }
69718 return c2 && (c2.stack || d(b[Yie]));
69719 }
69720 function nm(a) {
69721 im();
69722 var b;
69723 b = a.Pc();
69724 switch (b.length) {
69725 case 0:
69726 return hm;
69727 case 1:
69728 return new my(Qb(b[0]));
69729 default:
69730 return new ux(wm(b));
69731 }
69732 }
69733 function W_b(a, b) {
69734 switch (b.g) {
69735 case 1:
69736 return Nq(a.j, (z0b(), u0b));
69737 case 2:
69738 return Nq(a.j, (z0b(), w0b));
69739 default:
69740 return mmb(), mmb(), jmb;
69741 }
69742 }
69743 function $kd(a, b) {
69744 switch (b) {
69745 case 3:
69746 ald(a, 0);
69747 return;
69748 case 4:
69749 cld(a, 0);
69750 return;
69751 case 5:
69752 dld(a, 0);
69753 return;
69754 case 6:
69755 eld(a, 0);
69756 return;
69757 }
69758 Jkd(a, b);
69759 }
69760 function dzc() {
69761 dzc = ccb;
69762 Vyc();
69763 bzc = (Nyc(), vyc);
69764 czc = Ou(OC(GC(Q3, 1), zqe, 146, 0, [kyc, lyc, nyc, oyc, ryc, syc, tyc, uyc, xyc, zyc, myc, pyc, wyc]));
69765 }
69766 function Y9b(a) {
69767 var b, c2;
69768 b = a.d == (Apc(), vpc);
69769 c2 = U9b(a);
69770 b && !c2 || !b && c2 ? yNb(a.a, (Nyc(), mwc), (F7c(), D7c)) : yNb(a.a, (Nyc(), mwc), (F7c(), C7c));
69771 }
69772 function XAb(a, b) {
69773 var c2;
69774 c2 = BD(GAb(a, Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
69775 return c2.Qc(aBb(c2.gc()));
69776 }
69777 function Ded() {
69778 Ded = ccb;
69779 Ced = new Eed("SIMPLE", 0);
69780 zed = new Eed("GROUP_DEC", 1);
69781 Bed = new Eed("GROUP_MIXED", 2);
69782 Aed = new Eed("GROUP_INC", 3);
69783 }
69784 function CWd() {
69785 CWd = ccb;
69786 AWd = new DWd();
69787 tWd = new GWd();
69788 uWd = new JWd();
69789 vWd = new MWd();
69790 wWd = new PWd();
69791 xWd = new SWd();
69792 yWd = new VWd();
69793 zWd = new YWd();
69794 BWd = new _Wd();
69795 }
69796 function FHb(a, b, c2) {
69797 tHb();
69798 oHb.call(this);
69799 this.a = IC(oN, [nie, ile], [595, 212], 0, [sHb, rHb], 2);
69800 this.c = new I6c();
69801 this.g = a;
69802 this.f = b;
69803 this.d = c2;
69804 }
69805 function pNb(a, b) {
69806 this.n = IC(XD, [nie, Sje], [364, 25], 14, [b, QD($wnd.Math.ceil(a / 32))], 2);
69807 this.o = a;
69808 this.p = b;
69809 this.j = a - 1 >> 1;
69810 this.k = b - 1 >> 1;
69811 }
69812 function r3b(a, b) {
69813 Odd(b, "End label post-processing", 1);
69814 MAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new w3b()), new y3b()), new A3b());
69815 Qdd(b);
69816 }
69817 function NLc(a, b, c2) {
69818 var d, e;
69819 d = Edb(a.p[b.i.p]) + Edb(a.d[b.i.p]) + b.n.b + b.a.b;
69820 e = Edb(a.p[c2.i.p]) + Edb(a.d[c2.i.p]) + c2.n.b + c2.a.b;
69821 return e - d;
69822 }
69823 function xhb(a, b, c2) {
69824 var d, e;
69825 d = xbb(c2, Yje);
69826 for (e = 0; ybb(d, 0) != 0 && e < b; e++) {
69827 d = wbb(d, xbb(a[e], Yje));
69828 a[e] = Tbb(d);
69829 d = Obb(d, 32);
69830 }
69831 return Tbb(d);
69832 }
69833 function $Ed(a) {
69834 var b, c2, d, e;
69835 e = 0;
69836 for (c2 = 0, d = a.length; c2 < d; c2++) {
69837 b = (BCb(c2, a.length), a.charCodeAt(c2));
69838 b < 64 && (e = Mbb(e, Nbb(1, b)));
69839 }
69840 return e;
69841 }
69842 function S9d(a) {
69843 var b;
69844 return a == null ? null : new Ygb((b = Qge(a, true), b.length > 0 && (BCb(0, b.length), b.charCodeAt(0) == 43) ? b.substr(1) : b));
69845 }
69846 function T9d(a) {
69847 var b;
69848 return a == null ? null : new Ygb((b = Qge(a, true), b.length > 0 && (BCb(0, b.length), b.charCodeAt(0) == 43) ? b.substr(1) : b));
69849 }
69850 function xud(a, b) {
69851 var c2;
69852 if (a.i > 0) {
69853 if (b.length < a.i) {
69854 c2 = izd(rb(b).c, a.i);
69855 b = c2;
69856 }
69857 $fb(a.g, 0, b, 0, a.i);
69858 }
69859 b.length > a.i && NC(b, a.i, null);
69860 return b;
69861 }
69862 function Sxd(a, b, c2) {
69863 var d, e, f2;
69864 if (a.ej()) {
69865 d = a.i;
69866 f2 = a.fj();
69867 kud(a, d, b);
69868 e = a.Zi(3, null, b, d, f2);
69869 !c2 ? c2 = e : c2.Ei(e);
69870 } else {
69871 kud(a, a.i, b);
69872 }
69873 return c2;
69874 }
69875 function HMd(a, b, c2) {
69876 var d, e;
69877 d = new pSd(a.e, 4, 10, (e = b.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd)), null, HLd(a, b), false);
69878 !c2 ? c2 = d : c2.Ei(d);
69879 return c2;
69880 }
69881 function GMd(a, b, c2) {
69882 var d, e;
69883 d = new pSd(a.e, 3, 10, null, (e = b.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd)), HLd(a, b), false);
69884 !c2 ? c2 = d : c2.Ei(d);
69885 return c2;
69886 }
69887 function _Jb(a) {
69888 $Jb();
69889 var b;
69890 b = new g7c(BD(a.e.We((Y9c(), _8c)), 8));
69891 if (a.B.Hc((Idd(), Bdd))) {
69892 b.a <= 0 && (b.a = 20);
69893 b.b <= 0 && (b.b = 20);
69894 }
69895 return b;
69896 }
69897 function Lzc(a) {
69898 Izc();
69899 var b;
69900 (!a.q ? (mmb(), mmb(), kmb) : a.q)._b((Nyc(), Cxc)) ? b = BD(vNb(a, Cxc), 197) : b = BD(vNb(Q_b(a), Dxc), 197);
69901 return b;
69902 }
69903 function pBc(a, b) {
69904 var c2, d;
69905 d = null;
69906 if (wNb(a, (Nyc(), qyc))) {
69907 c2 = BD(vNb(a, qyc), 94);
69908 c2.Xe(b) && (d = c2.We(b));
69909 }
69910 d == null && (d = vNb(Q_b(a), b));
69911 return d;
69912 }
69913 function Ze(a, b) {
69914 var c2, d, e;
69915 if (JD(b, 42)) {
69916 c2 = BD(b, 42);
69917 d = c2.cd();
69918 e = Hv(a.Rc(), d);
69919 return Hb(e, c2.dd()) && (e != null || a.Rc()._b(d));
69920 }
69921 return false;
69922 }
69923 function qAd(a, b) {
69924 var c2, d, e;
69925 if (a.f > 0) {
69926 a.qj();
69927 d = b == null ? 0 : tb(b);
69928 e = (d & Ohe) % a.d.length;
69929 c2 = xAd(a, e, d, b);
69930 return c2 != -1;
69931 } else {
69932 return false;
69933 }
69934 }
69935 function AAd(a, b) {
69936 var c2, d, e;
69937 if (a.f > 0) {
69938 a.qj();
69939 d = b == null ? 0 : tb(b);
69940 e = (d & Ohe) % a.d.length;
69941 c2 = wAd(a, e, d, b);
69942 if (c2) {
69943 return c2.dd();
69944 }
69945 }
69946 return null;
69947 }
69948 function R2d(a, b) {
69949 var c2, d, e, f2;
69950 f2 = S6d(a.e.Tg(), b);
69951 c2 = BD(a.g, 119);
69952 for (e = 0; e < a.i; ++e) {
69953 d = c2[e];
69954 if (f2.rl(d.ak())) {
69955 return false;
69956 }
69957 }
69958 return true;
69959 }
69960 function B6d(a) {
69961 if (a.b == null) {
69962 while (a.a.Ob()) {
69963 a.b = a.a.Pb();
69964 if (!BD(a.b, 49).Zg()) {
69965 return true;
69966 }
69967 }
69968 a.b = null;
69969 return false;
69970 } else {
69971 return true;
69972 }
69973 }
69974 function Myd(b, c2) {
69975 b.mj();
69976 try {
69977 b.d.Vc(b.e++, c2);
69978 b.f = b.d.j;
69979 b.g = -1;
69980 } catch (a) {
69981 a = ubb(a);
69982 if (JD(a, 73)) {
69983 throw vbb(new Apb());
69984 } else
69985 throw vbb(a);
69986 }
69987 }
69988 function IA(a, b) {
69989 GA();
69990 var c2, d;
69991 c2 = LA((KA(), KA(), JA));
69992 d = null;
69993 b == c2 && (d = BD(Phb(FA, a), 615));
69994 if (!d) {
69995 d = new HA(a);
69996 b == c2 && Shb(FA, a, d);
69997 }
69998 return d;
69999 }
70000 function Epb(a, b) {
70001 var c2, d;
70002 a.a = wbb(a.a, 1);
70003 a.c = $wnd.Math.min(a.c, b);
70004 a.b = $wnd.Math.max(a.b, b);
70005 a.d += b;
70006 c2 = b - a.f;
70007 d = a.e + c2;
70008 a.f = d - a.e - c2;
70009 a.e = d;
70010 }
70011 function ogb(a, b) {
70012 var c2;
70013 a.c = b;
70014 a.a = hhb(b);
70015 a.a < 54 && (a.f = (c2 = b.d > 1 ? Mbb(Nbb(b.a[1], 32), xbb(b.a[0], Yje)) : xbb(b.a[0], Yje), Sbb(Ibb(b.e, c2))));
70016 }
70017 function Hbb(a, b) {
70018 var c2;
70019 if (Fbb(a) && Fbb(b)) {
70020 c2 = a % b;
70021 if (Kje < c2 && c2 < Ije) {
70022 return c2;
70023 }
70024 }
70025 return zbb((UC(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b, true), QC));
70026 }
70027 function p5b(a, b) {
70028 var c2;
70029 m5b(b);
70030 c2 = BD(vNb(a, (Nyc(), Rwc)), 276);
70031 !!c2 && yNb(a, Rwc, Tqc(c2));
70032 n5b(a.c);
70033 n5b(a.f);
70034 o5b(a.d);
70035 o5b(BD(vNb(a, wxc), 207));
70036 }
70037 function rHc(a) {
70038 this.e = KC(WD, oje, 25, a.length, 15, 1);
70039 this.c = KC(sbb, dle, 25, a.length, 16, 1);
70040 this.b = KC(sbb, dle, 25, a.length, 16, 1);
70041 this.f = 0;
70042 }
70043 function BDc(a) {
70044 var b, c2;
70045 a.j = KC(UD, Vje, 25, a.p.c.length, 15, 1);
70046 for (c2 = new olb(a.p); c2.a < c2.c.c.length; ) {
70047 b = BD(mlb(c2), 10);
70048 a.j[b.p] = b.o.b / a.i;
70049 }
70050 }
70051 function yic(a) {
70052 var b;
70053 if (a.c == 0) {
70054 return;
70055 }
70056 b = BD(Ikb(a.a, a.b), 287);
70057 b.b == 1 ? (++a.b, a.b < a.a.c.length && Cic(BD(Ikb(a.a, a.b), 287))) : --b.b;
70058 --a.c;
70059 }
70060 function eac(a) {
70061 var b;
70062 b = a.a;
70063 do {
70064 b = BD(Rr(new Sr(ur(U_b(b).a.Kc(), new Sq()))), 17).d.i;
70065 b.k == (j0b(), g0b) && Ekb(a.e, b);
70066 } while (b.k == (j0b(), g0b));
70067 }
70068 function idd() {
70069 idd = ccb;
70070 fdd = new q0b(15);
70071 edd = new Osd((Y9c(), f9c), fdd);
70072 hdd = new Osd(T9c, 15);
70073 gdd = new Osd(E9c, meb(0));
70074 ddd = new Osd(r8c, tme);
70075 }
70076 function tdd() {
70077 tdd = ccb;
70078 rdd = new udd("PORTS", 0);
70079 sdd = new udd("PORT_LABELS", 1);
70080 qdd = new udd("NODE_LABELS", 2);
70081 pdd = new udd("MINIMUM_SIZE", 3);
70082 }
70083 function Ree(a, b) {
70084 var c2, d;
70085 d = b.length;
70086 for (c2 = 0; c2 < d; c2 += 2)
70087 Ufe(a, (BCb(c2, b.length), b.charCodeAt(c2)), (BCb(c2 + 1, b.length), b.charCodeAt(c2 + 1)));
70088 }
70089 function _Zc(a, b, c2) {
70090 var d, e, f2, g;
70091 f2 = b - a.e;
70092 g = c2 - a.f;
70093 for (e = new olb(a.a); e.a < e.c.c.length; ) {
70094 d = BD(mlb(e), 187);
70095 OZc(d, d.s + f2, d.t + g);
70096 }
70097 a.e = b;
70098 a.f = c2;
70099 }
70100 function jUc(a, b) {
70101 var c2, d, e, f2;
70102 f2 = b.b.b;
70103 a.a = new Psb();
70104 a.b = KC(WD, oje, 25, f2, 15, 1);
70105 c2 = 0;
70106 for (e = Jsb(b.b, 0); e.b != e.d.c; ) {
70107 d = BD(Xsb(e), 86);
70108 d.g = c2++;
70109 }
70110 }
70111 function ihb(a, b) {
70112 var c2, d, e, f2;
70113 c2 = b >> 5;
70114 b &= 31;
70115 e = a.d + c2 + (b == 0 ? 0 : 1);
70116 d = KC(WD, oje, 25, e, 15, 1);
70117 jhb(d, a.a, c2, b);
70118 f2 = new Vgb(a.e, e, d);
70119 Jgb(f2);
70120 return f2;
70121 }
70122 function Ofe(a, b, c2) {
70123 var d, e;
70124 d = BD(Phb(Zee, b), 117);
70125 e = BD(Phb($ee, b), 117);
70126 if (c2) {
70127 Shb(Zee, a, d);
70128 Shb($ee, a, e);
70129 } else {
70130 Shb($ee, a, d);
70131 Shb(Zee, a, e);
70132 }
70133 }
70134 function Cwb(a, b, c2) {
70135 var d, e, f2;
70136 e = null;
70137 f2 = a.b;
70138 while (f2) {
70139 d = a.a.ue(b, f2.d);
70140 if (c2 && d == 0) {
70141 return f2;
70142 }
70143 if (d >= 0) {
70144 f2 = f2.a[1];
70145 } else {
70146 e = f2;
70147 f2 = f2.a[0];
70148 }
70149 }
70150 return e;
70151 }
70152 function Dwb(a, b, c2) {
70153 var d, e, f2;
70154 e = null;
70155 f2 = a.b;
70156 while (f2) {
70157 d = a.a.ue(b, f2.d);
70158 if (c2 && d == 0) {
70159 return f2;
70160 }
70161 if (d <= 0) {
70162 f2 = f2.a[0];
70163 } else {
70164 e = f2;
70165 f2 = f2.a[1];
70166 }
70167 }
70168 return e;
70169 }
70170 function Nic(a, b, c2, d) {
70171 var e, f2, g;
70172 e = false;
70173 if (fjc(a.f, c2, d)) {
70174 ijc(a.f, a.a[b][c2], a.a[b][d]);
70175 f2 = a.a[b];
70176 g = f2[d];
70177 f2[d] = f2[c2];
70178 f2[c2] = g;
70179 e = true;
70180 }
70181 return e;
70182 }
70183 function QHc(a, b, c2, d, e) {
70184 var f2, g, h;
70185 g = e;
70186 while (b.b != b.c) {
70187 f2 = BD(fkb(b), 10);
70188 h = BD(V_b(f2, d).Xb(0), 11);
70189 a.d[h.p] = g++;
70190 c2.c[c2.c.length] = h;
70191 }
70192 return g;
70193 }
70194 function hBc(a, b, c2) {
70195 var d, e, f2, g, h;
70196 g = a.k;
70197 h = b.k;
70198 d = c2[g.g][h.g];
70199 e = ED(pBc(a, d));
70200 f2 = ED(pBc(b, d));
70201 return $wnd.Math.max((uCb(e), e), (uCb(f2), f2));
70202 }
70203 function zZc(a, b, c2) {
70204 var d, e, f2, g;
70205 d = c2 / a.c.length;
70206 e = 0;
70207 for (g = new olb(a); g.a < g.c.c.length; ) {
70208 f2 = BD(mlb(g), 200);
70209 w$c(f2, f2.f + d * e);
70210 t$c(f2, b, d);
70211 ++e;
70212 }
70213 }
70214 function hnc(a, b, c2) {
70215 var d, e, f2, g;
70216 e = BD(Ohb(a.b, c2), 177);
70217 d = 0;
70218 for (g = new olb(b.j); g.a < g.c.c.length; ) {
70219 f2 = BD(mlb(g), 113);
70220 e[f2.d.p] && ++d;
70221 }
70222 return d;
70223 }
70224 function mzd(a) {
70225 var b, c2;
70226 b = BD(Ajd(a.a, 4), 126);
70227 if (b != null) {
70228 c2 = KC($3, hve, 415, b.length, 0, 1);
70229 $fb(b, 0, c2, 0, b.length);
70230 return c2;
70231 } else {
70232 return jzd;
70233 }
70234 }
70235 function Cz() {
70236 var a;
70237 if (xz != 0) {
70238 a = sz();
70239 if (a - yz > 2e3) {
70240 yz = a;
70241 zz = $wnd.setTimeout(Iz, 10);
70242 }
70243 }
70244 if (xz++ == 0) {
70245 Lz((Kz(), Jz));
70246 return true;
70247 }
70248 return false;
70249 }
70250 function wCc(a, b) {
70251 var c2, d, e;
70252 for (d = new Sr(ur(U_b(a).a.Kc(), new Sq())); Qr(d); ) {
70253 c2 = BD(Rr(d), 17);
70254 e = c2.d.i;
70255 if (e.c == b) {
70256 return false;
70257 }
70258 }
70259 return true;
70260 }
70261 function Ek(b, c2) {
70262 var d, e;
70263 if (JD(c2, 245)) {
70264 e = BD(c2, 245);
70265 try {
70266 d = b.vd(e);
70267 return d == 0;
70268 } catch (a) {
70269 a = ubb(a);
70270 if (!JD(a, 205))
70271 throw vbb(a);
70272 }
70273 }
70274 return false;
70275 }
70276 function Xz() {
70277 if (Error.stackTraceLimit > 0) {
70278 $wnd.Error.stackTraceLimit = Error.stackTraceLimit = 64;
70279 return true;
70280 }
70281 return "stack" in new Error();
70282 }
70283 function BDb(a, b) {
70284 return Iy(), Iy(), My(Qie), ($wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b))) > 0;
70285 }
70286 function DDb(a, b) {
70287 return Iy(), Iy(), My(Qie), ($wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b))) < 0;
70288 }
70289 function CDb(a, b) {
70290 return Iy(), Iy(), My(Qie), ($wnd.Math.abs(a - b) <= Qie || a == b || isNaN(a) && isNaN(b) ? 0 : a < b ? -1 : a > b ? 1 : Ny(isNaN(a), isNaN(b))) <= 0;
70291 }
70292 function ydb(a, b) {
70293 var c2 = 0;
70294 while (!b[c2] || b[c2] == "") {
70295 c2++;
70296 }
70297 var d = b[c2++];
70298 for (; c2 < b.length; c2++) {
70299 if (!b[c2] || b[c2] == "") {
70300 continue;
70301 }
70302 d += a + b[c2];
70303 }
70304 return d;
70305 }
70306 function zfb(a, b, c2) {
70307 var d, e, f2, g;
70308 f2 = b + c2;
70309 ACb(b, f2, a.length);
70310 g = "";
70311 for (e = b; e < f2; ) {
70312 d = $wnd.Math.min(e + 1e4, f2);
70313 g += vfb(a.slice(e, d));
70314 e = d;
70315 }
70316 return g;
70317 }
70318 function N9d(a) {
70319 var b, c2, d, e, f2;
70320 if (a == null)
70321 return null;
70322 f2 = new Rkb();
70323 for (c2 = Zmd(a), d = 0, e = c2.length; d < e; ++d) {
70324 b = c2[d];
70325 Ekb(f2, Qge(b, true));
70326 }
70327 return f2;
70328 }
70329 function Q9d(a) {
70330 var b, c2, d, e, f2;
70331 if (a == null)
70332 return null;
70333 f2 = new Rkb();
70334 for (c2 = Zmd(a), d = 0, e = c2.length; d < e; ++d) {
70335 b = c2[d];
70336 Ekb(f2, Qge(b, true));
70337 }
70338 return f2;
70339 }
70340 function R9d(a) {
70341 var b, c2, d, e, f2;
70342 if (a == null)
70343 return null;
70344 f2 = new Rkb();
70345 for (c2 = Zmd(a), d = 0, e = c2.length; d < e; ++d) {
70346 b = c2[d];
70347 Ekb(f2, Qge(b, true));
70348 }
70349 return f2;
70350 }
70351 function ted(a, b) {
70352 var c2, d, e;
70353 if (a.c) {
70354 cld(a.c, b);
70355 } else {
70356 c2 = b - red(a);
70357 for (e = new olb(a.d); e.a < e.c.c.length; ) {
70358 d = BD(mlb(e), 157);
70359 ted(d, red(d) + c2);
70360 }
70361 }
70362 }
70363 function sed(a, b) {
70364 var c2, d, e;
70365 if (a.c) {
70366 ald(a.c, b);
70367 } else {
70368 c2 = b - qed(a);
70369 for (e = new olb(a.a); e.a < e.c.c.length; ) {
70370 d = BD(mlb(e), 157);
70371 sed(d, qed(d) + c2);
70372 }
70373 }
70374 }
70375 function t6d(a, b) {
70376 var c2, d, e, f2;
70377 e = new Skb(b.gc());
70378 for (d = b.Kc(); d.Ob(); ) {
70379 c2 = d.Pb();
70380 f2 = s6d(a, BD(c2, 56));
70381 !!f2 && (e.c[e.c.length] = f2, true);
70382 }
70383 return e;
70384 }
70385 function LAd(a, b) {
70386 var c2, d, e;
70387 a.qj();
70388 d = b == null ? 0 : tb(b);
70389 e = (d & Ohe) % a.d.length;
70390 c2 = wAd(a, e, d, b);
70391 if (c2) {
70392 JAd(a, c2);
70393 return c2.dd();
70394 } else {
70395 return null;
70396 }
70397 }
70398 function rde(a) {
70399 var b, c2;
70400 c2 = sde(a);
70401 b = null;
70402 while (a.c == 2) {
70403 nde(a);
70404 if (!b) {
70405 b = (wfe(), wfe(), new Lge(2));
70406 Kge(b, c2);
70407 c2 = b;
70408 }
70409 c2.$l(sde(a));
70410 }
70411 return c2;
70412 }
70413 function Wpd(a) {
70414 var b, c2, d;
70415 d = null;
70416 b = Vte in a.a;
70417 c2 = !b;
70418 if (c2) {
70419 throw vbb(new cqd("Every element must have an id."));
70420 }
70421 d = Vpd(aC(a, Vte));
70422 return d;
70423 }
70424 function jid(a) {
70425 var b, c2, d;
70426 d = a.Zg();
70427 if (!d) {
70428 b = 0;
70429 for (c2 = a.eh(); c2; c2 = c2.eh()) {
70430 if (++b > Wje) {
70431 return c2.fh();
70432 }
70433 d = c2.Zg();
70434 if (!!d || c2 == a) {
70435 break;
70436 }
70437 }
70438 }
70439 return d;
70440 }
70441 function fvd(a) {
70442 evd();
70443 if (JD(a, 156)) {
70444 return BD(Ohb(cvd, hK), 288).vg(a);
70445 }
70446 if (Mhb(cvd, rb(a))) {
70447 return BD(Ohb(cvd, rb(a)), 288).vg(a);
70448 }
70449 return null;
70450 }
70451 function fZd(a) {
70452 if (efb(kse, a)) {
70453 return Bcb(), Acb;
70454 } else if (efb(lse, a)) {
70455 return Bcb(), zcb;
70456 } else {
70457 throw vbb(new Wdb("Expecting true or false"));
70458 }
70459 }
70460 function uDc(a, b) {
70461 if (b.c == a) {
70462 return b.d;
70463 } else if (b.d == a) {
70464 return b.c;
70465 }
70466 throw vbb(new Wdb("Input edge is not connected to the input port."));
70467 }
70468 function Igb(a, b) {
70469 if (a.e > b.e) {
70470 return 1;
70471 }
70472 if (a.e < b.e) {
70473 return -1;
70474 }
70475 if (a.d > b.d) {
70476 return a.e;
70477 }
70478 if (a.d < b.d) {
70479 return -b.e;
70480 }
70481 return a.e * whb(a.a, b.a, a.d);
70482 }
70483 function Zcb(a) {
70484 if (a >= 48 && a < 48 + $wnd.Math.min(10, 10)) {
70485 return a - 48;
70486 }
70487 if (a >= 97 && a < 97) {
70488 return a - 97 + 10;
70489 }
70490 if (a >= 65 && a < 65) {
70491 return a - 65 + 10;
70492 }
70493 return -1;
70494 }
70495 function Ue(a, b) {
70496 var c2;
70497 if (PD(b) === PD(a)) {
70498 return true;
70499 }
70500 if (!JD(b, 21)) {
70501 return false;
70502 }
70503 c2 = BD(b, 21);
70504 if (c2.gc() != a.gc()) {
70505 return false;
70506 }
70507 return a.Ic(c2);
70508 }
70509 function ekb(a, b) {
70510 var c2, d, e, f2;
70511 d = a.a.length - 1;
70512 c2 = b - a.b & d;
70513 f2 = a.c - b & d;
70514 e = a.c - a.b & d;
70515 mkb(c2 < e);
70516 if (c2 >= f2) {
70517 hkb(a, b);
70518 return -1;
70519 } else {
70520 ikb(a, b);
70521 return 1;
70522 }
70523 }
70524 function lA(a, b) {
70525 var c2, d;
70526 c2 = (BCb(b, a.length), a.charCodeAt(b));
70527 d = b + 1;
70528 while (d < a.length && (BCb(d, a.length), a.charCodeAt(d) == c2)) {
70529 ++d;
70530 }
70531 return d - b;
70532 }
70533 function sJb(a) {
70534 switch (a.g) {
70535 case 12:
70536 case 13:
70537 case 14:
70538 case 15:
70539 case 16:
70540 case 17:
70541 case 18:
70542 case 19:
70543 case 20:
70544 return true;
70545 default:
70546 return false;
70547 }
70548 }
70549 function bC(f2, a) {
70550 var b = f2.a;
70551 var c2;
70552 a = String(a);
70553 b.hasOwnProperty(a) && (c2 = b[a]);
70554 var d = (rC(), qC)[typeof c2];
70555 var e = d ? d(c2) : xC(typeof c2);
70556 return e;
70557 }
70558 function b3c(a, b) {
70559 if (a.a < 0) {
70560 throw vbb(new Zdb("Did not call before(...) or after(...) before calling add(...)."));
70561 }
70562 i3c(a, a.a, b);
70563 return a;
70564 }
70565 function VOc(a, b, c2, d) {
70566 var e, f2;
70567 if (b.c.length == 0) {
70568 return;
70569 }
70570 e = ROc(c2, d);
70571 f2 = QOc(b);
70572 MAb(VAb(new YAb(null, new Kub(f2, 1)), new cPc()), new gPc(a, c2, e, d));
70573 }
70574 function Cjd(a, b, c2) {
70575 var d;
70576 if ((a.Db & b) != 0) {
70577 if (c2 == null) {
70578 Bjd(a, b);
70579 } else {
70580 d = zjd(a, b);
70581 d == -1 ? a.Eb = c2 : NC(CD(a.Eb), d, c2);
70582 }
70583 } else
70584 c2 != null && vjd(a, b, c2);
70585 }
70586 function yjd(a) {
70587 var b, c2;
70588 if ((a.Db & 32) == 0) {
70589 c2 = (b = BD(Ajd(a, 16), 26), aLd(!b ? a.zh() : b) - aLd(a.zh()));
70590 c2 != 0 && Cjd(a, 32, KC(SI, Uhe, 1, c2, 5, 1));
70591 }
70592 return a;
70593 }
70594 function W1d(a) {
70595 var b;
70596 a.b || X1d(a, (b = h1d(a.e, a.a), !b || !dfb(lse, AAd((!b.b && (b.b = new sId((jGd(), fGd), x6, b)), b.b), "qualified"))));
70597 return a.c;
70598 }
70599 function dTd(a, b, c2) {
70600 var d, e, f2;
70601 d = BD(qud(QSd(a.a), b), 87);
70602 f2 = (e = d.c, e ? e : (jGd(), YFd));
70603 (f2.kh() ? xid(a.b, BD(f2, 49)) : f2) == c2 ? KQd(d) : NQd(d, c2);
70604 return f2;
70605 }
70606 function fCb(a, b) {
70607 (!b && console.groupCollapsed != null ? console.groupCollapsed : console.group != null ? console.group : console.log).call(console, a);
70608 }
70609 function NNb(a, b, c2, d) {
70610 d == a ? (BD(c2.b, 65), BD(c2.b, 65), BD(d.b, 65), BD(d.b, 65).c.b) : (BD(c2.b, 65), BD(c2.b, 65), BD(d.b, 65), BD(d.b, 65).c.b);
70611 KNb(d, b, a);
70612 }
70613 function EOb(a) {
70614 var c2, d;
70615 for (c2 = new olb(a.g); c2.a < c2.c.c.length; ) {
70616 BD(mlb(c2), 562);
70617 }
70618 d = new ENb(a.g, Edb(a.a), a.c);
70619 ELb(d);
70620 a.g = d.b;
70621 a.d = d.a;
70622 }
70623 function ymc(a, b, c2) {
70624 b.b = $wnd.Math.max(b.b, -c2.a);
70625 b.c = $wnd.Math.max(b.c, c2.a - a.a);
70626 b.d = $wnd.Math.max(b.d, -c2.b);
70627 b.a = $wnd.Math.max(b.a, c2.b - a.b);
70628 }
70629 function MIc(a, b) {
70630 if (a.e < b.e) {
70631 return -1;
70632 } else if (a.e > b.e) {
70633 return 1;
70634 } else if (a.f < b.f) {
70635 return -1;
70636 } else if (a.f > b.f) {
70637 return 1;
70638 }
70639 return tb(a) - tb(b);
70640 }
70641 function efb(a, b) {
70642 uCb(a);
70643 if (b == null) {
70644 return false;
70645 }
70646 if (dfb(a, b)) {
70647 return true;
70648 }
70649 return a.length == b.length && dfb(a.toLowerCase(), b.toLowerCase());
70650 }
70651 function x6d(a, b) {
70652 var c2, d, e, f2;
70653 for (d = 0, e = b.gc(); d < e; ++d) {
70654 c2 = b.il(d);
70655 if (JD(c2, 99) && (BD(c2, 18).Bb & ote) != 0) {
70656 f2 = b.jl(d);
70657 f2 != null && s6d(a, BD(f2, 56));
70658 }
70659 }
70660 }
70661 function p1c(a, b, c2) {
70662 var d, e, f2;
70663 for (f2 = new olb(c2.a); f2.a < f2.c.c.length; ) {
70664 e = BD(mlb(f2), 221);
70665 d = new hDb(BD(Ohb(a.a, e.b), 65));
70666 Ekb(b.a, d);
70667 p1c(a, d, e);
70668 }
70669 }
70670 function Aeb(a) {
70671 var b, c2;
70672 if (ybb(a, -129) > 0 && ybb(a, 128) < 0) {
70673 b = Tbb(a) + 128;
70674 c2 = (Ceb(), Beb)[b];
70675 !c2 && (c2 = Beb[b] = new teb(a));
70676 return c2;
70677 }
70678 return new teb(a);
70679 }
70680 function _0d(a, b) {
70681 var c2, d;
70682 c2 = b.Hh(a.a);
70683 if (c2) {
70684 d = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), fue));
70685 if (d != null) {
70686 return d;
70687 }
70688 }
70689 return b.ne();
70690 }
70691 function a1d(a, b) {
70692 var c2, d;
70693 c2 = b.Hh(a.a);
70694 if (c2) {
70695 d = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), fue));
70696 if (d != null) {
70697 return d;
70698 }
70699 }
70700 return b.ne();
70701 }
70702 function FMc(a, b) {
70703 wMc();
70704 var c2, d;
70705 for (d = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(d); ) {
70706 c2 = BD(Rr(d), 17);
70707 if (c2.d.i == b || c2.c.i == b) {
70708 return c2;
70709 }
70710 }
70711 return null;
70712 }
70713 function HUb(a, b, c2) {
70714 this.c = a;
70715 this.f = new Rkb();
70716 this.e = new d7c();
70717 this.j = new IVb();
70718 this.n = new IVb();
70719 this.b = b;
70720 this.g = new J6c(b.c, b.d, b.b, b.a);
70721 this.a = c2;
70722 }
70723 function gVb(a) {
70724 var b, c2, d, e;
70725 this.a = new zsb();
70726 this.d = new Tqb();
70727 this.e = 0;
70728 for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
70729 b = c2[d];
70730 !this.f && (this.f = b);
70731 eVb(this, b);
70732 }
70733 }
70734 function Xgb(a) {
70735 Hgb();
70736 if (a.length == 0) {
70737 this.e = 0;
70738 this.d = 1;
70739 this.a = OC(GC(WD, 1), oje, 25, 15, [0]);
70740 } else {
70741 this.e = 1;
70742 this.d = a.length;
70743 this.a = a;
70744 Jgb(this);
70745 }
70746 }
70747 function mIb(a, b, c2) {
70748 oHb.call(this);
70749 this.a = KC(oN, ile, 212, (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])).length, 0, 1);
70750 this.b = a;
70751 this.d = b;
70752 this.c = c2;
70753 }
70754 function Kjc(a) {
70755 this.d = new Rkb();
70756 this.e = new $rb();
70757 this.c = KC(WD, oje, 25, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 15, 1);
70758 this.b = a;
70759 }
70760 function Vbc(a) {
70761 var b, c2, d, e, f2, g;
70762 g = BD(vNb(a, (wtc(), $sc)), 11);
70763 yNb(g, qtc, a.i.n.b);
70764 b = k_b(a.e);
70765 for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
70766 c2 = d[e];
70767 RZb(c2, g);
70768 }
70769 }
70770 function Wbc(a) {
70771 var b, c2, d, e, f2, g;
70772 c2 = BD(vNb(a, (wtc(), $sc)), 11);
70773 yNb(c2, qtc, a.i.n.b);
70774 b = k_b(a.g);
70775 for (e = b, f2 = 0, g = e.length; f2 < g; ++f2) {
70776 d = e[f2];
70777 QZb(d, c2);
70778 }
70779 }
70780 function vcc(a) {
70781 var b, c2;
70782 if (wNb(a.d.i, (Nyc(), Nxc))) {
70783 b = BD(vNb(a.c.i, Nxc), 19);
70784 c2 = BD(vNb(a.d.i, Nxc), 19);
70785 return beb(b.a, c2.a) > 0;
70786 } else {
70787 return false;
70788 }
70789 }
70790 function q2c(a) {
70791 var b;
70792 if (PD(hkd(a, (Y9c(), J8c))) === PD((hbd(), fbd))) {
70793 if (!Xod(a)) {
70794 jkd(a, J8c, gbd);
70795 } else {
70796 b = BD(hkd(Xod(a), J8c), 334);
70797 jkd(a, J8c, b);
70798 }
70799 }
70800 }
70801 function ijc(a, b, c2) {
70802 var d, e;
70803 bIc(a.e, b, c2, (Ucd(), Tcd));
70804 bIc(a.i, b, c2, zcd);
70805 if (a.a) {
70806 e = BD(vNb(b, (wtc(), $sc)), 11);
70807 d = BD(vNb(c2, $sc), 11);
70808 cIc(a.g, e, d);
70809 }
70810 }
70811 function OEc(a, b, c2) {
70812 var d, e, f2;
70813 d = b.c.p;
70814 f2 = b.p;
70815 a.b[d][f2] = new $Ec(a, b);
70816 if (c2) {
70817 a.a[d][f2] = new FEc(b);
70818 e = BD(vNb(b, (wtc(), Psc)), 10);
70819 !!e && Rc(a.d, e, b);
70820 }
70821 }
70822 function TPb(a, b) {
70823 var c2, d, e;
70824 Ekb(PPb, a);
70825 b.Fc(a);
70826 c2 = BD(Ohb(OPb, a), 21);
70827 if (c2) {
70828 for (e = c2.Kc(); e.Ob(); ) {
70829 d = BD(e.Pb(), 33);
70830 Jkb(PPb, d, 0) != -1 || TPb(d, b);
70831 }
70832 }
70833 }
70834 function tyb(a, b, c2) {
70835 var d;
70836 (jyb ? (ryb(a), true) : kyb ? ($xb(), true) : nyb ? ($xb(), true) : myb && ($xb(), false)) && (d = new iyb(b), d.b = c2, pyb(a, d), void 0);
70837 }
70838 function xKb(a, b) {
70839 var c2;
70840 c2 = !a.A.Hc((tdd(), sdd)) || a.q == (dcd(), $bd);
70841 a.u.Hc((rcd(), ncd)) ? c2 ? vKb(a, b) : zKb(a, b) : a.u.Hc(pcd) && (c2 ? wKb(a, b) : AKb(a, b));
70842 }
70843 function b0d(a, b) {
70844 var c2, d;
70845 ++a.j;
70846 if (b != null) {
70847 c2 = (d = a.a.Cb, JD(d, 97) ? BD(d, 97).Jg() : null);
70848 if (xlb(b, c2)) {
70849 Cjd(a.a, 4, c2);
70850 return;
70851 }
70852 }
70853 Cjd(a.a, 4, BD(b, 126));
70854 }
70855 function dYb(a, b, c2) {
70856 return new J6c($wnd.Math.min(a.a, b.a) - c2 / 2, $wnd.Math.min(a.b, b.b) - c2 / 2, $wnd.Math.abs(a.a - b.a) + c2, $wnd.Math.abs(a.b - b.b) + c2);
70857 }
70858 function k4b(a, b) {
70859 var c2, d;
70860 c2 = beb(a.a.c.p, b.a.c.p);
70861 if (c2 != 0) {
70862 return c2;
70863 }
70864 d = beb(a.a.d.i.p, b.a.d.i.p);
70865 if (d != 0) {
70866 return d;
70867 }
70868 return beb(b.a.d.p, a.a.d.p);
70869 }
70870 function _Dc(a, b, c2) {
70871 var d, e, f2, g;
70872 f2 = b.j;
70873 g = c2.j;
70874 if (f2 != g) {
70875 return f2.g - g.g;
70876 } else {
70877 d = a.f[b.p];
70878 e = a.f[c2.p];
70879 return d == 0 && e == 0 ? 0 : d == 0 ? -1 : e == 0 ? 1 : Kdb(d, e);
70880 }
70881 }
70882 function HFb(a, b, c2) {
70883 var d, e, f2;
70884 if (c2[b.d]) {
70885 return;
70886 }
70887 c2[b.d] = true;
70888 for (e = new olb(LFb(b)); e.a < e.c.c.length; ) {
70889 d = BD(mlb(e), 213);
70890 f2 = xFb(d, b);
70891 HFb(a, f2, c2);
70892 }
70893 }
70894 function umc(a, b, c2) {
70895 var d;
70896 d = c2[a.g][b];
70897 switch (a.g) {
70898 case 1:
70899 case 3:
70900 return new f7c(0, d);
70901 case 2:
70902 case 4:
70903 return new f7c(d, 0);
70904 default:
70905 return null;
70906 }
70907 }
70908 function r2c(b, c2, d) {
70909 var e, f2;
70910 f2 = BD(hgd(c2.f), 209);
70911 try {
70912 f2.Ze(b, d);
70913 igd(c2.f, f2);
70914 } catch (a) {
70915 a = ubb(a);
70916 if (JD(a, 102)) {
70917 e = a;
70918 throw vbb(e);
70919 } else
70920 throw vbb(a);
70921 }
70922 }
70923 function Vqd(a, b, c2) {
70924 var d, e, f2, g, h, i3;
70925 d = null;
70926 h = k4c(n4c(), b);
70927 f2 = null;
70928 if (h) {
70929 e = null;
70930 i3 = o5c(h, c2);
70931 g = null;
70932 i3 != null && (g = a.Ye(h, i3));
70933 e = g;
70934 f2 = e;
70935 }
70936 d = f2;
70937 return d;
70938 }
70939 function TTd(a, b, c2, d) {
70940 var e, f2, g;
70941 e = new pSd(a.e, 1, 13, (g = b.c, g ? g : (jGd(), YFd)), (f2 = c2.c, f2 ? f2 : (jGd(), YFd)), HLd(a, b), false);
70942 !d ? d = e : d.Ei(e);
70943 return d;
70944 }
70945 function UEd(a, b, c2, d) {
70946 var e;
70947 e = a.length;
70948 if (b >= e)
70949 return e;
70950 for (b = b > 0 ? b : 0; b < e; b++) {
70951 if (_Ed((BCb(b, a.length), a.charCodeAt(b)), c2, d))
70952 break;
70953 }
70954 return b;
70955 }
70956 function Qkb(a, b) {
70957 var c2, d;
70958 d = a.c.length;
70959 b.length < d && (b = eCb(new Array(d), b));
70960 for (c2 = 0; c2 < d; ++c2) {
70961 NC(b, c2, a.c[c2]);
70962 }
70963 b.length > d && NC(b, d, null);
70964 return b;
70965 }
70966 function _lb(a, b) {
70967 var c2, d;
70968 d = a.a.length;
70969 b.length < d && (b = eCb(new Array(d), b));
70970 for (c2 = 0; c2 < d; ++c2) {
70971 NC(b, c2, a.a[c2]);
70972 }
70973 b.length > d && NC(b, d, null);
70974 return b;
70975 }
70976 function Xrb(a, b, c2) {
70977 var d, e, f2;
70978 e = BD(Ohb(a.e, b), 387);
70979 if (!e) {
70980 d = new lsb(a, b, c2);
70981 Rhb(a.e, b, d);
70982 isb(d);
70983 return null;
70984 } else {
70985 f2 = ijb(e, c2);
70986 Yrb(a, e);
70987 return f2;
70988 }
70989 }
70990 function P9d(a) {
70991 var b;
70992 if (a == null)
70993 return null;
70994 b = ide(Qge(a, true));
70995 if (b == null) {
70996 throw vbb(new n8d("Invalid hexBinary value: '" + a + "'"));
70997 }
70998 return b;
70999 }
71000 function ghb(a) {
71001 Hgb();
71002 if (ybb(a, 0) < 0) {
71003 if (ybb(a, -1) != 0) {
71004 return new Wgb(-1, Jbb(a));
71005 }
71006 return Bgb;
71007 } else
71008 return ybb(a, 10) <= 0 ? Dgb[Tbb(a)] : new Wgb(1, a);
71009 }
71010 function wJb() {
71011 qJb();
71012 return OC(GC(DN, 1), Kie, 159, 0, [nJb, mJb, oJb, eJb, dJb, fJb, iJb, hJb, gJb, lJb, kJb, jJb, bJb, aJb, cJb, $Ib, ZIb, _Ib, XIb, WIb, YIb, pJb]);
71013 }
71014 function vjc(a) {
71015 var b;
71016 this.d = new Rkb();
71017 this.j = new d7c();
71018 this.g = new d7c();
71019 b = a.g.b;
71020 this.f = BD(vNb(Q_b(b), (Nyc(), Lwc)), 103);
71021 this.e = Edb(ED(c_b(b, ryc)));
71022 }
71023 function Pjc(a) {
71024 this.b = new Rkb();
71025 this.e = new Rkb();
71026 this.d = a;
71027 this.a = !WAb(JAb(new YAb(null, new Lub(new b1b(a.b))), new Xxb(new Qjc()))).sd((EAb(), DAb));
71028 }
71029 function N5c() {
71030 N5c = ccb;
71031 L5c = new O5c("PARENTS", 0);
71032 K5c = new O5c("NODES", 1);
71033 I5c = new O5c("EDGES", 2);
71034 M5c = new O5c("PORTS", 3);
71035 J5c = new O5c("LABELS", 4);
71036 }
71037 function Tbd() {
71038 Tbd = ccb;
71039 Qbd = new Ubd("DISTRIBUTED", 0);
71040 Sbd = new Ubd("JUSTIFIED", 1);
71041 Obd = new Ubd("BEGIN", 2);
71042 Pbd = new Ubd(gle, 3);
71043 Rbd = new Ubd("END", 4);
71044 }
71045 function UMd(a) {
71046 var b;
71047 b = a.yi(null);
71048 switch (b) {
71049 case 10:
71050 return 0;
71051 case 15:
71052 return 1;
71053 case 14:
71054 return 2;
71055 case 11:
71056 return 3;
71057 case 21:
71058 return 4;
71059 }
71060 return -1;
71061 }
71062 function cYb(a) {
71063 switch (a.g) {
71064 case 1:
71065 return ead(), dad;
71066 case 4:
71067 return ead(), aad;
71068 case 2:
71069 return ead(), bad;
71070 case 3:
71071 return ead(), _9c;
71072 }
71073 return ead(), cad;
71074 }
71075 function kA(a, b, c2) {
71076 var d;
71077 d = c2.q.getFullYear() - nje + nje;
71078 d < 0 && (d = -d);
71079 switch (b) {
71080 case 1:
71081 a.a += d;
71082 break;
71083 case 2:
71084 EA(a, d % 100, 2);
71085 break;
71086 default:
71087 EA(a, d, b);
71088 }
71089 }
71090 function Jsb(a, b) {
71091 var c2, d;
71092 wCb(b, a.b);
71093 if (b >= a.b >> 1) {
71094 d = a.c;
71095 for (c2 = a.b; c2 > b; --c2) {
71096 d = d.b;
71097 }
71098 } else {
71099 d = a.a.a;
71100 for (c2 = 0; c2 < b; ++c2) {
71101 d = d.a;
71102 }
71103 }
71104 return new $sb(a, b, d);
71105 }
71106 function MEb() {
71107 MEb = ccb;
71108 LEb = new NEb("NUM_OF_EXTERNAL_SIDES_THAN_NUM_OF_EXTENSIONS_LAST", 0);
71109 KEb = new NEb("CORNER_CASES_THAN_SINGLE_SIDE_LAST", 1);
71110 }
71111 function h4b(a) {
71112 var b, c2, d, e;
71113 d = c4b(a);
71114 Okb(d, a4b);
71115 e = a.d;
71116 e.c = KC(SI, Uhe, 1, 0, 5, 1);
71117 for (c2 = new olb(d); c2.a < c2.c.c.length; ) {
71118 b = BD(mlb(c2), 456);
71119 Gkb(e, b.b);
71120 }
71121 }
71122 function gkd(a) {
71123 var b, c2, d;
71124 d = (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), a.o);
71125 for (c2 = d.c.Kc(); c2.e != c2.i.gc(); ) {
71126 b = BD(c2.nj(), 42);
71127 b.dd();
71128 }
71129 return FAd(d);
71130 }
71131 function N5b(a) {
71132 var b;
71133 if (!ecd(BD(vNb(a, (Nyc(), Vxc)), 98))) {
71134 return;
71135 }
71136 b = a.b;
71137 O5b((tCb(0, b.c.length), BD(b.c[0], 29)));
71138 O5b(BD(Ikb(b, b.c.length - 1), 29));
71139 }
71140 function Roc(a, b) {
71141 var c2, d, e, f2;
71142 c2 = 0;
71143 for (e = new olb(b.a); e.a < e.c.c.length; ) {
71144 d = BD(mlb(e), 10);
71145 f2 = d.o.a + d.d.c + d.d.b + a.j;
71146 c2 = $wnd.Math.max(c2, f2);
71147 }
71148 return c2;
71149 }
71150 function XEd(a) {
71151 var b, c2, d, e;
71152 e = 0;
71153 for (c2 = 0, d = a.length; c2 < d; c2++) {
71154 b = (BCb(c2, a.length), a.charCodeAt(c2));
71155 b >= 64 && b < 128 && (e = Mbb(e, Nbb(1, b - 64)));
71156 }
71157 return e;
71158 }
71159 function c_b(a, b) {
71160 var c2, d;
71161 d = null;
71162 if (wNb(a, (Y9c(), O9c))) {
71163 c2 = BD(vNb(a, O9c), 94);
71164 c2.Xe(b) && (d = c2.We(b));
71165 }
71166 d == null && !!Q_b(a) && (d = vNb(Q_b(a), b));
71167 return d;
71168 }
71169 function oQc(a, b) {
71170 var c2, d, e;
71171 e = b.d.i;
71172 d = e.k;
71173 if (d == (j0b(), h0b) || d == d0b) {
71174 return;
71175 }
71176 c2 = new Sr(ur(U_b(e).a.Kc(), new Sq()));
71177 Qr(c2) && Rhb(a.k, b, BD(Rr(c2), 17));
71178 }
71179 function mid(a, b) {
71180 var c2, d, e;
71181 d = XKd(a.Tg(), b);
71182 c2 = b - a.Ah();
71183 return c2 < 0 ? (e = a.Yg(d), e >= 0 ? a.lh(e) : tid(a, d)) : c2 < 0 ? tid(a, d) : BD(d, 66).Nj().Sj(a, a.yh(), c2);
71184 }
71185 function Ksd(a) {
71186 var b;
71187 if (JD(a.a, 4)) {
71188 b = fvd(a.a);
71189 if (b == null) {
71190 throw vbb(new Zdb(mse + a.b + "'. " + ise + (fdb(Y3), Y3.k) + jse));
71191 }
71192 return b;
71193 } else {
71194 return a.a;
71195 }
71196 }
71197 function L9d(a) {
71198 var b;
71199 if (a == null)
71200 return null;
71201 b = bde(Qge(a, true));
71202 if (b == null) {
71203 throw vbb(new n8d("Invalid base64Binary value: '" + a + "'"));
71204 }
71205 return b;
71206 }
71207 function Dyd(b) {
71208 var c2;
71209 try {
71210 c2 = b.i.Xb(b.e);
71211 b.mj();
71212 b.g = b.e++;
71213 return c2;
71214 } catch (a) {
71215 a = ubb(a);
71216 if (JD(a, 73)) {
71217 b.mj();
71218 throw vbb(new utb());
71219 } else
71220 throw vbb(a);
71221 }
71222 }
71223 function Zyd(b) {
71224 var c2;
71225 try {
71226 c2 = b.c.ki(b.e);
71227 b.mj();
71228 b.g = b.e++;
71229 return c2;
71230 } catch (a) {
71231 a = ubb(a);
71232 if (JD(a, 73)) {
71233 b.mj();
71234 throw vbb(new utb());
71235 } else
71236 throw vbb(a);
71237 }
71238 }
71239 function CPb() {
71240 CPb = ccb;
71241 BPb = (Y9c(), K9c);
71242 vPb = G8c;
71243 qPb = r8c;
71244 wPb = f9c;
71245 zPb = (fFb(), bFb);
71246 yPb = _Eb;
71247 APb = dFb;
71248 xPb = $Eb;
71249 sPb = (nPb(), jPb);
71250 rPb = iPb;
71251 tPb = lPb;
71252 uPb = mPb;
71253 }
71254 function NWb(a) {
71255 LWb();
71256 this.c = new Rkb();
71257 this.d = a;
71258 switch (a.g) {
71259 case 0:
71260 case 2:
71261 this.a = tmb(KWb);
71262 this.b = Pje;
71263 break;
71264 case 3:
71265 case 1:
71266 this.a = KWb;
71267 this.b = Qje;
71268 }
71269 }
71270 function ued(a, b, c2) {
71271 var d, e;
71272 if (a.c) {
71273 dld(a.c, a.c.i + b);
71274 eld(a.c, a.c.j + c2);
71275 } else {
71276 for (e = new olb(a.b); e.a < e.c.c.length; ) {
71277 d = BD(mlb(e), 157);
71278 ued(d, b, c2);
71279 }
71280 }
71281 }
71282 function KEd(a, b) {
71283 var c2, d;
71284 if (a.j.length != b.j.length)
71285 return false;
71286 for (c2 = 0, d = a.j.length; c2 < d; c2++) {
71287 if (!dfb(a.j[c2], b.j[c2]))
71288 return false;
71289 }
71290 return true;
71291 }
71292 function gA(a, b, c2) {
71293 var d;
71294 if (b.a.length > 0) {
71295 Ekb(a.b, new WA(b.a, c2));
71296 d = b.a.length;
71297 0 < d ? b.a = b.a.substr(0, 0) : 0 > d && (b.a += yfb(KC(TD, $ie, 25, -d, 15, 1)));
71298 }
71299 }
71300 function JKb(a, b) {
71301 var c2, d, e;
71302 c2 = a.o;
71303 for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) {
71304 d = BD(e.Pb(), 111);
71305 d.e.a = DKb(d, c2.a);
71306 d.e.b = c2.b * Edb(ED(d.b.We(BKb)));
71307 }
71308 }
71309 function S5b(a, b) {
71310 var c2, d, e, f2;
71311 e = a.k;
71312 c2 = Edb(ED(vNb(a, (wtc(), htc))));
71313 f2 = b.k;
71314 d = Edb(ED(vNb(b, htc)));
71315 return f2 != (j0b(), e0b) ? -1 : e != e0b ? 1 : c2 == d ? 0 : c2 < d ? -1 : 1;
71316 }
71317 function B$c(a, b) {
71318 var c2, d;
71319 c2 = BD(BD(Ohb(a.g, b.a), 46).a, 65);
71320 d = BD(BD(Ohb(a.g, b.b), 46).a, 65);
71321 return S6c(b.a, b.b) - S6c(b.a, E6c(c2.b)) - S6c(b.b, E6c(d.b));
71322 }
71323 function aZb(a, b) {
71324 var c2;
71325 c2 = BD(vNb(a, (Nyc(), jxc)), 74);
71326 if (Lq(b, ZYb)) {
71327 if (!c2) {
71328 c2 = new s7c();
71329 yNb(a, jxc, c2);
71330 } else {
71331 Osb(c2);
71332 }
71333 } else
71334 !!c2 && yNb(a, jxc, null);
71335 return c2;
71336 }
71337 function a0b(a) {
71338 var b;
71339 b = new Ufb();
71340 b.a += "n";
71341 a.k != (j0b(), h0b) && Qfb(Qfb((b.a += "(", b), Zr(a.k).toLowerCase()), ")");
71342 Qfb((b.a += "_", b), P_b(a));
71343 return b.a;
71344 }
71345 function Kdc(a, b) {
71346 Odd(b, "Self-Loop post-processing", 1);
71347 MAb(JAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new Qdc()), new Sdc()), new Udc()), new Wdc());
71348 Qdd(b);
71349 }
71350 function kid(a, b, c2, d) {
71351 var e;
71352 if (c2 >= 0) {
71353 return a.hh(b, c2, d);
71354 } else {
71355 !!a.eh() && (d = (e = a.Vg(), e >= 0 ? a.Qg(d) : a.eh().ih(a, -1 - e, null, d)));
71356 return a.Sg(b, c2, d);
71357 }
71358 }
71359 function zld(a, b) {
71360 switch (b) {
71361 case 7:
71362 !a.e && (a.e = new y5d(B2, a, 7, 4));
71363 Uxd(a.e);
71364 return;
71365 case 8:
71366 !a.d && (a.d = new y5d(B2, a, 8, 5));
71367 Uxd(a.d);
71368 return;
71369 }
71370 $kd(a, b);
71371 }
71372 function Ut(b, c2) {
71373 var d;
71374 d = b.Zc(c2);
71375 try {
71376 return d.Pb();
71377 } catch (a) {
71378 a = ubb(a);
71379 if (JD(a, 109)) {
71380 throw vbb(new qcb("Can't get element " + c2));
71381 } else
71382 throw vbb(a);
71383 }
71384 }
71385 function Tgb(a, b) {
71386 this.e = a;
71387 if (b < Zje) {
71388 this.d = 1;
71389 this.a = OC(GC(WD, 1), oje, 25, 15, [b | 0]);
71390 } else {
71391 this.d = 2;
71392 this.a = OC(GC(WD, 1), oje, 25, 15, [b % Zje | 0, b / Zje | 0]);
71393 }
71394 }
71395 function omb(a, b) {
71396 mmb();
71397 var c2, d, e, f2;
71398 c2 = a;
71399 f2 = b;
71400 if (JD(a, 21) && !JD(b, 21)) {
71401 c2 = b;
71402 f2 = a;
71403 }
71404 for (e = c2.Kc(); e.Ob(); ) {
71405 d = e.Pb();
71406 if (f2.Hc(d)) {
71407 return false;
71408 }
71409 }
71410 return true;
71411 }
71412 function Txd(a, b, c2) {
71413 var d, e, f2, g;
71414 d = a.Xc(b);
71415 if (d != -1) {
71416 if (a.ej()) {
71417 f2 = a.fj();
71418 g = tud(a, d);
71419 e = a.Zi(4, g, null, d, f2);
71420 !c2 ? c2 = e : c2.Ei(e);
71421 } else {
71422 tud(a, d);
71423 }
71424 }
71425 return c2;
71426 }
71427 function uwd(a, b, c2) {
71428 var d, e, f2, g;
71429 d = a.Xc(b);
71430 if (d != -1) {
71431 if (a.ej()) {
71432 f2 = a.fj();
71433 g = Evd(a, d);
71434 e = a.Zi(4, g, null, d, f2);
71435 !c2 ? c2 = e : c2.Ei(e);
71436 } else {
71437 Evd(a, d);
71438 }
71439 }
71440 return c2;
71441 }
71442 function PJb(a, b) {
71443 var c2;
71444 c2 = BD(Mpb(a.b, b), 124).n;
71445 switch (b.g) {
71446 case 1:
71447 a.t >= 0 && (c2.d = a.t);
71448 break;
71449 case 3:
71450 a.t >= 0 && (c2.a = a.t);
71451 }
71452 if (a.C) {
71453 c2.b = a.C.b;
71454 c2.c = a.C.c;
71455 }
71456 }
71457 function RMb() {
71458 RMb = ccb;
71459 OMb = new SMb(xle, 0);
71460 NMb = new SMb(yle, 1);
71461 PMb = new SMb(zle, 2);
71462 QMb = new SMb(Ale, 3);
71463 OMb.a = false;
71464 NMb.a = true;
71465 PMb.a = false;
71466 QMb.a = true;
71467 }
71468 function ROb() {
71469 ROb = ccb;
71470 OOb = new SOb(xle, 0);
71471 NOb = new SOb(yle, 1);
71472 POb = new SOb(zle, 2);
71473 QOb = new SOb(Ale, 3);
71474 OOb.a = false;
71475 NOb.a = true;
71476 POb.a = false;
71477 QOb.a = true;
71478 }
71479 function dac(a) {
71480 var b;
71481 b = a.a;
71482 do {
71483 b = BD(Rr(new Sr(ur(R_b(b).a.Kc(), new Sq()))), 17).c.i;
71484 b.k == (j0b(), g0b) && a.b.Fc(b);
71485 } while (b.k == (j0b(), g0b));
71486 a.b = Su(a.b);
71487 }
71488 function CDc(a) {
71489 var b, c2, d;
71490 d = a.c.a;
71491 a.p = (Qb(d), new Tkb(d));
71492 for (c2 = new olb(d); c2.a < c2.c.c.length; ) {
71493 b = BD(mlb(c2), 10);
71494 b.p = GDc(b).a;
71495 }
71496 mmb();
71497 Okb(a.p, new PDc());
71498 }
71499 function eVc(a) {
71500 var b, c2, d, e;
71501 d = 0;
71502 e = gVc(a);
71503 if (e.c.length == 0) {
71504 return 1;
71505 } else {
71506 for (c2 = new olb(e); c2.a < c2.c.c.length; ) {
71507 b = BD(mlb(c2), 33);
71508 d += eVc(b);
71509 }
71510 }
71511 return d;
71512 }
71513 function JJb(a, b) {
71514 var c2, d, e;
71515 e = 0;
71516 d = BD(BD(Qc(a.r, b), 21), 84).Kc();
71517 while (d.Ob()) {
71518 c2 = BD(d.Pb(), 111);
71519 e += c2.d.b + c2.b.rf().a + c2.d.c;
71520 d.Ob() && (e += a.w);
71521 }
71522 return e;
71523 }
71524 function RKb(a, b) {
71525 var c2, d, e;
71526 e = 0;
71527 d = BD(BD(Qc(a.r, b), 21), 84).Kc();
71528 while (d.Ob()) {
71529 c2 = BD(d.Pb(), 111);
71530 e += c2.d.d + c2.b.rf().b + c2.d.a;
71531 d.Ob() && (e += a.w);
71532 }
71533 return e;
71534 }
71535 function SOc(a, b, c2, d) {
71536 if (b.a < d.a) {
71537 return true;
71538 } else if (b.a == d.a) {
71539 if (b.b < d.b) {
71540 return true;
71541 } else if (b.b == d.b) {
71542 if (a.b > c2.b) {
71543 return true;
71544 }
71545 }
71546 }
71547 return false;
71548 }
71549 function AD(a, b) {
71550 if (ND(a)) {
71551 return !!zD[b];
71552 } else if (a.hm) {
71553 return !!a.hm[b];
71554 } else if (LD(a)) {
71555 return !!yD[b];
71556 } else if (KD(a)) {
71557 return !!xD[b];
71558 }
71559 return false;
71560 }
71561 function jkd(a, b, c2) {
71562 c2 == null ? (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), LAd(a.o, b)) : (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), HAd(a.o, b, c2));
71563 return a;
71564 }
71565 function jKb(a, b, c2, d) {
71566 var e, f2;
71567 f2 = b.Xe((Y9c(), W8c)) ? BD(b.We(W8c), 21) : a.j;
71568 e = uJb(f2);
71569 if (e == (qJb(), pJb)) {
71570 return;
71571 }
71572 if (c2 && !sJb(e)) {
71573 return;
71574 }
71575 UHb(lKb(a, e, d), b);
71576 }
71577 function fid(a, b, c2, d) {
71578 var e, f2, g;
71579 f2 = XKd(a.Tg(), b);
71580 e = b - a.Ah();
71581 return e < 0 ? (g = a.Yg(f2), g >= 0 ? a._g(g, c2, true) : sid(a, f2, c2)) : BD(f2, 66).Nj().Pj(a, a.yh(), e, c2, d);
71582 }
71583 function u6d(a, b, c2, d) {
71584 var e, f2, g;
71585 if (c2.mh(b)) {
71586 Q6d();
71587 if (YId(b)) {
71588 e = BD(c2.ah(b), 153);
71589 x6d(a, e);
71590 } else {
71591 f2 = (g = b, !g ? null : BD(d, 49).xh(g));
71592 !!f2 && v6d(c2.ah(b), f2);
71593 }
71594 }
71595 }
71596 function H3b(a) {
71597 switch (a.g) {
71598 case 1:
71599 return vLb(), uLb;
71600 case 3:
71601 return vLb(), rLb;
71602 case 2:
71603 return vLb(), tLb;
71604 case 4:
71605 return vLb(), sLb;
71606 default:
71607 return null;
71608 }
71609 }
71610 function kCb(a) {
71611 switch (typeof a) {
71612 case Mhe:
71613 return LCb(a);
71614 case Lhe:
71615 return QD(a);
71616 case Khe:
71617 return Bcb(), a ? 1231 : 1237;
71618 default:
71619 return a == null ? 0 : FCb(a);
71620 }
71621 }
71622 function Gic(a, b, c2) {
71623 if (a.e) {
71624 switch (a.b) {
71625 case 1:
71626 oic(a.c, b, c2);
71627 break;
71628 case 0:
71629 pic(a.c, b, c2);
71630 }
71631 } else {
71632 mic(a.c, b, c2);
71633 }
71634 a.a[b.p][c2.p] = a.c.i;
71635 a.a[c2.p][b.p] = a.c.e;
71636 }
71637 function lHc(a) {
71638 var b, c2;
71639 if (a == null) {
71640 return null;
71641 }
71642 c2 = KC(OQ, nie, 193, a.length, 0, 2);
71643 for (b = 0; b < c2.length; b++) {
71644 c2[b] = BD(ulb(a[b], a[b].length), 193);
71645 }
71646 return c2;
71647 }
71648 function d4d(a) {
71649 var b;
71650 if (b4d(a)) {
71651 a4d(a);
71652 if (a.Lk()) {
71653 b = b3d(a.e, a.b, a.c, a.a, a.j);
71654 a.j = b;
71655 }
71656 a.g = a.a;
71657 ++a.a;
71658 ++a.c;
71659 a.i = 0;
71660 return a.j;
71661 } else {
71662 throw vbb(new utb());
71663 }
71664 }
71665 function fMb(a, b) {
71666 var c2, d, e, f2;
71667 f2 = a.o;
71668 c2 = a.p;
71669 f2 < c2 ? f2 *= f2 : c2 *= c2;
71670 d = f2 + c2;
71671 f2 = b.o;
71672 c2 = b.p;
71673 f2 < c2 ? f2 *= f2 : c2 *= c2;
71674 e = f2 + c2;
71675 if (d < e) {
71676 return -1;
71677 }
71678 if (d == e) {
71679 return 0;
71680 }
71681 return 1;
71682 }
71683 function HLd(a, b) {
71684 var c2, d, e;
71685 e = rud(a, b);
71686 if (e >= 0)
71687 return e;
71688 if (a.Fk()) {
71689 for (d = 0; d < a.i; ++d) {
71690 c2 = a.Gk(BD(a.g[d], 56));
71691 if (PD(c2) === PD(b)) {
71692 return d;
71693 }
71694 }
71695 }
71696 return -1;
71697 }
71698 function Gtd(a, b, c2) {
71699 var d, e;
71700 e = a.gc();
71701 if (b >= e)
71702 throw vbb(new Cyd(b, e));
71703 if (a.hi()) {
71704 d = a.Xc(c2);
71705 if (d >= 0 && d != b) {
71706 throw vbb(new Wdb(kue));
71707 }
71708 }
71709 return a.mi(b, c2);
71710 }
71711 function gx(a, b) {
71712 this.a = BD(Qb(a), 245);
71713 this.b = BD(Qb(b), 245);
71714 if (a.vd(b) > 0 || a == (Lk(), Kk) || b == (_k(), $k)) {
71715 throw vbb(new Wdb("Invalid range: " + nx(a, b)));
71716 }
71717 }
71718 function mYb(a) {
71719 var b, c2;
71720 this.b = new Rkb();
71721 this.c = a;
71722 this.a = false;
71723 for (c2 = new olb(a.a); c2.a < c2.c.c.length; ) {
71724 b = BD(mlb(c2), 10);
71725 this.a = this.a | b.k == (j0b(), h0b);
71726 }
71727 }
71728 function GFb(a, b) {
71729 var c2, d, e;
71730 c2 = nGb(new pGb(), a);
71731 for (e = new olb(b); e.a < e.c.c.length; ) {
71732 d = BD(mlb(e), 121);
71733 AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 0), c2), d));
71734 }
71735 return c2;
71736 }
71737 function Nac(a, b, c2) {
71738 var d, e, f2;
71739 for (e = new Sr(ur((b ? R_b(a) : U_b(a)).a.Kc(), new Sq())); Qr(e); ) {
71740 d = BD(Rr(e), 17);
71741 f2 = b ? d.c.i : d.d.i;
71742 f2.k == (j0b(), f0b) && $_b(f2, c2);
71743 }
71744 }
71745 function Izc() {
71746 Izc = ccb;
71747 Gzc = new Kzc(ane, 0);
71748 Hzc = new Kzc("PORT_POSITION", 1);
71749 Fzc = new Kzc("NODE_SIZE_WHERE_SPACE_PERMITS", 2);
71750 Ezc = new Kzc("NODE_SIZE", 3);
71751 }
71752 function F7c() {
71753 F7c = ccb;
71754 z7c = new G7c("AUTOMATIC", 0);
71755 C7c = new G7c(jle, 1);
71756 D7c = new G7c(kle, 2);
71757 E7c = new G7c("TOP", 3);
71758 A7c = new G7c(mle, 4);
71759 B7c = new G7c(gle, 5);
71760 }
71761 function Hhb(a, b, c2, d) {
71762 Dhb();
71763 var e, f2;
71764 e = 0;
71765 for (f2 = 0; f2 < c2; f2++) {
71766 e = wbb(Ibb(xbb(b[f2], Yje), xbb(d, Yje)), xbb(Tbb(e), Yje));
71767 a[f2] = Tbb(e);
71768 e = Pbb(e, 32);
71769 }
71770 return Tbb(e);
71771 }
71772 function zHb(a, b, c2) {
71773 var d, e;
71774 e = 0;
71775 for (d = 0; d < rHb; d++) {
71776 e = $wnd.Math.max(e, pHb(a.a[b.g][d], c2));
71777 }
71778 b == (gHb(), eHb) && !!a.b && (e = $wnd.Math.max(e, a.b.b));
71779 return e;
71780 }
71781 function Bub(a, b) {
71782 var c2, d;
71783 lCb(b > 0);
71784 if ((b & -b) == b) {
71785 return QD(b * Cub(a, 31) * 4656612873077393e-25);
71786 }
71787 do {
71788 c2 = Cub(a, 31);
71789 d = c2 % b;
71790 } while (c2 - d + (b - 1) < 0);
71791 return QD(d);
71792 }
71793 function LCb(a) {
71794 JCb();
71795 var b, c2, d;
71796 c2 = ":" + a;
71797 d = ICb[c2];
71798 if (d != null) {
71799 return QD((uCb(d), d));
71800 }
71801 d = GCb[c2];
71802 b = d == null ? KCb(a) : QD((uCb(d), d));
71803 MCb();
71804 ICb[c2] = b;
71805 return b;
71806 }
71807 function qZb(a, b, c2) {
71808 Odd(c2, "Compound graph preprocessor", 1);
71809 a.a = new Hp();
71810 vZb(a, b, null);
71811 pZb(a, b);
71812 uZb(a);
71813 yNb(b, (wtc(), zsc), a.a);
71814 a.a = null;
71815 Uhb(a.b);
71816 Qdd(c2);
71817 }
71818 function X$b(a, b, c2) {
71819 switch (c2.g) {
71820 case 1:
71821 a.a = b.a / 2;
71822 a.b = 0;
71823 break;
71824 case 2:
71825 a.a = b.a;
71826 a.b = b.b / 2;
71827 break;
71828 case 3:
71829 a.a = b.a / 2;
71830 a.b = b.b;
71831 break;
71832 case 4:
71833 a.a = 0;
71834 a.b = b.b / 2;
71835 }
71836 }
71837 function tkc(a) {
71838 var b, c2, d;
71839 for (d = BD(Qc(a.a, (Xjc(), Vjc)), 15).Kc(); d.Ob(); ) {
71840 c2 = BD(d.Pb(), 101);
71841 b = Bkc(c2);
71842 kkc(a, c2, b[0], (Fkc(), Ckc), 0);
71843 kkc(a, c2, b[1], Ekc, 1);
71844 }
71845 }
71846 function ukc(a) {
71847 var b, c2, d;
71848 for (d = BD(Qc(a.a, (Xjc(), Wjc)), 15).Kc(); d.Ob(); ) {
71849 c2 = BD(d.Pb(), 101);
71850 b = Bkc(c2);
71851 kkc(a, c2, b[0], (Fkc(), Ckc), 0);
71852 kkc(a, c2, b[1], Ekc, 1);
71853 }
71854 }
71855 function tXc(a) {
71856 switch (a.g) {
71857 case 0:
71858 return null;
71859 case 1:
71860 return new $Xc();
71861 case 2:
71862 return new QXc();
71863 default:
71864 throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g)));
71865 }
71866 }
71867 function OZc(a, b, c2) {
71868 var d, e;
71869 FZc(a, b - a.s, c2 - a.t);
71870 for (e = new olb(a.n); e.a < e.c.c.length; ) {
71871 d = BD(mlb(e), 211);
71872 SZc(d, d.e + b - a.s);
71873 TZc(d, d.f + c2 - a.t);
71874 }
71875 a.s = b;
71876 a.t = c2;
71877 }
71878 function JFb(a) {
71879 var b, c2, d, e, f2;
71880 c2 = 0;
71881 for (e = new olb(a.a); e.a < e.c.c.length; ) {
71882 d = BD(mlb(e), 121);
71883 d.d = c2++;
71884 }
71885 b = IFb(a);
71886 f2 = null;
71887 b.c.length > 1 && (f2 = GFb(a, b));
71888 return f2;
71889 }
71890 function dmd(a) {
71891 var b;
71892 if (!!a.f && a.f.kh()) {
71893 b = BD(a.f, 49);
71894 a.f = BD(xid(a, b), 82);
71895 a.f != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 8, b, a.f));
71896 }
71897 return a.f;
71898 }
71899 function emd(a) {
71900 var b;
71901 if (!!a.i && a.i.kh()) {
71902 b = BD(a.i, 49);
71903 a.i = BD(xid(a, b), 82);
71904 a.i != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 7, b, a.i));
71905 }
71906 return a.i;
71907 }
71908 function zUd(a) {
71909 var b;
71910 if (!!a.b && (a.b.Db & 64) != 0) {
71911 b = a.b;
71912 a.b = BD(xid(a, b), 18);
71913 a.b != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 21, b, a.b));
71914 }
71915 return a.b;
71916 }
71917 function uAd(a, b) {
71918 var c2, d, e;
71919 if (a.d == null) {
71920 ++a.e;
71921 ++a.f;
71922 } else {
71923 d = b.Sh();
71924 BAd(a, a.f + 1);
71925 e = (d & Ohe) % a.d.length;
71926 c2 = a.d[e];
71927 !c2 && (c2 = a.d[e] = a.uj());
71928 c2.Fc(b);
71929 ++a.f;
71930 }
71931 }
71932 function m3d(a, b, c2) {
71933 var d;
71934 if (b.Kj()) {
71935 return false;
71936 } else if (b.Zj() != -2) {
71937 d = b.zj();
71938 return d == null ? c2 == null : pb(d, c2);
71939 } else
71940 return b.Hj() == a.e.Tg() && c2 == null;
71941 }
71942 function wo() {
71943 var a;
71944 Xj(16, Hie);
71945 a = Kp(16);
71946 this.b = KC(GF, Gie, 317, a, 0, 1);
71947 this.c = KC(GF, Gie, 317, a, 0, 1);
71948 this.a = null;
71949 this.e = null;
71950 this.i = 0;
71951 this.f = a - 1;
71952 this.g = 0;
71953 }
71954 function b0b(a) {
71955 n_b.call(this);
71956 this.k = (j0b(), h0b);
71957 this.j = (Xj(6, Jie), new Skb(6));
71958 this.b = (Xj(2, Jie), new Skb(2));
71959 this.d = new L_b();
71960 this.f = new s0b();
71961 this.a = a;
71962 }
71963 function Scc(a) {
71964 var b, c2;
71965 if (a.c.length <= 1) {
71966 return;
71967 }
71968 b = Pcc(a, (Ucd(), Rcd));
71969 Rcc(a, BD(b.a, 19).a, BD(b.b, 19).a);
71970 c2 = Pcc(a, Tcd);
71971 Rcc(a, BD(c2.a, 19).a, BD(c2.b, 19).a);
71972 }
71973 function Vzc() {
71974 Vzc = ccb;
71975 Uzc = new Xzc("SIMPLE", 0);
71976 Rzc = new Xzc(Tne, 1);
71977 Szc = new Xzc("LINEAR_SEGMENTS", 2);
71978 Qzc = new Xzc("BRANDES_KOEPF", 3);
71979 Tzc = new Xzc(Aqe, 4);
71980 }
71981 function XDc(a, b, c2) {
71982 if (!ecd(BD(vNb(b, (Nyc(), Vxc)), 98))) {
71983 WDc(a, b, Y_b(b, c2));
71984 WDc(a, b, Y_b(b, (Ucd(), Rcd)));
71985 WDc(a, b, Y_b(b, Acd));
71986 mmb();
71987 Okb(b.j, new jEc(a));
71988 }
71989 }
71990 function HVc(a, b, c2, d) {
71991 var e, f2, g;
71992 e = d ? BD(Qc(a.a, b), 21) : BD(Qc(a.b, b), 21);
71993 for (g = e.Kc(); g.Ob(); ) {
71994 f2 = BD(g.Pb(), 33);
71995 if (BVc(a, c2, f2)) {
71996 return true;
71997 }
71998 }
71999 return false;
72000 }
72001 function FMd(a) {
72002 var b, c2;
72003 for (c2 = new Fyd(a); c2.e != c2.i.gc(); ) {
72004 b = BD(Dyd(c2), 87);
72005 if (!!b.e || (!b.d && (b.d = new xMd(j5, b, 1)), b.d).i != 0) {
72006 return true;
72007 }
72008 }
72009 return false;
72010 }
72011 function QTd(a) {
72012 var b, c2;
72013 for (c2 = new Fyd(a); c2.e != c2.i.gc(); ) {
72014 b = BD(Dyd(c2), 87);
72015 if (!!b.e || (!b.d && (b.d = new xMd(j5, b, 1)), b.d).i != 0) {
72016 return true;
72017 }
72018 }
72019 return false;
72020 }
72021 function FDc(a) {
72022 var b, c2, d;
72023 b = 0;
72024 for (d = new olb(a.c.a); d.a < d.c.c.length; ) {
72025 c2 = BD(mlb(d), 10);
72026 b += sr(new Sr(ur(U_b(c2).a.Kc(), new Sq())));
72027 }
72028 return b / a.c.a.c.length;
72029 }
72030 function UPc(a) {
72031 var b, c2;
72032 a.c || XPc(a);
72033 c2 = new s7c();
72034 b = new olb(a.a);
72035 mlb(b);
72036 while (b.a < b.c.c.length) {
72037 Dsb(c2, BD(mlb(b), 407).a);
72038 }
72039 sCb(c2.b != 0);
72040 Nsb(c2, c2.c.b);
72041 return c2;
72042 }
72043 function J0c() {
72044 J0c = ccb;
72045 I0c = (A0c(), z0c);
72046 G0c = new q0b(8);
72047 new Osd((Y9c(), f9c), G0c);
72048 new Osd(T9c, 8);
72049 H0c = x0c;
72050 E0c = n0c;
72051 F0c = o0c;
72052 D0c = new Osd(y8c, (Bcb(), false));
72053 }
72054 function uld(a, b, c2, d) {
72055 switch (b) {
72056 case 7:
72057 return !a.e && (a.e = new y5d(B2, a, 7, 4)), a.e;
72058 case 8:
72059 return !a.d && (a.d = new y5d(B2, a, 8, 5)), a.d;
72060 }
72061 return Xkd(a, b, c2, d);
72062 }
72063 function JQd(a) {
72064 var b;
72065 if (!!a.a && a.a.kh()) {
72066 b = BD(a.a, 49);
72067 a.a = BD(xid(a, b), 138);
72068 a.a != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 5, b, a.a));
72069 }
72070 return a.a;
72071 }
72072 function yde(a) {
72073 if (a < 48)
72074 return -1;
72075 if (a > 102)
72076 return -1;
72077 if (a <= 57)
72078 return a - 48;
72079 if (a < 65)
72080 return -1;
72081 if (a <= 70)
72082 return a - 65 + 10;
72083 if (a < 97)
72084 return -1;
72085 return a - 97 + 10;
72086 }
72087 function Wj(a, b) {
72088 if (a == null) {
72089 throw vbb(new Heb("null key in entry: null=" + b));
72090 } else if (b == null) {
72091 throw vbb(new Heb("null value in entry: " + a + "=null"));
72092 }
72093 }
72094 function kr(a, b) {
72095 var c2, d;
72096 while (a.Ob()) {
72097 if (!b.Ob()) {
72098 return false;
72099 }
72100 c2 = a.Pb();
72101 d = b.Pb();
72102 if (!(PD(c2) === PD(d) || c2 != null && pb(c2, d))) {
72103 return false;
72104 }
72105 }
72106 return !b.Ob();
72107 }
72108 function jIb(a, b) {
72109 var c2;
72110 c2 = OC(GC(UD, 1), Vje, 25, 15, [pHb(a.a[0], b), pHb(a.a[1], b), pHb(a.a[2], b)]);
72111 if (a.d) {
72112 c2[0] = $wnd.Math.max(c2[0], c2[2]);
72113 c2[2] = c2[0];
72114 }
72115 return c2;
72116 }
72117 function kIb(a, b) {
72118 var c2;
72119 c2 = OC(GC(UD, 1), Vje, 25, 15, [qHb(a.a[0], b), qHb(a.a[1], b), qHb(a.a[2], b)]);
72120 if (a.d) {
72121 c2[0] = $wnd.Math.max(c2[0], c2[2]);
72122 c2[2] = c2[0];
72123 }
72124 return c2;
72125 }
72126 function mqc() {
72127 mqc = ccb;
72128 iqc = new oqc("GREEDY", 0);
72129 hqc = new oqc(Une, 1);
72130 kqc = new oqc(Tne, 2);
72131 lqc = new oqc("MODEL_ORDER", 3);
72132 jqc = new oqc("GREEDY_MODEL_ORDER", 4);
72133 }
72134 function iUc(a, b) {
72135 var c2, d, e;
72136 a.b[b.g] = 1;
72137 for (d = Jsb(b.d, 0); d.b != d.d.c; ) {
72138 c2 = BD(Xsb(d), 188);
72139 e = c2.c;
72140 a.b[e.g] == 1 ? Dsb(a.a, c2) : a.b[e.g] == 2 ? a.b[e.g] = 1 : iUc(a, e);
72141 }
72142 }
72143 function V9b(a, b) {
72144 var c2, d, e;
72145 e = new Skb(b.gc());
72146 for (d = b.Kc(); d.Ob(); ) {
72147 c2 = BD(d.Pb(), 286);
72148 c2.c == c2.f ? K9b(a, c2, c2.c) : L9b(a, c2) || (e.c[e.c.length] = c2, true);
72149 }
72150 return e;
72151 }
72152 function IZc(a, b, c2) {
72153 var d, e, f2, g, h;
72154 h = a.r + b;
72155 a.r += b;
72156 a.d += c2;
72157 d = c2 / a.n.c.length;
72158 e = 0;
72159 for (g = new olb(a.n); g.a < g.c.c.length; ) {
72160 f2 = BD(mlb(g), 211);
72161 RZc(f2, h, d, e);
72162 ++e;
72163 }
72164 }
72165 function tEb(a) {
72166 var b, c2, d;
72167 zwb(a.b.a);
72168 a.a = KC(PM, Uhe, 57, a.c.c.a.b.c.length, 0, 1);
72169 b = 0;
72170 for (d = new olb(a.c.c.a.b); d.a < d.c.c.length; ) {
72171 c2 = BD(mlb(d), 57);
72172 c2.f = b++;
72173 }
72174 }
72175 function RVb(a) {
72176 var b, c2, d;
72177 zwb(a.b.a);
72178 a.a = KC(IP, Uhe, 81, a.c.a.a.b.c.length, 0, 1);
72179 b = 0;
72180 for (d = new olb(a.c.a.a.b); d.a < d.c.c.length; ) {
72181 c2 = BD(mlb(d), 81);
72182 c2.i = b++;
72183 }
72184 }
72185 function P1c(a, b, c2) {
72186 var d;
72187 Odd(c2, "Shrinking tree compaction", 1);
72188 if (Ccb(DD(vNb(b, (XNb(), VNb))))) {
72189 N1c(a, b.f);
72190 INb(b.f, (d = b.c, d));
72191 } else {
72192 INb(b.f, b.c);
72193 }
72194 Qdd(c2);
72195 }
72196 function mr(a) {
72197 var b;
72198 b = gr(a);
72199 if (!Qr(a)) {
72200 throw vbb(new qcb("position (0) must be less than the number of elements that remained (" + b + ")"));
72201 }
72202 return Rr(a);
72203 }
72204 function hNb(b, c2, d) {
72205 var e;
72206 try {
72207 return YMb(b, c2 + b.j, d + b.k);
72208 } catch (a) {
72209 a = ubb(a);
72210 if (JD(a, 73)) {
72211 e = a;
72212 throw vbb(new qcb(e.g + Gle + c2 + She + d + ")."));
72213 } else
72214 throw vbb(a);
72215 }
72216 }
72217 function iNb(b, c2, d) {
72218 var e;
72219 try {
72220 return ZMb(b, c2 + b.j, d + b.k);
72221 } catch (a) {
72222 a = ubb(a);
72223 if (JD(a, 73)) {
72224 e = a;
72225 throw vbb(new qcb(e.g + Gle + c2 + She + d + ")."));
72226 } else
72227 throw vbb(a);
72228 }
72229 }
72230 function jNb(b, c2, d) {
72231 var e;
72232 try {
72233 return $Mb(b, c2 + b.j, d + b.k);
72234 } catch (a) {
72235 a = ubb(a);
72236 if (JD(a, 73)) {
72237 e = a;
72238 throw vbb(new qcb(e.g + Gle + c2 + She + d + ")."));
72239 } else
72240 throw vbb(a);
72241 }
72242 }
72243 function s5b(a) {
72244 switch (a.g) {
72245 case 1:
72246 return Ucd(), Tcd;
72247 case 4:
72248 return Ucd(), Acd;
72249 case 3:
72250 return Ucd(), zcd;
72251 case 2:
72252 return Ucd(), Rcd;
72253 default:
72254 return Ucd(), Scd;
72255 }
72256 }
72257 function cjc(a, b, c2) {
72258 if (b.k == (j0b(), h0b) && c2.k == g0b) {
72259 a.d = _ic(b, (Ucd(), Rcd));
72260 a.b = _ic(b, Acd);
72261 }
72262 if (c2.k == h0b && b.k == g0b) {
72263 a.d = _ic(c2, (Ucd(), Acd));
72264 a.b = _ic(c2, Rcd);
72265 }
72266 }
72267 function gjc(a, b) {
72268 var c2, d, e;
72269 e = V_b(a, b);
72270 for (d = e.Kc(); d.Ob(); ) {
72271 c2 = BD(d.Pb(), 11);
72272 if (vNb(c2, (wtc(), gtc)) != null || a1b(new b1b(c2.b))) {
72273 return true;
72274 }
72275 }
72276 return false;
72277 }
72278 function QZc(a, b) {
72279 dld(b, a.e + a.d + (a.c.c.length == 0 ? 0 : a.b));
72280 eld(b, a.f);
72281 a.a = $wnd.Math.max(a.a, b.f);
72282 a.d += b.g + (a.c.c.length == 0 ? 0 : a.b);
72283 Ekb(a.c, b);
72284 return true;
72285 }
72286 function XZc(a, b, c2) {
72287 var d, e, f2, g;
72288 g = 0;
72289 d = c2 / a.a.c.length;
72290 for (f2 = new olb(a.a); f2.a < f2.c.c.length; ) {
72291 e = BD(mlb(f2), 187);
72292 OZc(e, e.s, e.t + g * d);
72293 IZc(e, a.d - e.r + b, d);
72294 ++g;
72295 }
72296 }
72297 function H4b(a) {
72298 var b, c2, d, e, f2;
72299 for (d = new olb(a.b); d.a < d.c.c.length; ) {
72300 c2 = BD(mlb(d), 29);
72301 b = 0;
72302 for (f2 = new olb(c2.a); f2.a < f2.c.c.length; ) {
72303 e = BD(mlb(f2), 10);
72304 e.p = b++;
72305 }
72306 }
72307 }
72308 function r6c(a, b) {
72309 var c2, d, e, f2, g, h;
72310 e = b.length - 1;
72311 g = 0;
72312 h = 0;
72313 for (d = 0; d <= e; d++) {
72314 f2 = b[d];
72315 c2 = k6c(e, d) * x6c(1 - a, e - d) * x6c(a, d);
72316 g += f2.a * c2;
72317 h += f2.b * c2;
72318 }
72319 return new f7c(g, h);
72320 }
72321 function jud(a, b) {
72322 var c2, d, e, f2, g;
72323 c2 = b.gc();
72324 a.qi(a.i + c2);
72325 f2 = b.Kc();
72326 g = a.i;
72327 a.i += c2;
72328 for (d = g; d < a.i; ++d) {
72329 e = f2.Pb();
72330 mud(a, d, a.oi(d, e));
72331 a.bi(d, e);
72332 a.ci();
72333 }
72334 return c2 != 0;
72335 }
72336 function twd(a, b, c2) {
72337 var d, e, f2;
72338 if (a.ej()) {
72339 d = a.Vi();
72340 f2 = a.fj();
72341 ++a.j;
72342 a.Hi(d, a.oi(d, b));
72343 e = a.Zi(3, null, b, d, f2);
72344 !c2 ? c2 = e : c2.Ei(e);
72345 } else {
72346 Avd(a, a.Vi(), b);
72347 }
72348 return c2;
72349 }
72350 function WOd(a, b, c2) {
72351 var d, e, f2;
72352 d = BD(qud(VKd(a.a), b), 87);
72353 f2 = (e = d.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd));
72354 ((f2.Db & 64) != 0 ? xid(a.b, f2) : f2) == c2 ? KQd(d) : NQd(d, c2);
72355 return f2;
72356 }
72357 function Ewb(a, b, c2, d, e, f2, g, h) {
72358 var i3, j;
72359 if (!d) {
72360 return;
72361 }
72362 i3 = d.a[0];
72363 !!i3 && Ewb(a, b, c2, i3, e, f2, g, h);
72364 Fwb(a, c2, d.d, e, f2, g, h) && b.Fc(d);
72365 j = d.a[1];
72366 !!j && Ewb(a, b, c2, j, e, f2, g, h);
72367 }
72368 function eAb(a, b) {
72369 var c2;
72370 if (!a.a) {
72371 c2 = KC(UD, Vje, 25, 0, 15, 1);
72372 _ub(a.b.a, new iAb(c2));
72373 c2.sort(dcb(Ylb.prototype.te, Ylb, []));
72374 a.a = new Avb(c2, a.d);
72375 }
72376 return pvb(a.a, b);
72377 }
72378 function YMb(b, c2, d) {
72379 try {
72380 return Bbb(_Mb(b, c2, d), 1);
72381 } catch (a) {
72382 a = ubb(a);
72383 if (JD(a, 320)) {
72384 throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c2 + She + d + Fle));
72385 } else
72386 throw vbb(a);
72387 }
72388 }
72389 function ZMb(b, c2, d) {
72390 try {
72391 return Bbb(_Mb(b, c2, d), 0);
72392 } catch (a) {
72393 a = ubb(a);
72394 if (JD(a, 320)) {
72395 throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c2 + She + d + Fle));
72396 } else
72397 throw vbb(a);
72398 }
72399 }
72400 function $Mb(b, c2, d) {
72401 try {
72402 return Bbb(_Mb(b, c2, d), 2);
72403 } catch (a) {
72404 a = ubb(a);
72405 if (JD(a, 320)) {
72406 throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c2 + She + d + Fle));
72407 } else
72408 throw vbb(a);
72409 }
72410 }
72411 function Nyd(b, c2) {
72412 if (b.g == -1) {
72413 throw vbb(new Ydb());
72414 }
72415 b.mj();
72416 try {
72417 b.d._c(b.g, c2);
72418 b.f = b.d.j;
72419 } catch (a) {
72420 a = ubb(a);
72421 if (JD(a, 73)) {
72422 throw vbb(new Apb());
72423 } else
72424 throw vbb(a);
72425 }
72426 }
72427 function rJc(a, b, c2) {
72428 Odd(c2, "Linear segments node placement", 1);
72429 a.b = BD(vNb(b, (wtc(), otc)), 304);
72430 sJc(a, b);
72431 nJc(a, b);
72432 kJc(a, b);
72433 qJc(a);
72434 a.a = null;
72435 a.b = null;
72436 Qdd(c2);
72437 }
72438 function Ee(a, b) {
72439 var c2, d, e, f2;
72440 f2 = a.gc();
72441 b.length < f2 && (b = eCb(new Array(f2), b));
72442 e = b;
72443 d = a.Kc();
72444 for (c2 = 0; c2 < f2; ++c2) {
72445 NC(e, c2, d.Pb());
72446 }
72447 b.length > f2 && NC(b, f2, null);
72448 return b;
72449 }
72450 function Lu(a, b) {
72451 var c2, d;
72452 d = a.gc();
72453 if (b == null) {
72454 for (c2 = 0; c2 < d; c2++) {
72455 if (a.Xb(c2) == null) {
72456 return c2;
72457 }
72458 }
72459 } else {
72460 for (c2 = 0; c2 < d; c2++) {
72461 if (pb(b, a.Xb(c2))) {
72462 return c2;
72463 }
72464 }
72465 }
72466 return -1;
72467 }
72468 function Jd(a, b) {
72469 var c2, d, e;
72470 c2 = b.cd();
72471 e = b.dd();
72472 d = a.xc(c2);
72473 if (!(PD(e) === PD(d) || e != null && pb(e, d))) {
72474 return false;
72475 }
72476 if (d == null && !a._b(c2)) {
72477 return false;
72478 }
72479 return true;
72480 }
72481 function YC(a, b) {
72482 var c2, d, e;
72483 if (b <= 22) {
72484 c2 = a.l & (1 << b) - 1;
72485 d = e = 0;
72486 } else if (b <= 44) {
72487 c2 = a.l;
72488 d = a.m & (1 << b - 22) - 1;
72489 e = 0;
72490 } else {
72491 c2 = a.l;
72492 d = a.m;
72493 e = a.h & (1 << b - 44) - 1;
72494 }
72495 return TC(c2, d, e);
72496 }
72497 function yKb(a, b) {
72498 switch (b.g) {
72499 case 1:
72500 return a.f.n.d + a.t;
72501 case 3:
72502 return a.f.n.a + a.t;
72503 case 2:
72504 return a.f.n.c + a.s;
72505 case 4:
72506 return a.f.n.b + a.s;
72507 default:
72508 return 0;
72509 }
72510 }
72511 function aLb(a, b) {
72512 var c2, d;
72513 d = b.c;
72514 c2 = b.a;
72515 switch (a.b.g) {
72516 case 0:
72517 c2.d = a.e - d.a - d.d;
72518 break;
72519 case 1:
72520 c2.d += a.e;
72521 break;
72522 case 2:
72523 c2.c = a.e - d.a - d.d;
72524 break;
72525 case 3:
72526 c2.c = a.e + d.d;
72527 }
72528 }
72529 function ZOb(a, b, c2, d) {
72530 var e, f2;
72531 this.a = b;
72532 this.c = d;
72533 e = a.a;
72534 YOb(this, new f7c(-e.c, -e.d));
72535 P6c(this.b, c2);
72536 f2 = d / 2;
72537 b.a ? b7c(this.b, 0, f2) : b7c(this.b, f2, 0);
72538 Ekb(a.c, this);
72539 }
72540 function iXc() {
72541 iXc = ccb;
72542 hXc = new kXc(ane, 0);
72543 fXc = new kXc(Vne, 1);
72544 gXc = new kXc("EDGE_LENGTH_BY_POSITION", 2);
72545 eXc = new kXc("CROSSING_MINIMIZATION_BY_POSITION", 3);
72546 }
72547 function Wqd(a, b) {
72548 var c2, d;
72549 c2 = BD(oo(a.g, b), 33);
72550 if (c2) {
72551 return c2;
72552 }
72553 d = BD(oo(a.j, b), 118);
72554 if (d) {
72555 return d;
72556 }
72557 throw vbb(new cqd("Referenced shape does not exist: " + b));
72558 }
72559 function rTb(a, b) {
72560 if (a.c == b) {
72561 return a.d;
72562 } else if (a.d == b) {
72563 return a.c;
72564 } else {
72565 throw vbb(new Wdb("Node 'one' must be either source or target of edge 'edge'."));
72566 }
72567 }
72568 function TMc(a, b) {
72569 if (a.c.i == b) {
72570 return a.d.i;
72571 } else if (a.d.i == b) {
72572 return a.c.i;
72573 } else {
72574 throw vbb(new Wdb("Node " + b + " is neither source nor target of edge " + a));
72575 }
72576 }
72577 function _lc(a, b) {
72578 var c2;
72579 switch (b.g) {
72580 case 2:
72581 case 4:
72582 c2 = a.a;
72583 a.c.d.n.b < c2.d.n.b && (c2 = a.c);
72584 amc(a, b, (Ajc(), zjc), c2);
72585 break;
72586 case 1:
72587 case 3:
72588 amc(a, b, (Ajc(), wjc), null);
72589 }
72590 }
72591 function smc(a, b, c2, d, e, f2) {
72592 var g, h, i3, j, k;
72593 g = qmc(b, c2, f2);
72594 h = c2 == (Ucd(), Acd) || c2 == Tcd ? -1 : 1;
72595 j = a[c2.g];
72596 for (k = 0; k < j.length; k++) {
72597 i3 = j[k];
72598 i3 > 0 && (i3 += e);
72599 j[k] = g;
72600 g += h * (i3 + d);
72601 }
72602 }
72603 function Uoc(a) {
72604 var b, c2, d;
72605 d = a.f;
72606 a.n = KC(UD, Vje, 25, d, 15, 1);
72607 a.d = KC(UD, Vje, 25, d, 15, 1);
72608 for (b = 0; b < d; b++) {
72609 c2 = BD(Ikb(a.c.b, b), 29);
72610 a.n[b] = Roc(a, c2);
72611 a.d[b] = Qoc(a, c2);
72612 }
72613 }
72614 function zjd(a, b) {
72615 var c2, d, e;
72616 e = 0;
72617 for (d = 2; d < b; d <<= 1) {
72618 (a.Db & d) != 0 && ++e;
72619 }
72620 if (e == 0) {
72621 for (c2 = b <<= 1; c2 <= 128; c2 <<= 1) {
72622 if ((a.Db & c2) != 0) {
72623 return 0;
72624 }
72625 }
72626 return -1;
72627 } else {
72628 return e;
72629 }
72630 }
72631 function s3d(a, b) {
72632 var c2, d, e, f2, g;
72633 g = S6d(a.e.Tg(), b);
72634 f2 = null;
72635 c2 = BD(a.g, 119);
72636 for (e = 0; e < a.i; ++e) {
72637 d = c2[e];
72638 if (g.rl(d.ak())) {
72639 !f2 && (f2 = new yud());
72640 wtd(f2, d);
72641 }
72642 }
72643 !!f2 && Yxd(a, f2);
72644 }
72645 function H9d(a) {
72646 var b, c2, d;
72647 if (!a)
72648 return null;
72649 if (a.dc())
72650 return "";
72651 d = new Hfb();
72652 for (c2 = a.Kc(); c2.Ob(); ) {
72653 b = c2.Pb();
72654 Efb(d, GD(b));
72655 d.a += " ";
72656 }
72657 return lcb(d, d.a.length - 1);
72658 }
72659 function Ty(a, b, c2) {
72660 var d, e, f2, g, h;
72661 Uy(a);
72662 for (e = (a.k == null && (a.k = KC(_I, nie, 78, 0, 0, 1)), a.k), f2 = 0, g = e.length; f2 < g; ++f2) {
72663 d = e[f2];
72664 Ty(d);
72665 }
72666 h = a.f;
72667 !!h && Ty(h);
72668 }
72669 function LC(a, b) {
72670 var c2 = new Array(b);
72671 var d;
72672 switch (a) {
72673 case 14:
72674 case 15:
72675 d = 0;
72676 break;
72677 case 16:
72678 d = false;
72679 break;
72680 default:
72681 return c2;
72682 }
72683 for (var e = 0; e < b; ++e) {
72684 c2[e] = d;
72685 }
72686 return c2;
72687 }
72688 function PDb(a) {
72689 var b, c2, d;
72690 for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
72691 b = BD(mlb(c2), 57);
72692 b.c.$b();
72693 }
72694 fad(a.d) ? d = a.a.c : d = a.a.d;
72695 Hkb(d, new dEb(a));
72696 a.c.Me(a);
72697 QDb(a);
72698 }
72699 function sRb(a) {
72700 var b, c2, d, e;
72701 for (c2 = new olb(a.e.c); c2.a < c2.c.c.length; ) {
72702 b = BD(mlb(c2), 282);
72703 for (e = new olb(b.b); e.a < e.c.c.length; ) {
72704 d = BD(mlb(e), 447);
72705 lRb(d);
72706 }
72707 cRb(b);
72708 }
72709 }
72710 function a$c(a) {
72711 var b, c2, d, e, f2;
72712 d = 0;
72713 f2 = 0;
72714 e = 0;
72715 for (c2 = new olb(a.a); c2.a < c2.c.c.length; ) {
72716 b = BD(mlb(c2), 187);
72717 f2 = $wnd.Math.max(f2, b.r);
72718 d += b.d + (e > 0 ? a.c : 0);
72719 ++e;
72720 }
72721 a.b = d;
72722 a.d = f2;
72723 }
72724 function BZc(a, b) {
72725 var c2, d, e, f2, g;
72726 d = 0;
72727 e = 0;
72728 c2 = 0;
72729 for (g = new olb(b); g.a < g.c.c.length; ) {
72730 f2 = BD(mlb(g), 200);
72731 d = $wnd.Math.max(d, f2.e);
72732 e += f2.b + (c2 > 0 ? a.g : 0);
72733 ++c2;
72734 }
72735 a.c = e;
72736 a.d = d;
72737 }
72738 function AHb(a, b) {
72739 var c2;
72740 c2 = OC(GC(UD, 1), Vje, 25, 15, [zHb(a, (gHb(), dHb), b), zHb(a, eHb, b), zHb(a, fHb, b)]);
72741 if (a.f) {
72742 c2[0] = $wnd.Math.max(c2[0], c2[2]);
72743 c2[2] = c2[0];
72744 }
72745 return c2;
72746 }
72747 function lNb(b, c2, d) {
72748 var e;
72749 try {
72750 aNb(b, c2 + b.j, d + b.k, false, true);
72751 } catch (a) {
72752 a = ubb(a);
72753 if (JD(a, 73)) {
72754 e = a;
72755 throw vbb(new qcb(e.g + Gle + c2 + She + d + ")."));
72756 } else
72757 throw vbb(a);
72758 }
72759 }
72760 function mNb(b, c2, d) {
72761 var e;
72762 try {
72763 aNb(b, c2 + b.j, d + b.k, true, false);
72764 } catch (a) {
72765 a = ubb(a);
72766 if (JD(a, 73)) {
72767 e = a;
72768 throw vbb(new qcb(e.g + Gle + c2 + She + d + ")."));
72769 } else
72770 throw vbb(a);
72771 }
72772 }
72773 function d5b(a) {
72774 var b;
72775 if (!wNb(a, (Nyc(), xxc))) {
72776 return;
72777 }
72778 b = BD(vNb(a, xxc), 21);
72779 if (b.Hc((Hbd(), zbd))) {
72780 b.Mc(zbd);
72781 b.Fc(Bbd);
72782 } else if (b.Hc(Bbd)) {
72783 b.Mc(Bbd);
72784 b.Fc(zbd);
72785 }
72786 }
72787 function e5b(a) {
72788 var b;
72789 if (!wNb(a, (Nyc(), xxc))) {
72790 return;
72791 }
72792 b = BD(vNb(a, xxc), 21);
72793 if (b.Hc((Hbd(), Gbd))) {
72794 b.Mc(Gbd);
72795 b.Fc(Ebd);
72796 } else if (b.Hc(Ebd)) {
72797 b.Mc(Ebd);
72798 b.Fc(Gbd);
72799 }
72800 }
72801 function udc(a, b, c2) {
72802 Odd(c2, "Self-Loop ordering", 1);
72803 MAb(NAb(JAb(JAb(LAb(new YAb(null, new Kub(b.b, 16)), new ydc()), new Adc()), new Cdc()), new Edc()), new Gdc(a));
72804 Qdd(c2);
72805 }
72806 function ikc(a, b, c2, d) {
72807 var e, f2;
72808 for (e = b; e < a.c.length; e++) {
72809 f2 = (tCb(e, a.c.length), BD(a.c[e], 11));
72810 if (c2.Mb(f2)) {
72811 d.c[d.c.length] = f2;
72812 } else {
72813 return e;
72814 }
72815 }
72816 return a.c.length;
72817 }
72818 function Kmc(a, b, c2, d) {
72819 var e, f2, g, h;
72820 a.a == null && Nmc(a, b);
72821 g = b.b.j.c.length;
72822 f2 = c2.d.p;
72823 h = d.d.p;
72824 e = h - 1;
72825 e < 0 && (e = g - 1);
72826 return f2 <= e ? a.a[e] - a.a[f2] : a.a[g - 1] - a.a[f2] + a.a[e];
72827 }
72828 function ehd(a) {
72829 var b, c2;
72830 if (!a.b) {
72831 a.b = Qu(BD(a.f, 33).Ag().i);
72832 for (c2 = new Fyd(BD(a.f, 33).Ag()); c2.e != c2.i.gc(); ) {
72833 b = BD(Dyd(c2), 137);
72834 Ekb(a.b, new dhd(b));
72835 }
72836 }
72837 return a.b;
72838 }
72839 function fhd(a) {
72840 var b, c2;
72841 if (!a.e) {
72842 a.e = Qu(Yod(BD(a.f, 33)).i);
72843 for (c2 = new Fyd(Yod(BD(a.f, 33))); c2.e != c2.i.gc(); ) {
72844 b = BD(Dyd(c2), 118);
72845 Ekb(a.e, new thd(b));
72846 }
72847 }
72848 return a.e;
72849 }
72850 function ahd(a) {
72851 var b, c2;
72852 if (!a.a) {
72853 a.a = Qu(Vod(BD(a.f, 33)).i);
72854 for (c2 = new Fyd(Vod(BD(a.f, 33))); c2.e != c2.i.gc(); ) {
72855 b = BD(Dyd(c2), 33);
72856 Ekb(a.a, new hhd(a, b));
72857 }
72858 }
72859 return a.a;
72860 }
72861 function dKd(b) {
72862 var c2;
72863 if (!b.C && (b.D != null || b.B != null)) {
72864 c2 = eKd(b);
72865 if (c2) {
72866 b.yk(c2);
72867 } else {
72868 try {
72869 b.yk(null);
72870 } catch (a) {
72871 a = ubb(a);
72872 if (!JD(a, 60))
72873 throw vbb(a);
72874 }
72875 }
72876 }
72877 return b.C;
72878 }
72879 function GJb(a) {
72880 switch (a.q.g) {
72881 case 5:
72882 DJb(a, (Ucd(), Acd));
72883 DJb(a, Rcd);
72884 break;
72885 case 4:
72886 EJb(a, (Ucd(), Acd));
72887 EJb(a, Rcd);
72888 break;
72889 default:
72890 FJb(a, (Ucd(), Acd));
72891 FJb(a, Rcd);
72892 }
72893 }
72894 function PKb(a) {
72895 switch (a.q.g) {
72896 case 5:
72897 MKb(a, (Ucd(), zcd));
72898 MKb(a, Tcd);
72899 break;
72900 case 4:
72901 NKb(a, (Ucd(), zcd));
72902 NKb(a, Tcd);
72903 break;
72904 default:
72905 OKb(a, (Ucd(), zcd));
72906 OKb(a, Tcd);
72907 }
72908 }
72909 function EXb(a, b) {
72910 var c2, d, e;
72911 e = new d7c();
72912 for (d = a.Kc(); d.Ob(); ) {
72913 c2 = BD(d.Pb(), 37);
72914 uXb(c2, e.a, 0);
72915 e.a += c2.f.a + b;
72916 e.b = $wnd.Math.max(e.b, c2.f.b);
72917 }
72918 e.b > 0 && (e.b += b);
72919 return e;
72920 }
72921 function GXb(a, b) {
72922 var c2, d, e;
72923 e = new d7c();
72924 for (d = a.Kc(); d.Ob(); ) {
72925 c2 = BD(d.Pb(), 37);
72926 uXb(c2, 0, e.b);
72927 e.b += c2.f.b + b;
72928 e.a = $wnd.Math.max(e.a, c2.f.a);
72929 }
72930 e.a > 0 && (e.a += b);
72931 return e;
72932 }
72933 function d_b(a) {
72934 var b, c2, d;
72935 d = Ohe;
72936 for (c2 = new olb(a.a); c2.a < c2.c.c.length; ) {
72937 b = BD(mlb(c2), 10);
72938 wNb(b, (wtc(), Zsc)) && (d = $wnd.Math.min(d, BD(vNb(b, Zsc), 19).a));
72939 }
72940 return d;
72941 }
72942 function pHc(a, b) {
72943 var c2, d;
72944 if (b.length == 0) {
72945 return 0;
72946 }
72947 c2 = NHc(a.a, b[0], (Ucd(), Tcd));
72948 c2 += NHc(a.a, b[b.length - 1], zcd);
72949 for (d = 0; d < b.length; d++) {
72950 c2 += qHc(a, d, b);
72951 }
72952 return c2;
72953 }
72954 function vQc() {
72955 hQc();
72956 this.c = new Rkb();
72957 this.i = new Rkb();
72958 this.e = new zsb();
72959 this.f = new zsb();
72960 this.g = new zsb();
72961 this.j = new Rkb();
72962 this.a = new Rkb();
72963 this.b = new Lqb();
72964 this.k = new Lqb();
72965 }
72966 function aKd(a, b) {
72967 var c2, d;
72968 if (a.Db >> 16 == 6) {
72969 return a.Cb.ih(a, 5, o5, b);
72970 }
72971 return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? a.zh() : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
72972 }
72973 function Wz(a) {
72974 Rz();
72975 var b = a.e;
72976 if (b && b.stack) {
72977 var c2 = b.stack;
72978 var d = b + "\n";
72979 c2.substring(0, d.length) == d && (c2 = c2.substring(d.length));
72980 return c2.split("\n");
72981 }
72982 return [];
72983 }
72984 function jeb(a) {
72985 var b;
72986 b = (qeb(), peb);
72987 return b[a >>> 28] | b[a >> 24 & 15] << 4 | b[a >> 20 & 15] << 8 | b[a >> 16 & 15] << 12 | b[a >> 12 & 15] << 16 | b[a >> 8 & 15] << 20 | b[a >> 4 & 15] << 24 | b[a & 15] << 28;
72988 }
72989 function _jb(a) {
72990 var b, c2, d;
72991 if (a.b != a.c) {
72992 return;
72993 }
72994 d = a.a.length;
72995 c2 = geb($wnd.Math.max(8, d)) << 1;
72996 if (a.b != 0) {
72997 b = _Bb(a.a, c2);
72998 $jb(a, b, d);
72999 a.a = b;
73000 a.b = 0;
73001 } else {
73002 dCb(a.a, c2);
73003 }
73004 a.c = d;
73005 }
73006 function DKb(a, b) {
73007 var c2;
73008 c2 = a.b;
73009 return c2.Xe((Y9c(), s9c)) ? c2.Hf() == (Ucd(), Tcd) ? -c2.rf().a - Edb(ED(c2.We(s9c))) : b + Edb(ED(c2.We(s9c))) : c2.Hf() == (Ucd(), Tcd) ? -c2.rf().a : b;
73010 }
73011 function P_b(a) {
73012 var b;
73013 if (a.b.c.length != 0 && !!BD(Ikb(a.b, 0), 70).a) {
73014 return BD(Ikb(a.b, 0), 70).a;
73015 }
73016 b = JZb(a);
73017 if (b != null) {
73018 return b;
73019 }
73020 return "" + (!a.c ? -1 : Jkb(a.c.a, a, 0));
73021 }
73022 function C0b(a) {
73023 var b;
73024 if (a.f.c.length != 0 && !!BD(Ikb(a.f, 0), 70).a) {
73025 return BD(Ikb(a.f, 0), 70).a;
73026 }
73027 b = JZb(a);
73028 if (b != null) {
73029 return b;
73030 }
73031 return "" + (!a.i ? -1 : Jkb(a.i.j, a, 0));
73032 }
73033 function Ogc(a, b) {
73034 var c2, d;
73035 if (b < 0 || b >= a.gc()) {
73036 return null;
73037 }
73038 for (c2 = b; c2 < a.gc(); ++c2) {
73039 d = BD(a.Xb(c2), 128);
73040 if (c2 == a.gc() - 1 || !d.o) {
73041 return new vgd(meb(c2), d);
73042 }
73043 }
73044 return null;
73045 }
73046 function uoc(a, b, c2) {
73047 var d, e, f2, g, h;
73048 f2 = a.c;
73049 h = c2 ? b : a;
73050 d = c2 ? a : b;
73051 for (e = h.p + 1; e < d.p; ++e) {
73052 g = BD(Ikb(f2.a, e), 10);
73053 if (!(g.k == (j0b(), d0b) || voc(g))) {
73054 return false;
73055 }
73056 }
73057 return true;
73058 }
73059 function u$c(a) {
73060 var b, c2, d, e, f2;
73061 f2 = 0;
73062 e = Qje;
73063 d = 0;
73064 for (c2 = new olb(a.a); c2.a < c2.c.c.length; ) {
73065 b = BD(mlb(c2), 187);
73066 f2 += b.r + (d > 0 ? a.c : 0);
73067 e = $wnd.Math.max(e, b.d);
73068 ++d;
73069 }
73070 a.e = f2;
73071 a.b = e;
73072 }
73073 function shd(a) {
73074 var b, c2;
73075 if (!a.b) {
73076 a.b = Qu(BD(a.f, 118).Ag().i);
73077 for (c2 = new Fyd(BD(a.f, 118).Ag()); c2.e != c2.i.gc(); ) {
73078 b = BD(Dyd(c2), 137);
73079 Ekb(a.b, new dhd(b));
73080 }
73081 }
73082 return a.b;
73083 }
73084 function Ctd(a, b) {
73085 var c2, d, e;
73086 if (b.dc()) {
73087 return LCd(), LCd(), KCd;
73088 } else {
73089 c2 = new zyd(a, b.gc());
73090 for (e = new Fyd(a); e.e != e.i.gc(); ) {
73091 d = Dyd(e);
73092 b.Hc(d) && wtd(c2, d);
73093 }
73094 return c2;
73095 }
73096 }
73097 function bkd(a, b, c2, d) {
73098 if (b == 0) {
73099 return d ? (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), a.o) : (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), FAd(a.o));
73100 }
73101 return fid(a, b, c2, d);
73102 }
73103 function Tnd(a) {
73104 var b, c2;
73105 if (a.rb) {
73106 for (b = 0, c2 = a.rb.i; b < c2; ++b) {
73107 Cmd(qud(a.rb, b));
73108 }
73109 }
73110 if (a.vb) {
73111 for (b = 0, c2 = a.vb.i; b < c2; ++b) {
73112 Cmd(qud(a.vb, b));
73113 }
73114 }
73115 u1d((O6d(), M6d), a);
73116 a.Bb |= 1;
73117 }
73118 function _nd(a, b, c2, d, e, f2, g, h, i3, j, k, l, m, n) {
73119 aod(a, b, d, null, e, f2, g, h, i3, j, m, true, n);
73120 CUd(a, k);
73121 JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 2);
73122 !!c2 && DUd(a, c2);
73123 EUd(a, l);
73124 return a;
73125 }
73126 function jZd(b) {
73127 var c2, d;
73128 if (b == null) {
73129 return null;
73130 }
73131 d = 0;
73132 try {
73133 d = Icb(b, Rie, Ohe) & aje;
73134 } catch (a) {
73135 a = ubb(a);
73136 if (JD(a, 127)) {
73137 c2 = rfb(b);
73138 d = c2[0];
73139 } else
73140 throw vbb(a);
73141 }
73142 return bdb(d);
73143 }
73144 function kZd(b) {
73145 var c2, d;
73146 if (b == null) {
73147 return null;
73148 }
73149 d = 0;
73150 try {
73151 d = Icb(b, Rie, Ohe) & aje;
73152 } catch (a) {
73153 a = ubb(a);
73154 if (JD(a, 127)) {
73155 c2 = rfb(b);
73156 d = c2[0];
73157 } else
73158 throw vbb(a);
73159 }
73160 return bdb(d);
73161 }
73162 function bD(a, b) {
73163 var c2, d, e;
73164 e = a.h - b.h;
73165 if (e < 0) {
73166 return false;
73167 }
73168 c2 = a.l - b.l;
73169 d = a.m - b.m + (c2 >> 22);
73170 e += d >> 22;
73171 if (e < 0) {
73172 return false;
73173 }
73174 a.l = c2 & Eje;
73175 a.m = d & Eje;
73176 a.h = e & Fje;
73177 return true;
73178 }
73179 function Fwb(a, b, c2, d, e, f2, g) {
73180 var h, i3;
73181 if (b.Ae() && (i3 = a.a.ue(c2, d), i3 < 0 || !e && i3 == 0)) {
73182 return false;
73183 }
73184 if (b.Be() && (h = a.a.ue(c2, f2), h > 0 || !g && h == 0)) {
73185 return false;
73186 }
73187 return true;
73188 }
73189 function Vcc(a, b) {
73190 Occ();
73191 var c2;
73192 c2 = a.j.g - b.j.g;
73193 if (c2 != 0) {
73194 return 0;
73195 }
73196 switch (a.j.g) {
73197 case 2:
73198 return Ycc(b, Ncc) - Ycc(a, Ncc);
73199 case 4:
73200 return Ycc(a, Mcc) - Ycc(b, Mcc);
73201 }
73202 return 0;
73203 }
73204 function Tqc(a) {
73205 switch (a.g) {
73206 case 0:
73207 return Mqc;
73208 case 1:
73209 return Nqc;
73210 case 2:
73211 return Oqc;
73212 case 3:
73213 return Pqc;
73214 case 4:
73215 return Qqc;
73216 case 5:
73217 return Rqc;
73218 default:
73219 return null;
73220 }
73221 }
73222 function End(a, b, c2) {
73223 var d, e;
73224 d = (e = new rUd(), yId(e, b), pnd(e, c2), wtd((!a.c && (a.c = new cUd(p5, a, 12, 10)), a.c), e), e);
73225 AId(d, 0);
73226 DId(d, 1);
73227 CId(d, true);
73228 BId(d, true);
73229 return d;
73230 }
73231 function tud(a, b) {
73232 var c2, d;
73233 if (b >= a.i)
73234 throw vbb(new $zd(b, a.i));
73235 ++a.j;
73236 c2 = a.g[b];
73237 d = a.i - b - 1;
73238 d > 0 && $fb(a.g, b + 1, a.g, b, d);
73239 NC(a.g, --a.i, null);
73240 a.fi(b, c2);
73241 a.ci();
73242 return c2;
73243 }
73244 function UId(a, b) {
73245 var c2, d;
73246 if (a.Db >> 16 == 17) {
73247 return a.Cb.ih(a, 21, c5, b);
73248 }
73249 return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? a.zh() : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
73250 }
73251 function iDb(a) {
73252 var b, c2, d, e;
73253 mmb();
73254 Okb(a.c, a.a);
73255 for (e = new olb(a.c); e.a < e.c.c.length; ) {
73256 d = mlb(e);
73257 for (c2 = new olb(a.b); c2.a < c2.c.c.length; ) {
73258 b = BD(mlb(c2), 679);
73259 b.Ke(d);
73260 }
73261 }
73262 }
73263 function pXb(a) {
73264 var b, c2, d, e;
73265 mmb();
73266 Okb(a.c, a.a);
73267 for (e = new olb(a.c); e.a < e.c.c.length; ) {
73268 d = mlb(e);
73269 for (c2 = new olb(a.b); c2.a < c2.c.c.length; ) {
73270 b = BD(mlb(c2), 369);
73271 b.Ke(d);
73272 }
73273 }
73274 }
73275 function AGb(a) {
73276 var b, c2, d, e, f2;
73277 e = Ohe;
73278 f2 = null;
73279 for (d = new olb(a.d); d.a < d.c.c.length; ) {
73280 c2 = BD(mlb(d), 213);
73281 if (c2.d.j ^ c2.e.j) {
73282 b = c2.e.e - c2.d.e - c2.a;
73283 if (b < e) {
73284 e = b;
73285 f2 = c2;
73286 }
73287 }
73288 }
73289 return f2;
73290 }
73291 function OSb() {
73292 OSb = ccb;
73293 MSb = new Nsd(Mme, (Bcb(), false));
73294 ISb = new Nsd(Nme, 100);
73295 KSb = (yTb(), wTb);
73296 JSb = new Nsd(Ome, KSb);
73297 LSb = new Nsd(Pme, qme);
73298 NSb = new Nsd(Qme, meb(Ohe));
73299 }
73300 function ric(a, b, c2) {
73301 var d, e, f2, g, h, i3, j, k;
73302 j = 0;
73303 for (e = a.a[b], f2 = 0, g = e.length; f2 < g; ++f2) {
73304 d = e[f2];
73305 k = CHc(d, c2);
73306 for (i3 = k.Kc(); i3.Ob(); ) {
73307 h = BD(i3.Pb(), 11);
73308 Rhb(a.f, h, meb(j++));
73309 }
73310 }
73311 }
73312 function uqd(a, b, c2) {
73313 var d, e, f2, g;
73314 if (c2) {
73315 e = c2.a.length;
73316 d = new Yge(e);
73317 for (g = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); g.Ob(); ) {
73318 f2 = BD(g.Pb(), 19);
73319 Rc(a, b, Vpd(tB(c2, f2.a)));
73320 }
73321 }
73322 }
73323 function vqd(a, b, c2) {
73324 var d, e, f2, g;
73325 if (c2) {
73326 e = c2.a.length;
73327 d = new Yge(e);
73328 for (g = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); g.Ob(); ) {
73329 f2 = BD(g.Pb(), 19);
73330 Rc(a, b, Vpd(tB(c2, f2.a)));
73331 }
73332 }
73333 }
73334 function Bkc(a) {
73335 gkc();
73336 var b;
73337 b = BD(Ee(Ec(a.k), KC(F1, bne, 61, 2, 0, 1)), 122);
73338 Klb(b, 0, b.length, null);
73339 if (b[0] == (Ucd(), Acd) && b[1] == Tcd) {
73340 NC(b, 0, Tcd);
73341 NC(b, 1, Acd);
73342 }
73343 return b;
73344 }
73345 function JHc(a, b, c2) {
73346 var d, e, f2;
73347 e = HHc(a, b, c2);
73348 f2 = KHc(a, e);
73349 yHc(a.b);
73350 cIc(a, b, c2);
73351 mmb();
73352 Okb(e, new hIc(a));
73353 d = KHc(a, e);
73354 yHc(a.b);
73355 cIc(a, c2, b);
73356 return new vgd(meb(f2), meb(d));
73357 }
73358 function jJc() {
73359 jJc = ccb;
73360 gJc = e3c(new j3c(), (qUb(), pUb), (S8b(), h8b));
73361 hJc = new Msd("linearSegments.inputPrio", meb(0));
73362 iJc = new Msd("linearSegments.outputPrio", meb(0));
73363 }
73364 function yRc() {
73365 yRc = ccb;
73366 uRc = new ARc("P1_TREEIFICATION", 0);
73367 vRc = new ARc("P2_NODE_ORDERING", 1);
73368 wRc = new ARc("P3_NODE_PLACEMENT", 2);
73369 xRc = new ARc("P4_EDGE_ROUTING", 3);
73370 }
73371 function ZWc() {
73372 ZWc = ccb;
73373 UWc = (Y9c(), C9c);
73374 XWc = T9c;
73375 NWc = Y8c;
73376 OWc = _8c;
73377 PWc = b9c;
73378 MWc = W8c;
73379 QWc = e9c;
73380 TWc = x9c;
73381 KWc = (HWc(), wWc);
73382 LWc = xWc;
73383 RWc = zWc;
73384 SWc = BWc;
73385 VWc = CWc;
73386 WWc = DWc;
73387 YWc = FWc;
73388 }
73389 function rbd() {
73390 rbd = ccb;
73391 qbd = new tbd("UNKNOWN", 0);
73392 nbd = new tbd("ABOVE", 1);
73393 obd = new tbd("BELOW", 2);
73394 pbd = new tbd("INLINE", 3);
73395 new Msd("org.eclipse.elk.labelSide", qbd);
73396 }
73397 function rud(a, b) {
73398 var c2;
73399 if (a.ni() && b != null) {
73400 for (c2 = 0; c2 < a.i; ++c2) {
73401 if (pb(b, a.g[c2])) {
73402 return c2;
73403 }
73404 }
73405 } else {
73406 for (c2 = 0; c2 < a.i; ++c2) {
73407 if (PD(a.g[c2]) === PD(b)) {
73408 return c2;
73409 }
73410 }
73411 }
73412 return -1;
73413 }
73414 function DZb(a, b, c2) {
73415 var d, e;
73416 if (b.c == (KAc(), IAc) && c2.c == HAc) {
73417 return -1;
73418 } else if (b.c == HAc && c2.c == IAc) {
73419 return 1;
73420 }
73421 d = HZb(b.a, a.a);
73422 e = HZb(c2.a, a.a);
73423 return b.c == IAc ? e - d : d - e;
73424 }
73425 function Z_b(a, b, c2) {
73426 if (!!c2 && (b < 0 || b > c2.a.c.length)) {
73427 throw vbb(new Wdb("index must be >= 0 and <= layer node count"));
73428 }
73429 !!a.c && Lkb(a.c.a, a);
73430 a.c = c2;
73431 !!c2 && Dkb(c2.a, b, a);
73432 }
73433 function p7b(a, b) {
73434 var c2, d, e;
73435 for (d = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(d); ) {
73436 c2 = BD(Rr(d), 17);
73437 e = BD(b.Kb(c2), 10);
73438 return new cc(Qb(e.n.b + e.o.b / 2));
73439 }
73440 return wb(), wb(), vb;
73441 }
73442 function rMc(a, b) {
73443 this.c = new Lqb();
73444 this.a = a;
73445 this.b = b;
73446 this.d = BD(vNb(a, (wtc(), otc)), 304);
73447 PD(vNb(a, (Nyc(), yxc))) === PD((_qc(), Zqc)) ? this.e = new bNc() : this.e = new WMc();
73448 }
73449 function $dd(a, b) {
73450 var c2, d, e, f2;
73451 f2 = 0;
73452 for (d = new olb(a); d.a < d.c.c.length; ) {
73453 c2 = BD(mlb(d), 33);
73454 f2 += $wnd.Math.pow(c2.g * c2.f - b, 2);
73455 }
73456 e = $wnd.Math.sqrt(f2 / (a.c.length - 1));
73457 return e;
73458 }
73459 function bgd(a, b) {
73460 var c2, d;
73461 d = null;
73462 if (a.Xe((Y9c(), O9c))) {
73463 c2 = BD(a.We(O9c), 94);
73464 c2.Xe(b) && (d = c2.We(b));
73465 }
73466 d == null && !!a.yf() && (d = a.yf().We(b));
73467 d == null && (d = Ksd(b));
73468 return d;
73469 }
73470 function Vt(b, c2) {
73471 var d, e;
73472 d = b.Zc(c2);
73473 try {
73474 e = d.Pb();
73475 d.Qb();
73476 return e;
73477 } catch (a) {
73478 a = ubb(a);
73479 if (JD(a, 109)) {
73480 throw vbb(new qcb("Can't remove element " + c2));
73481 } else
73482 throw vbb(a);
73483 }
73484 }
73485 function qA(a, b) {
73486 var c2, d, e;
73487 d = new eB();
73488 e = new fB(d.q.getFullYear() - nje, d.q.getMonth(), d.q.getDate());
73489 c2 = pA(a, b, e);
73490 if (c2 == 0 || c2 < b.length) {
73491 throw vbb(new Wdb(b));
73492 }
73493 return e;
73494 }
73495 function _tb(a, b) {
73496 var c2, d, e;
73497 uCb(b);
73498 lCb(b != a);
73499 e = a.b.c.length;
73500 for (d = b.Kc(); d.Ob(); ) {
73501 c2 = d.Pb();
73502 Ekb(a.b, uCb(c2));
73503 }
73504 if (e != a.b.c.length) {
73505 aub(a, 0);
73506 return true;
73507 }
73508 return false;
73509 }
73510 function bTb() {
73511 bTb = ccb;
73512 VSb = (Y9c(), O8c);
73513 new Osd(B8c, (Bcb(), true));
73514 YSb = Y8c;
73515 ZSb = _8c;
73516 $Sb = b9c;
73517 XSb = W8c;
73518 _Sb = e9c;
73519 aTb = x9c;
73520 USb = (OSb(), MSb);
73521 SSb = JSb;
73522 TSb = LSb;
73523 WSb = NSb;
73524 RSb = ISb;
73525 }
73526 function MZb(a, b) {
73527 if (b == a.c) {
73528 return a.d;
73529 } else if (b == a.d) {
73530 return a.c;
73531 } else {
73532 throw vbb(new Wdb("'port' must be either the source port or target port of the edge."));
73533 }
73534 }
73535 function C3b(a, b, c2) {
73536 var d, e;
73537 e = a.o;
73538 d = a.d;
73539 switch (b.g) {
73540 case 1:
73541 return -d.d - c2;
73542 case 3:
73543 return e.b + d.a + c2;
73544 case 2:
73545 return e.a + d.c + c2;
73546 case 4:
73547 return -d.b - c2;
73548 default:
73549 return 0;
73550 }
73551 }
73552 function H6b(a, b, c2, d) {
73553 var e, f2, g, h;
73554 $_b(b, BD(d.Xb(0), 29));
73555 h = d.bd(1, d.gc());
73556 for (f2 = BD(c2.Kb(b), 20).Kc(); f2.Ob(); ) {
73557 e = BD(f2.Pb(), 17);
73558 g = e.c.i == b ? e.d.i : e.c.i;
73559 H6b(a, g, c2, h);
73560 }
73561 }
73562 function Xec(a) {
73563 var b;
73564 b = new Lqb();
73565 if (wNb(a, (wtc(), ttc))) {
73566 return BD(vNb(a, ttc), 83);
73567 }
73568 MAb(JAb(new YAb(null, new Kub(a.j, 16)), new Zec()), new _ec(b));
73569 yNb(a, ttc, b);
73570 return b;
73571 }
73572 function cmd(a, b) {
73573 var c2, d;
73574 if (a.Db >> 16 == 6) {
73575 return a.Cb.ih(a, 6, B2, b);
73576 }
73577 return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (Thd(), Lhd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
73578 }
73579 function Eod(a, b) {
73580 var c2, d;
73581 if (a.Db >> 16 == 7) {
73582 return a.Cb.ih(a, 1, C2, b);
73583 }
73584 return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (Thd(), Nhd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
73585 }
73586 function lpd(a, b) {
73587 var c2, d;
73588 if (a.Db >> 16 == 9) {
73589 return a.Cb.ih(a, 9, E2, b);
73590 }
73591 return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (Thd(), Phd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
73592 }
73593 function mQd(a, b) {
73594 var c2, d;
73595 if (a.Db >> 16 == 5) {
73596 return a.Cb.ih(a, 9, h5, b);
73597 }
73598 return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (jGd(), VFd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
73599 }
73600 function KHd(a, b) {
73601 var c2, d;
73602 if (a.Db >> 16 == 3) {
73603 return a.Cb.ih(a, 0, k5, b);
73604 }
73605 return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (jGd(), OFd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
73606 }
73607 function Snd(a, b) {
73608 var c2, d;
73609 if (a.Db >> 16 == 7) {
73610 return a.Cb.ih(a, 6, o5, b);
73611 }
73612 return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (jGd(), cGd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
73613 }
73614 function ird() {
73615 this.a = new bqd();
73616 this.g = new wo();
73617 this.j = new wo();
73618 this.b = new Lqb();
73619 this.d = new wo();
73620 this.i = new wo();
73621 this.k = new Lqb();
73622 this.c = new Lqb();
73623 this.e = new Lqb();
73624 this.f = new Lqb();
73625 }
73626 function MCd(a, b, c2) {
73627 var d, e, f2;
73628 c2 < 0 && (c2 = 0);
73629 f2 = a.i;
73630 for (e = c2; e < f2; e++) {
73631 d = qud(a, e);
73632 if (b == null) {
73633 if (d == null) {
73634 return e;
73635 }
73636 } else if (PD(b) === PD(d) || pb(b, d)) {
73637 return e;
73638 }
73639 }
73640 return -1;
73641 }
73642 function b1d(a, b) {
73643 var c2, d;
73644 c2 = b.Hh(a.a);
73645 if (!c2) {
73646 return null;
73647 } else {
73648 d = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), Awe));
73649 return dfb(Bwe, d) ? u1d(a, bKd(b.Hj())) : d;
73650 }
73651 }
73652 function p6d(a, b) {
73653 var c2, d;
73654 if (b) {
73655 if (b == a) {
73656 return true;
73657 }
73658 c2 = 0;
73659 for (d = BD(b, 49).eh(); !!d && d != b; d = d.eh()) {
73660 if (++c2 > Wje) {
73661 return p6d(a, d);
73662 }
73663 if (d == a) {
73664 return true;
73665 }
73666 }
73667 }
73668 return false;
73669 }
73670 function HKb(a) {
73671 CKb();
73672 switch (a.q.g) {
73673 case 5:
73674 EKb(a, (Ucd(), Acd));
73675 EKb(a, Rcd);
73676 break;
73677 case 4:
73678 FKb(a, (Ucd(), Acd));
73679 FKb(a, Rcd);
73680 break;
73681 default:
73682 GKb(a, (Ucd(), Acd));
73683 GKb(a, Rcd);
73684 }
73685 }
73686 function LKb(a) {
73687 CKb();
73688 switch (a.q.g) {
73689 case 5:
73690 IKb(a, (Ucd(), zcd));
73691 IKb(a, Tcd);
73692 break;
73693 case 4:
73694 JKb(a, (Ucd(), zcd));
73695 JKb(a, Tcd);
73696 break;
73697 default:
73698 KKb(a, (Ucd(), zcd));
73699 KKb(a, Tcd);
73700 }
73701 }
73702 function XQb(a) {
73703 var b, c2;
73704 b = BD(vNb(a, (wSb(), pSb)), 19);
73705 if (b) {
73706 c2 = b.a;
73707 c2 == 0 ? yNb(a, (HSb(), GSb), new Gub()) : yNb(a, (HSb(), GSb), new Hub(c2));
73708 } else {
73709 yNb(a, (HSb(), GSb), new Hub(1));
73710 }
73711 }
73712 function V$b(a, b) {
73713 var c2;
73714 c2 = a.i;
73715 switch (b.g) {
73716 case 1:
73717 return -(a.n.b + a.o.b);
73718 case 2:
73719 return a.n.a - c2.o.a;
73720 case 3:
73721 return a.n.b - c2.o.b;
73722 case 4:
73723 return -(a.n.a + a.o.a);
73724 }
73725 return 0;
73726 }
73727 function hbc(a, b) {
73728 switch (a.g) {
73729 case 0:
73730 return b == (Ctc(), ytc) ? dbc : ebc;
73731 case 1:
73732 return b == (Ctc(), ytc) ? dbc : cbc;
73733 case 2:
73734 return b == (Ctc(), ytc) ? cbc : ebc;
73735 default:
73736 return cbc;
73737 }
73738 }
73739 function v$c(a, b) {
73740 var c2, d, e;
73741 Lkb(a.a, b);
73742 a.e -= b.r + (a.a.c.length == 0 ? 0 : a.c);
73743 e = ere;
73744 for (d = new olb(a.a); d.a < d.c.c.length; ) {
73745 c2 = BD(mlb(d), 187);
73746 e = $wnd.Math.max(e, c2.d);
73747 }
73748 a.b = e;
73749 }
73750 function Lld(a, b) {
73751 var c2, d;
73752 if (a.Db >> 16 == 3) {
73753 return a.Cb.ih(a, 12, E2, b);
73754 }
73755 return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (Thd(), Khd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
73756 }
73757 function Uod(a, b) {
73758 var c2, d;
73759 if (a.Db >> 16 == 11) {
73760 return a.Cb.ih(a, 10, E2, b);
73761 }
73762 return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (Thd(), Ohd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
73763 }
73764 function PSd(a, b) {
73765 var c2, d;
73766 if (a.Db >> 16 == 10) {
73767 return a.Cb.ih(a, 11, c5, b);
73768 }
73769 return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (jGd(), aGd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
73770 }
73771 function qUd(a, b) {
73772 var c2, d;
73773 if (a.Db >> 16 == 10) {
73774 return a.Cb.ih(a, 12, n5, b);
73775 }
73776 return d = zUd(BD(XKd((c2 = BD(Ajd(a, 16), 26), !c2 ? (jGd(), dGd) : c2), a.Db >> 16), 18)), a.Cb.ih(a, d.n, d.f, b);
73777 }
73778 function wId(a) {
73779 var b;
73780 if ((a.Bb & 1) == 0 && !!a.r && a.r.kh()) {
73781 b = BD(a.r, 49);
73782 a.r = BD(xid(a, b), 138);
73783 a.r != b && (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 8, b, a.r));
73784 }
73785 return a.r;
73786 }
73787 function yHb(a, b, c2) {
73788 var d;
73789 d = OC(GC(UD, 1), Vje, 25, 15, [BHb(a, (gHb(), dHb), b, c2), BHb(a, eHb, b, c2), BHb(a, fHb, b, c2)]);
73790 if (a.f) {
73791 d[0] = $wnd.Math.max(d[0], d[2]);
73792 d[2] = d[0];
73793 }
73794 return d;
73795 }
73796 function O9b(a, b) {
73797 var c2, d, e;
73798 e = V9b(a, b);
73799 if (e.c.length == 0) {
73800 return;
73801 }
73802 Okb(e, new pac());
73803 c2 = e.c.length;
73804 for (d = 0; d < c2; d++) {
73805 K9b(a, (tCb(d, e.c.length), BD(e.c[d], 286)), R9b(a, e, d));
73806 }
73807 }
73808 function qkc(a) {
73809 var b, c2, d, e;
73810 for (e = BD(Qc(a.a, (Xjc(), Sjc)), 15).Kc(); e.Ob(); ) {
73811 d = BD(e.Pb(), 101);
73812 for (c2 = Ec(d.k).Kc(); c2.Ob(); ) {
73813 b = BD(c2.Pb(), 61);
73814 kkc(a, d, b, (Fkc(), Dkc), 1);
73815 }
73816 }
73817 }
73818 function voc(a) {
73819 var b, c2;
73820 if (a.k == (j0b(), g0b)) {
73821 for (c2 = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(c2); ) {
73822 b = BD(Rr(c2), 17);
73823 if (!OZb(b) && a.c == LZb(b, a).c) {
73824 return true;
73825 }
73826 }
73827 }
73828 return false;
73829 }
73830 function JNc(a) {
73831 var b, c2;
73832 if (a.k == (j0b(), g0b)) {
73833 for (c2 = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(c2); ) {
73834 b = BD(Rr(c2), 17);
73835 if (!OZb(b) && b.c.i.c == b.d.i.c) {
73836 return true;
73837 }
73838 }
73839 }
73840 return false;
73841 }
73842 function HUc(a, b) {
73843 var c2, d, e, f2;
73844 Odd(b, "Dull edge routing", 1);
73845 for (f2 = Jsb(a.b, 0); f2.b != f2.d.c; ) {
73846 e = BD(Xsb(f2), 86);
73847 for (d = Jsb(e.d, 0); d.b != d.d.c; ) {
73848 c2 = BD(Xsb(d), 188);
73849 Osb(c2.a);
73850 }
73851 }
73852 }
73853 function xqd(a, b) {
73854 var c2, d, e, f2, g;
73855 if (b) {
73856 e = b.a.length;
73857 c2 = new Yge(e);
73858 for (g = (c2.b - c2.a) * c2.c < 0 ? (Xge(), Wge) : new she(c2); g.Ob(); ) {
73859 f2 = BD(g.Pb(), 19);
73860 d = Zpd(b, f2.a);
73861 !!d && ard(a, d);
73862 }
73863 }
73864 }
73865 function DZd() {
73866 tZd();
73867 var a, b;
73868 xZd((NFd(), MFd));
73869 wZd(MFd);
73870 Tnd(MFd);
73871 FQd = (jGd(), YFd);
73872 for (b = new olb(rZd); b.a < b.c.c.length; ) {
73873 a = BD(mlb(b), 241);
73874 QQd(a, YFd, null);
73875 }
73876 return true;
73877 }
73878 function eD(a, b) {
73879 var c2, d, e, f2, g, h, i3, j;
73880 i3 = a.h >> 19;
73881 j = b.h >> 19;
73882 if (i3 != j) {
73883 return j - i3;
73884 }
73885 e = a.h;
73886 h = b.h;
73887 if (e != h) {
73888 return e - h;
73889 }
73890 d = a.m;
73891 g = b.m;
73892 if (d != g) {
73893 return d - g;
73894 }
73895 c2 = a.l;
73896 f2 = b.l;
73897 return c2 - f2;
73898 }
73899 function fFb() {
73900 fFb = ccb;
73901 eFb = (rFb(), oFb);
73902 dFb = new Nsd(Yke, eFb);
73903 cFb = (UEb(), TEb);
73904 bFb = new Nsd(Zke, cFb);
73905 aFb = (MEb(), LEb);
73906 _Eb = new Nsd($ke, aFb);
73907 $Eb = new Nsd(_ke, (Bcb(), true));
73908 }
73909 function cfc(a, b, c2) {
73910 var d, e;
73911 d = b * c2;
73912 if (JD(a.g, 145)) {
73913 e = ugc(a);
73914 if (e.f.d) {
73915 e.f.a || (a.d.a += d + ple);
73916 } else {
73917 a.d.d -= d + ple;
73918 a.d.a += d + ple;
73919 }
73920 } else if (JD(a.g, 10)) {
73921 a.d.d -= d;
73922 a.d.a += 2 * d;
73923 }
73924 }
73925 function vmc(a, b, c2) {
73926 var d, e, f2, g, h;
73927 e = a[c2.g];
73928 for (h = new olb(b.d); h.a < h.c.c.length; ) {
73929 g = BD(mlb(h), 101);
73930 f2 = g.i;
73931 if (!!f2 && f2.i == c2) {
73932 d = g.d[c2.g];
73933 e[d] = $wnd.Math.max(e[d], f2.j.b);
73934 }
73935 }
73936 }
73937 function AZc(a, b) {
73938 var c2, d, e, f2, g;
73939 d = 0;
73940 e = 0;
73941 c2 = 0;
73942 for (g = new olb(b.d); g.a < g.c.c.length; ) {
73943 f2 = BD(mlb(g), 443);
73944 a$c(f2);
73945 d = $wnd.Math.max(d, f2.b);
73946 e += f2.d + (c2 > 0 ? a.g : 0);
73947 ++c2;
73948 }
73949 b.b = d;
73950 b.e = e;
73951 }
73952 function to(a) {
73953 var b, c2, d;
73954 d = a.b;
73955 if (Lp(a.i, d.length)) {
73956 c2 = d.length * 2;
73957 a.b = KC(GF, Gie, 317, c2, 0, 1);
73958 a.c = KC(GF, Gie, 317, c2, 0, 1);
73959 a.f = c2 - 1;
73960 a.i = 0;
73961 for (b = a.a; b; b = b.c) {
73962 po(a, b, b);
73963 }
73964 ++a.g;
73965 }
73966 }
73967 function cNb(a, b, c2, d) {
73968 var e, f2, g, h;
73969 for (e = 0; e < b.o; e++) {
73970 f2 = e - b.j + c2;
73971 for (g = 0; g < b.p; g++) {
73972 h = g - b.k + d;
73973 YMb(b, e, g) ? jNb(a, f2, h) || lNb(a, f2, h) : $Mb(b, e, g) && (hNb(a, f2, h) || mNb(a, f2, h));
73974 }
73975 }
73976 }
73977 function Ooc(a, b, c2) {
73978 var d;
73979 d = b.c.i;
73980 if (d.k == (j0b(), g0b)) {
73981 yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11));
73982 yNb(a, Wsc, BD(vNb(d, Wsc), 11));
73983 } else {
73984 yNb(a, (wtc(), Vsc), b.c);
73985 yNb(a, Wsc, c2.d);
73986 }
73987 }
73988 function l6c(a, b, c2) {
73989 i6c();
73990 var d, e, f2, g, h, i3;
73991 g = b / 2;
73992 f2 = c2 / 2;
73993 d = $wnd.Math.abs(a.a);
73994 e = $wnd.Math.abs(a.b);
73995 h = 1;
73996 i3 = 1;
73997 d > g && (h = g / d);
73998 e > f2 && (i3 = f2 / e);
73999 Y6c(a, $wnd.Math.min(h, i3));
74000 return a;
74001 }
74002 function ond() {
74003 Smd();
74004 var b, c2;
74005 try {
74006 c2 = BD(mUd((yFd(), xFd), yte), 2014);
74007 if (c2) {
74008 return c2;
74009 }
74010 } catch (a) {
74011 a = ubb(a);
74012 if (JD(a, 102)) {
74013 b = a;
74014 uvd((h0d(), b));
74015 } else
74016 throw vbb(a);
74017 }
74018 return new knd();
74019 }
74020 function Y9d() {
74021 A9d();
74022 var b, c2;
74023 try {
74024 c2 = BD(mUd((yFd(), xFd), Ewe), 2024);
74025 if (c2) {
74026 return c2;
74027 }
74028 } catch (a) {
74029 a = ubb(a);
74030 if (JD(a, 102)) {
74031 b = a;
74032 uvd((h0d(), b));
74033 } else
74034 throw vbb(a);
74035 }
74036 return new U9d();
74037 }
74038 function qZd() {
74039 Smd();
74040 var b, c2;
74041 try {
74042 c2 = BD(mUd((yFd(), xFd), _ve), 1941);
74043 if (c2) {
74044 return c2;
74045 }
74046 } catch (a) {
74047 a = ubb(a);
74048 if (JD(a, 102)) {
74049 b = a;
74050 uvd((h0d(), b));
74051 } else
74052 throw vbb(a);
74053 }
74054 return new mZd();
74055 }
74056 function HQd(a, b, c2) {
74057 var d, e;
74058 e = a.e;
74059 a.e = b;
74060 if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
74061 d = new nSd(a, 1, 4, e, b);
74062 !c2 ? c2 = d : c2.Ei(d);
74063 }
74064 e != b && (b ? c2 = QQd(a, MQd(a, b), c2) : c2 = QQd(a, a.a, c2));
74065 return c2;
74066 }
74067 function nB() {
74068 eB.call(this);
74069 this.e = -1;
74070 this.a = false;
74071 this.p = Rie;
74072 this.k = -1;
74073 this.c = -1;
74074 this.b = -1;
74075 this.g = false;
74076 this.f = -1;
74077 this.j = -1;
74078 this.n = -1;
74079 this.i = -1;
74080 this.d = -1;
74081 this.o = Rie;
74082 }
74083 function qEb(a, b) {
74084 var c2, d, e;
74085 d = a.b.d.d;
74086 a.a || (d += a.b.d.a);
74087 e = b.b.d.d;
74088 b.a || (e += b.b.d.a);
74089 c2 = Kdb(d, e);
74090 if (c2 == 0) {
74091 if (!a.a && b.a) {
74092 return -1;
74093 } else if (!b.a && a.a) {
74094 return 1;
74095 }
74096 }
74097 return c2;
74098 }
74099 function eOb(a, b) {
74100 var c2, d, e;
74101 d = a.b.b.d;
74102 a.a || (d += a.b.b.a);
74103 e = b.b.b.d;
74104 b.a || (e += b.b.b.a);
74105 c2 = Kdb(d, e);
74106 if (c2 == 0) {
74107 if (!a.a && b.a) {
74108 return -1;
74109 } else if (!b.a && a.a) {
74110 return 1;
74111 }
74112 }
74113 return c2;
74114 }
74115 function PVb(a, b) {
74116 var c2, d, e;
74117 d = a.b.g.d;
74118 a.a || (d += a.b.g.a);
74119 e = b.b.g.d;
74120 b.a || (e += b.b.g.a);
74121 c2 = Kdb(d, e);
74122 if (c2 == 0) {
74123 if (!a.a && b.a) {
74124 return -1;
74125 } else if (!b.a && a.a) {
74126 return 1;
74127 }
74128 }
74129 return c2;
74130 }
74131 function ZTb() {
74132 ZTb = ccb;
74133 WTb = c3c(e3c(e3c(e3c(new j3c(), (qUb(), oUb), (S8b(), m8b)), oUb, q8b), pUb, x8b), pUb, a8b);
74134 YTb = e3c(e3c(new j3c(), oUb, S7b), oUb, b8b);
74135 XTb = c3c(new j3c(), pUb, d8b);
74136 }
74137 function s3b(a) {
74138 var b, c2, d, e, f2;
74139 b = BD(vNb(a, (wtc(), Csc)), 83);
74140 f2 = a.n;
74141 for (d = b.Cc().Kc(); d.Ob(); ) {
74142 c2 = BD(d.Pb(), 306);
74143 e = c2.i;
74144 e.c += f2.a;
74145 e.d += f2.b;
74146 c2.c ? VHb(c2) : XHb(c2);
74147 }
74148 yNb(a, Csc, null);
74149 }
74150 function qmc(a, b, c2) {
74151 var d, e;
74152 e = a.b;
74153 d = e.d;
74154 switch (b.g) {
74155 case 1:
74156 return -d.d - c2;
74157 case 2:
74158 return e.o.a + d.c + c2;
74159 case 3:
74160 return e.o.b + d.a + c2;
74161 case 4:
74162 return -d.b - c2;
74163 default:
74164 return -1;
74165 }
74166 }
74167 function BXc(a) {
74168 var b, c2, d, e, f2;
74169 d = 0;
74170 e = dme;
74171 if (a.b) {
74172 for (b = 0; b < 360; b++) {
74173 c2 = b * 0.017453292519943295;
74174 zXc(a, a.d, 0, 0, dre, c2);
74175 f2 = a.b.ig(a.d);
74176 if (f2 < e) {
74177 d = c2;
74178 e = f2;
74179 }
74180 }
74181 }
74182 zXc(a, a.d, 0, 0, dre, d);
74183 }
74184 function E$c(a, b) {
74185 var c2, d, e, f2;
74186 f2 = new Lqb();
74187 b.e = null;
74188 b.f = null;
74189 for (d = new olb(b.i); d.a < d.c.c.length; ) {
74190 c2 = BD(mlb(d), 65);
74191 e = BD(Ohb(a.g, c2.a), 46);
74192 c2.a = D6c(c2.b);
74193 Rhb(f2, c2.a, e);
74194 }
74195 a.g = f2;
74196 }
74197 function t$c(a, b, c2) {
74198 var d, e, f2, g, h, i3;
74199 e = b - a.e;
74200 f2 = e / a.d.c.length;
74201 g = 0;
74202 for (i3 = new olb(a.d); i3.a < i3.c.c.length; ) {
74203 h = BD(mlb(i3), 443);
74204 d = a.b - h.b + c2;
74205 _Zc(h, h.e + g * f2, h.f);
74206 XZc(h, f2, d);
74207 ++g;
74208 }
74209 }
74210 function YBd(a) {
74211 var b;
74212 a.f.qj();
74213 if (a.b != -1) {
74214 ++a.b;
74215 b = a.f.d[a.a];
74216 if (a.b < b.i) {
74217 return;
74218 }
74219 ++a.a;
74220 }
74221 for (; a.a < a.f.d.length; ++a.a) {
74222 b = a.f.d[a.a];
74223 if (!!b && b.i != 0) {
74224 a.b = 0;
74225 return;
74226 }
74227 }
74228 a.b = -1;
74229 }
74230 function j0d(a, b) {
74231 var c2, d, e;
74232 e = b.c.length;
74233 c2 = l0d(a, e == 0 ? "" : (tCb(0, b.c.length), GD(b.c[0])));
74234 for (d = 1; d < e && !!c2; ++d) {
74235 c2 = BD(c2, 49).oh((tCb(d, b.c.length), GD(b.c[d])));
74236 }
74237 return c2;
74238 }
74239 function rEc(a, b) {
74240 var c2, d;
74241 for (d = new olb(b); d.a < d.c.c.length; ) {
74242 c2 = BD(mlb(d), 10);
74243 a.c[c2.c.p][c2.p].a = Aub(a.i);
74244 a.c[c2.c.p][c2.p].d = Edb(a.c[c2.c.p][c2.p].a);
74245 a.c[c2.c.p][c2.p].b = 1;
74246 }
74247 }
74248 function _dd(a, b) {
74249 var c2, d, e, f2;
74250 f2 = 0;
74251 for (d = new olb(a); d.a < d.c.c.length; ) {
74252 c2 = BD(mlb(d), 157);
74253 f2 += $wnd.Math.pow(red(c2) * qed(c2) - b, 2);
74254 }
74255 e = $wnd.Math.sqrt(f2 / (a.c.length - 1));
74256 return e;
74257 }
74258 function LHc(a, b, c2, d) {
74259 var e, f2, g;
74260 f2 = GHc(a, b, c2, d);
74261 g = MHc(a, f2);
74262 bIc(a, b, c2, d);
74263 yHc(a.b);
74264 mmb();
74265 Okb(f2, new lIc(a));
74266 e = MHc(a, f2);
74267 bIc(a, c2, b, d);
74268 yHc(a.b);
74269 return new vgd(meb(g), meb(e));
74270 }
74271 function cJc(a, b, c2) {
74272 var d, e;
74273 Odd(c2, "Interactive node placement", 1);
74274 a.a = BD(vNb(b, (wtc(), otc)), 304);
74275 for (e = new olb(b.b); e.a < e.c.c.length; ) {
74276 d = BD(mlb(e), 29);
74277 bJc(a, d);
74278 }
74279 Qdd(c2);
74280 }
74281 function MVc(a, b) {
74282 var c2;
74283 Odd(b, "General Compactor", 1);
74284 b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
74285 c2 = qWc(BD(hkd(a, (ZWc(), LWc)), 380));
74286 c2.hg(a);
74287 b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
74288 }
74289 function Dfd(a, b, c2) {
74290 var d, e;
74291 nmd(a, a.j + b, a.k + c2);
74292 for (e = new Fyd((!a.a && (a.a = new xMd(y2, a, 5)), a.a)); e.e != e.i.gc(); ) {
74293 d = BD(Dyd(e), 469);
74294 ukd(d, d.a + b, d.b + c2);
74295 }
74296 gmd(a, a.b + b, a.c + c2);
74297 }
74298 function vld(a, b, c2, d) {
74299 switch (c2) {
74300 case 7:
74301 return !a.e && (a.e = new y5d(B2, a, 7, 4)), Sxd(a.e, b, d);
74302 case 8:
74303 return !a.d && (a.d = new y5d(B2, a, 8, 5)), Sxd(a.d, b, d);
74304 }
74305 return Fkd(a, b, c2, d);
74306 }
74307 function wld(a, b, c2, d) {
74308 switch (c2) {
74309 case 7:
74310 return !a.e && (a.e = new y5d(B2, a, 7, 4)), Txd(a.e, b, d);
74311 case 8:
74312 return !a.d && (a.d = new y5d(B2, a, 8, 5)), Txd(a.d, b, d);
74313 }
74314 return Gkd(a, b, c2, d);
74315 }
74316 function lqd(a, b, c2) {
74317 var d, e, f2, g, h;
74318 if (c2) {
74319 f2 = c2.a.length;
74320 d = new Yge(f2);
74321 for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
74322 g = BD(h.Pb(), 19);
74323 e = Zpd(c2, g.a);
74324 !!e && drd(a, e, b);
74325 }
74326 }
74327 }
74328 function HAd(a, b, c2) {
74329 var d, e, f2, g, h;
74330 a.qj();
74331 f2 = b == null ? 0 : tb(b);
74332 if (a.f > 0) {
74333 g = (f2 & Ohe) % a.d.length;
74334 e = wAd(a, g, f2, b);
74335 if (e) {
74336 h = e.ed(c2);
74337 return h;
74338 }
74339 }
74340 d = a.tj(f2, b, c2);
74341 a.c.Fc(d);
74342 return null;
74343 }
74344 function t1d(a, b) {
74345 var c2, d, e, f2;
74346 switch (o1d(a, b)._k()) {
74347 case 3:
74348 case 2: {
74349 c2 = OKd(b);
74350 for (e = 0, f2 = c2.i; e < f2; ++e) {
74351 d = BD(qud(c2, e), 34);
74352 if ($1d(q1d(a, d)) == 5) {
74353 return d;
74354 }
74355 }
74356 break;
74357 }
74358 }
74359 return null;
74360 }
74361 function Qs(a) {
74362 var b, c2, d, e, f2;
74363 if (Lp(a.f, a.b.length)) {
74364 d = KC(BG, Gie, 330, a.b.length * 2, 0, 1);
74365 a.b = d;
74366 e = d.length - 1;
74367 for (c2 = a.a; c2 != a; c2 = c2.Rd()) {
74368 f2 = BD(c2, 330);
74369 b = f2.d & e;
74370 f2.a = d[b];
74371 d[b] = f2;
74372 }
74373 }
74374 }
74375 function DJb(a, b) {
74376 var c2, d, e, f2;
74377 f2 = 0;
74378 for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) {
74379 d = BD(e.Pb(), 111);
74380 f2 = $wnd.Math.max(f2, d.e.a + d.b.rf().a);
74381 }
74382 c2 = BD(Mpb(a.b, b), 124);
74383 c2.n.b = 0;
74384 c2.a.a = f2;
74385 }
74386 function MKb(a, b) {
74387 var c2, d, e, f2;
74388 c2 = 0;
74389 for (f2 = BD(BD(Qc(a.r, b), 21), 84).Kc(); f2.Ob(); ) {
74390 e = BD(f2.Pb(), 111);
74391 c2 = $wnd.Math.max(c2, e.e.b + e.b.rf().b);
74392 }
74393 d = BD(Mpb(a.b, b), 124);
74394 d.n.d = 0;
74395 d.a.b = c2;
74396 }
74397 function INc(a) {
74398 var b, c2;
74399 c2 = BD(vNb(a, (wtc(), Ksc)), 21);
74400 b = k3c(zNc);
74401 c2.Hc((Orc(), Lrc)) && d3c(b, CNc);
74402 c2.Hc(Nrc) && d3c(b, ENc);
74403 c2.Hc(Erc) && d3c(b, ANc);
74404 c2.Hc(Grc) && d3c(b, BNc);
74405 return b;
74406 }
74407 function j1c(a, b) {
74408 var c2;
74409 Odd(b, "Delaunay triangulation", 1);
74410 c2 = new Rkb();
74411 Hkb(a.i, new n1c(c2));
74412 Ccb(DD(vNb(a, (XNb(), VNb)))) && "null10bw";
74413 !a.e ? a.e = NCb(c2) : ye(a.e, NCb(c2));
74414 Qdd(b);
74415 }
74416 function q6c(a) {
74417 if (a < 0) {
74418 throw vbb(new Wdb("The input must be positive"));
74419 } else
74420 return a < h6c.length ? Sbb(h6c[a]) : $wnd.Math.sqrt(dre * a) * (y6c(a, a) / x6c(2.718281828459045, a));
74421 }
74422 function pud(a, b) {
74423 var c2;
74424 if (a.ni() && b != null) {
74425 for (c2 = 0; c2 < a.i; ++c2) {
74426 if (pb(b, a.g[c2])) {
74427 return true;
74428 }
74429 }
74430 } else {
74431 for (c2 = 0; c2 < a.i; ++c2) {
74432 if (PD(a.g[c2]) === PD(b)) {
74433 return true;
74434 }
74435 }
74436 }
74437 return false;
74438 }
74439 function jr(a, b) {
74440 if (b == null) {
74441 while (a.a.Ob()) {
74442 if (BD(a.a.Pb(), 42).dd() == null) {
74443 return true;
74444 }
74445 }
74446 } else {
74447 while (a.a.Ob()) {
74448 if (pb(b, BD(a.a.Pb(), 42).dd())) {
74449 return true;
74450 }
74451 }
74452 }
74453 return false;
74454 }
74455 function zy(a, b) {
74456 var c2, d, e;
74457 if (b === a) {
74458 return true;
74459 } else if (JD(b, 664)) {
74460 e = BD(b, 1947);
74461 return Ue((d = a.g, !d ? a.g = new vi(a) : d), (c2 = e.g, !c2 ? e.g = new vi(e) : c2));
74462 } else {
74463 return false;
74464 }
74465 }
74466 function Tz(a) {
74467 var b, c2, d, e;
74468 b = "Sz";
74469 c2 = "ez";
74470 e = $wnd.Math.min(a.length, 5);
74471 for (d = e - 1; d >= 0; d--) {
74472 if (dfb(a[d].d, b) || dfb(a[d].d, c2)) {
74473 a.length >= d + 1 && a.splice(0, d + 1);
74474 break;
74475 }
74476 }
74477 return a;
74478 }
74479 function Abb(a, b) {
74480 var c2;
74481 if (Fbb(a) && Fbb(b)) {
74482 c2 = a / b;
74483 if (Kje < c2 && c2 < Ije) {
74484 return c2 < 0 ? $wnd.Math.ceil(c2) : $wnd.Math.floor(c2);
74485 }
74486 }
74487 return zbb(UC(Fbb(a) ? Rbb(a) : a, Fbb(b) ? Rbb(b) : b, false));
74488 }
74489 function LZb(a, b) {
74490 if (b == a.c.i) {
74491 return a.d.i;
74492 } else if (b == a.d.i) {
74493 return a.c.i;
74494 } else {
74495 throw vbb(new Wdb("'node' must either be the source node or target node of the edge."));
74496 }
74497 }
74498 function C2b(a) {
74499 var b, c2, d, e;
74500 e = BD(vNb(a, (wtc(), xsc)), 37);
74501 if (e) {
74502 d = new d7c();
74503 b = Q_b(a.c.i);
74504 while (b != e) {
74505 c2 = b.e;
74506 b = Q_b(c2);
74507 O6c(P6c(P6c(d, c2.n), b.c), b.d.b, b.d.d);
74508 }
74509 return d;
74510 }
74511 return w2b;
74512 }
74513 function Ldc(a) {
74514 var b;
74515 b = BD(vNb(a, (wtc(), ntc)), 403);
74516 MAb(LAb(new YAb(null, new Kub(b.d, 16)), new Ydc()), new $dc(a));
74517 MAb(JAb(new YAb(null, new Kub(b.d, 16)), new aec()), new cec(a));
74518 }
74519 function woc(a, b) {
74520 var c2, d, e, f2;
74521 e = b ? U_b(a) : R_b(a);
74522 for (d = new Sr(ur(e.a.Kc(), new Sq())); Qr(d); ) {
74523 c2 = BD(Rr(d), 17);
74524 f2 = LZb(c2, a);
74525 if (f2.k == (j0b(), g0b) && f2.c != a.c) {
74526 return f2;
74527 }
74528 }
74529 return null;
74530 }
74531 function HDc(a) {
74532 var b, c2, d;
74533 for (c2 = new olb(a.p); c2.a < c2.c.c.length; ) {
74534 b = BD(mlb(c2), 10);
74535 if (b.k != (j0b(), h0b)) {
74536 continue;
74537 }
74538 d = b.o.b;
74539 a.i = $wnd.Math.min(a.i, d);
74540 a.g = $wnd.Math.max(a.g, d);
74541 }
74542 }
74543 function oEc(a, b, c2) {
74544 var d, e, f2;
74545 for (f2 = new olb(b); f2.a < f2.c.c.length; ) {
74546 d = BD(mlb(f2), 10);
74547 a.c[d.c.p][d.p].e = false;
74548 }
74549 for (e = new olb(b); e.a < e.c.c.length; ) {
74550 d = BD(mlb(e), 10);
74551 nEc(a, d, c2);
74552 }
74553 }
74554 function WOc(a, b, c2) {
74555 var d, e;
74556 d = vPc(b.j, c2.s, c2.c) + vPc(c2.e, b.s, b.c);
74557 e = vPc(c2.j, b.s, b.c) + vPc(b.e, c2.s, c2.c);
74558 if (d == e) {
74559 if (d > 0) {
74560 a.b += 2;
74561 a.a += d;
74562 }
74563 } else {
74564 a.b += 1;
74565 a.a += $wnd.Math.min(d, e);
74566 }
74567 }
74568 function Rpd(a, b) {
74569 var c2, d;
74570 d = false;
74571 if (ND(b)) {
74572 d = true;
74573 Qpd(a, new yC(GD(b)));
74574 }
74575 if (!d) {
74576 if (JD(b, 236)) {
74577 d = true;
74578 Qpd(a, (c2 = Kcb(BD(b, 236)), new TB(c2)));
74579 }
74580 }
74581 if (!d) {
74582 throw vbb(new vcb(Ute));
74583 }
74584 }
74585 function IMd(a, b, c2, d) {
74586 var e, f2, g;
74587 e = new pSd(a.e, 1, 10, (g = b.c, JD(g, 88) ? BD(g, 26) : (jGd(), _Fd)), (f2 = c2.c, JD(f2, 88) ? BD(f2, 26) : (jGd(), _Fd)), HLd(a, b), false);
74588 !d ? d = e : d.Ei(e);
74589 return d;
74590 }
74591 function T_b(a) {
74592 var b, c2;
74593 switch (BD(vNb(Q_b(a), (Nyc(), ixc)), 420).g) {
74594 case 0:
74595 b = a.n;
74596 c2 = a.o;
74597 return new f7c(b.a + c2.a / 2, b.b + c2.b / 2);
74598 case 1:
74599 return new g7c(a.n);
74600 default:
74601 return null;
74602 }
74603 }
74604 function lrc() {
74605 lrc = ccb;
74606 irc = new mrc(ane, 0);
74607 hrc = new mrc("LEFTUP", 1);
74608 krc = new mrc("RIGHTUP", 2);
74609 grc = new mrc("LEFTDOWN", 3);
74610 jrc = new mrc("RIGHTDOWN", 4);
74611 frc = new mrc("BALANCED", 5);
74612 }
74613 function FFc(a, b, c2) {
74614 var d, e, f2;
74615 d = Kdb(a.a[b.p], a.a[c2.p]);
74616 if (d == 0) {
74617 e = BD(vNb(b, (wtc(), Qsc)), 15);
74618 f2 = BD(vNb(c2, Qsc), 15);
74619 if (e.Hc(c2)) {
74620 return -1;
74621 } else if (f2.Hc(b)) {
74622 return 1;
74623 }
74624 }
74625 return d;
74626 }
74627 function jXc(a) {
74628 switch (a.g) {
74629 case 1:
74630 return new XVc();
74631 case 2:
74632 return new ZVc();
74633 case 3:
74634 return new VVc();
74635 case 0:
74636 return null;
74637 default:
74638 throw vbb(new Wdb(jre + (a.f != null ? a.f : "" + a.g)));
74639 }
74640 }
74641 function Ikd(a, b, c2) {
74642 switch (b) {
74643 case 1:
74644 !a.n && (a.n = new cUd(D2, a, 1, 7));
74645 Uxd(a.n);
74646 !a.n && (a.n = new cUd(D2, a, 1, 7));
74647 ytd(a.n, BD(c2, 14));
74648 return;
74649 case 2:
74650 Lkd(a, GD(c2));
74651 return;
74652 }
74653 ekd(a, b, c2);
74654 }
74655 function Zkd(a, b, c2) {
74656 switch (b) {
74657 case 3:
74658 ald(a, Edb(ED(c2)));
74659 return;
74660 case 4:
74661 cld(a, Edb(ED(c2)));
74662 return;
74663 case 5:
74664 dld(a, Edb(ED(c2)));
74665 return;
74666 case 6:
74667 eld(a, Edb(ED(c2)));
74668 return;
74669 }
74670 Ikd(a, b, c2);
74671 }
74672 function Fnd(a, b, c2) {
74673 var d, e, f2;
74674 f2 = (d = new rUd(), d);
74675 e = xId(f2, b, null);
74676 !!e && e.Fi();
74677 pnd(f2, c2);
74678 wtd((!a.c && (a.c = new cUd(p5, a, 12, 10)), a.c), f2);
74679 AId(f2, 0);
74680 DId(f2, 1);
74681 CId(f2, true);
74682 BId(f2, true);
74683 }
74684 function mUd(a, b) {
74685 var c2, d, e;
74686 c2 = Crb(a.g, b);
74687 if (JD(c2, 235)) {
74688 e = BD(c2, 235);
74689 e.Qh() == null && void 0;
74690 return e.Nh();
74691 } else if (JD(c2, 498)) {
74692 d = BD(c2, 1938);
74693 e = d.b;
74694 return e;
74695 } else {
74696 return null;
74697 }
74698 }
74699 function Ui(a, b, c2, d) {
74700 var e, f2;
74701 Qb(b);
74702 Qb(c2);
74703 f2 = BD(tn(a.d, b), 19);
74704 Ob(!!f2, "Row %s not in %s", b, a.e);
74705 e = BD(tn(a.b, c2), 19);
74706 Ob(!!e, "Column %s not in %s", c2, a.c);
74707 return Wi(a, f2.a, e.a, d);
74708 }
74709 function JC(a, b, c2, d, e, f2, g) {
74710 var h, i3, j, k, l;
74711 k = e[f2];
74712 j = f2 == g - 1;
74713 h = j ? d : 0;
74714 l = LC(h, k);
74715 d != 10 && OC(GC(a, g - f2), b[f2], c2[f2], h, l);
74716 if (!j) {
74717 ++f2;
74718 for (i3 = 0; i3 < k; ++i3) {
74719 l[i3] = JC(a, b, c2, d, e, f2, g);
74720 }
74721 }
74722 return l;
74723 }
74724 function Eyd(b) {
74725 if (b.g == -1) {
74726 throw vbb(new Ydb());
74727 }
74728 b.mj();
74729 try {
74730 b.i.$c(b.g);
74731 b.f = b.i.j;
74732 b.g < b.e && --b.e;
74733 b.g = -1;
74734 } catch (a) {
74735 a = ubb(a);
74736 if (JD(a, 73)) {
74737 throw vbb(new Apb());
74738 } else
74739 throw vbb(a);
74740 }
74741 }
74742 function hYb(a, b) {
74743 a.b.a = $wnd.Math.min(a.b.a, b.c);
74744 a.b.b = $wnd.Math.min(a.b.b, b.d);
74745 a.a.a = $wnd.Math.max(a.a.a, b.c);
74746 a.a.b = $wnd.Math.max(a.a.b, b.d);
74747 return a.c[a.c.length] = b, true;
74748 }
74749 function nZb(a) {
74750 var b, c2, d, e;
74751 e = -1;
74752 d = 0;
74753 for (c2 = new olb(a); c2.a < c2.c.c.length; ) {
74754 b = BD(mlb(c2), 243);
74755 if (b.c == (KAc(), HAc)) {
74756 e = d == 0 ? 0 : d - 1;
74757 break;
74758 } else
74759 d == a.c.length - 1 && (e = d);
74760 d += 1;
74761 }
74762 return e;
74763 }
74764 function UZc(a) {
74765 var b, c2, d, e;
74766 e = 0;
74767 b = 0;
74768 for (d = new olb(a.c); d.a < d.c.c.length; ) {
74769 c2 = BD(mlb(d), 33);
74770 dld(c2, a.e + e);
74771 eld(c2, a.f);
74772 e += c2.g + a.b;
74773 b = $wnd.Math.max(b, c2.f + a.b);
74774 }
74775 a.d = e - a.b;
74776 a.a = b - a.b;
74777 }
74778 function bEb(a) {
74779 var b, c2, d;
74780 for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
74781 b = BD(mlb(c2), 57);
74782 d = b.d.c;
74783 b.d.c = b.d.d;
74784 b.d.d = d;
74785 d = b.d.b;
74786 b.d.b = b.d.a;
74787 b.d.a = d;
74788 d = b.b.a;
74789 b.b.a = b.b.b;
74790 b.b.b = d;
74791 }
74792 RDb(a);
74793 }
74794 function BVb(a) {
74795 var b, c2, d;
74796 for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
74797 b = BD(mlb(c2), 81);
74798 d = b.g.c;
74799 b.g.c = b.g.d;
74800 b.g.d = d;
74801 d = b.g.b;
74802 b.g.b = b.g.a;
74803 b.g.a = d;
74804 d = b.e.a;
74805 b.e.a = b.e.b;
74806 b.e.b = d;
74807 }
74808 sVb(a);
74809 }
74810 function Lmc(a) {
74811 var b, c2, d, e, f2;
74812 f2 = Ec(a.k);
74813 for (c2 = (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])), d = 0, e = c2.length; d < e; ++d) {
74814 b = c2[d];
74815 if (b != Scd && !f2.Hc(b)) {
74816 return b;
74817 }
74818 }
74819 return null;
74820 }
74821 function znc(a, b) {
74822 var c2, d;
74823 d = BD(Etb(KAb(JAb(new YAb(null, new Kub(b.j, 16)), new Pnc()))), 11);
74824 if (d) {
74825 c2 = BD(Ikb(d.e, 0), 17);
74826 if (c2) {
74827 return BD(vNb(c2, (wtc(), Zsc)), 19).a;
74828 }
74829 }
74830 return yzc(a.b);
74831 }
74832 function CCc(a, b) {
74833 var c2, d, e, f2;
74834 for (f2 = new olb(b.a); f2.a < f2.c.c.length; ) {
74835 e = BD(mlb(f2), 10);
74836 Blb(a.d);
74837 for (d = new Sr(ur(U_b(e).a.Kc(), new Sq())); Qr(d); ) {
74838 c2 = BD(Rr(d), 17);
74839 zCc(a, e, c2.d.i);
74840 }
74841 }
74842 }
74843 function NZc(a, b) {
74844 var c2, d;
74845 Lkb(a.b, b);
74846 for (d = new olb(a.n); d.a < d.c.c.length; ) {
74847 c2 = BD(mlb(d), 211);
74848 if (Jkb(c2.c, b, 0) != -1) {
74849 Lkb(c2.c, b);
74850 UZc(c2);
74851 c2.c.c.length == 0 && Lkb(a.n, c2);
74852 break;
74853 }
74854 }
74855 HZc(a);
74856 }
74857 function $Zc(a, b) {
74858 var c2, d, e, f2, g;
74859 g = a.f;
74860 e = 0;
74861 f2 = 0;
74862 for (d = new olb(a.a); d.a < d.c.c.length; ) {
74863 c2 = BD(mlb(d), 187);
74864 OZc(c2, a.e, g);
74865 KZc(c2, b);
74866 f2 = $wnd.Math.max(f2, c2.r);
74867 g += c2.d + a.c;
74868 e = g;
74869 }
74870 a.d = f2;
74871 a.b = e;
74872 }
74873 function hVc(a) {
74874 var b, c2;
74875 c2 = $sd(a);
74876 if (Qq(c2)) {
74877 return null;
74878 } else {
74879 b = (Qb(c2), BD(mr(new Sr(ur(c2.a.Kc(), new Sq()))), 79));
74880 return atd(BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82));
74881 }
74882 }
74883 function XId(a) {
74884 var b;
74885 if (!a.o) {
74886 b = a.Lj();
74887 b ? a.o = new dYd(a, a, null) : a.rk() ? a.o = new uVd(a, null) : $1d(q1d((O6d(), M6d), a)) == 1 ? a.o = new nYd(a) : a.o = new sYd(a, null);
74888 }
74889 return a.o;
74890 }
74891 function w6d(a, b, c2, d) {
74892 var e, f2, g, h, i3;
74893 if (c2.mh(b)) {
74894 e = (g = b, !g ? null : BD(d, 49).xh(g));
74895 if (e) {
74896 i3 = c2.ah(b);
74897 h = b.t;
74898 if (h > 1 || h == -1) {
74899 f2 = BD(i3, 15);
74900 e.Wb(t6d(a, f2));
74901 } else {
74902 e.Wb(s6d(a, BD(i3, 56)));
74903 }
74904 }
74905 }
74906 }
74907 function Zbb(b, c2, d, e) {
74908 Ybb();
74909 var f2 = Wbb;
74910 function g() {
74911 for (var a = 0; a < f2.length; a++) {
74912 f2[a]();
74913 }
74914 }
74915 if (b) {
74916 try {
74917 Ihe(g)();
74918 } catch (a) {
74919 b(c2, a);
74920 }
74921 } else {
74922 Ihe(g)();
74923 }
74924 }
74925 function Kgc(a) {
74926 var b, c2, d, e, f2;
74927 for (d = new nib(new eib(a.b).a); d.b; ) {
74928 c2 = lib(d);
74929 b = BD(c2.cd(), 10);
74930 f2 = BD(BD(c2.dd(), 46).a, 10);
74931 e = BD(BD(c2.dd(), 46).b, 8);
74932 P6c(X6c(b.n), P6c(R6c(f2.n), e));
74933 }
74934 }
74935 function llc(a) {
74936 switch (BD(vNb(a.b, (Nyc(), Vwc)), 375).g) {
74937 case 1:
74938 MAb(NAb(LAb(new YAb(null, new Kub(a.d, 16)), new Glc()), new Ilc()), new Klc());
74939 break;
74940 case 2:
74941 nlc(a);
74942 break;
74943 case 0:
74944 mlc(a);
74945 }
74946 }
74947 function KXc(a, b, c2) {
74948 var d;
74949 Odd(c2, "Straight Line Edge Routing", 1);
74950 c2.n && !!b && Tdd(c2, i6d(b), (pgd(), mgd));
74951 d = BD(hkd(b, (MUc(), LUc)), 33);
74952 LXc(a, d);
74953 c2.n && !!b && Tdd(c2, i6d(b), (pgd(), mgd));
74954 }
74955 function i8c() {
74956 i8c = ccb;
74957 h8c = new j8c("V_TOP", 0);
74958 g8c = new j8c("V_CENTER", 1);
74959 f8c = new j8c("V_BOTTOM", 2);
74960 d8c = new j8c("H_LEFT", 3);
74961 c8c = new j8c("H_CENTER", 4);
74962 e8c = new j8c("H_RIGHT", 5);
74963 }
74964 function gLd(a) {
74965 var b;
74966 if ((a.Db & 64) != 0)
74967 return mKd(a);
74968 b = new Jfb(mKd(a));
74969 b.a += " (abstract: ";
74970 Ffb(b, (a.Bb & 256) != 0);
74971 b.a += ", interface: ";
74972 Ffb(b, (a.Bb & 512) != 0);
74973 b.a += ")";
74974 return b.a;
74975 }
74976 function l3d(a, b, c2, d) {
74977 var e, f2, g, h;
74978 if (oid(a.e)) {
74979 e = b.ak();
74980 h = b.dd();
74981 f2 = c2.dd();
74982 g = H2d(a, 1, e, h, f2, e.$j() ? M2d(a, e, f2, JD(e, 99) && (BD(e, 18).Bb & Tje) != 0) : -1, true);
74983 d ? d.Ei(g) : d = g;
74984 }
74985 return d;
74986 }
74987 function kz(a) {
74988 var b;
74989 if (a.c == null) {
74990 b = PD(a.b) === PD(iz) ? null : a.b;
74991 a.d = b == null ? Xhe : MD(b) ? nz(FD(b)) : ND(b) ? Vie : hdb(rb(b));
74992 a.a = a.a + ": " + (MD(b) ? mz(FD(b)) : b + "");
74993 a.c = "(" + a.d + ") " + a.a;
74994 }
74995 }
74996 function Wgb(a, b) {
74997 this.e = a;
74998 if (Bbb(xbb(b, -4294967296), 0)) {
74999 this.d = 1;
75000 this.a = OC(GC(WD, 1), oje, 25, 15, [Tbb(b)]);
75001 } else {
75002 this.d = 2;
75003 this.a = OC(GC(WD, 1), oje, 25, 15, [Tbb(b), Tbb(Obb(b, 32))]);
75004 }
75005 }
75006 function yrb() {
75007 function b() {
75008 try {
75009 return (/* @__PURE__ */ new Map()).entries().next().done;
75010 } catch (a) {
75011 return false;
75012 }
75013 }
75014 if (typeof Map === Nhe && Map.prototype.entries && b()) {
75015 return Map;
75016 } else {
75017 return zrb();
75018 }
75019 }
75020 function VPc(a, b) {
75021 var c2, d, e, f2;
75022 f2 = new Bib(a.e, 0);
75023 c2 = 0;
75024 while (f2.b < f2.d.gc()) {
75025 d = Edb((sCb(f2.b < f2.d.gc()), ED(f2.d.Xb(f2.c = f2.b++))));
75026 e = d - b;
75027 if (e > Oqe) {
75028 return c2;
75029 } else
75030 e > -1e-6 && ++c2;
75031 }
75032 return c2;
75033 }
75034 function PQd(a, b) {
75035 var c2;
75036 if (b != a.b) {
75037 c2 = null;
75038 !!a.b && (c2 = lid(a.b, a, -4, c2));
75039 !!b && (c2 = kid(b, a, -4, c2));
75040 c2 = GQd(a, b, c2);
75041 !!c2 && c2.Fi();
75042 } else
75043 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, b, b));
75044 }
75045 function SQd(a, b) {
75046 var c2;
75047 if (b != a.f) {
75048 c2 = null;
75049 !!a.f && (c2 = lid(a.f, a, -1, c2));
75050 !!b && (c2 = kid(b, a, -1, c2));
75051 c2 = IQd(a, b, c2);
75052 !!c2 && c2.Fi();
75053 } else
75054 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 0, b, b));
75055 }
75056 function E9d(a) {
75057 var b, c2, d;
75058 if (a == null)
75059 return null;
75060 c2 = BD(a, 15);
75061 if (c2.dc())
75062 return "";
75063 d = new Hfb();
75064 for (b = c2.Kc(); b.Ob(); ) {
75065 Efb(d, (Q8d(), GD(b.Pb())));
75066 d.a += " ";
75067 }
75068 return lcb(d, d.a.length - 1);
75069 }
75070 function I9d(a) {
75071 var b, c2, d;
75072 if (a == null)
75073 return null;
75074 c2 = BD(a, 15);
75075 if (c2.dc())
75076 return "";
75077 d = new Hfb();
75078 for (b = c2.Kc(); b.Ob(); ) {
75079 Efb(d, (Q8d(), GD(b.Pb())));
75080 d.a += " ";
75081 }
75082 return lcb(d, d.a.length - 1);
75083 }
75084 function qEc(a, b, c2) {
75085 var d, e;
75086 d = a.c[b.c.p][b.p];
75087 e = a.c[c2.c.p][c2.p];
75088 if (d.a != null && e.a != null) {
75089 return Ddb(d.a, e.a);
75090 } else if (d.a != null) {
75091 return -1;
75092 } else if (e.a != null) {
75093 return 1;
75094 }
75095 return 0;
75096 }
75097 function zqd(a, b) {
75098 var c2, d, e, f2, g, h;
75099 if (b) {
75100 f2 = b.a.length;
75101 c2 = new Yge(f2);
75102 for (h = (c2.b - c2.a) * c2.c < 0 ? (Xge(), Wge) : new she(c2); h.Ob(); ) {
75103 g = BD(h.Pb(), 19);
75104 e = Zpd(b, g.a);
75105 d = new Crd(a);
75106 Aqd(d.a, e);
75107 }
75108 }
75109 }
75110 function Qqd(a, b) {
75111 var c2, d, e, f2, g, h;
75112 if (b) {
75113 f2 = b.a.length;
75114 c2 = new Yge(f2);
75115 for (h = (c2.b - c2.a) * c2.c < 0 ? (Xge(), Wge) : new she(c2); h.Ob(); ) {
75116 g = BD(h.Pb(), 19);
75117 e = Zpd(b, g.a);
75118 d = new lrd(a);
75119 nqd(d.a, e);
75120 }
75121 }
75122 }
75123 function eFd(b) {
75124 var c2;
75125 if (b != null && b.length > 0 && bfb(b, b.length - 1) == 33) {
75126 try {
75127 c2 = PEd(qfb(b, 0, b.length - 1));
75128 return c2.e == null;
75129 } catch (a) {
75130 a = ubb(a);
75131 if (!JD(a, 32))
75132 throw vbb(a);
75133 }
75134 }
75135 return false;
75136 }
75137 function h3d(a, b, c2) {
75138 var d, e, f2;
75139 d = b.ak();
75140 f2 = b.dd();
75141 e = d.$j() ? H2d(a, 3, d, null, f2, M2d(a, d, f2, JD(d, 99) && (BD(d, 18).Bb & Tje) != 0), true) : H2d(a, 1, d, d.zj(), f2, -1, true);
75142 c2 ? c2.Ei(e) : c2 = e;
75143 return c2;
75144 }
75145 function Vee() {
75146 var a, b, c2;
75147 b = 0;
75148 for (a = 0; a < "X".length; a++) {
75149 c2 = Uee((BCb(a, "X".length), "X".charCodeAt(a)));
75150 if (c2 == 0)
75151 throw vbb(new mde("Unknown Option: " + "X".substr(a)));
75152 b |= c2;
75153 }
75154 return b;
75155 }
75156 function mZb(a, b, c2) {
75157 var d, e, f2;
75158 d = Q_b(b);
75159 e = a_b(d);
75160 f2 = new H0b();
75161 F0b(f2, b);
75162 switch (c2.g) {
75163 case 1:
75164 G0b(f2, Wcd(Zcd(e)));
75165 break;
75166 case 2:
75167 G0b(f2, Zcd(e));
75168 }
75169 yNb(f2, (Nyc(), Uxc), ED(vNb(a, Uxc)));
75170 return f2;
75171 }
75172 function U9b(a) {
75173 var b, c2;
75174 b = BD(Rr(new Sr(ur(R_b(a.a).a.Kc(), new Sq()))), 17);
75175 c2 = BD(Rr(new Sr(ur(U_b(a.a).a.Kc(), new Sq()))), 17);
75176 return Ccb(DD(vNb(b, (wtc(), ltc)))) || Ccb(DD(vNb(c2, ltc)));
75177 }
75178 function Xjc() {
75179 Xjc = ccb;
75180 Tjc = new Yjc("ONE_SIDE", 0);
75181 Vjc = new Yjc("TWO_SIDES_CORNER", 1);
75182 Wjc = new Yjc("TWO_SIDES_OPPOSING", 2);
75183 Ujc = new Yjc("THREE_SIDES", 3);
75184 Sjc = new Yjc("FOUR_SIDES", 4);
75185 }
75186 function jkc(a, b, c2, d, e) {
75187 var f2, g;
75188 f2 = BD(GAb(JAb(b.Oc(), new _kc()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
75189 g = BD(Si(a.b, c2, d), 15);
75190 e == 0 ? g.Wc(0, f2) : g.Gc(f2);
75191 }
75192 function KDc(a, b) {
75193 var c2, d, e, f2, g;
75194 for (f2 = new olb(b.a); f2.a < f2.c.c.length; ) {
75195 e = BD(mlb(f2), 10);
75196 for (d = new Sr(ur(R_b(e).a.Kc(), new Sq())); Qr(d); ) {
75197 c2 = BD(Rr(d), 17);
75198 g = c2.c.i.p;
75199 a.n[g] = a.n[g] - 1;
75200 }
75201 }
75202 }
75203 function cnc(a, b) {
75204 var c2, d, e, f2, g;
75205 for (f2 = new olb(b.d); f2.a < f2.c.c.length; ) {
75206 e = BD(mlb(f2), 101);
75207 g = BD(Ohb(a.c, e), 112).o;
75208 for (d = new Gqb(e.b); d.a < d.c.a.length; ) {
75209 c2 = BD(Fqb(d), 61);
75210 ojc(e, c2, g);
75211 }
75212 }
75213 }
75214 function HJc(a) {
75215 var b, c2;
75216 for (c2 = new olb(a.e.b); c2.a < c2.c.c.length; ) {
75217 b = BD(mlb(c2), 29);
75218 YJc(a, b);
75219 }
75220 MAb(JAb(LAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new YKc()), new tLc()), new vLc()), new xLc(a));
75221 }
75222 function Qwd(a, b) {
75223 if (!b) {
75224 return false;
75225 } else {
75226 if (a.Di(b)) {
75227 return false;
75228 }
75229 if (!a.i) {
75230 if (JD(b, 143)) {
75231 a.i = BD(b, 143);
75232 return true;
75233 } else {
75234 a.i = new Hxd();
75235 return a.i.Ei(b);
75236 }
75237 } else {
75238 return a.i.Ei(b);
75239 }
75240 }
75241 }
75242 function B9d(a) {
75243 a = Qge(a, true);
75244 if (dfb(kse, a) || dfb("1", a)) {
75245 return Bcb(), Acb;
75246 } else if (dfb(lse, a) || dfb("0", a)) {
75247 return Bcb(), zcb;
75248 }
75249 throw vbb(new n8d("Invalid boolean value: '" + a + "'"));
75250 }
75251 function Kd(a, b, c2) {
75252 var d, e, f2;
75253 for (e = a.vc().Kc(); e.Ob(); ) {
75254 d = BD(e.Pb(), 42);
75255 f2 = d.cd();
75256 if (PD(b) === PD(f2) || b != null && pb(b, f2)) {
75257 if (c2) {
75258 d = new pjb(d.cd(), d.dd());
75259 e.Qb();
75260 }
75261 return d;
75262 }
75263 }
75264 return null;
75265 }
75266 function dKb(a) {
75267 $Jb();
75268 var b, c2, d;
75269 if (!a.B.Hc((Idd(), Add))) {
75270 return;
75271 }
75272 d = a.f.i;
75273 b = new K6c(a.a.c);
75274 c2 = new p0b();
75275 c2.b = b.c - d.c;
75276 c2.d = b.d - d.d;
75277 c2.c = d.c + d.b - (b.c + b.b);
75278 c2.a = d.d + d.a - (b.d + b.a);
75279 a.e.Ff(c2);
75280 }
75281 function LNb(a, b, c2, d) {
75282 var e, f2, g;
75283 g = $wnd.Math.min(c2, ONb(BD(a.b, 65), b, c2, d));
75284 for (f2 = new olb(a.a); f2.a < f2.c.c.length; ) {
75285 e = BD(mlb(f2), 221);
75286 e != b && (g = $wnd.Math.min(g, LNb(e, b, g, d)));
75287 }
75288 return g;
75289 }
75290 function WZb(a) {
75291 var b, c2, d, e;
75292 e = KC(OQ, nie, 193, a.b.c.length, 0, 2);
75293 d = new Bib(a.b, 0);
75294 while (d.b < d.d.gc()) {
75295 b = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 29));
75296 c2 = d.b - 1;
75297 e[c2] = l_b(b.a);
75298 }
75299 return e;
75300 }
75301 function K3b(a, b, c2, d, e) {
75302 var f2, g, h, i3;
75303 g = eLb(dLb(iLb(H3b(c2)), d), C3b(a, c2, e));
75304 for (i3 = Y_b(a, c2).Kc(); i3.Ob(); ) {
75305 h = BD(i3.Pb(), 11);
75306 if (b[h.p]) {
75307 f2 = b[h.p].i;
75308 Ekb(g.d, new BLb(f2, bLb(g, f2)));
75309 }
75310 }
75311 cLb(g);
75312 }
75313 function sic(a, b) {
75314 this.f = new Lqb();
75315 this.b = new Lqb();
75316 this.j = new Lqb();
75317 this.a = a;
75318 this.c = b;
75319 this.c > 0 && ric(this, this.c - 1, (Ucd(), zcd));
75320 this.c < this.a.length - 1 && ric(this, this.c + 1, (Ucd(), Tcd));
75321 }
75322 function SEc(a) {
75323 a.length > 0 && a[0].length > 0 && (this.c = Ccb(DD(vNb(Q_b(a[0][0]), (wtc(), Rsc)))));
75324 this.a = KC(CX, nie, 2018, a.length, 0, 2);
75325 this.b = KC(FX, nie, 2019, a.length, 0, 2);
75326 this.d = new ss();
75327 }
75328 function tKc(a) {
75329 if (a.c.length == 0) {
75330 return false;
75331 }
75332 if ((tCb(0, a.c.length), BD(a.c[0], 17)).c.i.k == (j0b(), g0b)) {
75333 return true;
75334 }
75335 return FAb(NAb(new YAb(null, new Kub(a, 16)), new wKc()), new yKc());
75336 }
75337 function rRc(a, b, c2) {
75338 Odd(c2, "Tree layout", 1);
75339 H2c(a.b);
75340 K2c(a.b, (yRc(), uRc), uRc);
75341 K2c(a.b, vRc, vRc);
75342 K2c(a.b, wRc, wRc);
75343 K2c(a.b, xRc, xRc);
75344 a.a = F2c(a.b, b);
75345 sRc(a, b, Udd(c2, 1));
75346 Qdd(c2);
75347 return b;
75348 }
75349 function HXc(a, b) {
75350 var c2, d, e, f2, g, h, i3;
75351 h = gVc(b);
75352 f2 = b.f;
75353 i3 = b.g;
75354 g = $wnd.Math.sqrt(f2 * f2 + i3 * i3);
75355 e = 0;
75356 for (d = new olb(h); d.a < d.c.c.length; ) {
75357 c2 = BD(mlb(d), 33);
75358 e += HXc(a, c2);
75359 }
75360 return $wnd.Math.max(e, g);
75361 }
75362 function dcd() {
75363 dcd = ccb;
75364 ccd = new gcd(ole, 0);
75365 bcd = new gcd("FREE", 1);
75366 acd = new gcd("FIXED_SIDE", 2);
75367 Zbd = new gcd("FIXED_ORDER", 3);
75368 _bd = new gcd("FIXED_RATIO", 4);
75369 $bd = new gcd("FIXED_POS", 5);
75370 }
75371 function c1d(a, b) {
75372 var c2, d, e;
75373 c2 = b.Hh(a.a);
75374 if (c2) {
75375 e = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), Cwe));
75376 for (d = 1; d < (O6d(), N6d).length; ++d) {
75377 if (dfb(N6d[d], e)) {
75378 return d;
75379 }
75380 }
75381 }
75382 return 0;
75383 }
75384 function Qlb(a) {
75385 var b, c2, d, e, f2;
75386 if (a == null) {
75387 return Xhe;
75388 }
75389 f2 = new xwb(She, "[", "]");
75390 for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
75391 b = c2[d];
75392 uwb(f2, "" + b);
75393 }
75394 return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
75395 }
75396 function Wlb(a) {
75397 var b, c2, d, e, f2;
75398 if (a == null) {
75399 return Xhe;
75400 }
75401 f2 = new xwb(She, "[", "]");
75402 for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
75403 b = c2[d];
75404 uwb(f2, "" + b);
75405 }
75406 return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
75407 }
75408 function Md(a) {
75409 var b, c2, d;
75410 d = new xwb(She, "{", "}");
75411 for (c2 = a.vc().Kc(); c2.Ob(); ) {
75412 b = BD(c2.Pb(), 42);
75413 uwb(d, Nd(a, b.cd()) + "=" + Nd(a, b.dd()));
75414 }
75415 return !d.a ? d.c : d.e.length == 0 ? d.a.a : d.a.a + ("" + d.e);
75416 }
75417 function EGb(a) {
75418 var b, c2, d, e;
75419 while (!akb(a.o)) {
75420 c2 = BD(fkb(a.o), 46);
75421 d = BD(c2.a, 121);
75422 b = BD(c2.b, 213);
75423 e = xFb(b, d);
75424 if (b.e == d) {
75425 NFb(e.g, b);
75426 d.e = e.e + b.a;
75427 } else {
75428 NFb(e.b, b);
75429 d.e = e.e - b.a;
75430 }
75431 Ekb(a.e.a, d);
75432 }
75433 }
75434 function F6b(a, b) {
75435 var c2, d, e;
75436 c2 = null;
75437 for (e = BD(b.Kb(a), 20).Kc(); e.Ob(); ) {
75438 d = BD(e.Pb(), 17);
75439 if (!c2) {
75440 c2 = d.c.i == a ? d.d.i : d.c.i;
75441 } else {
75442 if ((d.c.i == a ? d.d.i : d.c.i) != c2) {
75443 return false;
75444 }
75445 }
75446 }
75447 return true;
75448 }
75449 function uPc(a, b) {
75450 var c2, d, e, f2, g;
75451 c2 = WNc(a, false, b);
75452 for (e = new olb(c2); e.a < e.c.c.length; ) {
75453 d = BD(mlb(e), 129);
75454 d.d == 0 ? (BOc(d, null), COc(d, null)) : (f2 = d.a, g = d.b, BOc(d, g), COc(d, f2), void 0);
75455 }
75456 }
75457 function qQc(a) {
75458 var b, c2;
75459 b = new j3c();
75460 d3c(b, cQc);
75461 c2 = BD(vNb(a, (wtc(), Ksc)), 21);
75462 c2.Hc((Orc(), Nrc)) && d3c(b, gQc);
75463 c2.Hc(Erc) && d3c(b, dQc);
75464 c2.Hc(Lrc) && d3c(b, fQc);
75465 c2.Hc(Grc) && d3c(b, eQc);
75466 return b;
75467 }
75468 function Xac(a) {
75469 var b, c2, d, e;
75470 Wac(a);
75471 for (c2 = new Sr(ur(O_b(a).a.Kc(), new Sq())); Qr(c2); ) {
75472 b = BD(Rr(c2), 17);
75473 d = b.c.i == a;
75474 e = d ? b.d : b.c;
75475 d ? RZb(b, null) : QZb(b, null);
75476 yNb(b, (wtc(), ctc), e);
75477 _ac(a, e.i);
75478 }
75479 }
75480 function wmc(a, b, c2, d) {
75481 var e, f2;
75482 f2 = b.i;
75483 e = c2[f2.g][a.d[f2.g]];
75484 switch (f2.g) {
75485 case 1:
75486 e -= d + b.j.b;
75487 b.g.b = e;
75488 break;
75489 case 3:
75490 e += d;
75491 b.g.b = e;
75492 break;
75493 case 4:
75494 e -= d + b.j.a;
75495 b.g.a = e;
75496 break;
75497 case 2:
75498 e += d;
75499 b.g.a = e;
75500 }
75501 }
75502 function aVc(a) {
75503 var b, c2, d;
75504 for (c2 = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); c2.e != c2.i.gc(); ) {
75505 b = BD(Dyd(c2), 33);
75506 d = $sd(b);
75507 if (!Qr(new Sr(ur(d.a.Kc(), new Sq())))) {
75508 return b;
75509 }
75510 }
75511 return null;
75512 }
75513 function Cod() {
75514 var a;
75515 if (yod)
75516 return BD(nUd((yFd(), xFd), yte), 2016);
75517 a = BD(JD(Phb((yFd(), xFd), yte), 555) ? Phb(xFd, yte) : new Bod(), 555);
75518 yod = true;
75519 zod(a);
75520 Aod(a);
75521 Tnd(a);
75522 Shb(xFd, yte, a);
75523 return a;
75524 }
75525 function t3d(a, b, c2) {
75526 var d, e;
75527 if (a.j == 0)
75528 return c2;
75529 e = BD(LLd(a, b, c2), 72);
75530 d = c2.ak();
75531 if (!d.Ij() || !a.a.rl(d)) {
75532 throw vbb(new hz("Invalid entry feature '" + d.Hj().zb + "." + d.ne() + "'"));
75533 }
75534 return e;
75535 }
75536 function Qi(a, b) {
75537 var c2, d, e, f2, g, h, i3, j;
75538 for (h = a.a, i3 = 0, j = h.length; i3 < j; ++i3) {
75539 g = h[i3];
75540 for (d = g, e = 0, f2 = d.length; e < f2; ++e) {
75541 c2 = d[e];
75542 if (PD(b) === PD(c2) || b != null && pb(b, c2)) {
75543 return true;
75544 }
75545 }
75546 }
75547 return false;
75548 }
75549 function qhb(a) {
75550 var b, c2, d;
75551 if (ybb(a, 0) >= 0) {
75552 c2 = Abb(a, Jje);
75553 d = Hbb(a, Jje);
75554 } else {
75555 b = Pbb(a, 1);
75556 c2 = Abb(b, 5e8);
75557 d = Hbb(b, 5e8);
75558 d = wbb(Nbb(d, 1), xbb(a, 1));
75559 }
75560 return Mbb(Nbb(d, 32), xbb(c2, Yje));
75561 }
75562 function oQb(a, b, c2) {
75563 var d, e;
75564 d = (sCb(b.b != 0), BD(Nsb(b, b.a.a), 8));
75565 switch (c2.g) {
75566 case 0:
75567 d.b = 0;
75568 break;
75569 case 2:
75570 d.b = a.f;
75571 break;
75572 case 3:
75573 d.a = 0;
75574 break;
75575 default:
75576 d.a = a.g;
75577 }
75578 e = Jsb(b, 0);
75579 Vsb(e, d);
75580 return b;
75581 }
75582 function pmc(a, b, c2, d) {
75583 var e, f2, g, h, i3;
75584 i3 = a.b;
75585 f2 = b.d;
75586 g = f2.j;
75587 h = umc(g, i3.d[g.g], c2);
75588 e = P6c(R6c(f2.n), f2.a);
75589 switch (f2.j.g) {
75590 case 1:
75591 case 3:
75592 h.a += e.a;
75593 break;
75594 case 2:
75595 case 4:
75596 h.b += e.b;
75597 }
75598 Gsb(d, h, d.c.b, d.c);
75599 }
75600 function yJc(a, b, c2) {
75601 var d, e, f2, g;
75602 g = Jkb(a.e, b, 0);
75603 f2 = new zJc();
75604 f2.b = c2;
75605 d = new Bib(a.e, g);
75606 while (d.b < d.d.gc()) {
75607 e = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 10));
75608 e.p = c2;
75609 Ekb(f2.e, e);
75610 uib(d);
75611 }
75612 return f2;
75613 }
75614 function sYc(a, b, c2, d) {
75615 var e, f2, g, h, i3;
75616 e = null;
75617 f2 = 0;
75618 for (h = new olb(b); h.a < h.c.c.length; ) {
75619 g = BD(mlb(h), 33);
75620 i3 = g.i + g.g;
75621 if (a < g.j + g.f + d) {
75622 !e ? e = g : c2.i - i3 < c2.i - f2 && (e = g);
75623 f2 = e.i + e.g;
75624 }
75625 }
75626 return !e ? 0 : f2 + d;
75627 }
75628 function tYc(a, b, c2, d) {
75629 var e, f2, g, h, i3;
75630 f2 = null;
75631 e = 0;
75632 for (h = new olb(b); h.a < h.c.c.length; ) {
75633 g = BD(mlb(h), 33);
75634 i3 = g.j + g.f;
75635 if (a < g.i + g.g + d) {
75636 !f2 ? f2 = g : c2.j - i3 < c2.j - e && (f2 = g);
75637 e = f2.j + f2.f;
75638 }
75639 }
75640 return !f2 ? 0 : e + d;
75641 }
75642 function mA(a) {
75643 var b, c2, d;
75644 b = false;
75645 d = a.b.c.length;
75646 for (c2 = 0; c2 < d; c2++) {
75647 if (nA(BD(Ikb(a.b, c2), 434))) {
75648 if (!b && c2 + 1 < d && nA(BD(Ikb(a.b, c2 + 1), 434))) {
75649 b = true;
75650 BD(Ikb(a.b, c2), 434).a = true;
75651 }
75652 } else {
75653 b = false;
75654 }
75655 }
75656 }
75657 function Ahb(a, b, c2, d, e) {
75658 var f2, g;
75659 f2 = 0;
75660 for (g = 0; g < e; g++) {
75661 f2 = wbb(f2, Qbb(xbb(b[g], Yje), xbb(d[g], Yje)));
75662 a[g] = Tbb(f2);
75663 f2 = Obb(f2, 32);
75664 }
75665 for (; g < c2; g++) {
75666 f2 = wbb(f2, xbb(b[g], Yje));
75667 a[g] = Tbb(f2);
75668 f2 = Obb(f2, 32);
75669 }
75670 }
75671 function Jhb(a, b) {
75672 Dhb();
75673 var c2, d;
75674 d = (Hgb(), Cgb);
75675 c2 = a;
75676 for (; b > 1; b >>= 1) {
75677 (b & 1) != 0 && (d = Ogb(d, c2));
75678 c2.d == 1 ? c2 = Ogb(c2, c2) : c2 = new Xgb(Lhb(c2.a, c2.d, KC(WD, oje, 25, c2.d << 1, 15, 1)));
75679 }
75680 d = Ogb(d, c2);
75681 return d;
75682 }
75683 function zub() {
75684 zub = ccb;
75685 var a, b, c2, d;
75686 wub = KC(UD, Vje, 25, 25, 15, 1);
75687 xub = KC(UD, Vje, 25, 33, 15, 1);
75688 d = 152587890625e-16;
75689 for (b = 32; b >= 0; b--) {
75690 xub[b] = d;
75691 d *= 0.5;
75692 }
75693 c2 = 1;
75694 for (a = 24; a >= 0; a--) {
75695 wub[a] = c2;
75696 c2 *= 0.5;
75697 }
75698 }
75699 function S1b(a) {
75700 var b, c2;
75701 if (Ccb(DD(hkd(a, (Nyc(), fxc))))) {
75702 for (c2 = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c2); ) {
75703 b = BD(Rr(c2), 79);
75704 if (Qld(b)) {
75705 if (Ccb(DD(hkd(b, gxc)))) {
75706 return true;
75707 }
75708 }
75709 }
75710 }
75711 return false;
75712 }
75713 function kjc(a, b) {
75714 var c2, d, e;
75715 if (Qqb(a.f, b)) {
75716 b.b = a;
75717 d = b.c;
75718 Jkb(a.j, d, 0) != -1 || Ekb(a.j, d);
75719 e = b.d;
75720 Jkb(a.j, e, 0) != -1 || Ekb(a.j, e);
75721 c2 = b.a.b;
75722 if (c2.c.length != 0) {
75723 !a.i && (a.i = new vjc(a));
75724 qjc(a.i, c2);
75725 }
75726 }
75727 }
75728 function rmc(a) {
75729 var b, c2, d, e, f2;
75730 c2 = a.c.d;
75731 d = c2.j;
75732 e = a.d.d;
75733 f2 = e.j;
75734 if (d == f2) {
75735 return c2.p < e.p ? 0 : 1;
75736 } else if (Xcd(d) == f2) {
75737 return 0;
75738 } else if (Vcd(d) == f2) {
75739 return 1;
75740 } else {
75741 b = a.b;
75742 return uqb(b.b, Xcd(d)) ? 0 : 1;
75743 }
75744 }
75745 function lzc() {
75746 lzc = ccb;
75747 jzc = new nzc(Aqe, 0);
75748 hzc = new nzc("LONGEST_PATH", 1);
75749 fzc = new nzc("COFFMAN_GRAHAM", 2);
75750 gzc = new nzc(Tne, 3);
75751 kzc = new nzc("STRETCH_WIDTH", 4);
75752 izc = new nzc("MIN_WIDTH", 5);
75753 }
75754 function E3c(a) {
75755 var b;
75756 this.d = new Lqb();
75757 this.c = a.c;
75758 this.e = a.d;
75759 this.b = a.b;
75760 this.f = new jgd(a.e);
75761 this.a = a.a;
75762 !a.f ? this.g = (b = BD(gdb(O3), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)) : this.g = a.f;
75763 }
75764 function grd(a, b) {
75765 var c2, d, e, f2, g, h;
75766 e = a;
75767 g = $pd(e, "layoutOptions");
75768 !g && (g = $pd(e, Dte));
75769 if (g) {
75770 h = g;
75771 d = null;
75772 !!h && (d = (f2 = $B(h, KC(ZI, nie, 2, 0, 6, 1)), new mC(h, f2)));
75773 if (d) {
75774 c2 = new Drd(h, b);
75775 reb(d, c2);
75776 }
75777 }
75778 }
75779 function atd(a) {
75780 if (JD(a, 239)) {
75781 return BD(a, 33);
75782 } else if (JD(a, 186)) {
75783 return mpd(BD(a, 118));
75784 } else if (!a) {
75785 throw vbb(new Heb(gue));
75786 } else {
75787 throw vbb(new cgb("Only support nodes and ports."));
75788 }
75789 }
75790 function CA(a, b, c2, d) {
75791 if (b >= 0 && dfb(a.substr(b, "GMT".length), "GMT")) {
75792 c2[0] = b + 3;
75793 return tA(a, c2, d);
75794 }
75795 if (b >= 0 && dfb(a.substr(b, "UTC".length), "UTC")) {
75796 c2[0] = b + 3;
75797 return tA(a, c2, d);
75798 }
75799 return tA(a, c2, d);
75800 }
75801 function tjc(a, b) {
75802 var c2, d, e, f2, g;
75803 f2 = a.g.a;
75804 g = a.g.b;
75805 for (d = new olb(a.d); d.a < d.c.c.length; ) {
75806 c2 = BD(mlb(d), 70);
75807 e = c2.n;
75808 e.a = f2;
75809 a.i == (Ucd(), Acd) ? e.b = g + a.j.b - c2.o.b : e.b = g;
75810 P6c(e, b);
75811 f2 += c2.o.a + a.e;
75812 }
75813 }
75814 function Odd(a, b, c2) {
75815 if (a.b) {
75816 throw vbb(new Zdb("The task is already done."));
75817 } else if (a.p != null) {
75818 return false;
75819 } else {
75820 a.p = b;
75821 a.r = c2;
75822 a.k && (a.o = (Zfb(), Ibb(Cbb(Date.now()), _ie)));
75823 return true;
75824 }
75825 }
75826 function hsd(a) {
75827 var b, c2, d, e, f2, g, h;
75828 h = new eC();
75829 c2 = a.tg();
75830 e = c2 != null;
75831 e && Upd(h, Vte, a.tg());
75832 d = a.ne();
75833 f2 = d != null;
75834 f2 && Upd(h, fue, a.ne());
75835 b = a.sg();
75836 g = b != null;
75837 g && Upd(h, "description", a.sg());
75838 return h;
75839 }
75840 function uId(a, b, c2) {
75841 var d, e, f2;
75842 f2 = a.q;
75843 a.q = b;
75844 if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
75845 e = new nSd(a, 1, 9, f2, b);
75846 !c2 ? c2 = e : c2.Ei(e);
75847 }
75848 if (!b) {
75849 !!a.r && (c2 = a.nk(null, c2));
75850 } else {
75851 d = b.c;
75852 d != a.r && (c2 = a.nk(d, c2));
75853 }
75854 return c2;
75855 }
75856 function IYd(a, b, c2) {
75857 var d, e, f2, g, h;
75858 c2 = (h = b, kid(h, a.e, -1 - a.c, c2));
75859 g = AYd(a.a);
75860 for (f2 = (d = new nib(new eib(g.a).a), new ZYd(d)); f2.a.b; ) {
75861 e = BD(lib(f2.a).cd(), 87);
75862 c2 = QQd(e, MQd(e, a.a), c2);
75863 }
75864 return c2;
75865 }
75866 function JYd(a, b, c2) {
75867 var d, e, f2, g, h;
75868 c2 = (h = b, lid(h, a.e, -1 - a.c, c2));
75869 g = AYd(a.a);
75870 for (f2 = (d = new nib(new eib(g.a).a), new ZYd(d)); f2.a.b; ) {
75871 e = BD(lib(f2.a).cd(), 87);
75872 c2 = QQd(e, MQd(e, a.a), c2);
75873 }
75874 return c2;
75875 }
75876 function jhb(a, b, c2, d) {
75877 var e, f2, g;
75878 if (d == 0) {
75879 $fb(b, 0, a, c2, a.length - c2);
75880 } else {
75881 g = 32 - d;
75882 a[a.length - 1] = 0;
75883 for (f2 = a.length - 1; f2 > c2; f2--) {
75884 a[f2] |= b[f2 - c2 - 1] >>> g;
75885 a[f2 - 1] = b[f2 - c2 - 1] << d;
75886 }
75887 }
75888 for (e = 0; e < c2; e++) {
75889 a[e] = 0;
75890 }
75891 }
75892 function LJb(a) {
75893 var b, c2, d, e, f2;
75894 b = 0;
75895 c2 = 0;
75896 for (f2 = a.Kc(); f2.Ob(); ) {
75897 d = BD(f2.Pb(), 111);
75898 b = $wnd.Math.max(b, d.d.b);
75899 c2 = $wnd.Math.max(c2, d.d.c);
75900 }
75901 for (e = a.Kc(); e.Ob(); ) {
75902 d = BD(e.Pb(), 111);
75903 d.d.b = b;
75904 d.d.c = c2;
75905 }
75906 }
75907 function TKb(a) {
75908 var b, c2, d, e, f2;
75909 c2 = 0;
75910 b = 0;
75911 for (f2 = a.Kc(); f2.Ob(); ) {
75912 d = BD(f2.Pb(), 111);
75913 c2 = $wnd.Math.max(c2, d.d.d);
75914 b = $wnd.Math.max(b, d.d.a);
75915 }
75916 for (e = a.Kc(); e.Ob(); ) {
75917 d = BD(e.Pb(), 111);
75918 d.d.d = c2;
75919 d.d.a = b;
75920 }
75921 }
75922 function rpc(a, b) {
75923 var c2, d, e, f2;
75924 f2 = new Rkb();
75925 e = 0;
75926 d = b.Kc();
75927 while (d.Ob()) {
75928 c2 = meb(BD(d.Pb(), 19).a + e);
75929 while (c2.a < a.f && !Voc(a, c2.a)) {
75930 c2 = meb(c2.a + 1);
75931 ++e;
75932 }
75933 if (c2.a >= a.f) {
75934 break;
75935 }
75936 f2.c[f2.c.length] = c2;
75937 }
75938 return f2;
75939 }
75940 function sfd(a) {
75941 var b, c2, d, e;
75942 b = null;
75943 for (e = new olb(a.wf()); e.a < e.c.c.length; ) {
75944 d = BD(mlb(e), 181);
75945 c2 = new J6c(d.qf().a, d.qf().b, d.rf().a, d.rf().b);
75946 !b ? b = c2 : H6c(b, c2);
75947 }
75948 !b && (b = new I6c());
75949 return b;
75950 }
75951 function Fkd(a, b, c2, d) {
75952 var e, f2;
75953 if (c2 == 1) {
75954 return !a.n && (a.n = new cUd(D2, a, 1, 7)), Sxd(a.n, b, d);
75955 }
75956 return f2 = BD(XKd((e = BD(Ajd(a, 16), 26), !e ? a.zh() : e), c2), 66), f2.Nj().Qj(a, yjd(a), c2 - aLd(a.zh()), b, d);
75957 }
75958 function iud(a, b, c2) {
75959 var d, e, f2, g, h;
75960 d = c2.gc();
75961 a.qi(a.i + d);
75962 h = a.i - b;
75963 h > 0 && $fb(a.g, b, a.g, b + d, h);
75964 g = c2.Kc();
75965 a.i += d;
75966 for (e = 0; e < d; ++e) {
75967 f2 = g.Pb();
75968 mud(a, b, a.oi(b, f2));
75969 a.bi(b, f2);
75970 a.ci();
75971 ++b;
75972 }
75973 return d != 0;
75974 }
75975 function xId(a, b, c2) {
75976 var d;
75977 if (b != a.q) {
75978 !!a.q && (c2 = lid(a.q, a, -10, c2));
75979 !!b && (c2 = kid(b, a, -10, c2));
75980 c2 = uId(a, b, c2);
75981 } else if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
75982 d = new nSd(a, 1, 9, b, b);
75983 !c2 ? c2 = d : c2.Ei(d);
75984 }
75985 return c2;
75986 }
75987 function Yj(a, b, c2, d) {
75988 Mb((c2 & oie) == 0, "flatMap does not support SUBSIZED characteristic");
75989 Mb((c2 & 4) == 0, "flatMap does not support SORTED characteristic");
75990 Qb(a);
75991 Qb(b);
75992 return new jk(a, c2, d, b);
75993 }
75994 function Qy(a, b) {
75995 vCb(b, "Cannot suppress a null exception.");
75996 mCb(b != a, "Exception can not suppress itself.");
75997 if (a.i) {
75998 return;
75999 }
76000 a.k == null ? a.k = OC(GC(_I, 1), nie, 78, 0, [b]) : a.k[a.k.length] = b;
76001 }
76002 function oA(a, b, c2, d) {
76003 var e, f2, g, h, i3, j;
76004 g = c2.length;
76005 f2 = 0;
76006 e = -1;
76007 j = sfb(a.substr(b), (ntb(), ltb));
76008 for (h = 0; h < g; ++h) {
76009 i3 = c2[h].length;
76010 if (i3 > f2 && nfb(j, sfb(c2[h], ltb))) {
76011 e = h;
76012 f2 = i3;
76013 }
76014 }
76015 e >= 0 && (d[0] = b + f2);
76016 return e;
76017 }
76018 function MIb(a, b) {
76019 var c2;
76020 c2 = NIb(a.b.Hf(), b.b.Hf());
76021 if (c2 != 0) {
76022 return c2;
76023 }
76024 switch (a.b.Hf().g) {
76025 case 1:
76026 case 2:
76027 return beb(a.b.sf(), b.b.sf());
76028 case 3:
76029 case 4:
76030 return beb(b.b.sf(), a.b.sf());
76031 }
76032 return 0;
76033 }
76034 function iRb(a) {
76035 var b, c2, d;
76036 d = a.e.c.length;
76037 a.a = IC(WD, [nie, oje], [48, 25], 15, [d, d], 2);
76038 for (c2 = new olb(a.c); c2.a < c2.c.c.length; ) {
76039 b = BD(mlb(c2), 282);
76040 a.a[b.c.b][b.d.b] += BD(vNb(b, (wSb(), oSb)), 19).a;
76041 }
76042 }
76043 function H1c(a, b, c2) {
76044 Odd(c2, "Grow Tree", 1);
76045 a.b = b.f;
76046 if (Ccb(DD(vNb(b, (XNb(), VNb))))) {
76047 a.c = new tOb();
76048 D1c(a, null);
76049 } else {
76050 a.c = new tOb();
76051 }
76052 a.a = false;
76053 F1c(a, b.f);
76054 yNb(b, WNb, (Bcb(), a.a ? true : false));
76055 Qdd(c2);
76056 }
76057 function Umd(a, b) {
76058 var c2, d, e, f2, g;
76059 if (a == null) {
76060 return null;
76061 } else {
76062 g = KC(TD, $ie, 25, 2 * b, 15, 1);
76063 for (d = 0, e = 0; d < b; ++d) {
76064 c2 = a[d] >> 4 & 15;
76065 f2 = a[d] & 15;
76066 g[e++] = Qmd[c2];
76067 g[e++] = Qmd[f2];
76068 }
76069 return zfb(g, 0, g.length);
76070 }
76071 }
76072 function j3d(a, b, c2) {
76073 var d, e, f2;
76074 d = b.ak();
76075 f2 = b.dd();
76076 e = d.$j() ? H2d(a, 4, d, f2, null, M2d(a, d, f2, JD(d, 99) && (BD(d, 18).Bb & Tje) != 0), true) : H2d(a, d.Kj() ? 2 : 1, d, f2, d.zj(), -1, true);
76077 c2 ? c2.Ei(e) : c2 = e;
76078 return c2;
76079 }
76080 function wfb(a) {
76081 var b, c2;
76082 if (a >= Tje) {
76083 b = Uje + (a - Tje >> 10 & 1023) & aje;
76084 c2 = 56320 + (a - Tje & 1023) & aje;
76085 return String.fromCharCode(b) + ("" + String.fromCharCode(c2));
76086 } else {
76087 return String.fromCharCode(a & aje);
76088 }
76089 }
76090 function bKb(a, b) {
76091 $Jb();
76092 var c2, d, e, f2;
76093 e = BD(BD(Qc(a.r, b), 21), 84);
76094 if (e.gc() >= 2) {
76095 d = BD(e.Kc().Pb(), 111);
76096 c2 = a.u.Hc((rcd(), mcd));
76097 f2 = a.u.Hc(qcd);
76098 return !d.a && !c2 && (e.gc() == 2 || f2);
76099 } else {
76100 return false;
76101 }
76102 }
76103 function IVc(a, b, c2, d, e) {
76104 var f2, g, h;
76105 f2 = JVc(a, b, c2, d, e);
76106 h = false;
76107 while (!f2) {
76108 AVc(a, e, true);
76109 h = true;
76110 f2 = JVc(a, b, c2, d, e);
76111 }
76112 h && AVc(a, e, false);
76113 g = dVc(e);
76114 if (g.c.length != 0) {
76115 !!a.d && a.d.lg(g);
76116 IVc(a, e, c2, d, g);
76117 }
76118 }
76119 function Mad() {
76120 Mad = ccb;
76121 Kad = new Nad(ane, 0);
76122 Iad = new Nad("DIRECTED", 1);
76123 Lad = new Nad("UNDIRECTED", 2);
76124 Gad = new Nad("ASSOCIATION", 3);
76125 Jad = new Nad("GENERALIZATION", 4);
76126 Had = new Nad("DEPENDENCY", 5);
76127 }
76128 function kfd(a, b) {
76129 var c2;
76130 if (!mpd(a)) {
76131 throw vbb(new Zdb(Sse));
76132 }
76133 c2 = mpd(a);
76134 switch (b.g) {
76135 case 1:
76136 return -(a.j + a.f);
76137 case 2:
76138 return a.i - c2.g;
76139 case 3:
76140 return a.j - c2.f;
76141 case 4:
76142 return -(a.i + a.g);
76143 }
76144 return 0;
76145 }
76146 function cub(a, b) {
76147 var c2, d;
76148 uCb(b);
76149 d = a.b.c.length;
76150 Ekb(a.b, b);
76151 while (d > 0) {
76152 c2 = d;
76153 d = (d - 1) / 2 | 0;
76154 if (a.a.ue(Ikb(a.b, d), b) <= 0) {
76155 Nkb(a.b, c2, b);
76156 return true;
76157 }
76158 Nkb(a.b, c2, Ikb(a.b, d));
76159 }
76160 Nkb(a.b, d, b);
76161 return true;
76162 }
76163 function BHb(a, b, c2, d) {
76164 var e, f2;
76165 e = 0;
76166 if (!c2) {
76167 for (f2 = 0; f2 < sHb; f2++) {
76168 e = $wnd.Math.max(e, qHb(a.a[f2][b.g], d));
76169 }
76170 } else {
76171 e = qHb(a.a[c2.g][b.g], d);
76172 }
76173 b == (gHb(), eHb) && !!a.b && (e = $wnd.Math.max(e, a.b.a));
76174 return e;
76175 }
76176 function knc(a, b) {
76177 var c2, d, e, f2, g, h;
76178 e = a.i;
76179 f2 = b.i;
76180 if (!e || !f2) {
76181 return false;
76182 }
76183 if (e.i != f2.i || e.i == (Ucd(), zcd) || e.i == (Ucd(), Tcd)) {
76184 return false;
76185 }
76186 g = e.g.a;
76187 c2 = g + e.j.a;
76188 h = f2.g.a;
76189 d = h + f2.j.a;
76190 return g <= d && c2 >= h;
76191 }
76192 function Tpd(a, b, c2, d) {
76193 var e;
76194 e = false;
76195 if (ND(d)) {
76196 e = true;
76197 Upd(b, c2, GD(d));
76198 }
76199 if (!e) {
76200 if (KD(d)) {
76201 e = true;
76202 Tpd(a, b, c2, d);
76203 }
76204 }
76205 if (!e) {
76206 if (JD(d, 236)) {
76207 e = true;
76208 Spd(b, c2, BD(d, 236));
76209 }
76210 }
76211 if (!e) {
76212 throw vbb(new vcb(Ute));
76213 }
76214 }
76215 function W0d(a, b) {
76216 var c2, d, e;
76217 c2 = b.Hh(a.a);
76218 if (c2) {
76219 e = AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), Sve);
76220 if (e != null) {
76221 for (d = 1; d < (O6d(), K6d).length; ++d) {
76222 if (dfb(K6d[d], e)) {
76223 return d;
76224 }
76225 }
76226 }
76227 }
76228 return 0;
76229 }
76230 function X0d(a, b) {
76231 var c2, d, e;
76232 c2 = b.Hh(a.a);
76233 if (c2) {
76234 e = AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), Sve);
76235 if (e != null) {
76236 for (d = 1; d < (O6d(), L6d).length; ++d) {
76237 if (dfb(L6d[d], e)) {
76238 return d;
76239 }
76240 }
76241 }
76242 }
76243 return 0;
76244 }
76245 function Ve(a, b) {
76246 var c2, d, e, f2;
76247 uCb(b);
76248 f2 = a.a.gc();
76249 if (f2 < b.gc()) {
76250 for (c2 = a.a.ec().Kc(); c2.Ob(); ) {
76251 d = c2.Pb();
76252 b.Hc(d) && c2.Qb();
76253 }
76254 } else {
76255 for (e = b.Kc(); e.Ob(); ) {
76256 d = e.Pb();
76257 a.a.Bc(d) != null;
76258 }
76259 }
76260 return f2 != a.a.gc();
76261 }
76262 function bYb(a) {
76263 var b, c2;
76264 c2 = R6c(l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a])));
76265 b = a.i.d;
76266 switch (a.j.g) {
76267 case 1:
76268 c2.b -= b.d;
76269 break;
76270 case 2:
76271 c2.a += b.c;
76272 break;
76273 case 3:
76274 c2.b += b.a;
76275 break;
76276 case 4:
76277 c2.a -= b.b;
76278 }
76279 return c2;
76280 }
76281 function P9b(a) {
76282 var b;
76283 b = (I9b(), BD(Rr(new Sr(ur(R_b(a).a.Kc(), new Sq()))), 17).c.i);
76284 while (b.k == (j0b(), g0b)) {
76285 yNb(b, (wtc(), Tsc), (Bcb(), true));
76286 b = BD(Rr(new Sr(ur(R_b(b).a.Kc(), new Sq()))), 17).c.i;
76287 }
76288 }
76289 function bIc(a, b, c2, d) {
76290 var e, f2, g, h;
76291 h = CHc(b, d);
76292 for (g = h.Kc(); g.Ob(); ) {
76293 e = BD(g.Pb(), 11);
76294 a.d[e.p] = a.d[e.p] + a.c[c2.p];
76295 }
76296 h = CHc(c2, d);
76297 for (f2 = h.Kc(); f2.Ob(); ) {
76298 e = BD(f2.Pb(), 11);
76299 a.d[e.p] = a.d[e.p] - a.c[b.p];
76300 }
76301 }
76302 function Efd(a, b, c2) {
76303 var d, e;
76304 for (e = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); e.e != e.i.gc(); ) {
76305 d = BD(Dyd(e), 33);
76306 bld(d, d.i + b, d.j + c2);
76307 }
76308 reb((!a.b && (a.b = new cUd(B2, a, 12, 3)), a.b), new Kfd(b, c2));
76309 }
76310 function Mwb(a, b, c2, d) {
76311 var e, f2;
76312 f2 = b;
76313 e = f2.d == null || a.a.ue(c2.d, f2.d) > 0 ? 1 : 0;
76314 while (f2.a[e] != c2) {
76315 f2 = f2.a[e];
76316 e = a.a.ue(c2.d, f2.d) > 0 ? 1 : 0;
76317 }
76318 f2.a[e] = d;
76319 d.b = c2.b;
76320 d.a[0] = c2.a[0];
76321 d.a[1] = c2.a[1];
76322 c2.a[0] = null;
76323 c2.a[1] = null;
76324 }
76325 function ucd(a) {
76326 rcd();
76327 var b, c2;
76328 b = qqb(ncd, OC(GC(E1, 1), Kie, 273, 0, [pcd]));
76329 if (Ox(Cx(b, a)) > 1) {
76330 return false;
76331 }
76332 c2 = qqb(mcd, OC(GC(E1, 1), Kie, 273, 0, [lcd, qcd]));
76333 if (Ox(Cx(c2, a)) > 1) {
76334 return false;
76335 }
76336 return true;
76337 }
76338 function fod(a, b) {
76339 var c2;
76340 c2 = Phb((yFd(), xFd), a);
76341 JD(c2, 498) ? Shb(xFd, a, new bUd(this, b)) : Shb(xFd, a, this);
76342 bod(this, b);
76343 if (b == (LFd(), KFd)) {
76344 this.wb = BD(this, 1939);
76345 BD(b, 1941);
76346 } else {
76347 this.wb = (NFd(), MFd);
76348 }
76349 }
76350 function lZd(b) {
76351 var c2, d, e;
76352 if (b == null) {
76353 return null;
76354 }
76355 c2 = null;
76356 for (d = 0; d < Pmd.length; ++d) {
76357 try {
76358 return DQd(Pmd[d], b);
76359 } catch (a) {
76360 a = ubb(a);
76361 if (JD(a, 32)) {
76362 e = a;
76363 c2 = e;
76364 } else
76365 throw vbb(a);
76366 }
76367 }
76368 throw vbb(new rFd(c2));
76369 }
76370 function Dpb() {
76371 Dpb = ccb;
76372 Bpb = OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]);
76373 Cpb = OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]);
76374 }
76375 function yyb(a) {
76376 var b, c2, d;
76377 b = dfb(typeof b, uke) ? null : new iCb();
76378 if (!b) {
76379 return;
76380 }
76381 $xb();
76382 c2 = (d = 900, d >= _ie ? "error" : d >= 900 ? "warn" : d >= 800 ? "info" : "log");
76383 gCb(c2, a.a);
76384 !!a.b && hCb(b, c2, a.b, "Exception: ", true);
76385 }
76386 function vNb(a, b) {
76387 var c2, d;
76388 d = (!a.q && (a.q = new Lqb()), Ohb(a.q, b));
76389 if (d != null) {
76390 return d;
76391 }
76392 c2 = b.wg();
76393 JD(c2, 4) && (c2 == null ? (!a.q && (a.q = new Lqb()), Thb(a.q, b)) : (!a.q && (a.q = new Lqb()), Rhb(a.q, b, c2)), a);
76394 return c2;
76395 }
76396 function qUb() {
76397 qUb = ccb;
76398 lUb = new rUb("P1_CYCLE_BREAKING", 0);
76399 mUb = new rUb("P2_LAYERING", 1);
76400 nUb = new rUb("P3_NODE_ORDERING", 2);
76401 oUb = new rUb("P4_NODE_PLACEMENT", 3);
76402 pUb = new rUb("P5_EDGE_ROUTING", 4);
76403 }
76404 function SUb(a, b) {
76405 var c2, d, e, f2, g;
76406 e = b == 1 ? KUb : JUb;
76407 for (d = e.a.ec().Kc(); d.Ob(); ) {
76408 c2 = BD(d.Pb(), 103);
76409 for (g = BD(Qc(a.f.c, c2), 21).Kc(); g.Ob(); ) {
76410 f2 = BD(g.Pb(), 46);
76411 Lkb(a.b.b, f2.b);
76412 Lkb(a.b.a, BD(f2.b, 81).d);
76413 }
76414 }
76415 }
76416 function IWb(a, b) {
76417 AWb();
76418 var c2;
76419 if (a.c == b.c) {
76420 if (a.b == b.b || pWb(a.b, b.b)) {
76421 c2 = mWb(a.b) ? 1 : -1;
76422 if (a.a && !b.a) {
76423 return c2;
76424 } else if (!a.a && b.a) {
76425 return -c2;
76426 }
76427 }
76428 return beb(a.b.g, b.b.g);
76429 } else {
76430 return Kdb(a.c, b.c);
76431 }
76432 }
76433 function y6b(a, b) {
76434 var c2;
76435 Odd(b, "Hierarchical port position processing", 1);
76436 c2 = a.b;
76437 c2.c.length > 0 && x6b((tCb(0, c2.c.length), BD(c2.c[0], 29)), a);
76438 c2.c.length > 1 && x6b(BD(Ikb(c2, c2.c.length - 1), 29), a);
76439 Qdd(b);
76440 }
76441 function RVc(a, b) {
76442 var c2, d, e;
76443 if (CVc(a, b)) {
76444 return true;
76445 }
76446 for (d = new olb(b); d.a < d.c.c.length; ) {
76447 c2 = BD(mlb(d), 33);
76448 e = hVc(c2);
76449 if (BVc(a, c2, e)) {
76450 return true;
76451 }
76452 if (PVc(a, c2) - a.g <= a.a) {
76453 return true;
76454 }
76455 }
76456 return false;
76457 }
76458 function d0c() {
76459 d0c = ccb;
76460 c0c = (A0c(), z0c);
76461 __c = v0c;
76462 $_c = t0c;
76463 Y_c = p0c;
76464 Z_c = r0c;
76465 X_c = new q0b(8);
76466 W_c = new Osd((Y9c(), f9c), X_c);
76467 a0c = new Osd(T9c, 8);
76468 b0c = x0c;
76469 T_c = k0c;
76470 U_c = m0c;
76471 V_c = new Osd(y8c, (Bcb(), false));
76472 }
76473 function X7c() {
76474 X7c = ccb;
76475 U7c = new q0b(15);
76476 T7c = new Osd((Y9c(), f9c), U7c);
76477 W7c = new Osd(T9c, 15);
76478 V7c = new Osd(D9c, meb(0));
76479 O7c = I8c;
76480 Q7c = Y8c;
76481 S7c = b9c;
76482 L7c = new Osd(r8c, pse);
76483 P7c = O8c;
76484 R7c = _8c;
76485 M7c = t8c;
76486 N7c = w8c;
76487 }
76488 function jtd(a) {
76489 if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) {
76490 throw vbb(new Wdb(iue));
76491 }
76492 return atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82));
76493 }
76494 function ktd(a) {
76495 if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) {
76496 throw vbb(new Wdb(iue));
76497 }
76498 return btd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82));
76499 }
76500 function mtd(a) {
76501 if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) {
76502 throw vbb(new Wdb(iue));
76503 }
76504 return btd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82));
76505 }
76506 function ltd(a) {
76507 if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i != 1 || (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i != 1) {
76508 throw vbb(new Wdb(iue));
76509 }
76510 return atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82));
76511 }
76512 function Dvd(a, b, c2) {
76513 var d, e, f2;
76514 ++a.j;
76515 e = a.Vi();
76516 if (b >= e || b < 0)
76517 throw vbb(new qcb(lue + b + mue + e));
76518 if (c2 >= e || c2 < 0)
76519 throw vbb(new qcb(nue + c2 + mue + e));
76520 b != c2 ? d = (f2 = a.Ti(c2), a.Hi(b, f2), f2) : d = a.Oi(c2);
76521 return d;
76522 }
76523 function m6d(a) {
76524 var b, c2, d;
76525 d = a;
76526 if (a) {
76527 b = 0;
76528 for (c2 = a.Ug(); c2; c2 = c2.Ug()) {
76529 if (++b > Wje) {
76530 return m6d(c2);
76531 }
76532 d = c2;
76533 if (c2 == a) {
76534 throw vbb(new Zdb("There is a cycle in the containment hierarchy of " + a));
76535 }
76536 }
76537 }
76538 return d;
76539 }
76540 function Fe(a) {
76541 var b, c2, d;
76542 d = new xwb(She, "[", "]");
76543 for (c2 = a.Kc(); c2.Ob(); ) {
76544 b = c2.Pb();
76545 uwb(d, PD(b) === PD(a) ? "(this Collection)" : b == null ? Xhe : fcb(b));
76546 }
76547 return !d.a ? d.c : d.e.length == 0 ? d.a.a : d.a.a + ("" + d.e);
76548 }
76549 function CVc(a, b) {
76550 var c2, d;
76551 d = false;
76552 if (b.gc() < 2) {
76553 return false;
76554 }
76555 for (c2 = 0; c2 < b.gc(); c2++) {
76556 c2 < b.gc() - 1 ? d = d | BVc(a, BD(b.Xb(c2), 33), BD(b.Xb(c2 + 1), 33)) : d = d | BVc(a, BD(b.Xb(c2), 33), BD(b.Xb(0), 33));
76557 }
76558 return d;
76559 }
76560 function Ymd(a, b) {
76561 var c2;
76562 if (b != a.a) {
76563 c2 = null;
76564 !!a.a && (c2 = BD(a.a, 49).ih(a, 4, o5, c2));
76565 !!b && (c2 = BD(b, 49).gh(a, 4, o5, c2));
76566 c2 = Tmd(a, b, c2);
76567 !!c2 && c2.Fi();
76568 } else
76569 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 1, b, b));
76570 }
76571 function RQd(a, b) {
76572 var c2;
76573 if (b != a.e) {
76574 !!a.e && QYd(AYd(a.e), a);
76575 !!b && (!b.b && (b.b = new RYd(new NYd())), PYd(b.b, a));
76576 c2 = HQd(a, b, null);
76577 !!c2 && c2.Fi();
76578 } else
76579 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 4, b, b));
76580 }
76581 function ufb(a) {
76582 var b, c2, d;
76583 c2 = a.length;
76584 d = 0;
76585 while (d < c2 && (BCb(d, a.length), a.charCodeAt(d) <= 32)) {
76586 ++d;
76587 }
76588 b = c2;
76589 while (b > d && (BCb(b - 1, a.length), a.charCodeAt(b - 1) <= 32)) {
76590 --b;
76591 }
76592 return d > 0 || b < c2 ? a.substr(d, b - d) : a;
76593 }
76594 function ujc(a, b) {
76595 var c2;
76596 c2 = b.o;
76597 if (fad(a.f)) {
76598 a.j.a = $wnd.Math.max(a.j.a, c2.a);
76599 a.j.b += c2.b;
76600 a.d.c.length > 1 && (a.j.b += a.e);
76601 } else {
76602 a.j.a += c2.a;
76603 a.j.b = $wnd.Math.max(a.j.b, c2.b);
76604 a.d.c.length > 1 && (a.j.a += a.e);
76605 }
76606 }
76607 function gkc() {
76608 gkc = ccb;
76609 dkc = OC(GC(F1, 1), bne, 61, 0, [(Ucd(), Acd), zcd, Rcd]);
76610 ckc = OC(GC(F1, 1), bne, 61, 0, [zcd, Rcd, Tcd]);
76611 ekc = OC(GC(F1, 1), bne, 61, 0, [Rcd, Tcd, Acd]);
76612 fkc = OC(GC(F1, 1), bne, 61, 0, [Tcd, Acd, zcd]);
76613 }
76614 function omc(a, b, c2, d) {
76615 var e, f2, g, h, i3, j, k;
76616 g = a.c.d;
76617 h = a.d.d;
76618 if (g.j == h.j) {
76619 return;
76620 }
76621 k = a.b;
76622 e = g.j;
76623 i3 = null;
76624 while (e != h.j) {
76625 i3 = b == 0 ? Xcd(e) : Vcd(e);
76626 f2 = umc(e, k.d[e.g], c2);
76627 j = umc(i3, k.d[i3.g], c2);
76628 Dsb(d, P6c(f2, j));
76629 e = i3;
76630 }
76631 }
76632 function oFc(a, b, c2, d) {
76633 var e, f2, g, h, i3;
76634 g = JHc(a.a, b, c2);
76635 h = BD(g.a, 19).a;
76636 f2 = BD(g.b, 19).a;
76637 if (d) {
76638 i3 = BD(vNb(b, (wtc(), gtc)), 10);
76639 e = BD(vNb(c2, gtc), 10);
76640 if (!!i3 && !!e) {
76641 mic(a.b, i3, e);
76642 h += a.b.i;
76643 f2 += a.b.e;
76644 }
76645 }
76646 return h > f2;
76647 }
76648 function oHc(a) {
76649 var b, c2, d, e, f2, g, h, i3, j;
76650 this.a = lHc(a);
76651 this.b = new Rkb();
76652 for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
76653 b = c2[d];
76654 f2 = new Rkb();
76655 Ekb(this.b, f2);
76656 for (h = b, i3 = 0, j = h.length; i3 < j; ++i3) {
76657 g = h[i3];
76658 Ekb(f2, new Tkb(g.j));
76659 }
76660 }
76661 }
76662 function qHc(a, b, c2) {
76663 var d, e, f2;
76664 f2 = 0;
76665 d = c2[b];
76666 if (b < c2.length - 1) {
76667 e = c2[b + 1];
76668 if (a.b[b]) {
76669 f2 = KIc(a.d, d, e);
76670 f2 += NHc(a.a, d, (Ucd(), zcd));
76671 f2 += NHc(a.a, e, Tcd);
76672 } else {
76673 f2 = IHc(a.a, d, e);
76674 }
76675 }
76676 a.c[b] && (f2 += PHc(a.a, d));
76677 return f2;
76678 }
76679 function jZb(a, b, c2, d, e) {
76680 var f2, g, h, i3;
76681 i3 = null;
76682 for (h = new olb(d); h.a < h.c.c.length; ) {
76683 g = BD(mlb(h), 441);
76684 if (g != c2 && Jkb(g.e, e, 0) != -1) {
76685 i3 = g;
76686 break;
76687 }
76688 }
76689 f2 = kZb(e);
76690 QZb(f2, c2.b);
76691 RZb(f2, i3.b);
76692 Rc(a.a, e, new BZb(f2, b, c2.f));
76693 }
76694 function nic(a) {
76695 while (a.g.c != 0 && a.d.c != 0) {
76696 if (wic(a.g).c > wic(a.d).c) {
76697 a.i += a.g.c;
76698 yic(a.d);
76699 } else if (wic(a.d).c > wic(a.g).c) {
76700 a.e += a.d.c;
76701 yic(a.g);
76702 } else {
76703 a.i += vic(a.g);
76704 a.e += vic(a.d);
76705 yic(a.g);
76706 yic(a.d);
76707 }
76708 }
76709 }
76710 function XOc(a, b, c2) {
76711 var d, e, f2, g;
76712 f2 = b.q;
76713 g = b.r;
76714 new DOc((HOc(), FOc), b, f2, 1);
76715 new DOc(FOc, f2, g, 1);
76716 for (e = new olb(c2); e.a < e.c.c.length; ) {
76717 d = BD(mlb(e), 112);
76718 if (d != f2 && d != b && d != g) {
76719 pPc(a.a, d, b);
76720 pPc(a.a, d, g);
76721 }
76722 }
76723 }
76724 function XQc(a, b, c2, d) {
76725 a.a.d = $wnd.Math.min(b, c2);
76726 a.a.a = $wnd.Math.max(b, d) - a.a.d;
76727 if (b < c2) {
76728 a.b = 0.5 * (b + c2);
76729 a.g = Qqe * a.b + 0.9 * b;
76730 a.f = Qqe * a.b + 0.9 * c2;
76731 } else {
76732 a.b = 0.5 * (b + d);
76733 a.g = Qqe * a.b + 0.9 * d;
76734 a.f = Qqe * a.b + 0.9 * b;
76735 }
76736 }
76737 function acb() {
76738 _bb = {};
76739 !Array.isArray && (Array.isArray = function(a) {
76740 return Object.prototype.toString.call(a) === "[object Array]";
76741 });
76742 function b() {
76743 return (/* @__PURE__ */ new Date()).getTime();
76744 }
76745 !Date.now && (Date.now = b);
76746 }
76747 function $Tb(a, b) {
76748 var c2, d;
76749 d = BD(vNb(b, (Nyc(), Vxc)), 98);
76750 yNb(b, (wtc(), dtc), d);
76751 c2 = b.e;
76752 !!c2 && (MAb(new YAb(null, new Kub(c2.a, 16)), new dUb(a)), MAb(LAb(new YAb(null, new Kub(c2.b, 16)), new fUb()), new hUb(a)));
76753 }
76754 function _$b(a) {
76755 var b, c2, d, e;
76756 if (gad(BD(vNb(a.b, (Nyc(), Lwc)), 103))) {
76757 return 0;
76758 }
76759 b = 0;
76760 for (d = new olb(a.a); d.a < d.c.c.length; ) {
76761 c2 = BD(mlb(d), 10);
76762 if (c2.k == (j0b(), h0b)) {
76763 e = c2.o.a;
76764 b = $wnd.Math.max(b, e);
76765 }
76766 }
76767 return b;
76768 }
76769 function c5b(a) {
76770 switch (BD(vNb(a, (Nyc(), mxc)), 163).g) {
76771 case 1:
76772 yNb(a, mxc, (Ctc(), ztc));
76773 break;
76774 case 2:
76775 yNb(a, mxc, (Ctc(), Atc));
76776 break;
76777 case 3:
76778 yNb(a, mxc, (Ctc(), xtc));
76779 break;
76780 case 4:
76781 yNb(a, mxc, (Ctc(), ytc));
76782 }
76783 }
76784 function yrc() {
76785 yrc = ccb;
76786 wrc = new zrc(ane, 0);
76787 trc = new zrc(jle, 1);
76788 xrc = new zrc(kle, 2);
76789 vrc = new zrc("LEFT_RIGHT_CONSTRAINT_LOCKING", 3);
76790 urc = new zrc("LEFT_RIGHT_CONNECTION_LOCKING", 4);
76791 rrc = new zrc(Vne, 5);
76792 }
76793 function qRc(a, b, c2) {
76794 var d, e, f2, g, h, i3, j;
76795 h = c2.a / 2;
76796 f2 = c2.b / 2;
76797 d = $wnd.Math.abs(b.a - a.a);
76798 e = $wnd.Math.abs(b.b - a.b);
76799 i3 = 1;
76800 j = 1;
76801 d > h && (i3 = h / d);
76802 e > f2 && (j = f2 / e);
76803 g = $wnd.Math.min(i3, j);
76804 a.a += g * (b.a - a.a);
76805 a.b += g * (b.b - a.b);
76806 }
76807 function sZc(a, b, c2, d, e) {
76808 var f2, g;
76809 g = false;
76810 f2 = BD(Ikb(c2.b, 0), 33);
76811 while (yZc(a, b, f2, d, e)) {
76812 g = true;
76813 NZc(c2, f2);
76814 if (c2.b.c.length == 0) {
76815 break;
76816 }
76817 f2 = BD(Ikb(c2.b, 0), 33);
76818 }
76819 c2.b.c.length == 0 && v$c(c2.j, c2);
76820 g && a$c(b.q);
76821 return g;
76822 }
76823 function t6c(a, b) {
76824 i6c();
76825 var c2, d, e, f2;
76826 if (b.b < 2) {
76827 return false;
76828 }
76829 f2 = Jsb(b, 0);
76830 c2 = BD(Xsb(f2), 8);
76831 d = c2;
76832 while (f2.b != f2.d.c) {
76833 e = BD(Xsb(f2), 8);
76834 if (s6c(a, d, e)) {
76835 return true;
76836 }
76837 d = e;
76838 }
76839 if (s6c(a, d, c2)) {
76840 return true;
76841 }
76842 return false;
76843 }
76844 function ckd(a, b, c2, d) {
76845 var e, f2;
76846 if (c2 == 0) {
76847 return !a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), bId(a.o, b, d);
76848 }
76849 return f2 = BD(XKd((e = BD(Ajd(a, 16), 26), !e ? a.zh() : e), c2), 66), f2.Nj().Rj(a, yjd(a), c2 - aLd(a.zh()), b, d);
76850 }
76851 function bod(a, b) {
76852 var c2;
76853 if (b != a.sb) {
76854 c2 = null;
76855 !!a.sb && (c2 = BD(a.sb, 49).ih(a, 1, i5, c2));
76856 !!b && (c2 = BD(b, 49).gh(a, 1, i5, c2));
76857 c2 = Jnd(a, b, c2);
76858 !!c2 && c2.Fi();
76859 } else
76860 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 4, b, b));
76861 }
76862 function yqd(a, b) {
76863 var c2, d, e, f2;
76864 if (b) {
76865 e = Xpd(b, "x");
76866 c2 = new zrd(a);
76867 hmd(c2.a, (uCb(e), e));
76868 f2 = Xpd(b, "y");
76869 d = new Ard(a);
76870 imd(d.a, (uCb(f2), f2));
76871 } else {
76872 throw vbb(new cqd("All edge sections need an end point."));
76873 }
76874 }
76875 function wqd(a, b) {
76876 var c2, d, e, f2;
76877 if (b) {
76878 e = Xpd(b, "x");
76879 c2 = new wrd(a);
76880 omd(c2.a, (uCb(e), e));
76881 f2 = Xpd(b, "y");
76882 d = new xrd(a);
76883 pmd(d.a, (uCb(f2), f2));
76884 } else {
76885 throw vbb(new cqd("All edge sections need a start point."));
76886 }
76887 }
76888 function pyb(a, b) {
76889 var c2, d, e, f2, g, h, i3;
76890 for (d = syb(a), f2 = 0, h = d.length; f2 < h; ++f2) {
76891 yyb(b);
76892 }
76893 i3 = !lyb && a.e ? lyb ? null : a.d : null;
76894 while (i3) {
76895 for (c2 = syb(i3), e = 0, g = c2.length; e < g; ++e) {
76896 yyb(b);
76897 }
76898 i3 = !lyb && i3.e ? lyb ? null : i3.d : null;
76899 }
76900 }
76901 function j0b() {
76902 j0b = ccb;
76903 h0b = new k0b("NORMAL", 0);
76904 g0b = new k0b("LONG_EDGE", 1);
76905 e0b = new k0b("EXTERNAL_PORT", 2);
76906 i0b = new k0b("NORTH_SOUTH_PORT", 3);
76907 f0b = new k0b("LABEL", 4);
76908 d0b = new k0b("BREAKING_POINT", 5);
76909 }
76910 function g4b(a) {
76911 var b, c2, d, e;
76912 b = false;
76913 if (wNb(a, (wtc(), Csc))) {
76914 c2 = BD(vNb(a, Csc), 83);
76915 for (e = new olb(a.j); e.a < e.c.c.length; ) {
76916 d = BD(mlb(e), 11);
76917 if (e4b(d)) {
76918 if (!b) {
76919 d4b(Q_b(a));
76920 b = true;
76921 }
76922 h4b(BD(c2.xc(d), 306));
76923 }
76924 }
76925 }
76926 }
76927 function qec(a, b, c2) {
76928 var d;
76929 Odd(c2, "Self-Loop routing", 1);
76930 d = rec(b);
76931 RD(vNb(b, (g6c(), f6c)));
76932 MAb(NAb(JAb(JAb(LAb(new YAb(null, new Kub(b.b, 16)), new uec()), new wec()), new yec()), new Aec()), new Cec(a, d));
76933 Qdd(c2);
76934 }
76935 function gsd(a) {
76936 var b, c2, d, e, f2, g, h, i3, j;
76937 j = hsd(a);
76938 c2 = a.e;
76939 f2 = c2 != null;
76940 f2 && Upd(j, eue, a.e);
76941 h = a.k;
76942 g = !!h;
76943 g && Upd(j, "type", Zr(a.k));
76944 d = Fhe(a.j);
76945 e = !d;
76946 if (e) {
76947 i3 = new wB();
76948 cC(j, Mte, i3);
76949 b = new ssd(i3);
76950 reb(a.j, b);
76951 }
76952 return j;
76953 }
76954 function Jv(a) {
76955 var b, c2, d, e;
76956 e = Kfb((Xj(a.gc(), "size"), new Vfb()), 123);
76957 d = true;
76958 for (c2 = Wm(a).Kc(); c2.Ob(); ) {
76959 b = BD(c2.Pb(), 42);
76960 d || (e.a += She, e);
76961 d = false;
76962 Pfb(Kfb(Pfb(e, b.cd()), 61), b.dd());
76963 }
76964 return (e.a += "}", e).a;
76965 }
76966 function kD(a, b) {
76967 var c2, d, e;
76968 b &= 63;
76969 if (b < 22) {
76970 c2 = a.l << b;
76971 d = a.m << b | a.l >> 22 - b;
76972 e = a.h << b | a.m >> 22 - b;
76973 } else if (b < 44) {
76974 c2 = 0;
76975 d = a.l << b - 22;
76976 e = a.m << b - 22 | a.l >> 44 - b;
76977 } else {
76978 c2 = 0;
76979 d = 0;
76980 e = a.l << b - 44;
76981 }
76982 return TC(c2 & Eje, d & Eje, e & Fje);
76983 }
76984 function Hcb(a) {
76985 Gcb == null && (Gcb = new RegExp("^\\s*[+-]?(NaN|Infinity|((\\d+\\.?\\d*)|(\\.\\d+))([eE][+-]?\\d+)?[dDfF]?)\\s*$"));
76986 if (!Gcb.test(a)) {
76987 throw vbb(new Oeb(Oje + a + '"'));
76988 }
76989 return parseFloat(a);
76990 }
76991 function IFb(a) {
76992 var b, c2, d, e;
76993 b = new Rkb();
76994 c2 = KC(sbb, dle, 25, a.a.c.length, 16, 1);
76995 Glb(c2, c2.length);
76996 for (e = new olb(a.a); e.a < e.c.c.length; ) {
76997 d = BD(mlb(e), 121);
76998 if (!c2[d.d]) {
76999 b.c[b.c.length] = d;
77000 HFb(a, d, c2);
77001 }
77002 }
77003 return b;
77004 }
77005 function Nmc(a, b) {
77006 var c2, d, e, f2;
77007 f2 = b.b.j;
77008 a.a = KC(WD, oje, 25, f2.c.length, 15, 1);
77009 e = 0;
77010 for (d = 0; d < f2.c.length; d++) {
77011 c2 = (tCb(d, f2.c.length), BD(f2.c[d], 11));
77012 c2.e.c.length == 0 && c2.g.c.length == 0 ? e += 1 : e += 3;
77013 a.a[d] = e;
77014 }
77015 }
77016 function Sqc() {
77017 Sqc = ccb;
77018 Nqc = new Uqc("ALWAYS_UP", 0);
77019 Mqc = new Uqc("ALWAYS_DOWN", 1);
77020 Pqc = new Uqc("DIRECTION_UP", 2);
77021 Oqc = new Uqc("DIRECTION_DOWN", 3);
77022 Rqc = new Uqc("SMART_UP", 4);
77023 Qqc = new Uqc("SMART_DOWN", 5);
77024 }
77025 function k6c(a, b) {
77026 if (a < 0 || b < 0) {
77027 throw vbb(new Wdb("k and n must be positive"));
77028 } else if (b > a) {
77029 throw vbb(new Wdb("k must be smaller than n"));
77030 } else
77031 return b == 0 || b == a ? 1 : a == 0 ? 0 : q6c(a) / (q6c(b) * q6c(a - b));
77032 }
77033 function jfd(a, b) {
77034 var c2, d, e, f2;
77035 c2 = new _ud(a);
77036 while (c2.g == null && !c2.c ? Uud(c2) : c2.g == null || c2.i != 0 && BD(c2.g[c2.i - 1], 47).Ob()) {
77037 f2 = BD(Vud(c2), 56);
77038 if (JD(f2, 160)) {
77039 d = BD(f2, 160);
77040 for (e = 0; e < b.length; e++) {
77041 b[e].og(d);
77042 }
77043 }
77044 }
77045 }
77046 function fld(a) {
77047 var b;
77048 if ((a.Db & 64) != 0)
77049 return Mkd(a);
77050 b = new Jfb(Mkd(a));
77051 b.a += " (height: ";
77052 Bfb(b, a.f);
77053 b.a += ", width: ";
77054 Bfb(b, a.g);
77055 b.a += ", x: ";
77056 Bfb(b, a.i);
77057 b.a += ", y: ";
77058 Bfb(b, a.j);
77059 b.a += ")";
77060 return b.a;
77061 }
77062 function un(a) {
77063 var b, c2, d, e, f2, g, h;
77064 b = new $rb();
77065 for (d = a, e = 0, f2 = d.length; e < f2; ++e) {
77066 c2 = d[e];
77067 g = Qb(c2.cd());
77068 h = Xrb(b, g, Qb(c2.dd()));
77069 if (h != null) {
77070 throw vbb(new Wdb("duplicate key: " + g));
77071 }
77072 }
77073 this.b = (mmb(), new iob(b));
77074 }
77075 function Rlb(a) {
77076 var b, c2, d, e, f2;
77077 if (a == null) {
77078 return Xhe;
77079 }
77080 f2 = new xwb(She, "[", "]");
77081 for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
77082 b = c2[d];
77083 uwb(f2, String.fromCharCode(b));
77084 }
77085 return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
77086 }
77087 function SRb() {
77088 SRb = ccb;
77089 MRb = (XRb(), WRb);
77090 LRb = new Nsd(mme, MRb);
77091 meb(1);
77092 KRb = new Nsd(nme, meb(300));
77093 meb(0);
77094 PRb = new Nsd(ome, meb(0));
77095 QRb = new Nsd(pme, qme);
77096 NRb = new Nsd(rme, 5);
77097 RRb = WRb;
77098 ORb = VRb;
77099 }
77100 function NUb(a, b) {
77101 var c2, d, e, f2, g;
77102 e = b == 1 ? KUb : JUb;
77103 for (d = e.a.ec().Kc(); d.Ob(); ) {
77104 c2 = BD(d.Pb(), 103);
77105 for (g = BD(Qc(a.f.c, c2), 21).Kc(); g.Ob(); ) {
77106 f2 = BD(g.Pb(), 46);
77107 Ekb(a.b.b, BD(f2.b, 81));
77108 Ekb(a.b.a, BD(f2.b, 81).d);
77109 }
77110 }
77111 }
77112 function kVd(a, b) {
77113 var c2;
77114 if (b != null && !a.c.Yj().wj(b)) {
77115 c2 = JD(b, 56) ? BD(b, 56).Tg().zb : hdb(rb(b));
77116 throw vbb(new Cdb(ite + a.c.ne() + "'s type '" + a.c.Yj().ne() + "' does not permit a value of type '" + c2 + "'"));
77117 }
77118 }
77119 function cZb(a, b, c2) {
77120 var d, e;
77121 e = new Bib(a.b, 0);
77122 while (e.b < e.d.gc()) {
77123 d = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 70));
77124 if (PD(vNb(d, (wtc(), btc))) !== PD(b)) {
77125 continue;
77126 }
77127 Y$b(d.n, Q_b(a.c.i), c2);
77128 uib(e);
77129 Ekb(b.b, d);
77130 }
77131 }
77132 function vdc(a, b) {
77133 if (b.a) {
77134 switch (BD(vNb(b.b, (wtc(), dtc)), 98).g) {
77135 case 0:
77136 case 1:
77137 llc(b);
77138 case 2:
77139 MAb(new YAb(null, new Kub(b.d, 16)), new Idc());
77140 wkc(a.a, b);
77141 }
77142 } else {
77143 MAb(new YAb(null, new Kub(b.d, 16)), new Idc());
77144 }
77145 }
77146 function Znc(a) {
77147 var b, c2;
77148 c2 = $wnd.Math.sqrt((a.k == null && (a.k = Soc(a, new bpc())), Edb(a.k) / (a.b * (a.g == null && (a.g = Poc(a, new _oc())), Edb(a.g)))));
77149 b = Tbb(Cbb($wnd.Math.round(c2)));
77150 b = $wnd.Math.min(b, a.f);
77151 return b;
77152 }
77153 function H0b() {
77154 z0b();
77155 n_b.call(this);
77156 this.j = (Ucd(), Scd);
77157 this.a = new d7c();
77158 new L_b();
77159 this.f = (Xj(2, Jie), new Skb(2));
77160 this.e = (Xj(4, Jie), new Skb(4));
77161 this.g = (Xj(4, Jie), new Skb(4));
77162 this.b = new Z0b(this.e, this.g);
77163 }
77164 function j3b(a, b) {
77165 var c2, d;
77166 if (Ccb(DD(vNb(b, (wtc(), ltc))))) {
77167 return false;
77168 }
77169 d = b.c.i;
77170 if (a == (Ctc(), xtc)) {
77171 if (d.k == (j0b(), f0b)) {
77172 return false;
77173 }
77174 }
77175 c2 = BD(vNb(d, (Nyc(), mxc)), 163);
77176 if (c2 == ytc) {
77177 return false;
77178 }
77179 return true;
77180 }
77181 function k3b(a, b) {
77182 var c2, d;
77183 if (Ccb(DD(vNb(b, (wtc(), ltc))))) {
77184 return false;
77185 }
77186 d = b.d.i;
77187 if (a == (Ctc(), ztc)) {
77188 if (d.k == (j0b(), f0b)) {
77189 return false;
77190 }
77191 }
77192 c2 = BD(vNb(d, (Nyc(), mxc)), 163);
77193 if (c2 == Atc) {
77194 return false;
77195 }
77196 return true;
77197 }
77198 function L3b(a, b) {
77199 var c2, d, e, f2, g, h, i3;
77200 g = a.d;
77201 i3 = a.o;
77202 h = new J6c(-g.b, -g.d, g.b + i3.a + g.c, g.d + i3.b + g.a);
77203 for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
77204 c2 = d[e];
77205 !!c2 && H6c(h, c2.i);
77206 }
77207 g.b = -h.c;
77208 g.d = -h.d;
77209 g.c = h.b - g.b - i3.a;
77210 g.a = h.a - g.d - i3.b;
77211 }
77212 function N_c() {
77213 N_c = ccb;
77214 I_c = new O_c("CENTER_DISTANCE", 0);
77215 J_c = new O_c("CIRCLE_UNDERLAP", 1);
77216 M_c = new O_c("RECTANGLE_UNDERLAP", 2);
77217 K_c = new O_c("INVERTED_OVERLAP", 3);
77218 L_c = new O_c("MINIMUM_ROOT_DISTANCE", 4);
77219 }
77220 function jde(a) {
77221 hde();
77222 var b, c2, d, e, f2;
77223 if (a == null)
77224 return null;
77225 d = a.length;
77226 e = d * 2;
77227 b = KC(TD, $ie, 25, e, 15, 1);
77228 for (c2 = 0; c2 < d; c2++) {
77229 f2 = a[c2];
77230 f2 < 0 && (f2 += 256);
77231 b[c2 * 2] = gde[f2 >> 4];
77232 b[c2 * 2 + 1] = gde[f2 & 15];
77233 }
77234 return zfb(b, 0, b.length);
77235 }
77236 function fn(a) {
77237 Vm();
77238 var b, c2, d;
77239 d = a.c.length;
77240 switch (d) {
77241 case 0:
77242 return Um;
77243 case 1:
77244 b = BD(qr(new olb(a)), 42);
77245 return ln(b.cd(), b.dd());
77246 default:
77247 c2 = BD(Qkb(a, KC(CK, zie, 42, a.c.length, 0, 1)), 165);
77248 return new wx(c2);
77249 }
77250 }
77251 function ITb(a) {
77252 var b, c2, d, e, f2, g;
77253 b = new jkb();
77254 c2 = new jkb();
77255 Wjb(b, a);
77256 Wjb(c2, a);
77257 while (c2.b != c2.c) {
77258 e = BD(fkb(c2), 37);
77259 for (g = new olb(e.a); g.a < g.c.c.length; ) {
77260 f2 = BD(mlb(g), 10);
77261 if (f2.e) {
77262 d = f2.e;
77263 Wjb(b, d);
77264 Wjb(c2, d);
77265 }
77266 }
77267 }
77268 return b;
77269 }
77270 function Y_b(a, b) {
77271 switch (b.g) {
77272 case 1:
77273 return Nq(a.j, (z0b(), v0b));
77274 case 2:
77275 return Nq(a.j, (z0b(), t0b));
77276 case 3:
77277 return Nq(a.j, (z0b(), x0b));
77278 case 4:
77279 return Nq(a.j, (z0b(), y0b));
77280 default:
77281 return mmb(), mmb(), jmb;
77282 }
77283 }
77284 function tic(a, b) {
77285 var c2, d, e;
77286 c2 = uic(b, a.e);
77287 d = BD(Ohb(a.g.f, c2), 19).a;
77288 e = a.a.c.length - 1;
77289 if (a.a.c.length != 0 && BD(Ikb(a.a, e), 287).c == d) {
77290 ++BD(Ikb(a.a, e), 287).a;
77291 ++BD(Ikb(a.a, e), 287).b;
77292 } else {
77293 Ekb(a.a, new Dic(d));
77294 }
77295 }
77296 function VGc(a, b, c2) {
77297 var d, e;
77298 d = UGc(a, b, c2);
77299 if (d != 0) {
77300 return d;
77301 }
77302 if (wNb(b, (wtc(), Zsc)) && wNb(c2, Zsc)) {
77303 e = beb(BD(vNb(b, Zsc), 19).a, BD(vNb(c2, Zsc), 19).a);
77304 e < 0 ? WGc(a, b, c2) : e > 0 && WGc(a, c2, b);
77305 return e;
77306 }
77307 return TGc(a, b, c2);
77308 }
77309 function MSc(a, b, c2) {
77310 var d, e, f2, g;
77311 if (b.b != 0) {
77312 d = new Psb();
77313 for (g = Jsb(b, 0); g.b != g.d.c; ) {
77314 f2 = BD(Xsb(g), 86);
77315 ye(d, URc(f2));
77316 e = f2.e;
77317 e.a = BD(vNb(f2, (mTc(), kTc)), 19).a;
77318 e.b = BD(vNb(f2, lTc), 19).a;
77319 }
77320 MSc(a, d, Udd(c2, d.b / a.a | 0));
77321 }
77322 }
77323 function JZc(a, b) {
77324 var c2, d, e, f2, g;
77325 if (a.e <= b) {
77326 return a.g;
77327 }
77328 if (LZc(a, a.g, b)) {
77329 return a.g;
77330 }
77331 f2 = a.r;
77332 d = a.g;
77333 g = a.r;
77334 e = (f2 - d) / 2 + d;
77335 while (d + 1 < f2) {
77336 c2 = MZc(a, e, false);
77337 if (c2.b <= e && c2.a <= b) {
77338 g = e;
77339 f2 = e;
77340 } else {
77341 d = e;
77342 }
77343 e = (f2 - d) / 2 + d;
77344 }
77345 return g;
77346 }
77347 function t2c(a, b, c2) {
77348 var d;
77349 d = o2c(a, b, true);
77350 Odd(c2, "Recursive Graph Layout", d);
77351 jfd(b, OC(GC(g2, 1), Uhe, 527, 0, [new q3c()]));
77352 ikd(b, (Y9c(), F9c)) || jfd(b, OC(GC(g2, 1), Uhe, 527, 0, [new U3c()]));
77353 u2c(a, b, null, c2);
77354 Qdd(c2);
77355 }
77356 function Qdd(a) {
77357 var b;
77358 if (a.p == null) {
77359 throw vbb(new Zdb("The task has not begun yet."));
77360 }
77361 if (!a.b) {
77362 if (a.k) {
77363 b = (Zfb(), Ibb(Cbb(Date.now()), _ie));
77364 a.q = Sbb(Qbb(b, a.o)) * 1e-9;
77365 }
77366 a.c < a.r && Rdd(a, a.r - a.c);
77367 a.b = true;
77368 }
77369 }
77370 function ofd(a) {
77371 var b, c2, d;
77372 d = new s7c();
77373 Dsb(d, new f7c(a.j, a.k));
77374 for (c2 = new Fyd((!a.a && (a.a = new xMd(y2, a, 5)), a.a)); c2.e != c2.i.gc(); ) {
77375 b = BD(Dyd(c2), 469);
77376 Dsb(d, new f7c(b.a, b.b));
77377 }
77378 Dsb(d, new f7c(a.b, a.c));
77379 return d;
77380 }
77381 function qqd(a, b, c2, d, e) {
77382 var f2, g, h, i3, j, k;
77383 if (e) {
77384 i3 = e.a.length;
77385 f2 = new Yge(i3);
77386 for (k = (f2.b - f2.a) * f2.c < 0 ? (Xge(), Wge) : new she(f2); k.Ob(); ) {
77387 j = BD(k.Pb(), 19);
77388 h = Zpd(e, j.a);
77389 g = new prd(a, b, c2, d);
77390 rqd(g.a, g.b, g.c, g.d, h);
77391 }
77392 }
77393 }
77394 function Ax(b, c2) {
77395 var d;
77396 if (PD(b) === PD(c2)) {
77397 return true;
77398 }
77399 if (JD(c2, 21)) {
77400 d = BD(c2, 21);
77401 try {
77402 return b.gc() == d.gc() && b.Ic(d);
77403 } catch (a) {
77404 a = ubb(a);
77405 if (JD(a, 173) || JD(a, 205)) {
77406 return false;
77407 } else
77408 throw vbb(a);
77409 }
77410 }
77411 return false;
77412 }
77413 function UHb(a, b) {
77414 var c2;
77415 Ekb(a.d, b);
77416 c2 = b.rf();
77417 if (a.c) {
77418 a.e.a = $wnd.Math.max(a.e.a, c2.a);
77419 a.e.b += c2.b;
77420 a.d.c.length > 1 && (a.e.b += a.a);
77421 } else {
77422 a.e.a += c2.a;
77423 a.e.b = $wnd.Math.max(a.e.b, c2.b);
77424 a.d.c.length > 1 && (a.e.a += a.a);
77425 }
77426 }
77427 function cmc(a) {
77428 var b, c2, d, e;
77429 e = a.i;
77430 b = e.b;
77431 d = e.j;
77432 c2 = e.g;
77433 switch (e.a.g) {
77434 case 0:
77435 c2.a = (a.g.b.o.a - d.a) / 2;
77436 break;
77437 case 1:
77438 c2.a = b.d.n.a + b.d.a.a;
77439 break;
77440 case 2:
77441 c2.a = b.d.n.a + b.d.a.a - d.a;
77442 break;
77443 case 3:
77444 c2.b = b.d.n.b + b.d.a.b;
77445 }
77446 }
77447 function Q6c(a, b, c2, d, e) {
77448 if (d < b || e < c2) {
77449 throw vbb(new Wdb("The highx must be bigger then lowx and the highy must be bigger then lowy"));
77450 }
77451 a.a < b ? a.a = b : a.a > d && (a.a = d);
77452 a.b < c2 ? a.b = c2 : a.b > e && (a.b = e);
77453 return a;
77454 }
77455 function lsd(a) {
77456 if (JD(a, 149)) {
77457 return esd(BD(a, 149));
77458 } else if (JD(a, 229)) {
77459 return fsd(BD(a, 229));
77460 } else if (JD(a, 23)) {
77461 return gsd(BD(a, 23));
77462 } else {
77463 throw vbb(new Wdb(Xte + Fe(new amb(OC(GC(SI, 1), Uhe, 1, 5, [a])))));
77464 }
77465 }
77466 function mhb(a, b, c2, d, e) {
77467 var f2, g, h;
77468 f2 = true;
77469 for (g = 0; g < d; g++) {
77470 f2 = f2 & c2[g] == 0;
77471 }
77472 if (e == 0) {
77473 $fb(c2, d, a, 0, b);
77474 g = b;
77475 } else {
77476 h = 32 - e;
77477 f2 = f2 & c2[g] << h == 0;
77478 for (g = 0; g < b - 1; g++) {
77479 a[g] = c2[g + d] >>> e | c2[g + d + 1] << h;
77480 }
77481 a[g] = c2[g + d] >>> e;
77482 ++g;
77483 }
77484 return f2;
77485 }
77486 function zMc(a, b, c2, d) {
77487 var e, f2, g;
77488 if (b.k == (j0b(), g0b)) {
77489 for (f2 = new Sr(ur(R_b(b).a.Kc(), new Sq())); Qr(f2); ) {
77490 e = BD(Rr(f2), 17);
77491 g = e.c.i.k;
77492 if (g == g0b && a.c.a[e.c.i.c.p] == d && a.c.a[b.c.p] == c2) {
77493 return true;
77494 }
77495 }
77496 }
77497 return false;
77498 }
77499 function mD(a, b) {
77500 var c2, d, e, f2;
77501 b &= 63;
77502 c2 = a.h & Fje;
77503 if (b < 22) {
77504 f2 = c2 >>> b;
77505 e = a.m >> b | c2 << 22 - b;
77506 d = a.l >> b | a.m << 22 - b;
77507 } else if (b < 44) {
77508 f2 = 0;
77509 e = c2 >>> b - 22;
77510 d = a.m >> b - 22 | a.h << 44 - b;
77511 } else {
77512 f2 = 0;
77513 e = 0;
77514 d = c2 >>> b - 44;
77515 }
77516 return TC(d & Eje, e & Eje, f2 & Fje);
77517 }
77518 function Iic(a, b, c2, d) {
77519 var e;
77520 this.b = d;
77521 this.e = a == (rGc(), pGc);
77522 e = b[c2];
77523 this.d = IC(sbb, [nie, dle], [177, 25], 16, [e.length, e.length], 2);
77524 this.a = IC(WD, [nie, oje], [48, 25], 15, [e.length, e.length], 2);
77525 this.c = new sic(b, c2);
77526 }
77527 function ljc(a) {
77528 var b, c2, d;
77529 a.k = new Ki((Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, a.j.c.length);
77530 for (d = new olb(a.j); d.a < d.c.c.length; ) {
77531 c2 = BD(mlb(d), 113);
77532 b = c2.d.j;
77533 Rc(a.k, b, c2);
77534 }
77535 a.e = Zjc(Ec(a.k));
77536 }
77537 function UQc(a, b) {
77538 var c2, d, e;
77539 Qqb(a.d, b);
77540 c2 = new _Qc();
77541 Rhb(a.c, b, c2);
77542 c2.f = VQc(b.c);
77543 c2.a = VQc(b.d);
77544 c2.d = (hQc(), e = b.c.i.k, e == (j0b(), h0b) || e == d0b);
77545 c2.e = (d = b.d.i.k, d == h0b || d == d0b);
77546 c2.b = b.c.j == (Ucd(), Tcd);
77547 c2.c = b.d.j == zcd;
77548 }
77549 function BGb(a) {
77550 var b, c2, d, e, f2;
77551 f2 = Ohe;
77552 e = Ohe;
77553 for (d = new olb(LFb(a)); d.a < d.c.c.length; ) {
77554 c2 = BD(mlb(d), 213);
77555 b = c2.e.e - c2.d.e;
77556 c2.e == a && b < e ? e = b : b < f2 && (f2 = b);
77557 }
77558 e == Ohe && (e = -1);
77559 f2 == Ohe && (f2 = -1);
77560 return new vgd(meb(e), meb(f2));
77561 }
77562 function zQb(a, b) {
77563 var c2, d, e;
77564 e = dme;
77565 d = (ROb(), OOb);
77566 e = $wnd.Math.abs(a.b);
77567 c2 = $wnd.Math.abs(b.f - a.b);
77568 if (c2 < e) {
77569 e = c2;
77570 d = POb;
77571 }
77572 c2 = $wnd.Math.abs(a.a);
77573 if (c2 < e) {
77574 e = c2;
77575 d = QOb;
77576 }
77577 c2 = $wnd.Math.abs(b.g - a.a);
77578 if (c2 < e) {
77579 e = c2;
77580 d = NOb;
77581 }
77582 return d;
77583 }
77584 function L9b(a, b) {
77585 var c2, d, e, f2;
77586 c2 = b.a.o.a;
77587 f2 = new Jib(Q_b(b.a).b, b.c, b.f + 1);
77588 for (e = new vib(f2); e.b < e.d.gc(); ) {
77589 d = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 29));
77590 if (d.c.a >= c2) {
77591 K9b(a, b, d.p);
77592 return true;
77593 }
77594 }
77595 return false;
77596 }
77597 function Iod(a) {
77598 var b;
77599 if ((a.Db & 64) != 0)
77600 return fld(a);
77601 b = new Wfb(dte);
77602 !a.a || Qfb(Qfb((b.a += ' "', b), a.a), '"');
77603 Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")");
77604 return b.a;
77605 }
77606 function Z2d(a, b, c2) {
77607 var d, e, f2, g, h;
77608 h = S6d(a.e.Tg(), b);
77609 e = BD(a.g, 119);
77610 d = 0;
77611 for (g = 0; g < a.i; ++g) {
77612 f2 = e[g];
77613 if (h.rl(f2.ak())) {
77614 if (d == c2) {
77615 Xxd(a, g);
77616 return Q6d(), BD(b, 66).Oj() ? f2 : f2.dd();
77617 }
77618 ++d;
77619 }
77620 }
77621 throw vbb(new qcb(gve + c2 + mue + d));
77622 }
77623 function sde(a) {
77624 var b, c2, d;
77625 b = a.c;
77626 if (b == 2 || b == 7 || b == 1) {
77627 return wfe(), wfe(), ffe;
77628 } else {
77629 d = qde(a);
77630 c2 = null;
77631 while ((b = a.c) != 2 && b != 7 && b != 1) {
77632 if (!c2) {
77633 c2 = (wfe(), wfe(), new Lge(1));
77634 Kge(c2, d);
77635 d = c2;
77636 }
77637 Kge(c2, qde(a));
77638 }
77639 return d;
77640 }
77641 }
77642 function Kb(a, b, c2) {
77643 if (a < 0 || a > c2) {
77644 return Jb(a, c2, "start index");
77645 }
77646 if (b < 0 || b > c2) {
77647 return Jb(b, c2, "end index");
77648 }
77649 return hc("end index (%s) must not be less than start index (%s)", OC(GC(SI, 1), Uhe, 1, 5, [meb(b), meb(a)]));
77650 }
77651 function Pz(b, c2) {
77652 var d, e, f2, g;
77653 for (e = 0, f2 = b.length; e < f2; e++) {
77654 g = b[e];
77655 try {
77656 g[1] ? g[0].jm() && (c2 = Oz(c2, g)) : g[0].jm();
77657 } catch (a) {
77658 a = ubb(a);
77659 if (JD(a, 78)) {
77660 d = a;
77661 Az();
77662 Gz(JD(d, 477) ? BD(d, 477).ae() : d);
77663 } else
77664 throw vbb(a);
77665 }
77666 }
77667 return c2;
77668 }
77669 function K9b(a, b, c2) {
77670 var d, e, f2;
77671 c2 != b.c + b.b.gc() && Z9b(b.a, fac(b, c2 - b.c));
77672 f2 = b.a.c.p;
77673 a.a[f2] = $wnd.Math.max(a.a[f2], b.a.o.a);
77674 for (e = BD(vNb(b.a, (wtc(), ktc)), 15).Kc(); e.Ob(); ) {
77675 d = BD(e.Pb(), 70);
77676 yNb(d, H9b, (Bcb(), true));
77677 }
77678 }
77679 function Wec(a, b) {
77680 var c2, d, e;
77681 e = Vec(b);
77682 yNb(b, (wtc(), Xsc), e);
77683 if (e) {
77684 d = Ohe;
77685 !!irb(a.f, e) && (d = BD(Wd(irb(a.f, e)), 19).a);
77686 c2 = BD(Ikb(b.g, 0), 17);
77687 Ccb(DD(vNb(c2, ltc))) || Rhb(a, e, meb($wnd.Math.min(BD(vNb(c2, Zsc), 19).a, d)));
77688 }
77689 }
77690 function iCc(a, b, c2) {
77691 var d, e, f2, g, h;
77692 b.p = -1;
77693 for (h = W_b(b, (KAc(), IAc)).Kc(); h.Ob(); ) {
77694 g = BD(h.Pb(), 11);
77695 for (e = new olb(g.g); e.a < e.c.c.length; ) {
77696 d = BD(mlb(e), 17);
77697 f2 = d.d.i;
77698 b != f2 && (f2.p < 0 ? c2.Fc(d) : f2.p > 0 && iCc(a, f2, c2));
77699 }
77700 }
77701 b.p = 0;
77702 }
77703 function p5c(a) {
77704 var b;
77705 this.c = new Psb();
77706 this.f = a.e;
77707 this.e = a.d;
77708 this.i = a.g;
77709 this.d = a.c;
77710 this.b = a.b;
77711 this.k = a.j;
77712 this.a = a.a;
77713 !a.i ? this.j = (b = BD(gdb(e1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)) : this.j = a.i;
77714 this.g = a.f;
77715 }
77716 function Wb(a) {
77717 var b, c2, d, e;
77718 b = Kfb(Qfb(new Wfb("Predicates."), "and"), 40);
77719 c2 = true;
77720 for (e = new vib(a); e.b < e.d.gc(); ) {
77721 d = (sCb(e.b < e.d.gc()), e.d.Xb(e.c = e.b++));
77722 c2 || (b.a += ",", b);
77723 b.a += "" + d;
77724 c2 = false;
77725 }
77726 return (b.a += ")", b).a;
77727 }
77728 function Rcc(a, b, c2) {
77729 var d, e, f2;
77730 if (c2 <= b + 2) {
77731 return;
77732 }
77733 e = (c2 - b) / 2 | 0;
77734 for (d = 0; d < e; ++d) {
77735 f2 = (tCb(b + d, a.c.length), BD(a.c[b + d], 11));
77736 Nkb(a, b + d, (tCb(c2 - d - 1, a.c.length), BD(a.c[c2 - d - 1], 11)));
77737 tCb(c2 - d - 1, a.c.length);
77738 a.c[c2 - d - 1] = f2;
77739 }
77740 }
77741 function hjc(a, b, c2) {
77742 var d, e, f2, g, h, i3, j, k;
77743 f2 = a.d.p;
77744 h = f2.e;
77745 i3 = f2.r;
77746 a.g = new dIc(i3);
77747 g = a.d.o.c.p;
77748 d = g > 0 ? h[g - 1] : KC(OQ, kne, 10, 0, 0, 1);
77749 e = h[g];
77750 j = g < h.length - 1 ? h[g + 1] : KC(OQ, kne, 10, 0, 0, 1);
77751 k = b == c2 - 1;
77752 k ? RHc(a.g, e, j) : RHc(a.g, d, e);
77753 }
77754 function pjc(a) {
77755 var b;
77756 this.j = new Rkb();
77757 this.f = new Tqb();
77758 this.b = (b = BD(gdb(F1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
77759 this.d = KC(WD, oje, 25, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 15, 1);
77760 this.g = a;
77761 }
77762 function QVc(a, b) {
77763 var c2, d, e;
77764 if (b.c.length != 0) {
77765 c2 = RVc(a, b);
77766 e = false;
77767 while (!c2) {
77768 AVc(a, b, true);
77769 e = true;
77770 c2 = RVc(a, b);
77771 }
77772 e && AVc(a, b, false);
77773 d = dVc(b);
77774 !!a.b && a.b.lg(d);
77775 a.a = PVc(a, (tCb(0, b.c.length), BD(b.c[0], 33)));
77776 QVc(a, d);
77777 }
77778 }
77779 function Cid(a, b) {
77780 var c2, d, e;
77781 d = XKd(a.Tg(), b);
77782 c2 = b - a.Ah();
77783 if (c2 < 0) {
77784 if (!d) {
77785 throw vbb(new Wdb(mte + b + nte));
77786 } else if (d.Ij()) {
77787 e = a.Yg(d);
77788 e >= 0 ? a.Bh(e) : vid(a, d);
77789 } else {
77790 throw vbb(new Wdb(ite + d.ne() + jte));
77791 }
77792 } else {
77793 eid(a, c2, d);
77794 }
77795 }
77796 function aqd(a) {
77797 var b, c2;
77798 c2 = null;
77799 b = false;
77800 if (JD(a, 204)) {
77801 b = true;
77802 c2 = BD(a, 204).a;
77803 }
77804 if (!b) {
77805 if (JD(a, 258)) {
77806 b = true;
77807 c2 = "" + BD(a, 258).a;
77808 }
77809 }
77810 if (!b) {
77811 if (JD(a, 483)) {
77812 b = true;
77813 c2 = "" + BD(a, 483).a;
77814 }
77815 }
77816 if (!b) {
77817 throw vbb(new vcb(Ute));
77818 }
77819 return c2;
77820 }
77821 function ORd(a, b) {
77822 var c2, d;
77823 if (a.f) {
77824 while (b.Ob()) {
77825 c2 = BD(b.Pb(), 72);
77826 d = c2.ak();
77827 if (JD(d, 99) && (BD(d, 18).Bb & ote) != 0 && (!a.e || d.Gj() != x2 || d.aj() != 0) && c2.dd() != null) {
77828 b.Ub();
77829 return true;
77830 }
77831 }
77832 return false;
77833 } else {
77834 return b.Ob();
77835 }
77836 }
77837 function QRd(a, b) {
77838 var c2, d;
77839 if (a.f) {
77840 while (b.Sb()) {
77841 c2 = BD(b.Ub(), 72);
77842 d = c2.ak();
77843 if (JD(d, 99) && (BD(d, 18).Bb & ote) != 0 && (!a.e || d.Gj() != x2 || d.aj() != 0) && c2.dd() != null) {
77844 b.Pb();
77845 return true;
77846 }
77847 }
77848 return false;
77849 } else {
77850 return b.Sb();
77851 }
77852 }
77853 function I2d(a, b, c2) {
77854 var d, e, f2, g, h, i3;
77855 i3 = S6d(a.e.Tg(), b);
77856 d = 0;
77857 h = a.i;
77858 e = BD(a.g, 119);
77859 for (g = 0; g < a.i; ++g) {
77860 f2 = e[g];
77861 if (i3.rl(f2.ak())) {
77862 if (c2 == d) {
77863 return g;
77864 }
77865 ++d;
77866 h = g + 1;
77867 }
77868 }
77869 if (c2 == d) {
77870 return h;
77871 } else {
77872 throw vbb(new qcb(gve + c2 + mue + d));
77873 }
77874 }
77875 function d9b(a, b) {
77876 var c2, d, e, f2;
77877 if (a.f.c.length == 0) {
77878 return null;
77879 } else {
77880 f2 = new I6c();
77881 for (d = new olb(a.f); d.a < d.c.c.length; ) {
77882 c2 = BD(mlb(d), 70);
77883 e = c2.o;
77884 f2.b = $wnd.Math.max(f2.b, e.a);
77885 f2.a += e.b;
77886 }
77887 f2.a += (a.f.c.length - 1) * b;
77888 return f2;
77889 }
77890 }
77891 function QJc(a, b, c2) {
77892 var d, e, f2;
77893 for (e = new Sr(ur(O_b(c2).a.Kc(), new Sq())); Qr(e); ) {
77894 d = BD(Rr(e), 17);
77895 if (!(!OZb(d) && !(!OZb(d) && d.c.i.c == d.d.i.c))) {
77896 continue;
77897 }
77898 f2 = IJc(a, d, c2, new vKc());
77899 f2.c.length > 1 && (b.c[b.c.length] = f2, true);
77900 }
77901 }
77902 function TJc(a) {
77903 var b, c2, d, e;
77904 c2 = new Psb();
77905 ye(c2, a.o);
77906 d = new twb();
77907 while (c2.b != 0) {
77908 b = BD(c2.b == 0 ? null : (sCb(c2.b != 0), Nsb(c2, c2.a.a)), 508);
77909 e = KJc(a, b, true);
77910 e && Ekb(d.a, b);
77911 }
77912 while (d.a.c.length != 0) {
77913 b = BD(rwb(d), 508);
77914 KJc(a, b, false);
77915 }
77916 }
77917 function _5c() {
77918 _5c = ccb;
77919 $5c = new a6c(ole, 0);
77920 T5c = new a6c("BOOLEAN", 1);
77921 X5c = new a6c("INT", 2);
77922 Z5c = new a6c("STRING", 3);
77923 U5c = new a6c("DOUBLE", 4);
77924 V5c = new a6c("ENUM", 5);
77925 W5c = new a6c("ENUMSET", 6);
77926 Y5c = new a6c("OBJECT", 7);
77927 }
77928 function H6c(a, b) {
77929 var c2, d, e, f2, g;
77930 d = $wnd.Math.min(a.c, b.c);
77931 f2 = $wnd.Math.min(a.d, b.d);
77932 e = $wnd.Math.max(a.c + a.b, b.c + b.b);
77933 g = $wnd.Math.max(a.d + a.a, b.d + b.a);
77934 if (e < d) {
77935 c2 = d;
77936 d = e;
77937 e = c2;
77938 }
77939 if (g < f2) {
77940 c2 = f2;
77941 f2 = g;
77942 g = c2;
77943 }
77944 G6c(a, d, f2, e - d, g - f2);
77945 }
77946 function O6d() {
77947 O6d = ccb;
77948 L6d = OC(GC(ZI, 1), nie, 2, 6, [swe, twe, uwe, vwe, wwe, xwe, eue]);
77949 K6d = OC(GC(ZI, 1), nie, 2, 6, [swe, "empty", twe, Qve, "elementOnly"]);
77950 N6d = OC(GC(ZI, 1), nie, 2, 6, [swe, "preserve", "replace", ywe]);
77951 M6d = new y1d();
77952 }
77953 function Y$b(a, b, c2) {
77954 var d, e, f2;
77955 if (b == c2) {
77956 return;
77957 }
77958 d = b;
77959 do {
77960 P6c(a, d.c);
77961 e = d.e;
77962 if (e) {
77963 f2 = d.d;
77964 O6c(a, f2.b, f2.d);
77965 P6c(a, e.n);
77966 d = Q_b(e);
77967 }
77968 } while (e);
77969 d = c2;
77970 do {
77971 c7c(a, d.c);
77972 e = d.e;
77973 if (e) {
77974 f2 = d.d;
77975 b7c(a, f2.b, f2.d);
77976 c7c(a, e.n);
77977 d = Q_b(e);
77978 }
77979 } while (e);
77980 }
77981 function qic(a, b, c2, d) {
77982 var e, f2, g, h, i3;
77983 if (d.f.c + d.g.c == 0) {
77984 for (g = a.a[a.c], h = 0, i3 = g.length; h < i3; ++h) {
77985 f2 = g[h];
77986 Rhb(d, f2, new zic(a, f2, c2));
77987 }
77988 }
77989 e = BD(Wd(irb(d.f, b)), 663);
77990 e.b = 0;
77991 e.c = e.f;
77992 e.c == 0 || Cic(BD(Ikb(e.a, e.b), 287));
77993 return e;
77994 }
77995 function Apc() {
77996 Apc = ccb;
77997 wpc = new Bpc("MEDIAN_LAYER", 0);
77998 ypc = new Bpc("TAIL_LAYER", 1);
77999 vpc = new Bpc("HEAD_LAYER", 2);
78000 xpc = new Bpc("SPACE_EFFICIENT_LAYER", 3);
78001 zpc = new Bpc("WIDEST_LAYER", 4);
78002 upc = new Bpc("CENTER_LAYER", 5);
78003 }
78004 function rJb(a) {
78005 switch (a.g) {
78006 case 0:
78007 case 1:
78008 case 2:
78009 return Ucd(), Acd;
78010 case 3:
78011 case 4:
78012 case 5:
78013 return Ucd(), Rcd;
78014 case 6:
78015 case 7:
78016 case 8:
78017 return Ucd(), Tcd;
78018 case 9:
78019 case 10:
78020 case 11:
78021 return Ucd(), zcd;
78022 default:
78023 return Ucd(), Scd;
78024 }
78025 }
78026 function sKc(a, b) {
78027 var c2;
78028 if (a.c.length == 0) {
78029 return false;
78030 }
78031 c2 = Lzc((tCb(0, a.c.length), BD(a.c[0], 17)).c.i);
78032 FJc();
78033 if (c2 == (Izc(), Fzc) || c2 == Ezc) {
78034 return true;
78035 }
78036 return FAb(NAb(new YAb(null, new Kub(a, 16)), new AKc()), new CKc(b));
78037 }
78038 function cRc(a, b, c2) {
78039 var d, e, f2;
78040 if (!a.b[b.g]) {
78041 a.b[b.g] = true;
78042 d = c2;
78043 !d && (d = new SRc());
78044 Dsb(d.b, b);
78045 for (f2 = a.a[b.g].Kc(); f2.Ob(); ) {
78046 e = BD(f2.Pb(), 188);
78047 e.b != b && cRc(a, e.b, d);
78048 e.c != b && cRc(a, e.c, d);
78049 Dsb(d.a, e);
78050 }
78051 return d;
78052 }
78053 return null;
78054 }
78055 function qSc() {
78056 qSc = ccb;
78057 pSc = new rSc("ROOT_PROC", 0);
78058 lSc = new rSc("FAN_PROC", 1);
78059 nSc = new rSc("NEIGHBORS_PROC", 2);
78060 mSc = new rSc("LEVEL_HEIGHT", 3);
78061 oSc = new rSc("NODE_POSITION_PROC", 4);
78062 kSc = new rSc("DETREEIFYING_PROC", 5);
78063 }
78064 function kqd(a, b) {
78065 if (JD(b, 239)) {
78066 return eqd(a, BD(b, 33));
78067 } else if (JD(b, 186)) {
78068 return fqd(a, BD(b, 118));
78069 } else if (JD(b, 439)) {
78070 return dqd(a, BD(b, 202));
78071 } else {
78072 throw vbb(new Wdb(Xte + Fe(new amb(OC(GC(SI, 1), Uhe, 1, 5, [b])))));
78073 }
78074 }
78075 function xu(a, b, c2) {
78076 var d, e;
78077 this.f = a;
78078 d = BD(Ohb(a.b, b), 283);
78079 e = !d ? 0 : d.a;
78080 Sb(c2, e);
78081 if (c2 >= (e / 2 | 0)) {
78082 this.e = !d ? null : d.c;
78083 this.d = e;
78084 while (c2++ < e) {
78085 vu(this);
78086 }
78087 } else {
78088 this.c = !d ? null : d.b;
78089 while (c2-- > 0) {
78090 uu(this);
78091 }
78092 }
78093 this.b = b;
78094 this.a = null;
78095 }
78096 function rEb(a, b) {
78097 var c2, d;
78098 b.a ? sEb(a, b) : (c2 = BD(Exb(a.b, b.b), 57), !!c2 && c2 == a.a[b.b.f] && !!c2.a && c2.a != b.b.a && c2.c.Fc(b.b), d = BD(Dxb(a.b, b.b), 57), !!d && a.a[d.f] == b.b && !!d.a && d.a != b.b.a && b.b.c.Fc(d), Fxb(a.b, b.b), void 0);
78099 }
78100 function FJb(a, b) {
78101 var c2, d;
78102 c2 = BD(Mpb(a.b, b), 124);
78103 if (BD(BD(Qc(a.r, b), 21), 84).dc()) {
78104 c2.n.b = 0;
78105 c2.n.c = 0;
78106 return;
78107 }
78108 c2.n.b = a.C.b;
78109 c2.n.c = a.C.c;
78110 a.A.Hc((tdd(), sdd)) && KJb(a, b);
78111 d = JJb(a, b);
78112 KIb(a, b) == (Tbd(), Qbd) && (d += 2 * a.w);
78113 c2.a.a = d;
78114 }
78115 function OKb(a, b) {
78116 var c2, d;
78117 c2 = BD(Mpb(a.b, b), 124);
78118 if (BD(BD(Qc(a.r, b), 21), 84).dc()) {
78119 c2.n.d = 0;
78120 c2.n.a = 0;
78121 return;
78122 }
78123 c2.n.d = a.C.d;
78124 c2.n.a = a.C.a;
78125 a.A.Hc((tdd(), sdd)) && SKb(a, b);
78126 d = RKb(a, b);
78127 KIb(a, b) == (Tbd(), Qbd) && (d += 2 * a.w);
78128 c2.a.b = d;
78129 }
78130 function cOb(a, b) {
78131 var c2, d, e, f2;
78132 f2 = new Rkb();
78133 for (d = new olb(b); d.a < d.c.c.length; ) {
78134 c2 = BD(mlb(d), 65);
78135 Ekb(f2, new oOb(c2, true));
78136 Ekb(f2, new oOb(c2, false));
78137 }
78138 e = new hOb(a);
78139 zwb(e.a.a);
78140 kDb(f2, a.b, new amb(OC(GC(JM, 1), Uhe, 679, 0, [e])));
78141 }
78142 function rQb(a, b, c2, d) {
78143 var e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
78144 i3 = a.a;
78145 n = a.b;
78146 j = b.a;
78147 o2 = b.b;
78148 k = c2.a;
78149 p = c2.b;
78150 l = d.a;
78151 q = d.b;
78152 f2 = i3 * o2 - n * j;
78153 g = k * q - p * l;
78154 e = (i3 - j) * (p - q) - (n - o2) * (k - l);
78155 h = (f2 * (k - l) - g * (i3 - j)) / e;
78156 m = (f2 * (p - q) - g * (n - o2)) / e;
78157 return new f7c(h, m);
78158 }
78159 function TBc(a, b) {
78160 var c2, d, e;
78161 if (a.d[b.p]) {
78162 return;
78163 }
78164 a.d[b.p] = true;
78165 a.a[b.p] = true;
78166 for (d = new Sr(ur(U_b(b).a.Kc(), new Sq())); Qr(d); ) {
78167 c2 = BD(Rr(d), 17);
78168 if (OZb(c2)) {
78169 continue;
78170 }
78171 e = c2.d.i;
78172 a.a[e.p] ? Ekb(a.b, c2) : TBc(a, e);
78173 }
78174 a.a[b.p] = false;
78175 }
78176 function pCc(a, b, c2) {
78177 var d;
78178 d = 0;
78179 switch (BD(vNb(b, (Nyc(), mxc)), 163).g) {
78180 case 2:
78181 d = 2 * -c2 + a.a;
78182 ++a.a;
78183 break;
78184 case 1:
78185 d = -c2;
78186 break;
78187 case 3:
78188 d = c2;
78189 break;
78190 case 4:
78191 d = 2 * c2 + a.b;
78192 ++a.b;
78193 }
78194 wNb(b, (wtc(), Zsc)) && (d += BD(vNb(b, Zsc), 19).a);
78195 return d;
78196 }
78197 function jOc(a, b, c2) {
78198 var d, e, f2;
78199 c2.zc(b, a);
78200 Ekb(a.n, b);
78201 f2 = a.p.eg(b);
78202 b.j == a.p.fg() ? yOc(a.e, f2) : yOc(a.j, f2);
78203 lOc(a);
78204 for (e = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(b), new R0b(b)]))); Qr(e); ) {
78205 d = BD(Rr(e), 11);
78206 c2._b(d) || jOc(a, d, c2);
78207 }
78208 }
78209 function rfd(a) {
78210 var b, c2, d;
78211 c2 = BD(hkd(a, (Y9c(), Y8c)), 21);
78212 if (c2.Hc((tdd(), pdd))) {
78213 d = BD(hkd(a, b9c), 21);
78214 b = new g7c(BD(hkd(a, _8c), 8));
78215 if (d.Hc((Idd(), Bdd))) {
78216 b.a <= 0 && (b.a = 20);
78217 b.b <= 0 && (b.b = 20);
78218 }
78219 return b;
78220 } else {
78221 return new d7c();
78222 }
78223 }
78224 function PKd(a) {
78225 var b, c2, d;
78226 if (!a.b) {
78227 d = new $Nd();
78228 for (c2 = new $yd(SKd(a)); c2.e != c2.i.gc(); ) {
78229 b = BD(Zyd(c2), 18);
78230 (b.Bb & ote) != 0 && wtd(d, b);
78231 }
78232 vud(d);
78233 a.b = new nNd((BD(qud(ZKd((NFd(), MFd).o), 8), 18), d.i), d.g);
78234 $Kd(a).b &= -9;
78235 }
78236 return a.b;
78237 }
78238 function Rmc(a, b) {
78239 var c2, d, e, f2, g, h, i3, j;
78240 i3 = BD(Ee(Ec(b.k), KC(F1, bne, 61, 2, 0, 1)), 122);
78241 j = b.g;
78242 c2 = Tmc(b, i3[0]);
78243 e = Smc(b, i3[1]);
78244 d = Kmc(a, j, c2, e);
78245 f2 = Tmc(b, i3[1]);
78246 h = Smc(b, i3[0]);
78247 g = Kmc(a, j, f2, h);
78248 if (d <= g) {
78249 b.a = c2;
78250 b.c = e;
78251 } else {
78252 b.a = f2;
78253 b.c = h;
78254 }
78255 }
78256 function ESc(a, b, c2) {
78257 var d, e, f2;
78258 Odd(c2, "Processor set neighbors", 1);
78259 a.a = b.b.b == 0 ? 1 : b.b.b;
78260 e = null;
78261 d = Jsb(b.b, 0);
78262 while (!e && d.b != d.d.c) {
78263 f2 = BD(Xsb(d), 86);
78264 Ccb(DD(vNb(f2, (mTc(), jTc)))) && (e = f2);
78265 }
78266 !!e && FSc(a, new ZRc(e), c2);
78267 Qdd(c2);
78268 }
78269 function PEd(a) {
78270 IEd();
78271 var b, c2, d, e;
78272 d = hfb(a, wfb(35));
78273 b = d == -1 ? a : a.substr(0, d);
78274 c2 = d == -1 ? null : a.substr(d + 1);
78275 e = kFd(HEd, b);
78276 if (!e) {
78277 e = aFd(b);
78278 lFd(HEd, b, e);
78279 c2 != null && (e = JEd(e, c2));
78280 } else
78281 c2 != null && (e = JEd(e, (uCb(c2), c2)));
78282 return e;
78283 }
78284 function smb(a) {
78285 var h;
78286 mmb();
78287 var b, c2, d, e, f2, g;
78288 if (JD(a, 54)) {
78289 for (e = 0, d = a.gc() - 1; e < d; ++e, --d) {
78290 h = a.Xb(e);
78291 a._c(e, a.Xb(d));
78292 a._c(d, h);
78293 }
78294 } else {
78295 b = a.Yc();
78296 f2 = a.Zc(a.gc());
78297 while (b.Tb() < f2.Vb()) {
78298 c2 = b.Pb();
78299 g = f2.Ub();
78300 b.Wb(g);
78301 f2.Wb(c2);
78302 }
78303 }
78304 }
78305 function I3b(a, b) {
78306 var c2, d, e;
78307 Odd(b, "End label pre-processing", 1);
78308 c2 = Edb(ED(vNb(a, (Nyc(), nyc))));
78309 d = Edb(ED(vNb(a, ryc)));
78310 e = gad(BD(vNb(a, Lwc), 103));
78311 MAb(LAb(new YAb(null, new Kub(a.b, 16)), new Q3b()), new S3b(c2, d, e));
78312 Qdd(b);
78313 }
78314 function NFc(a, b) {
78315 var c2, d, e, f2, g, h;
78316 h = 0;
78317 f2 = new jkb();
78318 Wjb(f2, b);
78319 while (f2.b != f2.c) {
78320 g = BD(fkb(f2), 214);
78321 h += pHc(g.d, g.e);
78322 for (e = new olb(g.b); e.a < e.c.c.length; ) {
78323 d = BD(mlb(e), 37);
78324 c2 = BD(Ikb(a.b, d.p), 214);
78325 c2.s || (h += NFc(a, c2));
78326 }
78327 }
78328 return h;
78329 }
78330 function YQc(a, b, c2) {
78331 var d, e;
78332 TQc(this);
78333 b == (FQc(), DQc) ? Qqb(this.r, a.c) : Qqb(this.w, a.c);
78334 c2 == DQc ? Qqb(this.r, a.d) : Qqb(this.w, a.d);
78335 UQc(this, a);
78336 d = VQc(a.c);
78337 e = VQc(a.d);
78338 XQc(this, d, e, e);
78339 this.o = (hQc(), $wnd.Math.abs(d - e) < 0.2);
78340 }
78341 function a0d(a, b, c2) {
78342 var d, e, f2, g, h, i3;
78343 h = BD(Ajd(a.a, 8), 1936);
78344 if (h != null) {
78345 for (e = h, f2 = 0, g = e.length; f2 < g; ++f2) {
78346 null.jm();
78347 }
78348 }
78349 d = c2;
78350 if ((a.a.Db & 1) == 0) {
78351 i3 = new f0d(a, c2, b);
78352 d.ui(i3);
78353 }
78354 JD(d, 672) ? BD(d, 672).wi(a.a) : d.ti() == a.a && d.vi(null);
78355 }
78356 function dae() {
78357 var a;
78358 if (Z9d)
78359 return BD(nUd((yFd(), xFd), Ewe), 1945);
78360 eae();
78361 a = BD(JD(Phb((yFd(), xFd), Ewe), 586) ? Phb(xFd, Ewe) : new cae(), 586);
78362 Z9d = true;
78363 aae(a);
78364 bae(a);
78365 Rhb((JFd(), IFd), a, new fae());
78366 Tnd(a);
78367 Shb(xFd, Ewe, a);
78368 return a;
78369 }
78370 function xA(a, b, c2, d) {
78371 var e;
78372 e = oA(a, c2, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje]), b);
78373 e < 0 && (e = oA(a, c2, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), b));
78374 if (e < 0) {
78375 return false;
78376 }
78377 d.d = e;
78378 return true;
78379 }
78380 function AA(a, b, c2, d) {
78381 var e;
78382 e = oA(a, c2, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje]), b);
78383 e < 0 && (e = oA(a, c2, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]), b));
78384 if (e < 0) {
78385 return false;
78386 }
78387 d.d = e;
78388 return true;
78389 }
78390 function NVb(a) {
78391 var b, c2, d;
78392 KVb(a);
78393 d = new Rkb();
78394 for (c2 = new olb(a.a.a.b); c2.a < c2.c.c.length; ) {
78395 b = BD(mlb(c2), 81);
78396 Ekb(d, new ZVb(b, true));
78397 Ekb(d, new ZVb(b, false));
78398 }
78399 RVb(a.c);
78400 rXb(d, a.b, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [a.c])));
78401 MVb(a);
78402 }
78403 function c4b(a) {
78404 var b, c2, d, e;
78405 c2 = new Lqb();
78406 for (e = new olb(a.d); e.a < e.c.c.length; ) {
78407 d = BD(mlb(e), 181);
78408 b = BD(d.We((wtc(), Dsc)), 17);
78409 !!irb(c2.f, b) || Rhb(c2, b, new p4b(b));
78410 Ekb(BD(Wd(irb(c2.f, b)), 456).b, d);
78411 }
78412 return new Tkb(new $ib(c2));
78413 }
78414 function Gac(a, b) {
78415 var c2, d, e, f2, g;
78416 d = new kkb(a.j.c.length);
78417 c2 = null;
78418 for (f2 = new olb(a.j); f2.a < f2.c.c.length; ) {
78419 e = BD(mlb(f2), 11);
78420 if (e.j != c2) {
78421 d.b == d.c || Hac(d, c2, b);
78422 Yjb(d);
78423 c2 = e.j;
78424 }
78425 g = N3b(e);
78426 !!g && (Xjb(d, g), true);
78427 }
78428 d.b == d.c || Hac(d, c2, b);
78429 }
78430 function wbc(a, b) {
78431 var c2, d, e;
78432 d = new Bib(a.b, 0);
78433 while (d.b < d.d.gc()) {
78434 c2 = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 70));
78435 e = BD(vNb(c2, (Nyc(), Qwc)), 272);
78436 if (e == (qad(), oad)) {
78437 uib(d);
78438 Ekb(b.b, c2);
78439 wNb(c2, (wtc(), Dsc)) || yNb(c2, Dsc, a);
78440 }
78441 }
78442 }
78443 function GDc(a) {
78444 var b, c2, d, e, f2;
78445 b = sr(new Sr(ur(U_b(a).a.Kc(), new Sq())));
78446 for (e = new Sr(ur(R_b(a).a.Kc(), new Sq())); Qr(e); ) {
78447 d = BD(Rr(e), 17);
78448 c2 = d.c.i;
78449 f2 = sr(new Sr(ur(U_b(c2).a.Kc(), new Sq())));
78450 b = $wnd.Math.max(b, f2);
78451 }
78452 return meb(b);
78453 }
78454 function rUc(a, b, c2) {
78455 var d, e, f2, g;
78456 Odd(c2, "Processor arrange node", 1);
78457 e = null;
78458 f2 = new Psb();
78459 d = Jsb(b.b, 0);
78460 while (!e && d.b != d.d.c) {
78461 g = BD(Xsb(d), 86);
78462 Ccb(DD(vNb(g, (mTc(), jTc)))) && (e = g);
78463 }
78464 Gsb(f2, e, f2.c.b, f2.c);
78465 qUc(a, f2, Udd(c2, 1));
78466 Qdd(c2);
78467 }
78468 function Ffd(a, b, c2) {
78469 var d, e, f2;
78470 d = BD(hkd(a, (Y9c(), w8c)), 21);
78471 e = 0;
78472 f2 = 0;
78473 b.a > c2.a && (d.Hc((i8c(), c8c)) ? e = (b.a - c2.a) / 2 : d.Hc(e8c) && (e = b.a - c2.a));
78474 b.b > c2.b && (d.Hc((i8c(), g8c)) ? f2 = (b.b - c2.b) / 2 : d.Hc(f8c) && (f2 = b.b - c2.b));
78475 Efd(a, e, f2);
78476 }
78477 function aod(a, b, c2, d, e, f2, g, h, i3, j, k, l, m) {
78478 JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 4);
78479 pnd(a, c2);
78480 a.f = g;
78481 dJd(a, h);
78482 fJd(a, i3);
78483 ZId(a, j);
78484 eJd(a, k);
78485 CId(a, l);
78486 aJd(a, m);
78487 BId(a, true);
78488 AId(a, e);
78489 a.ok(f2);
78490 yId(a, b);
78491 d != null && (a.i = null, _Id(a, d));
78492 }
78493 function PRd(a) {
78494 var b, c2;
78495 if (a.f) {
78496 while (a.n > 0) {
78497 b = BD(a.k.Xb(a.n - 1), 72);
78498 c2 = b.ak();
78499 if (JD(c2, 99) && (BD(c2, 18).Bb & ote) != 0 && (!a.e || c2.Gj() != x2 || c2.aj() != 0) && b.dd() != null) {
78500 return true;
78501 } else {
78502 --a.n;
78503 }
78504 }
78505 return false;
78506 } else {
78507 return a.n > 0;
78508 }
78509 }
78510 function Jb(a, b, c2) {
78511 if (a < 0) {
78512 return hc(The, OC(GC(SI, 1), Uhe, 1, 5, [c2, meb(a)]));
78513 } else if (b < 0) {
78514 throw vbb(new Wdb(Vhe + b));
78515 } else {
78516 return hc("%s (%s) must not be greater than size (%s)", OC(GC(SI, 1), Uhe, 1, 5, [c2, meb(a), meb(b)]));
78517 }
78518 }
78519 function Llb(a, b, c2, d, e, f2) {
78520 var g, h, i3, j;
78521 g = d - c2;
78522 if (g < 7) {
78523 Ilb(b, c2, d, f2);
78524 return;
78525 }
78526 i3 = c2 + e;
78527 h = d + e;
78528 j = i3 + (h - i3 >> 1);
78529 Llb(b, a, i3, j, -e, f2);
78530 Llb(b, a, j, h, -e, f2);
78531 if (f2.ue(a[j - 1], a[j]) <= 0) {
78532 while (c2 < d) {
78533 NC(b, c2++, a[i3++]);
78534 }
78535 return;
78536 }
78537 Jlb(a, i3, j, h, b, c2, d, f2);
78538 }
78539 function nEb(a, b) {
78540 var c2, d, e;
78541 e = new Rkb();
78542 for (d = new olb(a.c.a.b); d.a < d.c.c.length; ) {
78543 c2 = BD(mlb(d), 57);
78544 if (b.Lb(c2)) {
78545 Ekb(e, new BEb(c2, true));
78546 Ekb(e, new BEb(c2, false));
78547 }
78548 }
78549 tEb(a.e);
78550 kDb(e, a.d, new amb(OC(GC(JM, 1), Uhe, 679, 0, [a.e])));
78551 }
78552 function gnc(a, b) {
78553 var c2, d, e, f2, g, h, i3;
78554 i3 = b.d;
78555 e = b.b.j;
78556 for (h = new olb(i3); h.a < h.c.c.length; ) {
78557 g = BD(mlb(h), 101);
78558 f2 = KC(sbb, dle, 25, e.c.length, 16, 1);
78559 Rhb(a.b, g, f2);
78560 c2 = g.a.d.p - 1;
78561 d = g.c.d.p;
78562 while (c2 != d) {
78563 c2 = (c2 + 1) % e.c.length;
78564 f2[c2] = true;
78565 }
78566 }
78567 }
78568 function tOc(a, b) {
78569 a.r = new uOc(a.p);
78570 sOc(a.r, a);
78571 ye(a.r.j, a.j);
78572 Osb(a.j);
78573 Dsb(a.j, b);
78574 Dsb(a.r.e, b);
78575 lOc(a);
78576 lOc(a.r);
78577 while (a.f.c.length != 0) {
78578 AOc(BD(Ikb(a.f, 0), 129));
78579 }
78580 while (a.k.c.length != 0) {
78581 AOc(BD(Ikb(a.k, 0), 129));
78582 }
78583 return a.r;
78584 }
78585 function yid(a, b, c2) {
78586 var d, e, f2;
78587 e = XKd(a.Tg(), b);
78588 d = b - a.Ah();
78589 if (d < 0) {
78590 if (!e) {
78591 throw vbb(new Wdb(mte + b + nte));
78592 } else if (e.Ij()) {
78593 f2 = a.Yg(e);
78594 f2 >= 0 ? a.sh(f2, c2) : uid(a, e, c2);
78595 } else {
78596 throw vbb(new Wdb(ite + e.ne() + jte));
78597 }
78598 } else {
78599 did(a, d, e, c2);
78600 }
78601 }
78602 function q6d(b) {
78603 var c2, d, e, f2;
78604 d = BD(b, 49).qh();
78605 if (d) {
78606 try {
78607 e = null;
78608 c2 = nUd((yFd(), xFd), LEd(MEd(d)));
78609 if (c2) {
78610 f2 = c2.rh();
78611 !!f2 && (e = f2.Wk(tfb(d.e)));
78612 }
78613 if (!!e && e != b) {
78614 return q6d(e);
78615 }
78616 } catch (a) {
78617 a = ubb(a);
78618 if (!JD(a, 60))
78619 throw vbb(a);
78620 }
78621 }
78622 return b;
78623 }
78624 function jrb(a, b, c2) {
78625 var d, e, f2, g;
78626 g = b == null ? 0 : a.b.se(b);
78627 e = (d = a.a.get(g), d == null ? new Array() : d);
78628 if (e.length == 0) {
78629 a.a.set(g, e);
78630 } else {
78631 f2 = grb(a, b, e);
78632 if (f2) {
78633 return f2.ed(c2);
78634 }
78635 }
78636 NC(e, e.length, new pjb(b, c2));
78637 ++a.c;
78638 zpb(a.b);
78639 return null;
78640 }
78641 function YUc(a, b) {
78642 var c2, d;
78643 H2c(a.a);
78644 K2c(a.a, (PUc(), NUc), NUc);
78645 K2c(a.a, OUc, OUc);
78646 d = new j3c();
78647 e3c(d, OUc, (tVc(), sVc));
78648 PD(hkd(b, (ZWc(), LWc))) !== PD((pWc(), mWc)) && e3c(d, OUc, qVc);
78649 e3c(d, OUc, rVc);
78650 E2c(a.a, d);
78651 c2 = F2c(a.a, b);
78652 return c2;
78653 }
78654 function uC(a) {
78655 if (!a) {
78656 return OB(), NB;
78657 }
78658 var b = a.valueOf ? a.valueOf() : a;
78659 if (b !== a) {
78660 var c2 = qC[typeof b];
78661 return c2 ? c2(b) : xC(typeof b);
78662 } else if (a instanceof Array || a instanceof $wnd.Array) {
78663 return new xB(a);
78664 } else {
78665 return new fC(a);
78666 }
78667 }
78668 function RJb(a, b, c2) {
78669 var d, e, f2;
78670 f2 = a.o;
78671 d = BD(Mpb(a.p, c2), 244);
78672 e = d.i;
78673 e.b = gIb(d);
78674 e.a = fIb(d);
78675 e.b = $wnd.Math.max(e.b, f2.a);
78676 e.b > f2.a && !b && (e.b = f2.a);
78677 e.c = -(e.b - f2.a) / 2;
78678 switch (c2.g) {
78679 case 1:
78680 e.d = -e.a;
78681 break;
78682 case 3:
78683 e.d = f2.b;
78684 }
78685 hIb(d);
78686 iIb(d);
78687 }
78688 function SJb(a, b, c2) {
78689 var d, e, f2;
78690 f2 = a.o;
78691 d = BD(Mpb(a.p, c2), 244);
78692 e = d.i;
78693 e.b = gIb(d);
78694 e.a = fIb(d);
78695 e.a = $wnd.Math.max(e.a, f2.b);
78696 e.a > f2.b && !b && (e.a = f2.b);
78697 e.d = -(e.a - f2.b) / 2;
78698 switch (c2.g) {
78699 case 4:
78700 e.c = -e.b;
78701 break;
78702 case 2:
78703 e.c = f2.a;
78704 }
78705 hIb(d);
78706 iIb(d);
78707 }
78708 function Jgc(a, b) {
78709 var c2, d, e, f2, g;
78710 if (b.dc()) {
78711 return;
78712 }
78713 e = BD(b.Xb(0), 128);
78714 if (b.gc() == 1) {
78715 Igc(a, e, e, 1, 0, b);
78716 return;
78717 }
78718 c2 = 1;
78719 while (c2 < b.gc()) {
78720 if (e.j || !e.o) {
78721 f2 = Ogc(b, c2);
78722 if (f2) {
78723 d = BD(f2.a, 19).a;
78724 g = BD(f2.b, 128);
78725 Igc(a, e, g, c2, d, b);
78726 c2 = d + 1;
78727 e = g;
78728 }
78729 }
78730 }
78731 }
78732 function mlc(a) {
78733 var b, c2, d, e, f2, g;
78734 g = new Tkb(a.d);
78735 Okb(g, new Qlc());
78736 b = (Alc(), OC(GC(KV, 1), Kie, 270, 0, [tlc, wlc, slc, zlc, vlc, ulc, ylc, xlc]));
78737 c2 = 0;
78738 for (f2 = new olb(g); f2.a < f2.c.c.length; ) {
78739 e = BD(mlb(f2), 101);
78740 d = b[c2 % b.length];
78741 olc(e, d);
78742 ++c2;
78743 }
78744 }
78745 function o6c(a, b) {
78746 i6c();
78747 var c2, d, e, f2;
78748 if (b.b < 2) {
78749 return false;
78750 }
78751 f2 = Jsb(b, 0);
78752 c2 = BD(Xsb(f2), 8);
78753 d = c2;
78754 while (f2.b != f2.d.c) {
78755 e = BD(Xsb(f2), 8);
78756 if (!(m6c(a, d) && m6c(a, e))) {
78757 return false;
78758 }
78759 d = e;
78760 }
78761 if (!(m6c(a, d) && m6c(a, c2))) {
78762 return false;
78763 }
78764 return true;
78765 }
78766 function hrd(a, b) {
78767 var c2, d, e, f2, g, h, i3, j, k, l;
78768 k = null;
78769 l = a;
78770 g = Xpd(l, "x");
78771 c2 = new Krd(b);
78772 Gqd(c2.a, g);
78773 h = Xpd(l, "y");
78774 d = new Lrd(b);
78775 Hqd(d.a, h);
78776 i3 = Xpd(l, Gte);
78777 e = new Mrd(b);
78778 Iqd(e.a, i3);
78779 j = Xpd(l, Fte);
78780 f2 = new Nrd(b);
78781 k = (Jqd(f2.a, j), j);
78782 return k;
78783 }
78784 function XMd(a, b) {
78785 TMd(a, b);
78786 (a.b & 1) != 0 && (a.a.a = null);
78787 (a.b & 2) != 0 && (a.a.f = null);
78788 if ((a.b & 4) != 0) {
78789 a.a.g = null;
78790 a.a.i = null;
78791 }
78792 if ((a.b & 16) != 0) {
78793 a.a.d = null;
78794 a.a.e = null;
78795 }
78796 (a.b & 8) != 0 && (a.a.b = null);
78797 if ((a.b & 32) != 0) {
78798 a.a.j = null;
78799 a.a.c = null;
78800 }
78801 }
78802 function l0d(b, c2) {
78803 var d, e, f2;
78804 f2 = 0;
78805 if (c2.length > 0) {
78806 try {
78807 f2 = Icb(c2, Rie, Ohe);
78808 } catch (a) {
78809 a = ubb(a);
78810 if (JD(a, 127)) {
78811 e = a;
78812 throw vbb(new rFd(e));
78813 } else
78814 throw vbb(a);
78815 }
78816 }
78817 d = (!b.a && (b.a = new z0d(b)), b.a);
78818 return f2 < d.i && f2 >= 0 ? BD(qud(d, f2), 56) : null;
78819 }
78820 function Ib(a, b) {
78821 if (a < 0) {
78822 return hc(The, OC(GC(SI, 1), Uhe, 1, 5, ["index", meb(a)]));
78823 } else if (b < 0) {
78824 throw vbb(new Wdb(Vhe + b));
78825 } else {
78826 return hc("%s (%s) must be less than size (%s)", OC(GC(SI, 1), Uhe, 1, 5, ["index", meb(a), meb(b)]));
78827 }
78828 }
78829 function Slb(a) {
78830 var b, c2, d, e, f2;
78831 if (a == null) {
78832 return Xhe;
78833 }
78834 f2 = new xwb(She, "[", "]");
78835 for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
78836 b = c2[d];
78837 !f2.a ? f2.a = new Wfb(f2.d) : Qfb(f2.a, f2.b);
78838 Nfb(f2.a, "" + b);
78839 }
78840 return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
78841 }
78842 function Tlb(a) {
78843 var b, c2, d, e, f2;
78844 if (a == null) {
78845 return Xhe;
78846 }
78847 f2 = new xwb(She, "[", "]");
78848 for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
78849 b = c2[d];
78850 !f2.a ? f2.a = new Wfb(f2.d) : Qfb(f2.a, f2.b);
78851 Nfb(f2.a, "" + b);
78852 }
78853 return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
78854 }
78855 function Ulb(a) {
78856 var b, c2, d, e, f2;
78857 if (a == null) {
78858 return Xhe;
78859 }
78860 f2 = new xwb(She, "[", "]");
78861 for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
78862 b = c2[d];
78863 !f2.a ? f2.a = new Wfb(f2.d) : Qfb(f2.a, f2.b);
78864 Nfb(f2.a, "" + b);
78865 }
78866 return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
78867 }
78868 function Xlb(a) {
78869 var b, c2, d, e, f2;
78870 if (a == null) {
78871 return Xhe;
78872 }
78873 f2 = new xwb(She, "[", "]");
78874 for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
78875 b = c2[d];
78876 !f2.a ? f2.a = new Wfb(f2.d) : Qfb(f2.a, f2.b);
78877 Nfb(f2.a, "" + b);
78878 }
78879 return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
78880 }
78881 function bub(a, b) {
78882 var c2, d, e, f2, g, h;
78883 c2 = a.b.c.length;
78884 e = Ikb(a.b, b);
78885 while (b * 2 + 1 < c2) {
78886 d = (f2 = 2 * b + 1, g = f2 + 1, h = f2, g < c2 && a.a.ue(Ikb(a.b, g), Ikb(a.b, f2)) < 0 && (h = g), h);
78887 if (a.a.ue(e, Ikb(a.b, d)) < 0) {
78888 break;
78889 }
78890 Nkb(a.b, b, Ikb(a.b, d));
78891 b = d;
78892 }
78893 Nkb(a.b, b, e);
78894 }
78895 function $Bb(a, b, c2, d, e, f2) {
78896 var g, h, i3, j, k;
78897 if (PD(a) === PD(c2)) {
78898 a = a.slice(b, b + e);
78899 b = 0;
78900 }
78901 i3 = c2;
78902 for (h = b, j = b + e; h < j; ) {
78903 g = $wnd.Math.min(h + 1e4, j);
78904 e = g - h;
78905 k = a.slice(h, g);
78906 k.splice(0, 0, d, f2 ? e : 0);
78907 Array.prototype.splice.apply(i3, k);
78908 h = g;
78909 d += e;
78910 }
78911 }
78912 function xGb(a, b, c2) {
78913 var d, e;
78914 d = c2.d;
78915 e = c2.e;
78916 if (a.g[d.d] <= a.i[b.d] && a.i[b.d] <= a.i[d.d] && a.g[e.d] <= a.i[b.d] && a.i[b.d] <= a.i[e.d]) {
78917 if (a.i[d.d] < a.i[e.d]) {
78918 return false;
78919 }
78920 return true;
78921 }
78922 if (a.i[d.d] < a.i[e.d]) {
78923 return true;
78924 }
78925 return false;
78926 }
78927 function cRb(a) {
78928 var b, c2, d, e, f2, g, h;
78929 d = a.a.c.length;
78930 if (d > 0) {
78931 g = a.c.d;
78932 h = a.d.d;
78933 e = Y6c(c7c(new f7c(h.a, h.b), g), 1 / (d + 1));
78934 f2 = new f7c(g.a, g.b);
78935 for (c2 = new olb(a.a); c2.a < c2.c.c.length; ) {
78936 b = BD(mlb(c2), 559);
78937 b.d.a = f2.a;
78938 b.d.b = f2.b;
78939 P6c(f2, e);
78940 }
78941 }
78942 }
78943 function YNb(a, b, c2) {
78944 var d, e, f2, g, h, i3;
78945 i3 = Pje;
78946 for (f2 = new olb(wOb(a.b)); f2.a < f2.c.c.length; ) {
78947 e = BD(mlb(f2), 168);
78948 for (h = new olb(wOb(b.b)); h.a < h.c.c.length; ) {
78949 g = BD(mlb(h), 168);
78950 d = p6c(e.a, e.b, g.a, g.b, c2);
78951 i3 = $wnd.Math.min(i3, d);
78952 }
78953 }
78954 return i3;
78955 }
78956 function G0b(a, b) {
78957 if (!b) {
78958 throw vbb(new Geb());
78959 }
78960 a.j = b;
78961 if (!a.d) {
78962 switch (a.j.g) {
78963 case 1:
78964 a.a.a = a.o.a / 2;
78965 a.a.b = 0;
78966 break;
78967 case 2:
78968 a.a.a = a.o.a;
78969 a.a.b = a.o.b / 2;
78970 break;
78971 case 3:
78972 a.a.a = a.o.a / 2;
78973 a.a.b = a.o.b;
78974 break;
78975 case 4:
78976 a.a.a = 0;
78977 a.a.b = a.o.b / 2;
78978 }
78979 }
78980 }
78981 function dfc(a, b) {
78982 var c2, d, e;
78983 if (JD(b.g, 10) && BD(b.g, 10).k == (j0b(), e0b)) {
78984 return Pje;
78985 }
78986 e = ugc(b);
78987 if (e) {
78988 return $wnd.Math.max(0, a.b / 2 - 0.5);
78989 }
78990 c2 = tgc(b);
78991 if (c2) {
78992 d = Edb(ED(pBc(c2, (Nyc(), vyc))));
78993 return $wnd.Math.max(0, d / 2 - 0.5);
78994 }
78995 return Pje;
78996 }
78997 function ffc(a, b) {
78998 var c2, d, e;
78999 if (JD(b.g, 10) && BD(b.g, 10).k == (j0b(), e0b)) {
79000 return Pje;
79001 }
79002 e = ugc(b);
79003 if (e) {
79004 return $wnd.Math.max(0, a.b / 2 - 0.5);
79005 }
79006 c2 = tgc(b);
79007 if (c2) {
79008 d = Edb(ED(pBc(c2, (Nyc(), vyc))));
79009 return $wnd.Math.max(0, d / 2 - 0.5);
79010 }
79011 return Pje;
79012 }
79013 function xic(a) {
79014 var b, c2, d, e, f2, g;
79015 g = CHc(a.d, a.e);
79016 for (f2 = g.Kc(); f2.Ob(); ) {
79017 e = BD(f2.Pb(), 11);
79018 d = a.e == (Ucd(), Tcd) ? e.e : e.g;
79019 for (c2 = new olb(d); c2.a < c2.c.c.length; ) {
79020 b = BD(mlb(c2), 17);
79021 if (!OZb(b) && b.c.i.c != b.d.i.c) {
79022 tic(a, b);
79023 ++a.f;
79024 ++a.c;
79025 }
79026 }
79027 }
79028 }
79029 function tpc(a, b) {
79030 var c2, d;
79031 if (b.dc()) {
79032 return mmb(), mmb(), jmb;
79033 }
79034 d = new Rkb();
79035 Ekb(d, meb(Rie));
79036 for (c2 = 1; c2 < a.f; ++c2) {
79037 a.a == null && Toc(a);
79038 a.a[c2] && Ekb(d, meb(c2));
79039 }
79040 if (d.c.length == 1) {
79041 return mmb(), mmb(), jmb;
79042 }
79043 Ekb(d, meb(Ohe));
79044 return spc(b, d);
79045 }
79046 function MJc(a, b) {
79047 var c2, d, e, f2, g, h, i3;
79048 g = b.c.i.k != (j0b(), h0b);
79049 i3 = g ? b.d : b.c;
79050 c2 = MZb(b, i3).i;
79051 e = BD(Ohb(a.k, i3), 121);
79052 d = a.i[c2.p].a;
79053 if (S_b(i3.i) < (!c2.c ? -1 : Jkb(c2.c.a, c2, 0))) {
79054 f2 = e;
79055 h = d;
79056 } else {
79057 f2 = d;
79058 h = e;
79059 }
79060 AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 4), f2), h));
79061 }
79062 function oqd(a, b, c2) {
79063 var d, e, f2, g, h, i3;
79064 if (c2) {
79065 e = c2.a.length;
79066 d = new Yge(e);
79067 for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
79068 g = BD(h.Pb(), 19);
79069 i3 = Wqd(a, Vpd(tB(c2, g.a)));
79070 if (i3) {
79071 f2 = (!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b);
79072 wtd(f2, i3);
79073 }
79074 }
79075 }
79076 }
79077 function pqd(a, b, c2) {
79078 var d, e, f2, g, h, i3;
79079 if (c2) {
79080 e = c2.a.length;
79081 d = new Yge(e);
79082 for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
79083 g = BD(h.Pb(), 19);
79084 i3 = Wqd(a, Vpd(tB(c2, g.a)));
79085 if (i3) {
79086 f2 = (!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c);
79087 wtd(f2, i3);
79088 }
79089 }
79090 }
79091 }
79092 function po(a, b, c2) {
79093 var d, e;
79094 d = b.a & a.f;
79095 b.b = a.b[d];
79096 a.b[d] = b;
79097 e = b.f & a.f;
79098 b.d = a.c[e];
79099 a.c[e] = b;
79100 if (!c2) {
79101 b.e = a.e;
79102 b.c = null;
79103 !a.e ? a.a = b : a.e.c = b;
79104 a.e = b;
79105 } else {
79106 b.e = c2.e;
79107 !b.e ? a.a = b : b.e.c = b;
79108 b.c = c2.c;
79109 !b.c ? a.e = b : b.c.e = b;
79110 }
79111 ++a.i;
79112 ++a.g;
79113 }
79114 function qr(a) {
79115 var b, c2, d;
79116 b = a.Pb();
79117 if (!a.Ob()) {
79118 return b;
79119 }
79120 d = Pfb(Qfb(new Ufb(), "expected one element but was: <"), b);
79121 for (c2 = 0; c2 < 4 && a.Ob(); c2++) {
79122 Pfb((d.a += She, d), a.Pb());
79123 }
79124 a.Ob() && (d.a += ", ...", d);
79125 d.a += ">";
79126 throw vbb(new Wdb(d.a));
79127 }
79128 function lt(a, b) {
79129 var c2;
79130 b.d ? b.d.b = b.b : a.a = b.b;
79131 b.b ? b.b.d = b.d : a.e = b.d;
79132 if (!b.e && !b.c) {
79133 c2 = BD(Thb(a.b, b.a), 283);
79134 c2.a = 0;
79135 ++a.c;
79136 } else {
79137 c2 = BD(Ohb(a.b, b.a), 283);
79138 --c2.a;
79139 !b.e ? c2.b = b.c : b.e.c = b.c;
79140 !b.c ? c2.c = b.e : b.c.e = b.e;
79141 }
79142 --a.d;
79143 }
79144 function OA(a) {
79145 var b, c2;
79146 c2 = -a.a;
79147 b = OC(GC(TD, 1), $ie, 25, 15, [43, 48, 48, 48, 48]);
79148 if (c2 < 0) {
79149 b[0] = 45;
79150 c2 = -c2;
79151 }
79152 b[1] = b[1] + ((c2 / 60 | 0) / 10 | 0) & aje;
79153 b[2] = b[2] + (c2 / 60 | 0) % 10 & aje;
79154 b[3] = b[3] + (c2 % 60 / 10 | 0) & aje;
79155 b[4] = b[4] + c2 % 10 & aje;
79156 return zfb(b, 0, b.length);
79157 }
79158 function uRb(a, b, c2) {
79159 var d, e;
79160 d = b.d;
79161 e = c2.d;
79162 while (d.a - e.a == 0 && d.b - e.b == 0) {
79163 d.a += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5;
79164 d.b += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5;
79165 e.a += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5;
79166 e.b += Cub(a, 26) * ike + Cub(a, 27) * jke - 0.5;
79167 }
79168 }
79169 function N_b(a) {
79170 var b, c2, d, e;
79171 a.g = new Rpb(BD(Qb(F1), 290));
79172 d = 0;
79173 c2 = (Ucd(), Acd);
79174 b = 0;
79175 for (; b < a.j.c.length; b++) {
79176 e = BD(Ikb(a.j, b), 11);
79177 if (e.j != c2) {
79178 d != b && Npb(a.g, c2, new vgd(meb(d), meb(b)));
79179 c2 = e.j;
79180 d = b;
79181 }
79182 }
79183 Npb(a.g, c2, new vgd(meb(d), meb(b)));
79184 }
79185 function d4b(a) {
79186 var b, c2, d, e, f2, g, h;
79187 d = 0;
79188 for (c2 = new olb(a.b); c2.a < c2.c.c.length; ) {
79189 b = BD(mlb(c2), 29);
79190 for (f2 = new olb(b.a); f2.a < f2.c.c.length; ) {
79191 e = BD(mlb(f2), 10);
79192 e.p = d++;
79193 for (h = new olb(e.j); h.a < h.c.c.length; ) {
79194 g = BD(mlb(h), 11);
79195 g.p = d++;
79196 }
79197 }
79198 }
79199 }
79200 function qPc(a, b, c2, d, e) {
79201 var f2, g, h, i3, j;
79202 if (b) {
79203 for (h = b.Kc(); h.Ob(); ) {
79204 g = BD(h.Pb(), 10);
79205 for (j = X_b(g, (KAc(), IAc), c2).Kc(); j.Ob(); ) {
79206 i3 = BD(j.Pb(), 11);
79207 f2 = BD(Wd(irb(e.f, i3)), 112);
79208 if (!f2) {
79209 f2 = new uOc(a.d);
79210 d.c[d.c.length] = f2;
79211 jOc(f2, i3, e);
79212 }
79213 }
79214 }
79215 }
79216 }
79217 function vid(a, b) {
79218 var c2, d, e;
79219 e = e1d((O6d(), M6d), a.Tg(), b);
79220 if (e) {
79221 Q6d();
79222 BD(e, 66).Oj() || (e = _1d(q1d(M6d, e)));
79223 d = (c2 = a.Yg(e), BD(c2 >= 0 ? a._g(c2, true, true) : sid(a, e, true), 153));
79224 BD(d, 215).ol(b);
79225 } else {
79226 throw vbb(new Wdb(ite + b.ne() + jte));
79227 }
79228 }
79229 function ugb(a) {
79230 var b, c2;
79231 if (a > -140737488355328 && a < 140737488355328) {
79232 if (a == 0) {
79233 return 0;
79234 }
79235 b = a < 0;
79236 b && (a = -a);
79237 c2 = QD($wnd.Math.floor($wnd.Math.log(a) / 0.6931471805599453));
79238 (!b || a != $wnd.Math.pow(2, c2)) && ++c2;
79239 return c2;
79240 }
79241 return vgb(Cbb(a));
79242 }
79243 function QOc(a) {
79244 var b, c2, d, e, f2, g, h;
79245 f2 = new zsb();
79246 for (c2 = new olb(a); c2.a < c2.c.c.length; ) {
79247 b = BD(mlb(c2), 129);
79248 g = b.a;
79249 h = b.b;
79250 if (f2.a._b(g) || f2.a._b(h)) {
79251 continue;
79252 }
79253 e = g;
79254 d = h;
79255 if (g.e.b + g.j.b > 2 && h.e.b + h.j.b <= 2) {
79256 e = h;
79257 d = g;
79258 }
79259 f2.a.zc(e, f2);
79260 e.q = d;
79261 }
79262 return f2;
79263 }
79264 function K5b(a, b) {
79265 var c2, d, e;
79266 d = new b0b(a);
79267 tNb(d, b);
79268 yNb(d, (wtc(), Gsc), b);
79269 yNb(d, (Nyc(), Vxc), (dcd(), $bd));
79270 yNb(d, mwc, (F7c(), B7c));
79271 __b(d, (j0b(), e0b));
79272 c2 = new H0b();
79273 F0b(c2, d);
79274 G0b(c2, (Ucd(), Tcd));
79275 e = new H0b();
79276 F0b(e, d);
79277 G0b(e, zcd);
79278 return d;
79279 }
79280 function Spc(a) {
79281 switch (a.g) {
79282 case 0:
79283 return new fGc((rGc(), oGc));
79284 case 1:
79285 return new CFc();
79286 case 2:
79287 return new fHc();
79288 default:
79289 throw vbb(new Wdb("No implementation is available for the crossing minimizer " + (a.f != null ? a.f : "" + a.g)));
79290 }
79291 }
79292 function tDc(a, b) {
79293 var c2, d, e, f2, g;
79294 a.c[b.p] = true;
79295 Ekb(a.a, b);
79296 for (g = new olb(b.j); g.a < g.c.c.length; ) {
79297 f2 = BD(mlb(g), 11);
79298 for (d = new b1b(f2.b); llb(d.a) || llb(d.b); ) {
79299 c2 = BD(llb(d.a) ? mlb(d.a) : mlb(d.b), 17);
79300 e = uDc(f2, c2).i;
79301 a.c[e.p] || tDc(a, e);
79302 }
79303 }
79304 }
79305 function _Uc(a) {
79306 var b, c2, d, e, f2, g, h;
79307 g = 0;
79308 for (c2 = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); c2.e != c2.i.gc(); ) {
79309 b = BD(Dyd(c2), 33);
79310 h = b.g;
79311 e = b.f;
79312 d = $wnd.Math.sqrt(h * h + e * e);
79313 g = $wnd.Math.max(d, g);
79314 f2 = _Uc(b);
79315 g = $wnd.Math.max(f2, g);
79316 }
79317 return g;
79318 }
79319 function rcd() {
79320 rcd = ccb;
79321 pcd = new scd("OUTSIDE", 0);
79322 ncd = new scd("INSIDE", 1);
79323 ocd = new scd("NEXT_TO_PORT_IF_POSSIBLE", 2);
79324 mcd = new scd("ALWAYS_SAME_SIDE", 3);
79325 lcd = new scd("ALWAYS_OTHER_SAME_SIDE", 4);
79326 qcd = new scd("SPACE_EFFICIENT", 5);
79327 }
79328 function drd(a, b, c2) {
79329 var d, e, f2, h, i3, j;
79330 d = Tqd(a, (e = (Fhd(), f2 = new apd(), f2), !!c2 && $od(e, c2), e), b);
79331 Lkd(d, _pd(b, Vte));
79332 grd(b, d);
79333 brd(b, d);
79334 hrd(b, d);
79335 h = b;
79336 i3 = Ypd(h, "ports");
79337 j = new Jrd(a, d);
79338 Fqd(j.a, j.b, i3);
79339 crd(a, b, d);
79340 Zqd(a, b, d);
79341 return d;
79342 }
79343 function NA(a) {
79344 var b, c2;
79345 c2 = -a.a;
79346 b = OC(GC(TD, 1), $ie, 25, 15, [43, 48, 48, 58, 48, 48]);
79347 if (c2 < 0) {
79348 b[0] = 45;
79349 c2 = -c2;
79350 }
79351 b[1] = b[1] + ((c2 / 60 | 0) / 10 | 0) & aje;
79352 b[2] = b[2] + (c2 / 60 | 0) % 10 & aje;
79353 b[4] = b[4] + (c2 % 60 / 10 | 0) & aje;
79354 b[5] = b[5] + c2 % 10 & aje;
79355 return zfb(b, 0, b.length);
79356 }
79357 function QA(a) {
79358 var b;
79359 b = OC(GC(TD, 1), $ie, 25, 15, [71, 77, 84, 45, 48, 48, 58, 48, 48]);
79360 if (a <= 0) {
79361 b[3] = 43;
79362 a = -a;
79363 }
79364 b[4] = b[4] + ((a / 60 | 0) / 10 | 0) & aje;
79365 b[5] = b[5] + (a / 60 | 0) % 10 & aje;
79366 b[7] = b[7] + (a % 60 / 10 | 0) & aje;
79367 b[8] = b[8] + a % 10 & aje;
79368 return zfb(b, 0, b.length);
79369 }
79370 function Vlb(a) {
79371 var b, c2, d, e, f2;
79372 if (a == null) {
79373 return Xhe;
79374 }
79375 f2 = new xwb(She, "[", "]");
79376 for (c2 = a, d = 0, e = c2.length; d < e; ++d) {
79377 b = c2[d];
79378 !f2.a ? f2.a = new Wfb(f2.d) : Qfb(f2.a, f2.b);
79379 Nfb(f2.a, "" + Ubb(b));
79380 }
79381 return !f2.a ? f2.c : f2.e.length == 0 ? f2.a.a : f2.a.a + ("" + f2.e);
79382 }
79383 function DGb(a, b) {
79384 var c2, d, e;
79385 e = Ohe;
79386 for (d = new olb(LFb(b)); d.a < d.c.c.length; ) {
79387 c2 = BD(mlb(d), 213);
79388 if (c2.f && !a.c[c2.c]) {
79389 a.c[c2.c] = true;
79390 e = $wnd.Math.min(e, DGb(a, xFb(c2, b)));
79391 }
79392 }
79393 a.i[b.d] = a.j;
79394 a.g[b.d] = $wnd.Math.min(e, a.j++);
79395 return a.g[b.d];
79396 }
79397 function EKb(a, b) {
79398 var c2, d, e;
79399 for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) {
79400 d = BD(e.Pb(), 111);
79401 d.e.b = (c2 = d.b, c2.Xe((Y9c(), s9c)) ? c2.Hf() == (Ucd(), Acd) ? -c2.rf().b - Edb(ED(c2.We(s9c))) : Edb(ED(c2.We(s9c))) : c2.Hf() == (Ucd(), Acd) ? -c2.rf().b : 0);
79402 }
79403 }
79404 function LPb(a) {
79405 var b, c2, d, e, f2, g, h;
79406 c2 = IOb(a.e);
79407 f2 = Y6c(b7c(R6c(HOb(a.e)), a.d * a.a, a.c * a.b), -0.5);
79408 b = c2.a - f2.a;
79409 e = c2.b - f2.b;
79410 for (h = 0; h < a.c; h++) {
79411 d = b;
79412 for (g = 0; g < a.d; g++) {
79413 JOb(a.e, new J6c(d, e, a.a, a.b)) && aNb(a, g, h, false, true);
79414 d += a.a;
79415 }
79416 e += a.b;
79417 }
79418 }
79419 function s2c(a) {
79420 var b, c2, d;
79421 if (Ccb(DD(hkd(a, (Y9c(), M8c))))) {
79422 d = new Rkb();
79423 for (c2 = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c2); ) {
79424 b = BD(Rr(c2), 79);
79425 Qld(b) && Ccb(DD(hkd(b, N8c))) && (d.c[d.c.length] = b, true);
79426 }
79427 return d;
79428 } else {
79429 return mmb(), mmb(), jmb;
79430 }
79431 }
79432 function Vpd(a) {
79433 var b, c2;
79434 c2 = false;
79435 if (JD(a, 204)) {
79436 c2 = true;
79437 return BD(a, 204).a;
79438 }
79439 if (!c2) {
79440 if (JD(a, 258)) {
79441 b = BD(a, 258).a % 1 == 0;
79442 if (b) {
79443 c2 = true;
79444 return meb(Idb(BD(a, 258).a));
79445 }
79446 }
79447 }
79448 throw vbb(new cqd("Id must be a string or an integer: '" + a + "'."));
79449 }
79450 function k0d(a, b) {
79451 var c2, d, e, f2, g, h;
79452 f2 = null;
79453 for (e = new x0d((!a.a && (a.a = new z0d(a)), a.a)); u0d(e); ) {
79454 c2 = BD(Vud(e), 56);
79455 d = (g = c2.Tg(), h = (OKd(g), g.o), !h || !c2.mh(h) ? null : h6d(KJd(h), c2.ah(h)));
79456 if (d != null) {
79457 if (dfb(d, b)) {
79458 f2 = c2;
79459 break;
79460 }
79461 }
79462 }
79463 return f2;
79464 }
79465 function Bw(a, b, c2) {
79466 var d, e, f2, g, h;
79467 Xj(c2, "occurrences");
79468 if (c2 == 0) {
79469 return h = BD(Hv(nd(a.a), b), 14), !h ? 0 : h.gc();
79470 }
79471 g = BD(Hv(nd(a.a), b), 14);
79472 if (!g) {
79473 return 0;
79474 }
79475 f2 = g.gc();
79476 if (c2 >= f2) {
79477 g.$b();
79478 } else {
79479 e = g.Kc();
79480 for (d = 0; d < c2; d++) {
79481 e.Pb();
79482 e.Qb();
79483 }
79484 }
79485 return f2;
79486 }
79487 function ax(a, b, c2) {
79488 var d, e, f2, g;
79489 Xj(c2, "oldCount");
79490 Xj(0, "newCount");
79491 d = BD(Hv(nd(a.a), b), 14);
79492 if ((!d ? 0 : d.gc()) == c2) {
79493 Xj(0, "count");
79494 e = (f2 = BD(Hv(nd(a.a), b), 14), !f2 ? 0 : f2.gc());
79495 g = -e;
79496 g > 0 ? zh() : g < 0 && Bw(a, b, -g);
79497 return true;
79498 } else {
79499 return false;
79500 }
79501 }
79502 function fIb(a) {
79503 var b, c2, d, e, f2, g, h;
79504 h = 0;
79505 if (a.b == 0) {
79506 g = jIb(a, true);
79507 b = 0;
79508 for (d = g, e = 0, f2 = d.length; e < f2; ++e) {
79509 c2 = d[e];
79510 if (c2 > 0) {
79511 h += c2;
79512 ++b;
79513 }
79514 }
79515 b > 1 && (h += a.c * (b - 1));
79516 } else {
79517 h = Mtb(Zzb(OAb(JAb(Plb(a.a), new xIb()), new zIb())));
79518 }
79519 return h > 0 ? h + a.n.d + a.n.a : 0;
79520 }
79521 function gIb(a) {
79522 var b, c2, d, e, f2, g, h;
79523 h = 0;
79524 if (a.b == 0) {
79525 h = Mtb(Zzb(OAb(JAb(Plb(a.a), new tIb()), new vIb())));
79526 } else {
79527 g = kIb(a, true);
79528 b = 0;
79529 for (d = g, e = 0, f2 = d.length; e < f2; ++e) {
79530 c2 = d[e];
79531 if (c2 > 0) {
79532 h += c2;
79533 ++b;
79534 }
79535 }
79536 b > 1 && (h += a.c * (b - 1));
79537 }
79538 return h > 0 ? h + a.n.b + a.n.c : 0;
79539 }
79540 function MJb(a, b) {
79541 var c2, d, e, f2;
79542 f2 = BD(Mpb(a.b, b), 124);
79543 c2 = f2.a;
79544 for (e = BD(BD(Qc(a.r, b), 21), 84).Kc(); e.Ob(); ) {
79545 d = BD(e.Pb(), 111);
79546 !!d.c && (c2.a = $wnd.Math.max(c2.a, ZHb(d.c)));
79547 }
79548 if (c2.a > 0) {
79549 switch (b.g) {
79550 case 2:
79551 f2.n.c = a.s;
79552 break;
79553 case 4:
79554 f2.n.b = a.s;
79555 }
79556 }
79557 }
79558 function NQb(a, b) {
79559 var c2, d, e;
79560 c2 = BD(vNb(b, (wSb(), oSb)), 19).a - BD(vNb(a, oSb), 19).a;
79561 if (c2 == 0) {
79562 d = c7c(R6c(BD(vNb(a, (HSb(), DSb)), 8)), BD(vNb(a, ESb), 8));
79563 e = c7c(R6c(BD(vNb(b, DSb), 8)), BD(vNb(b, ESb), 8));
79564 return Kdb(d.a * d.b, e.a * e.b);
79565 }
79566 return c2;
79567 }
79568 function iRc(a, b) {
79569 var c2, d, e;
79570 c2 = BD(vNb(b, (JTc(), ETc)), 19).a - BD(vNb(a, ETc), 19).a;
79571 if (c2 == 0) {
79572 d = c7c(R6c(BD(vNb(a, (mTc(), VSc)), 8)), BD(vNb(a, WSc), 8));
79573 e = c7c(R6c(BD(vNb(b, VSc), 8)), BD(vNb(b, WSc), 8));
79574 return Kdb(d.a * d.b, e.a * e.b);
79575 }
79576 return c2;
79577 }
79578 function TZb(a) {
79579 var b, c2;
79580 c2 = new Ufb();
79581 c2.a += "e_";
79582 b = KZb(a);
79583 b != null && (c2.a += "" + b, c2);
79584 if (!!a.c && !!a.d) {
79585 Qfb((c2.a += " ", c2), C0b(a.c));
79586 Qfb(Pfb((c2.a += "[", c2), a.c.i), "]");
79587 Qfb((c2.a += gne, c2), C0b(a.d));
79588 Qfb(Pfb((c2.a += "[", c2), a.d.i), "]");
79589 }
79590 return c2.a;
79591 }
79592 function zRc(a) {
79593 switch (a.g) {
79594 case 0:
79595 return new lUc();
79596 case 1:
79597 return new sUc();
79598 case 2:
79599 return new CUc();
79600 case 3:
79601 return new IUc();
79602 default:
79603 throw vbb(new Wdb("No implementation is available for the layout phase " + (a.f != null ? a.f : "" + a.g)));
79604 }
79605 }
79606 function mfd(a, b, c2, d, e) {
79607 var f2;
79608 f2 = 0;
79609 switch (e.g) {
79610 case 1:
79611 f2 = $wnd.Math.max(0, b.b + a.b - (c2.b + d));
79612 break;
79613 case 3:
79614 f2 = $wnd.Math.max(0, -a.b - d);
79615 break;
79616 case 2:
79617 f2 = $wnd.Math.max(0, -a.a - d);
79618 break;
79619 case 4:
79620 f2 = $wnd.Math.max(0, b.a + a.a - (c2.a + d));
79621 }
79622 return f2;
79623 }
79624 function mqd(a, b, c2) {
79625 var d, e, f2, g, h;
79626 if (c2) {
79627 e = c2.a.length;
79628 d = new Yge(e);
79629 for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
79630 g = BD(h.Pb(), 19);
79631 f2 = Zpd(c2, g.a);
79632 Lte in f2.a || Mte in f2.a ? $qd(a, f2, b) : erd(a, f2, b);
79633 otd(BD(Ohb(a.b, Wpd(f2)), 79));
79634 }
79635 }
79636 }
79637 function LJd(a) {
79638 var b, c2;
79639 switch (a.b) {
79640 case -1: {
79641 return true;
79642 }
79643 case 0: {
79644 c2 = a.t;
79645 if (c2 > 1 || c2 == -1) {
79646 a.b = -1;
79647 return true;
79648 } else {
79649 b = wId(a);
79650 if (!!b && (Q6d(), b.Cj() == Bve)) {
79651 a.b = -1;
79652 return true;
79653 } else {
79654 a.b = 1;
79655 return false;
79656 }
79657 }
79658 }
79659 default:
79660 case 1: {
79661 return false;
79662 }
79663 }
79664 }
79665 function k1d(a, b) {
79666 var c2, d, e, f2, g;
79667 d = (!b.s && (b.s = new cUd(t5, b, 21, 17)), b.s);
79668 f2 = null;
79669 for (e = 0, g = d.i; e < g; ++e) {
79670 c2 = BD(qud(d, e), 170);
79671 switch ($1d(q1d(a, c2))) {
79672 case 2:
79673 case 3: {
79674 !f2 && (f2 = new Rkb());
79675 f2.c[f2.c.length] = c2;
79676 }
79677 }
79678 }
79679 return !f2 ? (mmb(), mmb(), jmb) : f2;
79680 }
79681 function tde(a, b) {
79682 var c2, d, e, f2;
79683 nde(a);
79684 if (a.c != 0 || a.a != 123)
79685 throw vbb(new mde(tvd((h0d(), Fue))));
79686 f2 = b == 112;
79687 d = a.d;
79688 c2 = gfb(a.i, 125, d);
79689 if (c2 < 0)
79690 throw vbb(new mde(tvd((h0d(), Gue))));
79691 e = qfb(a.i, d, c2);
79692 a.d = c2 + 1;
79693 return Lfe(e, f2, (a.e & 512) == 512);
79694 }
79695 function QTb(a) {
79696 var b;
79697 b = BD(vNb(a, (Nyc(), Iwc)), 314);
79698 if (b == (Rpc(), Ppc)) {
79699 throw vbb(new z2c("The hierarchy aware processor " + b + " in child node " + a + " is only allowed if the root node specifies the same hierarchical processor."));
79700 }
79701 }
79702 function dhc(a, b) {
79703 Hgc();
79704 var c2, d, e, f2, g, h;
79705 c2 = null;
79706 for (g = b.Kc(); g.Ob(); ) {
79707 f2 = BD(g.Pb(), 128);
79708 if (f2.o) {
79709 continue;
79710 }
79711 d = F6c(f2.a);
79712 e = C6c(f2.a);
79713 h = new hic(d, e, null, BD(f2.d.a.ec().Kc().Pb(), 17));
79714 Ekb(h.c, f2.a);
79715 a.c[a.c.length] = h;
79716 !!c2 && Ekb(c2.d, h);
79717 c2 = h;
79718 }
79719 }
79720 function hKd(a, b) {
79721 var c2, d, e;
79722 if (!b) {
79723 jKd(a, null);
79724 _Jd(a, null);
79725 } else if ((b.i & 4) != 0) {
79726 d = "[]";
79727 for (c2 = b.c; ; c2 = c2.c) {
79728 if ((c2.i & 4) == 0) {
79729 e = jfb((fdb(c2), c2.o + d));
79730 jKd(a, e);
79731 _Jd(a, e);
79732 break;
79733 }
79734 d += "[]";
79735 }
79736 } else {
79737 e = jfb((fdb(b), b.o));
79738 jKd(a, e);
79739 _Jd(a, e);
79740 }
79741 a.yk(b);
79742 }
79743 function b3d(a, b, c2, d, e) {
79744 var f2, g, h, i3;
79745 i3 = a3d(a, BD(e, 56));
79746 if (PD(i3) !== PD(e)) {
79747 h = BD(a.g[c2], 72);
79748 f2 = R6d(b, i3);
79749 mud(a, c2, t3d(a, c2, f2));
79750 if (oid(a.e)) {
79751 g = H2d(a, 9, f2.ak(), e, i3, d, false);
79752 Qwd(g, new pSd(a.e, 9, a.c, h, f2, d, false));
79753 Rwd(g);
79754 }
79755 return i3;
79756 }
79757 return e;
79758 }
79759 function xCc(a, b, c2) {
79760 var d, e, f2, g, h, i3;
79761 d = BD(Qc(a.c, b), 15);
79762 e = BD(Qc(a.c, c2), 15);
79763 f2 = d.Zc(d.gc());
79764 g = e.Zc(e.gc());
79765 while (f2.Sb() && g.Sb()) {
79766 h = BD(f2.Ub(), 19);
79767 i3 = BD(g.Ub(), 19);
79768 if (h != i3) {
79769 return beb(h.a, i3.a);
79770 }
79771 }
79772 return !f2.Ob() && !g.Ob() ? 0 : f2.Ob() ? 1 : -1;
79773 }
79774 function m5c(c2, d) {
79775 var e, f2, g;
79776 try {
79777 g = fs(c2.a, d);
79778 return g;
79779 } catch (b) {
79780 b = ubb(b);
79781 if (JD(b, 32)) {
79782 try {
79783 f2 = Icb(d, Rie, Ohe);
79784 e = gdb(c2.a);
79785 if (f2 >= 0 && f2 < e.length) {
79786 return e[f2];
79787 }
79788 } catch (a) {
79789 a = ubb(a);
79790 if (!JD(a, 127))
79791 throw vbb(a);
79792 }
79793 return null;
79794 } else
79795 throw vbb(b);
79796 }
79797 }
79798 function tid(a, b) {
79799 var c2, d, e;
79800 e = e1d((O6d(), M6d), a.Tg(), b);
79801 if (e) {
79802 Q6d();
79803 BD(e, 66).Oj() || (e = _1d(q1d(M6d, e)));
79804 d = (c2 = a.Yg(e), BD(c2 >= 0 ? a._g(c2, true, true) : sid(a, e, true), 153));
79805 return BD(d, 215).ll(b);
79806 } else {
79807 throw vbb(new Wdb(ite + b.ne() + lte));
79808 }
79809 }
79810 function BZd() {
79811 tZd();
79812 var a;
79813 if (sZd)
79814 return BD(nUd((yFd(), xFd), _ve), 1939);
79815 rEd(CK, new J_d());
79816 CZd();
79817 a = BD(JD(Phb((yFd(), xFd), _ve), 547) ? Phb(xFd, _ve) : new AZd(), 547);
79818 sZd = true;
79819 yZd(a);
79820 zZd(a);
79821 Rhb((JFd(), IFd), a, new EZd());
79822 Shb(xFd, _ve, a);
79823 return a;
79824 }
79825 function v2d(a, b) {
79826 var c2, d, e, f2;
79827 a.j = -1;
79828 if (oid(a.e)) {
79829 c2 = a.i;
79830 f2 = a.i != 0;
79831 lud(a, b);
79832 d = new pSd(a.e, 3, a.c, null, b, c2, f2);
79833 e = b.Qk(a.e, a.c, null);
79834 e = h3d(a, b, e);
79835 if (!e) {
79836 Uhd(a.e, d);
79837 } else {
79838 e.Ei(d);
79839 e.Fi();
79840 }
79841 } else {
79842 lud(a, b);
79843 e = b.Qk(a.e, a.c, null);
79844 !!e && e.Fi();
79845 }
79846 }
79847 function rA(a, b) {
79848 var c2, d, e;
79849 e = 0;
79850 d = b[0];
79851 if (d >= a.length) {
79852 return -1;
79853 }
79854 c2 = (BCb(d, a.length), a.charCodeAt(d));
79855 while (c2 >= 48 && c2 <= 57) {
79856 e = e * 10 + (c2 - 48);
79857 ++d;
79858 if (d >= a.length) {
79859 break;
79860 }
79861 c2 = (BCb(d, a.length), a.charCodeAt(d));
79862 }
79863 d > b[0] ? b[0] = d : e = -1;
79864 return e;
79865 }
79866 function vMb(a) {
79867 var b, c2, d, e, f2;
79868 e = BD(a.a, 19).a;
79869 f2 = BD(a.b, 19).a;
79870 c2 = e;
79871 d = f2;
79872 b = $wnd.Math.max($wnd.Math.abs(e), $wnd.Math.abs(f2));
79873 if (e <= 0 && e == f2) {
79874 c2 = 0;
79875 d = f2 - 1;
79876 } else {
79877 if (e == -b && f2 != b) {
79878 c2 = f2;
79879 d = e;
79880 f2 >= 0 && ++c2;
79881 } else {
79882 c2 = -f2;
79883 d = e;
79884 }
79885 }
79886 return new vgd(meb(c2), meb(d));
79887 }
79888 function fNb(a, b, c2, d) {
79889 var e, f2, g, h, i3, j;
79890 for (e = 0; e < b.o; e++) {
79891 f2 = e - b.j + c2;
79892 for (g = 0; g < b.p; g++) {
79893 h = g - b.k + d;
79894 if ((i3 = f2, j = h, i3 += a.j, j += a.k, i3 >= 0 && j >= 0 && i3 < a.o && j < a.p) && (!ZMb(b, e, g) && hNb(a, f2, h) || YMb(b, e, g) && !iNb(a, f2, h))) {
79895 return true;
79896 }
79897 }
79898 }
79899 return false;
79900 }
79901 function LNc(a, b, c2) {
79902 var d, e, f2, g, h;
79903 g = a.c;
79904 h = a.d;
79905 f2 = l7c(OC(GC(m1, 1), nie, 8, 0, [g.i.n, g.n, g.a])).b;
79906 e = (f2 + l7c(OC(GC(m1, 1), nie, 8, 0, [h.i.n, h.n, h.a])).b) / 2;
79907 d = null;
79908 g.j == (Ucd(), zcd) ? d = new f7c(b + g.i.c.c.a + c2, e) : d = new f7c(b - c2, e);
79909 St(a.a, 0, d);
79910 }
79911 function Qld(a) {
79912 var b, c2, d, e;
79913 b = null;
79914 for (d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)]))); Qr(d); ) {
79915 c2 = BD(Rr(d), 82);
79916 e = atd(c2);
79917 if (!b) {
79918 b = e;
79919 } else if (b != e) {
79920 return false;
79921 }
79922 }
79923 return true;
79924 }
79925 function sud(a, b, c2) {
79926 var d;
79927 ++a.j;
79928 if (b >= a.i)
79929 throw vbb(new qcb(lue + b + mue + a.i));
79930 if (c2 >= a.i)
79931 throw vbb(new qcb(nue + c2 + mue + a.i));
79932 d = a.g[c2];
79933 if (b != c2) {
79934 b < c2 ? $fb(a.g, b, a.g, b + 1, c2 - b) : $fb(a.g, c2 + 1, a.g, c2, b - c2);
79935 NC(a.g, b, d);
79936 a.ei(b, d, c2);
79937 a.ci();
79938 }
79939 return d;
79940 }
79941 function Rc(a, b, c2) {
79942 var d;
79943 d = BD(a.c.xc(b), 14);
79944 if (!d) {
79945 d = a.ic(b);
79946 if (d.Fc(c2)) {
79947 ++a.d;
79948 a.c.zc(b, d);
79949 return true;
79950 } else {
79951 throw vbb(new ycb("New Collection violated the Collection spec"));
79952 }
79953 } else if (d.Fc(c2)) {
79954 ++a.d;
79955 return true;
79956 } else {
79957 return false;
79958 }
79959 }
79960 function heb(a) {
79961 var b, c2, d;
79962 if (a < 0) {
79963 return 0;
79964 } else if (a == 0) {
79965 return 32;
79966 } else {
79967 d = -(a >> 16);
79968 b = d >> 16 & 16;
79969 c2 = 16 - b;
79970 a = a >> b;
79971 d = a - 256;
79972 b = d >> 16 & 8;
79973 c2 += b;
79974 a <<= b;
79975 d = a - Rje;
79976 b = d >> 16 & 4;
79977 c2 += b;
79978 a <<= b;
79979 d = a - oie;
79980 b = d >> 16 & 2;
79981 c2 += b;
79982 a <<= b;
79983 d = a >> 14;
79984 b = d & ~(d >> 1);
79985 return c2 + 2 - b;
79986 }
79987 }
79988 function $Pb(a) {
79989 QPb();
79990 var b, c2, d, e;
79991 PPb = new Rkb();
79992 OPb = new Lqb();
79993 NPb = new Rkb();
79994 b = (!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a);
79995 SPb(b);
79996 for (e = new Fyd(b); e.e != e.i.gc(); ) {
79997 d = BD(Dyd(e), 33);
79998 if (Jkb(PPb, d, 0) == -1) {
79999 c2 = new Rkb();
80000 Ekb(NPb, c2);
80001 TPb(d, c2);
80002 }
80003 }
80004 return NPb;
80005 }
80006 function BQb(a, b, c2) {
80007 var d, e, f2, g;
80008 a.a = c2.b.d;
80009 if (JD(b, 352)) {
80010 e = itd(BD(b, 79), false, false);
80011 f2 = ofd(e);
80012 d = new FQb(a);
80013 reb(f2, d);
80014 ifd(f2, e);
80015 b.We((Y9c(), Q8c)) != null && reb(BD(b.We(Q8c), 74), d);
80016 } else {
80017 g = BD(b, 470);
80018 g.Hg(g.Dg() + a.a.a);
80019 g.Ig(g.Eg() + a.a.b);
80020 }
80021 }
80022 function _5b(a, b) {
80023 var c2, d, e, f2, g, h, i3, j;
80024 j = Edb(ED(vNb(b, (Nyc(), zyc))));
80025 i3 = a[0].n.a + a[0].o.a + a[0].d.c + j;
80026 for (h = 1; h < a.length; h++) {
80027 d = a[h].n;
80028 e = a[h].o;
80029 c2 = a[h].d;
80030 f2 = d.a - c2.b - i3;
80031 f2 < 0 && (d.a -= f2);
80032 g = b.f;
80033 g.a = $wnd.Math.max(g.a, d.a + e.a);
80034 i3 = d.a + e.a + c2.c + j;
80035 }
80036 }
80037 function D$c(a, b) {
80038 var c2, d, e, f2, g, h;
80039 d = BD(BD(Ohb(a.g, b.a), 46).a, 65);
80040 e = BD(BD(Ohb(a.g, b.b), 46).a, 65);
80041 f2 = d.b;
80042 g = e.b;
80043 c2 = z6c(f2, g);
80044 if (c2 >= 0) {
80045 return c2;
80046 }
80047 h = U6c(c7c(new f7c(g.c + g.b / 2, g.d + g.a / 2), new f7c(f2.c + f2.b / 2, f2.d + f2.a / 2)));
80048 return -(xOb(f2, g) - 1) * h;
80049 }
80050 function ufd(a, b, c2) {
80051 var d;
80052 MAb(new YAb(null, (!c2.a && (c2.a = new cUd(A2, c2, 6, 6)), new Kub(c2.a, 16))), new Mfd(a, b));
80053 MAb(new YAb(null, (!c2.n && (c2.n = new cUd(D2, c2, 1, 7)), new Kub(c2.n, 16))), new Ofd(a, b));
80054 d = BD(hkd(c2, (Y9c(), Q8c)), 74);
80055 !!d && p7c(d, a, b);
80056 }
80057 function sid(a, b, c2) {
80058 var d, e, f2;
80059 f2 = e1d((O6d(), M6d), a.Tg(), b);
80060 if (f2) {
80061 Q6d();
80062 BD(f2, 66).Oj() || (f2 = _1d(q1d(M6d, f2)));
80063 e = (d = a.Yg(f2), BD(d >= 0 ? a._g(d, true, true) : sid(a, f2, true), 153));
80064 return BD(e, 215).hl(b, c2);
80065 } else {
80066 throw vbb(new Wdb(ite + b.ne() + lte));
80067 }
80068 }
80069 function wAd(a, b, c2, d) {
80070 var e, f2, g, h, i3;
80071 e = a.d[b];
80072 if (e) {
80073 f2 = e.g;
80074 i3 = e.i;
80075 if (d != null) {
80076 for (h = 0; h < i3; ++h) {
80077 g = BD(f2[h], 133);
80078 if (g.Sh() == c2 && pb(d, g.cd())) {
80079 return g;
80080 }
80081 }
80082 } else {
80083 for (h = 0; h < i3; ++h) {
80084 g = BD(f2[h], 133);
80085 if (PD(g.cd()) === PD(d)) {
80086 return g;
80087 }
80088 }
80089 }
80090 }
80091 return null;
80092 }
80093 function Pgb(a, b) {
80094 var c2;
80095 if (b < 0) {
80096 throw vbb(new ocb("Negative exponent"));
80097 }
80098 if (b == 0) {
80099 return Cgb;
80100 } else if (b == 1 || Kgb(a, Cgb) || Kgb(a, Ggb)) {
80101 return a;
80102 }
80103 if (!Sgb(a, 0)) {
80104 c2 = 1;
80105 while (!Sgb(a, c2)) {
80106 ++c2;
80107 }
80108 return Ogb(bhb(c2 * b), Pgb(Rgb2(a, c2), b));
80109 }
80110 return Jhb(a, b);
80111 }
80112 function xlb(a, b) {
80113 var c2, d, e;
80114 if (PD(a) === PD(b)) {
80115 return true;
80116 }
80117 if (a == null || b == null) {
80118 return false;
80119 }
80120 if (a.length != b.length) {
80121 return false;
80122 }
80123 for (c2 = 0; c2 < a.length; ++c2) {
80124 d = a[c2];
80125 e = b[c2];
80126 if (!(PD(d) === PD(e) || d != null && pb(d, e))) {
80127 return false;
80128 }
80129 }
80130 return true;
80131 }
80132 function CVb(a) {
80133 nVb();
80134 var b, c2, d;
80135 this.b = mVb;
80136 this.c = (ead(), cad);
80137 this.f = (iVb(), hVb);
80138 this.a = a;
80139 zVb(this, new DVb());
80140 sVb(this);
80141 for (d = new olb(a.b); d.a < d.c.c.length; ) {
80142 c2 = BD(mlb(d), 81);
80143 if (!c2.d) {
80144 b = new gVb(OC(GC(IP, 1), Uhe, 81, 0, [c2]));
80145 Ekb(a.a, b);
80146 }
80147 }
80148 }
80149 function D3b(a, b, c2) {
80150 var d, e, f2, g, h, i3;
80151 if (!a || a.c.length == 0) {
80152 return null;
80153 }
80154 f2 = new cIb(b, !c2);
80155 for (e = new olb(a); e.a < e.c.c.length; ) {
80156 d = BD(mlb(e), 70);
80157 UHb(f2, (a$b(), new v$b(d)));
80158 }
80159 g = f2.i;
80160 g.a = (i3 = f2.n, f2.e.b + i3.d + i3.a);
80161 g.b = (h = f2.n, f2.e.a + h.b + h.c);
80162 return f2;
80163 }
80164 function O5b(a) {
80165 var b, c2, d, e, f2, g, h;
80166 h = l_b(a.a);
80167 Nlb(h, new T5b());
80168 c2 = null;
80169 for (e = h, f2 = 0, g = e.length; f2 < g; ++f2) {
80170 d = e[f2];
80171 if (d.k != (j0b(), e0b)) {
80172 break;
80173 }
80174 b = BD(vNb(d, (wtc(), Hsc)), 61);
80175 if (b != (Ucd(), Tcd) && b != zcd) {
80176 continue;
80177 }
80178 !!c2 && BD(vNb(c2, Qsc), 15).Fc(d);
80179 c2 = d;
80180 }
80181 }
80182 function YOc(a, b, c2) {
80183 var d, e, f2, g, h, i3, j;
80184 i3 = (tCb(b, a.c.length), BD(a.c[b], 329));
80185 Kkb(a, b);
80186 if (i3.b / 2 >= c2) {
80187 d = b;
80188 j = (i3.c + i3.a) / 2;
80189 g = j - c2;
80190 if (i3.c <= j - c2) {
80191 e = new bPc(i3.c, g);
80192 Dkb(a, d++, e);
80193 }
80194 h = j + c2;
80195 if (h <= i3.a) {
80196 f2 = new bPc(h, i3.a);
80197 wCb(d, a.c.length);
80198 aCb(a.c, d, f2);
80199 }
80200 }
80201 }
80202 function u0d(a) {
80203 var b;
80204 if (!a.c && a.g == null) {
80205 a.d = a.si(a.f);
80206 wtd(a, a.d);
80207 b = a.d;
80208 } else {
80209 if (a.g == null) {
80210 return true;
80211 } else if (a.i == 0) {
80212 return false;
80213 } else {
80214 b = BD(a.g[a.i - 1], 47);
80215 }
80216 }
80217 if (b == a.b && null.km >= null.jm()) {
80218 Vud(a);
80219 return u0d(a);
80220 } else {
80221 return b.Ob();
80222 }
80223 }
80224 function KTb(a, b, c2) {
80225 var d, e, f2, g, h;
80226 h = c2;
80227 !h && (h = Ydd(new Zdd(), 0));
80228 Odd(h, Vme, 1);
80229 aUb(a.c, b);
80230 g = EYb(a.a, b);
80231 if (g.gc() == 1) {
80232 MTb(BD(g.Xb(0), 37), h);
80233 } else {
80234 f2 = 1 / g.gc();
80235 for (e = g.Kc(); e.Ob(); ) {
80236 d = BD(e.Pb(), 37);
80237 MTb(d, Udd(h, f2));
80238 }
80239 }
80240 CYb(a.a, g, b);
80241 NTb(b);
80242 Qdd(h);
80243 }
80244 function qYb(a) {
80245 this.a = a;
80246 if (a.c.i.k == (j0b(), e0b)) {
80247 this.c = a.c;
80248 this.d = BD(vNb(a.c.i, (wtc(), Hsc)), 61);
80249 } else if (a.d.i.k == e0b) {
80250 this.c = a.d;
80251 this.d = BD(vNb(a.d.i, (wtc(), Hsc)), 61);
80252 } else {
80253 throw vbb(new Wdb("Edge " + a + " is not an external edge."));
80254 }
80255 }
80256 function oQd(a, b) {
80257 var c2, d, e;
80258 e = a.b;
80259 a.b = b;
80260 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, e, a.b));
80261 if (!b) {
80262 pnd(a, null);
80263 qQd(a, 0);
80264 pQd(a, null);
80265 } else if (b != a) {
80266 pnd(a, b.zb);
80267 qQd(a, b.d);
80268 c2 = (d = b.c, d == null ? b.zb : d);
80269 pQd(a, c2 == null || dfb(c2, b.zb) ? null : c2);
80270 }
80271 }
80272 function NRd(a) {
80273 var b, c2;
80274 if (a.f) {
80275 while (a.n < a.o) {
80276 b = BD(!a.j ? a.k.Xb(a.n) : a.j.pi(a.n), 72);
80277 c2 = b.ak();
80278 if (JD(c2, 99) && (BD(c2, 18).Bb & ote) != 0 && (!a.e || c2.Gj() != x2 || c2.aj() != 0) && b.dd() != null) {
80279 return true;
80280 } else {
80281 ++a.n;
80282 }
80283 }
80284 return false;
80285 } else {
80286 return a.n < a.o;
80287 }
80288 }
80289 function _i(a, b) {
80290 var c2;
80291 this.e = (im(), Qb(a), im(), nm(a));
80292 this.c = (Qb(b), nm(b));
80293 Lb(this.e.Hd().dc() == this.c.Hd().dc());
80294 this.d = Ev(this.e);
80295 this.b = Ev(this.c);
80296 c2 = IC(SI, [nie, Uhe], [5, 1], 5, [this.e.Hd().gc(), this.c.Hd().gc()], 2);
80297 this.a = c2;
80298 Ri(this);
80299 }
80300 function vz(b) {
80301 !tz && (tz = wz()), tz;
80302 var d = b.replace(/[\x00-\x1f\xad\u0600-\u0603\u06dd\u070f\u17b4\u17b5\u200b-\u200f\u2028-\u202e\u2060-\u2064\u206a-\u206f\ufeff\ufff9-\ufffb"\\]/g, function(a) {
80303 return uz(a);
80304 });
80305 return '"' + d + '"';
80306 }
80307 function cEb(a) {
80308 ODb();
80309 var b, c2;
80310 this.b = LDb;
80311 this.c = NDb;
80312 this.g = (FDb(), EDb);
80313 this.d = (ead(), cad);
80314 this.a = a;
80315 RDb(this);
80316 for (c2 = new olb(a.b); c2.a < c2.c.c.length; ) {
80317 b = BD(mlb(c2), 57);
80318 !b.a && pDb(rDb(new sDb(), OC(GC(PM, 1), Uhe, 57, 0, [b])), a);
80319 b.e = new K6c(b.d);
80320 }
80321 }
80322 function HQb(a) {
80323 var b, c2, d, e, f2, g;
80324 e = a.e.c.length;
80325 d = KC(yK, eme, 15, e, 0, 1);
80326 for (g = new olb(a.e); g.a < g.c.c.length; ) {
80327 f2 = BD(mlb(g), 144);
80328 d[f2.b] = new Psb();
80329 }
80330 for (c2 = new olb(a.c); c2.a < c2.c.c.length; ) {
80331 b = BD(mlb(c2), 282);
80332 d[b.c.b].Fc(b);
80333 d[b.d.b].Fc(b);
80334 }
80335 return d;
80336 }
80337 function fDc(a) {
80338 var b, c2, d, e, f2, g, h;
80339 h = Pu(a.c.length);
80340 for (e = new olb(a); e.a < e.c.c.length; ) {
80341 d = BD(mlb(e), 10);
80342 g = new Tqb();
80343 f2 = U_b(d);
80344 for (c2 = new Sr(ur(f2.a.Kc(), new Sq())); Qr(c2); ) {
80345 b = BD(Rr(c2), 17);
80346 b.c.i == b.d.i || Qqb(g, b.d.i);
80347 }
80348 h.c[h.c.length] = g;
80349 }
80350 return h;
80351 }
80352 function ozd(a, b) {
80353 var c2, d, e, f2, g;
80354 c2 = BD(Ajd(a.a, 4), 126);
80355 g = c2 == null ? 0 : c2.length;
80356 if (b >= g)
80357 throw vbb(new Cyd(b, g));
80358 e = c2[b];
80359 if (g == 1) {
80360 d = null;
80361 } else {
80362 d = KC($3, hve, 415, g - 1, 0, 1);
80363 $fb(c2, 0, d, 0, b);
80364 f2 = g - b - 1;
80365 f2 > 0 && $fb(c2, b + 1, d, b, f2);
80366 }
80367 b0d(a, d);
80368 a0d(a, b, e);
80369 return e;
80370 }
80371 function m8d() {
80372 m8d = ccb;
80373 k8d = BD(qud(ZKd((r8d(), q8d).qb), 6), 34);
80374 h8d = BD(qud(ZKd(q8d.qb), 3), 34);
80375 i8d = BD(qud(ZKd(q8d.qb), 4), 34);
80376 j8d = BD(qud(ZKd(q8d.qb), 5), 18);
80377 XId(k8d);
80378 XId(h8d);
80379 XId(i8d);
80380 XId(j8d);
80381 l8d = new amb(OC(GC(t5, 1), Mve, 170, 0, [k8d, h8d]));
80382 }
80383 function AJb(a, b) {
80384 var c2;
80385 this.d = new H_b();
80386 this.b = b;
80387 this.e = new g7c(b.qf());
80388 c2 = a.u.Hc((rcd(), ocd));
80389 a.u.Hc(ncd) ? a.D ? this.a = c2 && !b.If() : this.a = true : a.u.Hc(pcd) ? c2 ? this.a = !(b.zf().Kc().Ob() || b.Bf().Kc().Ob()) : this.a = false : this.a = false;
80390 }
80391 function IKb(a, b) {
80392 var c2, d, e, f2;
80393 c2 = a.o.a;
80394 for (f2 = BD(BD(Qc(a.r, b), 21), 84).Kc(); f2.Ob(); ) {
80395 e = BD(f2.Pb(), 111);
80396 e.e.a = (d = e.b, d.Xe((Y9c(), s9c)) ? d.Hf() == (Ucd(), Tcd) ? -d.rf().a - Edb(ED(d.We(s9c))) : c2 + Edb(ED(d.We(s9c))) : d.Hf() == (Ucd(), Tcd) ? -d.rf().a : c2);
80397 }
80398 }
80399 function Q1b(a, b) {
80400 var c2, d, e, f2;
80401 c2 = BD(vNb(a, (Nyc(), Lwc)), 103);
80402 f2 = BD(hkd(b, $xc), 61);
80403 e = BD(vNb(a, Vxc), 98);
80404 if (e != (dcd(), bcd) && e != ccd) {
80405 if (f2 == (Ucd(), Scd)) {
80406 f2 = lfd(b, c2);
80407 f2 == Scd && (f2 = Zcd(c2));
80408 }
80409 } else {
80410 d = M1b(b);
80411 d > 0 ? f2 = Zcd(c2) : f2 = Wcd(Zcd(c2));
80412 }
80413 jkd(b, $xc, f2);
80414 }
80415 function olc(a, b) {
80416 var c2, d, e, f2, g;
80417 g = a.j;
80418 b.a != b.b && Okb(g, new Ulc());
80419 e = g.c.length / 2 | 0;
80420 for (d = 0; d < e; d++) {
80421 f2 = (tCb(d, g.c.length), BD(g.c[d], 113));
80422 f2.c && G0b(f2.d, b.a);
80423 }
80424 for (c2 = e; c2 < g.c.length; c2++) {
80425 f2 = (tCb(c2, g.c.length), BD(g.c[c2], 113));
80426 f2.c && G0b(f2.d, b.b);
80427 }
80428 }
80429 function TGc(a, b, c2) {
80430 var d, e, f2;
80431 d = a.c[b.c.p][b.p];
80432 e = a.c[c2.c.p][c2.p];
80433 if (d.a != null && e.a != null) {
80434 f2 = Ddb(d.a, e.a);
80435 f2 < 0 ? WGc(a, b, c2) : f2 > 0 && WGc(a, c2, b);
80436 return f2;
80437 } else if (d.a != null) {
80438 WGc(a, b, c2);
80439 return -1;
80440 } else if (e.a != null) {
80441 WGc(a, c2, b);
80442 return 1;
80443 }
80444 return 0;
80445 }
80446 function swd(a, b) {
80447 var c2, d, e, f2;
80448 if (a.ej()) {
80449 c2 = a.Vi();
80450 f2 = a.fj();
80451 ++a.j;
80452 a.Hi(c2, a.oi(c2, b));
80453 d = a.Zi(3, null, b, c2, f2);
80454 if (a.bj()) {
80455 e = a.cj(b, null);
80456 if (!e) {
80457 a.$i(d);
80458 } else {
80459 e.Ei(d);
80460 e.Fi();
80461 }
80462 } else {
80463 a.$i(d);
80464 }
80465 } else {
80466 Bvd(a, b);
80467 if (a.bj()) {
80468 e = a.cj(b, null);
80469 !!e && e.Fi();
80470 }
80471 }
80472 }
80473 function D2d(a, b) {
80474 var c2, d, e, f2, g;
80475 g = S6d(a.e.Tg(), b);
80476 e = new yud();
80477 c2 = BD(a.g, 119);
80478 for (f2 = a.i; --f2 >= 0; ) {
80479 d = c2[f2];
80480 g.rl(d.ak()) && wtd(e, d);
80481 }
80482 !Yxd(a, e) && oid(a.e) && GLd(a, b.$j() ? H2d(a, 6, b, (mmb(), jmb), null, -1, false) : H2d(a, b.Kj() ? 2 : 1, b, null, null, -1, false));
80483 }
80484 function Dhb() {
80485 Dhb = ccb;
80486 var a, b;
80487 Bhb = KC(cJ, nie, 91, 32, 0, 1);
80488 Chb = KC(cJ, nie, 91, 32, 0, 1);
80489 a = 1;
80490 for (b = 0; b <= 18; b++) {
80491 Bhb[b] = ghb(a);
80492 Chb[b] = ghb(Nbb(a, b));
80493 a = Ibb(a, 5);
80494 }
80495 for (; b < Chb.length; b++) {
80496 Bhb[b] = Ogb(Bhb[b - 1], Bhb[1]);
80497 Chb[b] = Ogb(Chb[b - 1], (Hgb(), Egb));
80498 }
80499 }
80500 function K4b(a, b) {
80501 var c2, d, e, f2, g;
80502 if (a.a == (yrc(), wrc)) {
80503 return true;
80504 }
80505 f2 = b.a.c;
80506 c2 = b.a.c + b.a.b;
80507 if (b.j) {
80508 d = b.A;
80509 g = d.c.c.a - d.o.a / 2;
80510 e = f2 - (d.n.a + d.o.a);
80511 if (e > g) {
80512 return false;
80513 }
80514 }
80515 if (b.q) {
80516 d = b.C;
80517 g = d.c.c.a - d.o.a / 2;
80518 e = d.n.a - c2;
80519 if (e > g) {
80520 return false;
80521 }
80522 }
80523 return true;
80524 }
80525 function wcc(a, b) {
80526 var c2;
80527 Odd(b, "Partition preprocessing", 1);
80528 c2 = BD(GAb(JAb(LAb(JAb(new YAb(null, new Kub(a.a, 16)), new Acc()), new Ccc()), new Ecc()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
80529 MAb(c2.Oc(), new Gcc());
80530 Qdd(b);
80531 }
80532 function DMc(a) {
80533 wMc();
80534 var b, c2, d, e, f2, g, h;
80535 c2 = new $rb();
80536 for (e = new olb(a.e.b); e.a < e.c.c.length; ) {
80537 d = BD(mlb(e), 29);
80538 for (g = new olb(d.a); g.a < g.c.c.length; ) {
80539 f2 = BD(mlb(g), 10);
80540 h = a.g[f2.p];
80541 b = BD(Wrb(c2, h), 15);
80542 if (!b) {
80543 b = new Rkb();
80544 Xrb(c2, h, b);
80545 }
80546 b.Fc(f2);
80547 }
80548 }
80549 return c2;
80550 }
80551 function dRc(a, b) {
80552 var c2, d, e, f2, g;
80553 e = b.b.b;
80554 a.a = KC(yK, eme, 15, e, 0, 1);
80555 a.b = KC(sbb, dle, 25, e, 16, 1);
80556 for (g = Jsb(b.b, 0); g.b != g.d.c; ) {
80557 f2 = BD(Xsb(g), 86);
80558 a.a[f2.g] = new Psb();
80559 }
80560 for (d = Jsb(b.a, 0); d.b != d.d.c; ) {
80561 c2 = BD(Xsb(d), 188);
80562 a.a[c2.b.g].Fc(c2);
80563 a.a[c2.c.g].Fc(c2);
80564 }
80565 }
80566 function qmd(a) {
80567 var b;
80568 if ((a.Db & 64) != 0)
80569 return Eid(a);
80570 b = new Jfb(Eid(a));
80571 b.a += " (startX: ";
80572 Bfb(b, a.j);
80573 b.a += ", startY: ";
80574 Bfb(b, a.k);
80575 b.a += ", endX: ";
80576 Bfb(b, a.b);
80577 b.a += ", endY: ";
80578 Bfb(b, a.c);
80579 b.a += ", identifier: ";
80580 Efb(b, a.d);
80581 b.a += ")";
80582 return b.a;
80583 }
80584 function EId(a) {
80585 var b;
80586 if ((a.Db & 64) != 0)
80587 return qnd(a);
80588 b = new Jfb(qnd(a));
80589 b.a += " (ordered: ";
80590 Ffb(b, (a.Bb & 256) != 0);
80591 b.a += ", unique: ";
80592 Ffb(b, (a.Bb & 512) != 0);
80593 b.a += ", lowerBound: ";
80594 Cfb(b, a.s);
80595 b.a += ", upperBound: ";
80596 Cfb(b, a.t);
80597 b.a += ")";
80598 return b.a;
80599 }
80600 function Wnd(a, b, c2, d, e, f2, g, h) {
80601 var i3;
80602 JD(a.Cb, 88) && XMd($Kd(BD(a.Cb, 88)), 4);
80603 pnd(a, c2);
80604 a.f = d;
80605 dJd(a, e);
80606 fJd(a, f2);
80607 ZId(a, g);
80608 eJd(a, false);
80609 CId(a, true);
80610 aJd(a, h);
80611 BId(a, true);
80612 AId(a, 0);
80613 a.b = 0;
80614 DId(a, 1);
80615 i3 = xId(a, b, null);
80616 !!i3 && i3.Fi();
80617 MJd(a, false);
80618 return a;
80619 }
80620 function fyb(a, b) {
80621 var c2, d, e, f2;
80622 c2 = BD(Phb(a.a, b), 512);
80623 if (!c2) {
80624 d = new wyb(b);
80625 e = (oyb(), lyb) ? null : d.c;
80626 f2 = qfb(e, 0, $wnd.Math.max(0, kfb(e, wfb(46))));
80627 vyb(d, fyb(a, f2));
80628 (lyb ? null : d.c).length == 0 && qyb(d, new zyb());
80629 Shb(a.a, lyb ? null : d.c, d);
80630 return d;
80631 }
80632 return c2;
80633 }
80634 function BOb(a, b) {
80635 var c2;
80636 a.b = b;
80637 a.g = new Rkb();
80638 c2 = COb(a.b);
80639 a.e = c2;
80640 a.f = c2;
80641 a.c = Ccb(DD(vNb(a.b, (fFb(), $Eb))));
80642 a.a = ED(vNb(a.b, (Y9c(), r8c)));
80643 a.a == null && (a.a = 1);
80644 Edb(a.a) > 1 ? a.e *= Edb(a.a) : a.f /= Edb(a.a);
80645 DOb(a);
80646 EOb(a);
80647 AOb(a);
80648 yNb(a.b, (CPb(), uPb), a.g);
80649 }
80650 function Y5b(a, b, c2) {
80651 var d, e, f2, g, h, i3;
80652 d = 0;
80653 i3 = c2;
80654 if (!b) {
80655 d = c2 * (a.c.length - 1);
80656 i3 *= -1;
80657 }
80658 for (f2 = new olb(a); f2.a < f2.c.c.length; ) {
80659 e = BD(mlb(f2), 10);
80660 yNb(e, (Nyc(), mwc), (F7c(), B7c));
80661 e.o.a = d;
80662 for (h = Y_b(e, (Ucd(), zcd)).Kc(); h.Ob(); ) {
80663 g = BD(h.Pb(), 11);
80664 g.n.a = d;
80665 }
80666 d += i3;
80667 }
80668 }
80669 function Qxd(a, b, c2) {
80670 var d, e, f2;
80671 if (a.ej()) {
80672 f2 = a.fj();
80673 kud(a, b, c2);
80674 d = a.Zi(3, null, c2, b, f2);
80675 if (a.bj()) {
80676 e = a.cj(c2, null);
80677 a.ij() && (e = a.jj(c2, e));
80678 if (!e) {
80679 a.$i(d);
80680 } else {
80681 e.Ei(d);
80682 e.Fi();
80683 }
80684 } else {
80685 a.$i(d);
80686 }
80687 } else {
80688 kud(a, b, c2);
80689 if (a.bj()) {
80690 e = a.cj(c2, null);
80691 !!e && e.Fi();
80692 }
80693 }
80694 }
80695 function ILd(a, b, c2) {
80696 var d, e, f2, g, h, i3;
80697 h = a.Gk(c2);
80698 if (h != c2) {
80699 g = a.g[b];
80700 i3 = h;
80701 mud(a, b, a.oi(b, i3));
80702 f2 = g;
80703 a.gi(b, i3, f2);
80704 if (a.rk()) {
80705 d = c2;
80706 e = a.dj(d, null);
80707 !BD(h, 49).eh() && (e = a.cj(i3, e));
80708 !!e && e.Fi();
80709 }
80710 oid(a.e) && GLd(a, a.Zi(9, c2, h, b, false));
80711 return h;
80712 } else {
80713 return c2;
80714 }
80715 }
80716 function pVb(a, b) {
80717 var c2, d, e, f2;
80718 for (d = new olb(a.a.a); d.a < d.c.c.length; ) {
80719 c2 = BD(mlb(d), 189);
80720 c2.g = true;
80721 }
80722 for (f2 = new olb(a.a.b); f2.a < f2.c.c.length; ) {
80723 e = BD(mlb(f2), 81);
80724 e.k = Ccb(DD(a.e.Kb(new vgd(e, b))));
80725 e.d.g = e.d.g & Ccb(DD(a.e.Kb(new vgd(e, b))));
80726 }
80727 return a;
80728 }
80729 function pkc(a) {
80730 var b, c2, d, e, f2;
80731 c2 = (b = BD(gdb(F1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
80732 f2 = BD(vNb(a, (wtc(), gtc)), 10);
80733 if (f2) {
80734 for (e = new olb(f2.j); e.a < e.c.c.length; ) {
80735 d = BD(mlb(e), 11);
80736 PD(vNb(d, $sc)) === PD(a) && a1b(new b1b(d.b)) && rqb(c2, d.j);
80737 }
80738 }
80739 return c2;
80740 }
80741 function zCc(a, b, c2) {
80742 var d, e, f2, g, h;
80743 if (a.d[c2.p]) {
80744 return;
80745 }
80746 for (e = new Sr(ur(U_b(c2).a.Kc(), new Sq())); Qr(e); ) {
80747 d = BD(Rr(e), 17);
80748 h = d.d.i;
80749 for (g = new Sr(ur(R_b(h).a.Kc(), new Sq())); Qr(g); ) {
80750 f2 = BD(Rr(g), 17);
80751 f2.c.i == b && (a.a[f2.p] = true);
80752 }
80753 zCc(a, b, h);
80754 }
80755 a.d[c2.p] = true;
80756 }
80757 function Bjd(a, b) {
80758 var c2, d, e, f2, g, h, i3;
80759 d = aeb(a.Db & 254);
80760 if (d == 1) {
80761 a.Eb = null;
80762 } else {
80763 f2 = CD(a.Eb);
80764 if (d == 2) {
80765 e = zjd(a, b);
80766 a.Eb = f2[e == 0 ? 1 : 0];
80767 } else {
80768 g = KC(SI, Uhe, 1, d - 1, 5, 1);
80769 for (c2 = 2, h = 0, i3 = 0; c2 <= 128; c2 <<= 1) {
80770 c2 == b ? ++h : (a.Db & c2) != 0 && (g[i3++] = f2[h++]);
80771 }
80772 a.Eb = g;
80773 }
80774 }
80775 a.Db &= ~b;
80776 }
80777 function n1d(a, b) {
80778 var c2, d, e, f2, g;
80779 d = (!b.s && (b.s = new cUd(t5, b, 21, 17)), b.s);
80780 f2 = null;
80781 for (e = 0, g = d.i; e < g; ++e) {
80782 c2 = BD(qud(d, e), 170);
80783 switch ($1d(q1d(a, c2))) {
80784 case 4:
80785 case 5:
80786 case 6: {
80787 !f2 && (f2 = new Rkb());
80788 f2.c[f2.c.length] = c2;
80789 break;
80790 }
80791 }
80792 }
80793 return !f2 ? (mmb(), mmb(), jmb) : f2;
80794 }
80795 function Uee(a) {
80796 var b;
80797 b = 0;
80798 switch (a) {
80799 case 105:
80800 b = 2;
80801 break;
80802 case 109:
80803 b = 8;
80804 break;
80805 case 115:
80806 b = 4;
80807 break;
80808 case 120:
80809 b = 16;
80810 break;
80811 case 117:
80812 b = 32;
80813 break;
80814 case 119:
80815 b = 64;
80816 break;
80817 case 70:
80818 b = 256;
80819 break;
80820 case 72:
80821 b = 128;
80822 break;
80823 case 88:
80824 b = 512;
80825 break;
80826 case 44:
80827 b = zte;
80828 }
80829 return b;
80830 }
80831 function Ghb(a, b, c2, d, e) {
80832 var f2, g, h, i3;
80833 if (PD(a) === PD(b) && d == e) {
80834 Lhb(a, d, c2);
80835 return;
80836 }
80837 for (h = 0; h < d; h++) {
80838 g = 0;
80839 f2 = a[h];
80840 for (i3 = 0; i3 < e; i3++) {
80841 g = wbb(wbb(Ibb(xbb(f2, Yje), xbb(b[i3], Yje)), xbb(c2[h + i3], Yje)), xbb(Tbb(g), Yje));
80842 c2[h + i3] = Tbb(g);
80843 g = Pbb(g, 32);
80844 }
80845 c2[h + e] = Tbb(g);
80846 }
80847 }
80848 function COb(a) {
80849 var b, c2, d, e, f2, g, h, i3, j, k, l;
80850 k = 0;
80851 j = 0;
80852 e = a.a;
80853 h = e.a.gc();
80854 for (d = e.a.ec().Kc(); d.Ob(); ) {
80855 c2 = BD(d.Pb(), 561);
80856 b = (c2.b && LOb(c2), c2.a);
80857 l = b.a;
80858 g = b.b;
80859 k += l + g;
80860 j += l * g;
80861 }
80862 i3 = $wnd.Math.sqrt(400 * h * j - 4 * j + k * k) + k;
80863 f2 = 2 * (100 * h - 1);
80864 if (f2 == 0) {
80865 return i3;
80866 }
80867 return i3 / f2;
80868 }
80869 function mOc(a, b) {
80870 if (b.b != 0) {
80871 isNaN(a.s) ? a.s = Edb((sCb(b.b != 0), ED(b.a.a.c))) : a.s = $wnd.Math.min(a.s, Edb((sCb(b.b != 0), ED(b.a.a.c))));
80872 isNaN(a.c) ? a.c = Edb((sCb(b.b != 0), ED(b.c.b.c))) : a.c = $wnd.Math.max(a.c, Edb((sCb(b.b != 0), ED(b.c.b.c))));
80873 }
80874 }
80875 function Pld(a) {
80876 var b, c2, d, e;
80877 b = null;
80878 for (d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)]))); Qr(d); ) {
80879 c2 = BD(Rr(d), 82);
80880 e = atd(c2);
80881 if (!b) {
80882 b = Xod(e);
80883 } else if (b != Xod(e)) {
80884 return true;
80885 }
80886 }
80887 return false;
80888 }
80889 function Rxd(a, b) {
80890 var c2, d, e, f2;
80891 if (a.ej()) {
80892 c2 = a.i;
80893 f2 = a.fj();
80894 lud(a, b);
80895 d = a.Zi(3, null, b, c2, f2);
80896 if (a.bj()) {
80897 e = a.cj(b, null);
80898 a.ij() && (e = a.jj(b, e));
80899 if (!e) {
80900 a.$i(d);
80901 } else {
80902 e.Ei(d);
80903 e.Fi();
80904 }
80905 } else {
80906 a.$i(d);
80907 }
80908 } else {
80909 lud(a, b);
80910 if (a.bj()) {
80911 e = a.cj(b, null);
80912 !!e && e.Fi();
80913 }
80914 }
80915 }
80916 function rwd(a, b, c2) {
80917 var d, e, f2;
80918 if (a.ej()) {
80919 f2 = a.fj();
80920 ++a.j;
80921 a.Hi(b, a.oi(b, c2));
80922 d = a.Zi(3, null, c2, b, f2);
80923 if (a.bj()) {
80924 e = a.cj(c2, null);
80925 if (!e) {
80926 a.$i(d);
80927 } else {
80928 e.Ei(d);
80929 e.Fi();
80930 }
80931 } else {
80932 a.$i(d);
80933 }
80934 } else {
80935 ++a.j;
80936 a.Hi(b, a.oi(b, c2));
80937 if (a.bj()) {
80938 e = a.cj(c2, null);
80939 !!e && e.Fi();
80940 }
80941 }
80942 }
80943 function Wee(a) {
80944 var b, c2, d, e;
80945 e = a.length;
80946 b = null;
80947 for (d = 0; d < e; d++) {
80948 c2 = (BCb(d, a.length), a.charCodeAt(d));
80949 if (hfb(".*+?{[()|\\^$", wfb(c2)) >= 0) {
80950 if (!b) {
80951 b = new Ifb();
80952 d > 0 && Efb(b, a.substr(0, d));
80953 }
80954 b.a += "\\";
80955 Afb(b, c2 & aje);
80956 } else
80957 !!b && Afb(b, c2 & aje);
80958 }
80959 return b ? b.a : a;
80960 }
80961 function l5c(a) {
80962 var b;
80963 if (!a.a) {
80964 throw vbb(new Zdb("IDataType class expected for layout option " + a.f));
80965 }
80966 b = gvd(a.a);
80967 if (b == null) {
80968 throw vbb(new Zdb("Couldn't create new instance of property '" + a.f + "'. " + ise + (fdb(Y3), Y3.k) + jse));
80969 }
80970 return BD(b, 414);
80971 }
80972 function aid(a) {
80973 var b, c2, d, e, f2;
80974 f2 = a.eh();
80975 if (f2) {
80976 if (f2.kh()) {
80977 e = xid(a, f2);
80978 if (e != f2) {
80979 c2 = a.Vg();
80980 d = (b = a.Vg(), b >= 0 ? a.Qg(null) : a.eh().ih(a, -1 - b, null, null));
80981 a.Rg(BD(e, 49), c2);
80982 !!d && d.Fi();
80983 a.Lg() && a.Mg() && c2 > -1 && Uhd(a, new nSd(a, 9, c2, f2, e));
80984 return e;
80985 }
80986 }
80987 }
80988 return f2;
80989 }
80990 function nTb(a) {
80991 var b, c2, d, e, f2, g, h, i3;
80992 g = 0;
80993 f2 = a.f.e;
80994 for (d = 0; d < f2.c.length; ++d) {
80995 h = (tCb(d, f2.c.length), BD(f2.c[d], 144));
80996 for (e = d + 1; e < f2.c.length; ++e) {
80997 i3 = (tCb(e, f2.c.length), BD(f2.c[e], 144));
80998 c2 = S6c(h.d, i3.d);
80999 b = c2 - a.a[h.b][i3.b];
81000 g += a.i[h.b][i3.b] * b * b;
81001 }
81002 }
81003 return g;
81004 }
81005 function _ac(a, b) {
81006 var c2;
81007 if (wNb(b, (Nyc(), mxc))) {
81008 return;
81009 }
81010 c2 = hbc(BD(vNb(b, Uac), 360), BD(vNb(a, mxc), 163));
81011 yNb(b, Uac, c2);
81012 if (Qr(new Sr(ur(O_b(b).a.Kc(), new Sq())))) {
81013 return;
81014 }
81015 switch (c2.g) {
81016 case 1:
81017 yNb(b, mxc, (Ctc(), xtc));
81018 break;
81019 case 2:
81020 yNb(b, mxc, (Ctc(), ztc));
81021 }
81022 }
81023 function wkc(a, b) {
81024 var c2;
81025 mkc(a);
81026 a.a = (c2 = new Ji(), MAb(new YAb(null, new Kub(b.d, 16)), new Vkc(c2)), c2);
81027 rkc(a, BD(vNb(b.b, (Nyc(), Wwc)), 376));
81028 tkc(a);
81029 skc(a);
81030 qkc(a);
81031 ukc(a);
81032 vkc(a, b);
81033 MAb(LAb(new YAb(null, $i(Yi(a.b).a)), new Lkc()), new Nkc());
81034 b.a = false;
81035 a.a = null;
81036 }
81037 function Bod() {
81038 fod.call(this, yte, (Fhd(), Ehd));
81039 this.p = null;
81040 this.a = null;
81041 this.f = null;
81042 this.n = null;
81043 this.g = null;
81044 this.c = null;
81045 this.i = null;
81046 this.j = null;
81047 this.d = null;
81048 this.b = null;
81049 this.e = null;
81050 this.k = null;
81051 this.o = null;
81052 this.s = null;
81053 this.q = false;
81054 this.r = false;
81055 }
81056 function Csd() {
81057 Csd = ccb;
81058 Bsd = new Dsd(Wne, 0);
81059 ysd = new Dsd("INSIDE_SELF_LOOPS", 1);
81060 zsd = new Dsd("MULTI_EDGES", 2);
81061 xsd = new Dsd("EDGE_LABELS", 3);
81062 Asd = new Dsd("PORTS", 4);
81063 vsd = new Dsd("COMPOUND", 5);
81064 usd = new Dsd("CLUSTERS", 6);
81065 wsd = new Dsd("DISCONNECTED", 7);
81066 }
81067 function Sgb(a, b) {
81068 var c2, d, e;
81069 if (b == 0) {
81070 return (a.a[0] & 1) != 0;
81071 }
81072 if (b < 0) {
81073 throw vbb(new ocb("Negative bit address"));
81074 }
81075 e = b >> 5;
81076 if (e >= a.d) {
81077 return a.e < 0;
81078 }
81079 c2 = a.a[e];
81080 b = 1 << (b & 31);
81081 if (a.e < 0) {
81082 d = Mgb(a);
81083 if (e < d) {
81084 return false;
81085 } else
81086 d == e ? c2 = -c2 : c2 = ~c2;
81087 }
81088 return (c2 & b) != 0;
81089 }
81090 function O1c(a, b, c2, d) {
81091 var e;
81092 BD(c2.b, 65);
81093 BD(c2.b, 65);
81094 BD(d.b, 65);
81095 BD(d.b, 65);
81096 e = c7c(R6c(BD(c2.b, 65).c), BD(d.b, 65).c);
81097 $6c(e, YNb(BD(c2.b, 65), BD(d.b, 65), e));
81098 BD(d.b, 65);
81099 BD(d.b, 65);
81100 BD(d.b, 65).c.a + e.a;
81101 BD(d.b, 65).c.b + e.b;
81102 BD(d.b, 65);
81103 Hkb(d.a, new T1c(a, b, d));
81104 }
81105 function vNd(a, b) {
81106 var c2, d, e, f2, g, h, i3;
81107 f2 = b.e;
81108 if (f2) {
81109 c2 = aid(f2);
81110 d = BD(a.g, 674);
81111 for (g = 0; g < a.i; ++g) {
81112 i3 = d[g];
81113 if (JQd(i3) == c2) {
81114 e = (!i3.d && (i3.d = new xMd(j5, i3, 1)), i3.d);
81115 h = BD(c2.ah(Nid(f2, f2.Cb, f2.Db >> 16)), 15).Xc(f2);
81116 if (h < e.i) {
81117 return vNd(a, BD(qud(e, h), 87));
81118 }
81119 }
81120 }
81121 }
81122 return b;
81123 }
81124 function bcb(a, b, c2) {
81125 var d = _bb, h;
81126 var e = d[a];
81127 var f2 = e instanceof Array ? e[0] : null;
81128 if (e && !f2) {
81129 _2 = e;
81130 } else {
81131 _2 = (h = b && b.prototype, !h && (h = _bb[b]), ecb(h));
81132 _2.hm = c2;
81133 !b && (_2.im = gcb);
81134 d[a] = _2;
81135 }
81136 for (var g = 3; g < arguments.length; ++g) {
81137 arguments[g].prototype = _2;
81138 }
81139 f2 && (_2.gm = f2);
81140 }
81141 function Qr(a) {
81142 var b;
81143 while (!BD(Qb(a.a), 47).Ob()) {
81144 a.d = Pr(a);
81145 if (!a.d) {
81146 return false;
81147 }
81148 a.a = BD(a.d.Pb(), 47);
81149 if (JD(a.a, 39)) {
81150 b = BD(a.a, 39);
81151 a.a = b.a;
81152 !a.b && (a.b = new jkb());
81153 Wjb(a.b, a.d);
81154 if (b.b) {
81155 while (!akb(b.b)) {
81156 Wjb(a.b, BD(gkb(b.b), 47));
81157 }
81158 }
81159 a.d = b.d;
81160 }
81161 }
81162 return true;
81163 }
81164 function krb(a, b) {
81165 var c2, d, e, f2, g;
81166 f2 = b == null ? 0 : a.b.se(b);
81167 d = (c2 = a.a.get(f2), c2 == null ? new Array() : c2);
81168 for (g = 0; g < d.length; g++) {
81169 e = d[g];
81170 if (a.b.re(b, e.cd())) {
81171 if (d.length == 1) {
81172 d.length = 0;
81173 trb(a.a, f2);
81174 } else {
81175 d.splice(g, 1);
81176 }
81177 --a.c;
81178 zpb(a.b);
81179 return e.dd();
81180 }
81181 }
81182 return null;
81183 }
81184 function GGb(a, b) {
81185 var c2, d, e, f2;
81186 e = 1;
81187 b.j = true;
81188 f2 = null;
81189 for (d = new olb(LFb(b)); d.a < d.c.c.length; ) {
81190 c2 = BD(mlb(d), 213);
81191 if (!a.c[c2.c]) {
81192 a.c[c2.c] = true;
81193 f2 = xFb(c2, b);
81194 if (c2.f) {
81195 e += GGb(a, f2);
81196 } else if (!f2.j && c2.a == c2.e.e - c2.d.e) {
81197 c2.f = true;
81198 Qqb(a.p, c2);
81199 e += GGb(a, f2);
81200 }
81201 }
81202 }
81203 return e;
81204 }
81205 function MVb(a) {
81206 var b, c2, d;
81207 for (c2 = new olb(a.a.a.b); c2.a < c2.c.c.length; ) {
81208 b = BD(mlb(c2), 81);
81209 d = (uCb(0), 0);
81210 if (d > 0) {
81211 !(fad(a.a.c) && b.n.d) && !(gad(a.a.c) && b.n.b) && (b.g.d += $wnd.Math.max(0, d / 2 - 0.5));
81212 !(fad(a.a.c) && b.n.a) && !(gad(a.a.c) && b.n.c) && (b.g.a -= d - 1);
81213 }
81214 }
81215 }
81216 function N3b(a) {
81217 var b, c2, d, e, f2;
81218 e = new Rkb();
81219 f2 = O3b(a, e);
81220 b = BD(vNb(a, (wtc(), gtc)), 10);
81221 if (b) {
81222 for (d = new olb(b.j); d.a < d.c.c.length; ) {
81223 c2 = BD(mlb(d), 11);
81224 PD(vNb(c2, $sc)) === PD(a) && (f2 = $wnd.Math.max(f2, O3b(c2, e)));
81225 }
81226 }
81227 e.c.length == 0 || yNb(a, Ysc, f2);
81228 return f2 != -1 ? e : null;
81229 }
81230 function a9b(a, b, c2) {
81231 var d, e, f2, g, h, i3;
81232 f2 = BD(Ikb(b.e, 0), 17).c;
81233 d = f2.i;
81234 e = d.k;
81235 i3 = BD(Ikb(c2.g, 0), 17).d;
81236 g = i3.i;
81237 h = g.k;
81238 e == (j0b(), g0b) ? yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11)) : yNb(a, (wtc(), Vsc), f2);
81239 h == g0b ? yNb(a, (wtc(), Wsc), BD(vNb(g, Wsc), 11)) : yNb(a, (wtc(), Wsc), i3);
81240 }
81241 function Rs(a, b) {
81242 var c2, d, e, f2;
81243 f2 = Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)));
81244 c2 = f2 & a.b.length - 1;
81245 e = null;
81246 for (d = a.b[c2]; d; e = d, d = d.a) {
81247 if (d.d == f2 && Hb(d.i, b)) {
81248 !e ? a.b[c2] = d.a : e.a = d.a;
81249 Bs(d.c, d.f);
81250 As(d.b, d.e);
81251 --a.f;
81252 ++a.e;
81253 return true;
81254 }
81255 }
81256 return false;
81257 }
81258 function lD(a, b) {
81259 var c2, d, e, f2, g;
81260 b &= 63;
81261 c2 = a.h;
81262 d = (c2 & Gje) != 0;
81263 d && (c2 |= -1048576);
81264 if (b < 22) {
81265 g = c2 >> b;
81266 f2 = a.m >> b | c2 << 22 - b;
81267 e = a.l >> b | a.m << 22 - b;
81268 } else if (b < 44) {
81269 g = d ? Fje : 0;
81270 f2 = c2 >> b - 22;
81271 e = a.m >> b - 22 | c2 << 44 - b;
81272 } else {
81273 g = d ? Fje : 0;
81274 f2 = d ? Eje : 0;
81275 e = c2 >> b - 44;
81276 }
81277 return TC(e & Eje, f2 & Eje, g & Fje);
81278 }
81279 function XOb(a) {
81280 var b, c2, d, e, f2, g;
81281 this.c = new Rkb();
81282 this.d = a;
81283 d = Pje;
81284 e = Pje;
81285 b = Qje;
81286 c2 = Qje;
81287 for (g = Jsb(a, 0); g.b != g.d.c; ) {
81288 f2 = BD(Xsb(g), 8);
81289 d = $wnd.Math.min(d, f2.a);
81290 e = $wnd.Math.min(e, f2.b);
81291 b = $wnd.Math.max(b, f2.a);
81292 c2 = $wnd.Math.max(c2, f2.b);
81293 }
81294 this.a = new J6c(d, e, b - d, c2 - e);
81295 }
81296 function Dac(a, b) {
81297 var c2, d, e, f2, g, h;
81298 for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
81299 e = BD(mlb(f2), 29);
81300 for (h = new olb(e.a); h.a < h.c.c.length; ) {
81301 g = BD(mlb(h), 10);
81302 g.k == (j0b(), f0b) && zac(g, b);
81303 for (d = new Sr(ur(U_b(g).a.Kc(), new Sq())); Qr(d); ) {
81304 c2 = BD(Rr(d), 17);
81305 yac(c2, b);
81306 }
81307 }
81308 }
81309 }
81310 function Xoc(a) {
81311 var b, c2, d;
81312 this.c = a;
81313 d = BD(vNb(a, (Nyc(), Lwc)), 103);
81314 b = Edb(ED(vNb(a, owc)));
81315 c2 = Edb(ED(vNb(a, Dyc)));
81316 d == (ead(), aad) || d == bad || d == cad ? this.b = b * c2 : this.b = 1 / (b * c2);
81317 this.j = Edb(ED(vNb(a, wyc)));
81318 this.e = Edb(ED(vNb(a, vyc)));
81319 this.f = a.b.c.length;
81320 }
81321 function ADc(a) {
81322 var b, c2;
81323 a.e = KC(WD, oje, 25, a.p.c.length, 15, 1);
81324 a.k = KC(WD, oje, 25, a.p.c.length, 15, 1);
81325 for (c2 = new olb(a.p); c2.a < c2.c.c.length; ) {
81326 b = BD(mlb(c2), 10);
81327 a.e[b.p] = sr(new Sr(ur(R_b(b).a.Kc(), new Sq())));
81328 a.k[b.p] = sr(new Sr(ur(U_b(b).a.Kc(), new Sq())));
81329 }
81330 }
81331 function DDc(a) {
81332 var b, c2, d, e, f2, g;
81333 e = 0;
81334 a.q = new Rkb();
81335 b = new Tqb();
81336 for (g = new olb(a.p); g.a < g.c.c.length; ) {
81337 f2 = BD(mlb(g), 10);
81338 f2.p = e;
81339 for (d = new Sr(ur(U_b(f2).a.Kc(), new Sq())); Qr(d); ) {
81340 c2 = BD(Rr(d), 17);
81341 Qqb(b, c2.d.i);
81342 }
81343 b.a.Bc(f2) != null;
81344 Ekb(a.q, new Vqb(b));
81345 b.a.$b();
81346 ++e;
81347 }
81348 }
81349 function JTc() {
81350 JTc = ccb;
81351 CTc = new q0b(20);
81352 BTc = new Osd((Y9c(), f9c), CTc);
81353 HTc = new Osd(T9c, 20);
81354 uTc = new Osd(r8c, tme);
81355 ETc = new Osd(D9c, meb(1));
81356 GTc = new Osd(H9c, (Bcb(), true));
81357 vTc = y8c;
81358 xTc = Y8c;
81359 yTc = _8c;
81360 zTc = b9c;
81361 wTc = W8c;
81362 ATc = e9c;
81363 DTc = x9c;
81364 ITc = (rTc(), pTc);
81365 FTc = nTc;
81366 }
81367 function RBd(a, b) {
81368 var c2, d, e, f2, g, h, i3, j, k;
81369 if (a.a.f > 0 && JD(b, 42)) {
81370 a.a.qj();
81371 j = BD(b, 42);
81372 i3 = j.cd();
81373 f2 = i3 == null ? 0 : tb(i3);
81374 g = DAd(a.a, f2);
81375 c2 = a.a.d[g];
81376 if (c2) {
81377 d = BD(c2.g, 367);
81378 k = c2.i;
81379 for (h = 0; h < k; ++h) {
81380 e = d[h];
81381 if (e.Sh() == f2 && e.Fb(j)) {
81382 RBd(a, j);
81383 return true;
81384 }
81385 }
81386 }
81387 }
81388 return false;
81389 }
81390 function skc(a) {
81391 var b, c2, d, e;
81392 for (e = BD(Qc(a.a, (Xjc(), Ujc)), 15).Kc(); e.Ob(); ) {
81393 d = BD(e.Pb(), 101);
81394 c2 = (b = Ec(d.k), b.Hc((Ucd(), Acd)) ? b.Hc(zcd) ? b.Hc(Rcd) ? b.Hc(Tcd) ? null : dkc : fkc : ekc : ckc);
81395 kkc(a, d, c2[0], (Fkc(), Ckc), 0);
81396 kkc(a, d, c2[1], Dkc, 1);
81397 kkc(a, d, c2[2], Ekc, 1);
81398 }
81399 }
81400 function enc(a, b) {
81401 var c2, d;
81402 c2 = fnc(b);
81403 inc(a, b, c2);
81404 uPc(a.a, BD(vNb(Q_b(b.b), (wtc(), jtc)), 230));
81405 dnc(a);
81406 cnc(a, b);
81407 d = KC(WD, oje, 25, b.b.j.c.length, 15, 1);
81408 lnc(a, b, (Ucd(), Acd), d, c2);
81409 lnc(a, b, zcd, d, c2);
81410 lnc(a, b, Rcd, d, c2);
81411 lnc(a, b, Tcd, d, c2);
81412 a.a = null;
81413 a.c = null;
81414 a.b = null;
81415 }
81416 function OYc() {
81417 OYc = ccb;
81418 LYc = (zYc(), yYc);
81419 KYc = new Nsd(Bre, LYc);
81420 IYc = new Nsd(Cre, (Bcb(), true));
81421 meb(-1);
81422 FYc = new Nsd(Dre, meb(-1));
81423 meb(-1);
81424 GYc = new Nsd(Ere, meb(-1));
81425 JYc = new Nsd(Fre, false);
81426 MYc = new Nsd(Gre, true);
81427 HYc = new Nsd(Hre, false);
81428 NYc = new Nsd(Ire, -1);
81429 }
81430 function yld(a, b, c2) {
81431 switch (b) {
81432 case 7:
81433 !a.e && (a.e = new y5d(B2, a, 7, 4));
81434 Uxd(a.e);
81435 !a.e && (a.e = new y5d(B2, a, 7, 4));
81436 ytd(a.e, BD(c2, 14));
81437 return;
81438 case 8:
81439 !a.d && (a.d = new y5d(B2, a, 8, 5));
81440 Uxd(a.d);
81441 !a.d && (a.d = new y5d(B2, a, 8, 5));
81442 ytd(a.d, BD(c2, 14));
81443 return;
81444 }
81445 Zkd(a, b, c2);
81446 }
81447 function At(a, b) {
81448 var c2, d, e, f2, g;
81449 if (PD(b) === PD(a)) {
81450 return true;
81451 }
81452 if (!JD(b, 15)) {
81453 return false;
81454 }
81455 g = BD(b, 15);
81456 if (a.gc() != g.gc()) {
81457 return false;
81458 }
81459 f2 = g.Kc();
81460 for (d = a.Kc(); d.Ob(); ) {
81461 c2 = d.Pb();
81462 e = f2.Pb();
81463 if (!(PD(c2) === PD(e) || c2 != null && pb(c2, e))) {
81464 return false;
81465 }
81466 }
81467 return true;
81468 }
81469 function U6b(a, b) {
81470 var c2, d, e, f2;
81471 f2 = BD(GAb(LAb(LAb(new YAb(null, new Kub(b.b, 16)), new $6b()), new a7b()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
81472 f2.Jc(new c7b());
81473 c2 = 0;
81474 for (e = f2.Kc(); e.Ob(); ) {
81475 d = BD(e.Pb(), 11);
81476 d.p == -1 && T6b(a, d, c2++);
81477 }
81478 }
81479 function Wzc(a) {
81480 switch (a.g) {
81481 case 0:
81482 return new KLc();
81483 case 1:
81484 return new dJc();
81485 case 2:
81486 return new tJc();
81487 case 3:
81488 return new CMc();
81489 case 4:
81490 return new $Jc();
81491 default:
81492 throw vbb(new Wdb("No implementation is available for the node placer " + (a.f != null ? a.f : "" + a.g)));
81493 }
81494 }
81495 function nqc(a) {
81496 switch (a.g) {
81497 case 0:
81498 return new aCc();
81499 case 1:
81500 return new VBc();
81501 case 2:
81502 return new kCc();
81503 case 3:
81504 return new rCc();
81505 case 4:
81506 return new eCc();
81507 default:
81508 throw vbb(new Wdb("No implementation is available for the cycle breaker " + (a.f != null ? a.f : "" + a.g)));
81509 }
81510 }
81511 function HWc() {
81512 HWc = ccb;
81513 BWc = new Nsd(lre, meb(0));
81514 CWc = new Nsd(mre, 0);
81515 yWc = (pWc(), mWc);
81516 xWc = new Nsd(nre, yWc);
81517 meb(0);
81518 wWc = new Nsd(ore, meb(1));
81519 EWc = (sXc(), qXc);
81520 DWc = new Nsd(pre, EWc);
81521 GWc = (fWc(), eWc);
81522 FWc = new Nsd(qre, GWc);
81523 AWc = (iXc(), hXc);
81524 zWc = new Nsd(rre, AWc);
81525 }
81526 function XXb(a, b, c2) {
81527 var d;
81528 d = null;
81529 !!b && (d = b.d);
81530 hYb(a, new cWb(b.n.a - d.b + c2.a, b.n.b - d.d + c2.b));
81531 hYb(a, new cWb(b.n.a - d.b + c2.a, b.n.b + b.o.b + d.a + c2.b));
81532 hYb(a, new cWb(b.n.a + b.o.a + d.c + c2.a, b.n.b - d.d + c2.b));
81533 hYb(a, new cWb(b.n.a + b.o.a + d.c + c2.a, b.n.b + b.o.b + d.a + c2.b));
81534 }
81535 function T6b(a, b, c2) {
81536 var d, e, f2;
81537 b.p = c2;
81538 for (f2 = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(b), new R0b(b)]))); Qr(f2); ) {
81539 d = BD(Rr(f2), 11);
81540 d.p == -1 && T6b(a, d, c2);
81541 }
81542 if (b.i.k == (j0b(), g0b)) {
81543 for (e = new olb(b.i.j); e.a < e.c.c.length; ) {
81544 d = BD(mlb(e), 11);
81545 d != b && d.p == -1 && T6b(a, d, c2);
81546 }
81547 }
81548 }
81549 function rPc(a) {
81550 var b, c2, d, e, f2;
81551 e = BD(GAb(IAb(UAb(a)), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
81552 d = dme;
81553 if (e.gc() >= 2) {
81554 c2 = e.Kc();
81555 b = ED(c2.Pb());
81556 while (c2.Ob()) {
81557 f2 = b;
81558 b = ED(c2.Pb());
81559 d = $wnd.Math.min(d, (uCb(b), b) - (uCb(f2), f2));
81560 }
81561 }
81562 return d;
81563 }
81564 function gUc(a, b) {
81565 var c2, d, e, f2, g;
81566 d = new Psb();
81567 Gsb(d, b, d.c.b, d.c);
81568 do {
81569 c2 = (sCb(d.b != 0), BD(Nsb(d, d.a.a), 86));
81570 a.b[c2.g] = 1;
81571 for (f2 = Jsb(c2.d, 0); f2.b != f2.d.c; ) {
81572 e = BD(Xsb(f2), 188);
81573 g = e.c;
81574 a.b[g.g] == 1 ? Dsb(a.a, e) : a.b[g.g] == 2 ? a.b[g.g] = 1 : Gsb(d, g, d.c.b, d.c);
81575 }
81576 } while (d.b != 0);
81577 }
81578 function Ju(a, b) {
81579 var c2, d, e;
81580 if (PD(b) === PD(Qb(a))) {
81581 return true;
81582 }
81583 if (!JD(b, 15)) {
81584 return false;
81585 }
81586 d = BD(b, 15);
81587 e = a.gc();
81588 if (e != d.gc()) {
81589 return false;
81590 }
81591 if (JD(d, 54)) {
81592 for (c2 = 0; c2 < e; c2++) {
81593 if (!Hb(a.Xb(c2), d.Xb(c2))) {
81594 return false;
81595 }
81596 }
81597 return true;
81598 } else {
81599 return kr(a.Kc(), d.Kc());
81600 }
81601 }
81602 function Aac(a, b) {
81603 var c2, d;
81604 if (a.c.length != 0) {
81605 if (a.c.length == 2) {
81606 zac((tCb(0, a.c.length), BD(a.c[0], 10)), (rbd(), nbd));
81607 zac((tCb(1, a.c.length), BD(a.c[1], 10)), obd);
81608 } else {
81609 for (d = new olb(a); d.a < d.c.c.length; ) {
81610 c2 = BD(mlb(d), 10);
81611 zac(c2, b);
81612 }
81613 }
81614 a.c = KC(SI, Uhe, 1, 0, 5, 1);
81615 }
81616 }
81617 function uKc(a) {
81618 var b, c2;
81619 if (a.c.length != 2) {
81620 throw vbb(new Zdb("Order only allowed for two paths."));
81621 }
81622 b = (tCb(0, a.c.length), BD(a.c[0], 17));
81623 c2 = (tCb(1, a.c.length), BD(a.c[1], 17));
81624 if (b.d.i != c2.c.i) {
81625 a.c = KC(SI, Uhe, 1, 0, 5, 1);
81626 a.c[a.c.length] = c2;
81627 a.c[a.c.length] = b;
81628 }
81629 }
81630 function EMc(a, b) {
81631 var c2, d, e, f2, g, h;
81632 d = new $rb();
81633 g = Gx(new amb(a.g));
81634 for (f2 = g.a.ec().Kc(); f2.Ob(); ) {
81635 e = BD(f2.Pb(), 10);
81636 if (!e) {
81637 Sdd(b, "There are no classes in a balanced layout.");
81638 break;
81639 }
81640 h = a.j[e.p];
81641 c2 = BD(Wrb(d, h), 15);
81642 if (!c2) {
81643 c2 = new Rkb();
81644 Xrb(d, h, c2);
81645 }
81646 c2.Fc(e);
81647 }
81648 return d;
81649 }
81650 function Dqd(a, b, c2) {
81651 var d, e, f2, g, h, i3, j;
81652 if (c2) {
81653 f2 = c2.a.length;
81654 d = new Yge(f2);
81655 for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
81656 g = BD(h.Pb(), 19);
81657 i3 = Zpd(c2, g.a);
81658 if (i3) {
81659 j = ftd(_pd(i3, Ite), b);
81660 Rhb(a.f, j, i3);
81661 e = Vte in i3.a;
81662 e && Lkd(j, _pd(i3, Vte));
81663 grd(i3, j);
81664 hrd(i3, j);
81665 }
81666 }
81667 }
81668 }
81669 function ndc(a, b) {
81670 var c2, d, e, f2, g;
81671 Odd(b, "Port side processing", 1);
81672 for (g = new olb(a.a); g.a < g.c.c.length; ) {
81673 e = BD(mlb(g), 10);
81674 odc(e);
81675 }
81676 for (d = new olb(a.b); d.a < d.c.c.length; ) {
81677 c2 = BD(mlb(d), 29);
81678 for (f2 = new olb(c2.a); f2.a < f2.c.c.length; ) {
81679 e = BD(mlb(f2), 10);
81680 odc(e);
81681 }
81682 }
81683 Qdd(b);
81684 }
81685 function bfc(a, b, c2) {
81686 var d, e, f2, g, h;
81687 e = a.f;
81688 !e && (e = BD(a.a.a.ec().Kc().Pb(), 57));
81689 cfc(e, b, c2);
81690 if (a.a.a.gc() == 1) {
81691 return;
81692 }
81693 d = b * c2;
81694 for (g = a.a.a.ec().Kc(); g.Ob(); ) {
81695 f2 = BD(g.Pb(), 57);
81696 if (f2 != e) {
81697 h = ugc(f2);
81698 if (h.f.d) {
81699 f2.d.d += d + ple;
81700 f2.d.a -= d + ple;
81701 } else
81702 h.f.a && (f2.d.a -= d + ple);
81703 }
81704 }
81705 }
81706 function tQb(a, b, c2, d, e) {
81707 var f2, g, h, i3, j, k, l, m, n;
81708 g = c2 - a;
81709 h = d - b;
81710 f2 = $wnd.Math.atan2(g, h);
81711 i3 = f2 + cme;
81712 j = f2 - cme;
81713 k = e * $wnd.Math.sin(i3) + a;
81714 m = e * $wnd.Math.cos(i3) + b;
81715 l = e * $wnd.Math.sin(j) + a;
81716 n = e * $wnd.Math.cos(j) + b;
81717 return Ou(OC(GC(m1, 1), nie, 8, 0, [new f7c(k, m), new f7c(l, n)]));
81718 }
81719 function OLc(a, b, c2, d) {
81720 var e, f2, g, h, i3, j, k, l;
81721 e = c2;
81722 k = b;
81723 f2 = k;
81724 do {
81725 f2 = a.a[f2.p];
81726 h = (l = a.g[f2.p], Edb(a.p[l.p]) + Edb(a.d[f2.p]) - f2.d.d);
81727 i3 = RLc(f2, d);
81728 if (i3) {
81729 g = (j = a.g[i3.p], Edb(a.p[j.p]) + Edb(a.d[i3.p]) + i3.o.b + i3.d.a);
81730 e = $wnd.Math.min(e, h - (g + jBc(a.k, f2, i3)));
81731 }
81732 } while (k != f2);
81733 return e;
81734 }
81735 function PLc(a, b, c2, d) {
81736 var e, f2, g, h, i3, j, k, l;
81737 e = c2;
81738 k = b;
81739 f2 = k;
81740 do {
81741 f2 = a.a[f2.p];
81742 g = (l = a.g[f2.p], Edb(a.p[l.p]) + Edb(a.d[f2.p]) + f2.o.b + f2.d.a);
81743 i3 = QLc(f2, d);
81744 if (i3) {
81745 h = (j = a.g[i3.p], Edb(a.p[j.p]) + Edb(a.d[i3.p]) - i3.d.d);
81746 e = $wnd.Math.min(e, h - (g + jBc(a.k, f2, i3)));
81747 }
81748 } while (k != f2);
81749 return e;
81750 }
81751 function hkd(a, b) {
81752 var c2, d;
81753 d = (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), AAd(a.o, b));
81754 if (d != null) {
81755 return d;
81756 }
81757 c2 = b.wg();
81758 JD(c2, 4) && (c2 == null ? (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), LAd(a.o, b)) : (!a.o && (a.o = new dId((Thd(), Qhd), S2, a, 0)), HAd(a.o, b, c2)), a);
81759 return c2;
81760 }
81761 function Hbd() {
81762 Hbd = ccb;
81763 zbd = new Ibd("H_LEFT", 0);
81764 ybd = new Ibd("H_CENTER", 1);
81765 Bbd = new Ibd("H_RIGHT", 2);
81766 Gbd = new Ibd("V_TOP", 3);
81767 Fbd = new Ibd("V_CENTER", 4);
81768 Ebd = new Ibd("V_BOTTOM", 5);
81769 Cbd = new Ibd("INSIDE", 6);
81770 Dbd = new Ibd("OUTSIDE", 7);
81771 Abd = new Ibd("H_PRIORITY", 8);
81772 }
81773 function o6d(a) {
81774 var b, c2, d, e, f2, g, h;
81775 b = a.Hh(_ve);
81776 if (b) {
81777 h = GD(AAd((!b.b && (b.b = new sId((jGd(), fGd), x6, b)), b.b), "settingDelegates"));
81778 if (h != null) {
81779 c2 = new Rkb();
81780 for (e = mfb(h, "\\w+"), f2 = 0, g = e.length; f2 < g; ++f2) {
81781 d = e[f2];
81782 c2.c[c2.c.length] = d;
81783 }
81784 return c2;
81785 }
81786 }
81787 return mmb(), mmb(), jmb;
81788 }
81789 function sGb(a, b) {
81790 var c2, d, e, f2, g, h, i3;
81791 if (!b.f) {
81792 throw vbb(new Wdb("The input edge is not a tree edge."));
81793 }
81794 f2 = null;
81795 e = Ohe;
81796 for (d = new olb(a.d); d.a < d.c.c.length; ) {
81797 c2 = BD(mlb(d), 213);
81798 h = c2.d;
81799 i3 = c2.e;
81800 if (xGb(a, h, b) && !xGb(a, i3, b)) {
81801 g = i3.e - h.e - c2.a;
81802 if (g < e) {
81803 e = g;
81804 f2 = c2;
81805 }
81806 }
81807 }
81808 return f2;
81809 }
81810 function qTb(a) {
81811 var b, c2, d, e, f2, g;
81812 if (a.f.e.c.length <= 1) {
81813 return;
81814 }
81815 b = 0;
81816 e = nTb(a);
81817 c2 = Pje;
81818 do {
81819 b > 0 && (e = c2);
81820 for (g = new olb(a.f.e); g.a < g.c.c.length; ) {
81821 f2 = BD(mlb(g), 144);
81822 if (Ccb(DD(vNb(f2, (bTb(), USb))))) {
81823 continue;
81824 }
81825 d = mTb(a, f2);
81826 P6c(X6c(f2.d), d);
81827 }
81828 c2 = nTb(a);
81829 } while (!pTb(a, b++, e, c2));
81830 }
81831 function $ac(a, b) {
81832 var c2, d, e;
81833 Odd(b, "Layer constraint preprocessing", 1);
81834 c2 = new Rkb();
81835 e = new Bib(a.a, 0);
81836 while (e.b < e.d.gc()) {
81837 d = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 10));
81838 if (Zac(d)) {
81839 Xac(d);
81840 c2.c[c2.c.length] = d;
81841 uib(e);
81842 }
81843 }
81844 c2.c.length == 0 || yNb(a, (wtc(), Lsc), c2);
81845 Qdd(b);
81846 }
81847 function sjc(a, b) {
81848 var c2, d, e, f2, g;
81849 f2 = a.g.a;
81850 g = a.g.b;
81851 for (d = new olb(a.d); d.a < d.c.c.length; ) {
81852 c2 = BD(mlb(d), 70);
81853 e = c2.n;
81854 a.a == (Ajc(), xjc) || a.i == (Ucd(), zcd) ? e.a = f2 : a.a == yjc || a.i == (Ucd(), Tcd) ? e.a = f2 + a.j.a - c2.o.a : e.a = f2 + (a.j.a - c2.o.a) / 2;
81855 e.b = g;
81856 P6c(e, b);
81857 g += c2.o.b + a.e;
81858 }
81859 }
81860 function LSc(a, b, c2) {
81861 var d, e, f2, g;
81862 Odd(c2, "Processor set coordinates", 1);
81863 a.a = b.b.b == 0 ? 1 : b.b.b;
81864 f2 = null;
81865 d = Jsb(b.b, 0);
81866 while (!f2 && d.b != d.d.c) {
81867 g = BD(Xsb(d), 86);
81868 if (Ccb(DD(vNb(g, (mTc(), jTc))))) {
81869 f2 = g;
81870 e = g.e;
81871 e.a = BD(vNb(g, kTc), 19).a;
81872 e.b = 0;
81873 }
81874 }
81875 MSc(a, URc(f2), Udd(c2, 1));
81876 Qdd(c2);
81877 }
81878 function xSc(a, b, c2) {
81879 var d, e, f2;
81880 Odd(c2, "Processor determine the height for each level", 1);
81881 a.a = b.b.b == 0 ? 1 : b.b.b;
81882 e = null;
81883 d = Jsb(b.b, 0);
81884 while (!e && d.b != d.d.c) {
81885 f2 = BD(Xsb(d), 86);
81886 Ccb(DD(vNb(f2, (mTc(), jTc)))) && (e = f2);
81887 }
81888 !!e && ySc(a, Ou(OC(GC(q$, 1), fme, 86, 0, [e])), c2);
81889 Qdd(c2);
81890 }
81891 function brd(a, b) {
81892 var c2, d, e, f2, g, h, i3, j, k, l;
81893 j = a;
81894 i3 = $pd(j, "individualSpacings");
81895 if (i3) {
81896 d = ikd(b, (Y9c(), O9c));
81897 g = !d;
81898 if (g) {
81899 e = new _fd();
81900 jkd(b, O9c, e);
81901 }
81902 h = BD(hkd(b, O9c), 373);
81903 l = i3;
81904 f2 = null;
81905 !!l && (f2 = (k = $B(l, KC(ZI, nie, 2, 0, 6, 1)), new mC(l, k)));
81906 if (f2) {
81907 c2 = new Frd(l, h);
81908 reb(f2, c2);
81909 }
81910 }
81911 }
81912 function frd(a, b) {
81913 var c2, d, e, f2, g, h, i3, j, k, l, m;
81914 i3 = null;
81915 l = a;
81916 k = null;
81917 if (cue in l.a || due in l.a || Ote in l.a) {
81918 j = null;
81919 m = etd(b);
81920 g = $pd(l, cue);
81921 c2 = new Ird(m);
81922 Eqd(c2.a, g);
81923 h = $pd(l, due);
81924 d = new asd(m);
81925 Pqd(d.a, h);
81926 f2 = Ypd(l, Ote);
81927 e = new dsd(m);
81928 j = (Qqd(e.a, f2), f2);
81929 k = j;
81930 }
81931 i3 = k;
81932 return i3;
81933 }
81934 function $w(a, b) {
81935 var c2, d, e;
81936 if (b === a) {
81937 return true;
81938 }
81939 if (JD(b, 543)) {
81940 e = BD(b, 835);
81941 if (a.a.d != e.a.d || Ah(a).gc() != Ah(e).gc()) {
81942 return false;
81943 }
81944 for (d = Ah(e).Kc(); d.Ob(); ) {
81945 c2 = BD(d.Pb(), 416);
81946 if (Aw(a, c2.a.cd()) != BD(c2.a.dd(), 14).gc()) {
81947 return false;
81948 }
81949 }
81950 return true;
81951 }
81952 return false;
81953 }
81954 function BMb(a) {
81955 var b, c2, d, e;
81956 d = BD(a.a, 19).a;
81957 e = BD(a.b, 19).a;
81958 b = d;
81959 c2 = e;
81960 if (d == 0 && e == 0) {
81961 c2 -= 1;
81962 } else {
81963 if (d == -1 && e <= 0) {
81964 b = 0;
81965 c2 -= 2;
81966 } else {
81967 if (d <= 0 && e > 0) {
81968 b -= 1;
81969 c2 -= 1;
81970 } else {
81971 if (d >= 0 && e < 0) {
81972 b += 1;
81973 c2 += 1;
81974 } else {
81975 if (d > 0 && e >= 0) {
81976 b -= 1;
81977 c2 += 1;
81978 } else {
81979 b += 1;
81980 c2 -= 1;
81981 }
81982 }
81983 }
81984 }
81985 }
81986 return new vgd(meb(b), meb(c2));
81987 }
81988 function PIc(a, b) {
81989 if (a.c < b.c) {
81990 return -1;
81991 } else if (a.c > b.c) {
81992 return 1;
81993 } else if (a.b < b.b) {
81994 return -1;
81995 } else if (a.b > b.b) {
81996 return 1;
81997 } else if (a.a != b.a) {
81998 return tb(a.a) - tb(b.a);
81999 } else if (a.d == (UIc(), TIc) && b.d == SIc) {
82000 return -1;
82001 } else if (a.d == SIc && b.d == TIc) {
82002 return 1;
82003 }
82004 return 0;
82005 }
82006 function aNc(a, b) {
82007 var c2, d, e, f2, g;
82008 f2 = b.a;
82009 f2.c.i == b.b ? g = f2.d : g = f2.c;
82010 f2.c.i == b.b ? d = f2.c : d = f2.d;
82011 e = NLc(a.a, g, d);
82012 if (e > 0 && e < dme) {
82013 c2 = OLc(a.a, d.i, e, a.c);
82014 TLc(a.a, d.i, -c2);
82015 return c2 > 0;
82016 } else if (e < 0 && -e < dme) {
82017 c2 = PLc(a.a, d.i, -e, a.c);
82018 TLc(a.a, d.i, c2);
82019 return c2 > 0;
82020 }
82021 return false;
82022 }
82023 function RZc(a, b, c2, d) {
82024 var e, f2, g, h, i3, j, k, l;
82025 e = (b - a.d) / a.c.c.length;
82026 f2 = 0;
82027 a.a += c2;
82028 a.d = b;
82029 for (l = new olb(a.c); l.a < l.c.c.length; ) {
82030 k = BD(mlb(l), 33);
82031 j = k.g;
82032 i3 = k.f;
82033 dld(k, k.i + f2 * e);
82034 eld(k, k.j + d * c2);
82035 cld(k, k.g + e);
82036 ald(k, a.a);
82037 ++f2;
82038 h = k.g;
82039 g = k.f;
82040 Ffd(k, new f7c(h, g), new f7c(j, i3));
82041 }
82042 }
82043 function Xmd(a) {
82044 var b, c2, d, e, f2, g, h;
82045 if (a == null) {
82046 return null;
82047 }
82048 h = a.length;
82049 e = (h + 1) / 2 | 0;
82050 g = KC(SD, wte, 25, e, 15, 1);
82051 h % 2 != 0 && (g[--e] = jnd((BCb(h - 1, a.length), a.charCodeAt(h - 1))));
82052 for (c2 = 0, d = 0; c2 < e; ++c2) {
82053 b = jnd(bfb(a, d++));
82054 f2 = jnd(bfb(a, d++));
82055 g[c2] = (b << 4 | f2) << 24 >> 24;
82056 }
82057 return g;
82058 }
82059 function vdb(a) {
82060 if (a.pe()) {
82061 var b = a.c;
82062 b.qe() ? a.o = "[" + b.n : !b.pe() ? a.o = "[L" + b.ne() + ";" : a.o = "[" + b.ne();
82063 a.b = b.me() + "[]";
82064 a.k = b.oe() + "[]";
82065 return;
82066 }
82067 var c2 = a.j;
82068 var d = a.d;
82069 d = d.split("/");
82070 a.o = ydb(".", [c2, ydb("$", d)]);
82071 a.b = ydb(".", [c2, ydb(".", d)]);
82072 a.k = d[d.length - 1];
82073 }
82074 function qGb(a, b) {
82075 var c2, d, e, f2, g;
82076 g = null;
82077 for (f2 = new olb(a.e.a); f2.a < f2.c.c.length; ) {
82078 e = BD(mlb(f2), 121);
82079 if (e.b.a.c.length == e.g.a.c.length) {
82080 d = e.e;
82081 g = BGb(e);
82082 for (c2 = e.e - BD(g.a, 19).a + 1; c2 < e.e + BD(g.b, 19).a; c2++) {
82083 b[c2] < b[d] && (d = c2);
82084 }
82085 if (b[d] < b[e.e]) {
82086 --b[e.e];
82087 ++b[d];
82088 e.e = d;
82089 }
82090 }
82091 }
82092 }
82093 function SLc(a) {
82094 var b, c2, d, e, f2, g, h, i3;
82095 e = Pje;
82096 d = Qje;
82097 for (c2 = new olb(a.e.b); c2.a < c2.c.c.length; ) {
82098 b = BD(mlb(c2), 29);
82099 for (g = new olb(b.a); g.a < g.c.c.length; ) {
82100 f2 = BD(mlb(g), 10);
82101 i3 = Edb(a.p[f2.p]);
82102 h = i3 + Edb(a.b[a.g[f2.p].p]);
82103 e = $wnd.Math.min(e, i3);
82104 d = $wnd.Math.max(d, h);
82105 }
82106 }
82107 return d - e;
82108 }
82109 function r1d(a, b, c2, d) {
82110 var e, f2, g, h, j;
82111 e = f1d(a, b);
82112 for (h = 0, j = e.gc(); h < j; ++h) {
82113 f2 = BD(e.Xb(h), 170);
82114 if (dfb(d, a2d(q1d(a, f2)))) {
82115 g = b2d(q1d(a, f2));
82116 if (c2 == null) {
82117 if (g == null) {
82118 return f2;
82119 }
82120 } else if (dfb(c2, g)) {
82121 return f2;
82122 } else
82123 ;
82124 }
82125 }
82126 return null;
82127 }
82128 function s1d(a, b, c2, d) {
82129 var e, f2, g, h, j;
82130 e = g1d(a, b);
82131 for (h = 0, j = e.gc(); h < j; ++h) {
82132 f2 = BD(e.Xb(h), 170);
82133 if (dfb(d, a2d(q1d(a, f2)))) {
82134 g = b2d(q1d(a, f2));
82135 if (c2 == null) {
82136 if (g == null) {
82137 return f2;
82138 }
82139 } else if (dfb(c2, g)) {
82140 return f2;
82141 } else
82142 ;
82143 }
82144 }
82145 return null;
82146 }
82147 function p3d(a, b, c2) {
82148 var d, e, f2, g, h, i3;
82149 g = new yud();
82150 h = S6d(a.e.Tg(), b);
82151 d = BD(a.g, 119);
82152 Q6d();
82153 if (BD(b, 66).Oj()) {
82154 for (f2 = 0; f2 < a.i; ++f2) {
82155 e = d[f2];
82156 h.rl(e.ak()) && wtd(g, e);
82157 }
82158 } else {
82159 for (f2 = 0; f2 < a.i; ++f2) {
82160 e = d[f2];
82161 if (h.rl(e.ak())) {
82162 i3 = e.dd();
82163 wtd(g, c2 ? b3d(a, b, f2, g.i, i3) : i3);
82164 }
82165 }
82166 }
82167 return wud(g);
82168 }
82169 function T9b(a, b) {
82170 var c2, d, e, f2, g;
82171 c2 = new Rpb(EW);
82172 for (e = (Apc(), OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc])), f2 = 0, g = e.length; f2 < g; ++f2) {
82173 d = e[f2];
82174 Opb(c2, d, new Rkb());
82175 }
82176 MAb(NAb(JAb(LAb(new YAb(null, new Kub(a.b, 16)), new hac()), new jac()), new lac(b)), new nac(c2));
82177 return c2;
82178 }
82179 function AVc(a, b, c2) {
82180 var d, e, f2, g, h, i3, j, k, l, m;
82181 for (f2 = b.Kc(); f2.Ob(); ) {
82182 e = BD(f2.Pb(), 33);
82183 k = e.i + e.g / 2;
82184 m = e.j + e.f / 2;
82185 i3 = a.f;
82186 g = i3.i + i3.g / 2;
82187 h = i3.j + i3.f / 2;
82188 j = k - g;
82189 l = m - h;
82190 d = $wnd.Math.sqrt(j * j + l * l);
82191 j *= a.e / d;
82192 l *= a.e / d;
82193 if (c2) {
82194 k -= j;
82195 m -= l;
82196 } else {
82197 k += j;
82198 m += l;
82199 }
82200 dld(e, k - e.g / 2);
82201 eld(e, m - e.f / 2);
82202 }
82203 }
82204 function Yfe(a) {
82205 var b, c2, d;
82206 if (a.c)
82207 return;
82208 if (a.b == null)
82209 return;
82210 for (b = a.b.length - 4; b >= 0; b -= 2) {
82211 for (c2 = 0; c2 <= b; c2 += 2) {
82212 if (a.b[c2] > a.b[c2 + 2] || a.b[c2] === a.b[c2 + 2] && a.b[c2 + 1] > a.b[c2 + 3]) {
82213 d = a.b[c2 + 2];
82214 a.b[c2 + 2] = a.b[c2];
82215 a.b[c2] = d;
82216 d = a.b[c2 + 3];
82217 a.b[c2 + 3] = a.b[c2 + 1];
82218 a.b[c2 + 1] = d;
82219 }
82220 }
82221 }
82222 a.c = true;
82223 }
82224 function UUb(a, b) {
82225 var c2, d, e, f2, g, h, i3, j;
82226 g = b == 1 ? KUb : JUb;
82227 for (f2 = g.a.ec().Kc(); f2.Ob(); ) {
82228 e = BD(f2.Pb(), 103);
82229 for (i3 = BD(Qc(a.f.c, e), 21).Kc(); i3.Ob(); ) {
82230 h = BD(i3.Pb(), 46);
82231 d = BD(h.b, 81);
82232 j = BD(h.a, 189);
82233 c2 = j.c;
82234 switch (e.g) {
82235 case 2:
82236 case 1:
82237 d.g.d += c2;
82238 break;
82239 case 4:
82240 case 3:
82241 d.g.c += c2;
82242 }
82243 }
82244 }
82245 }
82246 function PFc(a, b) {
82247 var c2, d, e, f2, g, h, i3, j, k;
82248 j = -1;
82249 k = 0;
82250 for (g = a, h = 0, i3 = g.length; h < i3; ++h) {
82251 f2 = g[h];
82252 c2 = new Dnc(j == -1 ? a[0] : a[j], b, (xzc(), wzc));
82253 for (d = 0; d < f2.length; d++) {
82254 for (e = d + 1; e < f2.length; e++) {
82255 wNb(f2[d], (wtc(), Zsc)) && wNb(f2[e], Zsc) && ync(c2, f2[d], f2[e]) > 0 && ++k;
82256 }
82257 }
82258 ++j;
82259 }
82260 return k;
82261 }
82262 function Eid(a) {
82263 var b, c2;
82264 c2 = new Wfb(hdb(a.gm));
82265 c2.a += "@";
82266 Qfb(c2, (b = tb(a) >>> 0, b.toString(16)));
82267 if (a.kh()) {
82268 c2.a += " (eProxyURI: ";
82269 Pfb(c2, a.qh());
82270 if (a.$g()) {
82271 c2.a += " eClass: ";
82272 Pfb(c2, a.$g());
82273 }
82274 c2.a += ")";
82275 } else if (a.$g()) {
82276 c2.a += " (eClass: ";
82277 Pfb(c2, a.$g());
82278 c2.a += ")";
82279 }
82280 return c2.a;
82281 }
82282 function TDb(a) {
82283 var b, c2, d, e;
82284 if (a.e) {
82285 throw vbb(new Zdb((fdb(TM), Jke + TM.k + Kke)));
82286 }
82287 a.d == (ead(), cad) && SDb(a, aad);
82288 for (c2 = new olb(a.a.a); c2.a < c2.c.c.length; ) {
82289 b = BD(mlb(c2), 307);
82290 b.g = b.i;
82291 }
82292 for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
82293 d = BD(mlb(e), 57);
82294 d.i = Qje;
82295 }
82296 a.b.Le(a);
82297 return a;
82298 }
82299 function TPc(a, b) {
82300 var c2, d, e, f2, g;
82301 if (b < 2 * a.b) {
82302 throw vbb(new Wdb("The knot vector must have at least two time the dimension elements."));
82303 }
82304 a.f = 1;
82305 for (e = 0; e < a.b; e++) {
82306 Ekb(a.e, 0);
82307 }
82308 g = b + 1 - 2 * a.b;
82309 c2 = g;
82310 for (f2 = 1; f2 < g; f2++) {
82311 Ekb(a.e, f2 / c2);
82312 }
82313 if (a.d) {
82314 for (d = 0; d < a.b; d++) {
82315 Ekb(a.e, 1);
82316 }
82317 }
82318 }
82319 function ard(a, b) {
82320 var c2, d, e, f2, g, h, i3, j, k;
82321 j = b;
82322 k = BD(_o(qo(a.i), j), 33);
82323 if (!k) {
82324 e = _pd(j, Vte);
82325 h = "Unable to find elk node for json object '" + e;
82326 i3 = h + "' Panic!";
82327 throw vbb(new cqd(i3));
82328 }
82329 f2 = Ypd(j, "edges");
82330 c2 = new krd(a, k);
82331 mqd(c2.a, c2.b, f2);
82332 g = Ypd(j, Jte);
82333 d = new vrd(a);
82334 xqd(d.a, g);
82335 }
82336 function xAd(a, b, c2, d) {
82337 var e, f2, g, h, i3;
82338 if (d != null) {
82339 e = a.d[b];
82340 if (e) {
82341 f2 = e.g;
82342 i3 = e.i;
82343 for (h = 0; h < i3; ++h) {
82344 g = BD(f2[h], 133);
82345 if (g.Sh() == c2 && pb(d, g.cd())) {
82346 return h;
82347 }
82348 }
82349 }
82350 } else {
82351 e = a.d[b];
82352 if (e) {
82353 f2 = e.g;
82354 i3 = e.i;
82355 for (h = 0; h < i3; ++h) {
82356 g = BD(f2[h], 133);
82357 if (PD(g.cd()) === PD(d)) {
82358 return h;
82359 }
82360 }
82361 }
82362 }
82363 return -1;
82364 }
82365 function nUd(a, b) {
82366 var c2, d, e;
82367 c2 = b == null ? Wd(irb(a.f, null)) : Crb(a.g, b);
82368 if (JD(c2, 235)) {
82369 e = BD(c2, 235);
82370 e.Qh() == null && void 0;
82371 return e;
82372 } else if (JD(c2, 498)) {
82373 d = BD(c2, 1938);
82374 e = d.a;
82375 !!e && (e.yb == null ? void 0 : b == null ? jrb(a.f, null, e) : Drb(a.g, b, e));
82376 return e;
82377 } else {
82378 return null;
82379 }
82380 }
82381 function ide(a) {
82382 hde();
82383 var b, c2, d, e, f2, g, h;
82384 if (a == null)
82385 return null;
82386 e = a.length;
82387 if (e % 2 != 0)
82388 return null;
82389 b = rfb(a);
82390 f2 = e / 2 | 0;
82391 c2 = KC(SD, wte, 25, f2, 15, 1);
82392 for (d = 0; d < f2; d++) {
82393 g = fde[b[d * 2]];
82394 if (g == -1)
82395 return null;
82396 h = fde[b[d * 2 + 1]];
82397 if (h == -1)
82398 return null;
82399 c2[d] = (g << 4 | h) << 24 >> 24;
82400 }
82401 return c2;
82402 }
82403 function lKb(a, b, c2) {
82404 var d, e, f2;
82405 e = BD(Mpb(a.i, b), 306);
82406 if (!e) {
82407 e = new bIb(a.d, b, c2);
82408 Npb(a.i, b, e);
82409 if (sJb(b)) {
82410 CHb(a.a, b.c, b.b, e);
82411 } else {
82412 f2 = rJb(b);
82413 d = BD(Mpb(a.p, f2), 244);
82414 switch (f2.g) {
82415 case 1:
82416 case 3:
82417 e.j = true;
82418 lIb(d, b.b, e);
82419 break;
82420 case 4:
82421 case 2:
82422 e.k = true;
82423 lIb(d, b.c, e);
82424 }
82425 }
82426 }
82427 return e;
82428 }
82429 function r3d(a, b, c2, d) {
82430 var e, f2, g, h, i3, j;
82431 h = new yud();
82432 i3 = S6d(a.e.Tg(), b);
82433 e = BD(a.g, 119);
82434 Q6d();
82435 if (BD(b, 66).Oj()) {
82436 for (g = 0; g < a.i; ++g) {
82437 f2 = e[g];
82438 i3.rl(f2.ak()) && wtd(h, f2);
82439 }
82440 } else {
82441 for (g = 0; g < a.i; ++g) {
82442 f2 = e[g];
82443 if (i3.rl(f2.ak())) {
82444 j = f2.dd();
82445 wtd(h, d ? b3d(a, b, g, h.i, j) : j);
82446 }
82447 }
82448 }
82449 return xud(h, c2);
82450 }
82451 function YCc(a, b) {
82452 var c2, d, e, f2, g, h, i3, j;
82453 e = a.b[b.p];
82454 if (e >= 0) {
82455 return e;
82456 } else {
82457 f2 = 1;
82458 for (h = new olb(b.j); h.a < h.c.c.length; ) {
82459 g = BD(mlb(h), 11);
82460 for (d = new olb(g.g); d.a < d.c.c.length; ) {
82461 c2 = BD(mlb(d), 17);
82462 j = c2.d.i;
82463 if (b != j) {
82464 i3 = YCc(a, j);
82465 f2 = $wnd.Math.max(f2, i3 + 1);
82466 }
82467 }
82468 }
82469 XCc(a, b, f2);
82470 return f2;
82471 }
82472 }
82473 function YGc(a, b, c2) {
82474 var d, e, f2;
82475 for (d = 1; d < a.c.length; d++) {
82476 f2 = (tCb(d, a.c.length), BD(a.c[d], 10));
82477 e = d;
82478 while (e > 0 && b.ue((tCb(e - 1, a.c.length), BD(a.c[e - 1], 10)), f2) > 0) {
82479 Nkb(a, e, (tCb(e - 1, a.c.length), BD(a.c[e - 1], 10)));
82480 --e;
82481 }
82482 tCb(e, a.c.length);
82483 a.c[e] = f2;
82484 }
82485 c2.a = new Lqb();
82486 c2.b = new Lqb();
82487 }
82488 function n5c(a, b, c2) {
82489 var d, e, f2, g, h, i3, j, k;
82490 k = (d = BD(b.e && b.e(), 9), new xqb(d, BD(_Bb(d, d.length), 9), 0));
82491 i3 = mfb(c2, "[\\[\\]\\s,]+");
82492 for (f2 = i3, g = 0, h = f2.length; g < h; ++g) {
82493 e = f2[g];
82494 if (ufb(e).length == 0) {
82495 continue;
82496 }
82497 j = m5c(a, e);
82498 if (j == null) {
82499 return null;
82500 } else {
82501 rqb(k, BD(j, 22));
82502 }
82503 }
82504 return k;
82505 }
82506 function KVb(a) {
82507 var b, c2, d;
82508 for (c2 = new olb(a.a.a.b); c2.a < c2.c.c.length; ) {
82509 b = BD(mlb(c2), 81);
82510 d = (uCb(0), 0);
82511 if (d > 0) {
82512 !(fad(a.a.c) && b.n.d) && !(gad(a.a.c) && b.n.b) && (b.g.d -= $wnd.Math.max(0, d / 2 - 0.5));
82513 !(fad(a.a.c) && b.n.a) && !(gad(a.a.c) && b.n.c) && (b.g.a += $wnd.Math.max(0, d - 1));
82514 }
82515 }
82516 }
82517 function Hac(a, b, c2) {
82518 var d, e;
82519 if ((a.c - a.b & a.a.length - 1) == 2) {
82520 if (b == (Ucd(), Acd) || b == zcd) {
82521 xac(BD(bkb(a), 15), (rbd(), nbd));
82522 xac(BD(bkb(a), 15), obd);
82523 } else {
82524 xac(BD(bkb(a), 15), (rbd(), obd));
82525 xac(BD(bkb(a), 15), nbd);
82526 }
82527 } else {
82528 for (e = new xkb(a); e.a != e.b; ) {
82529 d = BD(vkb(e), 15);
82530 xac(d, c2);
82531 }
82532 }
82533 }
82534 function htd(a, b) {
82535 var c2, d, e, f2, g, h, i3;
82536 e = Nu(new qtd(a));
82537 h = new Bib(e, e.c.length);
82538 f2 = Nu(new qtd(b));
82539 i3 = new Bib(f2, f2.c.length);
82540 g = null;
82541 while (h.b > 0 && i3.b > 0) {
82542 c2 = (sCb(h.b > 0), BD(h.a.Xb(h.c = --h.b), 33));
82543 d = (sCb(i3.b > 0), BD(i3.a.Xb(i3.c = --i3.b), 33));
82544 if (c2 == d) {
82545 g = c2;
82546 } else {
82547 break;
82548 }
82549 }
82550 return g;
82551 }
82552 function Cub(a, b) {
82553 var c2, d, e, f2, g, h;
82554 f2 = a.a * kke + a.b * 1502;
82555 h = a.b * kke + 11;
82556 c2 = $wnd.Math.floor(h * lke);
82557 f2 += c2;
82558 h -= c2 * mke;
82559 f2 %= mke;
82560 a.a = f2;
82561 a.b = h;
82562 if (b <= 24) {
82563 return $wnd.Math.floor(a.a * wub[b]);
82564 } else {
82565 e = a.a * (1 << b - 24);
82566 g = $wnd.Math.floor(a.b * xub[b]);
82567 d = e + g;
82568 d >= 2147483648 && (d -= Zje);
82569 return d;
82570 }
82571 }
82572 function Zic(a, b, c2) {
82573 var d, e, f2, g;
82574 if (bjc(a, b) > bjc(a, c2)) {
82575 d = V_b(c2, (Ucd(), zcd));
82576 a.d = d.dc() ? 0 : B0b(BD(d.Xb(0), 11));
82577 g = V_b(b, Tcd);
82578 a.b = g.dc() ? 0 : B0b(BD(g.Xb(0), 11));
82579 } else {
82580 e = V_b(c2, (Ucd(), Tcd));
82581 a.d = e.dc() ? 0 : B0b(BD(e.Xb(0), 11));
82582 f2 = V_b(b, zcd);
82583 a.b = f2.dc() ? 0 : B0b(BD(f2.Xb(0), 11));
82584 }
82585 }
82586 function l6d(a) {
82587 var b, c2, d, e, f2, g, h;
82588 if (a) {
82589 b = a.Hh(_ve);
82590 if (b) {
82591 g = GD(AAd((!b.b && (b.b = new sId((jGd(), fGd), x6, b)), b.b), "conversionDelegates"));
82592 if (g != null) {
82593 h = new Rkb();
82594 for (d = mfb(g, "\\w+"), e = 0, f2 = d.length; e < f2; ++e) {
82595 c2 = d[e];
82596 h.c[h.c.length] = c2;
82597 }
82598 return h;
82599 }
82600 }
82601 }
82602 return mmb(), mmb(), jmb;
82603 }
82604 function FKb(a, b) {
82605 var c2, d, e, f2;
82606 c2 = a.o.a;
82607 for (f2 = BD(BD(Qc(a.r, b), 21), 84).Kc(); f2.Ob(); ) {
82608 e = BD(f2.Pb(), 111);
82609 e.e.a = c2 * Edb(ED(e.b.We(BKb)));
82610 e.e.b = (d = e.b, d.Xe((Y9c(), s9c)) ? d.Hf() == (Ucd(), Acd) ? -d.rf().b - Edb(ED(d.We(s9c))) : Edb(ED(d.We(s9c))) : d.Hf() == (Ucd(), Acd) ? -d.rf().b : 0);
82611 }
82612 }
82613 function Woc(a) {
82614 var b, c2, d, e, f2, g, h, i3;
82615 b = true;
82616 e = null;
82617 f2 = null;
82618 j:
82619 for (i3 = new olb(a.a); i3.a < i3.c.c.length; ) {
82620 h = BD(mlb(i3), 10);
82621 for (d = new Sr(ur(R_b(h).a.Kc(), new Sq())); Qr(d); ) {
82622 c2 = BD(Rr(d), 17);
82623 if (!!e && e != h) {
82624 b = false;
82625 break j;
82626 }
82627 e = h;
82628 g = c2.c.i;
82629 if (!!f2 && f2 != g) {
82630 b = false;
82631 break j;
82632 }
82633 f2 = g;
82634 }
82635 }
82636 return b;
82637 }
82638 function OOc(a, b, c2) {
82639 var d, e, f2, g, h, i3;
82640 f2 = -1;
82641 h = -1;
82642 for (g = 0; g < b.c.length; g++) {
82643 e = (tCb(g, b.c.length), BD(b.c[g], 329));
82644 if (e.c > a.c) {
82645 break;
82646 } else if (e.a >= a.s) {
82647 f2 < 0 && (f2 = g);
82648 h = g;
82649 }
82650 }
82651 i3 = (a.s + a.c) / 2;
82652 if (f2 >= 0) {
82653 d = NOc(a, b, f2, h);
82654 i3 = $Oc((tCb(d, b.c.length), BD(b.c[d], 329)));
82655 YOc(b, d, c2);
82656 }
82657 return i3;
82658 }
82659 function lZc() {
82660 lZc = ccb;
82661 RYc = new Osd((Y9c(), r8c), 1.3);
82662 VYc = I8c;
82663 gZc = new q0b(15);
82664 fZc = new Osd(f9c, gZc);
82665 jZc = new Osd(T9c, 15);
82666 SYc = w8c;
82667 _Yc = Y8c;
82668 aZc = _8c;
82669 bZc = b9c;
82670 $Yc = W8c;
82671 cZc = e9c;
82672 hZc = x9c;
82673 eZc = (OYc(), KYc);
82674 ZYc = IYc;
82675 dZc = JYc;
82676 iZc = MYc;
82677 WYc = HYc;
82678 XYc = O8c;
82679 YYc = P8c;
82680 UYc = GYc;
82681 TYc = FYc;
82682 kZc = NYc;
82683 }
82684 function Bnd(a, b, c2) {
82685 var d, e, f2, g, h, i3, j;
82686 g = (f2 = new RHd(), f2);
82687 PHd(g, (uCb(b), b));
82688 j = (!g.b && (g.b = new sId((jGd(), fGd), x6, g)), g.b);
82689 for (i3 = 1; i3 < c2.length; i3 += 2) {
82690 HAd(j, c2[i3 - 1], c2[i3]);
82691 }
82692 d = (!a.Ab && (a.Ab = new cUd(a5, a, 0, 3)), a.Ab);
82693 for (h = 0; h < 0; ++h) {
82694 e = LHd(BD(qud(d, d.i - 1), 590));
82695 d = e;
82696 }
82697 wtd(d, g);
82698 }
82699 function MPb(a, b, c2) {
82700 var d, e, f2;
82701 sNb.call(this, new Rkb());
82702 this.a = b;
82703 this.b = c2;
82704 this.e = a;
82705 d = (a.b && LOb(a), a.a);
82706 this.d = KPb(d.a, this.a);
82707 this.c = KPb(d.b, this.b);
82708 kNb(this, this.d, this.c);
82709 LPb(this);
82710 for (f2 = this.e.e.a.ec().Kc(); f2.Ob(); ) {
82711 e = BD(f2.Pb(), 266);
82712 e.c.c.length > 0 && JPb(this, e);
82713 }
82714 }
82715 function IQb(a, b, c2, d, e, f2) {
82716 var g, h, i3;
82717 if (!e[b.b]) {
82718 e[b.b] = true;
82719 g = d;
82720 !g && (g = new kRb());
82721 Ekb(g.e, b);
82722 for (i3 = f2[b.b].Kc(); i3.Ob(); ) {
82723 h = BD(i3.Pb(), 282);
82724 if (h.d == c2 || h.c == c2) {
82725 continue;
82726 }
82727 h.c != b && IQb(a, h.c, b, g, e, f2);
82728 h.d != b && IQb(a, h.d, b, g, e, f2);
82729 Ekb(g.c, h);
82730 Gkb(g.d, h.b);
82731 }
82732 return g;
82733 }
82734 return null;
82735 }
82736 function e4b(a) {
82737 var b, c2, d, e, f2, g, h;
82738 b = 0;
82739 for (e = new olb(a.e); e.a < e.c.c.length; ) {
82740 d = BD(mlb(e), 17);
82741 c2 = FAb(new YAb(null, new Kub(d.b, 16)), new w4b());
82742 c2 && ++b;
82743 }
82744 for (g = new olb(a.g); g.a < g.c.c.length; ) {
82745 f2 = BD(mlb(g), 17);
82746 h = FAb(new YAb(null, new Kub(f2.b, 16)), new y4b());
82747 h && ++b;
82748 }
82749 return b >= 2;
82750 }
82751 function gec(a, b) {
82752 var c2, d, e, f2;
82753 Odd(b, "Self-Loop pre-processing", 1);
82754 for (d = new olb(a.a); d.a < d.c.c.length; ) {
82755 c2 = BD(mlb(d), 10);
82756 if (Ljc(c2)) {
82757 e = (f2 = new Kjc(c2), yNb(c2, (wtc(), ntc), f2), Hjc(f2), f2);
82758 MAb(NAb(LAb(new YAb(null, new Kub(e.d, 16)), new jec()), new lec()), new nec());
82759 eec(e);
82760 }
82761 }
82762 Qdd(b);
82763 }
82764 function vnc(a, b, c2, d, e) {
82765 var f2, g, h, i3, j, k;
82766 f2 = a.c.d.j;
82767 g = BD(Ut(c2, 0), 8);
82768 for (k = 1; k < c2.b; k++) {
82769 j = BD(Ut(c2, k), 8);
82770 Gsb(d, g, d.c.b, d.c);
82771 h = Y6c(P6c(new g7c(g), j), 0.5);
82772 i3 = Y6c(new e7c(bRc(f2)), e);
82773 P6c(h, i3);
82774 Gsb(d, h, d.c.b, d.c);
82775 g = j;
82776 f2 = b == 0 ? Xcd(f2) : Vcd(f2);
82777 }
82778 Dsb(d, (sCb(c2.b != 0), BD(c2.c.b.c, 8)));
82779 }
82780 function Jbd(a) {
82781 Hbd();
82782 var b, c2, d;
82783 c2 = qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Dbd]));
82784 if (Ox(Cx(c2, a)) > 1) {
82785 return false;
82786 }
82787 b = qqb(zbd, OC(GC(B1, 1), Kie, 93, 0, [ybd, Bbd]));
82788 if (Ox(Cx(b, a)) > 1) {
82789 return false;
82790 }
82791 d = qqb(Gbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, Ebd]));
82792 if (Ox(Cx(d, a)) > 1) {
82793 return false;
82794 }
82795 return true;
82796 }
82797 function U0d(a, b) {
82798 var c2, d, e;
82799 c2 = b.Hh(a.a);
82800 if (c2) {
82801 e = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), "affiliation"));
82802 if (e != null) {
82803 d = kfb(e, wfb(35));
82804 return d == -1 ? l1d(a, u1d(a, bKd(b.Hj())), e) : d == 0 ? l1d(a, null, e.substr(1)) : l1d(a, e.substr(0, d), e.substr(d + 1));
82805 }
82806 }
82807 return null;
82808 }
82809 function ic(b) {
82810 var c2, d, e;
82811 try {
82812 return b == null ? Xhe : fcb(b);
82813 } catch (a) {
82814 a = ubb(a);
82815 if (JD(a, 102)) {
82816 c2 = a;
82817 e = hdb(rb(b)) + "@" + (d = (Zfb(), kCb(b)) >>> 0, d.toString(16));
82818 tyb(xyb(), ($xb(), "Exception during lenientFormat for " + e), c2);
82819 return "<" + e + " threw " + hdb(c2.gm) + ">";
82820 } else
82821 throw vbb(a);
82822 }
82823 }
82824 function mzc(a) {
82825 switch (a.g) {
82826 case 0:
82827 return new xDc();
82828 case 1:
82829 return new ZCc();
82830 case 2:
82831 return new DCc();
82832 case 3:
82833 return new QCc();
82834 case 4:
82835 return new LDc();
82836 case 5:
82837 return new iDc();
82838 default:
82839 throw vbb(new Wdb("No implementation is available for the layerer " + (a.f != null ? a.f : "" + a.g)));
82840 }
82841 }
82842 function AQc(a, b, c2) {
82843 var d, e, f2;
82844 for (f2 = new olb(a.t); f2.a < f2.c.c.length; ) {
82845 d = BD(mlb(f2), 268);
82846 if (d.b.s < 0 && d.c > 0) {
82847 d.b.n -= d.c;
82848 d.b.n <= 0 && d.b.u > 0 && Dsb(b, d.b);
82849 }
82850 }
82851 for (e = new olb(a.i); e.a < e.c.c.length; ) {
82852 d = BD(mlb(e), 268);
82853 if (d.a.s < 0 && d.c > 0) {
82854 d.a.u -= d.c;
82855 d.a.u <= 0 && d.a.n > 0 && Dsb(c2, d.a);
82856 }
82857 }
82858 }
82859 function Vud(a) {
82860 var b, c2, d, e, f2;
82861 if (a.g == null) {
82862 a.d = a.si(a.f);
82863 wtd(a, a.d);
82864 if (a.c) {
82865 f2 = a.f;
82866 return f2;
82867 }
82868 }
82869 b = BD(a.g[a.i - 1], 47);
82870 e = b.Pb();
82871 a.e = b;
82872 c2 = a.si(e);
82873 if (c2.Ob()) {
82874 a.d = c2;
82875 wtd(a, c2);
82876 } else {
82877 a.d = null;
82878 while (!b.Ob()) {
82879 NC(a.g, --a.i, null);
82880 if (a.i == 0) {
82881 break;
82882 }
82883 d = BD(a.g[a.i - 1], 47);
82884 b = d;
82885 }
82886 }
82887 return e;
82888 }
82889 function r2d(a, b) {
82890 var c2, d, e, f2, g, h;
82891 d = b;
82892 e = d.ak();
82893 if (T6d(a.e, e)) {
82894 if (e.hi() && E2d(a, e, d.dd())) {
82895 return false;
82896 }
82897 } else {
82898 h = S6d(a.e.Tg(), e);
82899 c2 = BD(a.g, 119);
82900 for (f2 = 0; f2 < a.i; ++f2) {
82901 g = c2[f2];
82902 if (h.rl(g.ak())) {
82903 if (pb(g, d)) {
82904 return false;
82905 } else {
82906 BD(Gtd(a, f2, b), 72);
82907 return true;
82908 }
82909 }
82910 }
82911 }
82912 return wtd(a, b);
82913 }
82914 function r9b(a, b, c2, d) {
82915 var e, f2, g, h;
82916 e = new b0b(a);
82917 __b(e, (j0b(), f0b));
82918 yNb(e, (wtc(), $sc), b);
82919 yNb(e, ktc, d);
82920 yNb(e, (Nyc(), Vxc), (dcd(), $bd));
82921 yNb(e, Vsc, b.c);
82922 yNb(e, Wsc, b.d);
82923 zbc(b, e);
82924 h = $wnd.Math.floor(c2 / 2);
82925 for (g = new olb(e.j); g.a < g.c.c.length; ) {
82926 f2 = BD(mlb(g), 11);
82927 f2.n.b = h;
82928 }
82929 return e;
82930 }
82931 function wac(a, b) {
82932 var c2, d, e, f2, g, h, i3, j, k;
82933 i3 = Pu(a.c - a.b & a.a.length - 1);
82934 j = null;
82935 k = null;
82936 for (f2 = new xkb(a); f2.a != f2.b; ) {
82937 e = BD(vkb(f2), 10);
82938 c2 = (h = BD(vNb(e, (wtc(), Vsc)), 11), !h ? null : h.i);
82939 d = (g = BD(vNb(e, Wsc), 11), !g ? null : g.i);
82940 if (j != c2 || k != d) {
82941 Aac(i3, b);
82942 j = c2;
82943 k = d;
82944 }
82945 i3.c[i3.c.length] = e;
82946 }
82947 Aac(i3, b);
82948 }
82949 function HNc(a) {
82950 var b, c2, d, e, f2, g, h;
82951 b = 0;
82952 for (d = new olb(a.a); d.a < d.c.c.length; ) {
82953 c2 = BD(mlb(d), 10);
82954 for (f2 = new Sr(ur(U_b(c2).a.Kc(), new Sq())); Qr(f2); ) {
82955 e = BD(Rr(f2), 17);
82956 if (a == e.d.i.c && e.c.j == (Ucd(), Tcd)) {
82957 g = A0b(e.c).b;
82958 h = A0b(e.d).b;
82959 b = $wnd.Math.max(b, $wnd.Math.abs(h - g));
82960 }
82961 }
82962 }
82963 return b;
82964 }
82965 function aWc(a, b, c2) {
82966 var d, e, f2;
82967 Odd(c2, "Remove overlaps", 1);
82968 c2.n && !!b && Tdd(c2, i6d(b), (pgd(), mgd));
82969 d = BD(hkd(b, (MUc(), LUc)), 33);
82970 a.f = d;
82971 a.a = tXc(BD(hkd(b, (ZWc(), WWc)), 293));
82972 e = ED(hkd(b, (Y9c(), T9c)));
82973 FVc(a, (uCb(e), e));
82974 f2 = gVc(d);
82975 _Vc(a, b, f2, c2);
82976 c2.n && !!b && Tdd(c2, i6d(b), (pgd(), mgd));
82977 }
82978 function aYb(a, b, c2) {
82979 switch (c2.g) {
82980 case 1:
82981 return new f7c(b.a, $wnd.Math.min(a.d.b, b.b));
82982 case 2:
82983 return new f7c($wnd.Math.max(a.c.a, b.a), b.b);
82984 case 3:
82985 return new f7c(b.a, $wnd.Math.max(a.c.b, b.b));
82986 case 4:
82987 return new f7c($wnd.Math.min(b.a, a.d.a), b.b);
82988 }
82989 return new f7c(b.a, b.b);
82990 }
82991 function mFc(a, b, c2, d) {
82992 var e, f2, g, h, i3, j, k, l, m;
82993 l = d ? (Ucd(), Tcd) : (Ucd(), zcd);
82994 e = false;
82995 for (i3 = b[c2], j = 0, k = i3.length; j < k; ++j) {
82996 h = i3[j];
82997 if (ecd(BD(vNb(h, (Nyc(), Vxc)), 98))) {
82998 continue;
82999 }
83000 g = h.e;
83001 m = !V_b(h, l).dc() && !!g;
83002 if (m) {
83003 f2 = WZb(g);
83004 a.b = new sic(f2, d ? 0 : f2.length - 1);
83005 }
83006 e = e | nFc(a, h, l, m);
83007 }
83008 return e;
83009 }
83010 function $sd(a) {
83011 var b, c2, d;
83012 b = Pu(1 + (!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c).i);
83013 Ekb(b, (!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d));
83014 for (d = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); d.e != d.i.gc(); ) {
83015 c2 = BD(Dyd(d), 118);
83016 Ekb(b, (!c2.d && (c2.d = new y5d(B2, c2, 8, 5)), c2.d));
83017 }
83018 return Qb(b), new sl(b);
83019 }
83020 function _sd(a) {
83021 var b, c2, d;
83022 b = Pu(1 + (!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c).i);
83023 Ekb(b, (!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e));
83024 for (d = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); d.e != d.i.gc(); ) {
83025 c2 = BD(Dyd(d), 118);
83026 Ekb(b, (!c2.e && (c2.e = new y5d(B2, c2, 7, 4)), c2.e));
83027 }
83028 return Qb(b), new sl(b);
83029 }
83030 function M9d(a) {
83031 var b, c2, d, e;
83032 if (a == null) {
83033 return null;
83034 } else {
83035 d = Qge(a, true);
83036 e = Nwe.length;
83037 if (dfb(d.substr(d.length - e, e), Nwe)) {
83038 c2 = d.length;
83039 if (c2 == 4) {
83040 b = (BCb(0, d.length), d.charCodeAt(0));
83041 if (b == 43) {
83042 return x9d;
83043 } else if (b == 45) {
83044 return w9d;
83045 }
83046 } else if (c2 == 3) {
83047 return x9d;
83048 }
83049 }
83050 return Hcb(d);
83051 }
83052 }
83053 function aKc(a) {
83054 var b, c2, d, e;
83055 b = 0;
83056 c2 = 0;
83057 for (e = new olb(a.j); e.a < e.c.c.length; ) {
83058 d = BD(mlb(e), 11);
83059 b = Tbb(wbb(b, HAb(JAb(new YAb(null, new Kub(d.e, 16)), new nLc()))));
83060 c2 = Tbb(wbb(c2, HAb(JAb(new YAb(null, new Kub(d.g, 16)), new pLc()))));
83061 if (b > 1 || c2 > 1) {
83062 return 2;
83063 }
83064 }
83065 if (b + c2 == 1) {
83066 return 2;
83067 }
83068 return 0;
83069 }
83070 function WQb(a, b, c2) {
83071 var d, e, f2, g, h;
83072 Odd(c2, "ELK Force", 1);
83073 Ccb(DD(hkd(b, (wSb(), jSb)))) || $Cb((d = new _Cb((Pgd(), new bhd(b))), d));
83074 h = TQb(b);
83075 XQb(h);
83076 YQb(a, BD(vNb(h, fSb), 424));
83077 g = LQb(a.a, h);
83078 for (f2 = g.Kc(); f2.Ob(); ) {
83079 e = BD(f2.Pb(), 231);
83080 tRb(a.b, e, Udd(c2, 1 / g.gc()));
83081 }
83082 h = KQb(g);
83083 SQb(h);
83084 Qdd(c2);
83085 }
83086 function yoc(a, b) {
83087 var c2, d, e, f2, g;
83088 Odd(b, "Breaking Point Processor", 1);
83089 xoc(a);
83090 if (Ccb(DD(vNb(a, (Nyc(), Jyc))))) {
83091 for (e = new olb(a.b); e.a < e.c.c.length; ) {
83092 d = BD(mlb(e), 29);
83093 c2 = 0;
83094 for (g = new olb(d.a); g.a < g.c.c.length; ) {
83095 f2 = BD(mlb(g), 10);
83096 f2.p = c2++;
83097 }
83098 }
83099 soc(a);
83100 toc(a, true);
83101 toc(a, false);
83102 }
83103 Qdd(b);
83104 }
83105 function $1c(a, b, c2) {
83106 var d, e, f2, g, h, i3;
83107 h = a.c;
83108 for (g = (!c2.q ? (mmb(), mmb(), kmb) : c2.q).vc().Kc(); g.Ob(); ) {
83109 f2 = BD(g.Pb(), 42);
83110 d = !WAb(JAb(new YAb(null, new Kub(h, 16)), new Xxb(new m2c(b, f2)))).sd((EAb(), DAb));
83111 if (d) {
83112 i3 = f2.dd();
83113 if (JD(i3, 4)) {
83114 e = fvd(i3);
83115 e != null && (i3 = e);
83116 }
83117 b.Ye(BD(f2.cd(), 146), i3);
83118 }
83119 }
83120 }
83121 function MQd(a, b) {
83122 var c2, d, e, f2, g;
83123 if (!b) {
83124 return null;
83125 } else {
83126 f2 = JD(a.Cb, 88) || JD(a.Cb, 99);
83127 g = !f2 && JD(a.Cb, 322);
83128 for (d = new Fyd((!b.a && (b.a = new KYd(b, j5, b)), b.a)); d.e != d.i.gc(); ) {
83129 c2 = BD(Dyd(d), 87);
83130 e = KQd(c2);
83131 if (f2 ? JD(e, 88) : g ? JD(e, 148) : !!e) {
83132 return e;
83133 }
83134 }
83135 return f2 ? (jGd(), _Fd) : (jGd(), YFd);
83136 }
83137 }
83138 function g3b(a, b) {
83139 var c2, d, e, f2, g, h;
83140 Odd(b, "Constraints Postprocessor", 1);
83141 g = 0;
83142 for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
83143 e = BD(mlb(f2), 29);
83144 h = 0;
83145 for (d = new olb(e.a); d.a < d.c.c.length; ) {
83146 c2 = BD(mlb(d), 10);
83147 if (c2.k == (j0b(), h0b)) {
83148 yNb(c2, (Nyc(), nxc), meb(g));
83149 yNb(c2, Gwc, meb(h));
83150 ++h;
83151 }
83152 }
83153 ++g;
83154 }
83155 Qdd(b);
83156 }
83157 function eRc(a, b, c2, d) {
83158 var e, f2, g, h, i3, j, k;
83159 i3 = new f7c(c2, d);
83160 c7c(i3, BD(vNb(b, (mTc(), WSc)), 8));
83161 for (k = Jsb(b.b, 0); k.b != k.d.c; ) {
83162 j = BD(Xsb(k), 86);
83163 P6c(j.e, i3);
83164 Dsb(a.b, j);
83165 }
83166 for (h = Jsb(b.a, 0); h.b != h.d.c; ) {
83167 g = BD(Xsb(h), 188);
83168 for (f2 = Jsb(g.a, 0); f2.b != f2.d.c; ) {
83169 e = BD(Xsb(f2), 8);
83170 P6c(e, i3);
83171 }
83172 Dsb(a.a, g);
83173 }
83174 }
83175 function uid(a, b, c2) {
83176 var d, e, f2;
83177 f2 = e1d((O6d(), M6d), a.Tg(), b);
83178 if (f2) {
83179 Q6d();
83180 if (!BD(f2, 66).Oj()) {
83181 f2 = _1d(q1d(M6d, f2));
83182 if (!f2) {
83183 throw vbb(new Wdb(ite + b.ne() + jte));
83184 }
83185 }
83186 e = (d = a.Yg(f2), BD(d >= 0 ? a._g(d, true, true) : sid(a, f2, true), 153));
83187 BD(e, 215).ml(b, c2);
83188 } else {
83189 throw vbb(new Wdb(ite + b.ne() + jte));
83190 }
83191 }
83192 function ROc(a, b) {
83193 var c2, d, e, f2, g;
83194 c2 = new Rkb();
83195 e = LAb(new YAb(null, new Kub(a, 16)), new iPc());
83196 f2 = LAb(new YAb(null, new Kub(a, 16)), new kPc());
83197 g = aAb(_zb(OAb(ty(OC(GC(xM, 1), Uhe, 833, 0, [e, f2])), new mPc())));
83198 for (d = 1; d < g.length; d++) {
83199 g[d] - g[d - 1] >= 2 * b && Ekb(c2, new bPc(g[d - 1] + b, g[d] - b));
83200 }
83201 return c2;
83202 }
83203 function AXc(a, b, c2) {
83204 Odd(c2, "Eades radial", 1);
83205 c2.n && !!b && Tdd(c2, i6d(b), (pgd(), mgd));
83206 a.d = BD(hkd(b, (MUc(), LUc)), 33);
83207 a.c = Edb(ED(hkd(b, (ZWc(), VWc))));
83208 a.e = tXc(BD(hkd(b, WWc), 293));
83209 a.a = gWc(BD(hkd(b, YWc), 426));
83210 a.b = jXc(BD(hkd(b, RWc), 340));
83211 BXc(a);
83212 c2.n && !!b && Tdd(c2, i6d(b), (pgd(), mgd));
83213 }
83214 function Fqd(a, b, c2) {
83215 var d, e, f2, g, h, j, k, l;
83216 if (c2) {
83217 f2 = c2.a.length;
83218 d = new Yge(f2);
83219 for (h = (d.b - d.a) * d.c < 0 ? (Xge(), Wge) : new she(d); h.Ob(); ) {
83220 g = BD(h.Pb(), 19);
83221 e = Zpd(c2, g.a);
83222 !!e && (j = Uqd(a, (k = (Fhd(), l = new ppd(), l), !!b && npd(k, b), k), e), Lkd(j, _pd(e, Vte)), grd(e, j), hrd(e, j), crd(a, e, j));
83223 }
83224 }
83225 }
83226 function UKd(a) {
83227 var b, c2, d, e, f2, g;
83228 if (!a.j) {
83229 g = new HPd();
83230 b = KKd;
83231 f2 = b.a.zc(a, b);
83232 if (f2 == null) {
83233 for (d = new Fyd(_Kd(a)); d.e != d.i.gc(); ) {
83234 c2 = BD(Dyd(d), 26);
83235 e = UKd(c2);
83236 ytd(g, e);
83237 wtd(g, c2);
83238 }
83239 b.a.Bc(a) != null;
83240 }
83241 vud(g);
83242 a.j = new nNd((BD(qud(ZKd((NFd(), MFd).o), 11), 18), g.i), g.g);
83243 $Kd(a).b &= -33;
83244 }
83245 return a.j;
83246 }
83247 function O9d(a) {
83248 var b, c2, d, e;
83249 if (a == null) {
83250 return null;
83251 } else {
83252 d = Qge(a, true);
83253 e = Nwe.length;
83254 if (dfb(d.substr(d.length - e, e), Nwe)) {
83255 c2 = d.length;
83256 if (c2 == 4) {
83257 b = (BCb(0, d.length), d.charCodeAt(0));
83258 if (b == 43) {
83259 return z9d;
83260 } else if (b == 45) {
83261 return y9d;
83262 }
83263 } else if (c2 == 3) {
83264 return z9d;
83265 }
83266 }
83267 return new Odb(d);
83268 }
83269 }
83270 function _C(a) {
83271 var b, c2, d;
83272 c2 = a.l;
83273 if ((c2 & c2 - 1) != 0) {
83274 return -1;
83275 }
83276 d = a.m;
83277 if ((d & d - 1) != 0) {
83278 return -1;
83279 }
83280 b = a.h;
83281 if ((b & b - 1) != 0) {
83282 return -1;
83283 }
83284 if (b == 0 && d == 0 && c2 == 0) {
83285 return -1;
83286 }
83287 if (b == 0 && d == 0 && c2 != 0) {
83288 return ieb(c2);
83289 }
83290 if (b == 0 && d != 0 && c2 == 0) {
83291 return ieb(d) + 22;
83292 }
83293 if (b != 0 && d == 0 && c2 == 0) {
83294 return ieb(b) + 44;
83295 }
83296 return -1;
83297 }
83298 function qbc(a, b) {
83299 var c2, d, e, f2, g;
83300 Odd(b, "Edge joining", 1);
83301 c2 = Ccb(DD(vNb(a, (Nyc(), Byc))));
83302 for (e = new olb(a.b); e.a < e.c.c.length; ) {
83303 d = BD(mlb(e), 29);
83304 g = new Bib(d.a, 0);
83305 while (g.b < g.d.gc()) {
83306 f2 = (sCb(g.b < g.d.gc()), BD(g.d.Xb(g.c = g.b++), 10));
83307 if (f2.k == (j0b(), g0b)) {
83308 sbc(f2, c2);
83309 uib(g);
83310 }
83311 }
83312 }
83313 Qdd(b);
83314 }
83315 function c_c(a, b, c2) {
83316 var d, e;
83317 H2c(a.b);
83318 K2c(a.b, (Y$c(), V$c), (R0c(), Q0c));
83319 K2c(a.b, W$c, b.g);
83320 K2c(a.b, X$c, b.a);
83321 a.a = F2c(a.b, b);
83322 Odd(c2, "Compaction by shrinking a tree", a.a.c.length);
83323 if (b.i.c.length > 1) {
83324 for (e = new olb(a.a); e.a < e.c.c.length; ) {
83325 d = BD(mlb(e), 51);
83326 d.pf(b, Udd(c2, 1));
83327 }
83328 }
83329 Qdd(c2);
83330 }
83331 function mo(a, b) {
83332 var c2, d, e, f2, g;
83333 e = b.a & a.f;
83334 f2 = null;
83335 for (d = a.b[e]; true; d = d.b) {
83336 if (d == b) {
83337 !f2 ? a.b[e] = b.b : f2.b = b.b;
83338 break;
83339 }
83340 f2 = d;
83341 }
83342 g = b.f & a.f;
83343 f2 = null;
83344 for (c2 = a.c[g]; true; c2 = c2.d) {
83345 if (c2 == b) {
83346 !f2 ? a.c[g] = b.d : f2.d = b.d;
83347 break;
83348 }
83349 f2 = c2;
83350 }
83351 !b.e ? a.a = b.c : b.e.c = b.c;
83352 !b.c ? a.e = b.e : b.c.e = b.e;
83353 --a.i;
83354 ++a.g;
83355 }
83356 function eNb(a) {
83357 var b, c2, d, e, f2, g, h, i3, j, k;
83358 c2 = a.o;
83359 b = a.p;
83360 g = Ohe;
83361 e = Rie;
83362 h = Ohe;
83363 f2 = Rie;
83364 for (j = 0; j < c2; ++j) {
83365 for (k = 0; k < b; ++k) {
83366 if (YMb(a, j, k)) {
83367 g = $wnd.Math.min(g, j);
83368 e = $wnd.Math.max(e, j);
83369 h = $wnd.Math.min(h, k);
83370 f2 = $wnd.Math.max(f2, k);
83371 }
83372 }
83373 }
83374 i3 = e - g + 1;
83375 d = f2 - h + 1;
83376 return new Ggd(meb(g), meb(h), meb(i3), meb(d));
83377 }
83378 function DWb(a, b) {
83379 var c2, d, e, f2;
83380 f2 = new Bib(a, 0);
83381 c2 = (sCb(f2.b < f2.d.gc()), BD(f2.d.Xb(f2.c = f2.b++), 140));
83382 while (f2.b < f2.d.gc()) {
83383 d = (sCb(f2.b < f2.d.gc()), BD(f2.d.Xb(f2.c = f2.b++), 140));
83384 e = new dWb(d.c, c2.d, b);
83385 sCb(f2.b > 0);
83386 f2.a.Xb(f2.c = --f2.b);
83387 Aib(f2, e);
83388 sCb(f2.b < f2.d.gc());
83389 f2.d.Xb(f2.c = f2.b++);
83390 e.a = false;
83391 c2 = d;
83392 }
83393 }
83394 function Y2b(a) {
83395 var b, c2, d, e, f2, g;
83396 e = BD(vNb(a, (wtc(), vsc)), 11);
83397 for (g = new olb(a.j); g.a < g.c.c.length; ) {
83398 f2 = BD(mlb(g), 11);
83399 for (d = new olb(f2.g); d.a < d.c.c.length; ) {
83400 b = BD(mlb(d), 17);
83401 RZb(b, e);
83402 return f2;
83403 }
83404 for (c2 = new olb(f2.e); c2.a < c2.c.c.length; ) {
83405 b = BD(mlb(c2), 17);
83406 QZb(b, e);
83407 return f2;
83408 }
83409 }
83410 return null;
83411 }
83412 function iA(a, b, c2) {
83413 var d, e;
83414 d = Cbb(c2.q.getTime());
83415 if (ybb(d, 0) < 0) {
83416 e = _ie - Tbb(Hbb(Jbb(d), _ie));
83417 e == _ie && (e = 0);
83418 } else {
83419 e = Tbb(Hbb(d, _ie));
83420 }
83421 if (b == 1) {
83422 e = $wnd.Math.min((e + 50) / 100 | 0, 9);
83423 Kfb(a, 48 + e & aje);
83424 } else if (b == 2) {
83425 e = $wnd.Math.min((e + 5) / 10 | 0, 99);
83426 EA(a, e, 2);
83427 } else {
83428 EA(a, e, 3);
83429 b > 3 && EA(a, 0, b - 3);
83430 }
83431 }
83432 function cUb(a) {
83433 var b, c2, d, e;
83434 if (PD(vNb(a, (Nyc(), axc))) === PD((hbd(), ebd))) {
83435 return !a.e && PD(vNb(a, Cwc)) !== PD((Xrc(), Urc));
83436 }
83437 d = BD(vNb(a, Dwc), 292);
83438 e = Ccb(DD(vNb(a, Hwc))) || PD(vNb(a, Iwc)) === PD((Rpc(), Opc));
83439 b = BD(vNb(a, Bwc), 19).a;
83440 c2 = a.a.c.length;
83441 return !e && d != (Xrc(), Urc) && (b == 0 || b > c2);
83442 }
83443 function lkc(a) {
83444 var b, c2;
83445 c2 = 0;
83446 for (; c2 < a.c.length; c2++) {
83447 if (Ojc((tCb(c2, a.c.length), BD(a.c[c2], 113))) > 0) {
83448 break;
83449 }
83450 }
83451 if (c2 > 0 && c2 < a.c.length - 1) {
83452 return c2;
83453 }
83454 b = 0;
83455 for (; b < a.c.length; b++) {
83456 if (Ojc((tCb(b, a.c.length), BD(a.c[b], 113))) > 0) {
83457 break;
83458 }
83459 }
83460 if (b > 0 && c2 < a.c.length - 1) {
83461 return b;
83462 }
83463 return a.c.length / 2 | 0;
83464 }
83465 function mmd(a, b) {
83466 var c2, d;
83467 if (b != a.Cb || a.Db >> 16 != 6 && !!b) {
83468 if (p6d(a, b))
83469 throw vbb(new Wdb(ste + qmd(a)));
83470 d = null;
83471 !!a.Cb && (d = (c2 = a.Db >> 16, c2 >= 0 ? cmd(a, d) : a.Cb.ih(a, -1 - c2, null, d)));
83472 !!b && (d = kid(b, a, 6, d));
83473 d = bmd(a, b, d);
83474 !!d && d.Fi();
83475 } else
83476 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 6, b, b));
83477 }
83478 function npd(a, b) {
83479 var c2, d;
83480 if (b != a.Cb || a.Db >> 16 != 9 && !!b) {
83481 if (p6d(a, b))
83482 throw vbb(new Wdb(ste + opd(a)));
83483 d = null;
83484 !!a.Cb && (d = (c2 = a.Db >> 16, c2 >= 0 ? lpd(a, d) : a.Cb.ih(a, -1 - c2, null, d)));
83485 !!b && (d = kid(b, a, 9, d));
83486 d = kpd(a, b, d);
83487 !!d && d.Fi();
83488 } else
83489 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 9, b, b));
83490 }
83491 function Rld(a, b) {
83492 var c2, d;
83493 if (b != a.Cb || a.Db >> 16 != 3 && !!b) {
83494 if (p6d(a, b))
83495 throw vbb(new Wdb(ste + Sld(a)));
83496 d = null;
83497 !!a.Cb && (d = (c2 = a.Db >> 16, c2 >= 0 ? Lld(a, d) : a.Cb.ih(a, -1 - c2, null, d)));
83498 !!b && (d = kid(b, a, 12, d));
83499 d = Kld(a, b, d);
83500 !!d && d.Fi();
83501 } else
83502 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, b, b));
83503 }
83504 function VId(b) {
83505 var c2, d, e, f2, g;
83506 e = wId(b);
83507 g = b.j;
83508 if (g == null && !!e) {
83509 return b.$j() ? null : e.zj();
83510 } else if (JD(e, 148)) {
83511 d = e.Aj();
83512 if (d) {
83513 f2 = d.Nh();
83514 if (f2 != b.i) {
83515 c2 = BD(e, 148);
83516 if (c2.Ej()) {
83517 try {
83518 b.g = f2.Kh(c2, g);
83519 } catch (a) {
83520 a = ubb(a);
83521 if (JD(a, 78)) {
83522 b.g = null;
83523 } else
83524 throw vbb(a);
83525 }
83526 }
83527 b.i = f2;
83528 }
83529 }
83530 return b.g;
83531 }
83532 return null;
83533 }
83534 function wOb(a) {
83535 var b;
83536 b = new Rkb();
83537 Ekb(b, new aDb(new f7c(a.c, a.d), new f7c(a.c + a.b, a.d)));
83538 Ekb(b, new aDb(new f7c(a.c, a.d), new f7c(a.c, a.d + a.a)));
83539 Ekb(b, new aDb(new f7c(a.c + a.b, a.d + a.a), new f7c(a.c + a.b, a.d)));
83540 Ekb(b, new aDb(new f7c(a.c + a.b, a.d + a.a), new f7c(a.c, a.d + a.a)));
83541 return b;
83542 }
83543 function IJc(a, b, c2, d) {
83544 var e, f2, g;
83545 g = LZb(b, c2);
83546 d.c[d.c.length] = b;
83547 if (a.j[g.p] == -1 || a.j[g.p] == 2 || a.a[b.p]) {
83548 return d;
83549 }
83550 a.j[g.p] = -1;
83551 for (f2 = new Sr(ur(O_b(g).a.Kc(), new Sq())); Qr(f2); ) {
83552 e = BD(Rr(f2), 17);
83553 if (!(!OZb(e) && !(!OZb(e) && e.c.i.c == e.d.i.c)) || e == b) {
83554 continue;
83555 }
83556 return IJc(a, e, g, d);
83557 }
83558 return d;
83559 }
83560 function vQb(a, b, c2) {
83561 var d, e, f2;
83562 for (f2 = b.a.ec().Kc(); f2.Ob(); ) {
83563 e = BD(f2.Pb(), 79);
83564 d = BD(Ohb(a.b, e), 266);
83565 !d && (Xod(jtd(e)) == Xod(ltd(e)) ? uQb(a, e, c2) : jtd(e) == Xod(ltd(e)) ? Ohb(a.c, e) == null && Ohb(a.b, ltd(e)) != null && xQb(a, e, c2, false) : Ohb(a.d, e) == null && Ohb(a.b, jtd(e)) != null && xQb(a, e, c2, true));
83566 }
83567 }
83568 function jcc(a, b) {
83569 var c2, d, e, f2, g, h, i3;
83570 for (e = a.Kc(); e.Ob(); ) {
83571 d = BD(e.Pb(), 10);
83572 h = new H0b();
83573 F0b(h, d);
83574 G0b(h, (Ucd(), zcd));
83575 yNb(h, (wtc(), ftc), (Bcb(), true));
83576 for (g = b.Kc(); g.Ob(); ) {
83577 f2 = BD(g.Pb(), 10);
83578 i3 = new H0b();
83579 F0b(i3, f2);
83580 G0b(i3, Tcd);
83581 yNb(i3, ftc, true);
83582 c2 = new UZb();
83583 yNb(c2, ftc, true);
83584 QZb(c2, h);
83585 RZb(c2, i3);
83586 }
83587 }
83588 }
83589 function jnc(a, b, c2, d) {
83590 var e, f2, g, h;
83591 e = hnc(a, b, c2);
83592 f2 = hnc(a, c2, b);
83593 g = BD(Ohb(a.c, b), 112);
83594 h = BD(Ohb(a.c, c2), 112);
83595 if (e < f2) {
83596 new DOc((HOc(), GOc), g, h, f2 - e);
83597 } else if (f2 < e) {
83598 new DOc((HOc(), GOc), h, g, e - f2);
83599 } else if (e != 0 || !(!b.i || !c2.i) && d[b.i.c][c2.i.c]) {
83600 new DOc((HOc(), GOc), g, h, 0);
83601 new DOc(GOc, h, g, 0);
83602 }
83603 }
83604 function Qoc(a, b) {
83605 var c2, d, e, f2, g, h, i3;
83606 e = 0;
83607 for (g = new olb(b.a); g.a < g.c.c.length; ) {
83608 f2 = BD(mlb(g), 10);
83609 e += f2.o.b + f2.d.a + f2.d.d + a.e;
83610 for (d = new Sr(ur(R_b(f2).a.Kc(), new Sq())); Qr(d); ) {
83611 c2 = BD(Rr(d), 17);
83612 if (c2.c.i.k == (j0b(), i0b)) {
83613 i3 = c2.c.i;
83614 h = BD(vNb(i3, (wtc(), $sc)), 10);
83615 e += h.o.b + h.d.a + h.d.d;
83616 }
83617 }
83618 }
83619 return e;
83620 }
83621 function WNc(a, b, c2) {
83622 var d, e, f2, g, h, i3, j;
83623 f2 = new Rkb();
83624 j = new Psb();
83625 g = new Psb();
83626 XNc(a, j, g, b);
83627 VNc(a, j, g, b, c2);
83628 for (i3 = new olb(a); i3.a < i3.c.c.length; ) {
83629 h = BD(mlb(i3), 112);
83630 for (e = new olb(h.k); e.a < e.c.c.length; ) {
83631 d = BD(mlb(e), 129);
83632 (!b || d.c == (HOc(), FOc)) && h.g > d.b.g && (f2.c[f2.c.length] = d, true);
83633 }
83634 }
83635 return f2;
83636 }
83637 function k$c() {
83638 k$c = ccb;
83639 g$c = new l$c("CANDIDATE_POSITION_LAST_PLACED_RIGHT", 0);
83640 f$c = new l$c("CANDIDATE_POSITION_LAST_PLACED_BELOW", 1);
83641 i$c = new l$c("CANDIDATE_POSITION_WHOLE_DRAWING_RIGHT", 2);
83642 h$c = new l$c("CANDIDATE_POSITION_WHOLE_DRAWING_BELOW", 3);
83643 j$c = new l$c("WHOLE_DRAWING", 4);
83644 }
83645 function Xqd(a, b) {
83646 if (JD(b, 239)) {
83647 return iqd(a, BD(b, 33));
83648 } else if (JD(b, 186)) {
83649 return jqd(a, BD(b, 118));
83650 } else if (JD(b, 354)) {
83651 return hqd(a, BD(b, 137));
83652 } else if (JD(b, 352)) {
83653 return gqd(a, BD(b, 79));
83654 } else if (b) {
83655 return null;
83656 } else {
83657 throw vbb(new Wdb(Xte + Fe(new amb(OC(GC(SI, 1), Uhe, 1, 5, [b])))));
83658 }
83659 }
83660 function aic(a) {
83661 var b, c2, d, e, f2, g, h;
83662 f2 = new Psb();
83663 for (e = new olb(a.d.a); e.a < e.c.c.length; ) {
83664 d = BD(mlb(e), 121);
83665 d.b.a.c.length == 0 && (Gsb(f2, d, f2.c.b, f2.c), true);
83666 }
83667 if (f2.b > 1) {
83668 b = nGb((c2 = new pGb(), ++a.b, c2), a.d);
83669 for (h = Jsb(f2, 0); h.b != h.d.c; ) {
83670 g = BD(Xsb(h), 121);
83671 AFb(DFb(CFb(EFb(BFb(new FFb(), 1), 0), b), g));
83672 }
83673 }
83674 }
83675 function $od(a, b) {
83676 var c2, d;
83677 if (b != a.Cb || a.Db >> 16 != 11 && !!b) {
83678 if (p6d(a, b))
83679 throw vbb(new Wdb(ste + _od(a)));
83680 d = null;
83681 !!a.Cb && (d = (c2 = a.Db >> 16, c2 >= 0 ? Uod(a, d) : a.Cb.ih(a, -1 - c2, null, d)));
83682 !!b && (d = kid(b, a, 10, d));
83683 d = Tod(a, b, d);
83684 !!d && d.Fi();
83685 } else
83686 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 11, b, b));
83687 }
83688 function uZb(a) {
83689 var b, c2, d, e;
83690 for (d = new nib(new eib(a.b).a); d.b; ) {
83691 c2 = lib(d);
83692 e = BD(c2.cd(), 11);
83693 b = BD(c2.dd(), 10);
83694 yNb(b, (wtc(), $sc), e);
83695 yNb(e, gtc, b);
83696 yNb(e, Nsc, (Bcb(), true));
83697 G0b(e, BD(vNb(b, Hsc), 61));
83698 vNb(b, Hsc);
83699 yNb(e.i, (Nyc(), Vxc), (dcd(), acd));
83700 BD(vNb(Q_b(e.i), Ksc), 21).Fc((Orc(), Krc));
83701 }
83702 }
83703 function G4b(a, b, c2) {
83704 var d, e, f2, g, h, i3;
83705 f2 = 0;
83706 g = 0;
83707 if (a.c) {
83708 for (i3 = new olb(a.d.i.j); i3.a < i3.c.c.length; ) {
83709 h = BD(mlb(i3), 11);
83710 f2 += h.e.c.length;
83711 }
83712 } else {
83713 f2 = 1;
83714 }
83715 if (a.d) {
83716 for (i3 = new olb(a.c.i.j); i3.a < i3.c.c.length; ) {
83717 h = BD(mlb(i3), 11);
83718 g += h.g.c.length;
83719 }
83720 } else {
83721 g = 1;
83722 }
83723 e = QD(Eeb(g - f2));
83724 d = (c2 + b) / 2 + (c2 - b) * (0.4 * e);
83725 return d;
83726 }
83727 function Zjc(a) {
83728 Xjc();
83729 var b, c2;
83730 if (a.Hc((Ucd(), Scd))) {
83731 throw vbb(new Wdb("Port sides must not contain UNDEFINED"));
83732 }
83733 switch (a.gc()) {
83734 case 1:
83735 return Tjc;
83736 case 2:
83737 b = a.Hc(zcd) && a.Hc(Tcd);
83738 c2 = a.Hc(Acd) && a.Hc(Rcd);
83739 return b || c2 ? Wjc : Vjc;
83740 case 3:
83741 return Ujc;
83742 case 4:
83743 return Sjc;
83744 default:
83745 return null;
83746 }
83747 }
83748 function Hoc(a, b, c2) {
83749 var d, e, f2, g, h;
83750 Odd(c2, "Breaking Point Removing", 1);
83751 a.a = BD(vNb(b, (Nyc(), Swc)), 218);
83752 for (f2 = new olb(b.b); f2.a < f2.c.c.length; ) {
83753 e = BD(mlb(f2), 29);
83754 for (h = new olb(Mu(e.a)); h.a < h.c.c.length; ) {
83755 g = BD(mlb(h), 10);
83756 if (hoc(g)) {
83757 d = BD(vNb(g, (wtc(), usc)), 305);
83758 !d.d && Ioc(a, d);
83759 }
83760 }
83761 }
83762 Qdd(c2);
83763 }
83764 function s6c(a, b, c2) {
83765 i6c();
83766 if (m6c(a, b) && m6c(a, c2)) {
83767 return false;
83768 }
83769 return u6c(new f7c(a.c, a.d), new f7c(a.c + a.b, a.d), b, c2) || u6c(new f7c(a.c + a.b, a.d), new f7c(a.c + a.b, a.d + a.a), b, c2) || u6c(new f7c(a.c + a.b, a.d + a.a), new f7c(a.c, a.d + a.a), b, c2) || u6c(new f7c(a.c, a.d + a.a), new f7c(a.c, a.d), b, c2);
83770 }
83771 function x1d(a, b) {
83772 var c2, d, e, f2;
83773 if (!a.dc()) {
83774 for (c2 = 0, d = a.gc(); c2 < d; ++c2) {
83775 f2 = GD(a.Xb(c2));
83776 if (f2 == null ? b == null : dfb(f2.substr(0, 3), "!##") ? b != null && (e = b.length, !dfb(f2.substr(f2.length - e, e), b) || f2.length != b.length + 3) && !dfb(Ewe, b) : dfb(f2, Fwe) && !dfb(Ewe, b) || dfb(f2, b)) {
83777 return true;
83778 }
83779 }
83780 }
83781 return false;
83782 }
83783 function J3b(a, b, c2, d) {
83784 var e, f2, g, h, i3, j;
83785 g = a.j.c.length;
83786 i3 = KC(tN, ile, 306, g, 0, 1);
83787 for (h = 0; h < g; h++) {
83788 f2 = BD(Ikb(a.j, h), 11);
83789 f2.p = h;
83790 i3[h] = D3b(N3b(f2), c2, d);
83791 }
83792 F3b(a, i3, c2, b, d);
83793 j = new Lqb();
83794 for (e = 0; e < i3.length; e++) {
83795 !!i3[e] && Rhb(j, BD(Ikb(a.j, e), 11), i3[e]);
83796 }
83797 if (j.f.c + j.g.c != 0) {
83798 yNb(a, (wtc(), Csc), j);
83799 L3b(a, i3);
83800 }
83801 }
83802 function Lgc(a, b, c2) {
83803 var d, e, f2;
83804 for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
83805 d = BD(mlb(e), 57);
83806 f2 = tgc(d);
83807 if (f2) {
83808 if (f2.k == (j0b(), e0b)) {
83809 switch (BD(vNb(f2, (wtc(), Hsc)), 61).g) {
83810 case 4:
83811 f2.n.a = b.a;
83812 break;
83813 case 2:
83814 f2.n.a = c2.a - (f2.o.a + f2.d.c);
83815 break;
83816 case 1:
83817 f2.n.b = b.b;
83818 break;
83819 case 3:
83820 f2.n.b = c2.b - (f2.o.b + f2.d.a);
83821 }
83822 }
83823 }
83824 }
83825 }
83826 function kAc() {
83827 kAc = ccb;
83828 iAc = new lAc(ane, 0);
83829 dAc = new lAc("NIKOLOV", 1);
83830 gAc = new lAc("NIKOLOV_PIXEL", 2);
83831 eAc = new lAc("NIKOLOV_IMPROVED", 3);
83832 fAc = new lAc("NIKOLOV_IMPROVED_PIXEL", 4);
83833 cAc = new lAc("DUMMYNODE_PERCENTAGE", 5);
83834 hAc = new lAc("NODECOUNT_PERCENTAGE", 6);
83835 jAc = new lAc("NO_BOUNDARY", 7);
83836 }
83837 function led(a, b, c2) {
83838 var d, e, f2, g, h;
83839 e = BD(hkd(b, (X7c(), V7c)), 19);
83840 !e && (e = meb(0));
83841 f2 = BD(hkd(c2, V7c), 19);
83842 !f2 && (f2 = meb(0));
83843 if (e.a > f2.a) {
83844 return -1;
83845 } else if (e.a < f2.a) {
83846 return 1;
83847 } else {
83848 if (a.a) {
83849 d = Kdb(b.j, c2.j);
83850 if (d != 0) {
83851 return d;
83852 }
83853 d = Kdb(b.i, c2.i);
83854 if (d != 0) {
83855 return d;
83856 }
83857 }
83858 g = b.g * b.f;
83859 h = c2.g * c2.f;
83860 return Kdb(g, h);
83861 }
83862 }
83863 function BAd(a, b) {
83864 var c2, d, e, f2, g, h, i3, j, k, l;
83865 ++a.e;
83866 i3 = a.d == null ? 0 : a.d.length;
83867 if (b > i3) {
83868 k = a.d;
83869 a.d = KC(y4, jve, 63, 2 * i3 + 4, 0, 1);
83870 for (f2 = 0; f2 < i3; ++f2) {
83871 j = k[f2];
83872 if (j) {
83873 d = j.g;
83874 l = j.i;
83875 for (h = 0; h < l; ++h) {
83876 e = BD(d[h], 133);
83877 g = DAd(a, e.Sh());
83878 c2 = a.d[g];
83879 !c2 && (c2 = a.d[g] = a.uj());
83880 c2.Fc(e);
83881 }
83882 }
83883 }
83884 return true;
83885 } else {
83886 return false;
83887 }
83888 }
83889 function o2d(a, b, c2) {
83890 var d, e, f2, g, h, i3;
83891 e = c2;
83892 f2 = e.ak();
83893 if (T6d(a.e, f2)) {
83894 if (f2.hi()) {
83895 d = BD(a.g, 119);
83896 for (g = 0; g < a.i; ++g) {
83897 h = d[g];
83898 if (pb(h, e) && g != b) {
83899 throw vbb(new Wdb(kue));
83900 }
83901 }
83902 }
83903 } else {
83904 i3 = S6d(a.e.Tg(), f2);
83905 d = BD(a.g, 119);
83906 for (g = 0; g < a.i; ++g) {
83907 h = d[g];
83908 if (i3.rl(h.ak())) {
83909 throw vbb(new Wdb(Hwe));
83910 }
83911 }
83912 }
83913 vtd(a, b, c2);
83914 }
83915 function OYb(a, b) {
83916 var c2, d, e, f2, g, h;
83917 c2 = BD(vNb(b, (wtc(), Esc)), 21);
83918 g = BD(Qc((xXb(), wXb), c2), 21);
83919 h = BD(Qc(LYb, c2), 21);
83920 for (f2 = g.Kc(); f2.Ob(); ) {
83921 d = BD(f2.Pb(), 21);
83922 if (!BD(Qc(a.b, d), 15).dc()) {
83923 return false;
83924 }
83925 }
83926 for (e = h.Kc(); e.Ob(); ) {
83927 d = BD(e.Pb(), 21);
83928 if (!BD(Qc(a.b, d), 15).dc()) {
83929 return false;
83930 }
83931 }
83932 return true;
83933 }
83934 function scc(a, b) {
83935 var c2, d, e, f2, g, h;
83936 Odd(b, "Partition postprocessing", 1);
83937 for (d = new olb(a.b); d.a < d.c.c.length; ) {
83938 c2 = BD(mlb(d), 29);
83939 for (f2 = new olb(c2.a); f2.a < f2.c.c.length; ) {
83940 e = BD(mlb(f2), 10);
83941 h = new olb(e.j);
83942 while (h.a < h.c.c.length) {
83943 g = BD(mlb(h), 11);
83944 Ccb(DD(vNb(g, (wtc(), ftc)))) && nlb(h);
83945 }
83946 }
83947 }
83948 Qdd(b);
83949 }
83950 function ZZc(a, b) {
83951 var c2, d, e, f2, g, h, i3, j, k;
83952 if (a.a.c.length == 1) {
83953 return JZc(BD(Ikb(a.a, 0), 187), b);
83954 }
83955 g = YZc(a);
83956 i3 = 0;
83957 j = a.d;
83958 f2 = g;
83959 k = a.d;
83960 h = (j - f2) / 2 + f2;
83961 while (f2 + 1 < j) {
83962 i3 = 0;
83963 for (d = new olb(a.a); d.a < d.c.c.length; ) {
83964 c2 = BD(mlb(d), 187);
83965 i3 += (e = MZc(c2, h, false), e.a);
83966 }
83967 if (i3 < b) {
83968 k = h;
83969 j = h;
83970 } else {
83971 f2 = h;
83972 }
83973 h = (j - f2) / 2 + f2;
83974 }
83975 return k;
83976 }
83977 function fD(a) {
83978 var b, c2, d, e, f2;
83979 if (isNaN(a)) {
83980 return wD(), vD;
83981 }
83982 if (a < -9223372036854776e3) {
83983 return wD(), tD;
83984 }
83985 if (a >= 9223372036854776e3) {
83986 return wD(), sD;
83987 }
83988 e = false;
83989 if (a < 0) {
83990 e = true;
83991 a = -a;
83992 }
83993 d = 0;
83994 if (a >= Ije) {
83995 d = QD(a / Ije);
83996 a -= d * Ije;
83997 }
83998 c2 = 0;
83999 if (a >= Hje) {
84000 c2 = QD(a / Hje);
84001 a -= c2 * Hje;
84002 }
84003 b = QD(a);
84004 f2 = TC(b, c2, d);
84005 e && ZC(f2);
84006 return f2;
84007 }
84008 function rKb(a, b) {
84009 var c2, d, e, f2;
84010 c2 = !b || !a.u.Hc((rcd(), ncd));
84011 f2 = 0;
84012 for (e = new olb(a.e.Cf()); e.a < e.c.c.length; ) {
84013 d = BD(mlb(e), 838);
84014 if (d.Hf() == (Ucd(), Scd)) {
84015 throw vbb(new Wdb("Label and node size calculator can only be used with ports that have port sides assigned."));
84016 }
84017 d.vf(f2++);
84018 qKb(a, d, c2);
84019 }
84020 }
84021 function V0d(a, b) {
84022 var c2, d, e, f2, g;
84023 e = b.Hh(a.a);
84024 if (e) {
84025 d = (!e.b && (e.b = new sId((jGd(), fGd), x6, e)), e.b);
84026 c2 = GD(AAd(d, cwe));
84027 if (c2 != null) {
84028 f2 = c2.lastIndexOf("#");
84029 g = f2 == -1 ? w1d(a, b.Aj(), c2) : f2 == 0 ? v1d(a, null, c2.substr(1)) : v1d(a, c2.substr(0, f2), c2.substr(f2 + 1));
84030 if (JD(g, 148)) {
84031 return BD(g, 148);
84032 }
84033 }
84034 }
84035 return null;
84036 }
84037 function Z0d(a, b) {
84038 var c2, d, e, f2, g;
84039 d = b.Hh(a.a);
84040 if (d) {
84041 c2 = (!d.b && (d.b = new sId((jGd(), fGd), x6, d)), d.b);
84042 f2 = GD(AAd(c2, zwe));
84043 if (f2 != null) {
84044 e = f2.lastIndexOf("#");
84045 g = e == -1 ? w1d(a, b.Aj(), f2) : e == 0 ? v1d(a, null, f2.substr(1)) : v1d(a, f2.substr(0, e), f2.substr(e + 1));
84046 if (JD(g, 148)) {
84047 return BD(g, 148);
84048 }
84049 }
84050 }
84051 return null;
84052 }
84053 function RDb(a) {
84054 var b, c2, d, e, f2;
84055 for (c2 = new olb(a.a.a); c2.a < c2.c.c.length; ) {
84056 b = BD(mlb(c2), 307);
84057 b.j = null;
84058 for (f2 = b.a.a.ec().Kc(); f2.Ob(); ) {
84059 d = BD(f2.Pb(), 57);
84060 X6c(d.b);
84061 (!b.j || d.d.c < b.j.d.c) && (b.j = d);
84062 }
84063 for (e = b.a.a.ec().Kc(); e.Ob(); ) {
84064 d = BD(e.Pb(), 57);
84065 d.b.a = d.d.c - b.j.d.c;
84066 d.b.b = d.d.d - b.j.d.d;
84067 }
84068 }
84069 return a;
84070 }
84071 function sVb(a) {
84072 var b, c2, d, e, f2;
84073 for (c2 = new olb(a.a.a); c2.a < c2.c.c.length; ) {
84074 b = BD(mlb(c2), 189);
84075 b.f = null;
84076 for (f2 = b.a.a.ec().Kc(); f2.Ob(); ) {
84077 d = BD(f2.Pb(), 81);
84078 X6c(d.e);
84079 (!b.f || d.g.c < b.f.g.c) && (b.f = d);
84080 }
84081 for (e = b.a.a.ec().Kc(); e.Ob(); ) {
84082 d = BD(e.Pb(), 81);
84083 d.e.a = d.g.c - b.f.g.c;
84084 d.e.b = d.g.d - b.f.g.d;
84085 }
84086 }
84087 return a;
84088 }
84089 function EMb(a) {
84090 var b, c2, d;
84091 c2 = BD(a.a, 19).a;
84092 d = BD(a.b, 19).a;
84093 b = $wnd.Math.max($wnd.Math.abs(c2), $wnd.Math.abs(d));
84094 if (c2 < b && d == -b) {
84095 return new vgd(meb(c2 + 1), meb(d));
84096 }
84097 if (c2 == b && d < b) {
84098 return new vgd(meb(c2), meb(d + 1));
84099 }
84100 if (c2 >= -b && d == b) {
84101 return new vgd(meb(c2 - 1), meb(d));
84102 }
84103 return new vgd(meb(c2), meb(d - 1));
84104 }
84105 function W8b() {
84106 S8b();
84107 return OC(GC(AS, 1), Kie, 77, 0, [Y7b, V7b, Z7b, n8b, G8b, r8b, M8b, w8b, E8b, i8b, A8b, v8b, F8b, e8b, O8b, P7b, z8b, I8b, o8b, H8b, Q8b, C8b, Q7b, D8b, R8b, K8b, P8b, p8b, b8b, q8b, m8b, N8b, T7b, _7b, t8b, S7b, u8b, k8b, f8b, x8b, h8b, W7b, U7b, l8b, g8b, y8b, L8b, R7b, B8b, j8b, s8b, c8b, a8b, J8b, $7b, d8b, X7b]);
84108 }
84109 function Yic(a, b, c2) {
84110 a.d = 0;
84111 a.b = 0;
84112 b.k == (j0b(), i0b) && c2.k == i0b && BD(vNb(b, (wtc(), $sc)), 10) == BD(vNb(c2, $sc), 10) && (ajc(b).j == (Ucd(), Acd) ? Zic(a, b, c2) : Zic(a, c2, b));
84113 b.k == i0b && c2.k == g0b ? ajc(b).j == (Ucd(), Acd) ? a.d = 1 : a.b = 1 : c2.k == i0b && b.k == g0b && (ajc(c2).j == (Ucd(), Acd) ? a.b = 1 : a.d = 1);
84114 cjc(a, b, c2);
84115 }
84116 function esd(a) {
84117 var b, c2, d, e, f2, g, h, i3, j, k, l;
84118 l = hsd(a);
84119 b = a.a;
84120 i3 = b != null;
84121 i3 && Upd(l, "category", a.a);
84122 e = Fhe(new Pib(a.d));
84123 g = !e;
84124 if (g) {
84125 j = new wB();
84126 cC(l, "knownOptions", j);
84127 c2 = new msd(j);
84128 reb(new Pib(a.d), c2);
84129 }
84130 f2 = Fhe(a.g);
84131 h = !f2;
84132 if (h) {
84133 k = new wB();
84134 cC(l, "supportedFeatures", k);
84135 d = new osd(k);
84136 reb(a.g, d);
84137 }
84138 return l;
84139 }
84140 function ty(a) {
84141 var b, c2, d, e, f2, g, h, i3, j;
84142 d = false;
84143 b = 336;
84144 c2 = 0;
84145 f2 = new Xp(a.length);
84146 for (h = a, i3 = 0, j = h.length; i3 < j; ++i3) {
84147 g = h[i3];
84148 d = d | (Uzb(g), false);
84149 e = (Tzb(g), g.a);
84150 Ekb(f2.a, Qb(e));
84151 b &= e.qd();
84152 c2 = Ly(c2, e.rd());
84153 }
84154 return BD(BD(Rzb(new YAb(null, Yj(new Kub((im(), nm(f2.a)), 16), new vy(), b, c2)), new xy(a)), 670), 833);
84155 }
84156 function UWb(a, b) {
84157 var c2;
84158 if (!!a.d && (b.c != a.e.c || qWb(a.e.b, b.b))) {
84159 Ekb(a.f, a.d);
84160 a.a = a.d.c + a.d.b;
84161 a.d = null;
84162 a.e = null;
84163 }
84164 nWb(b.b) ? a.c = b : a.b = b;
84165 if (b.b == (lWb(), hWb) && !b.a || b.b == iWb && b.a || b.b == jWb && b.a || b.b == kWb && !b.a) {
84166 if (!!a.c && !!a.b) {
84167 c2 = new J6c(a.a, a.c.d, b.c - a.a, a.b.d - a.c.d);
84168 a.d = c2;
84169 a.e = b;
84170 }
84171 }
84172 }
84173 function L2c(a) {
84174 var b;
84175 D2c.call(this);
84176 this.i = new Z2c();
84177 this.g = a;
84178 this.f = BD(a.e && a.e(), 9).length;
84179 if (this.f == 0) {
84180 throw vbb(new Wdb("There must be at least one phase in the phase enumeration."));
84181 }
84182 this.c = (b = BD(gdb(this.g), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
84183 this.a = new j3c();
84184 this.b = new Lqb();
84185 }
84186 function God(a, b) {
84187 var c2, d;
84188 if (b != a.Cb || a.Db >> 16 != 7 && !!b) {
84189 if (p6d(a, b))
84190 throw vbb(new Wdb(ste + Iod(a)));
84191 d = null;
84192 !!a.Cb && (d = (c2 = a.Db >> 16, c2 >= 0 ? Eod(a, d) : a.Cb.ih(a, -1 - c2, null, d)));
84193 !!b && (d = BD(b, 49).gh(a, 1, C2, d));
84194 d = Dod(a, b, d);
84195 !!d && d.Fi();
84196 } else
84197 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 7, b, b));
84198 }
84199 function NHd(a, b) {
84200 var c2, d;
84201 if (b != a.Cb || a.Db >> 16 != 3 && !!b) {
84202 if (p6d(a, b))
84203 throw vbb(new Wdb(ste + QHd(a)));
84204 d = null;
84205 !!a.Cb && (d = (c2 = a.Db >> 16, c2 >= 0 ? KHd(a, d) : a.Cb.ih(a, -1 - c2, null, d)));
84206 !!b && (d = BD(b, 49).gh(a, 0, k5, d));
84207 d = JHd(a, b, d);
84208 !!d && d.Fi();
84209 } else
84210 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 3, b, b));
84211 }
84212 function Ehb(a, b) {
84213 Dhb();
84214 var c2, d, e, f2, g, h, i3, j, k;
84215 if (b.d > a.d) {
84216 h = a;
84217 a = b;
84218 b = h;
84219 }
84220 if (b.d < 63) {
84221 return Ihb(a, b);
84222 }
84223 g = (a.d & -2) << 4;
84224 j = Rgb2(a, g);
84225 k = Rgb2(b, g);
84226 d = yhb(a, Qgb(j, g));
84227 e = yhb(b, Qgb(k, g));
84228 i3 = Ehb(j, k);
84229 c2 = Ehb(d, e);
84230 f2 = Ehb(yhb(j, d), yhb(e, k));
84231 f2 = thb(thb(f2, i3), c2);
84232 f2 = Qgb(f2, g);
84233 i3 = Qgb(i3, g << 1);
84234 return thb(thb(i3, f2), c2);
84235 }
84236 function aGc(a, b, c2) {
84237 var d, e, f2, g, h;
84238 g = CHc(a, c2);
84239 h = KC(OQ, kne, 10, b.length, 0, 1);
84240 d = 0;
84241 for (f2 = g.Kc(); f2.Ob(); ) {
84242 e = BD(f2.Pb(), 11);
84243 Ccb(DD(vNb(e, (wtc(), Nsc)))) && (h[d++] = BD(vNb(e, gtc), 10));
84244 }
84245 if (d < b.length) {
84246 throw vbb(new Zdb("Expected " + b.length + " hierarchical ports, but found only " + d + "."));
84247 }
84248 return h;
84249 }
84250 function Und(a, b) {
84251 var c2, d, e, f2, g, h;
84252 if (!a.tb) {
84253 f2 = (!a.rb && (a.rb = new jUd(a, d5, a)), a.rb);
84254 h = new Mqb(f2.i);
84255 for (e = new Fyd(f2); e.e != e.i.gc(); ) {
84256 d = BD(Dyd(e), 138);
84257 g = d.ne();
84258 c2 = BD(g == null ? jrb(h.f, null, d) : Drb(h.g, g, d), 138);
84259 !!c2 && (g == null ? jrb(h.f, null, c2) : Drb(h.g, g, c2));
84260 }
84261 a.tb = h;
84262 }
84263 return BD(Phb(a.tb, b), 138);
84264 }
84265 function YKd(a, b) {
84266 var c2, d, e, f2, g;
84267 (a.i == null && TKd(a), a.i).length;
84268 if (!a.p) {
84269 g = new Mqb((3 * a.g.i / 2 | 0) + 1);
84270 for (e = new $yd(a.g); e.e != e.i.gc(); ) {
84271 d = BD(Zyd(e), 170);
84272 f2 = d.ne();
84273 c2 = BD(f2 == null ? jrb(g.f, null, d) : Drb(g.g, f2, d), 170);
84274 !!c2 && (f2 == null ? jrb(g.f, null, c2) : Drb(g.g, f2, c2));
84275 }
84276 a.p = g;
84277 }
84278 return BD(Phb(a.p, b), 170);
84279 }
84280 function hCb(a, b, c2, d, e) {
84281 var f2, g, h, i3, j;
84282 fCb(d + Wy(c2, c2.$d()), e);
84283 gCb(b, jCb(c2));
84284 f2 = c2.f;
84285 !!f2 && hCb(a, b, f2, "Caused by: ", false);
84286 for (h = (c2.k == null && (c2.k = KC(_I, nie, 78, 0, 0, 1)), c2.k), i3 = 0, j = h.length; i3 < j; ++i3) {
84287 g = h[i3];
84288 hCb(a, b, g, "Suppressed: ", false);
84289 }
84290 console.groupEnd != null && console.groupEnd.call(console);
84291 }
84292 function dGc(a, b, c2, d) {
84293 var e, f2, g, h, i3;
84294 i3 = b.e;
84295 h = i3.length;
84296 g = b.q._f(i3, c2 ? 0 : h - 1, c2);
84297 e = i3[c2 ? 0 : h - 1];
84298 g = g | cGc(a, e, c2, d);
84299 for (f2 = c2 ? 1 : h - 2; c2 ? f2 < h : f2 >= 0; f2 += c2 ? 1 : -1) {
84300 g = g | b.c.Sf(i3, f2, c2, d && !Ccb(DD(vNb(b.j, (wtc(), Jsc)))) && !Ccb(DD(vNb(b.j, (wtc(), mtc)))));
84301 g = g | b.q._f(i3, f2, c2);
84302 g = g | cGc(a, i3[f2], c2, d);
84303 }
84304 Qqb(a.c, b);
84305 return g;
84306 }
84307 function o3b(a, b, c2) {
84308 var d, e, f2, g, h, i3, j, k, l, m;
84309 for (k = m_b(a.j), l = 0, m = k.length; l < m; ++l) {
84310 j = k[l];
84311 if (c2 == (KAc(), HAc) || c2 == JAc) {
84312 i3 = k_b(j.g);
84313 for (e = i3, f2 = 0, g = e.length; f2 < g; ++f2) {
84314 d = e[f2];
84315 k3b(b, d) && PZb(d, true);
84316 }
84317 }
84318 if (c2 == IAc || c2 == JAc) {
84319 h = k_b(j.e);
84320 for (e = h, f2 = 0, g = e.length; f2 < g; ++f2) {
84321 d = e[f2];
84322 j3b(b, d) && PZb(d, true);
84323 }
84324 }
84325 }
84326 }
84327 function Qmc(a) {
84328 var b, c2;
84329 b = null;
84330 c2 = null;
84331 switch (Lmc(a).g) {
84332 case 1:
84333 b = (Ucd(), zcd);
84334 c2 = Tcd;
84335 break;
84336 case 2:
84337 b = (Ucd(), Rcd);
84338 c2 = Acd;
84339 break;
84340 case 3:
84341 b = (Ucd(), Tcd);
84342 c2 = zcd;
84343 break;
84344 case 4:
84345 b = (Ucd(), Acd);
84346 c2 = Rcd;
84347 }
84348 mjc(a, BD(Btb(RAb(BD(Qc(a.k, b), 15).Oc(), Hmc)), 113));
84349 njc(a, BD(Btb(QAb(BD(Qc(a.k, c2), 15).Oc(), Hmc)), 113));
84350 }
84351 function a6b(a) {
84352 var b, c2, d, e, f2, g;
84353 e = BD(Ikb(a.j, 0), 11);
84354 if (e.e.c.length + e.g.c.length == 0) {
84355 a.n.a = 0;
84356 } else {
84357 g = 0;
84358 for (d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(e), new R0b(e)]))); Qr(d); ) {
84359 c2 = BD(Rr(d), 11);
84360 g += c2.i.n.a + c2.n.a + c2.a.a;
84361 }
84362 b = BD(vNb(a, (Nyc(), Txc)), 8);
84363 f2 = !b ? 0 : b.a;
84364 a.n.a = g / (e.e.c.length + e.g.c.length) - f2;
84365 }
84366 }
84367 function F1c(a, b) {
84368 var c2, d, e;
84369 for (d = new olb(b.a); d.a < d.c.c.length; ) {
84370 c2 = BD(mlb(d), 221);
84371 $Nb(BD(c2.b, 65), c7c(R6c(BD(b.b, 65).c), BD(b.b, 65).a));
84372 e = xOb(BD(b.b, 65).b, BD(c2.b, 65).b);
84373 e > 1 && (a.a = true);
84374 ZNb(BD(c2.b, 65), P6c(R6c(BD(b.b, 65).c), Y6c(c7c(R6c(BD(c2.b, 65).a), BD(b.b, 65).a), e)));
84375 D1c(a, b);
84376 F1c(a, c2);
84377 }
84378 }
84379 function rVb(a) {
84380 var b, c2, d, e, f2, g, h;
84381 for (f2 = new olb(a.a.a); f2.a < f2.c.c.length; ) {
84382 d = BD(mlb(f2), 189);
84383 d.e = 0;
84384 d.d.a.$b();
84385 }
84386 for (e = new olb(a.a.a); e.a < e.c.c.length; ) {
84387 d = BD(mlb(e), 189);
84388 for (c2 = d.a.a.ec().Kc(); c2.Ob(); ) {
84389 b = BD(c2.Pb(), 81);
84390 for (h = b.f.Kc(); h.Ob(); ) {
84391 g = BD(h.Pb(), 81);
84392 if (g.d != d) {
84393 Qqb(d.d, g);
84394 ++g.d.e;
84395 }
84396 }
84397 }
84398 }
84399 }
84400 function bcc(a) {
84401 var b, c2, d, e, f2, g, h, i3;
84402 i3 = a.j.c.length;
84403 c2 = 0;
84404 b = i3;
84405 e = 2 * i3;
84406 for (h = new olb(a.j); h.a < h.c.c.length; ) {
84407 g = BD(mlb(h), 11);
84408 switch (g.j.g) {
84409 case 2:
84410 case 4:
84411 g.p = -1;
84412 break;
84413 case 1:
84414 case 3:
84415 d = g.e.c.length;
84416 f2 = g.g.c.length;
84417 d > 0 && f2 > 0 ? g.p = b++ : d > 0 ? g.p = c2++ : f2 > 0 ? g.p = e++ : g.p = c2++;
84418 }
84419 }
84420 mmb();
84421 Okb(a.j, new fcc());
84422 }
84423 function Vec(a) {
84424 var b, c2;
84425 c2 = null;
84426 b = BD(Ikb(a.g, 0), 17);
84427 do {
84428 c2 = b.d.i;
84429 if (wNb(c2, (wtc(), Wsc))) {
84430 return BD(vNb(c2, Wsc), 11).i;
84431 }
84432 if (c2.k != (j0b(), h0b) && Qr(new Sr(ur(U_b(c2).a.Kc(), new Sq())))) {
84433 b = BD(Rr(new Sr(ur(U_b(c2).a.Kc(), new Sq()))), 17);
84434 } else if (c2.k != h0b) {
84435 return null;
84436 }
84437 } while (!!c2 && c2.k != (j0b(), h0b));
84438 return c2;
84439 }
84440 function Omc(a, b) {
84441 var c2, d, e, f2, g, h, i3, j, k;
84442 h = b.j;
84443 g = b.g;
84444 i3 = BD(Ikb(h, h.c.length - 1), 113);
84445 k = (tCb(0, h.c.length), BD(h.c[0], 113));
84446 j = Kmc(a, g, i3, k);
84447 for (f2 = 1; f2 < h.c.length; f2++) {
84448 c2 = (tCb(f2 - 1, h.c.length), BD(h.c[f2 - 1], 113));
84449 e = (tCb(f2, h.c.length), BD(h.c[f2], 113));
84450 d = Kmc(a, g, c2, e);
84451 if (d > j) {
84452 i3 = c2;
84453 k = e;
84454 j = d;
84455 }
84456 }
84457 b.a = k;
84458 b.c = i3;
84459 }
84460 function sEb(a, b) {
84461 var c2, d;
84462 d = Axb(a.b, b.b);
84463 if (!d) {
84464 throw vbb(new Zdb("Invalid hitboxes for scanline constraint calculation."));
84465 }
84466 (mEb(b.b, BD(Cxb(a.b, b.b), 57)) || mEb(b.b, BD(Bxb(a.b, b.b), 57))) && (Zfb(), b.b + " has overlap.");
84467 a.a[b.b.f] = BD(Exb(a.b, b.b), 57);
84468 c2 = BD(Dxb(a.b, b.b), 57);
84469 !!c2 && (a.a[c2.f] = b.b);
84470 }
84471 function AFb(a) {
84472 if (!a.a.d || !a.a.e) {
84473 throw vbb(new Zdb((fdb(fN), fN.k + " must have a source and target " + (fdb(jN), jN.k) + " specified.")));
84474 }
84475 if (a.a.d == a.a.e) {
84476 throw vbb(new Zdb("Network simplex does not support self-loops: " + a.a + " " + a.a.d + " " + a.a.e));
84477 }
84478 NFb(a.a.d.g, a.a);
84479 NFb(a.a.e.b, a.a);
84480 return a.a;
84481 }
84482 function HHc(a, b, c2) {
84483 var d, e, f2, g, h, i3, j;
84484 j = new Hxb(new tIc(a));
84485 for (g = OC(GC(aR, 1), lne, 11, 0, [b, c2]), h = 0, i3 = g.length; h < i3; ++h) {
84486 f2 = g[h];
84487 Iwb(j.a, f2, (Bcb(), zcb)) == null;
84488 for (e = new b1b(f2.b); llb(e.a) || llb(e.b); ) {
84489 d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
84490 d.c == d.d || Axb(j, f2 == d.c ? d.d : d.c);
84491 }
84492 }
84493 return Qb(j), new Tkb(j);
84494 }
84495 function oPc(a, b, c2) {
84496 var d, e, f2, g, h, i3;
84497 d = 0;
84498 if (b.b != 0 && c2.b != 0) {
84499 f2 = Jsb(b, 0);
84500 g = Jsb(c2, 0);
84501 h = Edb(ED(Xsb(f2)));
84502 i3 = Edb(ED(Xsb(g)));
84503 e = true;
84504 do {
84505 if (h > i3 - a.b && h < i3 + a.b) {
84506 return -1;
84507 } else
84508 h > i3 - a.a && h < i3 + a.a && ++d;
84509 h <= i3 && f2.b != f2.d.c ? h = Edb(ED(Xsb(f2))) : i3 <= h && g.b != g.d.c ? i3 = Edb(ED(Xsb(g))) : e = false;
84510 } while (e);
84511 }
84512 return d;
84513 }
84514 function F3b(a, b, c2, d, e) {
84515 var f2, g, h, i3;
84516 i3 = (f2 = BD(gdb(F1), 9), new xqb(f2, BD(_Bb(f2, f2.length), 9), 0));
84517 for (h = new olb(a.j); h.a < h.c.c.length; ) {
84518 g = BD(mlb(h), 11);
84519 if (b[g.p]) {
84520 G3b(g, b[g.p], d);
84521 rqb(i3, g.j);
84522 }
84523 }
84524 if (e) {
84525 K3b(a, b, (Ucd(), zcd), 2 * c2, d);
84526 K3b(a, b, Tcd, 2 * c2, d);
84527 } else {
84528 K3b(a, b, (Ucd(), Acd), 2 * c2, d);
84529 K3b(a, b, Rcd, 2 * c2, d);
84530 }
84531 }
84532 function Szb(a) {
84533 var b, c2, d, e, f2;
84534 f2 = new Rkb();
84535 Hkb(a.b, new XBb(f2));
84536 a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
84537 if (f2.c.length != 0) {
84538 b = (tCb(0, f2.c.length), BD(f2.c[0], 78));
84539 for (c2 = 1, d = f2.c.length; c2 < d; ++c2) {
84540 e = (tCb(c2, f2.c.length), BD(f2.c[c2], 78));
84541 e != b && Qy(b, e);
84542 }
84543 if (JD(b, 60)) {
84544 throw vbb(BD(b, 60));
84545 }
84546 if (JD(b, 289)) {
84547 throw vbb(BD(b, 289));
84548 }
84549 }
84550 }
84551 function DCb(a, b) {
84552 var c2, d, e, f2;
84553 a = a == null ? Xhe : (uCb(a), a);
84554 c2 = new Vfb();
84555 f2 = 0;
84556 d = 0;
84557 while (d < b.length) {
84558 e = a.indexOf("%s", f2);
84559 if (e == -1) {
84560 break;
84561 }
84562 Qfb(c2, a.substr(f2, e - f2));
84563 Pfb(c2, b[d++]);
84564 f2 = e + 2;
84565 }
84566 Qfb(c2, a.substr(f2));
84567 if (d < b.length) {
84568 c2.a += " [";
84569 Pfb(c2, b[d++]);
84570 while (d < b.length) {
84571 c2.a += She;
84572 Pfb(c2, b[d++]);
84573 }
84574 c2.a += "]";
84575 }
84576 return c2.a;
84577 }
84578 function KCb(a) {
84579 var b, c2, d, e;
84580 b = 0;
84581 d = a.length;
84582 e = d - 4;
84583 c2 = 0;
84584 while (c2 < e) {
84585 b = (BCb(c2 + 3, a.length), a.charCodeAt(c2 + 3) + (BCb(c2 + 2, a.length), 31 * (a.charCodeAt(c2 + 2) + (BCb(c2 + 1, a.length), 31 * (a.charCodeAt(c2 + 1) + (BCb(c2, a.length), 31 * (a.charCodeAt(c2) + 31 * b)))))));
84586 b = b | 0;
84587 c2 += 4;
84588 }
84589 while (c2 < d) {
84590 b = b * 31 + bfb(a, c2++);
84591 }
84592 b = b | 0;
84593 return b;
84594 }
84595 function Rac(a) {
84596 var b, c2;
84597 for (c2 = new Sr(ur(U_b(a).a.Kc(), new Sq())); Qr(c2); ) {
84598 b = BD(Rr(c2), 17);
84599 if (b.d.i.k != (j0b(), f0b)) {
84600 throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to LAST, but has at least one outgoing edge that does not go to a LAST_SEPARATE node. That must not happen."));
84601 }
84602 }
84603 }
84604 function jQc(a, b, c2, d) {
84605 var e, f2, g, h, i3, j, k, l, m;
84606 i3 = 0;
84607 for (k = new olb(a.a); k.a < k.c.c.length; ) {
84608 j = BD(mlb(k), 10);
84609 h = 0;
84610 for (f2 = new Sr(ur(R_b(j).a.Kc(), new Sq())); Qr(f2); ) {
84611 e = BD(Rr(f2), 17);
84612 l = A0b(e.c).b;
84613 m = A0b(e.d).b;
84614 h = $wnd.Math.max(h, $wnd.Math.abs(m - l));
84615 }
84616 i3 = $wnd.Math.max(i3, h);
84617 }
84618 g = d * $wnd.Math.min(1, b / c2) * i3;
84619 return g;
84620 }
84621 function See(a) {
84622 var b;
84623 b = new Ifb();
84624 (a & 256) != 0 && (b.a += "F", b);
84625 (a & 128) != 0 && (b.a += "H", b);
84626 (a & 512) != 0 && (b.a += "X", b);
84627 (a & 2) != 0 && (b.a += "i", b);
84628 (a & 8) != 0 && (b.a += "m", b);
84629 (a & 4) != 0 && (b.a += "s", b);
84630 (a & 32) != 0 && (b.a += "u", b);
84631 (a & 64) != 0 && (b.a += "w", b);
84632 (a & 16) != 0 && (b.a += "x", b);
84633 (a & zte) != 0 && (b.a += ",", b);
84634 return jfb(b.a);
84635 }
84636 function F5b(a, b) {
84637 var c2, d, e, f2;
84638 Odd(b, "Resize child graph to fit parent.", 1);
84639 for (d = new olb(a.b); d.a < d.c.c.length; ) {
84640 c2 = BD(mlb(d), 29);
84641 Gkb(a.a, c2.a);
84642 c2.a.c = KC(SI, Uhe, 1, 0, 5, 1);
84643 }
84644 for (f2 = new olb(a.a); f2.a < f2.c.c.length; ) {
84645 e = BD(mlb(f2), 10);
84646 $_b(e, null);
84647 }
84648 a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
84649 G5b(a);
84650 !!a.e && E5b(a.e, a);
84651 Qdd(b);
84652 }
84653 function eec(a) {
84654 var b, c2, d, e, f2, g, h, i3, j;
84655 d = a.b;
84656 f2 = d.e;
84657 g = ecd(BD(vNb(d, (Nyc(), Vxc)), 98));
84658 c2 = !!f2 && BD(vNb(f2, (wtc(), Ksc)), 21).Hc((Orc(), Hrc));
84659 if (g || c2) {
84660 return;
84661 }
84662 for (j = (h = new $ib(a.e).a.vc().Kc(), new djb(h)); j.a.Ob(); ) {
84663 i3 = (b = BD(j.a.Pb(), 42), BD(b.dd(), 113));
84664 if (i3.a) {
84665 e = i3.d;
84666 F0b(e, null);
84667 i3.c = true;
84668 a.a = true;
84669 }
84670 }
84671 }
84672 function QFc(a) {
84673 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n;
84674 m = -1;
84675 n = 0;
84676 for (j = a, k = 0, l = j.length; k < l; ++k) {
84677 i3 = j[k];
84678 for (f2 = i3, g = 0, h = f2.length; g < h; ++g) {
84679 e = f2[g];
84680 b = new Unc(m == -1 ? a[0] : a[m], Xec(e));
84681 for (c2 = 0; c2 < e.j.c.length; c2++) {
84682 for (d = c2 + 1; d < e.j.c.length; d++) {
84683 Rnc(b, BD(Ikb(e.j, c2), 11), BD(Ikb(e.j, d), 11)) > 0 && ++n;
84684 }
84685 }
84686 }
84687 ++m;
84688 }
84689 return n;
84690 }
84691 function hUc(a, b) {
84692 var c2, d, e, f2, g;
84693 g = BD(vNb(b, (JTc(), FTc)), 425);
84694 for (f2 = Jsb(b.b, 0); f2.b != f2.d.c; ) {
84695 e = BD(Xsb(f2), 86);
84696 if (a.b[e.g] == 0) {
84697 switch (g.g) {
84698 case 0:
84699 iUc(a, e);
84700 break;
84701 case 1:
84702 gUc(a, e);
84703 }
84704 a.b[e.g] = 2;
84705 }
84706 }
84707 for (d = Jsb(a.a, 0); d.b != d.d.c; ) {
84708 c2 = BD(Xsb(d), 188);
84709 ze(c2.b.d, c2, true);
84710 ze(c2.c.b, c2, true);
84711 }
84712 yNb(b, (mTc(), gTc), a.a);
84713 }
84714 function S6d(a, b) {
84715 Q6d();
84716 var c2, d, e, f2;
84717 if (!b) {
84718 return P6d;
84719 } else if (b == (Q8d(), N8d) || (b == v8d || b == t8d || b == u8d) && a != s8d) {
84720 return new Z6d(a, b);
84721 } else {
84722 d = BD(b, 677);
84723 c2 = d.pk();
84724 if (!c2) {
84725 a2d(q1d((O6d(), M6d), b));
84726 c2 = d.pk();
84727 }
84728 f2 = (!c2.i && (c2.i = new Lqb()), c2.i);
84729 e = BD(Wd(irb(f2.f, a)), 1942);
84730 !e && Rhb(f2, a, e = new Z6d(a, b));
84731 return e;
84732 }
84733 }
84734 function Tbc(a, b) {
84735 var c2, d, e, f2, g, h, i3, j, k;
84736 i3 = BD(vNb(a, (wtc(), $sc)), 11);
84737 j = l7c(OC(GC(m1, 1), nie, 8, 0, [i3.i.n, i3.n, i3.a])).a;
84738 k = a.i.n.b;
84739 c2 = k_b(a.e);
84740 for (e = c2, f2 = 0, g = e.length; f2 < g; ++f2) {
84741 d = e[f2];
84742 RZb(d, i3);
84743 Fsb(d.a, new f7c(j, k));
84744 if (b) {
84745 h = BD(vNb(d, (Nyc(), jxc)), 74);
84746 if (!h) {
84747 h = new s7c();
84748 yNb(d, jxc, h);
84749 }
84750 Dsb(h, new f7c(j, k));
84751 }
84752 }
84753 }
84754 function Ubc(a, b) {
84755 var c2, d, e, f2, g, h, i3, j, k;
84756 e = BD(vNb(a, (wtc(), $sc)), 11);
84757 j = l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).a;
84758 k = a.i.n.b;
84759 c2 = k_b(a.g);
84760 for (g = c2, h = 0, i3 = g.length; h < i3; ++h) {
84761 f2 = g[h];
84762 QZb(f2, e);
84763 Esb(f2.a, new f7c(j, k));
84764 if (b) {
84765 d = BD(vNb(f2, (Nyc(), jxc)), 74);
84766 if (!d) {
84767 d = new s7c();
84768 yNb(f2, jxc, d);
84769 }
84770 Dsb(d, new f7c(j, k));
84771 }
84772 }
84773 }
84774 function TFc(a, b) {
84775 var c2, d, e, f2, g, h;
84776 a.b = new Rkb();
84777 a.d = BD(vNb(b, (wtc(), jtc)), 230);
84778 a.e = Dub(a.d);
84779 f2 = new Psb();
84780 e = Ou(OC(GC(KQ, 1), cne, 37, 0, [b]));
84781 g = 0;
84782 while (g < e.c.length) {
84783 d = (tCb(g, e.c.length), BD(e.c[g], 37));
84784 d.p = g++;
84785 c2 = new fFc(d, a.a, a.b);
84786 Gkb(e, c2.b);
84787 Ekb(a.b, c2);
84788 c2.s && (h = Jsb(f2, 0), Vsb(h, c2));
84789 }
84790 a.c = new Tqb();
84791 return f2;
84792 }
84793 function HJb(a, b) {
84794 var c2, d, e, f2, g, h;
84795 for (g = BD(BD(Qc(a.r, b), 21), 84).Kc(); g.Ob(); ) {
84796 f2 = BD(g.Pb(), 111);
84797 c2 = f2.c ? ZHb(f2.c) : 0;
84798 if (c2 > 0) {
84799 if (f2.a) {
84800 h = f2.b.rf().a;
84801 if (c2 > h) {
84802 e = (c2 - h) / 2;
84803 f2.d.b = e;
84804 f2.d.c = e;
84805 }
84806 } else {
84807 f2.d.c = a.s + c2;
84808 }
84809 } else if (tcd(a.u)) {
84810 d = sfd(f2.b);
84811 d.c < 0 && (f2.d.b = -d.c);
84812 d.c + d.b > f2.b.rf().a && (f2.d.c = d.c + d.b - f2.b.rf().a);
84813 }
84814 }
84815 }
84816 function Eec(a, b) {
84817 var c2, d, e, f2;
84818 Odd(b, "Semi-Interactive Crossing Minimization Processor", 1);
84819 c2 = false;
84820 for (e = new olb(a.b); e.a < e.c.c.length; ) {
84821 d = BD(mlb(e), 29);
84822 f2 = TAb(VAb(JAb(JAb(new YAb(null, new Kub(d.a, 16)), new Jec()), new Lec()), new Nec()), new Rec());
84823 c2 = c2 | f2.a != null;
84824 }
84825 c2 && yNb(a, (wtc(), Rsc), (Bcb(), true));
84826 Qdd(b);
84827 }
84828 function sRc(a, b, c2) {
84829 var d, e, f2, g, h;
84830 e = c2;
84831 !e && (e = new Zdd());
84832 Odd(e, "Layout", a.a.c.length);
84833 if (Ccb(DD(vNb(b, (JTc(), vTc))))) {
84834 Zfb();
84835 for (d = 0; d < a.a.c.length; d++) {
84836 h = (d < 10 ? "0" : "") + d++;
84837 " Slot " + h + ": " + hdb(rb(BD(Ikb(a.a, d), 51)));
84838 }
84839 }
84840 for (g = new olb(a.a); g.a < g.c.c.length; ) {
84841 f2 = BD(mlb(g), 51);
84842 f2.pf(b, Udd(e, 1));
84843 }
84844 Qdd(e);
84845 }
84846 function yMb(a) {
84847 var b, c2;
84848 b = BD(a.a, 19).a;
84849 c2 = BD(a.b, 19).a;
84850 if (b >= 0) {
84851 if (b == c2) {
84852 return new vgd(meb(-b - 1), meb(-b - 1));
84853 }
84854 if (b == -c2) {
84855 return new vgd(meb(-b), meb(c2 + 1));
84856 }
84857 }
84858 if ($wnd.Math.abs(b) > $wnd.Math.abs(c2)) {
84859 if (b < 0) {
84860 return new vgd(meb(-b), meb(c2));
84861 }
84862 return new vgd(meb(-b), meb(c2 + 1));
84863 }
84864 return new vgd(meb(b + 1), meb(c2));
84865 }
84866 function q5b(a) {
84867 var b, c2;
84868 c2 = BD(vNb(a, (Nyc(), mxc)), 163);
84869 b = BD(vNb(a, (wtc(), Osc)), 303);
84870 if (c2 == (Ctc(), ytc)) {
84871 yNb(a, mxc, Btc);
84872 yNb(a, Osc, (esc(), dsc));
84873 } else if (c2 == Atc) {
84874 yNb(a, mxc, Btc);
84875 yNb(a, Osc, (esc(), bsc));
84876 } else if (b == (esc(), dsc)) {
84877 yNb(a, mxc, ytc);
84878 yNb(a, Osc, csc);
84879 } else if (b == bsc) {
84880 yNb(a, mxc, Atc);
84881 yNb(a, Osc, csc);
84882 }
84883 }
84884 function FNc() {
84885 FNc = ccb;
84886 DNc = new RNc();
84887 zNc = e3c(new j3c(), (qUb(), nUb), (S8b(), o8b));
84888 CNc = c3c(e3c(new j3c(), nUb, C8b), pUb, B8b);
84889 ENc = b3c(b3c(g3c(c3c(e3c(new j3c(), lUb, M8b), pUb, L8b), oUb), K8b), N8b);
84890 ANc = c3c(e3c(e3c(e3c(new j3c(), mUb, r8b), oUb, t8b), oUb, u8b), pUb, s8b);
84891 BNc = c3c(e3c(e3c(new j3c(), oUb, u8b), oUb, _7b), pUb, $7b);
84892 }
84893 function hQc() {
84894 hQc = ccb;
84895 cQc = e3c(c3c(new j3c(), (qUb(), pUb), (S8b(), c8b)), nUb, o8b);
84896 gQc = b3c(b3c(g3c(c3c(e3c(new j3c(), lUb, M8b), pUb, L8b), oUb), K8b), N8b);
84897 dQc = c3c(e3c(e3c(e3c(new j3c(), mUb, r8b), oUb, t8b), oUb, u8b), pUb, s8b);
84898 fQc = e3c(e3c(new j3c(), nUb, C8b), pUb, B8b);
84899 eQc = c3c(e3c(e3c(new j3c(), oUb, u8b), oUb, _7b), pUb, $7b);
84900 }
84901 function GNc(a, b, c2, d, e) {
84902 var f2, g;
84903 if ((!OZb(b) && b.c.i.c == b.d.i.c || !T6c(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])), c2)) && !OZb(b)) {
84904 b.c == e ? St(b.a, 0, new g7c(c2)) : Dsb(b.a, new g7c(c2));
84905 if (d && !Rqb(a.a, c2)) {
84906 g = BD(vNb(b, (Nyc(), jxc)), 74);
84907 if (!g) {
84908 g = new s7c();
84909 yNb(b, jxc, g);
84910 }
84911 f2 = new g7c(c2);
84912 Gsb(g, f2, g.c.b, g.c);
84913 Qqb(a.a, f2);
84914 }
84915 }
84916 }
84917 function Qac(a) {
84918 var b, c2;
84919 for (c2 = new Sr(ur(R_b(a).a.Kc(), new Sq())); Qr(c2); ) {
84920 b = BD(Rr(c2), 17);
84921 if (b.c.i.k != (j0b(), f0b)) {
84922 throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to FIRST, but has at least one incoming edge that does not come from a FIRST_SEPARATE node. That must not happen."));
84923 }
84924 }
84925 }
84926 function vjd(a, b, c2) {
84927 var d, e, f2, g, h, i3, j;
84928 e = aeb(a.Db & 254);
84929 if (e == 0) {
84930 a.Eb = c2;
84931 } else {
84932 if (e == 1) {
84933 h = KC(SI, Uhe, 1, 2, 5, 1);
84934 f2 = zjd(a, b);
84935 if (f2 == 0) {
84936 h[0] = c2;
84937 h[1] = a.Eb;
84938 } else {
84939 h[0] = a.Eb;
84940 h[1] = c2;
84941 }
84942 } else {
84943 h = KC(SI, Uhe, 1, e + 1, 5, 1);
84944 g = CD(a.Eb);
84945 for (d = 2, i3 = 0, j = 0; d <= 128; d <<= 1) {
84946 d == b ? h[j++] = c2 : (a.Db & d) != 0 && (h[j++] = g[i3++]);
84947 }
84948 }
84949 a.Eb = h;
84950 }
84951 a.Db |= b;
84952 }
84953 function ENb(a, b, c2) {
84954 var d, e, f2, g;
84955 this.b = new Rkb();
84956 e = 0;
84957 d = 0;
84958 for (g = new olb(a); g.a < g.c.c.length; ) {
84959 f2 = BD(mlb(g), 167);
84960 c2 && rMb(f2);
84961 Ekb(this.b, f2);
84962 e += f2.o;
84963 d += f2.p;
84964 }
84965 if (this.b.c.length > 0) {
84966 f2 = BD(Ikb(this.b, 0), 167);
84967 e += f2.o;
84968 d += f2.p;
84969 }
84970 e *= 2;
84971 d *= 2;
84972 b > 1 ? e = QD($wnd.Math.ceil(e * b)) : d = QD($wnd.Math.ceil(d / b));
84973 this.a = new pNb(e, d);
84974 }
84975 function Igc(a, b, c2, d, e, f2) {
84976 var g, h, i3, j, k, l, m, n, o2, p, q, r;
84977 k = d;
84978 if (b.j && b.o) {
84979 n = BD(Ohb(a.f, b.A), 57);
84980 p = n.d.c + n.d.b;
84981 --k;
84982 } else {
84983 p = b.a.c + b.a.b;
84984 }
84985 l = e;
84986 if (c2.q && c2.o) {
84987 n = BD(Ohb(a.f, c2.C), 57);
84988 j = n.d.c;
84989 ++l;
84990 } else {
84991 j = c2.a.c;
84992 }
84993 q = j - p;
84994 i3 = $wnd.Math.max(2, l - k);
84995 h = q / i3;
84996 o2 = p + h;
84997 for (m = k; m < l; ++m) {
84998 g = BD(f2.Xb(m), 128);
84999 r = g.a.b;
85000 g.a.c = o2 - r / 2;
85001 o2 += h;
85002 }
85003 }
85004 function UHc(a, b, c2, d, e, f2) {
85005 var g, h, i3, j, k, l;
85006 j = c2.c.length;
85007 f2 && (a.c = KC(WD, oje, 25, b.length, 15, 1));
85008 for (g = e ? 0 : b.length - 1; e ? g < b.length : g >= 0; g += e ? 1 : -1) {
85009 h = b[g];
85010 i3 = d == (Ucd(), zcd) ? e ? V_b(h, d) : Su(V_b(h, d)) : e ? Su(V_b(h, d)) : V_b(h, d);
85011 f2 && (a.c[h.p] = i3.gc());
85012 for (l = i3.Kc(); l.Ob(); ) {
85013 k = BD(l.Pb(), 11);
85014 a.d[k.p] = j++;
85015 }
85016 Gkb(c2, i3);
85017 }
85018 }
85019 function aQc(a, b, c2) {
85020 var d, e, f2, g, h, i3, j, k;
85021 f2 = Edb(ED(a.b.Kc().Pb()));
85022 j = Edb(ED(Pq(b.b)));
85023 d = Y6c(R6c(a.a), j - c2);
85024 e = Y6c(R6c(b.a), c2 - f2);
85025 k = P6c(d, e);
85026 Y6c(k, 1 / (j - f2));
85027 this.a = k;
85028 this.b = new Rkb();
85029 h = true;
85030 g = a.b.Kc();
85031 g.Pb();
85032 while (g.Ob()) {
85033 i3 = Edb(ED(g.Pb()));
85034 if (h && i3 - c2 > Oqe) {
85035 this.b.Fc(c2);
85036 h = false;
85037 }
85038 this.b.Fc(i3);
85039 }
85040 h && this.b.Fc(c2);
85041 }
85042 function vGb(a) {
85043 var b, c2, d, e;
85044 yGb(a, a.n);
85045 if (a.d.c.length > 0) {
85046 Blb(a.c);
85047 while (GGb(a, BD(mlb(new olb(a.e.a)), 121)) < a.e.a.c.length) {
85048 b = AGb(a);
85049 e = b.e.e - b.d.e - b.a;
85050 b.e.j && (e = -e);
85051 for (d = new olb(a.e.a); d.a < d.c.c.length; ) {
85052 c2 = BD(mlb(d), 121);
85053 c2.j && (c2.e += e);
85054 }
85055 Blb(a.c);
85056 }
85057 Blb(a.c);
85058 DGb(a, BD(mlb(new olb(a.e.a)), 121));
85059 rGb(a);
85060 }
85061 }
85062 function rkc(a, b) {
85063 var c2, d, e, f2, g;
85064 for (e = BD(Qc(a.a, (Xjc(), Tjc)), 15).Kc(); e.Ob(); ) {
85065 d = BD(e.Pb(), 101);
85066 c2 = BD(Ikb(d.j, 0), 113).d.j;
85067 f2 = new Tkb(d.j);
85068 Okb(f2, new Xkc());
85069 switch (b.g) {
85070 case 1:
85071 jkc(a, f2, c2, (Fkc(), Dkc), 1);
85072 break;
85073 case 0:
85074 g = lkc(f2);
85075 jkc(a, new Jib(f2, 0, g), c2, (Fkc(), Dkc), 0);
85076 jkc(a, new Jib(f2, g, f2.c.length), c2, Dkc, 1);
85077 }
85078 }
85079 }
85080 function c2c(a, b) {
85081 Y1c();
85082 var c2, d;
85083 c2 = j4c(n4c(), b.tg());
85084 if (c2) {
85085 d = c2.j;
85086 if (JD(a, 239)) {
85087 return Zod(BD(a, 33)) ? uqb(d, (N5c(), K5c)) || uqb(d, L5c) : uqb(d, (N5c(), K5c));
85088 } else if (JD(a, 352)) {
85089 return uqb(d, (N5c(), I5c));
85090 } else if (JD(a, 186)) {
85091 return uqb(d, (N5c(), M5c));
85092 } else if (JD(a, 354)) {
85093 return uqb(d, (N5c(), J5c));
85094 }
85095 }
85096 return true;
85097 }
85098 function c3d(a, b, c2) {
85099 var d, e, f2, g, h, i3;
85100 e = c2;
85101 f2 = e.ak();
85102 if (T6d(a.e, f2)) {
85103 if (f2.hi()) {
85104 d = BD(a.g, 119);
85105 for (g = 0; g < a.i; ++g) {
85106 h = d[g];
85107 if (pb(h, e) && g != b) {
85108 throw vbb(new Wdb(kue));
85109 }
85110 }
85111 }
85112 } else {
85113 i3 = S6d(a.e.Tg(), f2);
85114 d = BD(a.g, 119);
85115 for (g = 0; g < a.i; ++g) {
85116 h = d[g];
85117 if (i3.rl(h.ak()) && g != b) {
85118 throw vbb(new Wdb(Hwe));
85119 }
85120 }
85121 }
85122 return BD(Gtd(a, b, c2), 72);
85123 }
85124 function Sy(d, b) {
85125 if (b instanceof Object) {
85126 try {
85127 b.__java$exception = d;
85128 if (navigator.userAgent.toLowerCase().indexOf("msie") != -1 && $doc.documentMode < 9) {
85129 return;
85130 }
85131 var c2 = d;
85132 Object.defineProperties(b, { cause: { get: function() {
85133 var a = c2.Zd();
85134 return a && a.Xd();
85135 } }, suppressed: { get: function() {
85136 return c2.Yd();
85137 } } });
85138 } catch (a) {
85139 }
85140 }
85141 }
85142 function lhb(a, b) {
85143 var c2, d, e, f2, g;
85144 d = b >> 5;
85145 b &= 31;
85146 if (d >= a.d) {
85147 return a.e < 0 ? (Hgb(), Bgb) : (Hgb(), Ggb);
85148 }
85149 f2 = a.d - d;
85150 e = KC(WD, oje, 25, f2 + 1, 15, 1);
85151 mhb(e, f2, a.a, d, b);
85152 if (a.e < 0) {
85153 for (c2 = 0; c2 < d && a.a[c2] == 0; c2++)
85154 ;
85155 if (c2 < d || b > 0 && a.a[c2] << 32 - b != 0) {
85156 for (c2 = 0; c2 < f2 && e[c2] == -1; c2++) {
85157 e[c2] = 0;
85158 }
85159 c2 == f2 && ++f2;
85160 ++e[c2];
85161 }
85162 }
85163 g = new Vgb(a.e, f2, e);
85164 Jgb(g);
85165 return g;
85166 }
85167 function UPb(a) {
85168 var b, c2, d, e;
85169 e = mpd(a);
85170 c2 = new kQb(e);
85171 d = new mQb(e);
85172 b = new Rkb();
85173 Gkb(b, (!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d));
85174 Gkb(b, (!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e));
85175 return BD(GAb(NAb(JAb(new YAb(null, new Kub(b, 16)), c2), d), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
85176 }
85177 function p2d(a, b, c2, d) {
85178 var e, f2, g, h, i3;
85179 h = (Q6d(), BD(b, 66).Oj());
85180 if (T6d(a.e, b)) {
85181 if (b.hi() && F2d(a, b, d, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) {
85182 throw vbb(new Wdb(kue));
85183 }
85184 } else {
85185 i3 = S6d(a.e.Tg(), b);
85186 e = BD(a.g, 119);
85187 for (g = 0; g < a.i; ++g) {
85188 f2 = e[g];
85189 if (i3.rl(f2.ak())) {
85190 throw vbb(new Wdb(Hwe));
85191 }
85192 }
85193 }
85194 vtd(a, I2d(a, b, c2), h ? BD(d, 72) : R6d(b, d));
85195 }
85196 function T6d(a, b) {
85197 Q6d();
85198 var c2, d, e;
85199 if (b.$j()) {
85200 return true;
85201 } else if (b.Zj() == -2) {
85202 if (b == (m8d(), k8d) || b == h8d || b == i8d || b == j8d) {
85203 return true;
85204 } else {
85205 e = a.Tg();
85206 if (bLd(e, b) >= 0) {
85207 return false;
85208 } else {
85209 c2 = e1d((O6d(), M6d), e, b);
85210 if (!c2) {
85211 return true;
85212 } else {
85213 d = c2.Zj();
85214 return (d > 1 || d == -1) && $1d(q1d(M6d, c2)) != 3;
85215 }
85216 }
85217 }
85218 } else {
85219 return false;
85220 }
85221 }
85222 function R1b(a, b, c2, d) {
85223 var e, f2, g, h, i3;
85224 h = atd(BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82));
85225 i3 = atd(BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82));
85226 if (Xod(h) == Xod(i3)) {
85227 return null;
85228 }
85229 if (ntd(i3, h)) {
85230 return null;
85231 }
85232 g = Mld(b);
85233 if (g == c2) {
85234 return d;
85235 } else {
85236 f2 = BD(Ohb(a.a, g), 10);
85237 if (f2) {
85238 e = f2.e;
85239 if (e) {
85240 return e;
85241 }
85242 }
85243 }
85244 return null;
85245 }
85246 function Cac(a, b) {
85247 var c2;
85248 c2 = BD(vNb(a, (Nyc(), Rwc)), 276);
85249 Odd(b, "Label side selection (" + c2 + ")", 1);
85250 switch (c2.g) {
85251 case 0:
85252 Dac(a, (rbd(), nbd));
85253 break;
85254 case 1:
85255 Dac(a, (rbd(), obd));
85256 break;
85257 case 2:
85258 Bac(a, (rbd(), nbd));
85259 break;
85260 case 3:
85261 Bac(a, (rbd(), obd));
85262 break;
85263 case 4:
85264 Eac(a, (rbd(), nbd));
85265 break;
85266 case 5:
85267 Eac(a, (rbd(), obd));
85268 }
85269 Qdd(b);
85270 }
85271 function bGc(a, b, c2) {
85272 var d, e, f2, g, h, i3;
85273 d = RFc(c2, a.length);
85274 g = a[d];
85275 if (g[0].k != (j0b(), e0b)) {
85276 return;
85277 }
85278 f2 = SFc(c2, g.length);
85279 i3 = b.j;
85280 for (e = 0; e < i3.c.length; e++) {
85281 h = (tCb(e, i3.c.length), BD(i3.c[e], 11));
85282 if ((c2 ? h.j == (Ucd(), zcd) : h.j == (Ucd(), Tcd)) && Ccb(DD(vNb(h, (wtc(), Nsc))))) {
85283 Nkb(i3, e, BD(vNb(g[f2], (wtc(), $sc)), 11));
85284 f2 += c2 ? 1 : -1;
85285 }
85286 }
85287 }
85288 function rQc(a, b) {
85289 var c2, d, e, f2, g;
85290 g = new Rkb();
85291 c2 = b;
85292 do {
85293 f2 = BD(Ohb(a.b, c2), 128);
85294 f2.B = c2.c;
85295 f2.D = c2.d;
85296 g.c[g.c.length] = f2;
85297 c2 = BD(Ohb(a.k, c2), 17);
85298 } while (c2);
85299 d = (tCb(0, g.c.length), BD(g.c[0], 128));
85300 d.j = true;
85301 d.A = BD(d.d.a.ec().Kc().Pb(), 17).c.i;
85302 e = BD(Ikb(g, g.c.length - 1), 128);
85303 e.q = true;
85304 e.C = BD(e.d.a.ec().Kc().Pb(), 17).d.i;
85305 return g;
85306 }
85307 function $wd(a) {
85308 if (a.g == null) {
85309 switch (a.p) {
85310 case 0:
85311 a.g = Swd(a) ? (Bcb(), Acb) : (Bcb(), zcb);
85312 break;
85313 case 1:
85314 a.g = Scb(Twd(a));
85315 break;
85316 case 2:
85317 a.g = bdb(Uwd(a));
85318 break;
85319 case 3:
85320 a.g = Vwd(a);
85321 break;
85322 case 4:
85323 a.g = new Ndb(Wwd(a));
85324 break;
85325 case 6:
85326 a.g = Aeb(Ywd(a));
85327 break;
85328 case 5:
85329 a.g = meb(Xwd(a));
85330 break;
85331 case 7:
85332 a.g = Web(Zwd(a));
85333 }
85334 }
85335 return a.g;
85336 }
85337 function hxd(a) {
85338 if (a.n == null) {
85339 switch (a.p) {
85340 case 0:
85341 a.n = _wd(a) ? (Bcb(), Acb) : (Bcb(), zcb);
85342 break;
85343 case 1:
85344 a.n = Scb(axd(a));
85345 break;
85346 case 2:
85347 a.n = bdb(bxd(a));
85348 break;
85349 case 3:
85350 a.n = cxd(a);
85351 break;
85352 case 4:
85353 a.n = new Ndb(dxd(a));
85354 break;
85355 case 6:
85356 a.n = Aeb(fxd(a));
85357 break;
85358 case 5:
85359 a.n = meb(exd(a));
85360 break;
85361 case 7:
85362 a.n = Web(gxd(a));
85363 }
85364 }
85365 return a.n;
85366 }
85367 function QDb(a) {
85368 var b, c2, d, e, f2, g, h;
85369 for (f2 = new olb(a.a.a); f2.a < f2.c.c.length; ) {
85370 d = BD(mlb(f2), 307);
85371 d.g = 0;
85372 d.i = 0;
85373 d.e.a.$b();
85374 }
85375 for (e = new olb(a.a.a); e.a < e.c.c.length; ) {
85376 d = BD(mlb(e), 307);
85377 for (c2 = d.a.a.ec().Kc(); c2.Ob(); ) {
85378 b = BD(c2.Pb(), 57);
85379 for (h = b.c.Kc(); h.Ob(); ) {
85380 g = BD(h.Pb(), 57);
85381 if (g.a != d) {
85382 Qqb(d.e, g);
85383 ++g.a.g;
85384 ++g.a.i;
85385 }
85386 }
85387 }
85388 }
85389 }
85390 function gOb(a, b) {
85391 var c2, d, e, f2, g, h;
85392 h = Axb(a.a, b.b);
85393 if (!h) {
85394 throw vbb(new Zdb("Invalid hitboxes for scanline overlap calculation."));
85395 }
85396 g = false;
85397 for (f2 = (d = new Ywb(new cxb(new Gjb(a.a.a).a).b), new Njb(d)); sib(f2.a.a); ) {
85398 e = (c2 = Wwb(f2.a), BD(c2.cd(), 65));
85399 if (bOb(b.b, e)) {
85400 T$c(a.b.a, b.b, e);
85401 g = true;
85402 } else {
85403 if (g) {
85404 break;
85405 }
85406 }
85407 }
85408 }
85409 function G5b(a) {
85410 var b, c2, d, e, f2;
85411 e = BD(vNb(a, (Nyc(), Fxc)), 21);
85412 f2 = BD(vNb(a, Ixc), 21);
85413 c2 = new f7c(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a);
85414 b = new g7c(c2);
85415 if (e.Hc((tdd(), pdd))) {
85416 d = BD(vNb(a, Hxc), 8);
85417 if (f2.Hc((Idd(), Bdd))) {
85418 d.a <= 0 && (d.a = 20);
85419 d.b <= 0 && (d.b = 20);
85420 }
85421 b.a = $wnd.Math.max(c2.a, d.a);
85422 b.b = $wnd.Math.max(c2.b, d.b);
85423 }
85424 H5b(a, c2, b);
85425 }
85426 function toc(a, b) {
85427 var c2, d, e, f2, g, h, i3, j, k, l, m;
85428 e = b ? new Coc() : new Eoc();
85429 f2 = false;
85430 do {
85431 f2 = false;
85432 j = b ? Su(a.b) : a.b;
85433 for (i3 = j.Kc(); i3.Ob(); ) {
85434 h = BD(i3.Pb(), 29);
85435 m = Mu(h.a);
85436 b || new ov(m);
85437 for (l = new olb(m); l.a < l.c.c.length; ) {
85438 k = BD(mlb(l), 10);
85439 if (e.Mb(k)) {
85440 d = k;
85441 c2 = BD(vNb(k, (wtc(), usc)), 305);
85442 g = b ? c2.b : c2.k;
85443 f2 = roc(d, g, b, false);
85444 }
85445 }
85446 }
85447 } while (f2);
85448 }
85449 function WCc(a, b, c2) {
85450 var d, e, f2, g, h;
85451 Odd(c2, "Longest path layering", 1);
85452 a.a = b;
85453 h = a.a.a;
85454 a.b = KC(WD, oje, 25, h.c.length, 15, 1);
85455 d = 0;
85456 for (g = new olb(h); g.a < g.c.c.length; ) {
85457 e = BD(mlb(g), 10);
85458 e.p = d;
85459 a.b[d] = -1;
85460 ++d;
85461 }
85462 for (f2 = new olb(h); f2.a < f2.c.c.length; ) {
85463 e = BD(mlb(f2), 10);
85464 YCc(a, e);
85465 }
85466 h.c = KC(SI, Uhe, 1, 0, 5, 1);
85467 a.a = null;
85468 a.b = null;
85469 Qdd(c2);
85470 }
85471 function QVb(a, b) {
85472 var c2, d, e;
85473 b.a ? (Axb(a.b, b.b), a.a[b.b.i] = BD(Exb(a.b, b.b), 81), c2 = BD(Dxb(a.b, b.b), 81), !!c2 && (a.a[c2.i] = b.b), void 0) : (d = BD(Exb(a.b, b.b), 81), !!d && d == a.a[b.b.i] && !!d.d && d.d != b.b.d && d.f.Fc(b.b), e = BD(Dxb(a.b, b.b), 81), !!e && a.a[e.i] == b.b && !!e.d && e.d != b.b.d && b.b.f.Fc(e), Fxb(a.b, b.b), void 0);
85474 }
85475 function zbc(a, b) {
85476 var c2, d, e, f2, g, h;
85477 f2 = a.d;
85478 h = Edb(ED(vNb(a, (Nyc(), Zwc))));
85479 if (h < 0) {
85480 h = 0;
85481 yNb(a, Zwc, h);
85482 }
85483 b.o.b = h;
85484 g = $wnd.Math.floor(h / 2);
85485 d = new H0b();
85486 G0b(d, (Ucd(), Tcd));
85487 F0b(d, b);
85488 d.n.b = g;
85489 e = new H0b();
85490 G0b(e, zcd);
85491 F0b(e, b);
85492 e.n.b = g;
85493 RZb(a, d);
85494 c2 = new UZb();
85495 tNb(c2, a);
85496 yNb(c2, jxc, null);
85497 QZb(c2, e);
85498 RZb(c2, f2);
85499 ybc(b, a, c2);
85500 wbc(a, c2);
85501 return c2;
85502 }
85503 function uNc(a) {
85504 var b, c2;
85505 c2 = BD(vNb(a, (wtc(), Ksc)), 21);
85506 b = new j3c();
85507 if (c2.Hc((Orc(), Irc))) {
85508 d3c(b, oNc);
85509 d3c(b, qNc);
85510 }
85511 if (c2.Hc(Krc) || Ccb(DD(vNb(a, (Nyc(), $wc))))) {
85512 d3c(b, qNc);
85513 c2.Hc(Lrc) && d3c(b, rNc);
85514 }
85515 c2.Hc(Hrc) && d3c(b, nNc);
85516 c2.Hc(Nrc) && d3c(b, sNc);
85517 c2.Hc(Jrc) && d3c(b, pNc);
85518 c2.Hc(Erc) && d3c(b, lNc);
85519 c2.Hc(Grc) && d3c(b, mNc);
85520 return b;
85521 }
85522 function Ihb(a, b) {
85523 var c2, d, e, f2, g, h, i3, j, k, l, m;
85524 d = a.d;
85525 f2 = b.d;
85526 h = d + f2;
85527 i3 = a.e != b.e ? -1 : 1;
85528 if (h == 2) {
85529 k = Ibb(xbb(a.a[0], Yje), xbb(b.a[0], Yje));
85530 m = Tbb(k);
85531 l = Tbb(Pbb(k, 32));
85532 return l == 0 ? new Ugb(i3, m) : new Vgb(i3, 2, OC(GC(WD, 1), oje, 25, 15, [m, l]));
85533 }
85534 c2 = a.a;
85535 e = b.a;
85536 g = KC(WD, oje, 25, h, 15, 1);
85537 Fhb(c2, d, e, f2, g);
85538 j = new Vgb(i3, h, g);
85539 Jgb(j);
85540 return j;
85541 }
85542 function Gwb(a, b, c2, d) {
85543 var e, f2;
85544 if (!b) {
85545 return c2;
85546 } else {
85547 e = a.a.ue(c2.d, b.d);
85548 if (e == 0) {
85549 d.d = ijb(b, c2.e);
85550 d.b = true;
85551 return b;
85552 }
85553 f2 = e < 0 ? 0 : 1;
85554 b.a[f2] = Gwb(a, b.a[f2], c2, d);
85555 if (Hwb(b.a[f2])) {
85556 if (Hwb(b.a[1 - f2])) {
85557 b.b = true;
85558 b.a[0].b = false;
85559 b.a[1].b = false;
85560 } else {
85561 Hwb(b.a[f2].a[f2]) ? b = Owb(b, 1 - f2) : Hwb(b.a[f2].a[1 - f2]) && (b = Nwb(b, 1 - f2));
85562 }
85563 }
85564 }
85565 return b;
85566 }
85567 function wHb(a, b, c2) {
85568 var d, e, f2, g;
85569 e = a.i;
85570 d = a.n;
85571 vHb(a, (gHb(), dHb), e.c + d.b, c2);
85572 vHb(a, fHb, e.c + e.b - d.c - c2[2], c2);
85573 g = e.b - d.b - d.c;
85574 if (c2[0] > 0) {
85575 c2[0] += a.d;
85576 g -= c2[0];
85577 }
85578 if (c2[2] > 0) {
85579 c2[2] += a.d;
85580 g -= c2[2];
85581 }
85582 f2 = $wnd.Math.max(0, g);
85583 c2[1] = $wnd.Math.max(c2[1], g);
85584 vHb(a, eHb, e.c + d.b + c2[0] - (c2[1] - g) / 2, c2);
85585 if (b == eHb) {
85586 a.c.b = f2;
85587 a.c.c = e.c + d.b + (f2 - g) / 2;
85588 }
85589 }
85590 function AYb() {
85591 this.c = KC(UD, Vje, 25, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 15, 1);
85592 this.b = KC(UD, Vje, 25, OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]).length, 15, 1);
85593 this.a = KC(UD, Vje, 25, OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]).length, 15, 1);
85594 zlb(this.c, Pje);
85595 zlb(this.b, Qje);
85596 zlb(this.a, Qje);
85597 }
85598 function Ufe(a, b, c2) {
85599 var d, e, f2, g;
85600 if (b <= c2) {
85601 e = b;
85602 f2 = c2;
85603 } else {
85604 e = c2;
85605 f2 = b;
85606 }
85607 d = 0;
85608 if (a.b == null) {
85609 a.b = KC(WD, oje, 25, 2, 15, 1);
85610 a.b[0] = e;
85611 a.b[1] = f2;
85612 a.c = true;
85613 } else {
85614 d = a.b.length;
85615 if (a.b[d - 1] + 1 == e) {
85616 a.b[d - 1] = f2;
85617 return;
85618 }
85619 g = KC(WD, oje, 25, d + 2, 15, 1);
85620 $fb(a.b, 0, g, 0, d);
85621 a.b = g;
85622 a.b[d - 1] >= e && (a.c = false, a.a = false);
85623 a.b[d++] = e;
85624 a.b[d] = f2;
85625 a.c || Yfe(a);
85626 }
85627 }
85628 function inc(a, b, c2) {
85629 var d, e, f2, g, h, i3, j;
85630 j = b.d;
85631 a.a = new Skb(j.c.length);
85632 a.c = new Lqb();
85633 for (h = new olb(j); h.a < h.c.c.length; ) {
85634 g = BD(mlb(h), 101);
85635 f2 = new uOc(null);
85636 Ekb(a.a, f2);
85637 Rhb(a.c, g, f2);
85638 }
85639 a.b = new Lqb();
85640 gnc(a, b);
85641 for (d = 0; d < j.c.length - 1; d++) {
85642 i3 = BD(Ikb(b.d, d), 101);
85643 for (e = d + 1; e < j.c.length; e++) {
85644 jnc(a, i3, BD(Ikb(b.d, e), 101), c2);
85645 }
85646 }
85647 }
85648 function ySc(a, b, c2) {
85649 var d, e, f2, g, h, i3;
85650 if (!Qq(b)) {
85651 i3 = Udd(c2, (JD(b, 14) ? BD(b, 14).gc() : sr(b.Kc())) / a.a | 0);
85652 Odd(i3, Xqe, 1);
85653 h = new BSc();
85654 g = 0;
85655 for (f2 = b.Kc(); f2.Ob(); ) {
85656 d = BD(f2.Pb(), 86);
85657 h = pl(OC(GC(KI, 1), Uhe, 20, 0, [h, new ZRc(d)]));
85658 g < d.f.b && (g = d.f.b);
85659 }
85660 for (e = b.Kc(); e.Ob(); ) {
85661 d = BD(e.Pb(), 86);
85662 yNb(d, (mTc(), bTc), g);
85663 }
85664 Qdd(i3);
85665 ySc(a, h, c2);
85666 }
85667 }
85668 function bJc(a, b) {
85669 var c2, d, e, f2, g, h, i3;
85670 c2 = Qje;
85671 h = (j0b(), h0b);
85672 for (e = new olb(b.a); e.a < e.c.c.length; ) {
85673 d = BD(mlb(e), 10);
85674 f2 = d.k;
85675 if (f2 != h0b) {
85676 g = ED(vNb(d, (wtc(), atc)));
85677 if (g == null) {
85678 c2 = $wnd.Math.max(c2, 0);
85679 d.n.b = c2 + iBc(a.a, f2, h);
85680 } else {
85681 d.n.b = (uCb(g), g);
85682 }
85683 }
85684 i3 = iBc(a.a, f2, h);
85685 d.n.b < c2 + i3 + d.d.d && (d.n.b = c2 + i3 + d.d.d);
85686 c2 = d.n.b + d.o.b + d.d.a;
85687 h = f2;
85688 }
85689 }
85690 function uQb(a, b, c2) {
85691 var d, e, f2, g, h, i3, j, k, l;
85692 f2 = itd(b, false, false);
85693 j = ofd(f2);
85694 l = Edb(ED(hkd(b, (CPb(), vPb))));
85695 e = sQb(j, l + a.a);
85696 k = new XOb(e);
85697 tNb(k, b);
85698 Rhb(a.b, b, k);
85699 c2.c[c2.c.length] = k;
85700 i3 = (!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n);
85701 for (h = new Fyd(i3); h.e != h.i.gc(); ) {
85702 g = BD(Dyd(h), 137);
85703 d = wQb(a, g, true, 0, 0);
85704 c2.c[c2.c.length] = d;
85705 }
85706 return k;
85707 }
85708 function JVc(a, b, c2, d, e) {
85709 var f2, g, h, i3, j, k;
85710 !!a.d && a.d.lg(e);
85711 f2 = BD(e.Xb(0), 33);
85712 if (HVc(a, c2, f2, false)) {
85713 return true;
85714 }
85715 g = BD(e.Xb(e.gc() - 1), 33);
85716 if (HVc(a, d, g, true)) {
85717 return true;
85718 }
85719 if (CVc(a, e)) {
85720 return true;
85721 }
85722 for (k = e.Kc(); k.Ob(); ) {
85723 j = BD(k.Pb(), 33);
85724 for (i3 = b.Kc(); i3.Ob(); ) {
85725 h = BD(i3.Pb(), 33);
85726 if (BVc(a, j, h)) {
85727 return true;
85728 }
85729 }
85730 }
85731 return false;
85732 }
85733 function qid(a, b, c2) {
85734 var d, e, f2, g, h, i3, j, k, l, m;
85735 m = b.c.length;
85736 l = (j = a.Yg(c2), BD(j >= 0 ? a._g(j, false, true) : sid(a, c2, false), 58));
85737 n:
85738 for (f2 = l.Kc(); f2.Ob(); ) {
85739 e = BD(f2.Pb(), 56);
85740 for (k = 0; k < m; ++k) {
85741 g = (tCb(k, b.c.length), BD(b.c[k], 72));
85742 i3 = g.dd();
85743 h = g.ak();
85744 d = e.bh(h, false);
85745 if (i3 == null ? d != null : !pb(i3, d)) {
85746 continue n;
85747 }
85748 }
85749 return e;
85750 }
85751 return null;
85752 }
85753 function V6b(a, b, c2, d) {
85754 var e, f2, g, h;
85755 e = BD(Y_b(b, (Ucd(), Tcd)).Kc().Pb(), 11);
85756 f2 = BD(Y_b(b, zcd).Kc().Pb(), 11);
85757 for (h = new olb(a.j); h.a < h.c.c.length; ) {
85758 g = BD(mlb(h), 11);
85759 while (g.e.c.length != 0) {
85760 RZb(BD(Ikb(g.e, 0), 17), e);
85761 }
85762 while (g.g.c.length != 0) {
85763 QZb(BD(Ikb(g.g, 0), 17), f2);
85764 }
85765 }
85766 c2 || yNb(b, (wtc(), Vsc), null);
85767 d || yNb(b, (wtc(), Wsc), null);
85768 }
85769 function itd(a, b, c2) {
85770 var d, e;
85771 if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i == 0) {
85772 return etd(a);
85773 } else {
85774 d = BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202);
85775 if (b) {
85776 Uxd((!d.a && (d.a = new xMd(y2, d, 5)), d.a));
85777 omd(d, 0);
85778 pmd(d, 0);
85779 hmd(d, 0);
85780 imd(d, 0);
85781 }
85782 if (c2) {
85783 e = (!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a);
85784 while (e.i > 1) {
85785 Xxd(e, e.i - 1);
85786 }
85787 }
85788 return d;
85789 }
85790 }
85791 function Z2b(a, b) {
85792 var c2, d, e, f2, g, h, i3;
85793 Odd(b, "Comment post-processing", 1);
85794 for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
85795 e = BD(mlb(f2), 29);
85796 d = new Rkb();
85797 for (h = new olb(e.a); h.a < h.c.c.length; ) {
85798 g = BD(mlb(h), 10);
85799 i3 = BD(vNb(g, (wtc(), vtc)), 15);
85800 c2 = BD(vNb(g, tsc), 15);
85801 if (!!i3 || !!c2) {
85802 $2b(g, i3, c2);
85803 !!i3 && Gkb(d, i3);
85804 !!c2 && Gkb(d, c2);
85805 }
85806 }
85807 Gkb(e.a, d);
85808 }
85809 Qdd(b);
85810 }
85811 function Eac(a, b) {
85812 var c2, d, e, f2, g, h, i3;
85813 c2 = new jkb();
85814 for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
85815 e = BD(mlb(f2), 29);
85816 i3 = true;
85817 d = 0;
85818 for (h = new olb(e.a); h.a < h.c.c.length; ) {
85819 g = BD(mlb(h), 10);
85820 switch (g.k.g) {
85821 case 4:
85822 ++d;
85823 case 1:
85824 Xjb(c2, g);
85825 break;
85826 case 0:
85827 Gac(g, b);
85828 default:
85829 c2.b == c2.c || Fac(c2, d, i3, false, b);
85830 i3 = false;
85831 d = 0;
85832 }
85833 }
85834 c2.b == c2.c || Fac(c2, d, i3, true, b);
85835 }
85836 }
85837 function Ebc(a, b) {
85838 var c2, d, e, f2, g, h, i3;
85839 e = new Rkb();
85840 for (c2 = 0; c2 <= a.i; c2++) {
85841 d = new H1b(b);
85842 d.p = a.i - c2;
85843 e.c[e.c.length] = d;
85844 }
85845 for (h = new olb(a.o); h.a < h.c.c.length; ) {
85846 g = BD(mlb(h), 10);
85847 $_b(g, BD(Ikb(e, a.i - a.f[g.p]), 29));
85848 }
85849 f2 = new olb(e);
85850 while (f2.a < f2.c.c.length) {
85851 i3 = BD(mlb(f2), 29);
85852 i3.a.c.length == 0 && nlb(f2);
85853 }
85854 b.b.c = KC(SI, Uhe, 1, 0, 5, 1);
85855 Gkb(b.b, e);
85856 }
85857 function KHc(a, b) {
85858 var c2, d, e, f2, g, h;
85859 c2 = 0;
85860 for (h = new olb(b); h.a < h.c.c.length; ) {
85861 g = BD(mlb(h), 11);
85862 AHc(a.b, a.d[g.p]);
85863 for (e = new b1b(g.b); llb(e.a) || llb(e.b); ) {
85864 d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
85865 f2 = aIc(a, g == d.c ? d.d : d.c);
85866 if (f2 > a.d[g.p]) {
85867 c2 += zHc(a.b, f2);
85868 Wjb(a.a, meb(f2));
85869 }
85870 }
85871 while (!akb(a.a)) {
85872 xHc(a.b, BD(fkb(a.a), 19).a);
85873 }
85874 }
85875 return c2;
85876 }
85877 function o2c(a, b, c2) {
85878 var d, e, f2, g;
85879 f2 = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i;
85880 for (e = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); e.e != e.i.gc(); ) {
85881 d = BD(Dyd(e), 33);
85882 (!d.a && (d.a = new cUd(E2, d, 10, 11)), d.a).i == 0 || (f2 += o2c(a, d, false));
85883 }
85884 if (c2) {
85885 g = Xod(b);
85886 while (g) {
85887 f2 += (!g.a && (g.a = new cUd(E2, g, 10, 11)), g.a).i;
85888 g = Xod(g);
85889 }
85890 }
85891 return f2;
85892 }
85893 function Xxd(a, b) {
85894 var c2, d, e, f2;
85895 if (a.ej()) {
85896 d = null;
85897 e = a.fj();
85898 a.ij() && (d = a.kj(a.pi(b), null));
85899 c2 = a.Zi(4, f2 = tud(a, b), null, b, e);
85900 if (a.bj() && f2 != null) {
85901 d = a.dj(f2, d);
85902 if (!d) {
85903 a.$i(c2);
85904 } else {
85905 d.Ei(c2);
85906 d.Fi();
85907 }
85908 } else {
85909 if (!d) {
85910 a.$i(c2);
85911 } else {
85912 d.Ei(c2);
85913 d.Fi();
85914 }
85915 }
85916 return f2;
85917 } else {
85918 f2 = tud(a, b);
85919 if (a.bj() && f2 != null) {
85920 d = a.dj(f2, null);
85921 !!d && d.Fi();
85922 }
85923 return f2;
85924 }
85925 }
85926 function UKb(a) {
85927 var b, c2, d, e, f2, g, h, i3, j, k;
85928 j = a.a;
85929 b = new Tqb();
85930 i3 = 0;
85931 for (d = new olb(a.d); d.a < d.c.c.length; ) {
85932 c2 = BD(mlb(d), 222);
85933 k = 0;
85934 ktb(c2.b, new XKb());
85935 for (g = Jsb(c2.b, 0); g.b != g.d.c; ) {
85936 f2 = BD(Xsb(g), 222);
85937 if (b.a._b(f2)) {
85938 e = c2.c;
85939 h = f2.c;
85940 k < h.d + h.a + j && k + e.a + j > h.d && (k = h.d + h.a + j);
85941 }
85942 }
85943 c2.c.d = k;
85944 b.a.zc(c2, b);
85945 i3 = $wnd.Math.max(i3, c2.c.d + c2.c.a);
85946 }
85947 return i3;
85948 }
85949 function Orc() {
85950 Orc = ccb;
85951 Frc = new Prc("COMMENTS", 0);
85952 Hrc = new Prc("EXTERNAL_PORTS", 1);
85953 Irc = new Prc("HYPEREDGES", 2);
85954 Jrc = new Prc("HYPERNODES", 3);
85955 Krc = new Prc("NON_FREE_PORTS", 4);
85956 Lrc = new Prc("NORTH_SOUTH_PORTS", 5);
85957 Nrc = new Prc(Wne, 6);
85958 Erc = new Prc("CENTER_LABELS", 7);
85959 Grc = new Prc("END_LABELS", 8);
85960 Mrc = new Prc("PARTITIONS", 9);
85961 }
85962 function gVc(a) {
85963 var b, c2, d, e, f2;
85964 e = new Rkb();
85965 b = new Vqb((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a));
85966 for (d = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(d); ) {
85967 c2 = BD(Rr(d), 79);
85968 if (!JD(qud((!c2.b && (c2.b = new y5d(z2, c2, 4, 7)), c2.b), 0), 186)) {
85969 f2 = atd(BD(qud((!c2.c && (c2.c = new y5d(z2, c2, 5, 8)), c2.c), 0), 82));
85970 b.a._b(f2) || (e.c[e.c.length] = f2, true);
85971 }
85972 }
85973 return e;
85974 }
85975 function fVc(a) {
85976 var b, c2, d, e, f2, g;
85977 f2 = new Tqb();
85978 b = new Vqb((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a));
85979 for (e = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(e); ) {
85980 d = BD(Rr(e), 79);
85981 if (!JD(qud((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b), 0), 186)) {
85982 g = atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82));
85983 b.a._b(g) || (c2 = f2.a.zc(g, f2), c2 == null);
85984 }
85985 }
85986 return f2;
85987 }
85988 function zA(a, b, c2, d, e) {
85989 if (d < 0) {
85990 d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje]), b);
85991 d < 0 && (d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]), b));
85992 if (d < 0) {
85993 return false;
85994 }
85995 c2.k = d;
85996 return true;
85997 } else if (d > 0) {
85998 c2.k = d - 1;
85999 return true;
86000 }
86001 return false;
86002 }
86003 function BA(a, b, c2, d, e) {
86004 if (d < 0) {
86005 d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje]), b);
86006 d < 0 && (d = oA(a, e, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]), b));
86007 if (d < 0) {
86008 return false;
86009 }
86010 c2.k = d;
86011 return true;
86012 } else if (d > 0) {
86013 c2.k = d - 1;
86014 return true;
86015 }
86016 return false;
86017 }
86018 function DA(a, b, c2, d, e, f2) {
86019 var g, h, i3, j;
86020 h = 32;
86021 if (d < 0) {
86022 if (b[0] >= a.length) {
86023 return false;
86024 }
86025 h = bfb(a, b[0]);
86026 if (h != 43 && h != 45) {
86027 return false;
86028 }
86029 ++b[0];
86030 d = rA(a, b);
86031 if (d < 0) {
86032 return false;
86033 }
86034 h == 45 && (d = -d);
86035 }
86036 if (h == 32 && b[0] - c2 == 2 && e.b == 2) {
86037 i3 = new eB();
86038 j = i3.q.getFullYear() - nje + nje - 80;
86039 g = j % 100;
86040 f2.a = d == g;
86041 d += (j / 100 | 0) * 100 + (d < g ? 100 : 0);
86042 }
86043 f2.p = d;
86044 return true;
86045 }
86046 function L1b(a, b) {
86047 var c2, d, e, f2, g;
86048 if (!Xod(a)) {
86049 return;
86050 }
86051 g = BD(vNb(b, (Nyc(), Fxc)), 174);
86052 PD(hkd(a, Vxc)) === PD((dcd(), ccd)) && jkd(a, Vxc, bcd);
86053 d = (Pgd(), new bhd(Xod(a)));
86054 f2 = new hhd(!Xod(a) ? null : new bhd(Xod(a)), a);
86055 e = PGb(d, f2, false, true);
86056 rqb(g, (tdd(), pdd));
86057 c2 = BD(vNb(b, Hxc), 8);
86058 c2.a = $wnd.Math.max(e.a, c2.a);
86059 c2.b = $wnd.Math.max(e.b, c2.b);
86060 }
86061 function Pac(a, b, c2) {
86062 var d, e, f2, g, h, i3;
86063 for (g = BD(vNb(a, (wtc(), Lsc)), 15).Kc(); g.Ob(); ) {
86064 f2 = BD(g.Pb(), 10);
86065 switch (BD(vNb(f2, (Nyc(), mxc)), 163).g) {
86066 case 2:
86067 $_b(f2, b);
86068 break;
86069 case 4:
86070 $_b(f2, c2);
86071 }
86072 for (e = new Sr(ur(O_b(f2).a.Kc(), new Sq())); Qr(e); ) {
86073 d = BD(Rr(e), 17);
86074 if (!!d.c && !!d.d) {
86075 continue;
86076 }
86077 h = !d.d;
86078 i3 = BD(vNb(d, ctc), 11);
86079 h ? RZb(d, i3) : QZb(d, i3);
86080 }
86081 }
86082 }
86083 function Alc() {
86084 Alc = ccb;
86085 tlc = new Blc(xle, 0, (Ucd(), Acd), Acd);
86086 wlc = new Blc(zle, 1, Rcd, Rcd);
86087 slc = new Blc(yle, 2, zcd, zcd);
86088 zlc = new Blc(Ale, 3, Tcd, Tcd);
86089 vlc = new Blc("NORTH_WEST_CORNER", 4, Tcd, Acd);
86090 ulc = new Blc("NORTH_EAST_CORNER", 5, Acd, zcd);
86091 ylc = new Blc("SOUTH_WEST_CORNER", 6, Rcd, Tcd);
86092 xlc = new Blc("SOUTH_EAST_CORNER", 7, zcd, Rcd);
86093 }
86094 function i6c() {
86095 i6c = ccb;
86096 h6c = OC(GC(XD, 1), Sje, 25, 14, [1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880, 3628800, 39916800, 479001600, 6227020800, 87178291200, 1307674368e3, { l: 3506176, m: 794077, h: 1 }, { l: 884736, m: 916411, h: 20 }, { l: 3342336, m: 3912489, h: 363 }, { l: 589824, m: 3034138, h: 6914 }, { l: 3407872, m: 1962506, h: 138294 }]);
86097 $wnd.Math.pow(2, -65);
86098 }
86099 function Pcc(a, b) {
86100 var c2, d, e, f2, g;
86101 if (a.c.length == 0) {
86102 return new vgd(meb(0), meb(0));
86103 }
86104 c2 = (tCb(0, a.c.length), BD(a.c[0], 11)).j;
86105 g = 0;
86106 f2 = b.g;
86107 d = b.g + 1;
86108 while (g < a.c.length - 1 && c2.g < f2) {
86109 ++g;
86110 c2 = (tCb(g, a.c.length), BD(a.c[g], 11)).j;
86111 }
86112 e = g;
86113 while (e < a.c.length - 1 && c2.g < d) {
86114 ++e;
86115 c2 = (tCb(g, a.c.length), BD(a.c[g], 11)).j;
86116 }
86117 return new vgd(meb(g), meb(e));
86118 }
86119 function R9b(a, b, c2) {
86120 var d, e, f2, g, h, i3, j, k, l, m;
86121 f2 = b.c.length;
86122 g = (tCb(c2, b.c.length), BD(b.c[c2], 286));
86123 h = g.a.o.a;
86124 l = g.c;
86125 m = 0;
86126 for (j = g.c; j <= g.f; j++) {
86127 if (h <= a.a[j]) {
86128 return j;
86129 }
86130 k = a.a[j];
86131 i3 = null;
86132 for (e = c2 + 1; e < f2; e++) {
86133 d = (tCb(e, b.c.length), BD(b.c[e], 286));
86134 d.c <= j && d.f >= j && (i3 = d);
86135 }
86136 !!i3 && (k = $wnd.Math.max(k, i3.a.o.a));
86137 if (k > m) {
86138 l = j;
86139 m = k;
86140 }
86141 }
86142 return l;
86143 }
86144 function ode(a, b, c2) {
86145 var d, e, f2;
86146 a.e = c2;
86147 a.d = 0;
86148 a.b = 0;
86149 a.f = 1;
86150 a.i = b;
86151 (a.e & 16) == 16 && (a.i = Xee(a.i));
86152 a.j = a.i.length;
86153 nde(a);
86154 f2 = rde(a);
86155 if (a.d != a.j)
86156 throw vbb(new mde(tvd((h0d(), sue))));
86157 if (a.g) {
86158 for (d = 0; d < a.g.a.c.length; d++) {
86159 e = BD(Uvb(a.g, d), 584);
86160 if (a.f <= e.a)
86161 throw vbb(new mde(tvd((h0d(), tue))));
86162 }
86163 a.g.a.c = KC(SI, Uhe, 1, 0, 5, 1);
86164 }
86165 return f2;
86166 }
86167 function _Pd(a, b) {
86168 var c2, d, e;
86169 if (b == null) {
86170 for (d = (!a.a && (a.a = new cUd(g5, a, 9, 5)), new Fyd(a.a)); d.e != d.i.gc(); ) {
86171 c2 = BD(Dyd(d), 678);
86172 e = c2.c;
86173 if ((e == null ? c2.zb : e) == null) {
86174 return c2;
86175 }
86176 }
86177 } else {
86178 for (d = (!a.a && (a.a = new cUd(g5, a, 9, 5)), new Fyd(a.a)); d.e != d.i.gc(); ) {
86179 c2 = BD(Dyd(d), 678);
86180 if (dfb(b, (e = c2.c, e == null ? c2.zb : e))) {
86181 return c2;
86182 }
86183 }
86184 }
86185 return null;
86186 }
86187 function KIb(a, b) {
86188 var c2;
86189 c2 = null;
86190 switch (b.g) {
86191 case 1:
86192 a.e.Xe((Y9c(), o9c)) && (c2 = BD(a.e.We(o9c), 249));
86193 break;
86194 case 3:
86195 a.e.Xe((Y9c(), p9c)) && (c2 = BD(a.e.We(p9c), 249));
86196 break;
86197 case 2:
86198 a.e.Xe((Y9c(), n9c)) && (c2 = BD(a.e.We(n9c), 249));
86199 break;
86200 case 4:
86201 a.e.Xe((Y9c(), q9c)) && (c2 = BD(a.e.We(q9c), 249));
86202 }
86203 !c2 && (c2 = BD(a.e.We((Y9c(), l9c)), 249));
86204 return c2;
86205 }
86206 function OCc(a, b, c2) {
86207 var d, e, f2, g, h, i3, j, k, l;
86208 b.p = 1;
86209 f2 = b.c;
86210 for (l = W_b(b, (KAc(), IAc)).Kc(); l.Ob(); ) {
86211 k = BD(l.Pb(), 11);
86212 for (e = new olb(k.g); e.a < e.c.c.length; ) {
86213 d = BD(mlb(e), 17);
86214 j = d.d.i;
86215 if (b != j) {
86216 g = j.c;
86217 if (g.p <= f2.p) {
86218 h = f2.p + 1;
86219 if (h == c2.b.c.length) {
86220 i3 = new H1b(c2);
86221 i3.p = h;
86222 Ekb(c2.b, i3);
86223 $_b(j, i3);
86224 } else {
86225 i3 = BD(Ikb(c2.b, h), 29);
86226 $_b(j, i3);
86227 }
86228 OCc(a, j, c2);
86229 }
86230 }
86231 }
86232 }
86233 }
86234 function ZXc(a, b, c2) {
86235 var d, e, f2, g, h, i3;
86236 e = c2;
86237 f2 = 0;
86238 for (h = new olb(b); h.a < h.c.c.length; ) {
86239 g = BD(mlb(h), 33);
86240 jkd(g, (ZWc(), SWc), meb(e++));
86241 i3 = gVc(g);
86242 d = $wnd.Math.atan2(g.j + g.f / 2, g.i + g.g / 2);
86243 d += d < 0 ? dre : 0;
86244 d < 0.7853981633974483 || d > vre ? Okb(i3, a.b) : d <= vre && d > wre ? Okb(i3, a.d) : d <= wre && d > xre ? Okb(i3, a.c) : d <= xre && Okb(i3, a.a);
86245 f2 = ZXc(a, i3, f2);
86246 }
86247 return e;
86248 }
86249 function Hgb() {
86250 Hgb = ccb;
86251 var a;
86252 Cgb = new Ugb(1, 1);
86253 Egb = new Ugb(1, 10);
86254 Ggb = new Ugb(0, 0);
86255 Bgb = new Ugb(-1, 1);
86256 Dgb = OC(GC(cJ, 1), nie, 91, 0, [Ggb, Cgb, new Ugb(1, 2), new Ugb(1, 3), new Ugb(1, 4), new Ugb(1, 5), new Ugb(1, 6), new Ugb(1, 7), new Ugb(1, 8), new Ugb(1, 9), Egb]);
86257 Fgb = KC(cJ, nie, 91, 32, 0, 1);
86258 for (a = 0; a < Fgb.length; a++) {
86259 Fgb[a] = ghb(Nbb(1, a));
86260 }
86261 }
86262 function B9b(a, b, c2, d, e, f2) {
86263 var g, h, i3, j;
86264 h = !WAb(JAb(a.Oc(), new Xxb(new F9b()))).sd((EAb(), DAb));
86265 g = a;
86266 f2 == (ead(), dad) && (g = JD(g, 152) ? km(BD(g, 152)) : JD(g, 131) ? BD(g, 131).a : JD(g, 54) ? new ov(g) : new dv(g));
86267 for (j = g.Kc(); j.Ob(); ) {
86268 i3 = BD(j.Pb(), 70);
86269 i3.n.a = b.a;
86270 h ? i3.n.b = b.b + (d.b - i3.o.b) / 2 : e ? i3.n.b = b.b : i3.n.b = b.b + d.b - i3.o.b;
86271 b.a += i3.o.a + c2;
86272 }
86273 }
86274 function UOc(a, b, c2, d) {
86275 var e, f2, g, h, i3, j;
86276 e = (d.c + d.a) / 2;
86277 Osb(b.j);
86278 Dsb(b.j, e);
86279 Osb(c2.e);
86280 Dsb(c2.e, e);
86281 j = new aPc();
86282 for (h = new olb(a.f); h.a < h.c.c.length; ) {
86283 f2 = BD(mlb(h), 129);
86284 i3 = f2.a;
86285 WOc(j, b, i3);
86286 WOc(j, c2, i3);
86287 }
86288 for (g = new olb(a.k); g.a < g.c.c.length; ) {
86289 f2 = BD(mlb(g), 129);
86290 i3 = f2.b;
86291 WOc(j, b, i3);
86292 WOc(j, c2, i3);
86293 }
86294 j.b += 2;
86295 j.a += POc(b, a.q);
86296 j.a += POc(a.q, c2);
86297 return j;
86298 }
86299 function FSc(a, b, c2) {
86300 var d, e, f2, g, h;
86301 if (!Qq(b)) {
86302 h = Udd(c2, (JD(b, 14) ? BD(b, 14).gc() : sr(b.Kc())) / a.a | 0);
86303 Odd(h, Xqe, 1);
86304 g = new ISc();
86305 f2 = null;
86306 for (e = b.Kc(); e.Ob(); ) {
86307 d = BD(e.Pb(), 86);
86308 g = pl(OC(GC(KI, 1), Uhe, 20, 0, [g, new ZRc(d)]));
86309 if (f2) {
86310 yNb(f2, (mTc(), hTc), d);
86311 yNb(d, _Sc, f2);
86312 if (VRc(d) == VRc(f2)) {
86313 yNb(f2, iTc, d);
86314 yNb(d, aTc, f2);
86315 }
86316 }
86317 f2 = d;
86318 }
86319 Qdd(h);
86320 FSc(a, g, c2);
86321 }
86322 }
86323 function VHb(a) {
86324 var b, c2, d, e, f2, g, h;
86325 c2 = a.i;
86326 b = a.n;
86327 h = c2.d;
86328 a.f == (EIb(), CIb) ? h += (c2.a - a.e.b) / 2 : a.f == BIb && (h += c2.a - a.e.b);
86329 for (e = new olb(a.d); e.a < e.c.c.length; ) {
86330 d = BD(mlb(e), 181);
86331 g = d.rf();
86332 f2 = new d7c();
86333 f2.b = h;
86334 h += g.b + a.a;
86335 switch (a.b.g) {
86336 case 0:
86337 f2.a = c2.c + b.b;
86338 break;
86339 case 1:
86340 f2.a = c2.c + b.b + (c2.b - g.a) / 2;
86341 break;
86342 case 2:
86343 f2.a = c2.c + c2.b - b.c - g.a;
86344 }
86345 d.tf(f2);
86346 }
86347 }
86348 function XHb(a) {
86349 var b, c2, d, e, f2, g, h;
86350 c2 = a.i;
86351 b = a.n;
86352 h = c2.c;
86353 a.b == (NHb(), KHb) ? h += (c2.b - a.e.a) / 2 : a.b == MHb && (h += c2.b - a.e.a);
86354 for (e = new olb(a.d); e.a < e.c.c.length; ) {
86355 d = BD(mlb(e), 181);
86356 g = d.rf();
86357 f2 = new d7c();
86358 f2.a = h;
86359 h += g.a + a.a;
86360 switch (a.f.g) {
86361 case 0:
86362 f2.b = c2.d + b.d;
86363 break;
86364 case 1:
86365 f2.b = c2.d + b.d + (c2.a - g.b) / 2;
86366 break;
86367 case 2:
86368 f2.b = c2.d + c2.a - b.a - g.b;
86369 }
86370 d.tf(f2);
86371 }
86372 }
86373 function D4b(a, b, c2) {
86374 var d, e, f2, g, h, i3, j, k, l, m, n, o2;
86375 k = c2.a.c;
86376 g = c2.a.c + c2.a.b;
86377 f2 = BD(Ohb(c2.c, b), 459);
86378 n = f2.f;
86379 o2 = f2.a;
86380 i3 = new f7c(k, n);
86381 l = new f7c(g, o2);
86382 e = k;
86383 c2.p || (e += a.c);
86384 e += c2.F + c2.v * a.b;
86385 j = new f7c(e, n);
86386 m = new f7c(e, o2);
86387 n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [i3, j]));
86388 h = c2.d.a.gc() > 1;
86389 if (h) {
86390 d = new f7c(e, c2.b);
86391 Dsb(b.a, d);
86392 }
86393 n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [m, l]));
86394 }
86395 function jdd(a) {
86396 r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Rse), "ELK Randomizer"), 'Distributes the nodes randomly on the plane, leading to very obfuscating layouts. Can be useful to demonstrate the power of "real" layout algorithms.'), new mdd())));
86397 p4c(a, Rse, ame, fdd);
86398 p4c(a, Rse, wme, 15);
86399 p4c(a, Rse, yme, meb(0));
86400 p4c(a, Rse, _le, tme);
86401 }
86402 function hde() {
86403 hde = ccb;
86404 var a, b, c2, d, e, f2;
86405 fde = KC(SD, wte, 25, 255, 15, 1);
86406 gde = KC(TD, $ie, 25, 16, 15, 1);
86407 for (b = 0; b < 255; b++) {
86408 fde[b] = -1;
86409 }
86410 for (c2 = 57; c2 >= 48; c2--) {
86411 fde[c2] = c2 - 48 << 24 >> 24;
86412 }
86413 for (d = 70; d >= 65; d--) {
86414 fde[d] = d - 65 + 10 << 24 >> 24;
86415 }
86416 for (e = 102; e >= 97; e--) {
86417 fde[e] = e - 97 + 10 << 24 >> 24;
86418 }
86419 for (f2 = 0; f2 < 10; f2++)
86420 gde[f2] = 48 + f2 & aje;
86421 for (a = 10; a <= 15; a++)
86422 gde[a] = 65 + a - 10 & aje;
86423 }
86424 function BVc(a, b, c2) {
86425 var d, e, f2, g, h, i3, j, k;
86426 h = b.i - a.g / 2;
86427 i3 = c2.i - a.g / 2;
86428 j = b.j - a.g / 2;
86429 k = c2.j - a.g / 2;
86430 f2 = b.g + a.g / 2;
86431 g = c2.g + a.g / 2;
86432 d = b.f + a.g / 2;
86433 e = c2.f + a.g / 2;
86434 if (h < i3 + g && i3 < h && j < k + e && k < j) {
86435 return true;
86436 } else if (i3 < h + f2 && h < i3 && k < j + d && j < k) {
86437 return true;
86438 } else if (h < i3 + g && i3 < h && j < k && k < j + d) {
86439 return true;
86440 } else if (i3 < h + f2 && h < i3 && j < k + e && k < j) {
86441 return true;
86442 }
86443 return false;
86444 }
86445 function NTb(a) {
86446 var b, c2, d, e, f2;
86447 e = BD(vNb(a, (Nyc(), Fxc)), 21);
86448 f2 = BD(vNb(a, Ixc), 21);
86449 c2 = new f7c(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a);
86450 b = new g7c(c2);
86451 if (e.Hc((tdd(), pdd))) {
86452 d = BD(vNb(a, Hxc), 8);
86453 if (f2.Hc((Idd(), Bdd))) {
86454 d.a <= 0 && (d.a = 20);
86455 d.b <= 0 && (d.b = 20);
86456 }
86457 b.a = $wnd.Math.max(c2.a, d.a);
86458 b.b = $wnd.Math.max(c2.b, d.b);
86459 }
86460 Ccb(DD(vNb(a, Gxc))) || OTb(a, c2, b);
86461 }
86462 function NJc(a, b) {
86463 var c2, d, e, f2;
86464 for (f2 = V_b(b, (Ucd(), Rcd)).Kc(); f2.Ob(); ) {
86465 d = BD(f2.Pb(), 11);
86466 c2 = BD(vNb(d, (wtc(), gtc)), 10);
86467 !!c2 && AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 0.1), a.i[b.p].d), a.i[c2.p].a));
86468 }
86469 for (e = V_b(b, Acd).Kc(); e.Ob(); ) {
86470 d = BD(e.Pb(), 11);
86471 c2 = BD(vNb(d, (wtc(), gtc)), 10);
86472 !!c2 && AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 0.1), a.i[c2.p].d), a.i[b.p].a));
86473 }
86474 }
86475 function QKd(a) {
86476 var b, c2, d, e, f2, g;
86477 if (!a.c) {
86478 g = new wNd();
86479 b = KKd;
86480 f2 = b.a.zc(a, b);
86481 if (f2 == null) {
86482 for (d = new Fyd(VKd(a)); d.e != d.i.gc(); ) {
86483 c2 = BD(Dyd(d), 87);
86484 e = KQd(c2);
86485 JD(e, 88) && ytd(g, QKd(BD(e, 26)));
86486 wtd(g, c2);
86487 }
86488 b.a.Bc(a) != null;
86489 b.a.gc() == 0 && void 0;
86490 }
86491 tNd(g);
86492 vud(g);
86493 a.c = new nNd((BD(qud(ZKd((NFd(), MFd).o), 15), 18), g.i), g.g);
86494 $Kd(a).b &= -33;
86495 }
86496 return a.c;
86497 }
86498 function eee(a) {
86499 var b;
86500 if (a.c != 10)
86501 throw vbb(new mde(tvd((h0d(), uue))));
86502 b = a.a;
86503 switch (b) {
86504 case 110:
86505 b = 10;
86506 break;
86507 case 114:
86508 b = 13;
86509 break;
86510 case 116:
86511 b = 9;
86512 break;
86513 case 92:
86514 case 124:
86515 case 46:
86516 case 94:
86517 case 45:
86518 case 63:
86519 case 42:
86520 case 43:
86521 case 123:
86522 case 125:
86523 case 40:
86524 case 41:
86525 case 91:
86526 case 93:
86527 break;
86528 default:
86529 throw vbb(new mde(tvd((h0d(), Yue))));
86530 }
86531 return b;
86532 }
86533 function qD(a) {
86534 var b, c2, d, e, f2;
86535 if (a.l == 0 && a.m == 0 && a.h == 0) {
86536 return "0";
86537 }
86538 if (a.h == Gje && a.m == 0 && a.l == 0) {
86539 return "-9223372036854775808";
86540 }
86541 if (a.h >> 19 != 0) {
86542 return "-" + qD(hD(a));
86543 }
86544 c2 = a;
86545 d = "";
86546 while (!(c2.l == 0 && c2.m == 0 && c2.h == 0)) {
86547 e = RC(Jje);
86548 c2 = UC(c2, e, true);
86549 b = "" + pD(QC);
86550 if (!(c2.l == 0 && c2.m == 0 && c2.h == 0)) {
86551 f2 = 9 - b.length;
86552 for (; f2 > 0; f2--) {
86553 b = "0" + b;
86554 }
86555 }
86556 d = b + d;
86557 }
86558 return d;
86559 }
86560 function xrb() {
86561 if (!Object.create || !Object.getOwnPropertyNames) {
86562 return false;
86563 }
86564 var a = "__proto__";
86565 var b = /* @__PURE__ */ Object.create(null);
86566 if (b[a] !== void 0) {
86567 return false;
86568 }
86569 var c2 = Object.getOwnPropertyNames(b);
86570 if (c2.length != 0) {
86571 return false;
86572 }
86573 b[a] = 42;
86574 if (b[a] !== 42) {
86575 return false;
86576 }
86577 if (Object.getOwnPropertyNames(b).length == 0) {
86578 return false;
86579 }
86580 return true;
86581 }
86582 function Pgc(a) {
86583 var b, c2, d, e, f2, g, h;
86584 b = false;
86585 c2 = 0;
86586 for (e = new olb(a.d.b); e.a < e.c.c.length; ) {
86587 d = BD(mlb(e), 29);
86588 d.p = c2++;
86589 for (g = new olb(d.a); g.a < g.c.c.length; ) {
86590 f2 = BD(mlb(g), 10);
86591 !b && !Qq(O_b(f2)) && (b = true);
86592 }
86593 }
86594 h = qqb((ead(), cad), OC(GC(t12, 1), Kie, 103, 0, [aad, bad]));
86595 if (!b) {
86596 rqb(h, dad);
86597 rqb(h, _9c);
86598 }
86599 a.a = new mDb(h);
86600 Uhb(a.f);
86601 Uhb(a.b);
86602 Uhb(a.e);
86603 Uhb(a.g);
86604 }
86605 function _Xb(a, b, c2) {
86606 var d, e, f2, g, h, i3, j, k, l;
86607 d = c2.c;
86608 e = c2.d;
86609 h = A0b(b.c);
86610 i3 = A0b(b.d);
86611 if (d == b.c) {
86612 h = aYb(a, h, e);
86613 i3 = bYb(b.d);
86614 } else {
86615 h = bYb(b.c);
86616 i3 = aYb(a, i3, e);
86617 }
86618 j = new t7c(b.a);
86619 Gsb(j, h, j.a, j.a.a);
86620 Gsb(j, i3, j.c.b, j.c);
86621 g = b.c == d;
86622 l = new BYb();
86623 for (f2 = 0; f2 < j.b - 1; ++f2) {
86624 k = new vgd(BD(Ut(j, f2), 8), BD(Ut(j, f2 + 1), 8));
86625 g && f2 == 0 || !g && f2 == j.b - 2 ? l.b = k : Ekb(l.a, k);
86626 }
86627 return l;
86628 }
86629 function O$b(a, b) {
86630 var c2, d, e, f2;
86631 f2 = a.j.g - b.j.g;
86632 if (f2 != 0) {
86633 return f2;
86634 }
86635 c2 = BD(vNb(a, (Nyc(), Wxc)), 19);
86636 d = BD(vNb(b, Wxc), 19);
86637 if (!!c2 && !!d) {
86638 e = c2.a - d.a;
86639 if (e != 0) {
86640 return e;
86641 }
86642 }
86643 switch (a.j.g) {
86644 case 1:
86645 return Kdb(a.n.a, b.n.a);
86646 case 2:
86647 return Kdb(a.n.b, b.n.b);
86648 case 3:
86649 return Kdb(b.n.a, a.n.a);
86650 case 4:
86651 return Kdb(b.n.b, a.n.b);
86652 default:
86653 throw vbb(new Zdb(ine));
86654 }
86655 }
86656 function G6b(a, b, c2, d) {
86657 var e, f2, g, h, i3;
86658 if (sr((D6b(), new Sr(ur(O_b(b).a.Kc(), new Sq())))) >= a.a) {
86659 return -1;
86660 }
86661 if (!F6b(b, c2)) {
86662 return -1;
86663 }
86664 if (Qq(BD(d.Kb(b), 20))) {
86665 return 1;
86666 }
86667 e = 0;
86668 for (g = BD(d.Kb(b), 20).Kc(); g.Ob(); ) {
86669 f2 = BD(g.Pb(), 17);
86670 i3 = f2.c.i == b ? f2.d.i : f2.c.i;
86671 h = G6b(a, i3, c2, d);
86672 if (h == -1) {
86673 return -1;
86674 }
86675 e = $wnd.Math.max(e, h);
86676 if (e > a.c - 1) {
86677 return -1;
86678 }
86679 }
86680 return e + 1;
86681 }
86682 function Btd(a, b) {
86683 var c2, d, e, f2, g, h;
86684 if (PD(b) === PD(a)) {
86685 return true;
86686 }
86687 if (!JD(b, 15)) {
86688 return false;
86689 }
86690 d = BD(b, 15);
86691 h = a.gc();
86692 if (d.gc() != h) {
86693 return false;
86694 }
86695 g = d.Kc();
86696 if (a.ni()) {
86697 for (c2 = 0; c2 < h; ++c2) {
86698 e = a.ki(c2);
86699 f2 = g.Pb();
86700 if (e == null ? f2 != null : !pb(e, f2)) {
86701 return false;
86702 }
86703 }
86704 } else {
86705 for (c2 = 0; c2 < h; ++c2) {
86706 e = a.ki(c2);
86707 f2 = g.Pb();
86708 if (PD(e) !== PD(f2)) {
86709 return false;
86710 }
86711 }
86712 }
86713 return true;
86714 }
86715 function rAd(a, b) {
86716 var c2, d, e, f2, g, h;
86717 if (a.f > 0) {
86718 a.qj();
86719 if (b != null) {
86720 for (f2 = 0; f2 < a.d.length; ++f2) {
86721 c2 = a.d[f2];
86722 if (c2) {
86723 d = BD(c2.g, 367);
86724 h = c2.i;
86725 for (g = 0; g < h; ++g) {
86726 e = d[g];
86727 if (pb(b, e.dd())) {
86728 return true;
86729 }
86730 }
86731 }
86732 }
86733 } else {
86734 for (f2 = 0; f2 < a.d.length; ++f2) {
86735 c2 = a.d[f2];
86736 if (c2) {
86737 d = BD(c2.g, 367);
86738 h = c2.i;
86739 for (g = 0; g < h; ++g) {
86740 e = d[g];
86741 if (PD(b) === PD(e.dd())) {
86742 return true;
86743 }
86744 }
86745 }
86746 }
86747 }
86748 }
86749 return false;
86750 }
86751 function e6b(a, b, c2) {
86752 var d, e, f2, g;
86753 Odd(c2, "Orthogonally routing hierarchical port edges", 1);
86754 a.a = 0;
86755 d = h6b(b);
86756 k6b(b, d);
86757 j6b(a, b, d);
86758 f6b(b);
86759 e = BD(vNb(b, (Nyc(), Vxc)), 98);
86760 f2 = b.b;
86761 d6b((tCb(0, f2.c.length), BD(f2.c[0], 29)), e, b);
86762 d6b(BD(Ikb(f2, f2.c.length - 1), 29), e, b);
86763 g = b.b;
86764 b6b((tCb(0, g.c.length), BD(g.c[0], 29)));
86765 b6b(BD(Ikb(g, g.c.length - 1), 29));
86766 Qdd(c2);
86767 }
86768 function jnd(a) {
86769 switch (a) {
86770 case 48:
86771 case 49:
86772 case 50:
86773 case 51:
86774 case 52:
86775 case 53:
86776 case 54:
86777 case 55:
86778 case 56:
86779 case 57: {
86780 return a - 48 << 24 >> 24;
86781 }
86782 case 97:
86783 case 98:
86784 case 99:
86785 case 100:
86786 case 101:
86787 case 102: {
86788 return a - 97 + 10 << 24 >> 24;
86789 }
86790 case 65:
86791 case 66:
86792 case 67:
86793 case 68:
86794 case 69:
86795 case 70: {
86796 return a - 65 + 10 << 24 >> 24;
86797 }
86798 default: {
86799 throw vbb(new Oeb("Invalid hexadecimal"));
86800 }
86801 }
86802 }
86803 function AUc(a, b, c2) {
86804 var d, e, f2, g;
86805 Odd(c2, "Processor order nodes", 2);
86806 a.a = Edb(ED(vNb(b, (JTc(), HTc))));
86807 e = new Psb();
86808 for (g = Jsb(b.b, 0); g.b != g.d.c; ) {
86809 f2 = BD(Xsb(g), 86);
86810 Ccb(DD(vNb(f2, (mTc(), jTc)))) && (Gsb(e, f2, e.c.b, e.c), true);
86811 }
86812 d = (sCb(e.b != 0), BD(e.a.a.c, 86));
86813 yUc(a, d);
86814 !c2.b && Rdd(c2, 1);
86815 BUc(a, d, 0 - Edb(ED(vNb(d, (mTc(), bTc)))) / 2, 0);
86816 !c2.b && Rdd(c2, 1);
86817 Qdd(c2);
86818 }
86819 function rFb() {
86820 rFb = ccb;
86821 qFb = new sFb("SPIRAL", 0);
86822 lFb = new sFb("LINE_BY_LINE", 1);
86823 mFb = new sFb("MANHATTAN", 2);
86824 kFb = new sFb("JITTER", 3);
86825 oFb = new sFb("QUADRANTS_LINE_BY_LINE", 4);
86826 pFb = new sFb("QUADRANTS_MANHATTAN", 5);
86827 nFb = new sFb("QUADRANTS_JITTER", 6);
86828 jFb = new sFb("COMBINE_LINE_BY_LINE_MANHATTAN", 7);
86829 iFb = new sFb("COMBINE_JITTER_MANHATTAN", 8);
86830 }
86831 function roc(a, b, c2, d) {
86832 var e, f2, g, h, i3, j;
86833 i3 = woc(a, c2);
86834 j = woc(b, c2);
86835 e = false;
86836 while (!!i3 && !!j) {
86837 if (d || uoc(i3, j, c2)) {
86838 g = woc(i3, c2);
86839 h = woc(j, c2);
86840 zoc(b);
86841 zoc(a);
86842 f2 = i3.c;
86843 sbc(i3, false);
86844 sbc(j, false);
86845 if (c2) {
86846 Z_b(b, j.p, f2);
86847 b.p = j.p;
86848 Z_b(a, i3.p + 1, f2);
86849 a.p = i3.p;
86850 } else {
86851 Z_b(a, i3.p, f2);
86852 a.p = i3.p;
86853 Z_b(b, j.p + 1, f2);
86854 b.p = j.p;
86855 }
86856 $_b(i3, null);
86857 $_b(j, null);
86858 i3 = g;
86859 j = h;
86860 e = true;
86861 } else {
86862 break;
86863 }
86864 }
86865 return e;
86866 }
86867 function VDc(a, b, c2, d) {
86868 var e, f2, g, h, i3;
86869 e = false;
86870 f2 = false;
86871 for (h = new olb(d.j); h.a < h.c.c.length; ) {
86872 g = BD(mlb(h), 11);
86873 PD(vNb(g, (wtc(), $sc))) === PD(c2) && (g.g.c.length == 0 ? g.e.c.length == 0 || (e = true) : f2 = true);
86874 }
86875 i3 = 0;
86876 e && e ^ f2 ? i3 = c2.j == (Ucd(), Acd) ? -a.e[d.c.p][d.p] : b - a.e[d.c.p][d.p] : f2 && e ^ f2 ? i3 = a.e[d.c.p][d.p] + 1 : e && f2 && (i3 = c2.j == (Ucd(), Acd) ? 0 : b / 2);
86877 return i3;
86878 }
86879 function NEd(a, b, c2, d, e, f2, g, h) {
86880 var i3, j, k;
86881 i3 = 0;
86882 b != null && (i3 ^= LCb(b.toLowerCase()));
86883 c2 != null && (i3 ^= LCb(c2));
86884 d != null && (i3 ^= LCb(d));
86885 g != null && (i3 ^= LCb(g));
86886 h != null && (i3 ^= LCb(h));
86887 for (j = 0, k = f2.length; j < k; j++) {
86888 i3 ^= LCb(f2[j]);
86889 }
86890 a ? i3 |= 256 : i3 &= -257;
86891 e ? i3 |= 16 : i3 &= -17;
86892 this.f = i3;
86893 this.i = b == null ? null : (uCb(b), b);
86894 this.a = c2;
86895 this.d = d;
86896 this.j = f2;
86897 this.g = g;
86898 this.e = h;
86899 }
86900 function X_b(a, b, c2) {
86901 var d, e;
86902 e = null;
86903 switch (b.g) {
86904 case 1:
86905 e = (z0b(), u0b);
86906 break;
86907 case 2:
86908 e = (z0b(), w0b);
86909 }
86910 d = null;
86911 switch (c2.g) {
86912 case 1:
86913 d = (z0b(), v0b);
86914 break;
86915 case 2:
86916 d = (z0b(), t0b);
86917 break;
86918 case 3:
86919 d = (z0b(), x0b);
86920 break;
86921 case 4:
86922 d = (z0b(), y0b);
86923 }
86924 return !!e && !!d ? Nq(a.j, new Yb(new amb(OC(GC(_D, 1), Uhe, 169, 0, [BD(Qb(e), 169), BD(Qb(d), 169)])))) : (mmb(), mmb(), jmb);
86925 }
86926 function t5b(a) {
86927 var b, c2, d;
86928 b = BD(vNb(a, (Nyc(), Hxc)), 8);
86929 yNb(a, Hxc, new f7c(b.b, b.a));
86930 switch (BD(vNb(a, mwc), 248).g) {
86931 case 1:
86932 yNb(a, mwc, (F7c(), E7c));
86933 break;
86934 case 2:
86935 yNb(a, mwc, (F7c(), A7c));
86936 break;
86937 case 3:
86938 yNb(a, mwc, (F7c(), C7c));
86939 break;
86940 case 4:
86941 yNb(a, mwc, (F7c(), D7c));
86942 }
86943 if ((!a.q ? (mmb(), mmb(), kmb) : a.q)._b(ayc)) {
86944 c2 = BD(vNb(a, ayc), 8);
86945 d = c2.a;
86946 c2.a = c2.b;
86947 c2.b = d;
86948 }
86949 }
86950 function jjc(a, b, c2, d, e, f2) {
86951 this.b = c2;
86952 this.d = e;
86953 if (a >= b.length) {
86954 throw vbb(new qcb("Greedy SwitchDecider: Free layer not in graph."));
86955 }
86956 this.c = b[a];
86957 this.e = new dIc(d);
86958 THc(this.e, this.c, (Ucd(), Tcd));
86959 this.i = new dIc(d);
86960 THc(this.i, this.c, zcd);
86961 this.f = new ejc(this.c);
86962 this.a = !f2 && e.i && !e.s && this.c[0].k == (j0b(), e0b);
86963 this.a && hjc(this, a, b.length);
86964 }
86965 function hKb(a, b) {
86966 var c2, d, e, f2, g, h;
86967 f2 = !a.B.Hc((Idd(), zdd));
86968 g = a.B.Hc(Cdd);
86969 a.a = new FHb(g, f2, a.c);
86970 !!a.n && u_b(a.a.n, a.n);
86971 lIb(a.g, (gHb(), eHb), a.a);
86972 if (!b) {
86973 d = new mIb(1, f2, a.c);
86974 d.n.a = a.k;
86975 Npb(a.p, (Ucd(), Acd), d);
86976 e = new mIb(1, f2, a.c);
86977 e.n.d = a.k;
86978 Npb(a.p, Rcd, e);
86979 h = new mIb(0, f2, a.c);
86980 h.n.c = a.k;
86981 Npb(a.p, Tcd, h);
86982 c2 = new mIb(0, f2, a.c);
86983 c2.n.b = a.k;
86984 Npb(a.p, zcd, c2);
86985 }
86986 }
86987 function Vgc(a) {
86988 var b, c2, d;
86989 b = BD(vNb(a.d, (Nyc(), Swc)), 218);
86990 switch (b.g) {
86991 case 2:
86992 c2 = Ngc(a);
86993 break;
86994 case 3:
86995 c2 = (d = new Rkb(), MAb(JAb(NAb(LAb(LAb(new YAb(null, new Kub(a.d.b, 16)), new Shc()), new Uhc()), new Whc()), new ehc()), new Yhc(d)), d);
86996 break;
86997 default:
86998 throw vbb(new Zdb("Compaction not supported for " + b + " edges."));
86999 }
87000 Ugc(a, c2);
87001 reb(new Pib(a.g), new Ehc(a));
87002 }
87003 function a2c(a, b) {
87004 var c2;
87005 c2 = new zNb();
87006 !!b && tNb(c2, BD(Ohb(a.a, C2), 94));
87007 JD(b, 470) && tNb(c2, BD(Ohb(a.a, G2), 94));
87008 if (JD(b, 354)) {
87009 tNb(c2, BD(Ohb(a.a, D2), 94));
87010 return c2;
87011 }
87012 JD(b, 82) && tNb(c2, BD(Ohb(a.a, z2), 94));
87013 if (JD(b, 239)) {
87014 tNb(c2, BD(Ohb(a.a, E2), 94));
87015 return c2;
87016 }
87017 if (JD(b, 186)) {
87018 tNb(c2, BD(Ohb(a.a, F2), 94));
87019 return c2;
87020 }
87021 JD(b, 352) && tNb(c2, BD(Ohb(a.a, B2), 94));
87022 return c2;
87023 }
87024 function wSb() {
87025 wSb = ccb;
87026 oSb = new Osd((Y9c(), D9c), meb(1));
87027 uSb = new Osd(T9c, 80);
87028 tSb = new Osd(M9c, 5);
87029 bSb = new Osd(r8c, tme);
87030 pSb = new Osd(E9c, meb(1));
87031 sSb = new Osd(H9c, (Bcb(), true));
87032 lSb = new q0b(50);
87033 kSb = new Osd(f9c, lSb);
87034 dSb = O8c;
87035 mSb = t9c;
87036 cSb = new Osd(B8c, false);
87037 jSb = e9c;
87038 iSb = b9c;
87039 hSb = Y8c;
87040 gSb = W8c;
87041 nSb = x9c;
87042 fSb = (SRb(), LRb);
87043 vSb = QRb;
87044 eSb = KRb;
87045 qSb = NRb;
87046 rSb = PRb;
87047 }
87048 function ZXb(a) {
87049 var b, c2, d, e, f2, g, h, i3;
87050 i3 = new jYb();
87051 for (h = new olb(a.a); h.a < h.c.c.length; ) {
87052 g = BD(mlb(h), 10);
87053 if (g.k == (j0b(), e0b)) {
87054 continue;
87055 }
87056 XXb(i3, g, new d7c());
87057 for (f2 = new Sr(ur(U_b(g).a.Kc(), new Sq())); Qr(f2); ) {
87058 e = BD(Rr(f2), 17);
87059 if (e.c.i.k == e0b || e.d.i.k == e0b) {
87060 continue;
87061 }
87062 for (d = Jsb(e.a, 0); d.b != d.d.c; ) {
87063 c2 = BD(Xsb(d), 8);
87064 b = c2;
87065 hYb(i3, new cWb(b.a, b.b));
87066 }
87067 }
87068 }
87069 return i3;
87070 }
87071 function A0c() {
87072 A0c = ccb;
87073 z0c = new Lsd(Qre);
87074 y0c = (R0c(), Q0c);
87075 x0c = new Nsd(Vre, y0c);
87076 w0c = (a1c(), _0c);
87077 v0c = new Nsd(Rre, w0c);
87078 u0c = (N_c(), J_c);
87079 t0c = new Nsd(Sre, u0c);
87080 p0c = new Nsd(Tre, null);
87081 s0c = (C_c(), A_c);
87082 r0c = new Nsd(Ure, s0c);
87083 l0c = (i_c(), h_c);
87084 k0c = new Nsd(Wre, l0c);
87085 m0c = new Nsd(Xre, (Bcb(), false));
87086 n0c = new Nsd(Yre, meb(64));
87087 o0c = new Nsd(Zre, true);
87088 q0c = B_c;
87089 }
87090 function Toc(a) {
87091 var b, c2, d, e, f2, g;
87092 if (a.a != null) {
87093 return;
87094 }
87095 a.a = KC(sbb, dle, 25, a.c.b.c.length, 16, 1);
87096 a.a[0] = false;
87097 if (wNb(a.c, (Nyc(), Lyc))) {
87098 d = BD(vNb(a.c, Lyc), 15);
87099 for (c2 = d.Kc(); c2.Ob(); ) {
87100 b = BD(c2.Pb(), 19).a;
87101 b > 0 && b < a.a.length && (a.a[b] = false);
87102 }
87103 } else {
87104 g = new olb(a.c.b);
87105 g.a < g.c.c.length && mlb(g);
87106 e = 1;
87107 while (g.a < g.c.c.length) {
87108 f2 = BD(mlb(g), 29);
87109 a.a[e++] = Woc(f2);
87110 }
87111 }
87112 }
87113 function TMd(a, b) {
87114 var c2, d, e, f2;
87115 e = a.b;
87116 switch (b) {
87117 case 1: {
87118 a.b |= 1;
87119 a.b |= 4;
87120 a.b |= 8;
87121 break;
87122 }
87123 case 2: {
87124 a.b |= 2;
87125 a.b |= 4;
87126 a.b |= 8;
87127 break;
87128 }
87129 case 4: {
87130 a.b |= 1;
87131 a.b |= 2;
87132 a.b |= 4;
87133 a.b |= 8;
87134 break;
87135 }
87136 case 3: {
87137 a.b |= 16;
87138 a.b |= 8;
87139 break;
87140 }
87141 case 0: {
87142 a.b |= 32;
87143 a.b |= 16;
87144 a.b |= 8;
87145 a.b |= 1;
87146 a.b |= 2;
87147 a.b |= 4;
87148 break;
87149 }
87150 }
87151 if (a.b != e && !!a.c) {
87152 for (d = new Fyd(a.c); d.e != d.i.gc(); ) {
87153 f2 = BD(Dyd(d), 473);
87154 c2 = $Kd(f2);
87155 XMd(c2, b);
87156 }
87157 }
87158 }
87159 function cGc(a, b, c2, d) {
87160 var e, f2, g, h, i3, j, k, l, m, n, o2;
87161 e = false;
87162 for (g = b, h = 0, i3 = g.length; h < i3; ++h) {
87163 f2 = g[h];
87164 Ccb((Bcb(), f2.e ? true : false)) && !BD(Ikb(a.b, f2.e.p), 214).s && (e = e | (j = f2.e, k = BD(Ikb(a.b, j.p), 214), l = k.e, m = SFc(c2, l.length), n = l[m][0], n.k == (j0b(), e0b) ? l[m] = aGc(f2, l[m], c2 ? (Ucd(), Tcd) : (Ucd(), zcd)) : k.c.Tf(l, c2), o2 = dGc(a, k, c2, d), bGc(k.e, k.o, c2), o2));
87165 }
87166 return e;
87167 }
87168 function p2c(a, b) {
87169 var c2, d, e, f2, g;
87170 f2 = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i;
87171 for (e = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); e.e != e.i.gc(); ) {
87172 d = BD(Dyd(e), 33);
87173 if (PD(hkd(d, (Y9c(), J8c))) !== PD((hbd(), gbd))) {
87174 g = BD(hkd(b, F9c), 149);
87175 c2 = BD(hkd(d, F9c), 149);
87176 (g == c2 || !!g && C3c(g, c2)) && (!d.a && (d.a = new cUd(E2, d, 10, 11)), d.a).i != 0 && (f2 += p2c(a, d));
87177 }
87178 }
87179 return f2;
87180 }
87181 function nlc(a) {
87182 var b, c2, d, e, f2, g, h;
87183 d = 0;
87184 h = 0;
87185 for (g = new olb(a.d); g.a < g.c.c.length; ) {
87186 f2 = BD(mlb(g), 101);
87187 e = BD(GAb(JAb(new YAb(null, new Kub(f2.j, 16)), new Ylc()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
87188 c2 = null;
87189 if (d <= h) {
87190 c2 = (Ucd(), Acd);
87191 d += e.gc();
87192 } else if (h < d) {
87193 c2 = (Ucd(), Rcd);
87194 h += e.gc();
87195 }
87196 b = c2;
87197 MAb(NAb(e.Oc(), new Mlc()), new Olc(b));
87198 }
87199 }
87200 function mkc(a) {
87201 var b, c2, d, e, f2, g, h, i3;
87202 a.b = new _i(new amb((Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]))), new amb((Fkc(), OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc]))));
87203 for (g = OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]), h = 0, i3 = g.length; h < i3; ++h) {
87204 f2 = g[h];
87205 for (c2 = OC(GC(vV, 1), Kie, 361, 0, [Ekc, Dkc, Ckc]), d = 0, e = c2.length; d < e; ++d) {
87206 b = c2[d];
87207 Ui(a.b, f2, b, new Rkb());
87208 }
87209 }
87210 }
87211 function KJb(a, b) {
87212 var c2, d, e, f2, g, h, i3, j, k, l;
87213 g = BD(BD(Qc(a.r, b), 21), 84);
87214 h = a.u.Hc((rcd(), pcd));
87215 c2 = a.u.Hc(mcd);
87216 d = a.u.Hc(lcd);
87217 j = a.u.Hc(qcd);
87218 l = a.B.Hc((Idd(), Hdd));
87219 k = !c2 && !d && (j || g.gc() == 2);
87220 HJb(a, b);
87221 e = null;
87222 i3 = null;
87223 if (h) {
87224 f2 = g.Kc();
87225 e = BD(f2.Pb(), 111);
87226 i3 = e;
87227 while (f2.Ob()) {
87228 i3 = BD(f2.Pb(), 111);
87229 }
87230 e.d.b = 0;
87231 i3.d.c = 0;
87232 k && !e.a && (e.d.c = 0);
87233 }
87234 if (l) {
87235 LJb(g);
87236 if (h) {
87237 e.d.b = 0;
87238 i3.d.c = 0;
87239 }
87240 }
87241 }
87242 function SKb(a, b) {
87243 var c2, d, e, f2, g, h, i3, j, k, l;
87244 g = BD(BD(Qc(a.r, b), 21), 84);
87245 h = a.u.Hc((rcd(), pcd));
87246 c2 = a.u.Hc(mcd);
87247 d = a.u.Hc(lcd);
87248 i3 = a.u.Hc(qcd);
87249 l = a.B.Hc((Idd(), Hdd));
87250 j = !c2 && !d && (i3 || g.gc() == 2);
87251 QKb(a, b);
87252 k = null;
87253 e = null;
87254 if (h) {
87255 f2 = g.Kc();
87256 k = BD(f2.Pb(), 111);
87257 e = k;
87258 while (f2.Ob()) {
87259 e = BD(f2.Pb(), 111);
87260 }
87261 k.d.d = 0;
87262 e.d.a = 0;
87263 j && !k.a && (k.d.a = 0);
87264 }
87265 if (l) {
87266 TKb(g);
87267 if (h) {
87268 k.d.d = 0;
87269 e.d.a = 0;
87270 }
87271 }
87272 }
87273 function oJc(a, b, c2) {
87274 var d, e, f2, g, h, i3, j, k;
87275 e = b.k;
87276 if (b.p >= 0) {
87277 return false;
87278 } else {
87279 b.p = c2.b;
87280 Ekb(c2.e, b);
87281 }
87282 if (e == (j0b(), g0b) || e == i0b) {
87283 for (g = new olb(b.j); g.a < g.c.c.length; ) {
87284 f2 = BD(mlb(g), 11);
87285 for (k = (d = new olb(new R0b(f2).a.g), new U0b(d)); llb(k.a); ) {
87286 j = BD(mlb(k.a), 17).d;
87287 h = j.i;
87288 i3 = h.k;
87289 if (b.c != h.c) {
87290 if (i3 == g0b || i3 == i0b) {
87291 if (oJc(a, h, c2)) {
87292 return true;
87293 }
87294 }
87295 }
87296 }
87297 }
87298 }
87299 return true;
87300 }
87301 function gJd(a) {
87302 var b;
87303 if ((a.Db & 64) != 0)
87304 return EId(a);
87305 b = new Jfb(EId(a));
87306 b.a += " (changeable: ";
87307 Ffb(b, (a.Bb & zte) != 0);
87308 b.a += ", volatile: ";
87309 Ffb(b, (a.Bb & Dve) != 0);
87310 b.a += ", transient: ";
87311 Ffb(b, (a.Bb & Rje) != 0);
87312 b.a += ", defaultValueLiteral: ";
87313 Efb(b, a.j);
87314 b.a += ", unsettable: ";
87315 Ffb(b, (a.Bb & Cve) != 0);
87316 b.a += ", derived: ";
87317 Ffb(b, (a.Bb & oie) != 0);
87318 b.a += ")";
87319 return b.a;
87320 }
87321 function AOb(a) {
87322 var b, c2, d, e, f2, g, h, i3, j, k, l, m;
87323 e = eNb(a.d);
87324 g = BD(vNb(a.b, (CPb(), wPb)), 116);
87325 h = g.b + g.c;
87326 i3 = g.d + g.a;
87327 k = e.d.a * a.e + h;
87328 j = e.b.a * a.f + i3;
87329 $Ob(a.b, new f7c(k, j));
87330 for (m = new olb(a.g); m.a < m.c.c.length; ) {
87331 l = BD(mlb(m), 562);
87332 b = l.g - e.a.a;
87333 c2 = l.i - e.c.a;
87334 d = P6c(Z6c(new f7c(b, c2), l.a, l.b), Y6c(b7c(R6c(HOb(l.e)), l.d * l.a, l.c * l.b), -0.5));
87335 f2 = IOb(l.e);
87336 KOb(l.e, c7c(d, f2));
87337 }
87338 }
87339 function tmc(a, b, c2, d) {
87340 var e, f2, g, h, i3;
87341 i3 = KC(UD, nie, 104, (Ucd(), OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd])).length, 0, 2);
87342 for (f2 = OC(GC(F1, 1), bne, 61, 0, [Scd, Acd, zcd, Rcd, Tcd]), g = 0, h = f2.length; g < h; ++g) {
87343 e = f2[g];
87344 i3[e.g] = KC(UD, Vje, 25, a.c[e.g], 15, 1);
87345 }
87346 vmc(i3, a, Acd);
87347 vmc(i3, a, Rcd);
87348 smc(i3, a, Acd, b, c2, d);
87349 smc(i3, a, zcd, b, c2, d);
87350 smc(i3, a, Rcd, b, c2, d);
87351 smc(i3, a, Tcd, b, c2, d);
87352 return i3;
87353 }
87354 function UGc(a, b, c2) {
87355 if (Mhb(a.a, b)) {
87356 if (Rqb(BD(Ohb(a.a, b), 53), c2)) {
87357 return 1;
87358 }
87359 } else {
87360 Rhb(a.a, b, new Tqb());
87361 }
87362 if (Mhb(a.a, c2)) {
87363 if (Rqb(BD(Ohb(a.a, c2), 53), b)) {
87364 return -1;
87365 }
87366 } else {
87367 Rhb(a.a, c2, new Tqb());
87368 }
87369 if (Mhb(a.b, b)) {
87370 if (Rqb(BD(Ohb(a.b, b), 53), c2)) {
87371 return -1;
87372 }
87373 } else {
87374 Rhb(a.b, b, new Tqb());
87375 }
87376 if (Mhb(a.b, c2)) {
87377 if (Rqb(BD(Ohb(a.b, c2), 53), b)) {
87378 return 1;
87379 }
87380 } else {
87381 Rhb(a.b, c2, new Tqb());
87382 }
87383 return 0;
87384 }
87385 function x2d(a, b, c2, d) {
87386 var e, f2, g, h, i3, j;
87387 if (c2 == null) {
87388 e = BD(a.g, 119);
87389 for (h = 0; h < a.i; ++h) {
87390 g = e[h];
87391 if (g.ak() == b) {
87392 return Txd(a, g, d);
87393 }
87394 }
87395 }
87396 f2 = (Q6d(), BD(b, 66).Oj() ? BD(c2, 72) : R6d(b, c2));
87397 if (oid(a.e)) {
87398 j = !R2d(a, b);
87399 d = Sxd(a, f2, d);
87400 i3 = b.$j() ? H2d(a, 3, b, null, c2, M2d(a, b, c2, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0), j) : H2d(a, 1, b, b.zj(), c2, -1, j);
87401 d ? d.Ei(i3) : d = i3;
87402 } else {
87403 d = Sxd(a, f2, d);
87404 }
87405 return d;
87406 }
87407 function CJb(a) {
87408 var b, c2, d, e, f2, g;
87409 if (a.q == (dcd(), _bd) || a.q == $bd) {
87410 return;
87411 }
87412 e = a.f.n.d + _Gb(BD(Mpb(a.b, (Ucd(), Acd)), 124)) + a.c;
87413 b = a.f.n.a + _Gb(BD(Mpb(a.b, Rcd), 124)) + a.c;
87414 d = BD(Mpb(a.b, zcd), 124);
87415 g = BD(Mpb(a.b, Tcd), 124);
87416 f2 = $wnd.Math.max(0, d.n.d - e);
87417 f2 = $wnd.Math.max(f2, g.n.d - e);
87418 c2 = $wnd.Math.max(0, d.n.a - b);
87419 c2 = $wnd.Math.max(c2, g.n.a - b);
87420 d.n.d = f2;
87421 g.n.d = f2;
87422 d.n.a = c2;
87423 g.n.a = c2;
87424 }
87425 function rdc(a, b) {
87426 var c2, d, e, f2, g, h, i3, j, k, l, m;
87427 Odd(b, "Restoring reversed edges", 1);
87428 for (i3 = new olb(a.b); i3.a < i3.c.c.length; ) {
87429 h = BD(mlb(i3), 29);
87430 for (k = new olb(h.a); k.a < k.c.c.length; ) {
87431 j = BD(mlb(k), 10);
87432 for (m = new olb(j.j); m.a < m.c.c.length; ) {
87433 l = BD(mlb(m), 11);
87434 g = k_b(l.g);
87435 for (d = g, e = 0, f2 = d.length; e < f2; ++e) {
87436 c2 = d[e];
87437 Ccb(DD(vNb(c2, (wtc(), ltc)))) && PZb(c2, false);
87438 }
87439 }
87440 }
87441 }
87442 Qdd(b);
87443 }
87444 function m4c() {
87445 this.b = new $rb();
87446 this.d = new $rb();
87447 this.e = new $rb();
87448 this.c = new $rb();
87449 this.a = new Lqb();
87450 this.f = new Lqb();
87451 hvd(m1, new x4c(), new z4c());
87452 hvd(l1, new V4c(), new X4c());
87453 hvd(i1, new Z4c(), new _4c());
87454 hvd(j1, new b5c(), new d5c());
87455 hvd(i2, new f5c(), new h5c());
87456 hvd(DJ, new B4c(), new D4c());
87457 hvd(xK, new F4c(), new H4c());
87458 hvd(jK, new J4c(), new L4c());
87459 hvd(uK, new N4c(), new P4c());
87460 hvd(kL, new R4c(), new T4c());
87461 }
87462 function R5d(a) {
87463 var b, c2, d, e, f2, g;
87464 f2 = 0;
87465 b = wId(a);
87466 !!b.Bj() && (f2 |= 4);
87467 (a.Bb & Cve) != 0 && (f2 |= 2);
87468 if (JD(a, 99)) {
87469 c2 = BD(a, 18);
87470 e = zUd(c2);
87471 (c2.Bb & ote) != 0 && (f2 |= 32);
87472 if (e) {
87473 aLd(WId(e));
87474 f2 |= 8;
87475 g = e.t;
87476 (g > 1 || g == -1) && (f2 |= 16);
87477 (e.Bb & ote) != 0 && (f2 |= 64);
87478 }
87479 (c2.Bb & Tje) != 0 && (f2 |= Dve);
87480 f2 |= zte;
87481 } else {
87482 if (JD(b, 457)) {
87483 f2 |= 512;
87484 } else {
87485 d = b.Bj();
87486 !!d && (d.i & 1) != 0 && (f2 |= 256);
87487 }
87488 }
87489 (a.Bb & 512) != 0 && (f2 |= 128);
87490 return f2;
87491 }
87492 function hc(a, b) {
87493 var c2, d, e, f2, g;
87494 a = a == null ? Xhe : (uCb(a), a);
87495 for (e = 0; e < b.length; e++) {
87496 b[e] = ic(b[e]);
87497 }
87498 c2 = new Vfb();
87499 g = 0;
87500 d = 0;
87501 while (d < b.length) {
87502 f2 = a.indexOf("%s", g);
87503 if (f2 == -1) {
87504 break;
87505 }
87506 c2.a += "" + qfb(a == null ? Xhe : (uCb(a), a), g, f2);
87507 Pfb(c2, b[d++]);
87508 g = f2 + 2;
87509 }
87510 Ofb(c2, a, g, a.length);
87511 if (d < b.length) {
87512 c2.a += " [";
87513 Pfb(c2, b[d++]);
87514 while (d < b.length) {
87515 c2.a += She;
87516 Pfb(c2, b[d++]);
87517 }
87518 c2.a += "]";
87519 }
87520 return c2.a;
87521 }
87522 function m3b(a) {
87523 var b, c2, d, e, f2;
87524 f2 = new Skb(a.a.c.length);
87525 for (e = new olb(a.a); e.a < e.c.c.length; ) {
87526 d = BD(mlb(e), 10);
87527 c2 = BD(vNb(d, (Nyc(), mxc)), 163);
87528 b = null;
87529 switch (c2.g) {
87530 case 1:
87531 case 2:
87532 b = (Gqc(), Fqc);
87533 break;
87534 case 3:
87535 case 4:
87536 b = (Gqc(), Dqc);
87537 }
87538 if (b) {
87539 yNb(d, (wtc(), Bsc), (Gqc(), Fqc));
87540 b == Dqc ? o3b(d, c2, (KAc(), HAc)) : b == Fqc && o3b(d, c2, (KAc(), IAc));
87541 } else {
87542 f2.c[f2.c.length] = d;
87543 }
87544 }
87545 return f2;
87546 }
87547 function MHc(a, b) {
87548 var c2, d, e, f2, g, h, i3;
87549 c2 = 0;
87550 for (i3 = new olb(b); i3.a < i3.c.c.length; ) {
87551 h = BD(mlb(i3), 11);
87552 AHc(a.b, a.d[h.p]);
87553 g = 0;
87554 for (e = new b1b(h.b); llb(e.a) || llb(e.b); ) {
87555 d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
87556 if (WHc(d)) {
87557 f2 = aIc(a, h == d.c ? d.d : d.c);
87558 if (f2 > a.d[h.p]) {
87559 c2 += zHc(a.b, f2);
87560 Wjb(a.a, meb(f2));
87561 }
87562 } else {
87563 ++g;
87564 }
87565 }
87566 c2 += a.b.d * g;
87567 while (!akb(a.a)) {
87568 xHc(a.b, BD(fkb(a.a), 19).a);
87569 }
87570 }
87571 return c2;
87572 }
87573 function Y6d(a, b) {
87574 var c2;
87575 if (a.f == W6d) {
87576 c2 = $1d(q1d((O6d(), M6d), b));
87577 return a.e ? c2 == 4 && b != (m8d(), k8d) && b != (m8d(), h8d) && b != (m8d(), i8d) && b != (m8d(), j8d) : c2 == 2;
87578 }
87579 if (!!a.d && (a.d.Hc(b) || a.d.Hc(_1d(q1d((O6d(), M6d), b))) || a.d.Hc(e1d((O6d(), M6d), a.b, b)))) {
87580 return true;
87581 }
87582 if (a.f) {
87583 if (x1d((O6d(), a.f), b2d(q1d(M6d, b)))) {
87584 c2 = $1d(q1d(M6d, b));
87585 return a.e ? c2 == 4 : c2 == 2;
87586 }
87587 }
87588 return false;
87589 }
87590 function iVc(a, b, c2, d) {
87591 var e, f2, g, h, i3, j, k, l;
87592 g = BD(hkd(c2, (Y9c(), C9c)), 8);
87593 i3 = g.a;
87594 k = g.b + a;
87595 e = $wnd.Math.atan2(k, i3);
87596 e < 0 && (e += dre);
87597 e += b;
87598 e > dre && (e -= dre);
87599 h = BD(hkd(d, C9c), 8);
87600 j = h.a;
87601 l = h.b + a;
87602 f2 = $wnd.Math.atan2(l, j);
87603 f2 < 0 && (f2 += dre);
87604 f2 += b;
87605 f2 > dre && (f2 -= dre);
87606 return Iy(), My(1e-10), $wnd.Math.abs(e - f2) <= 1e-10 || e == f2 || isNaN(e) && isNaN(f2) ? 0 : e < f2 ? -1 : e > f2 ? 1 : Ny(isNaN(e), isNaN(f2));
87607 }
87608 function YDb(a) {
87609 var b, c2, d, e, f2, g, h;
87610 h = new Lqb();
87611 for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
87612 b = BD(mlb(d), 57);
87613 Rhb(h, b, new Rkb());
87614 }
87615 for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
87616 b = BD(mlb(e), 57);
87617 b.i = Qje;
87618 for (g = b.c.Kc(); g.Ob(); ) {
87619 f2 = BD(g.Pb(), 57);
87620 BD(Wd(irb(h.f, f2)), 15).Fc(b);
87621 }
87622 }
87623 for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
87624 b = BD(mlb(c2), 57);
87625 b.c.$b();
87626 b.c = BD(Wd(irb(h.f, b)), 15);
87627 }
87628 QDb(a);
87629 }
87630 function yVb(a) {
87631 var b, c2, d, e, f2, g, h;
87632 h = new Lqb();
87633 for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
87634 b = BD(mlb(d), 81);
87635 Rhb(h, b, new Rkb());
87636 }
87637 for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
87638 b = BD(mlb(e), 81);
87639 b.o = Qje;
87640 for (g = b.f.Kc(); g.Ob(); ) {
87641 f2 = BD(g.Pb(), 81);
87642 BD(Wd(irb(h.f, f2)), 15).Fc(b);
87643 }
87644 }
87645 for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
87646 b = BD(mlb(c2), 81);
87647 b.f.$b();
87648 b.f = BD(Wd(irb(h.f, b)), 15);
87649 }
87650 rVb(a);
87651 }
87652 function dNb(a, b, c2, d) {
87653 var e, f2;
87654 cNb(a, b, c2, d);
87655 qNb(b, a.j - b.j + c2);
87656 rNb(b, a.k - b.k + d);
87657 for (f2 = new olb(b.f); f2.a < f2.c.c.length; ) {
87658 e = BD(mlb(f2), 324);
87659 switch (e.a.g) {
87660 case 0:
87661 nNb(a, b.g + e.b.a, 0, b.g + e.c.a, b.i - 1);
87662 break;
87663 case 1:
87664 nNb(a, b.g + b.o, b.i + e.b.a, a.o - 1, b.i + e.c.a);
87665 break;
87666 case 2:
87667 nNb(a, b.g + e.b.a, b.i + b.p, b.g + e.c.a, a.p - 1);
87668 break;
87669 default:
87670 nNb(a, 0, b.i + e.b.a, b.g - 1, b.i + e.c.a);
87671 }
87672 }
87673 }
87674 function aNb(b, c2, d, e, f2) {
87675 var g, h, i3;
87676 try {
87677 if (c2 >= b.o) {
87678 throw vbb(new rcb());
87679 }
87680 i3 = c2 >> 5;
87681 h = c2 & 31;
87682 g = Nbb(1, Tbb(Nbb(h, 1)));
87683 f2 ? b.n[d][i3] = Mbb(b.n[d][i3], g) : b.n[d][i3] = xbb(b.n[d][i3], Lbb(g));
87684 g = Nbb(g, 1);
87685 e ? b.n[d][i3] = Mbb(b.n[d][i3], g) : b.n[d][i3] = xbb(b.n[d][i3], Lbb(g));
87686 } catch (a) {
87687 a = ubb(a);
87688 if (JD(a, 320)) {
87689 throw vbb(new qcb(Dle + b.o + "*" + b.p + Ele + c2 + She + d + Fle));
87690 } else
87691 throw vbb(a);
87692 }
87693 }
87694 function BUc(a, b, c2, d) {
87695 var e, f2, g;
87696 if (b) {
87697 f2 = Edb(ED(vNb(b, (mTc(), fTc)))) + d;
87698 g = c2 + Edb(ED(vNb(b, bTc))) / 2;
87699 yNb(b, kTc, meb(Tbb(Cbb($wnd.Math.round(f2)))));
87700 yNb(b, lTc, meb(Tbb(Cbb($wnd.Math.round(g)))));
87701 b.d.b == 0 || BUc(a, BD(pr((e = Jsb(new ZRc(b).a.d, 0), new aSc(e))), 86), c2 + Edb(ED(vNb(b, bTc))) + a.a, d + Edb(ED(vNb(b, cTc))));
87702 vNb(b, iTc) != null && BUc(a, BD(vNb(b, iTc), 86), c2, d);
87703 }
87704 }
87705 function N9b(a, b) {
87706 var c2, d, e, f2, g, h, i3, j, k, l, m;
87707 i3 = Q_b(b.a);
87708 e = Edb(ED(vNb(i3, (Nyc(), pyc)))) * 2;
87709 k = Edb(ED(vNb(i3, wyc)));
87710 j = $wnd.Math.max(e, k);
87711 f2 = KC(UD, Vje, 25, b.f - b.c + 1, 15, 1);
87712 d = -j;
87713 c2 = 0;
87714 for (h = b.b.Kc(); h.Ob(); ) {
87715 g = BD(h.Pb(), 10);
87716 d += a.a[g.c.p] + j;
87717 f2[c2++] = d;
87718 }
87719 d += a.a[b.a.c.p] + j;
87720 f2[c2++] = d;
87721 for (m = new olb(b.e); m.a < m.c.c.length; ) {
87722 l = BD(mlb(m), 10);
87723 d += a.a[l.c.p] + j;
87724 f2[c2++] = d;
87725 }
87726 return f2;
87727 }
87728 function GHc(a, b, c2, d) {
87729 var e, f2, g, h, i3, j, k, l, m;
87730 m = new Hxb(new pIc(a));
87731 for (h = OC(GC(OQ, 1), kne, 10, 0, [b, c2]), i3 = 0, j = h.length; i3 < j; ++i3) {
87732 g = h[i3];
87733 for (l = CHc(g, d).Kc(); l.Ob(); ) {
87734 k = BD(l.Pb(), 11);
87735 for (f2 = new b1b(k.b); llb(f2.a) || llb(f2.b); ) {
87736 e = BD(llb(f2.a) ? mlb(f2.a) : mlb(f2.b), 17);
87737 if (!OZb(e)) {
87738 Iwb(m.a, k, (Bcb(), zcb)) == null;
87739 WHc(e) && Axb(m, k == e.c ? e.d : e.c);
87740 }
87741 }
87742 }
87743 }
87744 return Qb(m), new Tkb(m);
87745 }
87746 function zhd(a, b) {
87747 var c2, d, e, f2;
87748 f2 = BD(hkd(a, (Y9c(), A9c)), 61).g - BD(hkd(b, A9c), 61).g;
87749 if (f2 != 0) {
87750 return f2;
87751 }
87752 c2 = BD(hkd(a, v9c), 19);
87753 d = BD(hkd(b, v9c), 19);
87754 if (!!c2 && !!d) {
87755 e = c2.a - d.a;
87756 if (e != 0) {
87757 return e;
87758 }
87759 }
87760 switch (BD(hkd(a, A9c), 61).g) {
87761 case 1:
87762 return Kdb(a.i, b.i);
87763 case 2:
87764 return Kdb(a.j, b.j);
87765 case 3:
87766 return Kdb(b.i, a.i);
87767 case 4:
87768 return Kdb(b.j, a.j);
87769 default:
87770 throw vbb(new Zdb(ine));
87771 }
87772 }
87773 function _od(a) {
87774 var b, c2, d;
87775 if ((a.Db & 64) != 0)
87776 return fld(a);
87777 b = new Wfb(ete);
87778 c2 = a.k;
87779 if (!c2) {
87780 !a.n && (a.n = new cUd(D2, a, 1, 7));
87781 if (a.n.i > 0) {
87782 d = (!a.n && (a.n = new cUd(D2, a, 1, 7)), BD(qud(a.n, 0), 137)).a;
87783 !d || Qfb(Qfb((b.a += ' "', b), d), '"');
87784 }
87785 } else {
87786 Qfb(Qfb((b.a += ' "', b), c2), '"');
87787 }
87788 Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")");
87789 return b.a;
87790 }
87791 function opd(a) {
87792 var b, c2, d;
87793 if ((a.Db & 64) != 0)
87794 return fld(a);
87795 b = new Wfb(fte);
87796 c2 = a.k;
87797 if (!c2) {
87798 !a.n && (a.n = new cUd(D2, a, 1, 7));
87799 if (a.n.i > 0) {
87800 d = (!a.n && (a.n = new cUd(D2, a, 1, 7)), BD(qud(a.n, 0), 137)).a;
87801 !d || Qfb(Qfb((b.a += ' "', b), d), '"');
87802 }
87803 } else {
87804 Qfb(Qfb((b.a += ' "', b), c2), '"');
87805 }
87806 Qfb(Lfb(Qfb(Lfb(Qfb(Lfb(Qfb(Lfb((b.a += " (", b), a.i), ","), a.j), " | "), a.g), ","), a.f), ")");
87807 return b.a;
87808 }
87809 function h4c(a, b) {
87810 var c2, d, e, f2, g, h, i3;
87811 if (b == null || b.length == 0) {
87812 return null;
87813 }
87814 e = BD(Phb(a.a, b), 149);
87815 if (!e) {
87816 for (d = (h = new $ib(a.b).a.vc().Kc(), new djb(h)); d.a.Ob(); ) {
87817 c2 = (f2 = BD(d.a.Pb(), 42), BD(f2.dd(), 149));
87818 g = c2.c;
87819 i3 = b.length;
87820 if (dfb(g.substr(g.length - i3, i3), b) && (b.length == g.length || bfb(g, g.length - b.length - 1) == 46)) {
87821 if (e) {
87822 return null;
87823 }
87824 e = c2;
87825 }
87826 }
87827 !!e && Shb(a.a, b, e);
87828 }
87829 return e;
87830 }
87831 function QLb(a, b) {
87832 var c2, d, e, f2;
87833 c2 = new VLb();
87834 d = BD(GAb(NAb(new YAb(null, new Kub(a.f, 16)), c2), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
87835 e = d.gc();
87836 d = BD(GAb(NAb(new YAb(null, new Kub(b.f, 16)), c2), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [Eyb, Dyb]))), 21);
87837 f2 = d.gc();
87838 if (e < f2) {
87839 return -1;
87840 }
87841 if (e == f2) {
87842 return 0;
87843 }
87844 return 1;
87845 }
87846 function r5b(a) {
87847 var b, c2, d;
87848 if (!wNb(a, (Nyc(), xxc))) {
87849 return;
87850 }
87851 d = BD(vNb(a, xxc), 21);
87852 if (d.dc()) {
87853 return;
87854 }
87855 c2 = (b = BD(gdb(B1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
87856 d.Hc((Hbd(), Cbd)) ? rqb(c2, Cbd) : rqb(c2, Dbd);
87857 d.Hc(Abd) || rqb(c2, Abd);
87858 d.Hc(zbd) ? rqb(c2, Gbd) : d.Hc(ybd) ? rqb(c2, Fbd) : d.Hc(Bbd) && rqb(c2, Ebd);
87859 d.Hc(Gbd) ? rqb(c2, zbd) : d.Hc(Fbd) ? rqb(c2, ybd) : d.Hc(Ebd) && rqb(c2, Bbd);
87860 yNb(a, xxc, c2);
87861 }
87862 function kHc(a) {
87863 var b, c2, d, e, f2, g, h;
87864 e = BD(vNb(a, (wtc(), Psc)), 10);
87865 d = a.j;
87866 c2 = (tCb(0, d.c.length), BD(d.c[0], 11));
87867 for (g = new olb(e.j); g.a < g.c.c.length; ) {
87868 f2 = BD(mlb(g), 11);
87869 if (PD(f2) === PD(vNb(c2, $sc))) {
87870 if (f2.j == (Ucd(), Acd) && a.p > e.p) {
87871 G0b(f2, Rcd);
87872 if (f2.d) {
87873 h = f2.o.b;
87874 b = f2.a.b;
87875 f2.a.b = h - b;
87876 }
87877 } else if (f2.j == Rcd && e.p > a.p) {
87878 G0b(f2, Acd);
87879 if (f2.d) {
87880 h = f2.o.b;
87881 b = f2.a.b;
87882 f2.a.b = -(h - b);
87883 }
87884 }
87885 break;
87886 }
87887 }
87888 return e;
87889 }
87890 function NOc(a, b, c2, d) {
87891 var e, f2, g, h, i3, j, k, l, m, n, o2;
87892 f2 = c2;
87893 if (c2 < d) {
87894 m = (n = new uOc(a.p), o2 = new uOc(a.p), ye(n.e, a.e), n.q = a.q, n.r = o2, lOc(n), ye(o2.j, a.j), o2.r = n, lOc(o2), new vgd(n, o2));
87895 l = BD(m.a, 112);
87896 k = BD(m.b, 112);
87897 e = (tCb(f2, b.c.length), BD(b.c[f2], 329));
87898 g = UOc(a, l, k, e);
87899 for (j = c2 + 1; j <= d; j++) {
87900 h = (tCb(j, b.c.length), BD(b.c[j], 329));
87901 i3 = UOc(a, l, k, h);
87902 if (SOc(h, i3, e, g)) {
87903 e = h;
87904 g = i3;
87905 }
87906 }
87907 }
87908 return f2;
87909 }
87910 function wQb(a, b, c2, d, e) {
87911 var f2, g, h, i3, j, k, l;
87912 if (!(JD(b, 239) || JD(b, 354) || JD(b, 186))) {
87913 throw vbb(new Wdb("Method only works for ElkNode-, ElkLabel and ElkPort-objects."));
87914 }
87915 g = a.a / 2;
87916 i3 = b.i + d - g;
87917 k = b.j + e - g;
87918 j = i3 + b.g + a.a;
87919 l = k + b.f + a.a;
87920 f2 = new s7c();
87921 Dsb(f2, new f7c(i3, k));
87922 Dsb(f2, new f7c(i3, l));
87923 Dsb(f2, new f7c(j, l));
87924 Dsb(f2, new f7c(j, k));
87925 h = new XOb(f2);
87926 tNb(h, b);
87927 c2 && Rhb(a.b, b, h);
87928 return h;
87929 }
87930 function uXb(a, b, c2) {
87931 var d, e, f2, g, h, i3, j, k, l, m;
87932 f2 = new f7c(b, c2);
87933 for (k = new olb(a.a); k.a < k.c.c.length; ) {
87934 j = BD(mlb(k), 10);
87935 P6c(j.n, f2);
87936 for (m = new olb(j.j); m.a < m.c.c.length; ) {
87937 l = BD(mlb(m), 11);
87938 for (e = new olb(l.g); e.a < e.c.c.length; ) {
87939 d = BD(mlb(e), 17);
87940 q7c(d.a, f2);
87941 g = BD(vNb(d, (Nyc(), jxc)), 74);
87942 !!g && q7c(g, f2);
87943 for (i3 = new olb(d.b); i3.a < i3.c.c.length; ) {
87944 h = BD(mlb(i3), 70);
87945 P6c(h.n, f2);
87946 }
87947 }
87948 }
87949 }
87950 }
87951 function g_b(a, b, c2) {
87952 var d, e, f2, g, h, i3, j, k, l, m;
87953 f2 = new f7c(b, c2);
87954 for (k = new olb(a.a); k.a < k.c.c.length; ) {
87955 j = BD(mlb(k), 10);
87956 P6c(j.n, f2);
87957 for (m = new olb(j.j); m.a < m.c.c.length; ) {
87958 l = BD(mlb(m), 11);
87959 for (e = new olb(l.g); e.a < e.c.c.length; ) {
87960 d = BD(mlb(e), 17);
87961 q7c(d.a, f2);
87962 g = BD(vNb(d, (Nyc(), jxc)), 74);
87963 !!g && q7c(g, f2);
87964 for (i3 = new olb(d.b); i3.a < i3.c.c.length; ) {
87965 h = BD(mlb(i3), 70);
87966 P6c(h.n, f2);
87967 }
87968 }
87969 }
87970 }
87971 }
87972 function N1b(a) {
87973 if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i == 0) {
87974 throw vbb(new z2c("Edges must have a source."));
87975 } else if ((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i == 0) {
87976 throw vbb(new z2c("Edges must have a target."));
87977 } else {
87978 !a.b && (a.b = new y5d(z2, a, 4, 7));
87979 if (!(a.b.i <= 1 && (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c.i <= 1))) {
87980 throw vbb(new z2c("Hyperedges are not supported."));
87981 }
87982 }
87983 }
87984 function OFc(a, b) {
87985 var c2, d, e, f2, g, h, i3, j, k, l;
87986 l = 0;
87987 f2 = new jkb();
87988 Wjb(f2, b);
87989 while (f2.b != f2.c) {
87990 i3 = BD(fkb(f2), 214);
87991 j = 0;
87992 k = BD(vNb(b.j, (Nyc(), ywc)), 339);
87993 g = Edb(ED(vNb(b.j, uwc)));
87994 h = Edb(ED(vNb(b.j, vwc)));
87995 if (k != (tAc(), rAc)) {
87996 j += g * PFc(i3.e, k);
87997 j += h * QFc(i3.e);
87998 }
87999 l += pHc(i3.d, i3.e) + j;
88000 for (e = new olb(i3.b); e.a < e.c.c.length; ) {
88001 d = BD(mlb(e), 37);
88002 c2 = BD(Ikb(a.b, d.p), 214);
88003 c2.s || (l += NFc(a, c2));
88004 }
88005 }
88006 return l;
88007 }
88008 function dhb(a, b) {
88009 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
88010 n = b.length;
88011 i3 = n;
88012 BCb(0, b.length);
88013 if (b.charCodeAt(0) == 45) {
88014 l = -1;
88015 m = 1;
88016 --n;
88017 } else {
88018 l = 1;
88019 m = 0;
88020 }
88021 f2 = (phb(), ohb)[10];
88022 e = n / f2 | 0;
88023 q = n % f2;
88024 q != 0 && ++e;
88025 h = KC(WD, oje, 25, e, 15, 1);
88026 c2 = nhb[8];
88027 g = 0;
88028 o2 = m + (q == 0 ? f2 : q);
88029 for (p = m; p < i3; p = o2, o2 = p + f2) {
88030 d = Icb(b.substr(p, o2 - p), Rie, Ohe);
88031 j = (Dhb(), Hhb(h, h, g, c2));
88032 j += xhb(h, g, d);
88033 h[g++] = j;
88034 }
88035 k = g;
88036 a.e = l;
88037 a.d = k;
88038 a.a = h;
88039 Jgb(a);
88040 }
88041 function SGb(a, b, c2, d, e, f2, g) {
88042 a.c = d.qf().a;
88043 a.d = d.qf().b;
88044 if (e) {
88045 a.c += e.qf().a;
88046 a.d += e.qf().b;
88047 }
88048 a.b = b.rf().a;
88049 a.a = b.rf().b;
88050 if (!e) {
88051 c2 ? a.c -= g + b.rf().a : a.c += d.rf().a + g;
88052 } else {
88053 switch (e.Hf().g) {
88054 case 0:
88055 case 2:
88056 a.c += e.rf().a + g + f2.a + g;
88057 break;
88058 case 4:
88059 a.c -= g + f2.a + g + b.rf().a;
88060 break;
88061 case 1:
88062 a.c += e.rf().a + g;
88063 a.d -= g + f2.b + g + b.rf().b;
88064 break;
88065 case 3:
88066 a.c += e.rf().a + g;
88067 a.d += e.rf().b + g + f2.b + g;
88068 }
88069 }
88070 }
88071 function gac(a, b) {
88072 var c2, d;
88073 this.b = new Rkb();
88074 this.e = new Rkb();
88075 this.a = a;
88076 this.d = b;
88077 dac(this);
88078 eac(this);
88079 this.b.dc() ? this.c = a.c.p : this.c = BD(this.b.Xb(0), 10).c.p;
88080 this.e.c.length == 0 ? this.f = a.c.p : this.f = BD(Ikb(this.e, this.e.c.length - 1), 10).c.p;
88081 for (d = BD(vNb(a, (wtc(), ktc)), 15).Kc(); d.Ob(); ) {
88082 c2 = BD(d.Pb(), 70);
88083 if (wNb(c2, (Nyc(), Owc))) {
88084 this.d = BD(vNb(c2, Owc), 227);
88085 break;
88086 }
88087 }
88088 }
88089 function Anc(a, b, c2) {
88090 var d, e, f2, g, h, i3, j, k;
88091 d = BD(Ohb(a.a, b), 53);
88092 f2 = BD(Ohb(a.a, c2), 53);
88093 e = BD(Ohb(a.e, b), 53);
88094 g = BD(Ohb(a.e, c2), 53);
88095 d.a.zc(c2, d);
88096 g.a.zc(b, g);
88097 for (k = f2.a.ec().Kc(); k.Ob(); ) {
88098 j = BD(k.Pb(), 10);
88099 d.a.zc(j, d);
88100 Qqb(BD(Ohb(a.e, j), 53), b);
88101 ye(BD(Ohb(a.e, j), 53), e);
88102 }
88103 for (i3 = e.a.ec().Kc(); i3.Ob(); ) {
88104 h = BD(i3.Pb(), 10);
88105 g.a.zc(h, g);
88106 Qqb(BD(Ohb(a.a, h), 53), c2);
88107 ye(BD(Ohb(a.a, h), 53), f2);
88108 }
88109 }
88110 function WGc(a, b, c2) {
88111 var d, e, f2, g, h, i3, j, k;
88112 d = BD(Ohb(a.a, b), 53);
88113 f2 = BD(Ohb(a.a, c2), 53);
88114 e = BD(Ohb(a.b, b), 53);
88115 g = BD(Ohb(a.b, c2), 53);
88116 d.a.zc(c2, d);
88117 g.a.zc(b, g);
88118 for (k = f2.a.ec().Kc(); k.Ob(); ) {
88119 j = BD(k.Pb(), 10);
88120 d.a.zc(j, d);
88121 Qqb(BD(Ohb(a.b, j), 53), b);
88122 ye(BD(Ohb(a.b, j), 53), e);
88123 }
88124 for (i3 = e.a.ec().Kc(); i3.Ob(); ) {
88125 h = BD(i3.Pb(), 10);
88126 g.a.zc(h, g);
88127 Qqb(BD(Ohb(a.a, h), 53), c2);
88128 ye(BD(Ohb(a.a, h), 53), f2);
88129 }
88130 }
88131 function doc(a, b) {
88132 var c2, d, e;
88133 Odd(b, "Breaking Point Insertion", 1);
88134 d = new Xoc(a);
88135 switch (BD(vNb(a, (Nyc(), Gyc)), 337).g) {
88136 case 2:
88137 e = new hpc();
88138 case 0:
88139 e = new Ync();
88140 break;
88141 default:
88142 e = new kpc();
88143 }
88144 c2 = e.Vf(a, d);
88145 Ccb(DD(vNb(a, Iyc))) && (c2 = coc(a, c2));
88146 if (!e.Wf() && wNb(a, Myc)) {
88147 switch (BD(vNb(a, Myc), 338).g) {
88148 case 2:
88149 c2 = tpc(d, c2);
88150 break;
88151 case 1:
88152 c2 = rpc(d, c2);
88153 }
88154 }
88155 if (c2.dc()) {
88156 Qdd(b);
88157 return;
88158 }
88159 aoc(a, c2);
88160 Qdd(b);
88161 }
88162 function $qd(a, b, c2) {
88163 var d, e, f2, g, h, i3, j, k, l, m;
88164 k = null;
88165 m = b;
88166 l = Rqd(a, dtd(c2), m);
88167 Lkd(l, _pd(m, Vte));
88168 g = Ypd(m, Lte);
88169 d = new mrd(a, l);
88170 oqd(d.a, d.b, g);
88171 h = Ypd(m, Mte);
88172 e = new nrd(a, l);
88173 pqd(e.a, e.b, h);
88174 if ((!l.b && (l.b = new y5d(z2, l, 4, 7)), l.b).i == 0 || (!l.c && (l.c = new y5d(z2, l, 5, 8)), l.c).i == 0) {
88175 f2 = _pd(m, Vte);
88176 i3 = Zte + f2;
88177 j = i3 + $te;
88178 throw vbb(new cqd(j));
88179 }
88180 grd(m, l);
88181 _qd(a, m, l);
88182 k = crd(a, m, l);
88183 return k;
88184 }
88185 function yGb(a, b) {
88186 var c2, d, e, f2, g, h, i3;
88187 e = KC(WD, oje, 25, a.e.a.c.length, 15, 1);
88188 for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
88189 f2 = BD(mlb(g), 121);
88190 e[f2.d] += f2.b.a.c.length;
88191 }
88192 h = Ru(b);
88193 while (h.b != 0) {
88194 f2 = BD(h.b == 0 ? null : (sCb(h.b != 0), Nsb(h, h.a.a)), 121);
88195 for (d = vr(new olb(f2.g.a)); d.Ob(); ) {
88196 c2 = BD(d.Pb(), 213);
88197 i3 = c2.e;
88198 i3.e = $wnd.Math.max(i3.e, f2.e + c2.a);
88199 --e[i3.d];
88200 e[i3.d] == 0 && (Gsb(h, i3, h.c.b, h.c), true);
88201 }
88202 }
88203 }
88204 function CGb(a) {
88205 var b, c2, d, e, f2, g, h, i3, j, k, l;
88206 c2 = Rie;
88207 e = Ohe;
88208 for (h = new olb(a.e.a); h.a < h.c.c.length; ) {
88209 f2 = BD(mlb(h), 121);
88210 e = $wnd.Math.min(e, f2.e);
88211 c2 = $wnd.Math.max(c2, f2.e);
88212 }
88213 b = KC(WD, oje, 25, c2 - e + 1, 15, 1);
88214 for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
88215 f2 = BD(mlb(g), 121);
88216 f2.e -= e;
88217 ++b[f2.e];
88218 }
88219 d = 0;
88220 if (a.k != null) {
88221 for (j = a.k, k = 0, l = j.length; k < l; ++k) {
88222 i3 = j[k];
88223 b[d++] += i3;
88224 if (b.length == d) {
88225 break;
88226 }
88227 }
88228 }
88229 return b;
88230 }
88231 function ixd(a) {
88232 switch (a.d) {
88233 case 9:
88234 case 8: {
88235 return true;
88236 }
88237 case 3:
88238 case 5:
88239 case 4:
88240 case 6: {
88241 return false;
88242 }
88243 case 7: {
88244 return BD(hxd(a), 19).a == a.o;
88245 }
88246 case 1:
88247 case 2: {
88248 if (a.o == -2) {
88249 return false;
88250 } else {
88251 switch (a.p) {
88252 case 0:
88253 case 1:
88254 case 2:
88255 case 6:
88256 case 5:
88257 case 7: {
88258 return Bbb(a.k, a.f);
88259 }
88260 case 3:
88261 case 4: {
88262 return a.j == a.e;
88263 }
88264 default: {
88265 return a.n == null ? a.g == null : pb(a.n, a.g);
88266 }
88267 }
88268 }
88269 }
88270 default: {
88271 return false;
88272 }
88273 }
88274 }
88275 function $ad(a) {
88276 r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Qse), "ELK Fixed"), "Keeps the current layout as it is, without any automatic modification. Optional coordinates can be given for nodes and edge bend points."), new bbd())));
88277 p4c(a, Qse, ame, Xad);
88278 p4c(a, Qse, uqe, Ksd(Yad));
88279 p4c(a, Qse, use, Ksd(Sad));
88280 p4c(a, Qse, Fme, Ksd(Tad));
88281 p4c(a, Qse, Tme, Ksd(Vad));
88282 p4c(a, Qse, bqe, Ksd(Uad));
88283 }
88284 function ro(a, b, c2) {
88285 var d, e, f2, g, h;
88286 d = Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)));
88287 h = Tbb(Ibb(Eie, keb(Tbb(Ibb(c2 == null ? 0 : tb(c2), Fie)), 15)));
88288 f2 = uo(a, b, d);
88289 if (!!f2 && h == f2.f && Hb(c2, f2.i)) {
88290 return c2;
88291 }
88292 g = vo(a, c2, h);
88293 if (g) {
88294 throw vbb(new Wdb("value already present: " + c2));
88295 }
88296 e = new $o(b, d, c2, h);
88297 if (f2) {
88298 mo(a, f2);
88299 po(a, e, f2);
88300 f2.e = null;
88301 f2.c = null;
88302 return f2.i;
88303 } else {
88304 po(a, e, null);
88305 to(a);
88306 return null;
88307 }
88308 }
88309 function E4b(a, b, c2) {
88310 var d, e, f2, g, h, i3, j, k, l, m, n, o2;
88311 k = c2.a.c;
88312 g = c2.a.c + c2.a.b;
88313 f2 = BD(Ohb(c2.c, b), 459);
88314 n = f2.f;
88315 o2 = f2.a;
88316 f2.b ? i3 = new f7c(g, n) : i3 = new f7c(k, n);
88317 f2.c ? l = new f7c(k, o2) : l = new f7c(g, o2);
88318 e = k;
88319 c2.p || (e += a.c);
88320 e += c2.F + c2.v * a.b;
88321 j = new f7c(e, n);
88322 m = new f7c(e, o2);
88323 n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [i3, j]));
88324 h = c2.d.a.gc() > 1;
88325 if (h) {
88326 d = new f7c(e, c2.b);
88327 Dsb(b.a, d);
88328 }
88329 n7c(b.a, OC(GC(m1, 1), nie, 8, 0, [m, l]));
88330 }
88331 function Nid(a, b, c2) {
88332 var d, e, f2, g, h, i3;
88333 if (!b) {
88334 return null;
88335 } else {
88336 if (c2 <= -1) {
88337 d = XKd(b.Tg(), -1 - c2);
88338 if (JD(d, 99)) {
88339 return BD(d, 18);
88340 } else {
88341 g = BD(b.ah(d), 153);
88342 for (h = 0, i3 = g.gc(); h < i3; ++h) {
88343 if (PD(g.jl(h)) === PD(a)) {
88344 e = g.il(h);
88345 if (JD(e, 99)) {
88346 f2 = BD(e, 18);
88347 if ((f2.Bb & ote) != 0) {
88348 return f2;
88349 }
88350 }
88351 }
88352 }
88353 throw vbb(new Zdb("The containment feature could not be located"));
88354 }
88355 } else {
88356 return zUd(BD(XKd(a.Tg(), c2), 18));
88357 }
88358 }
88359 }
88360 function Xee(a) {
88361 var b, c2, d, e, f2;
88362 d = a.length;
88363 b = new Ifb();
88364 f2 = 0;
88365 while (f2 < d) {
88366 c2 = bfb(a, f2++);
88367 if (c2 == 9 || c2 == 10 || c2 == 12 || c2 == 13 || c2 == 32)
88368 continue;
88369 if (c2 == 35) {
88370 while (f2 < d) {
88371 c2 = bfb(a, f2++);
88372 if (c2 == 13 || c2 == 10)
88373 break;
88374 }
88375 continue;
88376 }
88377 if (c2 == 92 && f2 < d) {
88378 if ((e = (BCb(f2, a.length), a.charCodeAt(f2))) == 35 || e == 9 || e == 10 || e == 12 || e == 13 || e == 32) {
88379 Afb(b, e & aje);
88380 ++f2;
88381 } else {
88382 b.a += "\\";
88383 Afb(b, e & aje);
88384 ++f2;
88385 }
88386 } else
88387 Afb(b, c2 & aje);
88388 }
88389 return b.a;
88390 }
88391 function GVc(a, b) {
88392 var c2, d, e;
88393 for (d = new olb(b); d.a < d.c.c.length; ) {
88394 c2 = BD(mlb(d), 33);
88395 Rc(a.a, c2, c2);
88396 Rc(a.b, c2, c2);
88397 e = gVc(c2);
88398 if (e.c.length != 0) {
88399 !!a.d && a.d.lg(e);
88400 Rc(a.a, c2, (tCb(0, e.c.length), BD(e.c[0], 33)));
88401 Rc(a.b, c2, BD(Ikb(e, e.c.length - 1), 33));
88402 while (dVc(e).c.length != 0) {
88403 e = dVc(e);
88404 !!a.d && a.d.lg(e);
88405 Rc(a.a, c2, (tCb(0, e.c.length), BD(e.c[0], 33)));
88406 Rc(a.b, c2, BD(Ikb(e, e.c.length - 1), 33));
88407 }
88408 }
88409 }
88410 }
88411 function fnc(a) {
88412 var b, c2, d, e, f2, g, h, i3, j, k;
88413 c2 = 0;
88414 for (h = new olb(a.d); h.a < h.c.c.length; ) {
88415 g = BD(mlb(h), 101);
88416 !!g.i && (g.i.c = c2++);
88417 }
88418 b = IC(sbb, [nie, dle], [177, 25], 16, [c2, c2], 2);
88419 k = a.d;
88420 for (e = 0; e < k.c.length; e++) {
88421 i3 = (tCb(e, k.c.length), BD(k.c[e], 101));
88422 if (i3.i) {
88423 for (f2 = e + 1; f2 < k.c.length; f2++) {
88424 j = (tCb(f2, k.c.length), BD(k.c[f2], 101));
88425 if (j.i) {
88426 d = knc(i3, j);
88427 b[i3.i.c][j.i.c] = d;
88428 b[j.i.c][i3.i.c] = d;
88429 }
88430 }
88431 }
88432 }
88433 return b;
88434 }
88435 function ht(a, b, c2, d) {
88436 var e, f2, g;
88437 g = new qu(b, c2);
88438 if (!a.a) {
88439 a.a = a.e = g;
88440 Rhb(a.b, b, new pu(g));
88441 ++a.c;
88442 } else if (!d) {
88443 a.e.b = g;
88444 g.d = a.e;
88445 a.e = g;
88446 e = BD(Ohb(a.b, b), 283);
88447 if (!e) {
88448 Rhb(a.b, b, e = new pu(g));
88449 ++a.c;
88450 } else {
88451 ++e.a;
88452 f2 = e.c;
88453 f2.c = g;
88454 g.e = f2;
88455 e.c = g;
88456 }
88457 } else {
88458 e = BD(Ohb(a.b, b), 283);
88459 ++e.a;
88460 g.d = d.d;
88461 g.e = d.e;
88462 g.b = d;
88463 g.c = d;
88464 !d.e ? BD(Ohb(a.b, b), 283).b = g : d.e.c = g;
88465 !d.d ? a.a = g : d.d.b = g;
88466 d.d = g;
88467 d.e = g;
88468 }
88469 ++a.d;
88470 return g;
88471 }
88472 function mfb(a, b) {
88473 var c2, d, e, f2, g, h, i3, j;
88474 c2 = new RegExp(b, "g");
88475 i3 = KC(ZI, nie, 2, 0, 6, 1);
88476 d = 0;
88477 j = a;
88478 f2 = null;
88479 while (true) {
88480 h = c2.exec(j);
88481 if (h == null || j == "") {
88482 i3[d] = j;
88483 break;
88484 } else {
88485 g = h.index;
88486 i3[d] = j.substr(0, g);
88487 j = qfb(j, g + h[0].length, j.length);
88488 c2.lastIndex = 0;
88489 if (f2 == j) {
88490 i3[d] = j.substr(0, 1);
88491 j = j.substr(1);
88492 }
88493 f2 = j;
88494 ++d;
88495 }
88496 }
88497 if (a.length > 0) {
88498 e = i3.length;
88499 while (e > 0 && i3[e - 1] == "") {
88500 --e;
88501 }
88502 e < i3.length && (i3.length = e);
88503 }
88504 return i3;
88505 }
88506 function f1d(a, b) {
88507 var c2, d, e, f2, g, h, i3, j, k, l;
88508 l = _Kd(b);
88509 j = null;
88510 e = false;
88511 for (h = 0, k = VKd(l.a).i; h < k; ++h) {
88512 g = BD(nOd(l, h, (f2 = BD(qud(VKd(l.a), h), 87), i3 = f2.c, JD(i3, 88) ? BD(i3, 26) : (jGd(), _Fd))), 26);
88513 c2 = f1d(a, g);
88514 if (!c2.dc()) {
88515 if (!j) {
88516 j = c2;
88517 } else {
88518 if (!e) {
88519 e = true;
88520 j = new pFd(j);
88521 }
88522 j.Gc(c2);
88523 }
88524 }
88525 }
88526 d = k1d(a, b);
88527 if (d.dc()) {
88528 return !j ? (mmb(), mmb(), jmb) : j;
88529 } else {
88530 if (!j) {
88531 return d;
88532 } else {
88533 e || (j = new pFd(j));
88534 j.Gc(d);
88535 return j;
88536 }
88537 }
88538 }
88539 function g1d(a, b) {
88540 var c2, d, e, f2, g, h, i3, j, k, l;
88541 l = _Kd(b);
88542 j = null;
88543 d = false;
88544 for (h = 0, k = VKd(l.a).i; h < k; ++h) {
88545 f2 = BD(nOd(l, h, (e = BD(qud(VKd(l.a), h), 87), i3 = e.c, JD(i3, 88) ? BD(i3, 26) : (jGd(), _Fd))), 26);
88546 c2 = g1d(a, f2);
88547 if (!c2.dc()) {
88548 if (!j) {
88549 j = c2;
88550 } else {
88551 if (!d) {
88552 d = true;
88553 j = new pFd(j);
88554 }
88555 j.Gc(c2);
88556 }
88557 }
88558 }
88559 g = n1d(a, b);
88560 if (g.dc()) {
88561 return !j ? (mmb(), mmb(), jmb) : j;
88562 } else {
88563 if (!j) {
88564 return g;
88565 } else {
88566 d || (j = new pFd(j));
88567 j.Gc(g);
88568 return j;
88569 }
88570 }
88571 }
88572 function B2d(a, b, c2) {
88573 var d, e, f2, g, h, i3;
88574 if (JD(b, 72)) {
88575 return Txd(a, b, c2);
88576 } else {
88577 h = null;
88578 f2 = null;
88579 d = BD(a.g, 119);
88580 for (g = 0; g < a.i; ++g) {
88581 e = d[g];
88582 if (pb(b, e.dd())) {
88583 f2 = e.ak();
88584 if (JD(f2, 99) && (BD(f2, 18).Bb & ote) != 0) {
88585 h = e;
88586 break;
88587 }
88588 }
88589 }
88590 if (h) {
88591 if (oid(a.e)) {
88592 i3 = f2.$j() ? H2d(a, 4, f2, b, null, M2d(a, f2, b, JD(f2, 99) && (BD(f2, 18).Bb & Tje) != 0), true) : H2d(a, f2.Kj() ? 2 : 1, f2, b, f2.zj(), -1, true);
88593 c2 ? c2.Ei(i3) : c2 = i3;
88594 }
88595 c2 = B2d(a, h, c2);
88596 }
88597 return c2;
88598 }
88599 }
88600 function pKb(a) {
88601 var b, c2, d, e;
88602 d = a.o;
88603 $Jb();
88604 if (a.A.dc() || pb(a.A, ZJb)) {
88605 e = d.a;
88606 } else {
88607 e = gIb(a.f);
88608 if (a.A.Hc((tdd(), qdd)) && !a.B.Hc((Idd(), Edd))) {
88609 e = $wnd.Math.max(e, gIb(BD(Mpb(a.p, (Ucd(), Acd)), 244)));
88610 e = $wnd.Math.max(e, gIb(BD(Mpb(a.p, Rcd), 244)));
88611 }
88612 b = aKb(a);
88613 !!b && (e = $wnd.Math.max(e, b.a));
88614 }
88615 Ccb(DD(a.e.yf().We((Y9c(), $8c)))) ? d.a = $wnd.Math.max(d.a, e) : d.a = e;
88616 c2 = a.f.i;
88617 c2.c = 0;
88618 c2.b = e;
88619 hIb(a.f);
88620 }
88621 function $0d(a, b) {
88622 var c2, d, e, f2, g, h, i3, j, k;
88623 c2 = b.Hh(a.a);
88624 if (c2) {
88625 i3 = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), "memberTypes"));
88626 if (i3 != null) {
88627 j = new Rkb();
88628 for (f2 = mfb(i3, "\\w"), g = 0, h = f2.length; g < h; ++g) {
88629 e = f2[g];
88630 d = e.lastIndexOf("#");
88631 k = d == -1 ? w1d(a, b.Aj(), e) : d == 0 ? v1d(a, null, e.substr(1)) : v1d(a, e.substr(0, d), e.substr(d + 1));
88632 JD(k, 148) && Ekb(j, BD(k, 148));
88633 }
88634 return j;
88635 }
88636 }
88637 return mmb(), mmb(), jmb;
88638 }
88639 function tRb(a, b, c2) {
88640 var d, e, f2, g, h, i3, j, k;
88641 Odd(c2, kme, 1);
88642 a.bf(b);
88643 f2 = 0;
88644 while (a.df(f2)) {
88645 for (k = new olb(b.e); k.a < k.c.c.length; ) {
88646 i3 = BD(mlb(k), 144);
88647 for (h = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [b.e, b.d, b.b]))); Qr(h); ) {
88648 g = BD(Rr(h), 357);
88649 if (g != i3) {
88650 e = a.af(g, i3);
88651 !!e && P6c(i3.a, e);
88652 }
88653 }
88654 }
88655 for (j = new olb(b.e); j.a < j.c.c.length; ) {
88656 i3 = BD(mlb(j), 144);
88657 d = i3.a;
88658 Q6c(d, -a.d, -a.d, a.d, a.d);
88659 P6c(i3.d, d);
88660 X6c(d);
88661 }
88662 a.cf();
88663 ++f2;
88664 }
88665 Qdd(c2);
88666 }
88667 function $2d(a, b, c2) {
88668 var d, e, f2, g;
88669 g = S6d(a.e.Tg(), b);
88670 d = BD(a.g, 119);
88671 Q6d();
88672 if (BD(b, 66).Oj()) {
88673 for (f2 = 0; f2 < a.i; ++f2) {
88674 e = d[f2];
88675 if (g.rl(e.ak())) {
88676 if (pb(e, c2)) {
88677 Xxd(a, f2);
88678 return true;
88679 }
88680 }
88681 }
88682 } else if (c2 != null) {
88683 for (f2 = 0; f2 < a.i; ++f2) {
88684 e = d[f2];
88685 if (g.rl(e.ak())) {
88686 if (pb(c2, e.dd())) {
88687 Xxd(a, f2);
88688 return true;
88689 }
88690 }
88691 }
88692 } else {
88693 for (f2 = 0; f2 < a.i; ++f2) {
88694 e = d[f2];
88695 if (g.rl(e.ak())) {
88696 if (e.dd() == null) {
88697 Xxd(a, f2);
88698 return true;
88699 }
88700 }
88701 }
88702 }
88703 return false;
88704 }
88705 function sDc(a, b) {
88706 var c2, d, e, f2, g;
88707 a.c == null || a.c.length < b.c.length ? a.c = KC(sbb, dle, 25, b.c.length, 16, 1) : Blb(a.c);
88708 a.a = new Rkb();
88709 d = 0;
88710 for (g = new olb(b); g.a < g.c.c.length; ) {
88711 e = BD(mlb(g), 10);
88712 e.p = d++;
88713 }
88714 c2 = new Psb();
88715 for (f2 = new olb(b); f2.a < f2.c.c.length; ) {
88716 e = BD(mlb(f2), 10);
88717 if (!a.c[e.p]) {
88718 tDc(a, e);
88719 c2.b == 0 || (sCb(c2.b != 0), BD(c2.a.a.c, 15)).gc() < a.a.c.length ? Esb(c2, a.a) : Fsb(c2, a.a);
88720 a.a = new Rkb();
88721 }
88722 }
88723 return c2;
88724 }
88725 function jYc(a, b, c2, d) {
88726 var e, f2, g, h, i3, j, k, l, m, n, o2;
88727 g = BD(qud(b, 0), 33);
88728 dld(g, 0);
88729 eld(g, 0);
88730 m = new Rkb();
88731 m.c[m.c.length] = g;
88732 h = g;
88733 f2 = new d$c(a.a, g.g, g.f, (k$c(), j$c));
88734 for (n = 1; n < b.i; n++) {
88735 o2 = BD(qud(b, n), 33);
88736 i3 = kYc(a, g$c, o2, h, f2, m, c2);
88737 j = kYc(a, f$c, o2, h, f2, m, c2);
88738 k = kYc(a, i$c, o2, h, f2, m, c2);
88739 l = kYc(a, h$c, o2, h, f2, m, c2);
88740 e = mYc(a, i3, j, k, l, o2, h, d);
88741 dld(o2, e.d);
88742 eld(o2, e.e);
88743 c$c(e, j$c);
88744 f2 = e;
88745 h = o2;
88746 m.c[m.c.length] = o2;
88747 }
88748 return f2;
88749 }
88750 function K0c(a) {
88751 r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), ase), "ELK SPOrE Overlap Removal"), 'A node overlap removal algorithm proposed by Nachmanson et al. in "Node overlap removal by growing a tree".'), new N0c())));
88752 p4c(a, ase, Qre, Ksd(I0c));
88753 p4c(a, ase, ame, G0c);
88754 p4c(a, ase, wme, 8);
88755 p4c(a, ase, Vre, Ksd(H0c));
88756 p4c(a, ase, Yre, Ksd(E0c));
88757 p4c(a, ase, Zre, Ksd(F0c));
88758 p4c(a, ase, Zpe, (Bcb(), false));
88759 }
88760 function sXb(a, b, c2, d) {
88761 var e, f2, g, h, i3, j, k, l, m, n;
88762 g = O6c(b.c, c2, d);
88763 for (l = new olb(b.a); l.a < l.c.c.length; ) {
88764 k = BD(mlb(l), 10);
88765 P6c(k.n, g);
88766 for (n = new olb(k.j); n.a < n.c.c.length; ) {
88767 m = BD(mlb(n), 11);
88768 for (f2 = new olb(m.g); f2.a < f2.c.c.length; ) {
88769 e = BD(mlb(f2), 17);
88770 q7c(e.a, g);
88771 h = BD(vNb(e, (Nyc(), jxc)), 74);
88772 !!h && q7c(h, g);
88773 for (j = new olb(e.b); j.a < j.c.c.length; ) {
88774 i3 = BD(mlb(j), 70);
88775 P6c(i3.n, g);
88776 }
88777 }
88778 }
88779 Ekb(a.a, k);
88780 k.a = a;
88781 }
88782 }
88783 function g9b(a, b) {
88784 var c2, d, e, f2, g;
88785 Odd(b, "Node and Port Label Placement and Node Sizing", 1);
88786 MGb((a$b(), new l$b(a, true, true, new j9b())));
88787 if (BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) {
88788 f2 = BD(vNb(a, (Nyc(), Yxc)), 21);
88789 e = f2.Hc((rcd(), ocd));
88790 g = Ccb(DD(vNb(a, Zxc)));
88791 for (d = new olb(a.b); d.a < d.c.c.length; ) {
88792 c2 = BD(mlb(d), 29);
88793 MAb(JAb(new YAb(null, new Kub(c2.a, 16)), new l9b()), new n9b(f2, e, g));
88794 }
88795 }
88796 Qdd(b);
88797 }
88798 function Y0d(a, b) {
88799 var c2, d, e, f2, g, h;
88800 c2 = b.Hh(a.a);
88801 if (c2) {
88802 h = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), eue));
88803 if (h != null) {
88804 e = kfb(h, wfb(35));
88805 d = b.Hj();
88806 if (e == -1) {
88807 g = u1d(a, bKd(d));
88808 f2 = h;
88809 } else if (e == 0) {
88810 g = null;
88811 f2 = h.substr(1);
88812 } else {
88813 g = h.substr(0, e);
88814 f2 = h.substr(e + 1);
88815 }
88816 switch ($1d(q1d(a, b))) {
88817 case 2:
88818 case 3: {
88819 return j1d(a, d, g, f2);
88820 }
88821 case 0:
88822 case 4:
88823 case 5:
88824 case 6: {
88825 return m1d(a, d, g, f2);
88826 }
88827 }
88828 }
88829 }
88830 return null;
88831 }
88832 function q2d(a, b, c2) {
88833 var d, e, f2, g, h;
88834 g = (Q6d(), BD(b, 66).Oj());
88835 if (T6d(a.e, b)) {
88836 if (b.hi() && F2d(a, b, c2, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) {
88837 return false;
88838 }
88839 } else {
88840 h = S6d(a.e.Tg(), b);
88841 d = BD(a.g, 119);
88842 for (f2 = 0; f2 < a.i; ++f2) {
88843 e = d[f2];
88844 if (h.rl(e.ak())) {
88845 if (g ? pb(e, c2) : c2 == null ? e.dd() == null : pb(c2, e.dd())) {
88846 return false;
88847 } else {
88848 BD(Gtd(a, f2, g ? BD(c2, 72) : R6d(b, c2)), 72);
88849 return true;
88850 }
88851 }
88852 }
88853 }
88854 return wtd(a, g ? BD(c2, 72) : R6d(b, c2));
88855 }
88856 function uVb(a) {
88857 var b, c2, d, e, f2, g, h, i3;
88858 if (a.d) {
88859 throw vbb(new Zdb((fdb(LP), Jke + LP.k + Kke)));
88860 }
88861 a.c == (ead(), cad) && tVb(a, aad);
88862 for (c2 = new olb(a.a.a); c2.a < c2.c.c.length; ) {
88863 b = BD(mlb(c2), 189);
88864 b.e = 0;
88865 }
88866 for (g = new olb(a.a.b); g.a < g.c.c.length; ) {
88867 f2 = BD(mlb(g), 81);
88868 f2.o = Qje;
88869 for (e = f2.f.Kc(); e.Ob(); ) {
88870 d = BD(e.Pb(), 81);
88871 ++d.d.e;
88872 }
88873 }
88874 JVb(a);
88875 for (i3 = new olb(a.a.b); i3.a < i3.c.c.length; ) {
88876 h = BD(mlb(i3), 81);
88877 h.k = true;
88878 }
88879 return a;
88880 }
88881 function Ijc(a, b) {
88882 var c2, d, e, f2, g, h, i3, j;
88883 h = new pjc(a);
88884 c2 = new Psb();
88885 Gsb(c2, b, c2.c.b, c2.c);
88886 while (c2.b != 0) {
88887 d = BD(c2.b == 0 ? null : (sCb(c2.b != 0), Nsb(c2, c2.a.a)), 113);
88888 d.d.p = 1;
88889 for (g = new olb(d.e); g.a < g.c.c.length; ) {
88890 e = BD(mlb(g), 409);
88891 kjc(h, e);
88892 j = e.d;
88893 j.d.p == 0 && (Gsb(c2, j, c2.c.b, c2.c), true);
88894 }
88895 for (f2 = new olb(d.b); f2.a < f2.c.c.length; ) {
88896 e = BD(mlb(f2), 409);
88897 kjc(h, e);
88898 i3 = e.c;
88899 i3.d.p == 0 && (Gsb(c2, i3, c2.c.b, c2.c), true);
88900 }
88901 }
88902 return h;
88903 }
88904 function hfd(a) {
88905 var b, c2, d, e, f2;
88906 d = Edb(ED(hkd(a, (Y9c(), G9c))));
88907 if (d == 1) {
88908 return;
88909 }
88910 _kd(a, d * a.g, d * a.f);
88911 c2 = Mq(Rq((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c), new Hfd()));
88912 for (f2 = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.n && (a.n = new cUd(D2, a, 1, 7)), a.n), (!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c), c2]))); Qr(f2); ) {
88913 e = BD(Rr(f2), 470);
88914 e.Gg(d * e.Dg(), d * e.Eg());
88915 e.Fg(d * e.Cg(), d * e.Bg());
88916 b = BD(e.We(r9c), 8);
88917 if (b) {
88918 b.a *= d;
88919 b.b *= d;
88920 }
88921 }
88922 }
88923 function Mac(a, b, c2, d, e) {
88924 var f2, g, h, i3, j, k, l, m;
88925 for (g = new olb(a.b); g.a < g.c.c.length; ) {
88926 f2 = BD(mlb(g), 29);
88927 m = l_b(f2.a);
88928 for (j = m, k = 0, l = j.length; k < l; ++k) {
88929 i3 = j[k];
88930 switch (BD(vNb(i3, (Nyc(), mxc)), 163).g) {
88931 case 1:
88932 Qac(i3);
88933 $_b(i3, b);
88934 Nac(i3, true, d);
88935 break;
88936 case 3:
88937 Rac(i3);
88938 $_b(i3, c2);
88939 Nac(i3, false, e);
88940 }
88941 }
88942 }
88943 h = new Bib(a.b, 0);
88944 while (h.b < h.d.gc()) {
88945 (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29)).a.c.length == 0 && uib(h);
88946 }
88947 }
88948 function d1d(a, b) {
88949 var c2, d, e, f2, g, h, i3;
88950 c2 = b.Hh(a.a);
88951 if (c2) {
88952 i3 = GD(AAd((!c2.b && (c2.b = new sId((jGd(), fGd), x6, c2)), c2.b), Dwe));
88953 if (i3 != null) {
88954 d = new Rkb();
88955 for (f2 = mfb(i3, "\\w"), g = 0, h = f2.length; g < h; ++g) {
88956 e = f2[g];
88957 dfb(e, "##other") ? Ekb(d, "!##" + u1d(a, bKd(b.Hj()))) : dfb(e, "##local") ? (d.c[d.c.length] = null, true) : dfb(e, Bwe) ? Ekb(d, u1d(a, bKd(b.Hj()))) : (d.c[d.c.length] = e, true);
88958 }
88959 return d;
88960 }
88961 }
88962 return mmb(), mmb(), jmb;
88963 }
88964 function kMb(a, b) {
88965 var c2, d, e, f2;
88966 c2 = new pMb();
88967 d = BD(GAb(NAb(new YAb(null, new Kub(a.f, 16)), c2), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
88968 e = d.gc();
88969 d = BD(GAb(NAb(new YAb(null, new Kub(b.f, 16)), c2), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [Eyb, Dyb]))), 21);
88970 f2 = d.gc();
88971 e = e == 1 ? 1 : 0;
88972 f2 = f2 == 1 ? 1 : 0;
88973 if (e < f2) {
88974 return -1;
88975 }
88976 if (e == f2) {
88977 return 0;
88978 }
88979 return 1;
88980 }
88981 function hZb(a) {
88982 var b, c2, d, e, f2, g, h, i3, j, k, l, m;
88983 h = a.i;
88984 e = Ccb(DD(vNb(h, (Nyc(), fxc))));
88985 k = 0;
88986 d = 0;
88987 for (j = new olb(a.g); j.a < j.c.c.length; ) {
88988 i3 = BD(mlb(j), 17);
88989 g = OZb(i3);
88990 f2 = g && e && Ccb(DD(vNb(i3, gxc)));
88991 m = i3.d.i;
88992 g && f2 ? ++d : g && !f2 ? ++k : Q_b(m).e == h ? ++d : ++k;
88993 }
88994 for (c2 = new olb(a.e); c2.a < c2.c.c.length; ) {
88995 b = BD(mlb(c2), 17);
88996 g = OZb(b);
88997 f2 = g && e && Ccb(DD(vNb(b, gxc)));
88998 l = b.c.i;
88999 g && f2 ? ++k : g && !f2 ? ++d : Q_b(l).e == h ? ++k : ++d;
89000 }
89001 return k - d;
89002 }
89003 function ULc(a, b, c2, d) {
89004 this.e = a;
89005 this.k = BD(vNb(a, (wtc(), otc)), 304);
89006 this.g = KC(OQ, kne, 10, b, 0, 1);
89007 this.b = KC(BI, nie, 333, b, 7, 1);
89008 this.a = KC(OQ, kne, 10, b, 0, 1);
89009 this.d = KC(BI, nie, 333, b, 7, 1);
89010 this.j = KC(OQ, kne, 10, b, 0, 1);
89011 this.i = KC(BI, nie, 333, b, 7, 1);
89012 this.p = KC(BI, nie, 333, b, 7, 1);
89013 this.n = KC(wI, nie, 476, b, 8, 1);
89014 Alb(this.n, (Bcb(), false));
89015 this.f = KC(wI, nie, 476, b, 8, 1);
89016 Alb(this.f, true);
89017 this.o = c2;
89018 this.c = d;
89019 }
89020 function X9b(a, b) {
89021 var c2, d, e, f2, g, h;
89022 if (b.dc()) {
89023 return;
89024 }
89025 if (BD(b.Xb(0), 286).d == (Apc(), xpc)) {
89026 O9b(a, b);
89027 } else {
89028 for (d = b.Kc(); d.Ob(); ) {
89029 c2 = BD(d.Pb(), 286);
89030 switch (c2.d.g) {
89031 case 5:
89032 K9b(a, c2, Q9b(a, c2));
89033 break;
89034 case 0:
89035 K9b(a, c2, (g = c2.f - c2.c + 1, h = (g - 1) / 2 | 0, c2.c + h));
89036 break;
89037 case 4:
89038 K9b(a, c2, S9b(a, c2));
89039 break;
89040 case 2:
89041 Y9b(c2);
89042 K9b(a, c2, (f2 = U9b(c2), f2 ? c2.c : c2.f));
89043 break;
89044 case 1:
89045 Y9b(c2);
89046 K9b(a, c2, (e = U9b(c2), e ? c2.f : c2.c));
89047 }
89048 P9b(c2.a);
89049 }
89050 }
89051 }
89052 function C4b(a, b) {
89053 var c2, d, e, f2, g, h, i3;
89054 if (b.e) {
89055 return;
89056 }
89057 b.e = true;
89058 for (d = b.d.a.ec().Kc(); d.Ob(); ) {
89059 c2 = BD(d.Pb(), 17);
89060 if (b.o && b.d.a.gc() <= 1) {
89061 g = b.a.c;
89062 h = b.a.c + b.a.b;
89063 i3 = new f7c(g + (h - g) / 2, b.b);
89064 Dsb(BD(b.d.a.ec().Kc().Pb(), 17).a, i3);
89065 continue;
89066 }
89067 e = BD(Ohb(b.c, c2), 459);
89068 if (e.b || e.c) {
89069 E4b(a, c2, b);
89070 continue;
89071 }
89072 f2 = a.d == (tBc(), sBc) && (e.d || e.e) && K4b(a, b) && b.d.a.gc() <= 1;
89073 f2 ? F4b(c2, b) : D4b(a, c2, b);
89074 }
89075 b.k && reb(b.d, new X4b());
89076 }
89077 function zXc(a, b, c2, d, e, f2) {
89078 var g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
89079 m = f2;
89080 h = (d + e) / 2 + m;
89081 q = c2 * $wnd.Math.cos(h);
89082 r = c2 * $wnd.Math.sin(h);
89083 s = q - b.g / 2;
89084 t4 = r - b.f / 2;
89085 dld(b, s);
89086 eld(b, t4);
89087 l = a.a.jg(b);
89088 p = 2 * $wnd.Math.acos(c2 / c2 + a.c);
89089 if (p < e - d) {
89090 n = p / l;
89091 g = (d + e - p) / 2;
89092 } else {
89093 n = (e - d) / l;
89094 g = d;
89095 }
89096 o2 = gVc(b);
89097 if (a.e) {
89098 a.e.kg(a.d);
89099 a.e.lg(o2);
89100 }
89101 for (j = new olb(o2); j.a < j.c.c.length; ) {
89102 i3 = BD(mlb(j), 33);
89103 k = a.a.jg(i3);
89104 zXc(a, i3, c2 + a.c, g, g + n * k, f2);
89105 g += n * k;
89106 }
89107 }
89108 function jA(a, b, c2) {
89109 var d;
89110 d = c2.q.getMonth();
89111 switch (b) {
89112 case 5:
89113 Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"])[d]);
89114 break;
89115 case 4:
89116 Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje])[d]);
89117 break;
89118 case 3:
89119 Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[d]);
89120 break;
89121 default:
89122 EA(a, d + 1, b);
89123 }
89124 }
89125 function uGb(a, b) {
89126 var c2, d, e, f2, g;
89127 Odd(b, "Network simplex", 1);
89128 if (a.e.a.c.length < 1) {
89129 Qdd(b);
89130 return;
89131 }
89132 for (f2 = new olb(a.e.a); f2.a < f2.c.c.length; ) {
89133 e = BD(mlb(f2), 121);
89134 e.e = 0;
89135 }
89136 g = a.e.a.c.length >= 40;
89137 g && FGb(a);
89138 wGb(a);
89139 vGb(a);
89140 c2 = zGb(a);
89141 d = 0;
89142 while (!!c2 && d < a.f) {
89143 tGb(a, c2, sGb(a, c2));
89144 c2 = zGb(a);
89145 ++d;
89146 }
89147 g && EGb(a);
89148 a.a ? qGb(a, CGb(a)) : CGb(a);
89149 a.b = null;
89150 a.d = null;
89151 a.p = null;
89152 a.c = null;
89153 a.g = null;
89154 a.i = null;
89155 a.n = null;
89156 a.o = null;
89157 Qdd(b);
89158 }
89159 function JQb(a, b, c2, d) {
89160 var e, f2, g, h, i3, j, k, l, m;
89161 i3 = new f7c(c2, d);
89162 c7c(i3, BD(vNb(b, (HSb(), ESb)), 8));
89163 for (m = new olb(b.e); m.a < m.c.c.length; ) {
89164 l = BD(mlb(m), 144);
89165 P6c(l.d, i3);
89166 Ekb(a.e, l);
89167 }
89168 for (h = new olb(b.c); h.a < h.c.c.length; ) {
89169 g = BD(mlb(h), 282);
89170 for (f2 = new olb(g.a); f2.a < f2.c.c.length; ) {
89171 e = BD(mlb(f2), 559);
89172 P6c(e.d, i3);
89173 }
89174 Ekb(a.c, g);
89175 }
89176 for (k = new olb(b.d); k.a < k.c.c.length; ) {
89177 j = BD(mlb(k), 447);
89178 P6c(j.d, i3);
89179 Ekb(a.d, j);
89180 }
89181 }
89182 function _Bc(a, b) {
89183 var c2, d, e, f2, g, h, i3, j;
89184 for (i3 = new olb(b.j); i3.a < i3.c.c.length; ) {
89185 h = BD(mlb(i3), 11);
89186 for (e = new b1b(h.b); llb(e.a) || llb(e.b); ) {
89187 d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
89188 c2 = d.c == h ? d.d : d.c;
89189 f2 = c2.i;
89190 if (b == f2) {
89191 continue;
89192 }
89193 j = BD(vNb(d, (Nyc(), cyc)), 19).a;
89194 j < 0 && (j = 0);
89195 g = f2.p;
89196 if (a.b[g] == 0) {
89197 if (d.d == c2) {
89198 a.a[g] -= j + 1;
89199 a.a[g] <= 0 && a.c[g] > 0 && Dsb(a.f, f2);
89200 } else {
89201 a.c[g] -= j + 1;
89202 a.c[g] <= 0 && a.a[g] > 0 && Dsb(a.e, f2);
89203 }
89204 }
89205 }
89206 }
89207 }
89208 function _Kb(a) {
89209 var b, c2, d, e, f2, g, h, i3, j;
89210 h = new Hxb(BD(Qb(new nLb()), 62));
89211 j = Qje;
89212 for (c2 = new olb(a.d); c2.a < c2.c.c.length; ) {
89213 b = BD(mlb(c2), 222);
89214 j = b.c.c;
89215 while (h.a.c != 0) {
89216 i3 = BD(zjb(Bwb(h.a)), 222);
89217 if (i3.c.c + i3.c.b < j) {
89218 Jwb(h.a, i3) != null;
89219 } else {
89220 break;
89221 }
89222 }
89223 for (g = (e = new Ywb(new cxb(new Gjb(h.a).a).b), new Njb(e)); sib(g.a.a); ) {
89224 f2 = (d = Wwb(g.a), BD(d.cd(), 222));
89225 Dsb(f2.b, b);
89226 Dsb(b.b, f2);
89227 }
89228 Iwb(h.a, b, (Bcb(), zcb)) == null;
89229 }
89230 }
89231 function QEc(a, b, c2) {
89232 var d, e, f2, g, h, i3, j, k, l;
89233 f2 = new Skb(b.c.length);
89234 for (j = new olb(b); j.a < j.c.c.length; ) {
89235 g = BD(mlb(j), 10);
89236 Ekb(f2, a.b[g.c.p][g.p]);
89237 }
89238 LEc(a, f2, c2);
89239 l = null;
89240 while (l = MEc(f2)) {
89241 NEc(a, BD(l.a, 233), BD(l.b, 233), f2);
89242 }
89243 b.c = KC(SI, Uhe, 1, 0, 5, 1);
89244 for (e = new olb(f2); e.a < e.c.c.length; ) {
89245 d = BD(mlb(e), 233);
89246 for (h = d.d, i3 = 0, k = h.length; i3 < k; ++i3) {
89247 g = h[i3];
89248 b.c[b.c.length] = g;
89249 a.a[g.c.p][g.p].a = REc(d.g, d.d[0]).a;
89250 }
89251 }
89252 }
89253 function JRc(a, b) {
89254 var c2, d, e, f2;
89255 if (0 < (JD(a, 14) ? BD(a, 14).gc() : sr(a.Kc()))) {
89256 e = b;
89257 if (1 < e) {
89258 --e;
89259 f2 = new KRc();
89260 for (d = a.Kc(); d.Ob(); ) {
89261 c2 = BD(d.Pb(), 86);
89262 f2 = pl(OC(GC(KI, 1), Uhe, 20, 0, [f2, new ZRc(c2)]));
89263 }
89264 return JRc(f2, e);
89265 }
89266 if (e < 0) {
89267 f2 = new NRc();
89268 for (d = a.Kc(); d.Ob(); ) {
89269 c2 = BD(d.Pb(), 86);
89270 f2 = pl(OC(GC(KI, 1), Uhe, 20, 0, [f2, new ZRc(c2)]));
89271 }
89272 if (0 < (JD(f2, 14) ? BD(f2, 14).gc() : sr(f2.Kc()))) {
89273 return JRc(f2, e);
89274 }
89275 }
89276 }
89277 return BD(pr(a.Kc()), 86);
89278 }
89279 function Idd() {
89280 Idd = ccb;
89281 Bdd = new Jdd("DEFAULT_MINIMUM_SIZE", 0);
89282 Ddd = new Jdd("MINIMUM_SIZE_ACCOUNTS_FOR_PADDING", 1);
89283 Add = new Jdd("COMPUTE_PADDING", 2);
89284 Edd = new Jdd("OUTSIDE_NODE_LABELS_OVERHANG", 3);
89285 Fdd = new Jdd("PORTS_OVERHANG", 4);
89286 Hdd = new Jdd("UNIFORM_PORT_SPACING", 5);
89287 Gdd = new Jdd("SPACE_EFFICIENT_PORT_LABELS", 6);
89288 Cdd = new Jdd("FORCE_TABULAR_NODE_LABELS", 7);
89289 zdd = new Jdd("ASYMMETRICAL", 8);
89290 }
89291 function s6d(a, b) {
89292 var c2, d, e, f2, g, h, i3, j;
89293 if (!b) {
89294 return null;
89295 } else {
89296 c2 = (f2 = b.Tg(), !f2 ? null : bKd(f2).Nh().Jh(f2));
89297 if (c2) {
89298 Xrb(a, b, c2);
89299 e = b.Tg();
89300 for (i3 = 0, j = (e.i == null && TKd(e), e.i).length; i3 < j; ++i3) {
89301 h = (d = (e.i == null && TKd(e), e.i), i3 >= 0 && i3 < d.length ? d[i3] : null);
89302 if (h.Ij() && !h.Jj()) {
89303 if (JD(h, 322)) {
89304 u6d(a, BD(h, 34), b, c2);
89305 } else {
89306 g = BD(h, 18);
89307 (g.Bb & ote) != 0 && w6d(a, g, b, c2);
89308 }
89309 }
89310 }
89311 b.kh() && BD(c2, 49).vh(BD(b, 49).qh());
89312 }
89313 return c2;
89314 }
89315 }
89316 function tGb(a, b, c2) {
89317 var d, e, f2;
89318 if (!b.f) {
89319 throw vbb(new Wdb("Given leave edge is no tree edge."));
89320 }
89321 if (c2.f) {
89322 throw vbb(new Wdb("Given enter edge is a tree edge already."));
89323 }
89324 b.f = false;
89325 Sqb(a.p, b);
89326 c2.f = true;
89327 Qqb(a.p, c2);
89328 d = c2.e.e - c2.d.e - c2.a;
89329 xGb(a, c2.e, b) || (d = -d);
89330 for (f2 = new olb(a.e.a); f2.a < f2.c.c.length; ) {
89331 e = BD(mlb(f2), 121);
89332 xGb(a, e, b) || (e.e += d);
89333 }
89334 a.j = 1;
89335 Blb(a.c);
89336 DGb(a, BD(mlb(new olb(a.e.a)), 121));
89337 rGb(a);
89338 }
89339 function x6b(a, b) {
89340 var c2, d, e, f2, g, h;
89341 h = BD(vNb(b, (Nyc(), Vxc)), 98);
89342 if (!(h == (dcd(), _bd) || h == $bd)) {
89343 return;
89344 }
89345 e = new f7c(b.f.a + b.d.b + b.d.c, b.f.b + b.d.d + b.d.a).b;
89346 for (g = new olb(a.a); g.a < g.c.c.length; ) {
89347 f2 = BD(mlb(g), 10);
89348 if (f2.k != (j0b(), e0b)) {
89349 continue;
89350 }
89351 c2 = BD(vNb(f2, (wtc(), Hsc)), 61);
89352 if (c2 != (Ucd(), zcd) && c2 != Tcd) {
89353 continue;
89354 }
89355 d = Edb(ED(vNb(f2, htc)));
89356 h == _bd && (d *= e);
89357 f2.n.b = d - BD(vNb(f2, Txc), 8).b;
89358 M_b(f2, false, true);
89359 }
89360 }
89361 function YDc(a, b, c2, d) {
89362 var e, f2, g, h, i3, j, k, l, m, n;
89363 bEc(a, b, c2);
89364 f2 = b[c2];
89365 n = d ? (Ucd(), Tcd) : (Ucd(), zcd);
89366 if (ZDc(b.length, c2, d)) {
89367 e = b[d ? c2 - 1 : c2 + 1];
89368 UDc(a, e, d ? (KAc(), IAc) : (KAc(), HAc));
89369 for (i3 = f2, k = 0, m = i3.length; k < m; ++k) {
89370 g = i3[k];
89371 XDc(a, g, n);
89372 }
89373 UDc(a, f2, d ? (KAc(), HAc) : (KAc(), IAc));
89374 for (h = e, j = 0, l = h.length; j < l; ++j) {
89375 g = h[j];
89376 !!g.e || XDc(a, g, Wcd(n));
89377 }
89378 } else {
89379 for (h = f2, j = 0, l = h.length; j < l; ++j) {
89380 g = h[j];
89381 XDc(a, g, n);
89382 }
89383 }
89384 return false;
89385 }
89386 function nFc(a, b, c2, d) {
89387 var e, f2, g, h, i3, j, k;
89388 i3 = V_b(b, c2);
89389 (c2 == (Ucd(), Rcd) || c2 == Tcd) && (i3 = JD(i3, 152) ? km(BD(i3, 152)) : JD(i3, 131) ? BD(i3, 131).a : JD(i3, 54) ? new ov(i3) : new dv(i3));
89390 g = false;
89391 do {
89392 e = false;
89393 for (f2 = 0; f2 < i3.gc() - 1; f2++) {
89394 j = BD(i3.Xb(f2), 11);
89395 h = BD(i3.Xb(f2 + 1), 11);
89396 if (oFc(a, j, h, d)) {
89397 g = true;
89398 cIc(a.a, BD(i3.Xb(f2), 11), BD(i3.Xb(f2 + 1), 11));
89399 k = BD(i3.Xb(f2 + 1), 11);
89400 i3._c(f2 + 1, BD(i3.Xb(f2), 11));
89401 i3._c(f2, k);
89402 e = true;
89403 }
89404 }
89405 } while (e);
89406 return g;
89407 }
89408 function W2d(a, b, c2) {
89409 var d, e, f2, g, h, i3, j, k, l, m, n, o2;
89410 if (oid(a.e)) {
89411 if (b != c2) {
89412 e = BD(a.g, 119);
89413 n = e[c2];
89414 g = n.ak();
89415 if (T6d(a.e, g)) {
89416 o2 = S6d(a.e.Tg(), g);
89417 i3 = -1;
89418 h = -1;
89419 d = 0;
89420 for (j = 0, l = b > c2 ? b : c2; j <= l; ++j) {
89421 if (j == c2) {
89422 h = d++;
89423 } else {
89424 f2 = e[j];
89425 k = o2.rl(f2.ak());
89426 j == b && (i3 = j == l && !k ? d - 1 : d);
89427 k && ++d;
89428 }
89429 }
89430 m = BD(Wxd(a, b, c2), 72);
89431 h != i3 && GLd(a, new ESd(a.e, 7, g, meb(h), n.dd(), i3));
89432 return m;
89433 }
89434 }
89435 } else {
89436 return BD(sud(a, b, c2), 72);
89437 }
89438 return BD(Wxd(a, b, c2), 72);
89439 }
89440 function Qcc(a, b) {
89441 var c2, d, e, f2, g, h, i3;
89442 Odd(b, "Port order processing", 1);
89443 i3 = BD(vNb(a, (Nyc(), _xc)), 421);
89444 for (d = new olb(a.b); d.a < d.c.c.length; ) {
89445 c2 = BD(mlb(d), 29);
89446 for (f2 = new olb(c2.a); f2.a < f2.c.c.length; ) {
89447 e = BD(mlb(f2), 10);
89448 g = BD(vNb(e, Vxc), 98);
89449 h = e.j;
89450 if (g == (dcd(), Zbd) || g == _bd || g == $bd) {
89451 mmb();
89452 Okb(h, Icc);
89453 } else if (g != bcd && g != ccd) {
89454 mmb();
89455 Okb(h, Lcc);
89456 Scc(h);
89457 i3 == (BAc(), AAc) && Okb(h, Kcc);
89458 }
89459 e.i = true;
89460 N_b(e);
89461 }
89462 }
89463 Qdd(b);
89464 }
89465 function vDc(a) {
89466 var b, c2, d, e, f2, g, h, i3;
89467 i3 = new Lqb();
89468 b = new KFb();
89469 for (g = a.Kc(); g.Ob(); ) {
89470 e = BD(g.Pb(), 10);
89471 h = nGb(oGb(new pGb(), e), b);
89472 jrb(i3.f, e, h);
89473 }
89474 for (f2 = a.Kc(); f2.Ob(); ) {
89475 e = BD(f2.Pb(), 10);
89476 for (d = new Sr(ur(U_b(e).a.Kc(), new Sq())); Qr(d); ) {
89477 c2 = BD(Rr(d), 17);
89478 if (OZb(c2)) {
89479 continue;
89480 }
89481 AFb(DFb(CFb(BFb(EFb(new FFb(), $wnd.Math.max(1, BD(vNb(c2, (Nyc(), dyc)), 19).a)), 1), BD(Ohb(i3, c2.c.i), 121)), BD(Ohb(i3, c2.d.i), 121)));
89482 }
89483 }
89484 return b;
89485 }
89486 function tNc() {
89487 tNc = ccb;
89488 oNc = e3c(new j3c(), (qUb(), oUb), (S8b(), k8b));
89489 qNc = e3c(new j3c(), nUb, o8b);
89490 rNc = c3c(e3c(new j3c(), nUb, C8b), pUb, B8b);
89491 nNc = c3c(e3c(e3c(new j3c(), nUb, e8b), oUb, f8b), pUb, g8b);
89492 sNc = b3c(b3c(g3c(c3c(e3c(new j3c(), lUb, M8b), pUb, L8b), oUb), K8b), N8b);
89493 pNc = c3c(new j3c(), pUb, l8b);
89494 lNc = c3c(e3c(e3c(e3c(new j3c(), mUb, r8b), oUb, t8b), oUb, u8b), pUb, s8b);
89495 mNc = c3c(e3c(e3c(new j3c(), oUb, u8b), oUb, _7b), pUb, $7b);
89496 }
89497 function XC(a, b, c2, d, e, f2) {
89498 var g, h, i3, j, k, l, m;
89499 j = $C(b) - $C(a);
89500 g = kD(b, j);
89501 i3 = TC(0, 0, 0);
89502 while (j >= 0) {
89503 h = bD(a, g);
89504 if (h) {
89505 j < 22 ? (i3.l |= 1 << j, void 0) : j < 44 ? (i3.m |= 1 << j - 22, void 0) : (i3.h |= 1 << j - 44, void 0);
89506 if (a.l == 0 && a.m == 0 && a.h == 0) {
89507 break;
89508 }
89509 }
89510 k = g.m;
89511 l = g.h;
89512 m = g.l;
89513 g.h = l >>> 1;
89514 g.m = k >>> 1 | (l & 1) << 21;
89515 g.l = m >>> 1 | (k & 1) << 21;
89516 --j;
89517 }
89518 c2 && ZC(i3);
89519 if (f2) {
89520 if (d) {
89521 QC = hD(a);
89522 e && (QC = nD(QC, (wD(), uD)));
89523 } else {
89524 QC = TC(a.l, a.m, a.h);
89525 }
89526 }
89527 return i3;
89528 }
89529 function TDc(a, b) {
89530 var c2, d, e, f2, g, h, i3, j, k, l;
89531 j = a.e[b.c.p][b.p] + 1;
89532 i3 = b.c.a.c.length + 1;
89533 for (h = new olb(a.a); h.a < h.c.c.length; ) {
89534 g = BD(mlb(h), 11);
89535 l = 0;
89536 f2 = 0;
89537 for (e = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(g), new R0b(g)]))); Qr(e); ) {
89538 d = BD(Rr(e), 11);
89539 if (d.i.c == b.c) {
89540 l += aEc(a, d.i) + 1;
89541 ++f2;
89542 }
89543 }
89544 c2 = l / f2;
89545 k = g.j;
89546 k == (Ucd(), zcd) ? c2 < j ? a.f[g.p] = a.c - c2 : a.f[g.p] = a.b + (i3 - c2) : k == Tcd && (c2 < j ? a.f[g.p] = a.b + c2 : a.f[g.p] = a.c - (i3 - c2));
89547 }
89548 }
89549 function Icb(a, b, c2) {
89550 var d, e, f2, g, h;
89551 if (a == null) {
89552 throw vbb(new Oeb(Xhe));
89553 }
89554 f2 = a.length;
89555 g = f2 > 0 && (BCb(0, a.length), a.charCodeAt(0) == 45 || (BCb(0, a.length), a.charCodeAt(0) == 43)) ? 1 : 0;
89556 for (d = g; d < f2; d++) {
89557 if (Zcb((BCb(d, a.length), a.charCodeAt(d))) == -1) {
89558 throw vbb(new Oeb(Oje + a + '"'));
89559 }
89560 }
89561 h = parseInt(a, 10);
89562 e = h < b;
89563 if (isNaN(h)) {
89564 throw vbb(new Oeb(Oje + a + '"'));
89565 } else if (e || h > c2) {
89566 throw vbb(new Oeb(Oje + a + '"'));
89567 }
89568 return h;
89569 }
89570 function dnc(a) {
89571 var b, c2, d, e, f2, g, h;
89572 g = new Psb();
89573 for (f2 = new olb(a.a); f2.a < f2.c.c.length; ) {
89574 e = BD(mlb(f2), 112);
89575 pOc(e, e.f.c.length);
89576 qOc(e, e.k.c.length);
89577 if (e.i == 0) {
89578 e.o = 0;
89579 Gsb(g, e, g.c.b, g.c);
89580 }
89581 }
89582 while (g.b != 0) {
89583 e = BD(g.b == 0 ? null : (sCb(g.b != 0), Nsb(g, g.a.a)), 112);
89584 d = e.o + 1;
89585 for (c2 = new olb(e.f); c2.a < c2.c.c.length; ) {
89586 b = BD(mlb(c2), 129);
89587 h = b.a;
89588 rOc(h, $wnd.Math.max(h.o, d));
89589 qOc(h, h.i - 1);
89590 h.i == 0 && (Gsb(g, h, g.c.b, g.c), true);
89591 }
89592 }
89593 }
89594 function v2c(a) {
89595 var b, c2, d, e, f2, g, h, i3;
89596 for (g = new olb(a); g.a < g.c.c.length; ) {
89597 f2 = BD(mlb(g), 79);
89598 d = atd(BD(qud((!f2.b && (f2.b = new y5d(z2, f2, 4, 7)), f2.b), 0), 82));
89599 h = d.i;
89600 i3 = d.j;
89601 e = BD(qud((!f2.a && (f2.a = new cUd(A2, f2, 6, 6)), f2.a), 0), 202);
89602 nmd(e, e.j + h, e.k + i3);
89603 gmd(e, e.b + h, e.c + i3);
89604 for (c2 = new Fyd((!e.a && (e.a = new xMd(y2, e, 5)), e.a)); c2.e != c2.i.gc(); ) {
89605 b = BD(Dyd(c2), 469);
89606 ukd(b, b.a + h, b.b + i3);
89607 }
89608 p7c(BD(hkd(f2, (Y9c(), Q8c)), 74), h, i3);
89609 }
89610 }
89611 function fee(a) {
89612 var b;
89613 switch (a) {
89614 case 100:
89615 return kee(nxe, true);
89616 case 68:
89617 return kee(nxe, false);
89618 case 119:
89619 return kee(oxe, true);
89620 case 87:
89621 return kee(oxe, false);
89622 case 115:
89623 return kee(pxe, true);
89624 case 83:
89625 return kee(pxe, false);
89626 case 99:
89627 return kee(qxe, true);
89628 case 67:
89629 return kee(qxe, false);
89630 case 105:
89631 return kee(rxe, true);
89632 case 73:
89633 return kee(rxe, false);
89634 default:
89635 throw vbb(new hz((b = a, mxe + b.toString(16))));
89636 }
89637 }
89638 function $Xb(a) {
89639 var b, c2, d, e, f2;
89640 e = BD(Ikb(a.a, 0), 10);
89641 b = new b0b(a);
89642 Ekb(a.a, b);
89643 b.o.a = $wnd.Math.max(1, e.o.a);
89644 b.o.b = $wnd.Math.max(1, e.o.b);
89645 b.n.a = e.n.a;
89646 b.n.b = e.n.b;
89647 switch (BD(vNb(e, (wtc(), Hsc)), 61).g) {
89648 case 4:
89649 b.n.a += 2;
89650 break;
89651 case 1:
89652 b.n.b += 2;
89653 break;
89654 case 2:
89655 b.n.a -= 2;
89656 break;
89657 case 3:
89658 b.n.b -= 2;
89659 }
89660 d = new H0b();
89661 F0b(d, b);
89662 c2 = new UZb();
89663 f2 = BD(Ikb(e.j, 0), 11);
89664 QZb(c2, f2);
89665 RZb(c2, d);
89666 P6c(X6c(d.n), f2.n);
89667 P6c(X6c(d.a), f2.a);
89668 return b;
89669 }
89670 function Fac(a, b, c2, d, e) {
89671 if (c2 && (!d || (a.c - a.b & a.a.length - 1) > 1) && b == 1 && BD(a.a[a.b], 10).k == (j0b(), f0b)) {
89672 zac(BD(a.a[a.b], 10), (rbd(), nbd));
89673 } else if (d && (!c2 || (a.c - a.b & a.a.length - 1) > 1) && b == 1 && BD(a.a[a.c - 1 & a.a.length - 1], 10).k == (j0b(), f0b)) {
89674 zac(BD(a.a[a.c - 1 & a.a.length - 1], 10), (rbd(), obd));
89675 } else if ((a.c - a.b & a.a.length - 1) == 2) {
89676 zac(BD(bkb(a), 10), (rbd(), nbd));
89677 zac(BD(bkb(a), 10), obd);
89678 } else {
89679 wac(a, e);
89680 }
89681 Yjb(a);
89682 }
89683 function pRc(a, b, c2) {
89684 var d, e, f2, g, h;
89685 f2 = 0;
89686 for (e = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); e.e != e.i.gc(); ) {
89687 d = BD(Dyd(e), 33);
89688 g = "";
89689 (!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n).i == 0 || (g = BD(qud((!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n), 0), 137).a);
89690 h = new XRc(f2++, b, g);
89691 tNb(h, d);
89692 yNb(h, (mTc(), dTc), d);
89693 h.e.b = d.j + d.f / 2;
89694 h.f.a = $wnd.Math.max(d.g, 1);
89695 h.e.a = d.i + d.g / 2;
89696 h.f.b = $wnd.Math.max(d.f, 1);
89697 Dsb(b.b, h);
89698 jrb(c2.f, d, h);
89699 }
89700 }
89701 function B2b(a) {
89702 var b, c2, d, e, f2;
89703 d = BD(vNb(a, (wtc(), $sc)), 33);
89704 f2 = BD(hkd(d, (Nyc(), Fxc)), 174).Hc((tdd(), sdd));
89705 if (!a.e) {
89706 e = BD(vNb(a, Ksc), 21);
89707 b = new f7c(a.f.a + a.d.b + a.d.c, a.f.b + a.d.d + a.d.a);
89708 if (e.Hc((Orc(), Hrc))) {
89709 jkd(d, Vxc, (dcd(), $bd));
89710 Afd(d, b.a, b.b, false, true);
89711 } else {
89712 Ccb(DD(hkd(d, Gxc))) || Afd(d, b.a, b.b, true, true);
89713 }
89714 }
89715 f2 ? jkd(d, Fxc, pqb(sdd)) : jkd(d, Fxc, (c2 = BD(gdb(I1), 9), new xqb(c2, BD(_Bb(c2, c2.length), 9), 0)));
89716 }
89717 function tA(a, b, c2) {
89718 var d, e, f2, g;
89719 if (b[0] >= a.length) {
89720 c2.o = 0;
89721 return true;
89722 }
89723 switch (bfb(a, b[0])) {
89724 case 43:
89725 e = 1;
89726 break;
89727 case 45:
89728 e = -1;
89729 break;
89730 default:
89731 c2.o = 0;
89732 return true;
89733 }
89734 ++b[0];
89735 f2 = b[0];
89736 g = rA(a, b);
89737 if (g == 0 && b[0] == f2) {
89738 return false;
89739 }
89740 if (b[0] < a.length && bfb(a, b[0]) == 58) {
89741 d = g * 60;
89742 ++b[0];
89743 f2 = b[0];
89744 g = rA(a, b);
89745 if (g == 0 && b[0] == f2) {
89746 return false;
89747 }
89748 d += g;
89749 } else {
89750 d = g;
89751 d < 24 && b[0] - f2 <= 2 ? d *= 60 : d = d % 100 + (d / 100 | 0) * 60;
89752 }
89753 d *= e;
89754 c2.o = -d;
89755 return true;
89756 }
89757 function Hjc(a) {
89758 var b, c2, d, e, f2, g, h, i3, j;
89759 g = new Rkb();
89760 for (d = new Sr(ur(U_b(a.b).a.Kc(), new Sq())); Qr(d); ) {
89761 c2 = BD(Rr(d), 17);
89762 OZb(c2) && Ekb(g, new Gjc(c2, Jjc(a, c2.c), Jjc(a, c2.d)));
89763 }
89764 for (j = (f2 = new $ib(a.e).a.vc().Kc(), new djb(f2)); j.a.Ob(); ) {
89765 h = (b = BD(j.a.Pb(), 42), BD(b.dd(), 113));
89766 h.d.p = 0;
89767 }
89768 for (i3 = (e = new $ib(a.e).a.vc().Kc(), new djb(e)); i3.a.Ob(); ) {
89769 h = (b = BD(i3.a.Pb(), 42), BD(b.dd(), 113));
89770 h.d.p == 0 && Ekb(a.d, Ijc(a, h));
89771 }
89772 }
89773 function W1b(a) {
89774 var b, c2, d, e, f2, g, h;
89775 f2 = mpd(a);
89776 for (e = new Fyd((!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e)); e.e != e.i.gc(); ) {
89777 d = BD(Dyd(e), 79);
89778 h = atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82));
89779 if (!ntd(h, f2)) {
89780 return true;
89781 }
89782 }
89783 for (c2 = new Fyd((!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d)); c2.e != c2.i.gc(); ) {
89784 b = BD(Dyd(c2), 79);
89785 g = atd(BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82));
89786 if (!ntd(g, f2)) {
89787 return true;
89788 }
89789 }
89790 return false;
89791 }
89792 function Dmc(a) {
89793 var b, c2, d, e, f2, g, h, i3;
89794 i3 = new s7c();
89795 b = Jsb(a, 0);
89796 h = null;
89797 c2 = BD(Xsb(b), 8);
89798 e = BD(Xsb(b), 8);
89799 while (b.b != b.d.c) {
89800 h = c2;
89801 c2 = e;
89802 e = BD(Xsb(b), 8);
89803 f2 = Emc(c7c(new f7c(h.a, h.b), c2));
89804 g = Emc(c7c(new f7c(e.a, e.b), c2));
89805 d = 10;
89806 d = $wnd.Math.min(d, $wnd.Math.abs(f2.a + f2.b) / 2);
89807 d = $wnd.Math.min(d, $wnd.Math.abs(g.a + g.b) / 2);
89808 f2.a = Eeb(f2.a) * d;
89809 f2.b = Eeb(f2.b) * d;
89810 g.a = Eeb(g.a) * d;
89811 g.b = Eeb(g.b) * d;
89812 Dsb(i3, P6c(f2, c2));
89813 Dsb(i3, P6c(g, c2));
89814 }
89815 return i3;
89816 }
89817 function _hd(a, b, c2, d) {
89818 var e, f2, g, h, i3;
89819 g = a.eh();
89820 i3 = a.Zg();
89821 e = null;
89822 if (i3) {
89823 if (!!b && (Nid(a, b, c2).Bb & Tje) == 0) {
89824 d = Txd(i3.Vk(), a, d);
89825 a.uh(null);
89826 e = b.fh();
89827 } else {
89828 i3 = null;
89829 }
89830 } else {
89831 !!g && (i3 = g.fh());
89832 !!b && (e = b.fh());
89833 }
89834 i3 != e && !!i3 && i3.Zk(a);
89835 h = a.Vg();
89836 a.Rg(b, c2);
89837 i3 != e && !!e && e.Yk(a);
89838 if (a.Lg() && a.Mg()) {
89839 if (!!g && h >= 0 && h != c2) {
89840 f2 = new nSd(a, 1, h, g, null);
89841 !d ? d = f2 : d.Ei(f2);
89842 }
89843 if (c2 >= 0) {
89844 f2 = new nSd(a, 1, c2, h == c2 ? g : null, b);
89845 !d ? d = f2 : d.Ei(f2);
89846 }
89847 }
89848 return d;
89849 }
89850 function LEd(a) {
89851 var b, c2, d;
89852 if (a.b == null) {
89853 d = new Hfb();
89854 if (a.i != null) {
89855 Efb(d, a.i);
89856 d.a += ":";
89857 }
89858 if ((a.f & 256) != 0) {
89859 if ((a.f & 256) != 0 && a.a != null) {
89860 YEd(a.i) || (d.a += "//", d);
89861 Efb(d, a.a);
89862 }
89863 if (a.d != null) {
89864 d.a += "/";
89865 Efb(d, a.d);
89866 }
89867 (a.f & 16) != 0 && (d.a += "/", d);
89868 for (b = 0, c2 = a.j.length; b < c2; b++) {
89869 b != 0 && (d.a += "/", d);
89870 Efb(d, a.j[b]);
89871 }
89872 if (a.g != null) {
89873 d.a += "?";
89874 Efb(d, a.g);
89875 }
89876 } else {
89877 Efb(d, a.a);
89878 }
89879 if (a.e != null) {
89880 d.a += "#";
89881 Efb(d, a.e);
89882 }
89883 a.b = d.a;
89884 }
89885 return a.b;
89886 }
89887 function E5b(a, b) {
89888 var c2, d, e, f2, g, h;
89889 for (e = new olb(b.a); e.a < e.c.c.length; ) {
89890 d = BD(mlb(e), 10);
89891 f2 = vNb(d, (wtc(), $sc));
89892 if (JD(f2, 11)) {
89893 g = BD(f2, 11);
89894 h = b_b(b, d, g.o.a, g.o.b);
89895 g.n.a = h.a;
89896 g.n.b = h.b;
89897 G0b(g, BD(vNb(d, Hsc), 61));
89898 }
89899 }
89900 c2 = new f7c(b.f.a + b.d.b + b.d.c, b.f.b + b.d.d + b.d.a);
89901 if (BD(vNb(b, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) {
89902 yNb(a, (Nyc(), Vxc), (dcd(), $bd));
89903 BD(vNb(Q_b(a), Ksc), 21).Fc(Krc);
89904 j_b(a, c2, false);
89905 } else {
89906 j_b(a, c2, true);
89907 }
89908 }
89909 function YFc(a, b, c2) {
89910 var d, e, f2, g, h, i3;
89911 Odd(c2, "Minimize Crossings " + a.a, 1);
89912 d = b.b.c.length == 0 || !WAb(JAb(new YAb(null, new Kub(b.b, 16)), new Xxb(new xGc()))).sd((EAb(), DAb));
89913 i3 = b.b.c.length == 1 && BD(Ikb(b.b, 0), 29).a.c.length == 1;
89914 f2 = PD(vNb(b, (Nyc(), axc))) === PD((hbd(), ebd));
89915 if (d || i3 && !f2) {
89916 Qdd(c2);
89917 return;
89918 }
89919 e = TFc(a, b);
89920 g = (h = BD(Ut(e, 0), 214), h.c.Rf() ? h.c.Lf() ? new kGc(a) : new mGc(a) : new iGc(a));
89921 UFc(e, g);
89922 eGc(a);
89923 Qdd(c2);
89924 }
89925 function so(a, b, c2, d) {
89926 var e, f2, g, h, i3;
89927 i3 = Tbb(Ibb(Eie, keb(Tbb(Ibb(b == null ? 0 : tb(b), Fie)), 15)));
89928 e = Tbb(Ibb(Eie, keb(Tbb(Ibb(c2 == null ? 0 : tb(c2), Fie)), 15)));
89929 h = vo(a, b, i3);
89930 g = uo(a, c2, e);
89931 if (!!h && e == h.a && Hb(c2, h.g)) {
89932 return c2;
89933 } else if (!!g && !d) {
89934 throw vbb(new Wdb("key already present: " + c2));
89935 }
89936 !!h && mo(a, h);
89937 !!g && mo(a, g);
89938 f2 = new $o(c2, e, b, i3);
89939 po(a, f2, g);
89940 if (g) {
89941 g.e = null;
89942 g.c = null;
89943 }
89944 if (h) {
89945 h.e = null;
89946 h.c = null;
89947 }
89948 to(a);
89949 return !h ? null : h.g;
89950 }
89951 function Lhb(a, b, c2) {
89952 var d, e, f2, g, h;
89953 for (f2 = 0; f2 < b; f2++) {
89954 d = 0;
89955 for (h = f2 + 1; h < b; h++) {
89956 d = wbb(wbb(Ibb(xbb(a[f2], Yje), xbb(a[h], Yje)), xbb(c2[f2 + h], Yje)), xbb(Tbb(d), Yje));
89957 c2[f2 + h] = Tbb(d);
89958 d = Pbb(d, 32);
89959 }
89960 c2[f2 + b] = Tbb(d);
89961 }
89962 khb(c2, c2, b << 1);
89963 d = 0;
89964 for (e = 0, g = 0; e < b; ++e, g++) {
89965 d = wbb(wbb(Ibb(xbb(a[e], Yje), xbb(a[e], Yje)), xbb(c2[g], Yje)), xbb(Tbb(d), Yje));
89966 c2[g] = Tbb(d);
89967 d = Pbb(d, 32);
89968 ++g;
89969 d = wbb(d, xbb(c2[g], Yje));
89970 c2[g] = Tbb(d);
89971 d = Pbb(d, 32);
89972 }
89973 return c2;
89974 }
89975 function ZJc(a, b, c2) {
89976 var d, e, f2, g, h, i3, j, k;
89977 if (Qq(b)) {
89978 return;
89979 }
89980 i3 = Edb(ED(pBc(c2.c, (Nyc(), zyc))));
89981 j = BD(pBc(c2.c, yyc), 142);
89982 !j && (j = new H_b());
89983 d = c2.a;
89984 e = null;
89985 for (h = b.Kc(); h.Ob(); ) {
89986 g = BD(h.Pb(), 11);
89987 k = 0;
89988 if (!e) {
89989 k = j.d;
89990 } else {
89991 k = i3;
89992 k += e.o.b;
89993 }
89994 f2 = nGb(oGb(new pGb(), g), a.f);
89995 Rhb(a.k, g, f2);
89996 AFb(DFb(CFb(BFb(EFb(new FFb(), 0), QD($wnd.Math.ceil(k))), d), f2));
89997 e = g;
89998 d = f2;
89999 }
90000 AFb(DFb(CFb(BFb(EFb(new FFb(), 0), QD($wnd.Math.ceil(j.a + e.o.b))), d), c2.d));
90001 }
90002 function uZc(a, b, c2, d, e, f2, g, h) {
90003 var i3, j, k, l, m, n;
90004 n = false;
90005 m = f2 - c2.s;
90006 k = c2.t - b.f + (j = MZc(c2, m, false), j.a);
90007 if (d.g + h > m) {
90008 return false;
90009 }
90010 l = (i3 = MZc(d, m, false), i3.a);
90011 if (k + h + l <= b.b) {
90012 KZc(c2, f2 - c2.s);
90013 c2.c = true;
90014 KZc(d, f2 - c2.s);
90015 OZc(d, c2.s, c2.t + c2.d + h);
90016 d.k = true;
90017 WZc(c2.q, d);
90018 n = true;
90019 if (e) {
90020 s$c(b, d);
90021 d.j = b;
90022 if (a.c.length > g) {
90023 v$c((tCb(g, a.c.length), BD(a.c[g], 200)), d);
90024 (tCb(g, a.c.length), BD(a.c[g], 200)).a.c.length == 0 && Kkb(a, g);
90025 }
90026 }
90027 }
90028 return n;
90029 }
90030 function kcc(a, b) {
90031 var c2, d, e, f2, g, h;
90032 Odd(b, "Partition midprocessing", 1);
90033 e = new Hp();
90034 MAb(JAb(new YAb(null, new Kub(a.a, 16)), new occ()), new qcc(e));
90035 if (e.d == 0) {
90036 return;
90037 }
90038 h = BD(GAb(UAb((f2 = e.i, new YAb(null, (!f2 ? e.i = new zf(e, e.c) : f2).Nc()))), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
90039 d = h.Kc();
90040 c2 = BD(d.Pb(), 19);
90041 while (d.Ob()) {
90042 g = BD(d.Pb(), 19);
90043 jcc(BD(Qc(e, c2), 21), BD(Qc(e, g), 21));
90044 c2 = g;
90045 }
90046 Qdd(b);
90047 }
90048 function DYb(a, b, c2) {
90049 var d, e, f2, g, h, i3, j, k;
90050 if (b.p == 0) {
90051 b.p = 1;
90052 g = c2;
90053 if (!g) {
90054 e = new Rkb();
90055 f2 = (d = BD(gdb(F1), 9), new xqb(d, BD(_Bb(d, d.length), 9), 0));
90056 g = new vgd(e, f2);
90057 }
90058 BD(g.a, 15).Fc(b);
90059 b.k == (j0b(), e0b) && BD(g.b, 21).Fc(BD(vNb(b, (wtc(), Hsc)), 61));
90060 for (i3 = new olb(b.j); i3.a < i3.c.c.length; ) {
90061 h = BD(mlb(i3), 11);
90062 for (k = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(h), new R0b(h)]))); Qr(k); ) {
90063 j = BD(Rr(k), 11);
90064 DYb(a, j.i, g);
90065 }
90066 }
90067 return g;
90068 }
90069 return null;
90070 }
90071 function Dmd(a, b) {
90072 var c2, d, e, f2, g;
90073 if (a.Ab) {
90074 if (a.Ab) {
90075 g = a.Ab.i;
90076 if (g > 0) {
90077 e = BD(a.Ab.g, 1934);
90078 if (b == null) {
90079 for (f2 = 0; f2 < g; ++f2) {
90080 c2 = e[f2];
90081 if (c2.d == null) {
90082 return c2;
90083 }
90084 }
90085 } else {
90086 for (f2 = 0; f2 < g; ++f2) {
90087 c2 = e[f2];
90088 if (dfb(b, c2.d)) {
90089 return c2;
90090 }
90091 }
90092 }
90093 }
90094 } else {
90095 if (b == null) {
90096 for (d = new Fyd(a.Ab); d.e != d.i.gc(); ) {
90097 c2 = BD(Dyd(d), 590);
90098 if (c2.d == null) {
90099 return c2;
90100 }
90101 }
90102 } else {
90103 for (d = new Fyd(a.Ab); d.e != d.i.gc(); ) {
90104 c2 = BD(Dyd(d), 590);
90105 if (dfb(b, c2.d)) {
90106 return c2;
90107 }
90108 }
90109 }
90110 }
90111 }
90112 return null;
90113 }
90114 function gRc(a, b) {
90115 var c2, d, e, f2, g, h, i3, j;
90116 j = DD(vNb(b, (JTc(), GTc)));
90117 if (j == null || (uCb(j), j)) {
90118 dRc(a, b);
90119 e = new Rkb();
90120 for (i3 = Jsb(b.b, 0); i3.b != i3.d.c; ) {
90121 g = BD(Xsb(i3), 86);
90122 c2 = cRc(a, g, null);
90123 if (c2) {
90124 tNb(c2, b);
90125 e.c[e.c.length] = c2;
90126 }
90127 }
90128 a.a = null;
90129 a.b = null;
90130 if (e.c.length > 1) {
90131 for (d = new olb(e); d.a < d.c.c.length; ) {
90132 c2 = BD(mlb(d), 135);
90133 f2 = 0;
90134 for (h = Jsb(c2.b, 0); h.b != h.d.c; ) {
90135 g = BD(Xsb(h), 86);
90136 g.g = f2++;
90137 }
90138 }
90139 }
90140 return e;
90141 }
90142 return Ou(OC(GC(n$, 1), fme, 135, 0, [b]));
90143 }
90144 function rqd(a, b, c2, d, e) {
90145 var f2, g, h, i3, j, k, l, m, n, p, q, r, s, t4, u2, v;
90146 n = Sqd(a, etd(b), e);
90147 jmd(n, _pd(e, Vte));
90148 o = null;
90149 p = e;
90150 q = $pd(p, Yte);
90151 r = new urd(n);
90152 wqd(r.a, q);
90153 s = $pd(p, "endPoint");
90154 t4 = new yrd(n);
90155 yqd(t4.a, s);
90156 u2 = Ypd(p, Ote);
90157 v = new Brd(n);
90158 zqd(v.a, u2);
90159 l = _pd(e, Qte);
90160 f2 = new qrd(a, n);
90161 sqd(f2.a, f2.b, l);
90162 m = _pd(e, Pte);
90163 g = new rrd(a, n);
90164 tqd(g.a, g.b, m);
90165 j = Ypd(e, Ste);
90166 h = new srd(c2, n);
90167 uqd(h.b, h.a, j);
90168 k = Ypd(e, Rte);
90169 i3 = new trd(d, n);
90170 vqd(i3.b, i3.a, k);
90171 }
90172 function i_b(a, b, c2) {
90173 var d, e, f2, g, h;
90174 h = null;
90175 switch (b.g) {
90176 case 1:
90177 for (e = new olb(a.j); e.a < e.c.c.length; ) {
90178 d = BD(mlb(e), 11);
90179 if (Ccb(DD(vNb(d, (wtc(), Msc))))) {
90180 return d;
90181 }
90182 }
90183 h = new H0b();
90184 yNb(h, (wtc(), Msc), (Bcb(), true));
90185 break;
90186 case 2:
90187 for (g = new olb(a.j); g.a < g.c.c.length; ) {
90188 f2 = BD(mlb(g), 11);
90189 if (Ccb(DD(vNb(f2, (wtc(), etc))))) {
90190 return f2;
90191 }
90192 }
90193 h = new H0b();
90194 yNb(h, (wtc(), etc), (Bcb(), true));
90195 }
90196 if (h) {
90197 F0b(h, a);
90198 G0b(h, c2);
90199 X$b(h.n, a.o, c2);
90200 }
90201 return h;
90202 }
90203 function O3b(a, b) {
90204 var c2, d, e, f2, g, h;
90205 h = -1;
90206 g = new Psb();
90207 for (d = new b1b(a.b); llb(d.a) || llb(d.b); ) {
90208 c2 = BD(llb(d.a) ? mlb(d.a) : mlb(d.b), 17);
90209 h = $wnd.Math.max(h, Edb(ED(vNb(c2, (Nyc(), Zwc)))));
90210 c2.c == a ? MAb(JAb(new YAb(null, new Kub(c2.b, 16)), new U3b()), new W3b(g)) : MAb(JAb(new YAb(null, new Kub(c2.b, 16)), new Y3b()), new $3b(g));
90211 for (f2 = Jsb(g, 0); f2.b != f2.d.c; ) {
90212 e = BD(Xsb(f2), 70);
90213 wNb(e, (wtc(), Dsc)) || yNb(e, Dsc, c2);
90214 }
90215 Gkb(b, g);
90216 Osb(g);
90217 }
90218 return h;
90219 }
90220 function _bc(a, b, c2, d, e) {
90221 var f2, g, h, i3;
90222 f2 = new b0b(a);
90223 __b(f2, (j0b(), i0b));
90224 yNb(f2, (Nyc(), Vxc), (dcd(), $bd));
90225 yNb(f2, (wtc(), $sc), b.c.i);
90226 g = new H0b();
90227 yNb(g, $sc, b.c);
90228 G0b(g, e);
90229 F0b(g, f2);
90230 yNb(b.c, gtc, f2);
90231 h = new b0b(a);
90232 __b(h, i0b);
90233 yNb(h, Vxc, $bd);
90234 yNb(h, $sc, b.d.i);
90235 i3 = new H0b();
90236 yNb(i3, $sc, b.d);
90237 G0b(i3, e);
90238 F0b(i3, h);
90239 yNb(b.d, gtc, h);
90240 QZb(b, g);
90241 RZb(b, i3);
90242 wCb(0, c2.c.length);
90243 aCb(c2.c, 0, f2);
90244 d.c[d.c.length] = h;
90245 yNb(f2, ysc, meb(1));
90246 yNb(h, ysc, meb(1));
90247 }
90248 function BPc(a, b, c2, d, e) {
90249 var f2, g, h, i3, j;
90250 h = e ? d.b : d.a;
90251 if (Rqb(a.a, d)) {
90252 return;
90253 }
90254 j = h > c2.s && h < c2.c;
90255 i3 = false;
90256 if (c2.e.b != 0 && c2.j.b != 0) {
90257 i3 = i3 | ($wnd.Math.abs(h - Edb(ED(Hsb(c2.e)))) < qme && $wnd.Math.abs(h - Edb(ED(Hsb(c2.j)))) < qme);
90258 i3 = i3 | ($wnd.Math.abs(h - Edb(ED(Isb(c2.e)))) < qme && $wnd.Math.abs(h - Edb(ED(Isb(c2.j)))) < qme);
90259 }
90260 if (j || i3) {
90261 g = BD(vNb(b, (Nyc(), jxc)), 74);
90262 if (!g) {
90263 g = new s7c();
90264 yNb(b, jxc, g);
90265 }
90266 f2 = new g7c(d);
90267 Gsb(g, f2, g.c.b, g.c);
90268 Qqb(a.a, f2);
90269 }
90270 }
90271 function gNb(a, b, c2, d) {
90272 var e, f2, g, h, i3, j, k;
90273 if (fNb(a, b, c2, d)) {
90274 return true;
90275 } else {
90276 for (g = new olb(b.f); g.a < g.c.c.length; ) {
90277 f2 = BD(mlb(g), 324);
90278 h = false;
90279 i3 = a.j - b.j + c2;
90280 j = i3 + b.o;
90281 k = a.k - b.k + d;
90282 e = k + b.p;
90283 switch (f2.a.g) {
90284 case 0:
90285 h = oNb(a, i3 + f2.b.a, 0, i3 + f2.c.a, k - 1);
90286 break;
90287 case 1:
90288 h = oNb(a, j, k + f2.b.a, a.o - 1, k + f2.c.a);
90289 break;
90290 case 2:
90291 h = oNb(a, i3 + f2.b.a, e, i3 + f2.c.a, a.p - 1);
90292 break;
90293 default:
90294 h = oNb(a, 0, k + f2.b.a, i3 - 1, k + f2.c.a);
90295 }
90296 if (h) {
90297 return true;
90298 }
90299 }
90300 }
90301 return false;
90302 }
90303 function LMc(a, b) {
90304 var c2, d, e, f2, g, h, i3, j, k;
90305 for (g = new olb(b.b); g.a < g.c.c.length; ) {
90306 f2 = BD(mlb(g), 29);
90307 for (j = new olb(f2.a); j.a < j.c.c.length; ) {
90308 i3 = BD(mlb(j), 10);
90309 k = new Rkb();
90310 h = 0;
90311 for (d = new Sr(ur(R_b(i3).a.Kc(), new Sq())); Qr(d); ) {
90312 c2 = BD(Rr(d), 17);
90313 if (OZb(c2) || !OZb(c2) && c2.c.i.c == c2.d.i.c) {
90314 continue;
90315 }
90316 e = BD(vNb(c2, (Nyc(), eyc)), 19).a;
90317 if (e > h) {
90318 h = e;
90319 k.c = KC(SI, Uhe, 1, 0, 5, 1);
90320 }
90321 e == h && Ekb(k, new vgd(c2.c.i, c2));
90322 }
90323 mmb();
90324 Okb(k, a.c);
90325 Dkb(a.b, i3.p, k);
90326 }
90327 }
90328 }
90329 function MMc(a, b) {
90330 var c2, d, e, f2, g, h, i3, j, k;
90331 for (g = new olb(b.b); g.a < g.c.c.length; ) {
90332 f2 = BD(mlb(g), 29);
90333 for (j = new olb(f2.a); j.a < j.c.c.length; ) {
90334 i3 = BD(mlb(j), 10);
90335 k = new Rkb();
90336 h = 0;
90337 for (d = new Sr(ur(U_b(i3).a.Kc(), new Sq())); Qr(d); ) {
90338 c2 = BD(Rr(d), 17);
90339 if (OZb(c2) || !OZb(c2) && c2.c.i.c == c2.d.i.c) {
90340 continue;
90341 }
90342 e = BD(vNb(c2, (Nyc(), eyc)), 19).a;
90343 if (e > h) {
90344 h = e;
90345 k.c = KC(SI, Uhe, 1, 0, 5, 1);
90346 }
90347 e == h && Ekb(k, new vgd(c2.d.i, c2));
90348 }
90349 mmb();
90350 Okb(k, a.c);
90351 Dkb(a.f, i3.p, k);
90352 }
90353 }
90354 }
90355 function Y7c(a) {
90356 r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), qse), "ELK Box"), "Algorithm for packing of unconnected boxes, i.e. graphs without edges."), new _7c())));
90357 p4c(a, qse, ame, U7c);
90358 p4c(a, qse, wme, 15);
90359 p4c(a, qse, vme, meb(0));
90360 p4c(a, qse, Jre, Ksd(O7c));
90361 p4c(a, qse, Fme, Ksd(Q7c));
90362 p4c(a, qse, Eme, Ksd(S7c));
90363 p4c(a, qse, _le, pse);
90364 p4c(a, qse, Ame, Ksd(P7c));
90365 p4c(a, qse, Tme, Ksd(R7c));
90366 p4c(a, qse, rse, Ksd(M7c));
90367 p4c(a, qse, lqe, Ksd(N7c));
90368 }
90369 function W$b(a, b) {
90370 var c2, d, e, f2, g, h, i3, j, k;
90371 e = a.i;
90372 g = e.o.a;
90373 f2 = e.o.b;
90374 if (g <= 0 && f2 <= 0) {
90375 return Ucd(), Scd;
90376 }
90377 j = a.n.a;
90378 k = a.n.b;
90379 h = a.o.a;
90380 c2 = a.o.b;
90381 switch (b.g) {
90382 case 2:
90383 case 1:
90384 if (j < 0) {
90385 return Ucd(), Tcd;
90386 } else if (j + h > g) {
90387 return Ucd(), zcd;
90388 }
90389 break;
90390 case 4:
90391 case 3:
90392 if (k < 0) {
90393 return Ucd(), Acd;
90394 } else if (k + c2 > f2) {
90395 return Ucd(), Rcd;
90396 }
90397 }
90398 i3 = (j + h / 2) / g;
90399 d = (k + c2 / 2) / f2;
90400 return i3 + d <= 1 && i3 - d <= 0 ? (Ucd(), Tcd) : i3 + d >= 1 && i3 - d >= 0 ? (Ucd(), zcd) : d < 0.5 ? (Ucd(), Acd) : (Ucd(), Rcd);
90401 }
90402 function pJc(a, b) {
90403 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
90404 c2 = false;
90405 k = Edb(ED(vNb(b, (Nyc(), vyc))));
90406 o2 = Qie * k;
90407 for (e = new olb(b.b); e.a < e.c.c.length; ) {
90408 d = BD(mlb(e), 29);
90409 j = new olb(d.a);
90410 f2 = BD(mlb(j), 10);
90411 l = xJc(a.a[f2.p]);
90412 while (j.a < j.c.c.length) {
90413 h = BD(mlb(j), 10);
90414 m = xJc(a.a[h.p]);
90415 if (l != m) {
90416 n = jBc(a.b, f2, h);
90417 g = f2.n.b + f2.o.b + f2.d.a + l.a + n;
90418 i3 = h.n.b - h.d.d + m.a;
90419 if (g > i3 + o2) {
90420 p = l.g + m.g;
90421 m.a = (m.g * m.a + l.g * l.a) / p;
90422 m.g = p;
90423 l.f = m;
90424 c2 = true;
90425 }
90426 }
90427 f2 = h;
90428 l = m;
90429 }
90430 }
90431 return c2;
90432 }
90433 function VGb(a, b, c2, d, e, f2, g) {
90434 var h, i3, j, k, l, m;
90435 m = new I6c();
90436 for (j = b.Kc(); j.Ob(); ) {
90437 h = BD(j.Pb(), 839);
90438 for (l = new olb(h.wf()); l.a < l.c.c.length; ) {
90439 k = BD(mlb(l), 181);
90440 if (PD(k.We((Y9c(), C8c))) === PD((qad(), pad2))) {
90441 SGb(m, k, false, d, e, f2, g);
90442 H6c(a, m);
90443 }
90444 }
90445 }
90446 for (i3 = c2.Kc(); i3.Ob(); ) {
90447 h = BD(i3.Pb(), 839);
90448 for (l = new olb(h.wf()); l.a < l.c.c.length; ) {
90449 k = BD(mlb(l), 181);
90450 if (PD(k.We((Y9c(), C8c))) === PD((qad(), oad))) {
90451 SGb(m, k, true, d, e, f2, g);
90452 H6c(a, m);
90453 }
90454 }
90455 }
90456 }
90457 function oRc(a, b, c2) {
90458 var d, e, f2, g, h, i3, j;
90459 for (g = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); g.e != g.i.gc(); ) {
90460 f2 = BD(Dyd(g), 33);
90461 for (e = new Sr(ur(_sd(f2).a.Kc(), new Sq())); Qr(e); ) {
90462 d = BD(Rr(e), 79);
90463 if (!Pld(d) && !Pld(d) && !Qld(d)) {
90464 i3 = BD(Wd(irb(c2.f, f2)), 86);
90465 j = BD(Ohb(c2, atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))), 86);
90466 if (!!i3 && !!j) {
90467 h = new QRc(i3, j);
90468 yNb(h, (mTc(), dTc), d);
90469 tNb(h, d);
90470 Dsb(i3.d, h);
90471 Dsb(j.b, h);
90472 Dsb(b.a, h);
90473 }
90474 }
90475 }
90476 }
90477 }
90478 function QKb(a, b) {
90479 var c2, d, e, f2, g, h, i3, j;
90480 for (i3 = BD(BD(Qc(a.r, b), 21), 84).Kc(); i3.Ob(); ) {
90481 h = BD(i3.Pb(), 111);
90482 e = h.c ? YHb(h.c) : 0;
90483 if (e > 0) {
90484 if (h.a) {
90485 j = h.b.rf().b;
90486 if (e > j) {
90487 if (a.v || h.c.d.c.length == 1) {
90488 g = (e - j) / 2;
90489 h.d.d = g;
90490 h.d.a = g;
90491 } else {
90492 c2 = BD(Ikb(h.c.d, 0), 181).rf().b;
90493 d = (c2 - j) / 2;
90494 h.d.d = $wnd.Math.max(0, d);
90495 h.d.a = e - d - j;
90496 }
90497 }
90498 } else {
90499 h.d.a = a.t + e;
90500 }
90501 } else if (tcd(a.u)) {
90502 f2 = sfd(h.b);
90503 f2.d < 0 && (h.d.d = -f2.d);
90504 f2.d + f2.a > h.b.rf().b && (h.d.a = f2.d + f2.a - h.b.rf().b);
90505 }
90506 }
90507 }
90508 function FC(a, b) {
90509 var c2;
90510 switch (HC(a)) {
90511 case 6:
90512 return ND(b);
90513 case 7:
90514 return LD(b);
90515 case 8:
90516 return KD(b);
90517 case 3:
90518 return Array.isArray(b) && (c2 = HC(b), !(c2 >= 14 && c2 <= 16));
90519 case 11:
90520 return b != null && typeof b === Nhe;
90521 case 12:
90522 return b != null && (typeof b === Jhe || typeof b == Nhe);
90523 case 0:
90524 return AD(b, a.__elementTypeId$);
90525 case 2:
90526 return OD(b) && !(b.im === gcb);
90527 case 1:
90528 return OD(b) && !(b.im === gcb) || AD(b, a.__elementTypeId$);
90529 default:
90530 return true;
90531 }
90532 }
90533 function xOb(a, b) {
90534 var c2, d, e, f2;
90535 d = $wnd.Math.min($wnd.Math.abs(a.c - (b.c + b.b)), $wnd.Math.abs(a.c + a.b - b.c));
90536 f2 = $wnd.Math.min($wnd.Math.abs(a.d - (b.d + b.a)), $wnd.Math.abs(a.d + a.a - b.d));
90537 c2 = $wnd.Math.abs(a.c + a.b / 2 - (b.c + b.b / 2));
90538 if (c2 > a.b / 2 + b.b / 2) {
90539 return 1;
90540 }
90541 e = $wnd.Math.abs(a.d + a.a / 2 - (b.d + b.a / 2));
90542 if (e > a.a / 2 + b.a / 2) {
90543 return 1;
90544 }
90545 if (c2 == 0 && e == 0) {
90546 return 0;
90547 }
90548 if (c2 == 0) {
90549 return f2 / e + 1;
90550 }
90551 if (e == 0) {
90552 return d / c2 + 1;
90553 }
90554 return $wnd.Math.min(d / c2, f2 / e) + 1;
90555 }
90556 function mgb(a, b) {
90557 var c2, d, e, f2, g, h;
90558 e = pgb(a);
90559 h = pgb(b);
90560 if (e == h) {
90561 if (a.e == b.e && a.a < 54 && b.a < 54) {
90562 return a.f < b.f ? -1 : a.f > b.f ? 1 : 0;
90563 }
90564 d = a.e - b.e;
90565 c2 = (a.d > 0 ? a.d : $wnd.Math.floor((a.a - 1) * Xje) + 1) - (b.d > 0 ? b.d : $wnd.Math.floor((b.a - 1) * Xje) + 1);
90566 if (c2 > d + 1) {
90567 return e;
90568 } else if (c2 < d - 1) {
90569 return -e;
90570 } else {
90571 f2 = (!a.c && (a.c = fhb(a.f)), a.c);
90572 g = (!b.c && (b.c = fhb(b.f)), b.c);
90573 d < 0 ? f2 = Ogb(f2, Khb(-d)) : d > 0 && (g = Ogb(g, Khb(d)));
90574 return Igb(f2, g);
90575 }
90576 } else
90577 return e < h ? -1 : 1;
90578 }
90579 function mTb(a, b) {
90580 var c2, d, e, f2, g, h, i3;
90581 f2 = 0;
90582 h = 0;
90583 i3 = 0;
90584 for (e = new olb(a.f.e); e.a < e.c.c.length; ) {
90585 d = BD(mlb(e), 144);
90586 if (b == d) {
90587 continue;
90588 }
90589 g = a.i[b.b][d.b];
90590 f2 += g;
90591 c2 = S6c(b.d, d.d);
90592 c2 > 0 && a.d != (yTb(), xTb) && (h += g * (d.d.a + a.a[b.b][d.b] * (b.d.a - d.d.a) / c2));
90593 c2 > 0 && a.d != (yTb(), vTb) && (i3 += g * (d.d.b + a.a[b.b][d.b] * (b.d.b - d.d.b) / c2));
90594 }
90595 switch (a.d.g) {
90596 case 1:
90597 return new f7c(h / f2, b.d.b);
90598 case 2:
90599 return new f7c(b.d.a, i3 / f2);
90600 default:
90601 return new f7c(h / f2, i3 / f2);
90602 }
90603 }
90604 function Wcc(a, b) {
90605 Occ();
90606 var c2, d, e, f2, g;
90607 g = BD(vNb(a.i, (Nyc(), Vxc)), 98);
90608 f2 = a.j.g - b.j.g;
90609 if (f2 != 0 || !(g == (dcd(), Zbd) || g == _bd || g == $bd)) {
90610 return 0;
90611 }
90612 if (g == (dcd(), Zbd)) {
90613 c2 = BD(vNb(a, Wxc), 19);
90614 d = BD(vNb(b, Wxc), 19);
90615 if (!!c2 && !!d) {
90616 e = c2.a - d.a;
90617 if (e != 0) {
90618 return e;
90619 }
90620 }
90621 }
90622 switch (a.j.g) {
90623 case 1:
90624 return Kdb(a.n.a, b.n.a);
90625 case 2:
90626 return Kdb(a.n.b, b.n.b);
90627 case 3:
90628 return Kdb(b.n.a, a.n.a);
90629 case 4:
90630 return Kdb(b.n.b, a.n.b);
90631 default:
90632 throw vbb(new Zdb(ine));
90633 }
90634 }
90635 function tfd(a) {
90636 var b, c2, d, e, f2, g;
90637 c2 = (!a.a && (a.a = new xMd(y2, a, 5)), a.a).i + 2;
90638 g = new Skb(c2);
90639 Ekb(g, new f7c(a.j, a.k));
90640 MAb(new YAb(null, (!a.a && (a.a = new xMd(y2, a, 5)), new Kub(a.a, 16))), new Qfd(g));
90641 Ekb(g, new f7c(a.b, a.c));
90642 b = 1;
90643 while (b < g.c.length - 1) {
90644 d = (tCb(b - 1, g.c.length), BD(g.c[b - 1], 8));
90645 e = (tCb(b, g.c.length), BD(g.c[b], 8));
90646 f2 = (tCb(b + 1, g.c.length), BD(g.c[b + 1], 8));
90647 d.a == e.a && e.a == f2.a || d.b == e.b && e.b == f2.b ? Kkb(g, b) : ++b;
90648 }
90649 return g;
90650 }
90651 function Xgc(a, b) {
90652 var c2, d, e, f2, g, h, i3;
90653 c2 = vDb(yDb(wDb(xDb(new zDb(), b), new K6c(b.e)), Ggc), a.a);
90654 b.j.c.length == 0 || nDb(BD(Ikb(b.j, 0), 57).a, c2);
90655 i3 = new lEb();
90656 Rhb(a.e, c2, i3);
90657 g = new Tqb();
90658 h = new Tqb();
90659 for (f2 = new olb(b.k); f2.a < f2.c.c.length; ) {
90660 e = BD(mlb(f2), 17);
90661 Qqb(g, e.c);
90662 Qqb(h, e.d);
90663 }
90664 d = g.a.gc() - h.a.gc();
90665 if (d < 0) {
90666 jEb(i3, true, (ead(), aad));
90667 jEb(i3, false, bad);
90668 } else if (d > 0) {
90669 jEb(i3, false, (ead(), aad));
90670 jEb(i3, true, bad);
90671 }
90672 Hkb(b.g, new $hc(a, c2));
90673 Rhb(a.g, b, c2);
90674 }
90675 function Neb() {
90676 Neb = ccb;
90677 var a;
90678 Jeb = OC(GC(WD, 1), oje, 25, 15, [-1, -1, 30, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]);
90679 Keb = KC(WD, oje, 25, 37, 15, 1);
90680 Leb = OC(GC(WD, 1), oje, 25, 15, [-1, -1, 63, 40, 32, 28, 25, 23, 21, 20, 19, 19, 18, 18, 17, 17, 16, 16, 16, 15, 15, 15, 15, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13]);
90681 Meb = KC(XD, Sje, 25, 37, 14, 1);
90682 for (a = 2; a <= 36; a++) {
90683 Keb[a] = QD($wnd.Math.pow(a, Jeb[a]));
90684 Meb[a] = Abb(rie, Keb[a]);
90685 }
90686 }
90687 function pfd(a) {
90688 var b;
90689 if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i != 1) {
90690 throw vbb(new Wdb(Tse + (!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i));
90691 }
90692 b = new s7c();
90693 !!btd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)) && ye(b, qfd(a, btd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)), false));
90694 !!btd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82)) && ye(b, qfd(a, btd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82)), true));
90695 return b;
90696 }
90697 function _Mc(a, b) {
90698 var c2, d, e, f2, g;
90699 b.d ? e = a.a.c == (YLc(), XLc) ? R_b(b.b) : U_b(b.b) : e = a.a.c == (YLc(), WLc) ? R_b(b.b) : U_b(b.b);
90700 f2 = false;
90701 for (d = new Sr(ur(e.a.Kc(), new Sq())); Qr(d); ) {
90702 c2 = BD(Rr(d), 17);
90703 g = Ccb(a.a.f[a.a.g[b.b.p].p]);
90704 if (!g && !OZb(c2) && c2.c.i.c == c2.d.i.c) {
90705 continue;
90706 }
90707 if (Ccb(a.a.n[a.a.g[b.b.p].p]) || Ccb(a.a.n[a.a.g[b.b.p].p])) {
90708 continue;
90709 }
90710 f2 = true;
90711 if (Rqb(a.b, a.a.g[TMc(c2, b.b).p])) {
90712 b.c = true;
90713 b.a = c2;
90714 return b;
90715 }
90716 }
90717 b.c = f2;
90718 b.a = null;
90719 return b;
90720 }
90721 function bed(a, b, c2, d, e) {
90722 var f2, g, h, i3, j, k, l;
90723 mmb();
90724 Okb(a, new Red());
90725 h = new Bib(a, 0);
90726 l = new Rkb();
90727 f2 = 0;
90728 while (h.b < h.d.gc()) {
90729 g = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 157));
90730 if (l.c.length != 0 && red(g) * qed(g) > f2 * 2) {
90731 k = new wed(l);
90732 j = red(g) / qed(g);
90733 i3 = fed(k, b, new p0b(), c2, d, e, j);
90734 P6c(X6c(k.e), i3);
90735 l.c = KC(SI, Uhe, 1, 0, 5, 1);
90736 f2 = 0;
90737 l.c[l.c.length] = k;
90738 l.c[l.c.length] = g;
90739 f2 = red(k) * qed(k) + red(g) * qed(g);
90740 } else {
90741 l.c[l.c.length] = g;
90742 f2 += red(g) * qed(g);
90743 }
90744 }
90745 return l;
90746 }
90747 function qwd(a, b, c2) {
90748 var d, e, f2, g, h, i3, j;
90749 d = c2.gc();
90750 if (d == 0) {
90751 return false;
90752 } else {
90753 if (a.ej()) {
90754 i3 = a.fj();
90755 zvd(a, b, c2);
90756 g = d == 1 ? a.Zi(3, null, c2.Kc().Pb(), b, i3) : a.Zi(5, null, c2, b, i3);
90757 if (a.bj()) {
90758 h = d < 100 ? null : new Ixd(d);
90759 f2 = b + d;
90760 for (e = b; e < f2; ++e) {
90761 j = a.Oi(e);
90762 h = a.cj(j, h);
90763 h = h;
90764 }
90765 if (!h) {
90766 a.$i(g);
90767 } else {
90768 h.Ei(g);
90769 h.Fi();
90770 }
90771 } else {
90772 a.$i(g);
90773 }
90774 } else {
90775 zvd(a, b, c2);
90776 if (a.bj()) {
90777 h = d < 100 ? null : new Ixd(d);
90778 f2 = b + d;
90779 for (e = b; e < f2; ++e) {
90780 h = a.cj(a.Oi(e), h);
90781 }
90782 !!h && h.Fi();
90783 }
90784 }
90785 return true;
90786 }
90787 }
90788 function wwd(a, b, c2) {
90789 var d, e, f2, g, h;
90790 if (a.ej()) {
90791 e = null;
90792 f2 = a.fj();
90793 d = a.Zi(1, h = (g = a.Ui(b, a.oi(b, c2)), g), c2, b, f2);
90794 if (a.bj() && !(a.ni() && !!h ? pb(h, c2) : PD(h) === PD(c2))) {
90795 !!h && (e = a.dj(h, e));
90796 e = a.cj(c2, e);
90797 if (!e) {
90798 a.$i(d);
90799 } else {
90800 e.Ei(d);
90801 e.Fi();
90802 }
90803 } else {
90804 if (!e) {
90805 a.$i(d);
90806 } else {
90807 e.Ei(d);
90808 e.Fi();
90809 }
90810 }
90811 return h;
90812 } else {
90813 h = (g = a.Ui(b, a.oi(b, c2)), g);
90814 if (a.bj() && !(a.ni() && !!h ? pb(h, c2) : PD(h) === PD(c2))) {
90815 e = null;
90816 !!h && (e = a.dj(h, null));
90817 e = a.cj(c2, e);
90818 !!e && e.Fi();
90819 }
90820 return h;
90821 }
90822 }
90823 function rRb(a, b) {
90824 var c2, d, e, f2, g, h, i3, j, k;
90825 a.e = b;
90826 a.f = BD(vNb(b, (HSb(), GSb)), 230);
90827 iRb(b);
90828 a.d = $wnd.Math.max(b.e.c.length * 16 + b.c.c.length, 256);
90829 if (!Ccb(DD(vNb(b, (wSb(), dSb))))) {
90830 k = a.e.e.c.length;
90831 for (i3 = new olb(b.e); i3.a < i3.c.c.length; ) {
90832 h = BD(mlb(i3), 144);
90833 j = h.d;
90834 j.a = Aub(a.f) * k;
90835 j.b = Aub(a.f) * k;
90836 }
90837 }
90838 c2 = b.b;
90839 for (f2 = new olb(b.c); f2.a < f2.c.c.length; ) {
90840 e = BD(mlb(f2), 282);
90841 d = BD(vNb(e, rSb), 19).a;
90842 if (d > 0) {
90843 for (g = 0; g < d; g++) {
90844 Ekb(c2, new aRb(e));
90845 }
90846 cRb(e);
90847 }
90848 }
90849 }
90850 function zac(a, b) {
90851 var c2, d, e, f2, g, h;
90852 if (a.k == (j0b(), f0b)) {
90853 c2 = WAb(JAb(BD(vNb(a, (wtc(), ktc)), 15).Oc(), new Xxb(new Kac()))).sd((EAb(), DAb)) ? b : (rbd(), pbd);
90854 yNb(a, Ssc, c2);
90855 if (c2 != (rbd(), obd)) {
90856 d = BD(vNb(a, $sc), 17);
90857 h = Edb(ED(vNb(d, (Nyc(), Zwc))));
90858 g = 0;
90859 if (c2 == nbd) {
90860 g = a.o.b - $wnd.Math.ceil(h / 2);
90861 } else if (c2 == pbd) {
90862 a.o.b -= Edb(ED(vNb(Q_b(a), nyc)));
90863 g = (a.o.b - $wnd.Math.ceil(h)) / 2;
90864 }
90865 for (f2 = new olb(a.j); f2.a < f2.c.c.length; ) {
90866 e = BD(mlb(f2), 11);
90867 e.n.b = g;
90868 }
90869 }
90870 }
90871 }
90872 function Uge() {
90873 Uge = ccb;
90874 g5d();
90875 Tge = new Vge();
90876 OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge(Xwe)])]);
90877 OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge(Ywe)])]);
90878 OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge(Zwe)]), OC(GC(w5, 1), Axe, 592, 0, [new Rge(Ywe)])]);
90879 new Ygb("-1");
90880 OC(GC(w5, 2), nie, 368, 0, [OC(GC(w5, 1), Axe, 592, 0, [new Rge("\\c+")])]);
90881 new Ygb("0");
90882 new Ygb("0");
90883 new Ygb("1");
90884 new Ygb("0");
90885 new Ygb(hxe);
90886 }
90887 function KQd(a) {
90888 var b, c2;
90889 if (!!a.c && a.c.kh()) {
90890 c2 = BD(a.c, 49);
90891 a.c = BD(xid(a, c2), 138);
90892 if (a.c != c2) {
90893 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 9, 2, c2, a.c));
90894 if (JD(a.Cb, 399)) {
90895 a.Db >> 16 == -15 && a.Cb.nh() && Rwd(new oSd(a.Cb, 9, 13, c2, a.c, HLd(QSd(BD(a.Cb, 59)), a)));
90896 } else if (JD(a.Cb, 88)) {
90897 if (a.Db >> 16 == -23 && a.Cb.nh()) {
90898 b = a.c;
90899 JD(b, 88) || (b = (jGd(), _Fd));
90900 JD(c2, 88) || (c2 = (jGd(), _Fd));
90901 Rwd(new oSd(a.Cb, 9, 10, c2, b, HLd(VKd(BD(a.Cb, 26)), a)));
90902 }
90903 }
90904 }
90905 }
90906 return a.c;
90907 }
90908 function f7b(a, b) {
90909 var c2, d, e, f2, g, h, i3, j, k, l;
90910 Odd(b, "Hypernodes processing", 1);
90911 for (e = new olb(a.b); e.a < e.c.c.length; ) {
90912 d = BD(mlb(e), 29);
90913 for (h = new olb(d.a); h.a < h.c.c.length; ) {
90914 g = BD(mlb(h), 10);
90915 if (Ccb(DD(vNb(g, (Nyc(), exc)))) && g.j.c.length <= 2) {
90916 l = 0;
90917 k = 0;
90918 c2 = 0;
90919 f2 = 0;
90920 for (j = new olb(g.j); j.a < j.c.c.length; ) {
90921 i3 = BD(mlb(j), 11);
90922 switch (i3.j.g) {
90923 case 1:
90924 ++l;
90925 break;
90926 case 2:
90927 ++k;
90928 break;
90929 case 3:
90930 ++c2;
90931 break;
90932 case 4:
90933 ++f2;
90934 }
90935 }
90936 l == 0 && c2 == 0 && e7b(a, g, f2 <= k);
90937 }
90938 }
90939 }
90940 Qdd(b);
90941 }
90942 function i7b(a, b) {
90943 var c2, d, e, f2, g, h, i3, j, k;
90944 Odd(b, "Layer constraint edge reversal", 1);
90945 for (g = new olb(a.b); g.a < g.c.c.length; ) {
90946 f2 = BD(mlb(g), 29);
90947 k = -1;
90948 c2 = new Rkb();
90949 j = l_b(f2.a);
90950 for (e = 0; e < j.length; e++) {
90951 d = BD(vNb(j[e], (wtc(), Osc)), 303);
90952 if (k == -1) {
90953 d != (esc(), dsc) && (k = e);
90954 } else {
90955 if (d == (esc(), dsc)) {
90956 $_b(j[e], null);
90957 Z_b(j[e], k++, f2);
90958 }
90959 }
90960 d == (esc(), bsc) && Ekb(c2, j[e]);
90961 }
90962 for (i3 = new olb(c2); i3.a < i3.c.c.length; ) {
90963 h = BD(mlb(i3), 10);
90964 $_b(h, null);
90965 $_b(h, f2);
90966 }
90967 }
90968 Qdd(b);
90969 }
90970 function W6b(a, b, c2) {
90971 var d, e, f2, g, h, i3, j, k, l;
90972 Odd(c2, "Hyperedge merging", 1);
90973 U6b(a, b);
90974 i3 = new Bib(b.b, 0);
90975 while (i3.b < i3.d.gc()) {
90976 h = (sCb(i3.b < i3.d.gc()), BD(i3.d.Xb(i3.c = i3.b++), 29));
90977 k = h.a;
90978 if (k.c.length == 0) {
90979 continue;
90980 }
90981 d = null;
90982 e = null;
90983 f2 = null;
90984 g = null;
90985 for (j = 0; j < k.c.length; j++) {
90986 d = (tCb(j, k.c.length), BD(k.c[j], 10));
90987 e = d.k;
90988 if (e == (j0b(), g0b) && g == g0b) {
90989 l = S6b(d, f2);
90990 if (l.a) {
90991 V6b(d, f2, l.b, l.c);
90992 tCb(j, k.c.length);
90993 cCb(k.c, j, 1);
90994 --j;
90995 d = f2;
90996 e = g;
90997 }
90998 }
90999 f2 = d;
91000 g = e;
91001 }
91002 }
91003 Qdd(c2);
91004 }
91005 function WFc(a, b) {
91006 var c2, d, e;
91007 d = Cub(a.d, 1) != 0;
91008 !Ccb(DD(vNb(b.j, (wtc(), Jsc)))) && !Ccb(DD(vNb(b.j, mtc))) || PD(vNb(b.j, (Nyc(), ywc))) === PD((tAc(), rAc)) ? b.c.Tf(b.e, d) : d = Ccb(DD(vNb(b.j, Jsc)));
91009 dGc(a, b, d, true);
91010 Ccb(DD(vNb(b.j, mtc))) && yNb(b.j, mtc, (Bcb(), false));
91011 if (Ccb(DD(vNb(b.j, Jsc)))) {
91012 yNb(b.j, Jsc, (Bcb(), false));
91013 yNb(b.j, mtc, true);
91014 }
91015 c2 = OFc(a, b);
91016 do {
91017 $Fc(a);
91018 if (c2 == 0) {
91019 return 0;
91020 }
91021 d = !d;
91022 e = c2;
91023 dGc(a, b, d, false);
91024 c2 = OFc(a, b);
91025 } while (e > c2);
91026 return e;
91027 }
91028 function XFc(a, b) {
91029 var c2, d, e;
91030 d = Cub(a.d, 1) != 0;
91031 !Ccb(DD(vNb(b.j, (wtc(), Jsc)))) && !Ccb(DD(vNb(b.j, mtc))) || PD(vNb(b.j, (Nyc(), ywc))) === PD((tAc(), rAc)) ? b.c.Tf(b.e, d) : d = Ccb(DD(vNb(b.j, Jsc)));
91032 dGc(a, b, d, true);
91033 Ccb(DD(vNb(b.j, mtc))) && yNb(b.j, mtc, (Bcb(), false));
91034 if (Ccb(DD(vNb(b.j, Jsc)))) {
91035 yNb(b.j, Jsc, (Bcb(), false));
91036 yNb(b.j, mtc, true);
91037 }
91038 c2 = NFc(a, b);
91039 do {
91040 $Fc(a);
91041 if (c2 == 0) {
91042 return 0;
91043 }
91044 d = !d;
91045 e = c2;
91046 dGc(a, b, d, false);
91047 c2 = NFc(a, b);
91048 } while (e > c2);
91049 return e;
91050 }
91051 function uNd(a, b, c2) {
91052 var d, e, f2, g, h, i3, j, k, l, m, n, o2;
91053 if (b == c2) {
91054 return true;
91055 } else {
91056 b = vNd(a, b);
91057 c2 = vNd(a, c2);
91058 d = JQd(b);
91059 if (d) {
91060 k = JQd(c2);
91061 if (k != d) {
91062 if (!k) {
91063 return false;
91064 } else {
91065 i3 = d.Dj();
91066 o2 = k.Dj();
91067 return i3 == o2 && i3 != null;
91068 }
91069 } else {
91070 g = (!b.d && (b.d = new xMd(j5, b, 1)), b.d);
91071 f2 = g.i;
91072 m = (!c2.d && (c2.d = new xMd(j5, c2, 1)), c2.d);
91073 if (f2 == m.i) {
91074 for (j = 0; j < f2; ++j) {
91075 e = BD(qud(g, j), 87);
91076 l = BD(qud(m, j), 87);
91077 if (!uNd(a, e, l)) {
91078 return false;
91079 }
91080 }
91081 }
91082 return true;
91083 }
91084 } else {
91085 h = b.e;
91086 n = c2.e;
91087 return h == n;
91088 }
91089 }
91090 }
91091 function X2d(a, b, c2, d) {
91092 var e, f2, g, h, i3, j, k, l;
91093 if (T6d(a.e, b)) {
91094 l = S6d(a.e.Tg(), b);
91095 f2 = BD(a.g, 119);
91096 k = null;
91097 i3 = -1;
91098 h = -1;
91099 e = 0;
91100 for (j = 0; j < a.i; ++j) {
91101 g = f2[j];
91102 if (l.rl(g.ak())) {
91103 e == c2 && (i3 = j);
91104 if (e == d) {
91105 h = j;
91106 k = g.dd();
91107 }
91108 ++e;
91109 }
91110 }
91111 if (i3 == -1) {
91112 throw vbb(new qcb(lue + c2 + mue + e));
91113 }
91114 if (h == -1) {
91115 throw vbb(new qcb(nue + d + mue + e));
91116 }
91117 Wxd(a, i3, h);
91118 oid(a.e) && GLd(a, H2d(a, 7, b, meb(d), k, c2, true));
91119 return k;
91120 } else {
91121 throw vbb(new Wdb("The feature must be many-valued to support move"));
91122 }
91123 }
91124 function b_b(a, b, c2, d) {
91125 var e, f2, g, h, i3;
91126 i3 = new g7c(b.n);
91127 i3.a += b.o.a / 2;
91128 i3.b += b.o.b / 2;
91129 h = Edb(ED(vNb(b, (Nyc(), Uxc))));
91130 f2 = a.f;
91131 g = a.d;
91132 e = a.c;
91133 switch (BD(vNb(b, (wtc(), Hsc)), 61).g) {
91134 case 1:
91135 i3.a += g.b + e.a - c2 / 2;
91136 i3.b = -d - h;
91137 b.n.b = -(g.d + h + e.b);
91138 break;
91139 case 2:
91140 i3.a = f2.a + g.b + g.c + h;
91141 i3.b += g.d + e.b - d / 2;
91142 b.n.a = f2.a + g.c + h - e.a;
91143 break;
91144 case 3:
91145 i3.a += g.b + e.a - c2 / 2;
91146 i3.b = f2.b + g.d + g.a + h;
91147 b.n.b = f2.b + g.a + h - e.b;
91148 break;
91149 case 4:
91150 i3.a = -c2 - h;
91151 i3.b += g.d + e.b - d / 2;
91152 b.n.a = -(g.b + h + e.a);
91153 }
91154 return i3;
91155 }
91156 function P1b(a) {
91157 var b, c2, d, e, f2, g;
91158 d = new XZb();
91159 tNb(d, a);
91160 PD(vNb(d, (Nyc(), Lwc))) === PD((ead(), cad)) && yNb(d, Lwc, a_b(d));
91161 if (vNb(d, (g6c(), f6c)) == null) {
91162 g = BD(m6d(a), 160);
91163 yNb(d, f6c, RD(g.We(f6c)));
91164 }
91165 yNb(d, (wtc(), $sc), a);
91166 yNb(d, Ksc, (b = BD(gdb(PW), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)));
91167 e = OGb((!Xod(a) ? null : (Pgd(), new bhd(Xod(a))), Pgd(), new hhd(!Xod(a) ? null : new bhd(Xod(a)), a)), bad);
91168 f2 = BD(vNb(d, Kxc), 116);
91169 c2 = d.d;
91170 t_b(c2, f2);
91171 t_b(c2, e);
91172 return d;
91173 }
91174 function ybc(a, b, c2) {
91175 var d, e;
91176 d = b.c.i;
91177 e = c2.d.i;
91178 if (d.k == (j0b(), g0b)) {
91179 yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11));
91180 yNb(a, Wsc, BD(vNb(d, Wsc), 11));
91181 yNb(a, Usc, DD(vNb(d, Usc)));
91182 } else if (d.k == f0b) {
91183 yNb(a, (wtc(), Vsc), BD(vNb(d, Vsc), 11));
91184 yNb(a, Wsc, BD(vNb(d, Wsc), 11));
91185 yNb(a, Usc, (Bcb(), true));
91186 } else if (e.k == f0b) {
91187 yNb(a, (wtc(), Vsc), BD(vNb(e, Vsc), 11));
91188 yNb(a, Wsc, BD(vNb(e, Wsc), 11));
91189 yNb(a, Usc, (Bcb(), true));
91190 } else {
91191 yNb(a, (wtc(), Vsc), b.c);
91192 yNb(a, Wsc, c2.d);
91193 }
91194 }
91195 function FGb(a) {
91196 var b, c2, d, e, f2, g, h;
91197 a.o = new jkb();
91198 d = new Psb();
91199 for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
91200 f2 = BD(mlb(g), 121);
91201 LFb(f2).c.length == 1 && (Gsb(d, f2, d.c.b, d.c), true);
91202 }
91203 while (d.b != 0) {
91204 f2 = BD(d.b == 0 ? null : (sCb(d.b != 0), Nsb(d, d.a.a)), 121);
91205 if (LFb(f2).c.length == 0) {
91206 continue;
91207 }
91208 b = BD(Ikb(LFb(f2), 0), 213);
91209 c2 = f2.g.a.c.length > 0;
91210 h = xFb(b, f2);
91211 c2 ? OFb(h.b, b) : OFb(h.g, b);
91212 LFb(h).c.length == 1 && (Gsb(d, h, d.c.b, d.c), true);
91213 e = new vgd(f2, b);
91214 Wjb(a.o, e);
91215 Lkb(a.e.a, f2);
91216 }
91217 }
91218 function _Nb(a, b) {
91219 var c2, d, e, f2, g, h, i3;
91220 d = $wnd.Math.abs(D6c(a.b).a - D6c(b.b).a);
91221 h = $wnd.Math.abs(D6c(a.b).b - D6c(b.b).b);
91222 e = 0;
91223 i3 = 0;
91224 c2 = 1;
91225 g = 1;
91226 if (d > a.b.b / 2 + b.b.b / 2) {
91227 e = $wnd.Math.min($wnd.Math.abs(a.b.c - (b.b.c + b.b.b)), $wnd.Math.abs(a.b.c + a.b.b - b.b.c));
91228 c2 = 1 - e / d;
91229 }
91230 if (h > a.b.a / 2 + b.b.a / 2) {
91231 i3 = $wnd.Math.min($wnd.Math.abs(a.b.d - (b.b.d + b.b.a)), $wnd.Math.abs(a.b.d + a.b.a - b.b.d));
91232 g = 1 - i3 / h;
91233 }
91234 f2 = $wnd.Math.min(c2, g);
91235 return (1 - f2) * $wnd.Math.sqrt(d * d + h * h);
91236 }
91237 function lQc(a) {
91238 var b, c2, d, e;
91239 nQc(a, a.e, a.f, (FQc(), DQc), true, a.c, a.i);
91240 nQc(a, a.e, a.f, DQc, false, a.c, a.i);
91241 nQc(a, a.e, a.f, EQc, true, a.c, a.i);
91242 nQc(a, a.e, a.f, EQc, false, a.c, a.i);
91243 mQc(a, a.c, a.e, a.f, a.i);
91244 d = new Bib(a.i, 0);
91245 while (d.b < d.d.gc()) {
91246 b = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 128));
91247 e = new Bib(a.i, d.b);
91248 while (e.b < e.d.gc()) {
91249 c2 = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 128));
91250 kQc(b, c2);
91251 }
91252 }
91253 wQc(a.i, BD(vNb(a.d, (wtc(), jtc)), 230));
91254 zQc(a.i);
91255 }
91256 function fKd(a, b) {
91257 var c2, d;
91258 if (b != null) {
91259 d = dKd(a);
91260 if (d) {
91261 if ((d.i & 1) != 0) {
91262 if (d == sbb) {
91263 return KD(b);
91264 } else if (d == WD) {
91265 return JD(b, 19);
91266 } else if (d == VD) {
91267 return JD(b, 155);
91268 } else if (d == SD) {
91269 return JD(b, 217);
91270 } else if (d == TD) {
91271 return JD(b, 172);
91272 } else if (d == UD) {
91273 return LD(b);
91274 } else if (d == rbb) {
91275 return JD(b, 184);
91276 } else if (d == XD) {
91277 return JD(b, 162);
91278 }
91279 } else {
91280 return pEd(), c2 = BD(Ohb(oEd, d), 55), !c2 || c2.wj(b);
91281 }
91282 } else if (JD(b, 56)) {
91283 return a.uk(BD(b, 56));
91284 }
91285 }
91286 return false;
91287 }
91288 function ade() {
91289 ade = ccb;
91290 var a, b, c2, d, e, f2, g, h, i3;
91291 $ce = KC(SD, wte, 25, 255, 15, 1);
91292 _ce = KC(TD, $ie, 25, 64, 15, 1);
91293 for (b = 0; b < 255; b++) {
91294 $ce[b] = -1;
91295 }
91296 for (c2 = 90; c2 >= 65; c2--) {
91297 $ce[c2] = c2 - 65 << 24 >> 24;
91298 }
91299 for (d = 122; d >= 97; d--) {
91300 $ce[d] = d - 97 + 26 << 24 >> 24;
91301 }
91302 for (e = 57; e >= 48; e--) {
91303 $ce[e] = e - 48 + 52 << 24 >> 24;
91304 }
91305 $ce[43] = 62;
91306 $ce[47] = 63;
91307 for (f2 = 0; f2 <= 25; f2++)
91308 _ce[f2] = 65 + f2 & aje;
91309 for (g = 26, i3 = 0; g <= 51; ++g, i3++)
91310 _ce[g] = 97 + i3 & aje;
91311 for (a = 52, h = 0; a <= 61; ++a, h++)
91312 _ce[a] = 48 + h & aje;
91313 _ce[62] = 43;
91314 _ce[63] = 47;
91315 }
91316 function FXb(a, b) {
91317 var c2, d, e, f2, g, h, i3, j, k, l, m, n;
91318 if (a.dc()) {
91319 return new d7c();
91320 }
91321 j = 0;
91322 l = 0;
91323 for (e = a.Kc(); e.Ob(); ) {
91324 d = BD(e.Pb(), 37);
91325 f2 = d.f;
91326 j = $wnd.Math.max(j, f2.a);
91327 l += f2.a * f2.b;
91328 }
91329 j = $wnd.Math.max(j, $wnd.Math.sqrt(l) * Edb(ED(vNb(BD(a.Kc().Pb(), 37), (Nyc(), owc)))));
91330 m = 0;
91331 n = 0;
91332 i3 = 0;
91333 c2 = b;
91334 for (h = a.Kc(); h.Ob(); ) {
91335 g = BD(h.Pb(), 37);
91336 k = g.f;
91337 if (m + k.a > j) {
91338 m = 0;
91339 n += i3 + b;
91340 i3 = 0;
91341 }
91342 uXb(g, m, n);
91343 c2 = $wnd.Math.max(c2, m + k.a);
91344 i3 = $wnd.Math.max(i3, k.b);
91345 m += k.a + b;
91346 }
91347 return new f7c(c2 + b, n + i3 + b);
91348 }
91349 function mQc(a, b, c2, d, e) {
91350 var f2, g, h, i3, j, k, l;
91351 for (g = new olb(b); g.a < g.c.c.length; ) {
91352 f2 = BD(mlb(g), 17);
91353 i3 = f2.c;
91354 if (c2.a._b(i3)) {
91355 j = (FQc(), DQc);
91356 } else if (d.a._b(i3)) {
91357 j = (FQc(), EQc);
91358 } else {
91359 throw vbb(new Wdb("Source port must be in one of the port sets."));
91360 }
91361 k = f2.d;
91362 if (c2.a._b(k)) {
91363 l = (FQc(), DQc);
91364 } else if (d.a._b(k)) {
91365 l = (FQc(), EQc);
91366 } else {
91367 throw vbb(new Wdb("Target port must be in one of the port sets."));
91368 }
91369 h = new YQc(f2, j, l);
91370 Rhb(a.b, f2, h);
91371 e.c[e.c.length] = h;
91372 }
91373 }
91374 function lfd(a, b) {
91375 var c2, d, e, f2, g, h, i3;
91376 if (!mpd(a)) {
91377 throw vbb(new Zdb(Sse));
91378 }
91379 d = mpd(a);
91380 f2 = d.g;
91381 e = d.f;
91382 if (f2 <= 0 && e <= 0) {
91383 return Ucd(), Scd;
91384 }
91385 h = a.i;
91386 i3 = a.j;
91387 switch (b.g) {
91388 case 2:
91389 case 1:
91390 if (h < 0) {
91391 return Ucd(), Tcd;
91392 } else if (h + a.g > f2) {
91393 return Ucd(), zcd;
91394 }
91395 break;
91396 case 4:
91397 case 3:
91398 if (i3 < 0) {
91399 return Ucd(), Acd;
91400 } else if (i3 + a.f > e) {
91401 return Ucd(), Rcd;
91402 }
91403 }
91404 g = (h + a.g / 2) / f2;
91405 c2 = (i3 + a.f / 2) / e;
91406 return g + c2 <= 1 && g - c2 <= 0 ? (Ucd(), Tcd) : g + c2 >= 1 && g - c2 >= 0 ? (Ucd(), zcd) : c2 < 0.5 ? (Ucd(), Acd) : (Ucd(), Rcd);
91407 }
91408 function vhb(a, b, c2, d, e) {
91409 var f2, g;
91410 f2 = wbb(xbb(b[0], Yje), xbb(d[0], Yje));
91411 a[0] = Tbb(f2);
91412 f2 = Obb(f2, 32);
91413 if (c2 >= e) {
91414 for (g = 1; g < e; g++) {
91415 f2 = wbb(f2, wbb(xbb(b[g], Yje), xbb(d[g], Yje)));
91416 a[g] = Tbb(f2);
91417 f2 = Obb(f2, 32);
91418 }
91419 for (; g < c2; g++) {
91420 f2 = wbb(f2, xbb(b[g], Yje));
91421 a[g] = Tbb(f2);
91422 f2 = Obb(f2, 32);
91423 }
91424 } else {
91425 for (g = 1; g < c2; g++) {
91426 f2 = wbb(f2, wbb(xbb(b[g], Yje), xbb(d[g], Yje)));
91427 a[g] = Tbb(f2);
91428 f2 = Obb(f2, 32);
91429 }
91430 for (; g < e; g++) {
91431 f2 = wbb(f2, xbb(d[g], Yje));
91432 a[g] = Tbb(f2);
91433 f2 = Obb(f2, 32);
91434 }
91435 }
91436 ybb(f2, 0) != 0 && (a[g] = Tbb(f2));
91437 }
91438 function _fe(a) {
91439 wfe();
91440 var b, c2, d, e, f2, g;
91441 if (a.e != 4 && a.e != 5)
91442 throw vbb(new Wdb("Token#complementRanges(): must be RANGE: " + a.e));
91443 f2 = a;
91444 Yfe(f2);
91445 Vfe(f2);
91446 d = f2.b.length + 2;
91447 f2.b[0] == 0 && (d -= 2);
91448 c2 = f2.b[f2.b.length - 1];
91449 c2 == lxe && (d -= 2);
91450 e = new $fe(4);
91451 e.b = KC(WD, oje, 25, d, 15, 1);
91452 g = 0;
91453 if (f2.b[0] > 0) {
91454 e.b[g++] = 0;
91455 e.b[g++] = f2.b[0] - 1;
91456 }
91457 for (b = 1; b < f2.b.length - 2; b += 2) {
91458 e.b[g++] = f2.b[b] + 1;
91459 e.b[g++] = f2.b[b + 1] - 1;
91460 }
91461 if (c2 != lxe) {
91462 e.b[g++] = c2 + 1;
91463 e.b[g] = lxe;
91464 }
91465 e.a = true;
91466 return e;
91467 }
91468 function Pxd(a, b, c2) {
91469 var d, e, f2, g, h, i3, j, k;
91470 d = c2.gc();
91471 if (d == 0) {
91472 return false;
91473 } else {
91474 if (a.ej()) {
91475 j = a.fj();
91476 iud(a, b, c2);
91477 g = d == 1 ? a.Zi(3, null, c2.Kc().Pb(), b, j) : a.Zi(5, null, c2, b, j);
91478 if (a.bj()) {
91479 h = d < 100 ? null : new Ixd(d);
91480 f2 = b + d;
91481 for (e = b; e < f2; ++e) {
91482 k = a.g[e];
91483 h = a.cj(k, h);
91484 h = a.jj(k, h);
91485 }
91486 if (!h) {
91487 a.$i(g);
91488 } else {
91489 h.Ei(g);
91490 h.Fi();
91491 }
91492 } else {
91493 a.$i(g);
91494 }
91495 } else {
91496 iud(a, b, c2);
91497 if (a.bj()) {
91498 h = d < 100 ? null : new Ixd(d);
91499 f2 = b + d;
91500 for (e = b; e < f2; ++e) {
91501 i3 = a.g[e];
91502 h = a.cj(i3, h);
91503 }
91504 !!h && h.Fi();
91505 }
91506 }
91507 return true;
91508 }
91509 }
91510 function YNc(a, b, c2, d) {
91511 var e, f2, g, h, i3;
91512 for (g = new olb(a.k); g.a < g.c.c.length; ) {
91513 e = BD(mlb(g), 129);
91514 if (!d || e.c == (HOc(), FOc)) {
91515 i3 = e.b;
91516 if (i3.g < 0 && e.d > 0) {
91517 pOc(i3, i3.d - e.d);
91518 e.c == (HOc(), FOc) && nOc(i3, i3.a - e.d);
91519 i3.d <= 0 && i3.i > 0 && (Gsb(b, i3, b.c.b, b.c), true);
91520 }
91521 }
91522 }
91523 for (f2 = new olb(a.f); f2.a < f2.c.c.length; ) {
91524 e = BD(mlb(f2), 129);
91525 if (!d || e.c == (HOc(), FOc)) {
91526 h = e.a;
91527 if (h.g < 0 && e.d > 0) {
91528 qOc(h, h.i - e.d);
91529 e.c == (HOc(), FOc) && oOc(h, h.b - e.d);
91530 h.i <= 0 && h.d > 0 && (Gsb(c2, h, c2.c.b, c2.c), true);
91531 }
91532 }
91533 }
91534 }
91535 function gSc(a, b, c2) {
91536 var d, e, f2, g, h, i3, j, k;
91537 Odd(c2, "Processor compute fanout", 1);
91538 Uhb(a.b);
91539 Uhb(a.a);
91540 h = null;
91541 f2 = Jsb(b.b, 0);
91542 while (!h && f2.b != f2.d.c) {
91543 j = BD(Xsb(f2), 86);
91544 Ccb(DD(vNb(j, (mTc(), jTc)))) && (h = j);
91545 }
91546 i3 = new Psb();
91547 Gsb(i3, h, i3.c.b, i3.c);
91548 fSc(a, i3);
91549 for (k = Jsb(b.b, 0); k.b != k.d.c; ) {
91550 j = BD(Xsb(k), 86);
91551 g = GD(vNb(j, (mTc(), $Sc)));
91552 e = Phb(a.b, g) != null ? BD(Phb(a.b, g), 19).a : 0;
91553 yNb(j, ZSc, meb(e));
91554 d = 1 + (Phb(a.a, g) != null ? BD(Phb(a.a, g), 19).a : 0);
91555 yNb(j, XSc, meb(d));
91556 }
91557 Qdd(c2);
91558 }
91559 function WPc(a, b, c2, d, e) {
91560 var f2, g, h, i3, j, k, l, m, n, o2;
91561 m = VPc(a, c2);
91562 for (i3 = 0; i3 < b; i3++) {
91563 Aib(e, c2);
91564 n = new Rkb();
91565 o2 = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 407));
91566 for (k = m + i3; k < a.b; k++) {
91567 h = o2;
91568 o2 = (sCb(d.b < d.d.gc()), BD(d.d.Xb(d.c = d.b++), 407));
91569 Ekb(n, new aQc(h, o2, c2));
91570 }
91571 for (l = m + i3; l < a.b; l++) {
91572 sCb(d.b > 0);
91573 d.a.Xb(d.c = --d.b);
91574 l > m + i3 && uib(d);
91575 }
91576 for (g = new olb(n); g.a < g.c.c.length; ) {
91577 f2 = BD(mlb(g), 407);
91578 Aib(d, f2);
91579 }
91580 if (i3 < b - 1) {
91581 for (j = m + i3; j < a.b; j++) {
91582 sCb(d.b > 0);
91583 d.a.Xb(d.c = --d.b);
91584 }
91585 }
91586 }
91587 }
91588 function Jfe() {
91589 wfe();
91590 var a, b, c2, d, e, f2;
91591 if (gfe)
91592 return gfe;
91593 a = new $fe(4);
91594 Xfe(a, Kfe(vxe, true));
91595 Zfe(a, Kfe("M", true));
91596 Zfe(a, Kfe("C", true));
91597 f2 = new $fe(4);
91598 for (d = 0; d < 11; d++) {
91599 Ufe(f2, d, d);
91600 }
91601 b = new $fe(4);
91602 Xfe(b, Kfe("M", true));
91603 Ufe(b, 4448, 4607);
91604 Ufe(b, 65438, 65439);
91605 e = new Lge(2);
91606 Kge(e, a);
91607 Kge(e, ffe);
91608 c2 = new Lge(2);
91609 c2.$l(Bfe(f2, Kfe("L", true)));
91610 c2.$l(b);
91611 c2 = new lge(3, c2);
91612 c2 = new rge(e, c2);
91613 gfe = c2;
91614 return gfe;
91615 }
91616 function S3c(a) {
91617 var b, c2;
91618 b = GD(hkd(a, (Y9c(), o8c)));
91619 if (T3c(b, a)) {
91620 return;
91621 }
91622 if (!ikd(a, F9c) && ((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a).i != 0 || Ccb(DD(hkd(a, M8c))))) {
91623 if (b == null || ufb(b).length == 0) {
91624 if (!T3c(sne, a)) {
91625 c2 = Qfb(Qfb(new Wfb("Unable to load default layout algorithm "), sne), " for unconfigured node ");
91626 yfd(a, c2);
91627 throw vbb(new y2c(c2.a));
91628 }
91629 } else {
91630 c2 = Qfb(Qfb(new Wfb("Layout algorithm '"), b), "' not found for ");
91631 yfd(a, c2);
91632 throw vbb(new y2c(c2.a));
91633 }
91634 }
91635 }
91636 function hIb(a) {
91637 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n;
91638 c2 = a.i;
91639 b = a.n;
91640 if (a.b == 0) {
91641 n = c2.c + b.b;
91642 m = c2.b - b.b - b.c;
91643 for (g = a.a, i3 = 0, k = g.length; i3 < k; ++i3) {
91644 e = g[i3];
91645 mHb(e, n, m);
91646 }
91647 } else {
91648 d = kIb(a, false);
91649 mHb(a.a[0], c2.c + b.b, d[0]);
91650 mHb(a.a[2], c2.c + c2.b - b.c - d[2], d[2]);
91651 l = c2.b - b.b - b.c;
91652 if (d[0] > 0) {
91653 l -= d[0] + a.c;
91654 d[0] += a.c;
91655 }
91656 d[2] > 0 && (l -= d[2] + a.c);
91657 d[1] = $wnd.Math.max(d[1], l);
91658 mHb(a.a[1], c2.c + b.b + d[0] - (d[1] - l) / 2, d[1]);
91659 }
91660 for (f2 = a.a, h = 0, j = f2.length; h < j; ++h) {
91661 e = f2[h];
91662 JD(e, 326) && BD(e, 326).Te();
91663 }
91664 }
91665 function KMc(a) {
91666 var b, c2, d, e, f2, g, h, i3, j, k, l;
91667 l = new JMc();
91668 l.d = 0;
91669 for (g = new olb(a.b); g.a < g.c.c.length; ) {
91670 f2 = BD(mlb(g), 29);
91671 l.d += f2.a.c.length;
91672 }
91673 d = 0;
91674 e = 0;
91675 l.a = KC(WD, oje, 25, a.b.c.length, 15, 1);
91676 j = 0;
91677 k = 0;
91678 l.e = KC(WD, oje, 25, l.d, 15, 1);
91679 for (c2 = new olb(a.b); c2.a < c2.c.c.length; ) {
91680 b = BD(mlb(c2), 29);
91681 b.p = d++;
91682 l.a[b.p] = e++;
91683 k = 0;
91684 for (i3 = new olb(b.a); i3.a < i3.c.c.length; ) {
91685 h = BD(mlb(i3), 10);
91686 h.p = j++;
91687 l.e[h.p] = k++;
91688 }
91689 }
91690 l.c = new OMc(l);
91691 l.b = Pu(l.d);
91692 LMc(l, a);
91693 l.f = Pu(l.d);
91694 MMc(l, a);
91695 return l;
91696 }
91697 function GZc(a, b) {
91698 var c2, d, e, f2;
91699 f2 = BD(Ikb(a.n, a.n.c.length - 1), 211).d;
91700 a.p = $wnd.Math.min(a.p, b.g);
91701 a.r = $wnd.Math.max(a.r, f2);
91702 a.g = $wnd.Math.max(a.g, b.g + (a.b.c.length == 1 ? 0 : a.i));
91703 a.o = $wnd.Math.min(a.o, b.f);
91704 a.e += b.f + (a.b.c.length == 1 ? 0 : a.i);
91705 a.f = $wnd.Math.max(a.f, b.f);
91706 e = a.n.c.length > 0 ? (a.n.c.length - 1) * a.i : 0;
91707 for (d = new olb(a.n); d.a < d.c.c.length; ) {
91708 c2 = BD(mlb(d), 211);
91709 e += c2.a;
91710 }
91711 a.d = e;
91712 a.a = a.e / a.b.c.length - a.i * ((a.b.c.length - 1) / a.b.c.length);
91713 u$c(a.j);
91714 }
91715 function LQb(a, b) {
91716 var c2, d, e, f2, g, h, i3, j, k, l;
91717 k = DD(vNb(b, (wSb(), sSb)));
91718 if (k == null || (uCb(k), k)) {
91719 l = KC(sbb, dle, 25, b.e.c.length, 16, 1);
91720 g = HQb(b);
91721 e = new Psb();
91722 for (j = new olb(b.e); j.a < j.c.c.length; ) {
91723 h = BD(mlb(j), 144);
91724 c2 = IQb(a, h, null, null, l, g);
91725 if (c2) {
91726 tNb(c2, b);
91727 Gsb(e, c2, e.c.b, e.c);
91728 }
91729 }
91730 if (e.b > 1) {
91731 for (d = Jsb(e, 0); d.b != d.d.c; ) {
91732 c2 = BD(Xsb(d), 231);
91733 f2 = 0;
91734 for (i3 = new olb(c2.e); i3.a < i3.c.c.length; ) {
91735 h = BD(mlb(i3), 144);
91736 h.b = f2++;
91737 }
91738 }
91739 }
91740 return e;
91741 }
91742 return Ou(OC(GC($O, 1), fme, 231, 0, [b]));
91743 }
91744 function TKd(a) {
91745 var b, c2, d, e, f2, g, h;
91746 if (!a.g) {
91747 h = new zNd();
91748 b = KKd;
91749 g = b.a.zc(a, b);
91750 if (g == null) {
91751 for (d = new Fyd(_Kd(a)); d.e != d.i.gc(); ) {
91752 c2 = BD(Dyd(d), 26);
91753 ytd(h, TKd(c2));
91754 }
91755 b.a.Bc(a) != null;
91756 b.a.gc() == 0 && void 0;
91757 }
91758 e = h.i;
91759 for (f2 = (!a.s && (a.s = new cUd(t5, a, 21, 17)), new Fyd(a.s)); f2.e != f2.i.gc(); ++e) {
91760 bJd(BD(Dyd(f2), 449), e);
91761 }
91762 ytd(h, (!a.s && (a.s = new cUd(t5, a, 21, 17)), a.s));
91763 vud(h);
91764 a.g = new rNd(a, h);
91765 a.i = BD(h.g, 247);
91766 a.i == null && (a.i = MKd);
91767 a.p = null;
91768 $Kd(a).b &= -5;
91769 }
91770 return a.g;
91771 }
91772 function iIb(a) {
91773 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
91774 d = a.i;
91775 c2 = a.n;
91776 if (a.b == 0) {
91777 b = jIb(a, false);
91778 nHb(a.a[0], d.d + c2.d, b[0]);
91779 nHb(a.a[2], d.d + d.a - c2.a - b[2], b[2]);
91780 m = d.a - c2.d - c2.a;
91781 l = m;
91782 if (b[0] > 0) {
91783 b[0] += a.c;
91784 l -= b[0];
91785 }
91786 b[2] > 0 && (l -= b[2] + a.c);
91787 b[1] = $wnd.Math.max(b[1], l);
91788 nHb(a.a[1], d.d + c2.d + b[0] - (b[1] - l) / 2, b[1]);
91789 } else {
91790 o2 = d.d + c2.d;
91791 n = d.a - c2.d - c2.a;
91792 for (g = a.a, i3 = 0, k = g.length; i3 < k; ++i3) {
91793 e = g[i3];
91794 nHb(e, o2, n);
91795 }
91796 }
91797 for (f2 = a.a, h = 0, j = f2.length; h < j; ++h) {
91798 e = f2[h];
91799 JD(e, 326) && BD(e, 326).Ue();
91800 }
91801 }
91802 function boc(a) {
91803 var b, c2, d, e, f2, g, h, i3, j, k;
91804 k = KC(WD, oje, 25, a.b.c.length + 1, 15, 1);
91805 j = new Tqb();
91806 d = 0;
91807 for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
91808 e = BD(mlb(f2), 29);
91809 k[d++] = j.a.gc();
91810 for (i3 = new olb(e.a); i3.a < i3.c.c.length; ) {
91811 g = BD(mlb(i3), 10);
91812 for (c2 = new Sr(ur(U_b(g).a.Kc(), new Sq())); Qr(c2); ) {
91813 b = BD(Rr(c2), 17);
91814 j.a.zc(b, j);
91815 }
91816 }
91817 for (h = new olb(e.a); h.a < h.c.c.length; ) {
91818 g = BD(mlb(h), 10);
91819 for (c2 = new Sr(ur(R_b(g).a.Kc(), new Sq())); Qr(c2); ) {
91820 b = BD(Rr(c2), 17);
91821 j.a.Bc(b) != null;
91822 }
91823 }
91824 }
91825 return k;
91826 }
91827 function F2d(a, b, c2, d) {
91828 var e, f2, g, h, i3;
91829 i3 = S6d(a.e.Tg(), b);
91830 e = BD(a.g, 119);
91831 Q6d();
91832 if (BD(b, 66).Oj()) {
91833 for (g = 0; g < a.i; ++g) {
91834 f2 = e[g];
91835 if (i3.rl(f2.ak()) && pb(f2, c2)) {
91836 return true;
91837 }
91838 }
91839 } else if (c2 != null) {
91840 for (h = 0; h < a.i; ++h) {
91841 f2 = e[h];
91842 if (i3.rl(f2.ak()) && pb(c2, f2.dd())) {
91843 return true;
91844 }
91845 }
91846 if (d) {
91847 for (g = 0; g < a.i; ++g) {
91848 f2 = e[g];
91849 if (i3.rl(f2.ak()) && PD(c2) === PD(a3d(a, BD(f2.dd(), 56)))) {
91850 return true;
91851 }
91852 }
91853 }
91854 } else {
91855 for (g = 0; g < a.i; ++g) {
91856 f2 = e[g];
91857 if (i3.rl(f2.ak()) && f2.dd() == null) {
91858 return false;
91859 }
91860 }
91861 }
91862 return false;
91863 }
91864 function e3d(a, b, c2, d) {
91865 var e, f2, g, h, i3, j;
91866 j = S6d(a.e.Tg(), b);
91867 g = BD(a.g, 119);
91868 if (T6d(a.e, b)) {
91869 if (b.hi()) {
91870 f2 = M2d(a, b, d, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0);
91871 if (f2 >= 0 && f2 != c2) {
91872 throw vbb(new Wdb(kue));
91873 }
91874 }
91875 e = 0;
91876 for (i3 = 0; i3 < a.i; ++i3) {
91877 h = g[i3];
91878 if (j.rl(h.ak())) {
91879 if (e == c2) {
91880 return BD(Gtd(a, i3, (Q6d(), BD(b, 66).Oj() ? BD(d, 72) : R6d(b, d))), 72);
91881 }
91882 ++e;
91883 }
91884 }
91885 throw vbb(new qcb(gve + c2 + mue + e));
91886 } else {
91887 for (i3 = 0; i3 < a.i; ++i3) {
91888 h = g[i3];
91889 if (j.rl(h.ak())) {
91890 return Q6d(), BD(b, 66).Oj() ? h : h.dd();
91891 }
91892 }
91893 return null;
91894 }
91895 }
91896 function ONb(a, b, c2, d) {
91897 var e, f2, g, h;
91898 h = c2;
91899 for (g = new olb(b.a); g.a < g.c.c.length; ) {
91900 f2 = BD(mlb(g), 221);
91901 e = BD(f2.b, 65);
91902 if (Jy(a.b.c, e.b.c + e.b.b) <= 0 && Jy(e.b.c, a.b.c + a.b.b) <= 0 && Jy(a.b.d, e.b.d + e.b.a) <= 0 && Jy(e.b.d, a.b.d + a.b.a) <= 0) {
91903 if (Jy(e.b.c, a.b.c + a.b.b) == 0 && d.a < 0 || Jy(e.b.c + e.b.b, a.b.c) == 0 && d.a > 0 || Jy(e.b.d, a.b.d + a.b.a) == 0 && d.b < 0 || Jy(e.b.d + e.b.a, a.b.d) == 0 && d.b > 0) {
91904 h = 0;
91905 break;
91906 }
91907 } else {
91908 h = $wnd.Math.min(h, YNb(a, e, d));
91909 }
91910 h = $wnd.Math.min(h, ONb(a, f2, h, d));
91911 }
91912 return h;
91913 }
91914 function ifd(a, b) {
91915 var c2, d, e, f2, g, h, i3;
91916 if (a.b < 2) {
91917 throw vbb(new Wdb("The vector chain must contain at least a source and a target point."));
91918 }
91919 e = (sCb(a.b != 0), BD(a.a.a.c, 8));
91920 nmd(b, e.a, e.b);
91921 i3 = new Oyd((!b.a && (b.a = new xMd(y2, b, 5)), b.a));
91922 g = Jsb(a, 1);
91923 while (g.a < a.b - 1) {
91924 h = BD(Xsb(g), 8);
91925 if (i3.e != i3.i.gc()) {
91926 c2 = BD(Dyd(i3), 469);
91927 } else {
91928 c2 = (Fhd(), d = new xkd(), d);
91929 Myd(i3, c2);
91930 }
91931 ukd(c2, h.a, h.b);
91932 }
91933 while (i3.e != i3.i.gc()) {
91934 Dyd(i3);
91935 Eyd(i3);
91936 }
91937 f2 = (sCb(a.b != 0), BD(a.c.b.c, 8));
91938 gmd(b, f2.a, f2.b);
91939 }
91940 function $lc(a, b) {
91941 var c2, d, e, f2, g, h, i3, j, k;
91942 c2 = 0;
91943 for (e = new olb((tCb(0, a.c.length), BD(a.c[0], 101)).g.b.j); e.a < e.c.c.length; ) {
91944 d = BD(mlb(e), 11);
91945 d.p = c2++;
91946 }
91947 b == (Ucd(), Acd) ? Okb(a, new gmc()) : Okb(a, new kmc());
91948 h = 0;
91949 k = a.c.length - 1;
91950 while (h < k) {
91951 g = (tCb(h, a.c.length), BD(a.c[h], 101));
91952 j = (tCb(k, a.c.length), BD(a.c[k], 101));
91953 f2 = b == Acd ? g.c : g.a;
91954 i3 = b == Acd ? j.a : j.c;
91955 amc(g, b, (Ajc(), yjc), f2);
91956 amc(j, b, xjc, i3);
91957 ++h;
91958 --k;
91959 }
91960 h == k && amc((tCb(h, a.c.length), BD(a.c[h], 101)), b, (Ajc(), wjc), null);
91961 }
91962 function UVc(a, b, c2) {
91963 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
91964 l = a.a.i + a.a.g / 2;
91965 m = a.a.i + a.a.g / 2;
91966 o2 = b.i + b.g / 2;
91967 q = b.j + b.f / 2;
91968 h = new f7c(o2, q);
91969 j = BD(hkd(b, (Y9c(), C9c)), 8);
91970 j.a = j.a + l;
91971 j.b = j.b + m;
91972 f2 = (h.b - j.b) / (h.a - j.a);
91973 d = h.b - f2 * h.a;
91974 p = c2.i + c2.g / 2;
91975 r = c2.j + c2.f / 2;
91976 i3 = new f7c(p, r);
91977 k = BD(hkd(c2, C9c), 8);
91978 k.a = k.a + l;
91979 k.b = k.b + m;
91980 g = (i3.b - k.b) / (i3.a - k.a);
91981 e = i3.b - g * i3.a;
91982 n = (d - e) / (g - f2);
91983 if (j.a < n && h.a < n || n < j.a && n < h.a) {
91984 return false;
91985 } else if (k.a < n && i3.a < n || n < k.a && n < i3.a) {
91986 return false;
91987 }
91988 return true;
91989 }
91990 function gqd(a, b) {
91991 var c2, d, e, f2, g, h, i3, j, k, l, m, n;
91992 m = BD(Ohb(a.c, b), 183);
91993 if (!m) {
91994 throw vbb(new cqd("Edge did not exist in input."));
91995 }
91996 j = Wpd(m);
91997 f2 = Fhe((!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a));
91998 h = !f2;
91999 if (h) {
92000 n = new wB();
92001 c2 = new Rrd(a, j, n);
92002 Dhe((!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a), c2);
92003 cC(m, Nte, n);
92004 }
92005 e = ikd(b, (Y9c(), Q8c));
92006 if (e) {
92007 k = BD(hkd(b, Q8c), 74);
92008 g = !k || Ehe(k);
92009 i3 = !g;
92010 if (i3) {
92011 l = new wB();
92012 d = new Zrd(l);
92013 reb(k, d);
92014 cC(m, "junctionPoints", l);
92015 }
92016 }
92017 Upd(m, "container", Mld(b).k);
92018 return null;
92019 }
92020 function eDb(a, b, c2) {
92021 var d, e, f2, g, h, i3, j, k;
92022 this.a = a;
92023 this.b = b;
92024 this.c = c2;
92025 this.e = Ou(OC(GC(GM, 1), Uhe, 168, 0, [new aDb(a, b), new aDb(b, c2), new aDb(c2, a)]));
92026 this.f = Ou(OC(GC(m1, 1), nie, 8, 0, [a, b, c2]));
92027 this.d = (d = c7c(R6c(this.b), this.a), e = c7c(R6c(this.c), this.a), f2 = c7c(R6c(this.c), this.b), g = d.a * (this.a.a + this.b.a) + d.b * (this.a.b + this.b.b), h = e.a * (this.a.a + this.c.a) + e.b * (this.a.b + this.c.b), i3 = 2 * (d.a * f2.b - d.b * f2.a), j = (e.b * g - d.b * h) / i3, k = (d.a * h - e.a * g) / i3, new f7c(j, k));
92028 }
92029 function nvd(a, b, c2, d) {
92030 var e, f2, g, h, i3, j, k, l, m, n, o2;
92031 m = new yC(a.p);
92032 cC(b, fue, m);
92033 if (c2 && !(!a.f ? null : vmb(a.f)).a.dc()) {
92034 k = new wB();
92035 cC(b, "logs", k);
92036 h = 0;
92037 for (o2 = new Dnb((!a.f ? null : vmb(a.f)).b.Kc()); o2.b.Ob(); ) {
92038 n = GD(o2.b.Pb());
92039 l = new yC(n);
92040 tB(k, h);
92041 vB(k, h, l);
92042 ++h;
92043 }
92044 }
92045 if (d) {
92046 j = new TB(a.q);
92047 cC(b, "executionTime", j);
92048 }
92049 if (!vmb(a.a).a.dc()) {
92050 g = new wB();
92051 cC(b, Jte, g);
92052 h = 0;
92053 for (f2 = new Dnb(vmb(a.a).b.Kc()); f2.b.Ob(); ) {
92054 e = BD(f2.b.Pb(), 1949);
92055 i3 = new eC();
92056 tB(g, h);
92057 vB(g, h, i3);
92058 nvd(e, i3, c2, d);
92059 ++h;
92060 }
92061 }
92062 }
92063 function PZb(a, b) {
92064 var c2, d, e, f2, g, h;
92065 f2 = a.c;
92066 g = a.d;
92067 QZb(a, null);
92068 RZb(a, null);
92069 b && Ccb(DD(vNb(g, (wtc(), Msc)))) ? QZb(a, i_b(g.i, (KAc(), IAc), (Ucd(), zcd))) : QZb(a, g);
92070 b && Ccb(DD(vNb(f2, (wtc(), etc)))) ? RZb(a, i_b(f2.i, (KAc(), HAc), (Ucd(), Tcd))) : RZb(a, f2);
92071 for (d = new olb(a.b); d.a < d.c.c.length; ) {
92072 c2 = BD(mlb(d), 70);
92073 e = BD(vNb(c2, (Nyc(), Qwc)), 272);
92074 e == (qad(), pad2) ? yNb(c2, Qwc, oad) : e == oad && yNb(c2, Qwc, pad2);
92075 }
92076 h = Ccb(DD(vNb(a, (wtc(), ltc))));
92077 yNb(a, ltc, (Bcb(), h ? false : true));
92078 a.a = w7c(a.a);
92079 }
92080 function VQb(a, b, c2) {
92081 var d, e, f2, g, h, i3;
92082 d = 0;
92083 for (f2 = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); f2.e != f2.i.gc(); ) {
92084 e = BD(Dyd(f2), 33);
92085 g = "";
92086 (!e.n && (e.n = new cUd(D2, e, 1, 7)), e.n).i == 0 || (g = BD(qud((!e.n && (e.n = new cUd(D2, e, 1, 7)), e.n), 0), 137).a);
92087 h = new pRb(g);
92088 tNb(h, e);
92089 yNb(h, (HSb(), FSb), e);
92090 h.b = d++;
92091 h.d.a = e.i + e.g / 2;
92092 h.d.b = e.j + e.f / 2;
92093 h.e.a = $wnd.Math.max(e.g, 1);
92094 h.e.b = $wnd.Math.max(e.f, 1);
92095 Ekb(b.e, h);
92096 jrb(c2.f, e, h);
92097 i3 = BD(hkd(e, (wSb(), mSb)), 98);
92098 i3 == (dcd(), ccd) && (i3 = bcd);
92099 }
92100 }
92101 function XJc(a, b) {
92102 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
92103 c2 = nGb(new pGb(), a.f);
92104 j = a.i[b.c.i.p];
92105 n = a.i[b.d.i.p];
92106 i3 = b.c;
92107 m = b.d;
92108 h = i3.a.b;
92109 l = m.a.b;
92110 j.b || (h += i3.n.b);
92111 n.b || (l += m.n.b);
92112 k = QD($wnd.Math.max(0, h - l));
92113 g = QD($wnd.Math.max(0, l - h));
92114 o2 = (p = $wnd.Math.max(1, BD(vNb(b, (Nyc(), eyc)), 19).a), q = JJc(b.c.i.k, b.d.i.k), p * q);
92115 e = AFb(DFb(CFb(BFb(EFb(new FFb(), o2), g), c2), BD(Ohb(a.k, b.c), 121)));
92116 f2 = AFb(DFb(CFb(BFb(EFb(new FFb(), o2), k), c2), BD(Ohb(a.k, b.d), 121)));
92117 d = new qKc(e, f2);
92118 a.c[b.p] = d;
92119 }
92120 function NEc(a, b, c2, d) {
92121 var e, f2, g, h, i3, j;
92122 g = new _Ec(a, b, c2);
92123 i3 = new Bib(d, 0);
92124 e = false;
92125 while (i3.b < i3.d.gc()) {
92126 h = (sCb(i3.b < i3.d.gc()), BD(i3.d.Xb(i3.c = i3.b++), 233));
92127 if (h == b || h == c2) {
92128 uib(i3);
92129 } else if (!e && Edb(REc(h.g, h.d[0]).a) > Edb(REc(g.g, g.d[0]).a)) {
92130 sCb(i3.b > 0);
92131 i3.a.Xb(i3.c = --i3.b);
92132 Aib(i3, g);
92133 e = true;
92134 } else if (!!h.e && h.e.gc() > 0) {
92135 f2 = (!h.e && (h.e = new Rkb()), h.e).Mc(b);
92136 j = (!h.e && (h.e = new Rkb()), h.e).Mc(c2);
92137 if (f2 || j) {
92138 (!h.e && (h.e = new Rkb()), h.e).Fc(g);
92139 ++g.c;
92140 }
92141 }
92142 }
92143 e || (d.c[d.c.length] = g, true);
92144 }
92145 function odc(a) {
92146 var b, c2, d;
92147 if (fcd(BD(vNb(a, (Nyc(), Vxc)), 98))) {
92148 for (c2 = new olb(a.j); c2.a < c2.c.c.length; ) {
92149 b = BD(mlb(c2), 11);
92150 b.j == (Ucd(), Scd) && (d = BD(vNb(b, (wtc(), gtc)), 10), d ? G0b(b, BD(vNb(d, Hsc), 61)) : b.e.c.length - b.g.c.length < 0 ? G0b(b, zcd) : G0b(b, Tcd));
92151 }
92152 } else {
92153 for (c2 = new olb(a.j); c2.a < c2.c.c.length; ) {
92154 b = BD(mlb(c2), 11);
92155 d = BD(vNb(b, (wtc(), gtc)), 10);
92156 d ? G0b(b, BD(vNb(d, Hsc), 61)) : b.e.c.length - b.g.c.length < 0 ? G0b(b, (Ucd(), zcd)) : G0b(b, (Ucd(), Tcd));
92157 }
92158 yNb(a, Vxc, (dcd(), acd));
92159 }
92160 }
92161 function age(a) {
92162 var b, c2, d;
92163 switch (a) {
92164 case 91:
92165 case 93:
92166 case 45:
92167 case 94:
92168 case 44:
92169 case 92:
92170 d = "\\" + String.fromCharCode(a & aje);
92171 break;
92172 case 12:
92173 d = "\\f";
92174 break;
92175 case 10:
92176 d = "\\n";
92177 break;
92178 case 13:
92179 d = "\\r";
92180 break;
92181 case 9:
92182 d = "\\t";
92183 break;
92184 case 27:
92185 d = "\\e";
92186 break;
92187 default:
92188 if (a < 32) {
92189 c2 = (b = a >>> 0, "0" + b.toString(16));
92190 d = "\\x" + qfb(c2, c2.length - 2, c2.length);
92191 } else if (a >= Tje) {
92192 c2 = (b = a >>> 0, "0" + b.toString(16));
92193 d = "\\v" + qfb(c2, c2.length - 6, c2.length);
92194 } else
92195 d = "" + String.fromCharCode(a & aje);
92196 }
92197 return d;
92198 }
92199 function yhb(a, b) {
92200 var c2, d, e, f2, g, h, i3, j, k, l;
92201 g = a.e;
92202 i3 = b.e;
92203 if (i3 == 0) {
92204 return a;
92205 }
92206 if (g == 0) {
92207 return b.e == 0 ? b : new Vgb(-b.e, b.d, b.a);
92208 }
92209 f2 = a.d;
92210 h = b.d;
92211 if (f2 + h == 2) {
92212 c2 = xbb(a.a[0], Yje);
92213 d = xbb(b.a[0], Yje);
92214 g < 0 && (c2 = Jbb(c2));
92215 i3 < 0 && (d = Jbb(d));
92216 return ghb(Qbb(c2, d));
92217 }
92218 e = f2 != h ? f2 > h ? 1 : -1 : whb(a.a, b.a, f2);
92219 if (e == -1) {
92220 l = -i3;
92221 k = g == i3 ? zhb(b.a, h, a.a, f2) : uhb(b.a, h, a.a, f2);
92222 } else {
92223 l = g;
92224 if (g == i3) {
92225 if (e == 0) {
92226 return Hgb(), Ggb;
92227 }
92228 k = zhb(a.a, f2, b.a, h);
92229 } else {
92230 k = uhb(a.a, f2, b.a, h);
92231 }
92232 }
92233 j = new Vgb(l, k.length, k);
92234 Jgb(j);
92235 return j;
92236 }
92237 function YPc(a) {
92238 var b, c2, d, e, f2, g;
92239 this.e = new Rkb();
92240 this.a = new Rkb();
92241 for (c2 = a.b - 1; c2 < 3; c2++) {
92242 St(a, 0, BD(Ut(a, 0), 8));
92243 }
92244 if (a.b < 4) {
92245 throw vbb(new Wdb("At (least dimension + 1) control points are necessary!"));
92246 } else {
92247 this.b = 3;
92248 this.d = true;
92249 this.c = false;
92250 TPc(this, a.b + this.b - 1);
92251 g = new Rkb();
92252 f2 = new olb(this.e);
92253 for (b = 0; b < this.b - 1; b++) {
92254 Ekb(g, ED(mlb(f2)));
92255 }
92256 for (e = Jsb(a, 0); e.b != e.d.c; ) {
92257 d = BD(Xsb(e), 8);
92258 Ekb(g, ED(mlb(f2)));
92259 Ekb(this.a, new bQc(d, g));
92260 tCb(0, g.c.length);
92261 g.c.splice(0, 1);
92262 }
92263 }
92264 }
92265 function Bac(a, b) {
92266 var c2, d, e, f2, g, h, i3, j, k;
92267 for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
92268 e = BD(mlb(f2), 29);
92269 for (h = new olb(e.a); h.a < h.c.c.length; ) {
92270 g = BD(mlb(h), 10);
92271 if (g.k == (j0b(), f0b)) {
92272 i3 = (j = BD(Rr(new Sr(ur(R_b(g).a.Kc(), new Sq()))), 17), k = BD(Rr(new Sr(ur(U_b(g).a.Kc(), new Sq()))), 17), !Ccb(DD(vNb(j, (wtc(), ltc)))) || !Ccb(DD(vNb(k, ltc)))) ? b : sbd(b);
92273 zac(g, i3);
92274 }
92275 for (d = new Sr(ur(U_b(g).a.Kc(), new Sq())); Qr(d); ) {
92276 c2 = BD(Rr(d), 17);
92277 i3 = Ccb(DD(vNb(c2, (wtc(), ltc)))) ? sbd(b) : b;
92278 yac(c2, i3);
92279 }
92280 }
92281 }
92282 }
92283 function yZc(a, b, c2, d, e) {
92284 var f2, g, h;
92285 if (c2.f >= b.o && c2.f <= b.f || b.a * 0.5 <= c2.f && b.a * 1.5 >= c2.f) {
92286 g = BD(Ikb(b.n, b.n.c.length - 1), 211);
92287 if (g.e + g.d + c2.g + e <= d && (f2 = BD(Ikb(b.n, b.n.c.length - 1), 211), f2.f - a.f + c2.f <= a.b || a.a.c.length == 1)) {
92288 EZc(b, c2);
92289 return true;
92290 } else if (b.s + c2.g <= d && (b.t + b.d + c2.f + e <= a.b || a.a.c.length == 1)) {
92291 Ekb(b.b, c2);
92292 h = BD(Ikb(b.n, b.n.c.length - 1), 211);
92293 Ekb(b.n, new VZc(b.s, h.f + h.a + b.i, b.i));
92294 QZc(BD(Ikb(b.n, b.n.c.length - 1), 211), c2);
92295 GZc(b, c2);
92296 return true;
92297 }
92298 }
92299 return false;
92300 }
92301 function Zxd(a, b, c2) {
92302 var d, e, f2, g;
92303 if (a.ej()) {
92304 e = null;
92305 f2 = a.fj();
92306 d = a.Zi(1, g = uud(a, b, c2), c2, b, f2);
92307 if (a.bj() && !(a.ni() && g != null ? pb(g, c2) : PD(g) === PD(c2))) {
92308 g != null && (e = a.dj(g, e));
92309 e = a.cj(c2, e);
92310 a.ij() && (e = a.lj(g, c2, e));
92311 if (!e) {
92312 a.$i(d);
92313 } else {
92314 e.Ei(d);
92315 e.Fi();
92316 }
92317 } else {
92318 a.ij() && (e = a.lj(g, c2, e));
92319 if (!e) {
92320 a.$i(d);
92321 } else {
92322 e.Ei(d);
92323 e.Fi();
92324 }
92325 }
92326 return g;
92327 } else {
92328 g = uud(a, b, c2);
92329 if (a.bj() && !(a.ni() && g != null ? pb(g, c2) : PD(g) === PD(c2))) {
92330 e = null;
92331 g != null && (e = a.dj(g, null));
92332 e = a.cj(c2, e);
92333 !!e && e.Fi();
92334 }
92335 return g;
92336 }
92337 }
92338 function YA(a, b) {
92339 var c2, d, e, f2, g, h, i3, j;
92340 b %= 24;
92341 if (a.q.getHours() != b) {
92342 d = new $wnd.Date(a.q.getTime());
92343 d.setDate(d.getDate() + 1);
92344 h = a.q.getTimezoneOffset() - d.getTimezoneOffset();
92345 if (h > 0) {
92346 i3 = h / 60 | 0;
92347 j = h % 60;
92348 e = a.q.getDate();
92349 c2 = a.q.getHours();
92350 c2 + i3 >= 24 && ++e;
92351 f2 = new $wnd.Date(a.q.getFullYear(), a.q.getMonth(), e, b + i3, a.q.getMinutes() + j, a.q.getSeconds(), a.q.getMilliseconds());
92352 a.q.setTime(f2.getTime());
92353 }
92354 }
92355 g = a.q.getTime();
92356 a.q.setTime(g + 36e5);
92357 a.q.getHours() != b && a.q.setTime(g);
92358 }
92359 function opc(a, b) {
92360 var c2, d, e, f2, g;
92361 Odd(b, "Path-Like Graph Wrapping", 1);
92362 if (a.b.c.length == 0) {
92363 Qdd(b);
92364 return;
92365 }
92366 e = new Xoc(a);
92367 g = (e.i == null && (e.i = Soc(e, new Zoc())), Edb(e.i) * e.f);
92368 c2 = g / (e.i == null && (e.i = Soc(e, new Zoc())), Edb(e.i));
92369 if (e.b > c2) {
92370 Qdd(b);
92371 return;
92372 }
92373 switch (BD(vNb(a, (Nyc(), Gyc)), 337).g) {
92374 case 2:
92375 f2 = new hpc();
92376 break;
92377 case 0:
92378 f2 = new Ync();
92379 break;
92380 default:
92381 f2 = new kpc();
92382 }
92383 d = f2.Vf(a, e);
92384 if (!f2.Wf()) {
92385 switch (BD(vNb(a, Myc), 338).g) {
92386 case 2:
92387 d = tpc(e, d);
92388 break;
92389 case 1:
92390 d = rpc(e, d);
92391 }
92392 }
92393 npc(a, e, d);
92394 Qdd(b);
92395 }
92396 function MFc(a, b) {
92397 var c2, d, e, f2;
92398 Fub(a.d, a.e);
92399 a.c.a.$b();
92400 if (Edb(ED(vNb(b.j, (Nyc(), uwc)))) != 0 || Edb(ED(vNb(b.j, uwc))) != 0) {
92401 c2 = dme;
92402 PD(vNb(b.j, ywc)) !== PD((tAc(), rAc)) && yNb(b.j, (wtc(), Jsc), (Bcb(), true));
92403 f2 = BD(vNb(b.j, Ayc), 19).a;
92404 for (e = 0; e < f2; e++) {
92405 d = WFc(a, b);
92406 if (d < c2) {
92407 c2 = d;
92408 ZFc(a);
92409 if (c2 == 0) {
92410 break;
92411 }
92412 }
92413 }
92414 } else {
92415 c2 = Ohe;
92416 PD(vNb(b.j, ywc)) !== PD((tAc(), rAc)) && yNb(b.j, (wtc(), Jsc), (Bcb(), true));
92417 f2 = BD(vNb(b.j, Ayc), 19).a;
92418 for (e = 0; e < f2; e++) {
92419 d = XFc(a, b);
92420 if (d < c2) {
92421 c2 = d;
92422 ZFc(a);
92423 if (c2 == 0) {
92424 break;
92425 }
92426 }
92427 }
92428 }
92429 }
92430 function spc(a, b) {
92431 var c2, d, e, f2, g, h, i3, j;
92432 g = new Rkb();
92433 h = 0;
92434 c2 = 0;
92435 i3 = 0;
92436 while (h < b.c.length - 1 && c2 < a.gc()) {
92437 d = BD(a.Xb(c2), 19).a + i3;
92438 while ((tCb(h + 1, b.c.length), BD(b.c[h + 1], 19)).a < d) {
92439 ++h;
92440 }
92441 j = 0;
92442 f2 = d - (tCb(h, b.c.length), BD(b.c[h], 19)).a;
92443 e = (tCb(h + 1, b.c.length), BD(b.c[h + 1], 19)).a - d;
92444 f2 > e && ++j;
92445 Ekb(g, (tCb(h + j, b.c.length), BD(b.c[h + j], 19)));
92446 i3 += (tCb(h + j, b.c.length), BD(b.c[h + j], 19)).a - d;
92447 ++c2;
92448 while (c2 < a.gc() && BD(a.Xb(c2), 19).a + i3 <= (tCb(h + j, b.c.length), BD(b.c[h + j], 19)).a) {
92449 ++c2;
92450 }
92451 h += 1 + j;
92452 }
92453 return g;
92454 }
92455 function RKd(a) {
92456 var b, c2, d, e, f2, g, h;
92457 if (!a.d) {
92458 h = new XNd();
92459 b = KKd;
92460 f2 = b.a.zc(a, b);
92461 if (f2 == null) {
92462 for (d = new Fyd(_Kd(a)); d.e != d.i.gc(); ) {
92463 c2 = BD(Dyd(d), 26);
92464 ytd(h, RKd(c2));
92465 }
92466 b.a.Bc(a) != null;
92467 b.a.gc() == 0 && void 0;
92468 }
92469 g = h.i;
92470 for (e = (!a.q && (a.q = new cUd(n5, a, 11, 10)), new Fyd(a.q)); e.e != e.i.gc(); ++g) {
92471 BD(Dyd(e), 399);
92472 }
92473 ytd(h, (!a.q && (a.q = new cUd(n5, a, 11, 10)), a.q));
92474 vud(h);
92475 a.d = new nNd((BD(qud(ZKd((NFd(), MFd).o), 9), 18), h.i), h.g);
92476 a.e = BD(h.g, 673);
92477 a.e == null && (a.e = LKd);
92478 $Kd(a).b &= -17;
92479 }
92480 return a.d;
92481 }
92482 function M2d(a, b, c2, d) {
92483 var e, f2, g, h, i3, j;
92484 j = S6d(a.e.Tg(), b);
92485 i3 = 0;
92486 e = BD(a.g, 119);
92487 Q6d();
92488 if (BD(b, 66).Oj()) {
92489 for (g = 0; g < a.i; ++g) {
92490 f2 = e[g];
92491 if (j.rl(f2.ak())) {
92492 if (pb(f2, c2)) {
92493 return i3;
92494 }
92495 ++i3;
92496 }
92497 }
92498 } else if (c2 != null) {
92499 for (h = 0; h < a.i; ++h) {
92500 f2 = e[h];
92501 if (j.rl(f2.ak())) {
92502 if (pb(c2, f2.dd())) {
92503 return i3;
92504 }
92505 ++i3;
92506 }
92507 }
92508 if (d) {
92509 i3 = 0;
92510 for (g = 0; g < a.i; ++g) {
92511 f2 = e[g];
92512 if (j.rl(f2.ak())) {
92513 if (PD(c2) === PD(a3d(a, BD(f2.dd(), 56)))) {
92514 return i3;
92515 }
92516 ++i3;
92517 }
92518 }
92519 }
92520 } else {
92521 for (g = 0; g < a.i; ++g) {
92522 f2 = e[g];
92523 if (j.rl(f2.ak())) {
92524 if (f2.dd() == null) {
92525 return i3;
92526 }
92527 ++i3;
92528 }
92529 }
92530 }
92531 return -1;
92532 }
92533 function aed(a, b, c2, d, e) {
92534 var f2, g, h, i3, j, k, l, m, n;
92535 mmb();
92536 Okb(a, new Jed());
92537 g = Ru(a);
92538 n = new Rkb();
92539 m = new Rkb();
92540 h = null;
92541 i3 = 0;
92542 while (g.b != 0) {
92543 f2 = BD(g.b == 0 ? null : (sCb(g.b != 0), Nsb(g, g.a.a)), 157);
92544 if (!h || red(h) * qed(h) / 2 < red(f2) * qed(f2)) {
92545 h = f2;
92546 n.c[n.c.length] = f2;
92547 } else {
92548 i3 += red(f2) * qed(f2);
92549 m.c[m.c.length] = f2;
92550 if (m.c.length > 1 && (i3 > red(h) * qed(h) / 2 || g.b == 0)) {
92551 l = new wed(m);
92552 k = red(h) / qed(h);
92553 j = fed(l, b, new p0b(), c2, d, e, k);
92554 P6c(X6c(l.e), j);
92555 h = l;
92556 n.c[n.c.length] = l;
92557 i3 = 0;
92558 m.c = KC(SI, Uhe, 1, 0, 5, 1);
92559 }
92560 }
92561 }
92562 Gkb(n, m);
92563 return n;
92564 }
92565 function y6d(a, b, c2, d) {
92566 var e, f2, g, h, i3, j, k, l, m, n, o2, p;
92567 if (c2.mh(b)) {
92568 k = (n = b, !n ? null : BD(d, 49).xh(n));
92569 if (k) {
92570 p = c2.bh(b, a.a);
92571 o2 = b.t;
92572 if (o2 > 1 || o2 == -1) {
92573 l = BD(p, 69);
92574 m = BD(k, 69);
92575 if (l.dc()) {
92576 m.$b();
92577 } else {
92578 g = !!zUd(b);
92579 f2 = 0;
92580 for (h = a.a ? l.Kc() : l.Zh(); h.Ob(); ) {
92581 j = BD(h.Pb(), 56);
92582 e = BD(Wrb(a, j), 56);
92583 if (!e) {
92584 if (a.b && !g) {
92585 m.Xh(f2, j);
92586 ++f2;
92587 }
92588 } else {
92589 if (g) {
92590 i3 = m.Xc(e);
92591 i3 == -1 ? m.Xh(f2, e) : f2 != i3 && m.ji(f2, e);
92592 } else {
92593 m.Xh(f2, e);
92594 }
92595 ++f2;
92596 }
92597 }
92598 }
92599 } else {
92600 if (p == null) {
92601 k.Wb(null);
92602 } else {
92603 e = Wrb(a, p);
92604 e == null ? a.b && !zUd(b) && k.Wb(p) : k.Wb(e);
92605 }
92606 }
92607 }
92608 }
92609 }
92610 function E6b(a, b) {
92611 var c2, d, e, f2, g, h, i3, j;
92612 c2 = new L6b();
92613 for (e = new Sr(ur(R_b(b).a.Kc(), new Sq())); Qr(e); ) {
92614 d = BD(Rr(e), 17);
92615 if (OZb(d)) {
92616 continue;
92617 }
92618 h = d.c.i;
92619 if (F6b(h, C6b)) {
92620 j = G6b(a, h, C6b, B6b);
92621 if (j == -1) {
92622 continue;
92623 }
92624 c2.b = $wnd.Math.max(c2.b, j);
92625 !c2.a && (c2.a = new Rkb());
92626 Ekb(c2.a, h);
92627 }
92628 }
92629 for (g = new Sr(ur(U_b(b).a.Kc(), new Sq())); Qr(g); ) {
92630 f2 = BD(Rr(g), 17);
92631 if (OZb(f2)) {
92632 continue;
92633 }
92634 i3 = f2.d.i;
92635 if (F6b(i3, B6b)) {
92636 j = G6b(a, i3, B6b, C6b);
92637 if (j == -1) {
92638 continue;
92639 }
92640 c2.d = $wnd.Math.max(c2.d, j);
92641 !c2.c && (c2.c = new Rkb());
92642 Ekb(c2.c, i3);
92643 }
92644 }
92645 return c2;
92646 }
92647 function Khb(a) {
92648 Dhb();
92649 var b, c2, d, e;
92650 b = QD(a);
92651 if (a < Chb.length) {
92652 return Chb[b];
92653 } else if (a <= 50) {
92654 return Pgb((Hgb(), Egb), b);
92655 } else if (a <= _ie) {
92656 return Qgb(Pgb(Bhb[1], b), b);
92657 }
92658 if (a > 1e6) {
92659 throw vbb(new ocb("power of ten too big"));
92660 }
92661 if (a <= Ohe) {
92662 return Qgb(Pgb(Bhb[1], b), b);
92663 }
92664 d = Pgb(Bhb[1], Ohe);
92665 e = d;
92666 c2 = Cbb(a - Ohe);
92667 b = QD(a % Ohe);
92668 while (ybb(c2, Ohe) > 0) {
92669 e = Ogb(e, d);
92670 c2 = Qbb(c2, Ohe);
92671 }
92672 e = Ogb(e, Pgb(Bhb[1], b));
92673 e = Qgb(e, Ohe);
92674 c2 = Cbb(a - Ohe);
92675 while (ybb(c2, Ohe) > 0) {
92676 e = Qgb(e, Ohe);
92677 c2 = Qbb(c2, Ohe);
92678 }
92679 e = Qgb(e, b);
92680 return e;
92681 }
92682 function X5b(a, b) {
92683 var c2, d, e, f2, g, h, i3, j, k;
92684 Odd(b, "Hierarchical port dummy size processing", 1);
92685 i3 = new Rkb();
92686 k = new Rkb();
92687 d = Edb(ED(vNb(a, (Nyc(), myc))));
92688 c2 = d * 2;
92689 for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
92690 e = BD(mlb(f2), 29);
92691 i3.c = KC(SI, Uhe, 1, 0, 5, 1);
92692 k.c = KC(SI, Uhe, 1, 0, 5, 1);
92693 for (h = new olb(e.a); h.a < h.c.c.length; ) {
92694 g = BD(mlb(h), 10);
92695 if (g.k == (j0b(), e0b)) {
92696 j = BD(vNb(g, (wtc(), Hsc)), 61);
92697 j == (Ucd(), Acd) ? (i3.c[i3.c.length] = g, true) : j == Rcd && (k.c[k.c.length] = g, true);
92698 }
92699 }
92700 Y5b(i3, true, c2);
92701 Y5b(k, false, c2);
92702 }
92703 Qdd(b);
92704 }
92705 function Oac(a, b) {
92706 var c2, d, e, f2, g, h, i3;
92707 Odd(b, "Layer constraint postprocessing", 1);
92708 i3 = a.b;
92709 if (i3.c.length != 0) {
92710 d = (tCb(0, i3.c.length), BD(i3.c[0], 29));
92711 g = BD(Ikb(i3, i3.c.length - 1), 29);
92712 c2 = new H1b(a);
92713 f2 = new H1b(a);
92714 Mac(a, d, g, c2, f2);
92715 c2.a.c.length == 0 || (wCb(0, i3.c.length), aCb(i3.c, 0, c2));
92716 f2.a.c.length == 0 || (i3.c[i3.c.length] = f2, true);
92717 }
92718 if (wNb(a, (wtc(), Lsc))) {
92719 e = new H1b(a);
92720 h = new H1b(a);
92721 Pac(a, e, h);
92722 e.a.c.length == 0 || (wCb(0, i3.c.length), aCb(i3.c, 0, e));
92723 h.a.c.length == 0 || (i3.c[i3.c.length] = h, true);
92724 }
92725 Qdd(b);
92726 }
92727 function b6b(a) {
92728 var b, c2, d, e, f2, g, h, i3, j, k;
92729 for (i3 = new olb(a.a); i3.a < i3.c.c.length; ) {
92730 h = BD(mlb(i3), 10);
92731 if (h.k != (j0b(), e0b)) {
92732 continue;
92733 }
92734 e = BD(vNb(h, (wtc(), Hsc)), 61);
92735 if (e == (Ucd(), zcd) || e == Tcd) {
92736 for (d = new Sr(ur(O_b(h).a.Kc(), new Sq())); Qr(d); ) {
92737 c2 = BD(Rr(d), 17);
92738 b = c2.a;
92739 if (b.b == 0) {
92740 continue;
92741 }
92742 j = c2.c;
92743 if (j.i == h) {
92744 f2 = (sCb(b.b != 0), BD(b.a.a.c, 8));
92745 f2.b = l7c(OC(GC(m1, 1), nie, 8, 0, [j.i.n, j.n, j.a])).b;
92746 }
92747 k = c2.d;
92748 if (k.i == h) {
92749 g = (sCb(b.b != 0), BD(b.c.b.c, 8));
92750 g.b = l7c(OC(GC(m1, 1), nie, 8, 0, [k.i.n, k.n, k.a])).b;
92751 }
92752 }
92753 }
92754 }
92755 }
92756 function Tec(a, b) {
92757 var c2, d, e, f2, g, h, i3;
92758 Odd(b, "Sort By Input Model " + vNb(a, (Nyc(), ywc)), 1);
92759 e = 0;
92760 for (d = new olb(a.b); d.a < d.c.c.length; ) {
92761 c2 = BD(mlb(d), 29);
92762 i3 = e == 0 ? 0 : e - 1;
92763 h = BD(Ikb(a.b, i3), 29);
92764 for (g = new olb(c2.a); g.a < g.c.c.length; ) {
92765 f2 = BD(mlb(g), 10);
92766 if (PD(vNb(f2, Vxc)) !== PD((dcd(), Zbd)) && PD(vNb(f2, Vxc)) !== PD($bd)) {
92767 mmb();
92768 Okb(f2.j, new Tnc(h, Xec(f2)));
92769 Sdd(b, "Node " + f2 + " ports: " + f2.j);
92770 }
92771 }
92772 mmb();
92773 Okb(c2.a, new Bnc(h, BD(vNb(a, ywc), 339), BD(vNb(a, wwc), 378)));
92774 Sdd(b, "Layer " + e + ": " + c2);
92775 ++e;
92776 }
92777 Qdd(b);
92778 }
92779 function U1b(a, b) {
92780 var c2, d, e, f2;
92781 f2 = P1b(b);
92782 MAb(new YAb(null, (!b.c && (b.c = new cUd(F2, b, 9, 9)), new Kub(b.c, 16))), new i2b(f2));
92783 e = BD(vNb(f2, (wtc(), Ksc)), 21);
92784 O1b(b, e);
92785 if (e.Hc((Orc(), Hrc))) {
92786 for (d = new Fyd((!b.c && (b.c = new cUd(F2, b, 9, 9)), b.c)); d.e != d.i.gc(); ) {
92787 c2 = BD(Dyd(d), 118);
92788 Y1b(a, b, f2, c2);
92789 }
92790 }
92791 BD(hkd(b, (Nyc(), Fxc)), 174).gc() != 0 && L1b(b, f2);
92792 Ccb(DD(vNb(f2, Mxc))) && e.Fc(Mrc);
92793 wNb(f2, hyc) && Wyc(new ezc(Edb(ED(vNb(f2, hyc)))), f2);
92794 PD(hkd(b, axc)) === PD((hbd(), ebd)) ? V1b(a, b, f2) : T1b(a, b, f2);
92795 return f2;
92796 }
92797 function hic(a, b, c2, d) {
92798 var e, f2, g;
92799 this.j = new Rkb();
92800 this.k = new Rkb();
92801 this.b = new Rkb();
92802 this.c = new Rkb();
92803 this.e = new I6c();
92804 this.i = new s7c();
92805 this.f = new lEb();
92806 this.d = new Rkb();
92807 this.g = new Rkb();
92808 Ekb(this.b, a);
92809 Ekb(this.b, b);
92810 this.e.c = $wnd.Math.min(a.a, b.a);
92811 this.e.d = $wnd.Math.min(a.b, b.b);
92812 this.e.b = $wnd.Math.abs(a.a - b.a);
92813 this.e.a = $wnd.Math.abs(a.b - b.b);
92814 e = BD(vNb(d, (Nyc(), jxc)), 74);
92815 if (e) {
92816 for (g = Jsb(e, 0); g.b != g.d.c; ) {
92817 f2 = BD(Xsb(g), 8);
92818 ADb(f2.a, a.a) && Dsb(this.i, f2);
92819 }
92820 }
92821 !!c2 && Ekb(this.j, c2);
92822 Ekb(this.k, d);
92823 }
92824 function oTb(a, b, c2) {
92825 var d, e, f2, g, h, i3, j, k, l, m;
92826 k = new gub(new ETb(c2));
92827 h = KC(sbb, dle, 25, a.f.e.c.length, 16, 1);
92828 Glb(h, h.length);
92829 c2[b.b] = 0;
92830 for (j = new olb(a.f.e); j.a < j.c.c.length; ) {
92831 i3 = BD(mlb(j), 144);
92832 i3.b != b.b && (c2[i3.b] = Ohe);
92833 zCb(cub(k, i3));
92834 }
92835 while (k.b.c.length != 0) {
92836 l = BD(dub(k), 144);
92837 h[l.b] = true;
92838 for (f2 = au(new bu(a.b, l), 0); f2.c; ) {
92839 e = BD(uu(f2), 282);
92840 m = rTb(e, l);
92841 if (h[m.b]) {
92842 continue;
92843 }
92844 wNb(e, (bTb(), RSb)) ? g = Edb(ED(vNb(e, RSb))) : g = a.c;
92845 d = c2[l.b] + g;
92846 if (d < c2[m.b]) {
92847 c2[m.b] = d;
92848 eub(k, m);
92849 zCb(cub(k, m));
92850 }
92851 }
92852 }
92853 }
92854 function xMc(a, b, c2) {
92855 var d, e, f2, g, h, i3, j, k, l;
92856 e = true;
92857 for (g = new olb(a.b); g.a < g.c.c.length; ) {
92858 f2 = BD(mlb(g), 29);
92859 j = Qje;
92860 k = null;
92861 for (i3 = new olb(f2.a); i3.a < i3.c.c.length; ) {
92862 h = BD(mlb(i3), 10);
92863 l = Edb(b.p[h.p]) + Edb(b.d[h.p]) - h.d.d;
92864 d = Edb(b.p[h.p]) + Edb(b.d[h.p]) + h.o.b + h.d.a;
92865 if (l > j && d > j) {
92866 k = h;
92867 j = Edb(b.p[h.p]) + Edb(b.d[h.p]) + h.o.b + h.d.a;
92868 } else {
92869 e = false;
92870 c2.n && Sdd(c2, "bk node placement breaks on " + h + " which should have been after " + k);
92871 break;
92872 }
92873 }
92874 if (!e) {
92875 break;
92876 }
92877 }
92878 c2.n && Sdd(c2, b + " is feasible: " + e);
92879 return e;
92880 }
92881 function XNc(a, b, c2, d) {
92882 var e, f2, g, h, i3, j, k;
92883 h = -1;
92884 for (k = new olb(a); k.a < k.c.c.length; ) {
92885 j = BD(mlb(k), 112);
92886 j.g = h--;
92887 e = Tbb(tAb(PAb(JAb(new YAb(null, new Kub(j.f, 16)), new ZNc()), new _Nc())).d);
92888 f2 = Tbb(tAb(PAb(JAb(new YAb(null, new Kub(j.k, 16)), new bOc()), new dOc())).d);
92889 g = e;
92890 i3 = f2;
92891 if (!d) {
92892 g = Tbb(tAb(PAb(new YAb(null, new Kub(j.f, 16)), new fOc())).d);
92893 i3 = Tbb(tAb(PAb(new YAb(null, new Kub(j.k, 16)), new hOc())).d);
92894 }
92895 j.d = g;
92896 j.a = e;
92897 j.i = i3;
92898 j.b = f2;
92899 i3 == 0 ? (Gsb(c2, j, c2.c.b, c2.c), true) : g == 0 && (Gsb(b, j, b.c.b, b.c), true);
92900 }
92901 }
92902 function $8b(a, b, c2, d) {
92903 var e, f2, g, h, i3, j, k;
92904 if (c2.d.i == b.i) {
92905 return;
92906 }
92907 e = new b0b(a);
92908 __b(e, (j0b(), g0b));
92909 yNb(e, (wtc(), $sc), c2);
92910 yNb(e, (Nyc(), Vxc), (dcd(), $bd));
92911 d.c[d.c.length] = e;
92912 g = new H0b();
92913 F0b(g, e);
92914 G0b(g, (Ucd(), Tcd));
92915 h = new H0b();
92916 F0b(h, e);
92917 G0b(h, zcd);
92918 k = c2.d;
92919 RZb(c2, g);
92920 f2 = new UZb();
92921 tNb(f2, c2);
92922 yNb(f2, jxc, null);
92923 QZb(f2, h);
92924 RZb(f2, k);
92925 j = new Bib(c2.b, 0);
92926 while (j.b < j.d.gc()) {
92927 i3 = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 70));
92928 if (PD(vNb(i3, Qwc)) === PD((qad(), oad))) {
92929 yNb(i3, Dsc, c2);
92930 uib(j);
92931 Ekb(f2.b, i3);
92932 }
92933 }
92934 a9b(e, g, h);
92935 }
92936 function Z8b(a, b, c2, d) {
92937 var e, f2, g, h, i3, j, k;
92938 if (c2.c.i == b.i) {
92939 return;
92940 }
92941 e = new b0b(a);
92942 __b(e, (j0b(), g0b));
92943 yNb(e, (wtc(), $sc), c2);
92944 yNb(e, (Nyc(), Vxc), (dcd(), $bd));
92945 d.c[d.c.length] = e;
92946 g = new H0b();
92947 F0b(g, e);
92948 G0b(g, (Ucd(), Tcd));
92949 h = new H0b();
92950 F0b(h, e);
92951 G0b(h, zcd);
92952 RZb(c2, g);
92953 f2 = new UZb();
92954 tNb(f2, c2);
92955 yNb(f2, jxc, null);
92956 QZb(f2, h);
92957 RZb(f2, b);
92958 a9b(e, g, h);
92959 j = new Bib(c2.b, 0);
92960 while (j.b < j.d.gc()) {
92961 i3 = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 70));
92962 k = BD(vNb(i3, Qwc), 272);
92963 if (k == (qad(), oad)) {
92964 wNb(i3, Dsc) || yNb(i3, Dsc, c2);
92965 uib(j);
92966 Ekb(f2.b, i3);
92967 }
92968 }
92969 }
92970 function dDc(a, b, c2, d, e) {
92971 var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
92972 m = new Rkb();
92973 r = Gx(d);
92974 q = b * a.a;
92975 l = 0;
92976 o2 = 0;
92977 f2 = new Tqb();
92978 g = new Tqb();
92979 h = new Rkb();
92980 s = 0;
92981 t4 = 0;
92982 n = 0;
92983 p = 0;
92984 j = 0;
92985 k = 0;
92986 while (r.a.gc() != 0) {
92987 i3 = hDc(r, e, g);
92988 if (i3) {
92989 r.a.Bc(i3) != null;
92990 h.c[h.c.length] = i3;
92991 f2.a.zc(i3, f2);
92992 o2 = a.f[i3.p];
92993 s += a.e[i3.p] - o2 * a.b;
92994 l = a.c[i3.p];
92995 t4 += l * a.b;
92996 k += o2 * a.b;
92997 p += a.e[i3.p];
92998 }
92999 if (!i3 || r.a.gc() == 0 || s >= q && a.e[i3.p] > o2 * a.b || t4 >= c2 * q) {
93000 m.c[m.c.length] = h;
93001 h = new Rkb();
93002 ye(g, f2);
93003 f2.a.$b();
93004 j -= k;
93005 n = $wnd.Math.max(n, j * a.b + p);
93006 j += t4;
93007 s = t4;
93008 t4 = 0;
93009 k = 0;
93010 p = 0;
93011 }
93012 }
93013 return new vgd(n, m);
93014 }
93015 function q4c(a) {
93016 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n;
93017 for (c2 = (j = new $ib(a.c.b).a.vc().Kc(), new djb(j)); c2.a.Ob(); ) {
93018 b = (h = BD(c2.a.Pb(), 42), BD(h.dd(), 149));
93019 e = b.a;
93020 e == null && (e = "");
93021 d = i4c(a.c, e);
93022 !d && e.length == 0 && (d = u4c(a));
93023 !!d && !ze(d.c, b, false) && Dsb(d.c, b);
93024 }
93025 for (g = Jsb(a.a, 0); g.b != g.d.c; ) {
93026 f2 = BD(Xsb(g), 478);
93027 k = j4c(a.c, f2.a);
93028 n = j4c(a.c, f2.b);
93029 !!k && !!n && Dsb(k.c, new vgd(n, f2.c));
93030 }
93031 Osb(a.a);
93032 for (m = Jsb(a.b, 0); m.b != m.d.c; ) {
93033 l = BD(Xsb(m), 478);
93034 b = g4c(a.c, l.a);
93035 i3 = j4c(a.c, l.b);
93036 !!b && !!i3 && B3c(b, i3, l.c);
93037 }
93038 Osb(a.b);
93039 }
93040 function qvd(a, b, c2) {
93041 var d, e, f2, g, h, i3, j, k, l, m, n;
93042 f2 = new fC(a);
93043 g = new ird();
93044 e = (ko(g.g), ko(g.j), Uhb(g.b), ko(g.d), ko(g.i), Uhb(g.k), Uhb(g.c), Uhb(g.e), n = drd(g, f2, null), ard(g, f2), n);
93045 if (b) {
93046 j = new fC(b);
93047 h = rvd(j);
93048 jfd(e, OC(GC(g2, 1), Uhe, 527, 0, [h]));
93049 }
93050 m = false;
93051 l = false;
93052 if (c2) {
93053 j = new fC(c2);
93054 que in j.a && (m = aC(j, que).ge().a);
93055 rue in j.a && (l = aC(j, rue).ge().a);
93056 }
93057 k = Vdd(Xdd(new Zdd(), m), l);
93058 t2c(new w2c(), e, k);
93059 que in f2.a && cC(f2, que, null);
93060 if (m || l) {
93061 i3 = new eC();
93062 nvd(k, i3, m, l);
93063 cC(f2, que, i3);
93064 }
93065 d = new Prd(g);
93066 Ghe(new _ud(e), d);
93067 }
93068 function pA(a, b, c2) {
93069 var d, e, f2, g, h, i3, j, k, l;
93070 g = new nB();
93071 j = OC(GC(WD, 1), oje, 25, 15, [0]);
93072 e = -1;
93073 f2 = 0;
93074 d = 0;
93075 for (i3 = 0; i3 < a.b.c.length; ++i3) {
93076 k = BD(Ikb(a.b, i3), 434);
93077 if (k.b > 0) {
93078 if (e < 0 && k.a) {
93079 e = i3;
93080 f2 = j[0];
93081 d = 0;
93082 }
93083 if (e >= 0) {
93084 h = k.b;
93085 if (i3 == e) {
93086 h -= d++;
93087 if (h == 0) {
93088 return 0;
93089 }
93090 }
93091 if (!wA(b, j, k, h, g)) {
93092 i3 = e - 1;
93093 j[0] = f2;
93094 continue;
93095 }
93096 } else {
93097 e = -1;
93098 if (!wA(b, j, k, 0, g)) {
93099 return 0;
93100 }
93101 }
93102 } else {
93103 e = -1;
93104 if (bfb(k.c, 0) == 32) {
93105 l = j[0];
93106 uA(b, j);
93107 if (j[0] > l) {
93108 continue;
93109 }
93110 } else if (ofb(b, k.c, j[0])) {
93111 j[0] += k.c.length;
93112 continue;
93113 }
93114 return 0;
93115 }
93116 }
93117 if (!mB(g, c2)) {
93118 return 0;
93119 }
93120 return j[0];
93121 }
93122 function SKd(a) {
93123 var b, c2, d, e, f2, g, h, i3;
93124 if (!a.f) {
93125 i3 = new CNd();
93126 h = new CNd();
93127 b = KKd;
93128 g = b.a.zc(a, b);
93129 if (g == null) {
93130 for (f2 = new Fyd(_Kd(a)); f2.e != f2.i.gc(); ) {
93131 e = BD(Dyd(f2), 26);
93132 ytd(i3, SKd(e));
93133 }
93134 b.a.Bc(a) != null;
93135 b.a.gc() == 0 && void 0;
93136 }
93137 for (d = (!a.s && (a.s = new cUd(t5, a, 21, 17)), new Fyd(a.s)); d.e != d.i.gc(); ) {
93138 c2 = BD(Dyd(d), 170);
93139 JD(c2, 99) && wtd(h, BD(c2, 18));
93140 }
93141 vud(h);
93142 a.r = new UNd(a, (BD(qud(ZKd((NFd(), MFd).o), 6), 18), h.i), h.g);
93143 ytd(i3, a.r);
93144 vud(i3);
93145 a.f = new nNd((BD(qud(ZKd(MFd.o), 5), 18), i3.i), i3.g);
93146 $Kd(a).b &= -3;
93147 }
93148 return a.f;
93149 }
93150 function rMb(a) {
93151 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
93152 g = a.o;
93153 d = KC(WD, oje, 25, g, 15, 1);
93154 e = KC(WD, oje, 25, g, 15, 1);
93155 c2 = a.p;
93156 b = KC(WD, oje, 25, c2, 15, 1);
93157 f2 = KC(WD, oje, 25, c2, 15, 1);
93158 for (j = 0; j < g; j++) {
93159 l = 0;
93160 while (l < c2 && !YMb(a, j, l)) {
93161 ++l;
93162 }
93163 d[j] = l;
93164 }
93165 for (k = 0; k < g; k++) {
93166 l = c2 - 1;
93167 while (l >= 0 && !YMb(a, k, l)) {
93168 --l;
93169 }
93170 e[k] = l;
93171 }
93172 for (n = 0; n < c2; n++) {
93173 h = 0;
93174 while (h < g && !YMb(a, h, n)) {
93175 ++h;
93176 }
93177 b[n] = h;
93178 }
93179 for (o2 = 0; o2 < c2; o2++) {
93180 h = g - 1;
93181 while (h >= 0 && !YMb(a, h, o2)) {
93182 --h;
93183 }
93184 f2[o2] = h;
93185 }
93186 for (i3 = 0; i3 < g; i3++) {
93187 for (m = 0; m < c2; m++) {
93188 i3 < f2[m] && i3 > b[m] && m < e[i3] && m > d[i3] && aNb(a, i3, m, false, true);
93189 }
93190 }
93191 }
93192 function lRb(a) {
93193 var b, c2, d, e, f2, g, h, i3;
93194 c2 = Ccb(DD(vNb(a, (wSb(), cSb))));
93195 f2 = a.a.c.d;
93196 h = a.a.d.d;
93197 if (c2) {
93198 g = Y6c(c7c(new f7c(h.a, h.b), f2), 0.5);
93199 i3 = Y6c(R6c(a.e), 0.5);
93200 b = c7c(P6c(new f7c(f2.a, f2.b), g), i3);
93201 a7c(a.d, b);
93202 } else {
93203 e = Edb(ED(vNb(a.a, tSb)));
93204 d = a.d;
93205 if (f2.a >= h.a) {
93206 if (f2.b >= h.b) {
93207 d.a = h.a + (f2.a - h.a) / 2 + e;
93208 d.b = h.b + (f2.b - h.b) / 2 - e - a.e.b;
93209 } else {
93210 d.a = h.a + (f2.a - h.a) / 2 + e;
93211 d.b = f2.b + (h.b - f2.b) / 2 + e;
93212 }
93213 } else {
93214 if (f2.b >= h.b) {
93215 d.a = f2.a + (h.a - f2.a) / 2 + e;
93216 d.b = h.b + (f2.b - h.b) / 2 + e;
93217 } else {
93218 d.a = f2.a + (h.a - f2.a) / 2 + e;
93219 d.b = f2.b + (h.b - f2.b) / 2 - e - a.e.b;
93220 }
93221 }
93222 }
93223 }
93224 function Qge(a, b) {
93225 var c2, d, e, f2, g, h, i3;
93226 if (a == null) {
93227 return null;
93228 }
93229 f2 = a.length;
93230 if (f2 == 0) {
93231 return "";
93232 }
93233 i3 = KC(TD, $ie, 25, f2, 15, 1);
93234 ACb(0, f2, a.length);
93235 ACb(0, f2, i3.length);
93236 ffb(a, 0, f2, i3, 0);
93237 c2 = null;
93238 h = b;
93239 for (e = 0, g = 0; e < f2; e++) {
93240 d = i3[e];
93241 lde();
93242 if (d <= 32 && (kde[d] & 2) != 0) {
93243 if (h) {
93244 !c2 && (c2 = new Jfb(a));
93245 Gfb(c2, e - g++);
93246 } else {
93247 h = b;
93248 if (d != 32) {
93249 !c2 && (c2 = new Jfb(a));
93250 kcb(c2, e - g, e - g + 1, String.fromCharCode(32));
93251 }
93252 }
93253 } else {
93254 h = false;
93255 }
93256 }
93257 if (h) {
93258 if (!c2) {
93259 return a.substr(0, f2 - 1);
93260 } else {
93261 f2 = c2.a.length;
93262 return f2 > 0 ? qfb(c2.a, 0, f2 - 1) : "";
93263 }
93264 } else {
93265 return !c2 ? a : c2.a;
93266 }
93267 }
93268 function DPb(a) {
93269 r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Yle), "ELK DisCo"), "Layouter for arranging unconnected subgraphs. The subgraphs themselves are, by default, not laid out."), new GPb())));
93270 p4c(a, Yle, Zle, Ksd(BPb));
93271 p4c(a, Yle, $le, Ksd(vPb));
93272 p4c(a, Yle, _le, Ksd(qPb));
93273 p4c(a, Yle, ame, Ksd(wPb));
93274 p4c(a, Yle, Zke, Ksd(zPb));
93275 p4c(a, Yle, $ke, Ksd(yPb));
93276 p4c(a, Yle, Yke, Ksd(APb));
93277 p4c(a, Yle, _ke, Ksd(xPb));
93278 p4c(a, Yle, Tle, Ksd(sPb));
93279 p4c(a, Yle, Ule, Ksd(rPb));
93280 p4c(a, Yle, Vle, Ksd(tPb));
93281 p4c(a, Yle, Wle, Ksd(uPb));
93282 }
93283 function Zbc(a, b, c2, d) {
93284 var e, f2, g, h, i3, j, k, l, m;
93285 f2 = new b0b(a);
93286 __b(f2, (j0b(), i0b));
93287 yNb(f2, (Nyc(), Vxc), (dcd(), $bd));
93288 e = 0;
93289 if (b) {
93290 g = new H0b();
93291 yNb(g, (wtc(), $sc), b);
93292 yNb(f2, $sc, b.i);
93293 G0b(g, (Ucd(), Tcd));
93294 F0b(g, f2);
93295 m = k_b(b.e);
93296 for (j = m, k = 0, l = j.length; k < l; ++k) {
93297 i3 = j[k];
93298 RZb(i3, g);
93299 }
93300 yNb(b, gtc, f2);
93301 ++e;
93302 }
93303 if (c2) {
93304 h = new H0b();
93305 yNb(f2, (wtc(), $sc), c2.i);
93306 yNb(h, $sc, c2);
93307 G0b(h, (Ucd(), zcd));
93308 F0b(h, f2);
93309 m = k_b(c2.g);
93310 for (j = m, k = 0, l = j.length; k < l; ++k) {
93311 i3 = j[k];
93312 QZb(i3, h);
93313 }
93314 yNb(c2, gtc, f2);
93315 ++e;
93316 }
93317 yNb(f2, (wtc(), ysc), meb(e));
93318 d.c[d.c.length] = f2;
93319 return f2;
93320 }
93321 function Smd() {
93322 Smd = ccb;
93323 Qmd = OC(GC(TD, 1), $ie, 25, 15, [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70]);
93324 Rmd = new RegExp("[ \n\r\f]+");
93325 try {
93326 Pmd = OC(GC(c6, 1), Uhe, 2015, 0, [new EQd((GA(), IA("yyyy-MM-dd'T'HH:mm:ss'.'SSSZ", LA((KA(), KA(), JA))))), new EQd(IA("yyyy-MM-dd'T'HH:mm:ss'.'SSS", LA((null, JA)))), new EQd(IA("yyyy-MM-dd'T'HH:mm:ss", LA((null, JA)))), new EQd(IA("yyyy-MM-dd'T'HH:mm", LA((null, JA)))), new EQd(IA("yyyy-MM-dd", LA((null, JA))))]);
93327 } catch (a) {
93328 a = ubb(a);
93329 if (!JD(a, 78))
93330 throw vbb(a);
93331 }
93332 }
93333 function qgb(a) {
93334 var b, c2, d, e;
93335 d = shb((!a.c && (a.c = fhb(a.f)), a.c), 0);
93336 if (a.e == 0 || a.a == 0 && a.f != -1 && a.e < 0) {
93337 return d;
93338 }
93339 b = pgb(a) < 0 ? 1 : 0;
93340 c2 = a.e;
93341 e = (d.length + 1 + $wnd.Math.abs(QD(a.e)), new Vfb());
93342 b == 1 && (e.a += "-", e);
93343 if (a.e > 0) {
93344 c2 -= d.length - b;
93345 if (c2 >= 0) {
93346 e.a += "0.";
93347 for (; c2 > egb.length; c2 -= egb.length) {
93348 Rfb(e, egb);
93349 }
93350 Sfb(e, egb, QD(c2));
93351 Qfb(e, d.substr(b));
93352 } else {
93353 c2 = b - c2;
93354 Qfb(e, qfb(d, b, QD(c2)));
93355 e.a += ".";
93356 Qfb(e, pfb(d, QD(c2)));
93357 }
93358 } else {
93359 Qfb(e, d.substr(b));
93360 for (; c2 < -egb.length; c2 += egb.length) {
93361 Rfb(e, egb);
93362 }
93363 Sfb(e, egb, QD(-c2));
93364 }
93365 return e.a;
93366 }
93367 function v6c(a, b, c2, d) {
93368 var e, f2, g, h, i3, j, k, l, m;
93369 i3 = c7c(new f7c(c2.a, c2.b), a);
93370 j = i3.a * b.b - i3.b * b.a;
93371 k = b.a * d.b - b.b * d.a;
93372 l = (i3.a * d.b - i3.b * d.a) / k;
93373 m = j / k;
93374 if (k == 0) {
93375 if (j == 0) {
93376 e = P6c(new f7c(c2.a, c2.b), Y6c(new f7c(d.a, d.b), 0.5));
93377 f2 = S6c(a, e);
93378 g = S6c(P6c(new f7c(a.a, a.b), b), e);
93379 h = $wnd.Math.sqrt(d.a * d.a + d.b * d.b) * 0.5;
93380 if (f2 < g && f2 <= h) {
93381 return new f7c(a.a, a.b);
93382 }
93383 if (g <= h) {
93384 return P6c(new f7c(a.a, a.b), b);
93385 }
93386 return null;
93387 } else {
93388 return null;
93389 }
93390 } else {
93391 return l >= 0 && l <= 1 && m >= 0 && m <= 1 ? P6c(new f7c(a.a, a.b), Y6c(new f7c(b.a, b.b), l)) : null;
93392 }
93393 }
93394 function OTb(a, b, c2) {
93395 var d, e, f2, g, h;
93396 d = BD(vNb(a, (Nyc(), zwc)), 21);
93397 c2.a > b.a && (d.Hc((i8c(), c8c)) ? a.c.a += (c2.a - b.a) / 2 : d.Hc(e8c) && (a.c.a += c2.a - b.a));
93398 c2.b > b.b && (d.Hc((i8c(), g8c)) ? a.c.b += (c2.b - b.b) / 2 : d.Hc(f8c) && (a.c.b += c2.b - b.b));
93399 if (BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) && (c2.a > b.a || c2.b > b.b)) {
93400 for (h = new olb(a.a); h.a < h.c.c.length; ) {
93401 g = BD(mlb(h), 10);
93402 if (g.k == (j0b(), e0b)) {
93403 e = BD(vNb(g, Hsc), 61);
93404 e == (Ucd(), zcd) ? g.n.a += c2.a - b.a : e == Rcd && (g.n.b += c2.b - b.b);
93405 }
93406 }
93407 }
93408 f2 = a.d;
93409 a.f.a = c2.a - f2.b - f2.c;
93410 a.f.b = c2.b - f2.d - f2.a;
93411 }
93412 function H5b(a, b, c2) {
93413 var d, e, f2, g, h;
93414 d = BD(vNb(a, (Nyc(), zwc)), 21);
93415 c2.a > b.a && (d.Hc((i8c(), c8c)) ? a.c.a += (c2.a - b.a) / 2 : d.Hc(e8c) && (a.c.a += c2.a - b.a));
93416 c2.b > b.b && (d.Hc((i8c(), g8c)) ? a.c.b += (c2.b - b.b) / 2 : d.Hc(f8c) && (a.c.b += c2.b - b.b));
93417 if (BD(vNb(a, (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) && (c2.a > b.a || c2.b > b.b)) {
93418 for (g = new olb(a.a); g.a < g.c.c.length; ) {
93419 f2 = BD(mlb(g), 10);
93420 if (f2.k == (j0b(), e0b)) {
93421 e = BD(vNb(f2, Hsc), 61);
93422 e == (Ucd(), zcd) ? f2.n.a += c2.a - b.a : e == Rcd && (f2.n.b += c2.b - b.b);
93423 }
93424 }
93425 }
93426 h = a.d;
93427 a.f.a = c2.a - h.b - h.c;
93428 a.f.b = c2.b - h.d - h.a;
93429 }
93430 function kMc(a) {
93431 var b, c2, d, e, f2, g, h, i3, j, k, l, m;
93432 b = DMc(a);
93433 for (k = (h = new Pib(b).a.vc().Kc(), new Vib(h)); k.a.Ob(); ) {
93434 j = (e = BD(k.a.Pb(), 42), BD(e.cd(), 10));
93435 l = 0;
93436 m = 0;
93437 l = j.d.d;
93438 m = j.o.b + j.d.a;
93439 a.d[j.p] = 0;
93440 c2 = j;
93441 while ((f2 = a.a[c2.p]) != j) {
93442 d = FMc(c2, f2);
93443 i3 = 0;
93444 a.c == (YLc(), WLc) ? i3 = d.d.n.b + d.d.a.b - d.c.n.b - d.c.a.b : i3 = d.c.n.b + d.c.a.b - d.d.n.b - d.d.a.b;
93445 g = Edb(a.d[c2.p]) + i3;
93446 a.d[f2.p] = g;
93447 l = $wnd.Math.max(l, f2.d.d - g);
93448 m = $wnd.Math.max(m, g + f2.o.b + f2.d.a);
93449 c2 = f2;
93450 }
93451 c2 = j;
93452 do {
93453 a.d[c2.p] = Edb(a.d[c2.p]) + l;
93454 c2 = a.a[c2.p];
93455 } while (c2 != j);
93456 a.b[j.p] = l + m;
93457 }
93458 }
93459 function LOb(a) {
93460 var b, c2, d, e, f2, g, h, i3, j, k, l, m;
93461 a.b = false;
93462 l = Pje;
93463 i3 = Qje;
93464 m = Pje;
93465 j = Qje;
93466 for (d = a.e.a.ec().Kc(); d.Ob(); ) {
93467 c2 = BD(d.Pb(), 266);
93468 e = c2.a;
93469 l = $wnd.Math.min(l, e.c);
93470 i3 = $wnd.Math.max(i3, e.c + e.b);
93471 m = $wnd.Math.min(m, e.d);
93472 j = $wnd.Math.max(j, e.d + e.a);
93473 for (g = new olb(c2.c); g.a < g.c.c.length; ) {
93474 f2 = BD(mlb(g), 395);
93475 b = f2.a;
93476 if (b.a) {
93477 k = e.d + f2.b.b;
93478 h = k + f2.c;
93479 m = $wnd.Math.min(m, k);
93480 j = $wnd.Math.max(j, h);
93481 } else {
93482 k = e.c + f2.b.a;
93483 h = k + f2.c;
93484 l = $wnd.Math.min(l, k);
93485 i3 = $wnd.Math.max(i3, h);
93486 }
93487 }
93488 }
93489 a.a = new f7c(i3 - l, j - m);
93490 a.c = new f7c(l + a.d.a, m + a.d.b);
93491 }
93492 function xZc(a, b, c2) {
93493 var d, e, f2, g, h, i3, j, k, l;
93494 l = new Rkb();
93495 k = new x$c(0, c2);
93496 f2 = 0;
93497 s$c(k, new PZc(0, 0, k, c2));
93498 e = 0;
93499 for (j = new Fyd(a); j.e != j.i.gc(); ) {
93500 i3 = BD(Dyd(j), 33);
93501 d = BD(Ikb(k.a, k.a.c.length - 1), 187);
93502 h = e + i3.g + (BD(Ikb(k.a, 0), 187).b.c.length == 0 ? 0 : c2);
93503 if (h > b) {
93504 e = 0;
93505 f2 += k.b + c2;
93506 l.c[l.c.length] = k;
93507 k = new x$c(f2, c2);
93508 d = new PZc(0, k.f, k, c2);
93509 s$c(k, d);
93510 e = 0;
93511 }
93512 if (d.b.c.length == 0 || i3.f >= d.o && i3.f <= d.f || d.a * 0.5 <= i3.f && d.a * 1.5 >= i3.f) {
93513 EZc(d, i3);
93514 } else {
93515 g = new PZc(d.s + d.r + c2, k.f, k, c2);
93516 s$c(k, g);
93517 EZc(g, i3);
93518 }
93519 e = i3.i + i3.g;
93520 }
93521 l.c[l.c.length] = k;
93522 return l;
93523 }
93524 function OKd(a) {
93525 var b, c2, d, e, f2, g, h, i3;
93526 if (!a.a) {
93527 a.o = null;
93528 i3 = new GNd(a);
93529 b = new KNd();
93530 c2 = KKd;
93531 h = c2.a.zc(a, c2);
93532 if (h == null) {
93533 for (g = new Fyd(_Kd(a)); g.e != g.i.gc(); ) {
93534 f2 = BD(Dyd(g), 26);
93535 ytd(i3, OKd(f2));
93536 }
93537 c2.a.Bc(a) != null;
93538 c2.a.gc() == 0 && void 0;
93539 }
93540 for (e = (!a.s && (a.s = new cUd(t5, a, 21, 17)), new Fyd(a.s)); e.e != e.i.gc(); ) {
93541 d = BD(Dyd(e), 170);
93542 JD(d, 322) && wtd(b, BD(d, 34));
93543 }
93544 vud(b);
93545 a.k = new PNd(a, (BD(qud(ZKd((NFd(), MFd).o), 7), 18), b.i), b.g);
93546 ytd(i3, a.k);
93547 vud(i3);
93548 a.a = new nNd((BD(qud(ZKd(MFd.o), 4), 18), i3.i), i3.g);
93549 $Kd(a).b &= -2;
93550 }
93551 return a.a;
93552 }
93553 function vZc(a, b, c2, d, e, f2, g) {
93554 var h, i3, j, k, l, m;
93555 l = false;
93556 i3 = ZZc(c2.q, b.f + b.b - c2.q.f);
93557 m = e - (c2.q.e + i3 - g);
93558 if (m < d.g) {
93559 return false;
93560 }
93561 j = f2 == a.c.length - 1 && m >= (tCb(f2, a.c.length), BD(a.c[f2], 200)).e;
93562 k = (h = MZc(d, m, false), h.a);
93563 if (k > b.b && !j) {
93564 return false;
93565 }
93566 if (j || k <= b.b) {
93567 if (j && k > b.b) {
93568 c2.d = k;
93569 KZc(c2, JZc(c2, k));
93570 } else {
93571 $Zc(c2.q, i3);
93572 c2.c = true;
93573 }
93574 KZc(d, e - (c2.s + c2.r));
93575 OZc(d, c2.q.e + c2.q.d, b.f);
93576 s$c(b, d);
93577 if (a.c.length > f2) {
93578 v$c((tCb(f2, a.c.length), BD(a.c[f2], 200)), d);
93579 (tCb(f2, a.c.length), BD(a.c[f2], 200)).a.c.length == 0 && Kkb(a, f2);
93580 }
93581 l = true;
93582 }
93583 return l;
93584 }
93585 function C2d(a, b, c2, d) {
93586 var e, f2, g, h, i3, j, k;
93587 k = S6d(a.e.Tg(), b);
93588 e = 0;
93589 f2 = BD(a.g, 119);
93590 i3 = null;
93591 Q6d();
93592 if (BD(b, 66).Oj()) {
93593 for (h = 0; h < a.i; ++h) {
93594 g = f2[h];
93595 if (k.rl(g.ak())) {
93596 if (pb(g, c2)) {
93597 i3 = g;
93598 break;
93599 }
93600 ++e;
93601 }
93602 }
93603 } else if (c2 != null) {
93604 for (h = 0; h < a.i; ++h) {
93605 g = f2[h];
93606 if (k.rl(g.ak())) {
93607 if (pb(c2, g.dd())) {
93608 i3 = g;
93609 break;
93610 }
93611 ++e;
93612 }
93613 }
93614 } else {
93615 for (h = 0; h < a.i; ++h) {
93616 g = f2[h];
93617 if (k.rl(g.ak())) {
93618 if (g.dd() == null) {
93619 i3 = g;
93620 break;
93621 }
93622 ++e;
93623 }
93624 }
93625 }
93626 if (i3) {
93627 if (oid(a.e)) {
93628 j = b.$j() ? new O7d(a.e, 4, b, c2, null, e, true) : H2d(a, b.Kj() ? 2 : 1, b, c2, b.zj(), -1, true);
93629 d ? d.Ei(j) : d = j;
93630 }
93631 d = B2d(a, i3, d);
93632 }
93633 return d;
93634 }
93635 function kYc(a, b, c2, d, e, f2, g) {
93636 var h, i3, j, k, l, m, n, o2, p;
93637 o2 = 0;
93638 p = 0;
93639 i3 = e.c;
93640 h = e.b;
93641 k = c2.f;
93642 n = c2.g;
93643 switch (b.g) {
93644 case 0:
93645 o2 = d.i + d.g + g;
93646 a.c ? p = tYc(o2, f2, d, g) : p = d.j;
93647 m = $wnd.Math.max(i3, o2 + n);
93648 j = $wnd.Math.max(h, p + k);
93649 break;
93650 case 1:
93651 p = d.j + d.f + g;
93652 a.c ? o2 = sYc(p, f2, d, g) : o2 = d.i;
93653 m = $wnd.Math.max(i3, o2 + n);
93654 j = $wnd.Math.max(h, p + k);
93655 break;
93656 case 2:
93657 o2 = i3 + g;
93658 p = 0;
93659 m = i3 + g + n;
93660 j = $wnd.Math.max(h, k);
93661 break;
93662 case 3:
93663 o2 = 0;
93664 p = h + g;
93665 m = $wnd.Math.max(i3, n);
93666 j = h + g + k;
93667 break;
93668 default:
93669 throw vbb(new Wdb("IllegalPlacementOption."));
93670 }
93671 l = new e$c(a.a, m, j, b, o2, p);
93672 return l;
93673 }
93674 function R2b(a) {
93675 var b, c2, d, e, f2, g, h, i3, j, k, l, m;
93676 h = a.d;
93677 l = BD(vNb(a, (wtc(), vtc)), 15);
93678 b = BD(vNb(a, tsc), 15);
93679 if (!l && !b) {
93680 return;
93681 }
93682 f2 = Edb(ED(pBc(a, (Nyc(), iyc))));
93683 g = Edb(ED(pBc(a, jyc)));
93684 m = 0;
93685 if (l) {
93686 j = 0;
93687 for (e = l.Kc(); e.Ob(); ) {
93688 d = BD(e.Pb(), 10);
93689 j = $wnd.Math.max(j, d.o.b);
93690 m += d.o.a;
93691 }
93692 m += f2 * (l.gc() - 1);
93693 h.d += j + g;
93694 }
93695 c2 = 0;
93696 if (b) {
93697 j = 0;
93698 for (e = b.Kc(); e.Ob(); ) {
93699 d = BD(e.Pb(), 10);
93700 j = $wnd.Math.max(j, d.o.b);
93701 c2 += d.o.a;
93702 }
93703 c2 += f2 * (b.gc() - 1);
93704 h.a += j + g;
93705 }
93706 i3 = $wnd.Math.max(m, c2);
93707 if (i3 > a.o.a) {
93708 k = (i3 - a.o.a) / 2;
93709 h.b = $wnd.Math.max(h.b, k);
93710 h.c = $wnd.Math.max(h.c, k);
93711 }
93712 }
93713 function rvd(a) {
93714 var b, c2, d, e, f2, g, h, i3;
93715 f2 = new b2c();
93716 Z1c(f2, (Y1c(), V1c));
93717 for (d = (e = $B(a, KC(ZI, nie, 2, 0, 6, 1)), new vib(new amb(new mC(a, e).b))); d.b < d.d.gc(); ) {
93718 c2 = (sCb(d.b < d.d.gc()), GD(d.d.Xb(d.c = d.b++)));
93719 g = k4c(lvd, c2);
93720 if (g) {
93721 b = aC(a, c2);
93722 b.je() ? h = b.je().a : b.ge() ? h = "" + b.ge().a : b.he() ? h = "" + b.he().a : h = b.Ib();
93723 i3 = o5c(g, h);
93724 if (i3 != null) {
93725 (uqb(g.j, (N5c(), K5c)) || uqb(g.j, L5c)) && xNb(_1c(f2, E2), g, i3);
93726 uqb(g.j, I5c) && xNb(_1c(f2, B2), g, i3);
93727 uqb(g.j, M5c) && xNb(_1c(f2, F2), g, i3);
93728 uqb(g.j, J5c) && xNb(_1c(f2, D2), g, i3);
93729 }
93730 }
93731 }
93732 return f2;
93733 }
93734 function J2d(a, b, c2, d) {
93735 var e, f2, g, h, i3, j;
93736 i3 = S6d(a.e.Tg(), b);
93737 f2 = BD(a.g, 119);
93738 if (T6d(a.e, b)) {
93739 e = 0;
93740 for (h = 0; h < a.i; ++h) {
93741 g = f2[h];
93742 if (i3.rl(g.ak())) {
93743 if (e == c2) {
93744 Q6d();
93745 if (BD(b, 66).Oj()) {
93746 return g;
93747 } else {
93748 j = g.dd();
93749 j != null && d && JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 && (j = b3d(a, b, h, e, j));
93750 return j;
93751 }
93752 }
93753 ++e;
93754 }
93755 }
93756 throw vbb(new qcb(gve + c2 + mue + e));
93757 } else {
93758 e = 0;
93759 for (h = 0; h < a.i; ++h) {
93760 g = f2[h];
93761 if (i3.rl(g.ak())) {
93762 Q6d();
93763 if (BD(b, 66).Oj()) {
93764 return g;
93765 } else {
93766 j = g.dd();
93767 j != null && d && JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 && (j = b3d(a, b, h, e, j));
93768 return j;
93769 }
93770 }
93771 ++e;
93772 }
93773 return b.zj();
93774 }
93775 }
93776 function K2d(a, b, c2) {
93777 var d, e, f2, g, h, i3, j, k;
93778 e = BD(a.g, 119);
93779 if (T6d(a.e, b)) {
93780 return Q6d(), BD(b, 66).Oj() ? new R7d(b, a) : new f7d(b, a);
93781 } else {
93782 j = S6d(a.e.Tg(), b);
93783 d = 0;
93784 for (h = 0; h < a.i; ++h) {
93785 f2 = e[h];
93786 g = f2.ak();
93787 if (j.rl(g)) {
93788 Q6d();
93789 if (BD(b, 66).Oj()) {
93790 return f2;
93791 } else if (g == (m8d(), k8d) || g == h8d) {
93792 i3 = new Wfb(fcb(f2.dd()));
93793 while (++h < a.i) {
93794 f2 = e[h];
93795 g = f2.ak();
93796 (g == k8d || g == h8d) && Qfb(i3, fcb(f2.dd()));
93797 }
93798 return j6d(BD(b.Yj(), 148), i3.a);
93799 } else {
93800 k = f2.dd();
93801 k != null && c2 && JD(b, 99) && (BD(b, 18).Bb & Tje) != 0 && (k = b3d(a, b, h, d, k));
93802 return k;
93803 }
93804 }
93805 ++d;
93806 }
93807 return b.zj();
93808 }
93809 }
93810 function MZc(a, b, c2) {
93811 var d, e, f2, g, h, i3, j, k, l, m;
93812 f2 = 0;
93813 g = a.t;
93814 e = 0;
93815 d = 0;
93816 i3 = 0;
93817 m = 0;
93818 l = 0;
93819 if (c2) {
93820 a.n.c = KC(SI, Uhe, 1, 0, 5, 1);
93821 Ekb(a.n, new VZc(a.s, a.t, a.i));
93822 }
93823 h = 0;
93824 for (k = new olb(a.b); k.a < k.c.c.length; ) {
93825 j = BD(mlb(k), 33);
93826 if (f2 + j.g + (h > 0 ? a.i : 0) > b && i3 > 0) {
93827 f2 = 0;
93828 g += i3 + a.i;
93829 e = $wnd.Math.max(e, m);
93830 d += i3 + a.i;
93831 i3 = 0;
93832 m = 0;
93833 if (c2) {
93834 ++l;
93835 Ekb(a.n, new VZc(a.s, g, a.i));
93836 }
93837 h = 0;
93838 }
93839 m += j.g + (h > 0 ? a.i : 0);
93840 i3 = $wnd.Math.max(i3, j.f);
93841 c2 && QZc(BD(Ikb(a.n, l), 211), j);
93842 f2 += j.g + (h > 0 ? a.i : 0);
93843 ++h;
93844 }
93845 e = $wnd.Math.max(e, m);
93846 d += i3;
93847 if (c2) {
93848 a.r = e;
93849 a.d = d;
93850 u$c(a.j);
93851 }
93852 return new J6c(a.s, a.t, e, d);
93853 }
93854 function $fb(a, b, c2, d, e) {
93855 Zfb();
93856 var f2, g, h, i3, j, k, l, m, n;
93857 vCb(a, "src");
93858 vCb(c2, "dest");
93859 m = rb(a);
93860 i3 = rb(c2);
93861 rCb((m.i & 4) != 0, "srcType is not an array");
93862 rCb((i3.i & 4) != 0, "destType is not an array");
93863 l = m.c;
93864 g = i3.c;
93865 rCb((l.i & 1) != 0 ? l == g : (g.i & 1) == 0, "Array types don't match");
93866 n = a.length;
93867 j = c2.length;
93868 if (b < 0 || d < 0 || e < 0 || b + e > n || d + e > j) {
93869 throw vbb(new pcb());
93870 }
93871 if ((l.i & 1) == 0 && m != i3) {
93872 k = CD(a);
93873 f2 = CD(c2);
93874 if (PD(a) === PD(c2) && b < d) {
93875 b += e;
93876 for (h = d + e; h-- > d; ) {
93877 NC(f2, h, k[--b]);
93878 }
93879 } else {
93880 for (h = d + e; d < h; ) {
93881 NC(f2, d++, k[b++]);
93882 }
93883 }
93884 } else
93885 e > 0 && $Bb(a, b, c2, d, e, true);
93886 }
93887 function phb() {
93888 phb = ccb;
93889 nhb = OC(GC(WD, 1), oje, 25, 15, [Rie, 1162261467, Iie, 1220703125, 362797056, 1977326743, Iie, 387420489, Jje, 214358881, 429981696, 815730721, 1475789056, 170859375, 268435456, 410338673, 612220032, 893871739, 128e7, 1801088541, 113379904, 148035889, 191102976, 244140625, 308915776, 387420489, 481890304, 594823321, 729e6, 887503681, Iie, 1291467969, 1544804416, 1838265625, 60466176]);
93890 ohb = OC(GC(WD, 1), oje, 25, 15, [-1, -1, 31, 19, 15, 13, 11, 11, 10, 9, 9, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5]);
93891 }
93892 function soc(a) {
93893 var b, c2, d, e, f2, g, h, i3;
93894 for (e = new olb(a.b); e.a < e.c.c.length; ) {
93895 d = BD(mlb(e), 29);
93896 for (g = new olb(Mu(d.a)); g.a < g.c.c.length; ) {
93897 f2 = BD(mlb(g), 10);
93898 if (ioc(f2)) {
93899 c2 = BD(vNb(f2, (wtc(), usc)), 305);
93900 if (!c2.g && !!c2.d) {
93901 b = c2;
93902 i3 = c2.d;
93903 while (i3) {
93904 roc(i3.i, i3.k, false, true);
93905 zoc(b.a);
93906 zoc(i3.i);
93907 zoc(i3.k);
93908 zoc(i3.b);
93909 RZb(i3.c, b.c.d);
93910 RZb(b.c, null);
93911 $_b(b.a, null);
93912 $_b(i3.i, null);
93913 $_b(i3.k, null);
93914 $_b(i3.b, null);
93915 h = new goc(b.i, i3.a, b.e, i3.j, i3.f);
93916 h.k = b.k;
93917 h.n = b.n;
93918 h.b = b.b;
93919 h.c = i3.c;
93920 h.g = b.g;
93921 h.d = i3.d;
93922 yNb(b.i, usc, h);
93923 yNb(i3.a, usc, h);
93924 i3 = i3.d;
93925 b = h;
93926 }
93927 }
93928 }
93929 }
93930 }
93931 }
93932 function Xfe(a, b) {
93933 var c2, d, e, f2, g;
93934 g = BD(b, 136);
93935 Yfe(a);
93936 Yfe(g);
93937 if (g.b == null)
93938 return;
93939 a.c = true;
93940 if (a.b == null) {
93941 a.b = KC(WD, oje, 25, g.b.length, 15, 1);
93942 $fb(g.b, 0, a.b, 0, g.b.length);
93943 return;
93944 }
93945 f2 = KC(WD, oje, 25, a.b.length + g.b.length, 15, 1);
93946 for (c2 = 0, d = 0, e = 0; c2 < a.b.length || d < g.b.length; ) {
93947 if (c2 >= a.b.length) {
93948 f2[e++] = g.b[d++];
93949 f2[e++] = g.b[d++];
93950 } else if (d >= g.b.length) {
93951 f2[e++] = a.b[c2++];
93952 f2[e++] = a.b[c2++];
93953 } else if (g.b[d] < a.b[c2] || g.b[d] === a.b[c2] && g.b[d + 1] < a.b[c2 + 1]) {
93954 f2[e++] = g.b[d++];
93955 f2[e++] = g.b[d++];
93956 } else {
93957 f2[e++] = a.b[c2++];
93958 f2[e++] = a.b[c2++];
93959 }
93960 }
93961 a.b = f2;
93962 }
93963 function S6b(a, b) {
93964 var c2, d, e, f2, g, h, i3, j, k, l;
93965 c2 = Ccb(DD(vNb(a, (wtc(), Usc))));
93966 h = Ccb(DD(vNb(b, Usc)));
93967 d = BD(vNb(a, Vsc), 11);
93968 i3 = BD(vNb(b, Vsc), 11);
93969 e = BD(vNb(a, Wsc), 11);
93970 j = BD(vNb(b, Wsc), 11);
93971 k = !!d && d == i3;
93972 l = !!e && e == j;
93973 if (!c2 && !h) {
93974 return new Z6b(BD(mlb(new olb(a.j)), 11).p == BD(mlb(new olb(b.j)), 11).p, k, l);
93975 }
93976 f2 = (!Ccb(DD(vNb(a, Usc))) || Ccb(DD(vNb(a, Tsc)))) && (!Ccb(DD(vNb(b, Usc))) || Ccb(DD(vNb(b, Tsc))));
93977 g = (!Ccb(DD(vNb(a, Usc))) || !Ccb(DD(vNb(a, Tsc)))) && (!Ccb(DD(vNb(b, Usc))) || !Ccb(DD(vNb(b, Tsc))));
93978 return new Z6b(k && f2 || l && g, k, l);
93979 }
93980 function HZc(a) {
93981 var b, c2, d, e, f2, g, h, i3;
93982 d = 0;
93983 c2 = 0;
93984 i3 = new Psb();
93985 b = 0;
93986 for (h = new olb(a.n); h.a < h.c.c.length; ) {
93987 g = BD(mlb(h), 211);
93988 if (g.c.c.length == 0) {
93989 Gsb(i3, g, i3.c.b, i3.c);
93990 } else {
93991 d = $wnd.Math.max(d, g.d);
93992 c2 += g.a + (b > 0 ? a.i : 0);
93993 }
93994 ++b;
93995 }
93996 Ce(a.n, i3);
93997 a.d = c2;
93998 a.r = d;
93999 a.g = 0;
94000 a.f = 0;
94001 a.e = 0;
94002 a.o = Pje;
94003 a.p = Pje;
94004 for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
94005 e = BD(mlb(f2), 33);
94006 a.p = $wnd.Math.min(a.p, e.g);
94007 a.g = $wnd.Math.max(a.g, e.g);
94008 a.f = $wnd.Math.max(a.f, e.f);
94009 a.o = $wnd.Math.min(a.o, e.f);
94010 a.e += e.f + a.i;
94011 }
94012 a.a = a.e / a.b.c.length - a.i * ((a.b.c.length - 1) / a.b.c.length);
94013 u$c(a.j);
94014 }
94015 function Sld(a) {
94016 var b, c2, d, e;
94017 if ((a.Db & 64) != 0)
94018 return Mkd(a);
94019 b = new Wfb(_se);
94020 d = a.k;
94021 if (!d) {
94022 !a.n && (a.n = new cUd(D2, a, 1, 7));
94023 if (a.n.i > 0) {
94024 e = (!a.n && (a.n = new cUd(D2, a, 1, 7)), BD(qud(a.n, 0), 137)).a;
94025 !e || Qfb(Qfb((b.a += ' "', b), e), '"');
94026 }
94027 } else {
94028 Qfb(Qfb((b.a += ' "', b), d), '"');
94029 }
94030 c2 = (!a.b && (a.b = new y5d(z2, a, 4, 7)), !(a.b.i <= 1 && (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c.i <= 1)));
94031 c2 ? (b.a += " [", b) : (b.a += " ", b);
94032 Qfb(b, Eb(new Gb(), new Fyd(a.b)));
94033 c2 && (b.a += "]", b);
94034 b.a += gne;
94035 c2 && (b.a += "[", b);
94036 Qfb(b, Eb(new Gb(), new Fyd(a.c)));
94037 c2 && (b.a += "]", b);
94038 return b.a;
94039 }
94040 function TQd(a, b) {
94041 var c2, d, e, f2, g, h, i3;
94042 if (a.a) {
94043 h = a.a.ne();
94044 i3 = null;
94045 if (h != null) {
94046 b.a += "" + h;
94047 } else {
94048 g = a.a.Dj();
94049 if (g != null) {
94050 f2 = hfb(g, wfb(91));
94051 if (f2 != -1) {
94052 i3 = g.substr(f2);
94053 b.a += "" + qfb(g == null ? Xhe : (uCb(g), g), 0, f2);
94054 } else {
94055 b.a += "" + g;
94056 }
94057 }
94058 }
94059 if (!!a.d && a.d.i != 0) {
94060 e = true;
94061 b.a += "<";
94062 for (d = new Fyd(a.d); d.e != d.i.gc(); ) {
94063 c2 = BD(Dyd(d), 87);
94064 e ? e = false : (b.a += She, b);
94065 TQd(c2, b);
94066 }
94067 b.a += ">";
94068 }
94069 i3 != null && (b.a += "" + i3, b);
94070 } else if (a.e) {
94071 h = a.e.zb;
94072 h != null && (b.a += "" + h, b);
94073 } else {
94074 b.a += "?";
94075 if (a.b) {
94076 b.a += " super ";
94077 TQd(a.b, b);
94078 } else {
94079 if (a.f) {
94080 b.a += " extends ";
94081 TQd(a.f, b);
94082 }
94083 }
94084 }
94085 }
94086 function Z9b(a, b) {
94087 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3;
94088 v = a.c;
94089 w2 = b.c;
94090 c2 = Jkb(v.a, a, 0);
94091 d = Jkb(w2.a, b, 0);
94092 t4 = BD(W_b(a, (KAc(), HAc)).Kc().Pb(), 11);
94093 C = BD(W_b(a, IAc).Kc().Pb(), 11);
94094 u2 = BD(W_b(b, HAc).Kc().Pb(), 11);
94095 D3 = BD(W_b(b, IAc).Kc().Pb(), 11);
94096 r = k_b(t4.e);
94097 A = k_b(C.g);
94098 s = k_b(u2.e);
94099 B = k_b(D3.g);
94100 Z_b(a, d, w2);
94101 for (g = s, k = 0, o2 = g.length; k < o2; ++k) {
94102 e = g[k];
94103 RZb(e, t4);
94104 }
94105 for (h = B, l = 0, p = h.length; l < p; ++l) {
94106 e = h[l];
94107 QZb(e, C);
94108 }
94109 Z_b(b, c2, v);
94110 for (i3 = r, m = 0, q = i3.length; m < q; ++m) {
94111 e = i3[m];
94112 RZb(e, u2);
94113 }
94114 for (f2 = A, j = 0, n = f2.length; j < n; ++j) {
94115 e = f2[j];
94116 QZb(e, D3);
94117 }
94118 }
94119 function $$b(a, b, c2, d) {
94120 var e, f2, g, h, i3, j, k;
94121 f2 = a_b(d);
94122 h = Ccb(DD(vNb(d, (Nyc(), uxc))));
94123 if ((h || Ccb(DD(vNb(a, exc)))) && !fcd(BD(vNb(a, Vxc), 98))) {
94124 e = Zcd(f2);
94125 i3 = i_b(a, c2, c2 == (KAc(), IAc) ? e : Wcd(e));
94126 } else {
94127 i3 = new H0b();
94128 F0b(i3, a);
94129 if (b) {
94130 k = i3.n;
94131 k.a = b.a - a.n.a;
94132 k.b = b.b - a.n.b;
94133 Q6c(k, 0, 0, a.o.a, a.o.b);
94134 G0b(i3, W$b(i3, f2));
94135 } else {
94136 e = Zcd(f2);
94137 G0b(i3, c2 == (KAc(), IAc) ? e : Wcd(e));
94138 }
94139 g = BD(vNb(d, (wtc(), Ksc)), 21);
94140 j = i3.j;
94141 switch (f2.g) {
94142 case 2:
94143 case 1:
94144 (j == (Ucd(), Acd) || j == Rcd) && g.Fc((Orc(), Lrc));
94145 break;
94146 case 4:
94147 case 3:
94148 (j == (Ucd(), zcd) || j == Tcd) && g.Fc((Orc(), Lrc));
94149 }
94150 }
94151 return i3;
94152 }
94153 function pPc(a, b, c2) {
94154 var d, e, f2, g, h, i3, j, k;
94155 if ($wnd.Math.abs(b.s - b.c) < qme || $wnd.Math.abs(c2.s - c2.c) < qme) {
94156 return 0;
94157 }
94158 d = oPc(a, b.j, c2.e);
94159 e = oPc(a, c2.j, b.e);
94160 f2 = d == -1 || e == -1;
94161 g = 0;
94162 if (f2) {
94163 if (d == -1) {
94164 new DOc((HOc(), FOc), c2, b, 1);
94165 ++g;
94166 }
94167 if (e == -1) {
94168 new DOc((HOc(), FOc), b, c2, 1);
94169 ++g;
94170 }
94171 } else {
94172 h = vPc(b.j, c2.s, c2.c);
94173 h += vPc(c2.e, b.s, b.c);
94174 i3 = vPc(c2.j, b.s, b.c);
94175 i3 += vPc(b.e, c2.s, c2.c);
94176 j = d + 16 * h;
94177 k = e + 16 * i3;
94178 if (j < k) {
94179 new DOc((HOc(), GOc), b, c2, k - j);
94180 } else if (j > k) {
94181 new DOc((HOc(), GOc), c2, b, j - k);
94182 } else if (j > 0 && k > 0) {
94183 new DOc((HOc(), GOc), b, c2, 0);
94184 new DOc(GOc, c2, b, 0);
94185 }
94186 }
94187 return g;
94188 }
94189 function TUb(a, b) {
94190 var c2, d, e, f2, g, h;
94191 for (g = new nib(new eib(a.f.b).a); g.b; ) {
94192 f2 = lib(g);
94193 e = BD(f2.cd(), 594);
94194 if (b == 1) {
94195 if (e.gf() != (ead(), dad) && e.gf() != _9c) {
94196 continue;
94197 }
94198 } else {
94199 if (e.gf() != (ead(), aad) && e.gf() != bad) {
94200 continue;
94201 }
94202 }
94203 d = BD(BD(f2.dd(), 46).b, 81);
94204 h = BD(BD(f2.dd(), 46).a, 189);
94205 c2 = h.c;
94206 switch (e.gf().g) {
94207 case 2:
94208 d.g.c = a.e.a;
94209 d.g.b = $wnd.Math.max(1, d.g.b + c2);
94210 break;
94211 case 1:
94212 d.g.c = d.g.c + c2;
94213 d.g.b = $wnd.Math.max(1, d.g.b - c2);
94214 break;
94215 case 4:
94216 d.g.d = a.e.b;
94217 d.g.a = $wnd.Math.max(1, d.g.a + c2);
94218 break;
94219 case 3:
94220 d.g.d = d.g.d + c2;
94221 d.g.a = $wnd.Math.max(1, d.g.a - c2);
94222 }
94223 }
94224 }
94225 function nJc(a, b) {
94226 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
94227 h = KC(WD, oje, 25, b.b.c.length, 15, 1);
94228 j = KC(NQ, Kie, 267, b.b.c.length, 0, 1);
94229 i3 = KC(OQ, kne, 10, b.b.c.length, 0, 1);
94230 for (l = a.a, m = 0, n = l.length; m < n; ++m) {
94231 k = l[m];
94232 p = 0;
94233 for (g = new olb(k.e); g.a < g.c.c.length; ) {
94234 e = BD(mlb(g), 10);
94235 d = G1b(e.c);
94236 ++h[d];
94237 o2 = Edb(ED(vNb(b, (Nyc(), lyc))));
94238 h[d] > 0 && !!i3[d] && (o2 = jBc(a.b, i3[d], e));
94239 p = $wnd.Math.max(p, e.c.c.b + o2);
94240 }
94241 for (f2 = new olb(k.e); f2.a < f2.c.c.length; ) {
94242 e = BD(mlb(f2), 10);
94243 e.n.b = p + e.d.d;
94244 c2 = e.c;
94245 c2.c.b = p + e.d.d + e.o.b + e.d.a;
94246 j[Jkb(c2.b.b, c2, 0)] = e.k;
94247 i3[Jkb(c2.b.b, c2, 0)] = e;
94248 }
94249 }
94250 }
94251 function LXc(a, b) {
94252 var c2, d, e, f2, g, h, i3, j, k, l, m;
94253 for (d = new Sr(ur(_sd(b).a.Kc(), new Sq())); Qr(d); ) {
94254 c2 = BD(Rr(d), 79);
94255 if (!JD(qud((!c2.b && (c2.b = new y5d(z2, c2, 4, 7)), c2.b), 0), 186)) {
94256 i3 = atd(BD(qud((!c2.c && (c2.c = new y5d(z2, c2, 5, 8)), c2.c), 0), 82));
94257 if (!Pld(c2)) {
94258 g = b.i + b.g / 2;
94259 h = b.j + b.f / 2;
94260 k = i3.i + i3.g / 2;
94261 l = i3.j + i3.f / 2;
94262 m = new d7c();
94263 m.a = k - g;
94264 m.b = l - h;
94265 f2 = new f7c(m.a, m.b);
94266 l6c(f2, b.g, b.f);
94267 m.a -= f2.a;
94268 m.b -= f2.b;
94269 g = k - m.a;
94270 h = l - m.b;
94271 j = new f7c(m.a, m.b);
94272 l6c(j, i3.g, i3.f);
94273 m.a -= j.a;
94274 m.b -= j.b;
94275 k = g + m.a;
94276 l = h + m.b;
94277 e = itd(c2, true, true);
94278 omd(e, g);
94279 pmd(e, h);
94280 hmd(e, k);
94281 imd(e, l);
94282 LXc(a, i3);
94283 }
94284 }
94285 }
94286 }
94287 function e0c(a) {
94288 r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Pre), "ELK SPOrE Compaction"), "ShrinkTree is a compaction algorithm that maintains the topology of a layout. The relocation of diagram elements is based on contracting a spanning tree."), new h0c())));
94289 p4c(a, Pre, Qre, Ksd(c0c));
94290 p4c(a, Pre, Rre, Ksd(__c));
94291 p4c(a, Pre, Sre, Ksd($_c));
94292 p4c(a, Pre, Tre, Ksd(Y_c));
94293 p4c(a, Pre, Ure, Ksd(Z_c));
94294 p4c(a, Pre, ame, X_c);
94295 p4c(a, Pre, wme, 8);
94296 p4c(a, Pre, Vre, Ksd(b0c));
94297 p4c(a, Pre, Wre, Ksd(T_c));
94298 p4c(a, Pre, Xre, Ksd(U_c));
94299 p4c(a, Pre, Zpe, (Bcb(), false));
94300 }
94301 function JLc(a, b) {
94302 var c2, d, e, f2, g, h, i3, j, k, l;
94303 Odd(b, "Simple node placement", 1);
94304 l = BD(vNb(a, (wtc(), otc)), 304);
94305 h = 0;
94306 for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
94307 d = BD(mlb(f2), 29);
94308 g = d.c;
94309 g.b = 0;
94310 c2 = null;
94311 for (j = new olb(d.a); j.a < j.c.c.length; ) {
94312 i3 = BD(mlb(j), 10);
94313 !!c2 && (g.b += hBc(i3, c2, l.c));
94314 g.b += i3.d.d + i3.o.b + i3.d.a;
94315 c2 = i3;
94316 }
94317 h = $wnd.Math.max(h, g.b);
94318 }
94319 for (e = new olb(a.b); e.a < e.c.c.length; ) {
94320 d = BD(mlb(e), 29);
94321 g = d.c;
94322 k = (h - g.b) / 2;
94323 c2 = null;
94324 for (j = new olb(d.a); j.a < j.c.c.length; ) {
94325 i3 = BD(mlb(j), 10);
94326 !!c2 && (k += hBc(i3, c2, l.c));
94327 k += i3.d.d;
94328 i3.n.b = k;
94329 k += i3.o.b + i3.d.a;
94330 c2 = i3;
94331 }
94332 }
94333 Qdd(b);
94334 }
94335 function s2d(a, b, c2, d) {
94336 var e, f2, g, h, i3, j, k, l;
94337 if (d.gc() == 0) {
94338 return false;
94339 }
94340 i3 = (Q6d(), BD(b, 66).Oj());
94341 g = i3 ? d : new zud(d.gc());
94342 if (T6d(a.e, b)) {
94343 if (b.hi()) {
94344 for (k = d.Kc(); k.Ob(); ) {
94345 j = k.Pb();
94346 if (!F2d(a, b, j, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) {
94347 f2 = R6d(b, j);
94348 g.Fc(f2);
94349 }
94350 }
94351 } else if (!i3) {
94352 for (k = d.Kc(); k.Ob(); ) {
94353 j = k.Pb();
94354 f2 = R6d(b, j);
94355 g.Fc(f2);
94356 }
94357 }
94358 } else {
94359 l = S6d(a.e.Tg(), b);
94360 e = BD(a.g, 119);
94361 for (h = 0; h < a.i; ++h) {
94362 f2 = e[h];
94363 if (l.rl(f2.ak())) {
94364 throw vbb(new Wdb(Hwe));
94365 }
94366 }
94367 if (d.gc() > 1) {
94368 throw vbb(new Wdb(Hwe));
94369 }
94370 if (!i3) {
94371 f2 = R6d(b, d.Kc().Pb());
94372 g.Fc(f2);
94373 }
94374 }
94375 return xtd(a, I2d(a, b, c2), g);
94376 }
94377 function Pmc(a, b) {
94378 var c2, d, e, f2;
94379 Jmc(b.b.j);
94380 MAb(NAb(new YAb(null, new Kub(b.d, 16)), new $mc()), new anc());
94381 for (f2 = new olb(b.d); f2.a < f2.c.c.length; ) {
94382 e = BD(mlb(f2), 101);
94383 switch (e.e.g) {
94384 case 0:
94385 c2 = BD(Ikb(e.j, 0), 113).d.j;
94386 mjc(e, BD(Btb(RAb(BD(Qc(e.k, c2), 15).Oc(), Hmc)), 113));
94387 njc(e, BD(Btb(QAb(BD(Qc(e.k, c2), 15).Oc(), Hmc)), 113));
94388 break;
94389 case 1:
94390 d = Bkc(e);
94391 mjc(e, BD(Btb(RAb(BD(Qc(e.k, d[0]), 15).Oc(), Hmc)), 113));
94392 njc(e, BD(Btb(QAb(BD(Qc(e.k, d[1]), 15).Oc(), Hmc)), 113));
94393 break;
94394 case 2:
94395 Rmc(a, e);
94396 break;
94397 case 3:
94398 Qmc(e);
94399 break;
94400 case 4:
94401 Omc(a, e);
94402 }
94403 Mmc(e);
94404 }
94405 a.a = null;
94406 }
94407 function $Mc(a, b, c2) {
94408 var d, e, f2, g, h, i3, j, k;
94409 d = a.a.o == (eMc(), dMc) ? Pje : Qje;
94410 h = _Mc(a, new ZMc(b, c2));
94411 if (!h.a && h.c) {
94412 Dsb(a.d, h);
94413 return d;
94414 } else if (h.a) {
94415 e = h.a.c;
94416 i3 = h.a.d;
94417 if (c2) {
94418 j = a.a.c == (YLc(), XLc) ? i3 : e;
94419 f2 = a.a.c == XLc ? e : i3;
94420 g = a.a.g[f2.i.p];
94421 k = Edb(a.a.p[g.p]) + Edb(a.a.d[f2.i.p]) + f2.n.b + f2.a.b - Edb(a.a.d[j.i.p]) - j.n.b - j.a.b;
94422 } else {
94423 j = a.a.c == (YLc(), WLc) ? i3 : e;
94424 f2 = a.a.c == WLc ? e : i3;
94425 k = Edb(a.a.p[a.a.g[f2.i.p].p]) + Edb(a.a.d[f2.i.p]) + f2.n.b + f2.a.b - Edb(a.a.d[j.i.p]) - j.n.b - j.a.b;
94426 }
94427 a.a.n[a.a.g[e.i.p].p] = (Bcb(), true);
94428 a.a.n[a.a.g[i3.i.p].p] = true;
94429 return k;
94430 }
94431 return d;
94432 }
94433 function f3d(a, b, c2) {
94434 var d, e, f2, g, h, i3, j, k;
94435 if (T6d(a.e, b)) {
94436 i3 = (Q6d(), BD(b, 66).Oj() ? new R7d(b, a) : new f7d(b, a));
94437 D2d(i3.c, i3.b);
94438 b7d(i3, BD(c2, 14));
94439 } else {
94440 k = S6d(a.e.Tg(), b);
94441 d = BD(a.g, 119);
94442 for (g = 0; g < a.i; ++g) {
94443 e = d[g];
94444 f2 = e.ak();
94445 if (k.rl(f2)) {
94446 if (f2 == (m8d(), k8d) || f2 == h8d) {
94447 j = m3d(a, b, c2);
94448 h = g;
94449 j ? Xxd(a, g) : ++g;
94450 while (g < a.i) {
94451 e = d[g];
94452 f2 = e.ak();
94453 f2 == k8d || f2 == h8d ? Xxd(a, g) : ++g;
94454 }
94455 j || BD(Gtd(a, h, R6d(b, c2)), 72);
94456 } else
94457 m3d(a, b, c2) ? Xxd(a, g) : BD(Gtd(a, g, (Q6d(), BD(b, 66).Oj() ? BD(c2, 72) : R6d(b, c2))), 72);
94458 return;
94459 }
94460 }
94461 m3d(a, b, c2) || wtd(a, (Q6d(), BD(b, 66).Oj() ? BD(c2, 72) : R6d(b, c2)));
94462 }
94463 }
94464 function IMb(a, b, c2) {
94465 var d, e, f2, g, h, i3, j, k;
94466 if (!pb(c2, a.b)) {
94467 a.b = c2;
94468 f2 = new LMb();
94469 g = BD(GAb(NAb(new YAb(null, new Kub(c2.f, 16)), f2), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
94470 a.e = true;
94471 a.f = true;
94472 a.c = true;
94473 a.d = true;
94474 e = g.Hc((RMb(), OMb));
94475 d = g.Hc(PMb);
94476 e && !d && (a.f = false);
94477 !e && d && (a.d = false);
94478 e = g.Hc(NMb);
94479 d = g.Hc(QMb);
94480 e && !d && (a.c = false);
94481 !e && d && (a.e = false);
94482 }
94483 k = BD(a.a.Ce(b, c2), 46);
94484 i3 = BD(k.a, 19).a;
94485 j = BD(k.b, 19).a;
94486 h = false;
94487 i3 < 0 ? a.c || (h = true) : a.e || (h = true);
94488 j < 0 ? a.d || (h = true) : a.f || (h = true);
94489 return h ? IMb(a, k, c2) : k;
94490 }
94491 function oKb(a) {
94492 var b, c2, d, e;
94493 e = a.o;
94494 $Jb();
94495 if (a.A.dc() || pb(a.A, ZJb)) {
94496 b = e.b;
94497 } else {
94498 b = fIb(a.f);
94499 if (a.A.Hc((tdd(), qdd)) && !a.B.Hc((Idd(), Edd))) {
94500 b = $wnd.Math.max(b, fIb(BD(Mpb(a.p, (Ucd(), zcd)), 244)));
94501 b = $wnd.Math.max(b, fIb(BD(Mpb(a.p, Tcd), 244)));
94502 }
94503 c2 = aKb(a);
94504 !!c2 && (b = $wnd.Math.max(b, c2.b));
94505 if (a.A.Hc(rdd)) {
94506 if (a.q == (dcd(), _bd) || a.q == $bd) {
94507 b = $wnd.Math.max(b, _Gb(BD(Mpb(a.b, (Ucd(), zcd)), 124)));
94508 b = $wnd.Math.max(b, _Gb(BD(Mpb(a.b, Tcd), 124)));
94509 }
94510 }
94511 }
94512 Ccb(DD(a.e.yf().We((Y9c(), $8c)))) ? e.b = $wnd.Math.max(e.b, b) : e.b = b;
94513 d = a.f.i;
94514 d.d = 0;
94515 d.a = b;
94516 iIb(a.f);
94517 }
94518 function $Ic(a, b) {
94519 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
94520 for (l = 0; l < b.length; l++) {
94521 for (h = a.Kc(); h.Ob(); ) {
94522 f2 = BD(h.Pb(), 225);
94523 f2.Of(l, b);
94524 }
94525 for (m = 0; m < b[l].length; m++) {
94526 for (i3 = a.Kc(); i3.Ob(); ) {
94527 f2 = BD(i3.Pb(), 225);
94528 f2.Pf(l, m, b);
94529 }
94530 p = b[l][m].j;
94531 for (n = 0; n < p.c.length; n++) {
94532 for (j = a.Kc(); j.Ob(); ) {
94533 f2 = BD(j.Pb(), 225);
94534 f2.Qf(l, m, n, b);
94535 }
94536 o2 = (tCb(n, p.c.length), BD(p.c[n], 11));
94537 c2 = 0;
94538 for (e = new b1b(o2.b); llb(e.a) || llb(e.b); ) {
94539 d = BD(llb(e.a) ? mlb(e.a) : mlb(e.b), 17);
94540 for (k = a.Kc(); k.Ob(); ) {
94541 f2 = BD(k.Pb(), 225);
94542 f2.Nf(l, m, n, c2++, d, b);
94543 }
94544 }
94545 }
94546 }
94547 }
94548 for (g = a.Kc(); g.Ob(); ) {
94549 f2 = BD(g.Pb(), 225);
94550 f2.Mf();
94551 }
94552 }
94553 function J4b(a, b) {
94554 var c2, d, e, f2, g, h, i3;
94555 a.b = Edb(ED(vNb(b, (Nyc(), myc))));
94556 a.c = Edb(ED(vNb(b, pyc)));
94557 a.d = BD(vNb(b, Xwc), 336);
94558 a.a = BD(vNb(b, swc), 275);
94559 H4b(b);
94560 h = BD(GAb(JAb(JAb(LAb(LAb(new YAb(null, new Kub(b.b, 16)), new N4b()), new P4b()), new R4b()), new T4b()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
94561 for (e = h.Kc(); e.Ob(); ) {
94562 c2 = BD(e.Pb(), 17);
94563 g = BD(vNb(c2, (wtc(), rtc)), 15);
94564 g.Jc(new V4b(a));
94565 yNb(c2, rtc, null);
94566 }
94567 for (d = h.Kc(); d.Ob(); ) {
94568 c2 = BD(d.Pb(), 17);
94569 i3 = BD(vNb(c2, (wtc(), stc)), 17);
94570 f2 = BD(vNb(c2, ptc), 15);
94571 B4b(a, f2, i3);
94572 yNb(c2, ptc, null);
94573 }
94574 }
94575 function uZd(a) {
94576 a.b = null;
94577 a.a = null;
94578 a.o = null;
94579 a.q = null;
94580 a.v = null;
94581 a.w = null;
94582 a.B = null;
94583 a.p = null;
94584 a.Q = null;
94585 a.R = null;
94586 a.S = null;
94587 a.T = null;
94588 a.U = null;
94589 a.V = null;
94590 a.W = null;
94591 a.bb = null;
94592 a.eb = null;
94593 a.ab = null;
94594 a.H = null;
94595 a.db = null;
94596 a.c = null;
94597 a.d = null;
94598 a.f = null;
94599 a.n = null;
94600 a.r = null;
94601 a.s = null;
94602 a.u = null;
94603 a.G = null;
94604 a.J = null;
94605 a.e = null;
94606 a.j = null;
94607 a.i = null;
94608 a.g = null;
94609 a.k = null;
94610 a.t = null;
94611 a.F = null;
94612 a.I = null;
94613 a.L = null;
94614 a.M = null;
94615 a.O = null;
94616 a.P = null;
94617 a.$ = null;
94618 a.N = null;
94619 a.Z = null;
94620 a.cb = null;
94621 a.K = null;
94622 a.D = null;
94623 a.A = null;
94624 a.C = null;
94625 a._ = null;
94626 a.fb = null;
94627 a.X = null;
94628 a.Y = null;
94629 a.gb = false;
94630 a.hb = false;
94631 }
94632 function bKc(a) {
94633 var b, c2, d, e, f2, g, h, i3, j;
94634 if (a.k != (j0b(), h0b)) {
94635 return false;
94636 }
94637 if (a.j.c.length <= 1) {
94638 return false;
94639 }
94640 f2 = BD(vNb(a, (Nyc(), Vxc)), 98);
94641 if (f2 == (dcd(), $bd)) {
94642 return false;
94643 }
94644 e = (Izc(), (!a.q ? (mmb(), mmb(), kmb) : a.q)._b(Cxc) ? d = BD(vNb(a, Cxc), 197) : d = BD(vNb(Q_b(a), Dxc), 197), d);
94645 if (e == Gzc) {
94646 return false;
94647 }
94648 if (!(e == Fzc || e == Ezc)) {
94649 g = Edb(ED(pBc(a, zyc)));
94650 b = BD(vNb(a, yyc), 142);
94651 !b && (b = new J_b(g, g, g, g));
94652 j = V_b(a, (Ucd(), Tcd));
94653 i3 = b.d + b.a + (j.gc() - 1) * g;
94654 if (i3 > a.o.b) {
94655 return false;
94656 }
94657 c2 = V_b(a, zcd);
94658 h = b.d + b.a + (c2.gc() - 1) * g;
94659 if (h > a.o.b) {
94660 return false;
94661 }
94662 }
94663 return true;
94664 }
94665 function thb(a, b) {
94666 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
94667 g = a.e;
94668 i3 = b.e;
94669 if (g == 0) {
94670 return b;
94671 }
94672 if (i3 == 0) {
94673 return a;
94674 }
94675 f2 = a.d;
94676 h = b.d;
94677 if (f2 + h == 2) {
94678 c2 = xbb(a.a[0], Yje);
94679 d = xbb(b.a[0], Yje);
94680 if (g == i3) {
94681 k = wbb(c2, d);
94682 o2 = Tbb(k);
94683 n = Tbb(Pbb(k, 32));
94684 return n == 0 ? new Ugb(g, o2) : new Vgb(g, 2, OC(GC(WD, 1), oje, 25, 15, [o2, n]));
94685 }
94686 return ghb(g < 0 ? Qbb(d, c2) : Qbb(c2, d));
94687 } else if (g == i3) {
94688 m = g;
94689 l = f2 >= h ? uhb(a.a, f2, b.a, h) : uhb(b.a, h, a.a, f2);
94690 } else {
94691 e = f2 != h ? f2 > h ? 1 : -1 : whb(a.a, b.a, f2);
94692 if (e == 0) {
94693 return Hgb(), Ggb;
94694 }
94695 if (e == 1) {
94696 m = g;
94697 l = zhb(a.a, f2, b.a, h);
94698 } else {
94699 m = i3;
94700 l = zhb(b.a, h, a.a, f2);
94701 }
94702 }
94703 j = new Vgb(m, l.length, l);
94704 Jgb(j);
94705 return j;
94706 }
94707 function oZb(a, b, c2, d, e, f2, g) {
94708 var h, i3, j, k, l, m, n;
94709 l = Ccb(DD(vNb(b, (Nyc(), vxc))));
94710 m = null;
94711 f2 == (KAc(), HAc) && d.c.i == c2 ? m = d.c : f2 == IAc && d.d.i == c2 && (m = d.d);
94712 j = g;
94713 if (!j || !l || !!m) {
94714 k = (Ucd(), Scd);
94715 m ? k = m.j : fcd(BD(vNb(c2, Vxc), 98)) && (k = f2 == HAc ? Tcd : zcd);
94716 i3 = lZb(a, b, c2, f2, k, d);
94717 h = kZb((Q_b(c2), d));
94718 if (f2 == HAc) {
94719 QZb(h, BD(Ikb(i3.j, 0), 11));
94720 RZb(h, e);
94721 } else {
94722 QZb(h, e);
94723 RZb(h, BD(Ikb(i3.j, 0), 11));
94724 }
94725 j = new yZb(d, h, i3, BD(vNb(i3, (wtc(), $sc)), 11), f2, !m);
94726 } else {
94727 Ekb(j.e, d);
94728 n = $wnd.Math.max(Edb(ED(vNb(j.d, Zwc))), Edb(ED(vNb(d, Zwc))));
94729 yNb(j.d, Zwc, n);
94730 }
94731 Rc(a.a, d, new BZb(j.d, b, f2));
94732 return j;
94733 }
94734 function V1d(a, b) {
94735 var c2, d, e, f2, g, h, i3, j, k, l;
94736 k = null;
94737 !!a.d && (k = BD(Phb(a.d, b), 138));
94738 if (!k) {
94739 f2 = a.a.Mh();
94740 l = f2.i;
94741 if (!a.d || Vhb(a.d) != l) {
94742 i3 = new Lqb();
94743 !!a.d && Ld(i3, a.d);
94744 j = i3.f.c + i3.g.c;
94745 for (h = j; h < l; ++h) {
94746 d = BD(qud(f2, h), 138);
94747 e = o1d(a.e, d).ne();
94748 c2 = BD(e == null ? jrb(i3.f, null, d) : Drb(i3.g, e, d), 138);
94749 !!c2 && c2 != d && (e == null ? jrb(i3.f, null, c2) : Drb(i3.g, e, c2));
94750 }
94751 if (i3.f.c + i3.g.c != l) {
94752 for (g = 0; g < j; ++g) {
94753 d = BD(qud(f2, g), 138);
94754 e = o1d(a.e, d).ne();
94755 c2 = BD(e == null ? jrb(i3.f, null, d) : Drb(i3.g, e, d), 138);
94756 !!c2 && c2 != d && (e == null ? jrb(i3.f, null, c2) : Drb(i3.g, e, c2));
94757 }
94758 }
94759 a.d = i3;
94760 }
94761 k = BD(Phb(a.d, b), 138);
94762 }
94763 return k;
94764 }
94765 function lZb(a, b, c2, d, e, f2) {
94766 var g, h, i3, j, k, l;
94767 g = null;
94768 j = d == (KAc(), HAc) ? f2.c : f2.d;
94769 i3 = a_b(b);
94770 if (j.i == c2) {
94771 g = BD(Ohb(a.b, j), 10);
94772 if (!g) {
94773 g = Z$b(j, BD(vNb(c2, (Nyc(), Vxc)), 98), e, hZb(j), null, j.n, j.o, i3, b);
94774 yNb(g, (wtc(), $sc), j);
94775 Rhb(a.b, j, g);
94776 }
94777 } else {
94778 g = Z$b((k = new zNb(), l = Edb(ED(vNb(b, (Nyc(), lyc)))) / 2, xNb(k, Uxc, l), k), BD(vNb(c2, Vxc), 98), e, d == HAc ? -1 : 1, null, new d7c(), new f7c(0, 0), i3, b);
94779 h = mZb(g, c2, d);
94780 yNb(g, (wtc(), $sc), h);
94781 Rhb(a.b, h, g);
94782 }
94783 BD(vNb(b, (wtc(), Ksc)), 21).Fc((Orc(), Hrc));
94784 fcd(BD(vNb(b, (Nyc(), Vxc)), 98)) ? yNb(b, Vxc, (dcd(), acd)) : yNb(b, Vxc, (dcd(), bcd));
94785 return g;
94786 }
94787 function vNc(a, b) {
94788 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
94789 Odd(b, "Orthogonal edge routing", 1);
94790 j = Edb(ED(vNb(a, (Nyc(), wyc))));
94791 c2 = Edb(ED(vNb(a, myc)));
94792 d = Edb(ED(vNb(a, pyc)));
94793 m = new tPc(0, c2);
94794 q = 0;
94795 g = new Bib(a.b, 0);
94796 h = null;
94797 k = null;
94798 i3 = null;
94799 l = null;
94800 do {
94801 k = g.b < g.d.gc() ? (sCb(g.b < g.d.gc()), BD(g.d.Xb(g.c = g.b++), 29)) : null;
94802 l = !k ? null : k.a;
94803 if (h) {
94804 h_b(h, q);
94805 q += h.c.a;
94806 }
94807 p = !h ? q : q + d;
94808 o2 = sPc(m, a, i3, l, p);
94809 e = !h || Kq(i3, (FNc(), DNc));
94810 f2 = !k || Kq(l, (FNc(), DNc));
94811 if (o2 > 0) {
94812 n = (o2 - 1) * c2;
94813 !!h && (n += d);
94814 !!k && (n += d);
94815 n < j && !e && !f2 && (n = j);
94816 q += n;
94817 } else
94818 !e && !f2 && (q += j);
94819 h = k;
94820 i3 = l;
94821 } while (k);
94822 a.f.a = q;
94823 Qdd(b);
94824 }
94825 function IEd() {
94826 IEd = ccb;
94827 var a;
94828 HEd = new mFd();
94829 BEd = KC(ZI, nie, 2, 0, 6, 1);
94830 uEd = Mbb(ZEd(33, 58), ZEd(1, 26));
94831 vEd = Mbb(ZEd(97, 122), ZEd(65, 90));
94832 wEd = ZEd(48, 57);
94833 sEd = Mbb(uEd, 0);
94834 tEd = Mbb(vEd, wEd);
94835 xEd = Mbb(Mbb(0, ZEd(1, 6)), ZEd(33, 38));
94836 yEd = Mbb(Mbb(wEd, ZEd(65, 70)), ZEd(97, 102));
94837 EEd = Mbb(sEd, XEd("-_.!~*'()"));
94838 FEd = Mbb(tEd, $Ed("-_.!~*'()"));
94839 XEd(lve);
94840 $Ed(lve);
94841 Mbb(EEd, XEd(";:@&=+$,"));
94842 Mbb(FEd, $Ed(";:@&=+$,"));
94843 zEd = XEd(":/?#");
94844 AEd = $Ed(":/?#");
94845 CEd = XEd("/?#");
94846 DEd = $Ed("/?#");
94847 a = new Tqb();
94848 a.a.zc("jar", a);
94849 a.a.zc("zip", a);
94850 a.a.zc("archive", a);
94851 GEd = (mmb(), new zob(a));
94852 }
94853 function yUc(a, b) {
94854 var c2, d, e, f2, g, h, i3, j, k, l;
94855 yNb(b, (mTc(), cTc), 0);
94856 i3 = BD(vNb(b, aTc), 86);
94857 if (b.d.b == 0) {
94858 if (i3) {
94859 k = Edb(ED(vNb(i3, fTc))) + a.a + zUc(i3, b);
94860 yNb(b, fTc, k);
94861 } else {
94862 yNb(b, fTc, 0);
94863 }
94864 } else {
94865 for (d = (f2 = Jsb(new ZRc(b).a.d, 0), new aSc(f2)); Wsb(d.a); ) {
94866 c2 = BD(Xsb(d.a), 188).c;
94867 yUc(a, c2);
94868 }
94869 h = BD(pr((g = Jsb(new ZRc(b).a.d, 0), new aSc(g))), 86);
94870 l = BD(or((e = Jsb(new ZRc(b).a.d, 0), new aSc(e))), 86);
94871 j = (Edb(ED(vNb(l, fTc))) + Edb(ED(vNb(h, fTc)))) / 2;
94872 if (i3) {
94873 k = Edb(ED(vNb(i3, fTc))) + a.a + zUc(i3, b);
94874 yNb(b, fTc, k);
94875 yNb(b, cTc, Edb(ED(vNb(b, fTc))) - j);
94876 xUc(a, b);
94877 } else {
94878 yNb(b, fTc, j);
94879 }
94880 }
94881 }
94882 function Dbc(a, b) {
94883 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
94884 h = 0;
94885 o2 = 0;
94886 i3 = tlb(a.f, a.f.length);
94887 f2 = a.d;
94888 g = a.i;
94889 d = a.a;
94890 e = a.b;
94891 do {
94892 n = 0;
94893 for (k = new olb(a.p); k.a < k.c.c.length; ) {
94894 j = BD(mlb(k), 10);
94895 m = Cbc(a, j);
94896 c2 = true;
94897 (a.q == (kAc(), dAc) || a.q == gAc) && (c2 = Ccb(DD(m.b)));
94898 if (BD(m.a, 19).a < 0 && c2) {
94899 ++n;
94900 i3 = tlb(a.f, a.f.length);
94901 a.d = a.d + BD(m.a, 19).a;
94902 o2 += f2 - a.d;
94903 f2 = a.d + BD(m.a, 19).a;
94904 g = a.i;
94905 d = Mu(a.a);
94906 e = Mu(a.b);
94907 } else {
94908 a.f = tlb(i3, i3.length);
94909 a.d = f2;
94910 a.a = (Qb(d), d ? new Tkb(d) : Nu(new olb(d)));
94911 a.b = (Qb(e), e ? new Tkb(e) : Nu(new olb(e)));
94912 a.i = g;
94913 }
94914 }
94915 ++h;
94916 l = n != 0 && Ccb(DD(b.Kb(new vgd(meb(o2), meb(h)))));
94917 } while (l);
94918 }
94919 function lYc(a, b, c2, d) {
94920 var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C;
94921 g = a.f;
94922 m = b.f;
94923 h = g == (k$c(), f$c) || g == h$c;
94924 n = m == f$c || m == h$c;
94925 i3 = g == g$c || g == i$c;
94926 o2 = m == g$c || m == i$c;
94927 j = g == g$c || g == f$c;
94928 p = m == g$c || m == f$c;
94929 if (h && n) {
94930 return a.f == h$c ? a : b;
94931 } else if (i3 && o2) {
94932 return a.f == i$c ? a : b;
94933 } else if (j && p) {
94934 if (g == g$c) {
94935 l = a;
94936 k = b;
94937 } else {
94938 l = b;
94939 k = a;
94940 }
94941 f2 = (q = c2.j + c2.f, r = l.e + d.f, s = $wnd.Math.max(q, r), t4 = s - $wnd.Math.min(c2.j, l.e), u2 = l.d + d.g - c2.i, u2 * t4);
94942 e = (v = c2.i + c2.g, w2 = k.d + d.g, A = $wnd.Math.max(v, w2), B = A - $wnd.Math.min(c2.i, k.d), C = k.e + d.f - c2.j, B * C);
94943 return f2 <= e ? a.f == g$c ? a : b : a.f == f$c ? a : b;
94944 }
94945 return a;
94946 }
94947 function wGb(a) {
94948 var b, c2, d, e, f2, g, h, i3, j, k, l;
94949 k = a.e.a.c.length;
94950 for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
94951 f2 = BD(mlb(g), 121);
94952 f2.j = false;
94953 }
94954 a.i = KC(WD, oje, 25, k, 15, 1);
94955 a.g = KC(WD, oje, 25, k, 15, 1);
94956 a.n = new Rkb();
94957 e = 0;
94958 l = new Rkb();
94959 for (i3 = new olb(a.e.a); i3.a < i3.c.c.length; ) {
94960 h = BD(mlb(i3), 121);
94961 h.d = e++;
94962 h.b.a.c.length == 0 && Ekb(a.n, h);
94963 Gkb(l, h.g);
94964 }
94965 b = 0;
94966 for (d = new olb(l); d.a < d.c.c.length; ) {
94967 c2 = BD(mlb(d), 213);
94968 c2.c = b++;
94969 c2.f = false;
94970 }
94971 j = l.c.length;
94972 if (a.b == null || a.b.length < j) {
94973 a.b = KC(UD, Vje, 25, j, 15, 1);
94974 a.c = KC(sbb, dle, 25, j, 16, 1);
94975 } else {
94976 Blb(a.c);
94977 }
94978 a.d = l;
94979 a.p = new Asb(Cv(a.d.c.length));
94980 a.j = 1;
94981 }
94982 function sTb(a, b) {
94983 var c2, d, e, f2, g, h, i3, j, k;
94984 if (b.e.c.length <= 1) {
94985 return;
94986 }
94987 a.f = b;
94988 a.d = BD(vNb(a.f, (bTb(), SSb)), 379);
94989 a.g = BD(vNb(a.f, WSb), 19).a;
94990 a.e = Edb(ED(vNb(a.f, TSb)));
94991 a.c = Edb(ED(vNb(a.f, RSb)));
94992 it(a.b);
94993 for (e = new olb(a.f.c); e.a < e.c.c.length; ) {
94994 d = BD(mlb(e), 282);
94995 ht(a.b, d.c, d, null);
94996 ht(a.b, d.d, d, null);
94997 }
94998 h = a.f.e.c.length;
94999 a.a = IC(UD, [nie, Vje], [104, 25], 15, [h, h], 2);
95000 for (j = new olb(a.f.e); j.a < j.c.c.length; ) {
95001 i3 = BD(mlb(j), 144);
95002 oTb(a, i3, a.a[i3.b]);
95003 }
95004 a.i = IC(UD, [nie, Vje], [104, 25], 15, [h, h], 2);
95005 for (f2 = 0; f2 < h; ++f2) {
95006 for (g = 0; g < h; ++g) {
95007 c2 = a.a[f2][g];
95008 k = 1 / (c2 * c2);
95009 a.i[f2][g] = k;
95010 }
95011 }
95012 }
95013 function Vfe(a) {
95014 var b, c2, d, e;
95015 if (a.b == null || a.b.length <= 2)
95016 return;
95017 if (a.a)
95018 return;
95019 b = 0;
95020 e = 0;
95021 while (e < a.b.length) {
95022 if (b != e) {
95023 a.b[b] = a.b[e++];
95024 a.b[b + 1] = a.b[e++];
95025 } else
95026 e += 2;
95027 c2 = a.b[b + 1];
95028 while (e < a.b.length) {
95029 if (c2 + 1 < a.b[e])
95030 break;
95031 if (c2 + 1 == a.b[e]) {
95032 a.b[b + 1] = a.b[e + 1];
95033 c2 = a.b[b + 1];
95034 e += 2;
95035 } else if (c2 >= a.b[e + 1]) {
95036 e += 2;
95037 } else if (c2 < a.b[e + 1]) {
95038 a.b[b + 1] = a.b[e + 1];
95039 c2 = a.b[b + 1];
95040 e += 2;
95041 } else {
95042 throw vbb(new hz("Token#compactRanges(): Internel Error: [" + a.b[b] + "," + a.b[b + 1] + "] [" + a.b[e] + "," + a.b[e + 1] + "]"));
95043 }
95044 }
95045 b += 2;
95046 }
95047 if (b != a.b.length) {
95048 d = KC(WD, oje, 25, b, 15, 1);
95049 $fb(a.b, 0, d, 0, b);
95050 a.b = d;
95051 }
95052 a.a = true;
95053 }
95054 function pZb(a, b) {
95055 var c2, d, e, f2, g, h, i3;
95056 for (g = Ec(a.a).Kc(); g.Ob(); ) {
95057 f2 = BD(g.Pb(), 17);
95058 if (f2.b.c.length > 0) {
95059 d = new Tkb(BD(Qc(a.a, f2), 21));
95060 mmb();
95061 Okb(d, new EZb(b));
95062 e = new Bib(f2.b, 0);
95063 while (e.b < e.d.gc()) {
95064 c2 = (sCb(e.b < e.d.gc()), BD(e.d.Xb(e.c = e.b++), 70));
95065 h = -1;
95066 switch (BD(vNb(c2, (Nyc(), Qwc)), 272).g) {
95067 case 1:
95068 h = d.c.length - 1;
95069 break;
95070 case 0:
95071 h = nZb(d);
95072 break;
95073 case 2:
95074 h = 0;
95075 }
95076 if (h != -1) {
95077 i3 = (tCb(h, d.c.length), BD(d.c[h], 243));
95078 Ekb(i3.b.b, c2);
95079 BD(vNb(Q_b(i3.b.c.i), (wtc(), Ksc)), 21).Fc((Orc(), Grc));
95080 BD(vNb(Q_b(i3.b.c.i), Ksc), 21).Fc(Erc);
95081 uib(e);
95082 yNb(c2, btc, f2);
95083 }
95084 }
95085 }
95086 QZb(f2, null);
95087 RZb(f2, null);
95088 }
95089 }
95090 function FLb(a, b) {
95091 var c2, d, e, f2;
95092 c2 = new KLb();
95093 d = BD(GAb(NAb(new YAb(null, new Kub(a.f, 16)), c2), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Eyb), Dyb]))), 21);
95094 e = d.gc();
95095 e = e == 2 ? 1 : 0;
95096 e == 1 && Bbb(Hbb(BD(GAb(JAb(d.Lc(), new MLb()), Xyb(Aeb(0), new Czb())), 162).a, 2), 0) && (e = 0);
95097 d = BD(GAb(NAb(new YAb(null, new Kub(b.f, 16)), c2), Ayb(new hzb(), new jzb(), new Gzb(), new Izb(), OC(GC(xL, 1), Kie, 132, 0, [Eyb, Dyb]))), 21);
95098 f2 = d.gc();
95099 f2 = f2 == 2 ? 1 : 0;
95100 f2 == 1 && Bbb(Hbb(BD(GAb(JAb(d.Lc(), new OLb()), Xyb(Aeb(0), new Czb())), 162).a, 2), 0) && (f2 = 0);
95101 if (e < f2) {
95102 return -1;
95103 }
95104 if (e == f2) {
95105 return 0;
95106 }
95107 return 1;
95108 }
95109 function h6b(a) {
95110 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n;
95111 j = new Rkb();
95112 if (!wNb(a, (wtc(), Fsc))) {
95113 return j;
95114 }
95115 for (d = BD(vNb(a, Fsc), 15).Kc(); d.Ob(); ) {
95116 b = BD(d.Pb(), 10);
95117 g6b(b, a);
95118 j.c[j.c.length] = b;
95119 }
95120 for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
95121 e = BD(mlb(f2), 29);
95122 for (h = new olb(e.a); h.a < h.c.c.length; ) {
95123 g = BD(mlb(h), 10);
95124 if (g.k != (j0b(), e0b)) {
95125 continue;
95126 }
95127 i3 = BD(vNb(g, Gsc), 10);
95128 !!i3 && (k = new H0b(), F0b(k, g), l = BD(vNb(g, Hsc), 61), G0b(k, l), m = BD(Ikb(i3.j, 0), 11), n = new UZb(), QZb(n, k), RZb(n, m), void 0);
95129 }
95130 }
95131 for (c2 = new olb(j); c2.a < c2.c.c.length; ) {
95132 b = BD(mlb(c2), 10);
95133 $_b(b, BD(Ikb(a.b, a.b.c.length - 1), 29));
95134 }
95135 return j;
95136 }
95137 function M1b(a) {
95138 var b, c2, d, e, f2, g, h, i3, j, k, l, m;
95139 b = mpd(a);
95140 f2 = Ccb(DD(hkd(b, (Nyc(), fxc))));
95141 k = 0;
95142 e = 0;
95143 for (j = new Fyd((!a.e && (a.e = new y5d(B2, a, 7, 4)), a.e)); j.e != j.i.gc(); ) {
95144 i3 = BD(Dyd(j), 79);
95145 h = Qld(i3);
95146 g = h && f2 && Ccb(DD(hkd(i3, gxc)));
95147 m = atd(BD(qud((!i3.c && (i3.c = new y5d(z2, i3, 5, 8)), i3.c), 0), 82));
95148 h && g ? ++e : h && !g ? ++k : Xod(m) == b || m == b ? ++e : ++k;
95149 }
95150 for (d = new Fyd((!a.d && (a.d = new y5d(B2, a, 8, 5)), a.d)); d.e != d.i.gc(); ) {
95151 c2 = BD(Dyd(d), 79);
95152 h = Qld(c2);
95153 g = h && f2 && Ccb(DD(hkd(c2, gxc)));
95154 l = atd(BD(qud((!c2.b && (c2.b = new y5d(z2, c2, 4, 7)), c2.b), 0), 82));
95155 h && g ? ++k : h && !g ? ++e : Xod(l) == b || l == b ? ++k : ++e;
95156 }
95157 return k - e;
95158 }
95159 function ubc(a, b) {
95160 var c2, d, e, f2, g, h, i3, j, k, l, m, n;
95161 Odd(b, "Edge splitting", 1);
95162 if (a.b.c.length <= 2) {
95163 Qdd(b);
95164 return;
95165 }
95166 f2 = new Bib(a.b, 0);
95167 g = (sCb(f2.b < f2.d.gc()), BD(f2.d.Xb(f2.c = f2.b++), 29));
95168 while (f2.b < f2.d.gc()) {
95169 e = g;
95170 g = (sCb(f2.b < f2.d.gc()), BD(f2.d.Xb(f2.c = f2.b++), 29));
95171 for (i3 = new olb(e.a); i3.a < i3.c.c.length; ) {
95172 h = BD(mlb(i3), 10);
95173 for (k = new olb(h.j); k.a < k.c.c.length; ) {
95174 j = BD(mlb(k), 11);
95175 for (d = new olb(j.g); d.a < d.c.c.length; ) {
95176 c2 = BD(mlb(d), 17);
95177 m = c2.d;
95178 l = m.i.c;
95179 l != e && l != g && zbc(c2, (n = new b0b(a), __b(n, (j0b(), g0b)), yNb(n, (wtc(), $sc), c2), yNb(n, (Nyc(), Vxc), (dcd(), $bd)), $_b(n, g), n));
95180 }
95181 }
95182 }
95183 }
95184 Qdd(b);
95185 }
95186 function MTb(a, b) {
95187 var c2, d, e, f2, g, h, i3, j, k, l, m, n;
95188 h = b.p != null && !b.b;
95189 h || Odd(b, kme, 1);
95190 c2 = BD(vNb(a, (wtc(), itc)), 15);
95191 g = 1 / c2.gc();
95192 if (b.n) {
95193 Sdd(b, "ELK Layered uses the following " + c2.gc() + " modules:");
95194 n = 0;
95195 for (m = c2.Kc(); m.Ob(); ) {
95196 k = BD(m.Pb(), 51);
95197 d = (n < 10 ? "0" : "") + n++;
95198 Sdd(b, " Slot " + d + ": " + hdb(rb(k)));
95199 }
95200 }
95201 for (l = c2.Kc(); l.Ob(); ) {
95202 k = BD(l.Pb(), 51);
95203 k.pf(a, Udd(b, g));
95204 }
95205 for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
95206 e = BD(mlb(f2), 29);
95207 Gkb(a.a, e.a);
95208 e.a.c = KC(SI, Uhe, 1, 0, 5, 1);
95209 }
95210 for (j = new olb(a.a); j.a < j.c.c.length; ) {
95211 i3 = BD(mlb(j), 10);
95212 $_b(i3, null);
95213 }
95214 a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
95215 h || Qdd(b);
95216 }
95217 function kJc(a, b) {
95218 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A;
95219 d = Edb(ED(vNb(b, (Nyc(), Bxc))));
95220 v = BD(vNb(b, Ayc), 19).a;
95221 m = 4;
95222 e = 3;
95223 w2 = 20 / v;
95224 n = false;
95225 i3 = 0;
95226 g = Ohe;
95227 do {
95228 f2 = i3 != 1;
95229 l = i3 != 0;
95230 A = 0;
95231 for (q = a.a, s = 0, u2 = q.length; s < u2; ++s) {
95232 o2 = q[s];
95233 o2.f = null;
95234 lJc(a, o2, f2, l, d);
95235 A += $wnd.Math.abs(o2.a);
95236 }
95237 do {
95238 h = pJc(a, b);
95239 } while (h);
95240 for (p = a.a, r = 0, t4 = p.length; r < t4; ++r) {
95241 o2 = p[r];
95242 c2 = xJc(o2).a;
95243 if (c2 != 0) {
95244 for (k = new olb(o2.e); k.a < k.c.c.length; ) {
95245 j = BD(mlb(k), 10);
95246 j.n.b += c2;
95247 }
95248 }
95249 }
95250 if (i3 == 0 || i3 == 1) {
95251 --m;
95252 if (m <= 0 && (A < g || -m > v)) {
95253 i3 = 2;
95254 g = Ohe;
95255 } else if (i3 == 0) {
95256 i3 = 1;
95257 g = A;
95258 } else {
95259 i3 = 0;
95260 g = A;
95261 }
95262 } else {
95263 n = A >= g || g - A < w2;
95264 g = A;
95265 n && --e;
95266 }
95267 } while (!(n && e <= 0));
95268 }
95269 function UCb(a, b, c2) {
95270 var d, e, f2, g, h, i3, j, k, l, m, n, o2;
95271 o2 = new Lqb();
95272 for (f2 = a.a.ec().Kc(); f2.Ob(); ) {
95273 d = BD(f2.Pb(), 168);
95274 Rhb(o2, d, c2.Je(d));
95275 }
95276 g = (Qb(a), a ? new Tkb(a) : Nu(a.a.ec().Kc()));
95277 Okb(g, new WCb(o2));
95278 h = Gx(g);
95279 i3 = new hDb(b);
95280 n = new Lqb();
95281 jrb(n.f, b, i3);
95282 while (h.a.gc() != 0) {
95283 j = null;
95284 k = null;
95285 l = null;
95286 for (e = h.a.ec().Kc(); e.Ob(); ) {
95287 d = BD(e.Pb(), 168);
95288 if (Edb(ED(Wd(irb(o2.f, d)))) <= Pje) {
95289 if (Mhb(n, d.a) && !Mhb(n, d.b)) {
95290 k = d.b;
95291 l = d.a;
95292 j = d;
95293 break;
95294 }
95295 if (Mhb(n, d.b)) {
95296 if (!Mhb(n, d.a)) {
95297 k = d.a;
95298 l = d.b;
95299 j = d;
95300 break;
95301 }
95302 }
95303 }
95304 }
95305 if (!j) {
95306 break;
95307 }
95308 m = new hDb(k);
95309 Ekb(BD(Wd(irb(n.f, l)), 221).a, m);
95310 jrb(n.f, k, m);
95311 h.a.Bc(j) != null;
95312 }
95313 return i3;
95314 }
95315 function UBc(a, b, c2) {
95316 var d, e, f2, g, h, i3, j, k, l, m, n;
95317 Odd(c2, "Depth-first cycle removal", 1);
95318 l = b.a;
95319 k = l.c.length;
95320 a.c = new Rkb();
95321 a.d = KC(sbb, dle, 25, k, 16, 1);
95322 a.a = KC(sbb, dle, 25, k, 16, 1);
95323 a.b = new Rkb();
95324 g = 0;
95325 for (j = new olb(l); j.a < j.c.c.length; ) {
95326 i3 = BD(mlb(j), 10);
95327 i3.p = g;
95328 Qq(R_b(i3)) && Ekb(a.c, i3);
95329 ++g;
95330 }
95331 for (n = new olb(a.c); n.a < n.c.c.length; ) {
95332 m = BD(mlb(n), 10);
95333 TBc(a, m);
95334 }
95335 for (f2 = 0; f2 < k; f2++) {
95336 if (!a.d[f2]) {
95337 h = (tCb(f2, l.c.length), BD(l.c[f2], 10));
95338 TBc(a, h);
95339 }
95340 }
95341 for (e = new olb(a.b); e.a < e.c.c.length; ) {
95342 d = BD(mlb(e), 17);
95343 PZb(d, true);
95344 yNb(b, (wtc(), Asc), (Bcb(), true));
95345 }
95346 a.c = null;
95347 a.d = null;
95348 a.a = null;
95349 a.b = null;
95350 Qdd(c2);
95351 }
95352 function PSc(a, b) {
95353 var c2, d, e, f2, g, h, i3;
95354 a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
95355 for (d = Jsb(b.b, 0); d.b != d.d.c; ) {
95356 c2 = BD(Xsb(d), 86);
95357 if (c2.b.b == 0) {
95358 yNb(c2, (mTc(), jTc), (Bcb(), true));
95359 Ekb(a.a, c2);
95360 }
95361 }
95362 switch (a.a.c.length) {
95363 case 0:
95364 e = new XRc(0, b, "DUMMY_ROOT");
95365 yNb(e, (mTc(), jTc), (Bcb(), true));
95366 yNb(e, YSc, true);
95367 Dsb(b.b, e);
95368 break;
95369 case 1:
95370 break;
95371 default:
95372 f2 = new XRc(0, b, "SUPER_ROOT");
95373 for (h = new olb(a.a); h.a < h.c.c.length; ) {
95374 g = BD(mlb(h), 86);
95375 i3 = new QRc(f2, g);
95376 yNb(i3, (mTc(), YSc), (Bcb(), true));
95377 Dsb(f2.a.a, i3);
95378 Dsb(f2.d, i3);
95379 Dsb(g.b, i3);
95380 yNb(g, jTc, false);
95381 }
95382 yNb(f2, (mTc(), jTc), (Bcb(), true));
95383 yNb(f2, YSc, true);
95384 Dsb(b.b, f2);
95385 }
95386 }
95387 function z6c(a, b) {
95388 i6c();
95389 var c2, d, e, f2, g, h;
95390 f2 = b.c - (a.c + a.b);
95391 e = a.c - (b.c + b.b);
95392 g = a.d - (b.d + b.a);
95393 c2 = b.d - (a.d + a.a);
95394 d = $wnd.Math.max(e, f2);
95395 h = $wnd.Math.max(g, c2);
95396 Iy();
95397 My(Jqe);
95398 if (($wnd.Math.abs(d) <= Jqe || d == 0 || isNaN(d) && isNaN(0) ? 0 : d < 0 ? -1 : d > 0 ? 1 : Ny(isNaN(d), isNaN(0))) >= 0 ^ (My(Jqe), ($wnd.Math.abs(h) <= Jqe || h == 0 || isNaN(h) && isNaN(0) ? 0 : h < 0 ? -1 : h > 0 ? 1 : Ny(isNaN(h), isNaN(0))) >= 0)) {
95399 return $wnd.Math.max(h, d);
95400 }
95401 My(Jqe);
95402 if (($wnd.Math.abs(d) <= Jqe || d == 0 || isNaN(d) && isNaN(0) ? 0 : d < 0 ? -1 : d > 0 ? 1 : Ny(isNaN(d), isNaN(0))) > 0) {
95403 return $wnd.Math.sqrt(h * h + d * d);
95404 }
95405 return -$wnd.Math.sqrt(h * h + d * d);
95406 }
95407 function Kge(a, b) {
95408 var c2, d, e, f2, g, h;
95409 if (!b)
95410 return;
95411 !a.a && (a.a = new Wvb());
95412 if (a.e == 2) {
95413 Tvb(a.a, b);
95414 return;
95415 }
95416 if (b.e == 1) {
95417 for (e = 0; e < b.em(); e++)
95418 Kge(a, b.am(e));
95419 return;
95420 }
95421 h = a.a.a.c.length;
95422 if (h == 0) {
95423 Tvb(a.a, b);
95424 return;
95425 }
95426 g = BD(Uvb(a.a, h - 1), 117);
95427 if (!((g.e == 0 || g.e == 10) && (b.e == 0 || b.e == 10))) {
95428 Tvb(a.a, b);
95429 return;
95430 }
95431 f2 = b.e == 0 ? 2 : b.bm().length;
95432 if (g.e == 0) {
95433 c2 = new Ifb();
95434 d = g._l();
95435 d >= Tje ? Efb(c2, Tee(d)) : Afb(c2, d & aje);
95436 g = new Hge(10, null, 0);
95437 Vvb(a.a, g, h - 1);
95438 } else {
95439 c2 = (g.bm().length + f2, new Ifb());
95440 Efb(c2, g.bm());
95441 }
95442 if (b.e == 0) {
95443 d = b._l();
95444 d >= Tje ? Efb(c2, Tee(d)) : Afb(c2, d & aje);
95445 } else {
95446 Efb(c2, b.bm());
95447 }
95448 BD(g, 521).b = c2.a;
95449 }
95450 function rgb2(a) {
95451 var b, c2, d, e, f2;
95452 if (a.g != null) {
95453 return a.g;
95454 }
95455 if (a.a < 32) {
95456 a.g = rhb(Cbb(a.f), QD(a.e));
95457 return a.g;
95458 }
95459 e = shb((!a.c && (a.c = fhb(a.f)), a.c), 0);
95460 if (a.e == 0) {
95461 return e;
95462 }
95463 b = (!a.c && (a.c = fhb(a.f)), a.c).e < 0 ? 2 : 1;
95464 c2 = e.length;
95465 d = -a.e + c2 - b;
95466 f2 = new Ufb();
95467 f2.a += "" + e;
95468 if (a.e > 0 && d >= -6) {
95469 if (d >= 0) {
95470 Tfb(f2, c2 - QD(a.e), String.fromCharCode(46));
95471 } else {
95472 f2.a = qfb(f2.a, 0, b - 1) + "0." + pfb(f2.a, b - 1);
95473 Tfb(f2, b + 1, zfb(egb, 0, -QD(d) - 1));
95474 }
95475 } else {
95476 if (c2 - b >= 1) {
95477 Tfb(f2, b, String.fromCharCode(46));
95478 ++c2;
95479 }
95480 Tfb(f2, c2, String.fromCharCode(69));
95481 d > 0 && Tfb(f2, ++c2, String.fromCharCode(43));
95482 Tfb(f2, ++c2, "" + Ubb(Cbb(d)));
95483 }
95484 a.g = f2.a;
95485 return a.g;
95486 }
95487 function npc(a, b, c2) {
95488 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
95489 if (c2.dc()) {
95490 return;
95491 }
95492 h = 0;
95493 m = 0;
95494 d = c2.Kc();
95495 o2 = BD(d.Pb(), 19).a;
95496 while (h < b.f) {
95497 if (h == o2) {
95498 m = 0;
95499 d.Ob() ? o2 = BD(d.Pb(), 19).a : o2 = b.f + 1;
95500 }
95501 if (h != m) {
95502 q = BD(Ikb(a.b, h), 29);
95503 n = BD(Ikb(a.b, m), 29);
95504 p = Mu(q.a);
95505 for (l = new olb(p); l.a < l.c.c.length; ) {
95506 k = BD(mlb(l), 10);
95507 Z_b(k, n.a.c.length, n);
95508 if (m == 0) {
95509 g = Mu(R_b(k));
95510 for (f2 = new olb(g); f2.a < f2.c.c.length; ) {
95511 e = BD(mlb(f2), 17);
95512 PZb(e, true);
95513 yNb(a, (wtc(), Asc), (Bcb(), true));
95514 Noc(a, e, 1);
95515 }
95516 }
95517 }
95518 }
95519 ++m;
95520 ++h;
95521 }
95522 i3 = new Bib(a.b, 0);
95523 while (i3.b < i3.d.gc()) {
95524 j = (sCb(i3.b < i3.d.gc()), BD(i3.d.Xb(i3.c = i3.b++), 29));
95525 j.a.c.length == 0 && uib(i3);
95526 }
95527 }
95528 function xmc(a, b) {
95529 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
95530 g = b.b;
95531 k = g.o;
95532 i3 = g.d;
95533 d = Edb(ED(c_b(g, (Nyc(), lyc))));
95534 e = Edb(ED(c_b(g, nyc)));
95535 j = Edb(ED(c_b(g, xyc)));
95536 h = new L_b();
95537 v_b(h, i3.d, i3.c, i3.a, i3.b);
95538 m = tmc(b, d, e, j);
95539 for (r = new olb(b.d); r.a < r.c.c.length; ) {
95540 q = BD(mlb(r), 101);
95541 for (o2 = q.f.a.ec().Kc(); o2.Ob(); ) {
95542 n = BD(o2.Pb(), 409);
95543 f2 = n.a;
95544 l = rmc(n);
95545 c2 = (s = new s7c(), pmc(n, n.c, m, s), omc(n, l, m, s), pmc(n, n.d, m, s), s);
95546 c2 = a.Uf(n, l, c2);
95547 Osb(f2.a);
95548 ye(f2.a, c2);
95549 MAb(new YAb(null, new Kub(c2, 16)), new Bmc(k, h));
95550 }
95551 p = q.i;
95552 if (p) {
95553 wmc(q, p, m, e);
95554 t4 = new g7c(p.g);
95555 ymc(k, h, t4);
95556 P6c(t4, p.j);
95557 ymc(k, h, t4);
95558 }
95559 }
95560 v_b(i3, h.d, h.c, h.a, h.b);
95561 }
95562 function rgc(a, b, c2) {
95563 var d, e, f2;
95564 e = BD(vNb(b, (Nyc(), swc)), 275);
95565 if (e == (yrc(), wrc)) {
95566 return;
95567 }
95568 Odd(c2, "Horizontal Compaction", 1);
95569 a.a = b;
95570 f2 = new Ygc();
95571 d = new cEb((f2.d = b, f2.c = BD(vNb(f2.d, Swc), 218), Pgc(f2), Wgc(f2), Vgc(f2), f2.a));
95572 aEb(d, a.b);
95573 switch (BD(vNb(b, rwc), 422).g) {
95574 case 1:
95575 $Db(d, new jfc(a.a));
95576 break;
95577 default:
95578 $Db(d, (ODb(), MDb));
95579 }
95580 switch (e.g) {
95581 case 1:
95582 TDb(d);
95583 break;
95584 case 2:
95585 TDb(SDb(d, (ead(), bad)));
95586 break;
95587 case 3:
95588 TDb(_Db(SDb(TDb(d), (ead(), bad)), new Bgc()));
95589 break;
95590 case 4:
95591 TDb(_Db(SDb(TDb(d), (ead(), bad)), new Dgc(f2)));
95592 break;
95593 case 5:
95594 TDb(ZDb(d, pgc));
95595 }
95596 SDb(d, (ead(), aad));
95597 d.e = true;
95598 Mgc(f2);
95599 Qdd(c2);
95600 }
95601 function mYc(a, b, c2, d, e, f2, g, h) {
95602 var i3, j, k, l;
95603 i3 = Ou(OC(GC(z_, 1), Uhe, 220, 0, [b, c2, d, e]));
95604 l = null;
95605 switch (a.b.g) {
95606 case 1:
95607 l = Ou(OC(GC(o_, 1), Uhe, 526, 0, [new uYc(), new oYc(), new qYc()]));
95608 break;
95609 case 0:
95610 l = Ou(OC(GC(o_, 1), Uhe, 526, 0, [new qYc(), new oYc(), new uYc()]));
95611 break;
95612 case 2:
95613 l = Ou(OC(GC(o_, 1), Uhe, 526, 0, [new oYc(), new uYc(), new qYc()]));
95614 }
95615 for (k = new olb(l); k.a < k.c.c.length; ) {
95616 j = BD(mlb(k), 526);
95617 i3.c.length > 1 && (i3 = j.mg(i3, a.a, h));
95618 }
95619 if (i3.c.length == 1) {
95620 return BD(Ikb(i3, i3.c.length - 1), 220);
95621 }
95622 if (i3.c.length == 2) {
95623 return lYc((tCb(0, i3.c.length), BD(i3.c[0], 220)), (tCb(1, i3.c.length), BD(i3.c[1], 220)), g, f2);
95624 }
95625 return null;
95626 }
95627 function JNb(a) {
95628 var b, c2, d, e, f2, g;
95629 Hkb(a.a, new PNb());
95630 for (c2 = new olb(a.a); c2.a < c2.c.c.length; ) {
95631 b = BD(mlb(c2), 221);
95632 d = c7c(R6c(BD(a.b, 65).c), BD(b.b, 65).c);
95633 if (FNb) {
95634 g = BD(a.b, 65).b;
95635 f2 = BD(b.b, 65).b;
95636 if ($wnd.Math.abs(d.a) >= $wnd.Math.abs(d.b)) {
95637 d.b = 0;
95638 f2.d + f2.a > g.d && f2.d < g.d + g.a && $6c(d, $wnd.Math.max(g.c - (f2.c + f2.b), f2.c - (g.c + g.b)));
95639 } else {
95640 d.a = 0;
95641 f2.c + f2.b > g.c && f2.c < g.c + g.b && $6c(d, $wnd.Math.max(g.d - (f2.d + f2.a), f2.d - (g.d + g.a)));
95642 }
95643 } else {
95644 $6c(d, _Nb(BD(a.b, 65), BD(b.b, 65)));
95645 }
95646 e = $wnd.Math.sqrt(d.a * d.a + d.b * d.b);
95647 e = LNb(GNb, b, e, d);
95648 $6c(d, e);
95649 $Nb(BD(b.b, 65), d);
95650 Hkb(b.a, new RNb(d));
95651 BD(GNb.b, 65);
95652 KNb(GNb, HNb, b);
95653 }
95654 }
95655 function VJc(a) {
95656 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
95657 a.f = new KFb();
95658 j = 0;
95659 e = 0;
95660 for (g = new olb(a.e.b); g.a < g.c.c.length; ) {
95661 f2 = BD(mlb(g), 29);
95662 for (i3 = new olb(f2.a); i3.a < i3.c.c.length; ) {
95663 h = BD(mlb(i3), 10);
95664 h.p = j++;
95665 for (d = new Sr(ur(U_b(h).a.Kc(), new Sq())); Qr(d); ) {
95666 c2 = BD(Rr(d), 17);
95667 c2.p = e++;
95668 }
95669 b = bKc(h);
95670 for (m = new olb(h.j); m.a < m.c.c.length; ) {
95671 l = BD(mlb(m), 11);
95672 if (b) {
95673 o2 = l.a.b;
95674 if (o2 != $wnd.Math.floor(o2)) {
95675 k = o2 - Sbb(Cbb($wnd.Math.round(o2)));
95676 l.a.b -= k;
95677 }
95678 }
95679 n = l.n.b + l.a.b;
95680 if (n != $wnd.Math.floor(n)) {
95681 k = n - Sbb(Cbb($wnd.Math.round(n)));
95682 l.n.b -= k;
95683 }
95684 }
95685 }
95686 }
95687 a.g = j;
95688 a.b = e;
95689 a.i = KC(xY, Uhe, 401, j, 0, 1);
95690 a.c = KC(wY, Uhe, 649, e, 0, 1);
95691 a.d.a.$b();
95692 }
95693 function Uxd(a) {
95694 var b, c2, d, e, f2, g, h, i3, j;
95695 if (a.ej()) {
95696 i3 = a.fj();
95697 if (a.i > 0) {
95698 b = new _zd(a.i, a.g);
95699 c2 = a.i;
95700 f2 = c2 < 100 ? null : new Ixd(c2);
95701 if (a.ij()) {
95702 for (d = 0; d < a.i; ++d) {
95703 g = a.g[d];
95704 f2 = a.kj(g, f2);
95705 }
95706 }
95707 oud(a);
95708 e = c2 == 1 ? a.Zi(4, qud(b, 0), null, 0, i3) : a.Zi(6, b, null, -1, i3);
95709 if (a.bj()) {
95710 for (d = new $yd(b); d.e != d.i.gc(); ) {
95711 f2 = a.dj(Zyd(d), f2);
95712 }
95713 if (!f2) {
95714 a.$i(e);
95715 } else {
95716 f2.Ei(e);
95717 f2.Fi();
95718 }
95719 } else {
95720 if (!f2) {
95721 a.$i(e);
95722 } else {
95723 f2.Ei(e);
95724 f2.Fi();
95725 }
95726 }
95727 } else {
95728 oud(a);
95729 a.$i(a.Zi(6, (mmb(), jmb), null, -1, i3));
95730 }
95731 } else if (a.bj()) {
95732 if (a.i > 0) {
95733 h = a.g;
95734 j = a.i;
95735 oud(a);
95736 f2 = j < 100 ? null : new Ixd(j);
95737 for (d = 0; d < j; ++d) {
95738 g = h[d];
95739 f2 = a.dj(g, f2);
95740 }
95741 !!f2 && f2.Fi();
95742 } else {
95743 oud(a);
95744 }
95745 } else {
95746 oud(a);
95747 }
95748 }
95749 function ZQc(a, b, c2) {
95750 var d, e, f2, g, h, i3, j, k, l, m;
95751 TQc(this);
95752 c2 == (FQc(), DQc) ? Qqb(this.r, a) : Qqb(this.w, a);
95753 k = Pje;
95754 j = Qje;
95755 for (g = b.a.ec().Kc(); g.Ob(); ) {
95756 e = BD(g.Pb(), 46);
95757 h = BD(e.a, 455);
95758 d = BD(e.b, 17);
95759 i3 = d.c;
95760 i3 == a && (i3 = d.d);
95761 h == DQc ? Qqb(this.r, i3) : Qqb(this.w, i3);
95762 m = (Ucd(), Lcd).Hc(i3.j) ? Edb(ED(vNb(i3, (wtc(), qtc)))) : l7c(OC(GC(m1, 1), nie, 8, 0, [i3.i.n, i3.n, i3.a])).b;
95763 k = $wnd.Math.min(k, m);
95764 j = $wnd.Math.max(j, m);
95765 }
95766 l = (Ucd(), Lcd).Hc(a.j) ? Edb(ED(vNb(a, (wtc(), qtc)))) : l7c(OC(GC(m1, 1), nie, 8, 0, [a.i.n, a.n, a.a])).b;
95767 XQc(this, l, k, j);
95768 for (f2 = b.a.ec().Kc(); f2.Ob(); ) {
95769 e = BD(f2.Pb(), 46);
95770 UQc(this, BD(e.b, 17));
95771 }
95772 this.o = false;
95773 }
95774 function gD(a, b) {
95775 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G;
95776 c2 = a.l & 8191;
95777 d = a.l >> 13 | (a.m & 15) << 9;
95778 e = a.m >> 4 & 8191;
95779 f2 = a.m >> 17 | (a.h & 255) << 5;
95780 g = (a.h & 1048320) >> 8;
95781 h = b.l & 8191;
95782 i3 = b.l >> 13 | (b.m & 15) << 9;
95783 j = b.m >> 4 & 8191;
95784 k = b.m >> 17 | (b.h & 255) << 5;
95785 l = (b.h & 1048320) >> 8;
95786 B = c2 * h;
95787 C = d * h;
95788 D3 = e * h;
95789 F = f2 * h;
95790 G = g * h;
95791 if (i3 != 0) {
95792 C += c2 * i3;
95793 D3 += d * i3;
95794 F += e * i3;
95795 G += f2 * i3;
95796 }
95797 if (j != 0) {
95798 D3 += c2 * j;
95799 F += d * j;
95800 G += e * j;
95801 }
95802 if (k != 0) {
95803 F += c2 * k;
95804 G += d * k;
95805 }
95806 l != 0 && (G += c2 * l);
95807 n = B & Eje;
95808 o2 = (C & 511) << 13;
95809 m = n + o2;
95810 q = B >> 22;
95811 r = C >> 9;
95812 s = (D3 & 262143) << 4;
95813 t4 = (F & 31) << 17;
95814 p = q + r + s + t4;
95815 v = D3 >> 18;
95816 w2 = F >> 5;
95817 A = (G & 4095) << 8;
95818 u2 = v + w2 + A;
95819 p += m >> 22;
95820 m &= Eje;
95821 u2 += p >> 22;
95822 p &= Eje;
95823 u2 &= Fje;
95824 return TC(m, p, u2);
95825 }
95826 function o7b(a) {
95827 var b, c2, d, e, f2, g, h;
95828 h = BD(Ikb(a.j, 0), 11);
95829 if (h.g.c.length != 0 && h.e.c.length != 0) {
95830 throw vbb(new Zdb("Interactive layout does not support NORTH/SOUTH ports with incoming _and_ outgoing edges."));
95831 }
95832 if (h.g.c.length != 0) {
95833 f2 = Pje;
95834 for (c2 = new olb(h.g); c2.a < c2.c.c.length; ) {
95835 b = BD(mlb(c2), 17);
95836 g = b.d.i;
95837 d = BD(vNb(g, (Nyc(), txc)), 142);
95838 f2 = $wnd.Math.min(f2, g.n.a - d.b);
95839 }
95840 return new cc(Qb(f2));
95841 }
95842 if (h.e.c.length != 0) {
95843 e = Qje;
95844 for (c2 = new olb(h.e); c2.a < c2.c.c.length; ) {
95845 b = BD(mlb(c2), 17);
95846 g = b.c.i;
95847 d = BD(vNb(g, (Nyc(), txc)), 142);
95848 e = $wnd.Math.max(e, g.n.a + g.o.a + d.c);
95849 }
95850 return new cc(Qb(e));
95851 }
95852 return wb(), wb(), vb;
95853 }
95854 function ELd(a, b) {
95855 var c2, d, e, f2, g, h, i3;
95856 if (a.Fk()) {
95857 if (a.i > 4) {
95858 if (a.wj(b)) {
95859 if (a.rk()) {
95860 e = BD(b, 49);
95861 d = e.Ug();
95862 i3 = d == a.e && (a.Dk() ? e.Og(e.Vg(), a.zk()) == a.Ak() : -1 - e.Vg() == a.aj());
95863 if (a.Ek() && !i3 && !d && !!e.Zg()) {
95864 for (f2 = 0; f2 < a.i; ++f2) {
95865 c2 = a.Gk(BD(a.g[f2], 56));
95866 if (PD(c2) === PD(b)) {
95867 return true;
95868 }
95869 }
95870 }
95871 return i3;
95872 } else if (a.Dk() && !a.Ck()) {
95873 g = BD(b, 56).ah(zUd(BD(a.ak(), 18)));
95874 if (PD(g) === PD(a.e)) {
95875 return true;
95876 } else if (g == null || !BD(g, 56).kh()) {
95877 return false;
95878 }
95879 }
95880 } else {
95881 return false;
95882 }
95883 }
95884 h = pud(a, b);
95885 if (a.Ek() && !h) {
95886 for (f2 = 0; f2 < a.i; ++f2) {
95887 e = a.Gk(BD(a.g[f2], 56));
95888 if (PD(e) === PD(b)) {
95889 return true;
95890 }
95891 }
95892 }
95893 return h;
95894 } else {
95895 return pud(a, b);
95896 }
95897 }
95898 function mHc(a, b) {
95899 var c2, d, e, f2, g, h, i3, j, k, l, m;
95900 k = new Rkb();
95901 m = new Tqb();
95902 g = b.b;
95903 for (e = 0; e < g.c.length; e++) {
95904 j = (tCb(e, g.c.length), BD(g.c[e], 29)).a;
95905 k.c = KC(SI, Uhe, 1, 0, 5, 1);
95906 for (f2 = 0; f2 < j.c.length; f2++) {
95907 h = a.a[e][f2];
95908 h.p = f2;
95909 h.k == (j0b(), i0b) && (k.c[k.c.length] = h, true);
95910 Nkb(BD(Ikb(b.b, e), 29).a, f2, h);
95911 h.j.c = KC(SI, Uhe, 1, 0, 5, 1);
95912 Gkb(h.j, BD(BD(Ikb(a.b, e), 15).Xb(f2), 14));
95913 ecd(BD(vNb(h, (Nyc(), Vxc)), 98)) || yNb(h, Vxc, (dcd(), Zbd));
95914 }
95915 for (d = new olb(k); d.a < d.c.c.length; ) {
95916 c2 = BD(mlb(d), 10);
95917 l = kHc(c2);
95918 m.a.zc(l, m);
95919 m.a.zc(c2, m);
95920 }
95921 }
95922 for (i3 = m.a.ec().Kc(); i3.Ob(); ) {
95923 h = BD(i3.Pb(), 10);
95924 mmb();
95925 Okb(h.j, (Occ(), Icc));
95926 h.i = true;
95927 N_b(h);
95928 }
95929 }
95930 function g6b(a, b) {
95931 var c2, d, e, f2, g, h, i3, j, k, l;
95932 k = BD(vNb(a, (wtc(), Hsc)), 61);
95933 d = BD(Ikb(a.j, 0), 11);
95934 k == (Ucd(), Acd) ? G0b(d, Rcd) : k == Rcd && G0b(d, Acd);
95935 if (BD(vNb(b, (Nyc(), Fxc)), 174).Hc((tdd(), sdd))) {
95936 i3 = Edb(ED(vNb(a, tyc)));
95937 j = Edb(ED(vNb(a, uyc)));
95938 g = Edb(ED(vNb(a, ryc)));
95939 h = BD(vNb(b, Yxc), 21);
95940 if (h.Hc((rcd(), ncd))) {
95941 c2 = j;
95942 l = a.o.a / 2 - d.n.a;
95943 for (f2 = new olb(d.f); f2.a < f2.c.c.length; ) {
95944 e = BD(mlb(f2), 70);
95945 e.n.b = c2;
95946 e.n.a = l - e.o.a / 2;
95947 c2 += e.o.b + g;
95948 }
95949 } else if (h.Hc(pcd)) {
95950 for (f2 = new olb(d.f); f2.a < f2.c.c.length; ) {
95951 e = BD(mlb(f2), 70);
95952 e.n.a = i3 + a.o.a - d.n.a;
95953 }
95954 }
95955 WGb(new YGb((a$b(), new l$b(b, false, false, new T$b()))), new x$b(null, a, false));
95956 }
95957 }
95958 function Ugc(a, b) {
95959 var c2, d, e, f2, g, h, i3, j, k;
95960 if (b.c.length == 0) {
95961 return;
95962 }
95963 mmb();
95964 Mlb(b.c, b.c.length, null);
95965 e = new olb(b);
95966 d = BD(mlb(e), 145);
95967 while (e.a < e.c.c.length) {
95968 c2 = BD(mlb(e), 145);
95969 if (ADb(d.e.c, c2.e.c) && !(DDb(B6c(d.e).b, c2.e.d) || DDb(B6c(c2.e).b, d.e.d))) {
95970 d = (Gkb(d.k, c2.k), Gkb(d.b, c2.b), Gkb(d.c, c2.c), ye(d.i, c2.i), Gkb(d.d, c2.d), Gkb(d.j, c2.j), f2 = $wnd.Math.min(d.e.c, c2.e.c), g = $wnd.Math.min(d.e.d, c2.e.d), h = $wnd.Math.max(d.e.c + d.e.b, c2.e.c + c2.e.b), i3 = h - f2, j = $wnd.Math.max(d.e.d + d.e.a, c2.e.d + c2.e.a), k = j - g, G6c(d.e, f2, g, i3, k), hEb(d.f, c2.f), !d.a && (d.a = c2.a), Gkb(d.g, c2.g), Ekb(d.g, c2), d);
95971 } else {
95972 Xgc(a, d);
95973 d = c2;
95974 }
95975 }
95976 Xgc(a, d);
95977 }
95978 function e_b(a, b, c2, d) {
95979 var e, f2, g, h, i3, j;
95980 h = a.j;
95981 if (h == (Ucd(), Scd) && b != (dcd(), bcd) && b != (dcd(), ccd)) {
95982 h = W$b(a, c2);
95983 G0b(a, h);
95984 !(!a.q ? (mmb(), mmb(), kmb) : a.q)._b((Nyc(), Uxc)) && h != Scd && (a.n.a != 0 || a.n.b != 0) && yNb(a, Uxc, V$b(a, h));
95985 }
95986 if (b == (dcd(), _bd)) {
95987 j = 0;
95988 switch (h.g) {
95989 case 1:
95990 case 3:
95991 f2 = a.i.o.a;
95992 f2 > 0 && (j = a.n.a / f2);
95993 break;
95994 case 2:
95995 case 4:
95996 e = a.i.o.b;
95997 e > 0 && (j = a.n.b / e);
95998 }
95999 yNb(a, (wtc(), htc), j);
96000 }
96001 i3 = a.o;
96002 g = a.a;
96003 if (d) {
96004 g.a = d.a;
96005 g.b = d.b;
96006 a.d = true;
96007 } else if (b != bcd && b != ccd && h != Scd) {
96008 switch (h.g) {
96009 case 1:
96010 g.a = i3.a / 2;
96011 break;
96012 case 2:
96013 g.a = i3.a;
96014 g.b = i3.b / 2;
96015 break;
96016 case 3:
96017 g.a = i3.a / 2;
96018 g.b = i3.b;
96019 break;
96020 case 4:
96021 g.b = i3.b / 2;
96022 }
96023 } else {
96024 g.a = i3.a / 2;
96025 g.b = i3.b / 2;
96026 }
96027 }
96028 function vwd(a) {
96029 var b, c2, d, e, f2, g, h, i3, j, k;
96030 if (a.ej()) {
96031 k = a.Vi();
96032 i3 = a.fj();
96033 if (k > 0) {
96034 b = new Aud(a.Gi());
96035 c2 = k;
96036 f2 = c2 < 100 ? null : new Ixd(c2);
96037 Cvd(a, c2, b.g);
96038 e = c2 == 1 ? a.Zi(4, qud(b, 0), null, 0, i3) : a.Zi(6, b, null, -1, i3);
96039 if (a.bj()) {
96040 for (d = new Fyd(b); d.e != d.i.gc(); ) {
96041 f2 = a.dj(Dyd(d), f2);
96042 }
96043 if (!f2) {
96044 a.$i(e);
96045 } else {
96046 f2.Ei(e);
96047 f2.Fi();
96048 }
96049 } else {
96050 if (!f2) {
96051 a.$i(e);
96052 } else {
96053 f2.Ei(e);
96054 f2.Fi();
96055 }
96056 }
96057 } else {
96058 Cvd(a, a.Vi(), a.Wi());
96059 a.$i(a.Zi(6, (mmb(), jmb), null, -1, i3));
96060 }
96061 } else if (a.bj()) {
96062 k = a.Vi();
96063 if (k > 0) {
96064 h = a.Wi();
96065 j = k;
96066 Cvd(a, k, h);
96067 f2 = j < 100 ? null : new Ixd(j);
96068 for (d = 0; d < j; ++d) {
96069 g = h[d];
96070 f2 = a.dj(g, f2);
96071 }
96072 !!f2 && f2.Fi();
96073 } else {
96074 Cvd(a, a.Vi(), a.Wi());
96075 }
96076 } else {
96077 Cvd(a, a.Vi(), a.Wi());
96078 }
96079 }
96080 function LEc(a, b, c2) {
96081 var d, e, f2, g, h, i3, j, k, l, m, n;
96082 for (h = new olb(b); h.a < h.c.c.length; ) {
96083 f2 = BD(mlb(h), 233);
96084 f2.e = null;
96085 f2.c = 0;
96086 }
96087 i3 = null;
96088 for (g = new olb(b); g.a < g.c.c.length; ) {
96089 f2 = BD(mlb(g), 233);
96090 l = f2.d[0];
96091 if (c2 && l.k != (j0b(), h0b)) {
96092 continue;
96093 }
96094 for (n = BD(vNb(l, (wtc(), Qsc)), 15).Kc(); n.Ob(); ) {
96095 m = BD(n.Pb(), 10);
96096 if (!c2 || m.k == (j0b(), h0b)) {
96097 (!f2.e && (f2.e = new Rkb()), f2.e).Fc(a.b[m.c.p][m.p]);
96098 ++a.b[m.c.p][m.p].c;
96099 }
96100 }
96101 if (!c2 && l.k == (j0b(), h0b)) {
96102 if (i3) {
96103 for (k = BD(Qc(a.d, i3), 21).Kc(); k.Ob(); ) {
96104 j = BD(k.Pb(), 10);
96105 for (e = BD(Qc(a.d, l), 21).Kc(); e.Ob(); ) {
96106 d = BD(e.Pb(), 10);
96107 YEc(a.b[j.c.p][j.p]).Fc(a.b[d.c.p][d.p]);
96108 ++a.b[d.c.p][d.p].c;
96109 }
96110 }
96111 }
96112 i3 = l;
96113 }
96114 }
96115 }
96116 function OHc(a, b) {
96117 var c2, d, e, f2, g, h, i3, j, k;
96118 c2 = 0;
96119 k = new Rkb();
96120 for (h = new olb(b); h.a < h.c.c.length; ) {
96121 g = BD(mlb(h), 11);
96122 AHc(a.b, a.d[g.p]);
96123 k.c = KC(SI, Uhe, 1, 0, 5, 1);
96124 switch (g.i.k.g) {
96125 case 0:
96126 d = BD(vNb(g, (wtc(), gtc)), 10);
96127 Hkb(d.j, new xIc(k));
96128 break;
96129 case 1:
96130 Ctb(KAb(JAb(new YAb(null, new Kub(g.i.j, 16)), new zIc(g))), new CIc(k));
96131 break;
96132 case 3:
96133 e = BD(vNb(g, (wtc(), $sc)), 11);
96134 Ekb(k, new vgd(e, meb(g.e.c.length + g.g.c.length)));
96135 }
96136 for (j = new olb(k); j.a < j.c.c.length; ) {
96137 i3 = BD(mlb(j), 46);
96138 f2 = aIc(a, BD(i3.a, 11));
96139 if (f2 > a.d[g.p]) {
96140 c2 += zHc(a.b, f2) * BD(i3.b, 19).a;
96141 Wjb(a.a, meb(f2));
96142 }
96143 }
96144 while (!akb(a.a)) {
96145 xHc(a.b, BD(fkb(a.a), 19).a);
96146 }
96147 }
96148 return c2;
96149 }
96150 function eed(a, b, c2, d) {
96151 var e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
96152 l = new g7c(BD(hkd(a, (X7c(), R7c)), 8));
96153 l.a = $wnd.Math.max(l.a - c2.b - c2.c, 0);
96154 l.b = $wnd.Math.max(l.b - c2.d - c2.a, 0);
96155 e = ED(hkd(a, L7c));
96156 (e == null || (uCb(e), e) <= 0) && (e = 1.3);
96157 h = new Rkb();
96158 for (o2 = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); o2.e != o2.i.gc(); ) {
96159 n = BD(Dyd(o2), 33);
96160 g = new xed(n);
96161 h.c[h.c.length] = g;
96162 }
96163 m = BD(hkd(a, M7c), 311);
96164 switch (m.g) {
96165 case 3:
96166 q = bed(h, b, l.a, l.b, (j = d, uCb(e), j));
96167 break;
96168 case 1:
96169 q = aed(h, b, l.a, l.b, (k = d, uCb(e), k));
96170 break;
96171 default:
96172 q = ced(h, b, l.a, l.b, (i3 = d, uCb(e), i3));
96173 }
96174 f2 = new wed(q);
96175 p = fed(f2, b, c2, l.a, l.b, d, (uCb(e), e));
96176 Afd(a, p.a, p.b, false, true);
96177 }
96178 function vkc(a, b) {
96179 var c2, d, e, f2;
96180 c2 = b.b;
96181 f2 = new Tkb(c2.j);
96182 e = 0;
96183 d = c2.j;
96184 d.c = KC(SI, Uhe, 1, 0, 5, 1);
96185 hkc(BD(Si(a.b, (Ucd(), Acd), (Fkc(), Ekc)), 15), c2);
96186 e = ikc(f2, e, new blc(), d);
96187 hkc(BD(Si(a.b, Acd, Dkc), 15), c2);
96188 e = ikc(f2, e, new dlc(), d);
96189 hkc(BD(Si(a.b, Acd, Ckc), 15), c2);
96190 hkc(BD(Si(a.b, zcd, Ekc), 15), c2);
96191 hkc(BD(Si(a.b, zcd, Dkc), 15), c2);
96192 e = ikc(f2, e, new flc(), d);
96193 hkc(BD(Si(a.b, zcd, Ckc), 15), c2);
96194 hkc(BD(Si(a.b, Rcd, Ekc), 15), c2);
96195 e = ikc(f2, e, new hlc(), d);
96196 hkc(BD(Si(a.b, Rcd, Dkc), 15), c2);
96197 e = ikc(f2, e, new jlc(), d);
96198 hkc(BD(Si(a.b, Rcd, Ckc), 15), c2);
96199 hkc(BD(Si(a.b, Tcd, Ekc), 15), c2);
96200 e = ikc(f2, e, new Pkc(), d);
96201 hkc(BD(Si(a.b, Tcd, Dkc), 15), c2);
96202 hkc(BD(Si(a.b, Tcd, Ckc), 15), c2);
96203 }
96204 function nbc(a, b) {
96205 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
96206 Odd(b, "Layer size calculation", 1);
96207 k = Pje;
96208 j = Qje;
96209 e = false;
96210 for (h = new olb(a.b); h.a < h.c.c.length; ) {
96211 g = BD(mlb(h), 29);
96212 i3 = g.c;
96213 i3.a = 0;
96214 i3.b = 0;
96215 if (g.a.c.length == 0) {
96216 continue;
96217 }
96218 e = true;
96219 for (m = new olb(g.a); m.a < m.c.c.length; ) {
96220 l = BD(mlb(m), 10);
96221 o2 = l.o;
96222 n = l.d;
96223 i3.a = $wnd.Math.max(i3.a, o2.a + n.b + n.c);
96224 }
96225 d = BD(Ikb(g.a, 0), 10);
96226 p = d.n.b - d.d.d;
96227 d.k == (j0b(), e0b) && (p -= BD(vNb(a, (Nyc(), yyc)), 142).d);
96228 f2 = BD(Ikb(g.a, g.a.c.length - 1), 10);
96229 c2 = f2.n.b + f2.o.b + f2.d.a;
96230 f2.k == e0b && (c2 += BD(vNb(a, (Nyc(), yyc)), 142).a);
96231 i3.b = c2 - p;
96232 k = $wnd.Math.min(k, p);
96233 j = $wnd.Math.max(j, c2);
96234 }
96235 if (!e) {
96236 k = 0;
96237 j = 0;
96238 }
96239 a.f.b = j - k;
96240 a.c.b -= k;
96241 Qdd(b);
96242 }
96243 function h_b(a, b) {
96244 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
96245 f2 = 0;
96246 g = 0;
96247 for (j = new olb(a.a); j.a < j.c.c.length; ) {
96248 h = BD(mlb(j), 10);
96249 f2 = $wnd.Math.max(f2, h.d.b);
96250 g = $wnd.Math.max(g, h.d.c);
96251 }
96252 for (i3 = new olb(a.a); i3.a < i3.c.c.length; ) {
96253 h = BD(mlb(i3), 10);
96254 c2 = BD(vNb(h, (Nyc(), mwc)), 248);
96255 switch (c2.g) {
96256 case 1:
96257 o2 = 0;
96258 break;
96259 case 2:
96260 o2 = 1;
96261 break;
96262 case 5:
96263 o2 = 0.5;
96264 break;
96265 default:
96266 d = 0;
96267 l = 0;
96268 for (n = new olb(h.j); n.a < n.c.c.length; ) {
96269 m = BD(mlb(n), 11);
96270 m.e.c.length == 0 || ++d;
96271 m.g.c.length == 0 || ++l;
96272 }
96273 d + l == 0 ? o2 = 0.5 : o2 = l / (d + l);
96274 }
96275 q = a.c;
96276 k = h.o.a;
96277 r = (q.a - k) * o2;
96278 o2 > 0.5 ? r -= g * 2 * (o2 - 0.5) : o2 < 0.5 && (r += f2 * 2 * (0.5 - o2));
96279 e = h.d.b;
96280 r < e && (r = e);
96281 p = h.d.c;
96282 r > q.a - p - k && (r = q.a - p - k);
96283 h.n.a = b + r;
96284 }
96285 }
96286 function ced(a, b, c2, d, e) {
96287 var f2, g, h, i3, j, k, l, m, n, o2, p, q;
96288 h = KC(UD, Vje, 25, a.c.length, 15, 1);
96289 m = new gub(new Ned());
96290 _tb(m, a);
96291 j = 0;
96292 p = new Rkb();
96293 while (m.b.c.length != 0) {
96294 g = BD(m.b.c.length == 0 ? null : Ikb(m.b, 0), 157);
96295 if (j > 1 && red(g) * qed(g) / 2 > h[0]) {
96296 f2 = 0;
96297 while (f2 < p.c.length - 1 && red(g) * qed(g) / 2 > h[f2]) {
96298 ++f2;
96299 }
96300 o2 = new Jib(p, 0, f2 + 1);
96301 l = new wed(o2);
96302 k = red(g) / qed(g);
96303 i3 = fed(l, b, new p0b(), c2, d, e, k);
96304 P6c(X6c(l.e), i3);
96305 zCb(cub(m, l));
96306 n = new Jib(p, f2 + 1, p.c.length);
96307 _tb(m, n);
96308 p.c = KC(SI, Uhe, 1, 0, 5, 1);
96309 j = 0;
96310 Dlb(h, h.length, 0);
96311 } else {
96312 q = m.b.c.length == 0 ? null : Ikb(m.b, 0);
96313 q != null && fub(m, 0);
96314 j > 0 && (h[j] = h[j - 1]);
96315 h[j] += red(g) * qed(g);
96316 ++j;
96317 p.c[p.c.length] = g;
96318 }
96319 }
96320 return p;
96321 }
96322 function Wac(a) {
96323 var b, c2, d, e, f2;
96324 d = BD(vNb(a, (Nyc(), mxc)), 163);
96325 if (d == (Ctc(), ytc)) {
96326 for (c2 = new Sr(ur(R_b(a).a.Kc(), new Sq())); Qr(c2); ) {
96327 b = BD(Rr(c2), 17);
96328 if (!Yac(b)) {
96329 throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to FIRST_SEPARATE, but has at least one incoming edge. FIRST_SEPARATE nodes must not have incoming edges."));
96330 }
96331 }
96332 } else if (d == Atc) {
96333 for (f2 = new Sr(ur(U_b(a).a.Kc(), new Sq())); Qr(f2); ) {
96334 e = BD(Rr(f2), 17);
96335 if (!Yac(e)) {
96336 throw vbb(new y2c(Fne + P_b(a) + "' has its layer constraint set to LAST_SEPARATE, but has at least one outgoing edge. LAST_SEPARATE nodes must not have outgoing edges."));
96337 }
96338 }
96339 }
96340 }
96341 function C9b(a, b) {
96342 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
96343 Odd(b, "Label dummy removal", 1);
96344 d = Edb(ED(vNb(a, (Nyc(), nyc))));
96345 e = Edb(ED(vNb(a, ryc)));
96346 j = BD(vNb(a, Lwc), 103);
96347 for (i3 = new olb(a.b); i3.a < i3.c.c.length; ) {
96348 h = BD(mlb(i3), 29);
96349 l = new Bib(h.a, 0);
96350 while (l.b < l.d.gc()) {
96351 k = (sCb(l.b < l.d.gc()), BD(l.d.Xb(l.c = l.b++), 10));
96352 if (k.k == (j0b(), f0b)) {
96353 m = BD(vNb(k, (wtc(), $sc)), 17);
96354 o2 = Edb(ED(vNb(m, Zwc)));
96355 g = PD(vNb(k, Ssc)) === PD((rbd(), obd));
96356 c2 = new g7c(k.n);
96357 g && (c2.b += o2 + d);
96358 f2 = new f7c(k.o.a, k.o.b - o2 - d);
96359 n = BD(vNb(k, ktc), 15);
96360 j == (ead(), dad) || j == _9c ? B9b(n, c2, e, f2, g, j) : A9b(n, c2, e, f2);
96361 Gkb(m.b, n);
96362 sbc(k, PD(vNb(a, Swc)) === PD((Aad(), xad)));
96363 uib(l);
96364 }
96365 }
96366 }
96367 Qdd(b);
96368 }
96369 function tZb(a, b, c2, d) {
96370 var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v;
96371 i3 = new Rkb();
96372 for (f2 = new olb(b.a); f2.a < f2.c.c.length; ) {
96373 e = BD(mlb(f2), 10);
96374 for (h = new olb(e.j); h.a < h.c.c.length; ) {
96375 g = BD(mlb(h), 11);
96376 k = null;
96377 for (t4 = k_b(g.g), u2 = 0, v = t4.length; u2 < v; ++u2) {
96378 s = t4[u2];
96379 if (!f_b(s.d.i, c2)) {
96380 r = oZb(a, b, c2, s, s.c, (KAc(), IAc), k);
96381 r != k && (i3.c[i3.c.length] = r, true);
96382 r.c && (k = r);
96383 }
96384 }
96385 j = null;
96386 for (o2 = k_b(g.e), p = 0, q = o2.length; p < q; ++p) {
96387 n = o2[p];
96388 if (!f_b(n.c.i, c2)) {
96389 r = oZb(a, b, c2, n, n.d, (KAc(), HAc), j);
96390 r != j && (i3.c[i3.c.length] = r, true);
96391 r.c && (j = r);
96392 }
96393 }
96394 }
96395 }
96396 for (m = new olb(i3); m.a < m.c.c.length; ) {
96397 l = BD(mlb(m), 441);
96398 Jkb(b.a, l.a, 0) != -1 || Ekb(b.a, l.a);
96399 l.c && (d.c[d.c.length] = l, true);
96400 }
96401 }
96402 function jCc(a, b, c2) {
96403 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
96404 Odd(c2, "Interactive cycle breaking", 1);
96405 l = new Rkb();
96406 for (n = new olb(b.a); n.a < n.c.c.length; ) {
96407 m = BD(mlb(n), 10);
96408 m.p = 1;
96409 o2 = T_b(m).a;
96410 for (k = W_b(m, (KAc(), IAc)).Kc(); k.Ob(); ) {
96411 j = BD(k.Pb(), 11);
96412 for (f2 = new olb(j.g); f2.a < f2.c.c.length; ) {
96413 d = BD(mlb(f2), 17);
96414 p = d.d.i;
96415 if (p != m) {
96416 q = T_b(p).a;
96417 q < o2 && (l.c[l.c.length] = d, true);
96418 }
96419 }
96420 }
96421 }
96422 for (g = new olb(l); g.a < g.c.c.length; ) {
96423 d = BD(mlb(g), 17);
96424 PZb(d, true);
96425 }
96426 l.c = KC(SI, Uhe, 1, 0, 5, 1);
96427 for (i3 = new olb(b.a); i3.a < i3.c.c.length; ) {
96428 h = BD(mlb(i3), 10);
96429 h.p > 0 && iCc(a, h, l);
96430 }
96431 for (e = new olb(l); e.a < e.c.c.length; ) {
96432 d = BD(mlb(e), 17);
96433 PZb(d, true);
96434 }
96435 l.c = KC(SI, Uhe, 1, 0, 5, 1);
96436 Qdd(c2);
96437 }
96438 function _z(a, b) {
96439 var c2, d, e, f2, g, h, i3, j, k;
96440 j = "";
96441 if (b.length == 0) {
96442 return a.de(Zie, Xie, -1, -1);
96443 }
96444 k = ufb(b);
96445 dfb(k.substr(0, 3), "at ") && (k = k.substr(3));
96446 k = k.replace(/\[.*?\]/g, "");
96447 g = k.indexOf("(");
96448 if (g == -1) {
96449 g = k.indexOf("@");
96450 if (g == -1) {
96451 j = k;
96452 k = "";
96453 } else {
96454 j = ufb(k.substr(g + 1));
96455 k = ufb(k.substr(0, g));
96456 }
96457 } else {
96458 c2 = k.indexOf(")", g);
96459 j = k.substr(g + 1, c2 - (g + 1));
96460 k = ufb(k.substr(0, g));
96461 }
96462 g = hfb(k, wfb(46));
96463 g != -1 && (k = k.substr(g + 1));
96464 (k.length == 0 || dfb(k, "Anonymous function")) && (k = Xie);
96465 h = kfb(j, wfb(58));
96466 e = lfb(j, wfb(58), h - 1);
96467 i3 = -1;
96468 d = -1;
96469 f2 = Zie;
96470 if (h != -1 && e != -1) {
96471 f2 = j.substr(0, e);
96472 i3 = Vz(j.substr(e + 1, h - (e + 1)));
96473 d = Vz(j.substr(h + 1));
96474 }
96475 return a.de(f2, k, i3, d);
96476 }
96477 function UC(a, b, c2) {
96478 var d, e, f2, g, h, i3;
96479 if (b.l == 0 && b.m == 0 && b.h == 0) {
96480 throw vbb(new ocb("divide by zero"));
96481 }
96482 if (a.l == 0 && a.m == 0 && a.h == 0) {
96483 c2 && (QC = TC(0, 0, 0));
96484 return TC(0, 0, 0);
96485 }
96486 if (b.h == Gje && b.m == 0 && b.l == 0) {
96487 return VC(a, c2);
96488 }
96489 i3 = false;
96490 if (b.h >> 19 != 0) {
96491 b = hD(b);
96492 i3 = !i3;
96493 }
96494 g = _C(b);
96495 f2 = false;
96496 e = false;
96497 d = false;
96498 if (a.h == Gje && a.m == 0 && a.l == 0) {
96499 e = true;
96500 f2 = true;
96501 if (g == -1) {
96502 a = SC((wD(), sD));
96503 d = true;
96504 i3 = !i3;
96505 } else {
96506 h = lD(a, g);
96507 i3 && ZC(h);
96508 c2 && (QC = TC(0, 0, 0));
96509 return h;
96510 }
96511 } else if (a.h >> 19 != 0) {
96512 f2 = true;
96513 a = hD(a);
96514 d = true;
96515 i3 = !i3;
96516 }
96517 if (g != -1) {
96518 return WC(a, g, i3, f2, c2);
96519 }
96520 if (eD(a, b) < 0) {
96521 c2 && (f2 ? QC = hD(a) : QC = TC(a.l, a.m, a.h));
96522 return TC(0, 0, 0);
96523 }
96524 return XC(d ? a : TC(a.l, a.m, a.h), b, i3, f2, e, c2);
96525 }
96526 function F2c(a, b) {
96527 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
96528 if (a.e && a.c.c < a.f) {
96529 throw vbb(new Zdb("Expected " + a.f + " phases to be configured; only found " + a.c.c));
96530 }
96531 k = BD(gdb(a.g), 9);
96532 n = Pu(a.f);
96533 for (f2 = k, h = 0, j = f2.length; h < j; ++h) {
96534 d = f2[h];
96535 l = BD(B2c(a, d.g), 246);
96536 l ? Ekb(n, BD(I2c(a, l), 123)) : (n.c[n.c.length] = null, true);
96537 }
96538 o2 = new j3c();
96539 MAb(JAb(NAb(JAb(new YAb(null, new Kub(n, 16)), new O2c()), new Q2c(b)), new S2c()), new U2c(o2));
96540 d3c(o2, a.a);
96541 c2 = new Rkb();
96542 for (e = k, g = 0, i3 = e.length; g < i3; ++g) {
96543 d = e[g];
96544 Gkb(c2, J2c(a, Dx(BD(B2c(o2, d.g), 20))));
96545 m = BD(Ikb(n, d.g), 123);
96546 !!m && (c2.c[c2.c.length] = m, true);
96547 }
96548 Gkb(c2, J2c(a, Dx(BD(B2c(o2, k[k.length - 1].g + 1), 20))));
96549 return c2;
96550 }
96551 function qCc(a, b, c2) {
96552 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
96553 Odd(c2, "Model order cycle breaking", 1);
96554 a.a = 0;
96555 a.b = 0;
96556 n = new Rkb();
96557 k = b.a.c.length;
96558 for (j = new olb(b.a); j.a < j.c.c.length; ) {
96559 i3 = BD(mlb(j), 10);
96560 wNb(i3, (wtc(), Zsc)) && (k = $wnd.Math.max(k, BD(vNb(i3, Zsc), 19).a + 1));
96561 }
96562 for (p = new olb(b.a); p.a < p.c.c.length; ) {
96563 o2 = BD(mlb(p), 10);
96564 g = pCc(a, o2, k);
96565 for (m = W_b(o2, (KAc(), IAc)).Kc(); m.Ob(); ) {
96566 l = BD(m.Pb(), 11);
96567 for (f2 = new olb(l.g); f2.a < f2.c.c.length; ) {
96568 d = BD(mlb(f2), 17);
96569 q = d.d.i;
96570 h = pCc(a, q, k);
96571 h < g && (n.c[n.c.length] = d, true);
96572 }
96573 }
96574 }
96575 for (e = new olb(n); e.a < e.c.c.length; ) {
96576 d = BD(mlb(e), 17);
96577 PZb(d, true);
96578 yNb(b, (wtc(), Asc), (Bcb(), true));
96579 }
96580 n.c = KC(SI, Uhe, 1, 0, 5, 1);
96581 Qdd(c2);
96582 }
96583 function kQc(a, b) {
96584 var c2, d, e, f2, g, h, i3;
96585 if (a.g > b.f || b.g > a.f) {
96586 return;
96587 }
96588 c2 = 0;
96589 d = 0;
96590 for (g = a.w.a.ec().Kc(); g.Ob(); ) {
96591 e = BD(g.Pb(), 11);
96592 aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, b.g, b.f) && ++c2;
96593 }
96594 for (h = a.r.a.ec().Kc(); h.Ob(); ) {
96595 e = BD(h.Pb(), 11);
96596 aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, b.g, b.f) && --c2;
96597 }
96598 for (i3 = b.w.a.ec().Kc(); i3.Ob(); ) {
96599 e = BD(i3.Pb(), 11);
96600 aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, a.g, a.f) && ++d;
96601 }
96602 for (f2 = b.r.a.ec().Kc(); f2.Ob(); ) {
96603 e = BD(f2.Pb(), 11);
96604 aRc(l7c(OC(GC(m1, 1), nie, 8, 0, [e.i.n, e.n, e.a])).b, a.g, a.f) && --d;
96605 }
96606 if (c2 < d) {
96607 new BQc(a, b, d - c2);
96608 } else if (d < c2) {
96609 new BQc(b, a, c2 - d);
96610 } else {
96611 new BQc(b, a, 0);
96612 new BQc(a, b, 0);
96613 }
96614 }
96615 function JPb(a, b) {
96616 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s;
96617 j = b.c;
96618 e = IOb(a.e);
96619 l = Y6c(b7c(R6c(HOb(a.e)), a.d * a.a, a.c * a.b), -0.5);
96620 c2 = e.a - l.a;
96621 d = e.b - l.b;
96622 g = b.a;
96623 c2 = g.c - c2;
96624 d = g.d - d;
96625 for (i3 = new olb(j); i3.a < i3.c.c.length; ) {
96626 h = BD(mlb(i3), 395);
96627 m = h.b;
96628 n = c2 + m.a;
96629 q = d + m.b;
96630 o2 = QD(n / a.a);
96631 r = QD(q / a.b);
96632 f2 = h.a;
96633 switch (f2.g) {
96634 case 0:
96635 k = (RMb(), OMb);
96636 break;
96637 case 1:
96638 k = (RMb(), NMb);
96639 break;
96640 case 2:
96641 k = (RMb(), PMb);
96642 break;
96643 default:
96644 k = (RMb(), QMb);
96645 }
96646 if (f2.a) {
96647 s = QD((q + h.c) / a.b);
96648 Ekb(a.f, new uOb(k, meb(r), meb(s)));
96649 f2 == (ROb(), QOb) ? nNb(a, 0, r, o2, s) : nNb(a, o2, r, a.d - 1, s);
96650 } else {
96651 p = QD((n + h.c) / a.a);
96652 Ekb(a.f, new uOb(k, meb(o2), meb(p)));
96653 f2 == (ROb(), OOb) ? nNb(a, o2, 0, p, r) : nNb(a, o2, r, p, a.c - 1);
96654 }
96655 }
96656 }
96657 function coc(a, b) {
96658 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
96659 m = new Rkb();
96660 e = new Rkb();
96661 p = null;
96662 for (h = b.Kc(); h.Ob(); ) {
96663 g = BD(h.Pb(), 19);
96664 f2 = new qoc(g.a);
96665 e.c[e.c.length] = f2;
96666 if (p) {
96667 f2.d = p;
96668 p.e = f2;
96669 }
96670 p = f2;
96671 }
96672 t4 = boc(a);
96673 for (k = 0; k < e.c.length; ++k) {
96674 n = null;
96675 q = poc((tCb(0, e.c.length), BD(e.c[0], 652)));
96676 c2 = null;
96677 d = Pje;
96678 for (l = 1; l < a.b.c.length; ++l) {
96679 r = q ? $wnd.Math.abs(q.b - l) : $wnd.Math.abs(l - n.b) + 1;
96680 o2 = n ? $wnd.Math.abs(l - n.b) : r + 1;
96681 if (o2 < r) {
96682 j = n;
96683 i3 = o2;
96684 } else {
96685 j = q;
96686 i3 = r;
96687 }
96688 s = (u2 = Edb(ED(vNb(a, (Nyc(), Hyc)))), t4[l] + $wnd.Math.pow(i3, u2));
96689 if (s < d) {
96690 d = s;
96691 c2 = j;
96692 c2.c = l;
96693 }
96694 if (!!q && l == q.b) {
96695 n = q;
96696 q = koc(q);
96697 }
96698 }
96699 if (c2) {
96700 Ekb(m, meb(c2.c));
96701 c2.a = true;
96702 loc(c2);
96703 }
96704 }
96705 mmb();
96706 Mlb(m.c, m.c.length, null);
96707 return m;
96708 }
96709 function qNd(a) {
96710 var b, c2, d, e, f2, g, h, i3, j, k;
96711 b = new zNd();
96712 c2 = new zNd();
96713 j = dfb(Qve, (e = Dmd(a.b, Rve), !e ? null : GD(AAd((!e.b && (e.b = new sId((jGd(), fGd), x6, e)), e.b), Sve))));
96714 for (i3 = 0; i3 < a.i; ++i3) {
96715 h = BD(a.g[i3], 170);
96716 if (JD(h, 99)) {
96717 g = BD(h, 18);
96718 (g.Bb & ote) != 0 ? ((g.Bb & oie) == 0 || !j && (f2 = Dmd(g, Rve), (!f2 ? null : GD(AAd((!f2.b && (f2.b = new sId((jGd(), fGd), x6, f2)), f2.b), eue))) == null)) && wtd(b, g) : (k = zUd(g), !!k && (k.Bb & ote) != 0 || ((g.Bb & oie) == 0 || !j && (d = Dmd(g, Rve), (!d ? null : GD(AAd((!d.b && (d.b = new sId((jGd(), fGd), x6, d)), d.b), eue))) == null)) && wtd(c2, g));
96719 } else {
96720 Q6d();
96721 if (BD(h, 66).Oj()) {
96722 if (!h.Jj()) {
96723 wtd(b, h);
96724 wtd(c2, h);
96725 }
96726 }
96727 }
96728 }
96729 vud(b);
96730 vud(c2);
96731 a.a = BD(b.g, 247);
96732 BD(c2.g, 247);
96733 }
96734 function LTb(a, b, c2) {
96735 var d, e, f2, g, h, i3, j, k, l, m, n, p, q, r;
96736 j = ITb(b);
96737 q = BD(vNb(b, (Nyc(), Iwc)), 314);
96738 q != (Rpc(), Ppc) && reb(j, new STb());
96739 r = BD(vNb(b, Cwc), 292);
96740 reb(j, new UTb(r));
96741 p = 0;
96742 k = new Rkb();
96743 for (f2 = new xkb(j); f2.a != f2.b; ) {
96744 e = BD(vkb(f2), 37);
96745 aUb(a.c, e);
96746 m = BD(vNb(e, (wtc(), itc)), 15);
96747 p += m.gc();
96748 d = m.Kc();
96749 Ekb(k, new vgd(e, d));
96750 }
96751 Odd(c2, "Recursive hierarchical layout", p);
96752 n = BD(BD(Ikb(k, k.c.length - 1), 46).b, 47);
96753 while (n.Ob()) {
96754 for (i3 = new olb(k); i3.a < i3.c.c.length; ) {
96755 h = BD(mlb(i3), 46);
96756 m = BD(h.b, 47);
96757 g = BD(h.a, 37);
96758 while (m.Ob()) {
96759 l = BD(m.Pb(), 51);
96760 if (JD(l, 507)) {
96761 if (!g.e) {
96762 l.pf(g, Udd(c2, 1));
96763 break;
96764 } else {
96765 break;
96766 }
96767 } else {
96768 l.pf(g, Udd(c2, 1));
96769 }
96770 }
96771 }
96772 }
96773 Qdd(c2);
96774 }
96775 function rid(b, c2) {
96776 var d, e, f2, g, h, i3, j, k, l, m;
96777 j = c2.length - 1;
96778 i3 = (BCb(j, c2.length), c2.charCodeAt(j));
96779 if (i3 == 93) {
96780 h = hfb(c2, wfb(91));
96781 if (h >= 0) {
96782 f2 = wid(b, c2.substr(1, h - 1));
96783 l = c2.substr(h + 1, j - (h + 1));
96784 return pid(b, l, f2);
96785 }
96786 } else {
96787 d = -1;
96788 Vcb == null && (Vcb = new RegExp("\\d"));
96789 if (Vcb.test(String.fromCharCode(i3))) {
96790 d = lfb(c2, wfb(46), j - 1);
96791 if (d >= 0) {
96792 e = BD(hid(b, Bid(b, c2.substr(1, d - 1)), false), 58);
96793 k = 0;
96794 try {
96795 k = Icb(c2.substr(d + 1), Rie, Ohe);
96796 } catch (a) {
96797 a = ubb(a);
96798 if (JD(a, 127)) {
96799 g = a;
96800 throw vbb(new rFd(g));
96801 } else
96802 throw vbb(a);
96803 }
96804 if (k < e.gc()) {
96805 m = e.Xb(k);
96806 JD(m, 72) && (m = BD(m, 72).dd());
96807 return BD(m, 56);
96808 }
96809 }
96810 }
96811 if (d < 0) {
96812 return BD(hid(b, Bid(b, c2.substr(1)), false), 56);
96813 }
96814 }
96815 return null;
96816 }
96817 function e1d(a, b, c2) {
96818 var d, e, f2, g, h, i3, j, k, l;
96819 if (bLd(b, c2) >= 0) {
96820 return c2;
96821 }
96822 switch ($1d(q1d(a, c2))) {
96823 case 2: {
96824 if (dfb("", o1d(a, c2.Hj()).ne())) {
96825 i3 = b2d(q1d(a, c2));
96826 h = a2d(q1d(a, c2));
96827 k = r1d(a, b, i3, h);
96828 if (k) {
96829 return k;
96830 }
96831 e = f1d(a, b);
96832 for (g = 0, l = e.gc(); g < l; ++g) {
96833 k = BD(e.Xb(g), 170);
96834 if (x1d(c2d(q1d(a, k)), i3)) {
96835 return k;
96836 }
96837 }
96838 }
96839 return null;
96840 }
96841 case 4: {
96842 if (dfb("", o1d(a, c2.Hj()).ne())) {
96843 for (d = c2; d; d = Z1d(q1d(a, d))) {
96844 j = b2d(q1d(a, d));
96845 h = a2d(q1d(a, d));
96846 k = s1d(a, b, j, h);
96847 if (k) {
96848 return k;
96849 }
96850 }
96851 i3 = b2d(q1d(a, c2));
96852 if (dfb(Ewe, i3)) {
96853 return t1d(a, b);
96854 } else {
96855 f2 = g1d(a, b);
96856 for (g = 0, l = f2.gc(); g < l; ++g) {
96857 k = BD(f2.Xb(g), 170);
96858 if (x1d(c2d(q1d(a, k)), i3)) {
96859 return k;
96860 }
96861 }
96862 }
96863 }
96864 return null;
96865 }
96866 default: {
96867 return null;
96868 }
96869 }
96870 }
96871 function t2d(a, b, c2) {
96872 var d, e, f2, g, h, i3, j, k;
96873 if (c2.gc() == 0) {
96874 return false;
96875 }
96876 h = (Q6d(), BD(b, 66).Oj());
96877 f2 = h ? c2 : new zud(c2.gc());
96878 if (T6d(a.e, b)) {
96879 if (b.hi()) {
96880 for (j = c2.Kc(); j.Ob(); ) {
96881 i3 = j.Pb();
96882 if (!F2d(a, b, i3, JD(b, 99) && (BD(b, 18).Bb & Tje) != 0)) {
96883 e = R6d(b, i3);
96884 f2.Hc(e) || f2.Fc(e);
96885 }
96886 }
96887 } else if (!h) {
96888 for (j = c2.Kc(); j.Ob(); ) {
96889 i3 = j.Pb();
96890 e = R6d(b, i3);
96891 f2.Fc(e);
96892 }
96893 }
96894 } else {
96895 if (c2.gc() > 1) {
96896 throw vbb(new Wdb(Hwe));
96897 }
96898 k = S6d(a.e.Tg(), b);
96899 d = BD(a.g, 119);
96900 for (g = 0; g < a.i; ++g) {
96901 e = d[g];
96902 if (k.rl(e.ak())) {
96903 if (c2.Hc(h ? e : e.dd())) {
96904 return false;
96905 } else {
96906 for (j = c2.Kc(); j.Ob(); ) {
96907 i3 = j.Pb();
96908 BD(Gtd(a, g, h ? BD(i3, 72) : R6d(b, i3)), 72);
96909 }
96910 return true;
96911 }
96912 }
96913 }
96914 if (!h) {
96915 e = R6d(b, c2.Kc().Pb());
96916 f2.Fc(e);
96917 }
96918 }
96919 return ytd(a, f2);
96920 }
96921 function qMc(a, b) {
96922 var c2, d, e, f2, g, h, i3, j, k;
96923 k = new Psb();
96924 for (h = (j = new $ib(a.c).a.vc().Kc(), new djb(j)); h.a.Ob(); ) {
96925 f2 = (e = BD(h.a.Pb(), 42), BD(e.dd(), 458));
96926 f2.b == 0 && (Gsb(k, f2, k.c.b, k.c), true);
96927 }
96928 while (k.b != 0) {
96929 f2 = BD(k.b == 0 ? null : (sCb(k.b != 0), Nsb(k, k.a.a)), 458);
96930 f2.a == null && (f2.a = 0);
96931 for (d = new olb(f2.d); d.a < d.c.c.length; ) {
96932 c2 = BD(mlb(d), 654);
96933 c2.b.a == null ? c2.b.a = Edb(f2.a) + c2.a : b.o == (eMc(), cMc) ? c2.b.a = $wnd.Math.min(Edb(c2.b.a), Edb(f2.a) + c2.a) : c2.b.a = $wnd.Math.max(Edb(c2.b.a), Edb(f2.a) + c2.a);
96934 --c2.b.b;
96935 c2.b.b == 0 && Dsb(k, c2.b);
96936 }
96937 }
96938 for (g = (i3 = new $ib(a.c).a.vc().Kc(), new djb(i3)); g.a.Ob(); ) {
96939 f2 = (e = BD(g.a.Pb(), 42), BD(e.dd(), 458));
96940 b.i[f2.c.p] = f2.a;
96941 }
96942 }
96943 function mTc() {
96944 mTc = ccb;
96945 dTc = new Lsd(Ime);
96946 new Msd("DEPTH", meb(0));
96947 ZSc = new Msd("FAN", meb(0));
96948 XSc = new Msd(Yqe, meb(0));
96949 jTc = new Msd("ROOT", (Bcb(), false));
96950 _Sc = new Msd("LEFTNEIGHBOR", null);
96951 hTc = new Msd("RIGHTNEIGHBOR", null);
96952 aTc = new Msd("LEFTSIBLING", null);
96953 iTc = new Msd("RIGHTSIBLING", null);
96954 YSc = new Msd("DUMMY", false);
96955 new Msd("LEVEL", meb(0));
96956 gTc = new Msd("REMOVABLE_EDGES", new Psb());
96957 kTc = new Msd("XCOOR", meb(0));
96958 lTc = new Msd("YCOOR", meb(0));
96959 bTc = new Msd("LEVELHEIGHT", 0);
96960 $Sc = new Msd("ID", "");
96961 eTc = new Msd("POSITION", meb(0));
96962 fTc = new Msd("PRELIM", 0);
96963 cTc = new Msd("MODIFIER", 0);
96964 WSc = new Lsd(Kme);
96965 VSc = new Lsd(Lme);
96966 }
96967 function MNc(a, b, c2, d) {
96968 var e, f2, g, h, i3, j, k, l, m, n, o2;
96969 k = c2 + b.c.c.a;
96970 for (n = new olb(b.j); n.a < n.c.c.length; ) {
96971 m = BD(mlb(n), 11);
96972 e = l7c(OC(GC(m1, 1), nie, 8, 0, [m.i.n, m.n, m.a]));
96973 if (b.k == (j0b(), i0b)) {
96974 h = BD(vNb(m, (wtc(), $sc)), 11);
96975 e.a = l7c(OC(GC(m1, 1), nie, 8, 0, [h.i.n, h.n, h.a])).a;
96976 b.n.a = e.a;
96977 }
96978 g = new f7c(0, e.b);
96979 if (m.j == (Ucd(), zcd)) {
96980 g.a = k;
96981 } else if (m.j == Tcd) {
96982 g.a = c2;
96983 } else {
96984 continue;
96985 }
96986 o2 = $wnd.Math.abs(e.a - g.a);
96987 if (o2 <= d && !JNc(b)) {
96988 continue;
96989 }
96990 f2 = m.g.c.length + m.e.c.length > 1;
96991 for (j = new b1b(m.b); llb(j.a) || llb(j.b); ) {
96992 i3 = BD(llb(j.a) ? mlb(j.a) : mlb(j.b), 17);
96993 l = i3.c == m ? i3.d : i3.c;
96994 $wnd.Math.abs(l7c(OC(GC(m1, 1), nie, 8, 0, [l.i.n, l.n, l.a])).b - g.b) > 1 && GNc(a, i3, g, f2, m);
96995 }
96996 }
96997 }
96998 function XPc(a) {
96999 var b, c2, d, e, f2, g;
97000 e = new Bib(a.e, 0);
97001 d = new Bib(a.a, 0);
97002 if (a.d) {
97003 for (c2 = 0; c2 < a.b; c2++) {
97004 sCb(e.b < e.d.gc());
97005 e.d.Xb(e.c = e.b++);
97006 }
97007 } else {
97008 for (c2 = 0; c2 < a.b - 1; c2++) {
97009 sCb(e.b < e.d.gc());
97010 e.d.Xb(e.c = e.b++);
97011 uib(e);
97012 }
97013 }
97014 b = Edb((sCb(e.b < e.d.gc()), ED(e.d.Xb(e.c = e.b++))));
97015 while (a.f - b > Oqe) {
97016 f2 = b;
97017 g = 0;
97018 while ($wnd.Math.abs(b - f2) < Oqe) {
97019 ++g;
97020 b = Edb((sCb(e.b < e.d.gc()), ED(e.d.Xb(e.c = e.b++))));
97021 sCb(d.b < d.d.gc());
97022 d.d.Xb(d.c = d.b++);
97023 }
97024 if (g < a.b) {
97025 sCb(e.b > 0);
97026 e.a.Xb(e.c = --e.b);
97027 WPc(a, a.b - g, f2, d, e);
97028 sCb(e.b < e.d.gc());
97029 e.d.Xb(e.c = e.b++);
97030 }
97031 sCb(d.b > 0);
97032 d.a.Xb(d.c = --d.b);
97033 }
97034 if (!a.d) {
97035 for (c2 = 0; c2 < a.b - 1; c2++) {
97036 sCb(e.b < e.d.gc());
97037 e.d.Xb(e.c = e.b++);
97038 uib(e);
97039 }
97040 }
97041 a.d = true;
97042 a.c = true;
97043 }
97044 function Q8d() {
97045 Q8d = ccb;
97046 s8d = (r8d(), q8d).b;
97047 v8d = BD(qud(ZKd(q8d.b), 0), 34);
97048 t8d = BD(qud(ZKd(q8d.b), 1), 34);
97049 u8d = BD(qud(ZKd(q8d.b), 2), 34);
97050 F8d = q8d.bb;
97051 BD(qud(ZKd(q8d.bb), 0), 34);
97052 BD(qud(ZKd(q8d.bb), 1), 34);
97053 H8d = q8d.fb;
97054 I8d = BD(qud(ZKd(q8d.fb), 0), 34);
97055 BD(qud(ZKd(q8d.fb), 1), 34);
97056 BD(qud(ZKd(q8d.fb), 2), 18);
97057 K8d = q8d.qb;
97058 N8d = BD(qud(ZKd(q8d.qb), 0), 34);
97059 BD(qud(ZKd(q8d.qb), 1), 18);
97060 BD(qud(ZKd(q8d.qb), 2), 18);
97061 L8d = BD(qud(ZKd(q8d.qb), 3), 34);
97062 M8d = BD(qud(ZKd(q8d.qb), 4), 34);
97063 P8d = BD(qud(ZKd(q8d.qb), 6), 34);
97064 O8d = BD(qud(ZKd(q8d.qb), 5), 18);
97065 w8d = q8d.j;
97066 x8d = q8d.k;
97067 y8d = q8d.q;
97068 z8d = q8d.w;
97069 A8d = q8d.B;
97070 B8d = q8d.A;
97071 C8d = q8d.C;
97072 D8d = q8d.D;
97073 E8d = q8d._;
97074 G8d = q8d.cb;
97075 J8d = q8d.hb;
97076 }
97077 function $Dc(a, b, c2) {
97078 var d, e, f2, g, h, i3, j, k, l, m, n;
97079 a.c = 0;
97080 a.b = 0;
97081 d = 2 * b.c.a.c.length + 1;
97082 o:
97083 for (l = c2.Kc(); l.Ob(); ) {
97084 k = BD(l.Pb(), 11);
97085 h = k.j == (Ucd(), Acd) || k.j == Rcd;
97086 n = 0;
97087 if (h) {
97088 m = BD(vNb(k, (wtc(), gtc)), 10);
97089 if (!m) {
97090 continue;
97091 }
97092 n += VDc(a, d, k, m);
97093 } else {
97094 for (j = new olb(k.g); j.a < j.c.c.length; ) {
97095 i3 = BD(mlb(j), 17);
97096 e = i3.d;
97097 if (e.i.c == b.c) {
97098 Ekb(a.a, k);
97099 continue o;
97100 } else {
97101 n += a.g[e.p];
97102 }
97103 }
97104 for (g = new olb(k.e); g.a < g.c.c.length; ) {
97105 f2 = BD(mlb(g), 17);
97106 e = f2.c;
97107 if (e.i.c == b.c) {
97108 Ekb(a.a, k);
97109 continue o;
97110 } else {
97111 n -= a.g[e.p];
97112 }
97113 }
97114 }
97115 if (k.e.c.length + k.g.c.length > 0) {
97116 a.f[k.p] = n / (k.e.c.length + k.g.c.length);
97117 a.c = $wnd.Math.min(a.c, a.f[k.p]);
97118 a.b = $wnd.Math.max(a.b, a.f[k.p]);
97119 } else
97120 h && (a.f[k.p] = n);
97121 }
97122 }
97123 function $9d(a) {
97124 a.b = null;
97125 a.bb = null;
97126 a.fb = null;
97127 a.qb = null;
97128 a.a = null;
97129 a.c = null;
97130 a.d = null;
97131 a.e = null;
97132 a.f = null;
97133 a.n = null;
97134 a.M = null;
97135 a.L = null;
97136 a.Q = null;
97137 a.R = null;
97138 a.K = null;
97139 a.db = null;
97140 a.eb = null;
97141 a.g = null;
97142 a.i = null;
97143 a.j = null;
97144 a.k = null;
97145 a.gb = null;
97146 a.o = null;
97147 a.p = null;
97148 a.q = null;
97149 a.r = null;
97150 a.$ = null;
97151 a.ib = null;
97152 a.S = null;
97153 a.T = null;
97154 a.t = null;
97155 a.s = null;
97156 a.u = null;
97157 a.v = null;
97158 a.w = null;
97159 a.B = null;
97160 a.A = null;
97161 a.C = null;
97162 a.D = null;
97163 a.F = null;
97164 a.G = null;
97165 a.H = null;
97166 a.I = null;
97167 a.J = null;
97168 a.P = null;
97169 a.Z = null;
97170 a.U = null;
97171 a.V = null;
97172 a.W = null;
97173 a.X = null;
97174 a.Y = null;
97175 a._ = null;
97176 a.ab = null;
97177 a.cb = null;
97178 a.hb = null;
97179 a.nb = null;
97180 a.lb = null;
97181 a.mb = null;
97182 a.ob = null;
97183 a.pb = null;
97184 a.jb = null;
97185 a.kb = null;
97186 a.N = false;
97187 a.O = false;
97188 }
97189 function l5b(a, b, c2) {
97190 var d, e, f2, g;
97191 Odd(c2, "Graph transformation (" + a.a + ")", 1);
97192 g = Mu(b.a);
97193 for (f2 = new olb(b.b); f2.a < f2.c.c.length; ) {
97194 e = BD(mlb(f2), 29);
97195 Gkb(g, e.a);
97196 }
97197 d = BD(vNb(b, (Nyc(), Mwc)), 419);
97198 if (d == (xqc(), vqc)) {
97199 switch (BD(vNb(b, Lwc), 103).g) {
97200 case 2:
97201 _4b(b, g);
97202 break;
97203 case 3:
97204 p5b(b, g);
97205 break;
97206 case 4:
97207 if (a.a == (y5b(), x5b)) {
97208 p5b(b, g);
97209 a5b(b, g);
97210 } else {
97211 a5b(b, g);
97212 p5b(b, g);
97213 }
97214 }
97215 } else {
97216 if (a.a == (y5b(), x5b)) {
97217 switch (BD(vNb(b, Lwc), 103).g) {
97218 case 2:
97219 _4b(b, g);
97220 a5b(b, g);
97221 break;
97222 case 3:
97223 p5b(b, g);
97224 _4b(b, g);
97225 break;
97226 case 4:
97227 _4b(b, g);
97228 p5b(b, g);
97229 }
97230 } else {
97231 switch (BD(vNb(b, Lwc), 103).g) {
97232 case 2:
97233 _4b(b, g);
97234 a5b(b, g);
97235 break;
97236 case 3:
97237 _4b(b, g);
97238 p5b(b, g);
97239 break;
97240 case 4:
97241 p5b(b, g);
97242 _4b(b, g);
97243 }
97244 }
97245 }
97246 Qdd(c2);
97247 }
97248 function j6b(a, b, c2) {
97249 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
97250 j = new zsb();
97251 k = new zsb();
97252 o2 = new zsb();
97253 p = new zsb();
97254 i3 = Edb(ED(vNb(b, (Nyc(), vyc))));
97255 f2 = Edb(ED(vNb(b, lyc)));
97256 for (h = new olb(c2); h.a < h.c.c.length; ) {
97257 g = BD(mlb(h), 10);
97258 l = BD(vNb(g, (wtc(), Hsc)), 61);
97259 if (l == (Ucd(), Acd)) {
97260 k.a.zc(g, k);
97261 for (e = new Sr(ur(R_b(g).a.Kc(), new Sq())); Qr(e); ) {
97262 d = BD(Rr(e), 17);
97263 Qqb(j, d.c.i);
97264 }
97265 } else if (l == Rcd) {
97266 p.a.zc(g, p);
97267 for (e = new Sr(ur(R_b(g).a.Kc(), new Sq())); Qr(e); ) {
97268 d = BD(Rr(e), 17);
97269 Qqb(o2, d.c.i);
97270 }
97271 }
97272 }
97273 if (j.a.gc() != 0) {
97274 m = new tPc(2, f2);
97275 n = sPc(m, b, j, k, -i3 - b.c.b);
97276 if (n > 0) {
97277 a.a = i3 + (n - 1) * f2;
97278 b.c.b += a.a;
97279 b.f.b += a.a;
97280 }
97281 }
97282 if (o2.a.gc() != 0) {
97283 m = new tPc(1, f2);
97284 n = sPc(m, b, o2, p, b.f.b + i3 - b.c.b);
97285 n > 0 && (b.f.b += i3 + (n - 1) * f2);
97286 }
97287 }
97288 function kKd(a, b) {
97289 var c2, d, e, f2;
97290 f2 = a.F;
97291 if (b == null) {
97292 a.F = null;
97293 $Jd(a, null);
97294 } else {
97295 a.F = (uCb(b), b);
97296 d = hfb(b, wfb(60));
97297 if (d != -1) {
97298 e = b.substr(0, d);
97299 hfb(b, wfb(46)) == -1 && !dfb(e, Khe) && !dfb(e, Eve) && !dfb(e, Fve) && !dfb(e, Gve) && !dfb(e, Hve) && !dfb(e, Ive) && !dfb(e, Jve) && !dfb(e, Kve) && (e = Lve);
97300 c2 = kfb(b, wfb(62));
97301 c2 != -1 && (e += "" + b.substr(c2 + 1));
97302 $Jd(a, e);
97303 } else {
97304 e = b;
97305 if (hfb(b, wfb(46)) == -1) {
97306 d = hfb(b, wfb(91));
97307 d != -1 && (e = b.substr(0, d));
97308 if (!dfb(e, Khe) && !dfb(e, Eve) && !dfb(e, Fve) && !dfb(e, Gve) && !dfb(e, Hve) && !dfb(e, Ive) && !dfb(e, Jve) && !dfb(e, Kve)) {
97309 e = Lve;
97310 d != -1 && (e += "" + b.substr(d));
97311 } else {
97312 e = b;
97313 }
97314 }
97315 $Jd(a, e);
97316 e == b && (a.F = a.D);
97317 }
97318 }
97319 (a.Db & 4) != 0 && (a.Db & 1) == 0 && Uhd(a, new nSd(a, 1, 5, f2, b));
97320 }
97321 function AMc(a, b) {
97322 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
97323 p = b.b.c.length;
97324 if (p < 3) {
97325 return;
97326 }
97327 n = KC(WD, oje, 25, p, 15, 1);
97328 l = 0;
97329 for (k = new olb(b.b); k.a < k.c.c.length; ) {
97330 j = BD(mlb(k), 29);
97331 n[l++] = j.a.c.length;
97332 }
97333 m = new Bib(b.b, 2);
97334 for (d = 1; d < p - 1; d++) {
97335 c2 = (sCb(m.b < m.d.gc()), BD(m.d.Xb(m.c = m.b++), 29));
97336 o2 = new olb(c2.a);
97337 f2 = 0;
97338 h = 0;
97339 for (i3 = 0; i3 < n[d + 1]; i3++) {
97340 t4 = BD(mlb(o2), 10);
97341 if (i3 == n[d + 1] - 1 || zMc(a, t4, d + 1, d)) {
97342 g = n[d] - 1;
97343 zMc(a, t4, d + 1, d) && (g = a.c.e[BD(BD(BD(Ikb(a.c.b, t4.p), 15).Xb(0), 46).a, 10).p]);
97344 while (h <= i3) {
97345 s = BD(Ikb(c2.a, h), 10);
97346 if (!zMc(a, s, d + 1, d)) {
97347 for (r = BD(Ikb(a.c.b, s.p), 15).Kc(); r.Ob(); ) {
97348 q = BD(r.Pb(), 46);
97349 e = a.c.e[BD(q.a, 10).p];
97350 (e < f2 || e > g) && Qqb(a.b, BD(q.b, 17));
97351 }
97352 }
97353 ++h;
97354 }
97355 f2 = g;
97356 }
97357 }
97358 }
97359 }
97360 function o5c(b, c2) {
97361 var d;
97362 if (c2 == null || dfb(c2, Xhe)) {
97363 return null;
97364 }
97365 if (c2.length == 0 && b.k != (_5c(), W5c)) {
97366 return null;
97367 }
97368 switch (b.k.g) {
97369 case 1:
97370 return efb(c2, kse) ? (Bcb(), Acb) : efb(c2, lse) ? (Bcb(), zcb) : null;
97371 case 2:
97372 try {
97373 return meb(Icb(c2, Rie, Ohe));
97374 } catch (a) {
97375 a = ubb(a);
97376 if (JD(a, 127)) {
97377 return null;
97378 } else
97379 throw vbb(a);
97380 }
97381 case 4:
97382 try {
97383 return Hcb(c2);
97384 } catch (a) {
97385 a = ubb(a);
97386 if (JD(a, 127)) {
97387 return null;
97388 } else
97389 throw vbb(a);
97390 }
97391 case 3:
97392 return c2;
97393 case 5:
97394 j5c(b);
97395 return m5c(b, c2);
97396 case 6:
97397 j5c(b);
97398 return n5c(b, b.a, c2);
97399 case 7:
97400 try {
97401 d = l5c(b);
97402 d.Jf(c2);
97403 return d;
97404 } catch (a) {
97405 a = ubb(a);
97406 if (JD(a, 32)) {
97407 return null;
97408 } else
97409 throw vbb(a);
97410 }
97411 default:
97412 throw vbb(new Zdb("Invalid type set for this layout option."));
97413 }
97414 }
97415 function JWb(a) {
97416 AWb();
97417 var b, c2, d, e, f2, g, h;
97418 h = new CWb();
97419 for (c2 = new olb(a); c2.a < c2.c.c.length; ) {
97420 b = BD(mlb(c2), 140);
97421 (!h.b || b.c >= h.b.c) && (h.b = b);
97422 if (!h.c || b.c <= h.c.c) {
97423 h.d = h.c;
97424 h.c = b;
97425 }
97426 (!h.e || b.d >= h.e.d) && (h.e = b);
97427 (!h.f || b.d <= h.f.d) && (h.f = b);
97428 }
97429 d = new NWb((lWb(), hWb));
97430 rXb(a, yWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [d])));
97431 g = new NWb(kWb);
97432 rXb(a, xWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [g])));
97433 e = new NWb(iWb);
97434 rXb(a, wWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [e])));
97435 f2 = new NWb(jWb);
97436 rXb(a, vWb, new amb(OC(GC(bQ, 1), Uhe, 369, 0, [f2])));
97437 DWb(d.c, hWb);
97438 DWb(e.c, iWb);
97439 DWb(f2.c, jWb);
97440 DWb(g.c, kWb);
97441 h.a.c = KC(SI, Uhe, 1, 0, 5, 1);
97442 Gkb(h.a, d.c);
97443 Gkb(h.a, Su(e.c));
97444 Gkb(h.a, f2.c);
97445 Gkb(h.a, Su(g.c));
97446 return h;
97447 }
97448 function jxd(a) {
97449 var b;
97450 switch (a.d) {
97451 case 1: {
97452 if (a.hj()) {
97453 return a.o != -2;
97454 }
97455 break;
97456 }
97457 case 2: {
97458 if (a.hj()) {
97459 return a.o == -2;
97460 }
97461 break;
97462 }
97463 case 3:
97464 case 5:
97465 case 4:
97466 case 6:
97467 case 7: {
97468 return a.o > -2;
97469 }
97470 default: {
97471 return false;
97472 }
97473 }
97474 b = a.gj();
97475 switch (a.p) {
97476 case 0:
97477 return b != null && Ccb(DD(b)) != Kbb(a.k, 0);
97478 case 1:
97479 return b != null && BD(b, 217).a != Tbb(a.k) << 24 >> 24;
97480 case 2:
97481 return b != null && BD(b, 172).a != (Tbb(a.k) & aje);
97482 case 6:
97483 return b != null && Kbb(BD(b, 162).a, a.k);
97484 case 5:
97485 return b != null && BD(b, 19).a != Tbb(a.k);
97486 case 7:
97487 return b != null && BD(b, 184).a != Tbb(a.k) << 16 >> 16;
97488 case 3:
97489 return b != null && Edb(ED(b)) != a.j;
97490 case 4:
97491 return b != null && BD(b, 155).a != a.j;
97492 default:
97493 return b == null ? a.n != null : !pb(b, a.n);
97494 }
97495 }
97496 function nOd(a, b, c2) {
97497 var d, e, f2, g;
97498 if (a.Fk() && a.Ek()) {
97499 g = oOd(a, BD(c2, 56));
97500 if (PD(g) !== PD(c2)) {
97501 a.Oi(b);
97502 a.Ui(b, pOd(a, b, g));
97503 if (a.rk()) {
97504 f2 = (e = BD(c2, 49), a.Dk() ? a.Bk() ? e.ih(a.b, zUd(BD(XKd(wjd(a.b), a.aj()), 18)).n, BD(XKd(wjd(a.b), a.aj()).Yj(), 26).Bj(), null) : e.ih(a.b, bLd(e.Tg(), zUd(BD(XKd(wjd(a.b), a.aj()), 18))), null, null) : e.ih(a.b, -1 - a.aj(), null, null));
97505 !BD(g, 49).eh() && (f2 = (d = BD(g, 49), a.Dk() ? a.Bk() ? d.gh(a.b, zUd(BD(XKd(wjd(a.b), a.aj()), 18)).n, BD(XKd(wjd(a.b), a.aj()).Yj(), 26).Bj(), f2) : d.gh(a.b, bLd(d.Tg(), zUd(BD(XKd(wjd(a.b), a.aj()), 18))), null, f2) : d.gh(a.b, -1 - a.aj(), null, f2)));
97506 !!f2 && f2.Fi();
97507 }
97508 oid(a.b) && a.$i(a.Zi(9, c2, g, b, false));
97509 return g;
97510 }
97511 }
97512 return c2;
97513 }
97514 function Noc(a, b, c2) {
97515 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
97516 k = Edb(ED(vNb(a, (Nyc(), oyc))));
97517 d = Edb(ED(vNb(a, Cyc)));
97518 m = new _fd();
97519 yNb(m, oyc, k + d);
97520 j = b;
97521 r = j.d;
97522 p = j.c.i;
97523 s = j.d.i;
97524 q = G1b(p.c);
97525 t4 = G1b(s.c);
97526 e = new Rkb();
97527 for (l = q; l <= t4; l++) {
97528 h = new b0b(a);
97529 __b(h, (j0b(), g0b));
97530 yNb(h, (wtc(), $sc), j);
97531 yNb(h, Vxc, (dcd(), $bd));
97532 yNb(h, qyc, m);
97533 n = BD(Ikb(a.b, l), 29);
97534 l == q ? Z_b(h, n.a.c.length - c2, n) : $_b(h, n);
97535 u2 = Edb(ED(vNb(j, Zwc)));
97536 if (u2 < 0) {
97537 u2 = 0;
97538 yNb(j, Zwc, u2);
97539 }
97540 h.o.b = u2;
97541 o2 = $wnd.Math.floor(u2 / 2);
97542 g = new H0b();
97543 G0b(g, (Ucd(), Tcd));
97544 F0b(g, h);
97545 g.n.b = o2;
97546 i3 = new H0b();
97547 G0b(i3, zcd);
97548 F0b(i3, h);
97549 i3.n.b = o2;
97550 RZb(j, g);
97551 f2 = new UZb();
97552 tNb(f2, j);
97553 yNb(f2, jxc, null);
97554 QZb(f2, i3);
97555 RZb(f2, r);
97556 Ooc(h, j, f2);
97557 e.c[e.c.length] = f2;
97558 j = f2;
97559 }
97560 return e;
97561 }
97562 function sbc(a, b) {
97563 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
97564 i3 = BD(Y_b(a, (Ucd(), Tcd)).Kc().Pb(), 11).e;
97565 n = BD(Y_b(a, zcd).Kc().Pb(), 11).g;
97566 h = i3.c.length;
97567 t4 = A0b(BD(Ikb(a.j, 0), 11));
97568 while (h-- > 0) {
97569 p = (tCb(0, i3.c.length), BD(i3.c[0], 17));
97570 e = (tCb(0, n.c.length), BD(n.c[0], 17));
97571 s = e.d.e;
97572 f2 = Jkb(s, e, 0);
97573 SZb(p, e.d, f2);
97574 QZb(e, null);
97575 RZb(e, null);
97576 o2 = p.a;
97577 b && Dsb(o2, new g7c(t4));
97578 for (d = Jsb(e.a, 0); d.b != d.d.c; ) {
97579 c2 = BD(Xsb(d), 8);
97580 Dsb(o2, new g7c(c2));
97581 }
97582 r = p.b;
97583 for (m = new olb(e.b); m.a < m.c.c.length; ) {
97584 l = BD(mlb(m), 70);
97585 r.c[r.c.length] = l;
97586 }
97587 q = BD(vNb(p, (Nyc(), jxc)), 74);
97588 g = BD(vNb(e, jxc), 74);
97589 if (g) {
97590 if (!q) {
97591 q = new s7c();
97592 yNb(p, jxc, q);
97593 }
97594 for (k = Jsb(g, 0); k.b != k.d.c; ) {
97595 j = BD(Xsb(k), 8);
97596 Dsb(q, new g7c(j));
97597 }
97598 }
97599 }
97600 }
97601 function EJb(a, b) {
97602 var c2, d, e, f2, g, h, i3, j, k, l, m, n;
97603 c2 = BD(Mpb(a.b, b), 124);
97604 i3 = BD(BD(Qc(a.r, b), 21), 84);
97605 if (i3.dc()) {
97606 c2.n.b = 0;
97607 c2.n.c = 0;
97608 return;
97609 }
97610 j = a.u.Hc((rcd(), ncd));
97611 g = 0;
97612 h = i3.Kc();
97613 k = null;
97614 l = 0;
97615 m = 0;
97616 while (h.Ob()) {
97617 d = BD(h.Pb(), 111);
97618 e = Edb(ED(d.b.We((CKb(), BKb))));
97619 f2 = d.b.rf().a;
97620 a.A.Hc((tdd(), sdd)) && KJb(a, b);
97621 if (!k) {
97622 !!a.C && a.C.b > 0 && (g = $wnd.Math.max(g, IJb(a.C.b + d.d.b, e)));
97623 } else {
97624 n = m + k.d.c + a.w + d.d.b;
97625 g = $wnd.Math.max(g, (Iy(), My(ple), $wnd.Math.abs(l - e) <= ple || l == e || isNaN(l) && isNaN(e) ? 0 : n / (e - l)));
97626 }
97627 k = d;
97628 l = e;
97629 m = f2;
97630 }
97631 if (!!a.C && a.C.c > 0) {
97632 n = m + a.C.c;
97633 j && (n += k.d.c);
97634 g = $wnd.Math.max(g, (Iy(), My(ple), $wnd.Math.abs(l - 1) <= ple || l == 1 || isNaN(l) && isNaN(1) ? 0 : n / (1 - l)));
97635 }
97636 c2.n.b = 0;
97637 c2.a.a = g;
97638 }
97639 function NKb(a, b) {
97640 var c2, d, e, f2, g, h, i3, j, k, l, m, n;
97641 c2 = BD(Mpb(a.b, b), 124);
97642 i3 = BD(BD(Qc(a.r, b), 21), 84);
97643 if (i3.dc()) {
97644 c2.n.d = 0;
97645 c2.n.a = 0;
97646 return;
97647 }
97648 j = a.u.Hc((rcd(), ncd));
97649 g = 0;
97650 a.A.Hc((tdd(), sdd)) && SKb(a, b);
97651 h = i3.Kc();
97652 k = null;
97653 m = 0;
97654 l = 0;
97655 while (h.Ob()) {
97656 d = BD(h.Pb(), 111);
97657 f2 = Edb(ED(d.b.We((CKb(), BKb))));
97658 e = d.b.rf().b;
97659 if (!k) {
97660 !!a.C && a.C.d > 0 && (g = $wnd.Math.max(g, IJb(a.C.d + d.d.d, f2)));
97661 } else {
97662 n = l + k.d.a + a.w + d.d.d;
97663 g = $wnd.Math.max(g, (Iy(), My(ple), $wnd.Math.abs(m - f2) <= ple || m == f2 || isNaN(m) && isNaN(f2) ? 0 : n / (f2 - m)));
97664 }
97665 k = d;
97666 m = f2;
97667 l = e;
97668 }
97669 if (!!a.C && a.C.a > 0) {
97670 n = l + a.C.a;
97671 j && (n += k.d.a);
97672 g = $wnd.Math.max(g, (Iy(), My(ple), $wnd.Math.abs(m - 1) <= ple || m == 1 || isNaN(m) && isNaN(1) ? 0 : n / (1 - m)));
97673 }
97674 c2.n.d = 0;
97675 c2.a.b = g;
97676 }
97677 function _Ec(a, b, c2) {
97678 var d, e, f2, g, h, i3;
97679 this.g = a;
97680 h = b.d.length;
97681 i3 = c2.d.length;
97682 this.d = KC(OQ, kne, 10, h + i3, 0, 1);
97683 for (g = 0; g < h; g++) {
97684 this.d[g] = b.d[g];
97685 }
97686 for (f2 = 0; f2 < i3; f2++) {
97687 this.d[h + f2] = c2.d[f2];
97688 }
97689 if (b.e) {
97690 this.e = Ru(b.e);
97691 this.e.Mc(c2);
97692 if (c2.e) {
97693 for (e = c2.e.Kc(); e.Ob(); ) {
97694 d = BD(e.Pb(), 233);
97695 if (d == b) {
97696 continue;
97697 } else
97698 this.e.Hc(d) ? --d.c : this.e.Fc(d);
97699 }
97700 }
97701 } else if (c2.e) {
97702 this.e = Ru(c2.e);
97703 this.e.Mc(b);
97704 }
97705 this.f = b.f + c2.f;
97706 this.a = b.a + c2.a;
97707 this.a > 0 ? ZEc(this, this.f / this.a) : REc(b.g, b.d[0]).a != null && REc(c2.g, c2.d[0]).a != null ? ZEc(this, (Edb(REc(b.g, b.d[0]).a) + Edb(REc(c2.g, c2.d[0]).a)) / 2) : REc(b.g, b.d[0]).a != null ? ZEc(this, REc(b.g, b.d[0]).a) : REc(c2.g, c2.d[0]).a != null && ZEc(this, REc(c2.g, c2.d[0]).a);
97708 }
97709 function BUb(a, b) {
97710 var c2, d, e, f2, g, h, i3, j, k, l;
97711 a.a = new dVb(oqb(t12));
97712 for (d = new olb(b.a); d.a < d.c.c.length; ) {
97713 c2 = BD(mlb(d), 841);
97714 h = new gVb(OC(GC(IP, 1), Uhe, 81, 0, []));
97715 Ekb(a.a.a, h);
97716 for (j = new olb(c2.d); j.a < j.c.c.length; ) {
97717 i3 = BD(mlb(j), 110);
97718 k = new GUb(a, i3);
97719 AUb(k, BD(vNb(c2.c, (wtc(), Esc)), 21));
97720 if (!Mhb(a.g, c2)) {
97721 Rhb(a.g, c2, new f7c(i3.c, i3.d));
97722 Rhb(a.f, c2, k);
97723 }
97724 Ekb(a.a.b, k);
97725 eVb(h, k);
97726 }
97727 for (g = new olb(c2.b); g.a < g.c.c.length; ) {
97728 f2 = BD(mlb(g), 594);
97729 k = new GUb(a, f2.kf());
97730 Rhb(a.b, f2, new vgd(h, k));
97731 AUb(k, BD(vNb(c2.c, (wtc(), Esc)), 21));
97732 if (f2.hf()) {
97733 l = new HUb(a, f2.hf(), 1);
97734 AUb(l, BD(vNb(c2.c, Esc), 21));
97735 e = new gVb(OC(GC(IP, 1), Uhe, 81, 0, []));
97736 eVb(e, l);
97737 Rc(a.c, f2.gf(), new vgd(h, l));
97738 }
97739 }
97740 }
97741 return a.a;
97742 }
97743 function oBc(a) {
97744 var b;
97745 this.a = a;
97746 b = (j0b(), OC(GC(NQ, 1), Kie, 267, 0, [h0b, g0b, e0b, i0b, f0b, d0b])).length;
97747 this.b = IC(Q3, [nie, zqe], [593, 146], 0, [b, b], 2);
97748 this.c = IC(Q3, [nie, zqe], [593, 146], 0, [b, b], 2);
97749 nBc(this, h0b, (Nyc(), vyc), wyc);
97750 lBc(this, h0b, g0b, oyc, pyc);
97751 kBc(this, h0b, i0b, oyc);
97752 kBc(this, h0b, e0b, oyc);
97753 lBc(this, h0b, f0b, vyc, wyc);
97754 nBc(this, g0b, lyc, myc);
97755 kBc(this, g0b, i0b, lyc);
97756 kBc(this, g0b, e0b, lyc);
97757 lBc(this, g0b, f0b, oyc, pyc);
97758 mBc(this, i0b, lyc);
97759 kBc(this, i0b, e0b, lyc);
97760 kBc(this, i0b, f0b, syc);
97761 mBc(this, e0b, zyc);
97762 lBc(this, e0b, f0b, uyc, tyc);
97763 nBc(this, f0b, lyc, lyc);
97764 nBc(this, d0b, lyc, myc);
97765 lBc(this, d0b, h0b, oyc, pyc);
97766 lBc(this, d0b, f0b, oyc, pyc);
97767 lBc(this, d0b, g0b, oyc, pyc);
97768 }
97769 function _2d(a, b, c2) {
97770 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
97771 g = c2.ak();
97772 if (JD(g, 99) && (BD(g, 18).Bb & Tje) != 0) {
97773 m = BD(c2.dd(), 49);
97774 p = xid(a.e, m);
97775 if (p != m) {
97776 k = R6d(g, p);
97777 mud(a, b, t3d(a, b, k));
97778 l = null;
97779 if (oid(a.e)) {
97780 d = e1d((O6d(), M6d), a.e.Tg(), g);
97781 if (d != XKd(a.e.Tg(), a.c)) {
97782 q = S6d(a.e.Tg(), g);
97783 h = 0;
97784 f2 = BD(a.g, 119);
97785 for (i3 = 0; i3 < b; ++i3) {
97786 e = f2[i3];
97787 q.rl(e.ak()) && ++h;
97788 }
97789 l = new O7d(a.e, 9, d, m, p, h, false);
97790 l.Ei(new pSd(a.e, 9, a.c, c2, k, b, false));
97791 }
97792 }
97793 o2 = BD(g, 18);
97794 n = zUd(o2);
97795 if (n) {
97796 l = m.ih(a.e, bLd(m.Tg(), n), null, l);
97797 l = BD(p, 49).gh(a.e, bLd(p.Tg(), n), null, l);
97798 } else if ((o2.Bb & ote) != 0) {
97799 j = -1 - bLd(a.e.Tg(), o2);
97800 l = m.ih(a.e, j, null, null);
97801 !BD(p, 49).eh() && (l = BD(p, 49).gh(a.e, j, null, l));
97802 }
97803 !!l && l.Fi();
97804 return k;
97805 }
97806 }
97807 return c2;
97808 }
97809 function yUb(a) {
97810 var b, c2, d, e, f2, g, h, i3;
97811 for (f2 = new olb(a.a.b); f2.a < f2.c.c.length; ) {
97812 e = BD(mlb(f2), 81);
97813 e.b.c = e.g.c;
97814 e.b.d = e.g.d;
97815 }
97816 i3 = new f7c(Pje, Pje);
97817 b = new f7c(Qje, Qje);
97818 for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
97819 c2 = BD(mlb(d), 81);
97820 i3.a = $wnd.Math.min(i3.a, c2.g.c);
97821 i3.b = $wnd.Math.min(i3.b, c2.g.d);
97822 b.a = $wnd.Math.max(b.a, c2.g.c + c2.g.b);
97823 b.b = $wnd.Math.max(b.b, c2.g.d + c2.g.a);
97824 }
97825 for (h = Uc(a.c).a.nc(); h.Ob(); ) {
97826 g = BD(h.Pb(), 46);
97827 c2 = BD(g.b, 81);
97828 i3.a = $wnd.Math.min(i3.a, c2.g.c);
97829 i3.b = $wnd.Math.min(i3.b, c2.g.d);
97830 b.a = $wnd.Math.max(b.a, c2.g.c + c2.g.b);
97831 b.b = $wnd.Math.max(b.b, c2.g.d + c2.g.a);
97832 }
97833 a.d = V6c(new f7c(i3.a, i3.b));
97834 a.e = c7c(new f7c(b.a, b.b), i3);
97835 a.a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
97836 a.a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
97837 }
97838 function svd(a) {
97839 var b, c2, d;
97840 l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new Z9c()]));
97841 c2 = new xB(a);
97842 for (d = 0; d < c2.a.length; ++d) {
97843 b = tB(c2, d).je().a;
97844 dfb(b, "layered") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new kwc()])) : dfb(b, "force") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new TRb()])) : dfb(b, "stress") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new PSb()])) : dfb(b, "mrtree") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new sTc()])) : dfb(b, "radial") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new IWc()])) : dfb(b, "disco") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new gFb(), new oPb()])) : dfb(b, "sporeOverlap") || dfb(b, "sporeCompaction") ? l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new B0c()])) : dfb(b, "rectpacking") && l4c(lvd, OC(GC(C0, 1), Uhe, 130, 0, [new PYc()]));
97845 }
97846 }
97847 function j_b(a, b, c2) {
97848 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
97849 m = new g7c(a.o);
97850 r = b.a / m.a;
97851 h = b.b / m.b;
97852 p = b.a - m.a;
97853 f2 = b.b - m.b;
97854 if (c2) {
97855 e = PD(vNb(a, (Nyc(), Vxc))) === PD((dcd(), $bd));
97856 for (o2 = new olb(a.j); o2.a < o2.c.c.length; ) {
97857 n = BD(mlb(o2), 11);
97858 switch (n.j.g) {
97859 case 1:
97860 e || (n.n.a *= r);
97861 break;
97862 case 2:
97863 n.n.a += p;
97864 e || (n.n.b *= h);
97865 break;
97866 case 3:
97867 e || (n.n.a *= r);
97868 n.n.b += f2;
97869 break;
97870 case 4:
97871 e || (n.n.b *= h);
97872 }
97873 }
97874 }
97875 for (j = new olb(a.b); j.a < j.c.c.length; ) {
97876 i3 = BD(mlb(j), 70);
97877 k = i3.n.a + i3.o.a / 2;
97878 l = i3.n.b + i3.o.b / 2;
97879 q = k / m.a;
97880 g = l / m.b;
97881 if (q + g >= 1) {
97882 if (q - g > 0 && l >= 0) {
97883 i3.n.a += p;
97884 i3.n.b += f2 * g;
97885 } else if (q - g < 0 && k >= 0) {
97886 i3.n.a += p * q;
97887 i3.n.b += f2;
97888 }
97889 }
97890 }
97891 a.o.a = b.a;
97892 a.o.b = b.b;
97893 yNb(a, (Nyc(), Fxc), (tdd(), d = BD(gdb(I1), 9), new xqb(d, BD(_Bb(d, d.length), 9), 0)));
97894 }
97895 function iFd(a, b, c2, d, e, f2) {
97896 var g;
97897 if (!(b == null || !OEd(b, zEd, AEd))) {
97898 throw vbb(new Wdb("invalid scheme: " + b));
97899 }
97900 if (!a && !(c2 != null && hfb(c2, wfb(35)) == -1 && c2.length > 0 && (BCb(0, c2.length), c2.charCodeAt(0) != 47))) {
97901 throw vbb(new Wdb("invalid opaquePart: " + c2));
97902 }
97903 if (a && !(b != null && hnb(GEd, b.toLowerCase())) && !(c2 == null || !OEd(c2, CEd, DEd))) {
97904 throw vbb(new Wdb(mve + c2));
97905 }
97906 if (a && b != null && hnb(GEd, b.toLowerCase()) && !eFd(c2)) {
97907 throw vbb(new Wdb(mve + c2));
97908 }
97909 if (!fFd(d)) {
97910 throw vbb(new Wdb("invalid device: " + d));
97911 }
97912 if (!hFd(e)) {
97913 g = e == null ? "invalid segments: null" : "invalid segment: " + VEd(e);
97914 throw vbb(new Wdb(g));
97915 }
97916 if (!(f2 == null || hfb(f2, wfb(35)) == -1)) {
97917 throw vbb(new Wdb("invalid query: " + f2));
97918 }
97919 }
97920 function nVc(a, b) {
97921 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
97922 Odd(b, "Calculate Graph Size", 1);
97923 b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
97924 h = dme;
97925 i3 = dme;
97926 f2 = ere;
97927 g = ere;
97928 for (l = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); l.e != l.i.gc(); ) {
97929 j = BD(Dyd(l), 33);
97930 o2 = j.i;
97931 p = j.j;
97932 r = j.g;
97933 d = j.f;
97934 e = BD(hkd(j, (Y9c(), S8c)), 142);
97935 h = $wnd.Math.min(h, o2 - e.b);
97936 i3 = $wnd.Math.min(i3, p - e.d);
97937 f2 = $wnd.Math.max(f2, o2 + r + e.c);
97938 g = $wnd.Math.max(g, p + d + e.a);
97939 }
97940 n = BD(hkd(a, (Y9c(), f9c)), 116);
97941 m = new f7c(h - n.b, i3 - n.d);
97942 for (k = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); k.e != k.i.gc(); ) {
97943 j = BD(Dyd(k), 33);
97944 dld(j, j.i - m.a);
97945 eld(j, j.j - m.b);
97946 }
97947 q = f2 - h + (n.b + n.c);
97948 c2 = g - i3 + (n.d + n.a);
97949 cld(a, q);
97950 ald(a, c2);
97951 b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
97952 }
97953 function rGb(a) {
97954 var b, c2, d, e, f2, g, h, i3, j, k;
97955 d = new Rkb();
97956 for (g = new olb(a.e.a); g.a < g.c.c.length; ) {
97957 e = BD(mlb(g), 121);
97958 k = 0;
97959 e.k.c = KC(SI, Uhe, 1, 0, 5, 1);
97960 for (c2 = new olb(LFb(e)); c2.a < c2.c.c.length; ) {
97961 b = BD(mlb(c2), 213);
97962 if (b.f) {
97963 Ekb(e.k, b);
97964 ++k;
97965 }
97966 }
97967 k == 1 && (d.c[d.c.length] = e, true);
97968 }
97969 for (f2 = new olb(d); f2.a < f2.c.c.length; ) {
97970 e = BD(mlb(f2), 121);
97971 while (e.k.c.length == 1) {
97972 j = BD(mlb(new olb(e.k)), 213);
97973 a.b[j.c] = j.g;
97974 h = j.d;
97975 i3 = j.e;
97976 for (c2 = new olb(LFb(e)); c2.a < c2.c.c.length; ) {
97977 b = BD(mlb(c2), 213);
97978 pb(b, j) || (b.f ? h == b.d || i3 == b.e ? a.b[j.c] -= a.b[b.c] - b.g : a.b[j.c] += a.b[b.c] - b.g : e == h ? b.d == e ? a.b[j.c] += b.g : a.b[j.c] -= b.g : b.d == e ? a.b[j.c] -= b.g : a.b[j.c] += b.g);
97979 }
97980 Lkb(h.k, j);
97981 Lkb(i3.k, j);
97982 h == e ? e = j.e : e = j.d;
97983 }
97984 }
97985 }
97986 function k4c(a, b) {
97987 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
97988 if (b == null || b.length == 0) {
97989 return null;
97990 }
97991 f2 = BD(Phb(a.f, b), 23);
97992 if (!f2) {
97993 for (e = (n = new $ib(a.d).a.vc().Kc(), new djb(n)); e.a.Ob(); ) {
97994 c2 = (g = BD(e.a.Pb(), 42), BD(g.dd(), 23));
97995 h = c2.f;
97996 o2 = b.length;
97997 if (dfb(h.substr(h.length - o2, o2), b) && (b.length == h.length || bfb(h, h.length - b.length - 1) == 46)) {
97998 if (f2) {
97999 return null;
98000 }
98001 f2 = c2;
98002 }
98003 }
98004 if (!f2) {
98005 for (d = (m = new $ib(a.d).a.vc().Kc(), new djb(m)); d.a.Ob(); ) {
98006 c2 = (g = BD(d.a.Pb(), 42), BD(g.dd(), 23));
98007 l = c2.g;
98008 if (l != null) {
98009 for (i3 = l, j = 0, k = i3.length; j < k; ++j) {
98010 h = i3[j];
98011 o2 = b.length;
98012 if (dfb(h.substr(h.length - o2, o2), b) && (b.length == h.length || bfb(h, h.length - b.length - 1) == 46)) {
98013 if (f2) {
98014 return null;
98015 }
98016 f2 = c2;
98017 }
98018 }
98019 }
98020 }
98021 }
98022 !!f2 && Shb(a.f, b, f2);
98023 }
98024 return f2;
98025 }
98026 function sA(a, b) {
98027 var c2, d, e, f2, g;
98028 c2 = new Vfb();
98029 g = false;
98030 for (f2 = 0; f2 < b.length; f2++) {
98031 d = (BCb(f2, b.length), b.charCodeAt(f2));
98032 if (d == 32) {
98033 gA(a, c2, 0);
98034 c2.a += " ";
98035 gA(a, c2, 0);
98036 while (f2 + 1 < b.length && (BCb(f2 + 1, b.length), b.charCodeAt(f2 + 1) == 32)) {
98037 ++f2;
98038 }
98039 continue;
98040 }
98041 if (g) {
98042 if (d == 39) {
98043 if (f2 + 1 < b.length && (BCb(f2 + 1, b.length), b.charCodeAt(f2 + 1) == 39)) {
98044 c2.a += String.fromCharCode(d);
98045 ++f2;
98046 } else {
98047 g = false;
98048 }
98049 } else {
98050 c2.a += String.fromCharCode(d);
98051 }
98052 continue;
98053 }
98054 if (hfb("GyMLdkHmsSEcDahKzZv", wfb(d)) > 0) {
98055 gA(a, c2, 0);
98056 c2.a += String.fromCharCode(d);
98057 e = lA(b, f2);
98058 gA(a, c2, e);
98059 f2 += e - 1;
98060 continue;
98061 }
98062 if (d == 39) {
98063 if (f2 + 1 < b.length && (BCb(f2 + 1, b.length), b.charCodeAt(f2 + 1) == 39)) {
98064 c2.a += "'";
98065 ++f2;
98066 } else {
98067 g = true;
98068 }
98069 } else {
98070 c2.a += String.fromCharCode(d);
98071 }
98072 }
98073 gA(a, c2, 0);
98074 mA(a);
98075 }
98076 function wDc(a, b, c2) {
98077 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
98078 Odd(c2, "Network simplex layering", 1);
98079 a.b = b;
98080 r = BD(vNb(b, (Nyc(), Ayc)), 19).a * 4;
98081 q = a.b.a;
98082 if (q.c.length < 1) {
98083 Qdd(c2);
98084 return;
98085 }
98086 f2 = sDc(a, q);
98087 p = null;
98088 for (e = Jsb(f2, 0); e.b != e.d.c; ) {
98089 d = BD(Xsb(e), 15);
98090 h = r * QD($wnd.Math.sqrt(d.gc()));
98091 g = vDc(d);
98092 uGb(HGb(JGb(IGb(LGb(g), h), p), true), Udd(c2, 1));
98093 m = a.b.b;
98094 for (o2 = new olb(g.a); o2.a < o2.c.c.length; ) {
98095 n = BD(mlb(o2), 121);
98096 while (m.c.length <= n.e) {
98097 Dkb(m, m.c.length, new H1b(a.b));
98098 }
98099 k = BD(n.f, 10);
98100 $_b(k, BD(Ikb(m, n.e), 29));
98101 }
98102 if (f2.b > 1) {
98103 p = KC(WD, oje, 25, a.b.b.c.length, 15, 1);
98104 l = 0;
98105 for (j = new olb(a.b.b); j.a < j.c.c.length; ) {
98106 i3 = BD(mlb(j), 29);
98107 p[l++] = i3.a.c.length;
98108 }
98109 }
98110 }
98111 q.c = KC(SI, Uhe, 1, 0, 5, 1);
98112 a.a = null;
98113 a.b = null;
98114 a.c = null;
98115 Qdd(c2);
98116 }
98117 function OUb(a) {
98118 var b, c2, d, e, f2, g, h;
98119 b = 0;
98120 for (f2 = new olb(a.b.a); f2.a < f2.c.c.length; ) {
98121 d = BD(mlb(f2), 189);
98122 d.b = 0;
98123 d.c = 0;
98124 }
98125 NUb(a, 0);
98126 MUb(a, a.g);
98127 sVb(a.c);
98128 wVb(a.c);
98129 c2 = (ead(), aad);
98130 uVb(oVb(tVb(uVb(oVb(tVb(uVb(tVb(a.c, c2)), had(c2)))), c2)));
98131 tVb(a.c, aad);
98132 RUb(a, a.g);
98133 SUb(a, 0);
98134 TUb(a, 0);
98135 UUb(a, 1);
98136 NUb(a, 1);
98137 MUb(a, a.d);
98138 sVb(a.c);
98139 for (g = new olb(a.b.a); g.a < g.c.c.length; ) {
98140 d = BD(mlb(g), 189);
98141 b += $wnd.Math.abs(d.c);
98142 }
98143 for (h = new olb(a.b.a); h.a < h.c.c.length; ) {
98144 d = BD(mlb(h), 189);
98145 d.b = 0;
98146 d.c = 0;
98147 }
98148 c2 = dad;
98149 uVb(oVb(tVb(uVb(oVb(tVb(uVb(wVb(tVb(a.c, c2))), had(c2)))), c2)));
98150 tVb(a.c, aad);
98151 RUb(a, a.d);
98152 SUb(a, 1);
98153 TUb(a, 1);
98154 UUb(a, 0);
98155 wVb(a.c);
98156 for (e = new olb(a.b.a); e.a < e.c.c.length; ) {
98157 d = BD(mlb(e), 189);
98158 b += $wnd.Math.abs(d.c);
98159 }
98160 return b;
98161 }
98162 function Wfe(a, b) {
98163 var c2, d, e, f2, g, h, i3, j, k;
98164 j = b;
98165 if (j.b == null || a.b == null)
98166 return;
98167 Yfe(a);
98168 Vfe(a);
98169 Yfe(j);
98170 Vfe(j);
98171 c2 = KC(WD, oje, 25, a.b.length + j.b.length, 15, 1);
98172 k = 0;
98173 d = 0;
98174 g = 0;
98175 while (d < a.b.length && g < j.b.length) {
98176 e = a.b[d];
98177 f2 = a.b[d + 1];
98178 h = j.b[g];
98179 i3 = j.b[g + 1];
98180 if (f2 < h) {
98181 d += 2;
98182 } else if (f2 >= h && e <= i3) {
98183 if (h <= e && f2 <= i3) {
98184 c2[k++] = e;
98185 c2[k++] = f2;
98186 d += 2;
98187 } else if (h <= e) {
98188 c2[k++] = e;
98189 c2[k++] = i3;
98190 a.b[d] = i3 + 1;
98191 g += 2;
98192 } else if (f2 <= i3) {
98193 c2[k++] = h;
98194 c2[k++] = f2;
98195 d += 2;
98196 } else {
98197 c2[k++] = h;
98198 c2[k++] = i3;
98199 a.b[d] = i3 + 1;
98200 }
98201 } else if (i3 < e) {
98202 g += 2;
98203 } else {
98204 throw vbb(new hz("Token#intersectRanges(): Internal Error: [" + a.b[d] + "," + a.b[d + 1] + "] & [" + j.b[g] + "," + j.b[g + 1] + "]"));
98205 }
98206 }
98207 while (d < a.b.length) {
98208 c2[k++] = a.b[d++];
98209 c2[k++] = a.b[d++];
98210 }
98211 a.b = KC(WD, oje, 25, k, 15, 1);
98212 $fb(c2, 0, a.b, 0, k);
98213 }
98214 function PUb(a) {
98215 var b, c2, d, e, f2, g, h;
98216 b = new Rkb();
98217 a.g = new Rkb();
98218 a.d = new Rkb();
98219 for (g = new nib(new eib(a.f.b).a); g.b; ) {
98220 f2 = lib(g);
98221 Ekb(b, BD(BD(f2.dd(), 46).b, 81));
98222 fad(BD(f2.cd(), 594).gf()) ? Ekb(a.d, BD(f2.dd(), 46)) : Ekb(a.g, BD(f2.dd(), 46));
98223 }
98224 MUb(a, a.d);
98225 MUb(a, a.g);
98226 a.c = new CVb(a.b);
98227 AVb(a.c, (xUb(), wUb));
98228 RUb(a, a.d);
98229 RUb(a, a.g);
98230 Gkb(b, a.c.a.b);
98231 a.e = new f7c(Pje, Pje);
98232 a.a = new f7c(Qje, Qje);
98233 for (d = new olb(b); d.a < d.c.c.length; ) {
98234 c2 = BD(mlb(d), 81);
98235 a.e.a = $wnd.Math.min(a.e.a, c2.g.c);
98236 a.e.b = $wnd.Math.min(a.e.b, c2.g.d);
98237 a.a.a = $wnd.Math.max(a.a.a, c2.g.c + c2.g.b);
98238 a.a.b = $wnd.Math.max(a.a.b, c2.g.d + c2.g.a);
98239 }
98240 zVb(a.c, new YUb());
98241 h = 0;
98242 do {
98243 e = OUb(a);
98244 ++h;
98245 } while ((h < 2 || e > Qie) && h < 10);
98246 zVb(a.c, new _Ub());
98247 OUb(a);
98248 vVb(a.c);
98249 yUb(a.f);
98250 }
98251 function sZb(a, b, c2) {
98252 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
98253 if (!Ccb(DD(vNb(c2, (Nyc(), fxc))))) {
98254 return;
98255 }
98256 for (h = new olb(c2.j); h.a < h.c.c.length; ) {
98257 g = BD(mlb(h), 11);
98258 m = k_b(g.g);
98259 for (j = m, k = 0, l = j.length; k < l; ++k) {
98260 i3 = j[k];
98261 f2 = i3.d.i == c2;
98262 e = f2 && Ccb(DD(vNb(i3, gxc)));
98263 if (e) {
98264 o2 = i3.c;
98265 n = BD(Ohb(a.b, o2), 10);
98266 if (!n) {
98267 n = Z$b(o2, (dcd(), bcd), o2.j, -1, null, null, o2.o, BD(vNb(b, Lwc), 103), b);
98268 yNb(n, (wtc(), $sc), o2);
98269 Rhb(a.b, o2, n);
98270 Ekb(b.a, n);
98271 }
98272 q = i3.d;
98273 p = BD(Ohb(a.b, q), 10);
98274 if (!p) {
98275 p = Z$b(q, (dcd(), bcd), q.j, 1, null, null, q.o, BD(vNb(b, Lwc), 103), b);
98276 yNb(p, (wtc(), $sc), q);
98277 Rhb(a.b, q, p);
98278 Ekb(b.a, p);
98279 }
98280 d = kZb(i3);
98281 QZb(d, BD(Ikb(n.j, 0), 11));
98282 RZb(d, BD(Ikb(p.j, 0), 11));
98283 Rc(a.a, i3, new BZb(d, b, (KAc(), IAc)));
98284 BD(vNb(b, (wtc(), Ksc)), 21).Fc((Orc(), Hrc));
98285 }
98286 }
98287 }
98288 }
98289 function W9b(a, b, c2) {
98290 var d, e, f2, g, h, i3, j, k, l, m, n, o2;
98291 Odd(c2, "Label dummy switching", 1);
98292 d = BD(vNb(b, (Nyc(), Owc)), 227);
98293 J9b(b);
98294 e = T9b(b, d);
98295 a.a = KC(UD, Vje, 25, b.b.c.length, 15, 1);
98296 for (h = (Apc(), OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc])), k = 0, n = h.length; k < n; ++k) {
98297 f2 = h[k];
98298 if ((f2 == zpc || f2 == upc || f2 == xpc) && !BD(uqb(e.a, f2) ? e.b[f2.g] : null, 15).dc()) {
98299 M9b(a, b);
98300 break;
98301 }
98302 }
98303 for (i3 = OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc]), l = 0, o2 = i3.length; l < o2; ++l) {
98304 f2 = i3[l];
98305 f2 == zpc || f2 == upc || f2 == xpc || X9b(a, BD(uqb(e.a, f2) ? e.b[f2.g] : null, 15));
98306 }
98307 for (g = OC(GC(EW, 1), Kie, 227, 0, [wpc, ypc, vpc, xpc, zpc, upc]), j = 0, m = g.length; j < m; ++j) {
98308 f2 = g[j];
98309 (f2 == zpc || f2 == upc || f2 == xpc) && X9b(a, BD(uqb(e.a, f2) ? e.b[f2.g] : null, 15));
98310 }
98311 a.a = null;
98312 Qdd(c2);
98313 }
98314 function AFc(a, b) {
98315 var c2, d, e, f2, g, h, i3, j, k, l, m;
98316 switch (a.k.g) {
98317 case 1:
98318 d = BD(vNb(a, (wtc(), $sc)), 17);
98319 c2 = BD(vNb(d, _sc), 74);
98320 !c2 ? c2 = new s7c() : Ccb(DD(vNb(d, ltc))) && (c2 = w7c(c2));
98321 j = BD(vNb(a, Vsc), 11);
98322 if (j) {
98323 k = l7c(OC(GC(m1, 1), nie, 8, 0, [j.i.n, j.n, j.a]));
98324 if (b <= k.a) {
98325 return k.b;
98326 }
98327 Gsb(c2, k, c2.a, c2.a.a);
98328 }
98329 l = BD(vNb(a, Wsc), 11);
98330 if (l) {
98331 m = l7c(OC(GC(m1, 1), nie, 8, 0, [l.i.n, l.n, l.a]));
98332 if (m.a <= b) {
98333 return m.b;
98334 }
98335 Gsb(c2, m, c2.c.b, c2.c);
98336 }
98337 if (c2.b >= 2) {
98338 i3 = Jsb(c2, 0);
98339 g = BD(Xsb(i3), 8);
98340 h = BD(Xsb(i3), 8);
98341 while (h.a < b && i3.b != i3.d.c) {
98342 g = h;
98343 h = BD(Xsb(i3), 8);
98344 }
98345 return g.b + (b - g.a) / (h.a - g.a) * (h.b - g.b);
98346 }
98347 break;
98348 case 3:
98349 f2 = BD(vNb(BD(Ikb(a.j, 0), 11), (wtc(), $sc)), 11);
98350 e = f2.i;
98351 switch (f2.j.g) {
98352 case 1:
98353 return e.n.b;
98354 case 3:
98355 return e.n.b + e.o.b;
98356 }
98357 }
98358 return T_b(a).b;
98359 }
98360 function Wgc(a) {
98361 var b, c2, d, e, f2, g, h, i3, j, k, l;
98362 for (g = new olb(a.d.b); g.a < g.c.c.length; ) {
98363 f2 = BD(mlb(g), 29);
98364 for (i3 = new olb(f2.a); i3.a < i3.c.c.length; ) {
98365 h = BD(mlb(i3), 10);
98366 if (Ccb(DD(vNb(h, (Nyc(), pwc))))) {
98367 if (!Qq(O_b(h))) {
98368 d = BD(Oq(O_b(h)), 17);
98369 k = d.c.i;
98370 k == h && (k = d.d.i);
98371 l = new vgd(k, c7c(R6c(h.n), k.n));
98372 Rhb(a.b, h, l);
98373 continue;
98374 }
98375 }
98376 e = new J6c(h.n.a - h.d.b, h.n.b - h.d.d, h.o.a + h.d.b + h.d.c, h.o.b + h.d.d + h.d.a);
98377 b = vDb(yDb(wDb(xDb(new zDb(), h), e), Fgc), a.a);
98378 pDb(qDb(rDb(new sDb(), OC(GC(PM, 1), Uhe, 57, 0, [b])), b), a.a);
98379 j = new lEb();
98380 Rhb(a.e, b, j);
98381 c2 = sr(new Sr(ur(R_b(h).a.Kc(), new Sq()))) - sr(new Sr(ur(U_b(h).a.Kc(), new Sq())));
98382 c2 < 0 ? jEb(j, true, (ead(), aad)) : c2 > 0 && jEb(j, true, (ead(), bad));
98383 h.k == (j0b(), e0b) && kEb(j);
98384 Rhb(a.f, h, b);
98385 }
98386 }
98387 }
98388 function Bbc(a, b, c2) {
98389 var d, e, f2, g, h, i3, j, k, l, m;
98390 Odd(c2, "Node promotion heuristic", 1);
98391 a.g = b;
98392 Abc(a);
98393 a.q = BD(vNb(b, (Nyc(), rxc)), 260);
98394 k = BD(vNb(a.g, qxc), 19).a;
98395 f2 = new Jbc();
98396 switch (a.q.g) {
98397 case 2:
98398 case 1:
98399 Dbc(a, f2);
98400 break;
98401 case 3:
98402 a.q = (kAc(), jAc);
98403 Dbc(a, f2);
98404 i3 = 0;
98405 for (h = new olb(a.a); h.a < h.c.c.length; ) {
98406 g = BD(mlb(h), 19);
98407 i3 = $wnd.Math.max(i3, g.a);
98408 }
98409 if (i3 > a.j) {
98410 a.q = dAc;
98411 Dbc(a, f2);
98412 }
98413 break;
98414 case 4:
98415 a.q = (kAc(), jAc);
98416 Dbc(a, f2);
98417 j = 0;
98418 for (e = new olb(a.b); e.a < e.c.c.length; ) {
98419 d = ED(mlb(e));
98420 j = $wnd.Math.max(j, (uCb(d), d));
98421 }
98422 if (j > a.k) {
98423 a.q = gAc;
98424 Dbc(a, f2);
98425 }
98426 break;
98427 case 6:
98428 m = QD($wnd.Math.ceil(a.f.length * k / 100));
98429 Dbc(a, new Mbc(m));
98430 break;
98431 case 5:
98432 l = QD($wnd.Math.ceil(a.d * k / 100));
98433 Dbc(a, new Pbc(l));
98434 break;
98435 default:
98436 Dbc(a, f2);
98437 }
98438 Ebc(a, b);
98439 Qdd(c2);
98440 }
98441 function fFc(a, b, c2) {
98442 var d, e, f2, g;
98443 this.j = a;
98444 this.e = WZb(a);
98445 this.o = this.j.e;
98446 this.i = !!this.o;
98447 this.p = this.i ? BD(Ikb(c2, Q_b(this.o).p), 214) : null;
98448 e = BD(vNb(a, (wtc(), Ksc)), 21);
98449 this.g = e.Hc((Orc(), Hrc));
98450 this.b = new Rkb();
98451 this.d = new rHc(this.e);
98452 g = BD(vNb(this.j, jtc), 230);
98453 this.q = wFc(b, g, this.e);
98454 this.k = new BGc(this);
98455 f2 = Ou(OC(GC(qY, 1), Uhe, 225, 0, [this, this.d, this.k, this.q]));
98456 if (b == (rGc(), oGc) && !Ccb(DD(vNb(a, (Nyc(), Awc))))) {
98457 d = new SEc(this.e);
98458 f2.c[f2.c.length] = d;
98459 this.c = new uEc(d, g, BD(this.q, 402));
98460 } else if (b == oGc && Ccb(DD(vNb(a, (Nyc(), Awc))))) {
98461 d = new SEc(this.e);
98462 f2.c[f2.c.length] = d;
98463 this.c = new XGc(d, g, BD(this.q, 402));
98464 } else {
98465 this.c = new Oic(b, this);
98466 }
98467 Ekb(f2, this.c);
98468 $Ic(f2, this.e);
98469 this.s = AGc(this.k);
98470 }
98471 function xUc(a, b) {
98472 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
98473 l = BD(pr((g = Jsb(new ZRc(b).a.d, 0), new aSc(g))), 86);
98474 o2 = l ? BD(vNb(l, (mTc(), _Sc)), 86) : null;
98475 e = 1;
98476 while (!!l && !!o2) {
98477 i3 = 0;
98478 u2 = 0;
98479 c2 = l;
98480 d = o2;
98481 for (h = 0; h < e; h++) {
98482 c2 = VRc(c2);
98483 d = VRc(d);
98484 u2 += Edb(ED(vNb(c2, (mTc(), cTc))));
98485 i3 += Edb(ED(vNb(d, cTc)));
98486 }
98487 t4 = Edb(ED(vNb(o2, (mTc(), fTc))));
98488 s = Edb(ED(vNb(l, fTc)));
98489 m = zUc(l, o2);
98490 n = t4 + i3 + a.a + m - s - u2;
98491 if (0 < n) {
98492 j = b;
98493 k = 0;
98494 while (!!j && j != d) {
98495 ++k;
98496 j = BD(vNb(j, aTc), 86);
98497 }
98498 if (j) {
98499 r = n / k;
98500 j = b;
98501 while (j != d) {
98502 q = Edb(ED(vNb(j, fTc))) + n;
98503 yNb(j, fTc, q);
98504 p = Edb(ED(vNb(j, cTc))) + n;
98505 yNb(j, cTc, p);
98506 n -= r;
98507 j = BD(vNb(j, aTc), 86);
98508 }
98509 } else {
98510 return;
98511 }
98512 }
98513 ++e;
98514 l.d.b == 0 ? l = JRc(new ZRc(b), e) : l = BD(pr((f2 = Jsb(new ZRc(l).a.d, 0), new aSc(f2))), 86);
98515 o2 = l ? BD(vNb(l, _Sc), 86) : null;
98516 }
98517 }
98518 function Cbc(a, b) {
98519 var c2, d, e, f2, g, h, i3, j, k, l;
98520 i3 = true;
98521 e = 0;
98522 j = a.f[b.p];
98523 k = b.o.b + a.n;
98524 c2 = a.c[b.p][2];
98525 Nkb(a.a, j, meb(BD(Ikb(a.a, j), 19).a - 1 + c2));
98526 Nkb(a.b, j, Edb(ED(Ikb(a.b, j))) - k + c2 * a.e);
98527 ++j;
98528 if (j >= a.i) {
98529 ++a.i;
98530 Ekb(a.a, meb(1));
98531 Ekb(a.b, k);
98532 } else {
98533 d = a.c[b.p][1];
98534 Nkb(a.a, j, meb(BD(Ikb(a.a, j), 19).a + 1 - d));
98535 Nkb(a.b, j, Edb(ED(Ikb(a.b, j))) + k - d * a.e);
98536 }
98537 (a.q == (kAc(), dAc) && (BD(Ikb(a.a, j), 19).a > a.j || BD(Ikb(a.a, j - 1), 19).a > a.j) || a.q == gAc && (Edb(ED(Ikb(a.b, j))) > a.k || Edb(ED(Ikb(a.b, j - 1))) > a.k)) && (i3 = false);
98538 for (g = new Sr(ur(R_b(b).a.Kc(), new Sq())); Qr(g); ) {
98539 f2 = BD(Rr(g), 17);
98540 h = f2.c.i;
98541 if (a.f[h.p] == j) {
98542 l = Cbc(a, h);
98543 e = e + BD(l.a, 19).a;
98544 i3 = i3 && Ccb(DD(l.b));
98545 }
98546 }
98547 a.f[b.p] = j;
98548 e = e + a.c[b.p][0];
98549 return new vgd(meb(e), (Bcb(), i3 ? true : false));
98550 }
98551 function sPc(a, b, c2, d, e) {
98552 var f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
98553 l = new Lqb();
98554 g = new Rkb();
98555 qPc(a, c2, a.d.fg(), g, l);
98556 qPc(a, d, a.d.gg(), g, l);
98557 a.b = 0.2 * (p = rPc(LAb(new YAb(null, new Kub(g, 16)), new xPc())), q = rPc(LAb(new YAb(null, new Kub(g, 16)), new zPc())), $wnd.Math.min(p, q));
98558 f2 = 0;
98559 for (h = 0; h < g.c.length - 1; h++) {
98560 i3 = (tCb(h, g.c.length), BD(g.c[h], 112));
98561 for (o2 = h + 1; o2 < g.c.length; o2++) {
98562 f2 += pPc(a, i3, (tCb(o2, g.c.length), BD(g.c[o2], 112)));
98563 }
98564 }
98565 m = BD(vNb(b, (wtc(), jtc)), 230);
98566 f2 >= 2 && (r = WNc(g, true, m), !a.e && (a.e = new ZOc(a)), VOc(a.e, r, g, a.b), void 0);
98567 uPc(g, m);
98568 wPc(g);
98569 n = -1;
98570 for (k = new olb(g); k.a < k.c.c.length; ) {
98571 j = BD(mlb(k), 112);
98572 if ($wnd.Math.abs(j.s - j.c) < qme) {
98573 continue;
98574 }
98575 n = $wnd.Math.max(n, j.o);
98576 a.d.dg(j, e, a.c);
98577 }
98578 a.d.a.a.$b();
98579 return n + 1;
98580 }
98581 function aUb(a, b) {
98582 var c2, d, e, f2, g;
98583 c2 = Edb(ED(vNb(b, (Nyc(), lyc))));
98584 c2 < 2 && yNb(b, lyc, 2);
98585 d = BD(vNb(b, Lwc), 103);
98586 d == (ead(), cad) && yNb(b, Lwc, a_b(b));
98587 e = BD(vNb(b, fyc), 19);
98588 e.a == 0 ? yNb(b, (wtc(), jtc), new Gub()) : yNb(b, (wtc(), jtc), new Hub(e.a));
98589 f2 = DD(vNb(b, Axc));
98590 f2 == null && yNb(b, Axc, (Bcb(), PD(vNb(b, Swc)) === PD((Aad(), wad)) ? true : false));
98591 MAb(new YAb(null, new Kub(b.a, 16)), new dUb(a));
98592 MAb(LAb(new YAb(null, new Kub(b.b, 16)), new fUb()), new hUb(a));
98593 g = new oBc(b);
98594 yNb(b, (wtc(), otc), g);
98595 H2c(a.a);
98596 K2c(a.a, (qUb(), lUb), BD(vNb(b, Jwc), 246));
98597 K2c(a.a, mUb, BD(vNb(b, sxc), 246));
98598 K2c(a.a, nUb, BD(vNb(b, Iwc), 246));
98599 K2c(a.a, oUb, BD(vNb(b, Exc), 246));
98600 K2c(a.a, pUb, kNc(BD(vNb(b, Swc), 218)));
98601 E2c(a.a, _Tb(b));
98602 yNb(b, itc, F2c(a.a, b));
98603 }
98604 function fjc(a, b, c2) {
98605 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
98606 if (m = a.c[b], n = a.c[c2], (o2 = BD(vNb(m, (wtc(), Qsc)), 15), !!o2 && o2.gc() != 0 && o2.Hc(n)) || (p = m.k != (j0b(), g0b) && n.k != g0b, q = BD(vNb(m, Psc), 10), r = BD(vNb(n, Psc), 10), s = q != r, t4 = !!q && q != m || !!r && r != n, u2 = gjc(m, (Ucd(), Acd)), v = gjc(n, Rcd), t4 = t4 | (gjc(m, Rcd) || gjc(n, Acd)), w2 = t4 && s || u2 || v, p && w2) || m.k == (j0b(), i0b) && n.k == h0b || n.k == (j0b(), i0b) && m.k == h0b) {
98607 return false;
98608 }
98609 k = a.c[b];
98610 f2 = a.c[c2];
98611 e = LHc(a.e, k, f2, (Ucd(), Tcd));
98612 i3 = LHc(a.i, k, f2, zcd);
98613 Yic(a.f, k, f2);
98614 j = Hic(a.b, k, f2) + BD(e.a, 19).a + BD(i3.a, 19).a + a.f.d;
98615 h = Hic(a.b, f2, k) + BD(e.b, 19).a + BD(i3.b, 19).a + a.f.b;
98616 if (a.a) {
98617 l = BD(vNb(k, $sc), 11);
98618 g = BD(vNb(f2, $sc), 11);
98619 d = JHc(a.g, l, g);
98620 j += BD(d.a, 19).a;
98621 h += BD(d.b, 19).a;
98622 }
98623 return j > h;
98624 }
98625 function k6b(a, b) {
98626 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
98627 c2 = BD(vNb(a, (Nyc(), Vxc)), 98);
98628 g = a.f;
98629 f2 = a.d;
98630 h = g.a + f2.b + f2.c;
98631 i3 = 0 - f2.d - a.c.b;
98632 k = g.b + f2.d + f2.a - a.c.b;
98633 j = new Rkb();
98634 l = new Rkb();
98635 for (e = new olb(b); e.a < e.c.c.length; ) {
98636 d = BD(mlb(e), 10);
98637 switch (c2.g) {
98638 case 1:
98639 case 2:
98640 case 3:
98641 a6b(d);
98642 break;
98643 case 4:
98644 m = BD(vNb(d, Txc), 8);
98645 n = !m ? 0 : m.a;
98646 d.n.a = h * Edb(ED(vNb(d, (wtc(), htc)))) - n;
98647 M_b(d, true, false);
98648 break;
98649 case 5:
98650 o2 = BD(vNb(d, Txc), 8);
98651 p = !o2 ? 0 : o2.a;
98652 d.n.a = Edb(ED(vNb(d, (wtc(), htc)))) - p;
98653 M_b(d, true, false);
98654 g.a = $wnd.Math.max(g.a, d.n.a + d.o.a / 2);
98655 }
98656 switch (BD(vNb(d, (wtc(), Hsc)), 61).g) {
98657 case 1:
98658 d.n.b = i3;
98659 j.c[j.c.length] = d;
98660 break;
98661 case 3:
98662 d.n.b = k;
98663 l.c[l.c.length] = d;
98664 }
98665 }
98666 switch (c2.g) {
98667 case 1:
98668 case 2:
98669 c6b(j, a);
98670 c6b(l, a);
98671 break;
98672 case 3:
98673 i6b(j, a);
98674 i6b(l, a);
98675 }
98676 }
98677 function VHc(a, b) {
98678 var c2, d, e, f2, g, h, i3, j, k, l;
98679 k = new Rkb();
98680 l = new jkb();
98681 f2 = null;
98682 e = 0;
98683 for (d = 0; d < b.length; ++d) {
98684 c2 = b[d];
98685 XHc(f2, c2) && (e = QHc(a, l, k, EHc, e));
98686 wNb(c2, (wtc(), Psc)) && (f2 = BD(vNb(c2, Psc), 10));
98687 switch (c2.k.g) {
98688 case 0:
98689 for (i3 = Vq(Nq(V_b(c2, (Ucd(), Acd)), new GIc())); xc(i3); ) {
98690 g = BD(yc(i3), 11);
98691 a.d[g.p] = e++;
98692 k.c[k.c.length] = g;
98693 }
98694 e = QHc(a, l, k, EHc, e);
98695 for (j = Vq(Nq(V_b(c2, Rcd), new GIc())); xc(j); ) {
98696 g = BD(yc(j), 11);
98697 a.d[g.p] = e++;
98698 k.c[k.c.length] = g;
98699 }
98700 break;
98701 case 3:
98702 if (!V_b(c2, DHc).dc()) {
98703 g = BD(V_b(c2, DHc).Xb(0), 11);
98704 a.d[g.p] = e++;
98705 k.c[k.c.length] = g;
98706 }
98707 V_b(c2, EHc).dc() || Wjb(l, c2);
98708 break;
98709 case 1:
98710 for (h = V_b(c2, (Ucd(), Tcd)).Kc(); h.Ob(); ) {
98711 g = BD(h.Pb(), 11);
98712 a.d[g.p] = e++;
98713 k.c[k.c.length] = g;
98714 }
98715 V_b(c2, zcd).Jc(new EIc(l, c2));
98716 }
98717 }
98718 QHc(a, l, k, EHc, e);
98719 return k;
98720 }
98721 function y$c(a, b) {
98722 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s;
98723 j = Pje;
98724 k = Pje;
98725 h = Qje;
98726 i3 = Qje;
98727 for (m = new olb(b.i); m.a < m.c.c.length; ) {
98728 l = BD(mlb(m), 65);
98729 e = BD(BD(Ohb(a.g, l.a), 46).b, 33);
98730 bld(e, l.b.c, l.b.d);
98731 j = $wnd.Math.min(j, e.i);
98732 k = $wnd.Math.min(k, e.j);
98733 h = $wnd.Math.max(h, e.i + e.g);
98734 i3 = $wnd.Math.max(i3, e.j + e.f);
98735 }
98736 n = BD(hkd(a.c, (d0c(), W_c)), 116);
98737 Afd(a.c, h - j + (n.b + n.c), i3 - k + (n.d + n.a), true, true);
98738 Efd(a.c, -j + n.b, -k + n.d);
98739 for (d = new Fyd(Wod(a.c)); d.e != d.i.gc(); ) {
98740 c2 = BD(Dyd(d), 79);
98741 g = itd(c2, true, true);
98742 o2 = jtd(c2);
98743 q = ltd(c2);
98744 p = new f7c(o2.i + o2.g / 2, o2.j + o2.f / 2);
98745 f2 = new f7c(q.i + q.g / 2, q.j + q.f / 2);
98746 r = c7c(new f7c(f2.a, f2.b), p);
98747 l6c(r, o2.g, o2.f);
98748 P6c(p, r);
98749 s = c7c(new f7c(p.a, p.b), f2);
98750 l6c(s, q.g, q.f);
98751 P6c(f2, s);
98752 nmd(g, p.a, p.b);
98753 gmd(g, f2.a, f2.b);
98754 }
98755 }
98756 function EYb(a, b) {
98757 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
98758 a.c = a.d;
98759 o2 = DD(vNb(b, (Nyc(), gyc)));
98760 n = o2 == null || (uCb(o2), o2);
98761 f2 = BD(vNb(b, (wtc(), Ksc)), 21).Hc((Orc(), Hrc));
98762 e = BD(vNb(b, Vxc), 98);
98763 c2 = !(e == (dcd(), Zbd) || e == _bd || e == $bd);
98764 if (n && (c2 || !f2)) {
98765 for (l = new olb(b.a); l.a < l.c.c.length; ) {
98766 j = BD(mlb(l), 10);
98767 j.p = 0;
98768 }
98769 m = new Rkb();
98770 for (k = new olb(b.a); k.a < k.c.c.length; ) {
98771 j = BD(mlb(k), 10);
98772 d = DYb(a, j, null);
98773 if (d) {
98774 i3 = new XZb();
98775 tNb(i3, b);
98776 yNb(i3, Esc, BD(d.b, 21));
98777 u_b(i3.d, b.d);
98778 yNb(i3, Hxc, null);
98779 for (h = BD(d.a, 15).Kc(); h.Ob(); ) {
98780 g = BD(h.Pb(), 10);
98781 Ekb(i3.a, g);
98782 g.a = i3;
98783 }
98784 m.Fc(i3);
98785 }
98786 }
98787 f2 && (PD(vNb(b, twc)) === PD((RXb(), OXb)) ? a.c = a.b : a.c = a.a);
98788 } else {
98789 m = new amb(OC(GC(KQ, 1), cne, 37, 0, [b]));
98790 }
98791 PD(vNb(b, twc)) !== PD((RXb(), QXb)) && (mmb(), m.ad(new HYb()));
98792 return m;
98793 }
98794 function KTc(a) {
98795 r4c(a, new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c(), are), "ELK Mr. Tree"), "Tree-based algorithm provided by the Eclipse Layout Kernel. Computes a spanning tree of the input graph and arranges all nodes according to the resulting parent-children hierarchy. I pity the fool who doesn't use Mr. Tree Layout."), new NTc()), bre), pqb((Csd(), wsd)))));
98796 p4c(a, are, ame, CTc);
98797 p4c(a, are, wme, 20);
98798 p4c(a, are, _le, tme);
98799 p4c(a, are, vme, meb(1));
98800 p4c(a, are, zme, (Bcb(), true));
98801 p4c(a, are, Zpe, Ksd(vTc));
98802 p4c(a, are, Fme, Ksd(xTc));
98803 p4c(a, are, Tme, Ksd(yTc));
98804 p4c(a, are, Eme, Ksd(zTc));
98805 p4c(a, are, Gme, Ksd(wTc));
98806 p4c(a, are, Dme, Ksd(ATc));
98807 p4c(a, are, Hme, Ksd(DTc));
98808 p4c(a, are, Zqe, Ksd(ITc));
98809 p4c(a, are, $qe, Ksd(FTc));
98810 }
98811 function zod(a) {
98812 if (a.q)
98813 return;
98814 a.q = true;
98815 a.p = Lnd(a, 0);
98816 a.a = Lnd(a, 1);
98817 Qnd(a.a, 0);
98818 a.f = Lnd(a, 2);
98819 Qnd(a.f, 1);
98820 Knd(a.f, 2);
98821 a.n = Lnd(a, 3);
98822 Knd(a.n, 3);
98823 Knd(a.n, 4);
98824 Knd(a.n, 5);
98825 Knd(a.n, 6);
98826 a.g = Lnd(a, 4);
98827 Qnd(a.g, 7);
98828 Knd(a.g, 8);
98829 a.c = Lnd(a, 5);
98830 Qnd(a.c, 7);
98831 Qnd(a.c, 8);
98832 a.i = Lnd(a, 6);
98833 Qnd(a.i, 9);
98834 Qnd(a.i, 10);
98835 Qnd(a.i, 11);
98836 Qnd(a.i, 12);
98837 Knd(a.i, 13);
98838 a.j = Lnd(a, 7);
98839 Qnd(a.j, 9);
98840 a.d = Lnd(a, 8);
98841 Qnd(a.d, 3);
98842 Qnd(a.d, 4);
98843 Qnd(a.d, 5);
98844 Qnd(a.d, 6);
98845 Knd(a.d, 7);
98846 Knd(a.d, 8);
98847 Knd(a.d, 9);
98848 Knd(a.d, 10);
98849 a.b = Lnd(a, 9);
98850 Knd(a.b, 0);
98851 Knd(a.b, 1);
98852 a.e = Lnd(a, 10);
98853 Knd(a.e, 1);
98854 Knd(a.e, 2);
98855 Knd(a.e, 3);
98856 Knd(a.e, 4);
98857 Qnd(a.e, 5);
98858 Qnd(a.e, 6);
98859 Qnd(a.e, 7);
98860 Qnd(a.e, 8);
98861 Qnd(a.e, 9);
98862 Qnd(a.e, 10);
98863 Knd(a.e, 11);
98864 a.k = Lnd(a, 11);
98865 Knd(a.k, 0);
98866 Knd(a.k, 1);
98867 a.o = Mnd(a, 12);
98868 a.s = Mnd(a, 13);
98869 }
98870 function AUb(a, b) {
98871 b.dc() && HVb(a.j, true, true, true, true);
98872 pb(b, (Ucd(), Gcd)) && HVb(a.j, true, true, true, false);
98873 pb(b, Bcd) && HVb(a.j, false, true, true, true);
98874 pb(b, Ocd) && HVb(a.j, true, true, false, true);
98875 pb(b, Qcd) && HVb(a.j, true, false, true, true);
98876 pb(b, Hcd) && HVb(a.j, false, true, true, false);
98877 pb(b, Ccd) && HVb(a.j, false, true, false, true);
98878 pb(b, Pcd) && HVb(a.j, true, false, false, true);
98879 pb(b, Ncd) && HVb(a.j, true, false, true, false);
98880 pb(b, Lcd) && HVb(a.j, true, true, true, true);
98881 pb(b, Ecd) && HVb(a.j, true, true, true, true);
98882 pb(b, Lcd) && HVb(a.j, true, true, true, true);
98883 pb(b, Dcd) && HVb(a.j, true, true, true, true);
98884 pb(b, Mcd) && HVb(a.j, true, true, true, true);
98885 pb(b, Kcd) && HVb(a.j, true, true, true, true);
98886 pb(b, Jcd) && HVb(a.j, true, true, true, true);
98887 }
98888 function rZb(a, b, c2, d, e) {
98889 var f2, g, h, i3, j, k, l, m, n, o2, p, q;
98890 f2 = new Rkb();
98891 for (j = new olb(d); j.a < j.c.c.length; ) {
98892 h = BD(mlb(j), 441);
98893 g = null;
98894 if (h.f == (KAc(), IAc)) {
98895 for (o2 = new olb(h.e); o2.a < o2.c.c.length; ) {
98896 n = BD(mlb(o2), 17);
98897 q = n.d.i;
98898 if (Q_b(q) == b) {
98899 iZb(a, b, h, n, h.b, n.d);
98900 } else if (!c2 || f_b(q, c2)) {
98901 jZb(a, b, h, d, n);
98902 } else {
98903 m = oZb(a, b, c2, n, h.b, IAc, g);
98904 m != g && (f2.c[f2.c.length] = m, true);
98905 m.c && (g = m);
98906 }
98907 }
98908 } else {
98909 for (l = new olb(h.e); l.a < l.c.c.length; ) {
98910 k = BD(mlb(l), 17);
98911 p = k.c.i;
98912 if (Q_b(p) == b) {
98913 iZb(a, b, h, k, k.c, h.b);
98914 } else if (!c2 || f_b(p, c2)) {
98915 continue;
98916 } else {
98917 m = oZb(a, b, c2, k, h.b, HAc, g);
98918 m != g && (f2.c[f2.c.length] = m, true);
98919 m.c && (g = m);
98920 }
98921 }
98922 }
98923 }
98924 for (i3 = new olb(f2); i3.a < i3.c.c.length; ) {
98925 h = BD(mlb(i3), 441);
98926 Jkb(b.a, h.a, 0) != -1 || Ekb(b.a, h.a);
98927 h.c && (e.c[e.c.length] = h, true);
98928 }
98929 }
98930 function SJc(a, b, c2) {
98931 var d, e, f2, g, h, i3, j, k, l, m;
98932 j = new Rkb();
98933 for (i3 = new olb(b.a); i3.a < i3.c.c.length; ) {
98934 g = BD(mlb(i3), 10);
98935 for (m = V_b(g, (Ucd(), zcd)).Kc(); m.Ob(); ) {
98936 l = BD(m.Pb(), 11);
98937 for (e = new olb(l.g); e.a < e.c.c.length; ) {
98938 d = BD(mlb(e), 17);
98939 if (!OZb(d) && d.c.i.c == d.d.i.c || OZb(d) || d.d.i.c != c2) {
98940 continue;
98941 }
98942 j.c[j.c.length] = d;
98943 }
98944 }
98945 }
98946 for (h = Su(c2.a).Kc(); h.Ob(); ) {
98947 g = BD(h.Pb(), 10);
98948 for (m = V_b(g, (Ucd(), Tcd)).Kc(); m.Ob(); ) {
98949 l = BD(m.Pb(), 11);
98950 for (e = new olb(l.e); e.a < e.c.c.length; ) {
98951 d = BD(mlb(e), 17);
98952 if (!OZb(d) && d.c.i.c == d.d.i.c || OZb(d) || d.c.i.c != b) {
98953 continue;
98954 }
98955 k = new Bib(j, j.c.length);
98956 f2 = (sCb(k.b > 0), BD(k.a.Xb(k.c = --k.b), 17));
98957 while (f2 != d && k.b > 0) {
98958 a.a[f2.p] = true;
98959 a.a[d.p] = true;
98960 f2 = (sCb(k.b > 0), BD(k.a.Xb(k.c = --k.b), 17));
98961 }
98962 k.b > 0 && uib(k);
98963 }
98964 }
98965 }
98966 }
98967 function Vmd(b, c2, d) {
98968 var e, f2, g, h, i3, j, k, l, m;
98969 if (b.a != c2.Aj()) {
98970 throw vbb(new Wdb(tte + c2.ne() + ute));
98971 }
98972 e = o1d((O6d(), M6d), c2).$k();
98973 if (e) {
98974 return e.Aj().Nh().Ih(e, d);
98975 }
98976 h = o1d(M6d, c2).al();
98977 if (h) {
98978 if (d == null) {
98979 return null;
98980 }
98981 i3 = BD(d, 15);
98982 if (i3.dc()) {
98983 return "";
98984 }
98985 m = new Hfb();
98986 for (g = i3.Kc(); g.Ob(); ) {
98987 f2 = g.Pb();
98988 Efb(m, h.Aj().Nh().Ih(h, f2));
98989 m.a += " ";
98990 }
98991 return lcb(m, m.a.length - 1);
98992 }
98993 l = o1d(M6d, c2).bl();
98994 if (!l.dc()) {
98995 for (k = l.Kc(); k.Ob(); ) {
98996 j = BD(k.Pb(), 148);
98997 if (j.wj(d)) {
98998 try {
98999 m = j.Aj().Nh().Ih(j, d);
99000 if (m != null) {
99001 return m;
99002 }
99003 } catch (a) {
99004 a = ubb(a);
99005 if (!JD(a, 102))
99006 throw vbb(a);
99007 }
99008 }
99009 }
99010 throw vbb(new Wdb("Invalid value: '" + d + "' for datatype :" + c2.ne()));
99011 }
99012 BD(c2, 834).Fj();
99013 return d == null ? null : JD(d, 172) ? "" + BD(d, 172).a : rb(d) == $J ? CQd(Pmd[0], BD(d, 199)) : fcb(d);
99014 }
99015 function zQc(a) {
99016 var b, c2, d, e, f2, g, h, i3, j, k;
99017 j = new Psb();
99018 h = new Psb();
99019 for (f2 = new olb(a); f2.a < f2.c.c.length; ) {
99020 d = BD(mlb(f2), 128);
99021 d.v = 0;
99022 d.n = d.i.c.length;
99023 d.u = d.t.c.length;
99024 d.n == 0 && (Gsb(j, d, j.c.b, j.c), true);
99025 d.u == 0 && d.r.a.gc() == 0 && (Gsb(h, d, h.c.b, h.c), true);
99026 }
99027 g = -1;
99028 while (j.b != 0) {
99029 d = BD(Vt(j, 0), 128);
99030 for (c2 = new olb(d.t); c2.a < c2.c.c.length; ) {
99031 b = BD(mlb(c2), 268);
99032 k = b.b;
99033 k.v = $wnd.Math.max(k.v, d.v + 1);
99034 g = $wnd.Math.max(g, k.v);
99035 --k.n;
99036 k.n == 0 && (Gsb(j, k, j.c.b, j.c), true);
99037 }
99038 }
99039 if (g > -1) {
99040 for (e = Jsb(h, 0); e.b != e.d.c; ) {
99041 d = BD(Xsb(e), 128);
99042 d.v = g;
99043 }
99044 while (h.b != 0) {
99045 d = BD(Vt(h, 0), 128);
99046 for (c2 = new olb(d.i); c2.a < c2.c.c.length; ) {
99047 b = BD(mlb(c2), 268);
99048 i3 = b.a;
99049 if (i3.r.a.gc() != 0) {
99050 continue;
99051 }
99052 i3.v = $wnd.Math.min(i3.v, d.v - 1);
99053 --i3.u;
99054 i3.u == 0 && (Gsb(h, i3, h.c.b, h.c), true);
99055 }
99056 }
99057 }
99058 }
99059 function A6c(a, b, c2, d, e) {
99060 var f2, g, h, i3;
99061 i3 = Pje;
99062 g = false;
99063 h = v6c(a, c7c(new f7c(b.a, b.b), a), P6c(new f7c(c2.a, c2.b), e), c7c(new f7c(d.a, d.b), c2));
99064 f2 = !!h && !($wnd.Math.abs(h.a - a.a) <= nse && $wnd.Math.abs(h.b - a.b) <= nse || $wnd.Math.abs(h.a - b.a) <= nse && $wnd.Math.abs(h.b - b.b) <= nse);
99065 h = v6c(a, c7c(new f7c(b.a, b.b), a), c2, e);
99066 !!h && (($wnd.Math.abs(h.a - a.a) <= nse && $wnd.Math.abs(h.b - a.b) <= nse) == ($wnd.Math.abs(h.a - b.a) <= nse && $wnd.Math.abs(h.b - b.b) <= nse) || f2 ? i3 = $wnd.Math.min(i3, U6c(c7c(h, c2))) : g = true);
99067 h = v6c(a, c7c(new f7c(b.a, b.b), a), d, e);
99068 !!h && (g || ($wnd.Math.abs(h.a - a.a) <= nse && $wnd.Math.abs(h.b - a.b) <= nse) == ($wnd.Math.abs(h.a - b.a) <= nse && $wnd.Math.abs(h.b - b.b) <= nse) || f2) && (i3 = $wnd.Math.min(i3, U6c(c7c(h, d))));
99069 return i3;
99070 }
99071 function cTb(a) {
99072 r4c(a, new E3c(L3c(P3c(M3c(O3c(N3c(new R3c(), Rme), Sme), "Minimizes the stress within a layout using stress majorization. Stress exists if the euclidean distance between a pair of nodes doesn't match their graph theoretic distance, that is, the shortest path between the two nodes. The method allows to specify individual edge lengths."), new fTb()), ume)));
99073 p4c(a, Rme, Ame, Ksd(VSb));
99074 p4c(a, Rme, Cme, (Bcb(), true));
99075 p4c(a, Rme, Fme, Ksd(YSb));
99076 p4c(a, Rme, Tme, Ksd(ZSb));
99077 p4c(a, Rme, Eme, Ksd($Sb));
99078 p4c(a, Rme, Gme, Ksd(XSb));
99079 p4c(a, Rme, Dme, Ksd(_Sb));
99080 p4c(a, Rme, Hme, Ksd(aTb));
99081 p4c(a, Rme, Mme, Ksd(USb));
99082 p4c(a, Rme, Ome, Ksd(SSb));
99083 p4c(a, Rme, Pme, Ksd(TSb));
99084 p4c(a, Rme, Qme, Ksd(WSb));
99085 p4c(a, Rme, Nme, Ksd(RSb));
99086 }
99087 function BFc(a, b) {
99088 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
99089 Odd(b, "Interactive crossing minimization", 1);
99090 g = 0;
99091 for (f2 = new olb(a.b); f2.a < f2.c.c.length; ) {
99092 d = BD(mlb(f2), 29);
99093 d.p = g++;
99094 }
99095 m = WZb(a);
99096 q = new iHc(m.length);
99097 $Ic(new amb(OC(GC(qY, 1), Uhe, 225, 0, [q])), m);
99098 p = 0;
99099 g = 0;
99100 for (e = new olb(a.b); e.a < e.c.c.length; ) {
99101 d = BD(mlb(e), 29);
99102 c2 = 0;
99103 l = 0;
99104 for (k = new olb(d.a); k.a < k.c.c.length; ) {
99105 i3 = BD(mlb(k), 10);
99106 if (i3.n.a > 0) {
99107 c2 += i3.n.a + i3.o.a / 2;
99108 ++l;
99109 }
99110 for (o2 = new olb(i3.j); o2.a < o2.c.c.length; ) {
99111 n = BD(mlb(o2), 11);
99112 n.p = p++;
99113 }
99114 }
99115 l > 0 && (c2 /= l);
99116 r = KC(UD, Vje, 25, d.a.c.length, 15, 1);
99117 h = 0;
99118 for (j = new olb(d.a); j.a < j.c.c.length; ) {
99119 i3 = BD(mlb(j), 10);
99120 i3.p = h++;
99121 r[i3.p] = AFc(i3, c2);
99122 i3.k == (j0b(), g0b) && yNb(i3, (wtc(), atc), r[i3.p]);
99123 }
99124 mmb();
99125 Okb(d.a, new GFc(r));
99126 YDc(q, m, g, true);
99127 ++g;
99128 }
99129 Qdd(b);
99130 }
99131 function Zfe(a, b) {
99132 var c2, d, e, f2, g, h, i3, j, k;
99133 if (b.e == 5) {
99134 Wfe(a, b);
99135 return;
99136 }
99137 j = b;
99138 if (j.b == null || a.b == null)
99139 return;
99140 Yfe(a);
99141 Vfe(a);
99142 Yfe(j);
99143 Vfe(j);
99144 c2 = KC(WD, oje, 25, a.b.length + j.b.length, 15, 1);
99145 k = 0;
99146 d = 0;
99147 g = 0;
99148 while (d < a.b.length && g < j.b.length) {
99149 e = a.b[d];
99150 f2 = a.b[d + 1];
99151 h = j.b[g];
99152 i3 = j.b[g + 1];
99153 if (f2 < h) {
99154 c2[k++] = a.b[d++];
99155 c2[k++] = a.b[d++];
99156 } else if (f2 >= h && e <= i3) {
99157 if (h <= e && f2 <= i3) {
99158 d += 2;
99159 } else if (h <= e) {
99160 a.b[d] = i3 + 1;
99161 g += 2;
99162 } else if (f2 <= i3) {
99163 c2[k++] = e;
99164 c2[k++] = h - 1;
99165 d += 2;
99166 } else {
99167 c2[k++] = e;
99168 c2[k++] = h - 1;
99169 a.b[d] = i3 + 1;
99170 g += 2;
99171 }
99172 } else if (i3 < e) {
99173 g += 2;
99174 } else {
99175 throw vbb(new hz("Token#subtractRanges(): Internal Error: [" + a.b[d] + "," + a.b[d + 1] + "] - [" + j.b[g] + "," + j.b[g + 1] + "]"));
99176 }
99177 }
99178 while (d < a.b.length) {
99179 c2[k++] = a.b[d++];
99180 c2[k++] = a.b[d++];
99181 }
99182 a.b = KC(WD, oje, 25, k, 15, 1);
99183 $fb(c2, 0, a.b, 0, k);
99184 }
99185 function BJb(a) {
99186 var b, c2, d, e, f2, g, h;
99187 if (a.A.dc()) {
99188 return;
99189 }
99190 if (a.A.Hc((tdd(), rdd))) {
99191 BD(Mpb(a.b, (Ucd(), Acd)), 124).k = true;
99192 BD(Mpb(a.b, Rcd), 124).k = true;
99193 b = a.q != (dcd(), _bd) && a.q != $bd;
99194 ZGb(BD(Mpb(a.b, zcd), 124), b);
99195 ZGb(BD(Mpb(a.b, Tcd), 124), b);
99196 ZGb(a.g, b);
99197 if (a.A.Hc(sdd)) {
99198 BD(Mpb(a.b, Acd), 124).j = true;
99199 BD(Mpb(a.b, Rcd), 124).j = true;
99200 BD(Mpb(a.b, zcd), 124).k = true;
99201 BD(Mpb(a.b, Tcd), 124).k = true;
99202 a.g.k = true;
99203 }
99204 }
99205 if (a.A.Hc(qdd)) {
99206 a.a.j = true;
99207 a.a.k = true;
99208 a.g.j = true;
99209 a.g.k = true;
99210 h = a.B.Hc((Idd(), Edd));
99211 for (e = wJb(), f2 = 0, g = e.length; f2 < g; ++f2) {
99212 d = e[f2];
99213 c2 = BD(Mpb(a.i, d), 306);
99214 if (c2) {
99215 if (sJb(d)) {
99216 c2.j = true;
99217 c2.k = true;
99218 } else {
99219 c2.j = !h;
99220 c2.k = !h;
99221 }
99222 }
99223 }
99224 }
99225 if (a.A.Hc(pdd) && a.B.Hc((Idd(), Ddd))) {
99226 a.g.j = true;
99227 a.g.j = true;
99228 if (!a.a.j) {
99229 a.a.j = true;
99230 a.a.k = true;
99231 a.a.e = true;
99232 }
99233 }
99234 }
99235 function GJc(a) {
99236 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
99237 for (d = new olb(a.e.b); d.a < d.c.c.length; ) {
99238 c2 = BD(mlb(d), 29);
99239 for (f2 = new olb(c2.a); f2.a < f2.c.c.length; ) {
99240 e = BD(mlb(f2), 10);
99241 n = a.i[e.p];
99242 j = n.a.e;
99243 i3 = n.d.e;
99244 e.n.b = j;
99245 r = i3 - j - e.o.b;
99246 b = bKc(e);
99247 m = (Izc(), (!e.q ? (mmb(), mmb(), kmb) : e.q)._b((Nyc(), Cxc)) ? l = BD(vNb(e, Cxc), 197) : l = BD(vNb(Q_b(e), Dxc), 197), l);
99248 b && (m == Fzc || m == Ezc) && (e.o.b += r);
99249 if (b && (m == Hzc || m == Fzc || m == Ezc)) {
99250 for (p = new olb(e.j); p.a < p.c.c.length; ) {
99251 o2 = BD(mlb(p), 11);
99252 if ((Ucd(), Ecd).Hc(o2.j)) {
99253 k = BD(Ohb(a.k, o2), 121);
99254 o2.n.b = k.e - j;
99255 }
99256 }
99257 for (h = new olb(e.b); h.a < h.c.c.length; ) {
99258 g = BD(mlb(h), 70);
99259 q = BD(vNb(e, xxc), 21);
99260 q.Hc((Hbd(), Ebd)) ? g.n.b += r : q.Hc(Fbd) && (g.n.b += r / 2);
99261 }
99262 (m == Fzc || m == Ezc) && V_b(e, (Ucd(), Rcd)).Jc(new $Kc(r));
99263 }
99264 }
99265 }
99266 }
99267 function Lwb(a, b, c2) {
99268 var d, e, f2, g, h, i3, j, k, l, m, n;
99269 if (!a.b) {
99270 return false;
99271 }
99272 g = null;
99273 m = null;
99274 i3 = new exb(null, null);
99275 e = 1;
99276 i3.a[1] = a.b;
99277 l = i3;
99278 while (l.a[e]) {
99279 j = e;
99280 h = m;
99281 m = l;
99282 l = l.a[e];
99283 d = a.a.ue(b, l.d);
99284 e = d < 0 ? 0 : 1;
99285 d == 0 && (!c2.c || wtb(l.e, c2.d)) && (g = l);
99286 if (!(!!l && l.b) && !Hwb(l.a[e])) {
99287 if (Hwb(l.a[1 - e])) {
99288 m = m.a[j] = Owb(l, e);
99289 } else if (!Hwb(l.a[1 - e])) {
99290 n = m.a[1 - j];
99291 if (n) {
99292 if (!Hwb(n.a[1 - j]) && !Hwb(n.a[j])) {
99293 m.b = false;
99294 n.b = true;
99295 l.b = true;
99296 } else {
99297 f2 = h.a[1] == m ? 1 : 0;
99298 Hwb(n.a[j]) ? h.a[f2] = Nwb(m, j) : Hwb(n.a[1 - j]) && (h.a[f2] = Owb(m, j));
99299 l.b = h.a[f2].b = true;
99300 h.a[f2].a[0].b = false;
99301 h.a[f2].a[1].b = false;
99302 }
99303 }
99304 }
99305 }
99306 }
99307 if (g) {
99308 c2.b = true;
99309 c2.d = g.e;
99310 if (l != g) {
99311 k = new exb(l.d, l.e);
99312 Mwb(a, i3, g, k);
99313 m == g && (m = k);
99314 }
99315 m.a[m.a[1] == l ? 1 : 0] = l.a[!l.a[0] ? 1 : 0];
99316 --a.c;
99317 }
99318 a.b = i3.a[1];
99319 !!a.b && (a.b.b = false);
99320 return c2.b;
99321 }
99322 function cic(a) {
99323 var b, c2, d, e, f2, g, h, i3, j, k, l, m;
99324 for (e = new olb(a.a.a.b); e.a < e.c.c.length; ) {
99325 d = BD(mlb(e), 57);
99326 for (i3 = d.c.Kc(); i3.Ob(); ) {
99327 h = BD(i3.Pb(), 57);
99328 if (d.a == h.a) {
99329 continue;
99330 }
99331 fad(a.a.d) ? l = a.a.g.Oe(d, h) : l = a.a.g.Pe(d, h);
99332 f2 = d.b.a + d.d.b + l - h.b.a;
99333 f2 = $wnd.Math.ceil(f2);
99334 f2 = $wnd.Math.max(0, f2);
99335 if (vgc(d, h)) {
99336 g = nGb(new pGb(), a.d);
99337 j = QD($wnd.Math.ceil(h.b.a - d.b.a));
99338 b = j - (h.b.a - d.b.a);
99339 k = ugc(d).a;
99340 c2 = d;
99341 if (!k) {
99342 k = ugc(h).a;
99343 b = -b;
99344 c2 = h;
99345 }
99346 if (k) {
99347 c2.b.a -= b;
99348 k.n.a -= b;
99349 }
99350 AFb(DFb(CFb(EFb(BFb(new FFb(), $wnd.Math.max(0, j)), 1), g), a.c[d.a.d]));
99351 AFb(DFb(CFb(EFb(BFb(new FFb(), $wnd.Math.max(0, -j)), 1), g), a.c[h.a.d]));
99352 } else {
99353 m = 1;
99354 (JD(d.g, 145) && JD(h.g, 10) || JD(h.g, 145) && JD(d.g, 10)) && (m = 2);
99355 AFb(DFb(CFb(EFb(BFb(new FFb(), QD(f2)), m), a.c[d.a.d]), a.c[h.a.d]));
99356 }
99357 }
99358 }
99359 }
99360 function pEc(a, b, c2) {
99361 var d, e, f2, g, h, i3, j, k, l, m;
99362 if (c2) {
99363 d = -1;
99364 k = new Bib(b, 0);
99365 while (k.b < k.d.gc()) {
99366 h = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 10));
99367 l = a.c[h.c.p][h.p].a;
99368 if (l == null) {
99369 g = d + 1;
99370 f2 = new Bib(b, k.b);
99371 while (f2.b < f2.d.gc()) {
99372 m = tEc(a, (sCb(f2.b < f2.d.gc()), BD(f2.d.Xb(f2.c = f2.b++), 10))).a;
99373 if (m != null) {
99374 g = (uCb(m), m);
99375 break;
99376 }
99377 }
99378 l = (d + g) / 2;
99379 a.c[h.c.p][h.p].a = l;
99380 a.c[h.c.p][h.p].d = (uCb(l), l);
99381 a.c[h.c.p][h.p].b = 1;
99382 }
99383 d = (uCb(l), l);
99384 }
99385 } else {
99386 e = 0;
99387 for (j = new olb(b); j.a < j.c.c.length; ) {
99388 h = BD(mlb(j), 10);
99389 a.c[h.c.p][h.p].a != null && (e = $wnd.Math.max(e, Edb(a.c[h.c.p][h.p].a)));
99390 }
99391 e += 2;
99392 for (i3 = new olb(b); i3.a < i3.c.c.length; ) {
99393 h = BD(mlb(i3), 10);
99394 if (a.c[h.c.p][h.p].a == null) {
99395 l = Cub(a.i, 24) * lke * e - 1;
99396 a.c[h.c.p][h.p].a = l;
99397 a.c[h.c.p][h.p].d = l;
99398 a.c[h.c.p][h.p].b = 1;
99399 }
99400 }
99401 }
99402 }
99403 function CZd() {
99404 rEd(b5, new i$d());
99405 rEd(a5, new P$d());
99406 rEd(c5, new u_d());
99407 rEd(d5, new M_d());
99408 rEd(f5, new P_d());
99409 rEd(h5, new S_d());
99410 rEd(g5, new V_d());
99411 rEd(i5, new Y_d());
99412 rEd(k5, new GZd());
99413 rEd(l5, new JZd());
99414 rEd(m5, new MZd());
99415 rEd(n5, new PZd());
99416 rEd(o5, new SZd());
99417 rEd(p5, new VZd());
99418 rEd(q5, new YZd());
99419 rEd(t5, new _Zd());
99420 rEd(v52, new c$d());
99421 rEd(x6, new f$d());
99422 rEd(j5, new l$d());
99423 rEd(u5, new o$d());
99424 rEd(wI, new r$d());
99425 rEd(GC(SD, 1), new u$d());
99426 rEd(xI, new x$d());
99427 rEd(yI, new A$d());
99428 rEd($J, new D$d());
99429 rEd(O4, new G$d());
99430 rEd(BI, new J$d());
99431 rEd(T4, new M$d());
99432 rEd(U4, new S$d());
99433 rEd(O9, new V$d());
99434 rEd(E9, new Y$d());
99435 rEd(FI, new _$d());
99436 rEd(JI, new c_d());
99437 rEd(AI, new f_d());
99438 rEd(MI, new i_d());
99439 rEd(DK, new l_d());
99440 rEd(v8, new o_d());
99441 rEd(u8, new r_d());
99442 rEd(UI, new x_d());
99443 rEd(ZI, new A_d());
99444 rEd(X4, new D_d());
99445 rEd(V4, new G_d());
99446 }
99447 function hA(a, b, c2) {
99448 var d, e, f2, g, h, i3, j, k, l;
99449 !c2 && (c2 = TA(b.q.getTimezoneOffset()));
99450 e = (b.q.getTimezoneOffset() - c2.a) * 6e4;
99451 h = new gB(wbb(Cbb(b.q.getTime()), e));
99452 i3 = h;
99453 if (h.q.getTimezoneOffset() != b.q.getTimezoneOffset()) {
99454 e > 0 ? e -= 864e5 : e += 864e5;
99455 i3 = new gB(wbb(Cbb(b.q.getTime()), e));
99456 }
99457 k = new Vfb();
99458 j = a.a.length;
99459 for (f2 = 0; f2 < j; ) {
99460 d = bfb(a.a, f2);
99461 if (d >= 97 && d <= 122 || d >= 65 && d <= 90) {
99462 for (g = f2 + 1; g < j && bfb(a.a, g) == d; ++g)
99463 ;
99464 vA(k, d, g - f2, h, i3, c2);
99465 f2 = g;
99466 } else if (d == 39) {
99467 ++f2;
99468 if (f2 < j && bfb(a.a, f2) == 39) {
99469 k.a += "'";
99470 ++f2;
99471 continue;
99472 }
99473 l = false;
99474 while (!l) {
99475 g = f2;
99476 while (g < j && bfb(a.a, g) != 39) {
99477 ++g;
99478 }
99479 if (g >= j) {
99480 throw vbb(new Wdb("Missing trailing '"));
99481 }
99482 g + 1 < j && bfb(a.a, g + 1) == 39 ? ++g : l = true;
99483 Qfb(k, qfb(a.a, f2, g));
99484 f2 = g + 1;
99485 }
99486 } else {
99487 k.a += String.fromCharCode(d);
99488 ++f2;
99489 }
99490 }
99491 return k.a;
99492 }
99493 function MEc(a) {
99494 var b, c2, d, e, f2, g, h, i3;
99495 b = null;
99496 for (d = new olb(a); d.a < d.c.c.length; ) {
99497 c2 = BD(mlb(d), 233);
99498 Edb(REc(c2.g, c2.d[0]).a);
99499 c2.b = null;
99500 if (!!c2.e && c2.e.gc() > 0 && c2.c == 0) {
99501 !b && (b = new Rkb());
99502 b.c[b.c.length] = c2;
99503 }
99504 }
99505 if (b) {
99506 while (b.c.length != 0) {
99507 c2 = BD(Kkb(b, 0), 233);
99508 if (!!c2.b && c2.b.c.length > 0) {
99509 for (f2 = (!c2.b && (c2.b = new Rkb()), new olb(c2.b)); f2.a < f2.c.c.length; ) {
99510 e = BD(mlb(f2), 233);
99511 if (Gdb(REc(e.g, e.d[0]).a) == Gdb(REc(c2.g, c2.d[0]).a)) {
99512 if (Jkb(a, e, 0) > Jkb(a, c2, 0)) {
99513 return new vgd(e, c2);
99514 }
99515 } else if (Edb(REc(e.g, e.d[0]).a) > Edb(REc(c2.g, c2.d[0]).a)) {
99516 return new vgd(e, c2);
99517 }
99518 }
99519 }
99520 for (h = (!c2.e && (c2.e = new Rkb()), c2.e).Kc(); h.Ob(); ) {
99521 g = BD(h.Pb(), 233);
99522 i3 = (!g.b && (g.b = new Rkb()), g.b);
99523 wCb(0, i3.c.length);
99524 aCb(i3.c, 0, c2);
99525 g.c == i3.c.length && (b.c[b.c.length] = g, true);
99526 }
99527 }
99528 }
99529 return null;
99530 }
99531 function wlb(a, b) {
99532 var c2, d, e, f2, g, h, i3, j, k;
99533 if (a == null) {
99534 return Xhe;
99535 }
99536 i3 = b.a.zc(a, b);
99537 if (i3 != null) {
99538 return "[...]";
99539 }
99540 c2 = new xwb(She, "[", "]");
99541 for (e = a, f2 = 0, g = e.length; f2 < g; ++f2) {
99542 d = e[f2];
99543 if (d != null && (rb(d).i & 4) != 0) {
99544 if (Array.isArray(d) && (k = HC(d), !(k >= 14 && k <= 16))) {
99545 if (b.a._b(d)) {
99546 !c2.a ? c2.a = new Wfb(c2.d) : Qfb(c2.a, c2.b);
99547 Nfb(c2.a, "[...]");
99548 } else {
99549 h = CD(d);
99550 j = new Vqb(b);
99551 uwb(c2, wlb(h, j));
99552 }
99553 } else
99554 JD(d, 177) ? uwb(c2, Xlb(BD(d, 177))) : JD(d, 190) ? uwb(c2, Qlb(BD(d, 190))) : JD(d, 195) ? uwb(c2, Rlb(BD(d, 195))) : JD(d, 2012) ? uwb(c2, Wlb(BD(d, 2012))) : JD(d, 48) ? uwb(c2, Ulb(BD(d, 48))) : JD(d, 364) ? uwb(c2, Vlb(BD(d, 364))) : JD(d, 832) ? uwb(c2, Tlb(BD(d, 832))) : JD(d, 104) && uwb(c2, Slb(BD(d, 104)));
99555 } else {
99556 uwb(c2, d == null ? Xhe : fcb(d));
99557 }
99558 }
99559 return !c2.a ? c2.c : c2.e.length == 0 ? c2.a.a : c2.a.a + ("" + c2.e);
99560 }
99561 function xQb(a, b, c2, d) {
99562 var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
99563 h = itd(b, false, false);
99564 r = ofd(h);
99565 d && (r = w7c(r));
99566 t4 = Edb(ED(hkd(b, (CPb(), vPb))));
99567 q = (sCb(r.b != 0), BD(r.a.a.c, 8));
99568 l = BD(Ut(r, 1), 8);
99569 if (r.b > 2) {
99570 k = new Rkb();
99571 Gkb(k, new Jib(r, 1, r.b));
99572 f2 = sQb(k, t4 + a.a);
99573 s = new XOb(f2);
99574 tNb(s, b);
99575 c2.c[c2.c.length] = s;
99576 } else {
99577 d ? s = BD(Ohb(a.b, jtd(b)), 266) : s = BD(Ohb(a.b, ltd(b)), 266);
99578 }
99579 i3 = jtd(b);
99580 d && (i3 = ltd(b));
99581 g = zQb(q, i3);
99582 j = t4 + a.a;
99583 if (g.a) {
99584 j += $wnd.Math.abs(q.b - l.b);
99585 p = new f7c(l.a, (l.b + q.b) / 2);
99586 } else {
99587 j += $wnd.Math.abs(q.a - l.a);
99588 p = new f7c((l.a + q.a) / 2, l.b);
99589 }
99590 d ? Rhb(a.d, b, new ZOb(s, g, p, j)) : Rhb(a.c, b, new ZOb(s, g, p, j));
99591 Rhb(a.b, b, s);
99592 o2 = (!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n);
99593 for (n = new Fyd(o2); n.e != n.i.gc(); ) {
99594 m = BD(Dyd(n), 137);
99595 e = wQb(a, m, true, 0, 0);
99596 c2.c[c2.c.length] = e;
99597 }
99598 }
99599 function wPc(a) {
99600 var b, c2, d, e, f2, g, h, i3, j, k;
99601 j = new Rkb();
99602 h = new Rkb();
99603 for (g = new olb(a); g.a < g.c.c.length; ) {
99604 e = BD(mlb(g), 112);
99605 pOc(e, e.f.c.length);
99606 qOc(e, e.k.c.length);
99607 e.d == 0 && (j.c[j.c.length] = e, true);
99608 e.i == 0 && e.e.b == 0 && (h.c[h.c.length] = e, true);
99609 }
99610 d = -1;
99611 while (j.c.length != 0) {
99612 e = BD(Kkb(j, 0), 112);
99613 for (c2 = new olb(e.k); c2.a < c2.c.c.length; ) {
99614 b = BD(mlb(c2), 129);
99615 k = b.b;
99616 rOc(k, $wnd.Math.max(k.o, e.o + 1));
99617 d = $wnd.Math.max(d, k.o);
99618 pOc(k, k.d - 1);
99619 k.d == 0 && (j.c[j.c.length] = k, true);
99620 }
99621 }
99622 if (d > -1) {
99623 for (f2 = new olb(h); f2.a < f2.c.c.length; ) {
99624 e = BD(mlb(f2), 112);
99625 e.o = d;
99626 }
99627 while (h.c.length != 0) {
99628 e = BD(Kkb(h, 0), 112);
99629 for (c2 = new olb(e.f); c2.a < c2.c.c.length; ) {
99630 b = BD(mlb(c2), 129);
99631 i3 = b.a;
99632 if (i3.e.b > 0) {
99633 continue;
99634 }
99635 rOc(i3, $wnd.Math.min(i3.o, e.o - 1));
99636 qOc(i3, i3.i - 1);
99637 i3.i == 0 && (h.c[h.c.length] = i3, true);
99638 }
99639 }
99640 }
99641 }
99642 function QQd(a, b, c2) {
99643 var d, e, f2, g, h, i3, j;
99644 j = a.c;
99645 !b && (b = FQd);
99646 a.c = b;
99647 if ((a.Db & 4) != 0 && (a.Db & 1) == 0) {
99648 i3 = new nSd(a, 1, 2, j, a.c);
99649 !c2 ? c2 = i3 : c2.Ei(i3);
99650 }
99651 if (j != b) {
99652 if (JD(a.Cb, 284)) {
99653 if (a.Db >> 16 == -10) {
99654 c2 = BD(a.Cb, 284).nk(b, c2);
99655 } else if (a.Db >> 16 == -15) {
99656 !b && (b = (jGd(), YFd));
99657 !j && (j = (jGd(), YFd));
99658 if (a.Cb.nh()) {
99659 i3 = new pSd(a.Cb, 1, 13, j, b, HLd(QSd(BD(a.Cb, 59)), a), false);
99660 !c2 ? c2 = i3 : c2.Ei(i3);
99661 }
99662 }
99663 } else if (JD(a.Cb, 88)) {
99664 if (a.Db >> 16 == -23) {
99665 JD(b, 88) || (b = (jGd(), _Fd));
99666 JD(j, 88) || (j = (jGd(), _Fd));
99667 if (a.Cb.nh()) {
99668 i3 = new pSd(a.Cb, 1, 10, j, b, HLd(VKd(BD(a.Cb, 26)), a), false);
99669 !c2 ? c2 = i3 : c2.Ei(i3);
99670 }
99671 }
99672 } else if (JD(a.Cb, 444)) {
99673 h = BD(a.Cb, 836);
99674 g = (!h.b && (h.b = new RYd(new NYd())), h.b);
99675 for (f2 = (d = new nib(new eib(g.a).a), new ZYd(d)); f2.a.b; ) {
99676 e = BD(lib(f2.a).cd(), 87);
99677 c2 = QQd(e, MQd(e, h), c2);
99678 }
99679 }
99680 }
99681 return c2;
99682 }
99683 function O1b(a, b) {
99684 var c2, d, e, f2, g, h, i3, j, k, l, m;
99685 g = Ccb(DD(hkd(a, (Nyc(), fxc))));
99686 m = BD(hkd(a, Yxc), 21);
99687 i3 = false;
99688 j = false;
99689 l = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c));
99690 while (l.e != l.i.gc() && (!i3 || !j)) {
99691 f2 = BD(Dyd(l), 118);
99692 h = 0;
99693 for (e = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!f2.d && (f2.d = new y5d(B2, f2, 8, 5)), f2.d), (!f2.e && (f2.e = new y5d(B2, f2, 7, 4)), f2.e)]))); Qr(e); ) {
99694 d = BD(Rr(e), 79);
99695 k = g && Qld(d) && Ccb(DD(hkd(d, gxc)));
99696 c2 = ELd((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b), f2) ? a == Xod(atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))) : a == Xod(atd(BD(qud((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b), 0), 82)));
99697 if (k || c2) {
99698 ++h;
99699 if (h > 1) {
99700 break;
99701 }
99702 }
99703 }
99704 h > 0 ? i3 = true : m.Hc((rcd(), ncd)) && (!f2.n && (f2.n = new cUd(D2, f2, 1, 7)), f2.n).i > 0 && (i3 = true);
99705 h > 1 && (j = true);
99706 }
99707 i3 && b.Fc((Orc(), Hrc));
99708 j && b.Fc((Orc(), Irc));
99709 }
99710 function zfd(a) {
99711 var b, c2, d, e, f2, g, h, i3, j, k, l, m;
99712 m = BD(hkd(a, (Y9c(), Y8c)), 21);
99713 if (m.dc()) {
99714 return null;
99715 }
99716 h = 0;
99717 g = 0;
99718 if (m.Hc((tdd(), rdd))) {
99719 k = BD(hkd(a, t9c), 98);
99720 d = 2;
99721 c2 = 2;
99722 e = 2;
99723 f2 = 2;
99724 b = !Xod(a) ? BD(hkd(a, z8c), 103) : BD(hkd(Xod(a), z8c), 103);
99725 for (j = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); j.e != j.i.gc(); ) {
99726 i3 = BD(Dyd(j), 118);
99727 l = BD(hkd(i3, A9c), 61);
99728 if (l == (Ucd(), Scd)) {
99729 l = lfd(i3, b);
99730 jkd(i3, A9c, l);
99731 }
99732 if (k == (dcd(), $bd)) {
99733 switch (l.g) {
99734 case 1:
99735 d = $wnd.Math.max(d, i3.i + i3.g);
99736 break;
99737 case 2:
99738 c2 = $wnd.Math.max(c2, i3.j + i3.f);
99739 break;
99740 case 3:
99741 e = $wnd.Math.max(e, i3.i + i3.g);
99742 break;
99743 case 4:
99744 f2 = $wnd.Math.max(f2, i3.j + i3.f);
99745 }
99746 } else {
99747 switch (l.g) {
99748 case 1:
99749 d += i3.g + 2;
99750 break;
99751 case 2:
99752 c2 += i3.f + 2;
99753 break;
99754 case 3:
99755 e += i3.g + 2;
99756 break;
99757 case 4:
99758 f2 += i3.f + 2;
99759 }
99760 }
99761 }
99762 h = $wnd.Math.max(d, e);
99763 g = $wnd.Math.max(c2, f2);
99764 }
99765 return Afd(a, h, g, true, true);
99766 }
99767 function lnc(a, b, c2, d, e) {
99768 var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
99769 s = BD(GAb(VAb(JAb(new YAb(null, new Kub(b.d, 16)), new pnc(c2)), new rnc(c2)), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)]))), 15);
99770 l = Ohe;
99771 k = Rie;
99772 for (i3 = new olb(b.b.j); i3.a < i3.c.c.length; ) {
99773 h = BD(mlb(i3), 11);
99774 if (h.j == c2) {
99775 l = $wnd.Math.min(l, h.p);
99776 k = $wnd.Math.max(k, h.p);
99777 }
99778 }
99779 if (l == Ohe) {
99780 for (g = 0; g < s.gc(); g++) {
99781 ojc(BD(s.Xb(g), 101), c2, g);
99782 }
99783 } else {
99784 t4 = KC(WD, oje, 25, e.length, 15, 1);
99785 Elb(t4, t4.length);
99786 for (r = s.Kc(); r.Ob(); ) {
99787 q = BD(r.Pb(), 101);
99788 f2 = BD(Ohb(a.b, q), 177);
99789 j = 0;
99790 for (p = l; p <= k; p++) {
99791 f2[p] && (j = $wnd.Math.max(j, d[p]));
99792 }
99793 if (q.i) {
99794 n = q.i.c;
99795 u2 = new Tqb();
99796 for (m = 0; m < e.length; m++) {
99797 e[n][m] && Qqb(u2, meb(t4[m]));
99798 }
99799 while (Rqb(u2, meb(j))) {
99800 ++j;
99801 }
99802 }
99803 ojc(q, c2, j);
99804 for (o2 = l; o2 <= k; o2++) {
99805 f2[o2] && (d[o2] = j + 1);
99806 }
99807 !!q.i && (t4[q.i.c] = j);
99808 }
99809 }
99810 }
99811 function YJc(a, b) {
99812 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
99813 e = null;
99814 for (d = new olb(b.a); d.a < d.c.c.length; ) {
99815 c2 = BD(mlb(d), 10);
99816 bKc(c2) ? f2 = (h = nGb(oGb(new pGb(), c2), a.f), i3 = nGb(oGb(new pGb(), c2), a.f), j = new rKc(c2, true, h, i3), k = c2.o.b, l = (Izc(), (!c2.q ? (mmb(), mmb(), kmb) : c2.q)._b((Nyc(), Cxc)) ? m = BD(vNb(c2, Cxc), 197) : m = BD(vNb(Q_b(c2), Dxc), 197), m), n = 1e4, l == Ezc && (n = 1), o2 = AFb(DFb(CFb(BFb(EFb(new FFb(), n), QD($wnd.Math.ceil(k))), h), i3)), l == Fzc && Qqb(a.d, o2), ZJc(a, Su(V_b(c2, (Ucd(), Tcd))), j), ZJc(a, V_b(c2, zcd), j), j) : f2 = (p = nGb(oGb(new pGb(), c2), a.f), MAb(JAb(new YAb(null, new Kub(c2.j, 16)), new EKc()), new GKc(a, p)), new rKc(c2, false, p, p));
99817 a.i[c2.p] = f2;
99818 if (e) {
99819 g = e.c.d.a + jBc(a.n, e.c, c2) + c2.d.d;
99820 e.b || (g += e.c.o.b);
99821 AFb(DFb(CFb(EFb(BFb(new FFb(), QD($wnd.Math.ceil(g))), 0), e.d), f2.a));
99822 }
99823 e = f2;
99824 }
99825 }
99826 function s9b(a, b) {
99827 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
99828 Odd(b, "Label dummy insertions", 1);
99829 l = new Rkb();
99830 g = Edb(ED(vNb(a, (Nyc(), nyc))));
99831 j = Edb(ED(vNb(a, ryc)));
99832 k = BD(vNb(a, Lwc), 103);
99833 for (n = new olb(a.a); n.a < n.c.c.length; ) {
99834 m = BD(mlb(n), 10);
99835 for (f2 = new Sr(ur(U_b(m).a.Kc(), new Sq())); Qr(f2); ) {
99836 e = BD(Rr(f2), 17);
99837 if (e.c.i != e.d.i && Lq(e.b, p9b)) {
99838 p = t9b(e);
99839 o2 = Pu(e.b.c.length);
99840 c2 = r9b(a, e, p, o2);
99841 l.c[l.c.length] = c2;
99842 d = c2.o;
99843 h = new Bib(e.b, 0);
99844 while (h.b < h.d.gc()) {
99845 i3 = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 70));
99846 if (PD(vNb(i3, Qwc)) === PD((qad(), nad))) {
99847 if (k == (ead(), dad) || k == _9c) {
99848 d.a += i3.o.a + j;
99849 d.b = $wnd.Math.max(d.b, i3.o.b);
99850 } else {
99851 d.a = $wnd.Math.max(d.a, i3.o.a);
99852 d.b += i3.o.b + j;
99853 }
99854 o2.c[o2.c.length] = i3;
99855 uib(h);
99856 }
99857 }
99858 if (k == (ead(), dad) || k == _9c) {
99859 d.a -= j;
99860 d.b += g + p;
99861 } else {
99862 d.b += g - j + p;
99863 }
99864 }
99865 }
99866 }
99867 Gkb(a.a, l);
99868 Qdd(b);
99869 }
99870 function eYb(a, b, c2, d) {
99871 var e, f2, g, h, i3, j, k, l, m, n;
99872 f2 = new qYb(b);
99873 l = _Xb(a, b, f2);
99874 n = $wnd.Math.max(Edb(ED(vNb(b, (Nyc(), Zwc)))), 1);
99875 for (k = new olb(l.a); k.a < k.c.c.length; ) {
99876 j = BD(mlb(k), 46);
99877 i3 = dYb(BD(j.a, 8), BD(j.b, 8), n);
99878 o = true;
99879 o = o & iYb(c2, new f7c(i3.c, i3.d));
99880 o = o & iYb(c2, O6c(new f7c(i3.c, i3.d), i3.b, 0));
99881 o = o & iYb(c2, O6c(new f7c(i3.c, i3.d), 0, i3.a));
99882 o & iYb(c2, O6c(new f7c(i3.c, i3.d), i3.b, i3.a));
99883 }
99884 m = f2.d;
99885 h = dYb(BD(l.b.a, 8), BD(l.b.b, 8), n);
99886 if (m == (Ucd(), Tcd) || m == zcd) {
99887 d.c[m.g] = $wnd.Math.min(d.c[m.g], h.d);
99888 d.b[m.g] = $wnd.Math.max(d.b[m.g], h.d + h.a);
99889 } else {
99890 d.c[m.g] = $wnd.Math.min(d.c[m.g], h.c);
99891 d.b[m.g] = $wnd.Math.max(d.b[m.g], h.c + h.b);
99892 }
99893 e = Qje;
99894 g = f2.c.i.d;
99895 switch (m.g) {
99896 case 4:
99897 e = g.c;
99898 break;
99899 case 2:
99900 e = g.b;
99901 break;
99902 case 1:
99903 e = g.a;
99904 break;
99905 case 3:
99906 e = g.d;
99907 }
99908 d.a[m.g] = $wnd.Math.max(d.a[m.g], e);
99909 return f2;
99910 }
99911 function eKd(b) {
99912 var c2, d, e, f2;
99913 d = b.D != null ? b.D : b.B;
99914 c2 = hfb(d, wfb(91));
99915 if (c2 != -1) {
99916 e = d.substr(0, c2);
99917 f2 = new Hfb();
99918 do
99919 f2.a += "[";
99920 while ((c2 = gfb(d, 91, ++c2)) != -1);
99921 if (dfb(e, Khe))
99922 f2.a += "Z";
99923 else if (dfb(e, Eve))
99924 f2.a += "B";
99925 else if (dfb(e, Fve))
99926 f2.a += "C";
99927 else if (dfb(e, Gve))
99928 f2.a += "D";
99929 else if (dfb(e, Hve))
99930 f2.a += "F";
99931 else if (dfb(e, Ive))
99932 f2.a += "I";
99933 else if (dfb(e, Jve))
99934 f2.a += "J";
99935 else if (dfb(e, Kve))
99936 f2.a += "S";
99937 else {
99938 f2.a += "L";
99939 f2.a += "" + e;
99940 f2.a += ";";
99941 }
99942 try {
99943 return null;
99944 } catch (a) {
99945 a = ubb(a);
99946 if (!JD(a, 60))
99947 throw vbb(a);
99948 }
99949 } else if (hfb(d, wfb(46)) == -1) {
99950 if (dfb(d, Khe))
99951 return sbb;
99952 else if (dfb(d, Eve))
99953 return SD;
99954 else if (dfb(d, Fve))
99955 return TD;
99956 else if (dfb(d, Gve))
99957 return UD;
99958 else if (dfb(d, Hve))
99959 return VD;
99960 else if (dfb(d, Ive))
99961 return WD;
99962 else if (dfb(d, Jve))
99963 return XD;
99964 else if (dfb(d, Kve))
99965 return rbb;
99966 }
99967 return null;
99968 }
99969 function $1b(a, b, c2) {
99970 var d, e, f2, g, h, i3, j, k;
99971 j = new b0b(c2);
99972 tNb(j, b);
99973 yNb(j, (wtc(), $sc), b);
99974 j.o.a = b.g;
99975 j.o.b = b.f;
99976 j.n.a = b.i;
99977 j.n.b = b.j;
99978 Ekb(c2.a, j);
99979 Rhb(a.a, b, j);
99980 ((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i != 0 || Ccb(DD(hkd(b, (Nyc(), fxc))))) && yNb(j, wsc, (Bcb(), true));
99981 i3 = BD(vNb(c2, Ksc), 21);
99982 k = BD(vNb(j, (Nyc(), Vxc)), 98);
99983 k == (dcd(), ccd) ? yNb(j, Vxc, bcd) : k != bcd && i3.Fc((Orc(), Krc));
99984 d = BD(vNb(c2, Lwc), 103);
99985 for (h = new Fyd((!b.c && (b.c = new cUd(F2, b, 9, 9)), b.c)); h.e != h.i.gc(); ) {
99986 g = BD(Dyd(h), 118);
99987 Ccb(DD(hkd(g, Jxc))) || _1b(a, g, j, i3, d, k);
99988 }
99989 for (f2 = new Fyd((!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n)); f2.e != f2.i.gc(); ) {
99990 e = BD(Dyd(f2), 137);
99991 !Ccb(DD(hkd(e, Jxc))) && !!e.a && Ekb(j.b, Z1b(e));
99992 }
99993 Ccb(DD(vNb(j, pwc))) && i3.Fc((Orc(), Frc));
99994 if (Ccb(DD(vNb(j, exc)))) {
99995 i3.Fc((Orc(), Jrc));
99996 i3.Fc(Irc);
99997 yNb(j, Vxc, bcd);
99998 }
99999 return j;
100000 }
100001 function F4b(a, b) {
100002 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3;
100003 h = BD(Ohb(b.c, a), 459);
100004 s = b.a.c;
100005 i3 = b.a.c + b.a.b;
100006 C = h.f;
100007 D3 = h.a;
100008 g = C < D3;
100009 p = new f7c(s, C);
100010 t4 = new f7c(i3, D3);
100011 e = (s + i3) / 2;
100012 q = new f7c(e, C);
100013 u2 = new f7c(e, D3);
100014 f2 = G4b(a, C, D3);
100015 w2 = A0b(b.B);
100016 A = new f7c(e, f2);
100017 B = A0b(b.D);
100018 c2 = j6c(OC(GC(m1, 1), nie, 8, 0, [w2, A, B]));
100019 n = false;
100020 r = b.B.i;
100021 if (!!r && !!r.c && h.d) {
100022 j = g && r.p < r.c.a.c.length - 1 || !g && r.p > 0;
100023 if (j) {
100024 if (j) {
100025 m = r.p;
100026 g ? ++m : --m;
100027 l = BD(Ikb(r.c.a, m), 10);
100028 d = I4b(l);
100029 n = !(s6c(d, w2, c2[0]) || n6c(d, w2, c2[0]));
100030 }
100031 } else {
100032 n = true;
100033 }
100034 }
100035 o2 = false;
100036 v = b.D.i;
100037 if (!!v && !!v.c && h.e) {
100038 k = g && v.p > 0 || !g && v.p < v.c.a.c.length - 1;
100039 if (k) {
100040 m = v.p;
100041 g ? --m : ++m;
100042 l = BD(Ikb(v.c.a, m), 10);
100043 d = I4b(l);
100044 o2 = !(s6c(d, c2[0], B) || n6c(d, c2[0], B));
100045 } else {
100046 o2 = true;
100047 }
100048 }
100049 n && o2 && Dsb(a.a, A);
100050 n || n7c(a.a, OC(GC(m1, 1), nie, 8, 0, [p, q]));
100051 o2 || n7c(a.a, OC(GC(m1, 1), nie, 8, 0, [u2, t4]));
100052 }
100053 function yfd(a, b) {
100054 var c2, d, e, f2, g, h, i3, j;
100055 if (JD(a.Ug(), 160)) {
100056 yfd(BD(a.Ug(), 160), b);
100057 b.a += " > ";
100058 } else {
100059 b.a += "Root ";
100060 }
100061 c2 = a.Tg().zb;
100062 dfb(c2.substr(0, 3), "Elk") ? Qfb(b, c2.substr(3)) : (b.a += "" + c2, b);
100063 e = a.zg();
100064 if (e) {
100065 Qfb((b.a += " ", b), e);
100066 return;
100067 }
100068 if (JD(a, 354)) {
100069 j = BD(a, 137).a;
100070 if (j) {
100071 Qfb((b.a += " ", b), j);
100072 return;
100073 }
100074 }
100075 for (g = new Fyd(a.Ag()); g.e != g.i.gc(); ) {
100076 f2 = BD(Dyd(g), 137);
100077 j = f2.a;
100078 if (j) {
100079 Qfb((b.a += " ", b), j);
100080 return;
100081 }
100082 }
100083 if (JD(a, 352)) {
100084 d = BD(a, 79);
100085 !d.b && (d.b = new y5d(z2, d, 4, 7));
100086 if (d.b.i != 0 && (!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c.i != 0)) {
100087 b.a += " (";
100088 h = new Oyd((!d.b && (d.b = new y5d(z2, d, 4, 7)), d.b));
100089 while (h.e != h.i.gc()) {
100090 h.e > 0 && (b.a += She, b);
100091 yfd(BD(Dyd(h), 160), b);
100092 }
100093 b.a += gne;
100094 i3 = new Oyd((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c));
100095 while (i3.e != i3.i.gc()) {
100096 i3.e > 0 && (b.a += She, b);
100097 yfd(BD(Dyd(i3), 160), b);
100098 }
100099 b.a += ")";
100100 }
100101 }
100102 }
100103 function y2b(a, b, c2) {
100104 var d, e, f2, g, h, i3, j, k, l, m, n;
100105 f2 = BD(vNb(a, (wtc(), $sc)), 79);
100106 if (!f2) {
100107 return;
100108 }
100109 d = a.a;
100110 e = new g7c(c2);
100111 P6c(e, C2b(a));
100112 if (f_b(a.d.i, a.c.i)) {
100113 m = a.c;
100114 l = l7c(OC(GC(m1, 1), nie, 8, 0, [m.n, m.a]));
100115 c7c(l, c2);
100116 } else {
100117 l = A0b(a.c);
100118 }
100119 Gsb(d, l, d.a, d.a.a);
100120 n = A0b(a.d);
100121 vNb(a, utc) != null && P6c(n, BD(vNb(a, utc), 8));
100122 Gsb(d, n, d.c.b, d.c);
100123 q7c(d, e);
100124 g = itd(f2, true, true);
100125 kmd(g, BD(qud((!f2.b && (f2.b = new y5d(z2, f2, 4, 7)), f2.b), 0), 82));
100126 lmd(g, BD(qud((!f2.c && (f2.c = new y5d(z2, f2, 5, 8)), f2.c), 0), 82));
100127 ifd(d, g);
100128 for (k = new olb(a.b); k.a < k.c.c.length; ) {
100129 j = BD(mlb(k), 70);
100130 h = BD(vNb(j, $sc), 137);
100131 cld(h, j.o.a);
100132 ald(h, j.o.b);
100133 bld(h, j.n.a + e.a, j.n.b + e.b);
100134 jkd(h, (I9b(), H9b), DD(vNb(j, H9b)));
100135 }
100136 i3 = BD(vNb(a, (Nyc(), jxc)), 74);
100137 if (i3) {
100138 q7c(i3, e);
100139 jkd(f2, jxc, i3);
100140 } else {
100141 jkd(f2, jxc, null);
100142 }
100143 b == (Aad(), yad) ? jkd(f2, Swc, yad) : jkd(f2, Swc, null);
100144 }
100145 function mJc(a, b, c2, d) {
100146 var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s;
100147 n = b.c.length;
100148 m = 0;
100149 for (l = new olb(a.b); l.a < l.c.c.length; ) {
100150 k = BD(mlb(l), 29);
100151 r = k.a;
100152 if (r.c.length == 0) {
100153 continue;
100154 }
100155 q = new olb(r);
100156 j = 0;
100157 s = null;
100158 e = BD(mlb(q), 10);
100159 f2 = null;
100160 while (e) {
100161 f2 = BD(Ikb(b, e.p), 257);
100162 if (f2.c >= 0) {
100163 i3 = null;
100164 h = new Bib(k.a, j + 1);
100165 while (h.b < h.d.gc()) {
100166 g = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 10));
100167 i3 = BD(Ikb(b, g.p), 257);
100168 if (i3.d == f2.d && i3.c < f2.c) {
100169 break;
100170 } else {
100171 i3 = null;
100172 }
100173 }
100174 if (i3) {
100175 if (s) {
100176 Nkb(d, e.p, meb(BD(Ikb(d, e.p), 19).a - 1));
100177 BD(Ikb(c2, s.p), 15).Mc(f2);
100178 }
100179 f2 = yJc(f2, e, n++);
100180 b.c[b.c.length] = f2;
100181 Ekb(c2, new Rkb());
100182 if (s) {
100183 BD(Ikb(c2, s.p), 15).Fc(f2);
100184 Ekb(d, meb(1));
100185 } else {
100186 Ekb(d, meb(0));
100187 }
100188 }
100189 }
100190 o2 = null;
100191 if (q.a < q.c.c.length) {
100192 o2 = BD(mlb(q), 10);
100193 p = BD(Ikb(b, o2.p), 257);
100194 BD(Ikb(c2, e.p), 15).Fc(p);
100195 Nkb(d, o2.p, meb(BD(Ikb(d, o2.p), 19).a + 1));
100196 }
100197 f2.d = m;
100198 f2.c = j++;
100199 s = e;
100200 e = o2;
100201 }
100202 ++m;
100203 }
100204 }
100205 function u6c(a, b, c2, d) {
100206 var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
100207 i3 = a;
100208 k = c7c(new f7c(b.a, b.b), a);
100209 j = c2;
100210 l = c7c(new f7c(d.a, d.b), c2);
100211 m = i3.a;
100212 q = i3.b;
100213 o2 = j.a;
100214 s = j.b;
100215 n = k.a;
100216 r = k.b;
100217 p = l.a;
100218 t4 = l.b;
100219 e = p * r - n * t4;
100220 Iy();
100221 My(Jqe);
100222 if ($wnd.Math.abs(0 - e) <= Jqe || 0 == e || isNaN(0) && isNaN(e)) {
100223 return false;
100224 }
100225 g = 1 / e * ((m - o2) * r - (q - s) * n);
100226 h = 1 / e * -(-(m - o2) * t4 + (q - s) * p);
100227 f2 = (My(Jqe), ($wnd.Math.abs(0 - g) <= Jqe || 0 == g || isNaN(0) && isNaN(g) ? 0 : 0 < g ? -1 : 0 > g ? 1 : Ny(isNaN(0), isNaN(g))) < 0 && (My(Jqe), ($wnd.Math.abs(g - 1) <= Jqe || g == 1 || isNaN(g) && isNaN(1) ? 0 : g < 1 ? -1 : g > 1 ? 1 : Ny(isNaN(g), isNaN(1))) < 0) && (My(Jqe), ($wnd.Math.abs(0 - h) <= Jqe || 0 == h || isNaN(0) && isNaN(h) ? 0 : 0 < h ? -1 : 0 > h ? 1 : Ny(isNaN(0), isNaN(h))) < 0) && (My(Jqe), ($wnd.Math.abs(h - 1) <= Jqe || h == 1 || isNaN(h) && isNaN(1) ? 0 : h < 1 ? -1 : h > 1 ? 1 : Ny(isNaN(h), isNaN(1))) < 0));
100228 return f2;
100229 }
100230 function z6d(a) {
100231 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
100232 for (l = new usb(new nsb(a)); l.b != l.c.a.d; ) {
100233 k = tsb(l);
100234 h = BD(k.d, 56);
100235 b = BD(k.e, 56);
100236 g = h.Tg();
100237 for (p = 0, u2 = (g.i == null && TKd(g), g.i).length; p < u2; ++p) {
100238 j = (f2 = (g.i == null && TKd(g), g.i), p >= 0 && p < f2.length ? f2[p] : null);
100239 if (j.Ij() && !j.Jj()) {
100240 if (JD(j, 99)) {
100241 i3 = BD(j, 18);
100242 (i3.Bb & ote) == 0 && (w2 = zUd(i3), !(!!w2 && (w2.Bb & ote) != 0)) && y6d(a, i3, h, b);
100243 } else {
100244 Q6d();
100245 if (BD(j, 66).Oj()) {
100246 c2 = (v = j, BD(!v ? null : BD(b, 49).xh(v), 153));
100247 if (c2) {
100248 n = BD(h.ah(j), 153);
100249 d = c2.gc();
100250 for (q = 0, o2 = n.gc(); q < o2; ++q) {
100251 m = n.il(q);
100252 if (JD(m, 99)) {
100253 t4 = n.jl(q);
100254 e = Wrb(a, t4);
100255 if (e == null && t4 != null) {
100256 s = BD(m, 18);
100257 if (!a.b || (s.Bb & ote) != 0 || !!zUd(s)) {
100258 continue;
100259 }
100260 e = t4;
100261 }
100262 if (!c2.dl(m, e)) {
100263 for (r = 0; r < d; ++r) {
100264 if (c2.il(r) == m && PD(c2.jl(r)) === PD(e)) {
100265 c2.ii(c2.gc() - 1, r);
100266 --d;
100267 break;
100268 }
100269 }
100270 }
100271 } else {
100272 c2.dl(n.il(q), n.jl(q));
100273 }
100274 }
100275 }
100276 }
100277 }
100278 }
100279 }
100280 }
100281 }
100282 function CZc(a, b, c2, d, e, f2, g) {
100283 var h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
100284 r = xZc(b, c2, a.g);
100285 e.n && e.n && !!f2 && Tdd(e, i6d(f2), (pgd(), mgd));
100286 if (a.b) {
100287 for (q = 0; q < r.c.length; q++) {
100288 l = (tCb(q, r.c.length), BD(r.c[q], 200));
100289 if (q != 0) {
100290 n = (tCb(q - 1, r.c.length), BD(r.c[q - 1], 200));
100291 w$c(l, n.f + n.b + a.g);
100292 }
100293 tZc(q, r, c2, a.g);
100294 AZc(a, l);
100295 e.n && !!f2 && Tdd(e, i6d(f2), (pgd(), mgd));
100296 }
100297 } else {
100298 for (p = new olb(r); p.a < p.c.c.length; ) {
100299 o2 = BD(mlb(p), 200);
100300 for (k = new olb(o2.a); k.a < k.c.c.length; ) {
100301 j = BD(mlb(k), 187);
100302 s = new b$c(j.s, j.t, a.g);
100303 WZc(s, j);
100304 Ekb(o2.d, s);
100305 }
100306 }
100307 }
100308 BZc(a, r);
100309 e.n && e.n && !!f2 && Tdd(e, i6d(f2), (pgd(), mgd));
100310 t4 = $wnd.Math.max(a.d, d.a - (g.b + g.c));
100311 m = $wnd.Math.max(a.c, d.b - (g.d + g.a));
100312 h = m - a.c;
100313 if (a.e && a.f) {
100314 i3 = t4 / m;
100315 i3 < a.a ? t4 = m * a.a : h += t4 / a.a - m;
100316 }
100317 a.e && zZc(r, t4, h);
100318 e.n && e.n && !!f2 && Tdd(e, i6d(f2), (pgd(), mgd));
100319 return new d$c(a.a, t4, a.c + h, (k$c(), j$c));
100320 }
100321 function UJc(a) {
100322 var b, c2, d, e, f2, g, h, i3, j, k, l;
100323 a.j = KC(WD, oje, 25, a.g, 15, 1);
100324 a.o = new Rkb();
100325 MAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new aLc()), new cLc(a));
100326 a.a = KC(sbb, dle, 25, a.b, 16, 1);
100327 TAb(new YAb(null, new Kub(a.e.b, 16)), new rLc(a));
100328 d = (l = new Rkb(), MAb(JAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new hLc()), new jLc(a)), new lLc(a, l)), l);
100329 for (i3 = new olb(d); i3.a < i3.c.c.length; ) {
100330 h = BD(mlb(i3), 508);
100331 if (h.c.length <= 1) {
100332 continue;
100333 }
100334 if (h.c.length == 2) {
100335 uKc(h);
100336 bKc((tCb(0, h.c.length), BD(h.c[0], 17)).d.i) || Ekb(a.o, h);
100337 continue;
100338 }
100339 if (tKc(h) || sKc(h, new fLc())) {
100340 continue;
100341 }
100342 j = new olb(h);
100343 e = null;
100344 while (j.a < j.c.c.length) {
100345 b = BD(mlb(j), 17);
100346 c2 = a.c[b.p];
100347 !e || j.a >= j.c.c.length ? k = JJc((j0b(), h0b), g0b) : k = JJc((j0b(), g0b), g0b);
100348 k *= 2;
100349 f2 = c2.a.g;
100350 c2.a.g = $wnd.Math.max(f2, f2 + (k - f2));
100351 g = c2.b.g;
100352 c2.b.g = $wnd.Math.max(g, g + (k - g));
100353 e = b;
100354 }
100355 }
100356 }
100357 function VNc(a, b, c2, d, e) {
100358 var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v;
100359 v = Hx(a);
100360 k = new Rkb();
100361 h = a.c.length;
100362 l = h - 1;
100363 m = h + 1;
100364 while (v.a.c != 0) {
100365 while (c2.b != 0) {
100366 t4 = (sCb(c2.b != 0), BD(Nsb(c2, c2.a.a), 112));
100367 Jwb(v.a, t4) != null;
100368 t4.g = l--;
100369 YNc(t4, b, c2, d);
100370 }
100371 while (b.b != 0) {
100372 u2 = (sCb(b.b != 0), BD(Nsb(b, b.a.a), 112));
100373 Jwb(v.a, u2) != null;
100374 u2.g = m++;
100375 YNc(u2, b, c2, d);
100376 }
100377 j = Rie;
100378 for (r = (g = new Ywb(new cxb(new Gjb(v.a).a).b), new Njb(g)); sib(r.a.a); ) {
100379 q = (f2 = Wwb(r.a), BD(f2.cd(), 112));
100380 if (!d && q.b > 0 && q.a <= 0) {
100381 k.c = KC(SI, Uhe, 1, 0, 5, 1);
100382 k.c[k.c.length] = q;
100383 break;
100384 }
100385 p = q.i - q.d;
100386 if (p >= j) {
100387 if (p > j) {
100388 k.c = KC(SI, Uhe, 1, 0, 5, 1);
100389 j = p;
100390 }
100391 k.c[k.c.length] = q;
100392 }
100393 }
100394 if (k.c.length != 0) {
100395 i3 = BD(Ikb(k, Bub(e, k.c.length)), 112);
100396 Jwb(v.a, i3) != null;
100397 i3.g = m++;
100398 YNc(i3, b, c2, d);
100399 k.c = KC(SI, Uhe, 1, 0, 5, 1);
100400 }
100401 }
100402 s = a.c.length + 1;
100403 for (o2 = new olb(a); o2.a < o2.c.c.length; ) {
100404 n = BD(mlb(o2), 112);
100405 n.g < h && (n.g = n.g + s);
100406 }
100407 }
100408 function SDb(a, b) {
100409 var c2;
100410 if (a.e) {
100411 throw vbb(new Zdb((fdb(TM), Jke + TM.k + Kke)));
100412 }
100413 if (!lDb(a.a, b)) {
100414 throw vbb(new hz(Lke + b + Mke));
100415 }
100416 if (b == a.d) {
100417 return a;
100418 }
100419 c2 = a.d;
100420 a.d = b;
100421 switch (c2.g) {
100422 case 0:
100423 switch (b.g) {
100424 case 2:
100425 PDb(a);
100426 break;
100427 case 1:
100428 XDb(a);
100429 PDb(a);
100430 break;
100431 case 4:
100432 bEb(a);
100433 PDb(a);
100434 break;
100435 case 3:
100436 bEb(a);
100437 XDb(a);
100438 PDb(a);
100439 }
100440 break;
100441 case 2:
100442 switch (b.g) {
100443 case 1:
100444 XDb(a);
100445 YDb(a);
100446 break;
100447 case 4:
100448 bEb(a);
100449 PDb(a);
100450 break;
100451 case 3:
100452 bEb(a);
100453 XDb(a);
100454 PDb(a);
100455 }
100456 break;
100457 case 1:
100458 switch (b.g) {
100459 case 2:
100460 XDb(a);
100461 YDb(a);
100462 break;
100463 case 4:
100464 XDb(a);
100465 bEb(a);
100466 PDb(a);
100467 break;
100468 case 3:
100469 XDb(a);
100470 bEb(a);
100471 XDb(a);
100472 PDb(a);
100473 }
100474 break;
100475 case 4:
100476 switch (b.g) {
100477 case 2:
100478 bEb(a);
100479 PDb(a);
100480 break;
100481 case 1:
100482 bEb(a);
100483 XDb(a);
100484 PDb(a);
100485 break;
100486 case 3:
100487 XDb(a);
100488 YDb(a);
100489 }
100490 break;
100491 case 3:
100492 switch (b.g) {
100493 case 2:
100494 XDb(a);
100495 bEb(a);
100496 PDb(a);
100497 break;
100498 case 1:
100499 XDb(a);
100500 bEb(a);
100501 XDb(a);
100502 PDb(a);
100503 break;
100504 case 4:
100505 XDb(a);
100506 YDb(a);
100507 }
100508 }
100509 return a;
100510 }
100511 function tVb(a, b) {
100512 var c2;
100513 if (a.d) {
100514 throw vbb(new Zdb((fdb(LP), Jke + LP.k + Kke)));
100515 }
100516 if (!cVb(a.a, b)) {
100517 throw vbb(new hz(Lke + b + Mke));
100518 }
100519 if (b == a.c) {
100520 return a;
100521 }
100522 c2 = a.c;
100523 a.c = b;
100524 switch (c2.g) {
100525 case 0:
100526 switch (b.g) {
100527 case 2:
100528 qVb(a);
100529 break;
100530 case 1:
100531 xVb(a);
100532 qVb(a);
100533 break;
100534 case 4:
100535 BVb(a);
100536 qVb(a);
100537 break;
100538 case 3:
100539 BVb(a);
100540 xVb(a);
100541 qVb(a);
100542 }
100543 break;
100544 case 2:
100545 switch (b.g) {
100546 case 1:
100547 xVb(a);
100548 yVb(a);
100549 break;
100550 case 4:
100551 BVb(a);
100552 qVb(a);
100553 break;
100554 case 3:
100555 BVb(a);
100556 xVb(a);
100557 qVb(a);
100558 }
100559 break;
100560 case 1:
100561 switch (b.g) {
100562 case 2:
100563 xVb(a);
100564 yVb(a);
100565 break;
100566 case 4:
100567 xVb(a);
100568 BVb(a);
100569 qVb(a);
100570 break;
100571 case 3:
100572 xVb(a);
100573 BVb(a);
100574 xVb(a);
100575 qVb(a);
100576 }
100577 break;
100578 case 4:
100579 switch (b.g) {
100580 case 2:
100581 BVb(a);
100582 qVb(a);
100583 break;
100584 case 1:
100585 BVb(a);
100586 xVb(a);
100587 qVb(a);
100588 break;
100589 case 3:
100590 xVb(a);
100591 yVb(a);
100592 }
100593 break;
100594 case 3:
100595 switch (b.g) {
100596 case 2:
100597 xVb(a);
100598 BVb(a);
100599 qVb(a);
100600 break;
100601 case 1:
100602 xVb(a);
100603 BVb(a);
100604 xVb(a);
100605 qVb(a);
100606 break;
100607 case 4:
100608 xVb(a);
100609 yVb(a);
100610 }
100611 }
100612 return a;
100613 }
100614 function UQb(a, b, c2) {
100615 var d, e, f2, g, h, i3, j, k;
100616 for (i3 = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); i3.e != i3.i.gc(); ) {
100617 h = BD(Dyd(i3), 33);
100618 for (e = new Sr(ur(_sd(h).a.Kc(), new Sq())); Qr(e); ) {
100619 d = BD(Rr(e), 79);
100620 !d.b && (d.b = new y5d(z2, d, 4, 7));
100621 if (!(d.b.i <= 1 && (!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c.i <= 1))) {
100622 throw vbb(new z2c("Graph must not contain hyperedges."));
100623 }
100624 if (!Pld(d) && h != atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))) {
100625 j = new gRb();
100626 tNb(j, d);
100627 yNb(j, (HSb(), FSb), d);
100628 dRb(j, BD(Wd(irb(c2.f, h)), 144));
100629 eRb(j, BD(Ohb(c2, atd(BD(qud((!d.c && (d.c = new y5d(z2, d, 5, 8)), d.c), 0), 82))), 144));
100630 Ekb(b.c, j);
100631 for (g = new Fyd((!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n)); g.e != g.i.gc(); ) {
100632 f2 = BD(Dyd(g), 137);
100633 k = new mRb(j, f2.a);
100634 tNb(k, f2);
100635 yNb(k, FSb, f2);
100636 k.e.a = $wnd.Math.max(f2.g, 1);
100637 k.e.b = $wnd.Math.max(f2.f, 1);
100638 lRb(k);
100639 Ekb(b.d, k);
100640 }
100641 }
100642 }
100643 }
100644 }
100645 function OGb(a, b) {
100646 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
100647 l = new LIb(a);
100648 iKb(l, !(b == (ead(), dad) || b == _9c));
100649 k = l.a;
100650 m = new p0b();
100651 for (e = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), g = 0, i3 = e.length; g < i3; ++g) {
100652 c2 = e[g];
100653 j = xHb(k, dHb, c2);
100654 !!j && (m.d = $wnd.Math.max(m.d, j.Re()));
100655 }
100656 for (d = OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]), f2 = 0, h = d.length; f2 < h; ++f2) {
100657 c2 = d[f2];
100658 j = xHb(k, fHb, c2);
100659 !!j && (m.a = $wnd.Math.max(m.a, j.Re()));
100660 }
100661 for (p = OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]), r = 0, t4 = p.length; r < t4; ++r) {
100662 n = p[r];
100663 j = xHb(k, n, dHb);
100664 !!j && (m.b = $wnd.Math.max(m.b, j.Se()));
100665 }
100666 for (o2 = OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb]), q = 0, s = o2.length; q < s; ++q) {
100667 n = o2[q];
100668 j = xHb(k, n, fHb);
100669 !!j && (m.c = $wnd.Math.max(m.c, j.Se()));
100670 }
100671 if (m.d > 0) {
100672 m.d += k.n.d;
100673 m.d += k.d;
100674 }
100675 if (m.a > 0) {
100676 m.a += k.n.a;
100677 m.a += k.d;
100678 }
100679 if (m.b > 0) {
100680 m.b += k.n.b;
100681 m.b += k.d;
100682 }
100683 if (m.c > 0) {
100684 m.c += k.n.c;
100685 m.c += k.d;
100686 }
100687 return m;
100688 }
100689 function d6b(a, b, c2) {
100690 var d, e, f2, g, h, i3, j, k, l, m, n, o2;
100691 m = c2.d;
100692 l = c2.c;
100693 f2 = new f7c(c2.f.a + c2.d.b + c2.d.c, c2.f.b + c2.d.d + c2.d.a);
100694 g = f2.b;
100695 for (j = new olb(a.a); j.a < j.c.c.length; ) {
100696 h = BD(mlb(j), 10);
100697 if (h.k != (j0b(), e0b)) {
100698 continue;
100699 }
100700 d = BD(vNb(h, (wtc(), Hsc)), 61);
100701 e = BD(vNb(h, Isc), 8);
100702 k = h.n;
100703 switch (d.g) {
100704 case 2:
100705 k.a = c2.f.a + m.c - l.a;
100706 break;
100707 case 4:
100708 k.a = -l.a - m.b;
100709 }
100710 o2 = 0;
100711 switch (d.g) {
100712 case 2:
100713 case 4:
100714 if (b == (dcd(), _bd)) {
100715 n = Edb(ED(vNb(h, htc)));
100716 k.b = f2.b * n - BD(vNb(h, (Nyc(), Txc)), 8).b;
100717 o2 = k.b + e.b;
100718 M_b(h, false, true);
100719 } else if (b == $bd) {
100720 k.b = Edb(ED(vNb(h, htc))) - BD(vNb(h, (Nyc(), Txc)), 8).b;
100721 o2 = k.b + e.b;
100722 M_b(h, false, true);
100723 }
100724 }
100725 g = $wnd.Math.max(g, o2);
100726 }
100727 c2.f.b += g - f2.b;
100728 for (i3 = new olb(a.a); i3.a < i3.c.c.length; ) {
100729 h = BD(mlb(i3), 10);
100730 if (h.k != (j0b(), e0b)) {
100731 continue;
100732 }
100733 d = BD(vNb(h, (wtc(), Hsc)), 61);
100734 k = h.n;
100735 switch (d.g) {
100736 case 1:
100737 k.b = -l.b - m.d;
100738 break;
100739 case 3:
100740 k.b = c2.f.b + m.a - l.b;
100741 }
100742 }
100743 }
100744 function nRc(a) {
100745 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B;
100746 e = BD(vNb(a, (mTc(), dTc)), 33);
100747 j = Ohe;
100748 k = Ohe;
100749 h = Rie;
100750 i3 = Rie;
100751 for (w2 = Jsb(a.b, 0); w2.b != w2.d.c; ) {
100752 u2 = BD(Xsb(w2), 86);
100753 p = u2.e;
100754 q = u2.f;
100755 j = $wnd.Math.min(j, p.a - q.a / 2);
100756 k = $wnd.Math.min(k, p.b - q.b / 2);
100757 h = $wnd.Math.max(h, p.a + q.a / 2);
100758 i3 = $wnd.Math.max(i3, p.b + q.b / 2);
100759 }
100760 o2 = BD(hkd(e, (JTc(), BTc)), 116);
100761 n = new f7c(o2.b - j, o2.d - k);
100762 for (v = Jsb(a.b, 0); v.b != v.d.c; ) {
100763 u2 = BD(Xsb(v), 86);
100764 m = vNb(u2, dTc);
100765 if (JD(m, 239)) {
100766 f2 = BD(m, 33);
100767 l = P6c(u2.e, n);
100768 bld(f2, l.a - f2.g / 2, l.b - f2.f / 2);
100769 }
100770 }
100771 for (t4 = Jsb(a.a, 0); t4.b != t4.d.c; ) {
100772 s = BD(Xsb(t4), 188);
100773 d = BD(vNb(s, dTc), 79);
100774 if (d) {
100775 b = s.a;
100776 r = new g7c(s.b.e);
100777 Gsb(b, r, b.a, b.a.a);
100778 A = new g7c(s.c.e);
100779 Gsb(b, A, b.c.b, b.c);
100780 qRc(r, BD(Ut(b, 1), 8), s.b.f);
100781 qRc(A, BD(Ut(b, b.b - 2), 8), s.c.f);
100782 c2 = itd(d, true, true);
100783 ifd(b, c2);
100784 }
100785 }
100786 B = h - j + (o2.b + o2.c);
100787 g = i3 - k + (o2.d + o2.a);
100788 Afd(e, B, g, false, false);
100789 }
100790 function xoc(a) {
100791 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
100792 l = a.b;
100793 k = new Bib(l, 0);
100794 Aib(k, new H1b(a));
100795 s = false;
100796 g = 1;
100797 while (k.b < k.d.gc()) {
100798 j = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 29));
100799 p = (tCb(g, l.c.length), BD(l.c[g], 29));
100800 q = Mu(j.a);
100801 r = q.c.length;
100802 for (o2 = new olb(q); o2.a < o2.c.c.length; ) {
100803 m = BD(mlb(o2), 10);
100804 $_b(m, p);
100805 }
100806 if (s) {
100807 for (n = av(new ov(q), 0); n.c.Sb(); ) {
100808 m = BD(pv(n), 10);
100809 for (f2 = new olb(Mu(R_b(m))); f2.a < f2.c.c.length; ) {
100810 e = BD(mlb(f2), 17);
100811 PZb(e, true);
100812 yNb(a, (wtc(), Asc), (Bcb(), true));
100813 d = Noc(a, e, r);
100814 c2 = BD(vNb(m, usc), 305);
100815 t4 = BD(Ikb(d, d.c.length - 1), 17);
100816 c2.k = t4.c.i;
100817 c2.n = t4;
100818 c2.b = e.d.i;
100819 c2.c = e;
100820 }
100821 }
100822 s = false;
100823 } else {
100824 if (q.c.length != 0) {
100825 b = (tCb(0, q.c.length), BD(q.c[0], 10));
100826 if (b.k == (j0b(), d0b)) {
100827 s = true;
100828 g = -1;
100829 }
100830 }
100831 }
100832 ++g;
100833 }
100834 h = new Bib(a.b, 0);
100835 while (h.b < h.d.gc()) {
100836 i3 = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29));
100837 i3.a.c.length == 0 && uib(h);
100838 }
100839 }
100840 function wKb(a, b) {
100841 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
100842 k = BD(BD(Qc(a.r, b), 21), 84);
100843 if (k.gc() <= 2 || b == (Ucd(), zcd) || b == (Ucd(), Tcd)) {
100844 AKb(a, b);
100845 return;
100846 }
100847 p = a.u.Hc((rcd(), qcd));
100848 c2 = b == (Ucd(), Acd) ? (vLb(), uLb) : (vLb(), rLb);
100849 r = b == Acd ? (EIb(), BIb) : (EIb(), DIb);
100850 d = dLb(iLb(c2), a.s);
100851 q = b == Acd ? Pje : Qje;
100852 for (j = k.Kc(); j.Ob(); ) {
100853 h = BD(j.Pb(), 111);
100854 if (!h.c || h.c.d.c.length <= 0) {
100855 continue;
100856 }
100857 o2 = h.b.rf();
100858 n = h.e;
100859 l = h.c;
100860 m = l.i;
100861 m.b = (f2 = l.n, l.e.a + f2.b + f2.c);
100862 m.a = (g = l.n, l.e.b + g.d + g.a);
100863 if (p) {
100864 m.c = n.a - (e = l.n, l.e.a + e.b + e.c) - a.s;
100865 p = false;
100866 } else {
100867 m.c = n.a + o2.a + a.s;
100868 }
100869 ytb(r, lle);
100870 l.f = r;
100871 $Hb(l, (NHb(), MHb));
100872 Ekb(d.d, new BLb(m, bLb(d, m)));
100873 q = b == Acd ? $wnd.Math.min(q, n.b) : $wnd.Math.max(q, n.b + h.b.rf().b);
100874 }
100875 q += b == Acd ? -a.t : a.t;
100876 cLb((d.e = q, d));
100877 for (i3 = k.Kc(); i3.Ob(); ) {
100878 h = BD(i3.Pb(), 111);
100879 if (!h.c || h.c.d.c.length <= 0) {
100880 continue;
100881 }
100882 m = h.c.i;
100883 m.c -= h.e.a;
100884 m.d -= h.e.b;
100885 }
100886 }
100887 function IDc(a, b, c2) {
100888 var d;
100889 Odd(c2, "StretchWidth layering", 1);
100890 if (b.a.c.length == 0) {
100891 Qdd(c2);
100892 return;
100893 }
100894 a.c = b;
100895 a.t = 0;
100896 a.u = 0;
100897 a.i = Pje;
100898 a.g = Qje;
100899 a.d = Edb(ED(vNb(b, (Nyc(), lyc))));
100900 CDc(a);
100901 DDc(a);
100902 ADc(a);
100903 HDc(a);
100904 BDc(a);
100905 a.i = $wnd.Math.max(1, a.i);
100906 a.g = $wnd.Math.max(1, a.g);
100907 a.d = a.d / a.i;
100908 a.f = a.g / a.i;
100909 a.s = FDc(a);
100910 d = new H1b(a.c);
100911 Ekb(a.c.b, d);
100912 a.r = Mu(a.p);
100913 a.n = tlb(a.k, a.k.length);
100914 while (a.r.c.length != 0) {
100915 a.o = JDc(a);
100916 if (!a.o || EDc(a) && a.b.a.gc() != 0) {
100917 KDc(a, d);
100918 d = new H1b(a.c);
100919 Ekb(a.c.b, d);
100920 ye(a.a, a.b);
100921 a.b.a.$b();
100922 a.t = a.u;
100923 a.u = 0;
100924 } else {
100925 if (EDc(a)) {
100926 a.c.b.c = KC(SI, Uhe, 1, 0, 5, 1);
100927 d = new H1b(a.c);
100928 Ekb(a.c.b, d);
100929 a.t = 0;
100930 a.u = 0;
100931 a.b.a.$b();
100932 a.a.a.$b();
100933 ++a.f;
100934 a.r = Mu(a.p);
100935 a.n = tlb(a.k, a.k.length);
100936 } else {
100937 $_b(a.o, d);
100938 Lkb(a.r, a.o);
100939 Qqb(a.b, a.o);
100940 a.t = a.t - a.k[a.o.p] * a.d + a.j[a.o.p];
100941 a.u += a.e[a.o.p] * a.d;
100942 }
100943 }
100944 }
100945 b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
100946 smb(b.b);
100947 Qdd(c2);
100948 }
100949 function Mgc(a) {
100950 var b, c2, d, e;
100951 MAb(JAb(new YAb(null, new Kub(a.a.b, 16)), new khc()), new mhc());
100952 Kgc(a);
100953 MAb(JAb(new YAb(null, new Kub(a.a.b, 16)), new ohc()), new qhc());
100954 if (a.c == (Aad(), yad)) {
100955 MAb(JAb(LAb(new YAb(null, new Kub(new Pib(a.f), 1)), new yhc()), new Ahc()), new Chc(a));
100956 MAb(JAb(NAb(LAb(LAb(new YAb(null, new Kub(a.d.b, 16)), new Ghc()), new Ihc()), new Khc()), new Mhc()), new Ohc(a));
100957 }
100958 e = new f7c(Pje, Pje);
100959 b = new f7c(Qje, Qje);
100960 for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
100961 c2 = BD(mlb(d), 57);
100962 e.a = $wnd.Math.min(e.a, c2.d.c);
100963 e.b = $wnd.Math.min(e.b, c2.d.d);
100964 b.a = $wnd.Math.max(b.a, c2.d.c + c2.d.b);
100965 b.b = $wnd.Math.max(b.b, c2.d.d + c2.d.a);
100966 }
100967 P6c(X6c(a.d.c), V6c(new f7c(e.a, e.b)));
100968 P6c(X6c(a.d.f), c7c(new f7c(b.a, b.b), e));
100969 Lgc(a, e, b);
100970 Uhb(a.f);
100971 Uhb(a.b);
100972 Uhb(a.g);
100973 Uhb(a.e);
100974 a.a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
100975 a.a.b.c = KC(SI, Uhe, 1, 0, 5, 1);
100976 a.a = null;
100977 a.d = null;
100978 }
100979 function vZb(a, b, c2) {
100980 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
100981 e = new Rkb();
100982 for (p = new olb(b.a); p.a < p.c.c.length; ) {
100983 o2 = BD(mlb(p), 10);
100984 n = o2.e;
100985 if (n) {
100986 d = vZb(a, n, o2);
100987 Gkb(e, d);
100988 sZb(a, n, o2);
100989 if (BD(vNb(n, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) {
100990 s = BD(vNb(o2, (Nyc(), Vxc)), 98);
100991 m = BD(vNb(o2, Yxc), 174).Hc((rcd(), ncd));
100992 for (r = new olb(o2.j); r.a < r.c.c.length; ) {
100993 q = BD(mlb(r), 11);
100994 f2 = BD(Ohb(a.b, q), 10);
100995 if (!f2) {
100996 f2 = Z$b(q, s, q.j, -(q.e.c.length - q.g.c.length), null, new d7c(), q.o, BD(vNb(n, Lwc), 103), n);
100997 yNb(f2, $sc, q);
100998 Rhb(a.b, q, f2);
100999 Ekb(n.a, f2);
101000 }
101001 g = BD(Ikb(f2.j, 0), 11);
101002 for (k = new olb(q.f); k.a < k.c.c.length; ) {
101003 j = BD(mlb(k), 70);
101004 h = new p_b();
101005 h.o.a = j.o.a;
101006 h.o.b = j.o.b;
101007 Ekb(g.f, h);
101008 if (!m) {
101009 t4 = q.j;
101010 l = 0;
101011 tcd(BD(vNb(o2, Yxc), 21)) && (l = mfd(j.n, j.o, q.o, 0, t4));
101012 s == (dcd(), bcd) || (Ucd(), Ecd).Hc(t4) ? h.o.a = l : h.o.b = l;
101013 }
101014 }
101015 }
101016 }
101017 }
101018 }
101019 i3 = new Rkb();
101020 rZb(a, b, c2, e, i3);
101021 !!c2 && tZb(a, b, c2, i3);
101022 return i3;
101023 }
101024 function nEc(a, b, c2) {
101025 var d, e, f2, g, h, i3, j, k, l;
101026 if (a.c[b.c.p][b.p].e) {
101027 return;
101028 } else {
101029 a.c[b.c.p][b.p].e = true;
101030 }
101031 a.c[b.c.p][b.p].b = 0;
101032 a.c[b.c.p][b.p].d = 0;
101033 a.c[b.c.p][b.p].a = null;
101034 for (k = new olb(b.j); k.a < k.c.c.length; ) {
101035 j = BD(mlb(k), 11);
101036 l = c2 ? new J0b(j) : new R0b(j);
101037 for (i3 = l.Kc(); i3.Ob(); ) {
101038 h = BD(i3.Pb(), 11);
101039 g = h.i;
101040 if (g.c == b.c) {
101041 if (g != b) {
101042 nEc(a, g, c2);
101043 a.c[b.c.p][b.p].b += a.c[g.c.p][g.p].b;
101044 a.c[b.c.p][b.p].d += a.c[g.c.p][g.p].d;
101045 }
101046 } else {
101047 a.c[b.c.p][b.p].d += a.g[h.p];
101048 ++a.c[b.c.p][b.p].b;
101049 }
101050 }
101051 }
101052 f2 = BD(vNb(b, (wtc(), ssc)), 15);
101053 if (f2) {
101054 for (e = f2.Kc(); e.Ob(); ) {
101055 d = BD(e.Pb(), 10);
101056 if (b.c == d.c) {
101057 nEc(a, d, c2);
101058 a.c[b.c.p][b.p].b += a.c[d.c.p][d.p].b;
101059 a.c[b.c.p][b.p].d += a.c[d.c.p][d.p].d;
101060 }
101061 }
101062 }
101063 if (a.c[b.c.p][b.p].b > 0) {
101064 a.c[b.c.p][b.p].d += Cub(a.i, 24) * lke * 0.07000000029802322 - 0.03500000014901161;
101065 a.c[b.c.p][b.p].a = a.c[b.c.p][b.p].d / a.c[b.c.p][b.p].b;
101066 }
101067 }
101068 function m5b(a) {
101069 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
101070 for (o2 = new olb(a); o2.a < o2.c.c.length; ) {
101071 n = BD(mlb(o2), 10);
101072 n5b(n.n);
101073 n5b(n.o);
101074 o5b(n.f);
101075 r5b(n);
101076 t5b(n);
101077 for (q = new olb(n.j); q.a < q.c.c.length; ) {
101078 p = BD(mlb(q), 11);
101079 n5b(p.n);
101080 n5b(p.a);
101081 n5b(p.o);
101082 G0b(p, s5b(p.j));
101083 f2 = BD(vNb(p, (Nyc(), Wxc)), 19);
101084 !!f2 && yNb(p, Wxc, meb(-f2.a));
101085 for (e = new olb(p.g); e.a < e.c.c.length; ) {
101086 d = BD(mlb(e), 17);
101087 for (c2 = Jsb(d.a, 0); c2.b != c2.d.c; ) {
101088 b = BD(Xsb(c2), 8);
101089 n5b(b);
101090 }
101091 i3 = BD(vNb(d, jxc), 74);
101092 if (i3) {
101093 for (h = Jsb(i3, 0); h.b != h.d.c; ) {
101094 g = BD(Xsb(h), 8);
101095 n5b(g);
101096 }
101097 }
101098 for (l = new olb(d.b); l.a < l.c.c.length; ) {
101099 j = BD(mlb(l), 70);
101100 n5b(j.n);
101101 n5b(j.o);
101102 }
101103 }
101104 for (m = new olb(p.f); m.a < m.c.c.length; ) {
101105 j = BD(mlb(m), 70);
101106 n5b(j.n);
101107 n5b(j.o);
101108 }
101109 }
101110 if (n.k == (j0b(), e0b)) {
101111 yNb(n, (wtc(), Hsc), s5b(BD(vNb(n, Hsc), 61)));
101112 q5b(n);
101113 }
101114 for (k = new olb(n.b); k.a < k.c.c.length; ) {
101115 j = BD(mlb(k), 70);
101116 r5b(j);
101117 n5b(j.o);
101118 n5b(j.n);
101119 }
101120 }
101121 }
101122 function yQb(a, b) {
101123 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A;
101124 a.e = b;
101125 h = $Pb(b);
101126 w2 = new Rkb();
101127 for (d = new olb(h); d.a < d.c.c.length; ) {
101128 c2 = BD(mlb(d), 15);
101129 A = new Rkb();
101130 w2.c[w2.c.length] = A;
101131 i3 = new Tqb();
101132 for (o2 = c2.Kc(); o2.Ob(); ) {
101133 n = BD(o2.Pb(), 33);
101134 f2 = wQb(a, n, true, 0, 0);
101135 A.c[A.c.length] = f2;
101136 p = n.i;
101137 q = n.j;
101138 m = (!n.n && (n.n = new cUd(D2, n, 1, 7)), n.n);
101139 for (l = new Fyd(m); l.e != l.i.gc(); ) {
101140 j = BD(Dyd(l), 137);
101141 e = wQb(a, j, false, p, q);
101142 A.c[A.c.length] = e;
101143 }
101144 v = (!n.c && (n.c = new cUd(F2, n, 9, 9)), n.c);
101145 for (s = new Fyd(v); s.e != s.i.gc(); ) {
101146 r = BD(Dyd(s), 118);
101147 g = wQb(a, r, false, p, q);
101148 A.c[A.c.length] = g;
101149 t4 = r.i + p;
101150 u2 = r.j + q;
101151 m = (!r.n && (r.n = new cUd(D2, r, 1, 7)), r.n);
101152 for (k = new Fyd(m); k.e != k.i.gc(); ) {
101153 j = BD(Dyd(k), 137);
101154 e = wQb(a, j, false, t4, u2);
101155 A.c[A.c.length] = e;
101156 }
101157 }
101158 ye(i3, Dx(pl(OC(GC(KI, 1), Uhe, 20, 0, [_sd(n), $sd(n)]))));
101159 }
101160 vQb(a, i3, A);
101161 }
101162 a.f = new aPb(w2);
101163 tNb(a.f, b);
101164 return a.f;
101165 }
101166 function Kqd(a, b, c2, d, e) {
101167 var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G;
101168 D3 = Ohb(a.e, d);
101169 if (D3 == null) {
101170 D3 = new eC();
101171 n = BD(D3, 183);
101172 s = b + "_s";
101173 t4 = s + e;
101174 m = new yC(t4);
101175 cC(n, Vte, m);
101176 }
101177 C = BD(D3, 183);
101178 Qpd(c2, C);
101179 G = new eC();
101180 Spd(G, "x", d.j);
101181 Spd(G, "y", d.k);
101182 cC(C, Yte, G);
101183 A = new eC();
101184 Spd(A, "x", d.b);
101185 Spd(A, "y", d.c);
101186 cC(C, "endPoint", A);
101187 l = Fhe((!d.a && (d.a = new xMd(y2, d, 5)), d.a));
101188 o2 = !l;
101189 if (o2) {
101190 w2 = new wB();
101191 f2 = new Srd(w2);
101192 reb((!d.a && (d.a = new xMd(y2, d, 5)), d.a), f2);
101193 cC(C, Ote, w2);
101194 }
101195 i3 = dmd(d);
101196 u2 = !!i3;
101197 u2 && Tpd(a.a, C, Qte, kqd(a, dmd(d)));
101198 r = emd(d);
101199 v = !!r;
101200 v && Tpd(a.a, C, Pte, kqd(a, emd(d)));
101201 j = (!d.e && (d.e = new y5d(A2, d, 10, 9)), d.e).i == 0;
101202 p = !j;
101203 if (p) {
101204 B = new wB();
101205 g = new Urd(a, B);
101206 reb((!d.e && (d.e = new y5d(A2, d, 10, 9)), d.e), g);
101207 cC(C, Ste, B);
101208 }
101209 k = (!d.g && (d.g = new y5d(A2, d, 9, 10)), d.g).i == 0;
101210 q = !k;
101211 if (q) {
101212 F = new wB();
101213 h = new Wrd(a, F);
101214 reb((!d.g && (d.g = new y5d(A2, d, 9, 10)), d.g), h);
101215 cC(C, Rte, F);
101216 }
101217 }
101218 function eKb(a) {
101219 $Jb();
101220 var b, c2, d, e, f2, g, h;
101221 d = a.f.n;
101222 for (g = ci(a.r).a.nc(); g.Ob(); ) {
101223 f2 = BD(g.Pb(), 111);
101224 e = 0;
101225 if (f2.b.Xe((Y9c(), s9c))) {
101226 e = Edb(ED(f2.b.We(s9c)));
101227 if (e < 0) {
101228 switch (f2.b.Hf().g) {
101229 case 1:
101230 d.d = $wnd.Math.max(d.d, -e);
101231 break;
101232 case 3:
101233 d.a = $wnd.Math.max(d.a, -e);
101234 break;
101235 case 2:
101236 d.c = $wnd.Math.max(d.c, -e);
101237 break;
101238 case 4:
101239 d.b = $wnd.Math.max(d.b, -e);
101240 }
101241 }
101242 }
101243 if (tcd(a.u)) {
101244 b = nfd(f2.b, e);
101245 h = !BD(a.e.We(b9c), 174).Hc((Idd(), zdd));
101246 c2 = false;
101247 switch (f2.b.Hf().g) {
101248 case 1:
101249 c2 = b > d.d;
101250 d.d = $wnd.Math.max(d.d, b);
101251 if (h && c2) {
101252 d.d = $wnd.Math.max(d.d, d.a);
101253 d.a = d.d + e;
101254 }
101255 break;
101256 case 3:
101257 c2 = b > d.a;
101258 d.a = $wnd.Math.max(d.a, b);
101259 if (h && c2) {
101260 d.a = $wnd.Math.max(d.a, d.d);
101261 d.d = d.a + e;
101262 }
101263 break;
101264 case 2:
101265 c2 = b > d.c;
101266 d.c = $wnd.Math.max(d.c, b);
101267 if (h && c2) {
101268 d.c = $wnd.Math.max(d.b, d.c);
101269 d.b = d.c + e;
101270 }
101271 break;
101272 case 4:
101273 c2 = b > d.b;
101274 d.b = $wnd.Math.max(d.b, b);
101275 if (h && c2) {
101276 d.b = $wnd.Math.max(d.b, d.c);
101277 d.c = d.b + e;
101278 }
101279 }
101280 }
101281 }
101282 }
101283 function l3b(a) {
101284 var b, c2, d, e, f2, g, h, i3, j, k, l;
101285 for (j = new olb(a); j.a < j.c.c.length; ) {
101286 i3 = BD(mlb(j), 10);
101287 g = BD(vNb(i3, (Nyc(), mxc)), 163);
101288 f2 = null;
101289 switch (g.g) {
101290 case 1:
101291 case 2:
101292 f2 = (Gqc(), Fqc);
101293 break;
101294 case 3:
101295 case 4:
101296 f2 = (Gqc(), Dqc);
101297 }
101298 if (f2) {
101299 yNb(i3, (wtc(), Bsc), (Gqc(), Fqc));
101300 f2 == Dqc ? o3b(i3, g, (KAc(), HAc)) : f2 == Fqc && o3b(i3, g, (KAc(), IAc));
101301 } else {
101302 if (fcd(BD(vNb(i3, Vxc), 98)) && i3.j.c.length != 0) {
101303 b = true;
101304 for (l = new olb(i3.j); l.a < l.c.c.length; ) {
101305 k = BD(mlb(l), 11);
101306 if (!(k.j == (Ucd(), zcd) && k.e.c.length - k.g.c.length > 0 || k.j == Tcd && k.e.c.length - k.g.c.length < 0)) {
101307 b = false;
101308 break;
101309 }
101310 for (e = new olb(k.g); e.a < e.c.c.length; ) {
101311 c2 = BD(mlb(e), 17);
101312 h = BD(vNb(c2.d.i, mxc), 163);
101313 if (h == (Ctc(), ztc) || h == Atc) {
101314 b = false;
101315 break;
101316 }
101317 }
101318 for (d = new olb(k.e); d.a < d.c.c.length; ) {
101319 c2 = BD(mlb(d), 17);
101320 h = BD(vNb(c2.c.i, mxc), 163);
101321 if (h == (Ctc(), xtc) || h == ytc) {
101322 b = false;
101323 break;
101324 }
101325 }
101326 }
101327 b && o3b(i3, g, (KAc(), JAc));
101328 }
101329 }
101330 }
101331 }
101332 function lJc(a, b, c2, d, e) {
101333 var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
101334 w2 = 0;
101335 n = 0;
101336 for (l = new olb(b.e); l.a < l.c.c.length; ) {
101337 k = BD(mlb(l), 10);
101338 m = 0;
101339 h = 0;
101340 i3 = c2 ? BD(vNb(k, hJc), 19).a : Rie;
101341 r = d ? BD(vNb(k, iJc), 19).a : Rie;
101342 j = $wnd.Math.max(i3, r);
101343 for (t4 = new olb(k.j); t4.a < t4.c.c.length; ) {
101344 s = BD(mlb(t4), 11);
101345 u2 = k.n.b + s.n.b + s.a.b;
101346 if (d) {
101347 for (g = new olb(s.g); g.a < g.c.c.length; ) {
101348 f2 = BD(mlb(g), 17);
101349 p = f2.d;
101350 o2 = p.i;
101351 if (b != a.a[o2.p]) {
101352 q = $wnd.Math.max(BD(vNb(o2, hJc), 19).a, BD(vNb(o2, iJc), 19).a);
101353 v = BD(vNb(f2, (Nyc(), eyc)), 19).a;
101354 if (v >= j && v >= q) {
101355 m += o2.n.b + p.n.b + p.a.b - u2;
101356 ++h;
101357 }
101358 }
101359 }
101360 }
101361 if (c2) {
101362 for (g = new olb(s.e); g.a < g.c.c.length; ) {
101363 f2 = BD(mlb(g), 17);
101364 p = f2.c;
101365 o2 = p.i;
101366 if (b != a.a[o2.p]) {
101367 q = $wnd.Math.max(BD(vNb(o2, hJc), 19).a, BD(vNb(o2, iJc), 19).a);
101368 v = BD(vNb(f2, (Nyc(), eyc)), 19).a;
101369 if (v >= j && v >= q) {
101370 m += o2.n.b + p.n.b + p.a.b - u2;
101371 ++h;
101372 }
101373 }
101374 }
101375 }
101376 }
101377 if (h > 0) {
101378 w2 += m / h;
101379 ++n;
101380 }
101381 }
101382 if (n > 0) {
101383 b.a = e * w2 / n;
101384 b.g = n;
101385 } else {
101386 b.a = 0;
101387 b.g = 0;
101388 }
101389 }
101390 function oMc(a, b) {
101391 var c2, d, e, f2, g, h, i3, j, k, l, m;
101392 for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
101393 c2 = BD(mlb(e), 29);
101394 for (i3 = new olb(c2.a); i3.a < i3.c.c.length; ) {
101395 h = BD(mlb(i3), 10);
101396 b.j[h.p] = h;
101397 b.i[h.p] = b.o == (eMc(), dMc) ? Qje : Pje;
101398 }
101399 }
101400 Uhb(a.c);
101401 g = a.a.b;
101402 b.c == (YLc(), WLc) && (g = JD(g, 152) ? km(BD(g, 152)) : JD(g, 131) ? BD(g, 131).a : JD(g, 54) ? new ov(g) : new dv(g));
101403 UMc(a.e, b, a.b);
101404 Alb(b.p, null);
101405 for (f2 = g.Kc(); f2.Ob(); ) {
101406 c2 = BD(f2.Pb(), 29);
101407 j = c2.a;
101408 b.o == (eMc(), dMc) && (j = JD(j, 152) ? km(BD(j, 152)) : JD(j, 131) ? BD(j, 131).a : JD(j, 54) ? new ov(j) : new dv(j));
101409 for (m = j.Kc(); m.Ob(); ) {
101410 l = BD(m.Pb(), 10);
101411 b.g[l.p] == l && pMc(a, l, b);
101412 }
101413 }
101414 qMc(a, b);
101415 for (d = g.Kc(); d.Ob(); ) {
101416 c2 = BD(d.Pb(), 29);
101417 for (m = new olb(c2.a); m.a < m.c.c.length; ) {
101418 l = BD(mlb(m), 10);
101419 b.p[l.p] = b.p[b.g[l.p].p];
101420 if (l == b.g[l.p]) {
101421 k = Edb(b.i[b.j[l.p].p]);
101422 (b.o == (eMc(), dMc) && k > Qje || b.o == cMc && k < Pje) && (b.p[l.p] = Edb(b.p[l.p]) + k);
101423 }
101424 }
101425 }
101426 a.e.cg();
101427 }
101428 function PGb(a, b, c2, d) {
101429 var e, f2, g, h, i3;
101430 h = new LIb(b);
101431 rKb(h, d);
101432 e = true;
101433 if (!!a && a.Xe((Y9c(), z8c))) {
101434 f2 = BD(a.We((Y9c(), z8c)), 103);
101435 e = f2 == (ead(), cad) || f2 == aad || f2 == bad;
101436 }
101437 hKb(h, false);
101438 Hkb(h.e.wf(), new mKb(h, false, e));
101439 NJb(h, h.f, (gHb(), dHb), (Ucd(), Acd));
101440 NJb(h, h.f, fHb, Rcd);
101441 NJb(h, h.g, dHb, Tcd);
101442 NJb(h, h.g, fHb, zcd);
101443 PJb(h, Acd);
101444 PJb(h, Rcd);
101445 OJb(h, zcd);
101446 OJb(h, Tcd);
101447 $Jb();
101448 g = h.A.Hc((tdd(), pdd)) && h.B.Hc((Idd(), Ddd)) ? _Jb(h) : null;
101449 !!g && DHb(h.a, g);
101450 eKb(h);
101451 GJb(h);
101452 PKb(h);
101453 BJb(h);
101454 pKb(h);
101455 HKb(h);
101456 xKb(h, Acd);
101457 xKb(h, Rcd);
101458 CJb(h);
101459 oKb(h);
101460 if (!c2) {
101461 return h.o;
101462 }
101463 cKb(h);
101464 LKb(h);
101465 xKb(h, zcd);
101466 xKb(h, Tcd);
101467 i3 = h.B.Hc((Idd(), Edd));
101468 RJb(h, i3, Acd);
101469 RJb(h, i3, Rcd);
101470 SJb(h, i3, zcd);
101471 SJb(h, i3, Tcd);
101472 MAb(new YAb(null, new Kub(new $ib(h.i), 0)), new TJb());
101473 MAb(JAb(new YAb(null, ci(h.r).a.oc()), new VJb()), new XJb());
101474 dKb(h);
101475 h.e.uf(h.o);
101476 MAb(new YAb(null, ci(h.r).a.oc()), new fKb());
101477 return h.o;
101478 }
101479 function JVb(a) {
101480 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
101481 j = Pje;
101482 for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
101483 b = BD(mlb(d), 81);
101484 j = $wnd.Math.min(j, b.d.f.g.c + b.e.a);
101485 }
101486 n = new Psb();
101487 for (g = new olb(a.a.a); g.a < g.c.c.length; ) {
101488 f2 = BD(mlb(g), 189);
101489 f2.i = j;
101490 f2.e == 0 && (Gsb(n, f2, n.c.b, n.c), true);
101491 }
101492 while (n.b != 0) {
101493 f2 = BD(n.b == 0 ? null : (sCb(n.b != 0), Nsb(n, n.a.a)), 189);
101494 e = f2.f.g.c;
101495 for (m = f2.a.a.ec().Kc(); m.Ob(); ) {
101496 k = BD(m.Pb(), 81);
101497 p = f2.i + k.e.a;
101498 k.d.g || k.g.c < p ? k.o = p : k.o = k.g.c;
101499 }
101500 e -= f2.f.o;
101501 f2.b += e;
101502 a.c == (ead(), bad) || a.c == _9c ? f2.c += e : f2.c -= e;
101503 for (l = f2.a.a.ec().Kc(); l.Ob(); ) {
101504 k = BD(l.Pb(), 81);
101505 for (i3 = k.f.Kc(); i3.Ob(); ) {
101506 h = BD(i3.Pb(), 81);
101507 fad(a.c) ? o2 = a.f.ef(k, h) : o2 = a.f.ff(k, h);
101508 h.d.i = $wnd.Math.max(h.d.i, k.o + k.g.b + o2 - h.e.a);
101509 h.k || (h.d.i = $wnd.Math.max(h.d.i, h.g.c - h.e.a));
101510 --h.d.e;
101511 h.d.e == 0 && Dsb(n, h.d);
101512 }
101513 }
101514 }
101515 for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
101516 b = BD(mlb(c2), 81);
101517 b.g.c = b.o;
101518 }
101519 }
101520 function ELb(a) {
101521 var b, c2, d, e, f2, g, h, i3;
101522 h = a.b;
101523 b = a.a;
101524 switch (BD(vNb(a, (fFb(), bFb)), 427).g) {
101525 case 0:
101526 Okb(h, new tpb(new bMb()));
101527 break;
101528 case 1:
101529 default:
101530 Okb(h, new tpb(new gMb()));
101531 }
101532 switch (BD(vNb(a, _Eb), 428).g) {
101533 case 1:
101534 Okb(h, new YLb());
101535 Okb(h, new lMb());
101536 Okb(h, new GLb());
101537 break;
101538 case 0:
101539 default:
101540 Okb(h, new YLb());
101541 Okb(h, new RLb());
101542 }
101543 switch (BD(vNb(a, dFb), 250).g) {
101544 case 0:
101545 i3 = new FMb();
101546 break;
101547 case 1:
101548 i3 = new zMb();
101549 break;
101550 case 2:
101551 i3 = new CMb();
101552 break;
101553 case 3:
101554 i3 = new wMb();
101555 break;
101556 case 5:
101557 i3 = new JMb(new CMb());
101558 break;
101559 case 4:
101560 i3 = new JMb(new zMb());
101561 break;
101562 case 7:
101563 i3 = new tMb(new JMb(new zMb()), new JMb(new CMb()));
101564 break;
101565 case 8:
101566 i3 = new tMb(new JMb(new wMb()), new JMb(new CMb()));
101567 break;
101568 case 6:
101569 default:
101570 i3 = new JMb(new wMb());
101571 }
101572 for (g = new olb(h); g.a < g.c.c.length; ) {
101573 f2 = BD(mlb(g), 167);
101574 d = 0;
101575 e = 0;
101576 c2 = new vgd(meb(d), meb(e));
101577 while (gNb(b, f2, d, e)) {
101578 c2 = BD(i3.Ce(c2, f2), 46);
101579 d = BD(c2.a, 19).a;
101580 e = BD(c2.b, 19).a;
101581 }
101582 dNb(b, f2, d, e);
101583 }
101584 }
101585 function qQb(a) {
101586 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A;
101587 f2 = a.f.b;
101588 m = f2.a;
101589 k = f2.b;
101590 o2 = a.e.g;
101591 n = a.e.f;
101592 _kd(a.e, f2.a, f2.b);
101593 w2 = m / o2;
101594 A = k / n;
101595 for (j = new Fyd(Kkd(a.e)); j.e != j.i.gc(); ) {
101596 i3 = BD(Dyd(j), 137);
101597 dld(i3, i3.i * w2);
101598 eld(i3, i3.j * A);
101599 }
101600 for (s = new Fyd(Yod(a.e)); s.e != s.i.gc(); ) {
101601 r = BD(Dyd(s), 118);
101602 u2 = r.i;
101603 v = r.j;
101604 u2 > 0 && dld(r, u2 * w2);
101605 v > 0 && eld(r, v * A);
101606 }
101607 stb(a.b, new CQb());
101608 b = new Rkb();
101609 for (h = new nib(new eib(a.c).a); h.b; ) {
101610 g = lib(h);
101611 d = BD(g.cd(), 79);
101612 c2 = BD(g.dd(), 395).a;
101613 e = itd(d, false, false);
101614 l = oQb(jtd(d), ofd(e), c2);
101615 ifd(l, e);
101616 t4 = ktd(d);
101617 if (!!t4 && Jkb(b, t4, 0) == -1) {
101618 b.c[b.c.length] = t4;
101619 pQb(t4, (sCb(l.b != 0), BD(l.a.a.c, 8)), c2);
101620 }
101621 }
101622 for (q = new nib(new eib(a.d).a); q.b; ) {
101623 p = lib(q);
101624 d = BD(p.cd(), 79);
101625 c2 = BD(p.dd(), 395).a;
101626 e = itd(d, false, false);
101627 l = oQb(ltd(d), w7c(ofd(e)), c2);
101628 l = w7c(l);
101629 ifd(l, e);
101630 t4 = mtd(d);
101631 if (!!t4 && Jkb(b, t4, 0) == -1) {
101632 b.c[b.c.length] = t4;
101633 pQb(t4, (sCb(l.b != 0), BD(l.c.b.c, 8)), c2);
101634 }
101635 }
101636 }
101637 function _Vc(a, b, c2, d) {
101638 var e, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B;
101639 if (c2.c.length != 0) {
101640 o2 = new Rkb();
101641 for (n = new olb(c2); n.a < n.c.c.length; ) {
101642 m = BD(mlb(n), 33);
101643 Ekb(o2, new f7c(m.i, m.j));
101644 }
101645 d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd));
101646 while (CVc(a, c2)) {
101647 AVc(a, c2, false);
101648 }
101649 d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd));
101650 h = 0;
101651 i3 = 0;
101652 e = null;
101653 if (c2.c.length != 0) {
101654 e = (tCb(0, c2.c.length), BD(c2.c[0], 33));
101655 h = e.i - (tCb(0, o2.c.length), BD(o2.c[0], 8)).a;
101656 i3 = e.j - (tCb(0, o2.c.length), BD(o2.c[0], 8)).b;
101657 }
101658 g = $wnd.Math.sqrt(h * h + i3 * i3);
101659 l = cVc(c2);
101660 while (l.a.gc() != 0) {
101661 for (k = l.a.ec().Kc(); k.Ob(); ) {
101662 j = BD(k.Pb(), 33);
101663 p = a.f;
101664 q = p.i + p.g / 2;
101665 r = p.j + p.f / 2;
101666 s = j.i + j.g / 2;
101667 t4 = j.j + j.f / 2;
101668 u2 = s - q;
101669 v = t4 - r;
101670 w2 = $wnd.Math.sqrt(u2 * u2 + v * v);
101671 A = u2 / w2;
101672 B = v / w2;
101673 dld(j, j.i + A * g);
101674 eld(j, j.j + B * g);
101675 }
101676 d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd));
101677 l = cVc(new Tkb(l));
101678 }
101679 !!a.a && a.a.lg(new Tkb(l));
101680 d.n && !!b && Tdd(d, i6d(b), (pgd(), mgd));
101681 _Vc(a, b, new Tkb(l), d);
101682 }
101683 }
101684 function $2b(a, b, c2) {
101685 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
101686 p = a.n;
101687 q = a.o;
101688 m = a.d;
101689 l = Edb(ED(pBc(a, (Nyc(), iyc))));
101690 if (b) {
101691 k = l * (b.gc() - 1);
101692 n = 0;
101693 for (i3 = b.Kc(); i3.Ob(); ) {
101694 g = BD(i3.Pb(), 10);
101695 k += g.o.a;
101696 n = $wnd.Math.max(n, g.o.b);
101697 }
101698 r = p.a - (k - q.a) / 2;
101699 f2 = p.b - m.d + n;
101700 d = q.a / (b.gc() + 1);
101701 e = d;
101702 for (h = b.Kc(); h.Ob(); ) {
101703 g = BD(h.Pb(), 10);
101704 g.n.a = r;
101705 g.n.b = f2 - g.o.b;
101706 r += g.o.a + l;
101707 j = Y2b(g);
101708 j.n.a = g.o.a / 2 - j.a.a;
101709 j.n.b = g.o.b;
101710 o2 = BD(vNb(g, (wtc(), vsc)), 11);
101711 if (o2.e.c.length + o2.g.c.length == 1) {
101712 o2.n.a = e - o2.a.a;
101713 o2.n.b = 0;
101714 F0b(o2, a);
101715 }
101716 e += d;
101717 }
101718 }
101719 if (c2) {
101720 k = l * (c2.gc() - 1);
101721 n = 0;
101722 for (i3 = c2.Kc(); i3.Ob(); ) {
101723 g = BD(i3.Pb(), 10);
101724 k += g.o.a;
101725 n = $wnd.Math.max(n, g.o.b);
101726 }
101727 r = p.a - (k - q.a) / 2;
101728 f2 = p.b + q.b + m.a - n;
101729 d = q.a / (c2.gc() + 1);
101730 e = d;
101731 for (h = c2.Kc(); h.Ob(); ) {
101732 g = BD(h.Pb(), 10);
101733 g.n.a = r;
101734 g.n.b = f2;
101735 r += g.o.a + l;
101736 j = Y2b(g);
101737 j.n.a = g.o.a / 2 - j.a.a;
101738 j.n.b = 0;
101739 o2 = BD(vNb(g, (wtc(), vsc)), 11);
101740 if (o2.e.c.length + o2.g.c.length == 1) {
101741 o2.n.a = e - o2.a.a;
101742 o2.n.b = q.b;
101743 F0b(o2, a);
101744 }
101745 e += d;
101746 }
101747 }
101748 }
101749 function q7b(a, b) {
101750 var c2, d, e, f2, g, h;
101751 if (!BD(vNb(b, (wtc(), Ksc)), 21).Hc((Orc(), Hrc))) {
101752 return;
101753 }
101754 for (h = new olb(b.a); h.a < h.c.c.length; ) {
101755 f2 = BD(mlb(h), 10);
101756 if (f2.k == (j0b(), h0b)) {
101757 e = BD(vNb(f2, (Nyc(), txc)), 142);
101758 a.c = $wnd.Math.min(a.c, f2.n.a - e.b);
101759 a.a = $wnd.Math.max(a.a, f2.n.a + f2.o.a + e.c);
101760 a.d = $wnd.Math.min(a.d, f2.n.b - e.d);
101761 a.b = $wnd.Math.max(a.b, f2.n.b + f2.o.b + e.a);
101762 }
101763 }
101764 for (g = new olb(b.a); g.a < g.c.c.length; ) {
101765 f2 = BD(mlb(g), 10);
101766 if (f2.k != (j0b(), h0b)) {
101767 switch (f2.k.g) {
101768 case 2:
101769 d = BD(vNb(f2, (Nyc(), mxc)), 163);
101770 if (d == (Ctc(), ytc)) {
101771 f2.n.a = a.c - 10;
101772 p7b(f2, new x7b()).Jb(new A7b(f2));
101773 break;
101774 }
101775 if (d == Atc) {
101776 f2.n.a = a.a + 10;
101777 p7b(f2, new D7b()).Jb(new G7b(f2));
101778 break;
101779 }
101780 c2 = BD(vNb(f2, Osc), 303);
101781 if (c2 == (esc(), dsc)) {
101782 o7b(f2).Jb(new J7b(f2));
101783 f2.n.b = a.d - 10;
101784 break;
101785 }
101786 if (c2 == bsc) {
101787 o7b(f2).Jb(new M7b(f2));
101788 f2.n.b = a.b + 10;
101789 break;
101790 }
101791 break;
101792 default:
101793 throw vbb(new Wdb("The node type " + f2.k + " is not supported by the " + zS));
101794 }
101795 }
101796 }
101797 }
101798 function Y1b(a, b, c2, d) {
101799 var e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
101800 i3 = new f7c(d.i + d.g / 2, d.j + d.f / 2);
101801 n = M1b(d);
101802 o2 = BD(hkd(b, (Nyc(), Vxc)), 98);
101803 q = BD(hkd(d, $xc), 61);
101804 if (!hCd(gkd(d), Uxc)) {
101805 d.i == 0 && d.j == 0 ? p = 0 : p = kfd(d, q);
101806 jkd(d, Uxc, p);
101807 }
101808 j = new f7c(b.g, b.f);
101809 e = Z$b(d, o2, q, n, j, i3, new f7c(d.g, d.f), BD(vNb(c2, Lwc), 103), c2);
101810 yNb(e, (wtc(), $sc), d);
101811 f2 = BD(Ikb(e.j, 0), 11);
101812 E0b(f2, W1b(d));
101813 yNb(e, Yxc, (rcd(), pqb(pcd)));
101814 l = BD(hkd(b, Yxc), 174).Hc(ncd);
101815 for (h = new Fyd((!d.n && (d.n = new cUd(D2, d, 1, 7)), d.n)); h.e != h.i.gc(); ) {
101816 g = BD(Dyd(h), 137);
101817 if (!Ccb(DD(hkd(g, Jxc))) && !!g.a) {
101818 m = Z1b(g);
101819 Ekb(f2.f, m);
101820 if (!l) {
101821 k = 0;
101822 tcd(BD(hkd(b, Yxc), 21)) && (k = mfd(new f7c(g.i, g.j), new f7c(g.g, g.f), new f7c(d.g, d.f), 0, q));
101823 switch (q.g) {
101824 case 2:
101825 case 4:
101826 m.o.a = k;
101827 break;
101828 case 1:
101829 case 3:
101830 m.o.b = k;
101831 }
101832 }
101833 }
101834 }
101835 yNb(e, tyc, ED(hkd(Xod(b), tyc)));
101836 yNb(e, uyc, ED(hkd(Xod(b), uyc)));
101837 yNb(e, ryc, ED(hkd(Xod(b), ryc)));
101838 Ekb(c2.a, e);
101839 Rhb(a.a, d, e);
101840 }
101841 function qUc(a, b, c2) {
101842 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v;
101843 Odd(c2, "Processor arrange level", 1);
101844 k = 0;
101845 mmb();
101846 ktb(b, new Wsd((mTc(), ZSc)));
101847 f2 = b.b;
101848 h = Jsb(b, b.b);
101849 j = true;
101850 while (j && h.b.b != h.d.a) {
101851 r = BD(Ysb(h), 86);
101852 BD(vNb(r, ZSc), 19).a == 0 ? --f2 : j = false;
101853 }
101854 v = new Jib(b, 0, f2);
101855 g = new Qsb(v);
101856 v = new Jib(b, f2, b.b);
101857 i3 = new Qsb(v);
101858 if (g.b == 0) {
101859 for (o2 = Jsb(i3, 0); o2.b != o2.d.c; ) {
101860 n = BD(Xsb(o2), 86);
101861 yNb(n, eTc, meb(k++));
101862 }
101863 } else {
101864 l = g.b;
101865 for (u2 = Jsb(g, 0); u2.b != u2.d.c; ) {
101866 t4 = BD(Xsb(u2), 86);
101867 yNb(t4, eTc, meb(k++));
101868 d = URc(t4);
101869 qUc(a, d, Udd(c2, 1 / l | 0));
101870 ktb(d, tmb(new Wsd(eTc)));
101871 m = new Psb();
101872 for (s = Jsb(d, 0); s.b != s.d.c; ) {
101873 r = BD(Xsb(s), 86);
101874 for (q = Jsb(t4.d, 0); q.b != q.d.c; ) {
101875 p = BD(Xsb(q), 188);
101876 p.c == r && (Gsb(m, p, m.c.b, m.c), true);
101877 }
101878 }
101879 Osb(t4.d);
101880 ye(t4.d, m);
101881 h = Jsb(i3, i3.b);
101882 e = t4.d.b;
101883 j = true;
101884 while (0 < e && j && h.b.b != h.d.a) {
101885 r = BD(Ysb(h), 86);
101886 if (BD(vNb(r, ZSc), 19).a == 0) {
101887 yNb(r, eTc, meb(k++));
101888 --e;
101889 Zsb(h);
101890 } else {
101891 j = false;
101892 }
101893 }
101894 }
101895 }
101896 Qdd(c2);
101897 }
101898 function _8b(a, b) {
101899 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
101900 Odd(b, "Inverted port preprocessing", 1);
101901 k = a.b;
101902 j = new Bib(k, 0);
101903 c2 = null;
101904 t4 = new Rkb();
101905 while (j.b < j.d.gc()) {
101906 s = c2;
101907 c2 = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 29));
101908 for (n = new olb(t4); n.a < n.c.c.length; ) {
101909 l = BD(mlb(n), 10);
101910 $_b(l, s);
101911 }
101912 t4.c = KC(SI, Uhe, 1, 0, 5, 1);
101913 for (o2 = new olb(c2.a); o2.a < o2.c.c.length; ) {
101914 l = BD(mlb(o2), 10);
101915 if (l.k != (j0b(), h0b)) {
101916 continue;
101917 }
101918 if (!fcd(BD(vNb(l, (Nyc(), Vxc)), 98))) {
101919 continue;
101920 }
101921 for (r = X_b(l, (KAc(), HAc), (Ucd(), zcd)).Kc(); r.Ob(); ) {
101922 p = BD(r.Pb(), 11);
101923 i3 = p.e;
101924 h = BD(Qkb(i3, KC(AQ, jne, 17, i3.c.length, 0, 1)), 474);
101925 for (e = h, f2 = 0, g = e.length; f2 < g; ++f2) {
101926 d = e[f2];
101927 Z8b(a, p, d, t4);
101928 }
101929 }
101930 for (q = X_b(l, IAc, Tcd).Kc(); q.Ob(); ) {
101931 p = BD(q.Pb(), 11);
101932 i3 = p.g;
101933 h = BD(Qkb(i3, KC(AQ, jne, 17, i3.c.length, 0, 1)), 474);
101934 for (e = h, f2 = 0, g = e.length; f2 < g; ++f2) {
101935 d = e[f2];
101936 $8b(a, p, d, t4);
101937 }
101938 }
101939 }
101940 }
101941 for (m = new olb(t4); m.a < m.c.c.length; ) {
101942 l = BD(mlb(m), 10);
101943 $_b(l, c2);
101944 }
101945 Qdd(b);
101946 }
101947 function _1b(a, b, c2, d, e, f2) {
101948 var g, h, i3, j, k, l;
101949 j = new H0b();
101950 tNb(j, b);
101951 G0b(j, BD(hkd(b, (Nyc(), $xc)), 61));
101952 yNb(j, (wtc(), $sc), b);
101953 F0b(j, c2);
101954 l = j.o;
101955 l.a = b.g;
101956 l.b = b.f;
101957 k = j.n;
101958 k.a = b.i;
101959 k.b = b.j;
101960 Rhb(a.a, b, j);
101961 g = FAb(NAb(LAb(new YAb(null, (!b.e && (b.e = new y5d(B2, b, 7, 4)), new Kub(b.e, 16))), new m2b()), new e2b()), new o2b(b));
101962 g || (g = FAb(NAb(LAb(new YAb(null, (!b.d && (b.d = new y5d(B2, b, 8, 5)), new Kub(b.d, 16))), new q2b()), new g2b()), new s2b(b)));
101963 g || (g = FAb(new YAb(null, (!b.e && (b.e = new y5d(B2, b, 7, 4)), new Kub(b.e, 16))), new u2b()));
101964 yNb(j, Nsc, (Bcb(), g ? true : false));
101965 e_b(j, f2, e, BD(hkd(b, Txc), 8));
101966 for (i3 = new Fyd((!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n)); i3.e != i3.i.gc(); ) {
101967 h = BD(Dyd(i3), 137);
101968 !Ccb(DD(hkd(h, Jxc))) && !!h.a && Ekb(j.f, Z1b(h));
101969 }
101970 switch (e.g) {
101971 case 2:
101972 case 1:
101973 (j.j == (Ucd(), Acd) || j.j == Rcd) && d.Fc((Orc(), Lrc));
101974 break;
101975 case 4:
101976 case 3:
101977 (j.j == (Ucd(), zcd) || j.j == Tcd) && d.Fc((Orc(), Lrc));
101978 }
101979 return j;
101980 }
101981 function nQc(a, b, c2, d, e, f2, g) {
101982 var h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
101983 m = null;
101984 d == (FQc(), DQc) ? m = b : d == EQc && (m = c2);
101985 for (p = m.a.ec().Kc(); p.Ob(); ) {
101986 o2 = BD(p.Pb(), 11);
101987 q = l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).b;
101988 t4 = new Tqb();
101989 h = new Tqb();
101990 for (j = new b1b(o2.b); llb(j.a) || llb(j.b); ) {
101991 i3 = BD(llb(j.a) ? mlb(j.a) : mlb(j.b), 17);
101992 if (Ccb(DD(vNb(i3, (wtc(), ltc)))) != e) {
101993 continue;
101994 }
101995 if (Jkb(f2, i3, 0) != -1) {
101996 i3.d == o2 ? r = i3.c : r = i3.d;
101997 s = l7c(OC(GC(m1, 1), nie, 8, 0, [r.i.n, r.n, r.a])).b;
101998 if ($wnd.Math.abs(s - q) < 0.2) {
101999 continue;
102000 }
102001 s < q ? b.a._b(r) ? Qqb(t4, new vgd(DQc, i3)) : Qqb(t4, new vgd(EQc, i3)) : b.a._b(r) ? Qqb(h, new vgd(DQc, i3)) : Qqb(h, new vgd(EQc, i3));
102002 }
102003 }
102004 if (t4.a.gc() > 1) {
102005 n = new ZQc(o2, t4, d);
102006 reb(t4, new PQc(a, n));
102007 g.c[g.c.length] = n;
102008 for (l = t4.a.ec().Kc(); l.Ob(); ) {
102009 k = BD(l.Pb(), 46);
102010 Lkb(f2, k.b);
102011 }
102012 }
102013 if (h.a.gc() > 1) {
102014 n = new ZQc(o2, h, d);
102015 reb(h, new RQc(a, n));
102016 g.c[g.c.length] = n;
102017 for (l = h.a.ec().Kc(); l.Ob(); ) {
102018 k = BD(l.Pb(), 46);
102019 Lkb(f2, k.b);
102020 }
102021 }
102022 }
102023 }
102024 function $Wc(a) {
102025 r4c(a, new E3c(L3c(P3c(M3c(O3c(N3c(new R3c(), sre), "ELK Radial"), 'A radial layout provider which is based on the algorithm of Peter Eades published in "Drawing free trees.", published by International Institute for Advanced Study of Social Information Science, Fujitsu Limited in 1991. The radial layouter takes a tree and places the nodes in radial order around the root. The nodes of the same tree level are placed on the same radius.'), new bXc()), sre)));
102026 p4c(a, sre, uqe, Ksd(UWc));
102027 p4c(a, sre, wme, Ksd(XWc));
102028 p4c(a, sre, Fme, Ksd(NWc));
102029 p4c(a, sre, Tme, Ksd(OWc));
102030 p4c(a, sre, Eme, Ksd(PWc));
102031 p4c(a, sre, Gme, Ksd(MWc));
102032 p4c(a, sre, Dme, Ksd(QWc));
102033 p4c(a, sre, Hme, Ksd(TWc));
102034 p4c(a, sre, ore, Ksd(KWc));
102035 p4c(a, sre, nre, Ksd(LWc));
102036 p4c(a, sre, rre, Ksd(RWc));
102037 p4c(a, sre, lre, Ksd(SWc));
102038 p4c(a, sre, mre, Ksd(VWc));
102039 p4c(a, sre, pre, Ksd(WWc));
102040 p4c(a, sre, qre, Ksd(YWc));
102041 }
102042 function LIb(a) {
102043 var b;
102044 this.r = Cy(new OIb(), new SIb());
102045 this.b = new Rpb(BD(Qb(F1), 290));
102046 this.p = new Rpb(BD(Qb(F1), 290));
102047 this.i = new Rpb(BD(Qb(DN), 290));
102048 this.e = a;
102049 this.o = new g7c(a.rf());
102050 this.D = a.Df() || Ccb(DD(a.We((Y9c(), M8c))));
102051 this.A = BD(a.We((Y9c(), Y8c)), 21);
102052 this.B = BD(a.We(b9c), 21);
102053 this.q = BD(a.We(t9c), 98);
102054 this.u = BD(a.We(x9c), 21);
102055 if (!ucd(this.u)) {
102056 throw vbb(new y2c("Invalid port label placement: " + this.u));
102057 }
102058 this.v = Ccb(DD(a.We(z9c)));
102059 this.j = BD(a.We(W8c), 21);
102060 if (!Jbd(this.j)) {
102061 throw vbb(new y2c("Invalid node label placement: " + this.j));
102062 }
102063 this.n = BD(bgd(a, U8c), 116);
102064 this.k = Edb(ED(bgd(a, Q9c)));
102065 this.d = Edb(ED(bgd(a, P9c)));
102066 this.w = Edb(ED(bgd(a, X9c)));
102067 this.s = Edb(ED(bgd(a, R9c)));
102068 this.t = Edb(ED(bgd(a, S9c)));
102069 this.C = BD(bgd(a, V9c), 142);
102070 this.c = 2 * this.d;
102071 b = !this.B.Hc((Idd(), zdd));
102072 this.f = new mIb(0, b, 0);
102073 this.g = new mIb(1, b, 0);
102074 lIb(this.f, (gHb(), eHb), this.g);
102075 }
102076 function Lgd(a, b, c2, d, e) {
102077 var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3;
102078 t4 = 0;
102079 o2 = 0;
102080 n = 0;
102081 m = 1;
102082 for (s = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); s.e != s.i.gc(); ) {
102083 q = BD(Dyd(s), 33);
102084 m += sr(new Sr(ur(_sd(q).a.Kc(), new Sq())));
102085 B = q.g;
102086 o2 = $wnd.Math.max(o2, B);
102087 l = q.f;
102088 n = $wnd.Math.max(n, l);
102089 t4 += B * l;
102090 }
102091 p = (!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a).i;
102092 g = t4 + 2 * d * d * m * p;
102093 f2 = $wnd.Math.sqrt(g);
102094 i3 = $wnd.Math.max(f2 * c2, o2);
102095 h = $wnd.Math.max(f2 / c2, n);
102096 for (r = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); r.e != r.i.gc(); ) {
102097 q = BD(Dyd(r), 33);
102098 C = e.b + (Cub(b, 26) * ike + Cub(b, 27) * jke) * (i3 - q.g);
102099 D3 = e.b + (Cub(b, 26) * ike + Cub(b, 27) * jke) * (h - q.f);
102100 dld(q, C);
102101 eld(q, D3);
102102 }
102103 A = i3 + (e.b + e.c);
102104 w2 = h + (e.d + e.a);
102105 for (v = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); v.e != v.i.gc(); ) {
102106 u2 = BD(Dyd(v), 33);
102107 for (k = new Sr(ur(_sd(u2).a.Kc(), new Sq())); Qr(k); ) {
102108 j = BD(Rr(k), 79);
102109 Pld(j) || Kgd(j, b, A, w2);
102110 }
102111 }
102112 A += e.b + e.c;
102113 w2 += e.d + e.a;
102114 Afd(a, A, w2, false, true);
102115 }
102116 function Jcb(a) {
102117 var b, c2, d, e, f2, g, h, i3, j, k, l;
102118 if (a == null) {
102119 throw vbb(new Oeb(Xhe));
102120 }
102121 j = a;
102122 f2 = a.length;
102123 i3 = false;
102124 if (f2 > 0) {
102125 b = (BCb(0, a.length), a.charCodeAt(0));
102126 if (b == 45 || b == 43) {
102127 a = a.substr(1);
102128 --f2;
102129 i3 = b == 45;
102130 }
102131 }
102132 if (f2 == 0) {
102133 throw vbb(new Oeb(Oje + j + '"'));
102134 }
102135 while (a.length > 0 && (BCb(0, a.length), a.charCodeAt(0) == 48)) {
102136 a = a.substr(1);
102137 --f2;
102138 }
102139 if (f2 > (Neb(), Leb)[10]) {
102140 throw vbb(new Oeb(Oje + j + '"'));
102141 }
102142 for (e = 0; e < f2; e++) {
102143 if (Zcb((BCb(e, a.length), a.charCodeAt(e))) == -1) {
102144 throw vbb(new Oeb(Oje + j + '"'));
102145 }
102146 }
102147 l = 0;
102148 g = Jeb[10];
102149 k = Keb[10];
102150 h = Jbb(Meb[10]);
102151 c2 = true;
102152 d = f2 % g;
102153 if (d > 0) {
102154 l = -parseInt(a.substr(0, d), 10);
102155 a = a.substr(d);
102156 f2 -= d;
102157 c2 = false;
102158 }
102159 while (f2 >= g) {
102160 d = parseInt(a.substr(0, g), 10);
102161 a = a.substr(g);
102162 f2 -= g;
102163 if (c2) {
102164 c2 = false;
102165 } else {
102166 if (ybb(l, h) < 0) {
102167 throw vbb(new Oeb(Oje + j + '"'));
102168 }
102169 l = Ibb(l, k);
102170 }
102171 l = Qbb(l, d);
102172 }
102173 if (ybb(l, 0) > 0) {
102174 throw vbb(new Oeb(Oje + j + '"'));
102175 }
102176 if (!i3) {
102177 l = Jbb(l);
102178 if (ybb(l, 0) < 0) {
102179 throw vbb(new Oeb(Oje + j + '"'));
102180 }
102181 }
102182 return l;
102183 }
102184 function Z6d(a, b) {
102185 X6d();
102186 var c2, d, e, f2, g, h, i3;
102187 this.a = new a7d(this);
102188 this.b = a;
102189 this.c = b;
102190 this.f = c2d(q1d((O6d(), M6d), b));
102191 if (this.f.dc()) {
102192 if ((h = t1d(M6d, a)) == b) {
102193 this.e = true;
102194 this.d = new Rkb();
102195 this.f = new oFd();
102196 this.f.Fc(Ewe);
102197 BD(V1d(p1d(M6d, bKd(a)), ""), 26) == a && this.f.Fc(u1d(M6d, bKd(a)));
102198 for (e = g1d(M6d, a).Kc(); e.Ob(); ) {
102199 d = BD(e.Pb(), 170);
102200 switch ($1d(q1d(M6d, d))) {
102201 case 4: {
102202 this.d.Fc(d);
102203 break;
102204 }
102205 case 5: {
102206 this.f.Gc(c2d(q1d(M6d, d)));
102207 break;
102208 }
102209 }
102210 }
102211 } else {
102212 Q6d();
102213 if (BD(b, 66).Oj()) {
102214 this.e = true;
102215 this.f = null;
102216 this.d = new Rkb();
102217 for (g = 0, i3 = (a.i == null && TKd(a), a.i).length; g < i3; ++g) {
102218 d = (c2 = (a.i == null && TKd(a), a.i), g >= 0 && g < c2.length ? c2[g] : null);
102219 for (f2 = _1d(q1d(M6d, d)); f2; f2 = _1d(q1d(M6d, f2))) {
102220 f2 == b && this.d.Fc(d);
102221 }
102222 }
102223 } else if ($1d(q1d(M6d, b)) == 1 && !!h) {
102224 this.f = null;
102225 this.d = (m8d(), l8d);
102226 } else {
102227 this.f = null;
102228 this.e = true;
102229 this.d = (mmb(), new anb(b));
102230 }
102231 }
102232 } else {
102233 this.e = $1d(q1d(M6d, b)) == 5;
102234 this.f.Fb(W6d) && (this.f = W6d);
102235 }
102236 }
102237 function zKb(a, b) {
102238 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
102239 c2 = 0;
102240 d = yKb(a, b);
102241 m = a.s;
102242 n = a.t;
102243 for (j = BD(BD(Qc(a.r, b), 21), 84).Kc(); j.Ob(); ) {
102244 i3 = BD(j.Pb(), 111);
102245 if (!i3.c || i3.c.d.c.length <= 0) {
102246 continue;
102247 }
102248 o2 = i3.b.rf();
102249 h = i3.b.Xe((Y9c(), s9c)) ? Edb(ED(i3.b.We(s9c))) : 0;
102250 k = i3.c;
102251 l = k.i;
102252 l.b = (g = k.n, k.e.a + g.b + g.c);
102253 l.a = (f2 = k.n, k.e.b + f2.d + f2.a);
102254 switch (b.g) {
102255 case 1:
102256 l.c = i3.a ? (o2.a - l.b) / 2 : o2.a + m;
102257 l.d = o2.b + h + d;
102258 $Hb(k, (NHb(), KHb));
102259 _Hb(k, (EIb(), DIb));
102260 break;
102261 case 3:
102262 l.c = i3.a ? (o2.a - l.b) / 2 : o2.a + m;
102263 l.d = -h - d - l.a;
102264 $Hb(k, (NHb(), KHb));
102265 _Hb(k, (EIb(), BIb));
102266 break;
102267 case 2:
102268 l.c = -h - d - l.b;
102269 if (i3.a) {
102270 e = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b;
102271 l.d = (o2.b - e) / 2;
102272 } else {
102273 l.d = o2.b + n;
102274 }
102275 $Hb(k, (NHb(), MHb));
102276 _Hb(k, (EIb(), CIb));
102277 break;
102278 case 4:
102279 l.c = o2.a + h + d;
102280 if (i3.a) {
102281 e = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b;
102282 l.d = (o2.b - e) / 2;
102283 } else {
102284 l.d = o2.b + n;
102285 }
102286 $Hb(k, (NHb(), LHb));
102287 _Hb(k, (EIb(), CIb));
102288 }
102289 (b == (Ucd(), Acd) || b == Rcd) && (c2 = $wnd.Math.max(c2, l.a));
102290 }
102291 c2 > 0 && (BD(Mpb(a.b, b), 124).a.b = c2);
102292 }
102293 function b3b(a, b) {
102294 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
102295 Odd(b, "Comment pre-processing", 1);
102296 c2 = 0;
102297 i3 = new olb(a.a);
102298 while (i3.a < i3.c.c.length) {
102299 h = BD(mlb(i3), 10);
102300 if (Ccb(DD(vNb(h, (Nyc(), pwc))))) {
102301 ++c2;
102302 e = 0;
102303 d = null;
102304 j = null;
102305 for (o2 = new olb(h.j); o2.a < o2.c.c.length; ) {
102306 m = BD(mlb(o2), 11);
102307 e += m.e.c.length + m.g.c.length;
102308 if (m.e.c.length == 1) {
102309 d = BD(Ikb(m.e, 0), 17);
102310 j = d.c;
102311 }
102312 if (m.g.c.length == 1) {
102313 d = BD(Ikb(m.g, 0), 17);
102314 j = d.d;
102315 }
102316 }
102317 if (e == 1 && j.e.c.length + j.g.c.length == 1 && !Ccb(DD(vNb(j.i, pwc)))) {
102318 c3b(h, d, j, j.i);
102319 nlb(i3);
102320 } else {
102321 r = new Rkb();
102322 for (n = new olb(h.j); n.a < n.c.c.length; ) {
102323 m = BD(mlb(n), 11);
102324 for (l = new olb(m.g); l.a < l.c.c.length; ) {
102325 k = BD(mlb(l), 17);
102326 k.d.g.c.length == 0 || (r.c[r.c.length] = k, true);
102327 }
102328 for (g = new olb(m.e); g.a < g.c.c.length; ) {
102329 f2 = BD(mlb(g), 17);
102330 f2.c.e.c.length == 0 || (r.c[r.c.length] = f2, true);
102331 }
102332 }
102333 for (q = new olb(r); q.a < q.c.c.length; ) {
102334 p = BD(mlb(q), 17);
102335 PZb(p, true);
102336 }
102337 }
102338 }
102339 }
102340 b.n && Sdd(b, "Found " + c2 + " comment boxes");
102341 Qdd(b);
102342 }
102343 function f9b(a, b, c2, d) {
102344 var e, f2, g, h, i3, j, k, l, m, n, o2, p;
102345 m = Edb(ED(vNb(a, (Nyc(), tyc))));
102346 n = Edb(ED(vNb(a, uyc)));
102347 l = Edb(ED(vNb(a, ryc)));
102348 h = a.o;
102349 f2 = BD(Ikb(a.j, 0), 11);
102350 g = f2.n;
102351 p = d9b(f2, l);
102352 if (!p) {
102353 return;
102354 }
102355 if (b.Hc((rcd(), ncd))) {
102356 switch (BD(vNb(a, (wtc(), Hsc)), 61).g) {
102357 case 1:
102358 p.c = (h.a - p.b) / 2 - g.a;
102359 p.d = n;
102360 break;
102361 case 3:
102362 p.c = (h.a - p.b) / 2 - g.a;
102363 p.d = -n - p.a;
102364 break;
102365 case 2:
102366 if (c2 && f2.e.c.length == 0 && f2.g.c.length == 0) {
102367 k = d ? p.a : BD(Ikb(f2.f, 0), 70).o.b;
102368 p.d = (h.b - k) / 2 - g.b;
102369 } else {
102370 p.d = h.b + n - g.b;
102371 }
102372 p.c = -m - p.b;
102373 break;
102374 case 4:
102375 if (c2 && f2.e.c.length == 0 && f2.g.c.length == 0) {
102376 k = d ? p.a : BD(Ikb(f2.f, 0), 70).o.b;
102377 p.d = (h.b - k) / 2 - g.b;
102378 } else {
102379 p.d = h.b + n - g.b;
102380 }
102381 p.c = m;
102382 }
102383 } else if (b.Hc(pcd)) {
102384 switch (BD(vNb(a, (wtc(), Hsc)), 61).g) {
102385 case 1:
102386 case 3:
102387 p.c = g.a + m;
102388 break;
102389 case 2:
102390 case 4:
102391 if (c2 && !f2.c) {
102392 k = d ? p.a : BD(Ikb(f2.f, 0), 70).o.b;
102393 p.d = (h.b - k) / 2 - g.b;
102394 } else {
102395 p.d = g.b + n;
102396 }
102397 }
102398 }
102399 e = p.d;
102400 for (j = new olb(f2.f); j.a < j.c.c.length; ) {
102401 i3 = BD(mlb(j), 70);
102402 o2 = i3.n;
102403 o2.a = p.c;
102404 o2.b = e;
102405 e += i3.o.b + l;
102406 }
102407 }
102408 function eae() {
102409 rEd(Q9, new Lae());
102410 rEd(S9, new qbe());
102411 rEd(T9, new Xbe());
102412 rEd(U9, new Cce());
102413 rEd(ZI, new Oce());
102414 rEd(GC(SD, 1), new Rce());
102415 rEd(wI, new Uce());
102416 rEd(xI, new Xce());
102417 rEd(ZI, new hae());
102418 rEd(ZI, new kae());
102419 rEd(ZI, new nae());
102420 rEd(BI, new qae());
102421 rEd(ZI, new tae());
102422 rEd(yK, new wae());
102423 rEd(yK, new zae());
102424 rEd(ZI, new Cae());
102425 rEd(FI, new Fae());
102426 rEd(ZI, new Iae());
102427 rEd(ZI, new Oae());
102428 rEd(ZI, new Rae());
102429 rEd(ZI, new Uae());
102430 rEd(ZI, new Xae());
102431 rEd(GC(SD, 1), new $ae());
102432 rEd(ZI, new bbe());
102433 rEd(ZI, new ebe());
102434 rEd(yK, new hbe());
102435 rEd(yK, new kbe());
102436 rEd(ZI, new nbe());
102437 rEd(JI, new tbe());
102438 rEd(ZI, new wbe());
102439 rEd(MI, new zbe());
102440 rEd(ZI, new Cbe());
102441 rEd(ZI, new Fbe());
102442 rEd(ZI, new Ibe());
102443 rEd(ZI, new Lbe());
102444 rEd(yK, new Obe());
102445 rEd(yK, new Rbe());
102446 rEd(ZI, new Ube());
102447 rEd(ZI, new $be());
102448 rEd(ZI, new bce());
102449 rEd(ZI, new ece());
102450 rEd(ZI, new hce());
102451 rEd(ZI, new kce());
102452 rEd(UI, new nce());
102453 rEd(ZI, new qce());
102454 rEd(ZI, new tce());
102455 rEd(ZI, new wce());
102456 rEd(UI, new zce());
102457 rEd(MI, new Fce());
102458 rEd(ZI, new Ice());
102459 rEd(JI, new Lce());
102460 }
102461 function Bmd(b, c2) {
102462 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
102463 n = c2.length;
102464 if (n > 0) {
102465 j = (BCb(0, c2.length), c2.charCodeAt(0));
102466 if (j != 64) {
102467 if (j == 37) {
102468 m = c2.lastIndexOf("%");
102469 k = false;
102470 if (m != 0 && (m == n - 1 || (k = (BCb(m + 1, c2.length), c2.charCodeAt(m + 1) == 46)))) {
102471 h = c2.substr(1, m - 1);
102472 u2 = dfb("%", h) ? null : QEd(h);
102473 e = 0;
102474 if (k) {
102475 try {
102476 e = Icb(c2.substr(m + 2), Rie, Ohe);
102477 } catch (a) {
102478 a = ubb(a);
102479 if (JD(a, 127)) {
102480 i3 = a;
102481 throw vbb(new rFd(i3));
102482 } else
102483 throw vbb(a);
102484 }
102485 }
102486 for (r = pRd(b.Wg()); r.Ob(); ) {
102487 p = MRd(r);
102488 if (JD(p, 510)) {
102489 f2 = BD(p, 590);
102490 t4 = f2.d;
102491 if ((u2 == null ? t4 == null : dfb(u2, t4)) && e-- == 0) {
102492 return f2;
102493 }
102494 }
102495 }
102496 return null;
102497 }
102498 }
102499 l = c2.lastIndexOf(".");
102500 o2 = l == -1 ? c2 : c2.substr(0, l);
102501 d = 0;
102502 if (l != -1) {
102503 try {
102504 d = Icb(c2.substr(l + 1), Rie, Ohe);
102505 } catch (a) {
102506 a = ubb(a);
102507 if (JD(a, 127)) {
102508 o2 = c2;
102509 } else
102510 throw vbb(a);
102511 }
102512 }
102513 o2 = dfb("%", o2) ? null : QEd(o2);
102514 for (q = pRd(b.Wg()); q.Ob(); ) {
102515 p = MRd(q);
102516 if (JD(p, 191)) {
102517 g = BD(p, 191);
102518 s = g.ne();
102519 if ((o2 == null ? s == null : dfb(o2, s)) && d-- == 0) {
102520 return g;
102521 }
102522 }
102523 }
102524 return null;
102525 }
102526 }
102527 return rid(b, c2);
102528 }
102529 function f6b(a) {
102530 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F;
102531 w2 = new Rkb();
102532 for (o2 = new olb(a.b); o2.a < o2.c.c.length; ) {
102533 n = BD(mlb(o2), 29);
102534 for (r = new olb(n.a); r.a < r.c.c.length; ) {
102535 p = BD(mlb(r), 10);
102536 if (p.k != (j0b(), e0b)) {
102537 continue;
102538 }
102539 if (!wNb(p, (wtc(), Gsc))) {
102540 continue;
102541 }
102542 s = null;
102543 u2 = null;
102544 t4 = null;
102545 for (C = new olb(p.j); C.a < C.c.c.length; ) {
102546 B = BD(mlb(C), 11);
102547 switch (B.j.g) {
102548 case 4:
102549 s = B;
102550 break;
102551 case 2:
102552 u2 = B;
102553 break;
102554 default:
102555 t4 = B;
102556 }
102557 }
102558 v = BD(Ikb(t4.g, 0), 17);
102559 k = new t7c(v.a);
102560 j = new g7c(t4.n);
102561 P6c(j, p.n);
102562 l = Jsb(k, 0);
102563 Vsb(l, j);
102564 A = w7c(v.a);
102565 m = new g7c(t4.n);
102566 P6c(m, p.n);
102567 Gsb(A, m, A.c.b, A.c);
102568 D3 = BD(vNb(p, Gsc), 10);
102569 F = BD(Ikb(D3.j, 0), 11);
102570 i3 = BD(Qkb(s.e, KC(AQ, jne, 17, 0, 0, 1)), 474);
102571 for (d = i3, f2 = 0, h = d.length; f2 < h; ++f2) {
102572 b = d[f2];
102573 RZb(b, F);
102574 o7c(b.a, b.a.b, k);
102575 }
102576 i3 = k_b(u2.g);
102577 for (c2 = i3, e = 0, g = c2.length; e < g; ++e) {
102578 b = c2[e];
102579 QZb(b, F);
102580 o7c(b.a, 0, A);
102581 }
102582 QZb(v, null);
102583 RZb(v, null);
102584 w2.c[w2.c.length] = p;
102585 }
102586 }
102587 for (q = new olb(w2); q.a < q.c.c.length; ) {
102588 p = BD(mlb(q), 10);
102589 $_b(p, null);
102590 }
102591 }
102592 function lgb() {
102593 lgb = ccb;
102594 var a, b, c2;
102595 new sgb(1, 0);
102596 new sgb(10, 0);
102597 new sgb(0, 0);
102598 dgb = KC(bJ, nie, 240, 11, 0, 1);
102599 egb = KC(TD, $ie, 25, 100, 15, 1);
102600 fgb = OC(GC(UD, 1), Vje, 25, 15, [1, 5, 25, 125, 625, 3125, 15625, 78125, 390625, 1953125, 9765625, 48828125, 244140625, 1220703125, 6103515625, 30517578125, 152587890625, 762939453125, 3814697265625, 19073486328125, 95367431640625, 476837158203125, 2384185791015625]);
102601 ggb = KC(WD, oje, 25, fgb.length, 15, 1);
102602 hgb = OC(GC(UD, 1), Vje, 25, 15, [1, 10, 100, _ie, 1e4, Wje, 1e6, 1e7, 1e8, Jje, 1e10, 1e11, 1e12, 1e13, 1e14, 1e15, 1e16]);
102603 igb = KC(WD, oje, 25, hgb.length, 15, 1);
102604 jgb = KC(bJ, nie, 240, 11, 0, 1);
102605 a = 0;
102606 for (; a < jgb.length; a++) {
102607 dgb[a] = new sgb(a, 0);
102608 jgb[a] = new sgb(0, a);
102609 egb[a] = 48;
102610 }
102611 for (; a < egb.length; a++) {
102612 egb[a] = 48;
102613 }
102614 for (c2 = 0; c2 < ggb.length; c2++) {
102615 ggb[c2] = ugb(fgb[c2]);
102616 }
102617 for (b = 0; b < igb.length; b++) {
102618 igb[b] = ugb(hgb[b]);
102619 }
102620 Dhb();
102621 }
102622 function zrb() {
102623 function e() {
102624 this.obj = this.createObject();
102625 }
102626 e.prototype.createObject = function(a) {
102627 return /* @__PURE__ */ Object.create(null);
102628 };
102629 e.prototype.get = function(a) {
102630 return this.obj[a];
102631 };
102632 e.prototype.set = function(a, b) {
102633 this.obj[a] = b;
102634 };
102635 e.prototype[hke] = function(a) {
102636 delete this.obj[a];
102637 };
102638 e.prototype.keys = function() {
102639 return Object.getOwnPropertyNames(this.obj);
102640 };
102641 e.prototype.entries = function() {
102642 var b = this.keys();
102643 var c2 = this;
102644 var d = 0;
102645 return { next: function() {
102646 if (d >= b.length)
102647 return { done: true };
102648 var a = b[d++];
102649 return { value: [a, c2.get(a)], done: false };
102650 } };
102651 };
102652 if (!xrb()) {
102653 e.prototype.createObject = function() {
102654 return {};
102655 };
102656 e.prototype.get = function(a) {
102657 return this.obj[":" + a];
102658 };
102659 e.prototype.set = function(a, b) {
102660 this.obj[":" + a] = b;
102661 };
102662 e.prototype[hke] = function(a) {
102663 delete this.obj[":" + a];
102664 };
102665 e.prototype.keys = function() {
102666 var a = [];
102667 for (var b in this.obj) {
102668 b.charCodeAt(0) == 58 && a.push(b.substring(1));
102669 }
102670 return a;
102671 };
102672 }
102673 return e;
102674 }
102675 function cde(a) {
102676 ade();
102677 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
102678 if (a == null)
102679 return null;
102680 l = a.length * 8;
102681 if (l == 0) {
102682 return "";
102683 }
102684 h = l % 24;
102685 n = l / 24 | 0;
102686 m = h != 0 ? n + 1 : n;
102687 f2 = null;
102688 f2 = KC(TD, $ie, 25, m * 4, 15, 1);
102689 j = 0;
102690 k = 0;
102691 b = 0;
102692 c2 = 0;
102693 d = 0;
102694 g = 0;
102695 e = 0;
102696 for (i3 = 0; i3 < n; i3++) {
102697 b = a[e++];
102698 c2 = a[e++];
102699 d = a[e++];
102700 k = (c2 & 15) << 24 >> 24;
102701 j = (b & 3) << 24 >> 24;
102702 o2 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24;
102703 p = (c2 & -128) == 0 ? c2 >> 4 << 24 >> 24 : (c2 >> 4 ^ 240) << 24 >> 24;
102704 q = (d & -128) == 0 ? d >> 6 << 24 >> 24 : (d >> 6 ^ 252) << 24 >> 24;
102705 f2[g++] = _ce[o2];
102706 f2[g++] = _ce[p | j << 4];
102707 f2[g++] = _ce[k << 2 | q];
102708 f2[g++] = _ce[d & 63];
102709 }
102710 if (h == 8) {
102711 b = a[e];
102712 j = (b & 3) << 24 >> 24;
102713 o2 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24;
102714 f2[g++] = _ce[o2];
102715 f2[g++] = _ce[j << 4];
102716 f2[g++] = 61;
102717 f2[g++] = 61;
102718 } else if (h == 16) {
102719 b = a[e];
102720 c2 = a[e + 1];
102721 k = (c2 & 15) << 24 >> 24;
102722 j = (b & 3) << 24 >> 24;
102723 o2 = (b & -128) == 0 ? b >> 2 << 24 >> 24 : (b >> 2 ^ 192) << 24 >> 24;
102724 p = (c2 & -128) == 0 ? c2 >> 4 << 24 >> 24 : (c2 >> 4 ^ 240) << 24 >> 24;
102725 f2[g++] = _ce[o2];
102726 f2[g++] = _ce[p | j << 4];
102727 f2[g++] = _ce[k << 2];
102728 f2[g++] = 61;
102729 }
102730 return zfb(f2, 0, f2.length);
102731 }
102732 function mB(a, b) {
102733 var c2, d, e, f2, g, h, i3;
102734 a.e == 0 && a.p > 0 && (a.p = -(a.p - 1));
102735 a.p > Rie && dB(b, a.p - nje);
102736 g = b.q.getDate();
102737 ZA(b, 1);
102738 a.k >= 0 && aB(b, a.k);
102739 if (a.c >= 0) {
102740 ZA(b, a.c);
102741 } else if (a.k >= 0) {
102742 i3 = new fB(b.q.getFullYear() - nje, b.q.getMonth(), 35);
102743 d = 35 - i3.q.getDate();
102744 ZA(b, $wnd.Math.min(d, g));
102745 } else {
102746 ZA(b, g);
102747 }
102748 a.f < 0 && (a.f = b.q.getHours());
102749 a.b > 0 && a.f < 12 && (a.f += 12);
102750 $A(b, a.f == 24 && a.g ? 0 : a.f);
102751 a.j >= 0 && _A(b, a.j);
102752 a.n >= 0 && bB(b, a.n);
102753 a.i >= 0 && cB(b, wbb(Ibb(Abb(Cbb(b.q.getTime()), _ie), _ie), a.i));
102754 if (a.a) {
102755 e = new eB();
102756 dB(e, e.q.getFullYear() - nje - 80);
102757 Gbb(Cbb(b.q.getTime()), Cbb(e.q.getTime())) && dB(b, e.q.getFullYear() - nje + 100);
102758 }
102759 if (a.d >= 0) {
102760 if (a.c == -1) {
102761 c2 = (7 + a.d - b.q.getDay()) % 7;
102762 c2 > 3 && (c2 -= 7);
102763 h = b.q.getMonth();
102764 ZA(b, b.q.getDate() + c2);
102765 b.q.getMonth() != h && ZA(b, b.q.getDate() + (c2 > 0 ? -7 : 7));
102766 } else {
102767 if (b.q.getDay() != a.d) {
102768 return false;
102769 }
102770 }
102771 }
102772 if (a.o > Rie) {
102773 f2 = b.q.getTimezoneOffset();
102774 cB(b, wbb(Cbb(b.q.getTime()), (a.o - f2) * 60 * _ie));
102775 }
102776 return true;
102777 }
102778 function z2b(a, b) {
102779 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
102780 e = vNb(b, (wtc(), $sc));
102781 if (!JD(e, 239)) {
102782 return;
102783 }
102784 o2 = BD(e, 33);
102785 p = b.e;
102786 m = new g7c(b.c);
102787 f2 = b.d;
102788 m.a += f2.b;
102789 m.b += f2.d;
102790 u2 = BD(hkd(o2, (Nyc(), Ixc)), 174);
102791 if (uqb(u2, (Idd(), Add))) {
102792 n = BD(hkd(o2, Kxc), 116);
102793 w_b(n, f2.a);
102794 z_b(n, f2.d);
102795 x_b(n, f2.b);
102796 y_b(n, f2.c);
102797 }
102798 c2 = new Rkb();
102799 for (k = new olb(b.a); k.a < k.c.c.length; ) {
102800 i3 = BD(mlb(k), 10);
102801 if (JD(vNb(i3, $sc), 239)) {
102802 A2b(i3, m);
102803 } else if (JD(vNb(i3, $sc), 186) && !p) {
102804 d = BD(vNb(i3, $sc), 118);
102805 s = b_b(b, i3, d.g, d.f);
102806 bld(d, s.a, s.b);
102807 }
102808 for (r = new olb(i3.j); r.a < r.c.c.length; ) {
102809 q = BD(mlb(r), 11);
102810 MAb(JAb(new YAb(null, new Kub(q.g, 16)), new G2b(i3)), new I2b(c2));
102811 }
102812 }
102813 if (p) {
102814 for (r = new olb(p.j); r.a < r.c.c.length; ) {
102815 q = BD(mlb(r), 11);
102816 MAb(JAb(new YAb(null, new Kub(q.g, 16)), new K2b(p)), new M2b(c2));
102817 }
102818 }
102819 t4 = BD(hkd(o2, Swc), 218);
102820 for (h = new olb(c2); h.a < h.c.c.length; ) {
102821 g = BD(mlb(h), 17);
102822 y2b(g, t4, m);
102823 }
102824 B2b(b);
102825 for (j = new olb(b.a); j.a < j.c.c.length; ) {
102826 i3 = BD(mlb(j), 10);
102827 l = i3.e;
102828 !!l && z2b(a, l);
102829 }
102830 }
102831 function xSb(a) {
102832 r4c(a, new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c(), ume), "ELK Force"), "Force-based algorithm provided by the Eclipse Layout Kernel. Implements methods that follow physical analogies by simulating forces that move the nodes into a balanced distribution. Currently the original Eades model and the Fruchterman - Reingold model are supported."), new ASb()), ume), qqb((Csd(), zsd), OC(GC(O3, 1), Kie, 237, 0, [xsd])))));
102833 p4c(a, ume, vme, meb(1));
102834 p4c(a, ume, wme, 80);
102835 p4c(a, ume, xme, 5);
102836 p4c(a, ume, _le, tme);
102837 p4c(a, ume, yme, meb(1));
102838 p4c(a, ume, zme, (Bcb(), true));
102839 p4c(a, ume, ame, lSb);
102840 p4c(a, ume, Ame, Ksd(dSb));
102841 p4c(a, ume, Bme, Ksd(mSb));
102842 p4c(a, ume, Cme, false);
102843 p4c(a, ume, Dme, Ksd(jSb));
102844 p4c(a, ume, Eme, Ksd(iSb));
102845 p4c(a, ume, Fme, Ksd(hSb));
102846 p4c(a, ume, Gme, Ksd(gSb));
102847 p4c(a, ume, Hme, Ksd(nSb));
102848 p4c(a, ume, mme, Ksd(fSb));
102849 p4c(a, ume, pme, Ksd(vSb));
102850 p4c(a, ume, nme, Ksd(eSb));
102851 p4c(a, ume, rme, Ksd(qSb));
102852 p4c(a, ume, ome, Ksd(rSb));
102853 }
102854 function GKb(a, b) {
102855 var c2, d, e, f2, g, h, i3, j, k, l, m, n;
102856 if (BD(BD(Qc(a.r, b), 21), 84).dc()) {
102857 return;
102858 }
102859 g = BD(Mpb(a.b, b), 124);
102860 i3 = g.i;
102861 h = g.n;
102862 k = KIb(a, b);
102863 d = i3.b - h.b - h.c;
102864 e = g.a.a;
102865 f2 = i3.c + h.b;
102866 n = a.w;
102867 if ((k == (Tbd(), Qbd) || k == Sbd) && BD(BD(Qc(a.r, b), 21), 84).gc() == 1) {
102868 e = k == Qbd ? e - 2 * a.w : e;
102869 k = Pbd;
102870 }
102871 if (d < e && !a.B.Hc((Idd(), Fdd))) {
102872 if (k == Qbd) {
102873 n += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1);
102874 f2 += n;
102875 } else {
102876 n += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1);
102877 }
102878 } else {
102879 if (d < e) {
102880 e = k == Qbd ? e - 2 * a.w : e;
102881 k = Pbd;
102882 }
102883 switch (k.g) {
102884 case 3:
102885 f2 += (d - e) / 2;
102886 break;
102887 case 4:
102888 f2 += d - e;
102889 break;
102890 case 0:
102891 c2 = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1);
102892 n += $wnd.Math.max(0, c2);
102893 f2 += n;
102894 break;
102895 case 1:
102896 c2 = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1);
102897 n += $wnd.Math.max(0, c2);
102898 }
102899 }
102900 for (m = BD(BD(Qc(a.r, b), 21), 84).Kc(); m.Ob(); ) {
102901 l = BD(m.Pb(), 111);
102902 l.e.a = f2 + l.d.b;
102903 l.e.b = (j = l.b, j.Xe((Y9c(), s9c)) ? j.Hf() == (Ucd(), Acd) ? -j.rf().b - Edb(ED(j.We(s9c))) : Edb(ED(j.We(s9c))) : j.Hf() == (Ucd(), Acd) ? -j.rf().b : 0);
102904 f2 += l.d.b + l.b.rf().a + l.d.c + n;
102905 }
102906 }
102907 function KKb(a, b) {
102908 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
102909 if (BD(BD(Qc(a.r, b), 21), 84).dc()) {
102910 return;
102911 }
102912 g = BD(Mpb(a.b, b), 124);
102913 i3 = g.i;
102914 h = g.n;
102915 l = KIb(a, b);
102916 d = i3.a - h.d - h.a;
102917 e = g.a.b;
102918 f2 = i3.d + h.d;
102919 o2 = a.w;
102920 j = a.o.a;
102921 if ((l == (Tbd(), Qbd) || l == Sbd) && BD(BD(Qc(a.r, b), 21), 84).gc() == 1) {
102922 e = l == Qbd ? e - 2 * a.w : e;
102923 l = Pbd;
102924 }
102925 if (d < e && !a.B.Hc((Idd(), Fdd))) {
102926 if (l == Qbd) {
102927 o2 += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1);
102928 f2 += o2;
102929 } else {
102930 o2 += (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1);
102931 }
102932 } else {
102933 if (d < e) {
102934 e = l == Qbd ? e - 2 * a.w : e;
102935 l = Pbd;
102936 }
102937 switch (l.g) {
102938 case 3:
102939 f2 += (d - e) / 2;
102940 break;
102941 case 4:
102942 f2 += d - e;
102943 break;
102944 case 0:
102945 c2 = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() + 1);
102946 o2 += $wnd.Math.max(0, c2);
102947 f2 += o2;
102948 break;
102949 case 1:
102950 c2 = (d - e) / (BD(BD(Qc(a.r, b), 21), 84).gc() - 1);
102951 o2 += $wnd.Math.max(0, c2);
102952 }
102953 }
102954 for (n = BD(BD(Qc(a.r, b), 21), 84).Kc(); n.Ob(); ) {
102955 m = BD(n.Pb(), 111);
102956 m.e.a = (k = m.b, k.Xe((Y9c(), s9c)) ? k.Hf() == (Ucd(), Tcd) ? -k.rf().a - Edb(ED(k.We(s9c))) : j + Edb(ED(k.We(s9c))) : k.Hf() == (Ucd(), Tcd) ? -k.rf().a : j);
102957 m.e.b = f2 + m.d.d;
102958 f2 += m.d.d + m.b.rf().b + m.d.a + o2;
102959 }
102960 }
102961 function Abc(a) {
102962 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
102963 a.n = Edb(ED(vNb(a.g, (Nyc(), vyc))));
102964 a.e = Edb(ED(vNb(a.g, pyc)));
102965 a.i = a.g.b.c.length;
102966 h = a.i - 1;
102967 m = 0;
102968 a.j = 0;
102969 a.k = 0;
102970 a.a = Ou(KC(JI, nie, 19, a.i, 0, 1));
102971 a.b = Ou(KC(BI, nie, 333, a.i, 7, 1));
102972 for (g = new olb(a.g.b); g.a < g.c.c.length; ) {
102973 e = BD(mlb(g), 29);
102974 e.p = h;
102975 for (l = new olb(e.a); l.a < l.c.c.length; ) {
102976 k = BD(mlb(l), 10);
102977 k.p = m;
102978 ++m;
102979 }
102980 --h;
102981 }
102982 a.f = KC(WD, oje, 25, m, 15, 1);
102983 a.c = IC(WD, [nie, oje], [48, 25], 15, [m, 3], 2);
102984 a.o = new Rkb();
102985 a.p = new Rkb();
102986 b = 0;
102987 a.d = 0;
102988 for (f2 = new olb(a.g.b); f2.a < f2.c.c.length; ) {
102989 e = BD(mlb(f2), 29);
102990 h = e.p;
102991 d = 0;
102992 p = 0;
102993 i3 = e.a.c.length;
102994 j = 0;
102995 for (l = new olb(e.a); l.a < l.c.c.length; ) {
102996 k = BD(mlb(l), 10);
102997 m = k.p;
102998 a.f[m] = k.c.p;
102999 j += k.o.b + a.n;
103000 c2 = sr(new Sr(ur(R_b(k).a.Kc(), new Sq())));
103001 o2 = sr(new Sr(ur(U_b(k).a.Kc(), new Sq())));
103002 a.c[m][0] = o2 - c2;
103003 a.c[m][1] = c2;
103004 a.c[m][2] = o2;
103005 d += c2;
103006 p += o2;
103007 c2 > 0 && Ekb(a.p, k);
103008 Ekb(a.o, k);
103009 }
103010 b -= d;
103011 n = i3 + b;
103012 j += b * a.e;
103013 Nkb(a.a, h, meb(n));
103014 Nkb(a.b, h, j);
103015 a.j = $wnd.Math.max(a.j, n);
103016 a.k = $wnd.Math.max(a.k, j);
103017 a.d += b;
103018 b += p;
103019 }
103020 }
103021 function Ucd() {
103022 Ucd = ccb;
103023 var a;
103024 Scd = new Ycd(ole, 0);
103025 Acd = new Ycd(xle, 1);
103026 zcd = new Ycd(yle, 2);
103027 Rcd = new Ycd(zle, 3);
103028 Tcd = new Ycd(Ale, 4);
103029 Fcd = (mmb(), new zob((a = BD(gdb(F1), 9), new xqb(a, BD(_Bb(a, a.length), 9), 0))));
103030 Gcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [])));
103031 Bcd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [])));
103032 Ocd = Up(qqb(Rcd, OC(GC(F1, 1), bne, 61, 0, [])));
103033 Qcd = Up(qqb(Tcd, OC(GC(F1, 1), bne, 61, 0, [])));
103034 Lcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [Rcd])));
103035 Ecd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [Tcd])));
103036 Ncd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [Tcd])));
103037 Hcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd])));
103038 Pcd = Up(qqb(Rcd, OC(GC(F1, 1), bne, 61, 0, [Tcd])));
103039 Ccd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [Rcd])));
103040 Kcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd, Tcd])));
103041 Dcd = Up(qqb(zcd, OC(GC(F1, 1), bne, 61, 0, [Rcd, Tcd])));
103042 Mcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [Rcd, Tcd])));
103043 Icd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd, Rcd])));
103044 Jcd = Up(qqb(Acd, OC(GC(F1, 1), bne, 61, 0, [zcd, Rcd, Tcd])));
103045 }
103046 function fSc(a, b) {
103047 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
103048 if (b.b != 0) {
103049 n = new Psb();
103050 h = null;
103051 o2 = null;
103052 d = QD($wnd.Math.floor($wnd.Math.log(b.b) * $wnd.Math.LOG10E) + 1);
103053 i3 = 0;
103054 for (t4 = Jsb(b, 0); t4.b != t4.d.c; ) {
103055 r = BD(Xsb(t4), 86);
103056 if (PD(o2) !== PD(vNb(r, (mTc(), $Sc)))) {
103057 o2 = GD(vNb(r, $Sc));
103058 i3 = 0;
103059 }
103060 o2 != null ? h = o2 + iSc(i3++, d) : h = iSc(i3++, d);
103061 yNb(r, $Sc, h);
103062 for (q = (e = Jsb(new ZRc(r).a.d, 0), new aSc(e)); Wsb(q.a); ) {
103063 p = BD(Xsb(q.a), 188).c;
103064 Gsb(n, p, n.c.b, n.c);
103065 yNb(p, $Sc, h);
103066 }
103067 }
103068 m = new Lqb();
103069 for (g = 0; g < h.length - d; g++) {
103070 for (s = Jsb(b, 0); s.b != s.d.c; ) {
103071 r = BD(Xsb(s), 86);
103072 j = qfb(GD(vNb(r, (mTc(), $Sc))), 0, g + 1);
103073 c2 = (j == null ? Wd(irb(m.f, null)) : Crb(m.g, j)) != null ? BD(j == null ? Wd(irb(m.f, null)) : Crb(m.g, j), 19).a + 1 : 1;
103074 Shb(m, j, meb(c2));
103075 }
103076 }
103077 for (l = new nib(new eib(m).a); l.b; ) {
103078 k = lib(l);
103079 f2 = meb(Ohb(a.a, k.cd()) != null ? BD(Ohb(a.a, k.cd()), 19).a : 0);
103080 Shb(a.a, GD(k.cd()), meb(BD(k.dd(), 19).a + f2.a));
103081 f2 = BD(Ohb(a.b, k.cd()), 19);
103082 (!f2 || f2.a < BD(k.dd(), 19).a) && Shb(a.b, GD(k.cd()), BD(k.dd(), 19));
103083 }
103084 fSc(a, n);
103085 }
103086 }
103087 function PCc(a, b, c2) {
103088 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
103089 Odd(c2, "Interactive node layering", 1);
103090 d = new Rkb();
103091 for (n = new olb(b.a); n.a < n.c.c.length; ) {
103092 l = BD(mlb(n), 10);
103093 j = l.n.a;
103094 i3 = j + l.o.a;
103095 i3 = $wnd.Math.max(j + 1, i3);
103096 r = new Bib(d, 0);
103097 e = null;
103098 while (r.b < r.d.gc()) {
103099 p = (sCb(r.b < r.d.gc()), BD(r.d.Xb(r.c = r.b++), 569));
103100 if (p.c >= i3) {
103101 sCb(r.b > 0);
103102 r.a.Xb(r.c = --r.b);
103103 break;
103104 } else if (p.a > j) {
103105 if (!e) {
103106 Ekb(p.b, l);
103107 p.c = $wnd.Math.min(p.c, j);
103108 p.a = $wnd.Math.max(p.a, i3);
103109 e = p;
103110 } else {
103111 Gkb(e.b, p.b);
103112 e.a = $wnd.Math.max(e.a, p.a);
103113 uib(r);
103114 }
103115 }
103116 }
103117 if (!e) {
103118 e = new TCc();
103119 e.c = j;
103120 e.a = i3;
103121 Aib(r, e);
103122 Ekb(e.b, l);
103123 }
103124 }
103125 h = b.b;
103126 k = 0;
103127 for (q = new olb(d); q.a < q.c.c.length; ) {
103128 p = BD(mlb(q), 569);
103129 f2 = new H1b(b);
103130 f2.p = k++;
103131 h.c[h.c.length] = f2;
103132 for (o2 = new olb(p.b); o2.a < o2.c.c.length; ) {
103133 l = BD(mlb(o2), 10);
103134 $_b(l, f2);
103135 l.p = 0;
103136 }
103137 }
103138 for (m = new olb(b.a); m.a < m.c.c.length; ) {
103139 l = BD(mlb(m), 10);
103140 l.p == 0 && OCc(a, l, b);
103141 }
103142 g = new Bib(h, 0);
103143 while (g.b < g.d.gc()) {
103144 (sCb(g.b < g.d.gc()), BD(g.d.Xb(g.c = g.b++), 29)).a.c.length == 0 && uib(g);
103145 }
103146 b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
103147 Qdd(c2);
103148 }
103149 function Snc(a, b, c2) {
103150 var d, e, f2, g, h, i3, j, k, l, m;
103151 if (b.e.c.length != 0 && c2.e.c.length != 0) {
103152 d = BD(Ikb(b.e, 0), 17).c.i;
103153 g = BD(Ikb(c2.e, 0), 17).c.i;
103154 if (d == g) {
103155 return beb(BD(vNb(BD(Ikb(b.e, 0), 17), (wtc(), Zsc)), 19).a, BD(vNb(BD(Ikb(c2.e, 0), 17), Zsc), 19).a);
103156 }
103157 for (k = a.a, l = 0, m = k.length; l < m; ++l) {
103158 j = k[l];
103159 if (j == d) {
103160 return 1;
103161 } else if (j == g) {
103162 return -1;
103163 }
103164 }
103165 }
103166 if (b.g.c.length != 0 && c2.g.c.length != 0) {
103167 f2 = BD(vNb(b, (wtc(), Xsc)), 10);
103168 i3 = BD(vNb(c2, Xsc), 10);
103169 e = 0;
103170 h = 0;
103171 wNb(BD(Ikb(b.g, 0), 17), Zsc) && (e = BD(vNb(BD(Ikb(b.g, 0), 17), Zsc), 19).a);
103172 wNb(BD(Ikb(c2.g, 0), 17), Zsc) && (h = BD(vNb(BD(Ikb(b.g, 0), 17), Zsc), 19).a);
103173 if (!!f2 && f2 == i3) {
103174 if (Ccb(DD(vNb(BD(Ikb(b.g, 0), 17), ltc))) && !Ccb(DD(vNb(BD(Ikb(c2.g, 0), 17), ltc)))) {
103175 return 1;
103176 } else if (!Ccb(DD(vNb(BD(Ikb(b.g, 0), 17), ltc))) && Ccb(DD(vNb(BD(Ikb(c2.g, 0), 17), ltc)))) {
103177 return -1;
103178 }
103179 return e < h ? -1 : e > h ? 1 : 0;
103180 }
103181 if (a.b) {
103182 a.b._b(f2) && (e = BD(a.b.xc(f2), 19).a);
103183 a.b._b(i3) && (h = BD(a.b.xc(i3), 19).a);
103184 }
103185 return e < h ? -1 : e > h ? 1 : 0;
103186 }
103187 return b.e.c.length != 0 && c2.g.c.length != 0 ? 1 : -1;
103188 }
103189 function acc(a, b) {
103190 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A;
103191 Odd(b, Ine, 1);
103192 p = new Rkb();
103193 w2 = new Rkb();
103194 for (j = new olb(a.b); j.a < j.c.c.length; ) {
103195 i3 = BD(mlb(j), 29);
103196 r = -1;
103197 o2 = l_b(i3.a);
103198 for (l = o2, m = 0, n = l.length; m < n; ++m) {
103199 k = l[m];
103200 ++r;
103201 if (!(k.k == (j0b(), h0b) && fcd(BD(vNb(k, (Nyc(), Vxc)), 98)))) {
103202 continue;
103203 }
103204 ecd(BD(vNb(k, (Nyc(), Vxc)), 98)) || bcc(k);
103205 yNb(k, (wtc(), Psc), k);
103206 p.c = KC(SI, Uhe, 1, 0, 5, 1);
103207 w2.c = KC(SI, Uhe, 1, 0, 5, 1);
103208 c2 = new Rkb();
103209 u2 = new Psb();
103210 Jq(u2, Y_b(k, (Ucd(), Acd)));
103211 $bc(a, u2, p, w2, c2);
103212 h = r;
103213 A = k;
103214 for (f2 = new olb(p); f2.a < f2.c.c.length; ) {
103215 d = BD(mlb(f2), 10);
103216 Z_b(d, h, i3);
103217 ++r;
103218 yNb(d, Psc, k);
103219 g = BD(Ikb(d.j, 0), 11);
103220 q = BD(vNb(g, $sc), 11);
103221 Ccb(DD(vNb(q, nwc))) || BD(vNb(d, Qsc), 15).Fc(A);
103222 }
103223 Osb(u2);
103224 for (t4 = Y_b(k, Rcd).Kc(); t4.Ob(); ) {
103225 s = BD(t4.Pb(), 11);
103226 Gsb(u2, s, u2.a, u2.a.a);
103227 }
103228 $bc(a, u2, w2, null, c2);
103229 v = k;
103230 for (e = new olb(w2); e.a < e.c.c.length; ) {
103231 d = BD(mlb(e), 10);
103232 Z_b(d, ++r, i3);
103233 yNb(d, Psc, k);
103234 g = BD(Ikb(d.j, 0), 11);
103235 q = BD(vNb(g, $sc), 11);
103236 Ccb(DD(vNb(q, nwc))) || BD(vNb(v, Qsc), 15).Fc(d);
103237 }
103238 c2.c.length == 0 || yNb(k, ssc, c2);
103239 }
103240 }
103241 Qdd(b);
103242 }
103243 function SQb(a) {
103244 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I;
103245 l = BD(vNb(a, (HSb(), FSb)), 33);
103246 r = Ohe;
103247 s = Ohe;
103248 p = Rie;
103249 q = Rie;
103250 for (u2 = new olb(a.e); u2.a < u2.c.c.length; ) {
103251 t4 = BD(mlb(u2), 144);
103252 C = t4.d;
103253 D3 = t4.e;
103254 r = $wnd.Math.min(r, C.a - D3.a / 2);
103255 s = $wnd.Math.min(s, C.b - D3.b / 2);
103256 p = $wnd.Math.max(p, C.a + D3.a / 2);
103257 q = $wnd.Math.max(q, C.b + D3.b / 2);
103258 }
103259 B = BD(hkd(l, (wSb(), kSb)), 116);
103260 A = new f7c(B.b - r, B.d - s);
103261 for (h = new olb(a.e); h.a < h.c.c.length; ) {
103262 g = BD(mlb(h), 144);
103263 w2 = vNb(g, FSb);
103264 if (JD(w2, 239)) {
103265 n = BD(w2, 33);
103266 v = P6c(g.d, A);
103267 bld(n, v.a - n.g / 2, v.b - n.f / 2);
103268 }
103269 }
103270 for (d = new olb(a.c); d.a < d.c.c.length; ) {
103271 c2 = BD(mlb(d), 282);
103272 j = BD(vNb(c2, FSb), 79);
103273 k = itd(j, true, true);
103274 F = (H2 = c7c(R6c(c2.d.d), c2.c.d), l6c(H2, c2.c.e.a, c2.c.e.b), P6c(H2, c2.c.d));
103275 nmd(k, F.a, F.b);
103276 b = (I = c7c(R6c(c2.c.d), c2.d.d), l6c(I, c2.d.e.a, c2.d.e.b), P6c(I, c2.d.d));
103277 gmd(k, b.a, b.b);
103278 }
103279 for (f2 = new olb(a.d); f2.a < f2.c.c.length; ) {
103280 e = BD(mlb(f2), 447);
103281 m = BD(vNb(e, FSb), 137);
103282 o2 = P6c(e.d, A);
103283 bld(m, o2.a, o2.b);
103284 }
103285 G = p - r + (B.b + B.c);
103286 i3 = q - s + (B.d + B.a);
103287 Afd(l, G, i3, false, true);
103288 }
103289 function bmc(a) {
103290 var b, c2, d, e, f2, g, h, i3, j, k, l, m;
103291 c2 = null;
103292 i3 = null;
103293 e = BD(vNb(a.b, (Nyc(), Wwc)), 376);
103294 if (e == (_Ac(), ZAc)) {
103295 c2 = new Rkb();
103296 i3 = new Rkb();
103297 }
103298 for (h = new olb(a.d); h.a < h.c.c.length; ) {
103299 g = BD(mlb(h), 101);
103300 f2 = g.i;
103301 if (!f2) {
103302 continue;
103303 }
103304 switch (g.e.g) {
103305 case 0:
103306 b = BD(Fqb(new Gqb(g.b)), 61);
103307 e == ZAc && b == (Ucd(), Acd) ? (c2.c[c2.c.length] = g, true) : e == ZAc && b == (Ucd(), Rcd) ? (i3.c[i3.c.length] = g, true) : _lc(g, b);
103308 break;
103309 case 1:
103310 j = g.a.d.j;
103311 k = g.c.d.j;
103312 j == (Ucd(), Acd) ? amc(g, Acd, (Ajc(), xjc), g.a) : k == Acd ? amc(g, Acd, (Ajc(), yjc), g.c) : j == Rcd ? amc(g, Rcd, (Ajc(), yjc), g.a) : k == Rcd && amc(g, Rcd, (Ajc(), xjc), g.c);
103313 break;
103314 case 2:
103315 case 3:
103316 d = g.b;
103317 uqb(d, (Ucd(), Acd)) ? uqb(d, Rcd) ? uqb(d, Tcd) ? uqb(d, zcd) || amc(g, Acd, (Ajc(), yjc), g.c) : amc(g, Acd, (Ajc(), xjc), g.a) : amc(g, Acd, (Ajc(), wjc), null) : amc(g, Rcd, (Ajc(), wjc), null);
103318 break;
103319 case 4:
103320 l = g.a.d.j;
103321 m = g.a.d.j;
103322 l == (Ucd(), Acd) || m == Acd ? amc(g, Rcd, (Ajc(), wjc), null) : amc(g, Acd, (Ajc(), wjc), null);
103323 }
103324 }
103325 if (c2) {
103326 c2.c.length == 0 || $lc(c2, (Ucd(), Acd));
103327 i3.c.length == 0 || $lc(i3, (Ucd(), Rcd));
103328 }
103329 }
103330 function A2b(a, b) {
103331 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
103332 d = BD(vNb(a, (wtc(), $sc)), 33);
103333 o2 = BD(vNb(a, (Nyc(), Gwc)), 19).a;
103334 f2 = BD(vNb(a, nxc), 19).a;
103335 jkd(d, Gwc, meb(o2));
103336 jkd(d, nxc, meb(f2));
103337 dld(d, a.n.a + b.a);
103338 eld(d, a.n.b + b.b);
103339 if (BD(hkd(d, Fxc), 174).gc() != 0 || !!a.e || PD(vNb(Q_b(a), Exc)) === PD((Vzc(), Tzc)) && Jzc((Izc(), (!a.q ? (mmb(), mmb(), kmb) : a.q)._b(Cxc) ? m = BD(vNb(a, Cxc), 197) : m = BD(vNb(Q_b(a), Dxc), 197), m))) {
103340 cld(d, a.o.a);
103341 ald(d, a.o.b);
103342 }
103343 for (l = new olb(a.j); l.a < l.c.c.length; ) {
103344 j = BD(mlb(l), 11);
103345 p = vNb(j, $sc);
103346 if (JD(p, 186)) {
103347 e = BD(p, 118);
103348 bld(e, j.n.a, j.n.b);
103349 jkd(e, $xc, j.j);
103350 }
103351 }
103352 n = BD(vNb(a, xxc), 174).gc() != 0;
103353 for (i3 = new olb(a.b); i3.a < i3.c.c.length; ) {
103354 g = BD(mlb(i3), 70);
103355 if (n || BD(vNb(g, xxc), 174).gc() != 0) {
103356 c2 = BD(vNb(g, $sc), 137);
103357 _kd(c2, g.o.a, g.o.b);
103358 bld(c2, g.n.a, g.n.b);
103359 }
103360 }
103361 if (!tcd(BD(vNb(a, Yxc), 21))) {
103362 for (k = new olb(a.j); k.a < k.c.c.length; ) {
103363 j = BD(mlb(k), 11);
103364 for (h = new olb(j.f); h.a < h.c.c.length; ) {
103365 g = BD(mlb(h), 70);
103366 c2 = BD(vNb(g, $sc), 137);
103367 cld(c2, g.o.a);
103368 ald(c2, g.o.b);
103369 bld(c2, g.n.a, g.n.b);
103370 }
103371 }
103372 }
103373 }
103374 function gtd(a) {
103375 var b, c2, d, e, f2;
103376 ytb(a, hue2);
103377 switch ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i + (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i) {
103378 case 0:
103379 throw vbb(new Wdb("The edge must have at least one source or target."));
103380 case 1:
103381 return (!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i == 0 ? Xod(atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82))) : Xod(atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)));
103382 }
103383 if ((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b).i == 1 && (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c).i == 1) {
103384 e = atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82));
103385 f2 = atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82));
103386 if (Xod(e) == Xod(f2)) {
103387 return Xod(e);
103388 } else if (e == Xod(f2)) {
103389 return e;
103390 } else if (f2 == Xod(e)) {
103391 return f2;
103392 }
103393 }
103394 d = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), (!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)])));
103395 b = atd(BD(Rr(d), 82));
103396 while (Qr(d)) {
103397 c2 = atd(BD(Rr(d), 82));
103398 if (c2 != b && !ntd(c2, b)) {
103399 if (Xod(c2) == Xod(b)) {
103400 b = Xod(c2);
103401 } else {
103402 b = htd(b, c2);
103403 if (!b) {
103404 return null;
103405 }
103406 }
103407 }
103408 }
103409 return b;
103410 }
103411 function KNc(a, b, c2) {
103412 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
103413 Odd(c2, "Polyline edge routing", 1);
103414 q = Edb(ED(vNb(b, (Nyc(), Uwc))));
103415 n = Edb(ED(vNb(b, wyc)));
103416 e = Edb(ED(vNb(b, myc)));
103417 d = $wnd.Math.min(1, e / n);
103418 t4 = 0;
103419 i3 = 0;
103420 if (b.b.c.length != 0) {
103421 u2 = HNc(BD(Ikb(b.b, 0), 29));
103422 t4 = 0.4 * d * u2;
103423 }
103424 h = new Bib(b.b, 0);
103425 while (h.b < h.d.gc()) {
103426 g = (sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29));
103427 f2 = Kq(g, DNc);
103428 f2 && t4 > 0 && (t4 -= n);
103429 h_b(g, t4);
103430 k = 0;
103431 for (m = new olb(g.a); m.a < m.c.c.length; ) {
103432 l = BD(mlb(m), 10);
103433 j = 0;
103434 for (p = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(p); ) {
103435 o2 = BD(Rr(p), 17);
103436 r = A0b(o2.c).b;
103437 s = A0b(o2.d).b;
103438 if (g == o2.d.i.c && !OZb(o2)) {
103439 LNc(o2, t4, 0.4 * d * $wnd.Math.abs(r - s));
103440 if (o2.c.j == (Ucd(), Tcd)) {
103441 r = 0;
103442 s = 0;
103443 }
103444 }
103445 j = $wnd.Math.max(j, $wnd.Math.abs(s - r));
103446 }
103447 switch (l.k.g) {
103448 case 0:
103449 case 4:
103450 case 1:
103451 case 3:
103452 case 5:
103453 MNc(a, l, t4, q);
103454 }
103455 k = $wnd.Math.max(k, j);
103456 }
103457 if (h.b < h.d.gc()) {
103458 u2 = HNc((sCb(h.b < h.d.gc()), BD(h.d.Xb(h.c = h.b++), 29)));
103459 k = $wnd.Math.max(k, u2);
103460 sCb(h.b > 0);
103461 h.a.Xb(h.c = --h.b);
103462 }
103463 i3 = 0.4 * d * k;
103464 !f2 && h.b < h.d.gc() && (i3 += n);
103465 t4 += g.c.a + i3;
103466 }
103467 a.a.a.$b();
103468 b.f.a = t4;
103469 Qdd(c2);
103470 }
103471 function bic(a) {
103472 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s;
103473 k = new Lqb();
103474 i3 = new Hp();
103475 for (d = new olb(a.a.a.b); d.a < d.c.c.length; ) {
103476 b = BD(mlb(d), 57);
103477 j = tgc(b);
103478 if (j) {
103479 jrb(k.f, j, b);
103480 } else {
103481 s = ugc(b);
103482 if (s) {
103483 for (f2 = new olb(s.k); f2.a < f2.c.c.length; ) {
103484 e = BD(mlb(f2), 17);
103485 Rc(i3, e, b);
103486 }
103487 }
103488 }
103489 }
103490 for (c2 = new olb(a.a.a.b); c2.a < c2.c.c.length; ) {
103491 b = BD(mlb(c2), 57);
103492 j = tgc(b);
103493 if (j) {
103494 for (h = new Sr(ur(U_b(j).a.Kc(), new Sq())); Qr(h); ) {
103495 g = BD(Rr(h), 17);
103496 if (OZb(g)) {
103497 continue;
103498 }
103499 o2 = g.c;
103500 r = g.d;
103501 if ((Ucd(), Lcd).Hc(g.c.j) && Lcd.Hc(g.d.j)) {
103502 continue;
103503 }
103504 p = BD(Ohb(k, g.d.i), 57);
103505 AFb(DFb(CFb(EFb(BFb(new FFb(), 0), 100), a.c[b.a.d]), a.c[p.a.d]));
103506 if (o2.j == Tcd && l1b((z0b(), o2))) {
103507 for (m = BD(Qc(i3, g), 21).Kc(); m.Ob(); ) {
103508 l = BD(m.Pb(), 57);
103509 if (l.d.c < b.d.c) {
103510 n = a.c[l.a.d];
103511 q = a.c[b.a.d];
103512 if (n == q) {
103513 continue;
103514 }
103515 AFb(DFb(CFb(EFb(BFb(new FFb(), 1), 100), n), q));
103516 }
103517 }
103518 }
103519 if (r.j == zcd && g1b((z0b(), r))) {
103520 for (m = BD(Qc(i3, g), 21).Kc(); m.Ob(); ) {
103521 l = BD(m.Pb(), 57);
103522 if (l.d.c > b.d.c) {
103523 n = a.c[b.a.d];
103524 q = a.c[l.a.d];
103525 if (n == q) {
103526 continue;
103527 }
103528 AFb(DFb(CFb(EFb(BFb(new FFb(), 1), 100), n), q));
103529 }
103530 }
103531 }
103532 }
103533 }
103534 }
103535 }
103536 function QEd(a) {
103537 IEd();
103538 var b, c2, d, e, f2, g, h, i3;
103539 if (a == null)
103540 return null;
103541 e = hfb(a, wfb(37));
103542 if (e < 0) {
103543 return a;
103544 } else {
103545 i3 = new Wfb(a.substr(0, e));
103546 b = KC(SD, wte, 25, 4, 15, 1);
103547 h = 0;
103548 d = 0;
103549 for (g = a.length; e < g; e++) {
103550 BCb(e, a.length);
103551 if (a.charCodeAt(e) == 37 && a.length > e + 2 && _Ed((BCb(e + 1, a.length), a.charCodeAt(e + 1)), xEd, yEd) && _Ed((BCb(e + 2, a.length), a.charCodeAt(e + 2)), xEd, yEd)) {
103552 c2 = dFd((BCb(e + 1, a.length), a.charCodeAt(e + 1)), (BCb(e + 2, a.length), a.charCodeAt(e + 2)));
103553 e += 2;
103554 if (d > 0) {
103555 (c2 & 192) == 128 ? b[h++] = c2 << 24 >> 24 : d = 0;
103556 } else if (c2 >= 128) {
103557 if ((c2 & 224) == 192) {
103558 b[h++] = c2 << 24 >> 24;
103559 d = 2;
103560 } else if ((c2 & 240) == 224) {
103561 b[h++] = c2 << 24 >> 24;
103562 d = 3;
103563 } else if ((c2 & 248) == 240) {
103564 b[h++] = c2 << 24 >> 24;
103565 d = 4;
103566 }
103567 }
103568 if (d > 0) {
103569 if (h == d) {
103570 switch (h) {
103571 case 2: {
103572 Kfb(i3, ((b[0] & 31) << 6 | b[1] & 63) & aje);
103573 break;
103574 }
103575 case 3: {
103576 Kfb(i3, ((b[0] & 15) << 12 | (b[1] & 63) << 6 | b[2] & 63) & aje);
103577 break;
103578 }
103579 }
103580 h = 0;
103581 d = 0;
103582 }
103583 } else {
103584 for (f2 = 0; f2 < h; ++f2) {
103585 Kfb(i3, b[f2] & aje);
103586 }
103587 h = 0;
103588 i3.a += String.fromCharCode(c2);
103589 }
103590 } else {
103591 for (f2 = 0; f2 < h; ++f2) {
103592 Kfb(i3, b[f2] & aje);
103593 }
103594 h = 0;
103595 Kfb(i3, (BCb(e, a.length), a.charCodeAt(e)));
103596 }
103597 }
103598 return i3.a;
103599 }
103600 }
103601 function wA(a, b, c2, d, e) {
103602 var f2, g, h;
103603 uA(a, b);
103604 g = b[0];
103605 f2 = bfb(c2.c, 0);
103606 h = -1;
103607 if (nA(c2)) {
103608 if (d > 0) {
103609 if (g + d > a.length) {
103610 return false;
103611 }
103612 h = rA(a.substr(0, g + d), b);
103613 } else {
103614 h = rA(a, b);
103615 }
103616 }
103617 switch (f2) {
103618 case 71:
103619 h = oA(a, g, OC(GC(ZI, 1), nie, 2, 6, [pje, qje]), b);
103620 e.e = h;
103621 return true;
103622 case 77:
103623 return zA(a, b, e, h, g);
103624 case 76:
103625 return BA(a, b, e, h, g);
103626 case 69:
103627 return xA(a, b, g, e);
103628 case 99:
103629 return AA(a, b, g, e);
103630 case 97:
103631 h = oA(a, g, OC(GC(ZI, 1), nie, 2, 6, ["AM", "PM"]), b);
103632 e.b = h;
103633 return true;
103634 case 121:
103635 return DA(a, b, g, h, c2, e);
103636 case 100:
103637 if (h <= 0) {
103638 return false;
103639 }
103640 e.c = h;
103641 return true;
103642 case 83:
103643 if (h < 0) {
103644 return false;
103645 }
103646 return yA(h, g, b[0], e);
103647 case 104:
103648 h == 12 && (h = 0);
103649 case 75:
103650 case 72:
103651 if (h < 0) {
103652 return false;
103653 }
103654 e.f = h;
103655 e.g = false;
103656 return true;
103657 case 107:
103658 if (h < 0) {
103659 return false;
103660 }
103661 e.f = h;
103662 e.g = true;
103663 return true;
103664 case 109:
103665 if (h < 0) {
103666 return false;
103667 }
103668 e.j = h;
103669 return true;
103670 case 115:
103671 if (h < 0) {
103672 return false;
103673 }
103674 e.n = h;
103675 return true;
103676 case 90:
103677 if (g < a.length && (BCb(g, a.length), a.charCodeAt(g) == 90)) {
103678 ++b[0];
103679 e.o = 0;
103680 return true;
103681 }
103682 case 122:
103683 case 118:
103684 return CA(a, g, b, e);
103685 default:
103686 return false;
103687 }
103688 }
103689 function vKb(a, b) {
103690 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
103691 m = BD(BD(Qc(a.r, b), 21), 84);
103692 if (b == (Ucd(), zcd) || b == Tcd) {
103693 zKb(a, b);
103694 return;
103695 }
103696 f2 = b == Acd ? (vLb(), rLb) : (vLb(), uLb);
103697 u2 = b == Acd ? (EIb(), DIb) : (EIb(), BIb);
103698 c2 = BD(Mpb(a.b, b), 124);
103699 d = c2.i;
103700 e = d.c + w6c(OC(GC(UD, 1), Vje, 25, 15, [c2.n.b, a.C.b, a.k]));
103701 r = d.c + d.b - w6c(OC(GC(UD, 1), Vje, 25, 15, [c2.n.c, a.C.c, a.k]));
103702 g = dLb(iLb(f2), a.t);
103703 s = b == Acd ? Qje : Pje;
103704 for (l = m.Kc(); l.Ob(); ) {
103705 j = BD(l.Pb(), 111);
103706 if (!j.c || j.c.d.c.length <= 0) {
103707 continue;
103708 }
103709 q = j.b.rf();
103710 p = j.e;
103711 n = j.c;
103712 o2 = n.i;
103713 o2.b = (i3 = n.n, n.e.a + i3.b + i3.c);
103714 o2.a = (h = n.n, n.e.b + h.d + h.a);
103715 ytb(u2, lle);
103716 n.f = u2;
103717 $Hb(n, (NHb(), MHb));
103718 o2.c = p.a - (o2.b - q.a) / 2;
103719 v = $wnd.Math.min(e, p.a);
103720 w2 = $wnd.Math.max(r, p.a + q.a);
103721 o2.c < v ? o2.c = v : o2.c + o2.b > w2 && (o2.c = w2 - o2.b);
103722 Ekb(g.d, new BLb(o2, bLb(g, o2)));
103723 s = b == Acd ? $wnd.Math.max(s, p.b + j.b.rf().b) : $wnd.Math.min(s, p.b);
103724 }
103725 s += b == Acd ? a.t : -a.t;
103726 t4 = cLb((g.e = s, g));
103727 t4 > 0 && (BD(Mpb(a.b, b), 124).a.b = t4);
103728 for (k = m.Kc(); k.Ob(); ) {
103729 j = BD(k.Pb(), 111);
103730 if (!j.c || j.c.d.c.length <= 0) {
103731 continue;
103732 }
103733 o2 = j.c.i;
103734 o2.c -= j.e.a;
103735 o2.d -= j.e.b;
103736 }
103737 }
103738 function SPb(a) {
103739 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n;
103740 b = new Lqb();
103741 for (i3 = new Fyd(a); i3.e != i3.i.gc(); ) {
103742 h = BD(Dyd(i3), 33);
103743 c2 = new Tqb();
103744 Rhb(OPb, h, c2);
103745 n = new aQb();
103746 e = BD(GAb(new YAb(null, new Lub(new Sr(ur($sd(h).a.Kc(), new Sq())))), Wyb(n, Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [(Fyb(), Dyb)])))), 83);
103747 RPb(c2, BD(e.xc((Bcb(), true)), 14), new cQb());
103748 d = BD(GAb(JAb(BD(e.xc(false), 15).Lc(), new eQb()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [Dyb]))), 15);
103749 for (g = d.Kc(); g.Ob(); ) {
103750 f2 = BD(g.Pb(), 79);
103751 m = ktd(f2);
103752 if (m) {
103753 j = BD(Wd(irb(b.f, m)), 21);
103754 if (!j) {
103755 j = UPb(m);
103756 jrb(b.f, m, j);
103757 }
103758 ye(c2, j);
103759 }
103760 }
103761 e = BD(GAb(new YAb(null, new Lub(new Sr(ur(_sd(h).a.Kc(), new Sq())))), Wyb(n, Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [Dyb])))), 83);
103762 RPb(c2, BD(e.xc(true), 14), new gQb());
103763 d = BD(GAb(JAb(BD(e.xc(false), 15).Lc(), new iQb()), Byb(new fzb(), new dzb(), new Ezb(), OC(GC(xL, 1), Kie, 132, 0, [Dyb]))), 15);
103764 for (l = d.Kc(); l.Ob(); ) {
103765 k = BD(l.Pb(), 79);
103766 m = mtd(k);
103767 if (m) {
103768 j = BD(Wd(irb(b.f, m)), 21);
103769 if (!j) {
103770 j = UPb(m);
103771 jrb(b.f, m, j);
103772 }
103773 ye(c2, j);
103774 }
103775 }
103776 }
103777 }
103778 function rhb(a, b) {
103779 phb();
103780 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
103781 i3 = ybb(a, 0) < 0;
103782 i3 && (a = Jbb(a));
103783 if (ybb(a, 0) == 0) {
103784 switch (b) {
103785 case 0:
103786 return "0";
103787 case 1:
103788 return $je;
103789 case 2:
103790 return "0.00";
103791 case 3:
103792 return "0.000";
103793 case 4:
103794 return "0.0000";
103795 case 5:
103796 return "0.00000";
103797 case 6:
103798 return "0.000000";
103799 default:
103800 n = new Ufb();
103801 b < 0 ? (n.a += "0E+", n) : (n.a += "0E", n);
103802 n.a += b == Rie ? "2147483648" : "" + -b;
103803 return n.a;
103804 }
103805 }
103806 k = 18;
103807 l = KC(TD, $ie, 25, k + 1, 15, 1);
103808 c2 = k;
103809 p = a;
103810 do {
103811 j = p;
103812 p = Abb(p, 10);
103813 l[--c2] = Tbb(wbb(48, Qbb(j, Ibb(p, 10)))) & aje;
103814 } while (ybb(p, 0) != 0);
103815 e = Qbb(Qbb(Qbb(k, c2), b), 1);
103816 if (b == 0) {
103817 i3 && (l[--c2] = 45);
103818 return zfb(l, c2, k - c2);
103819 }
103820 if (b > 0 && ybb(e, -6) >= 0) {
103821 if (ybb(e, 0) >= 0) {
103822 f2 = c2 + Tbb(e);
103823 for (h = k - 1; h >= f2; h--) {
103824 l[h + 1] = l[h];
103825 }
103826 l[++f2] = 46;
103827 i3 && (l[--c2] = 45);
103828 return zfb(l, c2, k - c2 + 1);
103829 }
103830 for (g = 2; Gbb(g, wbb(Jbb(e), 1)); g++) {
103831 l[--c2] = 48;
103832 }
103833 l[--c2] = 46;
103834 l[--c2] = 48;
103835 i3 && (l[--c2] = 45);
103836 return zfb(l, c2, k - c2);
103837 }
103838 o2 = c2 + 1;
103839 d = k;
103840 m = new Vfb();
103841 i3 && (m.a += "-", m);
103842 if (d - o2 >= 1) {
103843 Kfb(m, l[c2]);
103844 m.a += ".";
103845 m.a += zfb(l, c2 + 1, k - c2 - 1);
103846 } else {
103847 m.a += zfb(l, c2, k - c2);
103848 }
103849 m.a += "E";
103850 ybb(e, 0) > 0 && (m.a += "+", m);
103851 m.a += "" + Ubb(e);
103852 return m.a;
103853 }
103854 function iQc(a, b, c2) {
103855 var d, e, f2, g, h, i3, j, k, l, m, n;
103856 a.e.a.$b();
103857 a.f.a.$b();
103858 a.c.c = KC(SI, Uhe, 1, 0, 5, 1);
103859 a.i.c = KC(SI, Uhe, 1, 0, 5, 1);
103860 a.g.a.$b();
103861 if (b) {
103862 for (g = new olb(b.a); g.a < g.c.c.length; ) {
103863 f2 = BD(mlb(g), 10);
103864 for (l = Y_b(f2, (Ucd(), zcd)).Kc(); l.Ob(); ) {
103865 k = BD(l.Pb(), 11);
103866 Qqb(a.e, k);
103867 for (e = new olb(k.g); e.a < e.c.c.length; ) {
103868 d = BD(mlb(e), 17);
103869 if (OZb(d)) {
103870 continue;
103871 }
103872 Ekb(a.c, d);
103873 oQc(a, d);
103874 h = d.c.i.k;
103875 (h == (j0b(), h0b) || h == i0b || h == e0b || h == d0b) && Ekb(a.j, d);
103876 n = d.d;
103877 m = n.i.c;
103878 m == c2 ? Qqb(a.f, n) : m == b ? Qqb(a.e, n) : Lkb(a.c, d);
103879 }
103880 }
103881 }
103882 }
103883 if (c2) {
103884 for (g = new olb(c2.a); g.a < g.c.c.length; ) {
103885 f2 = BD(mlb(g), 10);
103886 for (j = new olb(f2.j); j.a < j.c.c.length; ) {
103887 i3 = BD(mlb(j), 11);
103888 for (e = new olb(i3.g); e.a < e.c.c.length; ) {
103889 d = BD(mlb(e), 17);
103890 OZb(d) && Qqb(a.g, d);
103891 }
103892 }
103893 for (l = Y_b(f2, (Ucd(), Tcd)).Kc(); l.Ob(); ) {
103894 k = BD(l.Pb(), 11);
103895 Qqb(a.f, k);
103896 for (e = new olb(k.g); e.a < e.c.c.length; ) {
103897 d = BD(mlb(e), 17);
103898 if (OZb(d)) {
103899 continue;
103900 }
103901 Ekb(a.c, d);
103902 oQc(a, d);
103903 h = d.c.i.k;
103904 (h == (j0b(), h0b) || h == i0b || h == e0b || h == d0b) && Ekb(a.j, d);
103905 n = d.d;
103906 m = n.i.c;
103907 m == c2 ? Qqb(a.f, n) : m == b ? Qqb(a.e, n) : Lkb(a.c, d);
103908 }
103909 }
103910 }
103911 }
103912 }
103913 function Afd(a, b, c2, d, e) {
103914 var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
103915 q = new f7c(a.g, a.f);
103916 p = rfd(a);
103917 p.a = $wnd.Math.max(p.a, b);
103918 p.b = $wnd.Math.max(p.b, c2);
103919 w2 = p.a / q.a;
103920 k = p.b / q.b;
103921 u2 = p.a - q.a;
103922 i3 = p.b - q.b;
103923 if (d) {
103924 g = !Xod(a) ? BD(hkd(a, (Y9c(), z8c)), 103) : BD(hkd(Xod(a), (Y9c(), z8c)), 103);
103925 h = PD(hkd(a, (Y9c(), t9c))) === PD((dcd(), $bd));
103926 for (s = new Fyd((!a.c && (a.c = new cUd(F2, a, 9, 9)), a.c)); s.e != s.i.gc(); ) {
103927 r = BD(Dyd(s), 118);
103928 t4 = BD(hkd(r, A9c), 61);
103929 if (t4 == (Ucd(), Scd)) {
103930 t4 = lfd(r, g);
103931 jkd(r, A9c, t4);
103932 }
103933 switch (t4.g) {
103934 case 1:
103935 h || dld(r, r.i * w2);
103936 break;
103937 case 2:
103938 dld(r, r.i + u2);
103939 h || eld(r, r.j * k);
103940 break;
103941 case 3:
103942 h || dld(r, r.i * w2);
103943 eld(r, r.j + i3);
103944 break;
103945 case 4:
103946 h || eld(r, r.j * k);
103947 }
103948 }
103949 }
103950 _kd(a, p.a, p.b);
103951 if (e) {
103952 for (m = new Fyd((!a.n && (a.n = new cUd(D2, a, 1, 7)), a.n)); m.e != m.i.gc(); ) {
103953 l = BD(Dyd(m), 137);
103954 n = l.i + l.g / 2;
103955 o2 = l.j + l.f / 2;
103956 v = n / q.a;
103957 j = o2 / q.b;
103958 if (v + j >= 1) {
103959 if (v - j > 0 && o2 >= 0) {
103960 dld(l, l.i + u2);
103961 eld(l, l.j + i3 * j);
103962 } else if (v - j < 0 && n >= 0) {
103963 dld(l, l.i + u2 * v);
103964 eld(l, l.j + i3);
103965 }
103966 }
103967 }
103968 }
103969 jkd(a, (Y9c(), Y8c), (tdd(), f2 = BD(gdb(I1), 9), new xqb(f2, BD(_Bb(f2, f2.length), 9), 0)));
103970 return new f7c(w2, k);
103971 }
103972 function Yfd(a) {
103973 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
103974 n = Xod(atd(BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82)));
103975 o2 = Xod(atd(BD(qud((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c), 0), 82)));
103976 l = n == o2;
103977 h = new d7c();
103978 b = BD(hkd(a, (Zad(), Sad)), 74);
103979 if (!!b && b.b >= 2) {
103980 if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i == 0) {
103981 c2 = (Fhd(), e = new rmd(), e);
103982 wtd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), c2);
103983 } else if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i > 1) {
103984 m = new Oyd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a));
103985 while (m.e != m.i.gc()) {
103986 Eyd(m);
103987 }
103988 }
103989 ifd(b, BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202));
103990 }
103991 if (l) {
103992 for (d = new Fyd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a)); d.e != d.i.gc(); ) {
103993 c2 = BD(Dyd(d), 202);
103994 for (j = new Fyd((!c2.a && (c2.a = new xMd(y2, c2, 5)), c2.a)); j.e != j.i.gc(); ) {
103995 i3 = BD(Dyd(j), 469);
103996 h.a = $wnd.Math.max(h.a, i3.a);
103997 h.b = $wnd.Math.max(h.b, i3.b);
103998 }
103999 }
104000 }
104001 for (g = new Fyd((!a.n && (a.n = new cUd(D2, a, 1, 7)), a.n)); g.e != g.i.gc(); ) {
104002 f2 = BD(Dyd(g), 137);
104003 k = BD(hkd(f2, Yad), 8);
104004 !!k && bld(f2, k.a, k.b);
104005 if (l) {
104006 h.a = $wnd.Math.max(h.a, f2.i + f2.g);
104007 h.b = $wnd.Math.max(h.b, f2.j + f2.f);
104008 }
104009 }
104010 return h;
104011 }
104012 function yMc(a, b, c2) {
104013 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B;
104014 t4 = b.c.length;
104015 e = new ULc(a.a, c2, null, null);
104016 B = KC(UD, Vje, 25, t4, 15, 1);
104017 p = KC(UD, Vje, 25, t4, 15, 1);
104018 o2 = KC(UD, Vje, 25, t4, 15, 1);
104019 q = 0;
104020 for (h = 0; h < t4; h++) {
104021 p[h] = Ohe;
104022 o2[h] = Rie;
104023 }
104024 for (i3 = 0; i3 < t4; i3++) {
104025 d = (tCb(i3, b.c.length), BD(b.c[i3], 180));
104026 B[i3] = SLc(d);
104027 B[q] > B[i3] && (q = i3);
104028 for (l = new olb(a.a.b); l.a < l.c.c.length; ) {
104029 k = BD(mlb(l), 29);
104030 for (s = new olb(k.a); s.a < s.c.c.length; ) {
104031 r = BD(mlb(s), 10);
104032 w2 = Edb(d.p[r.p]) + Edb(d.d[r.p]);
104033 p[i3] = $wnd.Math.min(p[i3], w2);
104034 o2[i3] = $wnd.Math.max(o2[i3], w2 + r.o.b);
104035 }
104036 }
104037 }
104038 A = KC(UD, Vje, 25, t4, 15, 1);
104039 for (j = 0; j < t4; j++) {
104040 (tCb(j, b.c.length), BD(b.c[j], 180)).o == (eMc(), cMc) ? A[j] = p[q] - p[j] : A[j] = o2[q] - o2[j];
104041 }
104042 f2 = KC(UD, Vje, 25, t4, 15, 1);
104043 for (n = new olb(a.a.b); n.a < n.c.c.length; ) {
104044 m = BD(mlb(n), 29);
104045 for (v = new olb(m.a); v.a < v.c.c.length; ) {
104046 u2 = BD(mlb(v), 10);
104047 for (g = 0; g < t4; g++) {
104048 f2[g] = Edb((tCb(g, b.c.length), BD(b.c[g], 180)).p[u2.p]) + Edb((tCb(g, b.c.length), BD(b.c[g], 180)).d[u2.p]) + A[g];
104049 }
104050 f2.sort(dcb(Ylb.prototype.te, Ylb, []));
104051 e.p[u2.p] = (f2[1] + f2[2]) / 2;
104052 e.d[u2.p] = 0;
104053 }
104054 }
104055 return e;
104056 }
104057 function G3b(a, b, c2) {
104058 var d, e, f2, g, h;
104059 d = b.i;
104060 f2 = a.i.o;
104061 e = a.i.d;
104062 h = a.n;
104063 g = l7c(OC(GC(m1, 1), nie, 8, 0, [h, a.a]));
104064 switch (a.j.g) {
104065 case 1:
104066 _Hb(b, (EIb(), BIb));
104067 d.d = -e.d - c2 - d.a;
104068 if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) {
104069 $Hb(b, (NHb(), MHb));
104070 d.c = g.a - Edb(ED(vNb(a, Ysc))) - c2 - d.b;
104071 } else {
104072 $Hb(b, (NHb(), LHb));
104073 d.c = g.a + Edb(ED(vNb(a, Ysc))) + c2;
104074 }
104075 break;
104076 case 2:
104077 $Hb(b, (NHb(), LHb));
104078 d.c = f2.a + e.c + c2;
104079 if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) {
104080 _Hb(b, (EIb(), BIb));
104081 d.d = g.b - Edb(ED(vNb(a, Ysc))) - c2 - d.a;
104082 } else {
104083 _Hb(b, (EIb(), DIb));
104084 d.d = g.b + Edb(ED(vNb(a, Ysc))) + c2;
104085 }
104086 break;
104087 case 3:
104088 _Hb(b, (EIb(), DIb));
104089 d.d = f2.b + e.a + c2;
104090 if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) {
104091 $Hb(b, (NHb(), MHb));
104092 d.c = g.a - Edb(ED(vNb(a, Ysc))) - c2 - d.b;
104093 } else {
104094 $Hb(b, (NHb(), LHb));
104095 d.c = g.a + Edb(ED(vNb(a, Ysc))) + c2;
104096 }
104097 break;
104098 case 4:
104099 $Hb(b, (NHb(), MHb));
104100 d.c = -e.b - c2 - d.b;
104101 if (BD(BD(Ikb(b.d, 0), 181).We((wtc(), Ssc)), 285) == (rbd(), nbd)) {
104102 _Hb(b, (EIb(), BIb));
104103 d.d = g.b - Edb(ED(vNb(a, Ysc))) - c2 - d.a;
104104 } else {
104105 _Hb(b, (EIb(), DIb));
104106 d.d = g.b + Edb(ED(vNb(a, Ysc))) + c2;
104107 }
104108 }
104109 }
104110 function ded(a, b, c2, d, e, f2, g) {
104111 var h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I;
104112 n = 0;
104113 D3 = 0;
104114 for (i3 = new olb(a); i3.a < i3.c.c.length; ) {
104115 h = BD(mlb(i3), 33);
104116 zfd(h);
104117 n = $wnd.Math.max(n, h.g);
104118 D3 += h.g * h.f;
104119 }
104120 o2 = D3 / a.c.length;
104121 C = $dd(a, o2);
104122 D3 += a.c.length * C;
104123 n = $wnd.Math.max(n, $wnd.Math.sqrt(D3 * g)) + c2.b;
104124 H2 = c2.b;
104125 I = c2.d;
104126 m = 0;
104127 k = c2.b + c2.c;
104128 B = new Psb();
104129 Dsb(B, meb(0));
104130 w2 = new Psb();
104131 j = new Bib(a, 0);
104132 while (j.b < j.d.gc()) {
104133 h = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 33));
104134 G = h.g;
104135 l = h.f;
104136 if (H2 + G > n) {
104137 if (f2) {
104138 Fsb(w2, m);
104139 Fsb(B, meb(j.b - 1));
104140 }
104141 H2 = c2.b;
104142 I += m + b;
104143 m = 0;
104144 k = $wnd.Math.max(k, c2.b + c2.c + G);
104145 }
104146 dld(h, H2);
104147 eld(h, I);
104148 k = $wnd.Math.max(k, H2 + G + c2.c);
104149 m = $wnd.Math.max(m, l);
104150 H2 += G + b;
104151 }
104152 k = $wnd.Math.max(k, d);
104153 F = I + m + c2.a;
104154 if (F < e) {
104155 m += e - F;
104156 F = e;
104157 }
104158 if (f2) {
104159 H2 = c2.b;
104160 j = new Bib(a, 0);
104161 Fsb(B, meb(a.c.length));
104162 A = Jsb(B, 0);
104163 r = BD(Xsb(A), 19).a;
104164 Fsb(w2, m);
104165 v = Jsb(w2, 0);
104166 u2 = 0;
104167 while (j.b < j.d.gc()) {
104168 if (j.b == r) {
104169 H2 = c2.b;
104170 u2 = Edb(ED(Xsb(v)));
104171 r = BD(Xsb(A), 19).a;
104172 }
104173 h = (sCb(j.b < j.d.gc()), BD(j.d.Xb(j.c = j.b++), 33));
104174 s = h.f;
104175 ald(h, u2);
104176 p = u2;
104177 if (j.b == r) {
104178 q = k - H2 - c2.c;
104179 t4 = h.g;
104180 cld(h, q);
104181 Ffd(h, new f7c(q, p), new f7c(t4, s));
104182 }
104183 H2 += h.g + b;
104184 }
104185 }
104186 return new f7c(k, F);
104187 }
104188 function _Yb(a, b) {
104189 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C;
104190 Odd(b, "Compound graph postprocessor", 1);
104191 c2 = Ccb(DD(vNb(a, (Nyc(), Byc))));
104192 h = BD(vNb(a, (wtc(), zsc)), 224);
104193 k = new Tqb();
104194 for (r = h.ec().Kc(); r.Ob(); ) {
104195 q = BD(r.Pb(), 17);
104196 g = new Tkb(h.cc(q));
104197 mmb();
104198 Okb(g, new EZb(a));
104199 v = zZb((tCb(0, g.c.length), BD(g.c[0], 243)));
104200 A = AZb(BD(Ikb(g, g.c.length - 1), 243));
104201 t4 = v.i;
104202 f_b(A.i, t4) ? s = t4.e : s = Q_b(t4);
104203 l = aZb(q, g);
104204 Osb(q.a);
104205 m = null;
104206 for (f2 = new olb(g); f2.a < f2.c.c.length; ) {
104207 e = BD(mlb(f2), 243);
104208 p = new d7c();
104209 Y$b(p, e.a, s);
104210 n = e.b;
104211 d = new s7c();
104212 o7c(d, 0, n.a);
104213 q7c(d, p);
104214 u2 = new g7c(A0b(n.c));
104215 w2 = new g7c(A0b(n.d));
104216 P6c(u2, p);
104217 P6c(w2, p);
104218 if (m) {
104219 d.b == 0 ? o2 = w2 : o2 = (sCb(d.b != 0), BD(d.a.a.c, 8));
104220 B = $wnd.Math.abs(m.a - o2.a) > qme;
104221 C = $wnd.Math.abs(m.b - o2.b) > qme;
104222 (!c2 && B && C || c2 && (B || C)) && Dsb(q.a, u2);
104223 }
104224 ye(q.a, d);
104225 d.b == 0 ? m = u2 : m = (sCb(d.b != 0), BD(d.c.b.c, 8));
104226 bZb(n, l, p);
104227 if (AZb(e) == A) {
104228 if (Q_b(A.i) != e.a) {
104229 p = new d7c();
104230 Y$b(p, Q_b(A.i), s);
104231 }
104232 yNb(q, utc, p);
104233 }
104234 cZb(n, q, s);
104235 k.a.zc(n, k);
104236 }
104237 QZb(q, v);
104238 RZb(q, A);
104239 }
104240 for (j = k.a.ec().Kc(); j.Ob(); ) {
104241 i3 = BD(j.Pb(), 17);
104242 QZb(i3, null);
104243 RZb(i3, null);
104244 }
104245 Qdd(b);
104246 }
104247 function KQb(a) {
104248 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
104249 if (a.gc() == 1) {
104250 return BD(a.Xb(0), 231);
104251 } else if (a.gc() <= 0) {
104252 return new kRb();
104253 }
104254 for (e = a.Kc(); e.Ob(); ) {
104255 c2 = BD(e.Pb(), 231);
104256 o2 = 0;
104257 k = Ohe;
104258 l = Ohe;
104259 i3 = Rie;
104260 j = Rie;
104261 for (n = new olb(c2.e); n.a < n.c.c.length; ) {
104262 m = BD(mlb(n), 144);
104263 o2 += BD(vNb(m, (wSb(), oSb)), 19).a;
104264 k = $wnd.Math.min(k, m.d.a - m.e.a / 2);
104265 l = $wnd.Math.min(l, m.d.b - m.e.b / 2);
104266 i3 = $wnd.Math.max(i3, m.d.a + m.e.a / 2);
104267 j = $wnd.Math.max(j, m.d.b + m.e.b / 2);
104268 }
104269 yNb(c2, (wSb(), oSb), meb(o2));
104270 yNb(c2, (HSb(), ESb), new f7c(k, l));
104271 yNb(c2, DSb, new f7c(i3, j));
104272 }
104273 mmb();
104274 a.ad(new OQb());
104275 p = new kRb();
104276 tNb(p, BD(a.Xb(0), 94));
104277 h = 0;
104278 s = 0;
104279 for (f2 = a.Kc(); f2.Ob(); ) {
104280 c2 = BD(f2.Pb(), 231);
104281 q = c7c(R6c(BD(vNb(c2, (HSb(), DSb)), 8)), BD(vNb(c2, ESb), 8));
104282 h = $wnd.Math.max(h, q.a);
104283 s += q.a * q.b;
104284 }
104285 h = $wnd.Math.max(h, $wnd.Math.sqrt(s) * Edb(ED(vNb(p, (wSb(), bSb)))));
104286 r = Edb(ED(vNb(p, uSb)));
104287 t4 = 0;
104288 u2 = 0;
104289 g = 0;
104290 b = r;
104291 for (d = a.Kc(); d.Ob(); ) {
104292 c2 = BD(d.Pb(), 231);
104293 q = c7c(R6c(BD(vNb(c2, (HSb(), DSb)), 8)), BD(vNb(c2, ESb), 8));
104294 if (t4 + q.a > h) {
104295 t4 = 0;
104296 u2 += g + r;
104297 g = 0;
104298 }
104299 JQb(p, c2, t4, u2);
104300 b = $wnd.Math.max(b, t4 + q.a);
104301 g = $wnd.Math.max(g, q.b);
104302 t4 += q.a + r;
104303 }
104304 return p;
104305 }
104306 function Ioc(a, b) {
104307 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
104308 k = new s7c();
104309 switch (a.a.g) {
104310 case 3:
104311 m = BD(vNb(b.e, (wtc(), rtc)), 15);
104312 n = BD(vNb(b.j, rtc), 15);
104313 o2 = BD(vNb(b.f, rtc), 15);
104314 c2 = BD(vNb(b.e, ptc), 15);
104315 d = BD(vNb(b.j, ptc), 15);
104316 e = BD(vNb(b.f, ptc), 15);
104317 g = new Rkb();
104318 Gkb(g, m);
104319 n.Jc(new Loc());
104320 Gkb(g, JD(n, 152) ? km(BD(n, 152)) : JD(n, 131) ? BD(n, 131).a : JD(n, 54) ? new ov(n) : new dv(n));
104321 Gkb(g, o2);
104322 f2 = new Rkb();
104323 Gkb(f2, c2);
104324 Gkb(f2, JD(d, 152) ? km(BD(d, 152)) : JD(d, 131) ? BD(d, 131).a : JD(d, 54) ? new ov(d) : new dv(d));
104325 Gkb(f2, e);
104326 yNb(b.f, rtc, g);
104327 yNb(b.f, ptc, f2);
104328 yNb(b.f, stc, b.f);
104329 yNb(b.e, rtc, null);
104330 yNb(b.e, ptc, null);
104331 yNb(b.j, rtc, null);
104332 yNb(b.j, ptc, null);
104333 break;
104334 case 1:
104335 ye(k, b.e.a);
104336 Dsb(k, b.i.n);
104337 ye(k, Su(b.j.a));
104338 Dsb(k, b.a.n);
104339 ye(k, b.f.a);
104340 break;
104341 default:
104342 ye(k, b.e.a);
104343 ye(k, Su(b.j.a));
104344 ye(k, b.f.a);
104345 }
104346 Osb(b.f.a);
104347 ye(b.f.a, k);
104348 QZb(b.f, b.e.c);
104349 h = BD(vNb(b.e, (Nyc(), jxc)), 74);
104350 j = BD(vNb(b.j, jxc), 74);
104351 i3 = BD(vNb(b.f, jxc), 74);
104352 if (!!h || !!j || !!i3) {
104353 l = new s7c();
104354 Goc(l, i3);
104355 Goc(l, j);
104356 Goc(l, h);
104357 yNb(b.f, jxc, l);
104358 }
104359 QZb(b.j, null);
104360 RZb(b.j, null);
104361 QZb(b.e, null);
104362 RZb(b.e, null);
104363 $_b(b.a, null);
104364 $_b(b.i, null);
104365 !!b.g && Ioc(a, b.g);
104366 }
104367 function bde(a) {
104368 ade();
104369 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
104370 if (a == null)
104371 return null;
104372 f2 = rfb(a);
104373 o2 = ede(f2);
104374 if (o2 % 4 != 0) {
104375 return null;
104376 }
104377 p = o2 / 4 | 0;
104378 if (p == 0)
104379 return KC(SD, wte, 25, 0, 15, 1);
104380 l = null;
104381 b = 0;
104382 c2 = 0;
104383 d = 0;
104384 e = 0;
104385 g = 0;
104386 h = 0;
104387 i3 = 0;
104388 j = 0;
104389 n = 0;
104390 m = 0;
104391 k = 0;
104392 l = KC(SD, wte, 25, p * 3, 15, 1);
104393 for (; n < p - 1; n++) {
104394 if (!dde(g = f2[k++]) || !dde(h = f2[k++]) || !dde(i3 = f2[k++]) || !dde(j = f2[k++]))
104395 return null;
104396 b = $ce[g];
104397 c2 = $ce[h];
104398 d = $ce[i3];
104399 e = $ce[j];
104400 l[m++] = (b << 2 | c2 >> 4) << 24 >> 24;
104401 l[m++] = ((c2 & 15) << 4 | d >> 2 & 15) << 24 >> 24;
104402 l[m++] = (d << 6 | e) << 24 >> 24;
104403 }
104404 if (!dde(g = f2[k++]) || !dde(h = f2[k++])) {
104405 return null;
104406 }
104407 b = $ce[g];
104408 c2 = $ce[h];
104409 i3 = f2[k++];
104410 j = f2[k++];
104411 if ($ce[i3] == -1 || $ce[j] == -1) {
104412 if (i3 == 61 && j == 61) {
104413 if ((c2 & 15) != 0)
104414 return null;
104415 q = KC(SD, wte, 25, n * 3 + 1, 15, 1);
104416 $fb(l, 0, q, 0, n * 3);
104417 q[m] = (b << 2 | c2 >> 4) << 24 >> 24;
104418 return q;
104419 } else if (i3 != 61 && j == 61) {
104420 d = $ce[i3];
104421 if ((d & 3) != 0)
104422 return null;
104423 q = KC(SD, wte, 25, n * 3 + 2, 15, 1);
104424 $fb(l, 0, q, 0, n * 3);
104425 q[m++] = (b << 2 | c2 >> 4) << 24 >> 24;
104426 q[m] = ((c2 & 15) << 4 | d >> 2 & 15) << 24 >> 24;
104427 return q;
104428 } else {
104429 return null;
104430 }
104431 } else {
104432 d = $ce[i3];
104433 e = $ce[j];
104434 l[m++] = (b << 2 | c2 >> 4) << 24 >> 24;
104435 l[m++] = ((c2 & 15) << 4 | d >> 2 & 15) << 24 >> 24;
104436 l[m++] = (d << 6 | e) << 24 >> 24;
104437 }
104438 return l;
104439 }
104440 function Sbc(a, b) {
104441 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v;
104442 Odd(b, Ine, 1);
104443 o2 = BD(vNb(a, (Nyc(), Swc)), 218);
104444 for (e = new olb(a.b); e.a < e.c.c.length; ) {
104445 d = BD(mlb(e), 29);
104446 j = l_b(d.a);
104447 for (g = j, h = 0, i3 = g.length; h < i3; ++h) {
104448 f2 = g[h];
104449 if (f2.k != (j0b(), i0b)) {
104450 continue;
104451 }
104452 if (o2 == (Aad(), yad)) {
104453 for (l = new olb(f2.j); l.a < l.c.c.length; ) {
104454 k = BD(mlb(l), 11);
104455 k.e.c.length == 0 || Vbc(k);
104456 k.g.c.length == 0 || Wbc(k);
104457 }
104458 } else if (JD(vNb(f2, (wtc(), $sc)), 17)) {
104459 q = BD(vNb(f2, $sc), 17);
104460 r = BD(Y_b(f2, (Ucd(), Tcd)).Kc().Pb(), 11);
104461 s = BD(Y_b(f2, zcd).Kc().Pb(), 11);
104462 t4 = BD(vNb(r, $sc), 11);
104463 u2 = BD(vNb(s, $sc), 11);
104464 QZb(q, u2);
104465 RZb(q, t4);
104466 v = new g7c(s.i.n);
104467 v.a = l7c(OC(GC(m1, 1), nie, 8, 0, [u2.i.n, u2.n, u2.a])).a;
104468 Dsb(q.a, v);
104469 v = new g7c(r.i.n);
104470 v.a = l7c(OC(GC(m1, 1), nie, 8, 0, [t4.i.n, t4.n, t4.a])).a;
104471 Dsb(q.a, v);
104472 } else {
104473 if (f2.j.c.length >= 2) {
104474 p = true;
104475 m = new olb(f2.j);
104476 c2 = BD(mlb(m), 11);
104477 n = null;
104478 while (m.a < m.c.c.length) {
104479 n = c2;
104480 c2 = BD(mlb(m), 11);
104481 if (!pb(vNb(n, $sc), vNb(c2, $sc))) {
104482 p = false;
104483 break;
104484 }
104485 }
104486 } else {
104487 p = false;
104488 }
104489 for (l = new olb(f2.j); l.a < l.c.c.length; ) {
104490 k = BD(mlb(l), 11);
104491 k.e.c.length == 0 || Tbc(k, p);
104492 k.g.c.length == 0 || Ubc(k, p);
104493 }
104494 }
104495 $_b(f2, null);
104496 }
104497 }
104498 Qdd(b);
104499 }
104500 function KJc(a, b, c2) {
104501 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B;
104502 t4 = a.c[(tCb(0, b.c.length), BD(b.c[0], 17)).p];
104503 A = a.c[(tCb(1, b.c.length), BD(b.c[1], 17)).p];
104504 if (t4.a.e.e - t4.a.a - (t4.b.e.e - t4.b.a) == 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) == 0) {
104505 return false;
104506 }
104507 r = t4.b.e.f;
104508 if (!JD(r, 10)) {
104509 return false;
104510 }
104511 q = BD(r, 10);
104512 v = a.i[q.p];
104513 w2 = !q.c ? -1 : Jkb(q.c.a, q, 0);
104514 f2 = Pje;
104515 if (w2 > 0) {
104516 e = BD(Ikb(q.c.a, w2 - 1), 10);
104517 g = a.i[e.p];
104518 B = $wnd.Math.ceil(jBc(a.n, e, q));
104519 f2 = v.a.e - q.d.d - (g.a.e + e.o.b + e.d.a) - B;
104520 }
104521 j = Pje;
104522 if (w2 < q.c.a.c.length - 1) {
104523 i3 = BD(Ikb(q.c.a, w2 + 1), 10);
104524 k = a.i[i3.p];
104525 B = $wnd.Math.ceil(jBc(a.n, i3, q));
104526 j = k.a.e - i3.d.d - (v.a.e + q.o.b + q.d.a) - B;
104527 }
104528 if (c2 && (Iy(), My(Jqe), $wnd.Math.abs(f2 - j) <= Jqe || f2 == j || isNaN(f2) && isNaN(j))) {
104529 return true;
104530 }
104531 d = gKc(t4.a);
104532 h = -gKc(t4.b);
104533 l = -gKc(A.a);
104534 s = gKc(A.b);
104535 p = t4.a.e.e - t4.a.a - (t4.b.e.e - t4.b.a) > 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) < 0;
104536 o2 = t4.a.e.e - t4.a.a - (t4.b.e.e - t4.b.a) < 0 && A.a.e.e - A.a.a - (A.b.e.e - A.b.a) > 0;
104537 n = t4.a.e.e + t4.b.a < A.b.e.e + A.a.a;
104538 m = t4.a.e.e + t4.b.a > A.b.e.e + A.a.a;
104539 u2 = 0;
104540 !p && !o2 && (m ? f2 + l > 0 ? u2 = l : j - d > 0 && (u2 = d) : n && (f2 + h > 0 ? u2 = h : j - s > 0 && (u2 = s)));
104541 v.a.e += u2;
104542 v.b && (v.d.e += u2);
104543 return false;
104544 }
104545 function XGb(a, b, c2) {
104546 var d, e, f2, g, h, i3, j, k, l, m;
104547 d = new J6c(b.qf().a, b.qf().b, b.rf().a, b.rf().b);
104548 e = new I6c();
104549 if (a.c) {
104550 for (g = new olb(b.wf()); g.a < g.c.c.length; ) {
104551 f2 = BD(mlb(g), 181);
104552 e.c = f2.qf().a + b.qf().a;
104553 e.d = f2.qf().b + b.qf().b;
104554 e.b = f2.rf().a;
104555 e.a = f2.rf().b;
104556 H6c(d, e);
104557 }
104558 }
104559 for (j = new olb(b.Cf()); j.a < j.c.c.length; ) {
104560 i3 = BD(mlb(j), 838);
104561 k = i3.qf().a + b.qf().a;
104562 l = i3.qf().b + b.qf().b;
104563 if (a.e) {
104564 e.c = k;
104565 e.d = l;
104566 e.b = i3.rf().a;
104567 e.a = i3.rf().b;
104568 H6c(d, e);
104569 }
104570 if (a.d) {
104571 for (g = new olb(i3.wf()); g.a < g.c.c.length; ) {
104572 f2 = BD(mlb(g), 181);
104573 e.c = f2.qf().a + k;
104574 e.d = f2.qf().b + l;
104575 e.b = f2.rf().a;
104576 e.a = f2.rf().b;
104577 H6c(d, e);
104578 }
104579 }
104580 if (a.b) {
104581 m = new f7c(-c2, -c2);
104582 if (BD(b.We((Y9c(), x9c)), 174).Hc((rcd(), pcd))) {
104583 for (g = new olb(i3.wf()); g.a < g.c.c.length; ) {
104584 f2 = BD(mlb(g), 181);
104585 m.a += f2.rf().a + c2;
104586 m.b += f2.rf().b + c2;
104587 }
104588 }
104589 m.a = $wnd.Math.max(m.a, 0);
104590 m.b = $wnd.Math.max(m.b, 0);
104591 VGb(d, i3.Bf(), i3.zf(), b, i3, m, c2);
104592 }
104593 }
104594 a.b && VGb(d, b.Bf(), b.zf(), b, null, null, c2);
104595 h = new K_b(b.Af());
104596 h.d = $wnd.Math.max(0, b.qf().b - d.d);
104597 h.a = $wnd.Math.max(0, d.d + d.a - (b.qf().b + b.rf().b));
104598 h.b = $wnd.Math.max(0, b.qf().a - d.c);
104599 h.c = $wnd.Math.max(0, d.c + d.b - (b.qf().a + b.rf().a));
104600 b.Ef(h);
104601 }
104602 function wz() {
104603 var a = ["\\u0000", "\\u0001", "\\u0002", "\\u0003", "\\u0004", "\\u0005", "\\u0006", "\\u0007", "\\b", "\\t", "\\n", "\\u000B", "\\f", "\\r", "\\u000E", "\\u000F", "\\u0010", "\\u0011", "\\u0012", "\\u0013", "\\u0014", "\\u0015", "\\u0016", "\\u0017", "\\u0018", "\\u0019", "\\u001A", "\\u001B", "\\u001C", "\\u001D", "\\u001E", "\\u001F"];
104604 a[34] = '\\"';
104605 a[92] = "\\\\";
104606 a[173] = "\\u00ad";
104607 a[1536] = "\\u0600";
104608 a[1537] = "\\u0601";
104609 a[1538] = "\\u0602";
104610 a[1539] = "\\u0603";
104611 a[1757] = "\\u06dd";
104612 a[1807] = "\\u070f";
104613 a[6068] = "\\u17b4";
104614 a[6069] = "\\u17b5";
104615 a[8203] = "\\u200b";
104616 a[8204] = "\\u200c";
104617 a[8205] = "\\u200d";
104618 a[8206] = "\\u200e";
104619 a[8207] = "\\u200f";
104620 a[8232] = "\\u2028";
104621 a[8233] = "\\u2029";
104622 a[8234] = "\\u202a";
104623 a[8235] = "\\u202b";
104624 a[8236] = "\\u202c";
104625 a[8237] = "\\u202d";
104626 a[8238] = "\\u202e";
104627 a[8288] = "\\u2060";
104628 a[8289] = "\\u2061";
104629 a[8290] = "\\u2062";
104630 a[8291] = "\\u2063";
104631 a[8292] = "\\u2064";
104632 a[8298] = "\\u206a";
104633 a[8299] = "\\u206b";
104634 a[8300] = "\\u206c";
104635 a[8301] = "\\u206d";
104636 a[8302] = "\\u206e";
104637 a[8303] = "\\u206f";
104638 a[65279] = "\\ufeff";
104639 a[65529] = "\\ufff9";
104640 a[65530] = "\\ufffa";
104641 a[65531] = "\\ufffb";
104642 return a;
104643 }
104644 function pid(a, b, c2) {
104645 var d, e, f2, g, h, i3, j, k, l, m;
104646 i3 = new Rkb();
104647 l = b.length;
104648 g = AUd(c2);
104649 for (j = 0; j < l; ++j) {
104650 k = ifb(b, wfb(61), j);
104651 d = $hd(g, b.substr(j, k - j));
104652 e = KJd(d);
104653 f2 = e.Aj().Nh();
104654 switch (bfb(b, ++k)) {
104655 case 39: {
104656 h = gfb(b, 39, ++k);
104657 Ekb(i3, new kGd(d, Pid(b.substr(k, h - k), f2, e)));
104658 j = h + 1;
104659 break;
104660 }
104661 case 34: {
104662 h = gfb(b, 34, ++k);
104663 Ekb(i3, new kGd(d, Pid(b.substr(k, h - k), f2, e)));
104664 j = h + 1;
104665 break;
104666 }
104667 case 91: {
104668 m = new Rkb();
104669 Ekb(i3, new kGd(d, m));
104670 n:
104671 for (; ; ) {
104672 switch (bfb(b, ++k)) {
104673 case 39: {
104674 h = gfb(b, 39, ++k);
104675 Ekb(m, Pid(b.substr(k, h - k), f2, e));
104676 k = h + 1;
104677 break;
104678 }
104679 case 34: {
104680 h = gfb(b, 34, ++k);
104681 Ekb(m, Pid(b.substr(k, h - k), f2, e));
104682 k = h + 1;
104683 break;
104684 }
104685 case 110: {
104686 ++k;
104687 if (b.indexOf("ull", k) == k) {
104688 m.c[m.c.length] = null;
104689 } else {
104690 throw vbb(new hz(kte));
104691 }
104692 k += 3;
104693 break;
104694 }
104695 }
104696 if (k < l) {
104697 switch (BCb(k, b.length), b.charCodeAt(k)) {
104698 case 44: {
104699 break;
104700 }
104701 case 93: {
104702 break n;
104703 }
104704 default: {
104705 throw vbb(new hz("Expecting , or ]"));
104706 }
104707 }
104708 } else {
104709 break;
104710 }
104711 }
104712 j = k + 1;
104713 break;
104714 }
104715 case 110: {
104716 ++k;
104717 if (b.indexOf("ull", k) == k) {
104718 Ekb(i3, new kGd(d, null));
104719 } else {
104720 throw vbb(new hz(kte));
104721 }
104722 j = k + 3;
104723 break;
104724 }
104725 }
104726 if (j < l) {
104727 BCb(j, b.length);
104728 if (b.charCodeAt(j) != 44) {
104729 throw vbb(new hz("Expecting ,"));
104730 }
104731 } else {
104732 break;
104733 }
104734 }
104735 return qid(a, i3, c2);
104736 }
104737 function AKb(a, b) {
104738 var c2, d, e, f2, g, h, i3, j, k, l, m;
104739 j = BD(BD(Qc(a.r, b), 21), 84);
104740 g = bKb(a, b);
104741 c2 = a.u.Hc((rcd(), lcd));
104742 for (i3 = j.Kc(); i3.Ob(); ) {
104743 h = BD(i3.Pb(), 111);
104744 if (!h.c || h.c.d.c.length <= 0) {
104745 continue;
104746 }
104747 m = h.b.rf();
104748 k = h.c;
104749 l = k.i;
104750 l.b = (f2 = k.n, k.e.a + f2.b + f2.c);
104751 l.a = (e = k.n, k.e.b + e.d + e.a);
104752 switch (b.g) {
104753 case 1:
104754 if (h.a) {
104755 l.c = (m.a - l.b) / 2;
104756 $Hb(k, (NHb(), KHb));
104757 } else if (g || c2) {
104758 l.c = -l.b - a.s;
104759 $Hb(k, (NHb(), MHb));
104760 } else {
104761 l.c = m.a + a.s;
104762 $Hb(k, (NHb(), LHb));
104763 }
104764 l.d = -l.a - a.t;
104765 _Hb(k, (EIb(), BIb));
104766 break;
104767 case 3:
104768 if (h.a) {
104769 l.c = (m.a - l.b) / 2;
104770 $Hb(k, (NHb(), KHb));
104771 } else if (g || c2) {
104772 l.c = -l.b - a.s;
104773 $Hb(k, (NHb(), MHb));
104774 } else {
104775 l.c = m.a + a.s;
104776 $Hb(k, (NHb(), LHb));
104777 }
104778 l.d = m.b + a.t;
104779 _Hb(k, (EIb(), DIb));
104780 break;
104781 case 2:
104782 if (h.a) {
104783 d = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b;
104784 l.d = (m.b - d) / 2;
104785 _Hb(k, (EIb(), CIb));
104786 } else if (g || c2) {
104787 l.d = -l.a - a.t;
104788 _Hb(k, (EIb(), BIb));
104789 } else {
104790 l.d = m.b + a.t;
104791 _Hb(k, (EIb(), DIb));
104792 }
104793 l.c = m.a + a.s;
104794 $Hb(k, (NHb(), LHb));
104795 break;
104796 case 4:
104797 if (h.a) {
104798 d = a.v ? l.a : BD(Ikb(k.d, 0), 181).rf().b;
104799 l.d = (m.b - d) / 2;
104800 _Hb(k, (EIb(), CIb));
104801 } else if (g || c2) {
104802 l.d = -l.a - a.t;
104803 _Hb(k, (EIb(), BIb));
104804 } else {
104805 l.d = m.b + a.t;
104806 _Hb(k, (EIb(), DIb));
104807 }
104808 l.c = -l.b - a.s;
104809 $Hb(k, (NHb(), MHb));
104810 }
104811 g = false;
104812 }
104813 }
104814 function Kfe(a, b) {
104815 wfe();
104816 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
104817 if (Vhb(Zee) == 0) {
104818 l = KC(lbb, nie, 117, _ee.length, 0, 1);
104819 for (g = 0; g < l.length; g++) {
104820 l[g] = new $fe(4);
104821 }
104822 d = new Ifb();
104823 for (f2 = 0; f2 < Yee.length; f2++) {
104824 k = new $fe(4);
104825 if (f2 < 84) {
104826 h = f2 * 2;
104827 n = (BCb(h, wxe.length), wxe.charCodeAt(h));
104828 m = (BCb(h + 1, wxe.length), wxe.charCodeAt(h + 1));
104829 Ufe(k, n, m);
104830 } else {
104831 h = (f2 - 84) * 2;
104832 Ufe(k, afe[h], afe[h + 1]);
104833 }
104834 i3 = Yee[f2];
104835 dfb(i3, "Specials") && Ufe(k, 65520, 65533);
104836 if (dfb(i3, uxe)) {
104837 Ufe(k, 983040, 1048573);
104838 Ufe(k, 1048576, 1114109);
104839 }
104840 Shb(Zee, i3, k);
104841 Shb($ee, i3, _fe(k));
104842 j = d.a.length;
104843 0 < j ? d.a = d.a.substr(0, 0) : 0 > j && (d.a += yfb(KC(TD, $ie, 25, -j, 15, 1)));
104844 d.a += "Is";
104845 if (hfb(i3, wfb(32)) >= 0) {
104846 for (e = 0; e < i3.length; e++) {
104847 BCb(e, i3.length);
104848 i3.charCodeAt(e) != 32 && Afb(d, (BCb(e, i3.length), i3.charCodeAt(e)));
104849 }
104850 } else {
104851 d.a += "" + i3;
104852 }
104853 Ofe(d.a, i3, true);
104854 }
104855 Ofe(vxe, "Cn", false);
104856 Ofe(xxe, "Cn", true);
104857 c2 = new $fe(4);
104858 Ufe(c2, 0, lxe);
104859 Shb(Zee, "ALL", c2);
104860 Shb($ee, "ALL", _fe(c2));
104861 !bfe && (bfe = new Lqb());
104862 Shb(bfe, vxe, vxe);
104863 !bfe && (bfe = new Lqb());
104864 Shb(bfe, xxe, xxe);
104865 !bfe && (bfe = new Lqb());
104866 Shb(bfe, "ALL", "ALL");
104867 }
104868 o2 = b ? BD(Phb(Zee, a), 136) : BD(Phb($ee, a), 136);
104869 return o2;
104870 }
104871 function c3b(a, b, c2, d) {
104872 var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s;
104873 m = false;
104874 l = false;
104875 if (fcd(BD(vNb(d, (Nyc(), Vxc)), 98))) {
104876 g = false;
104877 h = false;
104878 t:
104879 for (o2 = new olb(d.j); o2.a < o2.c.c.length; ) {
104880 n = BD(mlb(o2), 11);
104881 for (q = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [new J0b(n), new R0b(n)]))); Qr(q); ) {
104882 p = BD(Rr(q), 11);
104883 if (!Ccb(DD(vNb(p.i, pwc)))) {
104884 if (n.j == (Ucd(), Acd)) {
104885 g = true;
104886 break t;
104887 }
104888 if (n.j == Rcd) {
104889 h = true;
104890 break t;
104891 }
104892 }
104893 }
104894 }
104895 m = h && !g;
104896 l = g && !h;
104897 }
104898 if (!m && !l && d.b.c.length != 0) {
104899 k = 0;
104900 for (j = new olb(d.b); j.a < j.c.c.length; ) {
104901 i3 = BD(mlb(j), 70);
104902 k += i3.n.b + i3.o.b / 2;
104903 }
104904 k /= d.b.c.length;
104905 s = k >= d.o.b / 2;
104906 } else {
104907 s = !l;
104908 }
104909 if (s) {
104910 r = BD(vNb(d, (wtc(), vtc)), 15);
104911 if (!r) {
104912 f2 = new Rkb();
104913 yNb(d, vtc, f2);
104914 } else if (m) {
104915 f2 = r;
104916 } else {
104917 e = BD(vNb(d, tsc), 15);
104918 if (!e) {
104919 f2 = new Rkb();
104920 yNb(d, tsc, f2);
104921 } else {
104922 r.gc() <= e.gc() ? f2 = r : f2 = e;
104923 }
104924 }
104925 } else {
104926 e = BD(vNb(d, (wtc(), tsc)), 15);
104927 if (!e) {
104928 f2 = new Rkb();
104929 yNb(d, tsc, f2);
104930 } else if (l) {
104931 f2 = e;
104932 } else {
104933 r = BD(vNb(d, vtc), 15);
104934 if (!r) {
104935 f2 = new Rkb();
104936 yNb(d, vtc, f2);
104937 } else {
104938 e.gc() <= r.gc() ? f2 = e : f2 = r;
104939 }
104940 }
104941 }
104942 f2.Fc(a);
104943 yNb(a, (wtc(), vsc), c2);
104944 if (b.d == c2) {
104945 RZb(b, null);
104946 c2.e.c.length + c2.g.c.length == 0 && F0b(c2, null);
104947 d3b(c2);
104948 } else {
104949 QZb(b, null);
104950 c2.e.c.length + c2.g.c.length == 0 && F0b(c2, null);
104951 }
104952 Osb(b.a);
104953 }
104954 function aoc(a, b) {
104955 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2;
104956 s = new Bib(a.b, 0);
104957 k = b.Kc();
104958 o2 = 0;
104959 j = BD(k.Pb(), 19).a;
104960 v = 0;
104961 c2 = new Tqb();
104962 A = new zsb();
104963 while (s.b < s.d.gc()) {
104964 r = (sCb(s.b < s.d.gc()), BD(s.d.Xb(s.c = s.b++), 29));
104965 for (u2 = new olb(r.a); u2.a < u2.c.c.length; ) {
104966 t4 = BD(mlb(u2), 10);
104967 for (n = new Sr(ur(U_b(t4).a.Kc(), new Sq())); Qr(n); ) {
104968 l = BD(Rr(n), 17);
104969 A.a.zc(l, A);
104970 }
104971 for (m = new Sr(ur(R_b(t4).a.Kc(), new Sq())); Qr(m); ) {
104972 l = BD(Rr(m), 17);
104973 A.a.Bc(l) != null;
104974 }
104975 }
104976 if (o2 + 1 == j) {
104977 e = new H1b(a);
104978 Aib(s, e);
104979 f2 = new H1b(a);
104980 Aib(s, f2);
104981 for (C = A.a.ec().Kc(); C.Ob(); ) {
104982 B = BD(C.Pb(), 17);
104983 if (!c2.a._b(B)) {
104984 ++v;
104985 c2.a.zc(B, c2);
104986 }
104987 g = new b0b(a);
104988 yNb(g, (Nyc(), Vxc), (dcd(), acd));
104989 $_b(g, e);
104990 __b(g, (j0b(), d0b));
104991 p = new H0b();
104992 F0b(p, g);
104993 G0b(p, (Ucd(), Tcd));
104994 D3 = new H0b();
104995 F0b(D3, g);
104996 G0b(D3, zcd);
104997 d = new b0b(a);
104998 yNb(d, Vxc, acd);
104999 $_b(d, f2);
105000 __b(d, d0b);
105001 q = new H0b();
105002 F0b(q, d);
105003 G0b(q, Tcd);
105004 F = new H0b();
105005 F0b(F, d);
105006 G0b(F, zcd);
105007 w2 = new UZb();
105008 QZb(w2, B.c);
105009 RZb(w2, p);
105010 H2 = new UZb();
105011 QZb(H2, D3);
105012 RZb(H2, q);
105013 QZb(B, F);
105014 h = new goc(g, d, w2, H2, B);
105015 yNb(g, (wtc(), usc), h);
105016 yNb(d, usc, h);
105017 G = w2.c.i;
105018 if (G.k == d0b) {
105019 i3 = BD(vNb(G, usc), 305);
105020 i3.d = h;
105021 h.g = i3;
105022 }
105023 }
105024 if (k.Ob()) {
105025 j = BD(k.Pb(), 19).a;
105026 } else {
105027 break;
105028 }
105029 }
105030 ++o2;
105031 }
105032 return meb(v);
105033 }
105034 function T1b(a, b, c2) {
105035 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
105036 l = 0;
105037 for (e = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); e.e != e.i.gc(); ) {
105038 d = BD(Dyd(e), 33);
105039 if (!Ccb(DD(hkd(d, (Nyc(), Jxc))))) {
105040 if ((PD(hkd(b, ywc)) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) && !Ccb(DD(hkd(d, xwc)))) {
105041 jkd(d, (wtc(), Zsc), meb(l));
105042 ++l;
105043 }
105044 $1b(a, d, c2);
105045 }
105046 }
105047 l = 0;
105048 for (j = new Fyd((!b.b && (b.b = new cUd(B2, b, 12, 3)), b.b)); j.e != j.i.gc(); ) {
105049 h = BD(Dyd(j), 79);
105050 if (PD(hkd(b, (Nyc(), ywc))) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) {
105051 jkd(h, (wtc(), Zsc), meb(l));
105052 ++l;
105053 }
105054 o2 = jtd(h);
105055 p = ltd(h);
105056 k = Ccb(DD(hkd(o2, fxc)));
105057 n = !Ccb(DD(hkd(h, Jxc)));
105058 m = k && Qld(h) && Ccb(DD(hkd(h, gxc)));
105059 f2 = Xod(o2) == b && Xod(o2) == Xod(p);
105060 g = (Xod(o2) == b && p == b) ^ (Xod(p) == b && o2 == b);
105061 n && !m && (g || f2) && X1b(a, h, b, c2);
105062 }
105063 if (Xod(b)) {
105064 for (i3 = new Fyd(Wod(Xod(b))); i3.e != i3.i.gc(); ) {
105065 h = BD(Dyd(i3), 79);
105066 o2 = jtd(h);
105067 if (o2 == b && Qld(h)) {
105068 m = Ccb(DD(hkd(o2, (Nyc(), fxc)))) && Ccb(DD(hkd(h, gxc)));
105069 m && X1b(a, h, b, c2);
105070 }
105071 }
105072 }
105073 }
105074 function gDc(a, b, c2) {
105075 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I;
105076 Odd(c2, "MinWidth layering", 1);
105077 n = b.b;
105078 A = b.a;
105079 I = BD(vNb(b, (Nyc(), oxc)), 19).a;
105080 h = BD(vNb(b, pxc), 19).a;
105081 a.b = Edb(ED(vNb(b, lyc)));
105082 a.d = Pje;
105083 for (u2 = new olb(A); u2.a < u2.c.c.length; ) {
105084 s = BD(mlb(u2), 10);
105085 if (s.k != (j0b(), h0b)) {
105086 continue;
105087 }
105088 D3 = s.o.b;
105089 a.d = $wnd.Math.min(a.d, D3);
105090 }
105091 a.d = $wnd.Math.max(1, a.d);
105092 B = A.c.length;
105093 a.c = KC(WD, oje, 25, B, 15, 1);
105094 a.f = KC(WD, oje, 25, B, 15, 1);
105095 a.e = KC(UD, Vje, 25, B, 15, 1);
105096 j = 0;
105097 a.a = 0;
105098 for (v = new olb(A); v.a < v.c.c.length; ) {
105099 s = BD(mlb(v), 10);
105100 s.p = j++;
105101 a.c[s.p] = eDc(R_b(s));
105102 a.f[s.p] = eDc(U_b(s));
105103 a.e[s.p] = s.o.b / a.d;
105104 a.a += a.e[s.p];
105105 }
105106 a.b /= a.d;
105107 a.a /= B;
105108 w2 = fDc(A);
105109 Okb(A, tmb(new mDc(a)));
105110 p = Pje;
105111 o2 = Ohe;
105112 g = null;
105113 H2 = I;
105114 G = I;
105115 f2 = h;
105116 e = h;
105117 if (I < 0) {
105118 H2 = BD(bDc.a.zd(), 19).a;
105119 G = BD(bDc.b.zd(), 19).a;
105120 }
105121 if (h < 0) {
105122 f2 = BD(aDc.a.zd(), 19).a;
105123 e = BD(aDc.b.zd(), 19).a;
105124 }
105125 for (F = H2; F <= G; F++) {
105126 for (d = f2; d <= e; d++) {
105127 C = dDc(a, F, d, A, w2);
105128 r = Edb(ED(C.a));
105129 m = BD(C.b, 15);
105130 q = m.gc();
105131 if (r < p || r == p && q < o2) {
105132 p = r;
105133 o2 = q;
105134 g = m;
105135 }
105136 }
105137 }
105138 for (l = g.Kc(); l.Ob(); ) {
105139 k = BD(l.Pb(), 15);
105140 i3 = new H1b(b);
105141 for (t4 = k.Kc(); t4.Ob(); ) {
105142 s = BD(t4.Pb(), 10);
105143 $_b(s, i3);
105144 }
105145 n.c[n.c.length] = i3;
105146 }
105147 smb(n);
105148 A.c = KC(SI, Uhe, 1, 0, 5, 1);
105149 Qdd(c2);
105150 }
105151 function I6b(a, b) {
105152 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3;
105153 a.b = b;
105154 a.a = BD(vNb(b, (Nyc(), bxc)), 19).a;
105155 a.c = BD(vNb(b, dxc), 19).a;
105156 a.c == 0 && (a.c = Ohe);
105157 q = new Bib(b.b, 0);
105158 while (q.b < q.d.gc()) {
105159 p = (sCb(q.b < q.d.gc()), BD(q.d.Xb(q.c = q.b++), 29));
105160 h = new Rkb();
105161 k = -1;
105162 u2 = -1;
105163 for (t4 = new olb(p.a); t4.a < t4.c.c.length; ) {
105164 s = BD(mlb(t4), 10);
105165 if (sr((D6b(), new Sr(ur(O_b(s).a.Kc(), new Sq())))) >= a.a) {
105166 d = E6b(a, s);
105167 k = $wnd.Math.max(k, d.b);
105168 u2 = $wnd.Math.max(u2, d.d);
105169 Ekb(h, new vgd(s, d));
105170 }
105171 }
105172 B = new Rkb();
105173 for (j = 0; j < k; ++j) {
105174 Dkb(B, 0, (sCb(q.b > 0), q.a.Xb(q.c = --q.b), C = new H1b(a.b), Aib(q, C), sCb(q.b < q.d.gc()), q.d.Xb(q.c = q.b++), C));
105175 }
105176 for (g = new olb(h); g.a < g.c.c.length; ) {
105177 e = BD(mlb(g), 46);
105178 n = BD(e.b, 571).a;
105179 if (!n) {
105180 continue;
105181 }
105182 for (m = new olb(n); m.a < m.c.c.length; ) {
105183 l = BD(mlb(m), 10);
105184 H6b(a, l, B6b, B);
105185 }
105186 }
105187 c2 = new Rkb();
105188 for (i3 = 0; i3 < u2; ++i3) {
105189 Ekb(c2, (D3 = new H1b(a.b), Aib(q, D3), D3));
105190 }
105191 for (f2 = new olb(h); f2.a < f2.c.c.length; ) {
105192 e = BD(mlb(f2), 46);
105193 A = BD(e.b, 571).c;
105194 if (!A) {
105195 continue;
105196 }
105197 for (w2 = new olb(A); w2.a < w2.c.c.length; ) {
105198 v = BD(mlb(w2), 10);
105199 H6b(a, v, C6b, c2);
105200 }
105201 }
105202 }
105203 r = new Bib(b.b, 0);
105204 while (r.b < r.d.gc()) {
105205 o2 = (sCb(r.b < r.d.gc()), BD(r.d.Xb(r.c = r.b++), 29));
105206 o2.a.c.length == 0 && uib(r);
105207 }
105208 }
105209 function uQc(a, b, c2) {
105210 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G;
105211 Odd(c2, "Spline edge routing", 1);
105212 if (b.b.c.length == 0) {
105213 b.f.a = 0;
105214 Qdd(c2);
105215 return;
105216 }
105217 s = Edb(ED(vNb(b, (Nyc(), wyc))));
105218 h = Edb(ED(vNb(b, pyc)));
105219 g = Edb(ED(vNb(b, myc)));
105220 r = BD(vNb(b, Xwc), 336);
105221 B = r == (tBc(), sBc);
105222 A = Edb(ED(vNb(b, Ywc)));
105223 a.d = b;
105224 a.j.c = KC(SI, Uhe, 1, 0, 5, 1);
105225 a.a.c = KC(SI, Uhe, 1, 0, 5, 1);
105226 Uhb(a.k);
105227 i3 = BD(Ikb(b.b, 0), 29);
105228 k = Kq(i3.a, (FNc(), DNc));
105229 o2 = BD(Ikb(b.b, b.b.c.length - 1), 29);
105230 l = Kq(o2.a, DNc);
105231 p = new olb(b.b);
105232 q = null;
105233 G = 0;
105234 do {
105235 t4 = p.a < p.c.c.length ? BD(mlb(p), 29) : null;
105236 iQc(a, q, t4);
105237 lQc(a);
105238 C = Vtb(uAb(PAb(JAb(new YAb(null, new Kub(a.i, 16)), new LQc()), new NQc())));
105239 F = 0;
105240 u2 = G;
105241 m = !q || k && q == i3;
105242 n = !t4 || l && t4 == o2;
105243 if (C > 0) {
105244 j = 0;
105245 !!q && (j += h);
105246 j += (C - 1) * g;
105247 !!t4 && (j += h);
105248 B && !!t4 && (j = $wnd.Math.max(j, jQc(t4, g, s, A)));
105249 if (j < s && !m && !n) {
105250 F = (s - j) / 2;
105251 j = s;
105252 }
105253 u2 += j;
105254 } else
105255 !m && !n && (u2 += s);
105256 !!t4 && h_b(t4, u2);
105257 for (w2 = new olb(a.i); w2.a < w2.c.c.length; ) {
105258 v = BD(mlb(w2), 128);
105259 v.a.c = G;
105260 v.a.b = u2 - G;
105261 v.F = F;
105262 v.p = !q;
105263 }
105264 Gkb(a.a, a.i);
105265 G = u2;
105266 !!t4 && (G += t4.c.a);
105267 q = t4;
105268 m = n;
105269 } while (t4);
105270 for (e = new olb(a.j); e.a < e.c.c.length; ) {
105271 d = BD(mlb(e), 17);
105272 f2 = pQc(a, d);
105273 yNb(d, (wtc(), ptc), f2);
105274 D3 = rQc(a, d);
105275 yNb(d, rtc, D3);
105276 }
105277 b.f.a = G;
105278 a.d = null;
105279 Qdd(c2);
105280 }
105281 function Yxd(a, b) {
105282 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
105283 p = a.i != 0;
105284 t4 = false;
105285 r = null;
105286 if (oid(a.e)) {
105287 k = b.gc();
105288 if (k > 0) {
105289 m = k < 100 ? null : new Ixd(k);
105290 j = new Aud(b);
105291 o2 = j.g;
105292 r = KC(WD, oje, 25, k, 15, 1);
105293 d = 0;
105294 u2 = new zud(k);
105295 for (e = 0; e < a.i; ++e) {
105296 h = a.g[e];
105297 n = h;
105298 v:
105299 for (s = 0; s < 2; ++s) {
105300 for (i3 = k; --i3 >= 0; ) {
105301 if (n != null ? pb(n, o2[i3]) : PD(n) === PD(o2[i3])) {
105302 if (r.length <= d) {
105303 q = r;
105304 r = KC(WD, oje, 25, 2 * r.length, 15, 1);
105305 $fb(q, 0, r, 0, d);
105306 }
105307 r[d++] = e;
105308 wtd(u2, o2[i3]);
105309 break v;
105310 }
105311 }
105312 n = n;
105313 if (PD(n) === PD(h)) {
105314 break;
105315 }
105316 }
105317 }
105318 j = u2;
105319 o2 = u2.g;
105320 k = d;
105321 if (d > r.length) {
105322 q = r;
105323 r = KC(WD, oje, 25, d, 15, 1);
105324 $fb(q, 0, r, 0, d);
105325 }
105326 if (d > 0) {
105327 t4 = true;
105328 for (f2 = 0; f2 < d; ++f2) {
105329 n = o2[f2];
105330 m = k3d(a, BD(n, 72), m);
105331 }
105332 for (g = d; --g >= 0; ) {
105333 tud(a, r[g]);
105334 }
105335 if (d != k) {
105336 for (e = k; --e >= d; ) {
105337 tud(j, e);
105338 }
105339 q = r;
105340 r = KC(WD, oje, 25, d, 15, 1);
105341 $fb(q, 0, r, 0, d);
105342 }
105343 b = j;
105344 }
105345 }
105346 } else {
105347 b = Ctd(a, b);
105348 for (e = a.i; --e >= 0; ) {
105349 if (b.Hc(a.g[e])) {
105350 tud(a, e);
105351 t4 = true;
105352 }
105353 }
105354 }
105355 if (t4) {
105356 if (r != null) {
105357 c2 = b.gc();
105358 l = c2 == 1 ? FLd(a, 4, b.Kc().Pb(), null, r[0], p) : FLd(a, 6, b, r, r[0], p);
105359 m = c2 < 100 ? null : new Ixd(c2);
105360 for (e = b.Kc(); e.Ob(); ) {
105361 n = e.Pb();
105362 m = Q2d(a, BD(n, 72), m);
105363 }
105364 if (!m) {
105365 Uhd(a.e, l);
105366 } else {
105367 m.Ei(l);
105368 m.Fi();
105369 }
105370 } else {
105371 m = Vxd(b.gc());
105372 for (e = b.Kc(); e.Ob(); ) {
105373 n = e.Pb();
105374 m = Q2d(a, BD(n, 72), m);
105375 }
105376 !!m && m.Fi();
105377 }
105378 return true;
105379 } else {
105380 return false;
105381 }
105382 }
105383 function fYb(a, b) {
105384 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
105385 c2 = new mYb(b);
105386 c2.a || $Xb(b);
105387 j = ZXb(b);
105388 i3 = new Hp();
105389 q = new AYb();
105390 for (p = new olb(b.a); p.a < p.c.c.length; ) {
105391 o2 = BD(mlb(p), 10);
105392 for (e = new Sr(ur(U_b(o2).a.Kc(), new Sq())); Qr(e); ) {
105393 d = BD(Rr(e), 17);
105394 if (d.c.i.k == (j0b(), e0b) || d.d.i.k == e0b) {
105395 k = eYb(a, d, j, q);
105396 Rc(i3, cYb(k.d), k.a);
105397 }
105398 }
105399 }
105400 g = new Rkb();
105401 for (t4 = BD(vNb(c2.c, (wtc(), Esc)), 21).Kc(); t4.Ob(); ) {
105402 s = BD(t4.Pb(), 61);
105403 n = q.c[s.g];
105404 m = q.b[s.g];
105405 h = q.a[s.g];
105406 f2 = null;
105407 r = null;
105408 switch (s.g) {
105409 case 4:
105410 f2 = new J6c(a.d.a, n, j.b.a - a.d.a, m - n);
105411 r = new J6c(a.d.a, n, h, m - n);
105412 iYb(j, new f7c(f2.c + f2.b, f2.d));
105413 iYb(j, new f7c(f2.c + f2.b, f2.d + f2.a));
105414 break;
105415 case 2:
105416 f2 = new J6c(j.a.a, n, a.c.a - j.a.a, m - n);
105417 r = new J6c(a.c.a - h, n, h, m - n);
105418 iYb(j, new f7c(f2.c, f2.d));
105419 iYb(j, new f7c(f2.c, f2.d + f2.a));
105420 break;
105421 case 1:
105422 f2 = new J6c(n, a.d.b, m - n, j.b.b - a.d.b);
105423 r = new J6c(n, a.d.b, m - n, h);
105424 iYb(j, new f7c(f2.c, f2.d + f2.a));
105425 iYb(j, new f7c(f2.c + f2.b, f2.d + f2.a));
105426 break;
105427 case 3:
105428 f2 = new J6c(n, j.a.b, m - n, a.c.b - j.a.b);
105429 r = new J6c(n, a.c.b - h, m - n, h);
105430 iYb(j, new f7c(f2.c, f2.d));
105431 iYb(j, new f7c(f2.c + f2.b, f2.d));
105432 }
105433 if (f2) {
105434 l = new vYb();
105435 l.d = s;
105436 l.b = f2;
105437 l.c = r;
105438 l.a = Dx(BD(Qc(i3, cYb(s)), 21));
105439 g.c[g.c.length] = l;
105440 }
105441 }
105442 Gkb(c2.b, g);
105443 c2.d = BWb(JWb(j));
105444 return c2;
105445 }
105446 function pMc(a, b, c2) {
105447 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
105448 if (c2.p[b.p] != null) {
105449 return;
105450 }
105451 h = true;
105452 c2.p[b.p] = 0;
105453 g = b;
105454 p = c2.o == (eMc(), cMc) ? Qje : Pje;
105455 do {
105456 e = a.b.e[g.p];
105457 f2 = g.c.a.c.length;
105458 if (c2.o == cMc && e > 0 || c2.o == dMc && e < f2 - 1) {
105459 i3 = null;
105460 j = null;
105461 c2.o == dMc ? i3 = BD(Ikb(g.c.a, e + 1), 10) : i3 = BD(Ikb(g.c.a, e - 1), 10);
105462 j = c2.g[i3.p];
105463 pMc(a, j, c2);
105464 p = a.e.bg(p, b, g);
105465 c2.j[b.p] == b && (c2.j[b.p] = c2.j[j.p]);
105466 if (c2.j[b.p] == c2.j[j.p]) {
105467 o2 = jBc(a.d, g, i3);
105468 if (c2.o == dMc) {
105469 d = Edb(c2.p[b.p]);
105470 l = Edb(c2.p[j.p]) + Edb(c2.d[i3.p]) - i3.d.d - o2 - g.d.a - g.o.b - Edb(c2.d[g.p]);
105471 if (h) {
105472 h = false;
105473 c2.p[b.p] = $wnd.Math.min(l, p);
105474 } else {
105475 c2.p[b.p] = $wnd.Math.min(d, $wnd.Math.min(l, p));
105476 }
105477 } else {
105478 d = Edb(c2.p[b.p]);
105479 l = Edb(c2.p[j.p]) + Edb(c2.d[i3.p]) + i3.o.b + i3.d.a + o2 + g.d.d - Edb(c2.d[g.p]);
105480 if (h) {
105481 h = false;
105482 c2.p[b.p] = $wnd.Math.max(l, p);
105483 } else {
105484 c2.p[b.p] = $wnd.Math.max(d, $wnd.Math.max(l, p));
105485 }
105486 }
105487 } else {
105488 o2 = Edb(ED(vNb(a.a, (Nyc(), vyc))));
105489 n = nMc(a, c2.j[b.p]);
105490 k = nMc(a, c2.j[j.p]);
105491 if (c2.o == dMc) {
105492 m = Edb(c2.p[b.p]) + Edb(c2.d[g.p]) + g.o.b + g.d.a + o2 - (Edb(c2.p[j.p]) + Edb(c2.d[i3.p]) - i3.d.d);
105493 tMc(n, k, m);
105494 } else {
105495 m = Edb(c2.p[b.p]) + Edb(c2.d[g.p]) - g.d.d - Edb(c2.p[j.p]) - Edb(c2.d[i3.p]) - i3.o.b - i3.d.a - o2;
105496 tMc(n, k, m);
105497 }
105498 }
105499 } else {
105500 p = a.e.bg(p, b, g);
105501 }
105502 g = c2.a[g.p];
105503 } while (g != b);
105504 SMc(a.e, b);
105505 }
105506 function _qd(a, b, c2) {
105507 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G;
105508 t4 = b;
105509 s = new Hp();
105510 u2 = new Hp();
105511 k = Ypd(t4, Nte);
105512 d = new ord(a, c2, s, u2);
105513 qqd(d.a, d.b, d.c, d.d, k);
105514 i3 = (A = s.i, !A ? s.i = new zf(s, s.c) : A);
105515 for (C = i3.Kc(); C.Ob(); ) {
105516 B = BD(C.Pb(), 202);
105517 e = BD(Qc(s, B), 21);
105518 for (p = e.Kc(); p.Ob(); ) {
105519 o2 = p.Pb();
105520 v = BD(oo(a.d, o2), 202);
105521 if (v) {
105522 h = (!B.e && (B.e = new y5d(A2, B, 10, 9)), B.e);
105523 wtd(h, v);
105524 } else {
105525 g = _pd(t4, Vte);
105526 m = _te + o2 + aue + g;
105527 n = m + $te;
105528 throw vbb(new cqd(n));
105529 }
105530 }
105531 }
105532 j = (w2 = u2.i, !w2 ? u2.i = new zf(u2, u2.c) : w2);
105533 for (F = j.Kc(); F.Ob(); ) {
105534 D3 = BD(F.Pb(), 202);
105535 f2 = BD(Qc(u2, D3), 21);
105536 for (r = f2.Kc(); r.Ob(); ) {
105537 q = r.Pb();
105538 v = BD(oo(a.d, q), 202);
105539 if (v) {
105540 l = (!D3.g && (D3.g = new y5d(A2, D3, 9, 10)), D3.g);
105541 wtd(l, v);
105542 } else {
105543 g = _pd(t4, Vte);
105544 m = _te + q + aue + g;
105545 n = m + $te;
105546 throw vbb(new cqd(n));
105547 }
105548 }
105549 }
105550 !c2.b && (c2.b = new y5d(z2, c2, 4, 7));
105551 if (c2.b.i != 0 && (!c2.c && (c2.c = new y5d(z2, c2, 5, 8)), c2.c.i != 0) && (!c2.b && (c2.b = new y5d(z2, c2, 4, 7)), c2.b.i <= 1 && (!c2.c && (c2.c = new y5d(z2, c2, 5, 8)), c2.c.i <= 1)) && (!c2.a && (c2.a = new cUd(A2, c2, 6, 6)), c2.a).i == 1) {
105552 G = BD(qud((!c2.a && (c2.a = new cUd(A2, c2, 6, 6)), c2.a), 0), 202);
105553 if (!dmd(G) && !emd(G)) {
105554 kmd(G, BD(qud((!c2.b && (c2.b = new y5d(z2, c2, 4, 7)), c2.b), 0), 82));
105555 lmd(G, BD(qud((!c2.c && (c2.c = new y5d(z2, c2, 5, 8)), c2.c), 0), 82));
105556 }
105557 }
105558 }
105559 function qJc(a) {
105560 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3;
105561 for (t4 = a.a, u2 = 0, v = t4.length; u2 < v; ++u2) {
105562 s = t4[u2];
105563 j = Ohe;
105564 k = Ohe;
105565 for (o2 = new olb(s.e); o2.a < o2.c.c.length; ) {
105566 m = BD(mlb(o2), 10);
105567 g = !m.c ? -1 : Jkb(m.c.a, m, 0);
105568 if (g > 0) {
105569 l = BD(Ikb(m.c.a, g - 1), 10);
105570 B = jBc(a.b, m, l);
105571 q = m.n.b - m.d.d - (l.n.b + l.o.b + l.d.a + B);
105572 } else {
105573 q = m.n.b - m.d.d;
105574 }
105575 j = $wnd.Math.min(q, j);
105576 if (g < m.c.a.c.length - 1) {
105577 l = BD(Ikb(m.c.a, g + 1), 10);
105578 B = jBc(a.b, m, l);
105579 r = l.n.b - l.d.d - (m.n.b + m.o.b + m.d.a + B);
105580 } else {
105581 r = 2 * m.n.b;
105582 }
105583 k = $wnd.Math.min(r, k);
105584 }
105585 i3 = Ohe;
105586 f2 = false;
105587 e = BD(Ikb(s.e, 0), 10);
105588 for (D3 = new olb(e.j); D3.a < D3.c.c.length; ) {
105589 C = BD(mlb(D3), 11);
105590 p = e.n.b + C.n.b + C.a.b;
105591 for (d = new olb(C.e); d.a < d.c.c.length; ) {
105592 c2 = BD(mlb(d), 17);
105593 w2 = c2.c;
105594 b = w2.i.n.b + w2.n.b + w2.a.b - p;
105595 if ($wnd.Math.abs(b) < $wnd.Math.abs(i3) && $wnd.Math.abs(b) < (b < 0 ? j : k)) {
105596 i3 = b;
105597 f2 = true;
105598 }
105599 }
105600 }
105601 h = BD(Ikb(s.e, s.e.c.length - 1), 10);
105602 for (A = new olb(h.j); A.a < A.c.c.length; ) {
105603 w2 = BD(mlb(A), 11);
105604 p = h.n.b + w2.n.b + w2.a.b;
105605 for (d = new olb(w2.g); d.a < d.c.c.length; ) {
105606 c2 = BD(mlb(d), 17);
105607 C = c2.d;
105608 b = C.i.n.b + C.n.b + C.a.b - p;
105609 if ($wnd.Math.abs(b) < $wnd.Math.abs(i3) && $wnd.Math.abs(b) < (b < 0 ? j : k)) {
105610 i3 = b;
105611 f2 = true;
105612 }
105613 }
105614 }
105615 if (f2 && i3 != 0) {
105616 for (n = new olb(s.e); n.a < n.c.c.length; ) {
105617 m = BD(mlb(n), 10);
105618 m.n.b += i3;
105619 }
105620 }
105621 }
105622 }
105623 function ync(a, b, c2) {
105624 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
105625 if (Mhb(a.a, b)) {
105626 if (Rqb(BD(Ohb(a.a, b), 53), c2)) {
105627 return 1;
105628 }
105629 } else {
105630 Rhb(a.a, b, new Tqb());
105631 }
105632 if (Mhb(a.a, c2)) {
105633 if (Rqb(BD(Ohb(a.a, c2), 53), b)) {
105634 return -1;
105635 }
105636 } else {
105637 Rhb(a.a, c2, new Tqb());
105638 }
105639 if (Mhb(a.e, b)) {
105640 if (Rqb(BD(Ohb(a.e, b), 53), c2)) {
105641 return -1;
105642 }
105643 } else {
105644 Rhb(a.e, b, new Tqb());
105645 }
105646 if (Mhb(a.e, c2)) {
105647 if (Rqb(BD(Ohb(a.a, c2), 53), b)) {
105648 return 1;
105649 }
105650 } else {
105651 Rhb(a.e, c2, new Tqb());
105652 }
105653 if (a.c == (tAc(), sAc) || !wNb(b, (wtc(), Zsc)) || !wNb(c2, (wtc(), Zsc))) {
105654 i3 = BD(Etb(Dtb(KAb(JAb(new YAb(null, new Kub(b.j, 16)), new Hnc())), new Jnc())), 11);
105655 k = BD(Etb(Dtb(KAb(JAb(new YAb(null, new Kub(c2.j, 16)), new Lnc())), new Nnc())), 11);
105656 if (!!i3 && !!k) {
105657 h = i3.i;
105658 j = k.i;
105659 if (!!h && h == j) {
105660 for (m = new olb(h.j); m.a < m.c.c.length; ) {
105661 l = BD(mlb(m), 11);
105662 if (l == i3) {
105663 Anc(a, c2, b);
105664 return -1;
105665 } else if (l == k) {
105666 Anc(a, b, c2);
105667 return 1;
105668 }
105669 }
105670 return beb(znc(a, b), znc(a, c2));
105671 }
105672 for (o2 = a.d, p = 0, q = o2.length; p < q; ++p) {
105673 n = o2[p];
105674 if (n == h) {
105675 Anc(a, c2, b);
105676 return -1;
105677 } else if (n == j) {
105678 Anc(a, b, c2);
105679 return 1;
105680 }
105681 }
105682 }
105683 if (!wNb(b, (wtc(), Zsc)) || !wNb(c2, Zsc)) {
105684 e = znc(a, b);
105685 g = znc(a, c2);
105686 e > g ? Anc(a, b, c2) : Anc(a, c2, b);
105687 return e < g ? -1 : e > g ? 1 : 0;
105688 }
105689 }
105690 d = BD(vNb(b, (wtc(), Zsc)), 19).a;
105691 f2 = BD(vNb(c2, Zsc), 19).a;
105692 d > f2 ? Anc(a, b, c2) : Anc(a, c2, b);
105693 return d < f2 ? -1 : d > f2 ? 1 : 0;
105694 }
105695 function u2c(a, b, c2, d) {
105696 var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s;
105697 if (Ccb(DD(hkd(b, (Y9c(), d9c))))) {
105698 return mmb(), mmb(), jmb;
105699 }
105700 j = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i != 0;
105701 l = s2c(b);
105702 k = !l.dc();
105703 if (j || k) {
105704 e = BD(hkd(b, F9c), 149);
105705 if (!e) {
105706 throw vbb(new y2c("Resolved algorithm is not set; apply a LayoutAlgorithmResolver before computing layout."));
105707 }
105708 s = D3c(e, (Csd(), ysd));
105709 q2c(b);
105710 if (!j && k && !s) {
105711 return mmb(), mmb(), jmb;
105712 }
105713 i3 = new Rkb();
105714 if (PD(hkd(b, J8c)) === PD((hbd(), ebd)) && (D3c(e, vsd) || D3c(e, usd))) {
105715 n = p2c(a, b);
105716 o2 = new Psb();
105717 ye(o2, (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a));
105718 while (o2.b != 0) {
105719 m = BD(o2.b == 0 ? null : (sCb(o2.b != 0), Nsb(o2, o2.a.a)), 33);
105720 q2c(m);
105721 r = PD(hkd(m, J8c)) === PD(gbd);
105722 if (r || ikd(m, o8c) && !C3c(e, hkd(m, F9c))) {
105723 h = u2c(a, m, c2, d);
105724 Gkb(i3, h);
105725 jkd(m, J8c, gbd);
105726 hfd(m);
105727 } else {
105728 ye(o2, (!m.a && (m.a = new cUd(E2, m, 10, 11)), m.a));
105729 }
105730 }
105731 } else {
105732 n = (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a).i;
105733 for (g = new Fyd((!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a)); g.e != g.i.gc(); ) {
105734 f2 = BD(Dyd(g), 33);
105735 h = u2c(a, f2, c2, d);
105736 Gkb(i3, h);
105737 hfd(f2);
105738 }
105739 }
105740 for (q = new olb(i3); q.a < q.c.c.length; ) {
105741 p = BD(mlb(q), 79);
105742 jkd(p, d9c, (Bcb(), true));
105743 }
105744 r2c(b, e, Udd(d, n));
105745 v2c(i3);
105746 return k && s ? l : (mmb(), mmb(), jmb);
105747 } else {
105748 return mmb(), mmb(), jmb;
105749 }
105750 }
105751 function Z$b(a, b, c2, d, e, f2, g, h, i3) {
105752 var j, k, l, m, n, o2, p;
105753 n = c2;
105754 k = new b0b(i3);
105755 __b(k, (j0b(), e0b));
105756 yNb(k, (wtc(), Isc), g);
105757 yNb(k, (Nyc(), Vxc), (dcd(), $bd));
105758 p = Edb(ED(a.We(Uxc)));
105759 yNb(k, Uxc, p);
105760 l = new H0b();
105761 F0b(l, k);
105762 if (!(b != bcd && b != ccd)) {
105763 d >= 0 ? n = Zcd(h) : n = Wcd(Zcd(h));
105764 a.Ye($xc, n);
105765 }
105766 j = new d7c();
105767 m = false;
105768 if (a.Xe(Txc)) {
105769 a7c(j, BD(a.We(Txc), 8));
105770 m = true;
105771 } else {
105772 _6c(j, g.a / 2, g.b / 2);
105773 }
105774 switch (n.g) {
105775 case 4:
105776 yNb(k, mxc, (Ctc(), ytc));
105777 yNb(k, Bsc, (Gqc(), Fqc));
105778 k.o.b = g.b;
105779 p < 0 && (k.o.a = -p);
105780 G0b(l, (Ucd(), zcd));
105781 m || (j.a = g.a);
105782 j.a -= g.a;
105783 break;
105784 case 2:
105785 yNb(k, mxc, (Ctc(), Atc));
105786 yNb(k, Bsc, (Gqc(), Dqc));
105787 k.o.b = g.b;
105788 p < 0 && (k.o.a = -p);
105789 G0b(l, (Ucd(), Tcd));
105790 m || (j.a = 0);
105791 break;
105792 case 1:
105793 yNb(k, Osc, (esc(), dsc));
105794 k.o.a = g.a;
105795 p < 0 && (k.o.b = -p);
105796 G0b(l, (Ucd(), Rcd));
105797 m || (j.b = g.b);
105798 j.b -= g.b;
105799 break;
105800 case 3:
105801 yNb(k, Osc, (esc(), bsc));
105802 k.o.a = g.a;
105803 p < 0 && (k.o.b = -p);
105804 G0b(l, (Ucd(), Acd));
105805 m || (j.b = 0);
105806 }
105807 a7c(l.n, j);
105808 yNb(k, Txc, j);
105809 if (b == Zbd || b == _bd || b == $bd) {
105810 o2 = 0;
105811 if (b == Zbd && a.Xe(Wxc)) {
105812 switch (n.g) {
105813 case 1:
105814 case 2:
105815 o2 = BD(a.We(Wxc), 19).a;
105816 break;
105817 case 3:
105818 case 4:
105819 o2 = -BD(a.We(Wxc), 19).a;
105820 }
105821 } else {
105822 switch (n.g) {
105823 case 4:
105824 case 2:
105825 o2 = f2.b;
105826 b == _bd && (o2 /= e.b);
105827 break;
105828 case 1:
105829 case 3:
105830 o2 = f2.a;
105831 b == _bd && (o2 /= e.a);
105832 }
105833 }
105834 yNb(k, htc, o2);
105835 }
105836 yNb(k, Hsc, n);
105837 return k;
105838 }
105839 function AGc(a) {
105840 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C;
105841 c2 = Edb(ED(vNb(a.a.j, (Nyc(), Ewc))));
105842 if (c2 < -1 || !a.a.i || ecd(BD(vNb(a.a.o, Vxc), 98)) || V_b(a.a.o, (Ucd(), zcd)).gc() < 2 && V_b(a.a.o, Tcd).gc() < 2) {
105843 return true;
105844 }
105845 if (a.a.c.Rf()) {
105846 return false;
105847 }
105848 v = 0;
105849 u2 = 0;
105850 t4 = new Rkb();
105851 for (i3 = a.a.e, j = 0, k = i3.length; j < k; ++j) {
105852 h = i3[j];
105853 for (m = h, n = 0, p = m.length; n < p; ++n) {
105854 l = m[n];
105855 if (l.k == (j0b(), i0b)) {
105856 t4.c[t4.c.length] = l;
105857 continue;
105858 }
105859 d = a.b[l.c.p][l.p];
105860 if (l.k == e0b) {
105861 d.b = 1;
105862 BD(vNb(l, (wtc(), $sc)), 11).j == (Ucd(), zcd) && (u2 += d.a);
105863 } else {
105864 C = V_b(l, (Ucd(), Tcd));
105865 C.dc() || !Lq(C, new NGc()) ? d.c = 1 : (e = V_b(l, zcd), (e.dc() || !Lq(e, new JGc())) && (v += d.a));
105866 }
105867 for (g = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(g); ) {
105868 f2 = BD(Rr(g), 17);
105869 v += d.c;
105870 u2 += d.b;
105871 B = f2.d.i;
105872 zGc(a, d, B);
105873 }
105874 r = pl(OC(GC(KI, 1), Uhe, 20, 0, [V_b(l, (Ucd(), Acd)), V_b(l, Rcd)]));
105875 for (A = new Sr(new xl(r.a.length, r.a)); Qr(A); ) {
105876 w2 = BD(Rr(A), 11);
105877 s = BD(vNb(w2, (wtc(), gtc)), 10);
105878 if (s) {
105879 v += d.c;
105880 u2 += d.b;
105881 zGc(a, d, s);
105882 }
105883 }
105884 }
105885 for (o2 = new olb(t4); o2.a < o2.c.c.length; ) {
105886 l = BD(mlb(o2), 10);
105887 d = a.b[l.c.p][l.p];
105888 for (g = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(g); ) {
105889 f2 = BD(Rr(g), 17);
105890 v += d.c;
105891 u2 += d.b;
105892 B = f2.d.i;
105893 zGc(a, d, B);
105894 }
105895 }
105896 t4.c = KC(SI, Uhe, 1, 0, 5, 1);
105897 }
105898 b = v + u2;
105899 q = b == 0 ? Pje : (v - u2) / b;
105900 return q >= c2;
105901 }
105902 function ovd() {
105903 mvd();
105904 function h(f2) {
105905 var g = this;
105906 this.dispatch = function(a) {
105907 var b = a.data;
105908 switch (b.cmd) {
105909 case "algorithms":
105910 var c2 = pvd((mmb(), new lnb(new $ib(lvd.b))));
105911 f2.postMessage({ id: b.id, data: c2 });
105912 break;
105913 case "categories":
105914 var d = pvd((mmb(), new lnb(new $ib(lvd.c))));
105915 f2.postMessage({ id: b.id, data: d });
105916 break;
105917 case "options":
105918 var e = pvd((mmb(), new lnb(new $ib(lvd.d))));
105919 f2.postMessage({ id: b.id, data: e });
105920 break;
105921 case "register":
105922 svd(b.algorithms);
105923 f2.postMessage({ id: b.id });
105924 break;
105925 case "layout":
105926 qvd(b.graph, b.layoutOptions || {}, b.options || {});
105927 f2.postMessage({ id: b.id, data: b.graph });
105928 break;
105929 }
105930 };
105931 this.saveDispatch = function(b) {
105932 try {
105933 g.dispatch(b);
105934 } catch (a) {
105935 f2.postMessage({ id: b.data.id, error: a });
105936 }
105937 };
105938 }
105939 function j(b) {
105940 var c2 = this;
105941 this.dispatcher = new h({ postMessage: function(a) {
105942 c2.onmessage({ data: a });
105943 } });
105944 this.postMessage = function(a) {
105945 setTimeout(function() {
105946 c2.dispatcher.saveDispatch({ data: a });
105947 }, 0);
105948 };
105949 }
105950 if (typeof document === uke && typeof self !== uke) {
105951 var i3 = new h(self);
105952 self.onmessage = i3.saveDispatch;
105953 } else if (typeof module3 !== uke && module3.exports) {
105954 Object.defineProperty(exports3, "__esModule", { value: true });
105955 module3.exports = { "default": j, Worker: j };
105956 }
105957 }
105958 function aae(a) {
105959 if (a.N)
105960 return;
105961 a.N = true;
105962 a.b = Lnd(a, 0);
105963 Knd(a.b, 0);
105964 Knd(a.b, 1);
105965 Knd(a.b, 2);
105966 a.bb = Lnd(a, 1);
105967 Knd(a.bb, 0);
105968 Knd(a.bb, 1);
105969 a.fb = Lnd(a, 2);
105970 Knd(a.fb, 3);
105971 Knd(a.fb, 4);
105972 Qnd(a.fb, 5);
105973 a.qb = Lnd(a, 3);
105974 Knd(a.qb, 0);
105975 Qnd(a.qb, 1);
105976 Qnd(a.qb, 2);
105977 Knd(a.qb, 3);
105978 Knd(a.qb, 4);
105979 Qnd(a.qb, 5);
105980 Knd(a.qb, 6);
105981 a.a = Mnd(a, 4);
105982 a.c = Mnd(a, 5);
105983 a.d = Mnd(a, 6);
105984 a.e = Mnd(a, 7);
105985 a.f = Mnd(a, 8);
105986 a.g = Mnd(a, 9);
105987 a.i = Mnd(a, 10);
105988 a.j = Mnd(a, 11);
105989 a.k = Mnd(a, 12);
105990 a.n = Mnd(a, 13);
105991 a.o = Mnd(a, 14);
105992 a.p = Mnd(a, 15);
105993 a.q = Mnd(a, 16);
105994 a.s = Mnd(a, 17);
105995 a.r = Mnd(a, 18);
105996 a.t = Mnd(a, 19);
105997 a.u = Mnd(a, 20);
105998 a.v = Mnd(a, 21);
105999 a.w = Mnd(a, 22);
106000 a.B = Mnd(a, 23);
106001 a.A = Mnd(a, 24);
106002 a.C = Mnd(a, 25);
106003 a.D = Mnd(a, 26);
106004 a.F = Mnd(a, 27);
106005 a.G = Mnd(a, 28);
106006 a.H = Mnd(a, 29);
106007 a.J = Mnd(a, 30);
106008 a.I = Mnd(a, 31);
106009 a.K = Mnd(a, 32);
106010 a.M = Mnd(a, 33);
106011 a.L = Mnd(a, 34);
106012 a.P = Mnd(a, 35);
106013 a.Q = Mnd(a, 36);
106014 a.R = Mnd(a, 37);
106015 a.S = Mnd(a, 38);
106016 a.T = Mnd(a, 39);
106017 a.U = Mnd(a, 40);
106018 a.V = Mnd(a, 41);
106019 a.X = Mnd(a, 42);
106020 a.W = Mnd(a, 43);
106021 a.Y = Mnd(a, 44);
106022 a.Z = Mnd(a, 45);
106023 a.$ = Mnd(a, 46);
106024 a._ = Mnd(a, 47);
106025 a.ab = Mnd(a, 48);
106026 a.cb = Mnd(a, 49);
106027 a.db = Mnd(a, 50);
106028 a.eb = Mnd(a, 51);
106029 a.gb = Mnd(a, 52);
106030 a.hb = Mnd(a, 53);
106031 a.ib = Mnd(a, 54);
106032 a.jb = Mnd(a, 55);
106033 a.kb = Mnd(a, 56);
106034 a.lb = Mnd(a, 57);
106035 a.mb = Mnd(a, 58);
106036 a.nb = Mnd(a, 59);
106037 a.ob = Mnd(a, 60);
106038 a.pb = Mnd(a, 61);
106039 }
106040 function f5b(a, b) {
106041 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
106042 s = 0;
106043 if (b.f.a == 0) {
106044 for (q = new olb(a); q.a < q.c.c.length; ) {
106045 o2 = BD(mlb(q), 10);
106046 s = $wnd.Math.max(s, o2.n.a + o2.o.a + o2.d.c);
106047 }
106048 } else {
106049 s = b.f.a - b.c.a;
106050 }
106051 s -= b.c.a;
106052 for (p = new olb(a); p.a < p.c.c.length; ) {
106053 o2 = BD(mlb(p), 10);
106054 g5b(o2.n, s - o2.o.a);
106055 h5b(o2.f);
106056 d5b(o2);
106057 (!o2.q ? (mmb(), mmb(), kmb) : o2.q)._b((Nyc(), ayc)) && g5b(BD(vNb(o2, ayc), 8), s - o2.o.a);
106058 switch (BD(vNb(o2, mwc), 248).g) {
106059 case 1:
106060 yNb(o2, mwc, (F7c(), D7c));
106061 break;
106062 case 2:
106063 yNb(o2, mwc, (F7c(), C7c));
106064 }
106065 r = o2.o;
106066 for (u2 = new olb(o2.j); u2.a < u2.c.c.length; ) {
106067 t4 = BD(mlb(u2), 11);
106068 g5b(t4.n, r.a - t4.o.a);
106069 g5b(t4.a, t4.o.a);
106070 G0b(t4, Z4b(t4.j));
106071 g = BD(vNb(t4, Wxc), 19);
106072 !!g && yNb(t4, Wxc, meb(-g.a));
106073 for (f2 = new olb(t4.g); f2.a < f2.c.c.length; ) {
106074 e = BD(mlb(f2), 17);
106075 for (d = Jsb(e.a, 0); d.b != d.d.c; ) {
106076 c2 = BD(Xsb(d), 8);
106077 c2.a = s - c2.a;
106078 }
106079 j = BD(vNb(e, jxc), 74);
106080 if (j) {
106081 for (i3 = Jsb(j, 0); i3.b != i3.d.c; ) {
106082 h = BD(Xsb(i3), 8);
106083 h.a = s - h.a;
106084 }
106085 }
106086 for (m = new olb(e.b); m.a < m.c.c.length; ) {
106087 k = BD(mlb(m), 70);
106088 g5b(k.n, s - k.o.a);
106089 }
106090 }
106091 for (n = new olb(t4.f); n.a < n.c.c.length; ) {
106092 k = BD(mlb(n), 70);
106093 g5b(k.n, t4.o.a - k.o.a);
106094 }
106095 }
106096 if (o2.k == (j0b(), e0b)) {
106097 yNb(o2, (wtc(), Hsc), Z4b(BD(vNb(o2, Hsc), 61)));
106098 c5b(o2);
106099 }
106100 for (l = new olb(o2.b); l.a < l.c.c.length; ) {
106101 k = BD(mlb(l), 70);
106102 d5b(k);
106103 g5b(k.n, r.a - k.o.a);
106104 }
106105 }
106106 }
106107 function i5b(a, b) {
106108 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
106109 s = 0;
106110 if (b.f.b == 0) {
106111 for (q = new olb(a); q.a < q.c.c.length; ) {
106112 o2 = BD(mlb(q), 10);
106113 s = $wnd.Math.max(s, o2.n.b + o2.o.b + o2.d.a);
106114 }
106115 } else {
106116 s = b.f.b - b.c.b;
106117 }
106118 s -= b.c.b;
106119 for (p = new olb(a); p.a < p.c.c.length; ) {
106120 o2 = BD(mlb(p), 10);
106121 j5b(o2.n, s - o2.o.b);
106122 k5b(o2.f);
106123 e5b(o2);
106124 (!o2.q ? (mmb(), mmb(), kmb) : o2.q)._b((Nyc(), ayc)) && j5b(BD(vNb(o2, ayc), 8), s - o2.o.b);
106125 switch (BD(vNb(o2, mwc), 248).g) {
106126 case 3:
106127 yNb(o2, mwc, (F7c(), A7c));
106128 break;
106129 case 4:
106130 yNb(o2, mwc, (F7c(), E7c));
106131 }
106132 r = o2.o;
106133 for (u2 = new olb(o2.j); u2.a < u2.c.c.length; ) {
106134 t4 = BD(mlb(u2), 11);
106135 j5b(t4.n, r.b - t4.o.b);
106136 j5b(t4.a, t4.o.b);
106137 G0b(t4, $4b(t4.j));
106138 g = BD(vNb(t4, Wxc), 19);
106139 !!g && yNb(t4, Wxc, meb(-g.a));
106140 for (f2 = new olb(t4.g); f2.a < f2.c.c.length; ) {
106141 e = BD(mlb(f2), 17);
106142 for (d = Jsb(e.a, 0); d.b != d.d.c; ) {
106143 c2 = BD(Xsb(d), 8);
106144 c2.b = s - c2.b;
106145 }
106146 j = BD(vNb(e, jxc), 74);
106147 if (j) {
106148 for (i3 = Jsb(j, 0); i3.b != i3.d.c; ) {
106149 h = BD(Xsb(i3), 8);
106150 h.b = s - h.b;
106151 }
106152 }
106153 for (m = new olb(e.b); m.a < m.c.c.length; ) {
106154 k = BD(mlb(m), 70);
106155 j5b(k.n, s - k.o.b);
106156 }
106157 }
106158 for (n = new olb(t4.f); n.a < n.c.c.length; ) {
106159 k = BD(mlb(n), 70);
106160 j5b(k.n, t4.o.b - k.o.b);
106161 }
106162 }
106163 if (o2.k == (j0b(), e0b)) {
106164 yNb(o2, (wtc(), Hsc), $4b(BD(vNb(o2, Hsc), 61)));
106165 b5b(o2);
106166 }
106167 for (l = new olb(o2.b); l.a < l.c.c.length; ) {
106168 k = BD(mlb(l), 70);
106169 e5b(k);
106170 j5b(k.n, r.b - k.o.b);
106171 }
106172 }
106173 }
106174 function tZc(a, b, c2, d) {
106175 var e, f2, g, h, i3, j, k, l, m, n;
106176 l = false;
106177 j = a + 1;
106178 k = (tCb(a, b.c.length), BD(b.c[a], 200));
106179 g = k.a;
106180 h = null;
106181 for (f2 = 0; f2 < k.a.c.length; f2++) {
106182 e = (tCb(f2, g.c.length), BD(g.c[f2], 187));
106183 if (e.c) {
106184 continue;
106185 }
106186 if (e.b.c.length == 0) {
106187 Zfb();
106188 v$c(k, e);
106189 --f2;
106190 l = true;
106191 continue;
106192 }
106193 if (!e.k) {
106194 !!h && a$c(h);
106195 h = new b$c(!h ? 0 : h.e + h.d + d, k.f, d);
106196 OZc(e, h.e + h.d, k.f);
106197 Ekb(k.d, h);
106198 WZc(h, e);
106199 e.k = true;
106200 }
106201 i3 = null;
106202 i3 = (n = null, f2 < k.a.c.length - 1 ? n = BD(Ikb(k.a, f2 + 1), 187) : j < b.c.length && (tCb(j, b.c.length), BD(b.c[j], 200)).a.c.length != 0 && (n = BD(Ikb((tCb(j, b.c.length), BD(b.c[j], 200)).a, 0), 187)), n);
106203 m = false;
106204 !!i3 && (m = !pb(i3.j, k));
106205 if (i3) {
106206 if (i3.b.c.length == 0) {
106207 v$c(k, i3);
106208 break;
106209 } else {
106210 KZc(e, c2 - e.s);
106211 a$c(e.q);
106212 l = l | sZc(k, e, i3, c2, d);
106213 }
106214 if (i3.b.c.length == 0) {
106215 v$c((tCb(j, b.c.length), BD(b.c[j], 200)), i3);
106216 i3 = null;
106217 while (b.c.length > j && (tCb(j, b.c.length), BD(b.c[j], 200)).a.c.length == 0) {
106218 Lkb(b, (tCb(j, b.c.length), b.c[j]));
106219 }
106220 }
106221 if (!i3) {
106222 --f2;
106223 continue;
106224 }
106225 if (uZc(b, k, e, i3, m, c2, j, d)) {
106226 l = true;
106227 continue;
106228 }
106229 if (m) {
106230 if (vZc(b, k, e, i3, c2, j, d)) {
106231 l = true;
106232 continue;
106233 } else if (wZc(k, e)) {
106234 e.c = true;
106235 l = true;
106236 continue;
106237 }
106238 } else if (wZc(k, e)) {
106239 e.c = true;
106240 l = true;
106241 continue;
106242 }
106243 if (l) {
106244 continue;
106245 }
106246 }
106247 if (wZc(k, e)) {
106248 e.c = true;
106249 l = true;
106250 !!i3 && (i3.k = false);
106251 continue;
106252 } else {
106253 a$c(e.q);
106254 }
106255 }
106256 return l;
106257 }
106258 function fed(a, b, c2, d, e, f2, g) {
106259 var h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I;
106260 p = 0;
106261 D3 = 0;
106262 for (j = new olb(a.b); j.a < j.c.c.length; ) {
106263 i3 = BD(mlb(j), 157);
106264 !!i3.c && zfd(i3.c);
106265 p = $wnd.Math.max(p, red(i3));
106266 D3 += red(i3) * qed(i3);
106267 }
106268 q = D3 / a.b.c.length;
106269 C = _dd(a.b, q);
106270 D3 += a.b.c.length * C;
106271 p = $wnd.Math.max(p, $wnd.Math.sqrt(D3 * g)) + c2.b;
106272 H2 = c2.b;
106273 I = c2.d;
106274 n = 0;
106275 l = c2.b + c2.c;
106276 B = new Psb();
106277 Dsb(B, meb(0));
106278 w2 = new Psb();
106279 k = new Bib(a.b, 0);
106280 o2 = null;
106281 h = new Rkb();
106282 while (k.b < k.d.gc()) {
106283 i3 = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 157));
106284 G = red(i3);
106285 m = qed(i3);
106286 if (H2 + G > p) {
106287 if (f2) {
106288 Fsb(w2, n);
106289 Fsb(B, meb(k.b - 1));
106290 Ekb(a.d, o2);
106291 h.c = KC(SI, Uhe, 1, 0, 5, 1);
106292 }
106293 H2 = c2.b;
106294 I += n + b;
106295 n = 0;
106296 l = $wnd.Math.max(l, c2.b + c2.c + G);
106297 }
106298 h.c[h.c.length] = i3;
106299 ued(i3, H2, I);
106300 l = $wnd.Math.max(l, H2 + G + c2.c);
106301 n = $wnd.Math.max(n, m);
106302 H2 += G + b;
106303 o2 = i3;
106304 }
106305 Gkb(a.a, h);
106306 Ekb(a.d, BD(Ikb(h, h.c.length - 1), 157));
106307 l = $wnd.Math.max(l, d);
106308 F = I + n + c2.a;
106309 if (F < e) {
106310 n += e - F;
106311 F = e;
106312 }
106313 if (f2) {
106314 H2 = c2.b;
106315 k = new Bib(a.b, 0);
106316 Fsb(B, meb(a.b.c.length));
106317 A = Jsb(B, 0);
106318 s = BD(Xsb(A), 19).a;
106319 Fsb(w2, n);
106320 v = Jsb(w2, 0);
106321 u2 = 0;
106322 while (k.b < k.d.gc()) {
106323 if (k.b == s) {
106324 H2 = c2.b;
106325 u2 = Edb(ED(Xsb(v)));
106326 s = BD(Xsb(A), 19).a;
106327 }
106328 i3 = (sCb(k.b < k.d.gc()), BD(k.d.Xb(k.c = k.b++), 157));
106329 sed(i3, u2);
106330 if (k.b == s) {
106331 r = l - H2 - c2.c;
106332 t4 = red(i3);
106333 ted(i3, r);
106334 ved(i3, (r - t4) / 2, 0);
106335 }
106336 H2 += red(i3) + b;
106337 }
106338 }
106339 return new f7c(l, F);
106340 }
106341 function pde(a) {
106342 var b, c2, d, e, f2;
106343 b = a.c;
106344 f2 = null;
106345 switch (b) {
106346 case 6:
106347 return a.Vl();
106348 case 13:
106349 return a.Wl();
106350 case 23:
106351 return a.Nl();
106352 case 22:
106353 return a.Sl();
106354 case 18:
106355 return a.Pl();
106356 case 8:
106357 nde(a);
106358 f2 = (wfe(), efe);
106359 break;
106360 case 9:
106361 return a.vl(true);
106362 case 19:
106363 return a.wl();
106364 case 10:
106365 switch (a.a) {
106366 case 100:
106367 case 68:
106368 case 119:
106369 case 87:
106370 case 115:
106371 case 83:
106372 f2 = a.ul(a.a);
106373 nde(a);
106374 return f2;
106375 case 101:
106376 case 102:
106377 case 110:
106378 case 114:
106379 case 116:
106380 case 117:
106381 case 118:
106382 case 120:
106383 {
106384 c2 = a.tl();
106385 c2 < Tje ? f2 = (wfe(), wfe(), new ige(0, c2)) : f2 = Ffe(Tee(c2));
106386 }
106387 break;
106388 case 99:
106389 return a.Fl();
106390 case 67:
106391 return a.Al();
106392 case 105:
106393 return a.Il();
106394 case 73:
106395 return a.Bl();
106396 case 103:
106397 return a.Gl();
106398 case 88:
106399 return a.Cl();
106400 case 49:
106401 case 50:
106402 case 51:
106403 case 52:
106404 case 53:
106405 case 54:
106406 case 55:
106407 case 56:
106408 case 57:
106409 return a.xl();
106410 case 80:
106411 case 112:
106412 f2 = tde(a, a.a);
106413 if (!f2)
106414 throw vbb(new mde(tvd((h0d(), Iue))));
106415 break;
106416 default:
106417 f2 = zfe(a.a);
106418 }
106419 nde(a);
106420 break;
106421 case 0:
106422 if (a.a == 93 || a.a == 123 || a.a == 125)
106423 throw vbb(new mde(tvd((h0d(), Hue))));
106424 f2 = zfe(a.a);
106425 d = a.a;
106426 nde(a);
106427 if ((d & 64512) == Uje && a.c == 0 && (a.a & 64512) == 56320) {
106428 e = KC(TD, $ie, 25, 2, 15, 1);
106429 e[0] = d & aje;
106430 e[1] = a.a & aje;
106431 f2 = Efe(Ffe(zfb(e, 0, e.length)), 0);
106432 nde(a);
106433 }
106434 break;
106435 default:
106436 throw vbb(new mde(tvd((h0d(), Hue))));
106437 }
106438 return f2;
106439 }
106440 function e7b(a, b, c2) {
106441 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
106442 d = new Rkb();
106443 e = Ohe;
106444 f2 = Ohe;
106445 g = Ohe;
106446 if (c2) {
106447 e = a.f.a;
106448 for (p = new olb(b.j); p.a < p.c.c.length; ) {
106449 o2 = BD(mlb(p), 11);
106450 for (i3 = new olb(o2.g); i3.a < i3.c.c.length; ) {
106451 h = BD(mlb(i3), 17);
106452 if (h.a.b != 0) {
106453 k = BD(Hsb(h.a), 8);
106454 if (k.a < e) {
106455 f2 = e - k.a;
106456 g = Ohe;
106457 d.c = KC(SI, Uhe, 1, 0, 5, 1);
106458 e = k.a;
106459 }
106460 if (k.a <= e) {
106461 d.c[d.c.length] = h;
106462 h.a.b > 1 && (g = $wnd.Math.min(g, $wnd.Math.abs(BD(Ut(h.a, 1), 8).b - k.b)));
106463 }
106464 }
106465 }
106466 }
106467 } else {
106468 for (p = new olb(b.j); p.a < p.c.c.length; ) {
106469 o2 = BD(mlb(p), 11);
106470 for (i3 = new olb(o2.e); i3.a < i3.c.c.length; ) {
106471 h = BD(mlb(i3), 17);
106472 if (h.a.b != 0) {
106473 m = BD(Isb(h.a), 8);
106474 if (m.a > e) {
106475 f2 = m.a - e;
106476 g = Ohe;
106477 d.c = KC(SI, Uhe, 1, 0, 5, 1);
106478 e = m.a;
106479 }
106480 if (m.a >= e) {
106481 d.c[d.c.length] = h;
106482 h.a.b > 1 && (g = $wnd.Math.min(g, $wnd.Math.abs(BD(Ut(h.a, h.a.b - 2), 8).b - m.b)));
106483 }
106484 }
106485 }
106486 }
106487 }
106488 if (d.c.length != 0 && f2 > b.o.a / 2 && g > b.o.b / 2) {
106489 n = new H0b();
106490 F0b(n, b);
106491 G0b(n, (Ucd(), Acd));
106492 n.n.a = b.o.a / 2;
106493 r = new H0b();
106494 F0b(r, b);
106495 G0b(r, Rcd);
106496 r.n.a = b.o.a / 2;
106497 r.n.b = b.o.b;
106498 for (i3 = new olb(d); i3.a < i3.c.c.length; ) {
106499 h = BD(mlb(i3), 17);
106500 if (c2) {
106501 j = BD(Lsb(h.a), 8);
106502 q = h.a.b == 0 ? A0b(h.d) : BD(Hsb(h.a), 8);
106503 q.b >= j.b ? QZb(h, r) : QZb(h, n);
106504 } else {
106505 j = BD(Msb(h.a), 8);
106506 q = h.a.b == 0 ? A0b(h.c) : BD(Isb(h.a), 8);
106507 q.b >= j.b ? RZb(h, r) : RZb(h, n);
106508 }
106509 l = BD(vNb(h, (Nyc(), jxc)), 74);
106510 !!l && ze(l, j, true);
106511 }
106512 b.n.a = e - b.o.a / 2;
106513 }
106514 }
106515 function erd(a, b, c2) {
106516 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I, J, K2;
106517 D3 = null;
106518 G = b;
106519 F = Rqd(a, dtd(c2), G);
106520 Lkd(F, _pd(G, Vte));
106521 H2 = BD(oo(a.g, Vpd(aC(G, Cte))), 33);
106522 m = aC(G, "sourcePort");
106523 d = null;
106524 !!m && (d = Vpd(m));
106525 I = BD(oo(a.j, d), 118);
106526 if (!H2) {
106527 h = Wpd(G);
106528 o2 = "An edge must have a source node (edge id: '" + h;
106529 p = o2 + $te;
106530 throw vbb(new cqd(p));
106531 }
106532 if (!!I && !Hb(mpd(I), H2)) {
106533 i3 = _pd(G, Vte);
106534 q = "The source port of an edge must be a port of the edge's source node (edge id: '" + i3;
106535 r = q + $te;
106536 throw vbb(new cqd(r));
106537 }
106538 B = (!F.b && (F.b = new y5d(z2, F, 4, 7)), F.b);
106539 f2 = null;
106540 I ? f2 = I : f2 = H2;
106541 wtd(B, f2);
106542 J = BD(oo(a.g, Vpd(aC(G, bue))), 33);
106543 n = aC(G, "targetPort");
106544 e = null;
106545 !!n && (e = Vpd(n));
106546 K2 = BD(oo(a.j, e), 118);
106547 if (!J) {
106548 l = Wpd(G);
106549 s = "An edge must have a target node (edge id: '" + l;
106550 t4 = s + $te;
106551 throw vbb(new cqd(t4));
106552 }
106553 if (!!K2 && !Hb(mpd(K2), J)) {
106554 j = _pd(G, Vte);
106555 u2 = "The target port of an edge must be a port of the edge's target node (edge id: '" + j;
106556 v = u2 + $te;
106557 throw vbb(new cqd(v));
106558 }
106559 C = (!F.c && (F.c = new y5d(z2, F, 5, 8)), F.c);
106560 g = null;
106561 K2 ? g = K2 : g = J;
106562 wtd(C, g);
106563 if ((!F.b && (F.b = new y5d(z2, F, 4, 7)), F.b).i == 0 || (!F.c && (F.c = new y5d(z2, F, 5, 8)), F.c).i == 0) {
106564 k = _pd(G, Vte);
106565 w2 = Zte + k;
106566 A = w2 + $te;
106567 throw vbb(new cqd(A));
106568 }
106569 grd(G, F);
106570 frd(G, F);
106571 D3 = crd(a, G, F);
106572 return D3;
106573 }
106574 function DXb(a, b) {
106575 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3;
106576 l = FXb(zXb(a, (Ucd(), Fcd)), b);
106577 o2 = EXb(zXb(a, Gcd), b);
106578 u2 = EXb(zXb(a, Ocd), b);
106579 B = GXb(zXb(a, Qcd), b);
106580 m = GXb(zXb(a, Bcd), b);
106581 s = EXb(zXb(a, Ncd), b);
106582 p = EXb(zXb(a, Hcd), b);
106583 w2 = EXb(zXb(a, Pcd), b);
106584 v = EXb(zXb(a, Ccd), b);
106585 C = GXb(zXb(a, Ecd), b);
106586 r = EXb(zXb(a, Lcd), b);
106587 t4 = EXb(zXb(a, Kcd), b);
106588 A = EXb(zXb(a, Dcd), b);
106589 D3 = GXb(zXb(a, Mcd), b);
106590 n = GXb(zXb(a, Icd), b);
106591 q = EXb(zXb(a, Jcd), b);
106592 c2 = w6c(OC(GC(UD, 1), Vje, 25, 15, [s.a, B.a, w2.a, D3.a]));
106593 d = w6c(OC(GC(UD, 1), Vje, 25, 15, [o2.a, l.a, u2.a, q.a]));
106594 e = r.a;
106595 f2 = w6c(OC(GC(UD, 1), Vje, 25, 15, [p.a, m.a, v.a, n.a]));
106596 j = w6c(OC(GC(UD, 1), Vje, 25, 15, [s.b, o2.b, p.b, t4.b]));
106597 i3 = w6c(OC(GC(UD, 1), Vje, 25, 15, [B.b, l.b, m.b, q.b]));
106598 k = C.b;
106599 h = w6c(OC(GC(UD, 1), Vje, 25, 15, [w2.b, u2.b, v.b, A.b]));
106600 vXb(zXb(a, Fcd), c2 + e, j + k);
106601 vXb(zXb(a, Jcd), c2 + e, j + k);
106602 vXb(zXb(a, Gcd), c2 + e, 0);
106603 vXb(zXb(a, Ocd), c2 + e, j + k + i3);
106604 vXb(zXb(a, Qcd), 0, j + k);
106605 vXb(zXb(a, Bcd), c2 + e + d, j + k);
106606 vXb(zXb(a, Hcd), c2 + e + d, 0);
106607 vXb(zXb(a, Pcd), 0, j + k + i3);
106608 vXb(zXb(a, Ccd), c2 + e + d, j + k + i3);
106609 vXb(zXb(a, Ecd), 0, j);
106610 vXb(zXb(a, Lcd), c2, 0);
106611 vXb(zXb(a, Dcd), 0, j + k + i3);
106612 vXb(zXb(a, Icd), c2 + e + d, 0);
106613 g = new d7c();
106614 g.a = w6c(OC(GC(UD, 1), Vje, 25, 15, [c2 + d + e + f2, C.a, t4.a, A.a]));
106615 g.b = w6c(OC(GC(UD, 1), Vje, 25, 15, [j + i3 + k + h, r.b, D3.b, n.b]));
106616 return g;
106617 }
106618 function Ngc(a) {
106619 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
106620 p = new Rkb();
106621 for (m = new olb(a.d.b); m.a < m.c.c.length; ) {
106622 l = BD(mlb(m), 29);
106623 for (o2 = new olb(l.a); o2.a < o2.c.c.length; ) {
106624 n = BD(mlb(o2), 10);
106625 e = BD(Ohb(a.f, n), 57);
106626 for (i3 = new Sr(ur(U_b(n).a.Kc(), new Sq())); Qr(i3); ) {
106627 g = BD(Rr(i3), 17);
106628 d = Jsb(g.a, 0);
106629 j = true;
106630 k = null;
106631 if (d.b != d.d.c) {
106632 b = BD(Xsb(d), 8);
106633 c2 = null;
106634 if (g.c.j == (Ucd(), Acd)) {
106635 q = new hic(b, new f7c(b.a, e.d.d), e, g);
106636 q.f.a = true;
106637 q.a = g.c;
106638 p.c[p.c.length] = q;
106639 }
106640 if (g.c.j == Rcd) {
106641 q = new hic(b, new f7c(b.a, e.d.d + e.d.a), e, g);
106642 q.f.d = true;
106643 q.a = g.c;
106644 p.c[p.c.length] = q;
106645 }
106646 while (d.b != d.d.c) {
106647 c2 = BD(Xsb(d), 8);
106648 if (!ADb(b.b, c2.b)) {
106649 k = new hic(b, c2, null, g);
106650 p.c[p.c.length] = k;
106651 if (j) {
106652 j = false;
106653 if (c2.b < e.d.d) {
106654 k.f.a = true;
106655 } else if (c2.b > e.d.d + e.d.a) {
106656 k.f.d = true;
106657 } else {
106658 k.f.d = true;
106659 k.f.a = true;
106660 }
106661 }
106662 }
106663 d.b != d.d.c && (b = c2);
106664 }
106665 if (k) {
106666 f2 = BD(Ohb(a.f, g.d.i), 57);
106667 if (b.b < f2.d.d) {
106668 k.f.a = true;
106669 } else if (b.b > f2.d.d + f2.d.a) {
106670 k.f.d = true;
106671 } else {
106672 k.f.d = true;
106673 k.f.a = true;
106674 }
106675 }
106676 }
106677 }
106678 for (h = new Sr(ur(R_b(n).a.Kc(), new Sq())); Qr(h); ) {
106679 g = BD(Rr(h), 17);
106680 if (g.a.b != 0) {
106681 b = BD(Isb(g.a), 8);
106682 if (g.d.j == (Ucd(), Acd)) {
106683 q = new hic(b, new f7c(b.a, e.d.d), e, g);
106684 q.f.a = true;
106685 q.a = g.d;
106686 p.c[p.c.length] = q;
106687 }
106688 if (g.d.j == Rcd) {
106689 q = new hic(b, new f7c(b.a, e.d.d + e.d.a), e, g);
106690 q.f.d = true;
106691 q.a = g.d;
106692 p.c[p.c.length] = q;
106693 }
106694 }
106695 }
106696 }
106697 }
106698 return p;
106699 }
106700 function WJc(a, b, c2) {
106701 var d, e, f2, g, h, i3, j, k, l;
106702 Odd(c2, "Network simplex node placement", 1);
106703 a.e = b;
106704 a.n = BD(vNb(b, (wtc(), otc)), 304);
106705 VJc(a);
106706 HJc(a);
106707 MAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new KKc()), new MKc(a));
106708 MAb(JAb(LAb(JAb(LAb(new YAb(null, new Kub(a.e.b, 16)), new zLc()), new BLc()), new DLc()), new FLc()), new IKc(a));
106709 if (Ccb(DD(vNb(a.e, (Nyc(), Axc))))) {
106710 g = Udd(c2, 1);
106711 Odd(g, "Straight Edges Pre-Processing", 1);
106712 UJc(a);
106713 Qdd(g);
106714 }
106715 JFb(a.f);
106716 f2 = BD(vNb(b, Ayc), 19).a * a.f.a.c.length;
106717 uGb(HGb(IGb(LGb(a.f), f2), false), Udd(c2, 1));
106718 if (a.d.a.gc() != 0) {
106719 g = Udd(c2, 1);
106720 Odd(g, "Flexible Where Space Processing", 1);
106721 h = BD(Btb(RAb(NAb(new YAb(null, new Kub(a.f.a, 16)), new OKc()), new iKc())), 19).a;
106722 i3 = BD(Btb(QAb(NAb(new YAb(null, new Kub(a.f.a, 16)), new QKc()), new mKc())), 19).a;
106723 j = i3 - h;
106724 k = nGb(new pGb(), a.f);
106725 l = nGb(new pGb(), a.f);
106726 AFb(DFb(CFb(BFb(EFb(new FFb(), 2e4), j), k), l));
106727 MAb(JAb(JAb(Plb(a.i), new SKc()), new UKc()), new WKc(h, k, j, l));
106728 for (e = a.d.a.ec().Kc(); e.Ob(); ) {
106729 d = BD(e.Pb(), 213);
106730 d.g = 1;
106731 }
106732 uGb(HGb(IGb(LGb(a.f), f2), false), Udd(g, 1));
106733 Qdd(g);
106734 }
106735 if (Ccb(DD(vNb(b, Axc)))) {
106736 g = Udd(c2, 1);
106737 Odd(g, "Straight Edges Post-Processing", 1);
106738 TJc(a);
106739 Qdd(g);
106740 }
106741 GJc(a);
106742 a.e = null;
106743 a.f = null;
106744 a.i = null;
106745 a.c = null;
106746 Uhb(a.k);
106747 a.j = null;
106748 a.a = null;
106749 a.o = null;
106750 a.d.a.$b();
106751 Qdd(c2);
106752 }
106753 function lMc(a, b, c2) {
106754 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v;
106755 for (h = new olb(a.a.b); h.a < h.c.c.length; ) {
106756 f2 = BD(mlb(h), 29);
106757 for (t4 = new olb(f2.a); t4.a < t4.c.c.length; ) {
106758 s = BD(mlb(t4), 10);
106759 b.g[s.p] = s;
106760 b.a[s.p] = s;
106761 b.d[s.p] = 0;
106762 }
106763 }
106764 i3 = a.a.b;
106765 b.c == (YLc(), WLc) && (i3 = JD(i3, 152) ? km(BD(i3, 152)) : JD(i3, 131) ? BD(i3, 131).a : JD(i3, 54) ? new ov(i3) : new dv(i3));
106766 for (g = i3.Kc(); g.Ob(); ) {
106767 f2 = BD(g.Pb(), 29);
106768 n = -1;
106769 m = f2.a;
106770 if (b.o == (eMc(), dMc)) {
106771 n = Ohe;
106772 m = JD(m, 152) ? km(BD(m, 152)) : JD(m, 131) ? BD(m, 131).a : JD(m, 54) ? new ov(m) : new dv(m);
106773 }
106774 for (v = m.Kc(); v.Ob(); ) {
106775 u2 = BD(v.Pb(), 10);
106776 l = null;
106777 b.c == WLc ? l = BD(Ikb(a.b.f, u2.p), 15) : l = BD(Ikb(a.b.b, u2.p), 15);
106778 if (l.gc() > 0) {
106779 d = l.gc();
106780 j = QD($wnd.Math.floor((d + 1) / 2)) - 1;
106781 e = QD($wnd.Math.ceil((d + 1) / 2)) - 1;
106782 if (b.o == dMc) {
106783 for (k = e; k >= j; k--) {
106784 if (b.a[u2.p] == u2) {
106785 p = BD(l.Xb(k), 46);
106786 o2 = BD(p.a, 10);
106787 if (!Rqb(c2, p.b) && n > a.b.e[o2.p]) {
106788 b.a[o2.p] = u2;
106789 b.g[u2.p] = b.g[o2.p];
106790 b.a[u2.p] = b.g[u2.p];
106791 b.f[b.g[u2.p].p] = (Bcb(), Ccb(b.f[b.g[u2.p].p]) & u2.k == (j0b(), g0b) ? true : false);
106792 n = a.b.e[o2.p];
106793 }
106794 }
106795 }
106796 } else {
106797 for (k = j; k <= e; k++) {
106798 if (b.a[u2.p] == u2) {
106799 r = BD(l.Xb(k), 46);
106800 q = BD(r.a, 10);
106801 if (!Rqb(c2, r.b) && n < a.b.e[q.p]) {
106802 b.a[q.p] = u2;
106803 b.g[u2.p] = b.g[q.p];
106804 b.a[u2.p] = b.g[u2.p];
106805 b.f[b.g[u2.p].p] = (Bcb(), Ccb(b.f[b.g[u2.p].p]) & u2.k == (j0b(), g0b) ? true : false);
106806 n = a.b.e[q.p];
106807 }
106808 }
106809 }
106810 }
106811 }
106812 }
106813 }
106814 }
106815 function Thd() {
106816 Thd = ccb;
106817 Hhd();
106818 Shd = Ghd.a;
106819 BD(qud(ZKd(Ghd.a), 0), 18);
106820 Mhd = Ghd.f;
106821 BD(qud(ZKd(Ghd.f), 0), 18);
106822 BD(qud(ZKd(Ghd.f), 1), 34);
106823 Rhd = Ghd.n;
106824 BD(qud(ZKd(Ghd.n), 0), 34);
106825 BD(qud(ZKd(Ghd.n), 1), 34);
106826 BD(qud(ZKd(Ghd.n), 2), 34);
106827 BD(qud(ZKd(Ghd.n), 3), 34);
106828 Nhd = Ghd.g;
106829 BD(qud(ZKd(Ghd.g), 0), 18);
106830 BD(qud(ZKd(Ghd.g), 1), 34);
106831 Jhd = Ghd.c;
106832 BD(qud(ZKd(Ghd.c), 0), 18);
106833 BD(qud(ZKd(Ghd.c), 1), 18);
106834 Ohd = Ghd.i;
106835 BD(qud(ZKd(Ghd.i), 0), 18);
106836 BD(qud(ZKd(Ghd.i), 1), 18);
106837 BD(qud(ZKd(Ghd.i), 2), 18);
106838 BD(qud(ZKd(Ghd.i), 3), 18);
106839 BD(qud(ZKd(Ghd.i), 4), 34);
106840 Phd = Ghd.j;
106841 BD(qud(ZKd(Ghd.j), 0), 18);
106842 Khd = Ghd.d;
106843 BD(qud(ZKd(Ghd.d), 0), 18);
106844 BD(qud(ZKd(Ghd.d), 1), 18);
106845 BD(qud(ZKd(Ghd.d), 2), 18);
106846 BD(qud(ZKd(Ghd.d), 3), 18);
106847 BD(qud(ZKd(Ghd.d), 4), 34);
106848 BD(qud(ZKd(Ghd.d), 5), 34);
106849 BD(qud(ZKd(Ghd.d), 6), 34);
106850 BD(qud(ZKd(Ghd.d), 7), 34);
106851 Ihd = Ghd.b;
106852 BD(qud(ZKd(Ghd.b), 0), 34);
106853 BD(qud(ZKd(Ghd.b), 1), 34);
106854 Lhd = Ghd.e;
106855 BD(qud(ZKd(Ghd.e), 0), 34);
106856 BD(qud(ZKd(Ghd.e), 1), 34);
106857 BD(qud(ZKd(Ghd.e), 2), 34);
106858 BD(qud(ZKd(Ghd.e), 3), 34);
106859 BD(qud(ZKd(Ghd.e), 4), 18);
106860 BD(qud(ZKd(Ghd.e), 5), 18);
106861 BD(qud(ZKd(Ghd.e), 6), 18);
106862 BD(qud(ZKd(Ghd.e), 7), 18);
106863 BD(qud(ZKd(Ghd.e), 8), 18);
106864 BD(qud(ZKd(Ghd.e), 9), 18);
106865 BD(qud(ZKd(Ghd.e), 10), 34);
106866 Qhd = Ghd.k;
106867 BD(qud(ZKd(Ghd.k), 0), 34);
106868 BD(qud(ZKd(Ghd.k), 1), 34);
106869 }
106870 function wQc(a, b) {
106871 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F;
106872 C = new Psb();
106873 w2 = new Psb();
106874 q = -1;
106875 for (i3 = new olb(a); i3.a < i3.c.c.length; ) {
106876 g = BD(mlb(i3), 128);
106877 g.s = q--;
106878 k = 0;
106879 t4 = 0;
106880 for (f2 = new olb(g.t); f2.a < f2.c.c.length; ) {
106881 d = BD(mlb(f2), 268);
106882 t4 += d.c;
106883 }
106884 for (e = new olb(g.i); e.a < e.c.c.length; ) {
106885 d = BD(mlb(e), 268);
106886 k += d.c;
106887 }
106888 g.n = k;
106889 g.u = t4;
106890 t4 == 0 ? (Gsb(w2, g, w2.c.b, w2.c), true) : k == 0 && (Gsb(C, g, C.c.b, C.c), true);
106891 }
106892 F = Gx(a);
106893 l = a.c.length;
106894 p = l + 1;
106895 r = l - 1;
106896 n = new Rkb();
106897 while (F.a.gc() != 0) {
106898 while (w2.b != 0) {
106899 v = (sCb(w2.b != 0), BD(Nsb(w2, w2.a.a), 128));
106900 F.a.Bc(v) != null;
106901 v.s = r--;
106902 AQc(v, C, w2);
106903 }
106904 while (C.b != 0) {
106905 A = (sCb(C.b != 0), BD(Nsb(C, C.a.a), 128));
106906 F.a.Bc(A) != null;
106907 A.s = p++;
106908 AQc(A, C, w2);
106909 }
106910 o2 = Rie;
106911 for (j = F.a.ec().Kc(); j.Ob(); ) {
106912 g = BD(j.Pb(), 128);
106913 s = g.u - g.n;
106914 if (s >= o2) {
106915 if (s > o2) {
106916 n.c = KC(SI, Uhe, 1, 0, 5, 1);
106917 o2 = s;
106918 }
106919 n.c[n.c.length] = g;
106920 }
106921 }
106922 if (n.c.length != 0) {
106923 m = BD(Ikb(n, Bub(b, n.c.length)), 128);
106924 F.a.Bc(m) != null;
106925 m.s = p++;
106926 AQc(m, C, w2);
106927 n.c = KC(SI, Uhe, 1, 0, 5, 1);
106928 }
106929 }
106930 u2 = a.c.length + 1;
106931 for (h = new olb(a); h.a < h.c.c.length; ) {
106932 g = BD(mlb(h), 128);
106933 g.s < l && (g.s += u2);
106934 }
106935 for (B = new olb(a); B.a < B.c.c.length; ) {
106936 A = BD(mlb(B), 128);
106937 c2 = new Bib(A.t, 0);
106938 while (c2.b < c2.d.gc()) {
106939 d = (sCb(c2.b < c2.d.gc()), BD(c2.d.Xb(c2.c = c2.b++), 268));
106940 D3 = d.b;
106941 if (A.s > D3.s) {
106942 uib(c2);
106943 Lkb(D3.i, d);
106944 if (d.c > 0) {
106945 d.a = D3;
106946 Ekb(D3.t, d);
106947 d.b = A;
106948 Ekb(A.i, d);
106949 }
106950 }
106951 }
106952 }
106953 }
106954 function qde(a) {
106955 var b, c2, d, e, f2;
106956 b = a.c;
106957 switch (b) {
106958 case 11:
106959 return a.Ml();
106960 case 12:
106961 return a.Ol();
106962 case 14:
106963 return a.Ql();
106964 case 15:
106965 return a.Tl();
106966 case 16:
106967 return a.Rl();
106968 case 17:
106969 return a.Ul();
106970 case 21:
106971 nde(a);
106972 return wfe(), wfe(), ffe;
106973 case 10:
106974 switch (a.a) {
106975 case 65:
106976 return a.yl();
106977 case 90:
106978 return a.Dl();
106979 case 122:
106980 return a.Kl();
106981 case 98:
106982 return a.El();
106983 case 66:
106984 return a.zl();
106985 case 60:
106986 return a.Jl();
106987 case 62:
106988 return a.Hl();
106989 }
106990 }
106991 f2 = pde(a);
106992 b = a.c;
106993 switch (b) {
106994 case 3:
106995 return a.Zl(f2);
106996 case 4:
106997 return a.Xl(f2);
106998 case 5:
106999 return a.Yl(f2);
107000 case 0:
107001 if (a.a == 123 && a.d < a.j) {
107002 e = a.d;
107003 d = 0;
107004 c2 = -1;
107005 if ((b = bfb(a.i, e++)) >= 48 && b <= 57) {
107006 d = b - 48;
107007 while (e < a.j && (b = bfb(a.i, e++)) >= 48 && b <= 57) {
107008 d = d * 10 + b - 48;
107009 if (d < 0)
107010 throw vbb(new mde(tvd((h0d(), bve))));
107011 }
107012 } else {
107013 throw vbb(new mde(tvd((h0d(), Zue))));
107014 }
107015 c2 = d;
107016 if (b == 44) {
107017 if (e >= a.j) {
107018 throw vbb(new mde(tvd((h0d(), _ue))));
107019 } else if ((b = bfb(a.i, e++)) >= 48 && b <= 57) {
107020 c2 = b - 48;
107021 while (e < a.j && (b = bfb(a.i, e++)) >= 48 && b <= 57) {
107022 c2 = c2 * 10 + b - 48;
107023 if (c2 < 0)
107024 throw vbb(new mde(tvd((h0d(), bve))));
107025 }
107026 if (d > c2)
107027 throw vbb(new mde(tvd((h0d(), ave))));
107028 } else {
107029 c2 = -1;
107030 }
107031 }
107032 if (b != 125)
107033 throw vbb(new mde(tvd((h0d(), $ue))));
107034 if (a.sl(e)) {
107035 f2 = (wfe(), wfe(), new lge(9, f2));
107036 a.d = e + 1;
107037 } else {
107038 f2 = (wfe(), wfe(), new lge(3, f2));
107039 a.d = e;
107040 }
107041 f2.dm(d);
107042 f2.cm(c2);
107043 nde(a);
107044 }
107045 }
107046 return f2;
107047 }
107048 function $bc(a, b, c2, d, e) {
107049 var f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F;
107050 p = new Skb(b.b);
107051 u2 = new Skb(b.b);
107052 m = new Skb(b.b);
107053 B = new Skb(b.b);
107054 q = new Skb(b.b);
107055 for (A = Jsb(b, 0); A.b != A.d.c; ) {
107056 v = BD(Xsb(A), 11);
107057 for (h = new olb(v.g); h.a < h.c.c.length; ) {
107058 f2 = BD(mlb(h), 17);
107059 if (f2.c.i == f2.d.i) {
107060 if (v.j == f2.d.j) {
107061 B.c[B.c.length] = f2;
107062 continue;
107063 } else if (v.j == (Ucd(), Acd) && f2.d.j == Rcd) {
107064 q.c[q.c.length] = f2;
107065 continue;
107066 }
107067 }
107068 }
107069 }
107070 for (i3 = new olb(q); i3.a < i3.c.c.length; ) {
107071 f2 = BD(mlb(i3), 17);
107072 _bc(a, f2, c2, d, (Ucd(), zcd));
107073 }
107074 for (g = new olb(B); g.a < g.c.c.length; ) {
107075 f2 = BD(mlb(g), 17);
107076 C = new b0b(a);
107077 __b(C, (j0b(), i0b));
107078 yNb(C, (Nyc(), Vxc), (dcd(), $bd));
107079 yNb(C, (wtc(), $sc), f2);
107080 D3 = new H0b();
107081 yNb(D3, $sc, f2.d);
107082 G0b(D3, (Ucd(), Tcd));
107083 F0b(D3, C);
107084 F = new H0b();
107085 yNb(F, $sc, f2.c);
107086 G0b(F, zcd);
107087 F0b(F, C);
107088 yNb(f2.c, gtc, C);
107089 yNb(f2.d, gtc, C);
107090 QZb(f2, null);
107091 RZb(f2, null);
107092 c2.c[c2.c.length] = C;
107093 yNb(C, ysc, meb(2));
107094 }
107095 for (w2 = Jsb(b, 0); w2.b != w2.d.c; ) {
107096 v = BD(Xsb(w2), 11);
107097 j = v.e.c.length > 0;
107098 r = v.g.c.length > 0;
107099 j && r ? (m.c[m.c.length] = v, true) : j ? (p.c[p.c.length] = v, true) : r && (u2.c[u2.c.length] = v, true);
107100 }
107101 for (o2 = new olb(p); o2.a < o2.c.c.length; ) {
107102 n = BD(mlb(o2), 11);
107103 Ekb(e, Zbc(a, n, null, c2));
107104 }
107105 for (t4 = new olb(u2); t4.a < t4.c.c.length; ) {
107106 s = BD(mlb(t4), 11);
107107 Ekb(e, Zbc(a, null, s, c2));
107108 }
107109 for (l = new olb(m); l.a < l.c.c.length; ) {
107110 k = BD(mlb(l), 11);
107111 Ekb(e, Zbc(a, k, k, c2));
107112 }
107113 }
107114 function NCb(a) {
107115 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3;
107116 s = new f7c(Pje, Pje);
107117 b = new f7c(Qje, Qje);
107118 for (B = new olb(a); B.a < B.c.c.length; ) {
107119 A = BD(mlb(B), 8);
107120 s.a = $wnd.Math.min(s.a, A.a);
107121 s.b = $wnd.Math.min(s.b, A.b);
107122 b.a = $wnd.Math.max(b.a, A.a);
107123 b.b = $wnd.Math.max(b.b, A.b);
107124 }
107125 m = new f7c(b.a - s.a, b.b - s.b);
107126 j = new f7c(s.a - 50, s.b - m.a - 50);
107127 k = new f7c(s.a - 50, b.b + m.a + 50);
107128 l = new f7c(b.a + m.b / 2 + 50, s.b + m.b / 2);
107129 n = new eDb(j, k, l);
107130 w2 = new Tqb();
107131 f2 = new Rkb();
107132 c2 = new Rkb();
107133 w2.a.zc(n, w2);
107134 for (D3 = new olb(a); D3.a < D3.c.c.length; ) {
107135 C = BD(mlb(D3), 8);
107136 f2.c = KC(SI, Uhe, 1, 0, 5, 1);
107137 for (v = w2.a.ec().Kc(); v.Ob(); ) {
107138 t4 = BD(v.Pb(), 308);
107139 d = t4.d;
107140 S6c(d, t4.a);
107141 Jy(S6c(t4.d, C), S6c(t4.d, t4.a)) < 0 && (f2.c[f2.c.length] = t4, true);
107142 }
107143 c2.c = KC(SI, Uhe, 1, 0, 5, 1);
107144 for (u2 = new olb(f2); u2.a < u2.c.c.length; ) {
107145 t4 = BD(mlb(u2), 308);
107146 for (q = new olb(t4.e); q.a < q.c.c.length; ) {
107147 o2 = BD(mlb(q), 168);
107148 g = true;
107149 for (i3 = new olb(f2); i3.a < i3.c.c.length; ) {
107150 h = BD(mlb(i3), 308);
107151 h != t4 && (wtb(o2, Ikb(h.e, 0)) || wtb(o2, Ikb(h.e, 1)) || wtb(o2, Ikb(h.e, 2))) && (g = false);
107152 }
107153 g && (c2.c[c2.c.length] = o2, true);
107154 }
107155 }
107156 Ve(w2, f2);
107157 reb(w2, new OCb());
107158 for (p = new olb(c2); p.a < p.c.c.length; ) {
107159 o2 = BD(mlb(p), 168);
107160 Qqb(w2, new eDb(C, o2.a, o2.b));
107161 }
107162 }
107163 r = new Tqb();
107164 reb(w2, new QCb(r));
107165 e = r.a.ec().Kc();
107166 while (e.Ob()) {
107167 o2 = BD(e.Pb(), 168);
107168 (dDb(n, o2.a) || dDb(n, o2.b)) && e.Qb();
107169 }
107170 reb(r, new SCb());
107171 return r;
107172 }
107173 function _Tb(a) {
107174 var b, c2, d, e, f2;
107175 c2 = BD(vNb(a, (wtc(), Ksc)), 21);
107176 b = k3c(WTb);
107177 e = BD(vNb(a, (Nyc(), axc)), 334);
107178 e == (hbd(), ebd) && d3c(b, XTb);
107179 Ccb(DD(vNb(a, $wc))) ? e3c(b, (qUb(), lUb), (S8b(), I8b)) : e3c(b, (qUb(), nUb), (S8b(), I8b));
107180 vNb(a, (g6c(), f6c)) != null && d3c(b, YTb);
107181 (Ccb(DD(vNb(a, hxc))) || Ccb(DD(vNb(a, _wc)))) && c3c(b, (qUb(), pUb), (S8b(), W7b));
107182 switch (BD(vNb(a, Lwc), 103).g) {
107183 case 2:
107184 case 3:
107185 case 4:
107186 c3c(e3c(b, (qUb(), lUb), (S8b(), Y7b)), pUb, X7b);
107187 }
107188 c2.Hc((Orc(), Frc)) && c3c(e3c(e3c(b, (qUb(), lUb), (S8b(), V7b)), oUb, T7b), pUb, U7b);
107189 PD(vNb(a, rxc)) !== PD((kAc(), iAc)) && e3c(b, (qUb(), nUb), (S8b(), A8b));
107190 if (c2.Hc(Mrc)) {
107191 e3c(b, (qUb(), lUb), (S8b(), G8b));
107192 e3c(b, mUb, E8b);
107193 e3c(b, nUb, F8b);
107194 }
107195 PD(vNb(a, swc)) !== PD((yrc(), wrc)) && PD(vNb(a, Swc)) !== PD((Aad(), xad)) && c3c(b, (qUb(), pUb), (S8b(), j8b));
107196 Ccb(DD(vNb(a, cxc))) && e3c(b, (qUb(), nUb), (S8b(), i8b));
107197 Ccb(DD(vNb(a, Hwc))) && e3c(b, (qUb(), nUb), (S8b(), O8b));
107198 if (cUb(a)) {
107199 PD(vNb(a, axc)) === PD(ebd) ? d = BD(vNb(a, Cwc), 292) : d = BD(vNb(a, Dwc), 292);
107200 f2 = d == (Xrc(), Vrc) ? (S8b(), D8b) : (S8b(), R8b);
107201 e3c(b, (qUb(), oUb), f2);
107202 }
107203 switch (BD(vNb(a, Kyc), 377).g) {
107204 case 1:
107205 e3c(b, (qUb(), oUb), (S8b(), P8b));
107206 break;
107207 case 2:
107208 c3c(e3c(e3c(b, (qUb(), nUb), (S8b(), P7b)), oUb, Q7b), pUb, R7b);
107209 }
107210 PD(vNb(a, ywc)) !== PD((tAc(), rAc)) && e3c(b, (qUb(), nUb), (S8b(), Q8b));
107211 return b;
107212 }
107213 function mZc(a) {
107214 r4c(a, new E3c(P3c(M3c(O3c(N3c(new R3c(), Kre), "ELK Rectangle Packing"), "Algorithm for packing of unconnected boxes, i.e. graphs without edges. The given order of the boxes is always preserved and the main reading direction of the boxes is left to right. The algorithm is divided into two phases. One phase approximates the width in which the rectangles can be placed. The next phase places the rectangles in rows using the previously calculated width as bounding width and bundles rectangles with a similar height in blocks. A compaction step reduces the size of the drawing. Finally, the rectangles are expanded to fill their bounding box and eliminate empty unused spaces."), new pZc())));
107215 p4c(a, Kre, _le, 1.3);
107216 p4c(a, Kre, Jre, Ksd(VYc));
107217 p4c(a, Kre, ame, gZc);
107218 p4c(a, Kre, wme, 15);
107219 p4c(a, Kre, lqe, Ksd(SYc));
107220 p4c(a, Kre, Fme, Ksd(_Yc));
107221 p4c(a, Kre, Tme, Ksd(aZc));
107222 p4c(a, Kre, Eme, Ksd(bZc));
107223 p4c(a, Kre, Gme, Ksd($Yc));
107224 p4c(a, Kre, Dme, Ksd(cZc));
107225 p4c(a, Kre, Hme, Ksd(hZc));
107226 p4c(a, Kre, Bre, Ksd(eZc));
107227 p4c(a, Kre, Cre, Ksd(ZYc));
107228 p4c(a, Kre, Fre, Ksd(dZc));
107229 p4c(a, Kre, Gre, Ksd(iZc));
107230 p4c(a, Kre, Hre, Ksd(WYc));
107231 p4c(a, Kre, Ame, Ksd(XYc));
107232 p4c(a, Kre, xqe, Ksd(YYc));
107233 p4c(a, Kre, Ere, Ksd(UYc));
107234 p4c(a, Kre, Dre, Ksd(TYc));
107235 p4c(a, Kre, Ire, Ksd(kZc));
107236 }
107237 function Wmd(b, c2, d) {
107238 var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
107239 if (d == null) {
107240 return null;
107241 }
107242 if (b.a != c2.Aj()) {
107243 throw vbb(new Wdb(tte + c2.ne() + ute));
107244 }
107245 if (JD(c2, 457)) {
107246 r = _Pd(BD(c2, 671), d);
107247 if (!r) {
107248 throw vbb(new Wdb(vte + d + "' is not a valid enumerator of '" + c2.ne() + "'"));
107249 }
107250 return r;
107251 }
107252 switch (o1d((O6d(), M6d), c2).cl()) {
107253 case 2: {
107254 d = Qge(d, false);
107255 break;
107256 }
107257 case 3: {
107258 d = Qge(d, true);
107259 break;
107260 }
107261 }
107262 e = o1d(M6d, c2).$k();
107263 if (e) {
107264 return e.Aj().Nh().Kh(e, d);
107265 }
107266 n = o1d(M6d, c2).al();
107267 if (n) {
107268 r = new Rkb();
107269 for (k = Zmd(d), l = 0, m = k.length; l < m; ++l) {
107270 j = k[l];
107271 Ekb(r, n.Aj().Nh().Kh(n, j));
107272 }
107273 return r;
107274 }
107275 q = o1d(M6d, c2).bl();
107276 if (!q.dc()) {
107277 for (p = q.Kc(); p.Ob(); ) {
107278 o2 = BD(p.Pb(), 148);
107279 try {
107280 r = o2.Aj().Nh().Kh(o2, d);
107281 if (r != null) {
107282 return r;
107283 }
107284 } catch (a) {
107285 a = ubb(a);
107286 if (!JD(a, 60))
107287 throw vbb(a);
107288 }
107289 }
107290 throw vbb(new Wdb(vte + d + "' does not match any member types of the union datatype '" + c2.ne() + "'"));
107291 }
107292 BD(c2, 834).Fj();
107293 f2 = r6d(c2.Bj());
107294 if (!f2)
107295 return null;
107296 if (f2 == yI) {
107297 h = 0;
107298 try {
107299 h = Icb(d, Rie, Ohe) & aje;
107300 } catch (a) {
107301 a = ubb(a);
107302 if (JD(a, 127)) {
107303 g = rfb(d);
107304 h = g[0];
107305 } else
107306 throw vbb(a);
107307 }
107308 return bdb(h);
107309 }
107310 if (f2 == $J) {
107311 for (i3 = 0; i3 < Pmd.length; ++i3) {
107312 try {
107313 return DQd(Pmd[i3], d);
107314 } catch (a) {
107315 a = ubb(a);
107316 if (!JD(a, 32))
107317 throw vbb(a);
107318 }
107319 }
107320 throw vbb(new Wdb(vte + d + "' is not a date formatted string of the form yyyy-MM-dd'T'HH:mm:ss'.'SSSZ or a valid subset thereof"));
107321 }
107322 throw vbb(new Wdb(vte + d + "' is invalid. "));
107323 }
107324 function ngb(a, b) {
107325 var c2, d, e, f2, g, h, i3, j;
107326 c2 = 0;
107327 g = 0;
107328 f2 = b.length;
107329 h = null;
107330 j = new Vfb();
107331 if (g < f2 && (BCb(g, b.length), b.charCodeAt(g) == 43)) {
107332 ++g;
107333 ++c2;
107334 if (g < f2 && (BCb(g, b.length), b.charCodeAt(g) == 43 || (BCb(g, b.length), b.charCodeAt(g) == 45))) {
107335 throw vbb(new Oeb(Oje + b + '"'));
107336 }
107337 }
107338 while (g < f2 && (BCb(g, b.length), b.charCodeAt(g) != 46) && (BCb(g, b.length), b.charCodeAt(g) != 101) && (BCb(g, b.length), b.charCodeAt(g) != 69)) {
107339 ++g;
107340 }
107341 j.a += "" + qfb(b == null ? Xhe : (uCb(b), b), c2, g);
107342 if (g < f2 && (BCb(g, b.length), b.charCodeAt(g) == 46)) {
107343 ++g;
107344 c2 = g;
107345 while (g < f2 && (BCb(g, b.length), b.charCodeAt(g) != 101) && (BCb(g, b.length), b.charCodeAt(g) != 69)) {
107346 ++g;
107347 }
107348 a.e = g - c2;
107349 j.a += "" + qfb(b == null ? Xhe : (uCb(b), b), c2, g);
107350 } else {
107351 a.e = 0;
107352 }
107353 if (g < f2 && (BCb(g, b.length), b.charCodeAt(g) == 101 || (BCb(g, b.length), b.charCodeAt(g) == 69))) {
107354 ++g;
107355 c2 = g;
107356 if (g < f2 && (BCb(g, b.length), b.charCodeAt(g) == 43)) {
107357 ++g;
107358 g < f2 && (BCb(g, b.length), b.charCodeAt(g) != 45) && ++c2;
107359 }
107360 h = b.substr(c2, f2 - c2);
107361 a.e = a.e - Icb(h, Rie, Ohe);
107362 if (a.e != QD(a.e)) {
107363 throw vbb(new Oeb("Scale out of range."));
107364 }
107365 }
107366 i3 = j.a;
107367 if (i3.length < 16) {
107368 a.f = (kgb == null && (kgb = new RegExp("^[+-]?\\d*$", "i")), kgb.test(i3) ? parseInt(i3, 10) : NaN);
107369 if (isNaN(a.f)) {
107370 throw vbb(new Oeb(Oje + b + '"'));
107371 }
107372 a.a = ugb(a.f);
107373 } else {
107374 ogb(a, new Ygb(i3));
107375 }
107376 a.d = j.a.length;
107377 for (e = 0; e < j.a.length; ++e) {
107378 d = bfb(j.a, e);
107379 if (d != 45 && d != 48) {
107380 break;
107381 }
107382 --a.d;
107383 }
107384 a.d == 0 && (a.d = 1);
107385 }
107386 function xXb() {
107387 xXb = ccb;
107388 wXb = new Hp();
107389 Rc(wXb, (Ucd(), Fcd), Jcd);
107390 Rc(wXb, Qcd, Jcd);
107391 Rc(wXb, Qcd, Mcd);
107392 Rc(wXb, Bcd, Icd);
107393 Rc(wXb, Bcd, Jcd);
107394 Rc(wXb, Gcd, Jcd);
107395 Rc(wXb, Gcd, Kcd);
107396 Rc(wXb, Ocd, Dcd);
107397 Rc(wXb, Ocd, Jcd);
107398 Rc(wXb, Lcd, Ecd);
107399 Rc(wXb, Lcd, Jcd);
107400 Rc(wXb, Lcd, Kcd);
107401 Rc(wXb, Lcd, Dcd);
107402 Rc(wXb, Ecd, Lcd);
107403 Rc(wXb, Ecd, Mcd);
107404 Rc(wXb, Ecd, Icd);
107405 Rc(wXb, Ecd, Jcd);
107406 Rc(wXb, Ncd, Ncd);
107407 Rc(wXb, Ncd, Kcd);
107408 Rc(wXb, Ncd, Mcd);
107409 Rc(wXb, Hcd, Hcd);
107410 Rc(wXb, Hcd, Kcd);
107411 Rc(wXb, Hcd, Icd);
107412 Rc(wXb, Pcd, Pcd);
107413 Rc(wXb, Pcd, Dcd);
107414 Rc(wXb, Pcd, Mcd);
107415 Rc(wXb, Ccd, Ccd);
107416 Rc(wXb, Ccd, Dcd);
107417 Rc(wXb, Ccd, Icd);
107418 Rc(wXb, Kcd, Gcd);
107419 Rc(wXb, Kcd, Lcd);
107420 Rc(wXb, Kcd, Ncd);
107421 Rc(wXb, Kcd, Hcd);
107422 Rc(wXb, Kcd, Jcd);
107423 Rc(wXb, Kcd, Kcd);
107424 Rc(wXb, Kcd, Mcd);
107425 Rc(wXb, Kcd, Icd);
107426 Rc(wXb, Dcd, Ocd);
107427 Rc(wXb, Dcd, Lcd);
107428 Rc(wXb, Dcd, Pcd);
107429 Rc(wXb, Dcd, Ccd);
107430 Rc(wXb, Dcd, Dcd);
107431 Rc(wXb, Dcd, Mcd);
107432 Rc(wXb, Dcd, Icd);
107433 Rc(wXb, Dcd, Jcd);
107434 Rc(wXb, Mcd, Qcd);
107435 Rc(wXb, Mcd, Ecd);
107436 Rc(wXb, Mcd, Ncd);
107437 Rc(wXb, Mcd, Pcd);
107438 Rc(wXb, Mcd, Kcd);
107439 Rc(wXb, Mcd, Dcd);
107440 Rc(wXb, Mcd, Mcd);
107441 Rc(wXb, Mcd, Jcd);
107442 Rc(wXb, Icd, Bcd);
107443 Rc(wXb, Icd, Ecd);
107444 Rc(wXb, Icd, Hcd);
107445 Rc(wXb, Icd, Ccd);
107446 Rc(wXb, Icd, Kcd);
107447 Rc(wXb, Icd, Dcd);
107448 Rc(wXb, Icd, Icd);
107449 Rc(wXb, Icd, Jcd);
107450 Rc(wXb, Jcd, Fcd);
107451 Rc(wXb, Jcd, Qcd);
107452 Rc(wXb, Jcd, Bcd);
107453 Rc(wXb, Jcd, Gcd);
107454 Rc(wXb, Jcd, Ocd);
107455 Rc(wXb, Jcd, Lcd);
107456 Rc(wXb, Jcd, Ecd);
107457 Rc(wXb, Jcd, Kcd);
107458 Rc(wXb, Jcd, Dcd);
107459 Rc(wXb, Jcd, Mcd);
107460 Rc(wXb, Jcd, Icd);
107461 Rc(wXb, Jcd, Jcd);
107462 }
107463 function YXb(a, b, c2) {
107464 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B;
107465 a.d = new f7c(Pje, Pje);
107466 a.c = new f7c(Qje, Qje);
107467 for (m = b.Kc(); m.Ob(); ) {
107468 k = BD(m.Pb(), 37);
107469 for (t4 = new olb(k.a); t4.a < t4.c.c.length; ) {
107470 s = BD(mlb(t4), 10);
107471 a.d.a = $wnd.Math.min(a.d.a, s.n.a - s.d.b);
107472 a.d.b = $wnd.Math.min(a.d.b, s.n.b - s.d.d);
107473 a.c.a = $wnd.Math.max(a.c.a, s.n.a + s.o.a + s.d.c);
107474 a.c.b = $wnd.Math.max(a.c.b, s.n.b + s.o.b + s.d.a);
107475 }
107476 }
107477 h = new nYb();
107478 for (l = b.Kc(); l.Ob(); ) {
107479 k = BD(l.Pb(), 37);
107480 d = fYb(a, k);
107481 Ekb(h.a, d);
107482 d.a = d.a | !BD(vNb(d.c, (wtc(), Esc)), 21).dc();
107483 }
107484 a.b = (LUb(), B = new VUb(), B.f = new CUb(c2), B.b = BUb(B.f, h), B);
107485 PUb((o2 = a.b, new Zdd(), o2));
107486 a.e = new d7c();
107487 a.a = a.b.f.e;
107488 for (g = new olb(h.a); g.a < g.c.c.length; ) {
107489 e = BD(mlb(g), 841);
107490 u2 = QUb(a.b, e);
107491 g_b(e.c, u2.a, u2.b);
107492 for (q = new olb(e.c.a); q.a < q.c.c.length; ) {
107493 p = BD(mlb(q), 10);
107494 if (p.k == (j0b(), e0b)) {
107495 r = aYb(a, p.n, BD(vNb(p, (wtc(), Hsc)), 61));
107496 P6c(X6c(p.n), r);
107497 }
107498 }
107499 }
107500 for (f2 = new olb(h.a); f2.a < f2.c.c.length; ) {
107501 e = BD(mlb(f2), 841);
107502 for (j = new olb(lYb(e)); j.a < j.c.c.length; ) {
107503 i3 = BD(mlb(j), 17);
107504 A = new t7c(i3.a);
107505 St(A, 0, A0b(i3.c));
107506 Dsb(A, A0b(i3.d));
107507 n = null;
107508 for (w2 = Jsb(A, 0); w2.b != w2.d.c; ) {
107509 v = BD(Xsb(w2), 8);
107510 if (!n) {
107511 n = v;
107512 continue;
107513 }
107514 if (Ky(n.a, v.a)) {
107515 a.e.a = $wnd.Math.min(a.e.a, n.a);
107516 a.a.a = $wnd.Math.max(a.a.a, n.a);
107517 } else if (Ky(n.b, v.b)) {
107518 a.e.b = $wnd.Math.min(a.e.b, n.b);
107519 a.a.b = $wnd.Math.max(a.a.b, n.b);
107520 }
107521 n = v;
107522 }
107523 }
107524 }
107525 V6c(a.e);
107526 P6c(a.a, a.e);
107527 }
107528 function wZd(a) {
107529 Bnd(a.b, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ConsistentTransient"]));
107530 Bnd(a.a, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedSourceURI"]));
107531 Bnd(a.o, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"]));
107532 Bnd(a.p, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedInstanceTypeName UniqueTypeParameterNames"]));
107533 Bnd(a.v, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "UniqueEnumeratorNames UniqueEnumeratorLiterals"]));
107534 Bnd(a.R, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedName"]));
107535 Bnd(a.T, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"]));
107536 Bnd(a.U, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"]));
107537 Bnd(a.W, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"]));
107538 Bnd(a.bb, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ValidDefaultValueLiteral"]));
107539 Bnd(a.eb, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ValidLowerBound ValidUpperBound ConsistentBounds ValidType"]));
107540 Bnd(a.H, _ve, OC(GC(ZI, 1), nie, 2, 6, [bwe, "ConsistentType ConsistentBounds ConsistentArguments"]));
107541 }
107542 function B4b(a, b, c2) {
107543 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C;
107544 if (b.dc()) {
107545 return;
107546 }
107547 e = new s7c();
107548 h = c2 ? c2 : BD(b.Xb(0), 17);
107549 o2 = h.c;
107550 hQc();
107551 m = o2.i.k;
107552 if (!(m == (j0b(), h0b) || m == i0b || m == e0b || m == d0b)) {
107553 throw vbb(new Wdb("The target node of the edge must be a normal node or a northSouthPort."));
107554 }
107555 Fsb(e, l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])));
107556 if ((Ucd(), Lcd).Hc(o2.j)) {
107557 q = Edb(ED(vNb(o2, (wtc(), qtc))));
107558 l = new f7c(l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).a, q);
107559 Gsb(e, l, e.c.b, e.c);
107560 }
107561 k = null;
107562 d = false;
107563 i3 = b.Kc();
107564 while (i3.Ob()) {
107565 g = BD(i3.Pb(), 17);
107566 f2 = g.a;
107567 if (f2.b != 0) {
107568 if (d) {
107569 j = Y6c(P6c(k, (sCb(f2.b != 0), BD(f2.a.a.c, 8))), 0.5);
107570 Gsb(e, j, e.c.b, e.c);
107571 d = false;
107572 } else {
107573 d = true;
107574 }
107575 k = R6c((sCb(f2.b != 0), BD(f2.c.b.c, 8)));
107576 ye(e, f2);
107577 Osb(f2);
107578 }
107579 }
107580 p = h.d;
107581 if (Lcd.Hc(p.j)) {
107582 q = Edb(ED(vNb(p, (wtc(), qtc))));
107583 l = new f7c(l7c(OC(GC(m1, 1), nie, 8, 0, [p.i.n, p.n, p.a])).a, q);
107584 Gsb(e, l, e.c.b, e.c);
107585 }
107586 Fsb(e, l7c(OC(GC(m1, 1), nie, 8, 0, [p.i.n, p.n, p.a])));
107587 a.d == (tBc(), qBc) && (r = (sCb(e.b != 0), BD(e.a.a.c, 8)), s = BD(Ut(e, 1), 8), t4 = new e7c(bRc(o2.j)), t4.a *= 5, t4.b *= 5, u2 = c7c(new f7c(s.a, s.b), r), v = new f7c(A4b(t4.a, u2.a), A4b(t4.b, u2.b)), P6c(v, r), w2 = Jsb(e, 1), Vsb(w2, v), A = (sCb(e.b != 0), BD(e.c.b.c, 8)), B = BD(Ut(e, e.b - 2), 8), t4 = new e7c(bRc(p.j)), t4.a *= 5, t4.b *= 5, u2 = c7c(new f7c(B.a, B.b), A), C = new f7c(A4b(t4.a, u2.a), A4b(t4.b, u2.b)), P6c(C, A), St(e, e.b - 1, C), void 0);
107588 n = new YPc(e);
107589 ye(h.a, UPc(n));
107590 }
107591 function Kgd(a, b, c2, d) {
107592 var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I, J, K2, L2, M2, N, O, P;
107593 t4 = BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82);
107594 v = t4.Dg();
107595 w2 = t4.Eg();
107596 u2 = t4.Cg() / 2;
107597 p = t4.Bg() / 2;
107598 if (JD(t4, 186)) {
107599 s = BD(t4, 118);
107600 v += mpd(s).i;
107601 v += mpd(s).i;
107602 }
107603 v += u2;
107604 w2 += p;
107605 F = BD(qud((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b), 0), 82);
107606 H2 = F.Dg();
107607 I = F.Eg();
107608 G = F.Cg() / 2;
107609 A = F.Bg() / 2;
107610 if (JD(F, 186)) {
107611 D3 = BD(F, 118);
107612 H2 += mpd(D3).i;
107613 H2 += mpd(D3).i;
107614 }
107615 H2 += G;
107616 I += A;
107617 if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i == 0) {
107618 h = (Fhd(), j = new rmd(), j);
107619 wtd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), h);
107620 } else if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i > 1) {
107621 o2 = new Oyd((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a));
107622 while (o2.e != o2.i.gc()) {
107623 Eyd(o2);
107624 }
107625 }
107626 g = BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202);
107627 q = H2;
107628 H2 > v + u2 ? q = v + u2 : H2 < v - u2 && (q = v - u2);
107629 r = I;
107630 I > w2 + p ? r = w2 + p : I < w2 - p && (r = w2 - p);
107631 q > v - u2 && q < v + u2 && r > w2 - p && r < w2 + p && (q = v + u2);
107632 omd(g, q);
107633 pmd(g, r);
107634 B = v;
107635 v > H2 + G ? B = H2 + G : v < H2 - G && (B = H2 - G);
107636 C = w2;
107637 w2 > I + A ? C = I + A : w2 < I - A && (C = I - A);
107638 B > H2 - G && B < H2 + G && C > I - A && C < I + A && (C = I + A);
107639 hmd(g, B);
107640 imd(g, C);
107641 Uxd((!g.a && (g.a = new xMd(y2, g, 5)), g.a));
107642 f2 = Bub(b, 5);
107643 t4 == F && ++f2;
107644 L2 = B - q;
107645 O = C - r;
107646 J = $wnd.Math.sqrt(L2 * L2 + O * O);
107647 l = J * 0.20000000298023224;
107648 M2 = L2 / (f2 + 1);
107649 P = O / (f2 + 1);
107650 K2 = q;
107651 N = r;
107652 for (k = 0; k < f2; k++) {
107653 K2 += M2;
107654 N += P;
107655 m = K2 + Cub(b, 24) * lke * l - l / 2;
107656 m < 0 ? m = 1 : m > c2 && (m = c2 - 1);
107657 n = N + Cub(b, 24) * lke * l - l / 2;
107658 n < 0 ? n = 1 : n > d && (n = d - 1);
107659 e = (Fhd(), i3 = new xkd(), i3);
107660 vkd(e, m);
107661 wkd(e, n);
107662 wtd((!g.a && (g.a = new xMd(y2, g, 5)), g.a), e);
107663 }
107664 }
107665 function Nyc() {
107666 Nyc = ccb;
107667 iyc = (Y9c(), I9c);
107668 jyc = J9c;
107669 kyc = K9c;
107670 lyc = L9c;
107671 nyc = M9c;
107672 oyc = N9c;
107673 ryc = P9c;
107674 tyc = R9c;
107675 uyc = S9c;
107676 syc = Q9c;
107677 vyc = T9c;
107678 xyc = U9c;
107679 zyc = X9c;
107680 qyc = O9c;
107681 hyc = (jwc(), Bvc);
107682 myc = Cvc;
107683 pyc = Dvc;
107684 wyc = Evc;
107685 byc = new Osd(D9c, meb(0));
107686 cyc = yvc;
107687 dyc = zvc;
107688 eyc = Avc;
107689 Kyc = awc;
107690 Cyc = Hvc;
107691 Dyc = Kvc;
107692 Gyc = Svc;
107693 Eyc = Nvc;
107694 Fyc = Pvc;
107695 Myc = fwc;
107696 Lyc = cwc;
107697 Iyc = Yvc;
107698 Hyc = Wvc;
107699 Jyc = $vc;
107700 Cxc = pvc;
107701 Dxc = qvc;
107702 Xwc = Auc;
107703 Ywc = Duc;
107704 Lxc = new q0b(12);
107705 Kxc = new Osd(f9c, Lxc);
107706 Twc = (Aad(), wad);
107707 Swc = new Osd(E8c, Twc);
107708 Uxc = new Osd(s9c, 0);
107709 fyc = new Osd(E9c, meb(1));
107710 owc = new Osd(r8c, tme);
107711 Jxc = d9c;
107712 Vxc = t9c;
107713 $xc = A9c;
107714 Kwc = y8c;
107715 mwc = p8c;
107716 axc = J8c;
107717 gyc = new Osd(H9c, (Bcb(), true));
107718 fxc = M8c;
107719 gxc = N8c;
107720 Fxc = Y8c;
107721 Ixc = b9c;
107722 Gxc = $8c;
107723 Nwc = (ead(), cad);
107724 Lwc = new Osd(z8c, Nwc);
107725 xxc = W8c;
107726 wxc = U8c;
107727 Yxc = x9c;
107728 Xxc = w9c;
107729 Zxc = z9c;
107730 Oxc = (Tbd(), Sbd);
107731 new Osd(l9c, Oxc);
107732 Qxc = o9c;
107733 Rxc = p9c;
107734 Sxc = q9c;
107735 Pxc = n9c;
107736 Byc = Gvc;
107737 sxc = avc;
107738 rxc = $uc;
107739 Ayc = Fvc;
107740 mxc = Suc;
107741 Jwc = muc;
107742 Iwc = kuc;
107743 Awc = Xtc;
107744 Bwc = Ytc;
107745 Dwc = buc;
107746 Cwc = Ztc;
107747 Hwc = iuc;
107748 uxc = cvc;
107749 vxc = dvc;
107750 ixc = Luc;
107751 Exc = uvc;
107752 zxc = hvc;
107753 $wc = Guc;
107754 Bxc = nvc;
107755 Vwc = wuc;
107756 Wwc = yuc;
107757 zwc = w8c;
107758 yxc = evc;
107759 swc = Mtc;
107760 rwc = Ktc;
107761 qwc = Jtc;
107762 cxc = Juc;
107763 bxc = Iuc;
107764 dxc = Kuc;
107765 Hxc = _8c;
107766 jxc = Q8c;
107767 Zwc = G8c;
107768 Qwc = C8c;
107769 Pwc = B8c;
107770 Ewc = euc;
107771 Wxc = v9c;
107772 pwc = v8c;
107773 exc = L8c;
107774 Txc = r9c;
107775 Mxc = h9c;
107776 Nxc = j9c;
107777 oxc = Vuc;
107778 pxc = Xuc;
107779 ayc = C9c;
107780 nwc = Itc;
107781 qxc = Zuc;
107782 Rwc = suc;
107783 Owc = quc;
107784 txc = S8c;
107785 kxc = Puc;
107786 Axc = kvc;
107787 yyc = V9c;
107788 Mwc = ouc;
107789 _xc = wvc;
107790 Uwc = uuc;
107791 lxc = Ruc;
107792 Fwc = guc;
107793 hxc = P8c;
107794 nxc = Uuc;
107795 Gwc = huc;
107796 ywc = Vtc;
107797 wwc = Stc;
107798 uwc = Qtc;
107799 vwc = Rtc;
107800 xwc = Utc;
107801 twc = Otc;
107802 _wc = Huc;
107803 }
107804 function shb(a, b) {
107805 phb();
107806 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2;
107807 B = a.e;
107808 o2 = a.d;
107809 e = a.a;
107810 if (B == 0) {
107811 switch (b) {
107812 case 0:
107813 return "0";
107814 case 1:
107815 return $je;
107816 case 2:
107817 return "0.00";
107818 case 3:
107819 return "0.000";
107820 case 4:
107821 return "0.0000";
107822 case 5:
107823 return "0.00000";
107824 case 6:
107825 return "0.000000";
107826 default:
107827 w2 = new Ufb();
107828 b < 0 ? (w2.a += "0E+", w2) : (w2.a += "0E", w2);
107829 w2.a += -b;
107830 return w2.a;
107831 }
107832 }
107833 t4 = o2 * 10 + 1 + 7;
107834 u2 = KC(TD, $ie, 25, t4 + 1, 15, 1);
107835 c2 = t4;
107836 if (o2 == 1) {
107837 h = e[0];
107838 if (h < 0) {
107839 H2 = xbb(h, Yje);
107840 do {
107841 p = H2;
107842 H2 = Abb(H2, 10);
107843 u2[--c2] = 48 + Tbb(Qbb(p, Ibb(H2, 10))) & aje;
107844 } while (ybb(H2, 0) != 0);
107845 } else {
107846 H2 = h;
107847 do {
107848 p = H2;
107849 H2 = H2 / 10 | 0;
107850 u2[--c2] = 48 + (p - H2 * 10) & aje;
107851 } while (H2 != 0);
107852 }
107853 } else {
107854 D3 = KC(WD, oje, 25, o2, 15, 1);
107855 G = o2;
107856 $fb(e, 0, D3, 0, G);
107857 I:
107858 while (true) {
107859 A = 0;
107860 for (j = G - 1; j >= 0; j--) {
107861 F = wbb(Nbb(A, 32), xbb(D3[j], Yje));
107862 r = qhb(F);
107863 D3[j] = Tbb(r);
107864 A = Tbb(Obb(r, 32));
107865 }
107866 s = Tbb(A);
107867 q = c2;
107868 do {
107869 u2[--c2] = 48 + s % 10 & aje;
107870 } while ((s = s / 10 | 0) != 0 && c2 != 0);
107871 d = 9 - q + c2;
107872 for (i3 = 0; i3 < d && c2 > 0; i3++) {
107873 u2[--c2] = 48;
107874 }
107875 l = G - 1;
107876 for (; D3[l] == 0; l--) {
107877 if (l == 0) {
107878 break I;
107879 }
107880 }
107881 G = l + 1;
107882 }
107883 while (u2[c2] == 48) {
107884 ++c2;
107885 }
107886 }
107887 n = B < 0;
107888 g = t4 - c2 - b - 1;
107889 if (b == 0) {
107890 n && (u2[--c2] = 45);
107891 return zfb(u2, c2, t4 - c2);
107892 }
107893 if (b > 0 && g >= -6) {
107894 if (g >= 0) {
107895 k = c2 + g;
107896 for (m = t4 - 1; m >= k; m--) {
107897 u2[m + 1] = u2[m];
107898 }
107899 u2[++k] = 46;
107900 n && (u2[--c2] = 45);
107901 return zfb(u2, c2, t4 - c2 + 1);
107902 }
107903 for (l = 2; l < -g + 1; l++) {
107904 u2[--c2] = 48;
107905 }
107906 u2[--c2] = 46;
107907 u2[--c2] = 48;
107908 n && (u2[--c2] = 45);
107909 return zfb(u2, c2, t4 - c2);
107910 }
107911 C = c2 + 1;
107912 f2 = t4;
107913 v = new Vfb();
107914 n && (v.a += "-", v);
107915 if (f2 - C >= 1) {
107916 Kfb(v, u2[c2]);
107917 v.a += ".";
107918 v.a += zfb(u2, c2 + 1, t4 - c2 - 1);
107919 } else {
107920 v.a += zfb(u2, c2, t4 - c2);
107921 }
107922 v.a += "E";
107923 g > 0 && (v.a += "+", v);
107924 v.a += "" + g;
107925 return v.a;
107926 }
107927 function z$c(a, b) {
107928 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
107929 a.c = b;
107930 a.g = new Lqb();
107931 c2 = (Pgd(), new bhd(a.c));
107932 d = new YGb(c2);
107933 UGb(d);
107934 t4 = GD(hkd(a.c, (d0c(), Y_c)));
107935 i3 = BD(hkd(a.c, $_c), 316);
107936 v = BD(hkd(a.c, __c), 429);
107937 g = BD(hkd(a.c, T_c), 482);
107938 u2 = BD(hkd(a.c, Z_c), 430);
107939 a.j = Edb(ED(hkd(a.c, a0c)));
107940 h = a.a;
107941 switch (i3.g) {
107942 case 0:
107943 h = a.a;
107944 break;
107945 case 1:
107946 h = a.b;
107947 break;
107948 case 2:
107949 h = a.i;
107950 break;
107951 case 3:
107952 h = a.e;
107953 break;
107954 case 4:
107955 h = a.f;
107956 break;
107957 default:
107958 throw vbb(new Wdb(Mre + (i3.f != null ? i3.f : "" + i3.g)));
107959 }
107960 a.d = new g_c(h, v, g);
107961 yNb(a.d, (XNb(), VNb), DD(hkd(a.c, V_c)));
107962 a.d.c = Ccb(DD(hkd(a.c, U_c)));
107963 if (Vod(a.c).i == 0) {
107964 return a.d;
107965 }
107966 for (l = new Fyd(Vod(a.c)); l.e != l.i.gc(); ) {
107967 k = BD(Dyd(l), 33);
107968 n = k.g / 2;
107969 m = k.f / 2;
107970 w2 = new f7c(k.i + n, k.j + m);
107971 while (Mhb(a.g, w2)) {
107972 O6c(w2, ($wnd.Math.random() - 0.5) * qme, ($wnd.Math.random() - 0.5) * qme);
107973 }
107974 p = BD(hkd(k, (Y9c(), S8c)), 142);
107975 q = new aOb(w2, new J6c(w2.a - n - a.j / 2 - p.b, w2.b - m - a.j / 2 - p.d, k.g + a.j + (p.b + p.c), k.f + a.j + (p.d + p.a)));
107976 Ekb(a.d.i, q);
107977 Rhb(a.g, w2, new vgd(q, k));
107978 }
107979 switch (u2.g) {
107980 case 0:
107981 if (t4 == null) {
107982 a.d.d = BD(Ikb(a.d.i, 0), 65);
107983 } else {
107984 for (s = new olb(a.d.i); s.a < s.c.c.length; ) {
107985 q = BD(mlb(s), 65);
107986 o2 = BD(BD(Ohb(a.g, q.a), 46).b, 33).zg();
107987 o2 != null && dfb(o2, t4) && (a.d.d = q);
107988 }
107989 }
107990 break;
107991 case 1:
107992 e = new f7c(a.c.g, a.c.f);
107993 e.a *= 0.5;
107994 e.b *= 0.5;
107995 O6c(e, a.c.i, a.c.j);
107996 f2 = Pje;
107997 for (r = new olb(a.d.i); r.a < r.c.c.length; ) {
107998 q = BD(mlb(r), 65);
107999 j = S6c(q.a, e);
108000 if (j < f2) {
108001 f2 = j;
108002 a.d.d = q;
108003 }
108004 }
108005 break;
108006 default:
108007 throw vbb(new Wdb(Mre + (u2.f != null ? u2.f : "" + u2.g)));
108008 }
108009 return a.d;
108010 }
108011 function qfd(a, b, c2) {
108012 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
108013 v = BD(qud((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a), 0), 202);
108014 k = new s7c();
108015 u2 = new Lqb();
108016 w2 = tfd(v);
108017 jrb(u2.f, v, w2);
108018 m = new Lqb();
108019 d = new Psb();
108020 for (o2 = ul(pl(OC(GC(KI, 1), Uhe, 20, 0, [(!b.d && (b.d = new y5d(B2, b, 8, 5)), b.d), (!b.e && (b.e = new y5d(B2, b, 7, 4)), b.e)]))); Qr(o2); ) {
108021 n = BD(Rr(o2), 79);
108022 if ((!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i != 1) {
108023 throw vbb(new Wdb(Tse + (!a.a && (a.a = new cUd(A2, a, 6, 6)), a.a).i));
108024 }
108025 if (n != a) {
108026 q = BD(qud((!n.a && (n.a = new cUd(A2, n, 6, 6)), n.a), 0), 202);
108027 Gsb(d, q, d.c.b, d.c);
108028 p = BD(Wd(irb(u2.f, q)), 12);
108029 if (!p) {
108030 p = tfd(q);
108031 jrb(u2.f, q, p);
108032 }
108033 l = c2 ? c7c(new g7c(BD(Ikb(w2, w2.c.length - 1), 8)), BD(Ikb(p, p.c.length - 1), 8)) : c7c(new g7c((tCb(0, w2.c.length), BD(w2.c[0], 8))), (tCb(0, p.c.length), BD(p.c[0], 8)));
108034 jrb(m.f, q, l);
108035 }
108036 }
108037 if (d.b != 0) {
108038 r = BD(Ikb(w2, c2 ? w2.c.length - 1 : 0), 8);
108039 for (j = 1; j < w2.c.length; j++) {
108040 s = BD(Ikb(w2, c2 ? w2.c.length - 1 - j : j), 8);
108041 e = Jsb(d, 0);
108042 while (e.b != e.d.c) {
108043 q = BD(Xsb(e), 202);
108044 p = BD(Wd(irb(u2.f, q)), 12);
108045 if (p.c.length <= j) {
108046 Zsb(e);
108047 } else {
108048 t4 = P6c(new g7c(BD(Ikb(p, c2 ? p.c.length - 1 - j : j), 8)), BD(Wd(irb(m.f, q)), 8));
108049 if (s.a != t4.a || s.b != t4.b) {
108050 f2 = s.a - r.a;
108051 h = s.b - r.b;
108052 g = t4.a - r.a;
108053 i3 = t4.b - r.b;
108054 g * h == i3 * f2 && (f2 == 0 || isNaN(f2) ? f2 : f2 < 0 ? -1 : 1) == (g == 0 || isNaN(g) ? g : g < 0 ? -1 : 1) && (h == 0 || isNaN(h) ? h : h < 0 ? -1 : 1) == (i3 == 0 || isNaN(i3) ? i3 : i3 < 0 ? -1 : 1) ? ($wnd.Math.abs(f2) < $wnd.Math.abs(g) || $wnd.Math.abs(h) < $wnd.Math.abs(i3)) && (Gsb(k, s, k.c.b, k.c), true) : j > 1 && (Gsb(k, r, k.c.b, k.c), true);
108055 Zsb(e);
108056 }
108057 }
108058 }
108059 r = s;
108060 }
108061 }
108062 return k;
108063 }
108064 function $Bc(a, b, c2) {
108065 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I, J, K2, L2;
108066 Odd(c2, "Greedy cycle removal", 1);
108067 t4 = b.a;
108068 L2 = t4.c.length;
108069 a.a = KC(WD, oje, 25, L2, 15, 1);
108070 a.c = KC(WD, oje, 25, L2, 15, 1);
108071 a.b = KC(WD, oje, 25, L2, 15, 1);
108072 j = 0;
108073 for (r = new olb(t4); r.a < r.c.c.length; ) {
108074 p = BD(mlb(r), 10);
108075 p.p = j;
108076 for (C = new olb(p.j); C.a < C.c.c.length; ) {
108077 w2 = BD(mlb(C), 11);
108078 for (h = new olb(w2.e); h.a < h.c.c.length; ) {
108079 d = BD(mlb(h), 17);
108080 if (d.c.i == p) {
108081 continue;
108082 }
108083 G = BD(vNb(d, (Nyc(), cyc)), 19).a;
108084 a.a[j] += G > 0 ? G + 1 : 1;
108085 }
108086 for (g = new olb(w2.g); g.a < g.c.c.length; ) {
108087 d = BD(mlb(g), 17);
108088 if (d.d.i == p) {
108089 continue;
108090 }
108091 G = BD(vNb(d, (Nyc(), cyc)), 19).a;
108092 a.c[j] += G > 0 ? G + 1 : 1;
108093 }
108094 }
108095 a.c[j] == 0 ? Dsb(a.e, p) : a.a[j] == 0 && Dsb(a.f, p);
108096 ++j;
108097 }
108098 o2 = -1;
108099 n = 1;
108100 l = new Rkb();
108101 a.d = BD(vNb(b, (wtc(), jtc)), 230);
108102 while (L2 > 0) {
108103 while (a.e.b != 0) {
108104 I = BD(Lsb(a.e), 10);
108105 a.b[I.p] = o2--;
108106 _Bc(a, I);
108107 --L2;
108108 }
108109 while (a.f.b != 0) {
108110 J = BD(Lsb(a.f), 10);
108111 a.b[J.p] = n++;
108112 _Bc(a, J);
108113 --L2;
108114 }
108115 if (L2 > 0) {
108116 m = Rie;
108117 for (s = new olb(t4); s.a < s.c.c.length; ) {
108118 p = BD(mlb(s), 10);
108119 if (a.b[p.p] == 0) {
108120 u2 = a.c[p.p] - a.a[p.p];
108121 if (u2 >= m) {
108122 if (u2 > m) {
108123 l.c = KC(SI, Uhe, 1, 0, 5, 1);
108124 m = u2;
108125 }
108126 l.c[l.c.length] = p;
108127 }
108128 }
108129 }
108130 k = a.Zf(l);
108131 a.b[k.p] = n++;
108132 _Bc(a, k);
108133 --L2;
108134 }
108135 }
108136 H2 = t4.c.length + 1;
108137 for (j = 0; j < t4.c.length; j++) {
108138 a.b[j] < 0 && (a.b[j] += H2);
108139 }
108140 for (q = new olb(t4); q.a < q.c.c.length; ) {
108141 p = BD(mlb(q), 10);
108142 F = m_b(p.j);
108143 for (A = F, B = 0, D3 = A.length; B < D3; ++B) {
108144 w2 = A[B];
108145 v = k_b(w2.g);
108146 for (e = v, f2 = 0, i3 = e.length; f2 < i3; ++f2) {
108147 d = e[f2];
108148 K2 = d.d.i.p;
108149 if (a.b[p.p] > a.b[K2]) {
108150 PZb(d, true);
108151 yNb(b, Asc, (Bcb(), true));
108152 }
108153 }
108154 }
108155 }
108156 a.a = null;
108157 a.c = null;
108158 a.b = null;
108159 Osb(a.f);
108160 Osb(a.e);
108161 Qdd(c2);
108162 }
108163 function sQb(a, b) {
108164 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
108165 d = new Rkb();
108166 h = new Rkb();
108167 q = b / 2;
108168 n = a.gc();
108169 e = BD(a.Xb(0), 8);
108170 r = BD(a.Xb(1), 8);
108171 o2 = tQb(e.a, e.b, r.a, r.b, q);
108172 Ekb(d, (tCb(0, o2.c.length), BD(o2.c[0], 8)));
108173 Ekb(h, (tCb(1, o2.c.length), BD(o2.c[1], 8)));
108174 for (j = 2; j < n; j++) {
108175 p = e;
108176 e = r;
108177 r = BD(a.Xb(j), 8);
108178 o2 = tQb(e.a, e.b, p.a, p.b, q);
108179 Ekb(d, (tCb(1, o2.c.length), BD(o2.c[1], 8)));
108180 Ekb(h, (tCb(0, o2.c.length), BD(o2.c[0], 8)));
108181 o2 = tQb(e.a, e.b, r.a, r.b, q);
108182 Ekb(d, (tCb(0, o2.c.length), BD(o2.c[0], 8)));
108183 Ekb(h, (tCb(1, o2.c.length), BD(o2.c[1], 8)));
108184 }
108185 o2 = tQb(r.a, r.b, e.a, e.b, q);
108186 Ekb(d, (tCb(1, o2.c.length), BD(o2.c[1], 8)));
108187 Ekb(h, (tCb(0, o2.c.length), BD(o2.c[0], 8)));
108188 c2 = new s7c();
108189 g = new Rkb();
108190 Dsb(c2, (tCb(0, d.c.length), BD(d.c[0], 8)));
108191 for (k = 1; k < d.c.length - 2; k += 2) {
108192 f2 = (tCb(k, d.c.length), BD(d.c[k], 8));
108193 m = rQb((tCb(k - 1, d.c.length), BD(d.c[k - 1], 8)), f2, (tCb(k + 1, d.c.length), BD(d.c[k + 1], 8)), (tCb(k + 2, d.c.length), BD(d.c[k + 2], 8)));
108194 !isFinite(m.a) || !isFinite(m.b) ? (Gsb(c2, f2, c2.c.b, c2.c), true) : (Gsb(c2, m, c2.c.b, c2.c), true);
108195 }
108196 Dsb(c2, BD(Ikb(d, d.c.length - 1), 8));
108197 Ekb(g, (tCb(0, h.c.length), BD(h.c[0], 8)));
108198 for (l = 1; l < h.c.length - 2; l += 2) {
108199 f2 = (tCb(l, h.c.length), BD(h.c[l], 8));
108200 m = rQb((tCb(l - 1, h.c.length), BD(h.c[l - 1], 8)), f2, (tCb(l + 1, h.c.length), BD(h.c[l + 1], 8)), (tCb(l + 2, h.c.length), BD(h.c[l + 2], 8)));
108201 !isFinite(m.a) || !isFinite(m.b) ? (g.c[g.c.length] = f2, true) : (g.c[g.c.length] = m, true);
108202 }
108203 Ekb(g, BD(Ikb(h, h.c.length - 1), 8));
108204 for (i3 = g.c.length - 1; i3 >= 0; i3--) {
108205 Dsb(c2, (tCb(i3, g.c.length), BD(g.c[i3], 8)));
108206 }
108207 return c2;
108208 }
108209 function aFd(a) {
108210 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n;
108211 g = true;
108212 l = null;
108213 d = null;
108214 e = null;
108215 b = false;
108216 n = BEd;
108217 j = null;
108218 f2 = null;
108219 h = 0;
108220 i3 = UEd(a, h, zEd, AEd);
108221 if (i3 < a.length && (BCb(i3, a.length), a.charCodeAt(i3) == 58)) {
108222 l = a.substr(h, i3 - h);
108223 h = i3 + 1;
108224 }
108225 c2 = l != null && hnb(GEd, l.toLowerCase());
108226 if (c2) {
108227 i3 = a.lastIndexOf("!/");
108228 if (i3 == -1) {
108229 throw vbb(new Wdb("no archive separator"));
108230 }
108231 g = true;
108232 d = qfb(a, h, ++i3);
108233 h = i3;
108234 } else if (h >= 0 && dfb(a.substr(h, "//".length), "//")) {
108235 h += 2;
108236 i3 = UEd(a, h, CEd, DEd);
108237 d = a.substr(h, i3 - h);
108238 h = i3;
108239 } else if (l != null && (h == a.length || (BCb(h, a.length), a.charCodeAt(h) != 47))) {
108240 g = false;
108241 i3 = ifb(a, wfb(35), h);
108242 i3 == -1 && (i3 = a.length);
108243 d = a.substr(h, i3 - h);
108244 h = i3;
108245 }
108246 if (!c2 && h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 47)) {
108247 i3 = UEd(a, h + 1, CEd, DEd);
108248 k = a.substr(h + 1, i3 - (h + 1));
108249 if (k.length > 0 && bfb(k, k.length - 1) == 58) {
108250 e = k;
108251 h = i3;
108252 }
108253 }
108254 if (h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 47)) {
108255 ++h;
108256 b = true;
108257 }
108258 if (h < a.length && (BCb(h, a.length), a.charCodeAt(h) != 63) && (BCb(h, a.length), a.charCodeAt(h) != 35)) {
108259 m = new Rkb();
108260 while (h < a.length && (BCb(h, a.length), a.charCodeAt(h) != 63) && (BCb(h, a.length), a.charCodeAt(h) != 35)) {
108261 i3 = UEd(a, h, CEd, DEd);
108262 Ekb(m, a.substr(h, i3 - h));
108263 h = i3;
108264 h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 47) && (bFd(a, ++h) || (m.c[m.c.length] = "", true));
108265 }
108266 n = KC(ZI, nie, 2, m.c.length, 6, 1);
108267 Qkb(m, n);
108268 }
108269 if (h < a.length && (BCb(h, a.length), a.charCodeAt(h) == 63)) {
108270 i3 = gfb(a, 35, ++h);
108271 i3 == -1 && (i3 = a.length);
108272 j = a.substr(h, i3 - h);
108273 h = i3;
108274 }
108275 h < a.length && (f2 = pfb(a, ++h));
108276 iFd(g, l, d, e, n, j);
108277 return new NEd(g, l, d, e, b, n, j, f2);
108278 }
108279 function sJc(a, b) {
108280 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I, J, K2;
108281 I = new Rkb();
108282 for (o2 = new olb(b.b); o2.a < o2.c.c.length; ) {
108283 m = BD(mlb(o2), 29);
108284 for (v = new olb(m.a); v.a < v.c.c.length; ) {
108285 u2 = BD(mlb(v), 10);
108286 u2.p = -1;
108287 l = Rie;
108288 B = Rie;
108289 for (D3 = new olb(u2.j); D3.a < D3.c.c.length; ) {
108290 C = BD(mlb(D3), 11);
108291 for (e = new olb(C.e); e.a < e.c.c.length; ) {
108292 c2 = BD(mlb(e), 17);
108293 F = BD(vNb(c2, (Nyc(), eyc)), 19).a;
108294 l = $wnd.Math.max(l, F);
108295 }
108296 for (d = new olb(C.g); d.a < d.c.c.length; ) {
108297 c2 = BD(mlb(d), 17);
108298 F = BD(vNb(c2, (Nyc(), eyc)), 19).a;
108299 B = $wnd.Math.max(B, F);
108300 }
108301 }
108302 yNb(u2, hJc, meb(l));
108303 yNb(u2, iJc, meb(B));
108304 }
108305 }
108306 r = 0;
108307 for (n = new olb(b.b); n.a < n.c.c.length; ) {
108308 m = BD(mlb(n), 29);
108309 for (v = new olb(m.a); v.a < v.c.c.length; ) {
108310 u2 = BD(mlb(v), 10);
108311 if (u2.p < 0) {
108312 H2 = new zJc();
108313 H2.b = r++;
108314 oJc(a, u2, H2);
108315 I.c[I.c.length] = H2;
108316 }
108317 }
108318 }
108319 A = Pu(I.c.length);
108320 k = Pu(I.c.length);
108321 for (g = 0; g < I.c.length; g++) {
108322 Ekb(A, new Rkb());
108323 Ekb(k, meb(0));
108324 }
108325 mJc(b, I, A, k);
108326 J = BD(Qkb(I, KC(sY, Iqe, 257, I.c.length, 0, 1)), 840);
108327 w2 = BD(Qkb(A, KC(yK, eme, 15, A.c.length, 0, 1)), 192);
108328 j = KC(WD, oje, 25, k.c.length, 15, 1);
108329 for (h = 0; h < j.length; h++) {
108330 j[h] = (tCb(h, k.c.length), BD(k.c[h], 19)).a;
108331 }
108332 s = 0;
108333 t4 = new Rkb();
108334 for (i3 = 0; i3 < J.length; i3++) {
108335 j[i3] == 0 && Ekb(t4, J[i3]);
108336 }
108337 q = KC(WD, oje, 25, J.length, 15, 1);
108338 while (t4.c.length != 0) {
108339 H2 = BD(Kkb(t4, 0), 257);
108340 q[H2.b] = s++;
108341 while (!w2[H2.b].dc()) {
108342 K2 = BD(w2[H2.b].$c(0), 257);
108343 --j[K2.b];
108344 j[K2.b] == 0 && (t4.c[t4.c.length] = K2, true);
108345 }
108346 }
108347 a.a = KC(sY, Iqe, 257, J.length, 0, 1);
108348 for (f2 = 0; f2 < J.length; f2++) {
108349 p = J[f2];
108350 G = q[f2];
108351 a.a[G] = p;
108352 p.b = G;
108353 for (v = new olb(p.e); v.a < v.c.c.length; ) {
108354 u2 = BD(mlb(v), 10);
108355 u2.p = G;
108356 }
108357 }
108358 return a.a;
108359 }
108360 function nde(a) {
108361 var b, c2, d;
108362 if (a.d >= a.j) {
108363 a.a = -1;
108364 a.c = 1;
108365 return;
108366 }
108367 b = bfb(a.i, a.d++);
108368 a.a = b;
108369 if (a.b == 1) {
108370 switch (b) {
108371 case 92:
108372 d = 10;
108373 if (a.d >= a.j)
108374 throw vbb(new mde(tvd((h0d(), uue))));
108375 a.a = bfb(a.i, a.d++);
108376 break;
108377 case 45:
108378 if ((a.e & 512) == 512 && a.d < a.j && bfb(a.i, a.d) == 91) {
108379 ++a.d;
108380 d = 24;
108381 } else
108382 d = 0;
108383 break;
108384 case 91:
108385 if ((a.e & 512) != 512 && a.d < a.j && bfb(a.i, a.d) == 58) {
108386 ++a.d;
108387 d = 20;
108388 break;
108389 }
108390 default:
108391 if ((b & 64512) == Uje && a.d < a.j) {
108392 c2 = bfb(a.i, a.d);
108393 if ((c2 & 64512) == 56320) {
108394 a.a = Tje + (b - Uje << 10) + c2 - 56320;
108395 ++a.d;
108396 }
108397 }
108398 d = 0;
108399 }
108400 a.c = d;
108401 return;
108402 }
108403 switch (b) {
108404 case 124:
108405 d = 2;
108406 break;
108407 case 42:
108408 d = 3;
108409 break;
108410 case 43:
108411 d = 4;
108412 break;
108413 case 63:
108414 d = 5;
108415 break;
108416 case 41:
108417 d = 7;
108418 break;
108419 case 46:
108420 d = 8;
108421 break;
108422 case 91:
108423 d = 9;
108424 break;
108425 case 94:
108426 d = 11;
108427 break;
108428 case 36:
108429 d = 12;
108430 break;
108431 case 40:
108432 d = 6;
108433 if (a.d >= a.j)
108434 break;
108435 if (bfb(a.i, a.d) != 63)
108436 break;
108437 if (++a.d >= a.j)
108438 throw vbb(new mde(tvd((h0d(), vue))));
108439 b = bfb(a.i, a.d++);
108440 switch (b) {
108441 case 58:
108442 d = 13;
108443 break;
108444 case 61:
108445 d = 14;
108446 break;
108447 case 33:
108448 d = 15;
108449 break;
108450 case 91:
108451 d = 19;
108452 break;
108453 case 62:
108454 d = 18;
108455 break;
108456 case 60:
108457 if (a.d >= a.j)
108458 throw vbb(new mde(tvd((h0d(), vue))));
108459 b = bfb(a.i, a.d++);
108460 if (b == 61) {
108461 d = 16;
108462 } else if (b == 33) {
108463 d = 17;
108464 } else
108465 throw vbb(new mde(tvd((h0d(), wue))));
108466 break;
108467 case 35:
108468 while (a.d < a.j) {
108469 b = bfb(a.i, a.d++);
108470 if (b == 41)
108471 break;
108472 }
108473 if (b != 41)
108474 throw vbb(new mde(tvd((h0d(), xue))));
108475 d = 21;
108476 break;
108477 default:
108478 if (b == 45 || 97 <= b && b <= 122 || 65 <= b && b <= 90) {
108479 --a.d;
108480 d = 22;
108481 break;
108482 } else if (b == 40) {
108483 d = 23;
108484 break;
108485 }
108486 throw vbb(new mde(tvd((h0d(), vue))));
108487 }
108488 break;
108489 case 92:
108490 d = 10;
108491 if (a.d >= a.j)
108492 throw vbb(new mde(tvd((h0d(), uue))));
108493 a.a = bfb(a.i, a.d++);
108494 break;
108495 default:
108496 d = 0;
108497 }
108498 a.c = d;
108499 }
108500 function P5b(a) {
108501 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G;
108502 A = BD(vNb(a, (Nyc(), Vxc)), 98);
108503 if (!(A != (dcd(), bcd) && A != ccd)) {
108504 return;
108505 }
108506 o2 = a.b;
108507 n = o2.c.length;
108508 k = new Skb((Xj(n + 2, Mie), Oy(wbb(wbb(5, n + 2), (n + 2) / 10 | 0))));
108509 p = new Skb((Xj(n + 2, Mie), Oy(wbb(wbb(5, n + 2), (n + 2) / 10 | 0))));
108510 Ekb(k, new Lqb());
108511 Ekb(k, new Lqb());
108512 Ekb(p, new Rkb());
108513 Ekb(p, new Rkb());
108514 w2 = new Rkb();
108515 for (b = 0; b < n; b++) {
108516 c2 = (tCb(b, o2.c.length), BD(o2.c[b], 29));
108517 B = (tCb(b, k.c.length), BD(k.c[b], 83));
108518 q = new Lqb();
108519 k.c[k.c.length] = q;
108520 D3 = (tCb(b, p.c.length), BD(p.c[b], 15));
108521 s = new Rkb();
108522 p.c[p.c.length] = s;
108523 for (e = new olb(c2.a); e.a < e.c.c.length; ) {
108524 d = BD(mlb(e), 10);
108525 if (L5b(d)) {
108526 w2.c[w2.c.length] = d;
108527 continue;
108528 }
108529 for (j = new Sr(ur(R_b(d).a.Kc(), new Sq())); Qr(j); ) {
108530 h = BD(Rr(j), 17);
108531 F = h.c.i;
108532 if (!L5b(F)) {
108533 continue;
108534 }
108535 C = BD(B.xc(vNb(F, (wtc(), $sc))), 10);
108536 if (!C) {
108537 C = K5b(a, F);
108538 B.zc(vNb(F, $sc), C);
108539 D3.Fc(C);
108540 }
108541 QZb(h, BD(Ikb(C.j, 1), 11));
108542 }
108543 for (i3 = new Sr(ur(U_b(d).a.Kc(), new Sq())); Qr(i3); ) {
108544 h = BD(Rr(i3), 17);
108545 G = h.d.i;
108546 if (!L5b(G)) {
108547 continue;
108548 }
108549 r = BD(Ohb(q, vNb(G, (wtc(), $sc))), 10);
108550 if (!r) {
108551 r = K5b(a, G);
108552 Rhb(q, vNb(G, $sc), r);
108553 s.c[s.c.length] = r;
108554 }
108555 RZb(h, BD(Ikb(r.j, 0), 11));
108556 }
108557 }
108558 }
108559 for (l = 0; l < p.c.length; l++) {
108560 t4 = (tCb(l, p.c.length), BD(p.c[l], 15));
108561 if (t4.dc()) {
108562 continue;
108563 }
108564 m = null;
108565 if (l == 0) {
108566 m = new H1b(a);
108567 wCb(0, o2.c.length);
108568 aCb(o2.c, 0, m);
108569 } else if (l == k.c.length - 1) {
108570 m = new H1b(a);
108571 o2.c[o2.c.length] = m;
108572 } else {
108573 m = (tCb(l - 1, o2.c.length), BD(o2.c[l - 1], 29));
108574 }
108575 for (g = t4.Kc(); g.Ob(); ) {
108576 f2 = BD(g.Pb(), 10);
108577 $_b(f2, m);
108578 }
108579 }
108580 for (v = new olb(w2); v.a < v.c.c.length; ) {
108581 u2 = BD(mlb(v), 10);
108582 $_b(u2, null);
108583 }
108584 yNb(a, (wtc(), Fsc), w2);
108585 }
108586 function BCc(a, b, c2) {
108587 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v;
108588 Odd(c2, "Coffman-Graham Layering", 1);
108589 if (b.a.c.length == 0) {
108590 Qdd(c2);
108591 return;
108592 }
108593 v = BD(vNb(b, (Nyc(), kxc)), 19).a;
108594 i3 = 0;
108595 g = 0;
108596 for (m = new olb(b.a); m.a < m.c.c.length; ) {
108597 l = BD(mlb(m), 10);
108598 l.p = i3++;
108599 for (f2 = new Sr(ur(U_b(l).a.Kc(), new Sq())); Qr(f2); ) {
108600 e = BD(Rr(f2), 17);
108601 e.p = g++;
108602 }
108603 }
108604 a.d = KC(sbb, dle, 25, i3, 16, 1);
108605 a.a = KC(sbb, dle, 25, g, 16, 1);
108606 a.b = KC(WD, oje, 25, i3, 15, 1);
108607 a.e = KC(WD, oje, 25, i3, 15, 1);
108608 a.f = KC(WD, oje, 25, i3, 15, 1);
108609 Nc(a.c);
108610 CCc(a, b);
108611 o2 = new gub(new GCc(a));
108612 for (u2 = new olb(b.a); u2.a < u2.c.c.length; ) {
108613 s = BD(mlb(u2), 10);
108614 for (f2 = new Sr(ur(R_b(s).a.Kc(), new Sq())); Qr(f2); ) {
108615 e = BD(Rr(f2), 17);
108616 a.a[e.p] || ++a.b[s.p];
108617 }
108618 a.b[s.p] == 0 && (zCb(cub(o2, s)), true);
108619 }
108620 h = 0;
108621 while (o2.b.c.length != 0) {
108622 s = BD(dub(o2), 10);
108623 a.f[s.p] = h++;
108624 for (f2 = new Sr(ur(U_b(s).a.Kc(), new Sq())); Qr(f2); ) {
108625 e = BD(Rr(f2), 17);
108626 if (a.a[e.p]) {
108627 continue;
108628 }
108629 q = e.d.i;
108630 --a.b[q.p];
108631 Rc(a.c, q, meb(a.f[s.p]));
108632 a.b[q.p] == 0 && (zCb(cub(o2, q)), true);
108633 }
108634 }
108635 n = new gub(new KCc(a));
108636 for (t4 = new olb(b.a); t4.a < t4.c.c.length; ) {
108637 s = BD(mlb(t4), 10);
108638 for (f2 = new Sr(ur(U_b(s).a.Kc(), new Sq())); Qr(f2); ) {
108639 e = BD(Rr(f2), 17);
108640 a.a[e.p] || ++a.e[s.p];
108641 }
108642 a.e[s.p] == 0 && (zCb(cub(n, s)), true);
108643 }
108644 k = new Rkb();
108645 d = yCc(b, k);
108646 while (n.b.c.length != 0) {
108647 r = BD(dub(n), 10);
108648 (d.a.c.length >= v || !wCc(r, d)) && (d = yCc(b, k));
108649 $_b(r, d);
108650 for (f2 = new Sr(ur(R_b(r).a.Kc(), new Sq())); Qr(f2); ) {
108651 e = BD(Rr(f2), 17);
108652 if (a.a[e.p]) {
108653 continue;
108654 }
108655 p = e.c.i;
108656 --a.e[p.p];
108657 a.e[p.p] == 0 && (zCb(cub(n, p)), true);
108658 }
108659 }
108660 for (j = k.c.length - 1; j >= 0; --j) {
108661 Ekb(b.b, (tCb(j, k.c.length), BD(k.c[j], 29)));
108662 }
108663 b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
108664 Qdd(c2);
108665 }
108666 function gee(a) {
108667 var b, c2, d, e, f2, g, h, i3, j;
108668 a.b = 1;
108669 nde(a);
108670 b = null;
108671 if (a.c == 0 && a.a == 94) {
108672 nde(a);
108673 b = (wfe(), wfe(), new $fe(4));
108674 Ufe(b, 0, lxe);
108675 h = new $fe(4);
108676 } else {
108677 h = (wfe(), wfe(), new $fe(4));
108678 }
108679 e = true;
108680 while ((j = a.c) != 1) {
108681 if (j == 0 && a.a == 93 && !e) {
108682 if (b) {
108683 Zfe(b, h);
108684 h = b;
108685 }
108686 break;
108687 }
108688 c2 = a.a;
108689 d = false;
108690 if (j == 10) {
108691 switch (c2) {
108692 case 100:
108693 case 68:
108694 case 119:
108695 case 87:
108696 case 115:
108697 case 83:
108698 Xfe(h, fee(c2));
108699 d = true;
108700 break;
108701 case 105:
108702 case 73:
108703 case 99:
108704 case 67:
108705 c2 = (Xfe(h, fee(c2)), -1);
108706 c2 < 0 && (d = true);
108707 break;
108708 case 112:
108709 case 80:
108710 i3 = tde(a, c2);
108711 if (!i3)
108712 throw vbb(new mde(tvd((h0d(), Iue))));
108713 Xfe(h, i3);
108714 d = true;
108715 break;
108716 default:
108717 c2 = eee(a);
108718 }
108719 } else if (j == 24 && !e) {
108720 if (b) {
108721 Zfe(b, h);
108722 h = b;
108723 }
108724 f2 = gee(a);
108725 Zfe(h, f2);
108726 if (a.c != 0 || a.a != 93)
108727 throw vbb(new mde(tvd((h0d(), Mue))));
108728 break;
108729 }
108730 nde(a);
108731 if (!d) {
108732 if (j == 0) {
108733 if (c2 == 91)
108734 throw vbb(new mde(tvd((h0d(), Nue))));
108735 if (c2 == 93)
108736 throw vbb(new mde(tvd((h0d(), Oue))));
108737 if (c2 == 45 && !e && a.a != 93)
108738 throw vbb(new mde(tvd((h0d(), Pue))));
108739 }
108740 if (a.c != 0 || a.a != 45 || c2 == 45 && e) {
108741 Ufe(h, c2, c2);
108742 } else {
108743 nde(a);
108744 if ((j = a.c) == 1)
108745 throw vbb(new mde(tvd((h0d(), Kue))));
108746 if (j == 0 && a.a == 93) {
108747 Ufe(h, c2, c2);
108748 Ufe(h, 45, 45);
108749 } else if (j == 0 && a.a == 93 || j == 24) {
108750 throw vbb(new mde(tvd((h0d(), Pue))));
108751 } else {
108752 g = a.a;
108753 if (j == 0) {
108754 if (g == 91)
108755 throw vbb(new mde(tvd((h0d(), Nue))));
108756 if (g == 93)
108757 throw vbb(new mde(tvd((h0d(), Oue))));
108758 if (g == 45)
108759 throw vbb(new mde(tvd((h0d(), Pue))));
108760 } else
108761 j == 10 && (g = eee(a));
108762 nde(a);
108763 if (c2 > g)
108764 throw vbb(new mde(tvd((h0d(), Sue))));
108765 Ufe(h, c2, g);
108766 }
108767 }
108768 }
108769 e = false;
108770 }
108771 if (a.c == 1)
108772 throw vbb(new mde(tvd((h0d(), Kue))));
108773 Yfe(h);
108774 Vfe(h);
108775 a.b = 0;
108776 nde(a);
108777 return h;
108778 }
108779 function xZd(a) {
108780 Bnd(a.c, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#decimal"]));
108781 Bnd(a.d, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#integer"]));
108782 Bnd(a.e, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#boolean"]));
108783 Bnd(a.f, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EBoolean", fue, "EBoolean:Object"]));
108784 Bnd(a.i, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#byte"]));
108785 Bnd(a.g, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#hexBinary"]));
108786 Bnd(a.j, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EByte", fue, "EByte:Object"]));
108787 Bnd(a.n, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EChar", fue, "EChar:Object"]));
108788 Bnd(a.t, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#double"]));
108789 Bnd(a.u, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EDouble", fue, "EDouble:Object"]));
108790 Bnd(a.F, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#float"]));
108791 Bnd(a.G, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EFloat", fue, "EFloat:Object"]));
108792 Bnd(a.I, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#int"]));
108793 Bnd(a.J, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EInt", fue, "EInt:Object"]));
108794 Bnd(a.N, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#long"]));
108795 Bnd(a.O, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "ELong", fue, "ELong:Object"]));
108796 Bnd(a.Z, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#short"]));
108797 Bnd(a.$, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "EShort", fue, "EShort:Object"]));
108798 Bnd(a._, Rve, OC(GC(ZI, 1), nie, 2, 6, [cwe, "http://www.w3.org/2001/XMLSchema#string"]));
108799 }
108800 function fRc(a) {
108801 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G;
108802 if (a.c.length == 1) {
108803 return tCb(0, a.c.length), BD(a.c[0], 135);
108804 } else if (a.c.length <= 0) {
108805 return new SRc();
108806 }
108807 for (i3 = new olb(a); i3.a < i3.c.c.length; ) {
108808 g = BD(mlb(i3), 135);
108809 s = 0;
108810 o2 = Ohe;
108811 p = Ohe;
108812 m = Rie;
108813 n = Rie;
108814 for (r = Jsb(g.b, 0); r.b != r.d.c; ) {
108815 q = BD(Xsb(r), 86);
108816 s += BD(vNb(q, (JTc(), ETc)), 19).a;
108817 o2 = $wnd.Math.min(o2, q.e.a);
108818 p = $wnd.Math.min(p, q.e.b);
108819 m = $wnd.Math.max(m, q.e.a + q.f.a);
108820 n = $wnd.Math.max(n, q.e.b + q.f.b);
108821 }
108822 yNb(g, (JTc(), ETc), meb(s));
108823 yNb(g, (mTc(), WSc), new f7c(o2, p));
108824 yNb(g, VSc, new f7c(m, n));
108825 }
108826 mmb();
108827 Okb(a, new jRc());
108828 v = new SRc();
108829 tNb(v, (tCb(0, a.c.length), BD(a.c[0], 94)));
108830 l = 0;
108831 D3 = 0;
108832 for (j = new olb(a); j.a < j.c.c.length; ) {
108833 g = BD(mlb(j), 135);
108834 w2 = c7c(R6c(BD(vNb(g, (mTc(), VSc)), 8)), BD(vNb(g, WSc), 8));
108835 l = $wnd.Math.max(l, w2.a);
108836 D3 += w2.a * w2.b;
108837 }
108838 l = $wnd.Math.max(l, $wnd.Math.sqrt(D3) * Edb(ED(vNb(v, (JTc(), uTc)))));
108839 A = Edb(ED(vNb(v, HTc)));
108840 F = 0;
108841 G = 0;
108842 k = 0;
108843 b = A;
108844 for (h = new olb(a); h.a < h.c.c.length; ) {
108845 g = BD(mlb(h), 135);
108846 w2 = c7c(R6c(BD(vNb(g, (mTc(), VSc)), 8)), BD(vNb(g, WSc), 8));
108847 if (F + w2.a > l) {
108848 F = 0;
108849 G += k + A;
108850 k = 0;
108851 }
108852 eRc(v, g, F, G);
108853 b = $wnd.Math.max(b, F + w2.a);
108854 k = $wnd.Math.max(k, w2.b);
108855 F += w2.a + A;
108856 }
108857 u2 = new Lqb();
108858 c2 = new Lqb();
108859 for (C = new olb(a); C.a < C.c.c.length; ) {
108860 B = BD(mlb(C), 135);
108861 d = Ccb(DD(vNb(B, (Y9c(), y8c))));
108862 t4 = !B.q ? kmb : B.q;
108863 for (f2 = t4.vc().Kc(); f2.Ob(); ) {
108864 e = BD(f2.Pb(), 42);
108865 if (Mhb(u2, e.cd())) {
108866 if (PD(BD(e.cd(), 146).wg()) !== PD(e.dd())) {
108867 if (d && Mhb(c2, e.cd())) {
108868 Zfb();
108869 "Found different values for property " + BD(e.cd(), 146).tg() + " in components.";
108870 } else {
108871 Rhb(u2, BD(e.cd(), 146), e.dd());
108872 yNb(v, BD(e.cd(), 146), e.dd());
108873 d && Rhb(c2, BD(e.cd(), 146), e.dd());
108874 }
108875 }
108876 } else {
108877 Rhb(u2, BD(e.cd(), 146), e.dd());
108878 yNb(v, BD(e.cd(), 146), e.dd());
108879 }
108880 }
108881 }
108882 return v;
108883 }
108884 function MYb() {
108885 MYb = ccb;
108886 xXb();
108887 LYb = new Hp();
108888 Rc(LYb, (Ucd(), Gcd), Fcd);
108889 Rc(LYb, Qcd, Fcd);
108890 Rc(LYb, Hcd, Fcd);
108891 Rc(LYb, Ncd, Fcd);
108892 Rc(LYb, Mcd, Fcd);
108893 Rc(LYb, Kcd, Fcd);
108894 Rc(LYb, Ncd, Gcd);
108895 Rc(LYb, Fcd, Bcd);
108896 Rc(LYb, Gcd, Bcd);
108897 Rc(LYb, Qcd, Bcd);
108898 Rc(LYb, Hcd, Bcd);
108899 Rc(LYb, Lcd, Bcd);
108900 Rc(LYb, Ncd, Bcd);
108901 Rc(LYb, Mcd, Bcd);
108902 Rc(LYb, Kcd, Bcd);
108903 Rc(LYb, Ecd, Bcd);
108904 Rc(LYb, Fcd, Ocd);
108905 Rc(LYb, Gcd, Ocd);
108906 Rc(LYb, Bcd, Ocd);
108907 Rc(LYb, Qcd, Ocd);
108908 Rc(LYb, Hcd, Ocd);
108909 Rc(LYb, Lcd, Ocd);
108910 Rc(LYb, Ncd, Ocd);
108911 Rc(LYb, Ecd, Ocd);
108912 Rc(LYb, Pcd, Ocd);
108913 Rc(LYb, Mcd, Ocd);
108914 Rc(LYb, Icd, Ocd);
108915 Rc(LYb, Kcd, Ocd);
108916 Rc(LYb, Gcd, Qcd);
108917 Rc(LYb, Hcd, Qcd);
108918 Rc(LYb, Ncd, Qcd);
108919 Rc(LYb, Kcd, Qcd);
108920 Rc(LYb, Gcd, Hcd);
108921 Rc(LYb, Qcd, Hcd);
108922 Rc(LYb, Ncd, Hcd);
108923 Rc(LYb, Hcd, Hcd);
108924 Rc(LYb, Mcd, Hcd);
108925 Rc(LYb, Fcd, Ccd);
108926 Rc(LYb, Gcd, Ccd);
108927 Rc(LYb, Bcd, Ccd);
108928 Rc(LYb, Ocd, Ccd);
108929 Rc(LYb, Qcd, Ccd);
108930 Rc(LYb, Hcd, Ccd);
108931 Rc(LYb, Lcd, Ccd);
108932 Rc(LYb, Ncd, Ccd);
108933 Rc(LYb, Pcd, Ccd);
108934 Rc(LYb, Ecd, Ccd);
108935 Rc(LYb, Kcd, Ccd);
108936 Rc(LYb, Mcd, Ccd);
108937 Rc(LYb, Jcd, Ccd);
108938 Rc(LYb, Fcd, Pcd);
108939 Rc(LYb, Gcd, Pcd);
108940 Rc(LYb, Bcd, Pcd);
108941 Rc(LYb, Qcd, Pcd);
108942 Rc(LYb, Hcd, Pcd);
108943 Rc(LYb, Lcd, Pcd);
108944 Rc(LYb, Ncd, Pcd);
108945 Rc(LYb, Ecd, Pcd);
108946 Rc(LYb, Kcd, Pcd);
108947 Rc(LYb, Icd, Pcd);
108948 Rc(LYb, Jcd, Pcd);
108949 Rc(LYb, Gcd, Ecd);
108950 Rc(LYb, Qcd, Ecd);
108951 Rc(LYb, Hcd, Ecd);
108952 Rc(LYb, Ncd, Ecd);
108953 Rc(LYb, Pcd, Ecd);
108954 Rc(LYb, Kcd, Ecd);
108955 Rc(LYb, Mcd, Ecd);
108956 Rc(LYb, Fcd, Dcd);
108957 Rc(LYb, Gcd, Dcd);
108958 Rc(LYb, Bcd, Dcd);
108959 Rc(LYb, Qcd, Dcd);
108960 Rc(LYb, Hcd, Dcd);
108961 Rc(LYb, Lcd, Dcd);
108962 Rc(LYb, Ncd, Dcd);
108963 Rc(LYb, Ecd, Dcd);
108964 Rc(LYb, Kcd, Dcd);
108965 Rc(LYb, Gcd, Mcd);
108966 Rc(LYb, Bcd, Mcd);
108967 Rc(LYb, Ocd, Mcd);
108968 Rc(LYb, Hcd, Mcd);
108969 Rc(LYb, Fcd, Icd);
108970 Rc(LYb, Gcd, Icd);
108971 Rc(LYb, Ocd, Icd);
108972 Rc(LYb, Qcd, Icd);
108973 Rc(LYb, Hcd, Icd);
108974 Rc(LYb, Lcd, Icd);
108975 Rc(LYb, Ncd, Icd);
108976 Rc(LYb, Ncd, Jcd);
108977 Rc(LYb, Hcd, Jcd);
108978 Rc(LYb, Ecd, Fcd);
108979 Rc(LYb, Ecd, Qcd);
108980 Rc(LYb, Ecd, Bcd);
108981 Rc(LYb, Lcd, Fcd);
108982 Rc(LYb, Lcd, Gcd);
108983 Rc(LYb, Lcd, Ocd);
108984 }
108985 function HVd(a, b) {
108986 switch (a.e) {
108987 case 0:
108988 case 2:
108989 case 4:
108990 case 6:
108991 case 42:
108992 case 44:
108993 case 46:
108994 case 48:
108995 case 8:
108996 case 10:
108997 case 12:
108998 case 14:
108999 case 16:
109000 case 18:
109001 case 20:
109002 case 22:
109003 case 24:
109004 case 26:
109005 case 28:
109006 case 30:
109007 case 32:
109008 case 34:
109009 case 36:
109010 case 38:
109011 return new U5d(a.b, a.a, b, a.c);
109012 case 1:
109013 return new BMd(a.a, b, bLd(b.Tg(), a.c));
109014 case 43:
109015 return new N4d(a.a, b, bLd(b.Tg(), a.c));
109016 case 3:
109017 return new xMd(a.a, b, bLd(b.Tg(), a.c));
109018 case 45:
109019 return new K4d(a.a, b, bLd(b.Tg(), a.c));
109020 case 41:
109021 return new dId(BD(wId(a.c), 26), a.a, b, bLd(b.Tg(), a.c));
109022 case 50:
109023 return new c6d(BD(wId(a.c), 26), a.a, b, bLd(b.Tg(), a.c));
109024 case 5:
109025 return new Q4d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
109026 case 47:
109027 return new U4d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
109028 case 7:
109029 return new cUd(a.a, b, bLd(b.Tg(), a.c), a.d.n);
109030 case 49:
109031 return new gUd(a.a, b, bLd(b.Tg(), a.c), a.d.n);
109032 case 9:
109033 return new I4d(a.a, b, bLd(b.Tg(), a.c));
109034 case 11:
109035 return new G4d(a.a, b, bLd(b.Tg(), a.c));
109036 case 13:
109037 return new C4d(a.a, b, bLd(b.Tg(), a.c));
109038 case 15:
109039 return new k2d(a.a, b, bLd(b.Tg(), a.c));
109040 case 17:
109041 return new c5d(a.a, b, bLd(b.Tg(), a.c));
109042 case 19:
109043 return new _4d(a.a, b, bLd(b.Tg(), a.c));
109044 case 21:
109045 return new X4d(a.a, b, bLd(b.Tg(), a.c));
109046 case 23:
109047 return new pMd(a.a, b, bLd(b.Tg(), a.c));
109048 case 25:
109049 return new D5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
109050 case 27:
109051 return new y5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
109052 case 29:
109053 return new t5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
109054 case 31:
109055 return new n5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
109056 case 33:
109057 return new A5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
109058 case 35:
109059 return new v5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
109060 case 37:
109061 return new p5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
109062 case 39:
109063 return new i5d(a.a, b, bLd(b.Tg(), a.c), a.d.n);
109064 case 40:
109065 return new u3d(b, bLd(b.Tg(), a.c));
109066 default:
109067 throw vbb(new hz("Unknown feature style: " + a.e));
109068 }
109069 }
109070 function BMc(a, b, c2) {
109071 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
109072 Odd(c2, "Brandes & Koepf node placement", 1);
109073 a.a = b;
109074 a.c = KMc(b);
109075 d = BD(vNb(b, (Nyc(), zxc)), 274);
109076 n = Ccb(DD(vNb(b, Axc)));
109077 a.d = d == (lrc(), irc) && !n || d == frc;
109078 AMc(a, b);
109079 v = null;
109080 w2 = null;
109081 r = null;
109082 s = null;
109083 q = (Xj(4, Jie), new Skb(4));
109084 switch (BD(vNb(b, zxc), 274).g) {
109085 case 3:
109086 r = new ULc(b, a.c.d, (eMc(), cMc), (YLc(), WLc));
109087 q.c[q.c.length] = r;
109088 break;
109089 case 1:
109090 s = new ULc(b, a.c.d, (eMc(), dMc), (YLc(), WLc));
109091 q.c[q.c.length] = s;
109092 break;
109093 case 4:
109094 v = new ULc(b, a.c.d, (eMc(), cMc), (YLc(), XLc));
109095 q.c[q.c.length] = v;
109096 break;
109097 case 2:
109098 w2 = new ULc(b, a.c.d, (eMc(), dMc), (YLc(), XLc));
109099 q.c[q.c.length] = w2;
109100 break;
109101 default:
109102 r = new ULc(b, a.c.d, (eMc(), cMc), (YLc(), WLc));
109103 s = new ULc(b, a.c.d, dMc, WLc);
109104 v = new ULc(b, a.c.d, cMc, XLc);
109105 w2 = new ULc(b, a.c.d, dMc, XLc);
109106 q.c[q.c.length] = v;
109107 q.c[q.c.length] = w2;
109108 q.c[q.c.length] = r;
109109 q.c[q.c.length] = s;
109110 }
109111 e = new mMc(b, a.c);
109112 for (h = new olb(q); h.a < h.c.c.length; ) {
109113 f2 = BD(mlb(h), 180);
109114 lMc(e, f2, a.b);
109115 kMc(f2);
109116 }
109117 m = new rMc(b, a.c);
109118 for (i3 = new olb(q); i3.a < i3.c.c.length; ) {
109119 f2 = BD(mlb(i3), 180);
109120 oMc(m, f2);
109121 }
109122 if (c2.n) {
109123 for (j = new olb(q); j.a < j.c.c.length; ) {
109124 f2 = BD(mlb(j), 180);
109125 Sdd(c2, f2 + " size is " + SLc(f2));
109126 }
109127 }
109128 l = null;
109129 if (a.d) {
109130 k = yMc(a, q, a.c.d);
109131 xMc(b, k, c2) && (l = k);
109132 }
109133 if (!l) {
109134 for (j = new olb(q); j.a < j.c.c.length; ) {
109135 f2 = BD(mlb(j), 180);
109136 xMc(b, f2, c2) && (!l || SLc(l) > SLc(f2)) && (l = f2);
109137 }
109138 }
109139 !l && (l = (tCb(0, q.c.length), BD(q.c[0], 180)));
109140 for (p = new olb(b.b); p.a < p.c.c.length; ) {
109141 o2 = BD(mlb(p), 29);
109142 for (u2 = new olb(o2.a); u2.a < u2.c.c.length; ) {
109143 t4 = BD(mlb(u2), 10);
109144 t4.n.b = Edb(l.p[t4.p]) + Edb(l.d[t4.p]);
109145 }
109146 }
109147 if (c2.n) {
109148 Sdd(c2, "Chosen node placement: " + l);
109149 Sdd(c2, "Blocks: " + DMc(l));
109150 Sdd(c2, "Classes: " + EMc(l, c2));
109151 Sdd(c2, "Marked edges: " + a.b);
109152 }
109153 for (g = new olb(q); g.a < g.c.c.length; ) {
109154 f2 = BD(mlb(g), 180);
109155 f2.g = null;
109156 f2.b = null;
109157 f2.a = null;
109158 f2.d = null;
109159 f2.j = null;
109160 f2.i = null;
109161 f2.p = null;
109162 }
109163 IMc(a.c);
109164 a.b.a.$b();
109165 Qdd(c2);
109166 }
109167 function V1b(a, b, c2) {
109168 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F;
109169 g = new Psb();
109170 v = BD(vNb(c2, (Nyc(), Lwc)), 103);
109171 o2 = 0;
109172 ye(g, (!b.a && (b.a = new cUd(E2, b, 10, 11)), b.a));
109173 while (g.b != 0) {
109174 j = BD(g.b == 0 ? null : (sCb(g.b != 0), Nsb(g, g.a.a)), 33);
109175 (PD(hkd(b, ywc)) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) && !Ccb(DD(hkd(j, xwc))) && jkd(j, (wtc(), Zsc), meb(o2++));
109176 q = !Ccb(DD(hkd(j, Jxc)));
109177 if (q) {
109178 l = (!j.a && (j.a = new cUd(E2, j, 10, 11)), j.a).i != 0;
109179 n = S1b(j);
109180 m = PD(hkd(j, axc)) === PD((hbd(), ebd));
109181 F = !ikd(j, (Y9c(), o8c)) || dfb(GD(hkd(j, o8c)), sne);
109182 t4 = null;
109183 if (F && m && (l || n)) {
109184 t4 = P1b(j);
109185 yNb(t4, Lwc, v);
109186 wNb(t4, hyc) && Wyc(new ezc(Edb(ED(vNb(t4, hyc)))), t4);
109187 if (BD(hkd(j, Fxc), 174).gc() != 0) {
109188 k = t4;
109189 MAb(new YAb(null, (!j.c && (j.c = new cUd(F2, j, 9, 9)), new Kub(j.c, 16))), new k2b(k));
109190 L1b(j, t4);
109191 }
109192 }
109193 w2 = c2;
109194 A = BD(Ohb(a.a, Xod(j)), 10);
109195 !!A && (w2 = A.e);
109196 s = $1b(a, j, w2);
109197 if (t4) {
109198 s.e = t4;
109199 t4.e = s;
109200 ye(g, (!j.a && (j.a = new cUd(E2, j, 10, 11)), j.a));
109201 }
109202 }
109203 }
109204 o2 = 0;
109205 Gsb(g, b, g.c.b, g.c);
109206 while (g.b != 0) {
109207 f2 = BD(g.b == 0 ? null : (sCb(g.b != 0), Nsb(g, g.a.a)), 33);
109208 for (i3 = new Fyd((!f2.b && (f2.b = new cUd(B2, f2, 12, 3)), f2.b)); i3.e != i3.i.gc(); ) {
109209 h = BD(Dyd(i3), 79);
109210 N1b(h);
109211 (PD(hkd(b, ywc)) !== PD((tAc(), rAc)) || PD(hkd(b, Jwc)) === PD((mqc(), lqc)) || PD(hkd(b, Jwc)) === PD((mqc(), jqc)) || Ccb(DD(hkd(b, Awc))) || PD(hkd(b, twc)) !== PD((RXb(), QXb))) && jkd(h, (wtc(), Zsc), meb(o2++));
109212 C = atd(BD(qud((!h.b && (h.b = new y5d(z2, h, 4, 7)), h.b), 0), 82));
109213 D3 = atd(BD(qud((!h.c && (h.c = new y5d(z2, h, 5, 8)), h.c), 0), 82));
109214 if (Ccb(DD(hkd(h, Jxc))) || Ccb(DD(hkd(C, Jxc))) || Ccb(DD(hkd(D3, Jxc)))) {
109215 continue;
109216 }
109217 p = Qld(h) && Ccb(DD(hkd(C, fxc))) && Ccb(DD(hkd(h, gxc)));
109218 u2 = f2;
109219 p || ntd(D3, C) ? u2 = C : ntd(C, D3) && (u2 = D3);
109220 w2 = c2;
109221 A = BD(Ohb(a.a, u2), 10);
109222 !!A && (w2 = A.e);
109223 r = X1b(a, h, u2, w2);
109224 yNb(r, (wtc(), xsc), R1b(a, h, b, c2));
109225 }
109226 m = PD(hkd(f2, axc)) === PD((hbd(), ebd));
109227 if (m) {
109228 for (e = new Fyd((!f2.a && (f2.a = new cUd(E2, f2, 10, 11)), f2.a)); e.e != e.i.gc(); ) {
109229 d = BD(Dyd(e), 33);
109230 F = !ikd(d, (Y9c(), o8c)) || dfb(GD(hkd(d, o8c)), sne);
109231 B = PD(hkd(d, axc)) === PD(ebd);
109232 F && B && (Gsb(g, d, g.c.b, g.c), true);
109233 }
109234 }
109235 }
109236 }
109237 function vA(a, b, c2, d, e, f2) {
109238 var g, h, i3, j, k, l, m, n, o2, p, q, r;
109239 switch (b) {
109240 case 71:
109241 h = d.q.getFullYear() - nje >= -1900 ? 1 : 0;
109242 c2 >= 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [pje, qje])[h]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["BC", "AD"])[h]);
109243 break;
109244 case 121:
109245 kA(a, c2, d);
109246 break;
109247 case 77:
109248 jA(a, c2, d);
109249 break;
109250 case 107:
109251 i3 = e.q.getHours();
109252 i3 == 0 ? EA(a, 24, c2) : EA(a, i3, c2);
109253 break;
109254 case 83:
109255 iA(a, c2, e);
109256 break;
109257 case 69:
109258 k = d.q.getDay();
109259 c2 == 5 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["S", "M", "T", "W", "T", "F", "S"])[k]) : c2 == 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje])[k]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[k]);
109260 break;
109261 case 97:
109262 e.q.getHours() >= 12 && e.q.getHours() < 24 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["AM", "PM"])[1]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["AM", "PM"])[0]);
109263 break;
109264 case 104:
109265 l = e.q.getHours() % 12;
109266 l == 0 ? EA(a, 12, c2) : EA(a, l, c2);
109267 break;
109268 case 75:
109269 m = e.q.getHours() % 12;
109270 EA(a, m, c2);
109271 break;
109272 case 72:
109273 n = e.q.getHours();
109274 EA(a, n, c2);
109275 break;
109276 case 99:
109277 o2 = d.q.getDay();
109278 c2 == 5 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["S", "M", "T", "W", "T", "F", "S"])[o2]) : c2 == 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [rje, sje, tje, uje, vje, wje, xje])[o2]) : c2 == 3 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"])[o2]) : EA(a, o2, 1);
109279 break;
109280 case 76:
109281 p = d.q.getMonth();
109282 c2 == 5 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"])[p]) : c2 == 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, [bje, cje, dje, eje, fje, gje, hje, ije, jje, kje, lje, mje])[p]) : c2 == 3 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Jan", "Feb", "Mar", "Apr", fje, "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])[p]) : EA(a, p + 1, c2);
109283 break;
109284 case 81:
109285 q = d.q.getMonth() / 3 | 0;
109286 c2 < 4 ? Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["Q1", "Q2", "Q3", "Q4"])[q]) : Qfb(a, OC(GC(ZI, 1), nie, 2, 6, ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"])[q]);
109287 break;
109288 case 100:
109289 r = d.q.getDate();
109290 EA(a, r, c2);
109291 break;
109292 case 109:
109293 j = e.q.getMinutes();
109294 EA(a, j, c2);
109295 break;
109296 case 115:
109297 g = e.q.getSeconds();
109298 EA(a, g, c2);
109299 break;
109300 case 122:
109301 c2 < 4 ? Qfb(a, f2.c[0]) : Qfb(a, f2.c[1]);
109302 break;
109303 case 118:
109304 Qfb(a, f2.b);
109305 break;
109306 case 90:
109307 c2 < 3 ? Qfb(a, OA(f2)) : c2 == 3 ? Qfb(a, NA(f2)) : Qfb(a, QA(f2.a));
109308 break;
109309 default:
109310 return false;
109311 }
109312 return true;
109313 }
109314 function X1b(a, b, c2, d) {
109315 var e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2;
109316 N1b(b);
109317 i3 = BD(qud((!b.b && (b.b = new y5d(z2, b, 4, 7)), b.b), 0), 82);
109318 k = BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82);
109319 h = atd(i3);
109320 j = atd(k);
109321 g = (!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a).i == 0 ? null : BD(qud((!b.a && (b.a = new cUd(A2, b, 6, 6)), b.a), 0), 202);
109322 A = BD(Ohb(a.a, h), 10);
109323 F = BD(Ohb(a.a, j), 10);
109324 B = null;
109325 G = null;
109326 if (JD(i3, 186)) {
109327 w2 = BD(Ohb(a.a, i3), 299);
109328 if (JD(w2, 11)) {
109329 B = BD(w2, 11);
109330 } else if (JD(w2, 10)) {
109331 A = BD(w2, 10);
109332 B = BD(Ikb(A.j, 0), 11);
109333 }
109334 }
109335 if (JD(k, 186)) {
109336 D3 = BD(Ohb(a.a, k), 299);
109337 if (JD(D3, 11)) {
109338 G = BD(D3, 11);
109339 } else if (JD(D3, 10)) {
109340 F = BD(D3, 10);
109341 G = BD(Ikb(F.j, 0), 11);
109342 }
109343 }
109344 if (!A || !F) {
109345 throw vbb(new z2c("The source or the target of edge " + b + " could not be found. This usually happens when an edge connects a node laid out by ELK Layered to a node in another level of hierarchy laid out by either another instance of ELK Layered or another layout algorithm alltogether. The former can be solved by setting the hierarchyHandling option to INCLUDE_CHILDREN."));
109346 }
109347 p = new UZb();
109348 tNb(p, b);
109349 yNb(p, (wtc(), $sc), b);
109350 yNb(p, (Nyc(), jxc), null);
109351 n = BD(vNb(d, Ksc), 21);
109352 A == F && n.Fc((Orc(), Nrc));
109353 if (!B) {
109354 v = (KAc(), IAc);
109355 C = null;
109356 if (!!g && fcd(BD(vNb(A, Vxc), 98))) {
109357 C = new f7c(g.j, g.k);
109358 Bfd(C, Mld(b));
109359 Cfd(C, c2);
109360 if (ntd(j, h)) {
109361 v = HAc;
109362 P6c(C, A.n);
109363 }
109364 }
109365 B = $$b(A, C, v, d);
109366 }
109367 if (!G) {
109368 v = (KAc(), HAc);
109369 H2 = null;
109370 if (!!g && fcd(BD(vNb(F, Vxc), 98))) {
109371 H2 = new f7c(g.b, g.c);
109372 Bfd(H2, Mld(b));
109373 Cfd(H2, c2);
109374 }
109375 G = $$b(F, H2, v, Q_b(F));
109376 }
109377 QZb(p, B);
109378 RZb(p, G);
109379 (B.e.c.length > 1 || B.g.c.length > 1 || G.e.c.length > 1 || G.g.c.length > 1) && n.Fc((Orc(), Irc));
109380 for (m = new Fyd((!b.n && (b.n = new cUd(D2, b, 1, 7)), b.n)); m.e != m.i.gc(); ) {
109381 l = BD(Dyd(m), 137);
109382 if (!Ccb(DD(hkd(l, Jxc))) && !!l.a) {
109383 q = Z1b(l);
109384 Ekb(p.b, q);
109385 switch (BD(vNb(q, Qwc), 272).g) {
109386 case 1:
109387 case 2:
109388 n.Fc((Orc(), Grc));
109389 break;
109390 case 0:
109391 n.Fc((Orc(), Erc));
109392 yNb(q, Qwc, (qad(), nad));
109393 }
109394 }
109395 }
109396 f2 = BD(vNb(d, Iwc), 314);
109397 r = BD(vNb(d, Exc), 315);
109398 e = f2 == (Rpc(), Opc) || r == (Vzc(), Rzc);
109399 if (!!g && (!g.a && (g.a = new xMd(y2, g, 5)), g.a).i != 0 && e) {
109400 s = ofd(g);
109401 o2 = new s7c();
109402 for (u2 = Jsb(s, 0); u2.b != u2.d.c; ) {
109403 t4 = BD(Xsb(u2), 8);
109404 Dsb(o2, new g7c(t4));
109405 }
109406 yNb(p, _sc, o2);
109407 }
109408 return p;
109409 }
109410 function yZd(a) {
109411 if (a.gb)
109412 return;
109413 a.gb = true;
109414 a.b = Lnd(a, 0);
109415 Knd(a.b, 18);
109416 Qnd(a.b, 19);
109417 a.a = Lnd(a, 1);
109418 Knd(a.a, 1);
109419 Qnd(a.a, 2);
109420 Qnd(a.a, 3);
109421 Qnd(a.a, 4);
109422 Qnd(a.a, 5);
109423 a.o = Lnd(a, 2);
109424 Knd(a.o, 8);
109425 Knd(a.o, 9);
109426 Qnd(a.o, 10);
109427 Qnd(a.o, 11);
109428 Qnd(a.o, 12);
109429 Qnd(a.o, 13);
109430 Qnd(a.o, 14);
109431 Qnd(a.o, 15);
109432 Qnd(a.o, 16);
109433 Qnd(a.o, 17);
109434 Qnd(a.o, 18);
109435 Qnd(a.o, 19);
109436 Qnd(a.o, 20);
109437 Qnd(a.o, 21);
109438 Qnd(a.o, 22);
109439 Qnd(a.o, 23);
109440 Pnd(a.o);
109441 Pnd(a.o);
109442 Pnd(a.o);
109443 Pnd(a.o);
109444 Pnd(a.o);
109445 Pnd(a.o);
109446 Pnd(a.o);
109447 Pnd(a.o);
109448 Pnd(a.o);
109449 Pnd(a.o);
109450 a.p = Lnd(a, 3);
109451 Knd(a.p, 2);
109452 Knd(a.p, 3);
109453 Knd(a.p, 4);
109454 Knd(a.p, 5);
109455 Qnd(a.p, 6);
109456 Qnd(a.p, 7);
109457 Pnd(a.p);
109458 Pnd(a.p);
109459 a.q = Lnd(a, 4);
109460 Knd(a.q, 8);
109461 a.v = Lnd(a, 5);
109462 Qnd(a.v, 9);
109463 Pnd(a.v);
109464 Pnd(a.v);
109465 Pnd(a.v);
109466 a.w = Lnd(a, 6);
109467 Knd(a.w, 2);
109468 Knd(a.w, 3);
109469 Knd(a.w, 4);
109470 Qnd(a.w, 5);
109471 a.B = Lnd(a, 7);
109472 Qnd(a.B, 1);
109473 Pnd(a.B);
109474 Pnd(a.B);
109475 Pnd(a.B);
109476 a.Q = Lnd(a, 8);
109477 Qnd(a.Q, 0);
109478 Pnd(a.Q);
109479 a.R = Lnd(a, 9);
109480 Knd(a.R, 1);
109481 a.S = Lnd(a, 10);
109482 Pnd(a.S);
109483 Pnd(a.S);
109484 Pnd(a.S);
109485 Pnd(a.S);
109486 Pnd(a.S);
109487 Pnd(a.S);
109488 Pnd(a.S);
109489 Pnd(a.S);
109490 Pnd(a.S);
109491 Pnd(a.S);
109492 Pnd(a.S);
109493 Pnd(a.S);
109494 Pnd(a.S);
109495 Pnd(a.S);
109496 Pnd(a.S);
109497 a.T = Lnd(a, 11);
109498 Qnd(a.T, 10);
109499 Qnd(a.T, 11);
109500 Qnd(a.T, 12);
109501 Qnd(a.T, 13);
109502 Qnd(a.T, 14);
109503 Pnd(a.T);
109504 Pnd(a.T);
109505 a.U = Lnd(a, 12);
109506 Knd(a.U, 2);
109507 Knd(a.U, 3);
109508 Qnd(a.U, 4);
109509 Qnd(a.U, 5);
109510 Qnd(a.U, 6);
109511 Qnd(a.U, 7);
109512 Pnd(a.U);
109513 a.V = Lnd(a, 13);
109514 Qnd(a.V, 10);
109515 a.W = Lnd(a, 14);
109516 Knd(a.W, 18);
109517 Knd(a.W, 19);
109518 Knd(a.W, 20);
109519 Qnd(a.W, 21);
109520 Qnd(a.W, 22);
109521 Qnd(a.W, 23);
109522 a.bb = Lnd(a, 15);
109523 Knd(a.bb, 10);
109524 Knd(a.bb, 11);
109525 Knd(a.bb, 12);
109526 Knd(a.bb, 13);
109527 Knd(a.bb, 14);
109528 Knd(a.bb, 15);
109529 Knd(a.bb, 16);
109530 Qnd(a.bb, 17);
109531 Pnd(a.bb);
109532 Pnd(a.bb);
109533 a.eb = Lnd(a, 16);
109534 Knd(a.eb, 2);
109535 Knd(a.eb, 3);
109536 Knd(a.eb, 4);
109537 Knd(a.eb, 5);
109538 Knd(a.eb, 6);
109539 Knd(a.eb, 7);
109540 Qnd(a.eb, 8);
109541 Qnd(a.eb, 9);
109542 a.ab = Lnd(a, 17);
109543 Knd(a.ab, 0);
109544 Knd(a.ab, 1);
109545 a.H = Lnd(a, 18);
109546 Qnd(a.H, 0);
109547 Qnd(a.H, 1);
109548 Qnd(a.H, 2);
109549 Qnd(a.H, 3);
109550 Qnd(a.H, 4);
109551 Qnd(a.H, 5);
109552 Pnd(a.H);
109553 a.db = Lnd(a, 19);
109554 Qnd(a.db, 2);
109555 a.c = Mnd(a, 20);
109556 a.d = Mnd(a, 21);
109557 a.e = Mnd(a, 22);
109558 a.f = Mnd(a, 23);
109559 a.i = Mnd(a, 24);
109560 a.g = Mnd(a, 25);
109561 a.j = Mnd(a, 26);
109562 a.k = Mnd(a, 27);
109563 a.n = Mnd(a, 28);
109564 a.r = Mnd(a, 29);
109565 a.s = Mnd(a, 30);
109566 a.t = Mnd(a, 31);
109567 a.u = Mnd(a, 32);
109568 a.fb = Mnd(a, 33);
109569 a.A = Mnd(a, 34);
109570 a.C = Mnd(a, 35);
109571 a.D = Mnd(a, 36);
109572 a.F = Mnd(a, 37);
109573 a.G = Mnd(a, 38);
109574 a.I = Mnd(a, 39);
109575 a.J = Mnd(a, 40);
109576 a.L = Mnd(a, 41);
109577 a.M = Mnd(a, 42);
109578 a.N = Mnd(a, 43);
109579 a.O = Mnd(a, 44);
109580 a.P = Mnd(a, 45);
109581 a.X = Mnd(a, 46);
109582 a.Y = Mnd(a, 47);
109583 a.Z = Mnd(a, 48);
109584 a.$ = Mnd(a, 49);
109585 a._ = Mnd(a, 50);
109586 a.cb = Mnd(a, 51);
109587 a.K = Mnd(a, 52);
109588 }
109589 function Y9c() {
109590 Y9c = ccb;
109591 var a, b;
109592 o8c = new Lsd(sse);
109593 F9c = new Lsd(tse);
109594 q8c = (F7c(), z7c);
109595 p8c = new Nsd($pe, q8c);
109596 r8c = new Nsd(_le, null);
109597 s8c = new Lsd(use);
109598 x8c = (i8c(), qqb(h8c, OC(GC(r1, 1), Kie, 291, 0, [d8c])));
109599 w8c = new Nsd(lqe, x8c);
109600 y8c = new Nsd(Zpe, (Bcb(), false));
109601 A8c = (ead(), cad);
109602 z8c = new Nsd(cqe, A8c);
109603 F8c = (Aad(), zad);
109604 E8c = new Nsd(ype, F8c);
109605 I8c = new Nsd(Jre, false);
109606 K8c = (hbd(), fbd);
109607 J8c = new Nsd(tpe, K8c);
109608 g9c = new q0b(12);
109609 f9c = new Nsd(ame, g9c);
109610 O8c = new Nsd(Ame, false);
109611 P8c = new Nsd(xqe, false);
109612 e9c = new Nsd(Dme, false);
109613 u9c = (dcd(), ccd);
109614 t9c = new Nsd(Bme, u9c);
109615 C9c = new Lsd(uqe);
109616 D9c = new Lsd(vme);
109617 E9c = new Lsd(yme);
109618 H9c = new Lsd(zme);
109619 R8c = new s7c();
109620 Q8c = new Nsd(mqe, R8c);
109621 v8c = new Nsd(pqe, false);
109622 L8c = new Nsd(qqe, false);
109623 T8c = new H_b();
109624 S8c = new Nsd(vqe, T8c);
109625 d9c = new Nsd(Xpe, false);
109626 G9c = new Nsd(wse, 1);
109627 new Nsd(xse, true);
109628 meb(0);
109629 new Nsd(yse, meb(100));
109630 new Nsd(zse, false);
109631 meb(0);
109632 new Nsd(Ase, meb(4e3));
109633 meb(0);
109634 new Nsd(Bse, meb(400));
109635 new Nsd(Cse, false);
109636 new Nsd(Dse, false);
109637 new Nsd(Ese, true);
109638 new Nsd(Fse, false);
109639 u8c = (Ded(), Ced);
109640 t8c = new Nsd(rse, u8c);
109641 I9c = new Nsd(Lpe, 10);
109642 J9c = new Nsd(Mpe, 10);
109643 K9c = new Nsd(Zle, 20);
109644 L9c = new Nsd(Npe, 10);
109645 M9c = new Nsd(xme, 2);
109646 N9c = new Nsd(Ope, 10);
109647 P9c = new Nsd(Ppe, 0);
109648 Q9c = new Nsd(Spe, 5);
109649 R9c = new Nsd(Qpe, 1);
109650 S9c = new Nsd(Rpe, 1);
109651 T9c = new Nsd(wme, 20);
109652 U9c = new Nsd(Tpe, 10);
109653 X9c = new Nsd(Upe, 10);
109654 O9c = new Lsd(Vpe);
109655 W9c = new I_b();
109656 V9c = new Nsd(wqe, W9c);
109657 j9c = new Lsd(tqe);
109658 i9c = false;
109659 h9c = new Nsd(sqe, i9c);
109660 V8c = new q0b(5);
109661 U8c = new Nsd(dqe, V8c);
109662 X8c = (Hbd(), b = BD(gdb(B1), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0));
109663 W8c = new Nsd(Gme, X8c);
109664 m9c = (Tbd(), Qbd);
109665 l9c = new Nsd(gqe, m9c);
109666 o9c = new Lsd(hqe);
109667 p9c = new Lsd(iqe);
109668 q9c = new Lsd(jqe);
109669 n9c = new Lsd(kqe);
109670 Z8c = (a = BD(gdb(I1), 9), new xqb(a, BD(_Bb(a, a.length), 9), 0));
109671 Y8c = new Nsd(Fme, Z8c);
109672 c9c = pqb((Idd(), Bdd));
109673 b9c = new Nsd(Eme, c9c);
109674 a9c = new f7c(0, 0);
109675 _8c = new Nsd(Tme, a9c);
109676 $8c = new Nsd(bqe, false);
109677 D8c = (qad(), nad);
109678 C8c = new Nsd(nqe, D8c);
109679 B8c = new Nsd(Cme, false);
109680 meb(1);
109681 new Nsd(Hse, null);
109682 r9c = new Lsd(rqe);
109683 v9c = new Lsd(oqe);
109684 B9c = (Ucd(), Scd);
109685 A9c = new Nsd(Ype, B9c);
109686 s9c = new Lsd(Wpe);
109687 y9c = (rcd(), pqb(pcd));
109688 x9c = new Nsd(Hme, y9c);
109689 w9c = new Nsd(eqe, false);
109690 z9c = new Nsd(fqe, true);
109691 M8c = new Nsd(_pe, false);
109692 N8c = new Nsd(aqe, false);
109693 G8c = new Nsd($le, 1);
109694 H8c = (Mad(), Kad);
109695 new Nsd(Ise, H8c);
109696 k9c = true;
109697 }
109698 function wtc() {
109699 wtc = ccb;
109700 var a, b;
109701 $sc = new Lsd(Ime);
109702 xsc = new Lsd("coordinateOrigin");
109703 itc = new Lsd("processors");
109704 wsc = new Msd("compoundNode", (Bcb(), false));
109705 Nsc = new Msd("insideConnections", false);
109706 _sc = new Lsd("originalBendpoints");
109707 atc = new Lsd("originalDummyNodePosition");
109708 btc = new Lsd("originalLabelEdge");
109709 ktc = new Lsd("representedLabels");
109710 Csc = new Lsd("endLabels");
109711 Dsc = new Lsd("endLabel.origin");
109712 Ssc = new Msd("labelSide", (rbd(), qbd));
109713 Ysc = new Msd("maxEdgeThickness", 0);
109714 ltc = new Msd("reversed", false);
109715 jtc = new Lsd(Jme);
109716 Vsc = new Msd("longEdgeSource", null);
109717 Wsc = new Msd("longEdgeTarget", null);
109718 Usc = new Msd("longEdgeHasLabelDummies", false);
109719 Tsc = new Msd("longEdgeBeforeLabelDummy", false);
109720 Bsc = new Msd("edgeConstraint", (Gqc(), Eqc));
109721 Psc = new Lsd("inLayerLayoutUnit");
109722 Osc = new Msd("inLayerConstraint", (esc(), csc));
109723 Qsc = new Msd("inLayerSuccessorConstraint", new Rkb());
109724 Rsc = new Msd("inLayerSuccessorConstraintBetweenNonDummies", false);
109725 gtc = new Lsd("portDummy");
109726 ysc = new Msd("crossingHint", meb(0));
109727 Ksc = new Msd("graphProperties", (b = BD(gdb(PW), 9), new xqb(b, BD(_Bb(b, b.length), 9), 0)));
109728 Hsc = new Msd("externalPortSide", (Ucd(), Scd));
109729 Isc = new Msd("externalPortSize", new d7c());
109730 Fsc = new Lsd("externalPortReplacedDummies");
109731 Gsc = new Lsd("externalPortReplacedDummy");
109732 Esc = new Msd("externalPortConnections", (a = BD(gdb(F1), 9), new xqb(a, BD(_Bb(a, a.length), 9), 0)));
109733 htc = new Msd(tle, 0);
109734 ssc = new Lsd("barycenterAssociates");
109735 vtc = new Lsd("TopSideComments");
109736 tsc = new Lsd("BottomSideComments");
109737 vsc = new Lsd("CommentConnectionPort");
109738 Msc = new Msd("inputCollect", false);
109739 etc = new Msd("outputCollect", false);
109740 Asc = new Msd("cyclic", false);
109741 zsc = new Lsd("crossHierarchyMap");
109742 utc = new Lsd("targetOffset");
109743 new Msd("splineLabelSize", new d7c());
109744 otc = new Lsd("spacings");
109745 ftc = new Msd("partitionConstraint", false);
109746 usc = new Lsd("breakingPoint.info");
109747 stc = new Lsd("splines.survivingEdge");
109748 rtc = new Lsd("splines.route.start");
109749 ptc = new Lsd("splines.edgeChain");
109750 dtc = new Lsd("originalPortConstraints");
109751 ntc = new Lsd("selfLoopHolder");
109752 qtc = new Lsd("splines.nsPortY");
109753 Zsc = new Lsd("modelOrder");
109754 Xsc = new Lsd("longEdgeTargetNode");
109755 Jsc = new Msd(Xne, false);
109756 mtc = new Msd(Xne, false);
109757 Lsc = new Lsd("layerConstraints.hiddenNodes");
109758 ctc = new Lsd("layerConstraints.opposidePort");
109759 ttc = new Lsd("targetNode.modelOrder");
109760 }
109761 function jwc() {
109762 jwc = ccb;
109763 puc = (xqc(), vqc);
109764 ouc = new Nsd(Yne, puc);
109765 Guc = new Nsd(Zne, (Bcb(), false));
109766 Muc = (msc(), ksc);
109767 Luc = new Nsd($ne, Muc);
109768 cvc = new Nsd(_ne, false);
109769 dvc = new Nsd(aoe, true);
109770 Itc = new Nsd(boe, false);
109771 xvc = (BAc(), zAc);
109772 wvc = new Nsd(coe, xvc);
109773 meb(1);
109774 Fvc = new Nsd(doe, meb(7));
109775 Gvc = new Nsd(eoe, false);
109776 Huc = new Nsd(foe, false);
109777 nuc = (mqc(), iqc);
109778 muc = new Nsd(goe, nuc);
109779 bvc = (lzc(), jzc);
109780 avc = new Nsd(hoe, bvc);
109781 Tuc = (Ctc(), Btc);
109782 Suc = new Nsd(ioe, Tuc);
109783 meb(-1);
109784 Ruc = new Nsd(joe, meb(-1));
109785 meb(-1);
109786 Uuc = new Nsd(koe, meb(-1));
109787 meb(-1);
109788 Vuc = new Nsd(loe, meb(4));
109789 meb(-1);
109790 Xuc = new Nsd(moe, meb(2));
109791 _uc = (kAc(), iAc);
109792 $uc = new Nsd(noe, _uc);
109793 meb(0);
109794 Zuc = new Nsd(ooe, meb(0));
109795 Puc = new Nsd(poe, meb(Ohe));
109796 luc = (Rpc(), Ppc);
109797 kuc = new Nsd(qoe, luc);
109798 Xtc = new Nsd(roe, false);
109799 euc = new Nsd(soe, 0.1);
109800 iuc = new Nsd(toe, false);
109801 meb(-1);
109802 guc = new Nsd(uoe, meb(-1));
109803 meb(-1);
109804 huc = new Nsd(voe, meb(-1));
109805 meb(0);
109806 Ytc = new Nsd(woe, meb(40));
109807 cuc = (Xrc(), Wrc);
109808 buc = new Nsd(xoe, cuc);
109809 $tc = Urc;
109810 Ztc = new Nsd(yoe, $tc);
109811 vvc = (Vzc(), Qzc);
109812 uvc = new Nsd(zoe, vvc);
109813 kvc = new Lsd(Aoe);
109814 fvc = (_qc(), Zqc);
109815 evc = new Nsd(Boe, fvc);
109816 ivc = (lrc(), irc);
109817 hvc = new Nsd(Coe, ivc);
109818 nvc = new Nsd(Doe, 0.3);
109819 pvc = new Lsd(Eoe);
109820 rvc = (Izc(), Gzc);
109821 qvc = new Nsd(Foe, rvc);
109822 xuc = (TAc(), RAc);
109823 wuc = new Nsd(Goe, xuc);
109824 zuc = (_Ac(), $Ac);
109825 yuc = new Nsd(Hoe, zuc);
109826 Buc = (tBc(), sBc);
109827 Auc = new Nsd(Ioe, Buc);
109828 Duc = new Nsd(Joe, 0.2);
109829 uuc = new Nsd(Koe, 2);
109830 Bvc = new Nsd(Loe, null);
109831 Dvc = new Nsd(Moe, 10);
109832 Cvc = new Nsd(Noe, 10);
109833 Evc = new Nsd(Ooe, 20);
109834 meb(0);
109835 yvc = new Nsd(Poe, meb(0));
109836 meb(0);
109837 zvc = new Nsd(Qoe, meb(0));
109838 meb(0);
109839 Avc = new Nsd(Roe, meb(0));
109840 Jtc = new Nsd(Soe, false);
109841 Ntc = (yrc(), wrc);
109842 Mtc = new Nsd(Toe, Ntc);
109843 Ltc = (Ipc(), Hpc);
109844 Ktc = new Nsd(Uoe, Ltc);
109845 Juc = new Nsd(Voe, false);
109846 meb(0);
109847 Iuc = new Nsd(Woe, meb(16));
109848 meb(0);
109849 Kuc = new Nsd(Xoe, meb(5));
109850 bwc = (LBc(), JBc);
109851 awc = new Nsd(Yoe, bwc);
109852 Hvc = new Nsd(Zoe, 10);
109853 Kvc = new Nsd($oe, 1);
109854 Tvc = (bqc(), aqc);
109855 Svc = new Nsd(_oe, Tvc);
109856 Nvc = new Lsd(ape);
109857 Qvc = meb(1);
109858 meb(0);
109859 Pvc = new Nsd(bpe, Qvc);
109860 gwc = (CBc(), zBc);
109861 fwc = new Nsd(cpe, gwc);
109862 cwc = new Lsd(dpe);
109863 Yvc = new Nsd(epe, true);
109864 Wvc = new Nsd(fpe, 2);
109865 $vc = new Nsd(gpe, true);
109866 tuc = (Sqc(), Qqc);
109867 suc = new Nsd(hpe, tuc);
109868 ruc = (Apc(), wpc);
109869 quc = new Nsd(ipe, ruc);
109870 Wtc = (tAc(), rAc);
109871 Vtc = new Nsd(jpe, Wtc);
109872 Utc = new Nsd(kpe, false);
109873 Ptc = (RXb(), QXb);
109874 Otc = new Nsd(lpe, Ptc);
109875 Ttc = (xzc(), uzc);
109876 Stc = new Nsd(mpe, Ttc);
109877 Qtc = new Nsd(npe, 0);
109878 Rtc = new Nsd(ope, 0);
109879 Ouc = kqc;
109880 Nuc = Opc;
109881 Wuc = izc;
109882 Yuc = izc;
109883 Quc = fzc;
109884 fuc = (hbd(), ebd);
109885 juc = Ppc;
109886 duc = Ppc;
109887 _tc = Ppc;
109888 auc = ebd;
109889 lvc = Tzc;
109890 mvc = Qzc;
109891 gvc = Qzc;
109892 jvc = Qzc;
109893 ovc = Szc;
109894 tvc = Tzc;
109895 svc = Tzc;
109896 Cuc = (Aad(), yad);
109897 Euc = yad;
109898 Fuc = sBc;
109899 vuc = xad;
109900 Ivc = KBc;
109901 Jvc = IBc;
109902 Lvc = KBc;
109903 Mvc = IBc;
109904 Uvc = KBc;
109905 Vvc = IBc;
109906 Ovc = _pc;
109907 Rvc = aqc;
109908 hwc = KBc;
109909 iwc = IBc;
109910 dwc = KBc;
109911 ewc = IBc;
109912 Zvc = IBc;
109913 Xvc = IBc;
109914 _vc = IBc;
109915 }
109916 function S8b() {
109917 S8b = ccb;
109918 Y7b = new T8b("DIRECTION_PREPROCESSOR", 0);
109919 V7b = new T8b("COMMENT_PREPROCESSOR", 1);
109920 Z7b = new T8b("EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER", 2);
109921 n8b = new T8b("INTERACTIVE_EXTERNAL_PORT_POSITIONER", 3);
109922 G8b = new T8b("PARTITION_PREPROCESSOR", 4);
109923 r8b = new T8b("LABEL_DUMMY_INSERTER", 5);
109924 M8b = new T8b("SELF_LOOP_PREPROCESSOR", 6);
109925 w8b = new T8b("LAYER_CONSTRAINT_PREPROCESSOR", 7);
109926 E8b = new T8b("PARTITION_MIDPROCESSOR", 8);
109927 i8b = new T8b("HIGH_DEGREE_NODE_LAYER_PROCESSOR", 9);
109928 A8b = new T8b("NODE_PROMOTION", 10);
109929 v8b = new T8b("LAYER_CONSTRAINT_POSTPROCESSOR", 11);
109930 F8b = new T8b("PARTITION_POSTPROCESSOR", 12);
109931 e8b = new T8b("HIERARCHICAL_PORT_CONSTRAINT_PROCESSOR", 13);
109932 O8b = new T8b("SEMI_INTERACTIVE_CROSSMIN_PROCESSOR", 14);
109933 P7b = new T8b("BREAKING_POINT_INSERTER", 15);
109934 z8b = new T8b("LONG_EDGE_SPLITTER", 16);
109935 I8b = new T8b("PORT_SIDE_PROCESSOR", 17);
109936 o8b = new T8b("INVERTED_PORT_PROCESSOR", 18);
109937 H8b = new T8b("PORT_LIST_SORTER", 19);
109938 Q8b = new T8b("SORT_BY_INPUT_ORDER_OF_MODEL", 20);
109939 C8b = new T8b("NORTH_SOUTH_PORT_PREPROCESSOR", 21);
109940 Q7b = new T8b("BREAKING_POINT_PROCESSOR", 22);
109941 D8b = new T8b(Bne, 23);
109942 R8b = new T8b(Cne, 24);
109943 K8b = new T8b("SELF_LOOP_PORT_RESTORER", 25);
109944 P8b = new T8b("SINGLE_EDGE_GRAPH_WRAPPER", 26);
109945 p8b = new T8b("IN_LAYER_CONSTRAINT_PROCESSOR", 27);
109946 b8b = new T8b("END_NODE_PORT_LABEL_MANAGEMENT_PROCESSOR", 28);
109947 q8b = new T8b("LABEL_AND_NODE_SIZE_PROCESSOR", 29);
109948 m8b = new T8b("INNERMOST_NODE_MARGIN_CALCULATOR", 30);
109949 N8b = new T8b("SELF_LOOP_ROUTER", 31);
109950 T7b = new T8b("COMMENT_NODE_MARGIN_CALCULATOR", 32);
109951 _7b = new T8b("END_LABEL_PREPROCESSOR", 33);
109952 t8b = new T8b("LABEL_DUMMY_SWITCHER", 34);
109953 S7b = new T8b("CENTER_LABEL_MANAGEMENT_PROCESSOR", 35);
109954 u8b = new T8b("LABEL_SIDE_SELECTOR", 36);
109955 k8b = new T8b("HYPEREDGE_DUMMY_MERGER", 37);
109956 f8b = new T8b("HIERARCHICAL_PORT_DUMMY_SIZE_PROCESSOR", 38);
109957 x8b = new T8b("LAYER_SIZE_AND_GRAPH_HEIGHT_CALCULATOR", 39);
109958 h8b = new T8b("HIERARCHICAL_PORT_POSITION_PROCESSOR", 40);
109959 W7b = new T8b("CONSTRAINTS_POSTPROCESSOR", 41);
109960 U7b = new T8b("COMMENT_POSTPROCESSOR", 42);
109961 l8b = new T8b("HYPERNODE_PROCESSOR", 43);
109962 g8b = new T8b("HIERARCHICAL_PORT_ORTHOGONAL_EDGE_ROUTER", 44);
109963 y8b = new T8b("LONG_EDGE_JOINER", 45);
109964 L8b = new T8b("SELF_LOOP_POSTPROCESSOR", 46);
109965 R7b = new T8b("BREAKING_POINT_REMOVER", 47);
109966 B8b = new T8b("NORTH_SOUTH_PORT_POSTPROCESSOR", 48);
109967 j8b = new T8b("HORIZONTAL_COMPACTOR", 49);
109968 s8b = new T8b("LABEL_DUMMY_REMOVER", 50);
109969 c8b = new T8b("FINAL_SPLINE_BENDPOINTS_CALCULATOR", 51);
109970 a8b = new T8b("END_LABEL_SORTER", 52);
109971 J8b = new T8b("REVERSED_EDGE_RESTORER", 53);
109972 $7b = new T8b("END_LABEL_POSTPROCESSOR", 54);
109973 d8b = new T8b("HIERARCHICAL_NODE_RESIZER", 55);
109974 X7b = new T8b("DIRECTION_POSTPROCESSOR", 56);
109975 }
109976 function KIc(a, b, c2) {
109977 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F, G, H2, I, J, K2, L2, M2, N, O, P, Q2, R, S3, T, U2, V, W2, X, Y2, Z, $, ab, bb, cb, db2, eb, fb, gb, hb, ib, jb, kb, lb;
109978 cb = 0;
109979 for (H2 = b, K2 = 0, N = H2.length; K2 < N; ++K2) {
109980 F = H2[K2];
109981 for (V = new olb(F.j); V.a < V.c.c.length; ) {
109982 U2 = BD(mlb(V), 11);
109983 X = 0;
109984 for (h = new olb(U2.g); h.a < h.c.c.length; ) {
109985 g = BD(mlb(h), 17);
109986 F.c != g.d.i.c && ++X;
109987 }
109988 X > 0 && (a.a[U2.p] = cb++);
109989 }
109990 }
109991 hb = 0;
109992 for (I = c2, L2 = 0, O = I.length; L2 < O; ++L2) {
109993 F = I[L2];
109994 P = 0;
109995 for (V = new olb(F.j); V.a < V.c.c.length; ) {
109996 U2 = BD(mlb(V), 11);
109997 if (U2.j == (Ucd(), Acd)) {
109998 for (h = new olb(U2.e); h.a < h.c.c.length; ) {
109999 g = BD(mlb(h), 17);
110000 if (F.c != g.c.i.c) {
110001 ++P;
110002 break;
110003 }
110004 }
110005 } else {
110006 break;
110007 }
110008 }
110009 R = 0;
110010 Y2 = new Bib(F.j, F.j.c.length);
110011 while (Y2.b > 0) {
110012 U2 = (sCb(Y2.b > 0), BD(Y2.a.Xb(Y2.c = --Y2.b), 11));
110013 X = 0;
110014 for (h = new olb(U2.e); h.a < h.c.c.length; ) {
110015 g = BD(mlb(h), 17);
110016 F.c != g.c.i.c && ++X;
110017 }
110018 if (X > 0) {
110019 if (U2.j == (Ucd(), Acd)) {
110020 a.a[U2.p] = hb;
110021 ++hb;
110022 } else {
110023 a.a[U2.p] = hb + P + R;
110024 ++R;
110025 }
110026 }
110027 }
110028 hb += R;
110029 }
110030 W2 = new Lqb();
110031 o2 = new zsb();
110032 for (G = b, J = 0, M2 = G.length; J < M2; ++J) {
110033 F = G[J];
110034 for (fb = new olb(F.j); fb.a < fb.c.c.length; ) {
110035 eb = BD(mlb(fb), 11);
110036 for (h = new olb(eb.g); h.a < h.c.c.length; ) {
110037 g = BD(mlb(h), 17);
110038 jb = g.d;
110039 if (F.c != jb.i.c) {
110040 db2 = BD(Wd(irb(W2.f, eb)), 467);
110041 ib = BD(Wd(irb(W2.f, jb)), 467);
110042 if (!db2 && !ib) {
110043 n = new NIc();
110044 o2.a.zc(n, o2);
110045 Ekb(n.a, g);
110046 Ekb(n.d, eb);
110047 jrb(W2.f, eb, n);
110048 Ekb(n.d, jb);
110049 jrb(W2.f, jb, n);
110050 } else if (!db2) {
110051 Ekb(ib.a, g);
110052 Ekb(ib.d, eb);
110053 jrb(W2.f, eb, ib);
110054 } else if (!ib) {
110055 Ekb(db2.a, g);
110056 Ekb(db2.d, jb);
110057 jrb(W2.f, jb, db2);
110058 } else if (db2 == ib) {
110059 Ekb(db2.a, g);
110060 } else {
110061 Ekb(db2.a, g);
110062 for (T = new olb(ib.d); T.a < T.c.c.length; ) {
110063 S3 = BD(mlb(T), 11);
110064 jrb(W2.f, S3, db2);
110065 }
110066 Gkb(db2.a, ib.a);
110067 Gkb(db2.d, ib.d);
110068 o2.a.Bc(ib) != null;
110069 }
110070 }
110071 }
110072 }
110073 }
110074 p = BD(Ee(o2, KC(oY, { 3: 1, 4: 1, 5: 1, 1946: 1 }, 467, o2.a.gc(), 0, 1)), 1946);
110075 D3 = b[0].c;
110076 bb = c2[0].c;
110077 for (k = p, l = 0, m = k.length; l < m; ++l) {
110078 j = k[l];
110079 j.e = cb;
110080 j.f = hb;
110081 for (V = new olb(j.d); V.a < V.c.c.length; ) {
110082 U2 = BD(mlb(V), 11);
110083 Z = a.a[U2.p];
110084 if (U2.i.c == D3) {
110085 Z < j.e && (j.e = Z);
110086 Z > j.b && (j.b = Z);
110087 } else if (U2.i.c == bb) {
110088 Z < j.f && (j.f = Z);
110089 Z > j.c && (j.c = Z);
110090 }
110091 }
110092 }
110093 Klb(p, 0, p.length, null);
110094 gb = KC(WD, oje, 25, p.length, 15, 1);
110095 d = KC(WD, oje, 25, hb + 1, 15, 1);
110096 for (r = 0; r < p.length; r++) {
110097 gb[r] = p[r].f;
110098 d[gb[r]] = 1;
110099 }
110100 f2 = 0;
110101 for (s = 0; s < d.length; s++) {
110102 d[s] == 1 ? d[s] = f2 : --f2;
110103 }
110104 $ = 0;
110105 for (t4 = 0; t4 < gb.length; t4++) {
110106 gb[t4] += d[gb[t4]];
110107 $ = $wnd.Math.max($, gb[t4] + 1);
110108 }
110109 i3 = 1;
110110 while (i3 < $) {
110111 i3 *= 2;
110112 }
110113 lb = 2 * i3 - 1;
110114 i3 -= 1;
110115 kb = KC(WD, oje, 25, lb, 15, 1);
110116 e = 0;
110117 for (B = 0; B < gb.length; B++) {
110118 A = gb[B] + i3;
110119 ++kb[A];
110120 while (A > 0) {
110121 A % 2 > 0 && (e += kb[A + 1]);
110122 A = (A - 1) / 2 | 0;
110123 ++kb[A];
110124 }
110125 }
110126 C = KC(nY, Uhe, 362, p.length * 2, 0, 1);
110127 for (u2 = 0; u2 < p.length; u2++) {
110128 C[2 * u2] = new QIc(p[u2], p[u2].e, p[u2].b, (UIc(), TIc));
110129 C[2 * u2 + 1] = new QIc(p[u2], p[u2].b, p[u2].e, SIc);
110130 }
110131 Klb(C, 0, C.length, null);
110132 Q2 = 0;
110133 for (v = 0; v < C.length; v++) {
110134 switch (C[v].d.g) {
110135 case 0:
110136 ++Q2;
110137 break;
110138 case 1:
110139 --Q2;
110140 e += Q2;
110141 }
110142 }
110143 ab = KC(nY, Uhe, 362, p.length * 2, 0, 1);
110144 for (w2 = 0; w2 < p.length; w2++) {
110145 ab[2 * w2] = new QIc(p[w2], p[w2].f, p[w2].c, (UIc(), TIc));
110146 ab[2 * w2 + 1] = new QIc(p[w2], p[w2].c, p[w2].f, SIc);
110147 }
110148 Klb(ab, 0, ab.length, null);
110149 Q2 = 0;
110150 for (q = 0; q < ab.length; q++) {
110151 switch (ab[q].d.g) {
110152 case 0:
110153 ++Q2;
110154 break;
110155 case 1:
110156 --Q2;
110157 e += Q2;
110158 }
110159 }
110160 return e;
110161 }
110162 function wfe() {
110163 wfe = ccb;
110164 ffe = new xfe(7);
110165 hfe = new ige(8, 94);
110166 new ige(8, 64);
110167 ife = new ige(8, 36);
110168 ofe = new ige(8, 65);
110169 pfe = new ige(8, 122);
110170 qfe = new ige(8, 90);
110171 tfe = new ige(8, 98);
110172 mfe = new ige(8, 66);
110173 rfe = new ige(8, 60);
110174 ufe = new ige(8, 62);
110175 efe = new xfe(11);
110176 cfe = new $fe(4);
110177 Ufe(cfe, 48, 57);
110178 sfe = new $fe(4);
110179 Ufe(sfe, 48, 57);
110180 Ufe(sfe, 65, 90);
110181 Ufe(sfe, 95, 95);
110182 Ufe(sfe, 97, 122);
110183 nfe = new $fe(4);
110184 Ufe(nfe, 9, 9);
110185 Ufe(nfe, 10, 10);
110186 Ufe(nfe, 12, 12);
110187 Ufe(nfe, 13, 13);
110188 Ufe(nfe, 32, 32);
110189 jfe = _fe(cfe);
110190 lfe = _fe(sfe);
110191 kfe = _fe(nfe);
110192 Zee = new Lqb();
110193 $ee = new Lqb();
110194 _ee = OC(GC(ZI, 1), nie, 2, 6, ["Cn", "Lu", "Ll", "Lt", "Lm", "Lo", "Mn", "Me", "Mc", "Nd", "Nl", "No", "Zs", "Zl", "Zp", "Cc", "Cf", null, "Co", "Cs", "Pd", "Ps", "Pe", "Pc", "Po", "Sm", "Sc", "Sk", "So", "Pi", "Pf", "L", "M", "N", "Z", "C", "P", "S"]);
110195 Yee = OC(GC(ZI, 1), nie, 2, 6, ["Basic Latin", "Latin-1 Supplement", "Latin Extended-A", "Latin Extended-B", "IPA Extensions", "Spacing Modifier Letters", "Combining Diacritical Marks", "Greek", "Cyrillic", "Armenian", "Hebrew", "Arabic", "Syriac", "Thaana", "Devanagari", "Bengali", "Gurmukhi", "Gujarati", "Oriya", "Tamil", "Telugu", "Kannada", "Malayalam", "Sinhala", "Thai", "Lao", "Tibetan", "Myanmar", "Georgian", "Hangul Jamo", "Ethiopic", "Cherokee", "Unified Canadian Aboriginal Syllabics", "Ogham", "Runic", "Khmer", "Mongolian", "Latin Extended Additional", "Greek Extended", "General Punctuation", "Superscripts and Subscripts", "Currency Symbols", "Combining Marks for Symbols", "Letterlike Symbols", "Number Forms", "Arrows", "Mathematical Operators", "Miscellaneous Technical", "Control Pictures", "Optical Character Recognition", "Enclosed Alphanumerics", "Box Drawing", "Block Elements", "Geometric Shapes", "Miscellaneous Symbols", "Dingbats", "Braille Patterns", "CJK Radicals Supplement", "Kangxi Radicals", "Ideographic Description Characters", "CJK Symbols and Punctuation", "Hiragana", "Katakana", "Bopomofo", "Hangul Compatibility Jamo", "Kanbun", "Bopomofo Extended", "Enclosed CJK Letters and Months", "CJK Compatibility", "CJK Unified Ideographs Extension A", "CJK Unified Ideographs", "Yi Syllables", "Yi Radicals", "Hangul Syllables", uxe, "CJK Compatibility Ideographs", "Alphabetic Presentation Forms", "Arabic Presentation Forms-A", "Combining Half Marks", "CJK Compatibility Forms", "Small Form Variants", "Arabic Presentation Forms-B", "Specials", "Halfwidth and Fullwidth Forms", "Old Italic", "Gothic", "Deseret", "Byzantine Musical Symbols", "Musical Symbols", "Mathematical Alphanumeric Symbols", "CJK Unified Ideographs Extension B", "CJK Compatibility Ideographs Supplement", "Tags"]);
110196 afe = OC(GC(WD, 1), oje, 25, 15, [66304, 66351, 66352, 66383, 66560, 66639, 118784, 119039, 119040, 119295, 119808, 120831, 131072, 173782, 194560, 195103, 917504, 917631]);
110197 }
110198 function qJb() {
110199 qJb = ccb;
110200 nJb = new tJb("OUT_T_L", 0, (NHb(), LHb), (EIb(), BIb), (gHb(), dHb), dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb((Hbd(), Dbd), OC(GC(B1, 1), Kie, 93, 0, [Gbd, zbd]))]));
110201 mJb = new tJb("OUT_T_C", 1, KHb, BIb, dHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd, Abd]))]));
110202 oJb = new tJb("OUT_T_R", 2, MHb, BIb, dHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, Bbd]))]));
110203 eJb = new tJb("OUT_B_L", 3, LHb, DIb, fHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, zbd]))]));
110204 dJb = new tJb("OUT_B_C", 4, KHb, DIb, fHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd, Abd]))]));
110205 fJb = new tJb("OUT_B_R", 5, MHb, DIb, fHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, Bbd]))]));
110206 iJb = new tJb("OUT_L_T", 6, MHb, DIb, dHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Gbd, Abd]))]));
110207 hJb = new tJb("OUT_L_C", 7, MHb, CIb, eHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Fbd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Fbd, Abd]))]));
110208 gJb = new tJb("OUT_L_B", 8, MHb, BIb, fHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [zbd, Ebd, Abd]))]));
110209 lJb = new tJb("OUT_R_T", 9, LHb, DIb, dHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Gbd, Abd]))]));
110210 kJb = new tJb("OUT_R_C", 10, LHb, CIb, eHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Fbd])), qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Fbd, Abd]))]));
110211 jJb = new tJb("OUT_R_B", 11, LHb, BIb, fHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Dbd, OC(GC(B1, 1), Kie, 93, 0, [Bbd, Ebd, Abd]))]));
110212 bJb = new tJb("IN_T_L", 12, LHb, DIb, dHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, zbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, zbd, Abd]))]));
110213 aJb = new tJb("IN_T_C", 13, KHb, DIb, dHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, ybd, Abd]))]));
110214 cJb = new tJb("IN_T_R", 14, MHb, DIb, dHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, Bbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Gbd, Bbd, Abd]))]));
110215 $Ib = new tJb("IN_C_L", 15, LHb, CIb, eHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, zbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, zbd, Abd]))]));
110216 ZIb = new tJb("IN_C_C", 16, KHb, CIb, eHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, ybd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, ybd, Abd]))]));
110217 _Ib = new tJb("IN_C_R", 17, MHb, CIb, eHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, Bbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Fbd, Bbd, Abd]))]));
110218 XIb = new tJb("IN_B_L", 18, LHb, BIb, fHb, dHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, zbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, zbd, Abd]))]));
110219 WIb = new tJb("IN_B_C", 19, KHb, BIb, fHb, eHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, ybd, Abd]))]));
110220 YIb = new tJb("IN_B_R", 20, MHb, BIb, fHb, fHb, OC(GC(LK, 1), Uhe, 21, 0, [qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, Bbd])), qqb(Cbd, OC(GC(B1, 1), Kie, 93, 0, [Ebd, Bbd, Abd]))]));
110221 pJb = new tJb(ole, 21, null, null, null, null, OC(GC(LK, 1), Uhe, 21, 0, []));
110222 }
110223 function jGd() {
110224 jGd = ccb;
110225 PFd = (NFd(), MFd).b;
110226 BD(qud(ZKd(MFd.b), 0), 34);
110227 BD(qud(ZKd(MFd.b), 1), 18);
110228 OFd = MFd.a;
110229 BD(qud(ZKd(MFd.a), 0), 34);
110230 BD(qud(ZKd(MFd.a), 1), 18);
110231 BD(qud(ZKd(MFd.a), 2), 18);
110232 BD(qud(ZKd(MFd.a), 3), 18);
110233 BD(qud(ZKd(MFd.a), 4), 18);
110234 QFd = MFd.o;
110235 BD(qud(ZKd(MFd.o), 0), 34);
110236 BD(qud(ZKd(MFd.o), 1), 34);
110237 SFd = BD(qud(ZKd(MFd.o), 2), 18);
110238 BD(qud(ZKd(MFd.o), 3), 18);
110239 BD(qud(ZKd(MFd.o), 4), 18);
110240 BD(qud(ZKd(MFd.o), 5), 18);
110241 BD(qud(ZKd(MFd.o), 6), 18);
110242 BD(qud(ZKd(MFd.o), 7), 18);
110243 BD(qud(ZKd(MFd.o), 8), 18);
110244 BD(qud(ZKd(MFd.o), 9), 18);
110245 BD(qud(ZKd(MFd.o), 10), 18);
110246 BD(qud(ZKd(MFd.o), 11), 18);
110247 BD(qud(ZKd(MFd.o), 12), 18);
110248 BD(qud(ZKd(MFd.o), 13), 18);
110249 BD(qud(ZKd(MFd.o), 14), 18);
110250 BD(qud(ZKd(MFd.o), 15), 18);
110251 BD(qud(WKd(MFd.o), 0), 59);
110252 BD(qud(WKd(MFd.o), 1), 59);
110253 BD(qud(WKd(MFd.o), 2), 59);
110254 BD(qud(WKd(MFd.o), 3), 59);
110255 BD(qud(WKd(MFd.o), 4), 59);
110256 BD(qud(WKd(MFd.o), 5), 59);
110257 BD(qud(WKd(MFd.o), 6), 59);
110258 BD(qud(WKd(MFd.o), 7), 59);
110259 BD(qud(WKd(MFd.o), 8), 59);
110260 BD(qud(WKd(MFd.o), 9), 59);
110261 RFd = MFd.p;
110262 BD(qud(ZKd(MFd.p), 0), 34);
110263 BD(qud(ZKd(MFd.p), 1), 34);
110264 BD(qud(ZKd(MFd.p), 2), 34);
110265 BD(qud(ZKd(MFd.p), 3), 34);
110266 BD(qud(ZKd(MFd.p), 4), 18);
110267 BD(qud(ZKd(MFd.p), 5), 18);
110268 BD(qud(WKd(MFd.p), 0), 59);
110269 BD(qud(WKd(MFd.p), 1), 59);
110270 TFd = MFd.q;
110271 BD(qud(ZKd(MFd.q), 0), 34);
110272 UFd = MFd.v;
110273 BD(qud(ZKd(MFd.v), 0), 18);
110274 BD(qud(WKd(MFd.v), 0), 59);
110275 BD(qud(WKd(MFd.v), 1), 59);
110276 BD(qud(WKd(MFd.v), 2), 59);
110277 VFd = MFd.w;
110278 BD(qud(ZKd(MFd.w), 0), 34);
110279 BD(qud(ZKd(MFd.w), 1), 34);
110280 BD(qud(ZKd(MFd.w), 2), 34);
110281 BD(qud(ZKd(MFd.w), 3), 18);
110282 WFd = MFd.B;
110283 BD(qud(ZKd(MFd.B), 0), 18);
110284 BD(qud(WKd(MFd.B), 0), 59);
110285 BD(qud(WKd(MFd.B), 1), 59);
110286 BD(qud(WKd(MFd.B), 2), 59);
110287 ZFd = MFd.Q;
110288 BD(qud(ZKd(MFd.Q), 0), 18);
110289 BD(qud(WKd(MFd.Q), 0), 59);
110290 $Fd = MFd.R;
110291 BD(qud(ZKd(MFd.R), 0), 34);
110292 _Fd = MFd.S;
110293 BD(qud(WKd(MFd.S), 0), 59);
110294 BD(qud(WKd(MFd.S), 1), 59);
110295 BD(qud(WKd(MFd.S), 2), 59);
110296 BD(qud(WKd(MFd.S), 3), 59);
110297 BD(qud(WKd(MFd.S), 4), 59);
110298 BD(qud(WKd(MFd.S), 5), 59);
110299 BD(qud(WKd(MFd.S), 6), 59);
110300 BD(qud(WKd(MFd.S), 7), 59);
110301 BD(qud(WKd(MFd.S), 8), 59);
110302 BD(qud(WKd(MFd.S), 9), 59);
110303 BD(qud(WKd(MFd.S), 10), 59);
110304 BD(qud(WKd(MFd.S), 11), 59);
110305 BD(qud(WKd(MFd.S), 12), 59);
110306 BD(qud(WKd(MFd.S), 13), 59);
110307 BD(qud(WKd(MFd.S), 14), 59);
110308 aGd = MFd.T;
110309 BD(qud(ZKd(MFd.T), 0), 18);
110310 BD(qud(ZKd(MFd.T), 2), 18);
110311 bGd = BD(qud(ZKd(MFd.T), 3), 18);
110312 BD(qud(ZKd(MFd.T), 4), 18);
110313 BD(qud(WKd(MFd.T), 0), 59);
110314 BD(qud(WKd(MFd.T), 1), 59);
110315 BD(qud(ZKd(MFd.T), 1), 18);
110316 cGd = MFd.U;
110317 BD(qud(ZKd(MFd.U), 0), 34);
110318 BD(qud(ZKd(MFd.U), 1), 34);
110319 BD(qud(ZKd(MFd.U), 2), 18);
110320 BD(qud(ZKd(MFd.U), 3), 18);
110321 BD(qud(ZKd(MFd.U), 4), 18);
110322 BD(qud(ZKd(MFd.U), 5), 18);
110323 BD(qud(WKd(MFd.U), 0), 59);
110324 dGd = MFd.V;
110325 BD(qud(ZKd(MFd.V), 0), 18);
110326 eGd = MFd.W;
110327 BD(qud(ZKd(MFd.W), 0), 34);
110328 BD(qud(ZKd(MFd.W), 1), 34);
110329 BD(qud(ZKd(MFd.W), 2), 34);
110330 BD(qud(ZKd(MFd.W), 3), 18);
110331 BD(qud(ZKd(MFd.W), 4), 18);
110332 BD(qud(ZKd(MFd.W), 5), 18);
110333 gGd = MFd.bb;
110334 BD(qud(ZKd(MFd.bb), 0), 34);
110335 BD(qud(ZKd(MFd.bb), 1), 34);
110336 BD(qud(ZKd(MFd.bb), 2), 34);
110337 BD(qud(ZKd(MFd.bb), 3), 34);
110338 BD(qud(ZKd(MFd.bb), 4), 34);
110339 BD(qud(ZKd(MFd.bb), 5), 34);
110340 BD(qud(ZKd(MFd.bb), 6), 34);
110341 BD(qud(ZKd(MFd.bb), 7), 18);
110342 BD(qud(WKd(MFd.bb), 0), 59);
110343 BD(qud(WKd(MFd.bb), 1), 59);
110344 hGd = MFd.eb;
110345 BD(qud(ZKd(MFd.eb), 0), 34);
110346 BD(qud(ZKd(MFd.eb), 1), 34);
110347 BD(qud(ZKd(MFd.eb), 2), 34);
110348 BD(qud(ZKd(MFd.eb), 3), 34);
110349 BD(qud(ZKd(MFd.eb), 4), 34);
110350 BD(qud(ZKd(MFd.eb), 5), 34);
110351 BD(qud(ZKd(MFd.eb), 6), 18);
110352 BD(qud(ZKd(MFd.eb), 7), 18);
110353 fGd = MFd.ab;
110354 BD(qud(ZKd(MFd.ab), 0), 34);
110355 BD(qud(ZKd(MFd.ab), 1), 34);
110356 XFd = MFd.H;
110357 BD(qud(ZKd(MFd.H), 0), 18);
110358 BD(qud(ZKd(MFd.H), 1), 18);
110359 BD(qud(ZKd(MFd.H), 2), 18);
110360 BD(qud(ZKd(MFd.H), 3), 18);
110361 BD(qud(ZKd(MFd.H), 4), 18);
110362 BD(qud(ZKd(MFd.H), 5), 18);
110363 BD(qud(WKd(MFd.H), 0), 59);
110364 iGd = MFd.db;
110365 BD(qud(ZKd(MFd.db), 0), 18);
110366 YFd = MFd.M;
110367 }
110368 function bae(a) {
110369 var b;
110370 if (a.O)
110371 return;
110372 a.O = true;
110373 pnd(a, "type");
110374 cod(a, "ecore.xml.type");
110375 dod(a, Ewe);
110376 b = BD(nUd((yFd(), xFd), Ewe), 1945);
110377 wtd(_Kd(a.fb), a.b);
110378 Xnd(a.b, Q9, "AnyType", false, false, true);
110379 Vnd(BD(qud(ZKd(a.b), 0), 34), a.wb.D, Qve, null, 0, -1, Q9, false, false, true, false, false, false);
110380 Vnd(BD(qud(ZKd(a.b), 1), 34), a.wb.D, "any", null, 0, -1, Q9, true, true, true, false, false, true);
110381 Vnd(BD(qud(ZKd(a.b), 2), 34), a.wb.D, "anyAttribute", null, 0, -1, Q9, false, false, true, false, false, false);
110382 Xnd(a.bb, S9, Jwe, false, false, true);
110383 Vnd(BD(qud(ZKd(a.bb), 0), 34), a.gb, "data", null, 0, 1, S9, false, false, true, false, true, false);
110384 Vnd(BD(qud(ZKd(a.bb), 1), 34), a.gb, bue, null, 1, 1, S9, false, false, true, false, true, false);
110385 Xnd(a.fb, T9, Kwe, false, false, true);
110386 Vnd(BD(qud(ZKd(a.fb), 0), 34), b.gb, "rawValue", null, 0, 1, T9, true, true, true, false, true, true);
110387 Vnd(BD(qud(ZKd(a.fb), 1), 34), b.a, Bte, null, 0, 1, T9, true, true, true, false, true, true);
110388 _nd(BD(qud(ZKd(a.fb), 2), 18), a.wb.q, null, "instanceType", 1, 1, T9, false, false, true, false, false, false, false);
110389 Xnd(a.qb, U9, Lwe, false, false, true);
110390 Vnd(BD(qud(ZKd(a.qb), 0), 34), a.wb.D, Qve, null, 0, -1, null, false, false, true, false, false, false);
110391 _nd(BD(qud(ZKd(a.qb), 1), 18), a.wb.ab, null, "xMLNSPrefixMap", 0, -1, null, true, false, true, true, false, false, false);
110392 _nd(BD(qud(ZKd(a.qb), 2), 18), a.wb.ab, null, "xSISchemaLocation", 0, -1, null, true, false, true, true, false, false, false);
110393 Vnd(BD(qud(ZKd(a.qb), 3), 34), a.gb, "cDATA", null, 0, -2, null, true, true, true, false, false, true);
110394 Vnd(BD(qud(ZKd(a.qb), 4), 34), a.gb, "comment", null, 0, -2, null, true, true, true, false, false, true);
110395 _nd(BD(qud(ZKd(a.qb), 5), 18), a.bb, null, jxe, 0, -2, null, true, true, true, true, false, false, true);
110396 Vnd(BD(qud(ZKd(a.qb), 6), 34), a.gb, Ite, null, 0, -2, null, true, true, true, false, false, true);
110397 Znd(a.a, SI, "AnySimpleType", true);
110398 Znd(a.c, ZI, "AnyURI", true);
110399 Znd(a.d, GC(SD, 1), "Base64Binary", true);
110400 Znd(a.e, sbb, "Boolean", true);
110401 Znd(a.f, wI, "BooleanObject", true);
110402 Znd(a.g, SD, "Byte", true);
110403 Znd(a.i, xI, "ByteObject", true);
110404 Znd(a.j, ZI, "Date", true);
110405 Znd(a.k, ZI, "DateTime", true);
110406 Znd(a.n, bJ, "Decimal", true);
110407 Znd(a.o, UD, "Double", true);
110408 Znd(a.p, BI, "DoubleObject", true);
110409 Znd(a.q, ZI, "Duration", true);
110410 Znd(a.s, yK, "ENTITIES", true);
110411 Znd(a.r, yK, "ENTITIESBase", true);
110412 Znd(a.t, ZI, Rwe, true);
110413 Znd(a.u, VD, "Float", true);
110414 Znd(a.v, FI, "FloatObject", true);
110415 Znd(a.w, ZI, "GDay", true);
110416 Znd(a.B, ZI, "GMonth", true);
110417 Znd(a.A, ZI, "GMonthDay", true);
110418 Znd(a.C, ZI, "GYear", true);
110419 Znd(a.D, ZI, "GYearMonth", true);
110420 Znd(a.F, GC(SD, 1), "HexBinary", true);
110421 Znd(a.G, ZI, "ID", true);
110422 Znd(a.H, ZI, "IDREF", true);
110423 Znd(a.J, yK, "IDREFS", true);
110424 Znd(a.I, yK, "IDREFSBase", true);
110425 Znd(a.K, WD, "Int", true);
110426 Znd(a.M, cJ, "Integer", true);
110427 Znd(a.L, JI, "IntObject", true);
110428 Znd(a.P, ZI, "Language", true);
110429 Znd(a.Q, XD, "Long", true);
110430 Znd(a.R, MI, "LongObject", true);
110431 Znd(a.S, ZI, "Name", true);
110432 Znd(a.T, ZI, Swe, true);
110433 Znd(a.U, cJ, "NegativeInteger", true);
110434 Znd(a.V, ZI, axe, true);
110435 Znd(a.X, yK, "NMTOKENS", true);
110436 Znd(a.W, yK, "NMTOKENSBase", true);
110437 Znd(a.Y, cJ, "NonNegativeInteger", true);
110438 Znd(a.Z, cJ, "NonPositiveInteger", true);
110439 Znd(a.$, ZI, "NormalizedString", true);
110440 Znd(a._, ZI, "NOTATION", true);
110441 Znd(a.ab, ZI, "PositiveInteger", true);
110442 Znd(a.cb, ZI, "QName", true);
110443 Znd(a.db, rbb, "Short", true);
110444 Znd(a.eb, UI, "ShortObject", true);
110445 Znd(a.gb, ZI, Vie, true);
110446 Znd(a.hb, ZI, "Time", true);
110447 Znd(a.ib, ZI, "Token", true);
110448 Znd(a.jb, rbb, "UnsignedByte", true);
110449 Znd(a.kb, UI, "UnsignedByteObject", true);
110450 Znd(a.lb, XD, "UnsignedInt", true);
110451 Znd(a.mb, MI, "UnsignedIntObject", true);
110452 Znd(a.nb, cJ, "UnsignedLong", true);
110453 Znd(a.ob, WD, "UnsignedShort", true);
110454 Znd(a.pb, JI, "UnsignedShortObject", true);
110455 Rnd(a, Ewe);
110456 _9d(a);
110457 }
110458 function Oyc(a) {
110459 r4c(a, new E3c(Q3c(L3c(P3c(M3c(O3c(N3c(new R3c(), sne), "ELK Layered"), "Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. This implementation supports different routing styles (straight, orthogonal, splines); if orthogonal routing is selected, arbitrary port constraints are respected, thus enabling the layout of block diagrams such as actor-oriented models or circuit schematics. Furthermore, full layout of compound graphs with cross-hierarchy edges is supported when the respective option is activated on the top level."), new Ryc()), sne), qqb((Csd(), Bsd), OC(GC(O3, 1), Kie, 237, 0, [ysd, zsd, xsd, Asd, vsd, usd])))));
110460 p4c(a, sne, Lpe, Ksd(iyc));
110461 p4c(a, sne, Mpe, Ksd(jyc));
110462 p4c(a, sne, Zle, Ksd(kyc));
110463 p4c(a, sne, Npe, Ksd(lyc));
110464 p4c(a, sne, xme, Ksd(nyc));
110465 p4c(a, sne, Ope, Ksd(oyc));
110466 p4c(a, sne, Ppe, Ksd(ryc));
110467 p4c(a, sne, Qpe, Ksd(tyc));
110468 p4c(a, sne, Rpe, Ksd(uyc));
110469 p4c(a, sne, Spe, Ksd(syc));
110470 p4c(a, sne, wme, Ksd(vyc));
110471 p4c(a, sne, Tpe, Ksd(xyc));
110472 p4c(a, sne, Upe, Ksd(zyc));
110473 p4c(a, sne, Vpe, Ksd(qyc));
110474 p4c(a, sne, Loe, Ksd(hyc));
110475 p4c(a, sne, Noe, Ksd(myc));
110476 p4c(a, sne, Moe, Ksd(pyc));
110477 p4c(a, sne, Ooe, Ksd(wyc));
110478 p4c(a, sne, vme, meb(0));
110479 p4c(a, sne, Poe, Ksd(cyc));
110480 p4c(a, sne, Qoe, Ksd(dyc));
110481 p4c(a, sne, Roe, Ksd(eyc));
110482 p4c(a, sne, Yoe, Ksd(Kyc));
110483 p4c(a, sne, Zoe, Ksd(Cyc));
110484 p4c(a, sne, $oe, Ksd(Dyc));
110485 p4c(a, sne, _oe, Ksd(Gyc));
110486 p4c(a, sne, ape, Ksd(Eyc));
110487 p4c(a, sne, bpe, Ksd(Fyc));
110488 p4c(a, sne, cpe, Ksd(Myc));
110489 p4c(a, sne, dpe, Ksd(Lyc));
110490 p4c(a, sne, epe, Ksd(Iyc));
110491 p4c(a, sne, fpe, Ksd(Hyc));
110492 p4c(a, sne, gpe, Ksd(Jyc));
110493 p4c(a, sne, Eoe, Ksd(Cxc));
110494 p4c(a, sne, Foe, Ksd(Dxc));
110495 p4c(a, sne, Ioe, Ksd(Xwc));
110496 p4c(a, sne, Joe, Ksd(Ywc));
110497 p4c(a, sne, ame, Lxc);
110498 p4c(a, sne, ype, Twc);
110499 p4c(a, sne, Wpe, 0);
110500 p4c(a, sne, yme, meb(1));
110501 p4c(a, sne, _le, tme);
110502 p4c(a, sne, Xpe, Ksd(Jxc));
110503 p4c(a, sne, Bme, Ksd(Vxc));
110504 p4c(a, sne, Ype, Ksd($xc));
110505 p4c(a, sne, Zpe, Ksd(Kwc));
110506 p4c(a, sne, $pe, Ksd(mwc));
110507 p4c(a, sne, tpe, Ksd(axc));
110508 p4c(a, sne, zme, (Bcb(), true));
110509 p4c(a, sne, _pe, Ksd(fxc));
110510 p4c(a, sne, aqe, Ksd(gxc));
110511 p4c(a, sne, Fme, Ksd(Fxc));
110512 p4c(a, sne, Eme, Ksd(Ixc));
110513 p4c(a, sne, bqe, Ksd(Gxc));
110514 p4c(a, sne, cqe, Nwc);
110515 p4c(a, sne, Gme, Ksd(xxc));
110516 p4c(a, sne, dqe, Ksd(wxc));
110517 p4c(a, sne, Hme, Ksd(Yxc));
110518 p4c(a, sne, eqe, Ksd(Xxc));
110519 p4c(a, sne, fqe, Ksd(Zxc));
110520 p4c(a, sne, gqe, Oxc);
110521 p4c(a, sne, hqe, Ksd(Qxc));
110522 p4c(a, sne, iqe, Ksd(Rxc));
110523 p4c(a, sne, jqe, Ksd(Sxc));
110524 p4c(a, sne, kqe, Ksd(Pxc));
110525 p4c(a, sne, eoe, Ksd(Byc));
110526 p4c(a, sne, hoe, Ksd(sxc));
110527 p4c(a, sne, noe, Ksd(rxc));
110528 p4c(a, sne, doe, Ksd(Ayc));
110529 p4c(a, sne, ioe, Ksd(mxc));
110530 p4c(a, sne, goe, Ksd(Jwc));
110531 p4c(a, sne, qoe, Ksd(Iwc));
110532 p4c(a, sne, roe, Ksd(Awc));
110533 p4c(a, sne, woe, Ksd(Bwc));
110534 p4c(a, sne, xoe, Ksd(Dwc));
110535 p4c(a, sne, yoe, Ksd(Cwc));
110536 p4c(a, sne, toe, Ksd(Hwc));
110537 p4c(a, sne, _ne, Ksd(uxc));
110538 p4c(a, sne, aoe, Ksd(vxc));
110539 p4c(a, sne, $ne, Ksd(ixc));
110540 p4c(a, sne, zoe, Ksd(Exc));
110541 p4c(a, sne, Coe, Ksd(zxc));
110542 p4c(a, sne, Zne, Ksd($wc));
110543 p4c(a, sne, Doe, Ksd(Bxc));
110544 p4c(a, sne, Goe, Ksd(Vwc));
110545 p4c(a, sne, Hoe, Ksd(Wwc));
110546 p4c(a, sne, lqe, Ksd(zwc));
110547 p4c(a, sne, Boe, Ksd(yxc));
110548 p4c(a, sne, Toe, Ksd(swc));
110549 p4c(a, sne, Uoe, Ksd(rwc));
110550 p4c(a, sne, Soe, Ksd(qwc));
110551 p4c(a, sne, Voe, Ksd(cxc));
110552 p4c(a, sne, Woe, Ksd(bxc));
110553 p4c(a, sne, Xoe, Ksd(dxc));
110554 p4c(a, sne, Tme, Ksd(Hxc));
110555 p4c(a, sne, mqe, Ksd(jxc));
110556 p4c(a, sne, $le, Ksd(Zwc));
110557 p4c(a, sne, nqe, Ksd(Qwc));
110558 p4c(a, sne, Cme, Ksd(Pwc));
110559 p4c(a, sne, soe, Ksd(Ewc));
110560 p4c(a, sne, oqe, Ksd(Wxc));
110561 p4c(a, sne, pqe, Ksd(pwc));
110562 p4c(a, sne, qqe, Ksd(exc));
110563 p4c(a, sne, rqe, Ksd(Txc));
110564 p4c(a, sne, sqe, Ksd(Mxc));
110565 p4c(a, sne, tqe, Ksd(Nxc));
110566 p4c(a, sne, loe, Ksd(oxc));
110567 p4c(a, sne, moe, Ksd(pxc));
110568 p4c(a, sne, uqe, Ksd(ayc));
110569 p4c(a, sne, boe, Ksd(nwc));
110570 p4c(a, sne, ooe, Ksd(qxc));
110571 p4c(a, sne, hpe, Ksd(Rwc));
110572 p4c(a, sne, ipe, Ksd(Owc));
110573 p4c(a, sne, vqe, Ksd(txc));
110574 p4c(a, sne, poe, Ksd(kxc));
110575 p4c(a, sne, Aoe, Ksd(Axc));
110576 p4c(a, sne, wqe, Ksd(yyc));
110577 p4c(a, sne, Yne, Ksd(Mwc));
110578 p4c(a, sne, coe, Ksd(_xc));
110579 p4c(a, sne, Koe, Ksd(Uwc));
110580 p4c(a, sne, joe, Ksd(lxc));
110581 p4c(a, sne, uoe, Ksd(Fwc));
110582 p4c(a, sne, xqe, Ksd(hxc));
110583 p4c(a, sne, koe, Ksd(nxc));
110584 p4c(a, sne, voe, Ksd(Gwc));
110585 p4c(a, sne, jpe, Ksd(ywc));
110586 p4c(a, sne, mpe, Ksd(wwc));
110587 p4c(a, sne, npe, Ksd(uwc));
110588 p4c(a, sne, ope, Ksd(vwc));
110589 p4c(a, sne, kpe, Ksd(xwc));
110590 p4c(a, sne, lpe, Ksd(twc));
110591 p4c(a, sne, foe, Ksd(_wc));
110592 }
110593 function kee(a, b) {
110594 var c2, d;
110595 if (!cee) {
110596 cee = new Lqb();
110597 dee = new Lqb();
110598 d = (wfe(), wfe(), new $fe(4));
110599 Ree(d, " \n\r\r ");
110600 Shb(cee, pxe, d);
110601 Shb(dee, pxe, _fe(d));
110602 d = new $fe(4);
110603 Ree(d, sxe);
110604 Shb(cee, nxe, d);
110605 Shb(dee, nxe, _fe(d));
110606 d = new $fe(4);
110607 Ree(d, sxe);
110608 Shb(cee, nxe, d);
110609 Shb(dee, nxe, _fe(d));
110610 d = new $fe(4);
110611 Ree(d, txe);
110612 Xfe(d, BD(Phb(cee, nxe), 117));
110613 Shb(cee, oxe, d);
110614 Shb(dee, oxe, _fe(d));
110615 d = new $fe(4);
110616 Ree(d, "-.0:AZ__az··ÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁːˑ̀͠͡ͅΆΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁ҃҆ҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆֹֻֽֿֿׁׂ֑֣֡ׄׄאתװײءغـْ٠٩ٰڷںھۀێېۓە۪ۭۨ۰۹ँःअह़्॑॔क़ॣ०९ঁঃঅঌএঐওনপরললশহ়়াৄেৈো্ৗৗড়ঢ়য়ৣ০ৱਂਂਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹ਼਼ਾੂੇੈੋ੍ਖ਼ੜਫ਼ਫ਼੦ੴઁઃઅઋઍઍએઑઓનપરલળવહ઼ૅેૉો્ૠૠ૦૯ଁଃଅଌଏଐଓନପରଲଳଶହ଼ୃେୈୋ୍ୖୗଡ଼ଢ଼ୟୡ୦୯ஂஃஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹாூெைொ்ௗௗ௧௯ఁఃఅఌఎఐఒనపళవహాౄెైొ్ౕౖౠౡ౦౯ಂಃಅಌಎಐಒನಪಳವಹಾೄೆೈೊ್ೕೖೞೞೠೡ೦೯ംഃഅഌഎഐഒനപഹാൃെൈൊ്ൗൗൠൡ൦൯กฮะฺเ๎๐๙ກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະູົຽເໄໆໆ່ໍ໐໙༘༙༠༩༹༹༵༵༷༷༾ཇཉཀྵ྄ཱ྆ྋྐྕྗྗྙྭྱྷྐྵྐྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼ⃐⃜⃡⃡ΩΩKÅ℮℮ↀↂ々々〇〇〡〯〱〵ぁゔ゙゚ゝゞァヺーヾㄅㄬ一龥가힣");
110617 Shb(cee, qxe, d);
110618 Shb(dee, qxe, _fe(d));
110619 d = new $fe(4);
110620 Ree(d, txe);
110621 Ufe(d, 95, 95);
110622 Ufe(d, 58, 58);
110623 Shb(cee, rxe, d);
110624 Shb(dee, rxe, _fe(d));
110625 }
110626 c2 = b ? BD(Phb(cee, a), 136) : BD(Phb(dee, a), 136);
110627 return c2;
110628 }
110629 function _9d(a) {
110630 Bnd(a.a, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "anySimpleType"]));
110631 Bnd(a.b, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "anyType", Sve, Qve]));
110632 Bnd(BD(qud(ZKd(a.b), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, xwe, fue, ":mixed"]));
110633 Bnd(BD(qud(ZKd(a.b), 1), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, xwe, Dwe, Fwe, fue, ":1", Owe, "lax"]));
110634 Bnd(BD(qud(ZKd(a.b), 2), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, vwe, Dwe, Fwe, fue, ":2", Owe, "lax"]));
110635 Bnd(a.c, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "anyURI", Cwe, ywe]));
110636 Bnd(a.d, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "base64Binary", Cwe, ywe]));
110637 Bnd(a.e, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Khe, Cwe, ywe]));
110638 Bnd(a.f, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "boolean:Object", cwe, Khe]));
110639 Bnd(a.g, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Eve]));
110640 Bnd(a.i, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "byte:Object", cwe, Eve]));
110641 Bnd(a.j, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "date", Cwe, ywe]));
110642 Bnd(a.k, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "dateTime", Cwe, ywe]));
110643 Bnd(a.n, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "decimal", Cwe, ywe]));
110644 Bnd(a.o, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Gve, Cwe, ywe]));
110645 Bnd(a.p, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "double:Object", cwe, Gve]));
110646 Bnd(a.q, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "duration", Cwe, ywe]));
110647 Bnd(a.s, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "ENTITIES", cwe, Pwe, Qwe, "1"]));
110648 Bnd(a.r, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Pwe, zwe, Rwe]));
110649 Bnd(a.t, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Rwe, cwe, Swe]));
110650 Bnd(a.u, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Hve, Cwe, ywe]));
110651 Bnd(a.v, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "float:Object", cwe, Hve]));
110652 Bnd(a.w, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gDay", Cwe, ywe]));
110653 Bnd(a.B, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gMonth", Cwe, ywe]));
110654 Bnd(a.A, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gMonthDay", Cwe, ywe]));
110655 Bnd(a.C, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gYear", Cwe, ywe]));
110656 Bnd(a.D, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "gYearMonth", Cwe, ywe]));
110657 Bnd(a.F, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "hexBinary", Cwe, ywe]));
110658 Bnd(a.G, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "ID", cwe, Swe]));
110659 Bnd(a.H, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "IDREF", cwe, Swe]));
110660 Bnd(a.J, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "IDREFS", cwe, Twe, Qwe, "1"]));
110661 Bnd(a.I, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Twe, zwe, "IDREF"]));
110662 Bnd(a.K, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Ive]));
110663 Bnd(a.M, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Uwe]));
110664 Bnd(a.L, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "int:Object", cwe, Ive]));
110665 Bnd(a.P, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "language", cwe, Vwe, Wwe, Xwe]));
110666 Bnd(a.Q, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Jve]));
110667 Bnd(a.R, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "long:Object", cwe, Jve]));
110668 Bnd(a.S, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "Name", cwe, Vwe, Wwe, Ywe]));
110669 Bnd(a.T, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Swe, cwe, "Name", Wwe, Zwe]));
110670 Bnd(a.U, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "negativeInteger", cwe, $we, _we, "-1"]));
110671 Bnd(a.V, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, axe, cwe, Vwe, Wwe, "\\c+"]));
110672 Bnd(a.X, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "NMTOKENS", cwe, bxe, Qwe, "1"]));
110673 Bnd(a.W, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, bxe, zwe, axe]));
110674 Bnd(a.Y, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, cxe, cwe, Uwe, dxe, "0"]));
110675 Bnd(a.Z, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, $we, cwe, Uwe, _we, "0"]));
110676 Bnd(a.$, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, exe, cwe, Mhe, Cwe, "replace"]));
110677 Bnd(a._, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "NOTATION", Cwe, ywe]));
110678 Bnd(a.ab, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "positiveInteger", cwe, cxe, dxe, "1"]));
110679 Bnd(a.bb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "processingInstruction_._type", Sve, "empty"]));
110680 Bnd(BD(qud(ZKd(a.bb), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, "data"]));
110681 Bnd(BD(qud(ZKd(a.bb), 1), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, bue]));
110682 Bnd(a.cb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "QName", Cwe, ywe]));
110683 Bnd(a.db, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Kve]));
110684 Bnd(a.eb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "short:Object", cwe, Kve]));
110685 Bnd(a.fb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "simpleAnyType", Sve, twe]));
110686 Bnd(BD(qud(ZKd(a.fb), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ":3", Sve, twe]));
110687 Bnd(BD(qud(ZKd(a.fb), 1), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ":4", Sve, twe]));
110688 Bnd(BD(qud(ZKd(a.fb), 2), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ":5", Sve, twe]));
110689 Bnd(a.gb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Mhe, Cwe, "preserve"]));
110690 Bnd(a.hb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "time", Cwe, ywe]));
110691 Bnd(a.ib, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, Vwe, cwe, exe, Cwe, ywe]));
110692 Bnd(a.jb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, fxe, _we, "255", dxe, "0"]));
110693 Bnd(a.kb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedByte:Object", cwe, fxe]));
110694 Bnd(a.lb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, gxe, _we, "4294967295", dxe, "0"]));
110695 Bnd(a.mb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedInt:Object", cwe, gxe]));
110696 Bnd(a.nb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedLong", cwe, cxe, _we, hxe, dxe, "0"]));
110697 Bnd(a.ob, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, ixe, _we, "65535", dxe, "0"]));
110698 Bnd(a.pb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "unsignedShort:Object", cwe, ixe]));
110699 Bnd(a.qb, Rve, OC(GC(ZI, 1), nie, 2, 6, [fue, "", Sve, Qve]));
110700 Bnd(BD(qud(ZKd(a.qb), 0), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, xwe, fue, ":mixed"]));
110701 Bnd(BD(qud(ZKd(a.qb), 1), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, "xmlns:prefix"]));
110702 Bnd(BD(qud(ZKd(a.qb), 2), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, uwe, fue, "xsi:schemaLocation"]));
110703 Bnd(BD(qud(ZKd(a.qb), 3), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, "cDATA", Awe, Bwe]));
110704 Bnd(BD(qud(ZKd(a.qb), 4), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, "comment", Awe, Bwe]));
110705 Bnd(BD(qud(ZKd(a.qb), 5), 18), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, jxe, Awe, Bwe]));
110706 Bnd(BD(qud(ZKd(a.qb), 6), 34), Rve, OC(GC(ZI, 1), nie, 2, 6, [Sve, wwe, fue, Ite, Awe, Bwe]));
110707 }
110708 function tvd(a) {
110709 return dfb("_UI_EMFDiagnostic_marker", a) ? "EMF Problem" : dfb("_UI_CircularContainment_diagnostic", a) ? "An object may not circularly contain itself" : dfb(sue, a) ? "Wrong character." : dfb(tue, a) ? "Invalid reference number." : dfb(uue, a) ? "A character is required after \\." : dfb(vue, a) ? "'?' is not expected. '(?:' or '(?=' or '(?!' or '(?<' or '(?#' or '(?>'?" : dfb(wue, a) ? "'(?<' or '(?<!' is expected." : dfb(xue, a) ? "A comment is not terminated." : dfb(yue, a) ? "')' is expected." : dfb(zue, a) ? "Unexpected end of the pattern in a modifier group." : dfb(Aue, a) ? "':' is expected." : dfb(Bue, a) ? "Unexpected end of the pattern in a conditional group." : dfb(Cue, a) ? "A back reference or an anchor or a lookahead or a look-behind is expected in a conditional pattern." : dfb(Due, a) ? "There are more than three choices in a conditional group." : dfb(Eue, a) ? "A character in U+0040-U+005f must follow \\c." : dfb(Fue, a) ? "A '{' is required before a character category." : dfb(Gue, a) ? "A property name is not closed by '}'." : dfb(Hue, a) ? "Unexpected meta character." : dfb(Iue, a) ? "Unknown property." : dfb(Jue, a) ? "A POSIX character class must be closed by ':]'." : dfb(Kue, a) ? "Unexpected end of the pattern in a character class." : dfb(Lue, a) ? "Unknown name for a POSIX character class." : dfb("parser.cc.4", a) ? "'-' is invalid here." : dfb(Mue, a) ? "']' is expected." : dfb(Nue, a) ? "'[' is invalid in a character class. Write '\\['." : dfb(Oue, a) ? "']' is invalid in a character class. Write '\\]'." : dfb(Pue, a) ? "'-' is an invalid character range. Write '\\-'." : dfb(Que, a) ? "'[' is expected." : dfb(Rue, a) ? "')' or '-[' or '+[' or '&[' is expected." : dfb(Sue, a) ? "The range end code point is less than the start code point." : dfb(Tue, a) ? "Invalid Unicode hex notation." : dfb(Uue, a) ? "Overflow in a hex notation." : dfb(Vue, a) ? "'\\x{' must be closed by '}'." : dfb(Wue, a) ? "Invalid Unicode code point." : dfb(Xue, a) ? "An anchor must not be here." : dfb(Yue, a) ? "This expression is not supported in the current option setting." : dfb(Zue, a) ? "Invalid quantifier. A digit is expected." : dfb($ue, a) ? "Invalid quantifier. Invalid quantity or a '}' is missing." : dfb(_ue, a) ? "Invalid quantifier. A digit or '}' is expected." : dfb(ave, a) ? "Invalid quantifier. A min quantity must be <= a max quantity." : dfb(bve, a) ? "Invalid quantifier. A quantity value overflow." : dfb("_UI_PackageRegistry_extensionpoint", a) ? "Ecore Package Registry for Generated Packages" : dfb("_UI_DynamicPackageRegistry_extensionpoint", a) ? "Ecore Package Registry for Dynamic Packages" : dfb("_UI_FactoryRegistry_extensionpoint", a) ? "Ecore Factory Override Registry" : dfb("_UI_URIExtensionParserRegistry_extensionpoint", a) ? "URI Extension Parser Registry" : dfb("_UI_URIProtocolParserRegistry_extensionpoint", a) ? "URI Protocol Parser Registry" : dfb("_UI_URIContentParserRegistry_extensionpoint", a) ? "URI Content Parser Registry" : dfb("_UI_ContentHandlerRegistry_extensionpoint", a) ? "Content Handler Registry" : dfb("_UI_URIMappingRegistry_extensionpoint", a) ? "URI Converter Mapping Registry" : dfb("_UI_PackageRegistryImplementation_extensionpoint", a) ? "Ecore Package Registry Implementation" : dfb("_UI_ValidationDelegateRegistry_extensionpoint", a) ? "Validation Delegate Registry" : dfb("_UI_SettingDelegateRegistry_extensionpoint", a) ? "Feature Setting Delegate Factory Registry" : dfb("_UI_InvocationDelegateRegistry_extensionpoint", a) ? "Operation Invocation Delegate Factory Registry" : dfb("_UI_EClassInterfaceNotAbstract_diagnostic", a) ? "A class that is an interface must also be abstract" : dfb("_UI_EClassNoCircularSuperTypes_diagnostic", a) ? "A class may not be a super type of itself" : dfb("_UI_EClassNotWellFormedMapEntryNoInstanceClassName_diagnostic", a) ? "A class that inherits from a map entry class must have instance class name 'java.util.Map$Entry'" : dfb("_UI_EReferenceOppositeOfOppositeInconsistent_diagnostic", a) ? "The opposite of the opposite may not be a reference different from this one" : dfb("_UI_EReferenceOppositeNotFeatureOfType_diagnostic", a) ? "The opposite must be a feature of the reference's type" : dfb("_UI_EReferenceTransientOppositeNotTransient_diagnostic", a) ? "The opposite of a transient reference must be transient if it is proxy resolving" : dfb("_UI_EReferenceOppositeBothContainment_diagnostic", a) ? "The opposite of a containment reference must not be a containment reference" : dfb("_UI_EReferenceConsistentUnique_diagnostic", a) ? "A containment or bidirectional reference must be unique if its upper bound is different from 1" : dfb("_UI_ETypedElementNoType_diagnostic", a) ? "The typed element must have a type" : dfb("_UI_EAttributeNoDataType_diagnostic", a) ? "The generic attribute type must not refer to a class" : dfb("_UI_EReferenceNoClass_diagnostic", a) ? "The generic reference type must not refer to a data type" : dfb("_UI_EGenericTypeNoTypeParameterAndClassifier_diagnostic", a) ? "A generic type can't refer to both a type parameter and a classifier" : dfb("_UI_EGenericTypeNoClass_diagnostic", a) ? "A generic super type must refer to a class" : dfb("_UI_EGenericTypeNoTypeParameterOrClassifier_diagnostic", a) ? "A generic type in this context must refer to a classifier or a type parameter" : dfb("_UI_EGenericTypeBoundsOnlyForTypeArgument_diagnostic", a) ? "A generic type may have bounds only when used as a type argument" : dfb("_UI_EGenericTypeNoUpperAndLowerBound_diagnostic", a) ? "A generic type must not have both a lower and an upper bound" : dfb("_UI_EGenericTypeNoTypeParameterOrClassifierAndBound_diagnostic", a) ? "A generic type with bounds must not also refer to a type parameter or classifier" : dfb("_UI_EGenericTypeNoArguments_diagnostic", a) ? "A generic type may have arguments only if it refers to a classifier" : dfb("_UI_EGenericTypeOutOfScopeTypeParameter_diagnostic", a) ? "A generic type may only refer to a type parameter that is in scope" : a;
110710 }
110711 function Aod(a) {
110712 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
110713 if (a.r)
110714 return;
110715 a.r = true;
110716 pnd(a, "graph");
110717 cod(a, "graph");
110718 dod(a, yte);
110719 Gnd(a.o, "T");
110720 wtd(_Kd(a.a), a.p);
110721 wtd(_Kd(a.f), a.a);
110722 wtd(_Kd(a.n), a.f);
110723 wtd(_Kd(a.g), a.n);
110724 wtd(_Kd(a.c), a.n);
110725 wtd(_Kd(a.i), a.c);
110726 wtd(_Kd(a.j), a.c);
110727 wtd(_Kd(a.d), a.f);
110728 wtd(_Kd(a.e), a.a);
110729 Xnd(a.p, P3, Ile, true, true, false);
110730 o2 = Dnd(a.p, a.p, "setProperty");
110731 p = Hnd(o2);
110732 j = Nnd(a.o);
110733 k = (c2 = (d = new UQd(), d), c2);
110734 wtd((!j.d && (j.d = new xMd(j5, j, 1)), j.d), k);
110735 l = Ond(p);
110736 PQd(k, l);
110737 Fnd(o2, j, Ate);
110738 j = Ond(p);
110739 Fnd(o2, j, Bte);
110740 o2 = Dnd(a.p, null, "getProperty");
110741 p = Hnd(o2);
110742 j = Nnd(a.o);
110743 k = Ond(p);
110744 wtd((!j.d && (j.d = new xMd(j5, j, 1)), j.d), k);
110745 Fnd(o2, j, Ate);
110746 j = Ond(p);
110747 n = xId(o2, j, null);
110748 !!n && n.Fi();
110749 o2 = Dnd(a.p, a.wb.e, "hasProperty");
110750 j = Nnd(a.o);
110751 k = (e = (f2 = new UQd(), f2), e);
110752 wtd((!j.d && (j.d = new xMd(j5, j, 1)), j.d), k);
110753 Fnd(o2, j, Ate);
110754 o2 = Dnd(a.p, a.p, "copyProperties");
110755 End(o2, a.p, Cte);
110756 o2 = Dnd(a.p, null, "getAllProperties");
110757 j = Nnd(a.wb.P);
110758 k = Nnd(a.o);
110759 wtd((!j.d && (j.d = new xMd(j5, j, 1)), j.d), k);
110760 l = (g = (h = new UQd(), h), g);
110761 wtd((!k.d && (k.d = new xMd(j5, k, 1)), k.d), l);
110762 k = Nnd(a.wb.M);
110763 wtd((!j.d && (j.d = new xMd(j5, j, 1)), j.d), k);
110764 m = xId(o2, j, null);
110765 !!m && m.Fi();
110766 Xnd(a.a, x2, Xse, true, false, true);
110767 _nd(BD(qud(ZKd(a.a), 0), 18), a.k, null, Dte, 0, -1, x2, false, false, true, true, false, false, false);
110768 Xnd(a.f, C2, Zse, true, false, true);
110769 _nd(BD(qud(ZKd(a.f), 0), 18), a.g, BD(qud(ZKd(a.g), 0), 18), "labels", 0, -1, C2, false, false, true, true, false, false, false);
110770 Vnd(BD(qud(ZKd(a.f), 1), 34), a.wb._, Ete, null, 0, 1, C2, false, false, true, false, true, false);
110771 Xnd(a.n, G2, "ElkShape", true, false, true);
110772 Vnd(BD(qud(ZKd(a.n), 0), 34), a.wb.t, Fte, $je, 1, 1, G2, false, false, true, false, true, false);
110773 Vnd(BD(qud(ZKd(a.n), 1), 34), a.wb.t, Gte, $je, 1, 1, G2, false, false, true, false, true, false);
110774 Vnd(BD(qud(ZKd(a.n), 2), 34), a.wb.t, "x", $je, 1, 1, G2, false, false, true, false, true, false);
110775 Vnd(BD(qud(ZKd(a.n), 3), 34), a.wb.t, "y", $je, 1, 1, G2, false, false, true, false, true, false);
110776 o2 = Dnd(a.n, null, "setDimensions");
110777 End(o2, a.wb.t, Gte);
110778 End(o2, a.wb.t, Fte);
110779 o2 = Dnd(a.n, null, "setLocation");
110780 End(o2, a.wb.t, "x");
110781 End(o2, a.wb.t, "y");
110782 Xnd(a.g, D2, dte, false, false, true);
110783 _nd(BD(qud(ZKd(a.g), 0), 18), a.f, BD(qud(ZKd(a.f), 0), 18), Hte, 0, 1, D2, false, false, true, false, false, false, false);
110784 Vnd(BD(qud(ZKd(a.g), 1), 34), a.wb._, Ite, "", 0, 1, D2, false, false, true, false, true, false);
110785 Xnd(a.c, z2, $se, true, false, true);
110786 _nd(BD(qud(ZKd(a.c), 0), 18), a.d, BD(qud(ZKd(a.d), 1), 18), "outgoingEdges", 0, -1, z2, false, false, true, false, true, false, false);
110787 _nd(BD(qud(ZKd(a.c), 1), 18), a.d, BD(qud(ZKd(a.d), 2), 18), "incomingEdges", 0, -1, z2, false, false, true, false, true, false, false);
110788 Xnd(a.i, E2, ete, false, false, true);
110789 _nd(BD(qud(ZKd(a.i), 0), 18), a.j, BD(qud(ZKd(a.j), 0), 18), "ports", 0, -1, E2, false, false, true, true, false, false, false);
110790 _nd(BD(qud(ZKd(a.i), 1), 18), a.i, BD(qud(ZKd(a.i), 2), 18), Jte, 0, -1, E2, false, false, true, true, false, false, false);
110791 _nd(BD(qud(ZKd(a.i), 2), 18), a.i, BD(qud(ZKd(a.i), 1), 18), Hte, 0, 1, E2, false, false, true, false, false, false, false);
110792 _nd(BD(qud(ZKd(a.i), 3), 18), a.d, BD(qud(ZKd(a.d), 0), 18), "containedEdges", 0, -1, E2, false, false, true, true, false, false, false);
110793 Vnd(BD(qud(ZKd(a.i), 4), 34), a.wb.e, Kte, null, 0, 1, E2, true, true, false, false, true, true);
110794 Xnd(a.j, F2, fte, false, false, true);
110795 _nd(BD(qud(ZKd(a.j), 0), 18), a.i, BD(qud(ZKd(a.i), 0), 18), Hte, 0, 1, F2, false, false, true, false, false, false, false);
110796 Xnd(a.d, B2, _se, false, false, true);
110797 _nd(BD(qud(ZKd(a.d), 0), 18), a.i, BD(qud(ZKd(a.i), 3), 18), "containingNode", 0, 1, B2, false, false, true, false, false, false, false);
110798 _nd(BD(qud(ZKd(a.d), 1), 18), a.c, BD(qud(ZKd(a.c), 0), 18), Lte, 0, -1, B2, false, false, true, false, true, false, false);
110799 _nd(BD(qud(ZKd(a.d), 2), 18), a.c, BD(qud(ZKd(a.c), 1), 18), Mte, 0, -1, B2, false, false, true, false, true, false, false);
110800 _nd(BD(qud(ZKd(a.d), 3), 18), a.e, BD(qud(ZKd(a.e), 5), 18), Nte, 0, -1, B2, false, false, true, true, false, false, false);
110801 Vnd(BD(qud(ZKd(a.d), 4), 34), a.wb.e, "hyperedge", null, 0, 1, B2, true, true, false, false, true, true);
110802 Vnd(BD(qud(ZKd(a.d), 5), 34), a.wb.e, Kte, null, 0, 1, B2, true, true, false, false, true, true);
110803 Vnd(BD(qud(ZKd(a.d), 6), 34), a.wb.e, "selfloop", null, 0, 1, B2, true, true, false, false, true, true);
110804 Vnd(BD(qud(ZKd(a.d), 7), 34), a.wb.e, "connected", null, 0, 1, B2, true, true, false, false, true, true);
110805 Xnd(a.b, y2, Yse, false, false, true);
110806 Vnd(BD(qud(ZKd(a.b), 0), 34), a.wb.t, "x", $je, 1, 1, y2, false, false, true, false, true, false);
110807 Vnd(BD(qud(ZKd(a.b), 1), 34), a.wb.t, "y", $je, 1, 1, y2, false, false, true, false, true, false);
110808 o2 = Dnd(a.b, null, "set");
110809 End(o2, a.wb.t, "x");
110810 End(o2, a.wb.t, "y");
110811 Xnd(a.e, A2, ate, false, false, true);
110812 Vnd(BD(qud(ZKd(a.e), 0), 34), a.wb.t, "startX", null, 0, 1, A2, false, false, true, false, true, false);
110813 Vnd(BD(qud(ZKd(a.e), 1), 34), a.wb.t, "startY", null, 0, 1, A2, false, false, true, false, true, false);
110814 Vnd(BD(qud(ZKd(a.e), 2), 34), a.wb.t, "endX", null, 0, 1, A2, false, false, true, false, true, false);
110815 Vnd(BD(qud(ZKd(a.e), 3), 34), a.wb.t, "endY", null, 0, 1, A2, false, false, true, false, true, false);
110816 _nd(BD(qud(ZKd(a.e), 4), 18), a.b, null, Ote, 0, -1, A2, false, false, true, true, false, false, false);
110817 _nd(BD(qud(ZKd(a.e), 5), 18), a.d, BD(qud(ZKd(a.d), 3), 18), Hte, 0, 1, A2, false, false, true, false, false, false, false);
110818 _nd(BD(qud(ZKd(a.e), 6), 18), a.c, null, Pte, 0, 1, A2, false, false, true, false, true, false, false);
110819 _nd(BD(qud(ZKd(a.e), 7), 18), a.c, null, Qte, 0, 1, A2, false, false, true, false, true, false, false);
110820 _nd(BD(qud(ZKd(a.e), 8), 18), a.e, BD(qud(ZKd(a.e), 9), 18), Rte, 0, -1, A2, false, false, true, false, true, false, false);
110821 _nd(BD(qud(ZKd(a.e), 9), 18), a.e, BD(qud(ZKd(a.e), 8), 18), Ste, 0, -1, A2, false, false, true, false, true, false, false);
110822 Vnd(BD(qud(ZKd(a.e), 10), 34), a.wb._, Ete, null, 0, 1, A2, false, false, true, false, true, false);
110823 o2 = Dnd(a.e, null, "setStartLocation");
110824 End(o2, a.wb.t, "x");
110825 End(o2, a.wb.t, "y");
110826 o2 = Dnd(a.e, null, "setEndLocation");
110827 End(o2, a.wb.t, "x");
110828 End(o2, a.wb.t, "y");
110829 Xnd(a.k, CK, "ElkPropertyToValueMapEntry", false, false, false);
110830 j = Nnd(a.o);
110831 k = (i3 = (b = new UQd(), b), i3);
110832 wtd((!j.d && (j.d = new xMd(j5, j, 1)), j.d), k);
110833 Wnd(BD(qud(ZKd(a.k), 0), 34), j, "key", CK, false, false, true, false);
110834 Vnd(BD(qud(ZKd(a.k), 1), 34), a.s, Bte, null, 0, 1, CK, false, false, true, false, true, false);
110835 Znd(a.o, Q3, "IProperty", true);
110836 Znd(a.s, SI, "PropertyValue", true);
110837 Rnd(a, yte);
110838 }
110839 function lde() {
110840 lde = ccb;
110841 kde = KC(SD, wte, 25, Tje, 15, 1);
110842 kde[9] = 35;
110843 kde[10] = 19;
110844 kde[13] = 19;
110845 kde[32] = 51;
110846 kde[33] = 49;
110847 kde[34] = 33;
110848 ylb(kde, 35, 38, 49);
110849 kde[38] = 1;
110850 ylb(kde, 39, 45, 49);
110851 ylb(kde, 45, 47, -71);
110852 kde[47] = 49;
110853 ylb(kde, 48, 58, -71);
110854 kde[58] = 61;
110855 kde[59] = 49;
110856 kde[60] = 1;
110857 kde[61] = 49;
110858 kde[62] = 33;
110859 ylb(kde, 63, 65, 49);
110860 ylb(kde, 65, 91, -3);
110861 ylb(kde, 91, 93, 33);
110862 kde[93] = 1;
110863 kde[94] = 33;
110864 kde[95] = -3;
110865 kde[96] = 33;
110866 ylb(kde, 97, 123, -3);
110867 ylb(kde, 123, 183, 33);
110868 kde[183] = -87;
110869 ylb(kde, 184, 192, 33);
110870 ylb(kde, 192, 215, -19);
110871 kde[215] = 33;
110872 ylb(kde, 216, 247, -19);
110873 kde[247] = 33;
110874 ylb(kde, 248, 306, -19);
110875 ylb(kde, 306, 308, 33);
110876 ylb(kde, 308, 319, -19);
110877 ylb(kde, 319, 321, 33);
110878 ylb(kde, 321, 329, -19);
110879 kde[329] = 33;
110880 ylb(kde, 330, 383, -19);
110881 kde[383] = 33;
110882 ylb(kde, 384, 452, -19);
110883 ylb(kde, 452, 461, 33);
110884 ylb(kde, 461, 497, -19);
110885 ylb(kde, 497, 500, 33);
110886 ylb(kde, 500, 502, -19);
110887 ylb(kde, 502, 506, 33);
110888 ylb(kde, 506, 536, -19);
110889 ylb(kde, 536, 592, 33);
110890 ylb(kde, 592, 681, -19);
110891 ylb(kde, 681, 699, 33);
110892 ylb(kde, 699, 706, -19);
110893 ylb(kde, 706, 720, 33);
110894 ylb(kde, 720, 722, -87);
110895 ylb(kde, 722, 768, 33);
110896 ylb(kde, 768, 838, -87);
110897 ylb(kde, 838, 864, 33);
110898 ylb(kde, 864, 866, -87);
110899 ylb(kde, 866, 902, 33);
110900 kde[902] = -19;
110901 kde[903] = -87;
110902 ylb(kde, 904, 907, -19);
110903 kde[907] = 33;
110904 kde[908] = -19;
110905 kde[909] = 33;
110906 ylb(kde, 910, 930, -19);
110907 kde[930] = 33;
110908 ylb(kde, 931, 975, -19);
110909 kde[975] = 33;
110910 ylb(kde, 976, 983, -19);
110911 ylb(kde, 983, 986, 33);
110912 kde[986] = -19;
110913 kde[987] = 33;
110914 kde[988] = -19;
110915 kde[989] = 33;
110916 kde[990] = -19;
110917 kde[991] = 33;
110918 kde[992] = -19;
110919 kde[993] = 33;
110920 ylb(kde, 994, 1012, -19);
110921 ylb(kde, 1012, 1025, 33);
110922 ylb(kde, 1025, 1037, -19);
110923 kde[1037] = 33;
110924 ylb(kde, 1038, 1104, -19);
110925 kde[1104] = 33;
110926 ylb(kde, 1105, 1117, -19);
110927 kde[1117] = 33;
110928 ylb(kde, 1118, 1154, -19);
110929 kde[1154] = 33;
110930 ylb(kde, 1155, 1159, -87);
110931 ylb(kde, 1159, 1168, 33);
110932 ylb(kde, 1168, 1221, -19);
110933 ylb(kde, 1221, 1223, 33);
110934 ylb(kde, 1223, 1225, -19);
110935 ylb(kde, 1225, 1227, 33);
110936 ylb(kde, 1227, 1229, -19);
110937 ylb(kde, 1229, 1232, 33);
110938 ylb(kde, 1232, 1260, -19);
110939 ylb(kde, 1260, 1262, 33);
110940 ylb(kde, 1262, 1270, -19);
110941 ylb(kde, 1270, 1272, 33);
110942 ylb(kde, 1272, 1274, -19);
110943 ylb(kde, 1274, 1329, 33);
110944 ylb(kde, 1329, 1367, -19);
110945 ylb(kde, 1367, 1369, 33);
110946 kde[1369] = -19;
110947 ylb(kde, 1370, 1377, 33);
110948 ylb(kde, 1377, 1415, -19);
110949 ylb(kde, 1415, 1425, 33);
110950 ylb(kde, 1425, 1442, -87);
110951 kde[1442] = 33;
110952 ylb(kde, 1443, 1466, -87);
110953 kde[1466] = 33;
110954 ylb(kde, 1467, 1470, -87);
110955 kde[1470] = 33;
110956 kde[1471] = -87;
110957 kde[1472] = 33;
110958 ylb(kde, 1473, 1475, -87);
110959 kde[1475] = 33;
110960 kde[1476] = -87;
110961 ylb(kde, 1477, 1488, 33);
110962 ylb(kde, 1488, 1515, -19);
110963 ylb(kde, 1515, 1520, 33);
110964 ylb(kde, 1520, 1523, -19);
110965 ylb(kde, 1523, 1569, 33);
110966 ylb(kde, 1569, 1595, -19);
110967 ylb(kde, 1595, 1600, 33);
110968 kde[1600] = -87;
110969 ylb(kde, 1601, 1611, -19);
110970 ylb(kde, 1611, 1619, -87);
110971 ylb(kde, 1619, 1632, 33);
110972 ylb(kde, 1632, 1642, -87);
110973 ylb(kde, 1642, 1648, 33);
110974 kde[1648] = -87;
110975 ylb(kde, 1649, 1720, -19);
110976 ylb(kde, 1720, 1722, 33);
110977 ylb(kde, 1722, 1727, -19);
110978 kde[1727] = 33;
110979 ylb(kde, 1728, 1743, -19);
110980 kde[1743] = 33;
110981 ylb(kde, 1744, 1748, -19);
110982 kde[1748] = 33;
110983 kde[1749] = -19;
110984 ylb(kde, 1750, 1765, -87);
110985 ylb(kde, 1765, 1767, -19);
110986 ylb(kde, 1767, 1769, -87);
110987 kde[1769] = 33;
110988 ylb(kde, 1770, 1774, -87);
110989 ylb(kde, 1774, 1776, 33);
110990 ylb(kde, 1776, 1786, -87);
110991 ylb(kde, 1786, 2305, 33);
110992 ylb(kde, 2305, 2308, -87);
110993 kde[2308] = 33;
110994 ylb(kde, 2309, 2362, -19);
110995 ylb(kde, 2362, 2364, 33);
110996 kde[2364] = -87;
110997 kde[2365] = -19;
110998 ylb(kde, 2366, 2382, -87);
110999 ylb(kde, 2382, 2385, 33);
111000 ylb(kde, 2385, 2389, -87);
111001 ylb(kde, 2389, 2392, 33);
111002 ylb(kde, 2392, 2402, -19);
111003 ylb(kde, 2402, 2404, -87);
111004 ylb(kde, 2404, 2406, 33);
111005 ylb(kde, 2406, 2416, -87);
111006 ylb(kde, 2416, 2433, 33);
111007 ylb(kde, 2433, 2436, -87);
111008 kde[2436] = 33;
111009 ylb(kde, 2437, 2445, -19);
111010 ylb(kde, 2445, 2447, 33);
111011 ylb(kde, 2447, 2449, -19);
111012 ylb(kde, 2449, 2451, 33);
111013 ylb(kde, 2451, 2473, -19);
111014 kde[2473] = 33;
111015 ylb(kde, 2474, 2481, -19);
111016 kde[2481] = 33;
111017 kde[2482] = -19;
111018 ylb(kde, 2483, 2486, 33);
111019 ylb(kde, 2486, 2490, -19);
111020 ylb(kde, 2490, 2492, 33);
111021 kde[2492] = -87;
111022 kde[2493] = 33;
111023 ylb(kde, 2494, 2501, -87);
111024 ylb(kde, 2501, 2503, 33);
111025 ylb(kde, 2503, 2505, -87);
111026 ylb(kde, 2505, 2507, 33);
111027 ylb(kde, 2507, 2510, -87);
111028 ylb(kde, 2510, 2519, 33);
111029 kde[2519] = -87;
111030 ylb(kde, 2520, 2524, 33);
111031 ylb(kde, 2524, 2526, -19);
111032 kde[2526] = 33;
111033 ylb(kde, 2527, 2530, -19);
111034 ylb(kde, 2530, 2532, -87);
111035 ylb(kde, 2532, 2534, 33);
111036 ylb(kde, 2534, 2544, -87);
111037 ylb(kde, 2544, 2546, -19);
111038 ylb(kde, 2546, 2562, 33);
111039 kde[2562] = -87;
111040 ylb(kde, 2563, 2565, 33);
111041 ylb(kde, 2565, 2571, -19);
111042 ylb(kde, 2571, 2575, 33);
111043 ylb(kde, 2575, 2577, -19);
111044 ylb(kde, 2577, 2579, 33);
111045 ylb(kde, 2579, 2601, -19);
111046 kde[2601] = 33;
111047 ylb(kde, 2602, 2609, -19);
111048 kde[2609] = 33;
111049 ylb(kde, 2610, 2612, -19);
111050 kde[2612] = 33;
111051 ylb(kde, 2613, 2615, -19);
111052 kde[2615] = 33;
111053 ylb(kde, 2616, 2618, -19);
111054 ylb(kde, 2618, 2620, 33);
111055 kde[2620] = -87;
111056 kde[2621] = 33;
111057 ylb(kde, 2622, 2627, -87);
111058 ylb(kde, 2627, 2631, 33);
111059 ylb(kde, 2631, 2633, -87);
111060 ylb(kde, 2633, 2635, 33);
111061 ylb(kde, 2635, 2638, -87);
111062 ylb(kde, 2638, 2649, 33);
111063 ylb(kde, 2649, 2653, -19);
111064 kde[2653] = 33;
111065 kde[2654] = -19;
111066 ylb(kde, 2655, 2662, 33);
111067 ylb(kde, 2662, 2674, -87);
111068 ylb(kde, 2674, 2677, -19);
111069 ylb(kde, 2677, 2689, 33);
111070 ylb(kde, 2689, 2692, -87);
111071 kde[2692] = 33;
111072 ylb(kde, 2693, 2700, -19);
111073 kde[2700] = 33;
111074 kde[2701] = -19;
111075 kde[2702] = 33;
111076 ylb(kde, 2703, 2706, -19);
111077 kde[2706] = 33;
111078 ylb(kde, 2707, 2729, -19);
111079 kde[2729] = 33;
111080 ylb(kde, 2730, 2737, -19);
111081 kde[2737] = 33;
111082 ylb(kde, 2738, 2740, -19);
111083 kde[2740] = 33;
111084 ylb(kde, 2741, 2746, -19);
111085 ylb(kde, 2746, 2748, 33);
111086 kde[2748] = -87;
111087 kde[2749] = -19;
111088 ylb(kde, 2750, 2758, -87);
111089 kde[2758] = 33;
111090 ylb(kde, 2759, 2762, -87);
111091 kde[2762] = 33;
111092 ylb(kde, 2763, 2766, -87);
111093 ylb(kde, 2766, 2784, 33);
111094 kde[2784] = -19;
111095 ylb(kde, 2785, 2790, 33);
111096 ylb(kde, 2790, 2800, -87);
111097 ylb(kde, 2800, 2817, 33);
111098 ylb(kde, 2817, 2820, -87);
111099 kde[2820] = 33;
111100 ylb(kde, 2821, 2829, -19);
111101 ylb(kde, 2829, 2831, 33);
111102 ylb(kde, 2831, 2833, -19);
111103 ylb(kde, 2833, 2835, 33);
111104 ylb(kde, 2835, 2857, -19);
111105 kde[2857] = 33;
111106 ylb(kde, 2858, 2865, -19);
111107 kde[2865] = 33;
111108 ylb(kde, 2866, 2868, -19);
111109 ylb(kde, 2868, 2870, 33);
111110 ylb(kde, 2870, 2874, -19);
111111 ylb(kde, 2874, 2876, 33);
111112 kde[2876] = -87;
111113 kde[2877] = -19;
111114 ylb(kde, 2878, 2884, -87);
111115 ylb(kde, 2884, 2887, 33);
111116 ylb(kde, 2887, 2889, -87);
111117 ylb(kde, 2889, 2891, 33);
111118 ylb(kde, 2891, 2894, -87);
111119 ylb(kde, 2894, 2902, 33);
111120 ylb(kde, 2902, 2904, -87);
111121 ylb(kde, 2904, 2908, 33);
111122 ylb(kde, 2908, 2910, -19);
111123 kde[2910] = 33;
111124 ylb(kde, 2911, 2914, -19);
111125 ylb(kde, 2914, 2918, 33);
111126 ylb(kde, 2918, 2928, -87);
111127 ylb(kde, 2928, 2946, 33);
111128 ylb(kde, 2946, 2948, -87);
111129 kde[2948] = 33;
111130 ylb(kde, 2949, 2955, -19);
111131 ylb(kde, 2955, 2958, 33);
111132 ylb(kde, 2958, 2961, -19);
111133 kde[2961] = 33;
111134 ylb(kde, 2962, 2966, -19);
111135 ylb(kde, 2966, 2969, 33);
111136 ylb(kde, 2969, 2971, -19);
111137 kde[2971] = 33;
111138 kde[2972] = -19;
111139 kde[2973] = 33;
111140 ylb(kde, 2974, 2976, -19);
111141 ylb(kde, 2976, 2979, 33);
111142 ylb(kde, 2979, 2981, -19);
111143 ylb(kde, 2981, 2984, 33);
111144 ylb(kde, 2984, 2987, -19);
111145 ylb(kde, 2987, 2990, 33);
111146 ylb(kde, 2990, 2998, -19);
111147 kde[2998] = 33;
111148 ylb(kde, 2999, 3002, -19);
111149 ylb(kde, 3002, 3006, 33);
111150 ylb(kde, 3006, 3011, -87);
111151 ylb(kde, 3011, 3014, 33);
111152 ylb(kde, 3014, 3017, -87);
111153 kde[3017] = 33;
111154 ylb(kde, 3018, 3022, -87);
111155 ylb(kde, 3022, 3031, 33);
111156 kde[3031] = -87;
111157 ylb(kde, 3032, 3047, 33);
111158 ylb(kde, 3047, 3056, -87);
111159 ylb(kde, 3056, 3073, 33);
111160 ylb(kde, 3073, 3076, -87);
111161 kde[3076] = 33;
111162 ylb(kde, 3077, 3085, -19);
111163 kde[3085] = 33;
111164 ylb(kde, 3086, 3089, -19);
111165 kde[3089] = 33;
111166 ylb(kde, 3090, 3113, -19);
111167 kde[3113] = 33;
111168 ylb(kde, 3114, 3124, -19);
111169 kde[3124] = 33;
111170 ylb(kde, 3125, 3130, -19);
111171 ylb(kde, 3130, 3134, 33);
111172 ylb(kde, 3134, 3141, -87);
111173 kde[3141] = 33;
111174 ylb(kde, 3142, 3145, -87);
111175 kde[3145] = 33;
111176 ylb(kde, 3146, 3150, -87);
111177 ylb(kde, 3150, 3157, 33);
111178 ylb(kde, 3157, 3159, -87);
111179 ylb(kde, 3159, 3168, 33);
111180 ylb(kde, 3168, 3170, -19);
111181 ylb(kde, 3170, 3174, 33);
111182 ylb(kde, 3174, 3184, -87);
111183 ylb(kde, 3184, 3202, 33);
111184 ylb(kde, 3202, 3204, -87);
111185 kde[3204] = 33;
111186 ylb(kde, 3205, 3213, -19);
111187 kde[3213] = 33;
111188 ylb(kde, 3214, 3217, -19);
111189 kde[3217] = 33;
111190 ylb(kde, 3218, 3241, -19);
111191 kde[3241] = 33;
111192 ylb(kde, 3242, 3252, -19);
111193 kde[3252] = 33;
111194 ylb(kde, 3253, 3258, -19);
111195 ylb(kde, 3258, 3262, 33);
111196 ylb(kde, 3262, 3269, -87);
111197 kde[3269] = 33;
111198 ylb(kde, 3270, 3273, -87);
111199 kde[3273] = 33;
111200 ylb(kde, 3274, 3278, -87);
111201 ylb(kde, 3278, 3285, 33);
111202 ylb(kde, 3285, 3287, -87);
111203 ylb(kde, 3287, 3294, 33);
111204 kde[3294] = -19;
111205 kde[3295] = 33;
111206 ylb(kde, 3296, 3298, -19);
111207 ylb(kde, 3298, 3302, 33);
111208 ylb(kde, 3302, 3312, -87);
111209 ylb(kde, 3312, 3330, 33);
111210 ylb(kde, 3330, 3332, -87);
111211 kde[3332] = 33;
111212 ylb(kde, 3333, 3341, -19);
111213 kde[3341] = 33;
111214 ylb(kde, 3342, 3345, -19);
111215 kde[3345] = 33;
111216 ylb(kde, 3346, 3369, -19);
111217 kde[3369] = 33;
111218 ylb(kde, 3370, 3386, -19);
111219 ylb(kde, 3386, 3390, 33);
111220 ylb(kde, 3390, 3396, -87);
111221 ylb(kde, 3396, 3398, 33);
111222 ylb(kde, 3398, 3401, -87);
111223 kde[3401] = 33;
111224 ylb(kde, 3402, 3406, -87);
111225 ylb(kde, 3406, 3415, 33);
111226 kde[3415] = -87;
111227 ylb(kde, 3416, 3424, 33);
111228 ylb(kde, 3424, 3426, -19);
111229 ylb(kde, 3426, 3430, 33);
111230 ylb(kde, 3430, 3440, -87);
111231 ylb(kde, 3440, 3585, 33);
111232 ylb(kde, 3585, 3631, -19);
111233 kde[3631] = 33;
111234 kde[3632] = -19;
111235 kde[3633] = -87;
111236 ylb(kde, 3634, 3636, -19);
111237 ylb(kde, 3636, 3643, -87);
111238 ylb(kde, 3643, 3648, 33);
111239 ylb(kde, 3648, 3654, -19);
111240 ylb(kde, 3654, 3663, -87);
111241 kde[3663] = 33;
111242 ylb(kde, 3664, 3674, -87);
111243 ylb(kde, 3674, 3713, 33);
111244 ylb(kde, 3713, 3715, -19);
111245 kde[3715] = 33;
111246 kde[3716] = -19;
111247 ylb(kde, 3717, 3719, 33);
111248 ylb(kde, 3719, 3721, -19);
111249 kde[3721] = 33;
111250 kde[3722] = -19;
111251 ylb(kde, 3723, 3725, 33);
111252 kde[3725] = -19;
111253 ylb(kde, 3726, 3732, 33);
111254 ylb(kde, 3732, 3736, -19);
111255 kde[3736] = 33;
111256 ylb(kde, 3737, 3744, -19);
111257 kde[3744] = 33;
111258 ylb(kde, 3745, 3748, -19);
111259 kde[3748] = 33;
111260 kde[3749] = -19;
111261 kde[3750] = 33;
111262 kde[3751] = -19;
111263 ylb(kde, 3752, 3754, 33);
111264 ylb(kde, 3754, 3756, -19);
111265 kde[3756] = 33;
111266 ylb(kde, 3757, 3759, -19);
111267 kde[3759] = 33;
111268 kde[3760] = -19;
111269 kde[3761] = -87;
111270 ylb(kde, 3762, 3764, -19);
111271 ylb(kde, 3764, 3770, -87);
111272 kde[3770] = 33;
111273 ylb(kde, 3771, 3773, -87);
111274 kde[3773] = -19;
111275 ylb(kde, 3774, 3776, 33);
111276 ylb(kde, 3776, 3781, -19);
111277 kde[3781] = 33;
111278 kde[3782] = -87;
111279 kde[3783] = 33;
111280 ylb(kde, 3784, 3790, -87);
111281 ylb(kde, 3790, 3792, 33);
111282 ylb(kde, 3792, 3802, -87);
111283 ylb(kde, 3802, 3864, 33);
111284 ylb(kde, 3864, 3866, -87);
111285 ylb(kde, 3866, 3872, 33);
111286 ylb(kde, 3872, 3882, -87);
111287 ylb(kde, 3882, 3893, 33);
111288 kde[3893] = -87;
111289 kde[3894] = 33;
111290 kde[3895] = -87;
111291 kde[3896] = 33;
111292 kde[3897] = -87;
111293 ylb(kde, 3898, 3902, 33);
111294 ylb(kde, 3902, 3904, -87);
111295 ylb(kde, 3904, 3912, -19);
111296 kde[3912] = 33;
111297 ylb(kde, 3913, 3946, -19);
111298 ylb(kde, 3946, 3953, 33);
111299 ylb(kde, 3953, 3973, -87);
111300 kde[3973] = 33;
111301 ylb(kde, 3974, 3980, -87);
111302 ylb(kde, 3980, 3984, 33);
111303 ylb(kde, 3984, 3990, -87);
111304 kde[3990] = 33;
111305 kde[3991] = -87;
111306 kde[3992] = 33;
111307 ylb(kde, 3993, 4014, -87);
111308 ylb(kde, 4014, 4017, 33);
111309 ylb(kde, 4017, 4024, -87);
111310 kde[4024] = 33;
111311 kde[4025] = -87;
111312 ylb(kde, 4026, 4256, 33);
111313 ylb(kde, 4256, 4294, -19);
111314 ylb(kde, 4294, 4304, 33);
111315 ylb(kde, 4304, 4343, -19);
111316 ylb(kde, 4343, 4352, 33);
111317 kde[4352] = -19;
111318 kde[4353] = 33;
111319 ylb(kde, 4354, 4356, -19);
111320 kde[4356] = 33;
111321 ylb(kde, 4357, 4360, -19);
111322 kde[4360] = 33;
111323 kde[4361] = -19;
111324 kde[4362] = 33;
111325 ylb(kde, 4363, 4365, -19);
111326 kde[4365] = 33;
111327 ylb(kde, 4366, 4371, -19);
111328 ylb(kde, 4371, 4412, 33);
111329 kde[4412] = -19;
111330 kde[4413] = 33;
111331 kde[4414] = -19;
111332 kde[4415] = 33;
111333 kde[4416] = -19;
111334 ylb(kde, 4417, 4428, 33);
111335 kde[4428] = -19;
111336 kde[4429] = 33;
111337 kde[4430] = -19;
111338 kde[4431] = 33;
111339 kde[4432] = -19;
111340 ylb(kde, 4433, 4436, 33);
111341 ylb(kde, 4436, 4438, -19);
111342 ylb(kde, 4438, 4441, 33);
111343 kde[4441] = -19;
111344 ylb(kde, 4442, 4447, 33);
111345 ylb(kde, 4447, 4450, -19);
111346 kde[4450] = 33;
111347 kde[4451] = -19;
111348 kde[4452] = 33;
111349 kde[4453] = -19;
111350 kde[4454] = 33;
111351 kde[4455] = -19;
111352 kde[4456] = 33;
111353 kde[4457] = -19;
111354 ylb(kde, 4458, 4461, 33);
111355 ylb(kde, 4461, 4463, -19);
111356 ylb(kde, 4463, 4466, 33);
111357 ylb(kde, 4466, 4468, -19);
111358 kde[4468] = 33;
111359 kde[4469] = -19;
111360 ylb(kde, 4470, 4510, 33);
111361 kde[4510] = -19;
111362 ylb(kde, 4511, 4520, 33);
111363 kde[4520] = -19;
111364 ylb(kde, 4521, 4523, 33);
111365 kde[4523] = -19;
111366 ylb(kde, 4524, 4526, 33);
111367 ylb(kde, 4526, 4528, -19);
111368 ylb(kde, 4528, 4535, 33);
111369 ylb(kde, 4535, 4537, -19);
111370 kde[4537] = 33;
111371 kde[4538] = -19;
111372 kde[4539] = 33;
111373 ylb(kde, 4540, 4547, -19);
111374 ylb(kde, 4547, 4587, 33);
111375 kde[4587] = -19;
111376 ylb(kde, 4588, 4592, 33);
111377 kde[4592] = -19;
111378 ylb(kde, 4593, 4601, 33);
111379 kde[4601] = -19;
111380 ylb(kde, 4602, 7680, 33);
111381 ylb(kde, 7680, 7836, -19);
111382 ylb(kde, 7836, 7840, 33);
111383 ylb(kde, 7840, 7930, -19);
111384 ylb(kde, 7930, 7936, 33);
111385 ylb(kde, 7936, 7958, -19);
111386 ylb(kde, 7958, 7960, 33);
111387 ylb(kde, 7960, 7966, -19);
111388 ylb(kde, 7966, 7968, 33);
111389 ylb(kde, 7968, 8006, -19);
111390 ylb(kde, 8006, 8008, 33);
111391 ylb(kde, 8008, 8014, -19);
111392 ylb(kde, 8014, 8016, 33);
111393 ylb(kde, 8016, 8024, -19);
111394 kde[8024] = 33;
111395 kde[8025] = -19;
111396 kde[8026] = 33;
111397 kde[8027] = -19;
111398 kde[8028] = 33;
111399 kde[8029] = -19;
111400 kde[8030] = 33;
111401 ylb(kde, 8031, 8062, -19);
111402 ylb(kde, 8062, 8064, 33);
111403 ylb(kde, 8064, 8117, -19);
111404 kde[8117] = 33;
111405 ylb(kde, 8118, 8125, -19);
111406 kde[8125] = 33;
111407 kde[8126] = -19;
111408 ylb(kde, 8127, 8130, 33);
111409 ylb(kde, 8130, 8133, -19);
111410 kde[8133] = 33;
111411 ylb(kde, 8134, 8141, -19);
111412 ylb(kde, 8141, 8144, 33);
111413 ylb(kde, 8144, 8148, -19);
111414 ylb(kde, 8148, 8150, 33);
111415 ylb(kde, 8150, 8156, -19);
111416 ylb(kde, 8156, 8160, 33);
111417 ylb(kde, 8160, 8173, -19);
111418 ylb(kde, 8173, 8178, 33);
111419 ylb(kde, 8178, 8181, -19);
111420 kde[8181] = 33;
111421 ylb(kde, 8182, 8189, -19);
111422 ylb(kde, 8189, 8400, 33);
111423 ylb(kde, 8400, 8413, -87);
111424 ylb(kde, 8413, 8417, 33);
111425 kde[8417] = -87;
111426 ylb(kde, 8418, 8486, 33);
111427 kde[8486] = -19;
111428 ylb(kde, 8487, 8490, 33);
111429 ylb(kde, 8490, 8492, -19);
111430 ylb(kde, 8492, 8494, 33);
111431 kde[8494] = -19;
111432 ylb(kde, 8495, 8576, 33);
111433 ylb(kde, 8576, 8579, -19);
111434 ylb(kde, 8579, 12293, 33);
111435 kde[12293] = -87;
111436 kde[12294] = 33;
111437 kde[12295] = -19;
111438 ylb(kde, 12296, 12321, 33);
111439 ylb(kde, 12321, 12330, -19);
111440 ylb(kde, 12330, 12336, -87);
111441 kde[12336] = 33;
111442 ylb(kde, 12337, 12342, -87);
111443 ylb(kde, 12342, 12353, 33);
111444 ylb(kde, 12353, 12437, -19);
111445 ylb(kde, 12437, 12441, 33);
111446 ylb(kde, 12441, 12443, -87);
111447 ylb(kde, 12443, 12445, 33);
111448 ylb(kde, 12445, 12447, -87);
111449 ylb(kde, 12447, 12449, 33);
111450 ylb(kde, 12449, 12539, -19);
111451 kde[12539] = 33;
111452 ylb(kde, 12540, 12543, -87);
111453 ylb(kde, 12543, 12549, 33);
111454 ylb(kde, 12549, 12589, -19);
111455 ylb(kde, 12589, 19968, 33);
111456 ylb(kde, 19968, 40870, -19);
111457 ylb(kde, 40870, 44032, 33);
111458 ylb(kde, 44032, 55204, -19);
111459 ylb(kde, 55204, Uje, 33);
111460 ylb(kde, 57344, 65534, 33);
111461 }
111462 function zZd(a) {
111463 var b, c2, d, e, f2, g, h;
111464 if (a.hb)
111465 return;
111466 a.hb = true;
111467 pnd(a, "ecore");
111468 cod(a, "ecore");
111469 dod(a, _ve);
111470 Gnd(a.fb, "E");
111471 Gnd(a.L, "T");
111472 Gnd(a.P, "K");
111473 Gnd(a.P, "V");
111474 Gnd(a.cb, "E");
111475 wtd(_Kd(a.b), a.bb);
111476 wtd(_Kd(a.a), a.Q);
111477 wtd(_Kd(a.o), a.p);
111478 wtd(_Kd(a.p), a.R);
111479 wtd(_Kd(a.q), a.p);
111480 wtd(_Kd(a.v), a.q);
111481 wtd(_Kd(a.w), a.R);
111482 wtd(_Kd(a.B), a.Q);
111483 wtd(_Kd(a.R), a.Q);
111484 wtd(_Kd(a.T), a.eb);
111485 wtd(_Kd(a.U), a.R);
111486 wtd(_Kd(a.V), a.eb);
111487 wtd(_Kd(a.W), a.bb);
111488 wtd(_Kd(a.bb), a.eb);
111489 wtd(_Kd(a.eb), a.R);
111490 wtd(_Kd(a.db), a.R);
111491 Xnd(a.b, b5, qve, false, false, true);
111492 Vnd(BD(qud(ZKd(a.b), 0), 34), a.e, "iD", null, 0, 1, b5, false, false, true, false, true, false);
111493 _nd(BD(qud(ZKd(a.b), 1), 18), a.q, null, "eAttributeType", 1, 1, b5, true, true, false, false, true, false, true);
111494 Xnd(a.a, a5, nve, false, false, true);
111495 Vnd(BD(qud(ZKd(a.a), 0), 34), a._, Cte, null, 0, 1, a5, false, false, true, false, true, false);
111496 _nd(BD(qud(ZKd(a.a), 1), 18), a.ab, null, "details", 0, -1, a5, false, false, true, true, false, false, false);
111497 _nd(BD(qud(ZKd(a.a), 2), 18), a.Q, BD(qud(ZKd(a.Q), 0), 18), "eModelElement", 0, 1, a5, true, false, true, false, false, false, false);
111498 _nd(BD(qud(ZKd(a.a), 3), 18), a.S, null, "contents", 0, -1, a5, false, false, true, true, false, false, false);
111499 _nd(BD(qud(ZKd(a.a), 4), 18), a.S, null, "references", 0, -1, a5, false, false, true, false, true, false, false);
111500 Xnd(a.o, c5, "EClass", false, false, true);
111501 Vnd(BD(qud(ZKd(a.o), 0), 34), a.e, "abstract", null, 0, 1, c5, false, false, true, false, true, false);
111502 Vnd(BD(qud(ZKd(a.o), 1), 34), a.e, "interface", null, 0, 1, c5, false, false, true, false, true, false);
111503 _nd(BD(qud(ZKd(a.o), 2), 18), a.o, null, "eSuperTypes", 0, -1, c5, false, false, true, false, true, true, false);
111504 _nd(BD(qud(ZKd(a.o), 3), 18), a.T, BD(qud(ZKd(a.T), 0), 18), "eOperations", 0, -1, c5, false, false, true, true, false, false, false);
111505 _nd(BD(qud(ZKd(a.o), 4), 18), a.b, null, "eAllAttributes", 0, -1, c5, true, true, false, false, true, false, true);
111506 _nd(BD(qud(ZKd(a.o), 5), 18), a.W, null, "eAllReferences", 0, -1, c5, true, true, false, false, true, false, true);
111507 _nd(BD(qud(ZKd(a.o), 6), 18), a.W, null, "eReferences", 0, -1, c5, true, true, false, false, true, false, true);
111508 _nd(BD(qud(ZKd(a.o), 7), 18), a.b, null, "eAttributes", 0, -1, c5, true, true, false, false, true, false, true);
111509 _nd(BD(qud(ZKd(a.o), 8), 18), a.W, null, "eAllContainments", 0, -1, c5, true, true, false, false, true, false, true);
111510 _nd(BD(qud(ZKd(a.o), 9), 18), a.T, null, "eAllOperations", 0, -1, c5, true, true, false, false, true, false, true);
111511 _nd(BD(qud(ZKd(a.o), 10), 18), a.bb, null, "eAllStructuralFeatures", 0, -1, c5, true, true, false, false, true, false, true);
111512 _nd(BD(qud(ZKd(a.o), 11), 18), a.o, null, "eAllSuperTypes", 0, -1, c5, true, true, false, false, true, false, true);
111513 _nd(BD(qud(ZKd(a.o), 12), 18), a.b, null, "eIDAttribute", 0, 1, c5, true, true, false, false, false, false, true);
111514 _nd(BD(qud(ZKd(a.o), 13), 18), a.bb, BD(qud(ZKd(a.bb), 7), 18), "eStructuralFeatures", 0, -1, c5, false, false, true, true, false, false, false);
111515 _nd(BD(qud(ZKd(a.o), 14), 18), a.H, null, "eGenericSuperTypes", 0, -1, c5, false, false, true, true, false, true, false);
111516 _nd(BD(qud(ZKd(a.o), 15), 18), a.H, null, "eAllGenericSuperTypes", 0, -1, c5, true, true, false, false, true, false, true);
111517 h = $nd(BD(qud(WKd(a.o), 0), 59), a.e, "isSuperTypeOf");
111518 End(h, a.o, "someClass");
111519 $nd(BD(qud(WKd(a.o), 1), 59), a.I, "getFeatureCount");
111520 h = $nd(BD(qud(WKd(a.o), 2), 59), a.bb, dwe);
111521 End(h, a.I, "featureID");
111522 h = $nd(BD(qud(WKd(a.o), 3), 59), a.I, ewe);
111523 End(h, a.bb, fwe);
111524 h = $nd(BD(qud(WKd(a.o), 4), 59), a.bb, dwe);
111525 End(h, a._, "featureName");
111526 $nd(BD(qud(WKd(a.o), 5), 59), a.I, "getOperationCount");
111527 h = $nd(BD(qud(WKd(a.o), 6), 59), a.T, "getEOperation");
111528 End(h, a.I, "operationID");
111529 h = $nd(BD(qud(WKd(a.o), 7), 59), a.I, gwe);
111530 End(h, a.T, hwe);
111531 h = $nd(BD(qud(WKd(a.o), 8), 59), a.T, "getOverride");
111532 End(h, a.T, hwe);
111533 h = $nd(BD(qud(WKd(a.o), 9), 59), a.H, "getFeatureType");
111534 End(h, a.bb, fwe);
111535 Xnd(a.p, d5, rve, true, false, true);
111536 Vnd(BD(qud(ZKd(a.p), 0), 34), a._, "instanceClassName", null, 0, 1, d5, false, true, true, true, true, false);
111537 b = Nnd(a.L);
111538 c2 = vZd();
111539 wtd((!b.d && (b.d = new xMd(j5, b, 1)), b.d), c2);
111540 Wnd(BD(qud(ZKd(a.p), 1), 34), b, "instanceClass", d5, true, true, false, true);
111541 Vnd(BD(qud(ZKd(a.p), 2), 34), a.M, iwe, null, 0, 1, d5, true, true, false, false, true, true);
111542 Vnd(BD(qud(ZKd(a.p), 3), 34), a._, "instanceTypeName", null, 0, 1, d5, false, true, true, true, true, false);
111543 _nd(BD(qud(ZKd(a.p), 4), 18), a.U, BD(qud(ZKd(a.U), 3), 18), "ePackage", 0, 1, d5, true, false, false, false, true, false, false);
111544 _nd(BD(qud(ZKd(a.p), 5), 18), a.db, null, jwe, 0, -1, d5, false, false, true, true, true, false, false);
111545 h = $nd(BD(qud(WKd(a.p), 0), 59), a.e, kwe);
111546 End(h, a.M, Jhe);
111547 $nd(BD(qud(WKd(a.p), 1), 59), a.I, "getClassifierID");
111548 Xnd(a.q, f5, "EDataType", false, false, true);
111549 Vnd(BD(qud(ZKd(a.q), 0), 34), a.e, "serializable", kse, 0, 1, f5, false, false, true, false, true, false);
111550 Xnd(a.v, h5, "EEnum", false, false, true);
111551 _nd(BD(qud(ZKd(a.v), 0), 18), a.w, BD(qud(ZKd(a.w), 3), 18), "eLiterals", 0, -1, h5, false, false, true, true, false, false, false);
111552 h = $nd(BD(qud(WKd(a.v), 0), 59), a.w, lwe);
111553 End(h, a._, fue);
111554 h = $nd(BD(qud(WKd(a.v), 1), 59), a.w, lwe);
111555 End(h, a.I, Bte);
111556 h = $nd(BD(qud(WKd(a.v), 2), 59), a.w, "getEEnumLiteralByLiteral");
111557 End(h, a._, "literal");
111558 Xnd(a.w, g5, sve, false, false, true);
111559 Vnd(BD(qud(ZKd(a.w), 0), 34), a.I, Bte, null, 0, 1, g5, false, false, true, false, true, false);
111560 Vnd(BD(qud(ZKd(a.w), 1), 34), a.A, "instance", null, 0, 1, g5, true, false, true, false, true, false);
111561 Vnd(BD(qud(ZKd(a.w), 2), 34), a._, "literal", null, 0, 1, g5, false, false, true, false, true, false);
111562 _nd(BD(qud(ZKd(a.w), 3), 18), a.v, BD(qud(ZKd(a.v), 0), 18), "eEnum", 0, 1, g5, true, false, false, false, false, false, false);
111563 Xnd(a.B, i5, "EFactory", false, false, true);
111564 _nd(BD(qud(ZKd(a.B), 0), 18), a.U, BD(qud(ZKd(a.U), 2), 18), "ePackage", 1, 1, i5, true, false, true, false, false, false, false);
111565 h = $nd(BD(qud(WKd(a.B), 0), 59), a.S, "create");
111566 End(h, a.o, "eClass");
111567 h = $nd(BD(qud(WKd(a.B), 1), 59), a.M, "createFromString");
111568 End(h, a.q, "eDataType");
111569 End(h, a._, "literalValue");
111570 h = $nd(BD(qud(WKd(a.B), 2), 59), a._, "convertToString");
111571 End(h, a.q, "eDataType");
111572 End(h, a.M, "instanceValue");
111573 Xnd(a.Q, k5, bte, true, false, true);
111574 _nd(BD(qud(ZKd(a.Q), 0), 18), a.a, BD(qud(ZKd(a.a), 2), 18), "eAnnotations", 0, -1, k5, false, false, true, true, false, false, false);
111575 h = $nd(BD(qud(WKd(a.Q), 0), 59), a.a, "getEAnnotation");
111576 End(h, a._, Cte);
111577 Xnd(a.R, l5, cte, true, false, true);
111578 Vnd(BD(qud(ZKd(a.R), 0), 34), a._, fue, null, 0, 1, l5, false, false, true, false, true, false);
111579 Xnd(a.S, m5, "EObject", false, false, true);
111580 $nd(BD(qud(WKd(a.S), 0), 59), a.o, "eClass");
111581 $nd(BD(qud(WKd(a.S), 1), 59), a.e, "eIsProxy");
111582 $nd(BD(qud(WKd(a.S), 2), 59), a.X, "eResource");
111583 $nd(BD(qud(WKd(a.S), 3), 59), a.S, "eContainer");
111584 $nd(BD(qud(WKd(a.S), 4), 59), a.bb, "eContainingFeature");
111585 $nd(BD(qud(WKd(a.S), 5), 59), a.W, "eContainmentFeature");
111586 h = $nd(BD(qud(WKd(a.S), 6), 59), null, "eContents");
111587 b = Nnd(a.fb);
111588 c2 = Nnd(a.S);
111589 wtd((!b.d && (b.d = new xMd(j5, b, 1)), b.d), c2);
111590 e = xId(h, b, null);
111591 !!e && e.Fi();
111592 h = $nd(BD(qud(WKd(a.S), 7), 59), null, "eAllContents");
111593 b = Nnd(a.cb);
111594 c2 = Nnd(a.S);
111595 wtd((!b.d && (b.d = new xMd(j5, b, 1)), b.d), c2);
111596 f2 = xId(h, b, null);
111597 !!f2 && f2.Fi();
111598 h = $nd(BD(qud(WKd(a.S), 8), 59), null, "eCrossReferences");
111599 b = Nnd(a.fb);
111600 c2 = Nnd(a.S);
111601 wtd((!b.d && (b.d = new xMd(j5, b, 1)), b.d), c2);
111602 g = xId(h, b, null);
111603 !!g && g.Fi();
111604 h = $nd(BD(qud(WKd(a.S), 9), 59), a.M, "eGet");
111605 End(h, a.bb, fwe);
111606 h = $nd(BD(qud(WKd(a.S), 10), 59), a.M, "eGet");
111607 End(h, a.bb, fwe);
111608 End(h, a.e, "resolve");
111609 h = $nd(BD(qud(WKd(a.S), 11), 59), null, "eSet");
111610 End(h, a.bb, fwe);
111611 End(h, a.M, "newValue");
111612 h = $nd(BD(qud(WKd(a.S), 12), 59), a.e, "eIsSet");
111613 End(h, a.bb, fwe);
111614 h = $nd(BD(qud(WKd(a.S), 13), 59), null, "eUnset");
111615 End(h, a.bb, fwe);
111616 h = $nd(BD(qud(WKd(a.S), 14), 59), a.M, "eInvoke");
111617 End(h, a.T, hwe);
111618 b = Nnd(a.fb);
111619 c2 = vZd();
111620 wtd((!b.d && (b.d = new xMd(j5, b, 1)), b.d), c2);
111621 Fnd(h, b, "arguments");
111622 Cnd(h, a.K);
111623 Xnd(a.T, n5, uve, false, false, true);
111624 _nd(BD(qud(ZKd(a.T), 0), 18), a.o, BD(qud(ZKd(a.o), 3), 18), mwe, 0, 1, n5, true, false, false, false, false, false, false);
111625 _nd(BD(qud(ZKd(a.T), 1), 18), a.db, null, jwe, 0, -1, n5, false, false, true, true, true, false, false);
111626 _nd(BD(qud(ZKd(a.T), 2), 18), a.V, BD(qud(ZKd(a.V), 0), 18), "eParameters", 0, -1, n5, false, false, true, true, false, false, false);
111627 _nd(BD(qud(ZKd(a.T), 3), 18), a.p, null, "eExceptions", 0, -1, n5, false, false, true, false, true, true, false);
111628 _nd(BD(qud(ZKd(a.T), 4), 18), a.H, null, "eGenericExceptions", 0, -1, n5, false, false, true, true, false, true, false);
111629 $nd(BD(qud(WKd(a.T), 0), 59), a.I, gwe);
111630 h = $nd(BD(qud(WKd(a.T), 1), 59), a.e, "isOverrideOf");
111631 End(h, a.T, "someOperation");
111632 Xnd(a.U, o5, "EPackage", false, false, true);
111633 Vnd(BD(qud(ZKd(a.U), 0), 34), a._, "nsURI", null, 0, 1, o5, false, false, true, false, true, false);
111634 Vnd(BD(qud(ZKd(a.U), 1), 34), a._, "nsPrefix", null, 0, 1, o5, false, false, true, false, true, false);
111635 _nd(BD(qud(ZKd(a.U), 2), 18), a.B, BD(qud(ZKd(a.B), 0), 18), "eFactoryInstance", 1, 1, o5, true, false, true, false, false, false, false);
111636 _nd(BD(qud(ZKd(a.U), 3), 18), a.p, BD(qud(ZKd(a.p), 4), 18), "eClassifiers", 0, -1, o5, false, false, true, true, true, false, false);
111637 _nd(BD(qud(ZKd(a.U), 4), 18), a.U, BD(qud(ZKd(a.U), 5), 18), "eSubpackages", 0, -1, o5, false, false, true, true, true, false, false);
111638 _nd(BD(qud(ZKd(a.U), 5), 18), a.U, BD(qud(ZKd(a.U), 4), 18), "eSuperPackage", 0, 1, o5, true, false, false, false, true, false, false);
111639 h = $nd(BD(qud(WKd(a.U), 0), 59), a.p, "getEClassifier");
111640 End(h, a._, fue);
111641 Xnd(a.V, p5, vve, false, false, true);
111642 _nd(BD(qud(ZKd(a.V), 0), 18), a.T, BD(qud(ZKd(a.T), 2), 18), "eOperation", 0, 1, p5, true, false, false, false, false, false, false);
111643 Xnd(a.W, q5, wve, false, false, true);
111644 Vnd(BD(qud(ZKd(a.W), 0), 34), a.e, "containment", null, 0, 1, q5, false, false, true, false, true, false);
111645 Vnd(BD(qud(ZKd(a.W), 1), 34), a.e, "container", null, 0, 1, q5, true, true, false, false, true, true);
111646 Vnd(BD(qud(ZKd(a.W), 2), 34), a.e, "resolveProxies", kse, 0, 1, q5, false, false, true, false, true, false);
111647 _nd(BD(qud(ZKd(a.W), 3), 18), a.W, null, "eOpposite", 0, 1, q5, false, false, true, false, true, false, false);
111648 _nd(BD(qud(ZKd(a.W), 4), 18), a.o, null, "eReferenceType", 1, 1, q5, true, true, false, false, true, false, true);
111649 _nd(BD(qud(ZKd(a.W), 5), 18), a.b, null, "eKeys", 0, -1, q5, false, false, true, false, true, false, false);
111650 Xnd(a.bb, t5, pve, true, false, true);
111651 Vnd(BD(qud(ZKd(a.bb), 0), 34), a.e, "changeable", kse, 0, 1, t5, false, false, true, false, true, false);
111652 Vnd(BD(qud(ZKd(a.bb), 1), 34), a.e, "volatile", null, 0, 1, t5, false, false, true, false, true, false);
111653 Vnd(BD(qud(ZKd(a.bb), 2), 34), a.e, "transient", null, 0, 1, t5, false, false, true, false, true, false);
111654 Vnd(BD(qud(ZKd(a.bb), 3), 34), a._, "defaultValueLiteral", null, 0, 1, t5, false, false, true, false, true, false);
111655 Vnd(BD(qud(ZKd(a.bb), 4), 34), a.M, iwe, null, 0, 1, t5, true, true, false, false, true, true);
111656 Vnd(BD(qud(ZKd(a.bb), 5), 34), a.e, "unsettable", null, 0, 1, t5, false, false, true, false, true, false);
111657 Vnd(BD(qud(ZKd(a.bb), 6), 34), a.e, "derived", null, 0, 1, t5, false, false, true, false, true, false);
111658 _nd(BD(qud(ZKd(a.bb), 7), 18), a.o, BD(qud(ZKd(a.o), 13), 18), mwe, 0, 1, t5, true, false, false, false, false, false, false);
111659 $nd(BD(qud(WKd(a.bb), 0), 59), a.I, ewe);
111660 h = $nd(BD(qud(WKd(a.bb), 1), 59), null, "getContainerClass");
111661 b = Nnd(a.L);
111662 c2 = vZd();
111663 wtd((!b.d && (b.d = new xMd(j5, b, 1)), b.d), c2);
111664 d = xId(h, b, null);
111665 !!d && d.Fi();
111666 Xnd(a.eb, v52, ove, true, false, true);
111667 Vnd(BD(qud(ZKd(a.eb), 0), 34), a.e, "ordered", kse, 0, 1, v52, false, false, true, false, true, false);
111668 Vnd(BD(qud(ZKd(a.eb), 1), 34), a.e, "unique", kse, 0, 1, v52, false, false, true, false, true, false);
111669 Vnd(BD(qud(ZKd(a.eb), 2), 34), a.I, "lowerBound", null, 0, 1, v52, false, false, true, false, true, false);
111670 Vnd(BD(qud(ZKd(a.eb), 3), 34), a.I, "upperBound", "1", 0, 1, v52, false, false, true, false, true, false);
111671 Vnd(BD(qud(ZKd(a.eb), 4), 34), a.e, "many", null, 0, 1, v52, true, true, false, false, true, true);
111672 Vnd(BD(qud(ZKd(a.eb), 5), 34), a.e, "required", null, 0, 1, v52, true, true, false, false, true, true);
111673 _nd(BD(qud(ZKd(a.eb), 6), 18), a.p, null, "eType", 0, 1, v52, false, true, true, false, true, true, false);
111674 _nd(BD(qud(ZKd(a.eb), 7), 18), a.H, null, "eGenericType", 0, 1, v52, false, true, true, true, false, true, false);
111675 Xnd(a.ab, CK, "EStringToStringMapEntry", false, false, false);
111676 Vnd(BD(qud(ZKd(a.ab), 0), 34), a._, "key", null, 0, 1, CK, false, false, true, false, true, false);
111677 Vnd(BD(qud(ZKd(a.ab), 1), 34), a._, Bte, null, 0, 1, CK, false, false, true, false, true, false);
111678 Xnd(a.H, j5, tve, false, false, true);
111679 _nd(BD(qud(ZKd(a.H), 0), 18), a.H, null, "eUpperBound", 0, 1, j5, false, false, true, true, false, false, false);
111680 _nd(BD(qud(ZKd(a.H), 1), 18), a.H, null, "eTypeArguments", 0, -1, j5, false, false, true, true, false, false, false);
111681 _nd(BD(qud(ZKd(a.H), 2), 18), a.p, null, "eRawType", 1, 1, j5, true, false, false, false, true, false, true);
111682 _nd(BD(qud(ZKd(a.H), 3), 18), a.H, null, "eLowerBound", 0, 1, j5, false, false, true, true, false, false, false);
111683 _nd(BD(qud(ZKd(a.H), 4), 18), a.db, null, "eTypeParameter", 0, 1, j5, false, false, true, false, false, false, false);
111684 _nd(BD(qud(ZKd(a.H), 5), 18), a.p, null, "eClassifier", 0, 1, j5, false, false, true, false, true, false, false);
111685 h = $nd(BD(qud(WKd(a.H), 0), 59), a.e, kwe);
111686 End(h, a.M, Jhe);
111687 Xnd(a.db, u5, xve, false, false, true);
111688 _nd(BD(qud(ZKd(a.db), 0), 18), a.H, null, "eBounds", 0, -1, u5, false, false, true, true, false, false, false);
111689 Znd(a.c, bJ, "EBigDecimal", true);
111690 Znd(a.d, cJ, "EBigInteger", true);
111691 Znd(a.e, sbb, "EBoolean", true);
111692 Znd(a.f, wI, "EBooleanObject", true);
111693 Znd(a.i, SD, "EByte", true);
111694 Znd(a.g, GC(SD, 1), "EByteArray", true);
111695 Znd(a.j, xI, "EByteObject", true);
111696 Znd(a.k, TD, "EChar", true);
111697 Znd(a.n, yI, "ECharacterObject", true);
111698 Znd(a.r, $J, "EDate", true);
111699 Znd(a.s, O4, "EDiagnosticChain", false);
111700 Znd(a.t, UD, "EDouble", true);
111701 Znd(a.u, BI, "EDoubleObject", true);
111702 Znd(a.fb, T4, "EEList", false);
111703 Znd(a.A, U4, "EEnumerator", false);
111704 Znd(a.C, O9, "EFeatureMap", false);
111705 Znd(a.D, E9, "EFeatureMapEntry", false);
111706 Znd(a.F, VD, "EFloat", true);
111707 Znd(a.G, FI, "EFloatObject", true);
111708 Znd(a.I, WD, "EInt", true);
111709 Znd(a.J, JI, "EIntegerObject", true);
111710 Znd(a.L, AI, "EJavaClass", true);
111711 Znd(a.M, SI, "EJavaObject", true);
111712 Znd(a.N, XD, "ELong", true);
111713 Znd(a.O, MI, "ELongObject", true);
111714 Znd(a.P, DK, "EMap", false);
111715 Znd(a.X, v8, "EResource", false);
111716 Znd(a.Y, u8, "EResourceSet", false);
111717 Znd(a.Z, rbb, "EShort", true);
111718 Znd(a.$, UI, "EShortObject", true);
111719 Znd(a._, ZI, "EString", true);
111720 Znd(a.cb, X4, "ETreeIterator", false);
111721 Znd(a.K, V4, "EInvocationTargetException", false);
111722 Rnd(a, _ve);
111723 }
111724 var Jhe = "object", Khe = "boolean", Lhe = "number", Mhe = "string", Nhe = "function", Ohe = 2147483647, Phe = "java.lang", Qhe = { 3: 1 }, Rhe = "com.google.common.base", She = ", ", The = "%s (%s) must not be negative", Uhe = { 3: 1, 4: 1, 5: 1 }, Vhe = "negative size: ", Whe = "Optional.of(", Xhe = "null", Yhe = { 198: 1, 47: 1 }, Zhe = "com.google.common.collect", $he = { 198: 1, 47: 1, 125: 1 }, _he = { 224: 1, 3: 1 }, aie = { 47: 1 }, bie = "java.util", cie = { 83: 1 }, die = { 20: 1, 28: 1, 14: 1 }, eie = 1965, fie = { 20: 1, 28: 1, 14: 1, 21: 1 }, gie = { 83: 1, 171: 1, 161: 1 }, hie = { 20: 1, 28: 1, 14: 1, 21: 1, 84: 1 }, iie = { 20: 1, 28: 1, 14: 1, 271: 1, 21: 1, 84: 1 }, jie = { 47: 1, 125: 1 }, kie = { 345: 1, 42: 1 }, lie = "AbstractMapEntry", mie = "expectedValuesPerKey", nie = { 3: 1, 6: 1, 4: 1, 5: 1 }, oie = 16384, pie2 = { 164: 1 }, qie = { 38: 1 }, rie = { l: 4194303, m: 4194303, h: 524287 }, sie = { 196: 1 }, tie = { 245: 1, 3: 1, 35: 1 }, uie = "range unbounded on this side", vie = { 20: 1 }, wie = { 20: 1, 14: 1 }, xie = { 3: 1, 20: 1, 28: 1, 14: 1 }, yie = { 152: 1, 3: 1, 20: 1, 28: 1, 14: 1, 15: 1, 54: 1 }, zie = { 3: 1, 4: 1, 5: 1, 165: 1 }, Aie = { 3: 1, 83: 1 }, Bie = { 20: 1, 14: 1, 21: 1 }, Cie = { 3: 1, 20: 1, 28: 1, 14: 1, 21: 1 }, Die = { 20: 1, 14: 1, 21: 1, 84: 1 }, Eie = 461845907, Fie = -862048943, Gie = { 3: 1, 6: 1, 4: 1, 5: 1, 165: 1 }, Hie = "expectedSize", Iie = 1073741824, Jie = "initialArraySize", Kie = { 3: 1, 6: 1, 4: 1, 9: 1, 5: 1 }, Lie = { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1 }, Mie = "arraySize", Nie = { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1 }, Oie = { 45: 1 }, Pie = { 365: 1 }, Qie = 1e-4, Rie = -2147483648, Sie = "__noinit__", Tie = { 3: 1, 102: 1, 60: 1, 78: 1 }, Uie = "com.google.gwt.core.client.impl", Vie = "String", Wie = "com.google.gwt.core.client", Xie = "anonymous", Yie = "fnStack", Zie = "Unknown", $ie = { 195: 1, 3: 1, 4: 1 }, _ie = 1e3, aje = 65535, bje = "January", cje = "February", dje = "March", eje = "April", fje = "May", gje = "June", hje = "July", ije = "August", jje = "September", kje = "October", lje = "November", mje = "December", nje = 1900, oje = { 48: 1, 3: 1, 4: 1 }, pje = "Before Christ", qje = "Anno Domini", rje = "Sunday", sje = "Monday", tje = "Tuesday", uje = "Wednesday", vje = "Thursday", wje = "Friday", xje = "Saturday", yje = "com.google.gwt.i18n.shared", zje = "DateTimeFormat", Aje = "com.google.gwt.i18n.client", Bje = "DefaultDateTimeFormatInfo", Cje = { 3: 1, 4: 1, 35: 1, 199: 1 }, Dje = "com.google.gwt.json.client", Eje = 4194303, Fje = 1048575, Gje = 524288, Hje = 4194304, Ije = 17592186044416, Jje = 1e9, Kje = -17592186044416, Lje = "java.io", Mje = { 3: 1, 102: 1, 73: 1, 60: 1, 78: 1 }, Nje = { 3: 1, 289: 1, 78: 1 }, Oje = 'For input string: "', Pje = Infinity, Qje = -Infinity, Rje = 4096, Sje = { 3: 1, 4: 1, 364: 1 }, Tje = 65536, Uje = 55296, Vje = { 104: 1, 3: 1, 4: 1 }, Wje = 1e5, Xje = 0.3010299956639812, Yje = 4294967295, Zje = 4294967296, $je = "0.0", _je = { 42: 1 }, ake = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 12: 1, 14: 1, 15: 1, 54: 1 }, bke = { 3: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1 }, cke = { 20: 1, 14: 1, 15: 1 }, dke = { 3: 1, 62: 1 }, eke = { 182: 1 }, fke = { 3: 1, 4: 1, 83: 1 }, gke = { 3: 1, 4: 1, 20: 1, 28: 1, 14: 1, 53: 1, 21: 1 }, hke = "delete", ike = 14901161193847656e-24, jke = 11102230246251565e-32, kke = 15525485, lke = 5960464477539063e-23, mke = 16777216, nke = 16777215, oke = ", length: ", pke = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1 }, qke = { 3: 1, 35: 1, 22: 1, 297: 1 }, rke = "java.util.function", ske = "java.util.logging", tke = { 3: 1, 4: 1, 5: 1, 842: 1 }, uke = "undefined", vke = "java.util.stream", wke = { 525: 1, 670: 1 }, xke = "fromIndex: ", yke = " > toIndex: ", zke = ", toIndex: ", Ake = "Index: ", Bke = ", Size: ", Cke = "org.eclipse.elk.alg.common", Dke = { 62: 1 }, Eke = "org.eclipse.elk.alg.common.compaction", Fke = "Scanline/EventHandler", Gke = "org.eclipse.elk.alg.common.compaction.oned", Hke = "CNode belongs to another CGroup.", Ike = "ISpacingsHandler/1", Jke = "The ", Kke = " instance has been finished already.", Lke = "The direction ", Mke = " is not supported by the CGraph instance.", Nke = "OneDimensionalCompactor", Oke = "OneDimensionalCompactor/lambda$0$Type", Pke = "Quadruplet", Qke = "ScanlineConstraintCalculator", Rke = "ScanlineConstraintCalculator/ConstraintsScanlineHandler", Ske = "ScanlineConstraintCalculator/ConstraintsScanlineHandler/lambda$0$Type", Tke = "ScanlineConstraintCalculator/Timestamp", Uke = "ScanlineConstraintCalculator/lambda$0$Type", Vke = { 169: 1, 45: 1 }, Wke = "org.eclipse.elk.alg.common.compaction.options", Xke = "org.eclipse.elk.core.data", Yke = "org.eclipse.elk.polyomino.traversalStrategy", Zke = "org.eclipse.elk.polyomino.lowLevelSort", $ke = "org.eclipse.elk.polyomino.highLevelSort", _ke = "org.eclipse.elk.polyomino.fill", ale = { 130: 1 }, ble = "polyomino", cle = "org.eclipse.elk.alg.common.networksimplex", dle = { 177: 1, 3: 1, 4: 1 }, ele = "org.eclipse.elk.alg.common.nodespacing", fle = "org.eclipse.elk.alg.common.nodespacing.cellsystem", gle = "CENTER", hle = { 212: 1, 326: 1 }, ile = { 3: 1, 4: 1, 5: 1, 595: 1 }, jle = "LEFT", kle = "RIGHT", lle = "Vertical alignment cannot be null", mle = "BOTTOM", nle = "org.eclipse.elk.alg.common.nodespacing.internal", ole = "UNDEFINED", ple = 0.01, qle = "org.eclipse.elk.alg.common.nodespacing.internal.algorithm", rle = "LabelPlacer/lambda$0$Type", sle = "LabelPlacer/lambda$1$Type", tle = "portRatioOrPosition", ule = "org.eclipse.elk.alg.common.overlaps", vle = "DOWN", wle = "org.eclipse.elk.alg.common.polyomino", xle = "NORTH", yle = "EAST", zle = "SOUTH", Ale = "WEST", Ble = "org.eclipse.elk.alg.common.polyomino.structures", Cle = "Direction", Dle = "Grid is only of size ", Ele = ". Requested point (", Fle = ") is out of bounds.", Gle = " Given center based coordinates were (", Hle = "org.eclipse.elk.graph.properties", Ile = "IPropertyHolder", Jle = { 3: 1, 94: 1, 134: 1 }, Kle = "org.eclipse.elk.alg.common.spore", Lle = "org.eclipse.elk.alg.common.utils", Mle = { 209: 1 }, Nle = "org.eclipse.elk.core", Ole = "Connected Components Compaction", Ple = "org.eclipse.elk.alg.disco", Qle = "org.eclipse.elk.alg.disco.graph", Rle = "org.eclipse.elk.alg.disco.options", Sle = "CompactionStrategy", Tle = "org.eclipse.elk.disco.componentCompaction.strategy", Ule = "org.eclipse.elk.disco.componentCompaction.componentLayoutAlgorithm", Vle = "org.eclipse.elk.disco.debug.discoGraph", Wle = "org.eclipse.elk.disco.debug.discoPolys", Xle = "componentCompaction", Yle = "org.eclipse.elk.disco", Zle = "org.eclipse.elk.spacing.componentComponent", $le = "org.eclipse.elk.edge.thickness", _le = "org.eclipse.elk.aspectRatio", ame = "org.eclipse.elk.padding", bme = "org.eclipse.elk.alg.disco.transform", cme = 1.5707963267948966, dme = 17976931348623157e292, eme = { 3: 1, 4: 1, 5: 1, 192: 1 }, fme = { 3: 1, 6: 1, 4: 1, 5: 1, 106: 1, 120: 1 }, gme = "org.eclipse.elk.alg.force", hme = "ComponentsProcessor", ime = "ComponentsProcessor/1", jme = "org.eclipse.elk.alg.force.graph", kme = "Component Layout", lme = "org.eclipse.elk.alg.force.model", mme = "org.eclipse.elk.force.model", nme = "org.eclipse.elk.force.iterations", ome = "org.eclipse.elk.force.repulsivePower", pme = "org.eclipse.elk.force.temperature", qme = 1e-3, rme = "org.eclipse.elk.force.repulsion", sme = "org.eclipse.elk.alg.force.options", tme = 1.600000023841858, ume = "org.eclipse.elk.force", vme = "org.eclipse.elk.priority", wme = "org.eclipse.elk.spacing.nodeNode", xme = "org.eclipse.elk.spacing.edgeLabel", yme = "org.eclipse.elk.randomSeed", zme = "org.eclipse.elk.separateConnectedComponents", Ame = "org.eclipse.elk.interactive", Bme = "org.eclipse.elk.portConstraints", Cme = "org.eclipse.elk.edgeLabels.inline", Dme = "org.eclipse.elk.omitNodeMicroLayout", Eme = "org.eclipse.elk.nodeSize.options", Fme = "org.eclipse.elk.nodeSize.constraints", Gme = "org.eclipse.elk.nodeLabels.placement", Hme = "org.eclipse.elk.portLabels.placement", Ime = "origin", Jme = "random", Kme = "boundingBox.upLeft", Lme = "boundingBox.lowRight", Mme = "org.eclipse.elk.stress.fixed", Nme = "org.eclipse.elk.stress.desiredEdgeLength", Ome = "org.eclipse.elk.stress.dimension", Pme = "org.eclipse.elk.stress.epsilon", Qme = "org.eclipse.elk.stress.iterationLimit", Rme = "org.eclipse.elk.stress", Sme = "ELK Stress", Tme = "org.eclipse.elk.nodeSize.minimum", Ume = "org.eclipse.elk.alg.force.stress", Vme = "Layered layout", Wme = "org.eclipse.elk.alg.layered", Xme = "org.eclipse.elk.alg.layered.compaction.components", Yme = "org.eclipse.elk.alg.layered.compaction.oned", Zme = "org.eclipse.elk.alg.layered.compaction.oned.algs", $me = "org.eclipse.elk.alg.layered.compaction.recthull", _me = "org.eclipse.elk.alg.layered.components", ane = "NONE", bne = { 3: 1, 6: 1, 4: 1, 9: 1, 5: 1, 122: 1 }, cne = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 106: 1, 120: 1 }, dne = "org.eclipse.elk.alg.layered.compound", ene = { 51: 1 }, fne = "org.eclipse.elk.alg.layered.graph", gne = " -> ", hne = "Not supported by LGraph", ine = "Port side is undefined", jne = { 3: 1, 6: 1, 4: 1, 5: 1, 474: 1, 141: 1, 106: 1, 120: 1 }, kne = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 193: 1, 203: 1, 106: 1, 120: 1 }, lne = { 3: 1, 6: 1, 4: 1, 5: 1, 141: 1, 1943: 1, 203: 1, 106: 1, 120: 1 }, mne = `([{"' \r
111725`, nne = `)]}"' \r
111726`, one2 = "The given string contains parts that cannot be parsed as numbers.", pne = "org.eclipse.elk.core.math", qne = { 3: 1, 4: 1, 142: 1, 207: 1, 414: 1 }, rne = { 3: 1, 4: 1, 116: 1, 207: 1, 414: 1 }, sne = "org.eclipse.elk.layered", tne = "org.eclipse.elk.alg.layered.graph.transform", une = "ElkGraphImporter", vne = "ElkGraphImporter/lambda$0$Type", wne = "ElkGraphImporter/lambda$1$Type", xne = "ElkGraphImporter/lambda$2$Type", yne = "ElkGraphImporter/lambda$4$Type", zne = "Node margin calculation", Ane = "org.eclipse.elk.alg.layered.intermediate", Bne = "ONE_SIDED_GREEDY_SWITCH", Cne = "TWO_SIDED_GREEDY_SWITCH", Dne = "No implementation is available for the layout processor ", Ene = "IntermediateProcessorStrategy", Fne = "Node '", Gne = "FIRST_SEPARATE", Hne = "LAST_SEPARATE", Ine = "Odd port side processing", Jne = "org.eclipse.elk.alg.layered.intermediate.compaction", Kne = "org.eclipse.elk.alg.layered.intermediate.greedyswitch", Lne = "org.eclipse.elk.alg.layered.p3order.counting", Mne = { 225: 1 }, Nne = "org.eclipse.elk.alg.layered.intermediate.loops", One = "org.eclipse.elk.alg.layered.intermediate.loops.ordering", Pne = "org.eclipse.elk.alg.layered.intermediate.loops.routing", Qne = "org.eclipse.elk.alg.layered.intermediate.preserveorder", Rne = "org.eclipse.elk.alg.layered.intermediate.wrapping", Sne = "org.eclipse.elk.alg.layered.options", Tne = "INTERACTIVE", Une = "DEPTH_FIRST", Vne = "EDGE_LENGTH", Wne = "SELF_LOOPS", Xne = "firstTryWithInitialOrder", Yne = "org.eclipse.elk.layered.directionCongruency", Zne = "org.eclipse.elk.layered.feedbackEdges", $ne = "org.eclipse.elk.layered.interactiveReferencePoint", _ne = "org.eclipse.elk.layered.mergeEdges", aoe = "org.eclipse.elk.layered.mergeHierarchyEdges", boe = "org.eclipse.elk.layered.allowNonFlowPortsToSwitchSides", coe = "org.eclipse.elk.layered.portSortingStrategy", doe = "org.eclipse.elk.layered.thoroughness", eoe = "org.eclipse.elk.layered.unnecessaryBendpoints", foe = "org.eclipse.elk.layered.generatePositionAndLayerIds", goe = "org.eclipse.elk.layered.cycleBreaking.strategy", hoe = "org.eclipse.elk.layered.layering.strategy", ioe = "org.eclipse.elk.layered.layering.layerConstraint", joe = "org.eclipse.elk.layered.layering.layerChoiceConstraint", koe = "org.eclipse.elk.layered.layering.layerId", loe = "org.eclipse.elk.layered.layering.minWidth.upperBoundOnWidth", moe = "org.eclipse.elk.layered.layering.minWidth.upperLayerEstimationScalingFactor", noe = "org.eclipse.elk.layered.layering.nodePromotion.strategy", ooe = "org.eclipse.elk.layered.layering.nodePromotion.maxIterations", poe = "org.eclipse.elk.layered.layering.coffmanGraham.layerBound", qoe = "org.eclipse.elk.layered.crossingMinimization.strategy", roe = "org.eclipse.elk.layered.crossingMinimization.forceNodeModelOrder", soe = "org.eclipse.elk.layered.crossingMinimization.hierarchicalSweepiness", toe = "org.eclipse.elk.layered.crossingMinimization.semiInteractive", uoe = "org.eclipse.elk.layered.crossingMinimization.positionChoiceConstraint", voe = "org.eclipse.elk.layered.crossingMinimization.positionId", woe = "org.eclipse.elk.layered.crossingMinimization.greedySwitch.activationThreshold", xoe = "org.eclipse.elk.layered.crossingMinimization.greedySwitch.type", yoe = "org.eclipse.elk.layered.crossingMinimization.greedySwitchHierarchical.type", zoe = "org.eclipse.elk.layered.nodePlacement.strategy", Aoe = "org.eclipse.elk.layered.nodePlacement.favorStraightEdges", Boe = "org.eclipse.elk.layered.nodePlacement.bk.edgeStraightening", Coe = "org.eclipse.elk.layered.nodePlacement.bk.fixedAlignment", Doe = "org.eclipse.elk.layered.nodePlacement.linearSegments.deflectionDampening", Eoe = "org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility", Foe = "org.eclipse.elk.layered.nodePlacement.networkSimplex.nodeFlexibility.default", Goe = "org.eclipse.elk.layered.edgeRouting.selfLoopDistribution", Hoe = "org.eclipse.elk.layered.edgeRouting.selfLoopOrdering", Ioe = "org.eclipse.elk.layered.edgeRouting.splines.mode", Joe = "org.eclipse.elk.layered.edgeRouting.splines.sloppy.layerSpacingFactor", Koe = "org.eclipse.elk.layered.edgeRouting.polyline.slopedEdgeZoneWidth", Loe = "org.eclipse.elk.layered.spacing.baseValue", Moe = "org.eclipse.elk.layered.spacing.edgeNodeBetweenLayers", Noe = "org.eclipse.elk.layered.spacing.edgeEdgeBetweenLayers", Ooe = "org.eclipse.elk.layered.spacing.nodeNodeBetweenLayers", Poe = "org.eclipse.elk.layered.priority.direction", Qoe = "org.eclipse.elk.layered.priority.shortness", Roe = "org.eclipse.elk.layered.priority.straightness", Soe = "org.eclipse.elk.layered.compaction.connectedComponents", Toe = "org.eclipse.elk.layered.compaction.postCompaction.strategy", Uoe = "org.eclipse.elk.layered.compaction.postCompaction.constraints", Voe = "org.eclipse.elk.layered.highDegreeNodes.treatment", Woe = "org.eclipse.elk.layered.highDegreeNodes.threshold", Xoe = "org.eclipse.elk.layered.highDegreeNodes.treeHeight", Yoe = "org.eclipse.elk.layered.wrapping.strategy", Zoe = "org.eclipse.elk.layered.wrapping.additionalEdgeSpacing", $oe = "org.eclipse.elk.layered.wrapping.correctionFactor", _oe = "org.eclipse.elk.layered.wrapping.cutting.strategy", ape = "org.eclipse.elk.layered.wrapping.cutting.cuts", bpe = "org.eclipse.elk.layered.wrapping.cutting.msd.freedom", cpe = "org.eclipse.elk.layered.wrapping.validify.strategy", dpe = "org.eclipse.elk.layered.wrapping.validify.forbiddenIndices", epe = "org.eclipse.elk.layered.wrapping.multiEdge.improveCuts", fpe = "org.eclipse.elk.layered.wrapping.multiEdge.distancePenalty", gpe = "org.eclipse.elk.layered.wrapping.multiEdge.improveWrappedEdges", hpe = "org.eclipse.elk.layered.edgeLabels.sideSelection", ipe = "org.eclipse.elk.layered.edgeLabels.centerLabelPlacementStrategy", jpe = "org.eclipse.elk.layered.considerModelOrder.strategy", kpe = "org.eclipse.elk.layered.considerModelOrder.noModelOrder", lpe = "org.eclipse.elk.layered.considerModelOrder.components", mpe = "org.eclipse.elk.layered.considerModelOrder.longEdgeStrategy", npe = "org.eclipse.elk.layered.considerModelOrder.crossingCounterNodeInfluence", ope = "org.eclipse.elk.layered.considerModelOrder.crossingCounterPortInfluence", ppe = "layering", qpe = "layering.minWidth", rpe = "layering.nodePromotion", spe = "crossingMinimization", tpe = "org.eclipse.elk.hierarchyHandling", upe = "crossingMinimization.greedySwitch", vpe = "nodePlacement", wpe = "nodePlacement.bk", xpe = "edgeRouting", ype = "org.eclipse.elk.edgeRouting", zpe = "spacing", Ape = "priority", Bpe = "compaction", Cpe = "compaction.postCompaction", Dpe = "Specifies whether and how post-process compaction is applied.", Epe = "highDegreeNodes", Fpe = "wrapping", Gpe = "wrapping.cutting", Hpe = "wrapping.validify", Ipe = "wrapping.multiEdge", Jpe = "edgeLabels", Kpe = "considerModelOrder", Lpe = "org.eclipse.elk.spacing.commentComment", Mpe = "org.eclipse.elk.spacing.commentNode", Npe = "org.eclipse.elk.spacing.edgeEdge", Ope = "org.eclipse.elk.spacing.edgeNode", Ppe = "org.eclipse.elk.spacing.labelLabel", Qpe = "org.eclipse.elk.spacing.labelPortHorizontal", Rpe = "org.eclipse.elk.spacing.labelPortVertical", Spe = "org.eclipse.elk.spacing.labelNode", Tpe = "org.eclipse.elk.spacing.nodeSelfLoop", Upe = "org.eclipse.elk.spacing.portPort", Vpe = "org.eclipse.elk.spacing.individual", Wpe = "org.eclipse.elk.port.borderOffset", Xpe = "org.eclipse.elk.noLayout", Ype = "org.eclipse.elk.port.side", Zpe = "org.eclipse.elk.debugMode", $pe = "org.eclipse.elk.alignment", _pe = "org.eclipse.elk.insideSelfLoops.activate", aqe = "org.eclipse.elk.insideSelfLoops.yo", bqe = "org.eclipse.elk.nodeSize.fixedGraphSize", cqe = "org.eclipse.elk.direction", dqe = "org.eclipse.elk.nodeLabels.padding", eqe = "org.eclipse.elk.portLabels.nextToPortIfPossible", fqe = "org.eclipse.elk.portLabels.treatAsGroup", gqe = "org.eclipse.elk.portAlignment.default", hqe = "org.eclipse.elk.portAlignment.north", iqe = "org.eclipse.elk.portAlignment.south", jqe = "org.eclipse.elk.portAlignment.west", kqe = "org.eclipse.elk.portAlignment.east", lqe = "org.eclipse.elk.contentAlignment", mqe = "org.eclipse.elk.junctionPoints", nqe = "org.eclipse.elk.edgeLabels.placement", oqe = "org.eclipse.elk.port.index", pqe = "org.eclipse.elk.commentBox", qqe = "org.eclipse.elk.hypernode", rqe = "org.eclipse.elk.port.anchor", sqe = "org.eclipse.elk.partitioning.activate", tqe = "org.eclipse.elk.partitioning.partition", uqe = "org.eclipse.elk.position", vqe = "org.eclipse.elk.margins", wqe = "org.eclipse.elk.spacing.portsSurrounding", xqe = "org.eclipse.elk.interactiveLayout", yqe = "org.eclipse.elk.core.util", zqe = { 3: 1, 4: 1, 5: 1, 593: 1 }, Aqe = "NETWORK_SIMPLEX", Bqe = { 123: 1, 51: 1 }, Cqe = "org.eclipse.elk.alg.layered.p1cycles", Dqe = "org.eclipse.elk.alg.layered.p2layers", Eqe = { 402: 1, 225: 1 }, Fqe = { 832: 1, 3: 1, 4: 1 }, Gqe = "org.eclipse.elk.alg.layered.p3order", Hqe = "org.eclipse.elk.alg.layered.p4nodes", Iqe = { 3: 1, 4: 1, 5: 1, 840: 1 }, Jqe = 1e-5, Kqe = "org.eclipse.elk.alg.layered.p4nodes.bk", Lqe = "org.eclipse.elk.alg.layered.p5edges", Mqe = "org.eclipse.elk.alg.layered.p5edges.orthogonal", Nqe = "org.eclipse.elk.alg.layered.p5edges.orthogonal.direction", Oqe = 1e-6, Pqe = "org.eclipse.elk.alg.layered.p5edges.splines", Qqe = 0.09999999999999998, Rqe = 1e-8, Sqe = 4.71238898038469, Tqe = 3.141592653589793, Uqe = "org.eclipse.elk.alg.mrtree", Vqe = "org.eclipse.elk.alg.mrtree.graph", Wqe = "org.eclipse.elk.alg.mrtree.intermediate", Xqe = "Set neighbors in level", Yqe = "DESCENDANTS", Zqe = "org.eclipse.elk.mrtree.weighting", $qe = "org.eclipse.elk.mrtree.searchOrder", _qe = "org.eclipse.elk.alg.mrtree.options", are = "org.eclipse.elk.mrtree", bre = "org.eclipse.elk.tree", cre = "org.eclipse.elk.alg.radial", dre = 6.283185307179586, ere = 5e-324, fre = "org.eclipse.elk.alg.radial.intermediate", gre = "org.eclipse.elk.alg.radial.intermediate.compaction", hre = { 3: 1, 4: 1, 5: 1, 106: 1 }, ire = "org.eclipse.elk.alg.radial.intermediate.optimization", jre = "No implementation is available for the layout option ", kre = "org.eclipse.elk.alg.radial.options", lre = "org.eclipse.elk.radial.orderId", mre = "org.eclipse.elk.radial.radius", nre = "org.eclipse.elk.radial.compactor", ore = "org.eclipse.elk.radial.compactionStepSize", pre = "org.eclipse.elk.radial.sorter", qre = "org.eclipse.elk.radial.wedgeCriteria", rre = "org.eclipse.elk.radial.optimizationCriteria", sre = "org.eclipse.elk.radial", tre = "org.eclipse.elk.alg.radial.p1position.wedge", ure = "org.eclipse.elk.alg.radial.sorting", vre = 5.497787143782138, wre = 3.9269908169872414, xre = 2.356194490192345, yre = "org.eclipse.elk.alg.rectpacking", zre = "org.eclipse.elk.alg.rectpacking.firstiteration", Are = "org.eclipse.elk.alg.rectpacking.options", Bre = "org.eclipse.elk.rectpacking.optimizationGoal", Cre = "org.eclipse.elk.rectpacking.lastPlaceShift", Dre = "org.eclipse.elk.rectpacking.currentPosition", Ere = "org.eclipse.elk.rectpacking.desiredPosition", Fre = "org.eclipse.elk.rectpacking.onlyFirstIteration", Gre = "org.eclipse.elk.rectpacking.rowCompaction", Hre = "org.eclipse.elk.rectpacking.expandToAspectRatio", Ire = "org.eclipse.elk.rectpacking.targetWidth", Jre = "org.eclipse.elk.expandNodes", Kre = "org.eclipse.elk.rectpacking", Lre = "org.eclipse.elk.alg.rectpacking.util", Mre = "No implementation available for ", Nre = "org.eclipse.elk.alg.spore", Ore = "org.eclipse.elk.alg.spore.options", Pre = "org.eclipse.elk.sporeCompaction", Qre = "org.eclipse.elk.underlyingLayoutAlgorithm", Rre = "org.eclipse.elk.processingOrder.treeConstruction", Sre = "org.eclipse.elk.processingOrder.spanningTreeCostFunction", Tre = "org.eclipse.elk.processingOrder.preferredRoot", Ure = "org.eclipse.elk.processingOrder.rootSelection", Vre = "org.eclipse.elk.structure.structureExtractionStrategy", Wre = "org.eclipse.elk.compaction.compactionStrategy", Xre = "org.eclipse.elk.compaction.orthogonal", Yre = "org.eclipse.elk.overlapRemoval.maxIterations", Zre = "org.eclipse.elk.overlapRemoval.runScanline", $re = "processingOrder", _re = "overlapRemoval", ase = "org.eclipse.elk.sporeOverlap", bse = "org.eclipse.elk.alg.spore.p1structure", cse = "org.eclipse.elk.alg.spore.p2processingorder", dse = "org.eclipse.elk.alg.spore.p3execution", ese = "Invalid index: ", fse = "org.eclipse.elk.core.alg", gse = { 331: 1 }, hse = { 288: 1 }, ise = "Make sure its type is registered with the ", jse = " utility class.", kse = "true", lse = "false", mse = "Couldn't clone property '", nse = 0.05, ose = "org.eclipse.elk.core.options", pse = 1.2999999523162842, qse = "org.eclipse.elk.box", rse = "org.eclipse.elk.box.packingMode", sse = "org.eclipse.elk.algorithm", tse = "org.eclipse.elk.resolvedAlgorithm", use = "org.eclipse.elk.bendPoints", vse = "org.eclipse.elk.labelManager", wse = "org.eclipse.elk.scaleFactor", xse = "org.eclipse.elk.animate", yse = "org.eclipse.elk.animTimeFactor", zse = "org.eclipse.elk.layoutAncestors", Ase = "org.eclipse.elk.maxAnimTime", Bse = "org.eclipse.elk.minAnimTime", Cse = "org.eclipse.elk.progressBar", Dse = "org.eclipse.elk.validateGraph", Ese = "org.eclipse.elk.validateOptions", Fse = "org.eclipse.elk.zoomToFit", Gse = "org.eclipse.elk.font.name", Hse = "org.eclipse.elk.font.size", Ise = "org.eclipse.elk.edge.type", Jse = "partitioning", Kse = "nodeLabels", Lse = "portAlignment", Mse = "nodeSize", Nse = "port", Ose = "portLabels", Pse = "insideSelfLoops", Qse = "org.eclipse.elk.fixed", Rse = "org.eclipse.elk.random", Sse = "port must have a parent node to calculate the port side", Tse = "The edge needs to have exactly one edge section. Found: ", Use = "org.eclipse.elk.core.util.adapters", Vse = "org.eclipse.emf.ecore", Wse = "org.eclipse.elk.graph", Xse = "EMapPropertyHolder", Yse = "ElkBendPoint", Zse = "ElkGraphElement", $se = "ElkConnectableShape", _se = "ElkEdge", ate = "ElkEdgeSection", bte = "EModelElement", cte = "ENamedElement", dte = "ElkLabel", ete = "ElkNode", fte = "ElkPort", gte = { 92: 1, 90: 1 }, hte = "org.eclipse.emf.common.notify.impl", ite = "The feature '", jte = "' is not a valid changeable feature", kte = "Expecting null", lte = "' is not a valid feature", mte = "The feature ID", nte = " is not a valid feature ID", ote = 32768, pte = { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1 }, qte = "org.eclipse.emf.ecore.impl", rte = "org.eclipse.elk.graph.impl", ste = "Recursive containment not allowed for ", tte = "The datatype '", ute = "' is not a valid classifier", vte = "The value '", wte = { 190: 1, 3: 1, 4: 1 }, xte = "The class '", yte = "http://www.eclipse.org/elk/ElkGraph", zte = 1024, Ate = "property", Bte = "value", Cte = "source", Dte = "properties", Ete = "identifier", Fte = "height", Gte = "width", Hte = "parent", Ite = "text", Jte = "children", Kte = "hierarchical", Lte = "sources", Mte = "targets", Nte = "sections", Ote = "bendPoints", Pte = "outgoingShape", Qte = "incomingShape", Rte = "outgoingSections", Ste = "incomingSections", Tte = "org.eclipse.emf.common.util", Ute = "Severe implementation error in the Json to ElkGraph importer.", Vte = "id", Wte = "org.eclipse.elk.graph.json", Xte = "Unhandled parameter types: ", Yte = "startPoint", Zte = "An edge must have at least one source and one target (edge id: '", $te = "').", _te = "Referenced edge section does not exist: ", aue = " (edge id: '", bue = "target", cue = "sourcePoint", due = "targetPoint", eue = "group", fue = "name", gue = "connectableShape cannot be null", hue2 = "edge cannot be null", iue = "Passed edge is not 'simple'.", jue = "org.eclipse.elk.graph.util", kue = "The 'no duplicates' constraint is violated", lue = "targetIndex=", mue = ", size=", nue = "sourceIndex=", oue = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1 }, pue = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 47: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 588: 1 }, que = "logging", rue = "measureExecutionTime", sue = "parser.parse.1", tue = "parser.parse.2", uue = "parser.next.1", vue = "parser.next.2", wue = "parser.next.3", xue = "parser.next.4", yue = "parser.factor.1", zue = "parser.factor.2", Aue = "parser.factor.3", Bue = "parser.factor.4", Cue = "parser.factor.5", Due = "parser.factor.6", Eue = "parser.atom.1", Fue = "parser.atom.2", Gue = "parser.atom.3", Hue = "parser.atom.4", Iue = "parser.atom.5", Jue = "parser.cc.1", Kue = "parser.cc.2", Lue = "parser.cc.3", Mue = "parser.cc.5", Nue = "parser.cc.6", Oue = "parser.cc.7", Pue = "parser.cc.8", Que = "parser.ope.1", Rue = "parser.ope.2", Sue = "parser.ope.3", Tue = "parser.descape.1", Uue = "parser.descape.2", Vue = "parser.descape.3", Wue = "parser.descape.4", Xue = "parser.descape.5", Yue = "parser.process.1", Zue = "parser.quantifier.1", $ue = "parser.quantifier.2", _ue = "parser.quantifier.3", ave = "parser.quantifier.4", bve = "parser.quantifier.5", cve = "org.eclipse.emf.common.notify", dve = { 415: 1, 672: 1 }, eve = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1 }, fve = { 366: 1, 143: 1 }, gve = "index=", hve = { 3: 1, 4: 1, 5: 1, 126: 1 }, ive = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 58: 1 }, jve = { 3: 1, 6: 1, 4: 1, 5: 1, 192: 1 }, kve = { 3: 1, 4: 1, 5: 1, 165: 1, 367: 1 }, lve = ";/?:@&=+$,", mve = "invalid authority: ", nve = "EAnnotation", ove = "ETypedElement", pve = "EStructuralFeature", qve = "EAttribute", rve = "EClassifier", sve = "EEnumLiteral", tve = "EGenericType", uve = "EOperation", vve = "EParameter", wve = "EReference", xve = "ETypeParameter", yve = "org.eclipse.emf.ecore.util", zve = { 76: 1 }, Ave = { 3: 1, 20: 1, 14: 1, 15: 1, 58: 1, 589: 1, 76: 1, 69: 1, 95: 1 }, Bve = "org.eclipse.emf.ecore.util.FeatureMap$Entry", Cve = 8192, Dve = 2048, Eve = "byte", Fve = "char", Gve = "double", Hve = "float", Ive = "int", Jve = "long", Kve = "short", Lve = "java.lang.Object", Mve = { 3: 1, 4: 1, 5: 1, 247: 1 }, Nve = { 3: 1, 4: 1, 5: 1, 673: 1 }, Ove = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 69: 1 }, Pve = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, Qve = "mixed", Rve = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData", Sve = "kind", Tve = { 3: 1, 4: 1, 5: 1, 674: 1 }, Uve = { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, Vve = { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 69: 1 }, Wve = { 47: 1, 125: 1, 279: 1 }, Xve = { 72: 1, 332: 1 }, Yve = "The value of type '", Zve = "' must be of type '", $ve = 1316, _ve = "http://www.eclipse.org/emf/2002/Ecore", awe = -32768, bwe = "constraints", cwe = "baseType", dwe = "getEStructuralFeature", ewe = "getFeatureID", fwe = "feature", gwe = "getOperationID", hwe = "operation", iwe = "defaultValue", jwe = "eTypeParameters", kwe = "isInstance", lwe = "getEEnumLiteral", mwe = "eContainingClass", nwe = { 55: 1 }, owe = { 3: 1, 4: 1, 5: 1, 119: 1 }, pwe = "org.eclipse.emf.ecore.resource", qwe = { 92: 1, 90: 1, 591: 1, 1935: 1 }, rwe = "org.eclipse.emf.ecore.resource.impl", swe = "unspecified", twe = "simple", uwe = "attribute", vwe = "attributeWildcard", wwe = "element", xwe = "elementWildcard", ywe = "collapse", zwe = "itemType", Awe = "namespace", Bwe = "##targetNamespace", Cwe = "whiteSpace", Dwe = "wildcards", Ewe = "http://www.eclipse.org/emf/2003/XMLType", Fwe = "##any", Gwe = "uninitialized", Hwe = "The multiplicity constraint is violated", Iwe = "org.eclipse.emf.ecore.xml.type", Jwe = "ProcessingInstruction", Kwe = "SimpleAnyType", Lwe = "XMLTypeDocumentRoot", Mwe = "org.eclipse.emf.ecore.xml.type.impl", Nwe = "INF", Owe = "processing", Pwe = "ENTITIES_._base", Qwe = "minLength", Rwe = "ENTITY", Swe = "NCName", Twe = "IDREFS_._base", Uwe = "integer", Vwe = "token", Wwe = "pattern", Xwe = "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*", Ywe = "\\i\\c*", Zwe = "[\\i-[:]][\\c-[:]]*", $we = "nonPositiveInteger", _we = "maxInclusive", axe = "NMTOKEN", bxe = "NMTOKENS_._base", cxe = "nonNegativeInteger", dxe = "minInclusive", exe = "normalizedString", fxe = "unsignedByte", gxe = "unsignedInt", hxe = "18446744073709551615", ixe = "unsignedShort", jxe = "processingInstruction", kxe = "org.eclipse.emf.ecore.xml.type.internal", lxe = 1114111, mxe = "Internal Error: shorthands: \\u", nxe = "xml:isDigit", oxe = "xml:isWord", pxe = "xml:isSpace", qxe = "xml:isNameChar", rxe = "xml:isInitialNameChar", sxe = "09٠٩۰۹०९০৯੦੯૦૯୦୯௧௯౦౯೦೯൦൯๐๙໐໙༠༩", txe = "AZazÀÖØöøıĴľŁňŊžƀǃǍǰǴǵǺȗɐʨʻˁΆΆΈΊΌΌΎΡΣώϐϖϚϚϜϜϞϞϠϠϢϳЁЌЎяёќўҁҐӄӇӈӋӌӐӫӮӵӸӹԱՖՙՙաֆאתװײءغفيٱڷںھۀێېۓەەۥۦअहऽऽक़ॡঅঌএঐওনপরললশহড়ঢ়য়ৡৰৱਅਊਏਐਓਨਪਰਲਲ਼ਵਸ਼ਸਹਖ਼ੜਫ਼ਫ਼ੲੴઅઋઍઍએઑઓનપરલળવહઽઽૠૠଅଌଏଐଓନପରଲଳଶହଽଽଡ଼ଢ଼ୟୡஅஊஎஐஒகஙசஜஜஞடணதநபமவஷஹఅఌఎఐఒనపళవహౠౡಅಌಎಐಒನಪಳವಹೞೞೠೡഅഌഎഐഒനപഹൠൡกฮะะาำเๅກຂຄຄງຈຊຊຍຍດທນຟມຣລລວວສຫອຮະະາຳຽຽເໄཀཇཉཀྵႠჅაჶᄀᄀᄂᄃᄅᄇᄉᄉᄋᄌᄎᄒᄼᄼᄾᄾᅀᅀᅌᅌᅎᅎᅐᅐᅔᅕᅙᅙᅟᅡᅣᅣᅥᅥᅧᅧᅩᅩᅭᅮᅲᅳᅵᅵᆞᆞᆨᆨᆫᆫᆮᆯᆷᆸᆺᆺᆼᇂᇫᇫᇰᇰᇹᇹḀẛẠỹἀἕἘἝἠὅὈὍὐὗὙὙὛὛὝὝὟώᾀᾴᾶᾼιιῂῄῆῌῐΐῖΊῠῬῲῴῶῼΩΩKÅ℮℮ↀↂ〇〇〡〩ぁゔァヺㄅㄬ一龥가힣", uxe = "Private Use", vxe = "ASSIGNED", wxe = "\0€ÿĀſƀɏɐʯʰ˿̀ͯͰϿЀӿ԰֏֐׿؀ۿ܀ݏހ޿ऀॿঀ৿਀੿઀૿଀୿஀௿ఀ౿ಀ೿ഀൿ඀෿฀๿຀໿ༀ࿿က႟Ⴀჿᄀᇿሀ፿Ꭰ᏿᐀ᙿ ᚟ᚠ᛿ក៿᠀᢯Ḁỿἀ῿ ⁰₟₠⃏⃐⃿℀⅏⅐↏←⇿∀⋿⌀⏿␀␿⑀⑟①⓿─╿▀▟■◿☀⛿✀➿⠀⣿⺀⻿⼀⿟⿰⿿ 〿぀ゟ゠ヿ㄀ㄯ㄰㆏㆐㆟ㆠㆿ㈀㋿㌀㏿㐀䶵一鿿ꀀ꒏꒐꓏가힣豈﫿ffﭏﭐ﷿︠︯︰﹏﹐﹯ﹰ﻾\uFEFF\uFEFF＀￯", xxe = "UNASSIGNED", yxe = { 3: 1, 117: 1 }, zxe = "org.eclipse.emf.ecore.xml.type.util", Axe = { 3: 1, 4: 1, 5: 1, 368: 1 }, Bxe = "org.eclipse.xtext.xbase.lib", Cxe = "Cannot add elements to a Range", Dxe = "Cannot set elements in a Range", Exe = "Cannot remove elements from a Range", Fxe = "locale", Gxe = "default", Hxe = "user.agent";
111727 var _2, _bb, Wbb;
111728 $wnd.goog = $wnd.goog || {};
111729 $wnd.goog.global = $wnd.goog.global || $wnd;
111730 acb();
111731 bcb(1, null, {}, nb);
111732 _2.Fb = function ob(a) {
111733 return mb(this, a);
111734 };
111735 _2.Gb = function qb() {
111736 return this.gm;
111737 };
111738 _2.Hb = function sb() {
111739 return FCb(this);
111740 };
111741 _2.Ib = function ub() {
111742 var a;
111743 return hdb(rb(this)) + "@" + (a = tb(this) >>> 0, a.toString(16));
111744 };
111745 _2.equals = function(a) {
111746 return this.Fb(a);
111747 };
111748 _2.hashCode = function() {
111749 return this.Hb();
111750 };
111751 _2.toString = function() {
111752 return this.Ib();
111753 };
111754 var xD, yD, zD;
111755 bcb(290, 1, { 290: 1, 2026: 1 }, jdb);
111756 _2.le = function kdb(a) {
111757 var b;
111758 b = new jdb();
111759 b.i = 4;
111760 a > 1 ? b.c = rdb(this, a - 1) : b.c = this;
111761 return b;
111762 };
111763 _2.me = function qdb() {
111764 fdb(this);
111765 return this.b;
111766 };
111767 _2.ne = function sdb() {
111768 return hdb(this);
111769 };
111770 _2.oe = function udb() {
111771 return fdb(this), this.k;
111772 };
111773 _2.pe = function wdb() {
111774 return (this.i & 4) != 0;
111775 };
111776 _2.qe = function xdb() {
111777 return (this.i & 1) != 0;
111778 };
111779 _2.Ib = function Adb() {
111780 return idb(this);
111781 };
111782 _2.i = 0;
111783 var SI = mdb(Phe, "Object", 1);
111784 var AI = mdb(Phe, "Class", 290);
111785 bcb(1998, 1, Qhe);
111786 mdb(Rhe, "Optional", 1998);
111787 bcb(1170, 1998, Qhe, xb);
111788 _2.Fb = function yb(a) {
111789 return a === this;
111790 };
111791 _2.Hb = function zb() {
111792 return 2040732332;
111793 };
111794 _2.Ib = function Ab() {
111795 return "Optional.absent()";
111796 };
111797 _2.Jb = function Bb(a) {
111798 Qb(a);
111799 return wb(), vb;
111800 };
111801 var vb;
111802 mdb(Rhe, "Absent", 1170);
111803 bcb(628, 1, {}, Gb);
111804 mdb(Rhe, "Joiner", 628);
111805 var _D = odb(Rhe, "Predicate");
111806 bcb(582, 1, { 169: 1, 582: 1, 3: 1, 45: 1 }, Yb);
111807 _2.Mb = function ac(a) {
111808 return Xb(this, a);
111809 };
111810 _2.Lb = function Zb(a) {
111811 return Xb(this, a);
111812 };
111813 _2.Fb = function $b(a) {
111814 var b;
111815 if (JD(a, 582)) {
111816 b = BD(a, 582);
111817 return At(this.a, b.a);
111818 }
111819 return false;
111820 };
111821 _2.Hb = function _b() {
111822 return qmb(this.a) + 306654252;
111823 };
111824 _2.Ib = function bc() {
111825 return Wb(this.a);
111826 };
111827 mdb(Rhe, "Predicates/AndPredicate", 582);
111828 bcb(408, 1998, { 408: 1, 3: 1 }, cc);
111829 _2.Fb = function dc(a) {
111830 var b;
111831 if (JD(a, 408)) {
111832 b = BD(a, 408);
111833 return pb(this.a, b.a);
111834 }
111835 return false;
111836 };
111837 _2.Hb = function ec() {
111838 return 1502476572 + tb(this.a);
111839 };
111840 _2.Ib = function fc() {
111841 return Whe + this.a + ")";
111842 };
111843 _2.Jb = function gc(a) {
111844 return new cc(Rb(a.Kb(this.a), "the Function passed to Optional.transform() must not return null."));
111845 };
111846 mdb(Rhe, "Present", 408);
111847 bcb(198, 1, Yhe);
111848 _2.Nb = function kc(a) {
111849 Rrb(this, a);
111850 };
111851 _2.Qb = function lc() {
111852 jc();
111853 };
111854 mdb(Zhe, "UnmodifiableIterator", 198);
111855 bcb(1978, 198, $he);
111856 _2.Qb = function nc() {
111857 jc();
111858 };
111859 _2.Rb = function mc(a) {
111860 throw vbb(new bgb());
111861 };
111862 _2.Wb = function oc(a) {
111863 throw vbb(new bgb());
111864 };
111865 mdb(Zhe, "UnmodifiableListIterator", 1978);
111866 bcb(386, 1978, $he);
111867 _2.Ob = function rc() {
111868 return this.c < this.d;
111869 };
111870 _2.Sb = function sc() {
111871 return this.c > 0;
111872 };
111873 _2.Pb = function tc() {
111874 if (this.c >= this.d) {
111875 throw vbb(new utb());
111876 }
111877 return this.Xb(this.c++);
111878 };
111879 _2.Tb = function uc() {
111880 return this.c;
111881 };
111882 _2.Ub = function vc() {
111883 if (this.c <= 0) {
111884 throw vbb(new utb());
111885 }
111886 return this.Xb(--this.c);
111887 };
111888 _2.Vb = function wc() {
111889 return this.c - 1;
111890 };
111891 _2.c = 0;
111892 _2.d = 0;
111893 mdb(Zhe, "AbstractIndexedListIterator", 386);
111894 bcb(699, 198, Yhe);
111895 _2.Ob = function Ac() {
111896 return xc(this);
111897 };
111898 _2.Pb = function Bc() {
111899 return yc(this);
111900 };
111901 _2.e = 1;
111902 mdb(Zhe, "AbstractIterator", 699);
111903 bcb(1986, 1, { 224: 1 });
111904 _2.Zb = function Hc() {
111905 var a;
111906 return a = this.f, !a ? this.f = this.ac() : a;
111907 };
111908 _2.Fb = function Ic(a) {
111909 return hw(this, a);
111910 };
111911 _2.Hb = function Jc() {
111912 return tb(this.Zb());
111913 };
111914 _2.dc = function Kc() {
111915 return this.gc() == 0;
111916 };
111917 _2.ec = function Lc() {
111918 return Ec(this);
111919 };
111920 _2.Ib = function Mc() {
111921 return fcb(this.Zb());
111922 };
111923 mdb(Zhe, "AbstractMultimap", 1986);
111924 bcb(726, 1986, _he);
111925 _2.$b = function Xc() {
111926 Nc(this);
111927 };
111928 _2._b = function Yc(a) {
111929 return Oc(this, a);
111930 };
111931 _2.ac = function Zc() {
111932 return new ne(this, this.c);
111933 };
111934 _2.ic = function $c(a) {
111935 return this.hc();
111936 };
111937 _2.bc = function _c() {
111938 return new zf(this, this.c);
111939 };
111940 _2.jc = function ad() {
111941 return this.mc(this.hc());
111942 };
111943 _2.kc = function bd() {
111944 return new Hd(this);
111945 };
111946 _2.lc = function cd() {
111947 return Yj(this.c.vc().Nc(), new $g(), 64, this.d);
111948 };
111949 _2.cc = function dd(a) {
111950 return Qc(this, a);
111951 };
111952 _2.fc = function gd(a) {
111953 return Sc(this, a);
111954 };
111955 _2.gc = function hd() {
111956 return this.d;
111957 };
111958 _2.mc = function jd(a) {
111959 return mmb(), new lnb(a);
111960 };
111961 _2.nc = function kd() {
111962 return new Dd(this);
111963 };
111964 _2.oc = function ld() {
111965 return Yj(this.c.Cc().Nc(), new Fd(), 64, this.d);
111966 };
111967 _2.pc = function md(a, b) {
111968 return new dg(this, a, b, null);
111969 };
111970 _2.d = 0;
111971 mdb(Zhe, "AbstractMapBasedMultimap", 726);
111972 bcb(1631, 726, _he);
111973 _2.hc = function pd() {
111974 return new Skb(this.a);
111975 };
111976 _2.jc = function qd() {
111977 return mmb(), mmb(), jmb;
111978 };
111979 _2.cc = function sd(a) {
111980 return BD(Qc(this, a), 15);
111981 };
111982 _2.fc = function ud(a) {
111983 return BD(Sc(this, a), 15);
111984 };
111985 _2.Zb = function od() {
111986 return nd(this);
111987 };
111988 _2.Fb = function rd(a) {
111989 return hw(this, a);
111990 };
111991 _2.qc = function td(a) {
111992 return BD(Qc(this, a), 15);
111993 };
111994 _2.rc = function vd(a) {
111995 return BD(Sc(this, a), 15);
111996 };
111997 _2.mc = function wd(a) {
111998 return vmb(BD(a, 15));
111999 };
112000 _2.pc = function xd(a, b) {
112001 return Vc(this, a, BD(b, 15), null);
112002 };
112003 mdb(Zhe, "AbstractListMultimap", 1631);
112004 bcb(732, 1, aie);
112005 _2.Nb = function zd(a) {
112006 Rrb(this, a);
112007 };
112008 _2.Ob = function Ad() {
112009 return this.c.Ob() || this.e.Ob();
112010 };
112011 _2.Pb = function Bd() {
112012 var a;
112013 if (!this.e.Ob()) {
112014 a = BD(this.c.Pb(), 42);
112015 this.b = a.cd();
112016 this.a = BD(a.dd(), 14);
112017 this.e = this.a.Kc();
112018 }
112019 return this.sc(this.b, this.e.Pb());
112020 };
112021 _2.Qb = function Cd() {
112022 this.e.Qb();
112023 this.a.dc() && this.c.Qb();
112024 --this.d.d;
112025 };
112026 mdb(Zhe, "AbstractMapBasedMultimap/Itr", 732);
112027 bcb(1099, 732, aie, Dd);
112028 _2.sc = function Ed(a, b) {
112029 return b;
112030 };
112031 mdb(Zhe, "AbstractMapBasedMultimap/1", 1099);
112032 bcb(1100, 1, {}, Fd);
112033 _2.Kb = function Gd(a) {
112034 return BD(a, 14).Nc();
112035 };
112036 mdb(Zhe, "AbstractMapBasedMultimap/1methodref$spliterator$Type", 1100);
112037 bcb(1101, 732, aie, Hd);
112038 _2.sc = function Id(a, b) {
112039 return new Wo(a, b);
112040 };
112041 mdb(Zhe, "AbstractMapBasedMultimap/2", 1101);
112042 var DK = odb(bie, "Map");
112043 bcb(1967, 1, cie);
112044 _2.wc = function Td(a) {
112045 stb(this, a);
112046 };
112047 _2.yc = function $d(a, b, c2) {
112048 return ttb(this, a, b, c2);
112049 };
112050 _2.$b = function Od() {
112051 this.vc().$b();
112052 };
112053 _2.tc = function Pd(a) {
112054 return Jd(this, a);
112055 };
112056 _2._b = function Qd(a) {
112057 return !!Kd(this, a, false);
112058 };
112059 _2.uc = function Rd(a) {
112060 var b, c2, d;
112061 for (c2 = this.vc().Kc(); c2.Ob(); ) {
112062 b = BD(c2.Pb(), 42);
112063 d = b.dd();
112064 if (PD(a) === PD(d) || a != null && pb(a, d)) {
112065 return true;
112066 }
112067 }
112068 return false;
112069 };
112070 _2.Fb = function Sd(a) {
112071 var b, c2, d;
112072 if (a === this) {
112073 return true;
112074 }
112075 if (!JD(a, 83)) {
112076 return false;
112077 }
112078 d = BD(a, 83);
112079 if (this.gc() != d.gc()) {
112080 return false;
112081 }
112082 for (c2 = d.vc().Kc(); c2.Ob(); ) {
112083 b = BD(c2.Pb(), 42);
112084 if (!this.tc(b)) {
112085 return false;
112086 }
112087 }
112088 return true;
112089 };
112090 _2.xc = function Ud(a) {
112091 return Wd(Kd(this, a, false));
112092 };
112093 _2.Hb = function Xd() {
112094 return pmb(this.vc());
112095 };
112096 _2.dc = function Yd() {
112097 return this.gc() == 0;
112098 };
112099 _2.ec = function Zd() {
112100 return new Pib(this);
112101 };
112102 _2.zc = function _d(a, b) {
112103 throw vbb(new cgb("Put not supported on this map"));
112104 };
112105 _2.Ac = function ae(a) {
112106 Ld(this, a);
112107 };
112108 _2.Bc = function be(a) {
112109 return Wd(Kd(this, a, true));
112110 };
112111 _2.gc = function ce() {
112112 return this.vc().gc();
112113 };
112114 _2.Ib = function de() {
112115 return Md(this);
112116 };
112117 _2.Cc = function ee() {
112118 return new $ib(this);
112119 };
112120 mdb(bie, "AbstractMap", 1967);
112121 bcb(1987, 1967, cie);
112122 _2.bc = function ge() {
112123 return new rf(this);
112124 };
112125 _2.vc = function he() {
112126 return fe(this);
112127 };
112128 _2.ec = function ie() {
112129 var a;
112130 a = this.g;
112131 return !a ? this.g = this.bc() : a;
112132 };
112133 _2.Cc = function je() {
112134 var a;
112135 a = this.i;
112136 return !a ? this.i = new Zv(this) : a;
112137 };
112138 mdb(Zhe, "Maps/ViewCachingAbstractMap", 1987);
112139 bcb(389, 1987, cie, ne);
112140 _2.xc = function se(a) {
112141 return ke(this, a);
112142 };
112143 _2.Bc = function ve(a) {
112144 return le(this, a);
112145 };
112146 _2.$b = function oe() {
112147 this.d == this.e.c ? this.e.$b() : ir(new mf(this));
112148 };
112149 _2._b = function pe(a) {
112150 return Gv(this.d, a);
112151 };
112152 _2.Ec = function qe() {
112153 return new df(this);
112154 };
112155 _2.Dc = function() {
112156 return this.Ec();
112157 };
112158 _2.Fb = function re2(a) {
112159 return this === a || pb(this.d, a);
112160 };
112161 _2.Hb = function te() {
112162 return tb(this.d);
112163 };
112164 _2.ec = function ue() {
112165 return this.e.ec();
112166 };
112167 _2.gc = function we() {
112168 return this.d.gc();
112169 };
112170 _2.Ib = function xe() {
112171 return fcb(this.d);
112172 };
112173 mdb(Zhe, "AbstractMapBasedMultimap/AsMap", 389);
112174 var KI = odb(Phe, "Iterable");
112175 bcb(28, 1, die);
112176 _2.Jc = function Le(a) {
112177 reb(this, a);
112178 };
112179 _2.Lc = function Ne() {
112180 return this.Oc();
112181 };
112182 _2.Nc = function Pe() {
112183 return new Kub(this, 0);
112184 };
112185 _2.Oc = function Qe() {
112186 return new YAb(null, this.Nc());
112187 };
112188 _2.Fc = function Ge(a) {
112189 throw vbb(new cgb("Add not supported on this collection"));
112190 };
112191 _2.Gc = function He(a) {
112192 return ye(this, a);
112193 };
112194 _2.$b = function Ie() {
112195 Ae(this);
112196 };
112197 _2.Hc = function Je(a) {
112198 return ze(this, a, false);
112199 };
112200 _2.Ic = function Ke(a) {
112201 return Be(this, a);
112202 };
112203 _2.dc = function Me() {
112204 return this.gc() == 0;
112205 };
112206 _2.Mc = function Oe(a) {
112207 return ze(this, a, true);
112208 };
112209 _2.Pc = function Re() {
112210 return De(this);
112211 };
112212 _2.Qc = function Se(a) {
112213 return Ee(this, a);
112214 };
112215 _2.Ib = function Te() {
112216 return Fe(this);
112217 };
112218 mdb(bie, "AbstractCollection", 28);
112219 var LK = odb(bie, "Set");
112220 bcb(eie, 28, fie);
112221 _2.Nc = function Ye() {
112222 return new Kub(this, 1);
112223 };
112224 _2.Fb = function We(a) {
112225 return Ue(this, a);
112226 };
112227 _2.Hb = function Xe() {
112228 return pmb(this);
112229 };
112230 mdb(bie, "AbstractSet", eie);
112231 bcb(1970, eie, fie);
112232 mdb(Zhe, "Sets/ImprovedAbstractSet", 1970);
112233 bcb(1971, 1970, fie);
112234 _2.$b = function $e() {
112235 this.Rc().$b();
112236 };
112237 _2.Hc = function _e(a) {
112238 return Ze(this, a);
112239 };
112240 _2.dc = function af() {
112241 return this.Rc().dc();
112242 };
112243 _2.Mc = function bf(a) {
112244 var b;
112245 if (this.Hc(a)) {
112246 b = BD(a, 42);
112247 return this.Rc().ec().Mc(b.cd());
112248 }
112249 return false;
112250 };
112251 _2.gc = function cf() {
112252 return this.Rc().gc();
112253 };
112254 mdb(Zhe, "Maps/EntrySet", 1971);
112255 bcb(1097, 1971, fie, df);
112256 _2.Hc = function ef(a) {
112257 return Ck(this.a.d.vc(), a);
112258 };
112259 _2.Kc = function ff() {
112260 return new mf(this.a);
112261 };
112262 _2.Rc = function gf() {
112263 return this.a;
112264 };
112265 _2.Mc = function hf(a) {
112266 var b;
112267 if (!Ck(this.a.d.vc(), a)) {
112268 return false;
112269 }
112270 b = BD(a, 42);
112271 Tc(this.a.e, b.cd());
112272 return true;
112273 };
112274 _2.Nc = function jf() {
112275 return $j(this.a.d.vc().Nc(), new kf(this.a));
112276 };
112277 mdb(Zhe, "AbstractMapBasedMultimap/AsMap/AsMapEntries", 1097);
112278 bcb(1098, 1, {}, kf);
112279 _2.Kb = function lf(a) {
112280 return me(this.a, BD(a, 42));
112281 };
112282 mdb(Zhe, "AbstractMapBasedMultimap/AsMap/AsMapEntries/0methodref$wrapEntry$Type", 1098);
112283 bcb(730, 1, aie, mf);
112284 _2.Nb = function nf(a) {
112285 Rrb(this, a);
112286 };
112287 _2.Pb = function pf() {
112288 var a;
112289 return a = BD(this.b.Pb(), 42), this.a = BD(a.dd(), 14), me(this.c, a);
112290 };
112291 _2.Ob = function of() {
112292 return this.b.Ob();
112293 };
112294 _2.Qb = function qf() {
112295 Vb(!!this.a);
112296 this.b.Qb();
112297 this.c.e.d -= this.a.gc();
112298 this.a.$b();
112299 this.a = null;
112300 };
112301 mdb(Zhe, "AbstractMapBasedMultimap/AsMap/AsMapIterator", 730);
112302 bcb(532, 1970, fie, rf);
112303 _2.$b = function sf() {
112304 this.b.$b();
112305 };
112306 _2.Hc = function tf(a) {
112307 return this.b._b(a);
112308 };
112309 _2.Jc = function uf(a) {
112310 Qb(a);
112311 this.b.wc(new Xv(a));
112312 };
112313 _2.dc = function vf() {
112314 return this.b.dc();
112315 };
112316 _2.Kc = function wf() {
112317 return new Mv(this.b.vc().Kc());
112318 };
112319 _2.Mc = function xf(a) {
112320 if (this.b._b(a)) {
112321 this.b.Bc(a);
112322 return true;
112323 }
112324 return false;
112325 };
112326 _2.gc = function yf() {
112327 return this.b.gc();
112328 };
112329 mdb(Zhe, "Maps/KeySet", 532);
112330 bcb(318, 532, fie, zf);
112331 _2.$b = function Af() {
112332 var a;
112333 ir((a = this.b.vc().Kc(), new Hf(this, a)));
112334 };
112335 _2.Ic = function Bf(a) {
112336 return this.b.ec().Ic(a);
112337 };
112338 _2.Fb = function Cf(a) {
112339 return this === a || pb(this.b.ec(), a);
112340 };
112341 _2.Hb = function Df() {
112342 return tb(this.b.ec());
112343 };
112344 _2.Kc = function Ef() {
112345 var a;
112346 return a = this.b.vc().Kc(), new Hf(this, a);
112347 };
112348 _2.Mc = function Ff(a) {
112349 var b, c2;
112350 c2 = 0;
112351 b = BD(this.b.Bc(a), 14);
112352 if (b) {
112353 c2 = b.gc();
112354 b.$b();
112355 this.a.d -= c2;
112356 }
112357 return c2 > 0;
112358 };
112359 _2.Nc = function Gf() {
112360 return this.b.ec().Nc();
112361 };
112362 mdb(Zhe, "AbstractMapBasedMultimap/KeySet", 318);
112363 bcb(731, 1, aie, Hf);
112364 _2.Nb = function If(a) {
112365 Rrb(this, a);
112366 };
112367 _2.Ob = function Jf() {
112368 return this.c.Ob();
112369 };
112370 _2.Pb = function Kf() {
112371 this.a = BD(this.c.Pb(), 42);
112372 return this.a.cd();
112373 };
112374 _2.Qb = function Lf() {
112375 var a;
112376 Vb(!!this.a);
112377 a = BD(this.a.dd(), 14);
112378 this.c.Qb();
112379 this.b.a.d -= a.gc();
112380 a.$b();
112381 this.a = null;
112382 };
112383 mdb(Zhe, "AbstractMapBasedMultimap/KeySet/1", 731);
112384 bcb(491, 389, { 83: 1, 161: 1 }, Mf);
112385 _2.bc = function Nf() {
112386 return this.Sc();
112387 };
112388 _2.ec = function Pf() {
112389 return this.Tc();
112390 };
112391 _2.Sc = function Of() {
112392 return new Yf(this.c, this.Uc());
112393 };
112394 _2.Tc = function Qf() {
112395 var a;
112396 return a = this.b, !a ? this.b = this.Sc() : a;
112397 };
112398 _2.Uc = function Rf() {
112399 return BD(this.d, 161);
112400 };
112401 mdb(Zhe, "AbstractMapBasedMultimap/SortedAsMap", 491);
112402 bcb(542, 491, gie, Sf);
112403 _2.bc = function Tf() {
112404 return new $f(this.a, BD(BD(this.d, 161), 171));
112405 };
112406 _2.Sc = function Uf() {
112407 return new $f(this.a, BD(BD(this.d, 161), 171));
112408 };
112409 _2.ec = function Vf() {
112410 var a;
112411 return a = this.b, BD(!a ? this.b = new $f(this.a, BD(BD(this.d, 161), 171)) : a, 271);
112412 };
112413 _2.Tc = function Wf() {
112414 var a;
112415 return a = this.b, BD(!a ? this.b = new $f(this.a, BD(BD(this.d, 161), 171)) : a, 271);
112416 };
112417 _2.Uc = function Xf() {
112418 return BD(BD(this.d, 161), 171);
112419 };
112420 mdb(Zhe, "AbstractMapBasedMultimap/NavigableAsMap", 542);
112421 bcb(490, 318, hie, Yf);
112422 _2.Nc = function Zf() {
112423 return this.b.ec().Nc();
112424 };
112425 mdb(Zhe, "AbstractMapBasedMultimap/SortedKeySet", 490);
112426 bcb(388, 490, iie, $f);
112427 mdb(Zhe, "AbstractMapBasedMultimap/NavigableKeySet", 388);
112428 bcb(541, 28, die, dg);
112429 _2.Fc = function eg(a) {
112430 var b, c2;
112431 ag(this);
112432 c2 = this.d.dc();
112433 b = this.d.Fc(a);
112434 if (b) {
112435 ++this.f.d;
112436 c2 && _f(this);
112437 }
112438 return b;
112439 };
112440 _2.Gc = function fg(a) {
112441 var b, c2, d;
112442 if (a.dc()) {
112443 return false;
112444 }
112445 d = (ag(this), this.d.gc());
112446 b = this.d.Gc(a);
112447 if (b) {
112448 c2 = this.d.gc();
112449 this.f.d += c2 - d;
112450 d == 0 && _f(this);
112451 }
112452 return b;
112453 };
112454 _2.$b = function gg() {
112455 var a;
112456 a = (ag(this), this.d.gc());
112457 if (a == 0) {
112458 return;
112459 }
112460 this.d.$b();
112461 this.f.d -= a;
112462 bg(this);
112463 };
112464 _2.Hc = function hg(a) {
112465 ag(this);
112466 return this.d.Hc(a);
112467 };
112468 _2.Ic = function ig(a) {
112469 ag(this);
112470 return this.d.Ic(a);
112471 };
112472 _2.Fb = function jg(a) {
112473 if (a === this) {
112474 return true;
112475 }
112476 ag(this);
112477 return pb(this.d, a);
112478 };
112479 _2.Hb = function kg() {
112480 ag(this);
112481 return tb(this.d);
112482 };
112483 _2.Kc = function lg() {
112484 ag(this);
112485 return new Gg(this);
112486 };
112487 _2.Mc = function mg(a) {
112488 var b;
112489 ag(this);
112490 b = this.d.Mc(a);
112491 if (b) {
112492 --this.f.d;
112493 bg(this);
112494 }
112495 return b;
112496 };
112497 _2.gc = function ng() {
112498 return cg(this);
112499 };
112500 _2.Nc = function og() {
112501 return ag(this), this.d.Nc();
112502 };
112503 _2.Ib = function pg() {
112504 ag(this);
112505 return fcb(this.d);
112506 };
112507 mdb(Zhe, "AbstractMapBasedMultimap/WrappedCollection", 541);
112508 var yK = odb(bie, "List");
112509 bcb(728, 541, { 20: 1, 28: 1, 14: 1, 15: 1 }, qg);
112510 _2.ad = function zg(a) {
112511 ktb(this, a);
112512 };
112513 _2.Nc = function Ag() {
112514 return ag(this), this.d.Nc();
112515 };
112516 _2.Vc = function rg(a, b) {
112517 var c2;
112518 ag(this);
112519 c2 = this.d.dc();
112520 BD(this.d, 15).Vc(a, b);
112521 ++this.a.d;
112522 c2 && _f(this);
112523 };
112524 _2.Wc = function sg(a, b) {
112525 var c2, d, e;
112526 if (b.dc()) {
112527 return false;
112528 }
112529 e = (ag(this), this.d.gc());
112530 c2 = BD(this.d, 15).Wc(a, b);
112531 if (c2) {
112532 d = this.d.gc();
112533 this.a.d += d - e;
112534 e == 0 && _f(this);
112535 }
112536 return c2;
112537 };
112538 _2.Xb = function tg(a) {
112539 ag(this);
112540 return BD(this.d, 15).Xb(a);
112541 };
112542 _2.Xc = function ug(a) {
112543 ag(this);
112544 return BD(this.d, 15).Xc(a);
112545 };
112546 _2.Yc = function vg() {
112547 ag(this);
112548 return new Mg(this);
112549 };
112550 _2.Zc = function wg(a) {
112551 ag(this);
112552 return new Ng(this, a);
112553 };
112554 _2.$c = function xg(a) {
112555 var b;
112556 ag(this);
112557 b = BD(this.d, 15).$c(a);
112558 --this.a.d;
112559 bg(this);
112560 return b;
112561 };
112562 _2._c = function yg(a, b) {
112563 ag(this);
112564 return BD(this.d, 15)._c(a, b);
112565 };
112566 _2.bd = function Bg(a, b) {
112567 ag(this);
112568 return Vc(this.a, this.e, BD(this.d, 15).bd(a, b), !this.b ? this : this.b);
112569 };
112570 mdb(Zhe, "AbstractMapBasedMultimap/WrappedList", 728);
112571 bcb(1096, 728, { 20: 1, 28: 1, 14: 1, 15: 1, 54: 1 }, Cg);
112572 mdb(Zhe, "AbstractMapBasedMultimap/RandomAccessWrappedList", 1096);
112573 bcb(620, 1, aie, Gg);
112574 _2.Nb = function Ig(a) {
112575 Rrb(this, a);
112576 };
112577 _2.Ob = function Jg() {
112578 Fg(this);
112579 return this.b.Ob();
112580 };
112581 _2.Pb = function Kg() {
112582 Fg(this);
112583 return this.b.Pb();
112584 };
112585 _2.Qb = function Lg() {
112586 Eg(this);
112587 };
112588 mdb(Zhe, "AbstractMapBasedMultimap/WrappedCollection/WrappedIterator", 620);
112589 bcb(729, 620, jie, Mg, Ng);
112590 _2.Qb = function Tg() {
112591 Eg(this);
112592 };
112593 _2.Rb = function Og(a) {
112594 var b;
112595 b = cg(this.a) == 0;
112596 (Fg(this), BD(this.b, 125)).Rb(a);
112597 ++this.a.a.d;
112598 b && _f(this.a);
112599 };
112600 _2.Sb = function Pg() {
112601 return (Fg(this), BD(this.b, 125)).Sb();
112602 };
112603 _2.Tb = function Qg() {
112604 return (Fg(this), BD(this.b, 125)).Tb();
112605 };
112606 _2.Ub = function Rg() {
112607 return (Fg(this), BD(this.b, 125)).Ub();
112608 };
112609 _2.Vb = function Sg() {
112610 return (Fg(this), BD(this.b, 125)).Vb();
112611 };
112612 _2.Wb = function Ug(a) {
112613 (Fg(this), BD(this.b, 125)).Wb(a);
112614 };
112615 mdb(Zhe, "AbstractMapBasedMultimap/WrappedList/WrappedListIterator", 729);
112616 bcb(727, 541, hie, Vg);
112617 _2.Nc = function Wg() {
112618 return ag(this), this.d.Nc();
112619 };
112620 mdb(Zhe, "AbstractMapBasedMultimap/WrappedSortedSet", 727);
112621 bcb(1095, 727, iie, Xg);
112622 mdb(Zhe, "AbstractMapBasedMultimap/WrappedNavigableSet", 1095);
112623 bcb(1094, 541, fie, Yg);
112624 _2.Nc = function Zg() {
112625 return ag(this), this.d.Nc();
112626 };
112627 mdb(Zhe, "AbstractMapBasedMultimap/WrappedSet", 1094);
112628 bcb(1103, 1, {}, $g);
112629 _2.Kb = function _g(a) {
112630 return fd(BD(a, 42));
112631 };
112632 mdb(Zhe, "AbstractMapBasedMultimap/lambda$1$Type", 1103);
112633 bcb(1102, 1, {}, ah);
112634 _2.Kb = function bh(a) {
112635 return new Wo(this.a, a);
112636 };
112637 mdb(Zhe, "AbstractMapBasedMultimap/lambda$2$Type", 1102);
112638 var CK = odb(bie, "Map/Entry");
112639 bcb(345, 1, kie);
112640 _2.Fb = function dh(a) {
112641 var b;
112642 if (JD(a, 42)) {
112643 b = BD(a, 42);
112644 return Hb(this.cd(), b.cd()) && Hb(this.dd(), b.dd());
112645 }
112646 return false;
112647 };
112648 _2.Hb = function eh() {
112649 var a, b;
112650 a = this.cd();
112651 b = this.dd();
112652 return (a == null ? 0 : tb(a)) ^ (b == null ? 0 : tb(b));
112653 };
112654 _2.ed = function fh(a) {
112655 throw vbb(new bgb());
112656 };
112657 _2.Ib = function gh() {
112658 return this.cd() + "=" + this.dd();
112659 };
112660 mdb(Zhe, lie, 345);
112661 bcb(1988, 28, die);
112662 _2.$b = function hh() {
112663 this.fd().$b();
112664 };
112665 _2.Hc = function ih(a) {
112666 var b;
112667 if (JD(a, 42)) {
112668 b = BD(a, 42);
112669 return Cc(this.fd(), b.cd(), b.dd());
112670 }
112671 return false;
112672 };
112673 _2.Mc = function jh(a) {
112674 var b;
112675 if (JD(a, 42)) {
112676 b = BD(a, 42);
112677 return Gc(this.fd(), b.cd(), b.dd());
112678 }
112679 return false;
112680 };
112681 _2.gc = function kh() {
112682 return this.fd().d;
112683 };
112684 mdb(Zhe, "Multimaps/Entries", 1988);
112685 bcb(733, 1988, die, lh);
112686 _2.Kc = function mh() {
112687 return this.a.kc();
112688 };
112689 _2.fd = function nh() {
112690 return this.a;
112691 };
112692 _2.Nc = function oh() {
112693 return this.a.lc();
112694 };
112695 mdb(Zhe, "AbstractMultimap/Entries", 733);
112696 bcb(734, 733, fie, ph);
112697 _2.Nc = function sh() {
112698 return this.a.lc();
112699 };
112700 _2.Fb = function qh(a) {
112701 return Ax(this, a);
112702 };
112703 _2.Hb = function rh() {
112704 return Bx(this);
112705 };
112706 mdb(Zhe, "AbstractMultimap/EntrySet", 734);
112707 bcb(735, 28, die, th);
112708 _2.$b = function uh() {
112709 this.a.$b();
112710 };
112711 _2.Hc = function vh(a) {
112712 return Dc(this.a, a);
112713 };
112714 _2.Kc = function wh() {
112715 return this.a.nc();
112716 };
112717 _2.gc = function xh() {
112718 return this.a.d;
112719 };
112720 _2.Nc = function yh() {
112721 return this.a.oc();
112722 };
112723 mdb(Zhe, "AbstractMultimap/Values", 735);
112724 bcb(1989, 28, { 835: 1, 20: 1, 28: 1, 14: 1 });
112725 _2.Jc = function Gh(a) {
112726 Qb(a);
112727 Ah(this).Jc(new Xw(a));
112728 };
112729 _2.Nc = function Kh() {
112730 var a;
112731 return a = Ah(this).Nc(), Yj(a, new cx(), 64 | a.qd() & 1296, this.a.d);
112732 };
112733 _2.Fc = function Ch(a) {
112734 zh();
112735 return true;
112736 };
112737 _2.Gc = function Dh(a) {
112738 return Qb(this), Qb(a), JD(a, 543) ? Zw(BD(a, 835)) : !a.dc() && fr(this, a.Kc());
112739 };
112740 _2.Hc = function Eh(a) {
112741 var b;
112742 return b = BD(Hv(nd(this.a), a), 14), (!b ? 0 : b.gc()) > 0;
112743 };
112744 _2.Fb = function Fh(a) {
112745 return $w(this, a);
112746 };
112747 _2.Hb = function Hh() {
112748 return tb(Ah(this));
112749 };
112750 _2.dc = function Ih() {
112751 return Ah(this).dc();
112752 };
112753 _2.Mc = function Jh(a) {
112754 return Bw(this, a, 1) > 0;
112755 };
112756 _2.Ib = function Lh() {
112757 return fcb(Ah(this));
112758 };
112759 mdb(Zhe, "AbstractMultiset", 1989);
112760 bcb(1991, 1970, fie);
112761 _2.$b = function Mh() {
112762 Nc(this.a.a);
112763 };
112764 _2.Hc = function Nh(a) {
112765 var b, c2;
112766 if (JD(a, 492)) {
112767 c2 = BD(a, 416);
112768 if (BD(c2.a.dd(), 14).gc() <= 0) {
112769 return false;
112770 }
112771 b = Aw(this.a, c2.a.cd());
112772 return b == BD(c2.a.dd(), 14).gc();
112773 }
112774 return false;
112775 };
112776 _2.Mc = function Oh(a) {
112777 var b, c2, d, e;
112778 if (JD(a, 492)) {
112779 c2 = BD(a, 416);
112780 b = c2.a.cd();
112781 d = BD(c2.a.dd(), 14).gc();
112782 if (d != 0) {
112783 e = this.a;
112784 return ax(e, b, d);
112785 }
112786 }
112787 return false;
112788 };
112789 mdb(Zhe, "Multisets/EntrySet", 1991);
112790 bcb(1109, 1991, fie, Ph);
112791 _2.Kc = function Qh() {
112792 return new Lw(fe(nd(this.a.a)).Kc());
112793 };
112794 _2.gc = function Rh() {
112795 return nd(this.a.a).gc();
112796 };
112797 mdb(Zhe, "AbstractMultiset/EntrySet", 1109);
112798 bcb(619, 726, _he);
112799 _2.hc = function Uh() {
112800 return this.gd();
112801 };
112802 _2.jc = function Vh() {
112803 return this.hd();
112804 };
112805 _2.cc = function Yh(a) {
112806 return this.jd(a);
112807 };
112808 _2.fc = function $h(a) {
112809 return this.kd(a);
112810 };
112811 _2.Zb = function Th() {
112812 var a;
112813 return a = this.f, !a ? this.f = this.ac() : a;
112814 };
112815 _2.hd = function Wh() {
112816 return mmb(), mmb(), lmb;
112817 };
112818 _2.Fb = function Xh(a) {
112819 return hw(this, a);
112820 };
112821 _2.jd = function Zh(a) {
112822 return BD(Qc(this, a), 21);
112823 };
112824 _2.kd = function _h(a) {
112825 return BD(Sc(this, a), 21);
112826 };
112827 _2.mc = function ai(a) {
112828 return mmb(), new zob(BD(a, 21));
112829 };
112830 _2.pc = function bi(a, b) {
112831 return new Yg(this, a, BD(b, 21));
112832 };
112833 mdb(Zhe, "AbstractSetMultimap", 619);
112834 bcb(1657, 619, _he);
112835 _2.hc = function ei() {
112836 return new Hxb(this.b);
112837 };
112838 _2.gd = function fi() {
112839 return new Hxb(this.b);
112840 };
112841 _2.jc = function gi() {
112842 return Ix(new Hxb(this.b));
112843 };
112844 _2.hd = function hi() {
112845 return Ix(new Hxb(this.b));
112846 };
112847 _2.cc = function ii(a) {
112848 return BD(BD(Qc(this, a), 21), 84);
112849 };
112850 _2.jd = function ji(a) {
112851 return BD(BD(Qc(this, a), 21), 84);
112852 };
112853 _2.fc = function ki(a) {
112854 return BD(BD(Sc(this, a), 21), 84);
112855 };
112856 _2.kd = function li(a) {
112857 return BD(BD(Sc(this, a), 21), 84);
112858 };
112859 _2.mc = function mi(a) {
112860 return JD(a, 271) ? Ix(BD(a, 271)) : (mmb(), new Zob(BD(a, 84)));
112861 };
112862 _2.Zb = function di() {
112863 var a;
112864 return a = this.f, !a ? this.f = JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c) : a;
112865 };
112866 _2.pc = function ni(a, b) {
112867 return JD(b, 271) ? new Xg(this, a, BD(b, 271)) : new Vg(this, a, BD(b, 84));
112868 };
112869 mdb(Zhe, "AbstractSortedSetMultimap", 1657);
112870 bcb(1658, 1657, _he);
112871 _2.Zb = function pi2() {
112872 var a;
112873 return a = this.f, BD(BD(!a ? this.f = JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c) : a, 161), 171);
112874 };
112875 _2.ec = function ri() {
112876 var a;
112877 return a = this.i, BD(BD(!a ? this.i = JD(this.c, 171) ? new $f(this, BD(this.c, 171)) : JD(this.c, 161) ? new Yf(this, BD(this.c, 161)) : new zf(this, this.c) : a, 84), 271);
112878 };
112879 _2.bc = function qi() {
112880 return JD(this.c, 171) ? new $f(this, BD(this.c, 171)) : JD(this.c, 161) ? new Yf(this, BD(this.c, 161)) : new zf(this, this.c);
112881 };
112882 mdb(Zhe, "AbstractSortedKeySortedSetMultimap", 1658);
112883 bcb(2010, 1, { 1947: 1 });
112884 _2.Fb = function si(a) {
112885 return zy(this, a);
112886 };
112887 _2.Hb = function ti() {
112888 var a;
112889 return pmb((a = this.g, !a ? this.g = new vi(this) : a));
112890 };
112891 _2.Ib = function ui() {
112892 var a;
112893 return Md((a = this.f, !a ? this.f = new Rj(this) : a));
112894 };
112895 mdb(Zhe, "AbstractTable", 2010);
112896 bcb(665, eie, fie, vi);
112897 _2.$b = function wi() {
112898 Pi();
112899 };
112900 _2.Hc = function xi(a) {
112901 var b, c2;
112902 if (JD(a, 468)) {
112903 b = BD(a, 682);
112904 c2 = BD(Hv(Vi(this.a), Em(b.c.e, b.b)), 83);
112905 return !!c2 && Ck(c2.vc(), new Wo(Em(b.c.c, b.a), Mi(b.c, b.b, b.a)));
112906 }
112907 return false;
112908 };
112909 _2.Kc = function yi() {
112910 return Ni(this.a);
112911 };
112912 _2.Mc = function zi(a) {
112913 var b, c2;
112914 if (JD(a, 468)) {
112915 b = BD(a, 682);
112916 c2 = BD(Hv(Vi(this.a), Em(b.c.e, b.b)), 83);
112917 return !!c2 && Dk(c2.vc(), new Wo(Em(b.c.c, b.a), Mi(b.c, b.b, b.a)));
112918 }
112919 return false;
112920 };
112921 _2.gc = function Ai() {
112922 return Xi(this.a);
112923 };
112924 _2.Nc = function Bi() {
112925 return Oi(this.a);
112926 };
112927 mdb(Zhe, "AbstractTable/CellSet", 665);
112928 bcb(1928, 28, die, Ci);
112929 _2.$b = function Di() {
112930 Pi();
112931 };
112932 _2.Hc = function Ei(a) {
112933 return Qi(this.a, a);
112934 };
112935 _2.Kc = function Fi() {
112936 return Zi(this.a);
112937 };
112938 _2.gc = function Gi() {
112939 return Xi(this.a);
112940 };
112941 _2.Nc = function Hi() {
112942 return $i(this.a);
112943 };
112944 mdb(Zhe, "AbstractTable/Values", 1928);
112945 bcb(1632, 1631, _he);
112946 mdb(Zhe, "ArrayListMultimapGwtSerializationDependencies", 1632);
112947 bcb(513, 1632, _he, Ji, Ki);
112948 _2.hc = function Li() {
112949 return new Skb(this.a);
112950 };
112951 _2.a = 0;
112952 mdb(Zhe, "ArrayListMultimap", 513);
112953 bcb(664, 2010, { 664: 1, 1947: 1, 3: 1 }, _i);
112954 mdb(Zhe, "ArrayTable", 664);
112955 bcb(1924, 386, $he, aj);
112956 _2.Xb = function bj(a) {
112957 return new hj(this.a, a);
112958 };
112959 mdb(Zhe, "ArrayTable/1", 1924);
112960 bcb(1925, 1, {}, cj);
112961 _2.ld = function dj(a) {
112962 return new hj(this.a, a);
112963 };
112964 mdb(Zhe, "ArrayTable/1methodref$getCell$Type", 1925);
112965 bcb(2011, 1, { 682: 1 });
112966 _2.Fb = function ej(a) {
112967 var b;
112968 if (a === this) {
112969 return true;
112970 }
112971 if (JD(a, 468)) {
112972 b = BD(a, 682);
112973 return Hb(Em(this.c.e, this.b), Em(b.c.e, b.b)) && Hb(Em(this.c.c, this.a), Em(b.c.c, b.a)) && Hb(Mi(this.c, this.b, this.a), Mi(b.c, b.b, b.a));
112974 }
112975 return false;
112976 };
112977 _2.Hb = function fj() {
112978 return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [Em(this.c.e, this.b), Em(this.c.c, this.a), Mi(this.c, this.b, this.a)]));
112979 };
112980 _2.Ib = function gj() {
112981 return "(" + Em(this.c.e, this.b) + "," + Em(this.c.c, this.a) + ")=" + Mi(this.c, this.b, this.a);
112982 };
112983 mdb(Zhe, "Tables/AbstractCell", 2011);
112984 bcb(468, 2011, { 468: 1, 682: 1 }, hj);
112985 _2.a = 0;
112986 _2.b = 0;
112987 _2.d = 0;
112988 mdb(Zhe, "ArrayTable/2", 468);
112989 bcb(1927, 1, {}, ij);
112990 _2.ld = function jj(a) {
112991 return Ti(this.a, a);
112992 };
112993 mdb(Zhe, "ArrayTable/2methodref$getValue$Type", 1927);
112994 bcb(1926, 386, $he, kj);
112995 _2.Xb = function lj(a) {
112996 return Ti(this.a, a);
112997 };
112998 mdb(Zhe, "ArrayTable/3", 1926);
112999 bcb(1979, 1967, cie);
113000 _2.$b = function nj() {
113001 ir(this.kc());
113002 };
113003 _2.vc = function oj() {
113004 return new Sv(this);
113005 };
113006 _2.lc = function pj() {
113007 return new Mub(this.kc(), this.gc());
113008 };
113009 mdb(Zhe, "Maps/IteratorBasedAbstractMap", 1979);
113010 bcb(828, 1979, cie);
113011 _2.$b = function tj() {
113012 throw vbb(new bgb());
113013 };
113014 _2._b = function uj(a) {
113015 return sn(this.c, a);
113016 };
113017 _2.kc = function vj() {
113018 return new Jj(this, this.c.b.c.gc());
113019 };
113020 _2.lc = function wj() {
113021 return Zj(this.c.b.c.gc(), 16, new Dj(this));
113022 };
113023 _2.xc = function xj(a) {
113024 var b;
113025 b = BD(tn(this.c, a), 19);
113026 return !b ? null : this.nd(b.a);
113027 };
113028 _2.dc = function yj() {
113029 return this.c.b.c.dc();
113030 };
113031 _2.ec = function zj() {
113032 return Xm(this.c);
113033 };
113034 _2.zc = function Aj(a, b) {
113035 var c2;
113036 c2 = BD(tn(this.c, a), 19);
113037 if (!c2) {
113038 throw vbb(new Wdb(this.md() + " " + a + " not in " + Xm(this.c)));
113039 }
113040 return this.od(c2.a, b);
113041 };
113042 _2.Bc = function Bj(a) {
113043 throw vbb(new bgb());
113044 };
113045 _2.gc = function Cj() {
113046 return this.c.b.c.gc();
113047 };
113048 mdb(Zhe, "ArrayTable/ArrayMap", 828);
113049 bcb(1923, 1, {}, Dj);
113050 _2.ld = function Ej(a) {
113051 return qj(this.a, a);
113052 };
113053 mdb(Zhe, "ArrayTable/ArrayMap/0methodref$getEntry$Type", 1923);
113054 bcb(1921, 345, kie, Fj);
113055 _2.cd = function Gj() {
113056 return rj(this.a, this.b);
113057 };
113058 _2.dd = function Hj() {
113059 return this.a.nd(this.b);
113060 };
113061 _2.ed = function Ij(a) {
113062 return this.a.od(this.b, a);
113063 };
113064 _2.b = 0;
113065 mdb(Zhe, "ArrayTable/ArrayMap/1", 1921);
113066 bcb(1922, 386, $he, Jj);
113067 _2.Xb = function Kj(a) {
113068 return qj(this.a, a);
113069 };
113070 mdb(Zhe, "ArrayTable/ArrayMap/2", 1922);
113071 bcb(1920, 828, cie, Lj);
113072 _2.md = function Mj() {
113073 return "Column";
113074 };
113075 _2.nd = function Nj(a) {
113076 return Mi(this.b, this.a, a);
113077 };
113078 _2.od = function Oj(a, b) {
113079 return Wi(this.b, this.a, a, b);
113080 };
113081 _2.a = 0;
113082 mdb(Zhe, "ArrayTable/Row", 1920);
113083 bcb(829, 828, cie, Rj);
113084 _2.nd = function Tj(a) {
113085 return new Lj(this.a, a);
113086 };
113087 _2.zc = function Uj(a, b) {
113088 return BD(b, 83), Pj();
113089 };
113090 _2.od = function Vj(a, b) {
113091 return BD(b, 83), Qj();
113092 };
113093 _2.md = function Sj() {
113094 return "Row";
113095 };
113096 mdb(Zhe, "ArrayTable/RowMap", 829);
113097 bcb(1120, 1, pie2, _j);
113098 _2.qd = function ak() {
113099 return this.a.qd() & -262;
113100 };
113101 _2.rd = function bk() {
113102 return this.a.rd();
113103 };
113104 _2.Nb = function ck(a) {
113105 this.a.Nb(new gk(a, this.b));
113106 };
113107 _2.sd = function dk(a) {
113108 return this.a.sd(new ek(a, this.b));
113109 };
113110 mdb(Zhe, "CollectSpliterators/1", 1120);
113111 bcb(1121, 1, qie, ek);
113112 _2.td = function fk(a) {
113113 this.a.td(this.b.Kb(a));
113114 };
113115 mdb(Zhe, "CollectSpliterators/1/lambda$0$Type", 1121);
113116 bcb(1122, 1, qie, gk);
113117 _2.td = function hk(a) {
113118 this.a.td(this.b.Kb(a));
113119 };
113120 mdb(Zhe, "CollectSpliterators/1/lambda$1$Type", 1122);
113121 bcb(1123, 1, pie2, jk);
113122 _2.qd = function kk() {
113123 return this.a;
113124 };
113125 _2.rd = function lk() {
113126 !!this.d && (this.b = Deb(this.b, this.d.rd()));
113127 return Deb(this.b, 0);
113128 };
113129 _2.Nb = function mk(a) {
113130 if (this.d) {
113131 this.d.Nb(a);
113132 this.d = null;
113133 }
113134 this.c.Nb(new rk(this.e, a));
113135 this.b = 0;
113136 };
113137 _2.sd = function ok(a) {
113138 while (true) {
113139 if (!!this.d && this.d.sd(a)) {
113140 Kbb(this.b, rie) && (this.b = Qbb(this.b, 1));
113141 return true;
113142 } else {
113143 this.d = null;
113144 }
113145 if (!this.c.sd(new pk(this, this.e))) {
113146 return false;
113147 }
113148 }
113149 };
113150 _2.a = 0;
113151 _2.b = 0;
113152 mdb(Zhe, "CollectSpliterators/1FlatMapSpliterator", 1123);
113153 bcb(1124, 1, qie, pk);
113154 _2.td = function qk(a) {
113155 ik(this.a, this.b, a);
113156 };
113157 mdb(Zhe, "CollectSpliterators/1FlatMapSpliterator/lambda$0$Type", 1124);
113158 bcb(1125, 1, qie, rk);
113159 _2.td = function sk(a) {
113160 nk(this.b, this.a, a);
113161 };
113162 mdb(Zhe, "CollectSpliterators/1FlatMapSpliterator/lambda$1$Type", 1125);
113163 bcb(1117, 1, pie2, tk);
113164 _2.qd = function uk() {
113165 return 16464 | this.b;
113166 };
113167 _2.rd = function vk() {
113168 return this.a.rd();
113169 };
113170 _2.Nb = function wk(a) {
113171 this.a.xe(new Ak(a, this.c));
113172 };
113173 _2.sd = function xk(a) {
113174 return this.a.ye(new yk(a, this.c));
113175 };
113176 _2.b = 0;
113177 mdb(Zhe, "CollectSpliterators/1WithCharacteristics", 1117);
113178 bcb(1118, 1, sie, yk);
113179 _2.ud = function zk(a) {
113180 this.a.td(this.b.ld(a));
113181 };
113182 mdb(Zhe, "CollectSpliterators/1WithCharacteristics/lambda$0$Type", 1118);
113183 bcb(1119, 1, sie, Ak);
113184 _2.ud = function Bk(a) {
113185 this.a.td(this.b.ld(a));
113186 };
113187 mdb(Zhe, "CollectSpliterators/1WithCharacteristics/lambda$1$Type", 1119);
113188 bcb(245, 1, tie);
113189 _2.wd = function Hk(a) {
113190 return this.vd(BD(a, 245));
113191 };
113192 _2.vd = function Gk(a) {
113193 var b;
113194 if (a == (_k(), $k)) {
113195 return 1;
113196 }
113197 if (a == (Lk(), Kk)) {
113198 return -1;
113199 }
113200 b = (ex(), Fcb(this.a, a.a));
113201 if (b != 0) {
113202 return b;
113203 }
113204 return JD(this, 519) == JD(a, 519) ? 0 : JD(this, 519) ? 1 : -1;
113205 };
113206 _2.zd = function Ik() {
113207 return this.a;
113208 };
113209 _2.Fb = function Jk(a) {
113210 return Ek(this, a);
113211 };
113212 mdb(Zhe, "Cut", 245);
113213 bcb(1761, 245, tie, Mk);
113214 _2.vd = function Nk(a) {
113215 return a == this ? 0 : 1;
113216 };
113217 _2.xd = function Ok(a) {
113218 throw vbb(new xcb());
113219 };
113220 _2.yd = function Pk(a) {
113221 a.a += "+∞)";
113222 };
113223 _2.zd = function Qk() {
113224 throw vbb(new Zdb(uie));
113225 };
113226 _2.Hb = function Rk() {
113227 return Zfb(), kCb(this);
113228 };
113229 _2.Ad = function Sk(a) {
113230 return false;
113231 };
113232 _2.Ib = function Tk() {
113233 return "+∞";
113234 };
113235 var Kk;
113236 mdb(Zhe, "Cut/AboveAll", 1761);
113237 bcb(519, 245, { 245: 1, 519: 1, 3: 1, 35: 1 }, Uk);
113238 _2.xd = function Vk(a) {
113239 Pfb((a.a += "(", a), this.a);
113240 };
113241 _2.yd = function Wk(a) {
113242 Kfb(Pfb(a, this.a), 93);
113243 };
113244 _2.Hb = function Xk() {
113245 return ~tb(this.a);
113246 };
113247 _2.Ad = function Yk(a) {
113248 return ex(), Fcb(this.a, a) < 0;
113249 };
113250 _2.Ib = function Zk() {
113251 return "/" + this.a + "\\";
113252 };
113253 mdb(Zhe, "Cut/AboveValue", 519);
113254 bcb(1760, 245, tie, al);
113255 _2.vd = function bl(a) {
113256 return a == this ? 0 : -1;
113257 };
113258 _2.xd = function cl(a) {
113259 a.a += "(-∞";
113260 };
113261 _2.yd = function dl(a) {
113262 throw vbb(new xcb());
113263 };
113264 _2.zd = function el() {
113265 throw vbb(new Zdb(uie));
113266 };
113267 _2.Hb = function fl() {
113268 return Zfb(), kCb(this);
113269 };
113270 _2.Ad = function gl(a) {
113271 return true;
113272 };
113273 _2.Ib = function hl() {
113274 return "-∞";
113275 };
113276 var $k;
113277 mdb(Zhe, "Cut/BelowAll", 1760);
113278 bcb(1762, 245, tie, il);
113279 _2.xd = function jl(a) {
113280 Pfb((a.a += "[", a), this.a);
113281 };
113282 _2.yd = function kl(a) {
113283 Kfb(Pfb(a, this.a), 41);
113284 };
113285 _2.Hb = function ll() {
113286 return tb(this.a);
113287 };
113288 _2.Ad = function ml(a) {
113289 return ex(), Fcb(this.a, a) <= 0;
113290 };
113291 _2.Ib = function nl() {
113292 return "\\" + this.a + "/";
113293 };
113294 mdb(Zhe, "Cut/BelowValue", 1762);
113295 bcb(537, 1, vie);
113296 _2.Jc = function ql(a) {
113297 reb(this, a);
113298 };
113299 _2.Ib = function rl() {
113300 return tr(BD(Rb(this, "use Optional.orNull() instead of Optional.or(null)"), 20).Kc());
113301 };
113302 mdb(Zhe, "FluentIterable", 537);
113303 bcb(433, 537, vie, sl);
113304 _2.Kc = function tl() {
113305 return new Sr(ur(this.a.Kc(), new Sq()));
113306 };
113307 mdb(Zhe, "FluentIterable/2", 433);
113308 bcb(1046, 537, vie, vl);
113309 _2.Kc = function wl() {
113310 return ul(this);
113311 };
113312 mdb(Zhe, "FluentIterable/3", 1046);
113313 bcb(708, 386, $he, xl);
113314 _2.Xb = function yl(a) {
113315 return this.a[a].Kc();
113316 };
113317 mdb(Zhe, "FluentIterable/3/1", 708);
113318 bcb(1972, 1, {});
113319 _2.Ib = function zl() {
113320 return fcb(this.Bd().b);
113321 };
113322 mdb(Zhe, "ForwardingObject", 1972);
113323 bcb(1973, 1972, wie);
113324 _2.Bd = function Fl() {
113325 return this.Cd();
113326 };
113327 _2.Jc = function Gl(a) {
113328 reb(this, a);
113329 };
113330 _2.Lc = function Jl() {
113331 return this.Oc();
113332 };
113333 _2.Nc = function Ml() {
113334 return new Kub(this, 0);
113335 };
113336 _2.Oc = function Nl() {
113337 return new YAb(null, this.Nc());
113338 };
113339 _2.Fc = function Al(a) {
113340 return this.Cd(), enb();
113341 };
113342 _2.Gc = function Bl(a) {
113343 return this.Cd(), fnb();
113344 };
113345 _2.$b = function Cl() {
113346 this.Cd(), gnb();
113347 };
113348 _2.Hc = function Dl(a) {
113349 return this.Cd().Hc(a);
113350 };
113351 _2.Ic = function El(a) {
113352 return this.Cd().Ic(a);
113353 };
113354 _2.dc = function Hl() {
113355 return this.Cd().b.dc();
113356 };
113357 _2.Kc = function Il() {
113358 return this.Cd().Kc();
113359 };
113360 _2.Mc = function Kl(a) {
113361 return this.Cd(), jnb();
113362 };
113363 _2.gc = function Ll() {
113364 return this.Cd().b.gc();
113365 };
113366 _2.Pc = function Ol() {
113367 return this.Cd().Pc();
113368 };
113369 _2.Qc = function Pl(a) {
113370 return this.Cd().Qc(a);
113371 };
113372 mdb(Zhe, "ForwardingCollection", 1973);
113373 bcb(1980, 28, xie);
113374 _2.Kc = function Xl() {
113375 return this.Ed();
113376 };
113377 _2.Fc = function Sl(a) {
113378 throw vbb(new bgb());
113379 };
113380 _2.Gc = function Tl(a) {
113381 throw vbb(new bgb());
113382 };
113383 _2.$b = function Ul() {
113384 throw vbb(new bgb());
113385 };
113386 _2.Hc = function Vl(a) {
113387 return a != null && ze(this, a, false);
113388 };
113389 _2.Dd = function Wl() {
113390 switch (this.gc()) {
113391 case 0:
113392 return im(), im(), hm;
113393 case 1:
113394 return im(), new my(Qb(this.Ed().Pb()));
113395 default:
113396 return new px(this, this.Pc());
113397 }
113398 };
113399 _2.Mc = function Yl(a) {
113400 throw vbb(new bgb());
113401 };
113402 mdb(Zhe, "ImmutableCollection", 1980);
113403 bcb(712, 1980, xie, Zl);
113404 _2.Kc = function cm() {
113405 return vr(this.a.Kc());
113406 };
113407 _2.Hc = function $l(a) {
113408 return a != null && this.a.Hc(a);
113409 };
113410 _2.Ic = function _l(a) {
113411 return this.a.Ic(a);
113412 };
113413 _2.dc = function am() {
113414 return this.a.dc();
113415 };
113416 _2.Ed = function bm() {
113417 return vr(this.a.Kc());
113418 };
113419 _2.gc = function dm() {
113420 return this.a.gc();
113421 };
113422 _2.Pc = function em() {
113423 return this.a.Pc();
113424 };
113425 _2.Qc = function fm(a) {
113426 return this.a.Qc(a);
113427 };
113428 _2.Ib = function gm() {
113429 return fcb(this.a);
113430 };
113431 mdb(Zhe, "ForwardingImmutableCollection", 712);
113432 bcb(152, 1980, yie);
113433 _2.Kc = function sm() {
113434 return this.Ed();
113435 };
113436 _2.Yc = function tm() {
113437 return this.Fd(0);
113438 };
113439 _2.Zc = function vm(a) {
113440 return this.Fd(a);
113441 };
113442 _2.ad = function zm(a) {
113443 ktb(this, a);
113444 };
113445 _2.Nc = function Am() {
113446 return new Kub(this, 16);
113447 };
113448 _2.bd = function Cm(a, b) {
113449 return this.Gd(a, b);
113450 };
113451 _2.Vc = function lm(a, b) {
113452 throw vbb(new bgb());
113453 };
113454 _2.Wc = function mm(a, b) {
113455 throw vbb(new bgb());
113456 };
113457 _2.Fb = function om(a) {
113458 return Ju(this, a);
113459 };
113460 _2.Hb = function pm() {
113461 return Ku(this);
113462 };
113463 _2.Xc = function qm(a) {
113464 return a == null ? -1 : Lu(this, a);
113465 };
113466 _2.Ed = function rm() {
113467 return this.Fd(0);
113468 };
113469 _2.Fd = function um(a) {
113470 return jm(this, a);
113471 };
113472 _2.$c = function xm(a) {
113473 throw vbb(new bgb());
113474 };
113475 _2._c = function ym(a, b) {
113476 throw vbb(new bgb());
113477 };
113478 _2.Gd = function Bm(a, b) {
113479 var c2;
113480 return Dm((c2 = new $u(this), new Jib(c2, a, b)));
113481 };
113482 var hm;
113483 mdb(Zhe, "ImmutableList", 152);
113484 bcb(2006, 152, yie);
113485 _2.Kc = function Nm() {
113486 return vr(this.Hd().Kc());
113487 };
113488 _2.bd = function Qm(a, b) {
113489 return Dm(this.Hd().bd(a, b));
113490 };
113491 _2.Hc = function Fm(a) {
113492 return a != null && this.Hd().Hc(a);
113493 };
113494 _2.Ic = function Gm(a) {
113495 return this.Hd().Ic(a);
113496 };
113497 _2.Fb = function Hm(a) {
113498 return pb(this.Hd(), a);
113499 };
113500 _2.Xb = function Im(a) {
113501 return Em(this, a);
113502 };
113503 _2.Hb = function Jm() {
113504 return tb(this.Hd());
113505 };
113506 _2.Xc = function Km(a) {
113507 return this.Hd().Xc(a);
113508 };
113509 _2.dc = function Lm() {
113510 return this.Hd().dc();
113511 };
113512 _2.Ed = function Mm() {
113513 return vr(this.Hd().Kc());
113514 };
113515 _2.gc = function Om() {
113516 return this.Hd().gc();
113517 };
113518 _2.Gd = function Pm(a, b) {
113519 return Dm(this.Hd().bd(a, b));
113520 };
113521 _2.Pc = function Rm() {
113522 return this.Hd().Qc(KC(SI, Uhe, 1, this.Hd().gc(), 5, 1));
113523 };
113524 _2.Qc = function Sm(a) {
113525 return this.Hd().Qc(a);
113526 };
113527 _2.Ib = function Tm() {
113528 return fcb(this.Hd());
113529 };
113530 mdb(Zhe, "ForwardingImmutableList", 2006);
113531 bcb(714, 1, Aie);
113532 _2.vc = function cn() {
113533 return Wm(this);
113534 };
113535 _2.wc = function en2(a) {
113536 stb(this, a);
113537 };
113538 _2.ec = function jn() {
113539 return Xm(this);
113540 };
113541 _2.yc = function kn(a, b, c2) {
113542 return ttb(this, a, b, c2);
113543 };
113544 _2.Cc = function rn() {
113545 return this.Ld();
113546 };
113547 _2.$b = function Zm() {
113548 throw vbb(new bgb());
113549 };
113550 _2._b = function $m(a) {
113551 return this.xc(a) != null;
113552 };
113553 _2.uc = function _m(a) {
113554 return this.Ld().Hc(a);
113555 };
113556 _2.Jd = function an() {
113557 return new jq(this);
113558 };
113559 _2.Kd = function bn() {
113560 return new sq(this);
113561 };
113562 _2.Fb = function dn(a) {
113563 return Dv(this, a);
113564 };
113565 _2.Hb = function gn() {
113566 return Wm(this).Hb();
113567 };
113568 _2.dc = function hn() {
113569 return this.gc() == 0;
113570 };
113571 _2.zc = function nn(a, b) {
113572 return Ym();
113573 };
113574 _2.Bc = function on(a) {
113575 throw vbb(new bgb());
113576 };
113577 _2.Ib = function pn() {
113578 return Jv(this);
113579 };
113580 _2.Ld = function qn() {
113581 if (this.e) {
113582 return this.e;
113583 }
113584 return this.e = this.Kd();
113585 };
113586 _2.c = null;
113587 _2.d = null;
113588 _2.e = null;
113589 var Um;
113590 mdb(Zhe, "ImmutableMap", 714);
113591 bcb(715, 714, Aie);
113592 _2._b = function vn(a) {
113593 return sn(this, a);
113594 };
113595 _2.uc = function wn(a) {
113596 return dob(this.b, a);
113597 };
113598 _2.Id = function xn() {
113599 return Vn(new Ln(this));
113600 };
113601 _2.Jd = function yn() {
113602 return Vn(gob(this.b));
113603 };
113604 _2.Kd = function zn() {
113605 return Ql(), new Zl(hob(this.b));
113606 };
113607 _2.Fb = function An(a) {
113608 return fob(this.b, a);
113609 };
113610 _2.xc = function Bn(a) {
113611 return tn(this, a);
113612 };
113613 _2.Hb = function Cn() {
113614 return tb(this.b.c);
113615 };
113616 _2.dc = function Dn() {
113617 return this.b.c.dc();
113618 };
113619 _2.gc = function En() {
113620 return this.b.c.gc();
113621 };
113622 _2.Ib = function Fn() {
113623 return fcb(this.b.c);
113624 };
113625 mdb(Zhe, "ForwardingImmutableMap", 715);
113626 bcb(1974, 1973, Bie);
113627 _2.Bd = function Gn() {
113628 return this.Md();
113629 };
113630 _2.Cd = function Hn() {
113631 return this.Md();
113632 };
113633 _2.Nc = function Kn() {
113634 return new Kub(this, 1);
113635 };
113636 _2.Fb = function In(a) {
113637 return a === this || this.Md().Fb(a);
113638 };
113639 _2.Hb = function Jn() {
113640 return this.Md().Hb();
113641 };
113642 mdb(Zhe, "ForwardingSet", 1974);
113643 bcb(1069, 1974, Bie, Ln);
113644 _2.Bd = function Nn() {
113645 return eob(this.a.b);
113646 };
113647 _2.Cd = function On() {
113648 return eob(this.a.b);
113649 };
113650 _2.Hc = function Mn(b) {
113651 if (JD(b, 42) && BD(b, 42).cd() == null) {
113652 return false;
113653 }
113654 try {
113655 return Dob(eob(this.a.b), b);
113656 } catch (a) {
113657 a = ubb(a);
113658 if (JD(a, 205)) {
113659 return false;
113660 } else
113661 throw vbb(a);
113662 }
113663 };
113664 _2.Md = function Pn() {
113665 return eob(this.a.b);
113666 };
113667 _2.Qc = function Qn(a) {
113668 var b;
113669 b = Eob(eob(this.a.b), a);
113670 eob(this.a.b).b.gc() < b.length && NC(b, eob(this.a.b).b.gc(), null);
113671 return b;
113672 };
113673 mdb(Zhe, "ForwardingImmutableMap/1", 1069);
113674 bcb(1981, 1980, Cie);
113675 _2.Kc = function Tn() {
113676 return this.Ed();
113677 };
113678 _2.Nc = function Un() {
113679 return new Kub(this, 1);
113680 };
113681 _2.Fb = function Rn(a) {
113682 return Ax(this, a);
113683 };
113684 _2.Hb = function Sn() {
113685 return Bx(this);
113686 };
113687 mdb(Zhe, "ImmutableSet", 1981);
113688 bcb(703, 1981, Cie);
113689 _2.Kc = function ao() {
113690 return vr(new Dnb(this.a.b.Kc()));
113691 };
113692 _2.Hc = function Xn2(a) {
113693 return a != null && hnb(this.a, a);
113694 };
113695 _2.Ic = function Yn2(a) {
113696 return inb(this.a, a);
113697 };
113698 _2.Hb = function Zn2() {
113699 return tb(this.a.b);
113700 };
113701 _2.dc = function $n() {
113702 return this.a.b.dc();
113703 };
113704 _2.Ed = function _n() {
113705 return vr(new Dnb(this.a.b.Kc()));
113706 };
113707 _2.gc = function bo() {
113708 return this.a.b.gc();
113709 };
113710 _2.Pc = function co() {
113711 return this.a.b.Pc();
113712 };
113713 _2.Qc = function eo(a) {
113714 return knb(this.a, a);
113715 };
113716 _2.Ib = function fo() {
113717 return fcb(this.a.b);
113718 };
113719 mdb(Zhe, "ForwardingImmutableSet", 703);
113720 bcb(1975, 1974, Die);
113721 _2.Bd = function go() {
113722 return this.b;
113723 };
113724 _2.Cd = function ho() {
113725 return this.b;
113726 };
113727 _2.Md = function io() {
113728 return this.b;
113729 };
113730 _2.Nc = function jo() {
113731 return new Rub(this);
113732 };
113733 mdb(Zhe, "ForwardingSortedSet", 1975);
113734 bcb(533, 1979, Aie, wo);
113735 _2.Ac = function Fo(a) {
113736 Ld(this, a);
113737 };
113738 _2.Cc = function Io() {
113739 var a;
113740 return a = this.d, new up(!a ? this.d = new ap(this) : a);
113741 };
113742 _2.$b = function xo() {
113743 ko(this);
113744 };
113745 _2._b = function yo(a) {
113746 return !!uo(this, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
113747 };
113748 _2.uc = function zo(a) {
113749 return lo(this, a);
113750 };
113751 _2.kc = function Ao() {
113752 return new Qo(this, this);
113753 };
113754 _2.wc = function Bo(a) {
113755 no(this, a);
113756 };
113757 _2.xc = function Co(a) {
113758 return oo(this, a);
113759 };
113760 _2.ec = function Do() {
113761 return new Bp(this);
113762 };
113763 _2.zc = function Eo(a, b) {
113764 return ro(this, a, b);
113765 };
113766 _2.Bc = function Go(a) {
113767 var b;
113768 b = uo(this, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
113769 if (!b) {
113770 return null;
113771 } else {
113772 mo(this, b);
113773 b.e = null;
113774 b.c = null;
113775 return b.i;
113776 }
113777 };
113778 _2.gc = function Ho() {
113779 return this.i;
113780 };
113781 _2.pd = function Jo() {
113782 var a;
113783 return a = this.d, new up(!a ? this.d = new ap(this) : a);
113784 };
113785 _2.f = 0;
113786 _2.g = 0;
113787 _2.i = 0;
113788 mdb(Zhe, "HashBiMap", 533);
113789 bcb(534, 1, aie);
113790 _2.Nb = function Mo(a) {
113791 Rrb(this, a);
113792 };
113793 _2.Ob = function No() {
113794 return Ko(this);
113795 };
113796 _2.Pb = function Oo() {
113797 var a;
113798 if (!Ko(this)) {
113799 throw vbb(new utb());
113800 }
113801 a = this.c;
113802 this.c = a.c;
113803 this.f = a;
113804 --this.d;
113805 return this.Nd(a);
113806 };
113807 _2.Qb = function Po() {
113808 if (this.e.g != this.b) {
113809 throw vbb(new Apb());
113810 }
113811 Vb(!!this.f);
113812 mo(this.e, this.f);
113813 this.b = this.e.g;
113814 this.f = null;
113815 };
113816 _2.b = 0;
113817 _2.d = 0;
113818 _2.f = null;
113819 mdb(Zhe, "HashBiMap/Itr", 534);
113820 bcb(1011, 534, aie, Qo);
113821 _2.Nd = function Ro(a) {
113822 return new So(this, a);
113823 };
113824 mdb(Zhe, "HashBiMap/1", 1011);
113825 bcb(1012, 345, kie, So);
113826 _2.cd = function To() {
113827 return this.a.g;
113828 };
113829 _2.dd = function Uo() {
113830 return this.a.i;
113831 };
113832 _2.ed = function Vo(a) {
113833 var b, c2, d;
113834 c2 = this.a.i;
113835 d = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)));
113836 if (d == this.a.f && (PD(a) === PD(c2) || a != null && pb(a, c2))) {
113837 return a;
113838 }
113839 Nb(!vo(this.b.a, a, d), a);
113840 mo(this.b.a, this.a);
113841 b = new $o(this.a.g, this.a.a, a, d);
113842 po(this.b.a, b, this.a);
113843 this.a.e = null;
113844 this.a.c = null;
113845 this.b.b = this.b.a.g;
113846 this.b.f == this.a && (this.b.f = b);
113847 this.a = b;
113848 return c2;
113849 };
113850 mdb(Zhe, "HashBiMap/1/MapEntry", 1012);
113851 bcb(238, 345, { 345: 1, 238: 1, 3: 1, 42: 1 }, Wo);
113852 _2.cd = function Xo() {
113853 return this.g;
113854 };
113855 _2.dd = function Yo() {
113856 return this.i;
113857 };
113858 _2.ed = function Zo(a) {
113859 throw vbb(new bgb());
113860 };
113861 mdb(Zhe, "ImmutableEntry", 238);
113862 bcb(317, 238, { 345: 1, 317: 1, 238: 1, 3: 1, 42: 1 }, $o);
113863 _2.a = 0;
113864 _2.f = 0;
113865 var GF = mdb(Zhe, "HashBiMap/BiEntry", 317);
113866 bcb(610, 1979, Aie, ap);
113867 _2.Ac = function jp(a) {
113868 Ld(this, a);
113869 };
113870 _2.Cc = function mp() {
113871 return new Bp(this.a);
113872 };
113873 _2.$b = function bp() {
113874 ko(this.a);
113875 };
113876 _2._b = function cp(a) {
113877 return lo(this.a, a);
113878 };
113879 _2.kc = function dp() {
113880 return new op(this, this.a);
113881 };
113882 _2.wc = function ep(a) {
113883 Qb(a);
113884 no(this.a, new zp(a));
113885 };
113886 _2.xc = function fp(a) {
113887 return _o(this, a);
113888 };
113889 _2.ec = function gp() {
113890 return new up(this);
113891 };
113892 _2.zc = function ip(a, b) {
113893 return so(this.a, a, b, false);
113894 };
113895 _2.Bc = function kp(a) {
113896 var b;
113897 b = vo(this.a, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
113898 if (!b) {
113899 return null;
113900 } else {
113901 mo(this.a, b);
113902 b.e = null;
113903 b.c = null;
113904 return b.g;
113905 }
113906 };
113907 _2.gc = function lp() {
113908 return this.a.i;
113909 };
113910 _2.pd = function np() {
113911 return new Bp(this.a);
113912 };
113913 mdb(Zhe, "HashBiMap/Inverse", 610);
113914 bcb(1008, 534, aie, op);
113915 _2.Nd = function pp(a) {
113916 return new qp(this, a);
113917 };
113918 mdb(Zhe, "HashBiMap/Inverse/1", 1008);
113919 bcb(1009, 345, kie, qp);
113920 _2.cd = function rp() {
113921 return this.a.i;
113922 };
113923 _2.dd = function sp() {
113924 return this.a.g;
113925 };
113926 _2.ed = function tp(a) {
113927 var b, c2, d;
113928 d = this.a.g;
113929 b = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)));
113930 if (b == this.a.a && (PD(a) === PD(d) || a != null && pb(a, d))) {
113931 return a;
113932 }
113933 Nb(!uo(this.b.a.a, a, b), a);
113934 mo(this.b.a.a, this.a);
113935 c2 = new $o(a, b, this.a.i, this.a.f);
113936 this.a = c2;
113937 po(this.b.a.a, c2, null);
113938 this.b.b = this.b.a.a.g;
113939 return d;
113940 };
113941 mdb(Zhe, "HashBiMap/Inverse/1/InverseEntry", 1009);
113942 bcb(611, 532, fie, up);
113943 _2.Kc = function vp() {
113944 return new xp(this.a.a);
113945 };
113946 _2.Mc = function wp(a) {
113947 var b;
113948 b = vo(this.a.a, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
113949 if (!b) {
113950 return false;
113951 } else {
113952 mo(this.a.a, b);
113953 return true;
113954 }
113955 };
113956 mdb(Zhe, "HashBiMap/Inverse/InverseKeySet", 611);
113957 bcb(1007, 534, aie, xp);
113958 _2.Nd = function yp(a) {
113959 return a.i;
113960 };
113961 mdb(Zhe, "HashBiMap/Inverse/InverseKeySet/1", 1007);
113962 bcb(1010, 1, {}, zp);
113963 _2.Od = function Ap(a, b) {
113964 hp(this.a, a, b);
113965 };
113966 mdb(Zhe, "HashBiMap/Inverse/lambda$0$Type", 1010);
113967 bcb(609, 532, fie, Bp);
113968 _2.Kc = function Cp() {
113969 return new Ep(this.a);
113970 };
113971 _2.Mc = function Dp(a) {
113972 var b;
113973 b = uo(this.a, a, Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15))));
113974 if (!b) {
113975 return false;
113976 } else {
113977 mo(this.a, b);
113978 b.e = null;
113979 b.c = null;
113980 return true;
113981 }
113982 };
113983 mdb(Zhe, "HashBiMap/KeySet", 609);
113984 bcb(1006, 534, aie, Ep);
113985 _2.Nd = function Fp(a) {
113986 return a.g;
113987 };
113988 mdb(Zhe, "HashBiMap/KeySet/1", 1006);
113989 bcb(1093, 619, _he);
113990 mdb(Zhe, "HashMultimapGwtSerializationDependencies", 1093);
113991 bcb(265, 1093, _he, Hp);
113992 _2.hc = function Ip() {
113993 return new Uqb(Cv(this.a));
113994 };
113995 _2.gd = function Jp() {
113996 return new Uqb(Cv(this.a));
113997 };
113998 _2.a = 2;
113999 mdb(Zhe, "HashMultimap", 265);
114000 bcb(1999, 152, yie);
114001 _2.Hc = function Mp(a) {
114002 return this.Pd().Hc(a);
114003 };
114004 _2.dc = function Np() {
114005 return this.Pd().dc();
114006 };
114007 _2.gc = function Op() {
114008 return this.Pd().gc();
114009 };
114010 mdb(Zhe, "ImmutableAsList", 1999);
114011 bcb(1931, 715, Aie);
114012 _2.Ld = function Qp() {
114013 return Ql(), new oy(this.a);
114014 };
114015 _2.Cc = function Rp() {
114016 return Ql(), new oy(this.a);
114017 };
114018 _2.pd = function Sp() {
114019 return Ql(), new oy(this.a);
114020 };
114021 mdb(Zhe, "ImmutableBiMap", 1931);
114022 bcb(1977, 1, {});
114023 mdb(Zhe, "ImmutableCollection/Builder", 1977);
114024 bcb(1022, 703, Cie, Tp);
114025 mdb(Zhe, "ImmutableEnumSet", 1022);
114026 bcb(969, 386, $he, Vp);
114027 _2.Xb = function Wp(a) {
114028 return this.a.Xb(a);
114029 };
114030 mdb(Zhe, "ImmutableList/1", 969);
114031 bcb(968, 1977, {}, Xp);
114032 mdb(Zhe, "ImmutableList/Builder", 968);
114033 bcb(614, 198, Yhe, Yp);
114034 _2.Ob = function Zp() {
114035 return this.a.Ob();
114036 };
114037 _2.Pb = function $p() {
114038 return BD(this.a.Pb(), 42).cd();
114039 };
114040 mdb(Zhe, "ImmutableMap/1", 614);
114041 bcb(1041, 1, {}, _p);
114042 _2.Kb = function aq(a) {
114043 return BD(a, 42).cd();
114044 };
114045 mdb(Zhe, "ImmutableMap/2methodref$getKey$Type", 1041);
114046 bcb(1040, 1, {}, cq);
114047 mdb(Zhe, "ImmutableMap/Builder", 1040);
114048 bcb(2e3, 1981, Cie);
114049 _2.Kc = function gq() {
114050 var a;
114051 return a = Wm(this.a).Ed(), new Yp(a);
114052 };
114053 _2.Dd = function dq() {
114054 return new Fq(this);
114055 };
114056 _2.Jc = function eq2(a) {
114057 var b, c2;
114058 Qb(a);
114059 c2 = this.gc();
114060 for (b = 0; b < c2; b++) {
114061 a.td(BD(Rl(Wm(this.a)).Xb(b), 42).cd());
114062 }
114063 };
114064 _2.Ed = function fq() {
114065 var a;
114066 return (a = this.c, !a ? this.c = new Fq(this) : a).Ed();
114067 };
114068 _2.Nc = function hq() {
114069 return Zj(this.gc(), 1296, new Dq(this));
114070 };
114071 mdb(Zhe, "IndexedImmutableSet", 2e3);
114072 bcb(1180, 2e3, Cie, jq);
114073 _2.Kc = function nq() {
114074 var a;
114075 return a = Wm(this.a).Ed(), new Yp(a);
114076 };
114077 _2.Hc = function kq(a) {
114078 return this.a._b(a);
114079 };
114080 _2.Jc = function lq(a) {
114081 Qb(a);
114082 stb(this.a, new qq(a));
114083 };
114084 _2.Ed = function mq() {
114085 var a;
114086 return a = Wm(this.a).Ed(), new Yp(a);
114087 };
114088 _2.gc = function oq() {
114089 return this.a.gc();
114090 };
114091 _2.Nc = function pq() {
114092 return $j(Wm(this.a).Nc(), new _p());
114093 };
114094 mdb(Zhe, "ImmutableMapKeySet", 1180);
114095 bcb(1181, 1, {}, qq);
114096 _2.Od = function rq(a, b) {
114097 Ql();
114098 this.a.td(a);
114099 };
114100 mdb(Zhe, "ImmutableMapKeySet/lambda$0$Type", 1181);
114101 bcb(1178, 1980, xie, sq);
114102 _2.Kc = function vq() {
114103 return new Aq(this);
114104 };
114105 _2.Hc = function tq(a) {
114106 return a != null && jr(new Aq(this), a);
114107 };
114108 _2.Ed = function uq() {
114109 return new Aq(this);
114110 };
114111 _2.gc = function wq() {
114112 return this.a.gc();
114113 };
114114 _2.Nc = function xq() {
114115 return $j(Wm(this.a).Nc(), new yq());
114116 };
114117 mdb(Zhe, "ImmutableMapValues", 1178);
114118 bcb(1179, 1, {}, yq);
114119 _2.Kb = function zq(a) {
114120 return BD(a, 42).dd();
114121 };
114122 mdb(Zhe, "ImmutableMapValues/0methodref$getValue$Type", 1179);
114123 bcb(626, 198, Yhe, Aq);
114124 _2.Ob = function Bq() {
114125 return this.a.Ob();
114126 };
114127 _2.Pb = function Cq() {
114128 return BD(this.a.Pb(), 42).dd();
114129 };
114130 mdb(Zhe, "ImmutableMapValues/1", 626);
114131 bcb(1182, 1, {}, Dq);
114132 _2.ld = function Eq(a) {
114133 return iq(this.a, a);
114134 };
114135 mdb(Zhe, "IndexedImmutableSet/0methodref$get$Type", 1182);
114136 bcb(752, 1999, yie, Fq);
114137 _2.Pd = function Gq() {
114138 return this.a;
114139 };
114140 _2.Xb = function Hq(a) {
114141 return iq(this.a, a);
114142 };
114143 _2.gc = function Iq() {
114144 return this.a.a.gc();
114145 };
114146 mdb(Zhe, "IndexedImmutableSet/1", 752);
114147 bcb(44, 1, {}, Sq);
114148 _2.Kb = function Tq(a) {
114149 return BD(a, 20).Kc();
114150 };
114151 _2.Fb = function Uq(a) {
114152 return this === a;
114153 };
114154 mdb(Zhe, "Iterables/10", 44);
114155 bcb(1042, 537, vie, Wq);
114156 _2.Jc = function Xq(a) {
114157 Qb(a);
114158 this.b.Jc(new $q(this.a, a));
114159 };
114160 _2.Kc = function Yq() {
114161 return Vq(this);
114162 };
114163 mdb(Zhe, "Iterables/4", 1042);
114164 bcb(1043, 1, qie, $q);
114165 _2.td = function _q(a) {
114166 Zq(this.b, this.a, a);
114167 };
114168 mdb(Zhe, "Iterables/4/lambda$0$Type", 1043);
114169 bcb(1044, 537, vie, ar);
114170 _2.Jc = function br(a) {
114171 Qb(a);
114172 reb(this.a, new dr(a, this.b));
114173 };
114174 _2.Kc = function cr() {
114175 return ur(new Fyd(this.a), this.b);
114176 };
114177 mdb(Zhe, "Iterables/5", 1044);
114178 bcb(1045, 1, qie, dr);
114179 _2.td = function er2(a) {
114180 this.a.td(Gfd(a));
114181 };
114182 mdb(Zhe, "Iterables/5/lambda$0$Type", 1045);
114183 bcb(1071, 198, Yhe, wr);
114184 _2.Ob = function xr() {
114185 return this.a.Ob();
114186 };
114187 _2.Pb = function yr() {
114188 return this.a.Pb();
114189 };
114190 mdb(Zhe, "Iterators/1", 1071);
114191 bcb(1072, 699, Yhe, zr);
114192 _2.Yb = function Ar() {
114193 var a;
114194 while (this.b.Ob()) {
114195 a = this.b.Pb();
114196 if (this.a.Lb(a)) {
114197 return a;
114198 }
114199 }
114200 return this.e = 2, null;
114201 };
114202 mdb(Zhe, "Iterators/5", 1072);
114203 bcb(487, 1, aie);
114204 _2.Nb = function Cr(a) {
114205 Rrb(this, a);
114206 };
114207 _2.Ob = function Dr() {
114208 return this.b.Ob();
114209 };
114210 _2.Pb = function Er() {
114211 return this.Qd(this.b.Pb());
114212 };
114213 _2.Qb = function Fr() {
114214 this.b.Qb();
114215 };
114216 mdb(Zhe, "TransformedIterator", 487);
114217 bcb(1073, 487, aie, Gr);
114218 _2.Qd = function Hr(a) {
114219 return this.a.Kb(a);
114220 };
114221 mdb(Zhe, "Iterators/6", 1073);
114222 bcb(717, 198, Yhe, Ir);
114223 _2.Ob = function Jr() {
114224 return !this.a;
114225 };
114226 _2.Pb = function Kr() {
114227 if (this.a) {
114228 throw vbb(new utb());
114229 }
114230 this.a = true;
114231 return this.b;
114232 };
114233 _2.a = false;
114234 mdb(Zhe, "Iterators/9", 717);
114235 bcb(1070, 386, $he, Nr);
114236 _2.Xb = function Or(a) {
114237 return this.a[this.b + a];
114238 };
114239 _2.b = 0;
114240 var Lr;
114241 mdb(Zhe, "Iterators/ArrayItr", 1070);
114242 bcb(39, 1, { 39: 1, 47: 1 }, Sr);
114243 _2.Nb = function Tr(a) {
114244 Rrb(this, a);
114245 };
114246 _2.Ob = function Ur() {
114247 return Qr(this);
114248 };
114249 _2.Pb = function Vr() {
114250 return Rr(this);
114251 };
114252 _2.Qb = function Wr() {
114253 Vb(!!this.c);
114254 this.c.Qb();
114255 this.c = null;
114256 };
114257 mdb(Zhe, "Iterators/ConcatenatedIterator", 39);
114258 bcb(22, 1, { 3: 1, 35: 1, 22: 1 });
114259 _2.wd = function _r(a) {
114260 return Xr(this, BD(a, 22));
114261 };
114262 _2.Fb = function bs(a) {
114263 return this === a;
114264 };
114265 _2.Hb = function cs() {
114266 return FCb(this);
114267 };
114268 _2.Ib = function ds() {
114269 return Zr(this);
114270 };
114271 _2.g = 0;
114272 var CI = mdb(Phe, "Enum", 22);
114273 bcb(538, 22, { 538: 1, 3: 1, 35: 1, 22: 1, 47: 1 }, is);
114274 _2.Nb = function js(a) {
114275 Rrb(this, a);
114276 };
114277 _2.Ob = function ks() {
114278 return false;
114279 };
114280 _2.Pb = function ls() {
114281 throw vbb(new utb());
114282 };
114283 _2.Qb = function ms() {
114284 Vb(false);
114285 };
114286 var gs;
114287 var yG = ndb(Zhe, "Iterators/EmptyModifiableIterator", 538, CI, os, ns);
114288 var ps;
114289 bcb(1834, 619, _he);
114290 mdb(Zhe, "LinkedHashMultimapGwtSerializationDependencies", 1834);
114291 bcb(1835, 1834, _he, ss);
114292 _2.hc = function us() {
114293 return new Asb(Cv(this.b));
114294 };
114295 _2.$b = function ts() {
114296 Nc(this);
114297 As(this.a, this.a);
114298 };
114299 _2.gd = function vs() {
114300 return new Asb(Cv(this.b));
114301 };
114302 _2.ic = function ws(a) {
114303 return new Ss(this, a, this.b);
114304 };
114305 _2.kc = function xs() {
114306 return new Hs(this);
114307 };
114308 _2.lc = function ys() {
114309 var a;
114310 return new Kub((a = this.g, BD(!a ? this.g = new ph(this) : a, 21)), 17);
114311 };
114312 _2.ec = function zs() {
114313 var a;
114314 return a = this.i, !a ? this.i = new zf(this, this.c) : a;
114315 };
114316 _2.nc = function Cs() {
114317 return new Ov(new Hs(this));
114318 };
114319 _2.oc = function Ds() {
114320 var a;
114321 return $j(new Kub((a = this.g, BD(!a ? this.g = new ph(this) : a, 21)), 17), new Es());
114322 };
114323 _2.b = 2;
114324 mdb(Zhe, "LinkedHashMultimap", 1835);
114325 bcb(1838, 1, {}, Es);
114326 _2.Kb = function Fs(a) {
114327 return BD(a, 42).dd();
114328 };
114329 mdb(Zhe, "LinkedHashMultimap/0methodref$getValue$Type", 1838);
114330 bcb(824, 1, aie, Hs);
114331 _2.Nb = function Is(a) {
114332 Rrb(this, a);
114333 };
114334 _2.Pb = function Ks() {
114335 return Gs(this);
114336 };
114337 _2.Ob = function Js() {
114338 return this.a != this.b.a;
114339 };
114340 _2.Qb = function Ls2() {
114341 Vb(!!this.c);
114342 Gc(this.b, this.c.g, this.c.i);
114343 this.c = null;
114344 };
114345 mdb(Zhe, "LinkedHashMultimap/1", 824);
114346 bcb(330, 238, { 345: 1, 238: 1, 330: 1, 2020: 1, 3: 1, 42: 1 }, Ms);
114347 _2.Rd = function Ns() {
114348 return this.f;
114349 };
114350 _2.Sd = function Os(a) {
114351 this.c = a;
114352 };
114353 _2.Td = function Ps(a) {
114354 this.f = a;
114355 };
114356 _2.d = 0;
114357 var BG = mdb(Zhe, "LinkedHashMultimap/ValueEntry", 330);
114358 bcb(1836, 1970, { 2020: 1, 20: 1, 28: 1, 14: 1, 21: 1 }, Ss);
114359 _2.Fc = function Ts(a) {
114360 var b, c2, d, e, f2;
114361 f2 = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)));
114362 b = f2 & this.b.length - 1;
114363 e = this.b[b];
114364 for (c2 = e; c2; c2 = c2.a) {
114365 if (c2.d == f2 && Hb(c2.i, a)) {
114366 return false;
114367 }
114368 }
114369 d = new Ms(this.c, a, f2, e);
114370 Bs(this.d, d);
114371 d.f = this;
114372 this.d = d;
114373 As(this.g.a.b, d);
114374 As(d, this.g.a);
114375 this.b[b] = d;
114376 ++this.f;
114377 ++this.e;
114378 Qs(this);
114379 return true;
114380 };
114381 _2.$b = function Us() {
114382 var a, b;
114383 Alb(this.b, null);
114384 this.f = 0;
114385 for (a = this.a; a != this; a = a.Rd()) {
114386 b = BD(a, 330);
114387 As(b.b, b.e);
114388 }
114389 this.a = this;
114390 this.d = this;
114391 ++this.e;
114392 };
114393 _2.Hc = function Vs(a) {
114394 var b, c2;
114395 c2 = Tbb(Ibb(Eie, keb(Tbb(Ibb(a == null ? 0 : tb(a), Fie)), 15)));
114396 for (b = this.b[c2 & this.b.length - 1]; b; b = b.a) {
114397 if (b.d == c2 && Hb(b.i, a)) {
114398 return true;
114399 }
114400 }
114401 return false;
114402 };
114403 _2.Jc = function Ws(a) {
114404 var b;
114405 Qb(a);
114406 for (b = this.a; b != this; b = b.Rd()) {
114407 a.td(BD(b, 330).i);
114408 }
114409 };
114410 _2.Rd = function Xs() {
114411 return this.a;
114412 };
114413 _2.Kc = function Ys() {
114414 return new ct(this);
114415 };
114416 _2.Mc = function Zs(a) {
114417 return Rs(this, a);
114418 };
114419 _2.Sd = function $s(a) {
114420 this.d = a;
114421 };
114422 _2.Td = function _s(a) {
114423 this.a = a;
114424 };
114425 _2.gc = function at() {
114426 return this.f;
114427 };
114428 _2.e = 0;
114429 _2.f = 0;
114430 mdb(Zhe, "LinkedHashMultimap/ValueSet", 1836);
114431 bcb(1837, 1, aie, ct);
114432 _2.Nb = function dt(a) {
114433 Rrb(this, a);
114434 };
114435 _2.Ob = function et() {
114436 return bt(this), this.b != this.c;
114437 };
114438 _2.Pb = function ft() {
114439 var a, b;
114440 bt(this);
114441 if (this.b == this.c) {
114442 throw vbb(new utb());
114443 }
114444 a = BD(this.b, 330);
114445 b = a.i;
114446 this.d = a;
114447 this.b = a.f;
114448 return b;
114449 };
114450 _2.Qb = function gt() {
114451 bt(this);
114452 Vb(!!this.d);
114453 Rs(this.c, this.d.i);
114454 this.a = this.c.e;
114455 this.d = null;
114456 };
114457 _2.a = 0;
114458 mdb(Zhe, "LinkedHashMultimap/ValueSet/1", 1837);
114459 bcb(766, 1986, _he, mt);
114460 _2.Zb = function nt() {
114461 var a;
114462 return a = this.f, !a ? this.f = new jw(this) : a;
114463 };
114464 _2.Fb = function tt(a) {
114465 return hw(this, a);
114466 };
114467 _2.cc = function ut(a) {
114468 return new bu(this, a);
114469 };
114470 _2.fc = function xt(a) {
114471 return kt(this, a);
114472 };
114473 _2.$b = function pt() {
114474 it(this);
114475 };
114476 _2._b = function qt(a) {
114477 return jt(this, a);
114478 };
114479 _2.ac = function rt() {
114480 return new jw(this);
114481 };
114482 _2.bc = function st() {
114483 return new eu(this);
114484 };
114485 _2.qc = function vt(a) {
114486 return new bu(this, a);
114487 };
114488 _2.dc = function wt() {
114489 return !this.a;
114490 };
114491 _2.rc = function yt(a) {
114492 return kt(this, a);
114493 };
114494 _2.gc = function zt() {
114495 return this.d;
114496 };
114497 _2.c = 0;
114498 _2.d = 0;
114499 mdb(Zhe, "LinkedListMultimap", 766);
114500 bcb(52, 28, Lie);
114501 _2.ad = function Pt(a) {
114502 ktb(this, a);
114503 };
114504 _2.Nc = function Qt() {
114505 return new Kub(this, 16);
114506 };
114507 _2.Vc = function Ct(a, b) {
114508 throw vbb(new cgb("Add not supported on this list"));
114509 };
114510 _2.Fc = function Dt(a) {
114511 this.Vc(this.gc(), a);
114512 return true;
114513 };
114514 _2.Wc = function Et(a, b) {
114515 var c2, d, e;
114516 uCb(b);
114517 c2 = false;
114518 for (e = b.Kc(); e.Ob(); ) {
114519 d = e.Pb();
114520 this.Vc(a++, d);
114521 c2 = true;
114522 }
114523 return c2;
114524 };
114525 _2.$b = function Ft() {
114526 this.Ud(0, this.gc());
114527 };
114528 _2.Fb = function Gt(a) {
114529 return At(this, a);
114530 };
114531 _2.Hb = function Ht() {
114532 return qmb(this);
114533 };
114534 _2.Xc = function It(a) {
114535 return Bt(this, a);
114536 };
114537 _2.Kc = function Jt() {
114538 return new vib(this);
114539 };
114540 _2.Yc = function Kt() {
114541 return this.Zc(0);
114542 };
114543 _2.Zc = function Lt(a) {
114544 return new Bib(this, a);
114545 };
114546 _2.$c = function Mt(a) {
114547 throw vbb(new cgb("Remove not supported on this list"));
114548 };
114549 _2.Ud = function Nt(a, b) {
114550 var c2, d;
114551 d = this.Zc(a);
114552 for (c2 = a; c2 < b; ++c2) {
114553 d.Pb();
114554 d.Qb();
114555 }
114556 };
114557 _2._c = function Ot(a, b) {
114558 throw vbb(new cgb("Set not supported on this list"));
114559 };
114560 _2.bd = function Rt(a, b) {
114561 return new Jib(this, a, b);
114562 };
114563 _2.j = 0;
114564 mdb(bie, "AbstractList", 52);
114565 bcb(1964, 52, Lie);
114566 _2.Vc = function Wt(a, b) {
114567 St(this, a, b);
114568 };
114569 _2.Wc = function Xt(a, b) {
114570 return Tt(this, a, b);
114571 };
114572 _2.Xb = function Yt(a) {
114573 return Ut(this, a);
114574 };
114575 _2.Kc = function Zt() {
114576 return this.Zc(0);
114577 };
114578 _2.$c = function $t(a) {
114579 return Vt(this, a);
114580 };
114581 _2._c = function _t(b, c2) {
114582 var d, e;
114583 d = this.Zc(b);
114584 try {
114585 e = d.Pb();
114586 d.Wb(c2);
114587 return e;
114588 } catch (a) {
114589 a = ubb(a);
114590 if (JD(a, 109)) {
114591 throw vbb(new qcb("Can't set element " + b));
114592 } else
114593 throw vbb(a);
114594 }
114595 };
114596 mdb(bie, "AbstractSequentialList", 1964);
114597 bcb(636, 1964, Lie, bu);
114598 _2.Zc = function cu(a) {
114599 return au(this, a);
114600 };
114601 _2.gc = function du() {
114602 var a;
114603 a = BD(Ohb(this.a.b, this.b), 283);
114604 return !a ? 0 : a.a;
114605 };
114606 mdb(Zhe, "LinkedListMultimap/1", 636);
114607 bcb(1297, 1970, fie, eu);
114608 _2.Hc = function fu(a) {
114609 return jt(this.a, a);
114610 };
114611 _2.Kc = function gu() {
114612 return new ku(this.a);
114613 };
114614 _2.Mc = function hu(a) {
114615 return !kt(this.a, a).a.dc();
114616 };
114617 _2.gc = function iu() {
114618 return Vhb(this.a.b);
114619 };
114620 mdb(Zhe, "LinkedListMultimap/1KeySetImpl", 1297);
114621 bcb(1296, 1, aie, ku);
114622 _2.Nb = function lu(a) {
114623 Rrb(this, a);
114624 };
114625 _2.Ob = function mu() {
114626 ju(this);
114627 return !!this.c;
114628 };
114629 _2.Pb = function nu() {
114630 ju(this);
114631 ot(this.c);
114632 this.a = this.c;
114633 Qqb(this.d, this.a.a);
114634 do {
114635 this.c = this.c.b;
114636 } while (!!this.c && !Qqb(this.d, this.c.a));
114637 return this.a.a;
114638 };
114639 _2.Qb = function ou() {
114640 ju(this);
114641 Vb(!!this.a);
114642 ir(new wu(this.e, this.a.a));
114643 this.a = null;
114644 this.b = this.e.c;
114645 };
114646 _2.b = 0;
114647 mdb(Zhe, "LinkedListMultimap/DistinctKeyIterator", 1296);
114648 bcb(283, 1, { 283: 1 }, pu);
114649 _2.a = 0;
114650 mdb(Zhe, "LinkedListMultimap/KeyList", 283);
114651 bcb(1295, 345, kie, qu);
114652 _2.cd = function ru() {
114653 return this.a;
114654 };
114655 _2.dd = function su() {
114656 return this.f;
114657 };
114658 _2.ed = function tu(a) {
114659 var b;
114660 b = this.f;
114661 this.f = a;
114662 return b;
114663 };
114664 mdb(Zhe, "LinkedListMultimap/Node", 1295);
114665 bcb(560, 1, jie, wu, xu);
114666 _2.Nb = function zu(a) {
114667 Rrb(this, a);
114668 };
114669 _2.Rb = function yu(a) {
114670 this.e = ht(this.f, this.b, a, this.c);
114671 ++this.d;
114672 this.a = null;
114673 };
114674 _2.Ob = function Au() {
114675 return !!this.c;
114676 };
114677 _2.Sb = function Bu() {
114678 return !!this.e;
114679 };
114680 _2.Pb = function Cu() {
114681 return uu(this);
114682 };
114683 _2.Tb = function Du() {
114684 return this.d;
114685 };
114686 _2.Ub = function Eu() {
114687 return vu(this);
114688 };
114689 _2.Vb = function Fu() {
114690 return this.d - 1;
114691 };
114692 _2.Qb = function Gu() {
114693 Vb(!!this.a);
114694 if (this.a != this.c) {
114695 this.e = this.a.e;
114696 --this.d;
114697 } else {
114698 this.c = this.a.c;
114699 }
114700 lt(this.f, this.a);
114701 this.a = null;
114702 };
114703 _2.Wb = function Hu(a) {
114704 Ub(!!this.a);
114705 this.a.f = a;
114706 };
114707 _2.d = 0;
114708 mdb(Zhe, "LinkedListMultimap/ValueForKeyIterator", 560);
114709 bcb(1018, 52, Lie);
114710 _2.Vc = function Tu(a, b) {
114711 this.a.Vc(a, b);
114712 };
114713 _2.Wc = function Uu(a, b) {
114714 return this.a.Wc(a, b);
114715 };
114716 _2.Hc = function Vu(a) {
114717 return this.a.Hc(a);
114718 };
114719 _2.Xb = function Wu(a) {
114720 return this.a.Xb(a);
114721 };
114722 _2.$c = function Xu(a) {
114723 return this.a.$c(a);
114724 };
114725 _2._c = function Yu(a, b) {
114726 return this.a._c(a, b);
114727 };
114728 _2.gc = function Zu() {
114729 return this.a.gc();
114730 };
114731 mdb(Zhe, "Lists/AbstractListWrapper", 1018);
114732 bcb(1019, 1018, Nie);
114733 mdb(Zhe, "Lists/RandomAccessListWrapper", 1019);
114734 bcb(1021, 1019, Nie, $u);
114735 _2.Zc = function _u(a) {
114736 return this.a.Zc(a);
114737 };
114738 mdb(Zhe, "Lists/1", 1021);
114739 bcb(131, 52, { 131: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1 }, dv);
114740 _2.Vc = function ev(a, b) {
114741 this.a.Vc(cv(this, a), b);
114742 };
114743 _2.$b = function fv() {
114744 this.a.$b();
114745 };
114746 _2.Xb = function gv(a) {
114747 return this.a.Xb(bv(this, a));
114748 };
114749 _2.Kc = function hv() {
114750 return av(this, 0);
114751 };
114752 _2.Zc = function iv(a) {
114753 return av(this, a);
114754 };
114755 _2.$c = function jv(a) {
114756 return this.a.$c(bv(this, a));
114757 };
114758 _2.Ud = function kv(a, b) {
114759 (Tb(a, b, this.a.gc()), Su(this.a.bd(cv(this, b), cv(this, a)))).$b();
114760 };
114761 _2._c = function lv(a, b) {
114762 return this.a._c(bv(this, a), b);
114763 };
114764 _2.gc = function mv() {
114765 return this.a.gc();
114766 };
114767 _2.bd = function nv(a, b) {
114768 return Tb(a, b, this.a.gc()), Su(this.a.bd(cv(this, b), cv(this, a)));
114769 };
114770 mdb(Zhe, "Lists/ReverseList", 131);
114771 bcb(280, 131, { 131: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1 }, ov);
114772 mdb(Zhe, "Lists/RandomAccessReverseList", 280);
114773 bcb(1020, 1, jie, qv);
114774 _2.Nb = function sv(a) {
114775 Rrb(this, a);
114776 };
114777 _2.Rb = function rv(a) {
114778 this.c.Rb(a);
114779 this.c.Ub();
114780 this.a = false;
114781 };
114782 _2.Ob = function tv() {
114783 return this.c.Sb();
114784 };
114785 _2.Sb = function uv() {
114786 return this.c.Ob();
114787 };
114788 _2.Pb = function vv() {
114789 return pv(this);
114790 };
114791 _2.Tb = function wv() {
114792 return cv(this.b, this.c.Tb());
114793 };
114794 _2.Ub = function xv() {
114795 if (!this.c.Ob()) {
114796 throw vbb(new utb());
114797 }
114798 this.a = true;
114799 return this.c.Pb();
114800 };
114801 _2.Vb = function yv() {
114802 return cv(this.b, this.c.Tb()) - 1;
114803 };
114804 _2.Qb = function zv() {
114805 Vb(this.a);
114806 this.c.Qb();
114807 this.a = false;
114808 };
114809 _2.Wb = function Av(a) {
114810 Ub(this.a);
114811 this.c.Wb(a);
114812 };
114813 _2.a = false;
114814 mdb(Zhe, "Lists/ReverseList/1", 1020);
114815 bcb(432, 487, aie, Mv);
114816 _2.Qd = function Nv(a) {
114817 return Lv(a);
114818 };
114819 mdb(Zhe, "Maps/1", 432);
114820 bcb(698, 487, aie, Ov);
114821 _2.Qd = function Pv(a) {
114822 return BD(a, 42).dd();
114823 };
114824 mdb(Zhe, "Maps/2", 698);
114825 bcb(962, 487, aie, Qv);
114826 _2.Qd = function Rv(a) {
114827 return new Wo(a, ww(this.a, a));
114828 };
114829 mdb(Zhe, "Maps/3", 962);
114830 bcb(959, 1971, fie, Sv);
114831 _2.Jc = function Tv(a) {
114832 mj(this.a, a);
114833 };
114834 _2.Kc = function Uv() {
114835 return this.a.kc();
114836 };
114837 _2.Rc = function Vv() {
114838 return this.a;
114839 };
114840 _2.Nc = function Wv() {
114841 return this.a.lc();
114842 };
114843 mdb(Zhe, "Maps/IteratorBasedAbstractMap/1", 959);
114844 bcb(960, 1, {}, Xv);
114845 _2.Od = function Yv(a, b) {
114846 this.a.td(a);
114847 };
114848 mdb(Zhe, "Maps/KeySet/lambda$0$Type", 960);
114849 bcb(958, 28, die, Zv);
114850 _2.$b = function $v() {
114851 this.a.$b();
114852 };
114853 _2.Hc = function _v(a) {
114854 return this.a.uc(a);
114855 };
114856 _2.Jc = function aw(a) {
114857 Qb(a);
114858 this.a.wc(new fw(a));
114859 };
114860 _2.dc = function bw() {
114861 return this.a.dc();
114862 };
114863 _2.Kc = function cw() {
114864 return new Ov(this.a.vc().Kc());
114865 };
114866 _2.Mc = function dw(b) {
114867 var c2, d;
114868 try {
114869 return ze(this, b, true);
114870 } catch (a) {
114871 a = ubb(a);
114872 if (JD(a, 41)) {
114873 for (d = this.a.vc().Kc(); d.Ob(); ) {
114874 c2 = BD(d.Pb(), 42);
114875 if (Hb(b, c2.dd())) {
114876 this.a.Bc(c2.cd());
114877 return true;
114878 }
114879 }
114880 return false;
114881 } else
114882 throw vbb(a);
114883 }
114884 };
114885 _2.gc = function ew() {
114886 return this.a.gc();
114887 };
114888 mdb(Zhe, "Maps/Values", 958);
114889 bcb(961, 1, {}, fw);
114890 _2.Od = function gw(a, b) {
114891 this.a.td(b);
114892 };
114893 mdb(Zhe, "Maps/Values/lambda$0$Type", 961);
114894 bcb(736, 1987, cie, jw);
114895 _2.xc = function nw(a) {
114896 return this.a._b(a) ? this.a.cc(a) : null;
114897 };
114898 _2.Bc = function qw(a) {
114899 return this.a._b(a) ? this.a.fc(a) : null;
114900 };
114901 _2.$b = function kw() {
114902 this.a.$b();
114903 };
114904 _2._b = function lw(a) {
114905 return this.a._b(a);
114906 };
114907 _2.Ec = function mw() {
114908 return new sw(this);
114909 };
114910 _2.Dc = function() {
114911 return this.Ec();
114912 };
114913 _2.dc = function ow() {
114914 return this.a.dc();
114915 };
114916 _2.ec = function pw() {
114917 return this.a.ec();
114918 };
114919 _2.gc = function rw() {
114920 return this.a.ec().gc();
114921 };
114922 mdb(Zhe, "Multimaps/AsMap", 736);
114923 bcb(1104, 1971, fie, sw);
114924 _2.Kc = function tw() {
114925 return Bv(this.a.a.ec(), new xw(this));
114926 };
114927 _2.Rc = function uw() {
114928 return this.a;
114929 };
114930 _2.Mc = function vw(a) {
114931 var b;
114932 if (!Ze(this, a)) {
114933 return false;
114934 }
114935 b = BD(a, 42);
114936 iw(this.a, b.cd());
114937 return true;
114938 };
114939 mdb(Zhe, "Multimaps/AsMap/EntrySet", 1104);
114940 bcb(1108, 1, {}, xw);
114941 _2.Kb = function yw(a) {
114942 return ww(this, a);
114943 };
114944 _2.Fb = function zw(a) {
114945 return this === a;
114946 };
114947 mdb(Zhe, "Multimaps/AsMap/EntrySet/1", 1108);
114948 bcb(543, 1989, { 543: 1, 835: 1, 20: 1, 28: 1, 14: 1 }, Cw);
114949 _2.$b = function Dw() {
114950 Nc(this.a);
114951 };
114952 _2.Hc = function Ew(a) {
114953 return Oc(this.a, a);
114954 };
114955 _2.Jc = function Fw(a) {
114956 Qb(a);
114957 reb(Pc(this.a), new Rw(a));
114958 };
114959 _2.Kc = function Gw() {
114960 return new Mv(Pc(this.a).a.kc());
114961 };
114962 _2.gc = function Hw() {
114963 return this.a.d;
114964 };
114965 _2.Nc = function Iw() {
114966 return $j(Pc(this.a).Nc(), new Jw());
114967 };
114968 mdb(Zhe, "Multimaps/Keys", 543);
114969 bcb(1106, 1, {}, Jw);
114970 _2.Kb = function Kw(a) {
114971 return BD(a, 42).cd();
114972 };
114973 mdb(Zhe, "Multimaps/Keys/0methodref$getKey$Type", 1106);
114974 bcb(1105, 487, aie, Lw);
114975 _2.Qd = function Mw(a) {
114976 return new Qw(BD(a, 42));
114977 };
114978 mdb(Zhe, "Multimaps/Keys/1", 1105);
114979 bcb(1990, 1, { 416: 1 });
114980 _2.Fb = function Nw(a) {
114981 var b;
114982 if (JD(a, 492)) {
114983 b = BD(a, 416);
114984 return BD(this.a.dd(), 14).gc() == BD(b.a.dd(), 14).gc() && Hb(this.a.cd(), b.a.cd());
114985 }
114986 return false;
114987 };
114988 _2.Hb = function Ow() {
114989 var a;
114990 a = this.a.cd();
114991 return (a == null ? 0 : tb(a)) ^ BD(this.a.dd(), 14).gc();
114992 };
114993 _2.Ib = function Pw() {
114994 var a, b;
114995 b = xfb(this.a.cd());
114996 a = BD(this.a.dd(), 14).gc();
114997 return a == 1 ? b : b + " x " + a;
114998 };
114999 mdb(Zhe, "Multisets/AbstractEntry", 1990);
115000 bcb(492, 1990, { 492: 1, 416: 1 }, Qw);
115001 mdb(Zhe, "Multimaps/Keys/1/1", 492);
115002 bcb(1107, 1, qie, Rw);
115003 _2.td = function Sw(a) {
115004 this.a.td(BD(a, 42).cd());
115005 };
115006 mdb(Zhe, "Multimaps/Keys/lambda$1$Type", 1107);
115007 bcb(1110, 1, qie, Vw);
115008 _2.td = function Ww(a) {
115009 Tw(BD(a, 416));
115010 };
115011 mdb(Zhe, "Multiset/lambda$0$Type", 1110);
115012 bcb(737, 1, qie, Xw);
115013 _2.td = function Yw(a) {
115014 Uw(this.a, BD(a, 416));
115015 };
115016 mdb(Zhe, "Multiset/lambda$1$Type", 737);
115017 bcb(1111, 1, {}, bx);
115018 mdb(Zhe, "Multisets/0methodref$add$Type", 1111);
115019 bcb(738, 1, {}, cx);
115020 _2.Kb = function dx(a) {
115021 return _w(BD(a, 416));
115022 };
115023 mdb(Zhe, "Multisets/lambda$3$Type", 738);
115024 bcb(2008, 1, Qhe);
115025 mdb(Zhe, "RangeGwtSerializationDependencies", 2008);
115026 bcb(514, 2008, { 169: 1, 514: 1, 3: 1, 45: 1 }, gx);
115027 _2.Lb = function hx(a) {
115028 return fx(this, BD(a, 35));
115029 };
115030 _2.Mb = function lx(a) {
115031 return fx(this, BD(a, 35));
115032 };
115033 _2.Fb = function jx(a) {
115034 var b;
115035 if (JD(a, 514)) {
115036 b = BD(a, 514);
115037 return Ek(this.a, b.a) && Ek(this.b, b.b);
115038 }
115039 return false;
115040 };
115041 _2.Hb = function kx() {
115042 return this.a.Hb() * 31 + this.b.Hb();
115043 };
115044 _2.Ib = function mx() {
115045 return nx(this.a, this.b);
115046 };
115047 mdb(Zhe, "Range", 514);
115048 bcb(778, 1999, yie, px);
115049 _2.Zc = function tx(a) {
115050 return jm(this.b, a);
115051 };
115052 _2.Pd = function qx() {
115053 return this.a;
115054 };
115055 _2.Xb = function rx(a) {
115056 return Em(this.b, a);
115057 };
115058 _2.Fd = function sx(a) {
115059 return jm(this.b, a);
115060 };
115061 mdb(Zhe, "RegularImmutableAsList", 778);
115062 bcb(646, 2006, yie, ux);
115063 _2.Hd = function vx() {
115064 return this.a;
115065 };
115066 mdb(Zhe, "RegularImmutableList", 646);
115067 bcb(616, 715, Aie, wx);
115068 mdb(Zhe, "RegularImmutableMap", 616);
115069 bcb(716, 703, Cie, zx);
115070 var xx;
115071 mdb(Zhe, "RegularImmutableSet", 716);
115072 bcb(1976, eie, fie);
115073 _2.Kc = function Mx() {
115074 return new Xx(this.a, this.b);
115075 };
115076 _2.Fc = function Jx(a) {
115077 throw vbb(new bgb());
115078 };
115079 _2.Gc = function Kx(a) {
115080 throw vbb(new bgb());
115081 };
115082 _2.$b = function Lx() {
115083 throw vbb(new bgb());
115084 };
115085 _2.Mc = function Nx(a) {
115086 throw vbb(new bgb());
115087 };
115088 mdb(Zhe, "Sets/SetView", 1976);
115089 bcb(963, 1976, fie, Px);
115090 _2.Kc = function Tx() {
115091 return new Xx(this.a, this.b);
115092 };
115093 _2.Hc = function Qx(a) {
115094 return tqb(this.a, a) && this.b.Hc(a);
115095 };
115096 _2.Ic = function Rx(a) {
115097 return Be(this.a, a) && this.b.Ic(a);
115098 };
115099 _2.dc = function Sx() {
115100 return omb(this.b, this.a);
115101 };
115102 _2.Lc = function Ux() {
115103 return JAb(new YAb(null, new Kub(this.a, 1)), new _x(this.b));
115104 };
115105 _2.gc = function Vx() {
115106 return Ox(this);
115107 };
115108 _2.Oc = function Wx() {
115109 return JAb(new YAb(null, new Kub(this.a, 1)), new Zx(this.b));
115110 };
115111 mdb(Zhe, "Sets/2", 963);
115112 bcb(700, 699, Yhe, Xx);
115113 _2.Yb = function Yx() {
115114 var a;
115115 while (Eqb(this.a)) {
115116 a = Fqb(this.a);
115117 if (this.c.Hc(a)) {
115118 return a;
115119 }
115120 }
115121 return this.e = 2, null;
115122 };
115123 mdb(Zhe, "Sets/2/1", 700);
115124 bcb(964, 1, Oie, Zx);
115125 _2.Mb = function $x(a) {
115126 return this.a.Hc(a);
115127 };
115128 mdb(Zhe, "Sets/2/4methodref$contains$Type", 964);
115129 bcb(965, 1, Oie, _x);
115130 _2.Mb = function ay(a) {
115131 return this.a.Hc(a);
115132 };
115133 mdb(Zhe, "Sets/2/5methodref$contains$Type", 965);
115134 bcb(607, 1975, { 607: 1, 3: 1, 20: 1, 14: 1, 271: 1, 21: 1, 84: 1 }, by);
115135 _2.Bd = function cy() {
115136 return this.b;
115137 };
115138 _2.Cd = function dy() {
115139 return this.b;
115140 };
115141 _2.Md = function ey() {
115142 return this.b;
115143 };
115144 _2.Jc = function fy(a) {
115145 this.a.Jc(a);
115146 };
115147 _2.Lc = function gy() {
115148 return this.a.Lc();
115149 };
115150 _2.Oc = function hy() {
115151 return this.a.Oc();
115152 };
115153 mdb(Zhe, "Sets/UnmodifiableNavigableSet", 607);
115154 bcb(1932, 1931, Aie, iy);
115155 _2.Ld = function jy() {
115156 return Ql(), new oy(this.a);
115157 };
115158 _2.Cc = function ky() {
115159 return Ql(), new oy(this.a);
115160 };
115161 _2.pd = function ly() {
115162 return Ql(), new oy(this.a);
115163 };
115164 mdb(Zhe, "SingletonImmutableBiMap", 1932);
115165 bcb(647, 2006, yie, my);
115166 _2.Hd = function ny() {
115167 return this.a;
115168 };
115169 mdb(Zhe, "SingletonImmutableList", 647);
115170 bcb(350, 1981, Cie, oy);
115171 _2.Kc = function ry() {
115172 return new Ir(this.a);
115173 };
115174 _2.Hc = function py(a) {
115175 return pb(this.a, a);
115176 };
115177 _2.Ed = function qy() {
115178 return new Ir(this.a);
115179 };
115180 _2.gc = function sy() {
115181 return 1;
115182 };
115183 mdb(Zhe, "SingletonImmutableSet", 350);
115184 bcb(1115, 1, {}, vy);
115185 _2.Kb = function wy(a) {
115186 return BD(a, 164);
115187 };
115188 mdb(Zhe, "Streams/lambda$0$Type", 1115);
115189 bcb(1116, 1, Pie, xy);
115190 _2.Vd = function yy() {
115191 uy(this.a);
115192 };
115193 mdb(Zhe, "Streams/lambda$1$Type", 1116);
115194 bcb(1659, 1658, _he, Ay);
115195 _2.Zb = function By() {
115196 var a;
115197 return a = this.f, BD(BD(!a ? this.f = JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c) : a, 161), 171);
115198 };
115199 _2.hc = function Ey() {
115200 return new Hxb(this.b);
115201 };
115202 _2.gd = function Fy() {
115203 return new Hxb(this.b);
115204 };
115205 _2.ec = function Hy() {
115206 var a;
115207 return a = this.i, BD(BD(!a ? this.i = JD(this.c, 171) ? new $f(this, BD(this.c, 171)) : JD(this.c, 161) ? new Yf(this, BD(this.c, 161)) : new zf(this, this.c) : a, 84), 271);
115208 };
115209 _2.ac = function Dy() {
115210 return JD(this.c, 171) ? new Sf(this, BD(this.c, 171)) : JD(this.c, 161) ? new Mf(this, BD(this.c, 161)) : new ne(this, this.c);
115211 };
115212 _2.ic = function Gy(a) {
115213 a == null && this.a.ue(a, a);
115214 return new Hxb(this.b);
115215 };
115216 mdb(Zhe, "TreeMultimap", 1659);
115217 bcb(78, 1, { 3: 1, 78: 1 });
115218 _2.Wd = function $y(a) {
115219 return new Error(a);
115220 };
115221 _2.Xd = function az() {
115222 return this.e;
115223 };
115224 _2.Yd = function bz() {
115225 return XAb(NAb(Plb((this.k == null && (this.k = KC(_I, nie, 78, 0, 0, 1)), this.k)), new _fb()));
115226 };
115227 _2.Zd = function cz() {
115228 return this.f;
115229 };
115230 _2.$d = function dz() {
115231 return this.g;
115232 };
115233 _2._d = function ez() {
115234 Vy(this, _y(this.Wd(Wy(this, this.g))));
115235 Sz(this);
115236 };
115237 _2.Ib = function fz() {
115238 return Wy(this, this.$d());
115239 };
115240 _2.e = Sie;
115241 _2.i = false;
115242 _2.n = true;
115243 var _I = mdb(Phe, "Throwable", 78);
115244 bcb(102, 78, { 3: 1, 102: 1, 78: 1 });
115245 mdb(Phe, "Exception", 102);
115246 bcb(60, 102, Tie, gz, hz);
115247 mdb(Phe, "RuntimeException", 60);
115248 bcb(598, 60, Tie);
115249 mdb(Phe, "JsException", 598);
115250 bcb(863, 598, Tie);
115251 mdb(Uie, "JavaScriptExceptionBase", 863);
115252 bcb(477, 863, { 477: 1, 3: 1, 102: 1, 60: 1, 78: 1 }, lz);
115253 _2.$d = function oz() {
115254 kz(this);
115255 return this.c;
115256 };
115257 _2.ae = function pz() {
115258 return PD(this.b) === PD(iz) ? null : this.b;
115259 };
115260 var iz;
115261 mdb(Wie, "JavaScriptException", 477);
115262 var PH = mdb(Wie, "JavaScriptObject$", 0);
115263 var tz;
115264 bcb(1948, 1, {});
115265 mdb(Wie, "Scheduler", 1948);
115266 var xz = 0, yz = 0, zz = -1;
115267 bcb(890, 1948, {}, Nz);
115268 var Jz;
115269 mdb(Uie, "SchedulerImpl", 890);
115270 var Qz;
115271 bcb(1960, 1, {});
115272 mdb(Uie, "StackTraceCreator/Collector", 1960);
115273 bcb(864, 1960, {}, Yz);
115274 _2.be = function Zz(a) {
115275 var b = {};
115276 var c2 = [];
115277 a[Yie] = c2;
115278 var d = arguments.callee.caller;
115279 while (d) {
115280 var e = (Rz(), d.name || (d.name = Uz(d.toString())));
115281 c2.push(e);
115282 var f2 = ":" + e;
115283 var g = b[f2];
115284 if (g) {
115285 var h, i3;
115286 for (h = 0, i3 = g.length; h < i3; h++) {
115287 if (g[h] === d) {
115288 return;
115289 }
115290 }
115291 }
115292 (g || (b[f2] = [])).push(d);
115293 d = d.caller;
115294 }
115295 };
115296 _2.ce = function $z(a) {
115297 var b, c2, d, e;
115298 d = (Rz(), a && a[Yie] ? a[Yie] : []);
115299 c2 = d.length;
115300 e = KC(VI, nie, 310, c2, 0, 1);
115301 for (b = 0; b < c2; b++) {
115302 e[b] = new Zeb(d[b], null, -1);
115303 }
115304 return e;
115305 };
115306 mdb(Uie, "StackTraceCreator/CollectorLegacy", 864);
115307 bcb(1961, 1960, {});
115308 _2.be = function aA(a) {
115309 };
115310 _2.de = function bA(a, b, c2, d) {
115311 return new Zeb(b, a + "@" + d, c2 < 0 ? -1 : c2);
115312 };
115313 _2.ce = function cA(a) {
115314 var b, c2, d, e, f2, g;
115315 e = Wz(a);
115316 f2 = KC(VI, nie, 310, 0, 0, 1);
115317 b = 0;
115318 d = e.length;
115319 if (d == 0) {
115320 return f2;
115321 }
115322 g = _z(this, e[0]);
115323 dfb(g.d, Xie) || (f2[b++] = g);
115324 for (c2 = 1; c2 < d; c2++) {
115325 f2[b++] = _z(this, e[c2]);
115326 }
115327 return f2;
115328 };
115329 mdb(Uie, "StackTraceCreator/CollectorModern", 1961);
115330 bcb(865, 1961, {}, dA);
115331 _2.de = function eA(a, b, c2, d) {
115332 return new Zeb(b, a, -1);
115333 };
115334 mdb(Uie, "StackTraceCreator/CollectorModernNoSourceMap", 865);
115335 bcb(1050, 1, {});
115336 mdb(yje, zje, 1050);
115337 bcb(615, 1050, { 615: 1 }, HA);
115338 var FA;
115339 mdb(Aje, zje, 615);
115340 bcb(2001, 1, {});
115341 mdb(yje, Bje, 2001);
115342 bcb(2002, 2001, {});
115343 mdb(Aje, Bje, 2002);
115344 bcb(1090, 1, {}, MA);
115345 var JA;
115346 mdb(Aje, "LocaleInfo", 1090);
115347 bcb(1918, 1, {}, PA);
115348 _2.a = 0;
115349 mdb(Aje, "TimeZone", 1918);
115350 bcb(1258, 2002, {}, VA);
115351 mdb("com.google.gwt.i18n.client.impl.cldr", "DateTimeFormatInfoImpl", 1258);
115352 bcb(434, 1, { 434: 1 }, WA);
115353 _2.a = false;
115354 _2.b = 0;
115355 mdb(yje, "DateTimeFormat/PatternPart", 434);
115356 bcb(199, 1, Cje, eB, fB, gB);
115357 _2.wd = function hB(a) {
115358 return XA(this, BD(a, 199));
115359 };
115360 _2.Fb = function iB(a) {
115361 return JD(a, 199) && Bbb(Cbb(this.q.getTime()), Cbb(BD(a, 199).q.getTime()));
115362 };
115363 _2.Hb = function jB() {
115364 var a;
115365 a = Cbb(this.q.getTime());
115366 return Tbb(Vbb(a, Pbb(a, 32)));
115367 };
115368 _2.Ib = function lB() {
115369 var a, b, c2;
115370 c2 = -this.q.getTimezoneOffset();
115371 a = (c2 >= 0 ? "+" : "") + (c2 / 60 | 0);
115372 b = kB($wnd.Math.abs(c2) % 60);
115373 return (Dpb(), Bpb)[this.q.getDay()] + " " + Cpb[this.q.getMonth()] + " " + kB(this.q.getDate()) + " " + kB(this.q.getHours()) + ":" + kB(this.q.getMinutes()) + ":" + kB(this.q.getSeconds()) + " GMT" + a + b + " " + this.q.getFullYear();
115374 };
115375 var $J = mdb(bie, "Date", 199);
115376 bcb(1915, 199, Cje, nB);
115377 _2.a = false;
115378 _2.b = 0;
115379 _2.c = 0;
115380 _2.d = 0;
115381 _2.e = 0;
115382 _2.f = 0;
115383 _2.g = false;
115384 _2.i = 0;
115385 _2.j = 0;
115386 _2.k = 0;
115387 _2.n = 0;
115388 _2.o = 0;
115389 _2.p = 0;
115390 mdb("com.google.gwt.i18n.shared.impl", "DateRecord", 1915);
115391 bcb(1966, 1, {});
115392 _2.fe = function oB() {
115393 return null;
115394 };
115395 _2.ge = function pB() {
115396 return null;
115397 };
115398 _2.he = function qB() {
115399 return null;
115400 };
115401 _2.ie = function rB() {
115402 return null;
115403 };
115404 _2.je = function sB() {
115405 return null;
115406 };
115407 mdb(Dje, "JSONValue", 1966);
115408 bcb(216, 1966, { 216: 1 }, wB, xB);
115409 _2.Fb = function yB(a) {
115410 if (!JD(a, 216)) {
115411 return false;
115412 }
115413 return qz(this.a, BD(a, 216).a);
115414 };
115415 _2.ee = function zB() {
115416 return DB;
115417 };
115418 _2.Hb = function AB() {
115419 return rz(this.a);
115420 };
115421 _2.fe = function BB() {
115422 return this;
115423 };
115424 _2.Ib = function CB() {
115425 var a, b, c2;
115426 c2 = new Wfb("[");
115427 for (b = 0, a = this.a.length; b < a; b++) {
115428 b > 0 && (c2.a += ",", c2);
115429 Pfb(c2, tB(this, b));
115430 }
115431 c2.a += "]";
115432 return c2.a;
115433 };
115434 mdb(Dje, "JSONArray", 216);
115435 bcb(483, 1966, { 483: 1 }, HB);
115436 _2.ee = function IB() {
115437 return LB;
115438 };
115439 _2.ge = function JB() {
115440 return this;
115441 };
115442 _2.Ib = function KB() {
115443 return Bcb(), "" + this.a;
115444 };
115445 _2.a = false;
115446 var EB, FB;
115447 mdb(Dje, "JSONBoolean", 483);
115448 bcb(985, 60, Tie, MB);
115449 mdb(Dje, "JSONException", 985);
115450 bcb(1023, 1966, {}, PB);
115451 _2.ee = function QB() {
115452 return SB;
115453 };
115454 _2.Ib = function RB() {
115455 return Xhe;
115456 };
115457 var NB;
115458 mdb(Dje, "JSONNull", 1023);
115459 bcb(258, 1966, { 258: 1 }, TB);
115460 _2.Fb = function UB(a) {
115461 if (!JD(a, 258)) {
115462 return false;
115463 }
115464 return this.a == BD(a, 258).a;
115465 };
115466 _2.ee = function VB() {
115467 return ZB;
115468 };
115469 _2.Hb = function WB() {
115470 return Hdb(this.a);
115471 };
115472 _2.he = function XB() {
115473 return this;
115474 };
115475 _2.Ib = function YB() {
115476 return this.a + "";
115477 };
115478 _2.a = 0;
115479 mdb(Dje, "JSONNumber", 258);
115480 bcb(183, 1966, { 183: 1 }, eC, fC);
115481 _2.Fb = function gC(a) {
115482 if (!JD(a, 183)) {
115483 return false;
115484 }
115485 return qz(this.a, BD(a, 183).a);
115486 };
115487 _2.ee = function hC() {
115488 return lC;
115489 };
115490 _2.Hb = function iC() {
115491 return rz(this.a);
115492 };
115493 _2.ie = function jC() {
115494 return this;
115495 };
115496 _2.Ib = function kC() {
115497 var a, b, c2, d, e, f2, g;
115498 g = new Wfb("{");
115499 a = true;
115500 f2 = $B(this, KC(ZI, nie, 2, 0, 6, 1));
115501 for (c2 = f2, d = 0, e = c2.length; d < e; ++d) {
115502 b = c2[d];
115503 a ? a = false : (g.a += She, g);
115504 Qfb(g, vz(b));
115505 g.a += ":";
115506 Pfb(g, aC(this, b));
115507 }
115508 g.a += "}";
115509 return g.a;
115510 };
115511 mdb(Dje, "JSONObject", 183);
115512 bcb(596, eie, fie, mC);
115513 _2.Hc = function nC(a) {
115514 return ND(a) && _B(this.a, GD(a));
115515 };
115516 _2.Kc = function oC() {
115517 return new vib(new amb(this.b));
115518 };
115519 _2.gc = function pC() {
115520 return this.b.length;
115521 };
115522 mdb(Dje, "JSONObject/1", 596);
115523 var qC;
115524 bcb(204, 1966, { 204: 1 }, yC);
115525 _2.Fb = function zC(a) {
115526 if (!JD(a, 204)) {
115527 return false;
115528 }
115529 return dfb(this.a, BD(a, 204).a);
115530 };
115531 _2.ee = function AC() {
115532 return EC;
115533 };
115534 _2.Hb = function BC() {
115535 return LCb(this.a);
115536 };
115537 _2.je = function CC() {
115538 return this;
115539 };
115540 _2.Ib = function DC() {
115541 return vz(this.a);
115542 };
115543 mdb(Dje, "JSONString", 204);
115544 var QC;
115545 var sD, tD, uD, vD;
115546 bcb(1962, 1, { 525: 1 });
115547 mdb(Lje, "OutputStream", 1962);
115548 bcb(1963, 1962, { 525: 1 });
115549 mdb(Lje, "FilterOutputStream", 1963);
115550 bcb(866, 1963, { 525: 1 }, jcb);
115551 mdb(Lje, "PrintStream", 866);
115552 bcb(418, 1, { 475: 1 });
115553 _2.Ib = function ncb() {
115554 return this.a;
115555 };
115556 mdb(Phe, "AbstractStringBuilder", 418);
115557 bcb(529, 60, Tie, ocb);
115558 mdb(Phe, "ArithmeticException", 529);
115559 bcb(73, 60, Mje, pcb, qcb);
115560 mdb(Phe, "IndexOutOfBoundsException", 73);
115561 bcb(320, 73, { 3: 1, 320: 1, 102: 1, 73: 1, 60: 1, 78: 1 }, rcb, scb);
115562 mdb(Phe, "ArrayIndexOutOfBoundsException", 320);
115563 bcb(528, 60, Tie, tcb, ucb);
115564 mdb(Phe, "ArrayStoreException", 528);
115565 bcb(289, 78, Nje, vcb);
115566 mdb(Phe, "Error", 289);
115567 bcb(194, 289, Nje, xcb, ycb);
115568 mdb(Phe, "AssertionError", 194);
115569 xD = { 3: 1, 476: 1, 35: 1 };
115570 var zcb, Acb;
115571 var wI = mdb(Phe, "Boolean", 476);
115572 bcb(236, 1, { 3: 1, 236: 1 });
115573 var Gcb;
115574 mdb(Phe, "Number", 236);
115575 bcb(217, 236, { 3: 1, 217: 1, 35: 1, 236: 1 }, Mcb);
115576 _2.wd = function Ncb(a) {
115577 return Lcb(this, BD(a, 217));
115578 };
115579 _2.ke = function Ocb() {
115580 return this.a;
115581 };
115582 _2.Fb = function Pcb(a) {
115583 return JD(a, 217) && BD(a, 217).a == this.a;
115584 };
115585 _2.Hb = function Qcb() {
115586 return this.a;
115587 };
115588 _2.Ib = function Rcb() {
115589 return "" + this.a;
115590 };
115591 _2.a = 0;
115592 var xI = mdb(Phe, "Byte", 217);
115593 var Tcb;
115594 bcb(172, 1, { 3: 1, 172: 1, 35: 1 }, Xcb);
115595 _2.wd = function Ycb(a) {
115596 return Wcb(this, BD(a, 172));
115597 };
115598 _2.Fb = function $cb(a) {
115599 return JD(a, 172) && BD(a, 172).a == this.a;
115600 };
115601 _2.Hb = function _cb() {
115602 return this.a;
115603 };
115604 _2.Ib = function adb() {
115605 return String.fromCharCode(this.a);
115606 };
115607 _2.a = 0;
115608 var Vcb;
115609 var yI = mdb(Phe, "Character", 172);
115610 var cdb;
115611 bcb(205, 60, { 3: 1, 205: 1, 102: 1, 60: 1, 78: 1 }, Bdb, Cdb);
115612 mdb(Phe, "ClassCastException", 205);
115613 yD = { 3: 1, 35: 1, 333: 1, 236: 1 };
115614 var BI = mdb(Phe, "Double", 333);
115615 bcb(155, 236, { 3: 1, 35: 1, 155: 1, 236: 1 }, Ndb, Odb);
115616 _2.wd = function Pdb(a) {
115617 return Mdb(this, BD(a, 155));
115618 };
115619 _2.ke = function Qdb() {
115620 return this.a;
115621 };
115622 _2.Fb = function Rdb(a) {
115623 return JD(a, 155) && Fdb(this.a, BD(a, 155).a);
115624 };
115625 _2.Hb = function Sdb() {
115626 return QD(this.a);
115627 };
115628 _2.Ib = function Udb() {
115629 return "" + this.a;
115630 };
115631 _2.a = 0;
115632 var FI = mdb(Phe, "Float", 155);
115633 bcb(32, 60, { 3: 1, 102: 1, 32: 1, 60: 1, 78: 1 }, Vdb, Wdb, Xdb);
115634 mdb(Phe, "IllegalArgumentException", 32);
115635 bcb(71, 60, Tie, Ydb, Zdb);
115636 mdb(Phe, "IllegalStateException", 71);
115637 bcb(19, 236, { 3: 1, 35: 1, 19: 1, 236: 1 }, _db);
115638 _2.wd = function ceb(a) {
115639 return $db(this, BD(a, 19));
115640 };
115641 _2.ke = function deb() {
115642 return this.a;
115643 };
115644 _2.Fb = function eeb(a) {
115645 return JD(a, 19) && BD(a, 19).a == this.a;
115646 };
115647 _2.Hb = function feb() {
115648 return this.a;
115649 };
115650 _2.Ib = function leb() {
115651 return "" + this.a;
115652 };
115653 _2.a = 0;
115654 var JI = mdb(Phe, "Integer", 19);
115655 var neb;
115656 var peb;
115657 bcb(162, 236, { 3: 1, 35: 1, 162: 1, 236: 1 }, teb);
115658 _2.wd = function veb(a) {
115659 return seb(this, BD(a, 162));
115660 };
115661 _2.ke = function web() {
115662 return Sbb(this.a);
115663 };
115664 _2.Fb = function xeb(a) {
115665 return JD(a, 162) && Bbb(BD(a, 162).a, this.a);
115666 };
115667 _2.Hb = function yeb() {
115668 return Tbb(this.a);
115669 };
115670 _2.Ib = function zeb() {
115671 return "" + Ubb(this.a);
115672 };
115673 _2.a = 0;
115674 var MI = mdb(Phe, "Long", 162);
115675 var Beb;
115676 bcb(2039, 1, {});
115677 bcb(1831, 60, Tie, Feb);
115678 mdb(Phe, "NegativeArraySizeException", 1831);
115679 bcb(173, 598, { 3: 1, 102: 1, 173: 1, 60: 1, 78: 1 }, Geb, Heb);
115680 _2.Wd = function Ieb(a) {
115681 return new TypeError(a);
115682 };
115683 mdb(Phe, "NullPointerException", 173);
115684 var Jeb, Keb, Leb, Meb;
115685 bcb(127, 32, { 3: 1, 102: 1, 32: 1, 127: 1, 60: 1, 78: 1 }, Oeb);
115686 mdb(Phe, "NumberFormatException", 127);
115687 bcb(184, 236, { 3: 1, 35: 1, 236: 1, 184: 1 }, Qeb);
115688 _2.wd = function Reb(a) {
115689 return Peb(this, BD(a, 184));
115690 };
115691 _2.ke = function Seb() {
115692 return this.a;
115693 };
115694 _2.Fb = function Teb(a) {
115695 return JD(a, 184) && BD(a, 184).a == this.a;
115696 };
115697 _2.Hb = function Ueb() {
115698 return this.a;
115699 };
115700 _2.Ib = function Veb() {
115701 return "" + this.a;
115702 };
115703 _2.a = 0;
115704 var UI = mdb(Phe, "Short", 184);
115705 var Xeb;
115706 bcb(310, 1, { 3: 1, 310: 1 }, Zeb);
115707 _2.Fb = function $eb(a) {
115708 var b;
115709 if (JD(a, 310)) {
115710 b = BD(a, 310);
115711 return this.c == b.c && this.d == b.d && this.a == b.a && this.b == b.b;
115712 }
115713 return false;
115714 };
115715 _2.Hb = function _eb() {
115716 return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [meb(this.c), this.a, this.d, this.b]));
115717 };
115718 _2.Ib = function afb() {
115719 return this.a + "." + this.d + "(" + (this.b != null ? this.b : "Unknown Source") + (this.c >= 0 ? ":" + this.c : "") + ")";
115720 };
115721 _2.c = 0;
115722 var VI = mdb(Phe, "StackTraceElement", 310);
115723 zD = { 3: 1, 475: 1, 35: 1, 2: 1 };
115724 var ZI = mdb(Phe, Vie, 2);
115725 bcb(107, 418, { 475: 1 }, Hfb, Ifb, Jfb);
115726 mdb(Phe, "StringBuffer", 107);
115727 bcb(100, 418, { 475: 1 }, Ufb, Vfb, Wfb);
115728 mdb(Phe, "StringBuilder", 100);
115729 bcb(687, 73, Mje, Xfb);
115730 mdb(Phe, "StringIndexOutOfBoundsException", 687);
115731 bcb(2043, 1, {});
115732 var Yfb;
115733 bcb(844, 1, {}, _fb);
115734 _2.Kb = function agb(a) {
115735 return BD(a, 78).e;
115736 };
115737 mdb(Phe, "Throwable/lambda$0$Type", 844);
115738 bcb(41, 60, { 3: 1, 102: 1, 60: 1, 78: 1, 41: 1 }, bgb, cgb);
115739 mdb(Phe, "UnsupportedOperationException", 41);
115740 bcb(240, 236, { 3: 1, 35: 1, 236: 1, 240: 1 }, sgb, tgb);
115741 _2.wd = function wgb(a) {
115742 return mgb(this, BD(a, 240));
115743 };
115744 _2.ke = function xgb() {
115745 return Hcb(rgb2(this));
115746 };
115747 _2.Fb = function ygb(a) {
115748 var b;
115749 if (this === a) {
115750 return true;
115751 }
115752 if (JD(a, 240)) {
115753 b = BD(a, 240);
115754 return this.e == b.e && mgb(this, b) == 0;
115755 }
115756 return false;
115757 };
115758 _2.Hb = function zgb() {
115759 var a;
115760 if (this.b != 0) {
115761 return this.b;
115762 }
115763 if (this.a < 54) {
115764 a = Cbb(this.f);
115765 this.b = Tbb(xbb(a, -1));
115766 this.b = 33 * this.b + Tbb(xbb(Obb(a, 32), -1));
115767 this.b = 17 * this.b + QD(this.e);
115768 return this.b;
115769 }
115770 this.b = 17 * Ngb(this.c) + QD(this.e);
115771 return this.b;
115772 };
115773 _2.Ib = function Agb() {
115774 return rgb2(this);
115775 };
115776 _2.a = 0;
115777 _2.b = 0;
115778 _2.d = 0;
115779 _2.e = 0;
115780 _2.f = 0;
115781 var dgb, egb, fgb, ggb, hgb, igb, jgb, kgb;
115782 var bJ = mdb("java.math", "BigDecimal", 240);
115783 bcb(91, 236, { 3: 1, 35: 1, 236: 1, 91: 1 }, Tgb, Ugb, Vgb, Wgb, Xgb, Ygb);
115784 _2.wd = function $gb(a) {
115785 return Igb(this, BD(a, 91));
115786 };
115787 _2.ke = function _gb() {
115788 return Hcb(shb(this, 0));
115789 };
115790 _2.Fb = function ahb(a) {
115791 return Kgb(this, a);
115792 };
115793 _2.Hb = function chb() {
115794 return Ngb(this);
115795 };
115796 _2.Ib = function ehb() {
115797 return shb(this, 0);
115798 };
115799 _2.b = -2;
115800 _2.c = 0;
115801 _2.d = 0;
115802 _2.e = 0;
115803 var Bgb, Cgb, Dgb, Egb, Fgb, Ggb;
115804 var cJ = mdb("java.math", "BigInteger", 91);
115805 var nhb, ohb;
115806 var Bhb, Chb;
115807 bcb(488, 1967, cie);
115808 _2.$b = function Xhb() {
115809 Uhb(this);
115810 };
115811 _2._b = function Yhb(a) {
115812 return Mhb(this, a);
115813 };
115814 _2.uc = function Zhb(a) {
115815 return Nhb(this, a, this.g) || Nhb(this, a, this.f);
115816 };
115817 _2.vc = function $hb() {
115818 return new eib(this);
115819 };
115820 _2.xc = function _hb(a) {
115821 return Ohb(this, a);
115822 };
115823 _2.zc = function aib(a, b) {
115824 return Rhb(this, a, b);
115825 };
115826 _2.Bc = function bib(a) {
115827 return Thb(this, a);
115828 };
115829 _2.gc = function cib() {
115830 return Vhb(this);
115831 };
115832 mdb(bie, "AbstractHashMap", 488);
115833 bcb(261, eie, fie, eib);
115834 _2.$b = function fib() {
115835 this.a.$b();
115836 };
115837 _2.Hc = function gib(a) {
115838 return dib(this, a);
115839 };
115840 _2.Kc = function hib() {
115841 return new nib(this.a);
115842 };
115843 _2.Mc = function iib(a) {
115844 var b;
115845 if (dib(this, a)) {
115846 b = BD(a, 42).cd();
115847 this.a.Bc(b);
115848 return true;
115849 }
115850 return false;
115851 };
115852 _2.gc = function jib() {
115853 return this.a.gc();
115854 };
115855 mdb(bie, "AbstractHashMap/EntrySet", 261);
115856 bcb(262, 1, aie, nib);
115857 _2.Nb = function oib(a) {
115858 Rrb(this, a);
115859 };
115860 _2.Pb = function qib() {
115861 return lib(this);
115862 };
115863 _2.Ob = function pib() {
115864 return this.b;
115865 };
115866 _2.Qb = function rib() {
115867 mib(this);
115868 };
115869 _2.b = false;
115870 mdb(bie, "AbstractHashMap/EntrySetIterator", 262);
115871 bcb(417, 1, aie, vib);
115872 _2.Nb = function wib(a) {
115873 Rrb(this, a);
115874 };
115875 _2.Ob = function xib() {
115876 return sib(this);
115877 };
115878 _2.Pb = function yib() {
115879 return tib(this);
115880 };
115881 _2.Qb = function zib() {
115882 uib(this);
115883 };
115884 _2.b = 0;
115885 _2.c = -1;
115886 mdb(bie, "AbstractList/IteratorImpl", 417);
115887 bcb(96, 417, jie, Bib);
115888 _2.Qb = function Hib() {
115889 uib(this);
115890 };
115891 _2.Rb = function Cib(a) {
115892 Aib(this, a);
115893 };
115894 _2.Sb = function Dib() {
115895 return this.b > 0;
115896 };
115897 _2.Tb = function Eib() {
115898 return this.b;
115899 };
115900 _2.Ub = function Fib() {
115901 return sCb(this.b > 0), this.a.Xb(this.c = --this.b);
115902 };
115903 _2.Vb = function Gib() {
115904 return this.b - 1;
115905 };
115906 _2.Wb = function Iib(a) {
115907 yCb(this.c != -1);
115908 this.a._c(this.c, a);
115909 };
115910 mdb(bie, "AbstractList/ListIteratorImpl", 96);
115911 bcb(219, 52, Lie, Jib);
115912 _2.Vc = function Kib(a, b) {
115913 wCb(a, this.b);
115914 this.c.Vc(this.a + a, b);
115915 ++this.b;
115916 };
115917 _2.Xb = function Lib(a) {
115918 tCb(a, this.b);
115919 return this.c.Xb(this.a + a);
115920 };
115921 _2.$c = function Mib(a) {
115922 var b;
115923 tCb(a, this.b);
115924 b = this.c.$c(this.a + a);
115925 --this.b;
115926 return b;
115927 };
115928 _2._c = function Nib(a, b) {
115929 tCb(a, this.b);
115930 return this.c._c(this.a + a, b);
115931 };
115932 _2.gc = function Oib() {
115933 return this.b;
115934 };
115935 _2.a = 0;
115936 _2.b = 0;
115937 mdb(bie, "AbstractList/SubList", 219);
115938 bcb(384, eie, fie, Pib);
115939 _2.$b = function Qib() {
115940 this.a.$b();
115941 };
115942 _2.Hc = function Rib(a) {
115943 return this.a._b(a);
115944 };
115945 _2.Kc = function Sib() {
115946 var a;
115947 return a = this.a.vc().Kc(), new Vib(a);
115948 };
115949 _2.Mc = function Tib(a) {
115950 if (this.a._b(a)) {
115951 this.a.Bc(a);
115952 return true;
115953 }
115954 return false;
115955 };
115956 _2.gc = function Uib() {
115957 return this.a.gc();
115958 };
115959 mdb(bie, "AbstractMap/1", 384);
115960 bcb(691, 1, aie, Vib);
115961 _2.Nb = function Wib(a) {
115962 Rrb(this, a);
115963 };
115964 _2.Ob = function Xib() {
115965 return this.a.Ob();
115966 };
115967 _2.Pb = function Yib() {
115968 var a;
115969 return a = BD(this.a.Pb(), 42), a.cd();
115970 };
115971 _2.Qb = function Zib() {
115972 this.a.Qb();
115973 };
115974 mdb(bie, "AbstractMap/1/1", 691);
115975 bcb(226, 28, die, $ib);
115976 _2.$b = function _ib() {
115977 this.a.$b();
115978 };
115979 _2.Hc = function ajb(a) {
115980 return this.a.uc(a);
115981 };
115982 _2.Kc = function bjb() {
115983 var a;
115984 return a = this.a.vc().Kc(), new djb(a);
115985 };
115986 _2.gc = function cjb() {
115987 return this.a.gc();
115988 };
115989 mdb(bie, "AbstractMap/2", 226);
115990 bcb(294, 1, aie, djb);
115991 _2.Nb = function ejb(a) {
115992 Rrb(this, a);
115993 };
115994 _2.Ob = function fjb() {
115995 return this.a.Ob();
115996 };
115997 _2.Pb = function gjb() {
115998 var a;
115999 return a = BD(this.a.Pb(), 42), a.dd();
116000 };
116001 _2.Qb = function hjb() {
116002 this.a.Qb();
116003 };
116004 mdb(bie, "AbstractMap/2/1", 294);
116005 bcb(484, 1, { 484: 1, 42: 1 });
116006 _2.Fb = function jjb(a) {
116007 var b;
116008 if (!JD(a, 42)) {
116009 return false;
116010 }
116011 b = BD(a, 42);
116012 return wtb(this.d, b.cd()) && wtb(this.e, b.dd());
116013 };
116014 _2.cd = function kjb() {
116015 return this.d;
116016 };
116017 _2.dd = function ljb() {
116018 return this.e;
116019 };
116020 _2.Hb = function mjb() {
116021 return xtb(this.d) ^ xtb(this.e);
116022 };
116023 _2.ed = function njb(a) {
116024 return ijb(this, a);
116025 };
116026 _2.Ib = function ojb() {
116027 return this.d + "=" + this.e;
116028 };
116029 mdb(bie, "AbstractMap/AbstractEntry", 484);
116030 bcb(383, 484, { 484: 1, 383: 1, 42: 1 }, pjb);
116031 mdb(bie, "AbstractMap/SimpleEntry", 383);
116032 bcb(1984, 1, _je);
116033 _2.Fb = function qjb(a) {
116034 var b;
116035 if (!JD(a, 42)) {
116036 return false;
116037 }
116038 b = BD(a, 42);
116039 return wtb(this.cd(), b.cd()) && wtb(this.dd(), b.dd());
116040 };
116041 _2.Hb = function rjb() {
116042 return xtb(this.cd()) ^ xtb(this.dd());
116043 };
116044 _2.Ib = function sjb() {
116045 return this.cd() + "=" + this.dd();
116046 };
116047 mdb(bie, lie, 1984);
116048 bcb(1992, 1967, gie);
116049 _2.tc = function vjb(a) {
116050 return tjb(this, a);
116051 };
116052 _2._b = function wjb(a) {
116053 return ujb(this, a);
116054 };
116055 _2.vc = function xjb() {
116056 return new Bjb(this);
116057 };
116058 _2.xc = function yjb(a) {
116059 var b;
116060 b = a;
116061 return Wd(Awb(this, b));
116062 };
116063 _2.ec = function Ajb() {
116064 return new Gjb(this);
116065 };
116066 mdb(bie, "AbstractNavigableMap", 1992);
116067 bcb(739, eie, fie, Bjb);
116068 _2.Hc = function Cjb(a) {
116069 return JD(a, 42) && tjb(this.b, BD(a, 42));
116070 };
116071 _2.Kc = function Djb() {
116072 return new Ywb(this.b);
116073 };
116074 _2.Mc = function Ejb(a) {
116075 var b;
116076 if (JD(a, 42)) {
116077 b = BD(a, 42);
116078 return Kwb(this.b, b);
116079 }
116080 return false;
116081 };
116082 _2.gc = function Fjb() {
116083 return this.b.c;
116084 };
116085 mdb(bie, "AbstractNavigableMap/EntrySet", 739);
116086 bcb(493, eie, iie, Gjb);
116087 _2.Nc = function Mjb() {
116088 return new Rub(this);
116089 };
116090 _2.$b = function Hjb() {
116091 zwb(this.a);
116092 };
116093 _2.Hc = function Ijb(a) {
116094 return ujb(this.a, a);
116095 };
116096 _2.Kc = function Jjb() {
116097 var a;
116098 return a = new Ywb(new cxb(this.a).b), new Njb(a);
116099 };
116100 _2.Mc = function Kjb(a) {
116101 if (ujb(this.a, a)) {
116102 Jwb(this.a, a);
116103 return true;
116104 }
116105 return false;
116106 };
116107 _2.gc = function Ljb() {
116108 return this.a.c;
116109 };
116110 mdb(bie, "AbstractNavigableMap/NavigableKeySet", 493);
116111 bcb(494, 1, aie, Njb);
116112 _2.Nb = function Ojb(a) {
116113 Rrb(this, a);
116114 };
116115 _2.Ob = function Pjb() {
116116 return sib(this.a.a);
116117 };
116118 _2.Pb = function Qjb() {
116119 var a;
116120 return a = Wwb(this.a), a.cd();
116121 };
116122 _2.Qb = function Rjb() {
116123 Xwb(this.a);
116124 };
116125 mdb(bie, "AbstractNavigableMap/NavigableKeySet/1", 494);
116126 bcb(2004, 28, die);
116127 _2.Fc = function Sjb(a) {
116128 return zCb(cub(this, a)), true;
116129 };
116130 _2.Gc = function Tjb(a) {
116131 uCb(a);
116132 mCb(a != this, "Can't add a queue to itself");
116133 return ye(this, a);
116134 };
116135 _2.$b = function Ujb() {
116136 while (dub(this) != null)
116137 ;
116138 };
116139 mdb(bie, "AbstractQueue", 2004);
116140 bcb(302, 28, { 4: 1, 20: 1, 28: 1, 14: 1 }, jkb, kkb);
116141 _2.Fc = function lkb(a) {
116142 return Xjb(this, a), true;
116143 };
116144 _2.$b = function nkb() {
116145 Yjb(this);
116146 };
116147 _2.Hc = function okb(a) {
116148 return Zjb(new xkb(this), a);
116149 };
116150 _2.dc = function pkb() {
116151 return akb(this);
116152 };
116153 _2.Kc = function qkb() {
116154 return new xkb(this);
116155 };
116156 _2.Mc = function rkb(a) {
116157 return dkb(new xkb(this), a);
116158 };
116159 _2.gc = function skb() {
116160 return this.c - this.b & this.a.length - 1;
116161 };
116162 _2.Nc = function tkb() {
116163 return new Kub(this, 272);
116164 };
116165 _2.Qc = function ukb(a) {
116166 var b;
116167 b = this.c - this.b & this.a.length - 1;
116168 a.length < b && (a = eCb(new Array(b), a));
116169 $jb(this, a, b);
116170 a.length > b && NC(a, b, null);
116171 return a;
116172 };
116173 _2.b = 0;
116174 _2.c = 0;
116175 mdb(bie, "ArrayDeque", 302);
116176 bcb(446, 1, aie, xkb);
116177 _2.Nb = function ykb(a) {
116178 Rrb(this, a);
116179 };
116180 _2.Ob = function zkb() {
116181 return this.a != this.b;
116182 };
116183 _2.Pb = function Akb() {
116184 return vkb(this);
116185 };
116186 _2.Qb = function Bkb() {
116187 wkb(this);
116188 };
116189 _2.a = 0;
116190 _2.b = 0;
116191 _2.c = -1;
116192 mdb(bie, "ArrayDeque/IteratorImpl", 446);
116193 bcb(12, 52, ake, Rkb, Skb, Tkb);
116194 _2.Vc = function Ukb(a, b) {
116195 Dkb(this, a, b);
116196 };
116197 _2.Fc = function Vkb(a) {
116198 return Ekb(this, a);
116199 };
116200 _2.Wc = function Wkb(a, b) {
116201 return Fkb(this, a, b);
116202 };
116203 _2.Gc = function Xkb(a) {
116204 return Gkb(this, a);
116205 };
116206 _2.$b = function Ykb() {
116207 this.c = KC(SI, Uhe, 1, 0, 5, 1);
116208 };
116209 _2.Hc = function Zkb(a) {
116210 return Jkb(this, a, 0) != -1;
116211 };
116212 _2.Jc = function $kb(a) {
116213 Hkb(this, a);
116214 };
116215 _2.Xb = function _kb(a) {
116216 return Ikb(this, a);
116217 };
116218 _2.Xc = function alb(a) {
116219 return Jkb(this, a, 0);
116220 };
116221 _2.dc = function blb() {
116222 return this.c.length == 0;
116223 };
116224 _2.Kc = function clb() {
116225 return new olb(this);
116226 };
116227 _2.$c = function dlb(a) {
116228 return Kkb(this, a);
116229 };
116230 _2.Mc = function elb(a) {
116231 return Lkb(this, a);
116232 };
116233 _2.Ud = function flb(a, b) {
116234 Mkb(this, a, b);
116235 };
116236 _2._c = function glb(a, b) {
116237 return Nkb(this, a, b);
116238 };
116239 _2.gc = function hlb() {
116240 return this.c.length;
116241 };
116242 _2.ad = function ilb(a) {
116243 Okb(this, a);
116244 };
116245 _2.Pc = function jlb() {
116246 return Pkb(this);
116247 };
116248 _2.Qc = function klb(a) {
116249 return Qkb(this, a);
116250 };
116251 var DJ = mdb(bie, "ArrayList", 12);
116252 bcb(7, 1, aie, olb);
116253 _2.Nb = function plb(a) {
116254 Rrb(this, a);
116255 };
116256 _2.Ob = function qlb() {
116257 return llb(this);
116258 };
116259 _2.Pb = function rlb() {
116260 return mlb(this);
116261 };
116262 _2.Qb = function slb() {
116263 nlb(this);
116264 };
116265 _2.a = 0;
116266 _2.b = -1;
116267 mdb(bie, "ArrayList/1", 7);
116268 bcb(2013, $wnd.Function, {}, Ylb);
116269 _2.te = function Zlb(a, b) {
116270 return Kdb(a, b);
116271 };
116272 bcb(154, 52, bke, amb);
116273 _2.Hc = function bmb(a) {
116274 return Bt(this, a) != -1;
116275 };
116276 _2.Jc = function cmb(a) {
116277 var b, c2, d, e;
116278 uCb(a);
116279 for (c2 = this.a, d = 0, e = c2.length; d < e; ++d) {
116280 b = c2[d];
116281 a.td(b);
116282 }
116283 };
116284 _2.Xb = function dmb(a) {
116285 return $lb(this, a);
116286 };
116287 _2._c = function emb(a, b) {
116288 var c2;
116289 c2 = (tCb(a, this.a.length), this.a[a]);
116290 NC(this.a, a, b);
116291 return c2;
116292 };
116293 _2.gc = function fmb() {
116294 return this.a.length;
116295 };
116296 _2.ad = function gmb(a) {
116297 Mlb(this.a, this.a.length, a);
116298 };
116299 _2.Pc = function hmb() {
116300 return _lb(this, KC(SI, Uhe, 1, this.a.length, 5, 1));
116301 };
116302 _2.Qc = function imb(a) {
116303 return _lb(this, a);
116304 };
116305 mdb(bie, "Arrays/ArrayList", 154);
116306 var jmb, kmb, lmb;
116307 bcb(940, 52, bke, xmb);
116308 _2.Hc = function ymb(a) {
116309 return false;
116310 };
116311 _2.Xb = function zmb(a) {
116312 return wmb(a);
116313 };
116314 _2.Kc = function Amb() {
116315 return mmb(), Emb(), Dmb;
116316 };
116317 _2.Yc = function Bmb() {
116318 return mmb(), Emb(), Dmb;
116319 };
116320 _2.gc = function Cmb() {
116321 return 0;
116322 };
116323 mdb(bie, "Collections/EmptyList", 940);
116324 bcb(941, 1, jie, Fmb);
116325 _2.Nb = function Hmb(a) {
116326 Rrb(this, a);
116327 };
116328 _2.Rb = function Gmb(a) {
116329 throw vbb(new bgb());
116330 };
116331 _2.Ob = function Imb() {
116332 return false;
116333 };
116334 _2.Sb = function Jmb() {
116335 return false;
116336 };
116337 _2.Pb = function Kmb() {
116338 throw vbb(new utb());
116339 };
116340 _2.Tb = function Lmb() {
116341 return 0;
116342 };
116343 _2.Ub = function Mmb() {
116344 throw vbb(new utb());
116345 };
116346 _2.Vb = function Nmb() {
116347 return -1;
116348 };
116349 _2.Qb = function Omb() {
116350 throw vbb(new Ydb());
116351 };
116352 _2.Wb = function Pmb(a) {
116353 throw vbb(new Ydb());
116354 };
116355 var Dmb;
116356 mdb(bie, "Collections/EmptyListIterator", 941);
116357 bcb(943, 1967, Aie, Qmb);
116358 _2._b = function Rmb(a) {
116359 return false;
116360 };
116361 _2.uc = function Smb(a) {
116362 return false;
116363 };
116364 _2.vc = function Tmb() {
116365 return mmb(), lmb;
116366 };
116367 _2.xc = function Umb(a) {
116368 return null;
116369 };
116370 _2.ec = function Vmb() {
116371 return mmb(), lmb;
116372 };
116373 _2.gc = function Wmb() {
116374 return 0;
116375 };
116376 _2.Cc = function Xmb() {
116377 return mmb(), jmb;
116378 };
116379 mdb(bie, "Collections/EmptyMap", 943);
116380 bcb(942, eie, Cie, Ymb);
116381 _2.Hc = function Zmb(a) {
116382 return false;
116383 };
116384 _2.Kc = function $mb() {
116385 return mmb(), Emb(), Dmb;
116386 };
116387 _2.gc = function _mb() {
116388 return 0;
116389 };
116390 mdb(bie, "Collections/EmptySet", 942);
116391 bcb(599, 52, { 3: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1 }, anb);
116392 _2.Hc = function bnb(a) {
116393 return wtb(this.a, a);
116394 };
116395 _2.Xb = function cnb(a) {
116396 tCb(a, 1);
116397 return this.a;
116398 };
116399 _2.gc = function dnb() {
116400 return 1;
116401 };
116402 mdb(bie, "Collections/SingletonList", 599);
116403 bcb(372, 1, wie, lnb);
116404 _2.Jc = function rnb(a) {
116405 reb(this, a);
116406 };
116407 _2.Lc = function unb() {
116408 return new YAb(null, this.Nc());
116409 };
116410 _2.Nc = function xnb() {
116411 return new Kub(this, 0);
116412 };
116413 _2.Oc = function ynb() {
116414 return new YAb(null, this.Nc());
116415 };
116416 _2.Fc = function mnb(a) {
116417 return enb();
116418 };
116419 _2.Gc = function nnb(a) {
116420 return fnb();
116421 };
116422 _2.$b = function onb() {
116423 gnb();
116424 };
116425 _2.Hc = function pnb(a) {
116426 return hnb(this, a);
116427 };
116428 _2.Ic = function qnb(a) {
116429 return inb(this, a);
116430 };
116431 _2.dc = function snb() {
116432 return this.b.dc();
116433 };
116434 _2.Kc = function tnb() {
116435 return new Dnb(this.b.Kc());
116436 };
116437 _2.Mc = function vnb(a) {
116438 return jnb();
116439 };
116440 _2.gc = function wnb() {
116441 return this.b.gc();
116442 };
116443 _2.Pc = function znb() {
116444 return this.b.Pc();
116445 };
116446 _2.Qc = function Anb(a) {
116447 return knb(this, a);
116448 };
116449 _2.Ib = function Bnb() {
116450 return fcb(this.b);
116451 };
116452 mdb(bie, "Collections/UnmodifiableCollection", 372);
116453 bcb(371, 1, aie, Dnb);
116454 _2.Nb = function Enb(a) {
116455 Rrb(this, a);
116456 };
116457 _2.Ob = function Fnb() {
116458 return this.b.Ob();
116459 };
116460 _2.Pb = function Gnb() {
116461 return this.b.Pb();
116462 };
116463 _2.Qb = function Hnb() {
116464 Cnb();
116465 };
116466 mdb(bie, "Collections/UnmodifiableCollectionIterator", 371);
116467 bcb(531, 372, cke, Inb);
116468 _2.Nc = function Vnb() {
116469 return new Kub(this, 16);
116470 };
116471 _2.Vc = function Jnb(a, b) {
116472 throw vbb(new bgb());
116473 };
116474 _2.Wc = function Knb(a, b) {
116475 throw vbb(new bgb());
116476 };
116477 _2.Fb = function Lnb(a) {
116478 return pb(this.a, a);
116479 };
116480 _2.Xb = function Mnb(a) {
116481 return this.a.Xb(a);
116482 };
116483 _2.Hb = function Nnb() {
116484 return tb(this.a);
116485 };
116486 _2.Xc = function Onb(a) {
116487 return this.a.Xc(a);
116488 };
116489 _2.dc = function Pnb() {
116490 return this.a.dc();
116491 };
116492 _2.Yc = function Qnb() {
116493 return new Xnb(this.a.Zc(0));
116494 };
116495 _2.Zc = function Rnb(a) {
116496 return new Xnb(this.a.Zc(a));
116497 };
116498 _2.$c = function Snb(a) {
116499 throw vbb(new bgb());
116500 };
116501 _2._c = function Tnb(a, b) {
116502 throw vbb(new bgb());
116503 };
116504 _2.ad = function Unb(a) {
116505 throw vbb(new bgb());
116506 };
116507 _2.bd = function Wnb(a, b) {
116508 return new Inb(this.a.bd(a, b));
116509 };
116510 mdb(bie, "Collections/UnmodifiableList", 531);
116511 bcb(690, 371, jie, Xnb);
116512 _2.Qb = function bob() {
116513 Cnb();
116514 };
116515 _2.Rb = function Ynb(a) {
116516 throw vbb(new bgb());
116517 };
116518 _2.Sb = function Znb() {
116519 return this.a.Sb();
116520 };
116521 _2.Tb = function $nb() {
116522 return this.a.Tb();
116523 };
116524 _2.Ub = function _nb() {
116525 return this.a.Ub();
116526 };
116527 _2.Vb = function aob() {
116528 return this.a.Vb();
116529 };
116530 _2.Wb = function cob(a) {
116531 throw vbb(new bgb());
116532 };
116533 mdb(bie, "Collections/UnmodifiableListIterator", 690);
116534 bcb(600, 1, cie, iob);
116535 _2.wc = function oob(a) {
116536 stb(this, a);
116537 };
116538 _2.yc = function tob(a, b, c2) {
116539 return ttb(this, a, b, c2);
116540 };
116541 _2.$b = function job() {
116542 throw vbb(new bgb());
116543 };
116544 _2._b = function kob(a) {
116545 return this.c._b(a);
116546 };
116547 _2.uc = function lob(a) {
116548 return dob(this, a);
116549 };
116550 _2.vc = function mob() {
116551 return eob(this);
116552 };
116553 _2.Fb = function nob(a) {
116554 return fob(this, a);
116555 };
116556 _2.xc = function pob(a) {
116557 return this.c.xc(a);
116558 };
116559 _2.Hb = function qob() {
116560 return tb(this.c);
116561 };
116562 _2.dc = function rob() {
116563 return this.c.dc();
116564 };
116565 _2.ec = function sob() {
116566 return gob(this);
116567 };
116568 _2.zc = function uob(a, b) {
116569 throw vbb(new bgb());
116570 };
116571 _2.Bc = function vob(a) {
116572 throw vbb(new bgb());
116573 };
116574 _2.gc = function wob() {
116575 return this.c.gc();
116576 };
116577 _2.Ib = function xob() {
116578 return fcb(this.c);
116579 };
116580 _2.Cc = function yob() {
116581 return hob(this);
116582 };
116583 mdb(bie, "Collections/UnmodifiableMap", 600);
116584 bcb(382, 372, Bie, zob);
116585 _2.Nc = function Cob() {
116586 return new Kub(this, 1);
116587 };
116588 _2.Fb = function Aob(a) {
116589 return pb(this.b, a);
116590 };
116591 _2.Hb = function Bob() {
116592 return tb(this.b);
116593 };
116594 mdb(bie, "Collections/UnmodifiableSet", 382);
116595 bcb(944, 382, Bie, Gob);
116596 _2.Hc = function Hob(a) {
116597 return Dob(this, a);
116598 };
116599 _2.Ic = function Iob(a) {
116600 return this.b.Ic(a);
116601 };
116602 _2.Kc = function Job() {
116603 var a;
116604 a = this.b.Kc();
116605 return new Mob(a);
116606 };
116607 _2.Pc = function Kob() {
116608 var a;
116609 a = this.b.Pc();
116610 Fob(a, a.length);
116611 return a;
116612 };
116613 _2.Qc = function Lob(a) {
116614 return Eob(this, a);
116615 };
116616 mdb(bie, "Collections/UnmodifiableMap/UnmodifiableEntrySet", 944);
116617 bcb(945, 1, aie, Mob);
116618 _2.Nb = function Nob(a) {
116619 Rrb(this, a);
116620 };
116621 _2.Pb = function Pob() {
116622 return new Rob(BD(this.a.Pb(), 42));
116623 };
116624 _2.Ob = function Oob() {
116625 return this.a.Ob();
116626 };
116627 _2.Qb = function Qob() {
116628 throw vbb(new bgb());
116629 };
116630 mdb(bie, "Collections/UnmodifiableMap/UnmodifiableEntrySet/1", 945);
116631 bcb(688, 1, _je, Rob);
116632 _2.Fb = function Sob(a) {
116633 return this.a.Fb(a);
116634 };
116635 _2.cd = function Tob() {
116636 return this.a.cd();
116637 };
116638 _2.dd = function Uob() {
116639 return this.a.dd();
116640 };
116641 _2.Hb = function Vob() {
116642 return this.a.Hb();
116643 };
116644 _2.ed = function Wob(a) {
116645 throw vbb(new bgb());
116646 };
116647 _2.Ib = function Xob() {
116648 return fcb(this.a);
116649 };
116650 mdb(bie, "Collections/UnmodifiableMap/UnmodifiableEntrySet/UnmodifiableEntry", 688);
116651 bcb(601, 531, { 20: 1, 14: 1, 15: 1, 54: 1 }, Yob);
116652 mdb(bie, "Collections/UnmodifiableRandomAccessList", 601);
116653 bcb(689, 382, Die, Zob);
116654 _2.Nc = function apb() {
116655 return new Rub(this);
116656 };
116657 _2.Fb = function $ob(a) {
116658 return pb(this.a, a);
116659 };
116660 _2.Hb = function _ob() {
116661 return tb(this.a);
116662 };
116663 mdb(bie, "Collections/UnmodifiableSortedSet", 689);
116664 bcb(847, 1, dke, bpb);
116665 _2.ue = function cpb(a, b) {
116666 var c2;
116667 return c2 = Ucc(BD(a, 11), BD(b, 11)), c2 != 0 ? c2 : Wcc(BD(a, 11), BD(b, 11));
116668 };
116669 _2.Fb = function dpb(a) {
116670 return this === a;
116671 };
116672 _2.ve = function epb() {
116673 return new tpb(this);
116674 };
116675 mdb(bie, "Comparator/lambda$0$Type", 847);
116676 var fpb, gpb, hpb;
116677 bcb(751, 1, dke, kpb);
116678 _2.ue = function lpb(a, b) {
116679 return jpb(BD(a, 35), BD(b, 35));
116680 };
116681 _2.Fb = function mpb(a) {
116682 return this === a;
116683 };
116684 _2.ve = function npb() {
116685 return ipb(), hpb;
116686 };
116687 mdb(bie, "Comparators/NaturalOrderComparator", 751);
116688 bcb(1177, 1, dke, ppb);
116689 _2.ue = function qpb(a, b) {
116690 return opb(BD(a, 35), BD(b, 35));
116691 };
116692 _2.Fb = function rpb(a) {
116693 return this === a;
116694 };
116695 _2.ve = function spb() {
116696 return ipb(), gpb;
116697 };
116698 mdb(bie, "Comparators/ReverseNaturalOrderComparator", 1177);
116699 bcb(64, 1, dke, tpb);
116700 _2.Fb = function vpb(a) {
116701 return this === a;
116702 };
116703 _2.ue = function upb(a, b) {
116704 return this.a.ue(b, a);
116705 };
116706 _2.ve = function wpb() {
116707 return this.a;
116708 };
116709 mdb(bie, "Comparators/ReversedComparator", 64);
116710 bcb(166, 60, Tie, Apb);
116711 mdb(bie, "ConcurrentModificationException", 166);
116712 var Bpb, Cpb;
116713 bcb(1904, 1, eke, Gpb);
116714 _2.we = function Hpb(a) {
116715 Epb(this, a);
116716 };
116717 _2.Ib = function Ipb() {
116718 return "DoubleSummaryStatistics[count = " + Ubb(this.a) + ", avg = " + (Dbb(this.a, 0) ? Fpb(this) / Sbb(this.a) : 0) + ", min = " + this.c + ", max = " + this.b + ", sum = " + Fpb(this) + "]";
116719 };
116720 _2.a = 0;
116721 _2.b = Qje;
116722 _2.c = Pje;
116723 _2.d = 0;
116724 _2.e = 0;
116725 _2.f = 0;
116726 mdb(bie, "DoubleSummaryStatistics", 1904);
116727 bcb(1805, 60, Tie, Jpb);
116728 mdb(bie, "EmptyStackException", 1805);
116729 bcb(451, 1967, cie, Rpb);
116730 _2.zc = function Xpb(a, b) {
116731 return Opb(this, a, b);
116732 };
116733 _2.$b = function Spb() {
116734 Kpb(this);
116735 };
116736 _2._b = function Tpb(a) {
116737 return Lpb(this, a);
116738 };
116739 _2.uc = function Upb(a) {
116740 var b, c2;
116741 for (c2 = new Gqb(this.a); c2.a < c2.c.a.length; ) {
116742 b = Fqb(c2);
116743 if (wtb(a, this.b[b.g])) {
116744 return true;
116745 }
116746 }
116747 return false;
116748 };
116749 _2.vc = function Vpb() {
116750 return new _pb(this);
116751 };
116752 _2.xc = function Wpb(a) {
116753 return Mpb(this, a);
116754 };
116755 _2.Bc = function Ypb(a) {
116756 return Ppb(this, a);
116757 };
116758 _2.gc = function Zpb() {
116759 return this.a.c;
116760 };
116761 mdb(bie, "EnumMap", 451);
116762 bcb(1352, eie, fie, _pb);
116763 _2.$b = function aqb() {
116764 Kpb(this.a);
116765 };
116766 _2.Hc = function bqb(a) {
116767 return $pb(this, a);
116768 };
116769 _2.Kc = function cqb() {
116770 return new fqb(this.a);
116771 };
116772 _2.Mc = function dqb(a) {
116773 var b;
116774 if ($pb(this, a)) {
116775 b = BD(a, 42).cd();
116776 Ppb(this.a, b);
116777 return true;
116778 }
116779 return false;
116780 };
116781 _2.gc = function eqb() {
116782 return this.a.a.c;
116783 };
116784 mdb(bie, "EnumMap/EntrySet", 1352);
116785 bcb(1353, 1, aie, fqb);
116786 _2.Nb = function gqb(a) {
116787 Rrb(this, a);
116788 };
116789 _2.Pb = function iqb() {
116790 return this.b = Fqb(this.a), new kqb(this.c, this.b);
116791 };
116792 _2.Ob = function hqb() {
116793 return Eqb(this.a);
116794 };
116795 _2.Qb = function jqb() {
116796 yCb(!!this.b);
116797 Ppb(this.c, this.b);
116798 this.b = null;
116799 };
116800 mdb(bie, "EnumMap/EntrySetIterator", 1353);
116801 bcb(1354, 1984, _je, kqb);
116802 _2.cd = function lqb() {
116803 return this.a;
116804 };
116805 _2.dd = function mqb() {
116806 return this.b.b[this.a.g];
116807 };
116808 _2.ed = function nqb(a) {
116809 return Qpb(this.b, this.a.g, a);
116810 };
116811 mdb(bie, "EnumMap/MapEntry", 1354);
116812 bcb(174, eie, { 20: 1, 28: 1, 14: 1, 174: 1, 21: 1 });
116813 var hK = mdb(bie, "EnumSet", 174);
116814 bcb(156, 174, { 20: 1, 28: 1, 14: 1, 174: 1, 156: 1, 21: 1 }, xqb);
116815 _2.Fc = function yqb(a) {
116816 return rqb(this, BD(a, 22));
116817 };
116818 _2.Hc = function zqb(a) {
116819 return tqb(this, a);
116820 };
116821 _2.Kc = function Aqb() {
116822 return new Gqb(this);
116823 };
116824 _2.Mc = function Bqb(a) {
116825 return vqb(this, a);
116826 };
116827 _2.gc = function Cqb() {
116828 return this.c;
116829 };
116830 _2.c = 0;
116831 mdb(bie, "EnumSet/EnumSetImpl", 156);
116832 bcb(343, 1, aie, Gqb);
116833 _2.Nb = function Hqb(a) {
116834 Rrb(this, a);
116835 };
116836 _2.Pb = function Jqb() {
116837 return Fqb(this);
116838 };
116839 _2.Ob = function Iqb() {
116840 return Eqb(this);
116841 };
116842 _2.Qb = function Kqb() {
116843 yCb(this.b != -1);
116844 NC(this.c.b, this.b, null);
116845 --this.c.c;
116846 this.b = -1;
116847 };
116848 _2.a = -1;
116849 _2.b = -1;
116850 mdb(bie, "EnumSet/EnumSetImpl/IteratorImpl", 343);
116851 bcb(43, 488, fke, Lqb, Mqb, Nqb);
116852 _2.re = function Oqb(a, b) {
116853 return PD(a) === PD(b) || a != null && pb(a, b);
116854 };
116855 _2.se = function Pqb(a) {
116856 var b;
116857 b = tb(a);
116858 return b | 0;
116859 };
116860 mdb(bie, "HashMap", 43);
116861 bcb(53, eie, gke, Tqb, Uqb, Vqb);
116862 _2.Fc = function Xqb(a) {
116863 return Qqb(this, a);
116864 };
116865 _2.$b = function Yqb() {
116866 this.a.$b();
116867 };
116868 _2.Hc = function Zqb(a) {
116869 return Rqb(this, a);
116870 };
116871 _2.dc = function $qb() {
116872 return this.a.gc() == 0;
116873 };
116874 _2.Kc = function _qb() {
116875 return this.a.ec().Kc();
116876 };
116877 _2.Mc = function arb(a) {
116878 return Sqb(this, a);
116879 };
116880 _2.gc = function brb() {
116881 return this.a.gc();
116882 };
116883 var jK = mdb(bie, "HashSet", 53);
116884 bcb(1781, 1, sie, drb);
116885 _2.ud = function erb(a) {
116886 crb(this, a);
116887 };
116888 _2.Ib = function frb() {
116889 return "IntSummaryStatistics[count = " + Ubb(this.a) + ", avg = " + (Dbb(this.a, 0) ? Sbb(this.d) / Sbb(this.a) : 0) + ", min = " + this.c + ", max = " + this.b + ", sum = " + Ubb(this.d) + "]";
116890 };
116891 _2.a = 0;
116892 _2.b = Rie;
116893 _2.c = Ohe;
116894 _2.d = 0;
116895 mdb(bie, "IntSummaryStatistics", 1781);
116896 bcb(1049, 1, vie, lrb);
116897 _2.Jc = function mrb(a) {
116898 reb(this, a);
116899 };
116900 _2.Kc = function nrb() {
116901 return new orb(this);
116902 };
116903 _2.c = 0;
116904 mdb(bie, "InternalHashCodeMap", 1049);
116905 bcb(711, 1, aie, orb);
116906 _2.Nb = function prb(a) {
116907 Rrb(this, a);
116908 };
116909 _2.Pb = function rrb() {
116910 return this.d = this.a[this.c++], this.d;
116911 };
116912 _2.Ob = function qrb() {
116913 var a;
116914 if (this.c < this.a.length) {
116915 return true;
116916 }
116917 a = this.b.next();
116918 if (!a.done) {
116919 this.a = a.value[1];
116920 this.c = 0;
116921 return true;
116922 }
116923 return false;
116924 };
116925 _2.Qb = function srb() {
116926 krb(this.e, this.d.cd());
116927 this.c != 0 && --this.c;
116928 };
116929 _2.c = 0;
116930 _2.d = null;
116931 mdb(bie, "InternalHashCodeMap/1", 711);
116932 var vrb;
116933 bcb(1047, 1, vie, Frb);
116934 _2.Jc = function Grb(a) {
116935 reb(this, a);
116936 };
116937 _2.Kc = function Hrb() {
116938 return new Irb(this);
116939 };
116940 _2.c = 0;
116941 _2.d = 0;
116942 mdb(bie, "InternalStringMap", 1047);
116943 bcb(710, 1, aie, Irb);
116944 _2.Nb = function Jrb(a) {
116945 Rrb(this, a);
116946 };
116947 _2.Pb = function Lrb() {
116948 return this.c = this.a, this.a = this.b.next(), new Nrb(this.d, this.c, this.d.d);
116949 };
116950 _2.Ob = function Krb() {
116951 return !this.a.done;
116952 };
116953 _2.Qb = function Mrb() {
116954 Erb(this.d, this.c.value[0]);
116955 };
116956 mdb(bie, "InternalStringMap/1", 710);
116957 bcb(1048, 1984, _je, Nrb);
116958 _2.cd = function Orb() {
116959 return this.b.value[0];
116960 };
116961 _2.dd = function Prb() {
116962 if (this.a.d != this.c) {
116963 return Crb(this.a, this.b.value[0]);
116964 }
116965 return this.b.value[1];
116966 };
116967 _2.ed = function Qrb(a) {
116968 return Drb(this.a, this.b.value[0], a);
116969 };
116970 _2.c = 0;
116971 mdb(bie, "InternalStringMap/2", 1048);
116972 bcb(228, 43, fke, $rb, _rb);
116973 _2.$b = function asb() {
116974 Urb(this);
116975 };
116976 _2._b = function bsb(a) {
116977 return Vrb(this, a);
116978 };
116979 _2.uc = function csb(a) {
116980 var b;
116981 b = this.d.a;
116982 while (b != this.d) {
116983 if (wtb(b.e, a)) {
116984 return true;
116985 }
116986 b = b.a;
116987 }
116988 return false;
116989 };
116990 _2.vc = function dsb() {
116991 return new nsb(this);
116992 };
116993 _2.xc = function esb(a) {
116994 return Wrb(this, a);
116995 };
116996 _2.zc = function fsb(a, b) {
116997 return Xrb(this, a, b);
116998 };
116999 _2.Bc = function gsb(a) {
117000 return Zrb(this, a);
117001 };
117002 _2.gc = function hsb() {
117003 return Vhb(this.e);
117004 };
117005 _2.c = false;
117006 mdb(bie, "LinkedHashMap", 228);
117007 bcb(387, 383, { 484: 1, 383: 1, 387: 1, 42: 1 }, ksb, lsb);
117008 mdb(bie, "LinkedHashMap/ChainEntry", 387);
117009 bcb(701, eie, fie, nsb);
117010 _2.$b = function osb() {
117011 Urb(this.a);
117012 };
117013 _2.Hc = function psb(a) {
117014 return msb(this, a);
117015 };
117016 _2.Kc = function qsb() {
117017 return new usb(this);
117018 };
117019 _2.Mc = function rsb(a) {
117020 var b;
117021 if (msb(this, a)) {
117022 b = BD(a, 42).cd();
117023 Zrb(this.a, b);
117024 return true;
117025 }
117026 return false;
117027 };
117028 _2.gc = function ssb() {
117029 return Vhb(this.a.e);
117030 };
117031 mdb(bie, "LinkedHashMap/EntrySet", 701);
117032 bcb(702, 1, aie, usb);
117033 _2.Nb = function vsb(a) {
117034 Rrb(this, a);
117035 };
117036 _2.Pb = function xsb() {
117037 return tsb(this);
117038 };
117039 _2.Ob = function wsb() {
117040 return this.b != this.c.a.d;
117041 };
117042 _2.Qb = function ysb() {
117043 yCb(!!this.a);
117044 xpb(this.c.a.e, this);
117045 jsb(this.a);
117046 Thb(this.c.a.e, this.a.d);
117047 ypb(this.c.a.e, this);
117048 this.a = null;
117049 };
117050 mdb(bie, "LinkedHashMap/EntrySet/EntryIterator", 702);
117051 bcb(178, 53, gke, zsb, Asb, Bsb);
117052 var uK = mdb(bie, "LinkedHashSet", 178);
117053 bcb(68, 1964, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 68: 1, 15: 1 }, Psb, Qsb);
117054 _2.Fc = function Rsb(a) {
117055 return Dsb(this, a);
117056 };
117057 _2.$b = function Ssb() {
117058 Osb(this);
117059 };
117060 _2.Zc = function Tsb(a) {
117061 return Jsb(this, a);
117062 };
117063 _2.gc = function Usb() {
117064 return this.b;
117065 };
117066 _2.b = 0;
117067 var xK = mdb(bie, "LinkedList", 68);
117068 bcb(970, 1, jie, $sb);
117069 _2.Nb = function atb(a) {
117070 Rrb(this, a);
117071 };
117072 _2.Rb = function _sb(a) {
117073 Vsb(this, a);
117074 };
117075 _2.Ob = function btb() {
117076 return Wsb(this);
117077 };
117078 _2.Sb = function ctb() {
117079 return this.b.b != this.d.a;
117080 };
117081 _2.Pb = function dtb() {
117082 return Xsb(this);
117083 };
117084 _2.Tb = function etb() {
117085 return this.a;
117086 };
117087 _2.Ub = function ftb() {
117088 return Ysb(this);
117089 };
117090 _2.Vb = function gtb() {
117091 return this.a - 1;
117092 };
117093 _2.Qb = function htb() {
117094 Zsb(this);
117095 };
117096 _2.Wb = function itb(a) {
117097 yCb(!!this.c);
117098 this.c.c = a;
117099 };
117100 _2.a = 0;
117101 _2.c = null;
117102 mdb(bie, "LinkedList/ListIteratorImpl", 970);
117103 bcb(608, 1, {}, jtb);
117104 mdb(bie, "LinkedList/Node", 608);
117105 bcb(1959, 1, {});
117106 var ltb, mtb;
117107 mdb(bie, "Locale", 1959);
117108 bcb(861, 1959, {}, otb);
117109 _2.Ib = function ptb() {
117110 return "";
117111 };
117112 mdb(bie, "Locale/1", 861);
117113 bcb(862, 1959, {}, qtb);
117114 _2.Ib = function rtb() {
117115 return "unknown";
117116 };
117117 mdb(bie, "Locale/4", 862);
117118 bcb(109, 60, { 3: 1, 102: 1, 60: 1, 78: 1, 109: 1 }, utb, vtb);
117119 mdb(bie, "NoSuchElementException", 109);
117120 bcb(404, 1, { 404: 1 }, Ftb);
117121 _2.Fb = function Gtb(a) {
117122 var b;
117123 if (a === this) {
117124 return true;
117125 }
117126 if (!JD(a, 404)) {
117127 return false;
117128 }
117129 b = BD(a, 404);
117130 return wtb(this.a, b.a);
117131 };
117132 _2.Hb = function Htb() {
117133 return xtb(this.a);
117134 };
117135 _2.Ib = function Jtb() {
117136 return this.a != null ? Whe + xfb(this.a) + ")" : "Optional.empty()";
117137 };
117138 var ztb;
117139 mdb(bie, "Optional", 404);
117140 bcb(463, 1, { 463: 1 }, Otb, Ptb);
117141 _2.Fb = function Qtb(a) {
117142 var b;
117143 if (a === this) {
117144 return true;
117145 }
117146 if (!JD(a, 463)) {
117147 return false;
117148 }
117149 b = BD(a, 463);
117150 return this.a == b.a && Kdb(this.b, b.b) == 0;
117151 };
117152 _2.Hb = function Rtb() {
117153 return this.a ? QD(this.b) : 0;
117154 };
117155 _2.Ib = function Stb() {
117156 return this.a ? "OptionalDouble.of(" + ("" + this.b) + ")" : "OptionalDouble.empty()";
117157 };
117158 _2.a = false;
117159 _2.b = 0;
117160 var Ktb;
117161 mdb(bie, "OptionalDouble", 463);
117162 bcb(517, 1, { 517: 1 }, Wtb, Xtb);
117163 _2.Fb = function Ytb(a) {
117164 var b;
117165 if (a === this) {
117166 return true;
117167 }
117168 if (!JD(a, 517)) {
117169 return false;
117170 }
117171 b = BD(a, 517);
117172 return this.a == b.a && beb(this.b, b.b) == 0;
117173 };
117174 _2.Hb = function Ztb() {
117175 return this.a ? this.b : 0;
117176 };
117177 _2.Ib = function $tb() {
117178 return this.a ? "OptionalInt.of(" + ("" + this.b) + ")" : "OptionalInt.empty()";
117179 };
117180 _2.a = false;
117181 _2.b = 0;
117182 var Ttb;
117183 mdb(bie, "OptionalInt", 517);
117184 bcb(503, 2004, die, gub);
117185 _2.Gc = function hub(a) {
117186 return _tb(this, a);
117187 };
117188 _2.$b = function iub() {
117189 this.b.c = KC(SI, Uhe, 1, 0, 5, 1);
117190 };
117191 _2.Hc = function jub(a) {
117192 return (a == null ? -1 : Jkb(this.b, a, 0)) != -1;
117193 };
117194 _2.Kc = function kub() {
117195 return new qub(this);
117196 };
117197 _2.Mc = function lub(a) {
117198 return eub(this, a);
117199 };
117200 _2.gc = function mub() {
117201 return this.b.c.length;
117202 };
117203 _2.Nc = function nub() {
117204 return new Kub(this, 256);
117205 };
117206 _2.Pc = function oub() {
117207 return Pkb(this.b);
117208 };
117209 _2.Qc = function pub(a) {
117210 return Qkb(this.b, a);
117211 };
117212 mdb(bie, "PriorityQueue", 503);
117213 bcb(1277, 1, aie, qub);
117214 _2.Nb = function rub(a) {
117215 Rrb(this, a);
117216 };
117217 _2.Ob = function tub() {
117218 return this.a < this.c.b.c.length;
117219 };
117220 _2.Pb = function uub() {
117221 sCb(this.a < this.c.b.c.length);
117222 this.b = this.a++;
117223 return Ikb(this.c.b, this.b);
117224 };
117225 _2.Qb = function vub() {
117226 yCb(this.b != -1);
117227 fub(this.c, this.a = this.b);
117228 this.b = -1;
117229 };
117230 _2.a = 0;
117231 _2.b = -1;
117232 mdb(bie, "PriorityQueue/1", 1277);
117233 bcb(230, 1, { 230: 1 }, Gub, Hub);
117234 _2.a = 0;
117235 _2.b = 0;
117236 var wub, xub, yub = 0;
117237 mdb(bie, "Random", 230);
117238 bcb(27, 1, pie2, Kub, Lub, Mub);
117239 _2.qd = function Nub() {
117240 return this.a;
117241 };
117242 _2.rd = function Oub() {
117243 Iub(this);
117244 return this.c;
117245 };
117246 _2.Nb = function Pub(a) {
117247 Iub(this);
117248 this.d.Nb(a);
117249 };
117250 _2.sd = function Qub(a) {
117251 return Jub(this, a);
117252 };
117253 _2.a = 0;
117254 _2.c = 0;
117255 mdb(bie, "Spliterators/IteratorSpliterator", 27);
117256 bcb(485, 27, pie2, Rub);
117257 mdb(bie, "SortedSet/1", 485);
117258 bcb(602, 1, eke, Tub);
117259 _2.we = function Uub(a) {
117260 this.a.td(a);
117261 };
117262 mdb(bie, "Spliterator/OfDouble/0methodref$accept$Type", 602);
117263 bcb(603, 1, eke, Vub);
117264 _2.we = function Wub(a) {
117265 this.a.td(a);
117266 };
117267 mdb(bie, "Spliterator/OfDouble/1methodref$accept$Type", 603);
117268 bcb(604, 1, sie, Xub);
117269 _2.ud = function Yub(a) {
117270 this.a.td(meb(a));
117271 };
117272 mdb(bie, "Spliterator/OfInt/2methodref$accept$Type", 604);
117273 bcb(605, 1, sie, Zub);
117274 _2.ud = function $ub(a) {
117275 this.a.td(meb(a));
117276 };
117277 mdb(bie, "Spliterator/OfInt/3methodref$accept$Type", 605);
117278 bcb(617, 1, pie2);
117279 _2.Nb = function evb(a) {
117280 Sub(this, a);
117281 };
117282 _2.qd = function cvb() {
117283 return this.d;
117284 };
117285 _2.rd = function dvb() {
117286 return this.e;
117287 };
117288 _2.d = 0;
117289 _2.e = 0;
117290 mdb(bie, "Spliterators/BaseSpliterator", 617);
117291 bcb(721, 617, pie2);
117292 _2.xe = function gvb(a) {
117293 _ub(this, a);
117294 };
117295 _2.Nb = function hvb(a) {
117296 JD(a, 182) ? _ub(this, BD(a, 182)) : _ub(this, new Vub(a));
117297 };
117298 _2.sd = function ivb(a) {
117299 return JD(a, 182) ? this.ye(BD(a, 182)) : this.ye(new Tub(a));
117300 };
117301 mdb(bie, "Spliterators/AbstractDoubleSpliterator", 721);
117302 bcb(720, 617, pie2);
117303 _2.xe = function kvb(a) {
117304 _ub(this, a);
117305 };
117306 _2.Nb = function lvb(a) {
117307 JD(a, 196) ? _ub(this, BD(a, 196)) : _ub(this, new Zub(a));
117308 };
117309 _2.sd = function mvb(a) {
117310 return JD(a, 196) ? this.ye(BD(a, 196)) : this.ye(new Xub(a));
117311 };
117312 mdb(bie, "Spliterators/AbstractIntSpliterator", 720);
117313 bcb(540, 617, pie2);
117314 mdb(bie, "Spliterators/AbstractSpliterator", 540);
117315 bcb(692, 1, pie2);
117316 _2.Nb = function tvb(a) {
117317 Sub(this, a);
117318 };
117319 _2.qd = function rvb() {
117320 return this.b;
117321 };
117322 _2.rd = function svb() {
117323 return this.d - this.c;
117324 };
117325 _2.b = 0;
117326 _2.c = 0;
117327 _2.d = 0;
117328 mdb(bie, "Spliterators/BaseArraySpliterator", 692);
117329 bcb(947, 692, pie2, vvb);
117330 _2.ze = function wvb(a, b) {
117331 uvb(this, BD(a, 38), b);
117332 };
117333 _2.Nb = function xvb(a) {
117334 ovb(this, a);
117335 };
117336 _2.sd = function yvb(a) {
117337 return pvb(this, a);
117338 };
117339 mdb(bie, "Spliterators/ArraySpliterator", 947);
117340 bcb(693, 692, pie2, Avb);
117341 _2.ze = function Cvb(a, b) {
117342 zvb(this, BD(a, 182), b);
117343 };
117344 _2.xe = function Dvb(a) {
117345 ovb(this, a);
117346 };
117347 _2.Nb = function Evb(a) {
117348 JD(a, 182) ? ovb(this, BD(a, 182)) : ovb(this, new Vub(a));
117349 };
117350 _2.ye = function Fvb(a) {
117351 return pvb(this, a);
117352 };
117353 _2.sd = function Gvb(a) {
117354 return JD(a, 182) ? pvb(this, BD(a, 182)) : pvb(this, new Tub(a));
117355 };
117356 mdb(bie, "Spliterators/DoubleArraySpliterator", 693);
117357 bcb(1968, 1, pie2);
117358 _2.Nb = function Lvb(a) {
117359 Sub(this, a);
117360 };
117361 _2.qd = function Jvb() {
117362 return 16448;
117363 };
117364 _2.rd = function Kvb() {
117365 return 0;
117366 };
117367 var Hvb;
117368 mdb(bie, "Spliterators/EmptySpliterator", 1968);
117369 bcb(946, 1968, pie2, Ovb);
117370 _2.xe = function Pvb(a) {
117371 Mvb(a);
117372 };
117373 _2.Nb = function Qvb(a) {
117374 JD(a, 196) ? Mvb(BD(a, 196)) : Mvb(new Zub(a));
117375 };
117376 _2.ye = function Rvb(a) {
117377 return Nvb(a);
117378 };
117379 _2.sd = function Svb(a) {
117380 return JD(a, 196) ? Nvb(BD(a, 196)) : Nvb(new Xub(a));
117381 };
117382 mdb(bie, "Spliterators/EmptySpliterator/OfInt", 946);
117383 bcb(580, 52, pke, Wvb);
117384 _2.Vc = function Xvb(a, b) {
117385 _vb(a, this.a.c.length + 1);
117386 Dkb(this.a, a, b);
117387 };
117388 _2.Fc = function Yvb(a) {
117389 return Ekb(this.a, a);
117390 };
117391 _2.Wc = function Zvb(a, b) {
117392 _vb(a, this.a.c.length + 1);
117393 return Fkb(this.a, a, b);
117394 };
117395 _2.Gc = function $vb(a) {
117396 return Gkb(this.a, a);
117397 };
117398 _2.$b = function awb() {
117399 this.a.c = KC(SI, Uhe, 1, 0, 5, 1);
117400 };
117401 _2.Hc = function bwb(a) {
117402 return Jkb(this.a, a, 0) != -1;
117403 };
117404 _2.Ic = function cwb(a) {
117405 return Be(this.a, a);
117406 };
117407 _2.Jc = function dwb(a) {
117408 Hkb(this.a, a);
117409 };
117410 _2.Xb = function ewb(a) {
117411 return _vb(a, this.a.c.length), Ikb(this.a, a);
117412 };
117413 _2.Xc = function fwb(a) {
117414 return Jkb(this.a, a, 0);
117415 };
117416 _2.dc = function gwb() {
117417 return this.a.c.length == 0;
117418 };
117419 _2.Kc = function hwb() {
117420 return new olb(this.a);
117421 };
117422 _2.$c = function iwb(a) {
117423 return _vb(a, this.a.c.length), Kkb(this.a, a);
117424 };
117425 _2.Ud = function jwb(a, b) {
117426 Mkb(this.a, a, b);
117427 };
117428 _2._c = function kwb(a, b) {
117429 return _vb(a, this.a.c.length), Nkb(this.a, a, b);
117430 };
117431 _2.gc = function lwb() {
117432 return this.a.c.length;
117433 };
117434 _2.ad = function mwb(a) {
117435 Okb(this.a, a);
117436 };
117437 _2.bd = function nwb(a, b) {
117438 return new Jib(this.a, a, b);
117439 };
117440 _2.Pc = function owb() {
117441 return Pkb(this.a);
117442 };
117443 _2.Qc = function pwb(a) {
117444 return Qkb(this.a, a);
117445 };
117446 _2.Ib = function qwb() {
117447 return Fe(this.a);
117448 };
117449 mdb(bie, "Vector", 580);
117450 bcb(809, 580, pke, twb);
117451 mdb(bie, "Stack", 809);
117452 bcb(206, 1, { 206: 1 }, xwb);
117453 _2.Ib = function ywb() {
117454 return wwb(this);
117455 };
117456 mdb(bie, "StringJoiner", 206);
117457 bcb(544, 1992, { 3: 1, 83: 1, 171: 1, 161: 1 }, Pwb, Qwb);
117458 _2.$b = function Rwb() {
117459 zwb(this);
117460 };
117461 _2.vc = function Swb() {
117462 return new cxb(this);
117463 };
117464 _2.zc = function Twb(a, b) {
117465 return Iwb(this, a, b);
117466 };
117467 _2.Bc = function Uwb(a) {
117468 return Jwb(this, a);
117469 };
117470 _2.gc = function Vwb() {
117471 return this.c;
117472 };
117473 _2.c = 0;
117474 mdb(bie, "TreeMap", 544);
117475 bcb(390, 1, aie, Ywb);
117476 _2.Nb = function $wb(a) {
117477 Rrb(this, a);
117478 };
117479 _2.Pb = function axb() {
117480 return Wwb(this);
117481 };
117482 _2.Ob = function _wb() {
117483 return sib(this.a);
117484 };
117485 _2.Qb = function bxb() {
117486 Xwb(this);
117487 };
117488 mdb(bie, "TreeMap/EntryIterator", 390);
117489 bcb(435, 739, fie, cxb);
117490 _2.$b = function dxb() {
117491 zwb(this.a);
117492 };
117493 mdb(bie, "TreeMap/EntrySet", 435);
117494 bcb(436, 383, { 484: 1, 383: 1, 42: 1, 436: 1 }, exb);
117495 _2.b = false;
117496 var dL = mdb(bie, "TreeMap/Node", 436);
117497 bcb(621, 1, {}, fxb);
117498 _2.Ib = function gxb() {
117499 return "State: mv=" + this.c + " value=" + this.d + " done=" + this.a + " found=" + this.b;
117500 };
117501 _2.a = false;
117502 _2.b = false;
117503 _2.c = false;
117504 mdb(bie, "TreeMap/State", 621);
117505 bcb(297, 22, qke, mxb);
117506 _2.Ae = function nxb() {
117507 return false;
117508 };
117509 _2.Be = function oxb() {
117510 return false;
117511 };
117512 var hxb, ixb, jxb, kxb;
117513 var iL = ndb(bie, "TreeMap/SubMapType", 297, CI, qxb, pxb);
117514 bcb(1112, 297, qke, rxb);
117515 _2.Be = function sxb() {
117516 return true;
117517 };
117518 ndb(bie, "TreeMap/SubMapType/1", 1112, iL, null, null);
117519 bcb(1113, 297, qke, txb);
117520 _2.Ae = function uxb() {
117521 return true;
117522 };
117523 _2.Be = function vxb() {
117524 return true;
117525 };
117526 ndb(bie, "TreeMap/SubMapType/2", 1113, iL, null, null);
117527 bcb(1114, 297, qke, wxb);
117528 _2.Ae = function xxb() {
117529 return true;
117530 };
117531 ndb(bie, "TreeMap/SubMapType/3", 1114, iL, null, null);
117532 var yxb;
117533 bcb(208, eie, { 3: 1, 20: 1, 28: 1, 14: 1, 271: 1, 21: 1, 84: 1, 208: 1 }, Gxb, Hxb);
117534 _2.Nc = function Oxb() {
117535 return new Rub(this);
117536 };
117537 _2.Fc = function Ixb(a) {
117538 return Axb(this, a);
117539 };
117540 _2.$b = function Jxb() {
117541 zwb(this.a);
117542 };
117543 _2.Hc = function Kxb(a) {
117544 return ujb(this.a, a);
117545 };
117546 _2.Kc = function Lxb() {
117547 var a;
117548 return a = new Ywb(new cxb(new Gjb(this.a).a).b), new Njb(a);
117549 };
117550 _2.Mc = function Mxb(a) {
117551 return Fxb(this, a);
117552 };
117553 _2.gc = function Nxb() {
117554 return this.a.c;
117555 };
117556 var kL = mdb(bie, "TreeSet", 208);
117557 bcb(966, 1, {}, Rxb);
117558 _2.Ce = function Sxb(a, b) {
117559 return Pxb(this.a, a, b);
117560 };
117561 mdb(rke, "BinaryOperator/lambda$0$Type", 966);
117562 bcb(967, 1, {}, Txb);
117563 _2.Ce = function Uxb(a, b) {
117564 return Qxb(this.a, a, b);
117565 };
117566 mdb(rke, "BinaryOperator/lambda$1$Type", 967);
117567 bcb(846, 1, {}, Vxb);
117568 _2.Kb = function Wxb(a) {
117569 return a;
117570 };
117571 mdb(rke, "Function/lambda$0$Type", 846);
117572 bcb(431, 1, Oie, Xxb);
117573 _2.Mb = function Yxb(a) {
117574 return !this.a.Mb(a);
117575 };
117576 mdb(rke, "Predicate/lambda$2$Type", 431);
117577 bcb(572, 1, { 572: 1 });
117578 var qL = mdb(ske, "Handler", 572);
117579 bcb(2007, 1, Qhe);
117580 _2.ne = function _xb() {
117581 return "DUMMY";
117582 };
117583 _2.Ib = function ayb() {
117584 return this.ne();
117585 };
117586 var Zxb;
117587 mdb(ske, "Level", 2007);
117588 bcb(1621, 2007, Qhe, byb);
117589 _2.ne = function cyb() {
117590 return "INFO";
117591 };
117592 mdb(ske, "Level/LevelInfo", 1621);
117593 bcb(1640, 1, {}, gyb);
117594 var dyb;
117595 mdb(ske, "LogManager", 1640);
117596 bcb(1780, 1, Qhe, iyb);
117597 _2.b = null;
117598 mdb(ske, "LogRecord", 1780);
117599 bcb(512, 1, { 512: 1 }, wyb);
117600 _2.e = false;
117601 var jyb = false, kyb = false, lyb = false, myb = false, nyb = false;
117602 mdb(ske, "Logger", 512);
117603 bcb(819, 572, { 572: 1 }, zyb);
117604 mdb(ske, "SimpleConsoleLogHandler", 819);
117605 bcb(132, 22, { 3: 1, 35: 1, 22: 1, 132: 1 }, Gyb);
117606 var Cyb, Dyb, Eyb;
117607 var xL = ndb(vke, "Collector/Characteristics", 132, CI, Iyb, Hyb);
117608 var Jyb;
117609 bcb(744, 1, {}, Lyb);
117610 mdb(vke, "CollectorImpl", 744);
117611 bcb(1060, 1, {}, Zyb);
117612 _2.Ce = function $yb(a, b) {
117613 return vwb(BD(a, 206), BD(b, 206));
117614 };
117615 mdb(vke, "Collectors/10methodref$merge$Type", 1060);
117616 bcb(1061, 1, {}, _yb);
117617 _2.Kb = function azb(a) {
117618 return wwb(BD(a, 206));
117619 };
117620 mdb(vke, "Collectors/11methodref$toString$Type", 1061);
117621 bcb(1062, 1, {}, bzb);
117622 _2.Kb = function czb(a) {
117623 return Bcb(), _Pb(a) ? true : false;
117624 };
117625 mdb(vke, "Collectors/12methodref$test$Type", 1062);
117626 bcb(251, 1, {}, dzb);
117627 _2.Od = function ezb(a, b) {
117628 BD(a, 14).Fc(b);
117629 };
117630 mdb(vke, "Collectors/20methodref$add$Type", 251);
117631 bcb(253, 1, {}, fzb);
117632 _2.Ee = function gzb() {
117633 return new Rkb();
117634 };
117635 mdb(vke, "Collectors/21methodref$ctor$Type", 253);
117636 bcb(346, 1, {}, hzb);
117637 _2.Ee = function izb() {
117638 return new Tqb();
117639 };
117640 mdb(vke, "Collectors/23methodref$ctor$Type", 346);
117641 bcb(347, 1, {}, jzb);
117642 _2.Od = function kzb(a, b) {
117643 Qqb(BD(a, 53), b);
117644 };
117645 mdb(vke, "Collectors/24methodref$add$Type", 347);
117646 bcb(1055, 1, {}, lzb);
117647 _2.Ce = function mzb(a, b) {
117648 return Myb(BD(a, 15), BD(b, 14));
117649 };
117650 mdb(vke, "Collectors/4methodref$addAll$Type", 1055);
117651 bcb(1059, 1, {}, nzb);
117652 _2.Od = function ozb(a, b) {
117653 uwb(BD(a, 206), BD(b, 475));
117654 };
117655 mdb(vke, "Collectors/9methodref$add$Type", 1059);
117656 bcb(1058, 1, {}, pzb);
117657 _2.Ee = function qzb() {
117658 return new xwb(this.a, this.b, this.c);
117659 };
117660 mdb(vke, "Collectors/lambda$15$Type", 1058);
117661 bcb(1063, 1, {}, rzb);
117662 _2.Ee = function szb() {
117663 var a;
117664 return a = new $rb(), Xrb(a, (Bcb(), false), new Rkb()), Xrb(a, true, new Rkb()), a;
117665 };
117666 mdb(vke, "Collectors/lambda$22$Type", 1063);
117667 bcb(1064, 1, {}, tzb);
117668 _2.Ee = function uzb() {
117669 return OC(GC(SI, 1), Uhe, 1, 5, [this.a]);
117670 };
117671 mdb(vke, "Collectors/lambda$25$Type", 1064);
117672 bcb(1065, 1, {}, vzb);
117673 _2.Od = function wzb(a, b) {
117674 Oyb(this.a, CD(a));
117675 };
117676 mdb(vke, "Collectors/lambda$26$Type", 1065);
117677 bcb(1066, 1, {}, xzb);
117678 _2.Ce = function yzb(a, b) {
117679 return Pyb(this.a, CD(a), CD(b));
117680 };
117681 mdb(vke, "Collectors/lambda$27$Type", 1066);
117682 bcb(1067, 1, {}, zzb);
117683 _2.Kb = function Azb(a) {
117684 return CD(a)[0];
117685 };
117686 mdb(vke, "Collectors/lambda$28$Type", 1067);
117687 bcb(713, 1, {}, Czb);
117688 _2.Ce = function Dzb(a, b) {
117689 return Bzb(a, b);
117690 };
117691 mdb(vke, "Collectors/lambda$4$Type", 713);
117692 bcb(252, 1, {}, Ezb);
117693 _2.Ce = function Fzb(a, b) {
117694 return Ryb(BD(a, 14), BD(b, 14));
117695 };
117696 mdb(vke, "Collectors/lambda$42$Type", 252);
117697 bcb(348, 1, {}, Gzb);
117698 _2.Ce = function Hzb(a, b) {
117699 return Syb(BD(a, 53), BD(b, 53));
117700 };
117701 mdb(vke, "Collectors/lambda$50$Type", 348);
117702 bcb(349, 1, {}, Izb);
117703 _2.Kb = function Jzb(a) {
117704 return BD(a, 53);
117705 };
117706 mdb(vke, "Collectors/lambda$51$Type", 349);
117707 bcb(1054, 1, {}, Kzb);
117708 _2.Od = function Lzb(a, b) {
117709 Tyb(this.a, BD(a, 83), b);
117710 };
117711 mdb(vke, "Collectors/lambda$7$Type", 1054);
117712 bcb(1056, 1, {}, Mzb);
117713 _2.Ce = function Nzb(a, b) {
117714 return Vyb(BD(a, 83), BD(b, 83), new lzb());
117715 };
117716 mdb(vke, "Collectors/lambda$8$Type", 1056);
117717 bcb(1057, 1, {}, Ozb);
117718 _2.Kb = function Pzb(a) {
117719 return Uyb(this.a, BD(a, 83));
117720 };
117721 mdb(vke, "Collectors/lambda$9$Type", 1057);
117722 bcb(539, 1, {});
117723 _2.He = function Wzb() {
117724 Qzb(this);
117725 };
117726 _2.d = false;
117727 mdb(vke, "TerminatableStream", 539);
117728 bcb(812, 539, wke, bAb);
117729 _2.He = function cAb() {
117730 Qzb(this);
117731 };
117732 mdb(vke, "DoubleStreamImpl", 812);
117733 bcb(1784, 721, pie2, fAb);
117734 _2.ye = function hAb(a) {
117735 return eAb(this, BD(a, 182));
117736 };
117737 _2.a = null;
117738 mdb(vke, "DoubleStreamImpl/2", 1784);
117739 bcb(1785, 1, eke, iAb);
117740 _2.we = function jAb(a) {
117741 gAb(this.a, a);
117742 };
117743 mdb(vke, "DoubleStreamImpl/2/lambda$0$Type", 1785);
117744 bcb(1782, 1, eke, kAb);
117745 _2.we = function lAb(a) {
117746 dAb(this.a, a);
117747 };
117748 mdb(vke, "DoubleStreamImpl/lambda$0$Type", 1782);
117749 bcb(1783, 1, eke, mAb);
117750 _2.we = function nAb(a) {
117751 Epb(this.a, a);
117752 };
117753 mdb(vke, "DoubleStreamImpl/lambda$2$Type", 1783);
117754 bcb(1358, 720, pie2, rAb);
117755 _2.ye = function sAb(a) {
117756 return qAb(this, BD(a, 196));
117757 };
117758 _2.a = 0;
117759 _2.b = 0;
117760 _2.c = 0;
117761 mdb(vke, "IntStream/5", 1358);
117762 bcb(787, 539, wke, vAb);
117763 _2.He = function wAb() {
117764 Qzb(this);
117765 };
117766 _2.Ie = function xAb() {
117767 return Tzb(this), this.a;
117768 };
117769 mdb(vke, "IntStreamImpl", 787);
117770 bcb(788, 539, wke, yAb);
117771 _2.He = function zAb() {
117772 Qzb(this);
117773 };
117774 _2.Ie = function AAb() {
117775 return Tzb(this), Ivb(), Hvb;
117776 };
117777 mdb(vke, "IntStreamImpl/Empty", 788);
117778 bcb(1463, 1, sie, BAb);
117779 _2.ud = function CAb(a) {
117780 crb(this.a, a);
117781 };
117782 mdb(vke, "IntStreamImpl/lambda$4$Type", 1463);
117783 var xM = odb(vke, "Stream");
117784 bcb(30, 539, { 525: 1, 670: 1, 833: 1 }, YAb);
117785 _2.He = function ZAb() {
117786 Qzb(this);
117787 };
117788 var DAb;
117789 mdb(vke, "StreamImpl", 30);
117790 bcb(845, 1, {}, bBb);
117791 _2.ld = function cBb(a) {
117792 return aBb(a);
117793 };
117794 mdb(vke, "StreamImpl/0methodref$lambda$2$Type", 845);
117795 bcb(1084, 540, pie2, fBb);
117796 _2.sd = function gBb(a) {
117797 while (dBb(this)) {
117798 if (this.a.sd(a)) {
117799 return true;
117800 } else {
117801 Qzb(this.b);
117802 this.b = null;
117803 this.a = null;
117804 }
117805 }
117806 return false;
117807 };
117808 mdb(vke, "StreamImpl/1", 1084);
117809 bcb(1085, 1, qie, hBb);
117810 _2.td = function iBb(a) {
117811 eBb(this.a, BD(a, 833));
117812 };
117813 mdb(vke, "StreamImpl/1/lambda$0$Type", 1085);
117814 bcb(1086, 1, Oie, jBb);
117815 _2.Mb = function kBb(a) {
117816 return Qqb(this.a, a);
117817 };
117818 mdb(vke, "StreamImpl/1methodref$add$Type", 1086);
117819 bcb(1087, 540, pie2, lBb);
117820 _2.sd = function mBb(a) {
117821 var b;
117822 if (!this.a) {
117823 b = new Rkb();
117824 this.b.a.Nb(new nBb(b));
117825 mmb();
117826 Okb(b, this.c);
117827 this.a = new Kub(b, 16);
117828 }
117829 return Jub(this.a, a);
117830 };
117831 _2.a = null;
117832 mdb(vke, "StreamImpl/5", 1087);
117833 bcb(1088, 1, qie, nBb);
117834 _2.td = function oBb(a) {
117835 Ekb(this.a, a);
117836 };
117837 mdb(vke, "StreamImpl/5/2methodref$add$Type", 1088);
117838 bcb(722, 540, pie2, qBb);
117839 _2.sd = function rBb(a) {
117840 this.b = false;
117841 while (!this.b && this.c.sd(new sBb(this, a)))
117842 ;
117843 return this.b;
117844 };
117845 _2.b = false;
117846 mdb(vke, "StreamImpl/FilterSpliterator", 722);
117847 bcb(1079, 1, qie, sBb);
117848 _2.td = function tBb(a) {
117849 pBb(this.a, this.b, a);
117850 };
117851 mdb(vke, "StreamImpl/FilterSpliterator/lambda$0$Type", 1079);
117852 bcb(1075, 721, pie2, wBb);
117853 _2.ye = function xBb(a) {
117854 return vBb(this, BD(a, 182));
117855 };
117856 mdb(vke, "StreamImpl/MapToDoubleSpliterator", 1075);
117857 bcb(1078, 1, qie, yBb);
117858 _2.td = function zBb(a) {
117859 uBb(this.a, this.b, a);
117860 };
117861 mdb(vke, "StreamImpl/MapToDoubleSpliterator/lambda$0$Type", 1078);
117862 bcb(1074, 720, pie2, CBb);
117863 _2.ye = function DBb(a) {
117864 return BBb(this, BD(a, 196));
117865 };
117866 mdb(vke, "StreamImpl/MapToIntSpliterator", 1074);
117867 bcb(1077, 1, qie, EBb);
117868 _2.td = function FBb(a) {
117869 ABb(this.a, this.b, a);
117870 };
117871 mdb(vke, "StreamImpl/MapToIntSpliterator/lambda$0$Type", 1077);
117872 bcb(719, 540, pie2, IBb);
117873 _2.sd = function JBb(a) {
117874 return HBb(this, a);
117875 };
117876 mdb(vke, "StreamImpl/MapToObjSpliterator", 719);
117877 bcb(1076, 1, qie, KBb);
117878 _2.td = function LBb(a) {
117879 GBb(this.a, this.b, a);
117880 };
117881 mdb(vke, "StreamImpl/MapToObjSpliterator/lambda$0$Type", 1076);
117882 bcb(618, 1, qie, NBb);
117883 _2.td = function OBb(a) {
117884 MBb(this, a);
117885 };
117886 mdb(vke, "StreamImpl/ValueConsumer", 618);
117887 bcb(1080, 1, qie, PBb);
117888 _2.td = function QBb(a) {
117889 EAb();
117890 };
117891 mdb(vke, "StreamImpl/lambda$0$Type", 1080);
117892 bcb(1081, 1, qie, RBb);
117893 _2.td = function SBb(a) {
117894 EAb();
117895 };
117896 mdb(vke, "StreamImpl/lambda$1$Type", 1081);
117897 bcb(1082, 1, {}, TBb);
117898 _2.Ce = function UBb(a, b) {
117899 return $Ab(this.a, a, b);
117900 };
117901 mdb(vke, "StreamImpl/lambda$4$Type", 1082);
117902 bcb(1083, 1, qie, VBb);
117903 _2.td = function WBb(a) {
117904 _Ab(this.b, this.a, a);
117905 };
117906 mdb(vke, "StreamImpl/lambda$5$Type", 1083);
117907 bcb(1089, 1, qie, XBb);
117908 _2.td = function YBb(a) {
117909 Xzb(this.a, BD(a, 365));
117910 };
117911 mdb(vke, "TerminatableStream/lambda$0$Type", 1089);
117912 bcb(2041, 1, {});
117913 bcb(1914, 1, {}, iCb);
117914 mdb("javaemul.internal", "ConsoleLogger", 1914);
117915 bcb(2038, 1, {});
117916 var ECb = 0;
117917 var GCb, HCb = 0, ICb;
117918 bcb(1768, 1, qie, OCb);
117919 _2.td = function PCb(a) {
117920 BD(a, 308);
117921 };
117922 mdb(Cke, "BowyerWatsonTriangulation/lambda$0$Type", 1768);
117923 bcb(1769, 1, qie, QCb);
117924 _2.td = function RCb(a) {
117925 ye(this.a, BD(a, 308).e);
117926 };
117927 mdb(Cke, "BowyerWatsonTriangulation/lambda$1$Type", 1769);
117928 bcb(1770, 1, qie, SCb);
117929 _2.td = function TCb(a) {
117930 BD(a, 168);
117931 };
117932 mdb(Cke, "BowyerWatsonTriangulation/lambda$2$Type", 1770);
117933 bcb(1765, 1, Dke, WCb);
117934 _2.ue = function XCb(a, b) {
117935 return VCb(this.a, BD(a, 168), BD(b, 168));
117936 };
117937 _2.Fb = function YCb(a) {
117938 return this === a;
117939 };
117940 _2.ve = function ZCb() {
117941 return new tpb(this);
117942 };
117943 mdb(Cke, "NaiveMinST/lambda$0$Type", 1765);
117944 bcb(499, 1, {}, _Cb);
117945 mdb(Cke, "NodeMicroLayout", 499);
117946 bcb(168, 1, { 168: 1 }, aDb);
117947 _2.Fb = function bDb(a) {
117948 var b;
117949 if (JD(a, 168)) {
117950 b = BD(a, 168);
117951 return wtb(this.a, b.a) && wtb(this.b, b.b) || wtb(this.a, b.b) && wtb(this.b, b.a);
117952 } else {
117953 return false;
117954 }
117955 };
117956 _2.Hb = function cDb() {
117957 return xtb(this.a) + xtb(this.b);
117958 };
117959 var GM = mdb(Cke, "TEdge", 168);
117960 bcb(308, 1, { 308: 1 }, eDb);
117961 _2.Fb = function fDb(a) {
117962 var b;
117963 if (JD(a, 308)) {
117964 b = BD(a, 308);
117965 return dDb(this, b.a) && dDb(this, b.b) && dDb(this, b.c);
117966 } else {
117967 return false;
117968 }
117969 };
117970 _2.Hb = function gDb() {
117971 return xtb(this.a) + xtb(this.b) + xtb(this.c);
117972 };
117973 mdb(Cke, "TTriangle", 308);
117974 bcb(221, 1, { 221: 1 }, hDb);
117975 mdb(Cke, "Tree", 221);
117976 bcb(1254, 1, {}, jDb);
117977 mdb(Eke, "Scanline", 1254);
117978 var JM = odb(Eke, Fke);
117979 bcb(1692, 1, {}, mDb);
117980 mdb(Gke, "CGraph", 1692);
117981 bcb(307, 1, { 307: 1 }, oDb);
117982 _2.b = 0;
117983 _2.c = 0;
117984 _2.d = 0;
117985 _2.g = 0;
117986 _2.i = 0;
117987 _2.k = Qje;
117988 mdb(Gke, "CGroup", 307);
117989 bcb(815, 1, {}, sDb);
117990 mdb(Gke, "CGroup/CGroupBuilder", 815);
117991 bcb(57, 1, { 57: 1 }, tDb);
117992 _2.Ib = function uDb() {
117993 var a;
117994 if (this.j) {
117995 return GD(this.j.Kb(this));
117996 }
117997 return fdb(PM), PM.o + "@" + (a = FCb(this) >>> 0, a.toString(16));
117998 };
117999 _2.f = 0;
118000 _2.i = Qje;
118001 var PM = mdb(Gke, "CNode", 57);
118002 bcb(814, 1, {}, zDb);
118003 mdb(Gke, "CNode/CNodeBuilder", 814);
118004 var EDb;
118005 bcb(1525, 1, {}, GDb);
118006 _2.Oe = function HDb(a, b) {
118007 return 0;
118008 };
118009 _2.Pe = function IDb(a, b) {
118010 return 0;
118011 };
118012 mdb(Gke, Ike, 1525);
118013 bcb(1790, 1, {}, JDb);
118014 _2.Le = function KDb(a) {
118015 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
118016 j = Pje;
118017 for (d = new olb(a.a.b); d.a < d.c.c.length; ) {
118018 b = BD(mlb(d), 57);
118019 j = $wnd.Math.min(j, b.a.j.d.c + b.b.a);
118020 }
118021 n = new Psb();
118022 for (g = new olb(a.a.a); g.a < g.c.c.length; ) {
118023 f2 = BD(mlb(g), 307);
118024 f2.k = j;
118025 f2.g == 0 && (Gsb(n, f2, n.c.b, n.c), true);
118026 }
118027 while (n.b != 0) {
118028 f2 = BD(n.b == 0 ? null : (sCb(n.b != 0), Nsb(n, n.a.a)), 307);
118029 e = f2.j.d.c;
118030 for (m = f2.a.a.ec().Kc(); m.Ob(); ) {
118031 k = BD(m.Pb(), 57);
118032 p = f2.k + k.b.a;
118033 !UDb(a, f2, a.d) || k.d.c < p ? k.i = p : k.i = k.d.c;
118034 }
118035 e -= f2.j.i;
118036 f2.b += e;
118037 a.d == (ead(), bad) || a.d == _9c ? f2.c += e : f2.c -= e;
118038 for (l = f2.a.a.ec().Kc(); l.Ob(); ) {
118039 k = BD(l.Pb(), 57);
118040 for (i3 = k.c.Kc(); i3.Ob(); ) {
118041 h = BD(i3.Pb(), 57);
118042 fad(a.d) ? o2 = a.g.Oe(k, h) : o2 = a.g.Pe(k, h);
118043 h.a.k = $wnd.Math.max(h.a.k, k.i + k.d.b + o2 - h.b.a);
118044 VDb(a, h, a.d) && (h.a.k = $wnd.Math.max(h.a.k, h.d.c - h.b.a));
118045 --h.a.g;
118046 h.a.g == 0 && Dsb(n, h.a);
118047 }
118048 }
118049 }
118050 for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
118051 b = BD(mlb(c2), 57);
118052 b.d.c = b.i;
118053 }
118054 };
118055 mdb(Gke, "LongestPathCompaction", 1790);
118056 bcb(1690, 1, {}, cEb);
118057 _2.e = false;
118058 var LDb, MDb, NDb;
118059 var TM = mdb(Gke, Nke, 1690);
118060 bcb(1691, 1, qie, dEb);
118061 _2.td = function eEb(a) {
118062 WDb(this.a, BD(a, 46));
118063 };
118064 mdb(Gke, Oke, 1691);
118065 bcb(1791, 1, {}, fEb);
118066 _2.Me = function gEb(a) {
118067 var b, c2, d, e, f2, g, h;
118068 for (c2 = new olb(a.a.b); c2.a < c2.c.c.length; ) {
118069 b = BD(mlb(c2), 57);
118070 b.c.$b();
118071 }
118072 for (e = new olb(a.a.b); e.a < e.c.c.length; ) {
118073 d = BD(mlb(e), 57);
118074 for (g = new olb(a.a.b); g.a < g.c.c.length; ) {
118075 f2 = BD(mlb(g), 57);
118076 if (d == f2) {
118077 continue;
118078 }
118079 if (!!d.a && d.a == f2.a) {
118080 continue;
118081 }
118082 fad(a.d) ? h = a.g.Pe(d, f2) : h = a.g.Oe(d, f2);
118083 (f2.d.c > d.d.c || d.d.c == f2.d.c && d.d.b < f2.d.b) && BDb(f2.d.d + f2.d.a + h, d.d.d) && DDb(f2.d.d, d.d.d + d.d.a + h) && d.c.Fc(f2);
118084 }
118085 }
118086 };
118087 mdb(Gke, "QuadraticConstraintCalculation", 1791);
118088 bcb(522, 1, { 522: 1 }, lEb);
118089 _2.a = false;
118090 _2.b = false;
118091 _2.c = false;
118092 _2.d = false;
118093 mdb(Gke, Pke, 522);
118094 bcb(803, 1, {}, oEb);
118095 _2.Me = function pEb(a) {
118096 this.c = a;
118097 nEb(this, new GEb());
118098 };
118099 mdb(Gke, Qke, 803);
118100 bcb(1718, 1, { 679: 1 }, uEb);
118101 _2.Ke = function vEb(a) {
118102 rEb(this, BD(a, 464));
118103 };
118104 mdb(Gke, Rke, 1718);
118105 bcb(1719, 1, Dke, xEb);
118106 _2.ue = function yEb(a, b) {
118107 return wEb(BD(a, 57), BD(b, 57));
118108 };
118109 _2.Fb = function zEb(a) {
118110 return this === a;
118111 };
118112 _2.ve = function AEb() {
118113 return new tpb(this);
118114 };
118115 mdb(Gke, Ske, 1719);
118116 bcb(464, 1, { 464: 1 }, BEb);
118117 _2.a = false;
118118 mdb(Gke, Tke, 464);
118119 bcb(1720, 1, Dke, CEb);
118120 _2.ue = function DEb(a, b) {
118121 return qEb(BD(a, 464), BD(b, 464));
118122 };
118123 _2.Fb = function EEb(a) {
118124 return this === a;
118125 };
118126 _2.ve = function FEb() {
118127 return new tpb(this);
118128 };
118129 mdb(Gke, Uke, 1720);
118130 bcb(1721, 1, Vke, GEb);
118131 _2.Lb = function HEb(a) {
118132 return BD(a, 57), true;
118133 };
118134 _2.Fb = function IEb(a) {
118135 return this === a;
118136 };
118137 _2.Mb = function JEb(a) {
118138 return BD(a, 57), true;
118139 };
118140 mdb(Gke, "ScanlineConstraintCalculator/lambda$1$Type", 1721);
118141 bcb(428, 22, { 3: 1, 35: 1, 22: 1, 428: 1 }, NEb);
118142 var KEb, LEb;
118143 var aN = ndb(Wke, "HighLevelSortingCriterion", 428, CI, PEb, OEb);
118144 var QEb;
118145 bcb(427, 22, { 3: 1, 35: 1, 22: 1, 427: 1 }, VEb);
118146 var SEb, TEb;
118147 var bN = ndb(Wke, "LowLevelSortingCriterion", 427, CI, XEb, WEb);
118148 var YEb;
118149 var C0 = odb(Xke, "ILayoutMetaDataProvider");
118150 bcb(853, 1, ale, gFb);
118151 _2.Qe = function hFb(a) {
118152 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yke), ble), "Polyomino Traversal Strategy"), "Traversal strategy for trying different candidate positions for polyominoes."), eFb), (_5c(), V5c)), dN), pqb((N5c(), L5c)))));
118153 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zke), ble), "Polyomino Secondary Sorting Criterion"), "Possible secondary sorting criteria for the processing order of polyominoes. They are used when polyominoes are equal according to the primary sorting criterion HighLevelSortingCriterion."), cFb), V5c), bN), pqb(L5c))));
118154 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $ke), ble), "Polyomino Primary Sorting Criterion"), "Possible primary sorting criteria for the processing order of polyominoes."), aFb), V5c), aN), pqb(L5c))));
118155 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _ke), ble), "Fill Polyominoes"), "Use the Profile Fill algorithm to fill polyominoes to prevent small polyominoes from being placed inside of big polyominoes with large holes. Might increase packing area."), (Bcb(), true)), T5c), wI), pqb(L5c))));
118156 };
118157 var $Eb, _Eb, aFb, bFb, cFb, dFb, eFb;
118158 mdb(Wke, "PolyominoOptions", 853);
118159 bcb(250, 22, { 3: 1, 35: 1, 22: 1, 250: 1 }, sFb);
118160 var iFb, jFb, kFb, lFb, mFb, nFb, oFb, pFb, qFb;
118161 var dN = ndb(Wke, "TraversalStrategy", 250, CI, uFb, tFb);
118162 var vFb;
118163 bcb(213, 1, { 213: 1 }, yFb);
118164 _2.Ib = function zFb() {
118165 return "NEdge[id=" + this.b + " w=" + this.g + " d=" + this.a + "]";
118166 };
118167 _2.a = 1;
118168 _2.b = 0;
118169 _2.c = 0;
118170 _2.f = false;
118171 _2.g = 0;
118172 var fN = mdb(cle, "NEdge", 213);
118173 bcb(176, 1, {}, FFb);
118174 mdb(cle, "NEdge/NEdgeBuilder", 176);
118175 bcb(653, 1, {}, KFb);
118176 mdb(cle, "NGraph", 653);
118177 bcb(121, 1, { 121: 1 }, MFb);
118178 _2.c = -1;
118179 _2.d = 0;
118180 _2.e = 0;
118181 _2.i = -1;
118182 _2.j = false;
118183 var jN = mdb(cle, "NNode", 121);
118184 bcb(795, 1, cke, PFb);
118185 _2.Jc = function XFb(a) {
118186 reb(this, a);
118187 };
118188 _2.Lc = function cGb() {
118189 return new YAb(null, new Kub(this, 16));
118190 };
118191 _2.ad = function hGb(a) {
118192 ktb(this, a);
118193 };
118194 _2.Nc = function iGb() {
118195 return new Kub(this, 16);
118196 };
118197 _2.Oc = function jGb() {
118198 return new YAb(null, new Kub(this, 16));
118199 };
118200 _2.Vc = function QFb(a, b) {
118201 ++this.b;
118202 Dkb(this.a, a, b);
118203 };
118204 _2.Fc = function RFb(a) {
118205 return NFb(this, a);
118206 };
118207 _2.Wc = function SFb(a, b) {
118208 ++this.b;
118209 return Fkb(this.a, a, b);
118210 };
118211 _2.Gc = function TFb(a) {
118212 ++this.b;
118213 return Gkb(this.a, a);
118214 };
118215 _2.$b = function UFb() {
118216 ++this.b;
118217 this.a.c = KC(SI, Uhe, 1, 0, 5, 1);
118218 };
118219 _2.Hc = function VFb(a) {
118220 return Jkb(this.a, a, 0) != -1;
118221 };
118222 _2.Ic = function WFb(a) {
118223 return Be(this.a, a);
118224 };
118225 _2.Xb = function YFb(a) {
118226 return Ikb(this.a, a);
118227 };
118228 _2.Xc = function ZFb(a) {
118229 return Jkb(this.a, a, 0);
118230 };
118231 _2.dc = function $Fb() {
118232 return this.a.c.length == 0;
118233 };
118234 _2.Kc = function _Fb() {
118235 return vr(new olb(this.a));
118236 };
118237 _2.Yc = function aGb() {
118238 throw vbb(new bgb());
118239 };
118240 _2.Zc = function bGb(a) {
118241 throw vbb(new bgb());
118242 };
118243 _2.$c = function dGb(a) {
118244 ++this.b;
118245 return Kkb(this.a, a);
118246 };
118247 _2.Mc = function eGb(a) {
118248 return OFb(this, a);
118249 };
118250 _2._c = function fGb(a, b) {
118251 ++this.b;
118252 return Nkb(this.a, a, b);
118253 };
118254 _2.gc = function gGb() {
118255 return this.a.c.length;
118256 };
118257 _2.bd = function kGb(a, b) {
118258 return new Jib(this.a, a, b);
118259 };
118260 _2.Pc = function lGb() {
118261 return Pkb(this.a);
118262 };
118263 _2.Qc = function mGb(a) {
118264 return Qkb(this.a, a);
118265 };
118266 _2.b = 0;
118267 mdb(cle, "NNode/ChangeAwareArrayList", 795);
118268 bcb(269, 1, {}, pGb);
118269 mdb(cle, "NNode/NNodeBuilder", 269);
118270 bcb(1630, 1, {}, KGb);
118271 _2.a = false;
118272 _2.f = Ohe;
118273 _2.j = 0;
118274 mdb(cle, "NetworkSimplex", 1630);
118275 bcb(1294, 1, qie, QGb);
118276 _2.td = function RGb(a) {
118277 PGb(this.a, BD(a, 680), true, false);
118278 };
118279 mdb(ele, "NodeLabelAndSizeCalculator/lambda$0$Type", 1294);
118280 bcb(558, 1, {}, YGb);
118281 _2.b = true;
118282 _2.c = true;
118283 _2.d = true;
118284 _2.e = true;
118285 mdb(ele, "NodeMarginCalculator", 558);
118286 bcb(212, 1, { 212: 1 });
118287 _2.j = false;
118288 _2.k = false;
118289 var oN = mdb(fle, "Cell", 212);
118290 bcb(124, 212, { 124: 1, 212: 1 }, aHb);
118291 _2.Re = function bHb() {
118292 return _Gb(this);
118293 };
118294 _2.Se = function cHb() {
118295 var a;
118296 a = this.n;
118297 return this.a.a + a.b + a.c;
118298 };
118299 mdb(fle, "AtomicCell", 124);
118300 bcb(232, 22, { 3: 1, 35: 1, 22: 1, 232: 1 }, hHb);
118301 var dHb, eHb, fHb;
118302 var pN = ndb(fle, "ContainerArea", 232, CI, jHb, iHb);
118303 var kHb;
118304 bcb(326, 212, hle);
118305 mdb(fle, "ContainerCell", 326);
118306 bcb(1473, 326, hle, FHb);
118307 _2.Re = function GHb() {
118308 var a;
118309 a = 0;
118310 this.e ? this.b ? a = this.b.b : !!this.a[1][1] && (a = this.a[1][1].Re()) : a = EHb(this, AHb(this, true));
118311 return a > 0 ? a + this.n.d + this.n.a : 0;
118312 };
118313 _2.Se = function HHb() {
118314 var a, b, c2, d, e;
118315 e = 0;
118316 if (this.e) {
118317 this.b ? e = this.b.a : !!this.a[1][1] && (e = this.a[1][1].Se());
118318 } else if (this.g) {
118319 e = EHb(this, yHb(this, null, true));
118320 } else {
118321 for (b = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), c2 = 0, d = b.length; c2 < d; ++c2) {
118322 a = b[c2];
118323 e = $wnd.Math.max(e, EHb(this, yHb(this, a, true)));
118324 }
118325 }
118326 return e > 0 ? e + this.n.b + this.n.c : 0;
118327 };
118328 _2.Te = function IHb() {
118329 var a, b, c2, d, e;
118330 if (this.g) {
118331 a = yHb(this, null, false);
118332 for (c2 = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), d = 0, e = c2.length; d < e; ++d) {
118333 b = c2[d];
118334 wHb(this, b, a);
118335 }
118336 } else {
118337 for (c2 = (gHb(), OC(GC(pN, 1), Kie, 232, 0, [dHb, eHb, fHb])), d = 0, e = c2.length; d < e; ++d) {
118338 b = c2[d];
118339 a = yHb(this, b, false);
118340 wHb(this, b, a);
118341 }
118342 }
118343 };
118344 _2.Ue = function JHb() {
118345 var a, b, c2, d;
118346 b = this.i;
118347 a = this.n;
118348 d = AHb(this, false);
118349 uHb(this, (gHb(), dHb), b.d + a.d, d);
118350 uHb(this, fHb, b.d + b.a - a.a - d[2], d);
118351 c2 = b.a - a.d - a.a;
118352 if (d[0] > 0) {
118353 d[0] += this.d;
118354 c2 -= d[0];
118355 }
118356 if (d[2] > 0) {
118357 d[2] += this.d;
118358 c2 -= d[2];
118359 }
118360 this.c.a = $wnd.Math.max(0, c2);
118361 this.c.d = b.d + a.d + (this.c.a - c2) / 2;
118362 d[1] = $wnd.Math.max(d[1], c2);
118363 uHb(this, eHb, b.d + a.d + d[0] - (d[1] - c2) / 2, d);
118364 };
118365 _2.b = null;
118366 _2.d = 0;
118367 _2.e = false;
118368 _2.f = false;
118369 _2.g = false;
118370 var rHb = 0, sHb = 0;
118371 mdb(fle, "GridContainerCell", 1473);
118372 bcb(461, 22, { 3: 1, 35: 1, 22: 1, 461: 1 }, OHb);
118373 var KHb, LHb, MHb;
118374 var sN = ndb(fle, "HorizontalLabelAlignment", 461, CI, QHb, PHb);
118375 var RHb;
118376 bcb(306, 212, { 212: 1, 306: 1 }, aIb, bIb, cIb);
118377 _2.Re = function dIb() {
118378 return YHb(this);
118379 };
118380 _2.Se = function eIb() {
118381 return ZHb(this);
118382 };
118383 _2.a = 0;
118384 _2.c = false;
118385 var tN = mdb(fle, "LabelCell", 306);
118386 bcb(244, 326, { 212: 1, 326: 1, 244: 1 }, mIb);
118387 _2.Re = function nIb() {
118388 return fIb(this);
118389 };
118390 _2.Se = function oIb() {
118391 return gIb(this);
118392 };
118393 _2.Te = function rIb() {
118394 hIb(this);
118395 };
118396 _2.Ue = function sIb() {
118397 iIb(this);
118398 };
118399 _2.b = 0;
118400 _2.c = 0;
118401 _2.d = false;
118402 mdb(fle, "StripContainerCell", 244);
118403 bcb(1626, 1, Oie, tIb);
118404 _2.Mb = function uIb(a) {
118405 return pIb(BD(a, 212));
118406 };
118407 mdb(fle, "StripContainerCell/lambda$0$Type", 1626);
118408 bcb(1627, 1, {}, vIb);
118409 _2.Fe = function wIb(a) {
118410 return BD(a, 212).Se();
118411 };
118412 mdb(fle, "StripContainerCell/lambda$1$Type", 1627);
118413 bcb(1628, 1, Oie, xIb);
118414 _2.Mb = function yIb(a) {
118415 return qIb(BD(a, 212));
118416 };
118417 mdb(fle, "StripContainerCell/lambda$2$Type", 1628);
118418 bcb(1629, 1, {}, zIb);
118419 _2.Fe = function AIb(a) {
118420 return BD(a, 212).Re();
118421 };
118422 mdb(fle, "StripContainerCell/lambda$3$Type", 1629);
118423 bcb(462, 22, { 3: 1, 35: 1, 22: 1, 462: 1 }, FIb);
118424 var BIb, CIb, DIb;
118425 var zN = ndb(fle, "VerticalLabelAlignment", 462, CI, HIb, GIb);
118426 var IIb;
118427 bcb(789, 1, {}, LIb);
118428 _2.c = 0;
118429 _2.d = 0;
118430 _2.k = 0;
118431 _2.s = 0;
118432 _2.t = 0;
118433 _2.v = false;
118434 _2.w = 0;
118435 _2.D = false;
118436 mdb(nle, "NodeContext", 789);
118437 bcb(1471, 1, Dke, OIb);
118438 _2.ue = function PIb(a, b) {
118439 return NIb(BD(a, 61), BD(b, 61));
118440 };
118441 _2.Fb = function QIb(a) {
118442 return this === a;
118443 };
118444 _2.ve = function RIb() {
118445 return new tpb(this);
118446 };
118447 mdb(nle, "NodeContext/0methodref$comparePortSides$Type", 1471);
118448 bcb(1472, 1, Dke, SIb);
118449 _2.ue = function TIb(a, b) {
118450 return MIb(BD(a, 111), BD(b, 111));
118451 };
118452 _2.Fb = function UIb(a) {
118453 return this === a;
118454 };
118455 _2.ve = function VIb() {
118456 return new tpb(this);
118457 };
118458 mdb(nle, "NodeContext/1methodref$comparePortContexts$Type", 1472);
118459 bcb(159, 22, { 3: 1, 35: 1, 22: 1, 159: 1 }, tJb);
118460 var WIb, XIb, YIb, ZIb, $Ib, _Ib, aJb, bJb, cJb, dJb, eJb, fJb, gJb, hJb, iJb, jJb, kJb, lJb, mJb, nJb, oJb, pJb;
118461 var DN = ndb(nle, "NodeLabelLocation", 159, CI, wJb, vJb);
118462 var xJb;
118463 bcb(111, 1, { 111: 1 }, AJb);
118464 _2.a = false;
118465 mdb(nle, "PortContext", 111);
118466 bcb(1476, 1, qie, TJb);
118467 _2.td = function UJb(a) {
118468 WHb(BD(a, 306));
118469 };
118470 mdb(qle, rle, 1476);
118471 bcb(1477, 1, Oie, VJb);
118472 _2.Mb = function WJb(a) {
118473 return !!BD(a, 111).c;
118474 };
118475 mdb(qle, sle, 1477);
118476 bcb(1478, 1, qie, XJb);
118477 _2.td = function YJb(a) {
118478 WHb(BD(a, 111).c);
118479 };
118480 mdb(qle, "LabelPlacer/lambda$2$Type", 1478);
118481 var ZJb;
118482 bcb(1475, 1, qie, fKb);
118483 _2.td = function gKb(a) {
118484 $Jb();
118485 zJb(BD(a, 111));
118486 };
118487 mdb(qle, "NodeLabelAndSizeUtilities/lambda$0$Type", 1475);
118488 bcb(790, 1, qie, mKb);
118489 _2.td = function nKb(a) {
118490 kKb(this.b, this.c, this.a, BD(a, 181));
118491 };
118492 _2.a = false;
118493 _2.c = false;
118494 mdb(qle, "NodeLabelCellCreator/lambda$0$Type", 790);
118495 bcb(1474, 1, qie, tKb);
118496 _2.td = function uKb(a) {
118497 sKb(this.a, BD(a, 181));
118498 };
118499 mdb(qle, "PortContextCreator/lambda$0$Type", 1474);
118500 var BKb;
118501 bcb(1829, 1, {}, VKb);
118502 mdb(ule, "GreedyRectangleStripOverlapRemover", 1829);
118503 bcb(1830, 1, Dke, XKb);
118504 _2.ue = function YKb(a, b) {
118505 return WKb(BD(a, 222), BD(b, 222));
118506 };
118507 _2.Fb = function ZKb(a) {
118508 return this === a;
118509 };
118510 _2.ve = function $Kb() {
118511 return new tpb(this);
118512 };
118513 mdb(ule, "GreedyRectangleStripOverlapRemover/0methodref$compareByYCoordinate$Type", 1830);
118514 bcb(1786, 1, {}, fLb);
118515 _2.a = 5;
118516 _2.e = 0;
118517 mdb(ule, "RectangleStripOverlapRemover", 1786);
118518 bcb(1787, 1, Dke, jLb);
118519 _2.ue = function kLb(a, b) {
118520 return gLb(BD(a, 222), BD(b, 222));
118521 };
118522 _2.Fb = function lLb(a) {
118523 return this === a;
118524 };
118525 _2.ve = function mLb() {
118526 return new tpb(this);
118527 };
118528 mdb(ule, "RectangleStripOverlapRemover/0methodref$compareLeftRectangleBorders$Type", 1787);
118529 bcb(1789, 1, Dke, nLb);
118530 _2.ue = function oLb(a, b) {
118531 return hLb(BD(a, 222), BD(b, 222));
118532 };
118533 _2.Fb = function pLb(a) {
118534 return this === a;
118535 };
118536 _2.ve = function qLb() {
118537 return new tpb(this);
118538 };
118539 mdb(ule, "RectangleStripOverlapRemover/1methodref$compareRightRectangleBorders$Type", 1789);
118540 bcb(406, 22, { 3: 1, 35: 1, 22: 1, 406: 1 }, wLb);
118541 var rLb, sLb, tLb, uLb;
118542 var PN = ndb(ule, "RectangleStripOverlapRemover/OverlapRemovalDirection", 406, CI, yLb, xLb);
118543 var zLb;
118544 bcb(222, 1, { 222: 1 }, BLb);
118545 mdb(ule, "RectangleStripOverlapRemover/RectangleNode", 222);
118546 bcb(1788, 1, qie, CLb);
118547 _2.td = function DLb(a) {
118548 aLb(this.a, BD(a, 222));
118549 };
118550 mdb(ule, "RectangleStripOverlapRemover/lambda$1$Type", 1788);
118551 bcb(1304, 1, Dke, GLb);
118552 _2.ue = function HLb(a, b) {
118553 return FLb(BD(a, 167), BD(b, 167));
118554 };
118555 _2.Fb = function ILb(a) {
118556 return this === a;
118557 };
118558 _2.ve = function JLb() {
118559 return new tpb(this);
118560 };
118561 mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator", 1304);
118562 bcb(1307, 1, {}, KLb);
118563 _2.Kb = function LLb(a) {
118564 return BD(a, 324).a;
118565 };
118566 mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$0$Type", 1307);
118567 bcb(1308, 1, Oie, MLb);
118568 _2.Mb = function NLb(a) {
118569 return BD(a, 323).a;
118570 };
118571 mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$1$Type", 1308);
118572 bcb(1309, 1, Oie, OLb);
118573 _2.Mb = function PLb(a) {
118574 return BD(a, 323).a;
118575 };
118576 mdb(wle, "PolyominoCompactor/CornerCasesGreaterThanRestComparator/lambda$2$Type", 1309);
118577 bcb(1302, 1, Dke, RLb);
118578 _2.ue = function SLb(a, b) {
118579 return QLb(BD(a, 167), BD(b, 167));
118580 };
118581 _2.Fb = function TLb(a) {
118582 return this === a;
118583 };
118584 _2.ve = function ULb() {
118585 return new tpb(this);
118586 };
118587 mdb(wle, "PolyominoCompactor/MinNumOfExtensionDirectionsComparator", 1302);
118588 bcb(1305, 1, {}, VLb);
118589 _2.Kb = function WLb(a) {
118590 return BD(a, 324).a;
118591 };
118592 mdb(wle, "PolyominoCompactor/MinNumOfExtensionDirectionsComparator/lambda$0$Type", 1305);
118593 bcb(767, 1, Dke, YLb);
118594 _2.ue = function ZLb(a, b) {
118595 return XLb(BD(a, 167), BD(b, 167));
118596 };
118597 _2.Fb = function $Lb(a) {
118598 return this === a;
118599 };
118600 _2.ve = function _Lb() {
118601 return new tpb(this);
118602 };
118603 mdb(wle, "PolyominoCompactor/MinNumOfExtensionsComparator", 767);
118604 bcb(1300, 1, Dke, bMb);
118605 _2.ue = function cMb(a, b) {
118606 return aMb(BD(a, 321), BD(b, 321));
118607 };
118608 _2.Fb = function dMb(a) {
118609 return this === a;
118610 };
118611 _2.ve = function eMb() {
118612 return new tpb(this);
118613 };
118614 mdb(wle, "PolyominoCompactor/MinPerimeterComparator", 1300);
118615 bcb(1301, 1, Dke, gMb);
118616 _2.ue = function hMb(a, b) {
118617 return fMb(BD(a, 321), BD(b, 321));
118618 };
118619 _2.Fb = function iMb(a) {
118620 return this === a;
118621 };
118622 _2.ve = function jMb() {
118623 return new tpb(this);
118624 };
118625 mdb(wle, "PolyominoCompactor/MinPerimeterComparatorWithShape", 1301);
118626 bcb(1303, 1, Dke, lMb);
118627 _2.ue = function mMb(a, b) {
118628 return kMb(BD(a, 167), BD(b, 167));
118629 };
118630 _2.Fb = function nMb(a) {
118631 return this === a;
118632 };
118633 _2.ve = function oMb() {
118634 return new tpb(this);
118635 };
118636 mdb(wle, "PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator", 1303);
118637 bcb(1306, 1, {}, pMb);
118638 _2.Kb = function qMb(a) {
118639 return BD(a, 324).a;
118640 };
118641 mdb(wle, "PolyominoCompactor/SingleExtensionSideGreaterThanRestComparator/lambda$0$Type", 1306);
118642 bcb(777, 1, {}, tMb);
118643 _2.Ce = function uMb(a, b) {
118644 return sMb(this, BD(a, 46), BD(b, 167));
118645 };
118646 mdb(wle, "SuccessorCombination", 777);
118647 bcb(644, 1, {}, wMb);
118648 _2.Ce = function xMb(a, b) {
118649 var c2;
118650 return vMb((c2 = BD(a, 46), BD(b, 167), c2));
118651 };
118652 mdb(wle, "SuccessorJitter", 644);
118653 bcb(643, 1, {}, zMb);
118654 _2.Ce = function AMb(a, b) {
118655 var c2;
118656 return yMb((c2 = BD(a, 46), BD(b, 167), c2));
118657 };
118658 mdb(wle, "SuccessorLineByLine", 643);
118659 bcb(568, 1, {}, CMb);
118660 _2.Ce = function DMb(a, b) {
118661 var c2;
118662 return BMb((c2 = BD(a, 46), BD(b, 167), c2));
118663 };
118664 mdb(wle, "SuccessorManhattan", 568);
118665 bcb(1356, 1, {}, FMb);
118666 _2.Ce = function GMb(a, b) {
118667 var c2;
118668 return EMb((c2 = BD(a, 46), BD(b, 167), c2));
118669 };
118670 mdb(wle, "SuccessorMaxNormWindingInMathPosSense", 1356);
118671 bcb(400, 1, {}, JMb);
118672 _2.Ce = function KMb(a, b) {
118673 return HMb(this, a, b);
118674 };
118675 _2.c = false;
118676 _2.d = false;
118677 _2.e = false;
118678 _2.f = false;
118679 mdb(wle, "SuccessorQuadrantsGeneric", 400);
118680 bcb(1357, 1, {}, LMb);
118681 _2.Kb = function MMb(a) {
118682 return BD(a, 324).a;
118683 };
118684 mdb(wle, "SuccessorQuadrantsGeneric/lambda$0$Type", 1357);
118685 bcb(323, 22, { 3: 1, 35: 1, 22: 1, 323: 1 }, SMb);
118686 _2.a = false;
118687 var NMb, OMb, PMb, QMb;
118688 var jO = ndb(Ble, Cle, 323, CI, UMb, TMb);
118689 var VMb;
118690 bcb(1298, 1, {});
118691 _2.Ib = function bNb() {
118692 var a, b, c2, d, e, f2;
118693 c2 = " ";
118694 a = meb(0);
118695 for (e = 0; e < this.o; e++) {
118696 c2 += "" + a.a;
118697 a = meb(XMb(a.a));
118698 }
118699 c2 += "\n";
118700 a = meb(0);
118701 for (f2 = 0; f2 < this.p; f2++) {
118702 c2 += "" + a.a;
118703 a = meb(XMb(a.a));
118704 for (d = 0; d < this.o; d++) {
118705 b = _Mb(this, d, f2);
118706 ybb(b, 0) == 0 ? c2 += "_" : ybb(b, 1) == 0 ? c2 += "X" : c2 += "0";
118707 }
118708 c2 += "\n";
118709 }
118710 return qfb(c2, 0, c2.length - 1);
118711 };
118712 _2.o = 0;
118713 _2.p = 0;
118714 mdb(Ble, "TwoBitGrid", 1298);
118715 bcb(321, 1298, { 321: 1 }, pNb);
118716 _2.j = 0;
118717 _2.k = 0;
118718 mdb(Ble, "PlanarGrid", 321);
118719 bcb(167, 321, { 321: 1, 167: 1 });
118720 _2.g = 0;
118721 _2.i = 0;
118722 mdb(Ble, "Polyomino", 167);
118723 var P3 = odb(Hle, Ile);
118724 bcb(134, 1, Jle, zNb);
118725 _2.Ye = function DNb(a, b) {
118726 return xNb(this, a, b);
118727 };
118728 _2.Ve = function ANb() {
118729 return uNb(this);
118730 };
118731 _2.We = function BNb(a) {
118732 return vNb(this, a);
118733 };
118734 _2.Xe = function CNb(a) {
118735 return wNb(this, a);
118736 };
118737 mdb(Hle, "MapPropertyHolder", 134);
118738 bcb(1299, 134, Jle, ENb);
118739 mdb(Ble, "Polyominoes", 1299);
118740 var FNb = false, GNb, HNb;
118741 bcb(1766, 1, qie, PNb);
118742 _2.td = function QNb(a) {
118743 JNb(BD(a, 221));
118744 };
118745 mdb(Kle, "DepthFirstCompaction/0methodref$compactTree$Type", 1766);
118746 bcb(810, 1, qie, RNb);
118747 _2.td = function SNb(a) {
118748 MNb(this.a, BD(a, 221));
118749 };
118750 mdb(Kle, "DepthFirstCompaction/lambda$1$Type", 810);
118751 bcb(1767, 1, qie, TNb);
118752 _2.td = function UNb(a) {
118753 NNb(this.a, this.b, this.c, BD(a, 221));
118754 };
118755 mdb(Kle, "DepthFirstCompaction/lambda$2$Type", 1767);
118756 var VNb, WNb;
118757 bcb(65, 1, { 65: 1 }, aOb);
118758 mdb(Kle, "Node", 65);
118759 bcb(1250, 1, {}, dOb);
118760 mdb(Kle, "ScanlineOverlapCheck", 1250);
118761 bcb(1251, 1, { 679: 1 }, hOb);
118762 _2.Ke = function iOb(a) {
118763 fOb(this, BD(a, 440));
118764 };
118765 mdb(Kle, "ScanlineOverlapCheck/OverlapsScanlineHandler", 1251);
118766 bcb(1252, 1, Dke, kOb);
118767 _2.ue = function lOb(a, b) {
118768 return jOb(BD(a, 65), BD(b, 65));
118769 };
118770 _2.Fb = function mOb(a) {
118771 return this === a;
118772 };
118773 _2.ve = function nOb() {
118774 return new tpb(this);
118775 };
118776 mdb(Kle, "ScanlineOverlapCheck/OverlapsScanlineHandler/lambda$0$Type", 1252);
118777 bcb(440, 1, { 440: 1 }, oOb);
118778 _2.a = false;
118779 mdb(Kle, "ScanlineOverlapCheck/Timestamp", 440);
118780 bcb(1253, 1, Dke, pOb);
118781 _2.ue = function qOb(a, b) {
118782 return eOb(BD(a, 440), BD(b, 440));
118783 };
118784 _2.Fb = function rOb(a) {
118785 return this === a;
118786 };
118787 _2.ve = function sOb() {
118788 return new tpb(this);
118789 };
118790 mdb(Kle, "ScanlineOverlapCheck/lambda$0$Type", 1253);
118791 bcb(550, 1, {}, tOb);
118792 mdb(Lle, "SVGImage", 550);
118793 bcb(324, 1, { 324: 1 }, uOb);
118794 _2.Ib = function vOb() {
118795 return "(" + this.a + She + this.b + She + this.c + ")";
118796 };
118797 mdb(Lle, "UniqueTriple", 324);
118798 bcb(209, 1, Mle);
118799 mdb(Nle, "AbstractLayoutProvider", 209);
118800 bcb(1132, 209, Mle, yOb);
118801 _2.Ze = function zOb(a, b) {
118802 var c2, d, e, f2;
118803 Odd(b, Ole, 1);
118804 this.a = Edb(ED(hkd(a, (CPb(), BPb))));
118805 if (ikd(a, rPb)) {
118806 e = GD(hkd(a, rPb));
118807 c2 = h4c(n4c(), e);
118808 if (c2) {
118809 d = BD(hgd(c2.f), 209);
118810 d.Ze(a, Udd(b, 1));
118811 }
118812 }
118813 f2 = new AQb(this.a);
118814 this.b = yQb(f2, a);
118815 switch (BD(hkd(a, (nPb(), jPb)), 481).g) {
118816 case 0:
118817 BOb(new FOb(), this.b);
118818 jkd(a, uPb, vNb(this.b, uPb));
118819 break;
118820 default:
118821 Zfb();
118822 }
118823 qQb(f2);
118824 jkd(a, tPb, this.b);
118825 Qdd(b);
118826 };
118827 _2.a = 0;
118828 mdb(Ple, "DisCoLayoutProvider", 1132);
118829 bcb(1244, 1, {}, FOb);
118830 _2.c = false;
118831 _2.e = 0;
118832 _2.f = 0;
118833 mdb(Ple, "DisCoPolyominoCompactor", 1244);
118834 bcb(561, 1, { 561: 1 }, MOb);
118835 _2.b = true;
118836 mdb(Qle, "DCComponent", 561);
118837 bcb(394, 22, { 3: 1, 35: 1, 22: 1, 394: 1 }, SOb);
118838 _2.a = false;
118839 var NOb, OOb, POb, QOb;
118840 var CO = ndb(Qle, "DCDirection", 394, CI, UOb, TOb);
118841 var VOb;
118842 bcb(266, 134, { 3: 1, 266: 1, 94: 1, 134: 1 }, XOb);
118843 mdb(Qle, "DCElement", 266);
118844 bcb(395, 1, { 395: 1 }, ZOb);
118845 _2.c = 0;
118846 mdb(Qle, "DCExtension", 395);
118847 bcb(755, 134, Jle, aPb);
118848 mdb(Qle, "DCGraph", 755);
118849 bcb(481, 22, { 3: 1, 35: 1, 22: 1, 481: 1 }, dPb);
118850 var bPb;
118851 var GO = ndb(Rle, Sle, 481, CI, fPb, ePb);
118852 var gPb;
118853 bcb(854, 1, ale, oPb);
118854 _2.Qe = function pPb(a) {
118855 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tle), Xle), "Connected Components Compaction Strategy"), "Strategy for packing different connected components in order to save space and enhance readability of a graph."), kPb), (_5c(), V5c)), GO), pqb((N5c(), L5c)))));
118856 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Ule), Xle), "Connected Components Layout Algorithm"), "A layout algorithm that is to be applied to each connected component before the components themselves are compacted. If unspecified, the positions of the components' nodes are not altered."), Z5c), ZI), pqb(L5c))));
118857 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Vle), "debug"), "DCGraph"), "Access to the DCGraph is intended for the debug view,"), Y5c), SI), pqb(L5c))));
118858 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Wle), "debug"), "List of Polyominoes"), "Access to the polyominoes is intended for the debug view,"), Y5c), SI), pqb(L5c))));
118859 DPb((new EPb(), a));
118860 };
118861 var iPb, jPb, kPb, lPb, mPb;
118862 mdb(Rle, "DisCoMetaDataProvider", 854);
118863 bcb(998, 1, ale, EPb);
118864 _2.Qe = function FPb(a) {
118865 DPb(a);
118866 };
118867 var qPb, rPb, sPb, tPb, uPb, vPb, wPb, xPb, yPb, zPb, APb, BPb;
118868 mdb(Rle, "DisCoOptions", 998);
118869 bcb(999, 1, {}, GPb);
118870 _2.$e = function HPb() {
118871 var a;
118872 return a = new yOb(), a;
118873 };
118874 _2._e = function IPb(a) {
118875 };
118876 mdb(Rle, "DisCoOptions/DiscoFactory", 999);
118877 bcb(562, 167, { 321: 1, 167: 1, 562: 1 }, MPb);
118878 _2.a = 0;
118879 _2.b = 0;
118880 _2.c = 0;
118881 _2.d = 0;
118882 mdb("org.eclipse.elk.alg.disco.structures", "DCPolyomino", 562);
118883 var NPb, OPb, PPb;
118884 bcb(1268, 1, Oie, aQb);
118885 _2.Mb = function bQb(a) {
118886 return _Pb(a);
118887 };
118888 mdb(bme, "ElkGraphComponentsProcessor/lambda$0$Type", 1268);
118889 bcb(1269, 1, {}, cQb);
118890 _2.Kb = function dQb(a) {
118891 return QPb(), jtd(BD(a, 79));
118892 };
118893 mdb(bme, "ElkGraphComponentsProcessor/lambda$1$Type", 1269);
118894 bcb(1270, 1, Oie, eQb);
118895 _2.Mb = function fQb(a) {
118896 return WPb(BD(a, 79));
118897 };
118898 mdb(bme, "ElkGraphComponentsProcessor/lambda$2$Type", 1270);
118899 bcb(1271, 1, {}, gQb);
118900 _2.Kb = function hQb(a) {
118901 return QPb(), ltd(BD(a, 79));
118902 };
118903 mdb(bme, "ElkGraphComponentsProcessor/lambda$3$Type", 1271);
118904 bcb(1272, 1, Oie, iQb);
118905 _2.Mb = function jQb(a) {
118906 return XPb(BD(a, 79));
118907 };
118908 mdb(bme, "ElkGraphComponentsProcessor/lambda$4$Type", 1272);
118909 bcb(1273, 1, Oie, kQb);
118910 _2.Mb = function lQb(a) {
118911 return YPb(this.a, BD(a, 79));
118912 };
118913 mdb(bme, "ElkGraphComponentsProcessor/lambda$5$Type", 1273);
118914 bcb(1274, 1, {}, mQb);
118915 _2.Kb = function nQb(a) {
118916 return ZPb(this.a, BD(a, 79));
118917 };
118918 mdb(bme, "ElkGraphComponentsProcessor/lambda$6$Type", 1274);
118919 bcb(1241, 1, {}, AQb);
118920 _2.a = 0;
118921 mdb(bme, "ElkGraphTransformer", 1241);
118922 bcb(1242, 1, {}, CQb);
118923 _2.Od = function DQb(a, b) {
118924 BQb(this, BD(a, 160), BD(b, 266));
118925 };
118926 mdb(bme, "ElkGraphTransformer/OffsetApplier", 1242);
118927 bcb(1243, 1, qie, FQb);
118928 _2.td = function GQb(a) {
118929 EQb(this, BD(a, 8));
118930 };
118931 mdb(bme, "ElkGraphTransformer/OffsetApplier/OffSetToChainApplier", 1243);
118932 bcb(753, 1, {}, MQb);
118933 mdb(gme, hme, 753);
118934 bcb(1232, 1, Dke, OQb);
118935 _2.ue = function PQb(a, b) {
118936 return NQb(BD(a, 231), BD(b, 231));
118937 };
118938 _2.Fb = function QQb(a) {
118939 return this === a;
118940 };
118941 _2.ve = function RQb() {
118942 return new tpb(this);
118943 };
118944 mdb(gme, ime, 1232);
118945 bcb(740, 209, Mle, ZQb);
118946 _2.Ze = function $Qb(a, b) {
118947 WQb(this, a, b);
118948 };
118949 mdb(gme, "ForceLayoutProvider", 740);
118950 bcb(357, 134, { 3: 1, 357: 1, 94: 1, 134: 1 });
118951 mdb(jme, "FParticle", 357);
118952 bcb(559, 357, { 3: 1, 559: 1, 357: 1, 94: 1, 134: 1 }, aRb);
118953 _2.Ib = function bRb() {
118954 var a;
118955 if (this.a) {
118956 a = Jkb(this.a.a, this, 0);
118957 return a >= 0 ? "b" + a + "[" + fRb(this.a) + "]" : "b[" + fRb(this.a) + "]";
118958 }
118959 return "b_" + FCb(this);
118960 };
118961 mdb(jme, "FBendpoint", 559);
118962 bcb(282, 134, { 3: 1, 282: 1, 94: 1, 134: 1 }, gRb);
118963 _2.Ib = function hRb() {
118964 return fRb(this);
118965 };
118966 mdb(jme, "FEdge", 282);
118967 bcb(231, 134, { 3: 1, 231: 1, 94: 1, 134: 1 }, kRb);
118968 var $O = mdb(jme, "FGraph", 231);
118969 bcb(447, 357, { 3: 1, 447: 1, 357: 1, 94: 1, 134: 1 }, mRb);
118970 _2.Ib = function nRb() {
118971 return this.b == null || this.b.length == 0 ? "l[" + fRb(this.a) + "]" : "l_" + this.b;
118972 };
118973 mdb(jme, "FLabel", 447);
118974 bcb(144, 357, { 3: 1, 144: 1, 357: 1, 94: 1, 134: 1 }, pRb);
118975 _2.Ib = function qRb() {
118976 return oRb(this);
118977 };
118978 _2.b = 0;
118979 mdb(jme, "FNode", 144);
118980 bcb(2003, 1, {});
118981 _2.bf = function vRb(a) {
118982 rRb(this, a);
118983 };
118984 _2.cf = function wRb() {
118985 sRb(this);
118986 };
118987 _2.d = 0;
118988 mdb(lme, "AbstractForceModel", 2003);
118989 bcb(631, 2003, { 631: 1 }, xRb);
118990 _2.af = function zRb(a, b) {
118991 var c2, d, e, f2, g;
118992 uRb(this.f, a, b);
118993 e = c7c(R6c(b.d), a.d);
118994 g = $wnd.Math.sqrt(e.a * e.a + e.b * e.b);
118995 d = $wnd.Math.max(0, g - U6c(a.e) / 2 - U6c(b.e) / 2);
118996 c2 = jRb(this.e, a, b);
118997 c2 > 0 ? f2 = -yRb(d, this.c) * c2 : f2 = CRb(d, this.b) * BD(vNb(a, (wSb(), oSb)), 19).a;
118998 Y6c(e, f2 / g);
118999 return e;
119000 };
119001 _2.bf = function ARb(a) {
119002 rRb(this, a);
119003 this.a = BD(vNb(a, (wSb(), eSb)), 19).a;
119004 this.c = Edb(ED(vNb(a, uSb)));
119005 this.b = Edb(ED(vNb(a, qSb)));
119006 };
119007 _2.df = function BRb(a) {
119008 return a < this.a;
119009 };
119010 _2.a = 0;
119011 _2.b = 0;
119012 _2.c = 0;
119013 mdb(lme, "EadesModel", 631);
119014 bcb(632, 2003, { 632: 1 }, DRb);
119015 _2.af = function FRb(a, b) {
119016 var c2, d, e, f2, g;
119017 uRb(this.f, a, b);
119018 e = c7c(R6c(b.d), a.d);
119019 g = $wnd.Math.sqrt(e.a * e.a + e.b * e.b);
119020 d = $wnd.Math.max(0, g - U6c(a.e) / 2 - U6c(b.e) / 2);
119021 f2 = JRb(d, this.a) * BD(vNb(a, (wSb(), oSb)), 19).a;
119022 c2 = jRb(this.e, a, b);
119023 c2 > 0 && (f2 -= ERb(d, this.a) * c2);
119024 Y6c(e, f2 * this.b / g);
119025 return e;
119026 };
119027 _2.bf = function GRb(a) {
119028 var b, c2, d, e, f2, g, h;
119029 rRb(this, a);
119030 this.b = Edb(ED(vNb(a, (wSb(), vSb))));
119031 this.c = this.b / BD(vNb(a, eSb), 19).a;
119032 d = a.e.c.length;
119033 f2 = 0;
119034 e = 0;
119035 for (h = new olb(a.e); h.a < h.c.c.length; ) {
119036 g = BD(mlb(h), 144);
119037 f2 += g.e.a;
119038 e += g.e.b;
119039 }
119040 b = f2 * e;
119041 c2 = Edb(ED(vNb(a, uSb))) * ple;
119042 this.a = $wnd.Math.sqrt(b / (2 * d)) * c2;
119043 };
119044 _2.cf = function HRb() {
119045 sRb(this);
119046 this.b -= this.c;
119047 };
119048 _2.df = function IRb(a) {
119049 return this.b > 0;
119050 };
119051 _2.a = 0;
119052 _2.b = 0;
119053 _2.c = 0;
119054 mdb(lme, "FruchtermanReingoldModel", 632);
119055 bcb(849, 1, ale, TRb);
119056 _2.Qe = function URb(a) {
119057 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mme), ""), "Force Model"), "Determines the model for force calculation."), MRb), (_5c(), V5c)), gP), pqb((N5c(), L5c)))));
119058 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), nme), ""), "Iterations"), "The number of iterations on the force model."), meb(300)), X5c), JI), pqb(L5c))));
119059 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ome), ""), "Repulsive Power"), "Determines how many bend points are added to the edge; such bend points are regarded as repelling particles in the force model"), meb(0)), X5c), JI), pqb(I5c))));
119060 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), pme), ""), "FR Temperature"), "The temperature is used as a scaling factor for particle displacements."), qme), U5c), BI), pqb(L5c))));
119061 o4c(a, pme, mme, RRb);
119062 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), rme), ""), "Eades Repulsion"), "Factor for repulsive forces in Eades' model."), 5), U5c), BI), pqb(L5c))));
119063 o4c(a, rme, mme, ORb);
119064 xSb((new ySb(), a));
119065 };
119066 var KRb, LRb, MRb, NRb, ORb, PRb, QRb, RRb;
119067 mdb(sme, "ForceMetaDataProvider", 849);
119068 bcb(424, 22, { 3: 1, 35: 1, 22: 1, 424: 1 }, YRb);
119069 var VRb, WRb;
119070 var gP = ndb(sme, "ForceModelStrategy", 424, CI, $Rb, ZRb);
119071 var _Rb;
119072 bcb(988, 1, ale, ySb);
119073 _2.Qe = function zSb(a) {
119074 xSb(a);
119075 };
119076 var bSb, cSb, dSb, eSb, fSb, gSb, hSb, iSb, jSb, kSb, lSb, mSb, nSb, oSb, pSb, qSb, rSb, sSb, tSb, uSb, vSb;
119077 mdb(sme, "ForceOptions", 988);
119078 bcb(989, 1, {}, ASb);
119079 _2.$e = function BSb() {
119080 var a;
119081 return a = new ZQb(), a;
119082 };
119083 _2._e = function CSb(a) {
119084 };
119085 mdb(sme, "ForceOptions/ForceFactory", 989);
119086 var DSb, ESb, FSb, GSb;
119087 bcb(850, 1, ale, PSb);
119088 _2.Qe = function QSb(a) {
119089 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Mme), ""), "Fixed Position"), "Prevent that the node is moved by the layout algorithm."), (Bcb(), false)), (_5c(), T5c)), wI), pqb((N5c(), K5c)))));
119090 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Nme), ""), "Desired Edge Length"), "Either specified for parent nodes or for individual edges, where the latter takes higher precedence."), 100), U5c), BI), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [I5c])))));
119091 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ome), ""), "Layout Dimension"), "Dimensions that are permitted to be altered during layout."), KSb), V5c), oP), pqb(L5c))));
119092 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Pme), ""), "Stress Epsilon"), "Termination criterion for the iterative process."), qme), U5c), BI), pqb(L5c))));
119093 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Qme), ""), "Iteration Limit"), "Maximum number of performed iterations. Takes higher precedence than 'epsilon'."), meb(Ohe)), X5c), JI), pqb(L5c))));
119094 cTb((new dTb(), a));
119095 };
119096 var ISb, JSb, KSb, LSb, MSb, NSb;
119097 mdb(sme, "StressMetaDataProvider", 850);
119098 bcb(992, 1, ale, dTb);
119099 _2.Qe = function eTb(a) {
119100 cTb(a);
119101 };
119102 var RSb, SSb, TSb, USb, VSb, WSb, XSb, YSb, ZSb, $Sb, _Sb, aTb;
119103 mdb(sme, "StressOptions", 992);
119104 bcb(993, 1, {}, fTb);
119105 _2.$e = function gTb() {
119106 var a;
119107 return a = new iTb(), a;
119108 };
119109 _2._e = function hTb(a) {
119110 };
119111 mdb(sme, "StressOptions/StressFactory", 993);
119112 bcb(1128, 209, Mle, iTb);
119113 _2.Ze = function jTb(a, b) {
119114 var c2, d, e, f2, g;
119115 Odd(b, Sme, 1);
119116 Ccb(DD(hkd(a, (bTb(), VSb)))) ? Ccb(DD(hkd(a, _Sb))) || $Cb((c2 = new _Cb((Pgd(), new bhd(a))), c2)) : WQb(new ZQb(), a, Udd(b, 1));
119117 e = TQb(a);
119118 d = LQb(this.a, e);
119119 for (g = d.Kc(); g.Ob(); ) {
119120 f2 = BD(g.Pb(), 231);
119121 if (f2.e.c.length <= 1) {
119122 continue;
119123 }
119124 sTb(this.b, f2);
119125 qTb(this.b);
119126 Hkb(f2.d, new kTb());
119127 }
119128 e = KQb(d);
119129 SQb(e);
119130 Qdd(b);
119131 };
119132 mdb(Ume, "StressLayoutProvider", 1128);
119133 bcb(1129, 1, qie, kTb);
119134 _2.td = function lTb(a) {
119135 lRb(BD(a, 447));
119136 };
119137 mdb(Ume, "StressLayoutProvider/lambda$0$Type", 1129);
119138 bcb(990, 1, {}, tTb);
119139 _2.c = 0;
119140 _2.e = 0;
119141 _2.g = 0;
119142 mdb(Ume, "StressMajorization", 990);
119143 bcb(379, 22, { 3: 1, 35: 1, 22: 1, 379: 1 }, zTb);
119144 var vTb, wTb, xTb;
119145 var oP = ndb(Ume, "StressMajorization/Dimension", 379, CI, BTb, ATb);
119146 var CTb;
119147 bcb(991, 1, Dke, ETb);
119148 _2.ue = function FTb(a, b) {
119149 return uTb(this.a, BD(a, 144), BD(b, 144));
119150 };
119151 _2.Fb = function GTb(a) {
119152 return this === a;
119153 };
119154 _2.ve = function HTb() {
119155 return new tpb(this);
119156 };
119157 mdb(Ume, "StressMajorization/lambda$0$Type", 991);
119158 bcb(1229, 1, {}, PTb);
119159 mdb(Wme, "ElkLayered", 1229);
119160 bcb(1230, 1, qie, STb);
119161 _2.td = function TTb(a) {
119162 QTb(BD(a, 37));
119163 };
119164 mdb(Wme, "ElkLayered/lambda$0$Type", 1230);
119165 bcb(1231, 1, qie, UTb);
119166 _2.td = function VTb(a) {
119167 RTb(this.a, BD(a, 37));
119168 };
119169 mdb(Wme, "ElkLayered/lambda$1$Type", 1231);
119170 bcb(1263, 1, {}, bUb);
119171 var WTb, XTb, YTb;
119172 mdb(Wme, "GraphConfigurator", 1263);
119173 bcb(759, 1, qie, dUb);
119174 _2.td = function eUb(a) {
119175 $Tb(this.a, BD(a, 10));
119176 };
119177 mdb(Wme, "GraphConfigurator/lambda$0$Type", 759);
119178 bcb(760, 1, {}, fUb);
119179 _2.Kb = function gUb(a) {
119180 return ZTb(), new YAb(null, new Kub(BD(a, 29).a, 16));
119181 };
119182 mdb(Wme, "GraphConfigurator/lambda$1$Type", 760);
119183 bcb(761, 1, qie, hUb);
119184 _2.td = function iUb(a) {
119185 $Tb(this.a, BD(a, 10));
119186 };
119187 mdb(Wme, "GraphConfigurator/lambda$2$Type", 761);
119188 bcb(1127, 209, Mle, jUb);
119189 _2.Ze = function kUb(a, b) {
119190 var c2;
119191 c2 = U1b(new a2b(), a);
119192 PD(hkd(a, (Nyc(), axc))) === PD((hbd(), ebd)) ? JTb(this.a, c2, b) : KTb(this.a, c2, b);
119193 z2b(new D2b(), c2);
119194 };
119195 mdb(Wme, "LayeredLayoutProvider", 1127);
119196 bcb(356, 22, { 3: 1, 35: 1, 22: 1, 356: 1 }, rUb);
119197 var lUb, mUb, nUb, oUb, pUb;
119198 var zP = ndb(Wme, "LayeredPhases", 356, CI, tUb, sUb);
119199 var uUb;
119200 bcb(1651, 1, {}, CUb);
119201 _2.i = 0;
119202 var wUb;
119203 mdb(Xme, "ComponentsToCGraphTransformer", 1651);
119204 var hVb;
119205 bcb(1652, 1, {}, DUb);
119206 _2.ef = function EUb(a, b) {
119207 return $wnd.Math.min(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i);
119208 };
119209 _2.ff = function FUb(a, b) {
119210 return $wnd.Math.min(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i);
119211 };
119212 mdb(Xme, "ComponentsToCGraphTransformer/1", 1652);
119213 bcb(81, 1, { 81: 1 });
119214 _2.i = 0;
119215 _2.k = true;
119216 _2.o = Qje;
119217 var IP = mdb(Yme, "CNode", 81);
119218 bcb(460, 81, { 460: 1, 81: 1 }, GUb, HUb);
119219 _2.Ib = function IUb() {
119220 return "";
119221 };
119222 mdb(Xme, "ComponentsToCGraphTransformer/CRectNode", 460);
119223 bcb(1623, 1, {}, VUb);
119224 var JUb, KUb;
119225 mdb(Xme, "OneDimensionalComponentsCompaction", 1623);
119226 bcb(1624, 1, {}, YUb);
119227 _2.Kb = function ZUb(a) {
119228 return WUb(BD(a, 46));
119229 };
119230 _2.Fb = function $Ub(a) {
119231 return this === a;
119232 };
119233 mdb(Xme, "OneDimensionalComponentsCompaction/lambda$0$Type", 1624);
119234 bcb(1625, 1, {}, _Ub);
119235 _2.Kb = function aVb(a) {
119236 return XUb(BD(a, 46));
119237 };
119238 _2.Fb = function bVb(a) {
119239 return this === a;
119240 };
119241 mdb(Xme, "OneDimensionalComponentsCompaction/lambda$1$Type", 1625);
119242 bcb(1654, 1, {}, dVb);
119243 mdb(Yme, "CGraph", 1654);
119244 bcb(189, 1, { 189: 1 }, gVb);
119245 _2.b = 0;
119246 _2.c = 0;
119247 _2.e = 0;
119248 _2.g = true;
119249 _2.i = Qje;
119250 mdb(Yme, "CGroup", 189);
119251 bcb(1653, 1, {}, jVb);
119252 _2.ef = function kVb(a, b) {
119253 return $wnd.Math.max(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i);
119254 };
119255 _2.ff = function lVb(a, b) {
119256 return $wnd.Math.max(a.a != null ? Edb(a.a) : a.c.i, b.a != null ? Edb(b.a) : b.c.i);
119257 };
119258 mdb(Yme, Ike, 1653);
119259 bcb(1655, 1, {}, CVb);
119260 _2.d = false;
119261 var mVb;
119262 var LP = mdb(Yme, Nke, 1655);
119263 bcb(1656, 1, {}, DVb);
119264 _2.Kb = function EVb(a) {
119265 return nVb(), Bcb(), BD(BD(a, 46).a, 81).d.e != 0 ? true : false;
119266 };
119267 _2.Fb = function FVb(a) {
119268 return this === a;
119269 };
119270 mdb(Yme, Oke, 1656);
119271 bcb(823, 1, {}, IVb);
119272 _2.a = false;
119273 _2.b = false;
119274 _2.c = false;
119275 _2.d = false;
119276 mdb(Yme, Pke, 823);
119277 bcb(1825, 1, {}, OVb);
119278 mdb(Zme, Qke, 1825);
119279 var bQ = odb($me, Fke);
119280 bcb(1826, 1, { 369: 1 }, SVb);
119281 _2.Ke = function TVb(a) {
119282 QVb(this, BD(a, 466));
119283 };
119284 mdb(Zme, Rke, 1826);
119285 bcb(1827, 1, Dke, VVb);
119286 _2.ue = function WVb(a, b) {
119287 return UVb(BD(a, 81), BD(b, 81));
119288 };
119289 _2.Fb = function XVb(a) {
119290 return this === a;
119291 };
119292 _2.ve = function YVb() {
119293 return new tpb(this);
119294 };
119295 mdb(Zme, Ske, 1827);
119296 bcb(466, 1, { 466: 1 }, ZVb);
119297 _2.a = false;
119298 mdb(Zme, Tke, 466);
119299 bcb(1828, 1, Dke, $Vb);
119300 _2.ue = function _Vb(a, b) {
119301 return PVb(BD(a, 466), BD(b, 466));
119302 };
119303 _2.Fb = function aWb(a) {
119304 return this === a;
119305 };
119306 _2.ve = function bWb() {
119307 return new tpb(this);
119308 };
119309 mdb(Zme, Uke, 1828);
119310 bcb(140, 1, { 140: 1 }, cWb, dWb);
119311 _2.Fb = function eWb(a) {
119312 var b;
119313 if (a == null) {
119314 return false;
119315 }
119316 if (TP != rb(a)) {
119317 return false;
119318 }
119319 b = BD(a, 140);
119320 return wtb(this.c, b.c) && wtb(this.d, b.d);
119321 };
119322 _2.Hb = function fWb() {
119323 return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [this.c, this.d]));
119324 };
119325 _2.Ib = function gWb() {
119326 return "(" + this.c + She + this.d + (this.a ? "cx" : "") + this.b + ")";
119327 };
119328 _2.a = true;
119329 _2.c = 0;
119330 _2.d = 0;
119331 var TP = mdb($me, "Point", 140);
119332 bcb(405, 22, { 3: 1, 35: 1, 22: 1, 405: 1 }, oWb);
119333 var hWb, iWb, jWb, kWb;
119334 var SP = ndb($me, "Point/Quadrant", 405, CI, sWb, rWb);
119335 var tWb;
119336 bcb(1642, 1, {}, CWb);
119337 _2.b = null;
119338 _2.c = null;
119339 _2.d = null;
119340 _2.e = null;
119341 _2.f = null;
119342 var vWb, wWb, xWb, yWb, zWb;
119343 mdb($me, "RectilinearConvexHull", 1642);
119344 bcb(574, 1, { 369: 1 }, NWb);
119345 _2.Ke = function OWb(a) {
119346 MWb(this, BD(a, 140));
119347 };
119348 _2.b = 0;
119349 var KWb;
119350 mdb($me, "RectilinearConvexHull/MaximalElementsEventHandler", 574);
119351 bcb(1644, 1, Dke, QWb);
119352 _2.ue = function RWb(a, b) {
119353 return PWb(ED(a), ED(b));
119354 };
119355 _2.Fb = function SWb(a) {
119356 return this === a;
119357 };
119358 _2.ve = function TWb() {
119359 return new tpb(this);
119360 };
119361 mdb($me, "RectilinearConvexHull/MaximalElementsEventHandler/lambda$0$Type", 1644);
119362 bcb(1643, 1, { 369: 1 }, VWb);
119363 _2.Ke = function WWb(a) {
119364 UWb(this, BD(a, 140));
119365 };
119366 _2.a = 0;
119367 _2.b = null;
119368 _2.c = null;
119369 _2.d = null;
119370 _2.e = null;
119371 mdb($me, "RectilinearConvexHull/RectangleEventHandler", 1643);
119372 bcb(1645, 1, Dke, XWb);
119373 _2.ue = function YWb(a, b) {
119374 return EWb(BD(a, 140), BD(b, 140));
119375 };
119376 _2.Fb = function ZWb(a) {
119377 return this === a;
119378 };
119379 _2.ve = function $Wb() {
119380 return new tpb(this);
119381 };
119382 mdb($me, "RectilinearConvexHull/lambda$0$Type", 1645);
119383 bcb(1646, 1, Dke, _Wb);
119384 _2.ue = function aXb(a, b) {
119385 return FWb(BD(a, 140), BD(b, 140));
119386 };
119387 _2.Fb = function bXb(a) {
119388 return this === a;
119389 };
119390 _2.ve = function cXb() {
119391 return new tpb(this);
119392 };
119393 mdb($me, "RectilinearConvexHull/lambda$1$Type", 1646);
119394 bcb(1647, 1, Dke, dXb);
119395 _2.ue = function eXb(a, b) {
119396 return GWb(BD(a, 140), BD(b, 140));
119397 };
119398 _2.Fb = function fXb(a) {
119399 return this === a;
119400 };
119401 _2.ve = function gXb() {
119402 return new tpb(this);
119403 };
119404 mdb($me, "RectilinearConvexHull/lambda$2$Type", 1647);
119405 bcb(1648, 1, Dke, hXb);
119406 _2.ue = function iXb(a, b) {
119407 return HWb(BD(a, 140), BD(b, 140));
119408 };
119409 _2.Fb = function jXb(a) {
119410 return this === a;
119411 };
119412 _2.ve = function kXb() {
119413 return new tpb(this);
119414 };
119415 mdb($me, "RectilinearConvexHull/lambda$3$Type", 1648);
119416 bcb(1649, 1, Dke, lXb);
119417 _2.ue = function mXb(a, b) {
119418 return IWb(BD(a, 140), BD(b, 140));
119419 };
119420 _2.Fb = function nXb(a) {
119421 return this === a;
119422 };
119423 _2.ve = function oXb() {
119424 return new tpb(this);
119425 };
119426 mdb($me, "RectilinearConvexHull/lambda$4$Type", 1649);
119427 bcb(1650, 1, {}, qXb);
119428 mdb($me, "Scanline", 1650);
119429 bcb(2005, 1, {});
119430 mdb(_me, "AbstractGraphPlacer", 2005);
119431 bcb(325, 1, { 325: 1 }, AXb);
119432 _2.mf = function BXb(a) {
119433 if (this.nf(a)) {
119434 Rc(this.b, BD(vNb(a, (wtc(), Esc)), 21), a);
119435 return true;
119436 } else {
119437 return false;
119438 }
119439 };
119440 _2.nf = function CXb(a) {
119441 var b, c2, d, e;
119442 b = BD(vNb(a, (wtc(), Esc)), 21);
119443 e = BD(Qc(wXb, b), 21);
119444 for (d = e.Kc(); d.Ob(); ) {
119445 c2 = BD(d.Pb(), 21);
119446 if (!BD(Qc(this.b, c2), 15).dc()) {
119447 return false;
119448 }
119449 }
119450 return true;
119451 };
119452 var wXb;
119453 mdb(_me, "ComponentGroup", 325);
119454 bcb(765, 2005, {}, HXb);
119455 _2.of = function IXb(a) {
119456 var b, c2;
119457 for (c2 = new olb(this.a); c2.a < c2.c.c.length; ) {
119458 b = BD(mlb(c2), 325);
119459 if (b.mf(a)) {
119460 return;
119461 }
119462 }
119463 Ekb(this.a, new AXb(a));
119464 };
119465 _2.lf = function JXb(a, b) {
119466 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2;
119467 this.a.c = KC(SI, Uhe, 1, 0, 5, 1);
119468 b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
119469 if (a.dc()) {
119470 b.f.a = 0;
119471 b.f.b = 0;
119472 return;
119473 }
119474 g = BD(a.Xb(0), 37);
119475 tNb(b, g);
119476 for (e = a.Kc(); e.Ob(); ) {
119477 d = BD(e.Pb(), 37);
119478 this.of(d);
119479 }
119480 o2 = new d7c();
119481 f2 = Edb(ED(vNb(g, (Nyc(), kyc))));
119482 for (j = new olb(this.a); j.a < j.c.c.length; ) {
119483 h = BD(mlb(j), 325);
119484 k = DXb(h, f2);
119485 vXb(Uc(h.b), o2.a, o2.b);
119486 o2.a += k.a;
119487 o2.b += k.b;
119488 }
119489 b.f.a = o2.a - f2;
119490 b.f.b = o2.b - f2;
119491 if (Ccb(DD(vNb(g, qwc))) && PD(vNb(g, Swc)) === PD((Aad(), wad))) {
119492 for (n = a.Kc(); n.Ob(); ) {
119493 l = BD(n.Pb(), 37);
119494 uXb(l, l.c.a, l.c.b);
119495 }
119496 c2 = new gYb();
119497 YXb(c2, a, f2);
119498 for (m = a.Kc(); m.Ob(); ) {
119499 l = BD(m.Pb(), 37);
119500 P6c(X6c(l.c), c2.e);
119501 }
119502 P6c(X6c(b.f), c2.a);
119503 }
119504 for (i3 = new olb(this.a); i3.a < i3.c.c.length; ) {
119505 h = BD(mlb(i3), 325);
119506 tXb(b, Uc(h.b));
119507 }
119508 };
119509 mdb(_me, "ComponentGroupGraphPlacer", 765);
119510 bcb(1293, 765, {}, LXb);
119511 _2.of = function MXb(a) {
119512 KXb(this, a);
119513 };
119514 _2.lf = function NXb(a, b) {
119515 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4;
119516 this.a.c = KC(SI, Uhe, 1, 0, 5, 1);
119517 b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
119518 if (a.dc()) {
119519 b.f.a = 0;
119520 b.f.b = 0;
119521 return;
119522 }
119523 g = BD(a.Xb(0), 37);
119524 tNb(b, g);
119525 for (e = a.Kc(); e.Ob(); ) {
119526 d = BD(e.Pb(), 37);
119527 KXb(this, d);
119528 }
119529 t4 = new d7c();
119530 s = new d7c();
119531 p = new d7c();
119532 o2 = new d7c();
119533 f2 = Edb(ED(vNb(g, (Nyc(), kyc))));
119534 for (j = new olb(this.a); j.a < j.c.c.length; ) {
119535 h = BD(mlb(j), 325);
119536 if (fad(BD(vNb(b, (Y9c(), z8c)), 103))) {
119537 p.a = t4.a;
119538 for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) {
119539 q = BD(Lv(r.b.Pb()), 21);
119540 if (q.Hc((Ucd(), Acd))) {
119541 p.a = s.a;
119542 break;
119543 }
119544 }
119545 } else if (gad(BD(vNb(b, z8c), 103))) {
119546 p.b = t4.b;
119547 for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) {
119548 q = BD(Lv(r.b.Pb()), 21);
119549 if (q.Hc((Ucd(), Tcd))) {
119550 p.b = s.b;
119551 break;
119552 }
119553 }
119554 }
119555 k = DXb(BD(h, 570), f2);
119556 vXb(Uc(h.b), p.a, p.b);
119557 if (fad(BD(vNb(b, z8c), 103))) {
119558 s.a = p.a + k.a;
119559 o2.a = $wnd.Math.max(o2.a, s.a);
119560 for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) {
119561 q = BD(Lv(r.b.Pb()), 21);
119562 if (q.Hc((Ucd(), Rcd))) {
119563 t4.a = p.a + k.a;
119564 break;
119565 }
119566 }
119567 s.b = p.b + k.b;
119568 p.b = s.b;
119569 o2.b = $wnd.Math.max(o2.b, p.b);
119570 } else if (gad(BD(vNb(b, z8c), 103))) {
119571 s.b = p.b + k.b;
119572 o2.b = $wnd.Math.max(o2.b, s.b);
119573 for (r = new Mv(Pc(Fc(h.b).a).a.kc()); r.b.Ob(); ) {
119574 q = BD(Lv(r.b.Pb()), 21);
119575 if (q.Hc((Ucd(), zcd))) {
119576 t4.b = p.b + k.b;
119577 break;
119578 }
119579 }
119580 s.a = p.a + k.a;
119581 p.a = s.a;
119582 o2.a = $wnd.Math.max(o2.a, p.a);
119583 }
119584 }
119585 b.f.a = o2.a - f2;
119586 b.f.b = o2.b - f2;
119587 if (Ccb(DD(vNb(g, qwc))) && PD(vNb(g, Swc)) === PD((Aad(), wad))) {
119588 for (n = a.Kc(); n.Ob(); ) {
119589 l = BD(n.Pb(), 37);
119590 uXb(l, l.c.a, l.c.b);
119591 }
119592 c2 = new gYb();
119593 YXb(c2, a, f2);
119594 for (m = a.Kc(); m.Ob(); ) {
119595 l = BD(m.Pb(), 37);
119596 P6c(X6c(l.c), c2.e);
119597 }
119598 P6c(X6c(b.f), c2.a);
119599 }
119600 for (i3 = new olb(this.a); i3.a < i3.c.c.length; ) {
119601 h = BD(mlb(i3), 325);
119602 tXb(b, Uc(h.b));
119603 }
119604 };
119605 mdb(_me, "ComponentGroupModelOrderGraphPlacer", 1293);
119606 bcb(423, 22, { 3: 1, 35: 1, 22: 1, 423: 1 }, SXb);
119607 var OXb, PXb, QXb;
119608 var hQ = ndb(_me, "ComponentOrderingStrategy", 423, CI, UXb, TXb);
119609 var VXb;
119610 bcb(650, 1, {}, gYb);
119611 mdb(_me, "ComponentsCompactor", 650);
119612 bcb(1468, 12, ake, jYb);
119613 _2.Fc = function kYb(a) {
119614 return hYb(this, BD(a, 140));
119615 };
119616 mdb(_me, "ComponentsCompactor/Hullpoints", 1468);
119617 bcb(1465, 1, { 841: 1 }, mYb);
119618 _2.a = false;
119619 mdb(_me, "ComponentsCompactor/InternalComponent", 1465);
119620 bcb(1464, 1, vie, nYb);
119621 _2.Jc = function oYb(a) {
119622 reb(this, a);
119623 };
119624 _2.Kc = function pYb() {
119625 return new olb(this.a);
119626 };
119627 mdb(_me, "ComponentsCompactor/InternalConnectedComponents", 1464);
119628 bcb(1467, 1, { 594: 1 }, qYb);
119629 _2.hf = function sYb() {
119630 return null;
119631 };
119632 _2.jf = function tYb() {
119633 return this.a;
119634 };
119635 _2.gf = function rYb() {
119636 return cYb(this.d);
119637 };
119638 _2.kf = function uYb() {
119639 return this.b;
119640 };
119641 mdb(_me, "ComponentsCompactor/InternalExternalExtension", 1467);
119642 bcb(1466, 1, { 594: 1 }, vYb);
119643 _2.jf = function yYb() {
119644 return this.a;
119645 };
119646 _2.gf = function wYb() {
119647 return cYb(this.d);
119648 };
119649 _2.hf = function xYb() {
119650 return this.c;
119651 };
119652 _2.kf = function zYb() {
119653 return this.b;
119654 };
119655 mdb(_me, "ComponentsCompactor/InternalUnionExternalExtension", 1466);
119656 bcb(1470, 1, {}, AYb);
119657 mdb(_me, "ComponentsCompactor/OuterSegments", 1470);
119658 bcb(1469, 1, {}, BYb);
119659 mdb(_me, "ComponentsCompactor/Segments", 1469);
119660 bcb(1264, 1, {}, FYb);
119661 mdb(_me, hme, 1264);
119662 bcb(1265, 1, Dke, HYb);
119663 _2.ue = function IYb(a, b) {
119664 return GYb(BD(a, 37), BD(b, 37));
119665 };
119666 _2.Fb = function JYb(a) {
119667 return this === a;
119668 };
119669 _2.ve = function KYb() {
119670 return new tpb(this);
119671 };
119672 mdb(_me, "ComponentsProcessor/lambda$0$Type", 1265);
119673 bcb(570, 325, { 325: 1, 570: 1 }, PYb);
119674 _2.mf = function QYb(a) {
119675 return NYb(this, a);
119676 };
119677 _2.nf = function RYb(a) {
119678 return OYb(this, a);
119679 };
119680 var LYb;
119681 mdb(_me, "ModelOrderComponentGroup", 570);
119682 bcb(1291, 2005, {}, SYb);
119683 _2.lf = function TYb(a, b) {
119684 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2;
119685 if (a.gc() == 1) {
119686 t4 = BD(a.Xb(0), 37);
119687 if (t4 != b) {
119688 b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
119689 sXb(b, t4, 0, 0);
119690 tNb(b, t4);
119691 u_b(b.d, t4.d);
119692 b.f.a = t4.f.a;
119693 b.f.b = t4.f.b;
119694 }
119695 return;
119696 } else if (a.dc()) {
119697 b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
119698 b.f.a = 0;
119699 b.f.b = 0;
119700 return;
119701 }
119702 if (PD(vNb(b, (Nyc(), twc))) === PD((RXb(), QXb))) {
119703 for (i3 = a.Kc(); i3.Ob(); ) {
119704 g = BD(i3.Pb(), 37);
119705 r = 0;
119706 for (p = new olb(g.a); p.a < p.c.c.length; ) {
119707 o2 = BD(mlb(p), 10);
119708 r += BD(vNb(o2, byc), 19).a;
119709 }
119710 g.p = r;
119711 }
119712 mmb();
119713 a.ad(new VYb());
119714 }
119715 f2 = BD(a.Xb(0), 37);
119716 b.a.c = KC(SI, Uhe, 1, 0, 5, 1);
119717 tNb(b, f2);
119718 n = 0;
119719 u2 = 0;
119720 for (j = a.Kc(); j.Ob(); ) {
119721 g = BD(j.Pb(), 37);
119722 s = g.f;
119723 n = $wnd.Math.max(n, s.a);
119724 u2 += s.a * s.b;
119725 }
119726 n = $wnd.Math.max(n, $wnd.Math.sqrt(u2) * Edb(ED(vNb(b, owc))));
119727 e = Edb(ED(vNb(b, kyc)));
119728 v = 0;
119729 w2 = 0;
119730 m = 0;
119731 c2 = e;
119732 for (h = a.Kc(); h.Ob(); ) {
119733 g = BD(h.Pb(), 37);
119734 s = g.f;
119735 if (v + s.a > n) {
119736 v = 0;
119737 w2 += m + e;
119738 m = 0;
119739 }
119740 q = g.c;
119741 uXb(g, v + q.a, w2 + q.b);
119742 X6c(q);
119743 c2 = $wnd.Math.max(c2, v + s.a);
119744 m = $wnd.Math.max(m, s.b);
119745 v += s.a + e;
119746 }
119747 b.f.a = c2;
119748 b.f.b = w2 + m;
119749 if (Ccb(DD(vNb(f2, qwc)))) {
119750 d = new gYb();
119751 YXb(d, a, e);
119752 for (l = a.Kc(); l.Ob(); ) {
119753 k = BD(l.Pb(), 37);
119754 P6c(X6c(k.c), d.e);
119755 }
119756 P6c(X6c(b.f), d.a);
119757 }
119758 tXb(b, a);
119759 };
119760 mdb(_me, "SimpleRowGraphPlacer", 1291);
119761 bcb(1292, 1, Dke, VYb);
119762 _2.ue = function WYb(a, b) {
119763 return UYb(BD(a, 37), BD(b, 37));
119764 };
119765 _2.Fb = function XYb(a) {
119766 return this === a;
119767 };
119768 _2.ve = function YYb() {
119769 return new tpb(this);
119770 };
119771 mdb(_me, "SimpleRowGraphPlacer/1", 1292);
119772 var ZYb;
119773 bcb(1262, 1, Vke, dZb);
119774 _2.Lb = function eZb(a) {
119775 var b;
119776 return b = BD(vNb(BD(a, 243).b, (Nyc(), jxc)), 74), !!b && b.b != 0;
119777 };
119778 _2.Fb = function fZb(a) {
119779 return this === a;
119780 };
119781 _2.Mb = function gZb(a) {
119782 var b;
119783 return b = BD(vNb(BD(a, 243).b, (Nyc(), jxc)), 74), !!b && b.b != 0;
119784 };
119785 mdb(dne, "CompoundGraphPostprocessor/1", 1262);
119786 bcb(1261, 1, ene, wZb);
119787 _2.pf = function xZb(a, b) {
119788 qZb(this, BD(a, 37), b);
119789 };
119790 mdb(dne, "CompoundGraphPreprocessor", 1261);
119791 bcb(441, 1, { 441: 1 }, yZb);
119792 _2.c = false;
119793 mdb(dne, "CompoundGraphPreprocessor/ExternalPort", 441);
119794 bcb(243, 1, { 243: 1 }, BZb);
119795 _2.Ib = function CZb() {
119796 return Zr(this.c) + ":" + TZb(this.b);
119797 };
119798 mdb(dne, "CrossHierarchyEdge", 243);
119799 bcb(763, 1, Dke, EZb);
119800 _2.ue = function FZb(a, b) {
119801 return DZb(this, BD(a, 243), BD(b, 243));
119802 };
119803 _2.Fb = function GZb(a) {
119804 return this === a;
119805 };
119806 _2.ve = function IZb() {
119807 return new tpb(this);
119808 };
119809 mdb(dne, "CrossHierarchyEdgeComparator", 763);
119810 bcb(299, 134, { 3: 1, 299: 1, 94: 1, 134: 1 });
119811 _2.p = 0;
119812 mdb(fne, "LGraphElement", 299);
119813 bcb(17, 299, { 3: 1, 17: 1, 299: 1, 94: 1, 134: 1 }, UZb);
119814 _2.Ib = function VZb() {
119815 return TZb(this);
119816 };
119817 var AQ = mdb(fne, "LEdge", 17);
119818 bcb(37, 299, { 3: 1, 20: 1, 37: 1, 299: 1, 94: 1, 134: 1 }, XZb);
119819 _2.Jc = function YZb(a) {
119820 reb(this, a);
119821 };
119822 _2.Kc = function ZZb() {
119823 return new olb(this.b);
119824 };
119825 _2.Ib = function $Zb() {
119826 if (this.b.c.length == 0) {
119827 return "G-unlayered" + Fe(this.a);
119828 } else if (this.a.c.length == 0) {
119829 return "G-layered" + Fe(this.b);
119830 }
119831 return "G[layerless" + Fe(this.a) + ", layers" + Fe(this.b) + "]";
119832 };
119833 var KQ = mdb(fne, "LGraph", 37);
119834 var _Zb;
119835 bcb(657, 1, {});
119836 _2.qf = function b$b() {
119837 return this.e.n;
119838 };
119839 _2.We = function c$b(a) {
119840 return vNb(this.e, a);
119841 };
119842 _2.rf = function d$b() {
119843 return this.e.o;
119844 };
119845 _2.sf = function e$b() {
119846 return this.e.p;
119847 };
119848 _2.Xe = function f$b(a) {
119849 return wNb(this.e, a);
119850 };
119851 _2.tf = function g$b(a) {
119852 this.e.n.a = a.a;
119853 this.e.n.b = a.b;
119854 };
119855 _2.uf = function h$b(a) {
119856 this.e.o.a = a.a;
119857 this.e.o.b = a.b;
119858 };
119859 _2.vf = function i$b(a) {
119860 this.e.p = a;
119861 };
119862 mdb(fne, "LGraphAdapters/AbstractLShapeAdapter", 657);
119863 bcb(577, 1, { 839: 1 }, j$b);
119864 _2.wf = function k$b() {
119865 var a, b;
119866 if (!this.b) {
119867 this.b = Pu(this.a.b.c.length);
119868 for (b = new olb(this.a.b); b.a < b.c.c.length; ) {
119869 a = BD(mlb(b), 70);
119870 Ekb(this.b, new v$b(a));
119871 }
119872 }
119873 return this.b;
119874 };
119875 _2.b = null;
119876 mdb(fne, "LGraphAdapters/LEdgeAdapter", 577);
119877 bcb(656, 1, {}, l$b);
119878 _2.xf = function m$b() {
119879 var a, b, c2, d, e, f2;
119880 if (!this.b) {
119881 this.b = new Rkb();
119882 for (d = new olb(this.a.b); d.a < d.c.c.length; ) {
119883 c2 = BD(mlb(d), 29);
119884 for (f2 = new olb(c2.a); f2.a < f2.c.c.length; ) {
119885 e = BD(mlb(f2), 10);
119886 if (this.c.Mb(e)) {
119887 Ekb(this.b, new x$b(this, e, this.e));
119888 if (this.d) {
119889 if (wNb(e, (wtc(), vtc))) {
119890 for (b = BD(vNb(e, vtc), 15).Kc(); b.Ob(); ) {
119891 a = BD(b.Pb(), 10);
119892 Ekb(this.b, new x$b(this, a, false));
119893 }
119894 }
119895 if (wNb(e, tsc)) {
119896 for (b = BD(vNb(e, tsc), 15).Kc(); b.Ob(); ) {
119897 a = BD(b.Pb(), 10);
119898 Ekb(this.b, new x$b(this, a, false));
119899 }
119900 }
119901 }
119902 }
119903 }
119904 }
119905 }
119906 return this.b;
119907 };
119908 _2.qf = function n$b() {
119909 throw vbb(new cgb(hne));
119910 };
119911 _2.We = function o$b(a) {
119912 return vNb(this.a, a);
119913 };
119914 _2.rf = function p$b() {
119915 return this.a.f;
119916 };
119917 _2.sf = function q$b() {
119918 return this.a.p;
119919 };
119920 _2.Xe = function r$b(a) {
119921 return wNb(this.a, a);
119922 };
119923 _2.tf = function s$b(a) {
119924 throw vbb(new cgb(hne));
119925 };
119926 _2.uf = function t$b(a) {
119927 this.a.f.a = a.a;
119928 this.a.f.b = a.b;
119929 };
119930 _2.vf = function u$b(a) {
119931 this.a.p = a;
119932 };
119933 _2.b = null;
119934 _2.d = false;
119935 _2.e = false;
119936 mdb(fne, "LGraphAdapters/LGraphAdapter", 656);
119937 bcb(576, 657, { 181: 1 }, v$b);
119938 mdb(fne, "LGraphAdapters/LLabelAdapter", 576);
119939 bcb(575, 657, { 680: 1 }, x$b);
119940 _2.yf = function y$b() {
119941 return this.b;
119942 };
119943 _2.zf = function z$b() {
119944 return mmb(), mmb(), jmb;
119945 };
119946 _2.wf = function A$b() {
119947 var a, b;
119948 if (!this.a) {
119949 this.a = Pu(BD(this.e, 10).b.c.length);
119950 for (b = new olb(BD(this.e, 10).b); b.a < b.c.c.length; ) {
119951 a = BD(mlb(b), 70);
119952 Ekb(this.a, new v$b(a));
119953 }
119954 }
119955 return this.a;
119956 };
119957 _2.Af = function B$b() {
119958 var a;
119959 a = BD(this.e, 10).d;
119960 return new J_b(a.d, a.c, a.a, a.b);
119961 };
119962 _2.Bf = function C$b() {
119963 return mmb(), mmb(), jmb;
119964 };
119965 _2.Cf = function D$b() {
119966 var a, b;
119967 if (!this.c) {
119968 this.c = Pu(BD(this.e, 10).j.c.length);
119969 for (b = new olb(BD(this.e, 10).j); b.a < b.c.c.length; ) {
119970 a = BD(mlb(b), 11);
119971 Ekb(this.c, new I$b(a, this.d));
119972 }
119973 }
119974 return this.c;
119975 };
119976 _2.Df = function E$b() {
119977 return Ccb(DD(vNb(BD(this.e, 10), (wtc(), wsc))));
119978 };
119979 _2.Ef = function F$b(a) {
119980 BD(this.e, 10).d.b = a.b;
119981 BD(this.e, 10).d.d = a.d;
119982 BD(this.e, 10).d.c = a.c;
119983 BD(this.e, 10).d.a = a.a;
119984 };
119985 _2.Ff = function G$b(a) {
119986 BD(this.e, 10).f.b = a.b;
119987 BD(this.e, 10).f.d = a.d;
119988 BD(this.e, 10).f.c = a.c;
119989 BD(this.e, 10).f.a = a.a;
119990 };
119991 _2.Gf = function H$b() {
119992 w$b(this, (a$b(), _Zb));
119993 };
119994 _2.a = null;
119995 _2.b = null;
119996 _2.c = null;
119997 _2.d = false;
119998 mdb(fne, "LGraphAdapters/LNodeAdapter", 575);
119999 bcb(1722, 657, { 838: 1 }, I$b);
120000 _2.zf = function J$b() {
120001 var a, b, c2, d;
120002 if (this.d && BD(this.e, 11).i.k == (j0b(), i0b)) {
120003 return mmb(), mmb(), jmb;
120004 } else if (!this.a) {
120005 this.a = new Rkb();
120006 for (c2 = new olb(BD(this.e, 11).e); c2.a < c2.c.c.length; ) {
120007 a = BD(mlb(c2), 17);
120008 Ekb(this.a, new j$b(a));
120009 }
120010 if (this.d) {
120011 d = BD(vNb(BD(this.e, 11), (wtc(), gtc)), 10);
120012 if (d) {
120013 for (b = new Sr(ur(R_b(d).a.Kc(), new Sq())); Qr(b); ) {
120014 a = BD(Rr(b), 17);
120015 Ekb(this.a, new j$b(a));
120016 }
120017 }
120018 }
120019 }
120020 return this.a;
120021 };
120022 _2.wf = function K$b() {
120023 var a, b;
120024 if (!this.b) {
120025 this.b = Pu(BD(this.e, 11).f.c.length);
120026 for (b = new olb(BD(this.e, 11).f); b.a < b.c.c.length; ) {
120027 a = BD(mlb(b), 70);
120028 Ekb(this.b, new v$b(a));
120029 }
120030 }
120031 return this.b;
120032 };
120033 _2.Bf = function L$b() {
120034 var a, b, c2, d;
120035 if (this.d && BD(this.e, 11).i.k == (j0b(), i0b)) {
120036 return mmb(), mmb(), jmb;
120037 } else if (!this.c) {
120038 this.c = new Rkb();
120039 for (c2 = new olb(BD(this.e, 11).g); c2.a < c2.c.c.length; ) {
120040 a = BD(mlb(c2), 17);
120041 Ekb(this.c, new j$b(a));
120042 }
120043 if (this.d) {
120044 d = BD(vNb(BD(this.e, 11), (wtc(), gtc)), 10);
120045 if (d) {
120046 for (b = new Sr(ur(U_b(d).a.Kc(), new Sq())); Qr(b); ) {
120047 a = BD(Rr(b), 17);
120048 Ekb(this.c, new j$b(a));
120049 }
120050 }
120051 }
120052 }
120053 return this.c;
120054 };
120055 _2.Hf = function M$b() {
120056 return BD(this.e, 11).j;
120057 };
120058 _2.If = function N$b() {
120059 return Ccb(DD(vNb(BD(this.e, 11), (wtc(), Nsc))));
120060 };
120061 _2.a = null;
120062 _2.b = null;
120063 _2.c = null;
120064 _2.d = false;
120065 mdb(fne, "LGraphAdapters/LPortAdapter", 1722);
120066 bcb(1723, 1, Dke, P$b);
120067 _2.ue = function Q$b(a, b) {
120068 return O$b(BD(a, 11), BD(b, 11));
120069 };
120070 _2.Fb = function R$b(a) {
120071 return this === a;
120072 };
120073 _2.ve = function S$b() {
120074 return new tpb(this);
120075 };
120076 mdb(fne, "LGraphAdapters/PortComparator", 1723);
120077 bcb(804, 1, Oie, T$b);
120078 _2.Mb = function U$b(a) {
120079 return BD(a, 10), a$b(), true;
120080 };
120081 mdb(fne, "LGraphAdapters/lambda$0$Type", 804);
120082 bcb(392, 299, { 3: 1, 299: 1, 392: 1, 94: 1, 134: 1 });
120083 mdb(fne, "LShape", 392);
120084 bcb(70, 392, { 3: 1, 299: 1, 70: 1, 392: 1, 94: 1, 134: 1 }, p_b, q_b);
120085 _2.Ib = function r_b() {
120086 var a;
120087 a = o_b(this);
120088 return a == null ? "label" : "l_" + a;
120089 };
120090 mdb(fne, "LLabel", 70);
120091 bcb(207, 1, { 3: 1, 4: 1, 207: 1, 414: 1 });
120092 _2.Fb = function C_b(a) {
120093 var b;
120094 if (JD(a, 207)) {
120095 b = BD(a, 207);
120096 return this.d == b.d && this.a == b.a && this.b == b.b && this.c == b.c;
120097 } else {
120098 return false;
120099 }
120100 };
120101 _2.Hb = function D_b() {
120102 var a, b;
120103 a = Hdb(this.b) << 16;
120104 a |= Hdb(this.a) & aje;
120105 b = Hdb(this.c) << 16;
120106 b |= Hdb(this.d) & aje;
120107 return a ^ b;
120108 };
120109 _2.Jf = function F_b(b) {
120110 var c2, d, e, f2, g, h, i3, j, k, l, m;
120111 g = 0;
120112 while (g < b.length && E_b((BCb(g, b.length), b.charCodeAt(g)), mne)) {
120113 ++g;
120114 }
120115 c2 = b.length;
120116 while (c2 > 0 && E_b((BCb(c2 - 1, b.length), b.charCodeAt(c2 - 1)), nne)) {
120117 --c2;
120118 }
120119 if (g < c2) {
120120 l = mfb(b.substr(g, c2 - g), ",|;");
120121 try {
120122 for (i3 = l, j = 0, k = i3.length; j < k; ++j) {
120123 h = i3[j];
120124 f2 = mfb(h, "=");
120125 if (f2.length != 2) {
120126 throw vbb(new Wdb("Expecting a list of key-value pairs."));
120127 }
120128 e = ufb(f2[0]);
120129 m = Hcb(ufb(f2[1]));
120130 dfb(e, "top") ? this.d = m : dfb(e, "left") ? this.b = m : dfb(e, "bottom") ? this.a = m : dfb(e, "right") && (this.c = m);
120131 }
120132 } catch (a) {
120133 a = ubb(a);
120134 if (JD(a, 127)) {
120135 d = a;
120136 throw vbb(new Wdb(one2 + d));
120137 } else
120138 throw vbb(a);
120139 }
120140 }
120141 };
120142 _2.Ib = function G_b() {
120143 return "[top=" + this.d + ",left=" + this.b + ",bottom=" + this.a + ",right=" + this.c + "]";
120144 };
120145 _2.a = 0;
120146 _2.b = 0;
120147 _2.c = 0;
120148 _2.d = 0;
120149 mdb(pne, "Spacing", 207);
120150 bcb(142, 207, qne, H_b, I_b, J_b, K_b);
120151 var i1 = mdb(pne, "ElkMargin", 142);
120152 bcb(651, 142, qne, L_b);
120153 mdb(fne, "LMargin", 651);
120154 bcb(10, 392, { 3: 1, 299: 1, 10: 1, 392: 1, 94: 1, 134: 1 }, b0b);
120155 _2.Ib = function c0b() {
120156 return a0b(this);
120157 };
120158 _2.i = false;
120159 var OQ = mdb(fne, "LNode", 10);
120160 bcb(267, 22, { 3: 1, 35: 1, 22: 1, 267: 1 }, k0b);
120161 var d0b, e0b, f0b, g0b, h0b, i0b;
120162 var NQ = ndb(fne, "LNode/NodeType", 267, CI, m0b, l0b);
120163 var n0b;
120164 bcb(116, 207, rne, p0b, q0b, r0b);
120165 var j1 = mdb(pne, "ElkPadding", 116);
120166 bcb(764, 116, rne, s0b);
120167 mdb(fne, "LPadding", 764);
120168 bcb(11, 392, { 3: 1, 299: 1, 11: 1, 392: 1, 94: 1, 134: 1 }, H0b);
120169 _2.Ib = function I0b() {
120170 var a, b, c2;
120171 a = new Ufb();
120172 Qfb((a.a += "p_", a), C0b(this));
120173 !!this.i && Qfb(Pfb((a.a += "[", a), this.i), "]");
120174 if (this.e.c.length == 1 && this.g.c.length == 0 && BD(Ikb(this.e, 0), 17).c != this) {
120175 b = BD(Ikb(this.e, 0), 17).c;
120176 Qfb((a.a += " << ", a), C0b(b));
120177 Qfb(Pfb((a.a += "[", a), b.i), "]");
120178 }
120179 if (this.e.c.length == 0 && this.g.c.length == 1 && BD(Ikb(this.g, 0), 17).d != this) {
120180 c2 = BD(Ikb(this.g, 0), 17).d;
120181 Qfb((a.a += " >> ", a), C0b(c2));
120182 Qfb(Pfb((a.a += "[", a), c2.i), "]");
120183 }
120184 return a.a;
120185 };
120186 _2.c = true;
120187 _2.d = false;
120188 var t0b, u0b, v0b, w0b, x0b, y0b;
120189 var aR = mdb(fne, "LPort", 11);
120190 bcb(397, 1, vie, J0b);
120191 _2.Jc = function K0b(a) {
120192 reb(this, a);
120193 };
120194 _2.Kc = function L0b() {
120195 var a;
120196 a = new olb(this.a.e);
120197 return new M0b(a);
120198 };
120199 mdb(fne, "LPort/1", 397);
120200 bcb(1290, 1, aie, M0b);
120201 _2.Nb = function N0b(a) {
120202 Rrb(this, a);
120203 };
120204 _2.Pb = function P0b() {
120205 return BD(mlb(this.a), 17).c;
120206 };
120207 _2.Ob = function O0b() {
120208 return llb(this.a);
120209 };
120210 _2.Qb = function Q0b() {
120211 nlb(this.a);
120212 };
120213 mdb(fne, "LPort/1/1", 1290);
120214 bcb(359, 1, vie, R0b);
120215 _2.Jc = function S0b(a) {
120216 reb(this, a);
120217 };
120218 _2.Kc = function T0b() {
120219 var a;
120220 return a = new olb(this.a.g), new U0b(a);
120221 };
120222 mdb(fne, "LPort/2", 359);
120223 bcb(762, 1, aie, U0b);
120224 _2.Nb = function V0b(a) {
120225 Rrb(this, a);
120226 };
120227 _2.Pb = function X0b() {
120228 return BD(mlb(this.a), 17).d;
120229 };
120230 _2.Ob = function W0b() {
120231 return llb(this.a);
120232 };
120233 _2.Qb = function Y0b() {
120234 nlb(this.a);
120235 };
120236 mdb(fne, "LPort/2/1", 762);
120237 bcb(1283, 1, vie, Z0b);
120238 _2.Jc = function $0b(a) {
120239 reb(this, a);
120240 };
120241 _2.Kc = function _0b() {
120242 return new b1b(this);
120243 };
120244 mdb(fne, "LPort/CombineIter", 1283);
120245 bcb(201, 1, aie, b1b);
120246 _2.Nb = function c1b(a) {
120247 Rrb(this, a);
120248 };
120249 _2.Qb = function f1b() {
120250 Srb();
120251 };
120252 _2.Ob = function d1b() {
120253 return a1b(this);
120254 };
120255 _2.Pb = function e1b() {
120256 return llb(this.a) ? mlb(this.a) : mlb(this.b);
120257 };
120258 mdb(fne, "LPort/CombineIter/1", 201);
120259 bcb(1285, 1, Vke, h1b);
120260 _2.Lb = function i1b(a) {
120261 return g1b(a);
120262 };
120263 _2.Fb = function j1b(a) {
120264 return this === a;
120265 };
120266 _2.Mb = function k1b(a) {
120267 return z0b(), BD(a, 11).e.c.length != 0;
120268 };
120269 mdb(fne, "LPort/lambda$0$Type", 1285);
120270 bcb(1284, 1, Vke, m1b);
120271 _2.Lb = function n1b(a) {
120272 return l1b(a);
120273 };
120274 _2.Fb = function o1b(a) {
120275 return this === a;
120276 };
120277 _2.Mb = function p1b(a) {
120278 return z0b(), BD(a, 11).g.c.length != 0;
120279 };
120280 mdb(fne, "LPort/lambda$1$Type", 1284);
120281 bcb(1286, 1, Vke, q1b);
120282 _2.Lb = function r1b(a) {
120283 return z0b(), BD(a, 11).j == (Ucd(), Acd);
120284 };
120285 _2.Fb = function s1b(a) {
120286 return this === a;
120287 };
120288 _2.Mb = function t1b(a) {
120289 return z0b(), BD(a, 11).j == (Ucd(), Acd);
120290 };
120291 mdb(fne, "LPort/lambda$2$Type", 1286);
120292 bcb(1287, 1, Vke, u1b);
120293 _2.Lb = function v1b(a) {
120294 return z0b(), BD(a, 11).j == (Ucd(), zcd);
120295 };
120296 _2.Fb = function w1b(a) {
120297 return this === a;
120298 };
120299 _2.Mb = function x1b(a) {
120300 return z0b(), BD(a, 11).j == (Ucd(), zcd);
120301 };
120302 mdb(fne, "LPort/lambda$3$Type", 1287);
120303 bcb(1288, 1, Vke, y1b);
120304 _2.Lb = function z1b(a) {
120305 return z0b(), BD(a, 11).j == (Ucd(), Rcd);
120306 };
120307 _2.Fb = function A1b(a) {
120308 return this === a;
120309 };
120310 _2.Mb = function B1b(a) {
120311 return z0b(), BD(a, 11).j == (Ucd(), Rcd);
120312 };
120313 mdb(fne, "LPort/lambda$4$Type", 1288);
120314 bcb(1289, 1, Vke, C1b);
120315 _2.Lb = function D1b(a) {
120316 return z0b(), BD(a, 11).j == (Ucd(), Tcd);
120317 };
120318 _2.Fb = function E1b(a) {
120319 return this === a;
120320 };
120321 _2.Mb = function F1b(a) {
120322 return z0b(), BD(a, 11).j == (Ucd(), Tcd);
120323 };
120324 mdb(fne, "LPort/lambda$5$Type", 1289);
120325 bcb(29, 299, { 3: 1, 20: 1, 299: 1, 29: 1, 94: 1, 134: 1 }, H1b);
120326 _2.Jc = function I1b(a) {
120327 reb(this, a);
120328 };
120329 _2.Kc = function J1b() {
120330 return new olb(this.a);
120331 };
120332 _2.Ib = function K1b() {
120333 return "L_" + Jkb(this.b.b, this, 0) + Fe(this.a);
120334 };
120335 mdb(fne, "Layer", 29);
120336 bcb(1342, 1, {}, a2b);
120337 mdb(tne, une, 1342);
120338 bcb(1346, 1, {}, e2b);
120339 _2.Kb = function f2b(a) {
120340 return atd(BD(a, 82));
120341 };
120342 mdb(tne, "ElkGraphImporter/0methodref$connectableShapeToNode$Type", 1346);
120343 bcb(1349, 1, {}, g2b);
120344 _2.Kb = function h2b(a) {
120345 return atd(BD(a, 82));
120346 };
120347 mdb(tne, "ElkGraphImporter/1methodref$connectableShapeToNode$Type", 1349);
120348 bcb(1343, 1, qie, i2b);
120349 _2.td = function j2b(a) {
120350 Q1b(this.a, BD(a, 118));
120351 };
120352 mdb(tne, vne, 1343);
120353 bcb(1344, 1, qie, k2b);
120354 _2.td = function l2b(a) {
120355 Q1b(this.a, BD(a, 118));
120356 };
120357 mdb(tne, wne, 1344);
120358 bcb(1345, 1, {}, m2b);
120359 _2.Kb = function n2b(a) {
120360 return new YAb(null, new Kub(Old(BD(a, 79)), 16));
120361 };
120362 mdb(tne, xne, 1345);
120363 bcb(1347, 1, Oie, o2b);
120364 _2.Mb = function p2b(a) {
120365 return b2b(this.a, BD(a, 33));
120366 };
120367 mdb(tne, yne, 1347);
120368 bcb(1348, 1, {}, q2b);
120369 _2.Kb = function r2b(a) {
120370 return new YAb(null, new Kub(Nld(BD(a, 79)), 16));
120371 };
120372 mdb(tne, "ElkGraphImporter/lambda$5$Type", 1348);
120373 bcb(1350, 1, Oie, s2b);
120374 _2.Mb = function t2b(a) {
120375 return c2b(this.a, BD(a, 33));
120376 };
120377 mdb(tne, "ElkGraphImporter/lambda$7$Type", 1350);
120378 bcb(1351, 1, Oie, u2b);
120379 _2.Mb = function v2b(a) {
120380 return d2b(BD(a, 79));
120381 };
120382 mdb(tne, "ElkGraphImporter/lambda$8$Type", 1351);
120383 bcb(1278, 1, {}, D2b);
120384 var w2b;
120385 mdb(tne, "ElkGraphLayoutTransferrer", 1278);
120386 bcb(1279, 1, Oie, G2b);
120387 _2.Mb = function H2b(a) {
120388 return E2b(this.a, BD(a, 17));
120389 };
120390 mdb(tne, "ElkGraphLayoutTransferrer/lambda$0$Type", 1279);
120391 bcb(1280, 1, qie, I2b);
120392 _2.td = function J2b(a) {
120393 x2b();
120394 Ekb(this.a, BD(a, 17));
120395 };
120396 mdb(tne, "ElkGraphLayoutTransferrer/lambda$1$Type", 1280);
120397 bcb(1281, 1, Oie, K2b);
120398 _2.Mb = function L2b(a) {
120399 return F2b(this.a, BD(a, 17));
120400 };
120401 mdb(tne, "ElkGraphLayoutTransferrer/lambda$2$Type", 1281);
120402 bcb(1282, 1, qie, M2b);
120403 _2.td = function N2b(a) {
120404 x2b();
120405 Ekb(this.a, BD(a, 17));
120406 };
120407 mdb(tne, "ElkGraphLayoutTransferrer/lambda$3$Type", 1282);
120408 bcb(1485, 1, ene, S2b);
120409 _2.pf = function T2b(a, b) {
120410 Q2b(BD(a, 37), b);
120411 };
120412 mdb(Ane, "CommentNodeMarginCalculator", 1485);
120413 bcb(1486, 1, {}, U2b);
120414 _2.Kb = function V2b(a) {
120415 return new YAb(null, new Kub(BD(a, 29).a, 16));
120416 };
120417 mdb(Ane, "CommentNodeMarginCalculator/lambda$0$Type", 1486);
120418 bcb(1487, 1, qie, W2b);
120419 _2.td = function X2b(a) {
120420 R2b(BD(a, 10));
120421 };
120422 mdb(Ane, "CommentNodeMarginCalculator/lambda$1$Type", 1487);
120423 bcb(1488, 1, ene, _2b);
120424 _2.pf = function a3b(a, b) {
120425 Z2b(BD(a, 37), b);
120426 };
120427 mdb(Ane, "CommentPostprocessor", 1488);
120428 bcb(1489, 1, ene, e3b);
120429 _2.pf = function f3b(a, b) {
120430 b3b(BD(a, 37), b);
120431 };
120432 mdb(Ane, "CommentPreprocessor", 1489);
120433 bcb(1490, 1, ene, h3b);
120434 _2.pf = function i3b(a, b) {
120435 g3b(BD(a, 37), b);
120436 };
120437 mdb(Ane, "ConstraintsPostprocessor", 1490);
120438 bcb(1491, 1, ene, p3b);
120439 _2.pf = function q3b(a, b) {
120440 n3b(BD(a, 37), b);
120441 };
120442 mdb(Ane, "EdgeAndLayerConstraintEdgeReverser", 1491);
120443 bcb(1492, 1, ene, t3b);
120444 _2.pf = function v3b(a, b) {
120445 r3b(BD(a, 37), b);
120446 };
120447 mdb(Ane, "EndLabelPostprocessor", 1492);
120448 bcb(1493, 1, {}, w3b);
120449 _2.Kb = function x3b(a) {
120450 return new YAb(null, new Kub(BD(a, 29).a, 16));
120451 };
120452 mdb(Ane, "EndLabelPostprocessor/lambda$0$Type", 1493);
120453 bcb(1494, 1, Oie, y3b);
120454 _2.Mb = function z3b(a) {
120455 return u3b(BD(a, 10));
120456 };
120457 mdb(Ane, "EndLabelPostprocessor/lambda$1$Type", 1494);
120458 bcb(1495, 1, qie, A3b);
120459 _2.td = function B3b(a) {
120460 s3b(BD(a, 10));
120461 };
120462 mdb(Ane, "EndLabelPostprocessor/lambda$2$Type", 1495);
120463 bcb(1496, 1, ene, M3b);
120464 _2.pf = function P3b(a, b) {
120465 I3b(BD(a, 37), b);
120466 };
120467 mdb(Ane, "EndLabelPreprocessor", 1496);
120468 bcb(1497, 1, {}, Q3b);
120469 _2.Kb = function R3b(a) {
120470 return new YAb(null, new Kub(BD(a, 29).a, 16));
120471 };
120472 mdb(Ane, "EndLabelPreprocessor/lambda$0$Type", 1497);
120473 bcb(1498, 1, qie, S3b);
120474 _2.td = function T3b(a) {
120475 E3b(this.a, this.b, this.c, BD(a, 10));
120476 };
120477 _2.a = 0;
120478 _2.b = 0;
120479 _2.c = false;
120480 mdb(Ane, "EndLabelPreprocessor/lambda$1$Type", 1498);
120481 bcb(1499, 1, Oie, U3b);
120482 _2.Mb = function V3b(a) {
120483 return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), pad2));
120484 };
120485 mdb(Ane, "EndLabelPreprocessor/lambda$2$Type", 1499);
120486 bcb(1500, 1, qie, W3b);
120487 _2.td = function X3b(a) {
120488 Dsb(this.a, BD(a, 70));
120489 };
120490 mdb(Ane, "EndLabelPreprocessor/lambda$3$Type", 1500);
120491 bcb(1501, 1, Oie, Y3b);
120492 _2.Mb = function Z3b(a) {
120493 return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), oad));
120494 };
120495 mdb(Ane, "EndLabelPreprocessor/lambda$4$Type", 1501);
120496 bcb(1502, 1, qie, $3b);
120497 _2.td = function _3b(a) {
120498 Dsb(this.a, BD(a, 70));
120499 };
120500 mdb(Ane, "EndLabelPreprocessor/lambda$5$Type", 1502);
120501 bcb(1551, 1, ene, i4b);
120502 _2.pf = function j4b(a, b) {
120503 f4b(BD(a, 37), b);
120504 };
120505 var a4b;
120506 mdb(Ane, "EndLabelSorter", 1551);
120507 bcb(1552, 1, Dke, l4b);
120508 _2.ue = function m4b(a, b) {
120509 return k4b(BD(a, 456), BD(b, 456));
120510 };
120511 _2.Fb = function n4b(a) {
120512 return this === a;
120513 };
120514 _2.ve = function o4b() {
120515 return new tpb(this);
120516 };
120517 mdb(Ane, "EndLabelSorter/1", 1552);
120518 bcb(456, 1, { 456: 1 }, p4b);
120519 mdb(Ane, "EndLabelSorter/LabelGroup", 456);
120520 bcb(1553, 1, {}, q4b);
120521 _2.Kb = function r4b(a) {
120522 return b4b(), new YAb(null, new Kub(BD(a, 29).a, 16));
120523 };
120524 mdb(Ane, "EndLabelSorter/lambda$0$Type", 1553);
120525 bcb(1554, 1, Oie, s4b);
120526 _2.Mb = function t4b(a) {
120527 return b4b(), BD(a, 10).k == (j0b(), h0b);
120528 };
120529 mdb(Ane, "EndLabelSorter/lambda$1$Type", 1554);
120530 bcb(1555, 1, qie, u4b);
120531 _2.td = function v4b(a) {
120532 g4b(BD(a, 10));
120533 };
120534 mdb(Ane, "EndLabelSorter/lambda$2$Type", 1555);
120535 bcb(1556, 1, Oie, w4b);
120536 _2.Mb = function x4b(a) {
120537 return b4b(), PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), oad));
120538 };
120539 mdb(Ane, "EndLabelSorter/lambda$3$Type", 1556);
120540 bcb(1557, 1, Oie, y4b);
120541 _2.Mb = function z4b(a) {
120542 return b4b(), PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), pad2));
120543 };
120544 mdb(Ane, "EndLabelSorter/lambda$4$Type", 1557);
120545 bcb(1503, 1, ene, L4b);
120546 _2.pf = function M4b(a, b) {
120547 J4b(this, BD(a, 37));
120548 };
120549 _2.b = 0;
120550 _2.c = 0;
120551 mdb(Ane, "FinalSplineBendpointsCalculator", 1503);
120552 bcb(1504, 1, {}, N4b);
120553 _2.Kb = function O4b(a) {
120554 return new YAb(null, new Kub(BD(a, 29).a, 16));
120555 };
120556 mdb(Ane, "FinalSplineBendpointsCalculator/lambda$0$Type", 1504);
120557 bcb(1505, 1, {}, P4b);
120558 _2.Kb = function Q4b(a) {
120559 return new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
120560 };
120561 mdb(Ane, "FinalSplineBendpointsCalculator/lambda$1$Type", 1505);
120562 bcb(1506, 1, Oie, R4b);
120563 _2.Mb = function S4b(a) {
120564 return !OZb(BD(a, 17));
120565 };
120566 mdb(Ane, "FinalSplineBendpointsCalculator/lambda$2$Type", 1506);
120567 bcb(1507, 1, Oie, T4b);
120568 _2.Mb = function U4b(a) {
120569 return wNb(BD(a, 17), (wtc(), rtc));
120570 };
120571 mdb(Ane, "FinalSplineBendpointsCalculator/lambda$3$Type", 1507);
120572 bcb(1508, 1, qie, V4b);
120573 _2.td = function W4b(a) {
120574 C4b(this.a, BD(a, 128));
120575 };
120576 mdb(Ane, "FinalSplineBendpointsCalculator/lambda$4$Type", 1508);
120577 bcb(1509, 1, qie, X4b);
120578 _2.td = function Y4b(a) {
120579 smb(BD(a, 17).a);
120580 };
120581 mdb(Ane, "FinalSplineBendpointsCalculator/lambda$5$Type", 1509);
120582 bcb(792, 1, ene, u5b);
120583 _2.pf = function v5b(a, b) {
120584 l5b(this, BD(a, 37), b);
120585 };
120586 mdb(Ane, "GraphTransformer", 792);
120587 bcb(511, 22, { 3: 1, 35: 1, 22: 1, 511: 1 }, z5b);
120588 var w5b, x5b;
120589 var ZR = ndb(Ane, "GraphTransformer/Mode", 511, CI, B5b, A5b);
120590 var C5b;
120591 bcb(1510, 1, ene, I5b);
120592 _2.pf = function J5b(a, b) {
120593 F5b(BD(a, 37), b);
120594 };
120595 mdb(Ane, "HierarchicalNodeResizingProcessor", 1510);
120596 bcb(1511, 1, ene, Q5b);
120597 _2.pf = function R5b(a, b) {
120598 M5b(BD(a, 37), b);
120599 };
120600 mdb(Ane, "HierarchicalPortConstraintProcessor", 1511);
120601 bcb(1512, 1, Dke, T5b);
120602 _2.ue = function U5b(a, b) {
120603 return S5b(BD(a, 10), BD(b, 10));
120604 };
120605 _2.Fb = function V5b(a) {
120606 return this === a;
120607 };
120608 _2.ve = function W5b() {
120609 return new tpb(this);
120610 };
120611 mdb(Ane, "HierarchicalPortConstraintProcessor/NodeComparator", 1512);
120612 bcb(1513, 1, ene, Z5b);
120613 _2.pf = function $5b(a, b) {
120614 X5b(BD(a, 37), b);
120615 };
120616 mdb(Ane, "HierarchicalPortDummySizeProcessor", 1513);
120617 bcb(1514, 1, ene, l6b);
120618 _2.pf = function m6b(a, b) {
120619 e6b(this, BD(a, 37), b);
120620 };
120621 _2.a = 0;
120622 mdb(Ane, "HierarchicalPortOrthogonalEdgeRouter", 1514);
120623 bcb(1515, 1, Dke, o6b);
120624 _2.ue = function p6b(a, b) {
120625 return n6b(BD(a, 10), BD(b, 10));
120626 };
120627 _2.Fb = function q6b(a) {
120628 return this === a;
120629 };
120630 _2.ve = function r6b() {
120631 return new tpb(this);
120632 };
120633 mdb(Ane, "HierarchicalPortOrthogonalEdgeRouter/1", 1515);
120634 bcb(1516, 1, Dke, t6b);
120635 _2.ue = function u6b(a, b) {
120636 return s6b(BD(a, 10), BD(b, 10));
120637 };
120638 _2.Fb = function v6b(a) {
120639 return this === a;
120640 };
120641 _2.ve = function w6b() {
120642 return new tpb(this);
120643 };
120644 mdb(Ane, "HierarchicalPortOrthogonalEdgeRouter/2", 1516);
120645 bcb(1517, 1, ene, z6b);
120646 _2.pf = function A6b(a, b) {
120647 y6b(BD(a, 37), b);
120648 };
120649 mdb(Ane, "HierarchicalPortPositionProcessor", 1517);
120650 bcb(1518, 1, ene, J6b);
120651 _2.pf = function K6b(a, b) {
120652 I6b(this, BD(a, 37));
120653 };
120654 _2.a = 0;
120655 _2.c = 0;
120656 var B6b, C6b;
120657 mdb(Ane, "HighDegreeNodeLayeringProcessor", 1518);
120658 bcb(571, 1, { 571: 1 }, L6b);
120659 _2.b = -1;
120660 _2.d = -1;
120661 mdb(Ane, "HighDegreeNodeLayeringProcessor/HighDegreeNodeInformation", 571);
120662 bcb(1519, 1, {}, M6b);
120663 _2.Kb = function N6b(a) {
120664 return D6b(), R_b(BD(a, 10));
120665 };
120666 _2.Fb = function O6b(a) {
120667 return this === a;
120668 };
120669 mdb(Ane, "HighDegreeNodeLayeringProcessor/lambda$0$Type", 1519);
120670 bcb(1520, 1, {}, P6b);
120671 _2.Kb = function Q6b(a) {
120672 return D6b(), U_b(BD(a, 10));
120673 };
120674 _2.Fb = function R6b(a) {
120675 return this === a;
120676 };
120677 mdb(Ane, "HighDegreeNodeLayeringProcessor/lambda$1$Type", 1520);
120678 bcb(1526, 1, ene, X6b);
120679 _2.pf = function Y6b(a, b) {
120680 W6b(this, BD(a, 37), b);
120681 };
120682 mdb(Ane, "HyperedgeDummyMerger", 1526);
120683 bcb(793, 1, {}, Z6b);
120684 _2.a = false;
120685 _2.b = false;
120686 _2.c = false;
120687 mdb(Ane, "HyperedgeDummyMerger/MergeState", 793);
120688 bcb(1527, 1, {}, $6b);
120689 _2.Kb = function _6b(a) {
120690 return new YAb(null, new Kub(BD(a, 29).a, 16));
120691 };
120692 mdb(Ane, "HyperedgeDummyMerger/lambda$0$Type", 1527);
120693 bcb(1528, 1, {}, a7b);
120694 _2.Kb = function b7b(a) {
120695 return new YAb(null, new Kub(BD(a, 10).j, 16));
120696 };
120697 mdb(Ane, "HyperedgeDummyMerger/lambda$1$Type", 1528);
120698 bcb(1529, 1, qie, c7b);
120699 _2.td = function d7b(a) {
120700 BD(a, 11).p = -1;
120701 };
120702 mdb(Ane, "HyperedgeDummyMerger/lambda$2$Type", 1529);
120703 bcb(1530, 1, ene, g7b);
120704 _2.pf = function h7b(a, b) {
120705 f7b(BD(a, 37), b);
120706 };
120707 mdb(Ane, "HypernodesProcessor", 1530);
120708 bcb(1531, 1, ene, j7b);
120709 _2.pf = function k7b(a, b) {
120710 i7b(BD(a, 37), b);
120711 };
120712 mdb(Ane, "InLayerConstraintProcessor", 1531);
120713 bcb(1532, 1, ene, m7b);
120714 _2.pf = function n7b(a, b) {
120715 l7b(BD(a, 37), b);
120716 };
120717 mdb(Ane, "InnermostNodeMarginCalculator", 1532);
120718 bcb(1533, 1, ene, r7b);
120719 _2.pf = function w7b(a, b) {
120720 q7b(this, BD(a, 37));
120721 };
120722 _2.a = Qje;
120723 _2.b = Qje;
120724 _2.c = Pje;
120725 _2.d = Pje;
120726 var zS = mdb(Ane, "InteractiveExternalPortPositioner", 1533);
120727 bcb(1534, 1, {}, x7b);
120728 _2.Kb = function y7b(a) {
120729 return BD(a, 17).d.i;
120730 };
120731 _2.Fb = function z7b(a) {
120732 return this === a;
120733 };
120734 mdb(Ane, "InteractiveExternalPortPositioner/lambda$0$Type", 1534);
120735 bcb(1535, 1, {}, A7b);
120736 _2.Kb = function B7b(a) {
120737 return s7b(this.a, ED(a));
120738 };
120739 _2.Fb = function C7b(a) {
120740 return this === a;
120741 };
120742 mdb(Ane, "InteractiveExternalPortPositioner/lambda$1$Type", 1535);
120743 bcb(1536, 1, {}, D7b);
120744 _2.Kb = function E7b(a) {
120745 return BD(a, 17).c.i;
120746 };
120747 _2.Fb = function F7b(a) {
120748 return this === a;
120749 };
120750 mdb(Ane, "InteractiveExternalPortPositioner/lambda$2$Type", 1536);
120751 bcb(1537, 1, {}, G7b);
120752 _2.Kb = function H7b(a) {
120753 return t7b(this.a, ED(a));
120754 };
120755 _2.Fb = function I7b(a) {
120756 return this === a;
120757 };
120758 mdb(Ane, "InteractiveExternalPortPositioner/lambda$3$Type", 1537);
120759 bcb(1538, 1, {}, J7b);
120760 _2.Kb = function K7b(a) {
120761 return u7b(this.a, ED(a));
120762 };
120763 _2.Fb = function L7b(a) {
120764 return this === a;
120765 };
120766 mdb(Ane, "InteractiveExternalPortPositioner/lambda$4$Type", 1538);
120767 bcb(1539, 1, {}, M7b);
120768 _2.Kb = function N7b(a) {
120769 return v7b(this.a, ED(a));
120770 };
120771 _2.Fb = function O7b(a) {
120772 return this === a;
120773 };
120774 mdb(Ane, "InteractiveExternalPortPositioner/lambda$5$Type", 1539);
120775 bcb(77, 22, { 3: 1, 35: 1, 22: 1, 77: 1, 234: 1 }, T8b);
120776 _2.Kf = function U8b() {
120777 switch (this.g) {
120778 case 15:
120779 return new eoc();
120780 case 22:
120781 return new Aoc();
120782 case 47:
120783 return new Joc();
120784 case 28:
120785 case 35:
120786 return new uac();
120787 case 32:
120788 return new S2b();
120789 case 42:
120790 return new _2b();
120791 case 1:
120792 return new e3b();
120793 case 41:
120794 return new h3b();
120795 case 56:
120796 return new u5b((y5b(), x5b));
120797 case 0:
120798 return new u5b((y5b(), w5b));
120799 case 2:
120800 return new p3b();
120801 case 54:
120802 return new t3b();
120803 case 33:
120804 return new M3b();
120805 case 51:
120806 return new L4b();
120807 case 55:
120808 return new I5b();
120809 case 13:
120810 return new Q5b();
120811 case 38:
120812 return new Z5b();
120813 case 44:
120814 return new l6b();
120815 case 40:
120816 return new z6b();
120817 case 9:
120818 return new J6b();
120819 case 49:
120820 return new sgc();
120821 case 37:
120822 return new X6b();
120823 case 43:
120824 return new g7b();
120825 case 27:
120826 return new j7b();
120827 case 30:
120828 return new m7b();
120829 case 3:
120830 return new r7b();
120831 case 18:
120832 return new b9b();
120833 case 29:
120834 return new h9b();
120835 case 5:
120836 return new u9b();
120837 case 50:
120838 return new D9b();
120839 case 34:
120840 return new $9b();
120841 case 36:
120842 return new Iac();
120843 case 52:
120844 return new i4b();
120845 case 11:
120846 return new Sac();
120847 case 7:
120848 return new abc();
120849 case 39:
120850 return new obc();
120851 case 45:
120852 return new rbc();
120853 case 16:
120854 return new vbc();
120855 case 10:
120856 return new Fbc();
120857 case 48:
120858 return new Xbc();
120859 case 21:
120860 return new ccc();
120861 case 23:
120862 return new fGc((rGc(), pGc));
120863 case 8:
120864 return new lcc();
120865 case 12:
120866 return new tcc();
120867 case 4:
120868 return new ycc();
120869 case 19:
120870 return new Tcc();
120871 case 17:
120872 return new pdc();
120873 case 53:
120874 return new sdc();
120875 case 6:
120876 return new hec();
120877 case 25:
120878 return new wdc();
120879 case 46:
120880 return new Ndc();
120881 case 31:
120882 return new sec();
120883 case 14:
120884 return new Fec();
120885 case 26:
120886 return new ppc();
120887 case 20:
120888 return new Uec();
120889 case 24:
120890 return new fGc((rGc(), qGc));
120891 default:
120892 throw vbb(new Wdb(Dne + (this.f != null ? this.f : "" + this.g)));
120893 }
120894 };
120895 var P7b, Q7b, R7b, S7b, T7b, U7b, V7b, W7b, X7b, Y7b, Z7b, $7b, _7b, a8b, b8b, c8b, d8b, e8b, f8b, g8b, h8b, i8b, j8b, k8b, l8b, m8b, n8b, o8b, p8b, q8b, r8b, s8b, t8b, u8b, v8b, w8b, x8b, y8b, z8b, A8b, B8b, C8b, D8b, E8b, F8b, G8b, H8b, I8b, J8b, K8b, L8b, M8b, N8b, O8b, P8b, Q8b, R8b;
120896 var AS = ndb(Ane, Ene, 77, CI, W8b, V8b);
120897 var X8b;
120898 bcb(1540, 1, ene, b9b);
120899 _2.pf = function c9b(a, b) {
120900 _8b(BD(a, 37), b);
120901 };
120902 mdb(Ane, "InvertedPortProcessor", 1540);
120903 bcb(1541, 1, ene, h9b);
120904 _2.pf = function i9b(a, b) {
120905 g9b(BD(a, 37), b);
120906 };
120907 mdb(Ane, "LabelAndNodeSizeProcessor", 1541);
120908 bcb(1542, 1, Oie, j9b);
120909 _2.Mb = function k9b(a) {
120910 return BD(a, 10).k == (j0b(), h0b);
120911 };
120912 mdb(Ane, "LabelAndNodeSizeProcessor/lambda$0$Type", 1542);
120913 bcb(1543, 1, Oie, l9b);
120914 _2.Mb = function m9b(a) {
120915 return BD(a, 10).k == (j0b(), e0b);
120916 };
120917 mdb(Ane, "LabelAndNodeSizeProcessor/lambda$1$Type", 1543);
120918 bcb(1544, 1, qie, n9b);
120919 _2.td = function o9b(a) {
120920 e9b(this.b, this.a, this.c, BD(a, 10));
120921 };
120922 _2.a = false;
120923 _2.c = false;
120924 mdb(Ane, "LabelAndNodeSizeProcessor/lambda$2$Type", 1544);
120925 bcb(1545, 1, ene, u9b);
120926 _2.pf = function v9b(a, b) {
120927 s9b(BD(a, 37), b);
120928 };
120929 var p9b;
120930 mdb(Ane, "LabelDummyInserter", 1545);
120931 bcb(1546, 1, Vke, w9b);
120932 _2.Lb = function x9b(a) {
120933 return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), nad));
120934 };
120935 _2.Fb = function y9b(a) {
120936 return this === a;
120937 };
120938 _2.Mb = function z9b(a) {
120939 return PD(vNb(BD(a, 70), (Nyc(), Qwc))) === PD((qad(), nad));
120940 };
120941 mdb(Ane, "LabelDummyInserter/1", 1546);
120942 bcb(1547, 1, ene, D9b);
120943 _2.pf = function E9b(a, b) {
120944 C9b(BD(a, 37), b);
120945 };
120946 mdb(Ane, "LabelDummyRemover", 1547);
120947 bcb(1548, 1, Oie, F9b);
120948 _2.Mb = function G9b(a) {
120949 return Ccb(DD(vNb(BD(a, 70), (Nyc(), Pwc))));
120950 };
120951 mdb(Ane, "LabelDummyRemover/lambda$0$Type", 1548);
120952 bcb(1359, 1, ene, $9b);
120953 _2.pf = function cac(a, b) {
120954 W9b(this, BD(a, 37), b);
120955 };
120956 _2.a = null;
120957 var H9b;
120958 mdb(Ane, "LabelDummySwitcher", 1359);
120959 bcb(286, 1, { 286: 1 }, gac);
120960 _2.c = 0;
120961 _2.d = null;
120962 _2.f = 0;
120963 mdb(Ane, "LabelDummySwitcher/LabelDummyInfo", 286);
120964 bcb(1360, 1, {}, hac);
120965 _2.Kb = function iac(a) {
120966 return I9b(), new YAb(null, new Kub(BD(a, 29).a, 16));
120967 };
120968 mdb(Ane, "LabelDummySwitcher/lambda$0$Type", 1360);
120969 bcb(1361, 1, Oie, jac);
120970 _2.Mb = function kac(a) {
120971 return I9b(), BD(a, 10).k == (j0b(), f0b);
120972 };
120973 mdb(Ane, "LabelDummySwitcher/lambda$1$Type", 1361);
120974 bcb(1362, 1, {}, lac);
120975 _2.Kb = function mac(a) {
120976 return _9b(this.a, BD(a, 10));
120977 };
120978 mdb(Ane, "LabelDummySwitcher/lambda$2$Type", 1362);
120979 bcb(1363, 1, qie, nac);
120980 _2.td = function oac(a) {
120981 aac(this.a, BD(a, 286));
120982 };
120983 mdb(Ane, "LabelDummySwitcher/lambda$3$Type", 1363);
120984 bcb(1364, 1, Dke, pac);
120985 _2.ue = function qac(a, b) {
120986 return bac(BD(a, 286), BD(b, 286));
120987 };
120988 _2.Fb = function rac(a) {
120989 return this === a;
120990 };
120991 _2.ve = function sac() {
120992 return new tpb(this);
120993 };
120994 mdb(Ane, "LabelDummySwitcher/lambda$4$Type", 1364);
120995 bcb(791, 1, ene, uac);
120996 _2.pf = function vac(a, b) {
120997 tac(BD(a, 37), b);
120998 };
120999 mdb(Ane, "LabelManagementProcessor", 791);
121000 bcb(1549, 1, ene, Iac);
121001 _2.pf = function Jac(a, b) {
121002 Cac(BD(a, 37), b);
121003 };
121004 mdb(Ane, "LabelSideSelector", 1549);
121005 bcb(1550, 1, Oie, Kac);
121006 _2.Mb = function Lac(a) {
121007 return Ccb(DD(vNb(BD(a, 70), (Nyc(), Pwc))));
121008 };
121009 mdb(Ane, "LabelSideSelector/lambda$0$Type", 1550);
121010 bcb(1558, 1, ene, Sac);
121011 _2.pf = function Tac(a, b) {
121012 Oac(BD(a, 37), b);
121013 };
121014 mdb(Ane, "LayerConstraintPostprocessor", 1558);
121015 bcb(1559, 1, ene, abc);
121016 _2.pf = function bbc(a, b) {
121017 $ac(BD(a, 37), b);
121018 };
121019 var Uac;
121020 mdb(Ane, "LayerConstraintPreprocessor", 1559);
121021 bcb(360, 22, { 3: 1, 35: 1, 22: 1, 360: 1 }, ibc);
121022 var cbc, dbc, ebc, fbc;
121023 var VS = ndb(Ane, "LayerConstraintPreprocessor/HiddenNodeConnections", 360, CI, kbc, jbc);
121024 var lbc;
121025 bcb(1560, 1, ene, obc);
121026 _2.pf = function pbc(a, b) {
121027 nbc(BD(a, 37), b);
121028 };
121029 mdb(Ane, "LayerSizeAndGraphHeightCalculator", 1560);
121030 bcb(1561, 1, ene, rbc);
121031 _2.pf = function tbc(a, b) {
121032 qbc(BD(a, 37), b);
121033 };
121034 mdb(Ane, "LongEdgeJoiner", 1561);
121035 bcb(1562, 1, ene, vbc);
121036 _2.pf = function xbc(a, b) {
121037 ubc(BD(a, 37), b);
121038 };
121039 mdb(Ane, "LongEdgeSplitter", 1562);
121040 bcb(1563, 1, ene, Fbc);
121041 _2.pf = function Ibc(a, b) {
121042 Bbc(this, BD(a, 37), b);
121043 };
121044 _2.d = 0;
121045 _2.e = 0;
121046 _2.i = 0;
121047 _2.j = 0;
121048 _2.k = 0;
121049 _2.n = 0;
121050 mdb(Ane, "NodePromotion", 1563);
121051 bcb(1564, 1, {}, Jbc);
121052 _2.Kb = function Kbc(a) {
121053 return BD(a, 46), Bcb(), true;
121054 };
121055 _2.Fb = function Lbc(a) {
121056 return this === a;
121057 };
121058 mdb(Ane, "NodePromotion/lambda$0$Type", 1564);
121059 bcb(1565, 1, {}, Mbc);
121060 _2.Kb = function Nbc(a) {
121061 return Gbc(this.a, BD(a, 46));
121062 };
121063 _2.Fb = function Obc(a) {
121064 return this === a;
121065 };
121066 _2.a = 0;
121067 mdb(Ane, "NodePromotion/lambda$1$Type", 1565);
121068 bcb(1566, 1, {}, Pbc);
121069 _2.Kb = function Qbc(a) {
121070 return Hbc(this.a, BD(a, 46));
121071 };
121072 _2.Fb = function Rbc(a) {
121073 return this === a;
121074 };
121075 _2.a = 0;
121076 mdb(Ane, "NodePromotion/lambda$2$Type", 1566);
121077 bcb(1567, 1, ene, Xbc);
121078 _2.pf = function Ybc(a, b) {
121079 Sbc(BD(a, 37), b);
121080 };
121081 mdb(Ane, "NorthSouthPortPostprocessor", 1567);
121082 bcb(1568, 1, ene, ccc);
121083 _2.pf = function ecc(a, b) {
121084 acc(BD(a, 37), b);
121085 };
121086 mdb(Ane, "NorthSouthPortPreprocessor", 1568);
121087 bcb(1569, 1, Dke, fcc);
121088 _2.ue = function gcc(a, b) {
121089 return dcc(BD(a, 11), BD(b, 11));
121090 };
121091 _2.Fb = function hcc(a) {
121092 return this === a;
121093 };
121094 _2.ve = function icc() {
121095 return new tpb(this);
121096 };
121097 mdb(Ane, "NorthSouthPortPreprocessor/lambda$0$Type", 1569);
121098 bcb(1570, 1, ene, lcc);
121099 _2.pf = function ncc(a, b) {
121100 kcc(BD(a, 37), b);
121101 };
121102 mdb(Ane, "PartitionMidprocessor", 1570);
121103 bcb(1571, 1, Oie, occ);
121104 _2.Mb = function pcc(a) {
121105 return wNb(BD(a, 10), (Nyc(), Nxc));
121106 };
121107 mdb(Ane, "PartitionMidprocessor/lambda$0$Type", 1571);
121108 bcb(1572, 1, qie, qcc);
121109 _2.td = function rcc(a) {
121110 mcc(this.a, BD(a, 10));
121111 };
121112 mdb(Ane, "PartitionMidprocessor/lambda$1$Type", 1572);
121113 bcb(1573, 1, ene, tcc);
121114 _2.pf = function ucc(a, b) {
121115 scc(BD(a, 37), b);
121116 };
121117 mdb(Ane, "PartitionPostprocessor", 1573);
121118 bcb(1574, 1, ene, ycc);
121119 _2.pf = function zcc(a, b) {
121120 wcc(BD(a, 37), b);
121121 };
121122 mdb(Ane, "PartitionPreprocessor", 1574);
121123 bcb(1575, 1, Oie, Acc);
121124 _2.Mb = function Bcc(a) {
121125 return wNb(BD(a, 10), (Nyc(), Nxc));
121126 };
121127 mdb(Ane, "PartitionPreprocessor/lambda$0$Type", 1575);
121128 bcb(1576, 1, {}, Ccc);
121129 _2.Kb = function Dcc(a) {
121130 return new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
121131 };
121132 mdb(Ane, "PartitionPreprocessor/lambda$1$Type", 1576);
121133 bcb(1577, 1, Oie, Ecc);
121134 _2.Mb = function Fcc(a) {
121135 return vcc(BD(a, 17));
121136 };
121137 mdb(Ane, "PartitionPreprocessor/lambda$2$Type", 1577);
121138 bcb(1578, 1, qie, Gcc);
121139 _2.td = function Hcc(a) {
121140 xcc(BD(a, 17));
121141 };
121142 mdb(Ane, "PartitionPreprocessor/lambda$3$Type", 1578);
121143 bcb(1579, 1, ene, Tcc);
121144 _2.pf = function Xcc(a, b) {
121145 Qcc(BD(a, 37), b);
121146 };
121147 var Icc, Jcc, Kcc, Lcc, Mcc, Ncc;
121148 mdb(Ane, "PortListSorter", 1579);
121149 bcb(1580, 1, {}, Zcc);
121150 _2.Kb = function $cc(a) {
121151 return Occ(), BD(a, 11).e;
121152 };
121153 mdb(Ane, "PortListSorter/lambda$0$Type", 1580);
121154 bcb(1581, 1, {}, _cc);
121155 _2.Kb = function adc(a) {
121156 return Occ(), BD(a, 11).g;
121157 };
121158 mdb(Ane, "PortListSorter/lambda$1$Type", 1581);
121159 bcb(1582, 1, Dke, bdc);
121160 _2.ue = function cdc(a, b) {
121161 return Ucc(BD(a, 11), BD(b, 11));
121162 };
121163 _2.Fb = function ddc(a) {
121164 return this === a;
121165 };
121166 _2.ve = function edc() {
121167 return new tpb(this);
121168 };
121169 mdb(Ane, "PortListSorter/lambda$2$Type", 1582);
121170 bcb(1583, 1, Dke, fdc);
121171 _2.ue = function gdc(a, b) {
121172 return Vcc(BD(a, 11), BD(b, 11));
121173 };
121174 _2.Fb = function hdc(a) {
121175 return this === a;
121176 };
121177 _2.ve = function idc() {
121178 return new tpb(this);
121179 };
121180 mdb(Ane, "PortListSorter/lambda$3$Type", 1583);
121181 bcb(1584, 1, Dke, jdc);
121182 _2.ue = function kdc(a, b) {
121183 return Wcc(BD(a, 11), BD(b, 11));
121184 };
121185 _2.Fb = function ldc(a) {
121186 return this === a;
121187 };
121188 _2.ve = function mdc() {
121189 return new tpb(this);
121190 };
121191 mdb(Ane, "PortListSorter/lambda$4$Type", 1584);
121192 bcb(1585, 1, ene, pdc);
121193 _2.pf = function qdc(a, b) {
121194 ndc(BD(a, 37), b);
121195 };
121196 mdb(Ane, "PortSideProcessor", 1585);
121197 bcb(1586, 1, ene, sdc);
121198 _2.pf = function tdc(a, b) {
121199 rdc(BD(a, 37), b);
121200 };
121201 mdb(Ane, "ReversedEdgeRestorer", 1586);
121202 bcb(1591, 1, ene, wdc);
121203 _2.pf = function xdc(a, b) {
121204 udc(this, BD(a, 37), b);
121205 };
121206 mdb(Ane, "SelfLoopPortRestorer", 1591);
121207 bcb(1592, 1, {}, ydc);
121208 _2.Kb = function zdc(a) {
121209 return new YAb(null, new Kub(BD(a, 29).a, 16));
121210 };
121211 mdb(Ane, "SelfLoopPortRestorer/lambda$0$Type", 1592);
121212 bcb(1593, 1, Oie, Adc);
121213 _2.Mb = function Bdc(a) {
121214 return BD(a, 10).k == (j0b(), h0b);
121215 };
121216 mdb(Ane, "SelfLoopPortRestorer/lambda$1$Type", 1593);
121217 bcb(1594, 1, Oie, Cdc);
121218 _2.Mb = function Ddc(a) {
121219 return wNb(BD(a, 10), (wtc(), ntc));
121220 };
121221 mdb(Ane, "SelfLoopPortRestorer/lambda$2$Type", 1594);
121222 bcb(1595, 1, {}, Edc);
121223 _2.Kb = function Fdc(a) {
121224 return BD(vNb(BD(a, 10), (wtc(), ntc)), 403);
121225 };
121226 mdb(Ane, "SelfLoopPortRestorer/lambda$3$Type", 1595);
121227 bcb(1596, 1, qie, Gdc);
121228 _2.td = function Hdc(a) {
121229 vdc(this.a, BD(a, 403));
121230 };
121231 mdb(Ane, "SelfLoopPortRestorer/lambda$4$Type", 1596);
121232 bcb(794, 1, qie, Idc);
121233 _2.td = function Jdc(a) {
121234 ljc(BD(a, 101));
121235 };
121236 mdb(Ane, "SelfLoopPortRestorer/lambda$5$Type", 794);
121237 bcb(1597, 1, ene, Ndc);
121238 _2.pf = function Pdc(a, b) {
121239 Kdc(BD(a, 37), b);
121240 };
121241 mdb(Ane, "SelfLoopPostProcessor", 1597);
121242 bcb(1598, 1, {}, Qdc);
121243 _2.Kb = function Rdc(a) {
121244 return new YAb(null, new Kub(BD(a, 29).a, 16));
121245 };
121246 mdb(Ane, "SelfLoopPostProcessor/lambda$0$Type", 1598);
121247 bcb(1599, 1, Oie, Sdc);
121248 _2.Mb = function Tdc(a) {
121249 return BD(a, 10).k == (j0b(), h0b);
121250 };
121251 mdb(Ane, "SelfLoopPostProcessor/lambda$1$Type", 1599);
121252 bcb(1600, 1, Oie, Udc);
121253 _2.Mb = function Vdc(a) {
121254 return wNb(BD(a, 10), (wtc(), ntc));
121255 };
121256 mdb(Ane, "SelfLoopPostProcessor/lambda$2$Type", 1600);
121257 bcb(1601, 1, qie, Wdc);
121258 _2.td = function Xdc(a) {
121259 Ldc(BD(a, 10));
121260 };
121261 mdb(Ane, "SelfLoopPostProcessor/lambda$3$Type", 1601);
121262 bcb(1602, 1, {}, Ydc);
121263 _2.Kb = function Zdc(a) {
121264 return new YAb(null, new Kub(BD(a, 101).f, 1));
121265 };
121266 mdb(Ane, "SelfLoopPostProcessor/lambda$4$Type", 1602);
121267 bcb(1603, 1, qie, $dc);
121268 _2.td = function _dc(a) {
121269 Mdc(this.a, BD(a, 409));
121270 };
121271 mdb(Ane, "SelfLoopPostProcessor/lambda$5$Type", 1603);
121272 bcb(1604, 1, Oie, aec);
121273 _2.Mb = function bec(a) {
121274 return !!BD(a, 101).i;
121275 };
121276 mdb(Ane, "SelfLoopPostProcessor/lambda$6$Type", 1604);
121277 bcb(1605, 1, qie, cec);
121278 _2.td = function dec(a) {
121279 Odc(this.a, BD(a, 101));
121280 };
121281 mdb(Ane, "SelfLoopPostProcessor/lambda$7$Type", 1605);
121282 bcb(1587, 1, ene, hec);
121283 _2.pf = function iec(a, b) {
121284 gec(BD(a, 37), b);
121285 };
121286 mdb(Ane, "SelfLoopPreProcessor", 1587);
121287 bcb(1588, 1, {}, jec);
121288 _2.Kb = function kec(a) {
121289 return new YAb(null, new Kub(BD(a, 101).f, 1));
121290 };
121291 mdb(Ane, "SelfLoopPreProcessor/lambda$0$Type", 1588);
121292 bcb(1589, 1, {}, lec);
121293 _2.Kb = function mec(a) {
121294 return BD(a, 409).a;
121295 };
121296 mdb(Ane, "SelfLoopPreProcessor/lambda$1$Type", 1589);
121297 bcb(1590, 1, qie, nec);
121298 _2.td = function oec(a) {
121299 fec(BD(a, 17));
121300 };
121301 mdb(Ane, "SelfLoopPreProcessor/lambda$2$Type", 1590);
121302 bcb(1606, 1, ene, sec);
121303 _2.pf = function tec(a, b) {
121304 qec(this, BD(a, 37), b);
121305 };
121306 mdb(Ane, "SelfLoopRouter", 1606);
121307 bcb(1607, 1, {}, uec);
121308 _2.Kb = function vec(a) {
121309 return new YAb(null, new Kub(BD(a, 29).a, 16));
121310 };
121311 mdb(Ane, "SelfLoopRouter/lambda$0$Type", 1607);
121312 bcb(1608, 1, Oie, wec);
121313 _2.Mb = function xec(a) {
121314 return BD(a, 10).k == (j0b(), h0b);
121315 };
121316 mdb(Ane, "SelfLoopRouter/lambda$1$Type", 1608);
121317 bcb(1609, 1, Oie, yec);
121318 _2.Mb = function zec(a) {
121319 return wNb(BD(a, 10), (wtc(), ntc));
121320 };
121321 mdb(Ane, "SelfLoopRouter/lambda$2$Type", 1609);
121322 bcb(1610, 1, {}, Aec);
121323 _2.Kb = function Bec(a) {
121324 return BD(vNb(BD(a, 10), (wtc(), ntc)), 403);
121325 };
121326 mdb(Ane, "SelfLoopRouter/lambda$3$Type", 1610);
121327 bcb(1611, 1, qie, Cec);
121328 _2.td = function Dec(a) {
121329 pec(this.a, this.b, BD(a, 403));
121330 };
121331 mdb(Ane, "SelfLoopRouter/lambda$4$Type", 1611);
121332 bcb(1612, 1, ene, Fec);
121333 _2.pf = function Iec(a, b) {
121334 Eec(BD(a, 37), b);
121335 };
121336 mdb(Ane, "SemiInteractiveCrossMinProcessor", 1612);
121337 bcb(1613, 1, Oie, Jec);
121338 _2.Mb = function Kec(a) {
121339 return BD(a, 10).k == (j0b(), h0b);
121340 };
121341 mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$0$Type", 1613);
121342 bcb(1614, 1, Oie, Lec);
121343 _2.Mb = function Mec(a) {
121344 return uNb(BD(a, 10))._b((Nyc(), ayc));
121345 };
121346 mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$1$Type", 1614);
121347 bcb(1615, 1, Dke, Nec);
121348 _2.ue = function Oec(a, b) {
121349 return Gec(BD(a, 10), BD(b, 10));
121350 };
121351 _2.Fb = function Pec(a) {
121352 return this === a;
121353 };
121354 _2.ve = function Qec() {
121355 return new tpb(this);
121356 };
121357 mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$2$Type", 1615);
121358 bcb(1616, 1, {}, Rec);
121359 _2.Ce = function Sec(a, b) {
121360 return Hec(BD(a, 10), BD(b, 10));
121361 };
121362 mdb(Ane, "SemiInteractiveCrossMinProcessor/lambda$3$Type", 1616);
121363 bcb(1618, 1, ene, Uec);
121364 _2.pf = function Yec(a, b) {
121365 Tec(BD(a, 37), b);
121366 };
121367 mdb(Ane, "SortByInputModelProcessor", 1618);
121368 bcb(1619, 1, Oie, Zec);
121369 _2.Mb = function $ec(a) {
121370 return BD(a, 11).g.c.length != 0;
121371 };
121372 mdb(Ane, "SortByInputModelProcessor/lambda$0$Type", 1619);
121373 bcb(1620, 1, qie, _ec);
121374 _2.td = function afc(a) {
121375 Wec(this.a, BD(a, 11));
121376 };
121377 mdb(Ane, "SortByInputModelProcessor/lambda$1$Type", 1620);
121378 bcb(1693, 803, {}, jfc);
121379 _2.Me = function kfc(a) {
121380 var b, c2, d, e;
121381 this.c = a;
121382 switch (this.a.g) {
121383 case 2:
121384 b = new Rkb();
121385 MAb(JAb(new YAb(null, new Kub(this.c.a.b, 16)), new lgc()), new ngc(this, b));
121386 nEb(this, new tfc());
121387 Hkb(b, new xfc());
121388 b.c = KC(SI, Uhe, 1, 0, 5, 1);
121389 MAb(JAb(new YAb(null, new Kub(this.c.a.b, 16)), new zfc()), new Bfc(b));
121390 nEb(this, new Ffc());
121391 Hkb(b, new Jfc());
121392 b.c = KC(SI, Uhe, 1, 0, 5, 1);
121393 c2 = Ntb($zb(OAb(new YAb(null, new Kub(this.c.a.b, 16)), new Lfc(this))), new Nfc());
121394 MAb(new YAb(null, new Kub(this.c.a.a, 16)), new Rfc(c2, b));
121395 nEb(this, new Vfc());
121396 Hkb(b, new Zfc());
121397 b.c = KC(SI, Uhe, 1, 0, 5, 1);
121398 break;
121399 case 3:
121400 d = new Rkb();
121401 nEb(this, new lfc());
121402 e = Ntb($zb(OAb(new YAb(null, new Kub(this.c.a.b, 16)), new pfc(this))), new Pfc());
121403 MAb(JAb(new YAb(null, new Kub(this.c.a.b, 16)), new _fc()), new bgc(e, d));
121404 nEb(this, new fgc());
121405 Hkb(d, new jgc());
121406 d.c = KC(SI, Uhe, 1, 0, 5, 1);
121407 break;
121408 default:
121409 throw vbb(new x2c());
121410 }
121411 };
121412 _2.b = 0;
121413 mdb(Jne, "EdgeAwareScanlineConstraintCalculation", 1693);
121414 bcb(1694, 1, Vke, lfc);
121415 _2.Lb = function mfc(a) {
121416 return JD(BD(a, 57).g, 145);
121417 };
121418 _2.Fb = function nfc(a) {
121419 return this === a;
121420 };
121421 _2.Mb = function ofc(a) {
121422 return JD(BD(a, 57).g, 145);
121423 };
121424 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$0$Type", 1694);
121425 bcb(1695, 1, {}, pfc);
121426 _2.Fe = function qfc(a) {
121427 return dfc(this.a, BD(a, 57));
121428 };
121429 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$1$Type", 1695);
121430 bcb(1703, 1, Pie, rfc);
121431 _2.Vd = function sfc() {
121432 cfc(this.a, this.b, -1);
121433 };
121434 _2.b = 0;
121435 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$10$Type", 1703);
121436 bcb(1705, 1, Vke, tfc);
121437 _2.Lb = function ufc(a) {
121438 return JD(BD(a, 57).g, 145);
121439 };
121440 _2.Fb = function vfc(a) {
121441 return this === a;
121442 };
121443 _2.Mb = function wfc(a) {
121444 return JD(BD(a, 57).g, 145);
121445 };
121446 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$11$Type", 1705);
121447 bcb(1706, 1, qie, xfc);
121448 _2.td = function yfc(a) {
121449 BD(a, 365).Vd();
121450 };
121451 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$12$Type", 1706);
121452 bcb(1707, 1, Oie, zfc);
121453 _2.Mb = function Afc(a) {
121454 return JD(BD(a, 57).g, 10);
121455 };
121456 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$13$Type", 1707);
121457 bcb(1709, 1, qie, Bfc);
121458 _2.td = function Cfc(a) {
121459 efc(this.a, BD(a, 57));
121460 };
121461 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$14$Type", 1709);
121462 bcb(1708, 1, Pie, Dfc);
121463 _2.Vd = function Efc() {
121464 cfc(this.b, this.a, -1);
121465 };
121466 _2.a = 0;
121467 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$15$Type", 1708);
121468 bcb(1710, 1, Vke, Ffc);
121469 _2.Lb = function Gfc(a) {
121470 return JD(BD(a, 57).g, 10);
121471 };
121472 _2.Fb = function Hfc(a) {
121473 return this === a;
121474 };
121475 _2.Mb = function Ifc(a) {
121476 return JD(BD(a, 57).g, 10);
121477 };
121478 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$16$Type", 1710);
121479 bcb(1711, 1, qie, Jfc);
121480 _2.td = function Kfc(a) {
121481 BD(a, 365).Vd();
121482 };
121483 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$17$Type", 1711);
121484 bcb(1712, 1, {}, Lfc);
121485 _2.Fe = function Mfc(a) {
121486 return ffc(this.a, BD(a, 57));
121487 };
121488 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$18$Type", 1712);
121489 bcb(1713, 1, {}, Nfc);
121490 _2.De = function Ofc() {
121491 return 0;
121492 };
121493 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$19$Type", 1713);
121494 bcb(1696, 1, {}, Pfc);
121495 _2.De = function Qfc() {
121496 return 0;
121497 };
121498 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$2$Type", 1696);
121499 bcb(1715, 1, qie, Rfc);
121500 _2.td = function Sfc(a) {
121501 gfc(this.a, this.b, BD(a, 307));
121502 };
121503 _2.a = 0;
121504 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$20$Type", 1715);
121505 bcb(1714, 1, Pie, Tfc);
121506 _2.Vd = function Ufc() {
121507 bfc(this.a, this.b, -1);
121508 };
121509 _2.b = 0;
121510 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$21$Type", 1714);
121511 bcb(1716, 1, Vke, Vfc);
121512 _2.Lb = function Wfc(a) {
121513 return BD(a, 57), true;
121514 };
121515 _2.Fb = function Xfc(a) {
121516 return this === a;
121517 };
121518 _2.Mb = function Yfc(a) {
121519 return BD(a, 57), true;
121520 };
121521 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$22$Type", 1716);
121522 bcb(1717, 1, qie, Zfc);
121523 _2.td = function $fc(a) {
121524 BD(a, 365).Vd();
121525 };
121526 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$23$Type", 1717);
121527 bcb(1697, 1, Oie, _fc);
121528 _2.Mb = function agc(a) {
121529 return JD(BD(a, 57).g, 10);
121530 };
121531 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$3$Type", 1697);
121532 bcb(1699, 1, qie, bgc);
121533 _2.td = function cgc(a) {
121534 hfc(this.a, this.b, BD(a, 57));
121535 };
121536 _2.a = 0;
121537 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$4$Type", 1699);
121538 bcb(1698, 1, Pie, dgc);
121539 _2.Vd = function egc() {
121540 cfc(this.b, this.a, -1);
121541 };
121542 _2.a = 0;
121543 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$5$Type", 1698);
121544 bcb(1700, 1, Vke, fgc);
121545 _2.Lb = function ggc(a) {
121546 return BD(a, 57), true;
121547 };
121548 _2.Fb = function hgc(a) {
121549 return this === a;
121550 };
121551 _2.Mb = function igc(a) {
121552 return BD(a, 57), true;
121553 };
121554 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$6$Type", 1700);
121555 bcb(1701, 1, qie, jgc);
121556 _2.td = function kgc(a) {
121557 BD(a, 365).Vd();
121558 };
121559 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$7$Type", 1701);
121560 bcb(1702, 1, Oie, lgc);
121561 _2.Mb = function mgc(a) {
121562 return JD(BD(a, 57).g, 145);
121563 };
121564 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$8$Type", 1702);
121565 bcb(1704, 1, qie, ngc);
121566 _2.td = function ogc(a) {
121567 ifc(this.a, this.b, BD(a, 57));
121568 };
121569 mdb(Jne, "EdgeAwareScanlineConstraintCalculation/lambda$9$Type", 1704);
121570 bcb(1521, 1, ene, sgc);
121571 _2.pf = function xgc(a, b) {
121572 rgc(this, BD(a, 37), b);
121573 };
121574 var pgc;
121575 mdb(Jne, "HorizontalGraphCompactor", 1521);
121576 bcb(1522, 1, {}, ygc);
121577 _2.Oe = function zgc(a, b) {
121578 var c2, d, e;
121579 if (vgc(a, b)) {
121580 return 0;
121581 }
121582 c2 = tgc(a);
121583 d = tgc(b);
121584 if (!!c2 && c2.k == (j0b(), e0b) || !!d && d.k == (j0b(), e0b)) {
121585 return 0;
121586 }
121587 e = BD(vNb(this.a.a, (wtc(), otc)), 304);
121588 return fBc(e, c2 ? c2.k : (j0b(), g0b), d ? d.k : (j0b(), g0b));
121589 };
121590 _2.Pe = function Agc(a, b) {
121591 var c2, d, e;
121592 if (vgc(a, b)) {
121593 return 1;
121594 }
121595 c2 = tgc(a);
121596 d = tgc(b);
121597 e = BD(vNb(this.a.a, (wtc(), otc)), 304);
121598 return iBc(e, c2 ? c2.k : (j0b(), g0b), d ? d.k : (j0b(), g0b));
121599 };
121600 mdb(Jne, "HorizontalGraphCompactor/1", 1522);
121601 bcb(1523, 1, {}, Bgc);
121602 _2.Ne = function Cgc(a, b) {
121603 return qgc(), a.a.i == 0;
121604 };
121605 mdb(Jne, "HorizontalGraphCompactor/lambda$0$Type", 1523);
121606 bcb(1524, 1, {}, Dgc);
121607 _2.Ne = function Egc(a, b) {
121608 return wgc(this.a, a, b);
121609 };
121610 mdb(Jne, "HorizontalGraphCompactor/lambda$1$Type", 1524);
121611 bcb(1664, 1, {}, Ygc);
121612 var Fgc, Ggc;
121613 mdb(Jne, "LGraphToCGraphTransformer", 1664);
121614 bcb(1672, 1, Oie, ehc);
121615 _2.Mb = function fhc(a) {
121616 return a != null;
121617 };
121618 mdb(Jne, "LGraphToCGraphTransformer/0methodref$nonNull$Type", 1672);
121619 bcb(1665, 1, {}, ghc);
121620 _2.Kb = function hhc(a) {
121621 return Hgc(), fcb(vNb(BD(BD(a, 57).g, 10), (wtc(), $sc)));
121622 };
121623 mdb(Jne, "LGraphToCGraphTransformer/lambda$0$Type", 1665);
121624 bcb(1666, 1, {}, ihc);
121625 _2.Kb = function jhc(a) {
121626 return Hgc(), gic(BD(BD(a, 57).g, 145));
121627 };
121628 mdb(Jne, "LGraphToCGraphTransformer/lambda$1$Type", 1666);
121629 bcb(1675, 1, Oie, khc);
121630 _2.Mb = function lhc(a) {
121631 return Hgc(), JD(BD(a, 57).g, 10);
121632 };
121633 mdb(Jne, "LGraphToCGraphTransformer/lambda$10$Type", 1675);
121634 bcb(1676, 1, qie, mhc);
121635 _2.td = function nhc(a) {
121636 Zgc(BD(a, 57));
121637 };
121638 mdb(Jne, "LGraphToCGraphTransformer/lambda$11$Type", 1676);
121639 bcb(1677, 1, Oie, ohc);
121640 _2.Mb = function phc(a) {
121641 return Hgc(), JD(BD(a, 57).g, 145);
121642 };
121643 mdb(Jne, "LGraphToCGraphTransformer/lambda$12$Type", 1677);
121644 bcb(1681, 1, qie, qhc);
121645 _2.td = function rhc(a) {
121646 $gc(BD(a, 57));
121647 };
121648 mdb(Jne, "LGraphToCGraphTransformer/lambda$13$Type", 1681);
121649 bcb(1678, 1, qie, shc);
121650 _2.td = function thc(a) {
121651 _gc(this.a, BD(a, 8));
121652 };
121653 _2.a = 0;
121654 mdb(Jne, "LGraphToCGraphTransformer/lambda$14$Type", 1678);
121655 bcb(1679, 1, qie, uhc);
121656 _2.td = function vhc(a) {
121657 ahc(this.a, BD(a, 110));
121658 };
121659 _2.a = 0;
121660 mdb(Jne, "LGraphToCGraphTransformer/lambda$15$Type", 1679);
121661 bcb(1680, 1, qie, whc);
121662 _2.td = function xhc(a) {
121663 bhc(this.a, BD(a, 8));
121664 };
121665 _2.a = 0;
121666 mdb(Jne, "LGraphToCGraphTransformer/lambda$16$Type", 1680);
121667 bcb(1682, 1, {}, yhc);
121668 _2.Kb = function zhc(a) {
121669 return Hgc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
121670 };
121671 mdb(Jne, "LGraphToCGraphTransformer/lambda$17$Type", 1682);
121672 bcb(1683, 1, Oie, Ahc);
121673 _2.Mb = function Bhc(a) {
121674 return Hgc(), OZb(BD(a, 17));
121675 };
121676 mdb(Jne, "LGraphToCGraphTransformer/lambda$18$Type", 1683);
121677 bcb(1684, 1, qie, Chc);
121678 _2.td = function Dhc(a) {
121679 Qgc(this.a, BD(a, 17));
121680 };
121681 mdb(Jne, "LGraphToCGraphTransformer/lambda$19$Type", 1684);
121682 bcb(1668, 1, qie, Ehc);
121683 _2.td = function Fhc(a) {
121684 Rgc(this.a, BD(a, 145));
121685 };
121686 mdb(Jne, "LGraphToCGraphTransformer/lambda$2$Type", 1668);
121687 bcb(1685, 1, {}, Ghc);
121688 _2.Kb = function Hhc(a) {
121689 return Hgc(), new YAb(null, new Kub(BD(a, 29).a, 16));
121690 };
121691 mdb(Jne, "LGraphToCGraphTransformer/lambda$20$Type", 1685);
121692 bcb(1686, 1, {}, Ihc);
121693 _2.Kb = function Jhc(a) {
121694 return Hgc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
121695 };
121696 mdb(Jne, "LGraphToCGraphTransformer/lambda$21$Type", 1686);
121697 bcb(1687, 1, {}, Khc);
121698 _2.Kb = function Lhc(a) {
121699 return Hgc(), BD(vNb(BD(a, 17), (wtc(), rtc)), 15);
121700 };
121701 mdb(Jne, "LGraphToCGraphTransformer/lambda$22$Type", 1687);
121702 bcb(1688, 1, Oie, Mhc);
121703 _2.Mb = function Nhc(a) {
121704 return chc(BD(a, 15));
121705 };
121706 mdb(Jne, "LGraphToCGraphTransformer/lambda$23$Type", 1688);
121707 bcb(1689, 1, qie, Ohc);
121708 _2.td = function Phc(a) {
121709 Jgc(this.a, BD(a, 15));
121710 };
121711 mdb(Jne, "LGraphToCGraphTransformer/lambda$24$Type", 1689);
121712 bcb(1667, 1, qie, Qhc);
121713 _2.td = function Rhc(a) {
121714 Sgc(this.a, this.b, BD(a, 145));
121715 };
121716 mdb(Jne, "LGraphToCGraphTransformer/lambda$3$Type", 1667);
121717 bcb(1669, 1, {}, Shc);
121718 _2.Kb = function Thc(a) {
121719 return Hgc(), new YAb(null, new Kub(BD(a, 29).a, 16));
121720 };
121721 mdb(Jne, "LGraphToCGraphTransformer/lambda$4$Type", 1669);
121722 bcb(1670, 1, {}, Uhc);
121723 _2.Kb = function Vhc(a) {
121724 return Hgc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
121725 };
121726 mdb(Jne, "LGraphToCGraphTransformer/lambda$5$Type", 1670);
121727 bcb(1671, 1, {}, Whc);
121728 _2.Kb = function Xhc(a) {
121729 return Hgc(), BD(vNb(BD(a, 17), (wtc(), rtc)), 15);
121730 };
121731 mdb(Jne, "LGraphToCGraphTransformer/lambda$6$Type", 1671);
121732 bcb(1673, 1, qie, Yhc);
121733 _2.td = function Zhc(a) {
121734 dhc(this.a, BD(a, 15));
121735 };
121736 mdb(Jne, "LGraphToCGraphTransformer/lambda$8$Type", 1673);
121737 bcb(1674, 1, qie, $hc);
121738 _2.td = function _hc(a) {
121739 Tgc(this.a, this.b, BD(a, 145));
121740 };
121741 mdb(Jne, "LGraphToCGraphTransformer/lambda$9$Type", 1674);
121742 bcb(1663, 1, {}, dic);
121743 _2.Le = function eic(a) {
121744 var b, c2, d, e, f2;
121745 this.a = a;
121746 this.d = new KFb();
121747 this.c = KC(jN, Uhe, 121, this.a.a.a.c.length, 0, 1);
121748 this.b = 0;
121749 for (c2 = new olb(this.a.a.a); c2.a < c2.c.c.length; ) {
121750 b = BD(mlb(c2), 307);
121751 b.d = this.b;
121752 f2 = nGb(oGb(new pGb(), b), this.d);
121753 this.c[this.b] = f2;
121754 ++this.b;
121755 }
121756 cic(this);
121757 bic(this);
121758 aic(this);
121759 uGb(LGb(this.d), new Zdd());
121760 for (e = new olb(this.a.a.b); e.a < e.c.c.length; ) {
121761 d = BD(mlb(e), 57);
121762 d.d.c = this.c[d.a.d].e + d.b.a;
121763 }
121764 };
121765 _2.b = 0;
121766 mdb(Jne, "NetworkSimplexCompaction", 1663);
121767 bcb(145, 1, { 35: 1, 145: 1 }, hic);
121768 _2.wd = function iic(a) {
121769 return fic(this, BD(a, 145));
121770 };
121771 _2.Ib = function jic() {
121772 return gic(this);
121773 };
121774 mdb(Jne, "VerticalSegment", 145);
121775 bcb(827, 1, {}, sic);
121776 _2.c = 0;
121777 _2.e = 0;
121778 _2.i = 0;
121779 mdb(Kne, "BetweenLayerEdgeTwoNodeCrossingsCounter", 827);
121780 bcb(663, 1, { 663: 1 }, zic);
121781 _2.Ib = function Aic() {
121782 return "AdjacencyList [node=" + this.d + ", adjacencies= " + this.a + "]";
121783 };
121784 _2.b = 0;
121785 _2.c = 0;
121786 _2.f = 0;
121787 mdb(Kne, "BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList", 663);
121788 bcb(287, 1, { 35: 1, 287: 1 }, Dic);
121789 _2.wd = function Eic(a) {
121790 return Bic(this, BD(a, 287));
121791 };
121792 _2.Ib = function Fic() {
121793 return "Adjacency [position=" + this.c + ", cardinality=" + this.a + ", currentCardinality=" + this.b + "]";
121794 };
121795 _2.a = 0;
121796 _2.b = 0;
121797 _2.c = 0;
121798 mdb(Kne, "BetweenLayerEdgeTwoNodeCrossingsCounter/AdjacencyList/Adjacency", 287);
121799 bcb(1929, 1, {}, Iic);
121800 _2.b = 0;
121801 _2.e = false;
121802 mdb(Kne, "CrossingMatrixFiller", 1929);
121803 var qY = odb(Lne, "IInitializable");
121804 bcb(1804, 1, Mne, Oic);
121805 _2.Nf = function Ric(a, b, c2, d, e, f2) {
121806 };
121807 _2.Pf = function Tic(a, b, c2) {
121808 };
121809 _2.Lf = function Pic() {
121810 return this.c != (rGc(), pGc);
121811 };
121812 _2.Mf = function Qic() {
121813 this.e = KC(WD, oje, 25, this.d, 15, 1);
121814 };
121815 _2.Of = function Sic(a, b) {
121816 b[a][0].c.p = a;
121817 };
121818 _2.Qf = function Uic(a, b, c2, d) {
121819 ++this.d;
121820 };
121821 _2.Rf = function Vic() {
121822 return true;
121823 };
121824 _2.Sf = function Wic(a, b, c2, d) {
121825 Kic(this, a, b, c2);
121826 return Jic(this, b);
121827 };
121828 _2.Tf = function Xic(a, b) {
121829 var c2;
121830 c2 = Lic(b, a.length);
121831 Kic(this, a, c2, b);
121832 return Mic(this, c2);
121833 };
121834 _2.d = 0;
121835 mdb(Kne, "GreedySwitchHeuristic", 1804);
121836 bcb(1930, 1, {}, ejc);
121837 _2.b = 0;
121838 _2.d = 0;
121839 mdb(Kne, "NorthSouthEdgeNeighbouringNodeCrossingsCounter", 1930);
121840 bcb(1917, 1, {}, jjc);
121841 _2.a = false;
121842 mdb(Kne, "SwitchDecider", 1917);
121843 bcb(101, 1, { 101: 1 }, pjc);
121844 _2.a = null;
121845 _2.c = null;
121846 _2.i = null;
121847 mdb(Nne, "SelfHyperLoop", 101);
121848 bcb(1916, 1, {}, vjc);
121849 _2.c = 0;
121850 _2.e = 0;
121851 mdb(Nne, "SelfHyperLoopLabels", 1916);
121852 bcb(411, 22, { 3: 1, 35: 1, 22: 1, 411: 1 }, Bjc);
121853 var wjc, xjc, yjc, zjc;
121854 var mV = ndb(Nne, "SelfHyperLoopLabels/Alignment", 411, CI, Djc, Cjc);
121855 var Ejc;
121856 bcb(409, 1, { 409: 1 }, Gjc);
121857 mdb(Nne, "SelfLoopEdge", 409);
121858 bcb(403, 1, { 403: 1 }, Kjc);
121859 _2.a = false;
121860 mdb(Nne, "SelfLoopHolder", 403);
121861 bcb(1724, 1, Oie, Mjc);
121862 _2.Mb = function Njc(a) {
121863 return OZb(BD(a, 17));
121864 };
121865 mdb(Nne, "SelfLoopHolder/lambda$0$Type", 1724);
121866 bcb(113, 1, { 113: 1 }, Pjc);
121867 _2.a = false;
121868 _2.c = false;
121869 mdb(Nne, "SelfLoopPort", 113);
121870 bcb(1792, 1, Oie, Qjc);
121871 _2.Mb = function Rjc(a) {
121872 return OZb(BD(a, 17));
121873 };
121874 mdb(Nne, "SelfLoopPort/lambda$0$Type", 1792);
121875 bcb(363, 22, { 3: 1, 35: 1, 22: 1, 363: 1 }, Yjc);
121876 var Sjc, Tjc, Ujc, Vjc, Wjc;
121877 var uV = ndb(Nne, "SelfLoopType", 363, CI, _jc, $jc);
121878 var akc;
121879 bcb(1732, 1, {}, xkc);
121880 var ckc, dkc, ekc, fkc;
121881 mdb(One, "PortRestorer", 1732);
121882 bcb(361, 22, { 3: 1, 35: 1, 22: 1, 361: 1 }, Gkc);
121883 var Ckc, Dkc, Ekc;
121884 var vV = ndb(One, "PortRestorer/PortSideArea", 361, CI, Ikc, Hkc);
121885 var Jkc;
121886 bcb(1733, 1, {}, Lkc);
121887 _2.Kb = function Mkc(a) {
121888 return gkc(), BD(a, 15).Oc();
121889 };
121890 mdb(One, "PortRestorer/lambda$0$Type", 1733);
121891 bcb(1734, 1, qie, Nkc);
121892 _2.td = function Okc(a) {
121893 gkc();
121894 BD(a, 113).c = false;
121895 };
121896 mdb(One, "PortRestorer/lambda$1$Type", 1734);
121897 bcb(1743, 1, Oie, Pkc);
121898 _2.Mb = function Qkc(a) {
121899 return gkc(), BD(a, 11).j == (Ucd(), Tcd);
121900 };
121901 mdb(One, "PortRestorer/lambda$10$Type", 1743);
121902 bcb(1744, 1, {}, Rkc);
121903 _2.Kb = function Skc(a) {
121904 return gkc(), BD(a, 113).d;
121905 };
121906 mdb(One, "PortRestorer/lambda$11$Type", 1744);
121907 bcb(1745, 1, qie, Tkc);
121908 _2.td = function Ukc(a) {
121909 ykc(this.a, BD(a, 11));
121910 };
121911 mdb(One, "PortRestorer/lambda$12$Type", 1745);
121912 bcb(1735, 1, qie, Vkc);
121913 _2.td = function Wkc(a) {
121914 zkc(this.a, BD(a, 101));
121915 };
121916 mdb(One, "PortRestorer/lambda$2$Type", 1735);
121917 bcb(1736, 1, Dke, Xkc);
121918 _2.ue = function Ykc(a, b) {
121919 return Akc(BD(a, 113), BD(b, 113));
121920 };
121921 _2.Fb = function Zkc(a) {
121922 return this === a;
121923 };
121924 _2.ve = function $kc() {
121925 return new tpb(this);
121926 };
121927 mdb(One, "PortRestorer/lambda$3$Type", 1736);
121928 bcb(1737, 1, Oie, _kc);
121929 _2.Mb = function alc(a) {
121930 return gkc(), BD(a, 113).c;
121931 };
121932 mdb(One, "PortRestorer/lambda$4$Type", 1737);
121933 bcb(1738, 1, Oie, blc);
121934 _2.Mb = function clc(a) {
121935 return nkc(BD(a, 11));
121936 };
121937 mdb(One, "PortRestorer/lambda$5$Type", 1738);
121938 bcb(1739, 1, Oie, dlc);
121939 _2.Mb = function elc(a) {
121940 return gkc(), BD(a, 11).j == (Ucd(), Acd);
121941 };
121942 mdb(One, "PortRestorer/lambda$6$Type", 1739);
121943 bcb(1740, 1, Oie, flc);
121944 _2.Mb = function glc(a) {
121945 return gkc(), BD(a, 11).j == (Ucd(), zcd);
121946 };
121947 mdb(One, "PortRestorer/lambda$7$Type", 1740);
121948 bcb(1741, 1, Oie, hlc);
121949 _2.Mb = function ilc(a) {
121950 return okc(BD(a, 11));
121951 };
121952 mdb(One, "PortRestorer/lambda$8$Type", 1741);
121953 bcb(1742, 1, Oie, jlc);
121954 _2.Mb = function klc(a) {
121955 return gkc(), BD(a, 11).j == (Ucd(), Rcd);
121956 };
121957 mdb(One, "PortRestorer/lambda$9$Type", 1742);
121958 bcb(270, 22, { 3: 1, 35: 1, 22: 1, 270: 1 }, Blc);
121959 var slc, tlc, ulc, vlc, wlc, xlc, ylc, zlc;
121960 var KV = ndb(One, "PortSideAssigner/Target", 270, CI, Dlc, Clc);
121961 var Elc;
121962 bcb(1725, 1, {}, Glc);
121963 _2.Kb = function Hlc(a) {
121964 return JAb(new YAb(null, new Kub(BD(a, 101).j, 16)), new Ylc());
121965 };
121966 mdb(One, "PortSideAssigner/lambda$1$Type", 1725);
121967 bcb(1726, 1, {}, Ilc);
121968 _2.Kb = function Jlc(a) {
121969 return BD(a, 113).d;
121970 };
121971 mdb(One, "PortSideAssigner/lambda$2$Type", 1726);
121972 bcb(1727, 1, qie, Klc);
121973 _2.td = function Llc(a) {
121974 G0b(BD(a, 11), (Ucd(), Acd));
121975 };
121976 mdb(One, "PortSideAssigner/lambda$3$Type", 1727);
121977 bcb(1728, 1, {}, Mlc);
121978 _2.Kb = function Nlc(a) {
121979 return BD(a, 113).d;
121980 };
121981 mdb(One, "PortSideAssigner/lambda$4$Type", 1728);
121982 bcb(1729, 1, qie, Olc);
121983 _2.td = function Plc(a) {
121984 plc(this.a, BD(a, 11));
121985 };
121986 mdb(One, "PortSideAssigner/lambda$5$Type", 1729);
121987 bcb(1730, 1, Dke, Qlc);
121988 _2.ue = function Rlc(a, b) {
121989 return qlc(BD(a, 101), BD(b, 101));
121990 };
121991 _2.Fb = function Slc(a) {
121992 return this === a;
121993 };
121994 _2.ve = function Tlc() {
121995 return new tpb(this);
121996 };
121997 mdb(One, "PortSideAssigner/lambda$6$Type", 1730);
121998 bcb(1731, 1, Dke, Ulc);
121999 _2.ue = function Vlc(a, b) {
122000 return rlc(BD(a, 113), BD(b, 113));
122001 };
122002 _2.Fb = function Wlc(a) {
122003 return this === a;
122004 };
122005 _2.ve = function Xlc() {
122006 return new tpb(this);
122007 };
122008 mdb(One, "PortSideAssigner/lambda$7$Type", 1731);
122009 bcb(805, 1, Oie, Ylc);
122010 _2.Mb = function Zlc(a) {
122011 return BD(a, 113).c;
122012 };
122013 mdb(One, "PortSideAssigner/lambda$8$Type", 805);
122014 bcb(2009, 1, {});
122015 mdb(Pne, "AbstractSelfLoopRouter", 2009);
122016 bcb(1750, 1, Dke, gmc);
122017 _2.ue = function hmc(a, b) {
122018 return emc(BD(a, 101), BD(b, 101));
122019 };
122020 _2.Fb = function imc(a) {
122021 return this === a;
122022 };
122023 _2.ve = function jmc() {
122024 return new tpb(this);
122025 };
122026 mdb(Pne, rle, 1750);
122027 bcb(1751, 1, Dke, kmc);
122028 _2.ue = function lmc(a, b) {
122029 return fmc(BD(a, 101), BD(b, 101));
122030 };
122031 _2.Fb = function mmc(a) {
122032 return this === a;
122033 };
122034 _2.ve = function nmc() {
122035 return new tpb(this);
122036 };
122037 mdb(Pne, sle, 1751);
122038 bcb(1793, 2009, {}, zmc);
122039 _2.Uf = function Amc(a, b, c2) {
122040 return c2;
122041 };
122042 mdb(Pne, "OrthogonalSelfLoopRouter", 1793);
122043 bcb(1795, 1, qie, Bmc);
122044 _2.td = function Cmc(a) {
122045 ymc(this.b, this.a, BD(a, 8));
122046 };
122047 mdb(Pne, "OrthogonalSelfLoopRouter/lambda$0$Type", 1795);
122048 bcb(1794, 1793, {}, Fmc);
122049 _2.Uf = function Gmc(a, b, c2) {
122050 var d, e;
122051 d = a.c.d;
122052 St(c2, 0, P6c(R6c(d.n), d.a));
122053 e = a.d.d;
122054 Dsb(c2, P6c(R6c(e.n), e.a));
122055 return Dmc(c2);
122056 };
122057 mdb(Pne, "PolylineSelfLoopRouter", 1794);
122058 bcb(1746, 1, {}, Umc);
122059 _2.a = null;
122060 var Hmc;
122061 mdb(Pne, "RoutingDirector", 1746);
122062 bcb(1747, 1, Dke, Wmc);
122063 _2.ue = function Xmc(a, b) {
122064 return Vmc(BD(a, 113), BD(b, 113));
122065 };
122066 _2.Fb = function Ymc(a) {
122067 return this === a;
122068 };
122069 _2.ve = function Zmc() {
122070 return new tpb(this);
122071 };
122072 mdb(Pne, "RoutingDirector/lambda$0$Type", 1747);
122073 bcb(1748, 1, {}, $mc);
122074 _2.Kb = function _mc(a) {
122075 return Imc(), BD(a, 101).j;
122076 };
122077 mdb(Pne, "RoutingDirector/lambda$1$Type", 1748);
122078 bcb(1749, 1, qie, anc);
122079 _2.td = function bnc(a) {
122080 Imc();
122081 BD(a, 15).ad(Hmc);
122082 };
122083 mdb(Pne, "RoutingDirector/lambda$2$Type", 1749);
122084 bcb(1752, 1, {}, mnc);
122085 mdb(Pne, "RoutingSlotAssigner", 1752);
122086 bcb(1753, 1, Oie, pnc);
122087 _2.Mb = function qnc(a) {
122088 return nnc(this.a, BD(a, 101));
122089 };
122090 mdb(Pne, "RoutingSlotAssigner/lambda$0$Type", 1753);
122091 bcb(1754, 1, Dke, rnc);
122092 _2.ue = function snc(a, b) {
122093 return onc(this.a, BD(a, 101), BD(b, 101));
122094 };
122095 _2.Fb = function tnc(a) {
122096 return this === a;
122097 };
122098 _2.ve = function unc() {
122099 return new tpb(this);
122100 };
122101 mdb(Pne, "RoutingSlotAssigner/lambda$1$Type", 1754);
122102 bcb(1796, 1793, {}, wnc);
122103 _2.Uf = function xnc(a, b, c2) {
122104 var d, e, f2, g;
122105 d = Edb(ED(c_b(a.b.g.b, (Nyc(), nyc))));
122106 g = new u7c(OC(GC(m1, 1), nie, 8, 0, [(f2 = a.c.d, P6c(new g7c(f2.n), f2.a))]));
122107 vnc(a, b, c2, g, d);
122108 Dsb(g, (e = a.d.d, P6c(new g7c(e.n), e.a)));
122109 return UPc(new YPc(g));
122110 };
122111 mdb(Pne, "SplineSelfLoopRouter", 1796);
122112 bcb(578, 1, Dke, Bnc, Dnc);
122113 _2.ue = function Enc(a, b) {
122114 return ync(this, BD(a, 10), BD(b, 10));
122115 };
122116 _2.Fb = function Fnc(a) {
122117 return this === a;
122118 };
122119 _2.ve = function Gnc() {
122120 return new tpb(this);
122121 };
122122 mdb(Qne, "ModelOrderNodeComparator", 578);
122123 bcb(1755, 1, Oie, Hnc);
122124 _2.Mb = function Inc(a) {
122125 return BD(a, 11).e.c.length != 0;
122126 };
122127 mdb(Qne, "ModelOrderNodeComparator/lambda$0$Type", 1755);
122128 bcb(1756, 1, {}, Jnc);
122129 _2.Kb = function Knc(a) {
122130 return BD(Ikb(BD(a, 11).e, 0), 17).c;
122131 };
122132 mdb(Qne, "ModelOrderNodeComparator/lambda$1$Type", 1756);
122133 bcb(1757, 1, Oie, Lnc);
122134 _2.Mb = function Mnc(a) {
122135 return BD(a, 11).e.c.length != 0;
122136 };
122137 mdb(Qne, "ModelOrderNodeComparator/lambda$2$Type", 1757);
122138 bcb(1758, 1, {}, Nnc);
122139 _2.Kb = function Onc(a) {
122140 return BD(Ikb(BD(a, 11).e, 0), 17).c;
122141 };
122142 mdb(Qne, "ModelOrderNodeComparator/lambda$3$Type", 1758);
122143 bcb(1759, 1, Oie, Pnc);
122144 _2.Mb = function Qnc(a) {
122145 return BD(a, 11).e.c.length != 0;
122146 };
122147 mdb(Qne, "ModelOrderNodeComparator/lambda$4$Type", 1759);
122148 bcb(806, 1, Dke, Tnc, Unc);
122149 _2.ue = function Vnc(a, b) {
122150 return Rnc(this, a, b);
122151 };
122152 _2.Fb = function Wnc(a) {
122153 return this === a;
122154 };
122155 _2.ve = function Xnc() {
122156 return new tpb(this);
122157 };
122158 mdb(Qne, "ModelOrderPortComparator", 806);
122159 bcb(801, 1, {}, Ync);
122160 _2.Vf = function $nc(a, b) {
122161 var c2, d, e, f2;
122162 e = Znc(b);
122163 c2 = new Rkb();
122164 f2 = b.f / e;
122165 for (d = 1; d < e; ++d) {
122166 Ekb(c2, meb(Tbb(Cbb($wnd.Math.round(d * f2)))));
122167 }
122168 return c2;
122169 };
122170 _2.Wf = function _nc() {
122171 return false;
122172 };
122173 mdb(Rne, "ARDCutIndexHeuristic", 801);
122174 bcb(1479, 1, ene, eoc);
122175 _2.pf = function foc(a, b) {
122176 doc(BD(a, 37), b);
122177 };
122178 mdb(Rne, "BreakingPointInserter", 1479);
122179 bcb(305, 1, { 305: 1 }, goc);
122180 _2.Ib = function joc() {
122181 var a;
122182 a = new Ufb();
122183 a.a += "BPInfo[";
122184 a.a += "\n start=";
122185 Pfb(a, this.i);
122186 a.a += "\n end=";
122187 Pfb(a, this.a);
122188 a.a += "\n nodeStartEdge=";
122189 Pfb(a, this.e);
122190 a.a += "\n startEndEdge=";
122191 Pfb(a, this.j);
122192 a.a += "\n originalEdge=";
122193 Pfb(a, this.f);
122194 a.a += "\n startInLayerDummy=";
122195 Pfb(a, this.k);
122196 a.a += "\n startInLayerEdge=";
122197 Pfb(a, this.n);
122198 a.a += "\n endInLayerDummy=";
122199 Pfb(a, this.b);
122200 a.a += "\n endInLayerEdge=";
122201 Pfb(a, this.c);
122202 return a.a;
122203 };
122204 mdb(Rne, "BreakingPointInserter/BPInfo", 305);
122205 bcb(652, 1, { 652: 1 }, qoc);
122206 _2.a = false;
122207 _2.b = 0;
122208 _2.c = 0;
122209 mdb(Rne, "BreakingPointInserter/Cut", 652);
122210 bcb(1480, 1, ene, Aoc);
122211 _2.pf = function Boc(a, b) {
122212 yoc(BD(a, 37), b);
122213 };
122214 mdb(Rne, "BreakingPointProcessor", 1480);
122215 bcb(1481, 1, Oie, Coc);
122216 _2.Mb = function Doc(a) {
122217 return hoc(BD(a, 10));
122218 };
122219 mdb(Rne, "BreakingPointProcessor/0methodref$isEnd$Type", 1481);
122220 bcb(1482, 1, Oie, Eoc);
122221 _2.Mb = function Foc(a) {
122222 return ioc(BD(a, 10));
122223 };
122224 mdb(Rne, "BreakingPointProcessor/1methodref$isStart$Type", 1482);
122225 bcb(1483, 1, ene, Joc);
122226 _2.pf = function Koc(a, b) {
122227 Hoc(this, BD(a, 37), b);
122228 };
122229 mdb(Rne, "BreakingPointRemover", 1483);
122230 bcb(1484, 1, qie, Loc);
122231 _2.td = function Moc(a) {
122232 BD(a, 128).k = true;
122233 };
122234 mdb(Rne, "BreakingPointRemover/lambda$0$Type", 1484);
122235 bcb(797, 1, {}, Xoc);
122236 _2.b = 0;
122237 _2.e = 0;
122238 _2.f = 0;
122239 _2.j = 0;
122240 mdb(Rne, "GraphStats", 797);
122241 bcb(798, 1, {}, Zoc);
122242 _2.Ce = function $oc(a, b) {
122243 return $wnd.Math.max(Edb(ED(a)), Edb(ED(b)));
122244 };
122245 mdb(Rne, "GraphStats/0methodref$max$Type", 798);
122246 bcb(799, 1, {}, _oc);
122247 _2.Ce = function apc(a, b) {
122248 return $wnd.Math.max(Edb(ED(a)), Edb(ED(b)));
122249 };
122250 mdb(Rne, "GraphStats/2methodref$max$Type", 799);
122251 bcb(1660, 1, {}, bpc);
122252 _2.Ce = function cpc(a, b) {
122253 return Yoc(ED(a), ED(b));
122254 };
122255 mdb(Rne, "GraphStats/lambda$1$Type", 1660);
122256 bcb(1661, 1, {}, dpc);
122257 _2.Kb = function epc(a) {
122258 return Roc(this.a, BD(a, 29));
122259 };
122260 mdb(Rne, "GraphStats/lambda$2$Type", 1661);
122261 bcb(1662, 1, {}, fpc);
122262 _2.Kb = function gpc(a) {
122263 return Qoc(this.a, BD(a, 29));
122264 };
122265 mdb(Rne, "GraphStats/lambda$6$Type", 1662);
122266 bcb(800, 1, {}, hpc);
122267 _2.Vf = function ipc(a, b) {
122268 var c2;
122269 c2 = BD(vNb(a, (Nyc(), Eyc)), 15);
122270 return c2 ? c2 : (mmb(), mmb(), jmb);
122271 };
122272 _2.Wf = function jpc() {
122273 return false;
122274 };
122275 mdb(Rne, "ICutIndexCalculator/ManualCutIndexCalculator", 800);
122276 bcb(802, 1, {}, kpc);
122277 _2.Vf = function lpc(a, b) {
122278 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2;
122279 u2 = (b.n == null && Uoc(b), b.n);
122280 i3 = (b.d == null && Uoc(b), b.d);
122281 t4 = KC(UD, Vje, 25, u2.length, 15, 1);
122282 t4[0] = u2[0];
122283 r = u2[0];
122284 for (j = 1; j < u2.length; j++) {
122285 t4[j] = t4[j - 1] + u2[j];
122286 r += u2[j];
122287 }
122288 e = Znc(b) - 1;
122289 g = BD(vNb(a, (Nyc(), Fyc)), 19).a;
122290 d = Qje;
122291 c2 = new Rkb();
122292 for (m = $wnd.Math.max(0, e - g); m <= $wnd.Math.min(b.f - 1, e + g); m++) {
122293 p = r / (m + 1);
122294 q = 0;
122295 k = 1;
122296 f2 = new Rkb();
122297 s = Qje;
122298 l = 0;
122299 h = 0;
122300 o2 = i3[0];
122301 if (m == 0) {
122302 s = r;
122303 h = (b.g == null && (b.g = Poc(b, new _oc())), Edb(b.g));
122304 } else {
122305 while (k < b.f) {
122306 if (t4[k - 1] - q >= p) {
122307 Ekb(f2, meb(k));
122308 s = $wnd.Math.max(s, t4[k - 1] - l);
122309 h += o2;
122310 q += t4[k - 1] - q;
122311 l = t4[k - 1];
122312 o2 = i3[k];
122313 }
122314 o2 = $wnd.Math.max(o2, i3[k]);
122315 ++k;
122316 }
122317 h += o2;
122318 }
122319 n = $wnd.Math.min(1 / s, 1 / b.b / h);
122320 if (n > d) {
122321 d = n;
122322 c2 = f2;
122323 }
122324 }
122325 return c2;
122326 };
122327 _2.Wf = function mpc() {
122328 return false;
122329 };
122330 mdb(Rne, "MSDCutIndexHeuristic", 802);
122331 bcb(1617, 1, ene, ppc);
122332 _2.pf = function qpc(a, b) {
122333 opc(BD(a, 37), b);
122334 };
122335 mdb(Rne, "SingleEdgeGraphWrapper", 1617);
122336 bcb(227, 22, { 3: 1, 35: 1, 22: 1, 227: 1 }, Bpc);
122337 var upc, vpc, wpc, xpc, ypc, zpc;
122338 var EW = ndb(Sne, "CenterEdgeLabelPlacementStrategy", 227, CI, Dpc, Cpc);
122339 var Epc;
122340 bcb(422, 22, { 3: 1, 35: 1, 22: 1, 422: 1 }, Jpc);
122341 var Gpc, Hpc;
122342 var FW = ndb(Sne, "ConstraintCalculationStrategy", 422, CI, Lpc, Kpc);
122343 var Mpc;
122344 bcb(314, 22, { 3: 1, 35: 1, 22: 1, 314: 1, 246: 1, 234: 1 }, Tpc);
122345 _2.Kf = function Vpc() {
122346 return Spc(this);
122347 };
122348 _2.Xf = function Upc() {
122349 return Spc(this);
122350 };
122351 var Opc, Ppc, Qpc;
122352 var GW = ndb(Sne, "CrossingMinimizationStrategy", 314, CI, Xpc, Wpc);
122353 var Ypc;
122354 bcb(337, 22, { 3: 1, 35: 1, 22: 1, 337: 1 }, cqc);
122355 var $pc, _pc, aqc;
122356 var HW = ndb(Sne, "CuttingStrategy", 337, CI, eqc, dqc);
122357 var fqc;
122358 bcb(335, 22, { 3: 1, 35: 1, 22: 1, 335: 1, 246: 1, 234: 1 }, oqc);
122359 _2.Kf = function qqc() {
122360 return nqc(this);
122361 };
122362 _2.Xf = function pqc() {
122363 return nqc(this);
122364 };
122365 var hqc, iqc, jqc, kqc, lqc;
122366 var IW = ndb(Sne, "CycleBreakingStrategy", 335, CI, sqc, rqc);
122367 var tqc;
122368 bcb(419, 22, { 3: 1, 35: 1, 22: 1, 419: 1 }, yqc);
122369 var vqc, wqc;
122370 var JW = ndb(Sne, "DirectionCongruency", 419, CI, Aqc, zqc);
122371 var Bqc;
122372 bcb(450, 22, { 3: 1, 35: 1, 22: 1, 450: 1 }, Hqc);
122373 var Dqc, Eqc, Fqc;
122374 var KW = ndb(Sne, "EdgeConstraint", 450, CI, Jqc, Iqc);
122375 var Kqc;
122376 bcb(276, 22, { 3: 1, 35: 1, 22: 1, 276: 1 }, Uqc);
122377 var Mqc, Nqc, Oqc, Pqc, Qqc, Rqc;
122378 var LW = ndb(Sne, "EdgeLabelSideSelection", 276, CI, Wqc, Vqc);
122379 var Xqc;
122380 bcb(479, 22, { 3: 1, 35: 1, 22: 1, 479: 1 }, arc);
122381 var Zqc, $qc;
122382 var MW = ndb(Sne, "EdgeStraighteningStrategy", 479, CI, crc, brc);
122383 var drc;
122384 bcb(274, 22, { 3: 1, 35: 1, 22: 1, 274: 1 }, mrc);
122385 var frc, grc, hrc, irc, jrc, krc;
122386 var NW = ndb(Sne, "FixedAlignment", 274, CI, orc, nrc);
122387 var prc;
122388 bcb(275, 22, { 3: 1, 35: 1, 22: 1, 275: 1 }, zrc);
122389 var rrc, trc, urc, vrc, wrc, xrc;
122390 var OW = ndb(Sne, "GraphCompactionStrategy", 275, CI, Brc, Arc);
122391 var Crc;
122392 bcb(256, 22, { 3: 1, 35: 1, 22: 1, 256: 1 }, Prc);
122393 var Erc, Frc, Grc, Hrc, Irc, Jrc, Krc, Lrc, Mrc, Nrc;
122394 var PW = ndb(Sne, "GraphProperties", 256, CI, Rrc, Qrc);
122395 var Src;
122396 bcb(292, 22, { 3: 1, 35: 1, 22: 1, 292: 1 }, Yrc);
122397 var Urc, Vrc, Wrc;
122398 var QW = ndb(Sne, "GreedySwitchType", 292, CI, $rc, Zrc);
122399 var _rc;
122400 bcb(303, 22, { 3: 1, 35: 1, 22: 1, 303: 1 }, fsc);
122401 var bsc, csc, dsc;
122402 var RW = ndb(Sne, "InLayerConstraint", 303, CI, hsc, gsc);
122403 var isc;
122404 bcb(420, 22, { 3: 1, 35: 1, 22: 1, 420: 1 }, nsc);
122405 var ksc, lsc;
122406 var SW = ndb(Sne, "InteractiveReferencePoint", 420, CI, psc, osc);
122407 var qsc;
122408 var ssc, tsc, usc, vsc, wsc, xsc, ysc, zsc, Asc, Bsc, Csc, Dsc, Esc, Fsc, Gsc, Hsc, Isc, Jsc, Ksc, Lsc, Msc, Nsc, Osc, Psc, Qsc, Rsc, Ssc, Tsc, Usc, Vsc, Wsc, Xsc, Ysc, Zsc, $sc, _sc, atc, btc, ctc, dtc, etc, ftc, gtc, htc, itc, jtc, ktc, ltc, mtc, ntc, otc, ptc, qtc, rtc, stc, ttc, utc, vtc;
122409 bcb(163, 22, { 3: 1, 35: 1, 22: 1, 163: 1 }, Dtc);
122410 var xtc, ytc, ztc, Atc, Btc;
122411 var TW = ndb(Sne, "LayerConstraint", 163, CI, Ftc, Etc);
122412 var Gtc;
122413 bcb(848, 1, ale, kwc);
122414 _2.Qe = function lwc(a) {
122415 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yne), ""), "Direction Congruency"), "Specifies how drawings of the same graph with different layout directions compare to each other: either a natural reading direction is preserved or the drawings are rotated versions of each other."), puc), (_5c(), V5c)), JW), pqb((N5c(), L5c)))));
122416 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zne), ""), "Feedback Edges"), "Whether feedback edges should be highlighted by routing around the nodes."), (Bcb(), false)), T5c), wI), pqb(L5c))));
122417 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $ne), ""), "Interactive Reference Point"), "Determines which point of a node is considered by interactive layout phases."), Muc), V5c), SW), pqb(L5c))));
122418 o4c(a, $ne, goe, Ouc);
122419 o4c(a, $ne, qoe, Nuc);
122420 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _ne), ""), "Merge Edges"), "Edges that have no ports are merged so they touch the connected nodes at the same points. When this option is disabled, one port is created for each edge directly connected to a node. When it is enabled, all such incoming edges share an input port, and all outgoing edges share an output port."), false), T5c), wI), pqb(L5c))));
122421 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), aoe), ""), "Merge Hierarchy-Crossing Edges"), "If hierarchical layout is active, hierarchy-crossing edges use as few hierarchical ports as possible. They are broken by the algorithm, with hierarchical ports inserted as required. Usually, one such port is created for each edge at each hierarchy crossing point. With this option set to true, we try to create as few hierarchical ports as possible in the process. In particular, all edges that form a hyperedge can share a port."), true), T5c), wI), pqb(L5c))));
122422 t4c(a, new p5c(C5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), boe), ""), "Allow Non-Flow Ports To Switch Sides"), "Specifies whether non-flow ports may switch sides if their node's port constraints are either FIXED_SIDE or FIXED_ORDER. A non-flow port is a port on a side that is not part of the currently configured layout flow. For instance, given a left-to-right layout direction, north and south ports would be considered non-flow ports. Further note that the underlying criterium whether to switch sides or not solely relies on the minimization of edge crossings. Hence, edge length and other aesthetics criteria are not addressed."), false), T5c), wI), pqb(M5c)), OC(GC(ZI, 1), nie, 2, 6, ["org.eclipse.elk.layered.northOrSouthPort"]))));
122423 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), coe), ""), "Port Sorting Strategy"), "Only relevant for nodes with FIXED_SIDE port constraints. Determines the way a node's ports are distributed on the sides of a node if their order is not prescribed. The option is set on parent nodes."), xvc), V5c), cX), pqb(L5c))));
122424 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), doe), ""), "Thoroughness"), "How much effort should be spent to produce a nice layout."), meb(7)), X5c), JI), pqb(L5c))));
122425 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), eoe), ""), "Add Unnecessary Bendpoints"), "Adds bend points even if an edge does not change direction. If true, each long edge dummy will contribute a bend point to its edges and hierarchy-crossing edges will always get a bend point where they cross hierarchy boundaries. By default, bend points are only added where an edge changes direction."), false), T5c), wI), pqb(L5c))));
122426 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), foe), ""), "Generate Position and Layer IDs"), "If enabled position id and layer id are generated, which are usually only used internally when setting the interactiveLayout option. This option should be specified on the root node."), false), T5c), wI), pqb(L5c))));
122427 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), goe), "cycleBreaking"), "Cycle Breaking Strategy"), "Strategy for cycle breaking. Cycle breaking looks for cycles in the graph and determines which edges to reverse to break the cycles. Reversed edges will end up pointing to the opposite direction of regular edges (that is, reversed edges will point left if edges usually point right)."), nuc), V5c), IW), pqb(L5c))));
122428 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), hoe), ppe), "Node Layering Strategy"), "Strategy for node layering."), bvc), V5c), YW), pqb(L5c))));
122429 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ioe), ppe), "Layer Constraint"), "Determines a constraint on the placement of the node regarding the layering."), Tuc), V5c), TW), pqb(K5c))));
122430 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), joe), ppe), "Layer Choice Constraint"), "Allows to set a constraint regarding the layer placement of a node. Let i be the value of teh constraint. Assumed the drawing has n layers and i < n. If set to i, it expresses that the node should be placed in i-th layer. Should i>=n be true then the node is placed in the last layer of the drawing. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), meb(-1)), X5c), JI), pqb(K5c))));
122431 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), koe), ppe), "Layer ID"), "Layer identifier that was calculated by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."), meb(-1)), X5c), JI), pqb(K5c))));
122432 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), loe), qpe), "Upper Bound On Width [MinWidth Layerer]"), "Defines a loose upper bound on the width of the MinWidth layerer. If set to '-1' multiple values are tested and the best result is selected."), meb(4)), X5c), JI), pqb(L5c))));
122433 o4c(a, loe, hoe, Wuc);
122434 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), moe), qpe), "Upper Layer Estimation Scaling Factor [MinWidth Layerer]"), "Multiplied with Upper Bound On Width for defining an upper bound on the width of layers which haven't been determined yet, but whose maximum width had been (roughly) estimated by the MinWidth algorithm. Compensates for too high estimations. If set to '-1' multiple values are tested and the best result is selected."), meb(2)), X5c), JI), pqb(L5c))));
122435 o4c(a, moe, hoe, Yuc);
122436 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), noe), rpe), "Node Promotion Strategy"), "Reduces number of dummy nodes after layering phase (if possible)."), _uc), V5c), aX), pqb(L5c))));
122437 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ooe), rpe), "Max Node Promotion Iterations"), "Limits the number of iterations for node promotion."), meb(0)), X5c), JI), pqb(L5c))));
122438 o4c(a, ooe, noe, null);
122439 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), poe), "layering.coffmanGraham"), "Layer Bound"), "The maximum number of nodes allowed per layer."), meb(Ohe)), X5c), JI), pqb(L5c))));
122440 o4c(a, poe, hoe, Quc);
122441 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), qoe), spe), "Crossing Minimization Strategy"), "Strategy for crossing minimization."), luc), V5c), GW), pqb(L5c))));
122442 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), roe), spe), "Force Node Model Order"), "The node order given by the model does not change to produce a better layout. E.g. if node A is before node B in the model this is not changed during crossing minimization. This assumes that the node model order is already respected before crossing minimization. This can be achieved by setting considerModelOrder.strategy to NODES_AND_EDGES."), false), T5c), wI), pqb(L5c))));
122443 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), soe), spe), "Hierarchical Sweepiness"), "How likely it is to use cross-hierarchy (1) vs bottom-up (-1)."), 0.1), U5c), BI), pqb(L5c))));
122444 o4c(a, soe, tpe, fuc);
122445 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), toe), spe), "Semi-Interactive Crossing Minimization"), "Preserves the order of nodes within a layer but still minimizes crossings between edges connecting long edge dummies. Derives the desired order from positions specified by the 'org.eclipse.elk.position' layout option. Requires a crossing minimization strategy that is able to process 'in-layer' constraints."), false), T5c), wI), pqb(L5c))));
122446 o4c(a, toe, qoe, juc);
122447 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), uoe), spe), "Position Choice Constraint"), "Allows to set a constraint regarding the position placement of a node in a layer. Assumed the layer in which the node placed includes n other nodes and i < n. If set to i, it expresses that the node should be placed at the i-th position. Should i>=n be true then the node is placed at the last position in the layer. Note that this option is not part of any of ELK Layered's default configurations but is only evaluated as part of the `InteractiveLayeredGraphVisitor`, which must be applied manually or used via the `DiagramLayoutEngine."), meb(-1)), X5c), JI), pqb(K5c))));
122448 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), voe), spe), "Position ID"), "Position within a layer that was determined by ELK Layered for a node. This is only generated if interactiveLayot or generatePositionAndLayerIds is set."), meb(-1)), X5c), JI), pqb(K5c))));
122449 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), woe), upe), "Greedy Switch Activation Threshold"), "By default it is decided automatically if the greedy switch is activated or not. The decision is based on whether the size of the input graph (without dummy nodes) is smaller than the value of this option. A '0' enforces the activation."), meb(40)), X5c), JI), pqb(L5c))));
122450 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xoe), upe), "Greedy Switch Crossing Minimization"), "Greedy Switch strategy for crossing minimization. The greedy switch heuristic is executed after the regular crossing minimization as a post-processor. Note that if 'hierarchyHandling' is set to 'INCLUDE_CHILDREN', the 'greedySwitchHierarchical.type' option must be used."), cuc), V5c), QW), pqb(L5c))));
122451 o4c(a, xoe, qoe, duc);
122452 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), yoe), "crossingMinimization.greedySwitchHierarchical"), "Greedy Switch Crossing Minimization (hierarchical)"), "Activates the greedy switch heuristic in case hierarchical layout is used. The differences to the non-hierarchical case (see 'greedySwitch.type') are: 1) greedy switch is inactive by default, 3) only the option value set on the node at which hierarchical layout starts is relevant, and 2) if it's activated by the user, it properly addresses hierarchy-crossing edges."), $tc), V5c), QW), pqb(L5c))));
122453 o4c(a, yoe, qoe, _tc);
122454 o4c(a, yoe, tpe, auc);
122455 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), zoe), vpe), "Node Placement Strategy"), "Strategy for node placement."), vvc), V5c), _W), pqb(L5c))));
122456 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Aoe), vpe), "Favor Straight Edges Over Balancing"), "Favor straight edges over a balanced node placement. The default behavior is determined automatically based on the used 'edgeRouting'. For an orthogonal style it is set to true, for all other styles to false."), T5c), wI), pqb(L5c))));
122457 o4c(a, Aoe, zoe, lvc);
122458 o4c(a, Aoe, zoe, mvc);
122459 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Boe), wpe), "BK Edge Straightening"), "Specifies whether the Brandes Koepf node placer tries to increase the number of straight edges at the expense of diagram size. There is a subtle difference to the 'favorStraightEdges' option, which decides whether a balanced placement of the nodes is desired, or not. In bk terms this means combining the four alignments into a single balanced one, or not. This option on the other hand tries to straighten additional edges during the creation of each of the four alignments."), fvc), V5c), MW), pqb(L5c))));
122460 o4c(a, Boe, zoe, gvc);
122461 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Coe), wpe), "BK Fixed Alignment"), "Tells the BK node placer to use a certain alignment (out of its four) instead of the one producing the smallest height, or the combination of all four."), ivc), V5c), NW), pqb(L5c))));
122462 o4c(a, Coe, zoe, jvc);
122463 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Doe), "nodePlacement.linearSegments"), "Linear Segments Deflection Dampening"), "Dampens the movement of nodes to keep the diagram from getting too large."), 0.3), U5c), BI), pqb(L5c))));
122464 o4c(a, Doe, zoe, ovc);
122465 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Eoe), "nodePlacement.networkSimplex"), "Node Flexibility"), "Aims at shorter and straighter edges. Two configurations are possible: (a) allow ports to move freely on the side they are assigned to (the order is always defined beforehand), (b) additionally allow to enlarge a node wherever it helps. If this option is not configured for a node, the 'nodeFlexibility.default' value is used, which is specified for the node's parent."), V5c), $W), pqb(K5c))));
122466 o4c(a, Eoe, zoe, tvc);
122467 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Foe), "nodePlacement.networkSimplex.nodeFlexibility"), "Node Flexibility Default"), "Default value of the 'nodeFlexibility' option for the children of a hierarchical node."), rvc), V5c), $W), pqb(L5c))));
122468 o4c(a, Foe, zoe, svc);
122469 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Goe), xpe), "Self-Loop Distribution"), "Alter the distribution of the loops around the node. It only takes effect for PortConstraints.FREE."), xuc), V5c), eX), pqb(K5c))));
122470 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Hoe), xpe), "Self-Loop Ordering"), "Alter the ordering of the loops they can either be stacked or sequenced. It only takes effect for PortConstraints.FREE."), zuc), V5c), fX), pqb(K5c))));
122471 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ioe), "edgeRouting.splines"), "Spline Routing Mode"), "Specifies the way control points are assembled for each individual edge. CONSERVATIVE ensures that edges are properly routed around the nodes but feels rather orthogonal at times. SLOPPY uses fewer control points to obtain curvier edge routes but may result in edges overlapping nodes."), Buc), V5c), hX), pqb(L5c))));
122472 o4c(a, Ioe, ype, Cuc);
122473 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Joe), "edgeRouting.splines.sloppy"), "Sloppy Spline Layer Spacing Factor"), "Spacing factor for routing area between layers when using sloppy spline routing."), 0.2), U5c), BI), pqb(L5c))));
122474 o4c(a, Joe, ype, Euc);
122475 o4c(a, Joe, Ioe, Fuc);
122476 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Koe), "edgeRouting.polyline"), "Sloped Edge Zone Width"), "Width of the strip to the left and to the right of each layer where the polyline edge router is allowed to refrain from ensuring that edges are routed horizontally. This prevents awkward bend points for nodes that extent almost to the edge of their layer."), 2), U5c), BI), pqb(L5c))));
122477 o4c(a, Koe, ype, vuc);
122478 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Loe), zpe), "Spacing Base Value"), "An optional base value for all other layout options of the 'spacing' group. It can be used to conveniently alter the overall 'spaciousness' of the drawing. Whenever an explicit value is set for the other layout options, this base value will have no effect. The base value is not inherited, i.e. it must be set for each hierarchical node."), U5c), BI), pqb(L5c))));
122479 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Moe), zpe), "Edge Node Between Layers Spacing"), "The spacing to be preserved between nodes and edges that are routed next to the node's layer. For the spacing between nodes and edges that cross the node's layer 'spacing.edgeNode' is used."), 10), U5c), BI), pqb(L5c))));
122480 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Noe), zpe), "Edge Edge Between Layer Spacing"), "Spacing to be preserved between pairs of edges that are routed between the same pair of layers. Note that 'spacing.edgeEdge' is used for the spacing between pairs of edges crossing the same layer."), 10), U5c), BI), pqb(L5c))));
122481 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ooe), zpe), "Node Node Between Layers Spacing"), "The spacing to be preserved between any pair of nodes of two adjacent layers. Note that 'spacing.nodeNode' is used for the spacing between nodes within the layer itself."), 20), U5c), BI), pqb(L5c))));
122482 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Poe), Ape), "Direction Priority"), "Defines how important it is to have a certain edge point into the direction of the overall layout. This option is evaluated during the cycle breaking phase."), meb(0)), X5c), JI), pqb(I5c))));
122483 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Qoe), Ape), "Shortness Priority"), "Defines how important it is to keep an edge as short as possible. This option is evaluated during the layering phase."), meb(0)), X5c), JI), pqb(I5c))));
122484 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Roe), Ape), "Straightness Priority"), "Defines how important it is to keep an edge straight, i.e. aligned with one of the two axes. This option is evaluated during node placement."), meb(0)), X5c), JI), pqb(I5c))));
122485 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Soe), Bpe), Ole), "Tries to further compact components (disconnected sub-graphs)."), false), T5c), wI), pqb(L5c))));
122486 o4c(a, Soe, zme, true);
122487 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Toe), Cpe), "Post Compaction Strategy"), Dpe), Ntc), V5c), OW), pqb(L5c))));
122488 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Uoe), Cpe), "Post Compaction Constraint Calculation"), Dpe), Ltc), V5c), FW), pqb(L5c))));
122489 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Voe), Epe), "High Degree Node Treatment"), "Makes room around high degree nodes to place leafs and trees."), false), T5c), wI), pqb(L5c))));
122490 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Woe), Epe), "High Degree Node Threshold"), "Whether a node is considered to have a high degree."), meb(16)), X5c), JI), pqb(L5c))));
122491 o4c(a, Woe, Voe, true);
122492 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Xoe), Epe), "High Degree Node Maximum Tree Height"), "Maximum height of a subtree connected to a high degree node to be moved to separate layers."), meb(5)), X5c), JI), pqb(L5c))));
122493 o4c(a, Xoe, Voe, true);
122494 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yoe), Fpe), "Graph Wrapping Strategy"), "For certain graphs and certain prescribed drawing areas it may be desirable to split the laid out graph into chunks that are placed side by side. The edges that connect different chunks are 'wrapped' around from the end of one chunk to the start of the other chunk. The points between the chunks are referred to as 'cuts'."), bwc), V5c), jX), pqb(L5c))));
122495 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zoe), Fpe), "Additional Wrapped Edges Spacing"), "To visually separate edges that are wrapped from regularly routed edges an additional spacing value can be specified in form of this layout option. The spacing is added to the regular edgeNode spacing."), 10), U5c), BI), pqb(L5c))));
122496 o4c(a, Zoe, Yoe, Ivc);
122497 o4c(a, Zoe, Yoe, Jvc);
122498 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $oe), Fpe), "Correction Factor for Wrapping"), "At times and for certain types of graphs the executed wrapping may produce results that are consistently biased in the same fashion: either wrapping to often or to rarely. This factor can be used to correct the bias. Internally, it is simply multiplied with the 'aspect ratio' layout option."), 1), U5c), BI), pqb(L5c))));
122499 o4c(a, $oe, Yoe, Lvc);
122500 o4c(a, $oe, Yoe, Mvc);
122501 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _oe), Gpe), "Cutting Strategy"), "The strategy by which the layer indexes are determined at which the layering crumbles into chunks."), Tvc), V5c), HW), pqb(L5c))));
122502 o4c(a, _oe, Yoe, Uvc);
122503 o4c(a, _oe, Yoe, Vvc);
122504 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), ape), Gpe), "Manually Specified Cuts"), "Allows the user to specify her own cuts for a certain graph."), Y5c), yK), pqb(L5c))));
122505 o4c(a, ape, _oe, Ovc);
122506 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), bpe), "wrapping.cutting.msd"), "MSD Freedom"), "The MSD cutting strategy starts with an initial guess on the number of chunks the graph should be split into. The freedom specifies how much the strategy may deviate from this guess. E.g. if an initial number of 3 is computed, a freedom of 1 allows 2, 3, and 4 cuts."), Qvc), X5c), JI), pqb(L5c))));
122507 o4c(a, bpe, _oe, Rvc);
122508 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), cpe), Hpe), "Validification Strategy"), "When wrapping graphs, one can specify indices that are not allowed as split points. The validification strategy makes sure every computed split point is allowed."), gwc), V5c), iX), pqb(L5c))));
122509 o4c(a, cpe, Yoe, hwc);
122510 o4c(a, cpe, Yoe, iwc);
122511 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), dpe), Hpe), "Valid Indices for Wrapping"), null), Y5c), yK), pqb(L5c))));
122512 o4c(a, dpe, Yoe, dwc);
122513 o4c(a, dpe, Yoe, ewc);
122514 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), epe), Ipe), "Improve Cuts"), "For general graphs it is important that not too many edges wrap backwards. Thus a compromise between evenly-distributed cuts and the total number of cut edges is sought."), true), T5c), wI), pqb(L5c))));
122515 o4c(a, epe, Yoe, Zvc);
122516 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), fpe), Ipe), "Distance Penalty When Improving Cuts"), null), 2), U5c), BI), pqb(L5c))));
122517 o4c(a, fpe, Yoe, Xvc);
122518 o4c(a, fpe, epe, true);
122519 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), gpe), Ipe), "Improve Wrapped Edges"), "The initial wrapping is performed in a very simple way. As a consequence, edges that wrap from one chunk to another may be unnecessarily long. Activating this option tries to shorten such edges."), true), T5c), wI), pqb(L5c))));
122520 o4c(a, gpe, Yoe, _vc);
122521 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), hpe), Jpe), "Edge Label Side Selection"), "Method to decide on edge label sides."), tuc), V5c), LW), pqb(L5c))));
122522 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ipe), Jpe), "Edge Center Label Placement Strategy"), "Determines in which layer center labels of long edges should be placed."), ruc), V5c), EW), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [J5c])))));
122523 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), jpe), Kpe), "Consider Model Order"), "Preserves the order of nodes and edges in the model file if this does not lead to additional edge crossings. Depending on the strategy this is not always possible since the node and edge order might be conflicting."), Wtc), V5c), bX), pqb(L5c))));
122524 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), kpe), Kpe), "No Model Order"), "Set on a node to not set a model order for this node even though it is a real node."), false), T5c), wI), pqb(K5c))));
122525 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), lpe), Kpe), "Consider Model Order for Components"), "If set to NONE the usual ordering strategy (by cumulative node priority and size of nodes) is used. INSIDE_PORT_SIDES orders the components with external ports only inside the groups with the same port side. FORCE_MODEL_ORDER enforces the mode order on components. This option might produce bad alignments and sub optimal drawings in terms of used area since the ordering should be respected."), Ptc), V5c), hQ), pqb(L5c))));
122526 o4c(a, lpe, zme, null);
122527 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mpe), Kpe), "Long Edge Ordering Strategy"), "Indicates whether long edges are sorted under, over, or equal to nodes that have no connection to a previous layer in a left-to-right or right-to-left layout. Under and over changes to right and left in a vertical layout."), Ttc), V5c), ZW), pqb(L5c))));
122528 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), npe), Kpe), "Crossing Counter Node Order Influence"), "Indicates with what percentage (1 for 100%) violations of the node model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal node order. Defaults to no influence (0)."), 0), U5c), BI), pqb(L5c))));
122529 o4c(a, npe, jpe, null);
122530 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ope), Kpe), "Crossing Counter Port Order Influence"), "Indicates with what percentage (1 for 100%) violations of the port model order are weighted against the crossings e.g. a value of 0.5 means two model order violations are as important as on edge crossing. This allows some edge crossings in favor of preserving the model order. It is advised to set this value to a very small positive value (e.g. 0.001) to have minimal crossing and a optimal port order. Defaults to no influence (0)."), 0), U5c), BI), pqb(L5c))));
122531 o4c(a, ope, jpe, null);
122532 Oyc((new Pyc(), a));
122533 };
122534 var Itc, Jtc, Ktc, Ltc, Mtc, Ntc, Otc, Ptc, Qtc, Rtc, Stc, Ttc, Utc, Vtc, Wtc, Xtc, Ytc, Ztc, $tc, _tc, auc, buc, cuc, duc, euc, fuc, guc, huc, iuc, juc, kuc, luc, muc, nuc, ouc, puc, quc, ruc, suc, tuc, uuc, vuc, wuc, xuc, yuc, zuc, Auc, Buc, Cuc, Duc, Euc, Fuc, Guc, Huc, Iuc, Juc, Kuc, Luc, Muc, Nuc, Ouc, Puc, Quc, Ruc, Suc, Tuc, Uuc, Vuc, Wuc, Xuc, Yuc, Zuc, $uc, _uc, avc, bvc, cvc, dvc, evc, fvc, gvc, hvc, ivc, jvc, kvc, lvc, mvc, nvc, ovc, pvc, qvc, rvc, svc, tvc, uvc, vvc, wvc, xvc, yvc, zvc, Avc, Bvc, Cvc, Dvc, Evc, Fvc, Gvc, Hvc, Ivc, Jvc, Kvc, Lvc, Mvc, Nvc, Ovc, Pvc, Qvc, Rvc, Svc, Tvc, Uvc, Vvc, Wvc, Xvc, Yvc, Zvc, $vc, _vc, awc, bwc, cwc, dwc, ewc, fwc, gwc, hwc, iwc;
122535 mdb(Sne, "LayeredMetaDataProvider", 848);
122536 bcb(986, 1, ale, Pyc);
122537 _2.Qe = function Qyc(a) {
122538 Oyc(a);
122539 };
122540 var mwc, nwc, owc, pwc, qwc, rwc, swc, twc, uwc, vwc, wwc, xwc, ywc, zwc, Awc, Bwc, Cwc, Dwc, Ewc, Fwc, Gwc, Hwc, Iwc, Jwc, Kwc, Lwc, Mwc, Nwc, Owc, Pwc, Qwc, Rwc, Swc, Twc, Uwc, Vwc, Wwc, Xwc, Ywc, Zwc, $wc, _wc, axc, bxc, cxc, dxc, exc, fxc, gxc, hxc, ixc, jxc, kxc, lxc, mxc, nxc, oxc, pxc, qxc, rxc, sxc, txc, uxc, vxc, wxc, xxc, yxc, zxc, Axc, Bxc, Cxc, Dxc, Exc, Fxc, Gxc, Hxc, Ixc, Jxc, Kxc, Lxc, Mxc, Nxc, Oxc, Pxc, Qxc, Rxc, Sxc, Txc, Uxc, Vxc, Wxc, Xxc, Yxc, Zxc, $xc, _xc, ayc, byc, cyc, dyc, eyc, fyc, gyc, hyc, iyc, jyc, kyc, lyc, myc, nyc, oyc, pyc, qyc, ryc, syc, tyc, uyc, vyc, wyc, xyc, yyc, zyc, Ayc, Byc, Cyc, Dyc, Eyc, Fyc, Gyc, Hyc, Iyc, Jyc, Kyc, Lyc, Myc;
122541 mdb(Sne, "LayeredOptions", 986);
122542 bcb(987, 1, {}, Ryc);
122543 _2.$e = function Syc() {
122544 var a;
122545 return a = new jUb(), a;
122546 };
122547 _2._e = function Tyc(a) {
122548 };
122549 mdb(Sne, "LayeredOptions/LayeredFactory", 987);
122550 bcb(1372, 1, {});
122551 _2.a = 0;
122552 var Uyc;
122553 mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder", 1372);
122554 bcb(779, 1372, {}, ezc);
122555 var bzc, czc;
122556 mdb(Sne, "LayeredSpacings/LayeredSpacingsBuilder", 779);
122557 bcb(313, 22, { 3: 1, 35: 1, 22: 1, 313: 1, 246: 1, 234: 1 }, nzc);
122558 _2.Kf = function pzc() {
122559 return mzc(this);
122560 };
122561 _2.Xf = function ozc() {
122562 return mzc(this);
122563 };
122564 var fzc, gzc, hzc, izc, jzc, kzc;
122565 var YW = ndb(Sne, "LayeringStrategy", 313, CI, rzc, qzc);
122566 var szc;
122567 bcb(378, 22, { 3: 1, 35: 1, 22: 1, 378: 1 }, zzc);
122568 var uzc, vzc, wzc;
122569 var ZW = ndb(Sne, "LongEdgeOrderingStrategy", 378, CI, Bzc, Azc);
122570 var Czc;
122571 bcb(197, 22, { 3: 1, 35: 1, 22: 1, 197: 1 }, Kzc);
122572 var Ezc, Fzc, Gzc, Hzc;
122573 var $W = ndb(Sne, "NodeFlexibility", 197, CI, Nzc, Mzc);
122574 var Ozc;
122575 bcb(315, 22, { 3: 1, 35: 1, 22: 1, 315: 1, 246: 1, 234: 1 }, Xzc);
122576 _2.Kf = function Zzc() {
122577 return Wzc(this);
122578 };
122579 _2.Xf = function Yzc() {
122580 return Wzc(this);
122581 };
122582 var Qzc, Rzc, Szc, Tzc, Uzc;
122583 var _W = ndb(Sne, "NodePlacementStrategy", 315, CI, _zc, $zc);
122584 var aAc;
122585 bcb(260, 22, { 3: 1, 35: 1, 22: 1, 260: 1 }, lAc);
122586 var cAc, dAc, eAc, fAc, gAc, hAc, iAc, jAc;
122587 var aX = ndb(Sne, "NodePromotionStrategy", 260, CI, nAc, mAc);
122588 var oAc;
122589 bcb(339, 22, { 3: 1, 35: 1, 22: 1, 339: 1 }, uAc);
122590 var qAc, rAc, sAc;
122591 var bX = ndb(Sne, "OrderingStrategy", 339, CI, wAc, vAc);
122592 var xAc;
122593 bcb(421, 22, { 3: 1, 35: 1, 22: 1, 421: 1 }, CAc);
122594 var zAc, AAc;
122595 var cX = ndb(Sne, "PortSortingStrategy", 421, CI, EAc, DAc);
122596 var FAc;
122597 bcb(452, 22, { 3: 1, 35: 1, 22: 1, 452: 1 }, LAc);
122598 var HAc, IAc, JAc;
122599 var dX = ndb(Sne, "PortType", 452, CI, NAc, MAc);
122600 var OAc;
122601 bcb(375, 22, { 3: 1, 35: 1, 22: 1, 375: 1 }, UAc);
122602 var QAc, RAc, SAc;
122603 var eX = ndb(Sne, "SelfLoopDistributionStrategy", 375, CI, WAc, VAc);
122604 var XAc;
122605 bcb(376, 22, { 3: 1, 35: 1, 22: 1, 376: 1 }, aBc);
122606 var ZAc, $Ac;
122607 var fX = ndb(Sne, "SelfLoopOrderingStrategy", 376, CI, cBc, bBc);
122608 var dBc;
122609 bcb(304, 1, { 304: 1 }, oBc);
122610 mdb(Sne, "Spacings", 304);
122611 bcb(336, 22, { 3: 1, 35: 1, 22: 1, 336: 1 }, uBc);
122612 var qBc, rBc, sBc;
122613 var hX = ndb(Sne, "SplineRoutingMode", 336, CI, wBc, vBc);
122614 var xBc;
122615 bcb(338, 22, { 3: 1, 35: 1, 22: 1, 338: 1 }, DBc);
122616 var zBc, ABc, BBc;
122617 var iX = ndb(Sne, "ValidifyStrategy", 338, CI, FBc, EBc);
122618 var GBc;
122619 bcb(377, 22, { 3: 1, 35: 1, 22: 1, 377: 1 }, MBc);
122620 var IBc, JBc, KBc;
122621 var jX = ndb(Sne, "WrappingStrategy", 377, CI, OBc, NBc);
122622 var PBc;
122623 bcb(1383, 1, Bqe, VBc);
122624 _2.Yf = function WBc(a) {
122625 return BD(a, 37), RBc;
122626 };
122627 _2.pf = function XBc(a, b) {
122628 UBc(this, BD(a, 37), b);
122629 };
122630 var RBc;
122631 mdb(Cqe, "DepthFirstCycleBreaker", 1383);
122632 bcb(782, 1, Bqe, aCc);
122633 _2.Yf = function cCc(a) {
122634 return BD(a, 37), YBc;
122635 };
122636 _2.pf = function dCc(a, b) {
122637 $Bc(this, BD(a, 37), b);
122638 };
122639 _2.Zf = function bCc(a) {
122640 return BD(Ikb(a, Bub(this.d, a.c.length)), 10);
122641 };
122642 var YBc;
122643 mdb(Cqe, "GreedyCycleBreaker", 782);
122644 bcb(1386, 782, Bqe, eCc);
122645 _2.Zf = function fCc(a) {
122646 var b, c2, d, e;
122647 e = null;
122648 b = Ohe;
122649 for (d = new olb(a); d.a < d.c.c.length; ) {
122650 c2 = BD(mlb(d), 10);
122651 if (wNb(c2, (wtc(), Zsc)) && BD(vNb(c2, Zsc), 19).a < b) {
122652 b = BD(vNb(c2, Zsc), 19).a;
122653 e = c2;
122654 }
122655 }
122656 if (!e) {
122657 return BD(Ikb(a, Bub(this.d, a.c.length)), 10);
122658 }
122659 return e;
122660 };
122661 mdb(Cqe, "GreedyModelOrderCycleBreaker", 1386);
122662 bcb(1384, 1, Bqe, kCc);
122663 _2.Yf = function lCc(a) {
122664 return BD(a, 37), gCc;
122665 };
122666 _2.pf = function mCc(a, b) {
122667 jCc(this, BD(a, 37), b);
122668 };
122669 var gCc;
122670 mdb(Cqe, "InteractiveCycleBreaker", 1384);
122671 bcb(1385, 1, Bqe, rCc);
122672 _2.Yf = function sCc(a) {
122673 return BD(a, 37), nCc;
122674 };
122675 _2.pf = function tCc(a, b) {
122676 qCc(this, BD(a, 37), b);
122677 };
122678 _2.a = 0;
122679 _2.b = 0;
122680 var nCc;
122681 mdb(Cqe, "ModelOrderCycleBreaker", 1385);
122682 bcb(1389, 1, Bqe, DCc);
122683 _2.Yf = function ECc(a) {
122684 return BD(a, 37), uCc;
122685 };
122686 _2.pf = function FCc(a, b) {
122687 BCc(this, BD(a, 37), b);
122688 };
122689 var uCc;
122690 mdb(Dqe, "CoffmanGrahamLayerer", 1389);
122691 bcb(1390, 1, Dke, GCc);
122692 _2.ue = function HCc(a, b) {
122693 return xCc(this.a, BD(a, 10), BD(b, 10));
122694 };
122695 _2.Fb = function ICc(a) {
122696 return this === a;
122697 };
122698 _2.ve = function JCc() {
122699 return new tpb(this);
122700 };
122701 mdb(Dqe, "CoffmanGrahamLayerer/0methodref$compareNodesInTopo$Type", 1390);
122702 bcb(1391, 1, Dke, KCc);
122703 _2.ue = function LCc(a, b) {
122704 return ACc(this.a, BD(a, 10), BD(b, 10));
122705 };
122706 _2.Fb = function MCc(a) {
122707 return this === a;
122708 };
122709 _2.ve = function NCc() {
122710 return new tpb(this);
122711 };
122712 mdb(Dqe, "CoffmanGrahamLayerer/lambda$1$Type", 1391);
122713 bcb(1392, 1, Bqe, QCc);
122714 _2.Yf = function RCc(a) {
122715 return BD(a, 37), e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), n8b)), mUb, w8b), nUb, v8b);
122716 };
122717 _2.pf = function SCc(a, b) {
122718 PCc(this, BD(a, 37), b);
122719 };
122720 mdb(Dqe, "InteractiveLayerer", 1392);
122721 bcb(569, 1, { 569: 1 }, TCc);
122722 _2.a = 0;
122723 _2.c = 0;
122724 mdb(Dqe, "InteractiveLayerer/LayerSpan", 569);
122725 bcb(1388, 1, Bqe, ZCc);
122726 _2.Yf = function $Cc(a) {
122727 return BD(a, 37), UCc;
122728 };
122729 _2.pf = function _Cc(a, b) {
122730 WCc(this, BD(a, 37), b);
122731 };
122732 var UCc;
122733 mdb(Dqe, "LongestPathLayerer", 1388);
122734 bcb(1395, 1, Bqe, iDc);
122735 _2.Yf = function jDc(a) {
122736 return BD(a, 37), e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
122737 };
122738 _2.pf = function kDc(a, b) {
122739 gDc(this, BD(a, 37), b);
122740 };
122741 _2.a = 0;
122742 _2.b = 0;
122743 _2.d = 0;
122744 var aDc, bDc;
122745 mdb(Dqe, "MinWidthLayerer", 1395);
122746 bcb(1396, 1, Dke, mDc);
122747 _2.ue = function nDc(a, b) {
122748 return lDc(this, BD(a, 10), BD(b, 10));
122749 };
122750 _2.Fb = function oDc(a) {
122751 return this === a;
122752 };
122753 _2.ve = function pDc() {
122754 return new tpb(this);
122755 };
122756 mdb(Dqe, "MinWidthLayerer/MinOutgoingEdgesComparator", 1396);
122757 bcb(1387, 1, Bqe, xDc);
122758 _2.Yf = function yDc(a) {
122759 return BD(a, 37), qDc;
122760 };
122761 _2.pf = function zDc(a, b) {
122762 wDc(this, BD(a, 37), b);
122763 };
122764 var qDc;
122765 mdb(Dqe, "NetworkSimplexLayerer", 1387);
122766 bcb(1393, 1, Bqe, LDc);
122767 _2.Yf = function MDc(a) {
122768 return BD(a, 37), e3c(e3c(e3c(new j3c(), (qUb(), lUb), (S8b(), Z7b)), mUb, w8b), nUb, v8b);
122769 };
122770 _2.pf = function NDc(a, b) {
122771 IDc(this, BD(a, 37), b);
122772 };
122773 _2.d = 0;
122774 _2.f = 0;
122775 _2.g = 0;
122776 _2.i = 0;
122777 _2.s = 0;
122778 _2.t = 0;
122779 _2.u = 0;
122780 mdb(Dqe, "StretchWidthLayerer", 1393);
122781 bcb(1394, 1, Dke, PDc);
122782 _2.ue = function QDc(a, b) {
122783 return ODc(BD(a, 10), BD(b, 10));
122784 };
122785 _2.Fb = function RDc(a) {
122786 return this === a;
122787 };
122788 _2.ve = function SDc() {
122789 return new tpb(this);
122790 };
122791 mdb(Dqe, "StretchWidthLayerer/1", 1394);
122792 bcb(402, 1, Eqe);
122793 _2.Nf = function fEc(a, b, c2, d, e, f2) {
122794 };
122795 _2._f = function dEc(a, b, c2) {
122796 return YDc(this, a, b, c2);
122797 };
122798 _2.Mf = function eEc() {
122799 this.g = KC(VD, Fqe, 25, this.d, 15, 1);
122800 this.f = KC(VD, Fqe, 25, this.d, 15, 1);
122801 };
122802 _2.Of = function gEc(a, b) {
122803 this.e[a] = KC(WD, oje, 25, b[a].length, 15, 1);
122804 };
122805 _2.Pf = function hEc(a, b, c2) {
122806 var d;
122807 d = c2[a][b];
122808 d.p = b;
122809 this.e[a][b] = b;
122810 };
122811 _2.Qf = function iEc(a, b, c2, d) {
122812 BD(Ikb(d[a][b].j, c2), 11).p = this.d++;
122813 };
122814 _2.b = 0;
122815 _2.c = 0;
122816 _2.d = 0;
122817 mdb(Gqe, "AbstractBarycenterPortDistributor", 402);
122818 bcb(1633, 1, Dke, jEc);
122819 _2.ue = function kEc(a, b) {
122820 return _Dc(this.a, BD(a, 11), BD(b, 11));
122821 };
122822 _2.Fb = function lEc(a) {
122823 return this === a;
122824 };
122825 _2.ve = function mEc() {
122826 return new tpb(this);
122827 };
122828 mdb(Gqe, "AbstractBarycenterPortDistributor/lambda$0$Type", 1633);
122829 bcb(817, 1, Mne, uEc);
122830 _2.Nf = function xEc(a, b, c2, d, e, f2) {
122831 };
122832 _2.Pf = function zEc(a, b, c2) {
122833 };
122834 _2.Qf = function AEc(a, b, c2, d) {
122835 };
122836 _2.Lf = function vEc() {
122837 return false;
122838 };
122839 _2.Mf = function wEc() {
122840 this.c = this.e.a;
122841 this.g = this.f.g;
122842 };
122843 _2.Of = function yEc(a, b) {
122844 b[a][0].c.p = a;
122845 };
122846 _2.Rf = function BEc() {
122847 return false;
122848 };
122849 _2.ag = function CEc(a, b, c2, d) {
122850 if (c2) {
122851 rEc(this, a);
122852 } else {
122853 oEc(this, a, d);
122854 pEc(this, a, b);
122855 }
122856 if (a.c.length > 1) {
122857 Ccb(DD(vNb(Q_b((tCb(0, a.c.length), BD(a.c[0], 10))), (Nyc(), Awc)))) ? YGc(a, this.d, BD(this, 660)) : (mmb(), Okb(a, this.d));
122858 PEc(this.e, a);
122859 }
122860 };
122861 _2.Sf = function DEc(a, b, c2, d) {
122862 var e, f2, g, h, i3, j, k;
122863 if (b != sEc(c2, a.length)) {
122864 f2 = a[b - (c2 ? 1 : -1)];
122865 UDc(this.f, f2, c2 ? (KAc(), IAc) : (KAc(), HAc));
122866 }
122867 e = a[b][0];
122868 k = !d || e.k == (j0b(), e0b);
122869 j = Ou(a[b]);
122870 this.ag(j, k, false, c2);
122871 g = 0;
122872 for (i3 = new olb(j); i3.a < i3.c.c.length; ) {
122873 h = BD(mlb(i3), 10);
122874 a[b][g++] = h;
122875 }
122876 return false;
122877 };
122878 _2.Tf = function EEc(a, b) {
122879 var c2, d, e, f2, g;
122880 g = sEc(b, a.length);
122881 f2 = Ou(a[g]);
122882 this.ag(f2, false, true, b);
122883 c2 = 0;
122884 for (e = new olb(f2); e.a < e.c.c.length; ) {
122885 d = BD(mlb(e), 10);
122886 a[g][c2++] = d;
122887 }
122888 return false;
122889 };
122890 mdb(Gqe, "BarycenterHeuristic", 817);
122891 bcb(658, 1, { 658: 1 }, FEc);
122892 _2.Ib = function GEc() {
122893 return "BarycenterState [node=" + this.c + ", summedWeight=" + this.d + ", degree=" + this.b + ", barycenter=" + this.a + ", visited=" + this.e + "]";
122894 };
122895 _2.b = 0;
122896 _2.d = 0;
122897 _2.e = false;
122898 var CX = mdb(Gqe, "BarycenterHeuristic/BarycenterState", 658);
122899 bcb(1802, 1, Dke, HEc);
122900 _2.ue = function IEc(a, b) {
122901 return qEc(this.a, BD(a, 10), BD(b, 10));
122902 };
122903 _2.Fb = function JEc(a) {
122904 return this === a;
122905 };
122906 _2.ve = function KEc() {
122907 return new tpb(this);
122908 };
122909 mdb(Gqe, "BarycenterHeuristic/lambda$0$Type", 1802);
122910 bcb(816, 1, Mne, SEc);
122911 _2.Mf = function TEc() {
122912 };
122913 _2.Nf = function UEc(a, b, c2, d, e, f2) {
122914 };
122915 _2.Qf = function XEc(a, b, c2, d) {
122916 };
122917 _2.Of = function VEc(a, b) {
122918 this.a[a] = KC(CX, { 3: 1, 4: 1, 5: 1, 2018: 1 }, 658, b[a].length, 0, 1);
122919 this.b[a] = KC(FX, { 3: 1, 4: 1, 5: 1, 2019: 1 }, 233, b[a].length, 0, 1);
122920 };
122921 _2.Pf = function WEc(a, b, c2) {
122922 OEc(this, c2[a][b], true);
122923 };
122924 _2.c = false;
122925 mdb(Gqe, "ForsterConstraintResolver", 816);
122926 bcb(233, 1, { 233: 1 }, $Ec, _Ec);
122927 _2.Ib = function aFc() {
122928 var a, b;
122929 b = new Ufb();
122930 b.a += "[";
122931 for (a = 0; a < this.d.length; a++) {
122932 Qfb(b, a0b(this.d[a]));
122933 REc(this.g, this.d[0]).a != null && Qfb(Qfb((b.a += "<", b), Jdb(REc(this.g, this.d[0]).a)), ">");
122934 a < this.d.length - 1 && (b.a += She, b);
122935 }
122936 return (b.a += "]", b).a;
122937 };
122938 _2.a = 0;
122939 _2.c = 0;
122940 _2.f = 0;
122941 var FX = mdb(Gqe, "ForsterConstraintResolver/ConstraintGroup", 233);
122942 bcb(1797, 1, qie, bFc);
122943 _2.td = function cFc(a) {
122944 OEc(this.a, BD(a, 10), false);
122945 };
122946 mdb(Gqe, "ForsterConstraintResolver/lambda$0$Type", 1797);
122947 bcb(214, 1, { 214: 1, 225: 1 }, fFc);
122948 _2.Nf = function hFc(a, b, c2, d, e, f2) {
122949 };
122950 _2.Of = function iFc(a, b) {
122951 };
122952 _2.Mf = function gFc() {
122953 this.r = KC(WD, oje, 25, this.n, 15, 1);
122954 };
122955 _2.Pf = function jFc(a, b, c2) {
122956 var d, e;
122957 e = c2[a][b];
122958 d = e.e;
122959 !!d && Ekb(this.b, d);
122960 };
122961 _2.Qf = function kFc(a, b, c2, d) {
122962 ++this.n;
122963 };
122964 _2.Ib = function lFc() {
122965 return wlb(this.e, new Tqb());
122966 };
122967 _2.g = false;
122968 _2.i = false;
122969 _2.n = 0;
122970 _2.s = false;
122971 mdb(Gqe, "GraphInfoHolder", 214);
122972 bcb(1832, 1, Mne, pFc);
122973 _2.Nf = function sFc(a, b, c2, d, e, f2) {
122974 };
122975 _2.Of = function tFc(a, b) {
122976 };
122977 _2.Qf = function vFc(a, b, c2, d) {
122978 };
122979 _2._f = function qFc(a, b, c2) {
122980 c2 && b > 0 ? (RHc(this.a, a[b - 1], a[b]), void 0) : !c2 && b < a.length - 1 ? (RHc(this.a, a[b], a[b + 1]), void 0) : THc(this.a, a[b], c2 ? (Ucd(), Tcd) : (Ucd(), zcd));
122981 return mFc(this, a, b, c2);
122982 };
122983 _2.Mf = function rFc() {
122984 this.d = KC(WD, oje, 25, this.c, 15, 1);
122985 this.a = new dIc(this.d);
122986 };
122987 _2.Pf = function uFc(a, b, c2) {
122988 var d;
122989 d = c2[a][b];
122990 this.c += d.j.c.length;
122991 };
122992 _2.c = 0;
122993 mdb(Gqe, "GreedyPortDistributor", 1832);
122994 bcb(1401, 1, Bqe, CFc);
122995 _2.Yf = function DFc(a) {
122996 return zFc(BD(a, 37));
122997 };
122998 _2.pf = function EFc(a, b) {
122999 BFc(BD(a, 37), b);
123000 };
123001 var xFc;
123002 mdb(Gqe, "InteractiveCrossingMinimizer", 1401);
123003 bcb(1402, 1, Dke, GFc);
123004 _2.ue = function HFc(a, b) {
123005 return FFc(this, BD(a, 10), BD(b, 10));
123006 };
123007 _2.Fb = function IFc(a) {
123008 return this === a;
123009 };
123010 _2.ve = function JFc() {
123011 return new tpb(this);
123012 };
123013 mdb(Gqe, "InteractiveCrossingMinimizer/1", 1402);
123014 bcb(507, 1, { 507: 1, 123: 1, 51: 1 }, fGc);
123015 _2.Yf = function gGc(a) {
123016 var b;
123017 return BD(a, 37), b = k3c(KFc), e3c(b, (qUb(), nUb), (S8b(), H8b)), b;
123018 };
123019 _2.pf = function hGc(a, b) {
123020 YFc(this, BD(a, 37), b);
123021 };
123022 _2.e = 0;
123023 var KFc;
123024 mdb(Gqe, "LayerSweepCrossingMinimizer", 507);
123025 bcb(1398, 1, qie, iGc);
123026 _2.td = function jGc(a) {
123027 MFc(this.a, BD(a, 214));
123028 };
123029 mdb(Gqe, "LayerSweepCrossingMinimizer/0methodref$compareDifferentRandomizedLayouts$Type", 1398);
123030 bcb(1399, 1, qie, kGc);
123031 _2.td = function lGc(a) {
123032 VFc(this.a, BD(a, 214));
123033 };
123034 mdb(Gqe, "LayerSweepCrossingMinimizer/1methodref$minimizeCrossingsNoCounter$Type", 1399);
123035 bcb(1400, 1, qie, mGc);
123036 _2.td = function nGc(a) {
123037 XFc(this.a, BD(a, 214));
123038 };
123039 mdb(Gqe, "LayerSweepCrossingMinimizer/2methodref$minimizeCrossingsWithCounter$Type", 1400);
123040 bcb(454, 22, { 3: 1, 35: 1, 22: 1, 454: 1 }, sGc);
123041 var oGc, pGc, qGc;
123042 var PX = ndb(Gqe, "LayerSweepCrossingMinimizer/CrossMinType", 454, CI, uGc, tGc);
123043 var vGc;
123044 bcb(1397, 1, Oie, xGc);
123045 _2.Mb = function yGc(a) {
123046 return LFc(), BD(a, 29).a.c.length == 0;
123047 };
123048 mdb(Gqe, "LayerSweepCrossingMinimizer/lambda$0$Type", 1397);
123049 bcb(1799, 1, Mne, BGc);
123050 _2.Mf = function CGc() {
123051 };
123052 _2.Nf = function DGc(a, b, c2, d, e, f2) {
123053 };
123054 _2.Qf = function GGc(a, b, c2, d) {
123055 };
123056 _2.Of = function EGc(a, b) {
123057 b[a][0].c.p = a;
123058 this.b[a] = KC(SX, { 3: 1, 4: 1, 5: 1, 1944: 1 }, 659, b[a].length, 0, 1);
123059 };
123060 _2.Pf = function FGc(a, b, c2) {
123061 var d;
123062 d = c2[a][b];
123063 d.p = b;
123064 NC(this.b[a], b, new HGc());
123065 };
123066 mdb(Gqe, "LayerSweepTypeDecider", 1799);
123067 bcb(659, 1, { 659: 1 }, HGc);
123068 _2.Ib = function IGc() {
123069 return "NodeInfo [connectedEdges=" + this.a + ", hierarchicalInfluence=" + this.b + ", randomInfluence=" + this.c + "]";
123070 };
123071 _2.a = 0;
123072 _2.b = 0;
123073 _2.c = 0;
123074 var SX = mdb(Gqe, "LayerSweepTypeDecider/NodeInfo", 659);
123075 bcb(1800, 1, Vke, JGc);
123076 _2.Lb = function KGc(a) {
123077 return a1b(new b1b(BD(a, 11).b));
123078 };
123079 _2.Fb = function LGc(a) {
123080 return this === a;
123081 };
123082 _2.Mb = function MGc(a) {
123083 return a1b(new b1b(BD(a, 11).b));
123084 };
123085 mdb(Gqe, "LayerSweepTypeDecider/lambda$0$Type", 1800);
123086 bcb(1801, 1, Vke, NGc);
123087 _2.Lb = function OGc(a) {
123088 return a1b(new b1b(BD(a, 11).b));
123089 };
123090 _2.Fb = function PGc(a) {
123091 return this === a;
123092 };
123093 _2.Mb = function QGc(a) {
123094 return a1b(new b1b(BD(a, 11).b));
123095 };
123096 mdb(Gqe, "LayerSweepTypeDecider/lambda$1$Type", 1801);
123097 bcb(1833, 402, Eqe, RGc);
123098 _2.$f = function SGc(a, b, c2) {
123099 var d, e, f2, g, h, i3, j, k, l;
123100 j = this.g;
123101 switch (c2.g) {
123102 case 1: {
123103 d = 0;
123104 e = 0;
123105 for (i3 = new olb(a.j); i3.a < i3.c.c.length; ) {
123106 g = BD(mlb(i3), 11);
123107 if (g.e.c.length != 0) {
123108 ++d;
123109 g.j == (Ucd(), Acd) && ++e;
123110 }
123111 }
123112 f2 = b + e;
123113 l = b + d;
123114 for (h = W_b(a, (KAc(), HAc)).Kc(); h.Ob(); ) {
123115 g = BD(h.Pb(), 11);
123116 if (g.j == (Ucd(), Acd)) {
123117 j[g.p] = f2;
123118 --f2;
123119 } else {
123120 j[g.p] = l;
123121 --l;
123122 }
123123 }
123124 return d;
123125 }
123126 case 2: {
123127 k = 0;
123128 for (h = W_b(a, (KAc(), IAc)).Kc(); h.Ob(); ) {
123129 g = BD(h.Pb(), 11);
123130 ++k;
123131 j[g.p] = b + k;
123132 }
123133 return k;
123134 }
123135 default:
123136 throw vbb(new Vdb());
123137 }
123138 };
123139 mdb(Gqe, "LayerTotalPortDistributor", 1833);
123140 bcb(660, 817, { 660: 1, 225: 1 }, XGc);
123141 _2.ag = function ZGc(a, b, c2, d) {
123142 if (c2) {
123143 rEc(this, a);
123144 } else {
123145 oEc(this, a, d);
123146 pEc(this, a, b);
123147 }
123148 if (a.c.length > 1) {
123149 Ccb(DD(vNb(Q_b((tCb(0, a.c.length), BD(a.c[0], 10))), (Nyc(), Awc)))) ? YGc(a, this.d, this) : (mmb(), Okb(a, this.d));
123150 Ccb(DD(vNb(Q_b((tCb(0, a.c.length), BD(a.c[0], 10))), Awc))) || PEc(this.e, a);
123151 }
123152 };
123153 mdb(Gqe, "ModelOrderBarycenterHeuristic", 660);
123154 bcb(1803, 1, Dke, $Gc);
123155 _2.ue = function _Gc(a, b) {
123156 return VGc(this.a, BD(a, 10), BD(b, 10));
123157 };
123158 _2.Fb = function aHc(a) {
123159 return this === a;
123160 };
123161 _2.ve = function bHc() {
123162 return new tpb(this);
123163 };
123164 mdb(Gqe, "ModelOrderBarycenterHeuristic/lambda$0$Type", 1803);
123165 bcb(1403, 1, Bqe, fHc);
123166 _2.Yf = function gHc(a) {
123167 var b;
123168 return BD(a, 37), b = k3c(cHc), e3c(b, (qUb(), nUb), (S8b(), H8b)), b;
123169 };
123170 _2.pf = function hHc(a, b) {
123171 eHc((BD(a, 37), b));
123172 };
123173 var cHc;
123174 mdb(Gqe, "NoCrossingMinimizer", 1403);
123175 bcb(796, 402, Eqe, iHc);
123176 _2.$f = function jHc(a, b, c2) {
123177 var d, e, f2, g, h, i3, j, k, l, m, n;
123178 l = this.g;
123179 switch (c2.g) {
123180 case 1: {
123181 e = 0;
123182 f2 = 0;
123183 for (k = new olb(a.j); k.a < k.c.c.length; ) {
123184 i3 = BD(mlb(k), 11);
123185 if (i3.e.c.length != 0) {
123186 ++e;
123187 i3.j == (Ucd(), Acd) && ++f2;
123188 }
123189 }
123190 d = 1 / (e + 1);
123191 g = b + f2 * d;
123192 n = b + 1 - d;
123193 for (j = W_b(a, (KAc(), HAc)).Kc(); j.Ob(); ) {
123194 i3 = BD(j.Pb(), 11);
123195 if (i3.j == (Ucd(), Acd)) {
123196 l[i3.p] = g;
123197 g -= d;
123198 } else {
123199 l[i3.p] = n;
123200 n -= d;
123201 }
123202 }
123203 break;
123204 }
123205 case 2: {
123206 h = 0;
123207 for (k = new olb(a.j); k.a < k.c.c.length; ) {
123208 i3 = BD(mlb(k), 11);
123209 i3.g.c.length == 0 || ++h;
123210 }
123211 d = 1 / (h + 1);
123212 m = b + d;
123213 for (j = W_b(a, (KAc(), IAc)).Kc(); j.Ob(); ) {
123214 i3 = BD(j.Pb(), 11);
123215 l[i3.p] = m;
123216 m += d;
123217 }
123218 break;
123219 }
123220 default:
123221 throw vbb(new Wdb("Port type is undefined"));
123222 }
123223 return 1;
123224 };
123225 mdb(Gqe, "NodeRelativePortDistributor", 796);
123226 bcb(807, 1, {}, nHc, oHc);
123227 mdb(Gqe, "SweepCopy", 807);
123228 bcb(1798, 1, Mne, rHc);
123229 _2.Of = function uHc(a, b) {
123230 };
123231 _2.Mf = function sHc() {
123232 var a;
123233 a = KC(WD, oje, 25, this.f, 15, 1);
123234 this.d = new LIc(a);
123235 this.a = new dIc(a);
123236 };
123237 _2.Nf = function tHc(a, b, c2, d, e, f2) {
123238 var g;
123239 g = BD(Ikb(f2[a][b].j, c2), 11);
123240 e.c == g && e.c.i.c == e.d.i.c && ++this.e[a];
123241 };
123242 _2.Pf = function vHc(a, b, c2) {
123243 var d;
123244 d = c2[a][b];
123245 this.c[a] = this.c[a] | d.k == (j0b(), i0b);
123246 };
123247 _2.Qf = function wHc(a, b, c2, d) {
123248 var e;
123249 e = BD(Ikb(d[a][b].j, c2), 11);
123250 e.p = this.f++;
123251 e.g.c.length + e.e.c.length > 1 && (e.j == (Ucd(), zcd) ? this.b[a] = true : e.j == Tcd && a > 0 && (this.b[a - 1] = true));
123252 };
123253 _2.f = 0;
123254 mdb(Lne, "AllCrossingsCounter", 1798);
123255 bcb(587, 1, {}, BHc);
123256 _2.b = 0;
123257 _2.d = 0;
123258 mdb(Lne, "BinaryIndexedTree", 587);
123259 bcb(524, 1, {}, dIc);
123260 var DHc, EHc;
123261 mdb(Lne, "CrossingsCounter", 524);
123262 bcb(1906, 1, Dke, hIc);
123263 _2.ue = function iIc(a, b) {
123264 return YHc(this.a, BD(a, 11), BD(b, 11));
123265 };
123266 _2.Fb = function jIc(a) {
123267 return this === a;
123268 };
123269 _2.ve = function kIc() {
123270 return new tpb(this);
123271 };
123272 mdb(Lne, "CrossingsCounter/lambda$0$Type", 1906);
123273 bcb(1907, 1, Dke, lIc);
123274 _2.ue = function mIc(a, b) {
123275 return ZHc(this.a, BD(a, 11), BD(b, 11));
123276 };
123277 _2.Fb = function nIc(a) {
123278 return this === a;
123279 };
123280 _2.ve = function oIc() {
123281 return new tpb(this);
123282 };
123283 mdb(Lne, "CrossingsCounter/lambda$1$Type", 1907);
123284 bcb(1908, 1, Dke, pIc);
123285 _2.ue = function qIc(a, b) {
123286 return $Hc(this.a, BD(a, 11), BD(b, 11));
123287 };
123288 _2.Fb = function rIc(a) {
123289 return this === a;
123290 };
123291 _2.ve = function sIc() {
123292 return new tpb(this);
123293 };
123294 mdb(Lne, "CrossingsCounter/lambda$2$Type", 1908);
123295 bcb(1909, 1, Dke, tIc);
123296 _2.ue = function uIc(a, b) {
123297 return _Hc(this.a, BD(a, 11), BD(b, 11));
123298 };
123299 _2.Fb = function vIc(a) {
123300 return this === a;
123301 };
123302 _2.ve = function wIc() {
123303 return new tpb(this);
123304 };
123305 mdb(Lne, "CrossingsCounter/lambda$3$Type", 1909);
123306 bcb(1910, 1, qie, xIc);
123307 _2.td = function yIc(a) {
123308 eIc(this.a, BD(a, 11));
123309 };
123310 mdb(Lne, "CrossingsCounter/lambda$4$Type", 1910);
123311 bcb(1911, 1, Oie, zIc);
123312 _2.Mb = function AIc(a) {
123313 return fIc(this.a, BD(a, 11));
123314 };
123315 mdb(Lne, "CrossingsCounter/lambda$5$Type", 1911);
123316 bcb(1912, 1, qie, CIc);
123317 _2.td = function DIc(a) {
123318 BIc(this, a);
123319 };
123320 mdb(Lne, "CrossingsCounter/lambda$6$Type", 1912);
123321 bcb(1913, 1, qie, EIc);
123322 _2.td = function FIc(a) {
123323 var b;
123324 FHc();
123325 Wjb(this.b, (b = this.a, BD(a, 11), b));
123326 };
123327 mdb(Lne, "CrossingsCounter/lambda$7$Type", 1913);
123328 bcb(826, 1, Vke, GIc);
123329 _2.Lb = function HIc(a) {
123330 return FHc(), wNb(BD(a, 11), (wtc(), gtc));
123331 };
123332 _2.Fb = function IIc(a) {
123333 return this === a;
123334 };
123335 _2.Mb = function JIc(a) {
123336 return FHc(), wNb(BD(a, 11), (wtc(), gtc));
123337 };
123338 mdb(Lne, "CrossingsCounter/lambda$8$Type", 826);
123339 bcb(1905, 1, {}, LIc);
123340 mdb(Lne, "HyperedgeCrossingsCounter", 1905);
123341 bcb(467, 1, { 35: 1, 467: 1 }, NIc);
123342 _2.wd = function OIc(a) {
123343 return MIc(this, BD(a, 467));
123344 };
123345 _2.b = 0;
123346 _2.c = 0;
123347 _2.e = 0;
123348 _2.f = 0;
123349 var oY = mdb(Lne, "HyperedgeCrossingsCounter/Hyperedge", 467);
123350 bcb(362, 1, { 35: 1, 362: 1 }, QIc);
123351 _2.wd = function RIc(a) {
123352 return PIc(this, BD(a, 362));
123353 };
123354 _2.b = 0;
123355 _2.c = 0;
123356 var nY = mdb(Lne, "HyperedgeCrossingsCounter/HyperedgeCorner", 362);
123357 bcb(523, 22, { 3: 1, 35: 1, 22: 1, 523: 1 }, VIc);
123358 var SIc, TIc;
123359 var mY = ndb(Lne, "HyperedgeCrossingsCounter/HyperedgeCorner/Type", 523, CI, XIc, WIc);
123360 var YIc;
123361 bcb(1405, 1, Bqe, dJc);
123362 _2.Yf = function eJc(a) {
123363 return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? _Ic : null;
123364 };
123365 _2.pf = function fJc(a, b) {
123366 cJc(this, BD(a, 37), b);
123367 };
123368 var _Ic;
123369 mdb(Hqe, "InteractiveNodePlacer", 1405);
123370 bcb(1406, 1, Bqe, tJc);
123371 _2.Yf = function uJc(a) {
123372 return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? gJc : null;
123373 };
123374 _2.pf = function vJc(a, b) {
123375 rJc(this, BD(a, 37), b);
123376 };
123377 var gJc, hJc, iJc;
123378 mdb(Hqe, "LinearSegmentsNodePlacer", 1406);
123379 bcb(257, 1, { 35: 1, 257: 1 }, zJc);
123380 _2.wd = function AJc(a) {
123381 return wJc(this, BD(a, 257));
123382 };
123383 _2.Fb = function BJc(a) {
123384 var b;
123385 if (JD(a, 257)) {
123386 b = BD(a, 257);
123387 return this.b == b.b;
123388 }
123389 return false;
123390 };
123391 _2.Hb = function CJc() {
123392 return this.b;
123393 };
123394 _2.Ib = function DJc() {
123395 return "ls" + Fe(this.e);
123396 };
123397 _2.a = 0;
123398 _2.b = 0;
123399 _2.c = -1;
123400 _2.d = -1;
123401 _2.g = 0;
123402 var sY = mdb(Hqe, "LinearSegmentsNodePlacer/LinearSegment", 257);
123403 bcb(1408, 1, Bqe, $Jc);
123404 _2.Yf = function _Jc(a) {
123405 return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? EJc : null;
123406 };
123407 _2.pf = function hKc(a, b) {
123408 WJc(this, BD(a, 37), b);
123409 };
123410 _2.b = 0;
123411 _2.g = 0;
123412 var EJc;
123413 mdb(Hqe, "NetworkSimplexPlacer", 1408);
123414 bcb(1427, 1, Dke, iKc);
123415 _2.ue = function jKc(a, b) {
123416 return beb(BD(a, 19).a, BD(b, 19).a);
123417 };
123418 _2.Fb = function kKc(a) {
123419 return this === a;
123420 };
123421 _2.ve = function lKc() {
123422 return new tpb(this);
123423 };
123424 mdb(Hqe, "NetworkSimplexPlacer/0methodref$compare$Type", 1427);
123425 bcb(1429, 1, Dke, mKc);
123426 _2.ue = function nKc(a, b) {
123427 return beb(BD(a, 19).a, BD(b, 19).a);
123428 };
123429 _2.Fb = function oKc(a) {
123430 return this === a;
123431 };
123432 _2.ve = function pKc() {
123433 return new tpb(this);
123434 };
123435 mdb(Hqe, "NetworkSimplexPlacer/1methodref$compare$Type", 1429);
123436 bcb(649, 1, { 649: 1 }, qKc);
123437 var wY = mdb(Hqe, "NetworkSimplexPlacer/EdgeRep", 649);
123438 bcb(401, 1, { 401: 1 }, rKc);
123439 _2.b = false;
123440 var xY = mdb(Hqe, "NetworkSimplexPlacer/NodeRep", 401);
123441 bcb(508, 12, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 12: 1, 14: 1, 15: 1, 54: 1, 508: 1 }, vKc);
123442 mdb(Hqe, "NetworkSimplexPlacer/Path", 508);
123443 bcb(1409, 1, {}, wKc);
123444 _2.Kb = function xKc(a) {
123445 return BD(a, 17).d.i.k;
123446 };
123447 mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$0$Type", 1409);
123448 bcb(1410, 1, Oie, yKc);
123449 _2.Mb = function zKc(a) {
123450 return BD(a, 267) == (j0b(), g0b);
123451 };
123452 mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$1$Type", 1410);
123453 bcb(1411, 1, {}, AKc);
123454 _2.Kb = function BKc(a) {
123455 return BD(a, 17).d.i;
123456 };
123457 mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$2$Type", 1411);
123458 bcb(1412, 1, Oie, CKc);
123459 _2.Mb = function DKc(a) {
123460 return eLc(Lzc(BD(a, 10)));
123461 };
123462 mdb(Hqe, "NetworkSimplexPlacer/Path/lambda$3$Type", 1412);
123463 bcb(1413, 1, Oie, EKc);
123464 _2.Mb = function FKc(a) {
123465 return dKc(BD(a, 11));
123466 };
123467 mdb(Hqe, "NetworkSimplexPlacer/lambda$0$Type", 1413);
123468 bcb(1414, 1, qie, GKc);
123469 _2.td = function HKc(a) {
123470 LJc(this.a, this.b, BD(a, 11));
123471 };
123472 mdb(Hqe, "NetworkSimplexPlacer/lambda$1$Type", 1414);
123473 bcb(1423, 1, qie, IKc);
123474 _2.td = function JKc(a) {
123475 MJc(this.a, BD(a, 17));
123476 };
123477 mdb(Hqe, "NetworkSimplexPlacer/lambda$10$Type", 1423);
123478 bcb(1424, 1, {}, KKc);
123479 _2.Kb = function LKc(a) {
123480 return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
123481 };
123482 mdb(Hqe, "NetworkSimplexPlacer/lambda$11$Type", 1424);
123483 bcb(1425, 1, qie, MKc);
123484 _2.td = function NKc(a) {
123485 NJc(this.a, BD(a, 10));
123486 };
123487 mdb(Hqe, "NetworkSimplexPlacer/lambda$12$Type", 1425);
123488 bcb(1426, 1, {}, OKc);
123489 _2.Kb = function PKc(a) {
123490 return FJc(), meb(BD(a, 121).e);
123491 };
123492 mdb(Hqe, "NetworkSimplexPlacer/lambda$13$Type", 1426);
123493 bcb(1428, 1, {}, QKc);
123494 _2.Kb = function RKc(a) {
123495 return FJc(), meb(BD(a, 121).e);
123496 };
123497 mdb(Hqe, "NetworkSimplexPlacer/lambda$15$Type", 1428);
123498 bcb(1430, 1, Oie, SKc);
123499 _2.Mb = function TKc(a) {
123500 return FJc(), BD(a, 401).c.k == (j0b(), h0b);
123501 };
123502 mdb(Hqe, "NetworkSimplexPlacer/lambda$17$Type", 1430);
123503 bcb(1431, 1, Oie, UKc);
123504 _2.Mb = function VKc(a) {
123505 return FJc(), BD(a, 401).c.j.c.length > 1;
123506 };
123507 mdb(Hqe, "NetworkSimplexPlacer/lambda$18$Type", 1431);
123508 bcb(1432, 1, qie, WKc);
123509 _2.td = function XKc(a) {
123510 eKc(this.c, this.b, this.d, this.a, BD(a, 401));
123511 };
123512 _2.c = 0;
123513 _2.d = 0;
123514 mdb(Hqe, "NetworkSimplexPlacer/lambda$19$Type", 1432);
123515 bcb(1415, 1, {}, YKc);
123516 _2.Kb = function ZKc(a) {
123517 return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
123518 };
123519 mdb(Hqe, "NetworkSimplexPlacer/lambda$2$Type", 1415);
123520 bcb(1433, 1, qie, $Kc);
123521 _2.td = function _Kc(a) {
123522 fKc(this.a, BD(a, 11));
123523 };
123524 _2.a = 0;
123525 mdb(Hqe, "NetworkSimplexPlacer/lambda$20$Type", 1433);
123526 bcb(1434, 1, {}, aLc);
123527 _2.Kb = function bLc(a) {
123528 return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
123529 };
123530 mdb(Hqe, "NetworkSimplexPlacer/lambda$21$Type", 1434);
123531 bcb(1435, 1, qie, cLc);
123532 _2.td = function dLc(a) {
123533 OJc(this.a, BD(a, 10));
123534 };
123535 mdb(Hqe, "NetworkSimplexPlacer/lambda$22$Type", 1435);
123536 bcb(1436, 1, Oie, fLc);
123537 _2.Mb = function gLc(a) {
123538 return eLc(a);
123539 };
123540 mdb(Hqe, "NetworkSimplexPlacer/lambda$23$Type", 1436);
123541 bcb(1437, 1, {}, hLc);
123542 _2.Kb = function iLc(a) {
123543 return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
123544 };
123545 mdb(Hqe, "NetworkSimplexPlacer/lambda$24$Type", 1437);
123546 bcb(1438, 1, Oie, jLc);
123547 _2.Mb = function kLc(a) {
123548 return PJc(this.a, BD(a, 10));
123549 };
123550 mdb(Hqe, "NetworkSimplexPlacer/lambda$25$Type", 1438);
123551 bcb(1439, 1, qie, lLc);
123552 _2.td = function mLc(a) {
123553 QJc(this.a, this.b, BD(a, 10));
123554 };
123555 mdb(Hqe, "NetworkSimplexPlacer/lambda$26$Type", 1439);
123556 bcb(1440, 1, Oie, nLc);
123557 _2.Mb = function oLc(a) {
123558 return FJc(), !OZb(BD(a, 17));
123559 };
123560 mdb(Hqe, "NetworkSimplexPlacer/lambda$27$Type", 1440);
123561 bcb(1441, 1, Oie, pLc);
123562 _2.Mb = function qLc(a) {
123563 return FJc(), !OZb(BD(a, 17));
123564 };
123565 mdb(Hqe, "NetworkSimplexPlacer/lambda$28$Type", 1441);
123566 bcb(1442, 1, {}, rLc);
123567 _2.Ce = function sLc(a, b) {
123568 return RJc(this.a, BD(a, 29), BD(b, 29));
123569 };
123570 mdb(Hqe, "NetworkSimplexPlacer/lambda$29$Type", 1442);
123571 bcb(1416, 1, {}, tLc);
123572 _2.Kb = function uLc(a) {
123573 return FJc(), new YAb(null, new Lub(new Sr(ur(U_b(BD(a, 10)).a.Kc(), new Sq()))));
123574 };
123575 mdb(Hqe, "NetworkSimplexPlacer/lambda$3$Type", 1416);
123576 bcb(1417, 1, Oie, vLc);
123577 _2.Mb = function wLc(a) {
123578 return FJc(), cKc(BD(a, 17));
123579 };
123580 mdb(Hqe, "NetworkSimplexPlacer/lambda$4$Type", 1417);
123581 bcb(1418, 1, qie, xLc);
123582 _2.td = function yLc(a) {
123583 XJc(this.a, BD(a, 17));
123584 };
123585 mdb(Hqe, "NetworkSimplexPlacer/lambda$5$Type", 1418);
123586 bcb(1419, 1, {}, zLc);
123587 _2.Kb = function ALc(a) {
123588 return FJc(), new YAb(null, new Kub(BD(a, 29).a, 16));
123589 };
123590 mdb(Hqe, "NetworkSimplexPlacer/lambda$6$Type", 1419);
123591 bcb(1420, 1, Oie, BLc);
123592 _2.Mb = function CLc(a) {
123593 return FJc(), BD(a, 10).k == (j0b(), h0b);
123594 };
123595 mdb(Hqe, "NetworkSimplexPlacer/lambda$7$Type", 1420);
123596 bcb(1421, 1, {}, DLc);
123597 _2.Kb = function ELc(a) {
123598 return FJc(), new YAb(null, new Lub(new Sr(ur(O_b(BD(a, 10)).a.Kc(), new Sq()))));
123599 };
123600 mdb(Hqe, "NetworkSimplexPlacer/lambda$8$Type", 1421);
123601 bcb(1422, 1, Oie, FLc);
123602 _2.Mb = function GLc(a) {
123603 return FJc(), NZb(BD(a, 17));
123604 };
123605 mdb(Hqe, "NetworkSimplexPlacer/lambda$9$Type", 1422);
123606 bcb(1404, 1, Bqe, KLc);
123607 _2.Yf = function LLc(a) {
123608 return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? HLc : null;
123609 };
123610 _2.pf = function MLc(a, b) {
123611 JLc(BD(a, 37), b);
123612 };
123613 var HLc;
123614 mdb(Hqe, "SimpleNodePlacer", 1404);
123615 bcb(180, 1, { 180: 1 }, ULc);
123616 _2.Ib = function VLc() {
123617 var a;
123618 a = "";
123619 this.c == (YLc(), XLc) ? a += kle : this.c == WLc && (a += jle);
123620 this.o == (eMc(), cMc) ? a += vle : this.o == dMc ? a += "UP" : a += "BALANCED";
123621 return a;
123622 };
123623 mdb(Kqe, "BKAlignedLayout", 180);
123624 bcb(516, 22, { 3: 1, 35: 1, 22: 1, 516: 1 }, ZLc);
123625 var WLc, XLc;
123626 var fZ = ndb(Kqe, "BKAlignedLayout/HDirection", 516, CI, _Lc, $Lc);
123627 var aMc;
123628 bcb(515, 22, { 3: 1, 35: 1, 22: 1, 515: 1 }, fMc);
123629 var cMc, dMc;
123630 var gZ = ndb(Kqe, "BKAlignedLayout/VDirection", 515, CI, hMc, gMc);
123631 var iMc;
123632 bcb(1634, 1, {}, mMc);
123633 mdb(Kqe, "BKAligner", 1634);
123634 bcb(1637, 1, {}, rMc);
123635 mdb(Kqe, "BKCompactor", 1637);
123636 bcb(654, 1, { 654: 1 }, sMc);
123637 _2.a = 0;
123638 mdb(Kqe, "BKCompactor/ClassEdge", 654);
123639 bcb(458, 1, { 458: 1 }, uMc);
123640 _2.a = null;
123641 _2.b = 0;
123642 mdb(Kqe, "BKCompactor/ClassNode", 458);
123643 bcb(1407, 1, Bqe, CMc);
123644 _2.Yf = function GMc(a) {
123645 return BD(vNb(BD(a, 37), (wtc(), Ksc)), 21).Hc((Orc(), Hrc)) ? vMc : null;
123646 };
123647 _2.pf = function HMc(a, b) {
123648 BMc(this, BD(a, 37), b);
123649 };
123650 _2.d = false;
123651 var vMc;
123652 mdb(Kqe, "BKNodePlacer", 1407);
123653 bcb(1635, 1, {}, JMc);
123654 _2.d = 0;
123655 mdb(Kqe, "NeighborhoodInformation", 1635);
123656 bcb(1636, 1, Dke, OMc);
123657 _2.ue = function PMc(a, b) {
123658 return NMc(this, BD(a, 46), BD(b, 46));
123659 };
123660 _2.Fb = function QMc(a) {
123661 return this === a;
123662 };
123663 _2.ve = function RMc() {
123664 return new tpb(this);
123665 };
123666 mdb(Kqe, "NeighborhoodInformation/NeighborComparator", 1636);
123667 bcb(808, 1, {});
123668 mdb(Kqe, "ThresholdStrategy", 808);
123669 bcb(1763, 808, {}, WMc);
123670 _2.bg = function XMc(a, b, c2) {
123671 return this.a.o == (eMc(), dMc) ? Pje : Qje;
123672 };
123673 _2.cg = function YMc() {
123674 };
123675 mdb(Kqe, "ThresholdStrategy/NullThresholdStrategy", 1763);
123676 bcb(579, 1, { 579: 1 }, ZMc);
123677 _2.c = false;
123678 _2.d = false;
123679 mdb(Kqe, "ThresholdStrategy/Postprocessable", 579);
123680 bcb(1764, 808, {}, bNc);
123681 _2.bg = function cNc(a, b, c2) {
123682 var d, e, f2;
123683 e = b == c2;
123684 d = this.a.a[c2.p] == b;
123685 if (!(e || d)) {
123686 return a;
123687 }
123688 f2 = a;
123689 if (this.a.c == (YLc(), XLc)) {
123690 e && (f2 = $Mc(this, b, true));
123691 !isNaN(f2) && !isFinite(f2) && d && (f2 = $Mc(this, c2, false));
123692 } else {
123693 e && (f2 = $Mc(this, b, true));
123694 !isNaN(f2) && !isFinite(f2) && d && (f2 = $Mc(this, c2, false));
123695 }
123696 return f2;
123697 };
123698 _2.cg = function dNc() {
123699 var a, b, c2, d, e;
123700 while (this.d.b != 0) {
123701 e = BD(Ksb(this.d), 579);
123702 d = _Mc(this, e);
123703 if (!d.a) {
123704 continue;
123705 }
123706 a = d.a;
123707 c2 = Ccb(this.a.f[this.a.g[e.b.p].p]);
123708 if (!c2 && !OZb(a) && a.c.i.c == a.d.i.c) {
123709 continue;
123710 }
123711 b = aNc(this, e);
123712 b || swb(this.e, e);
123713 }
123714 while (this.e.a.c.length != 0) {
123715 aNc(this, BD(rwb(this.e), 579));
123716 }
123717 };
123718 mdb(Kqe, "ThresholdStrategy/SimpleThresholdStrategy", 1764);
123719 bcb(635, 1, { 635: 1, 246: 1, 234: 1 }, hNc);
123720 _2.Kf = function jNc() {
123721 return gNc(this);
123722 };
123723 _2.Xf = function iNc() {
123724 return gNc(this);
123725 };
123726 var eNc;
123727 mdb(Lqe, "EdgeRouterFactory", 635);
123728 bcb(1458, 1, Bqe, wNc);
123729 _2.Yf = function xNc(a) {
123730 return uNc(BD(a, 37));
123731 };
123732 _2.pf = function yNc(a, b) {
123733 vNc(BD(a, 37), b);
123734 };
123735 var lNc, mNc, nNc, oNc, pNc, qNc, rNc, sNc;
123736 mdb(Lqe, "OrthogonalEdgeRouter", 1458);
123737 bcb(1451, 1, Bqe, NNc);
123738 _2.Yf = function ONc(a) {
123739 return INc(BD(a, 37));
123740 };
123741 _2.pf = function PNc(a, b) {
123742 KNc(this, BD(a, 37), b);
123743 };
123744 var zNc, ANc, BNc, CNc, DNc, ENc;
123745 mdb(Lqe, "PolylineEdgeRouter", 1451);
123746 bcb(1452, 1, Vke, RNc);
123747 _2.Lb = function SNc(a) {
123748 return QNc(BD(a, 10));
123749 };
123750 _2.Fb = function TNc(a) {
123751 return this === a;
123752 };
123753 _2.Mb = function UNc(a) {
123754 return QNc(BD(a, 10));
123755 };
123756 mdb(Lqe, "PolylineEdgeRouter/1", 1452);
123757 bcb(1809, 1, Oie, ZNc);
123758 _2.Mb = function $Nc(a) {
123759 return BD(a, 129).c == (HOc(), FOc);
123760 };
123761 mdb(Mqe, "HyperEdgeCycleDetector/lambda$0$Type", 1809);
123762 bcb(1810, 1, {}, _Nc);
123763 _2.Ge = function aOc(a) {
123764 return BD(a, 129).d;
123765 };
123766 mdb(Mqe, "HyperEdgeCycleDetector/lambda$1$Type", 1810);
123767 bcb(1811, 1, Oie, bOc);
123768 _2.Mb = function cOc(a) {
123769 return BD(a, 129).c == (HOc(), FOc);
123770 };
123771 mdb(Mqe, "HyperEdgeCycleDetector/lambda$2$Type", 1811);
123772 bcb(1812, 1, {}, dOc);
123773 _2.Ge = function eOc(a) {
123774 return BD(a, 129).d;
123775 };
123776 mdb(Mqe, "HyperEdgeCycleDetector/lambda$3$Type", 1812);
123777 bcb(1813, 1, {}, fOc);
123778 _2.Ge = function gOc(a) {
123779 return BD(a, 129).d;
123780 };
123781 mdb(Mqe, "HyperEdgeCycleDetector/lambda$4$Type", 1813);
123782 bcb(1814, 1, {}, hOc);
123783 _2.Ge = function iOc(a) {
123784 return BD(a, 129).d;
123785 };
123786 mdb(Mqe, "HyperEdgeCycleDetector/lambda$5$Type", 1814);
123787 bcb(112, 1, { 35: 1, 112: 1 }, uOc);
123788 _2.wd = function vOc(a) {
123789 return kOc(this, BD(a, 112));
123790 };
123791 _2.Fb = function wOc(a) {
123792 var b;
123793 if (JD(a, 112)) {
123794 b = BD(a, 112);
123795 return this.g == b.g;
123796 }
123797 return false;
123798 };
123799 _2.Hb = function xOc() {
123800 return this.g;
123801 };
123802 _2.Ib = function zOc() {
123803 var a, b, c2, d;
123804 a = new Wfb("{");
123805 d = new olb(this.n);
123806 while (d.a < d.c.c.length) {
123807 c2 = BD(mlb(d), 11);
123808 b = P_b(c2.i);
123809 b == null && (b = "n" + S_b(c2.i));
123810 a.a += "" + b;
123811 d.a < d.c.c.length && (a.a += ",", a);
123812 }
123813 a.a += "}";
123814 return a.a;
123815 };
123816 _2.a = 0;
123817 _2.b = 0;
123818 _2.c = NaN;
123819 _2.d = 0;
123820 _2.g = 0;
123821 _2.i = 0;
123822 _2.o = 0;
123823 _2.s = NaN;
123824 mdb(Mqe, "HyperEdgeSegment", 112);
123825 bcb(129, 1, { 129: 1 }, DOc);
123826 _2.Ib = function EOc() {
123827 return this.a + "->" + this.b + " (" + Yr(this.c) + ")";
123828 };
123829 _2.d = 0;
123830 mdb(Mqe, "HyperEdgeSegmentDependency", 129);
123831 bcb(520, 22, { 3: 1, 35: 1, 22: 1, 520: 1 }, IOc);
123832 var FOc, GOc;
123833 var DZ = ndb(Mqe, "HyperEdgeSegmentDependency/DependencyType", 520, CI, KOc, JOc);
123834 var LOc;
123835 bcb(1815, 1, {}, ZOc);
123836 mdb(Mqe, "HyperEdgeSegmentSplitter", 1815);
123837 bcb(1816, 1, {}, aPc);
123838 _2.a = 0;
123839 _2.b = 0;
123840 mdb(Mqe, "HyperEdgeSegmentSplitter/AreaRating", 1816);
123841 bcb(329, 1, { 329: 1 }, bPc);
123842 _2.a = 0;
123843 _2.b = 0;
123844 _2.c = 0;
123845 mdb(Mqe, "HyperEdgeSegmentSplitter/FreeArea", 329);
123846 bcb(1817, 1, Dke, cPc);
123847 _2.ue = function dPc(a, b) {
123848 return _Oc(BD(a, 112), BD(b, 112));
123849 };
123850 _2.Fb = function ePc(a) {
123851 return this === a;
123852 };
123853 _2.ve = function fPc() {
123854 return new tpb(this);
123855 };
123856 mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$0$Type", 1817);
123857 bcb(1818, 1, qie, gPc);
123858 _2.td = function hPc(a) {
123859 TOc(this.a, this.d, this.c, this.b, BD(a, 112));
123860 };
123861 _2.b = 0;
123862 mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$1$Type", 1818);
123863 bcb(1819, 1, {}, iPc);
123864 _2.Kb = function jPc(a) {
123865 return new YAb(null, new Kub(BD(a, 112).e, 16));
123866 };
123867 mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$2$Type", 1819);
123868 bcb(1820, 1, {}, kPc);
123869 _2.Kb = function lPc(a) {
123870 return new YAb(null, new Kub(BD(a, 112).j, 16));
123871 };
123872 mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$3$Type", 1820);
123873 bcb(1821, 1, {}, mPc);
123874 _2.Fe = function nPc(a) {
123875 return Edb(ED(a));
123876 };
123877 mdb(Mqe, "HyperEdgeSegmentSplitter/lambda$4$Type", 1821);
123878 bcb(655, 1, {}, tPc);
123879 _2.a = 0;
123880 _2.b = 0;
123881 _2.c = 0;
123882 mdb(Mqe, "OrthogonalRoutingGenerator", 655);
123883 bcb(1638, 1, {}, xPc);
123884 _2.Kb = function yPc(a) {
123885 return new YAb(null, new Kub(BD(a, 112).e, 16));
123886 };
123887 mdb(Mqe, "OrthogonalRoutingGenerator/lambda$0$Type", 1638);
123888 bcb(1639, 1, {}, zPc);
123889 _2.Kb = function APc(a) {
123890 return new YAb(null, new Kub(BD(a, 112).j, 16));
123891 };
123892 mdb(Mqe, "OrthogonalRoutingGenerator/lambda$1$Type", 1639);
123893 bcb(661, 1, {});
123894 mdb(Nqe, "BaseRoutingDirectionStrategy", 661);
123895 bcb(1807, 661, {}, EPc);
123896 _2.dg = function FPc(a, b, c2) {
123897 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
123898 if (!!a.r && !a.q) {
123899 return;
123900 }
123901 k = b + a.o * c2;
123902 for (j = new olb(a.n); j.a < j.c.c.length; ) {
123903 i3 = BD(mlb(j), 11);
123904 l = l7c(OC(GC(m1, 1), nie, 8, 0, [i3.i.n, i3.n, i3.a])).a;
123905 for (h = new olb(i3.g); h.a < h.c.c.length; ) {
123906 g = BD(mlb(h), 17);
123907 if (!OZb(g)) {
123908 o2 = g.d;
123909 p = l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).a;
123910 if ($wnd.Math.abs(l - p) > qme) {
123911 f2 = k;
123912 e = a;
123913 d = new f7c(l, f2);
123914 Dsb(g.a, d);
123915 BPc(this, g, e, d, false);
123916 m = a.r;
123917 if (m) {
123918 n = Edb(ED(Ut(m.e, 0)));
123919 d = new f7c(n, f2);
123920 Dsb(g.a, d);
123921 BPc(this, g, e, d, false);
123922 f2 = b + m.o * c2;
123923 e = m;
123924 d = new f7c(n, f2);
123925 Dsb(g.a, d);
123926 BPc(this, g, e, d, false);
123927 }
123928 d = new f7c(p, f2);
123929 Dsb(g.a, d);
123930 BPc(this, g, e, d, false);
123931 }
123932 }
123933 }
123934 }
123935 };
123936 _2.eg = function GPc(a) {
123937 return a.i.n.a + a.n.a + a.a.a;
123938 };
123939 _2.fg = function HPc() {
123940 return Ucd(), Rcd;
123941 };
123942 _2.gg = function IPc() {
123943 return Ucd(), Acd;
123944 };
123945 mdb(Nqe, "NorthToSouthRoutingStrategy", 1807);
123946 bcb(1808, 661, {}, JPc);
123947 _2.dg = function KPc(a, b, c2) {
123948 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
123949 if (!!a.r && !a.q) {
123950 return;
123951 }
123952 k = b - a.o * c2;
123953 for (j = new olb(a.n); j.a < j.c.c.length; ) {
123954 i3 = BD(mlb(j), 11);
123955 l = l7c(OC(GC(m1, 1), nie, 8, 0, [i3.i.n, i3.n, i3.a])).a;
123956 for (h = new olb(i3.g); h.a < h.c.c.length; ) {
123957 g = BD(mlb(h), 17);
123958 if (!OZb(g)) {
123959 o2 = g.d;
123960 p = l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).a;
123961 if ($wnd.Math.abs(l - p) > qme) {
123962 f2 = k;
123963 e = a;
123964 d = new f7c(l, f2);
123965 Dsb(g.a, d);
123966 BPc(this, g, e, d, false);
123967 m = a.r;
123968 if (m) {
123969 n = Edb(ED(Ut(m.e, 0)));
123970 d = new f7c(n, f2);
123971 Dsb(g.a, d);
123972 BPc(this, g, e, d, false);
123973 f2 = b - m.o * c2;
123974 e = m;
123975 d = new f7c(n, f2);
123976 Dsb(g.a, d);
123977 BPc(this, g, e, d, false);
123978 }
123979 d = new f7c(p, f2);
123980 Dsb(g.a, d);
123981 BPc(this, g, e, d, false);
123982 }
123983 }
123984 }
123985 }
123986 };
123987 _2.eg = function LPc(a) {
123988 return a.i.n.a + a.n.a + a.a.a;
123989 };
123990 _2.fg = function MPc() {
123991 return Ucd(), Acd;
123992 };
123993 _2.gg = function NPc() {
123994 return Ucd(), Rcd;
123995 };
123996 mdb(Nqe, "SouthToNorthRoutingStrategy", 1808);
123997 bcb(1806, 661, {}, OPc);
123998 _2.dg = function PPc(a, b, c2) {
123999 var d, e, f2, g, h, i3, j, k, l, m, n, o2, p;
124000 if (!!a.r && !a.q) {
124001 return;
124002 }
124003 k = b + a.o * c2;
124004 for (j = new olb(a.n); j.a < j.c.c.length; ) {
124005 i3 = BD(mlb(j), 11);
124006 l = l7c(OC(GC(m1, 1), nie, 8, 0, [i3.i.n, i3.n, i3.a])).b;
124007 for (h = new olb(i3.g); h.a < h.c.c.length; ) {
124008 g = BD(mlb(h), 17);
124009 if (!OZb(g)) {
124010 o2 = g.d;
124011 p = l7c(OC(GC(m1, 1), nie, 8, 0, [o2.i.n, o2.n, o2.a])).b;
124012 if ($wnd.Math.abs(l - p) > qme) {
124013 f2 = k;
124014 e = a;
124015 d = new f7c(f2, l);
124016 Dsb(g.a, d);
124017 BPc(this, g, e, d, true);
124018 m = a.r;
124019 if (m) {
124020 n = Edb(ED(Ut(m.e, 0)));
124021 d = new f7c(f2, n);
124022 Dsb(g.a, d);
124023 BPc(this, g, e, d, true);
124024 f2 = b + m.o * c2;
124025 e = m;
124026 d = new f7c(f2, n);
124027 Dsb(g.a, d);
124028 BPc(this, g, e, d, true);
124029 }
124030 d = new f7c(f2, p);
124031 Dsb(g.a, d);
124032 BPc(this, g, e, d, true);
124033 }
124034 }
124035 }
124036 }
124037 };
124038 _2.eg = function QPc(a) {
124039 return a.i.n.b + a.n.b + a.a.b;
124040 };
124041 _2.fg = function RPc() {
124042 return Ucd(), zcd;
124043 };
124044 _2.gg = function SPc() {
124045 return Ucd(), Tcd;
124046 };
124047 mdb(Nqe, "WestToEastRoutingStrategy", 1806);
124048 bcb(813, 1, {}, YPc);
124049 _2.Ib = function ZPc() {
124050 return Fe(this.a);
124051 };
124052 _2.b = 0;
124053 _2.c = false;
124054 _2.d = false;
124055 _2.f = 0;
124056 mdb(Pqe, "NubSpline", 813);
124057 bcb(407, 1, { 407: 1 }, aQc, bQc);
124058 mdb(Pqe, "NubSpline/PolarCP", 407);
124059 bcb(1453, 1, Bqe, vQc);
124060 _2.Yf = function xQc(a) {
124061 return qQc(BD(a, 37));
124062 };
124063 _2.pf = function yQc(a, b) {
124064 uQc(this, BD(a, 37), b);
124065 };
124066 var cQc, dQc, eQc, fQc, gQc;
124067 mdb(Pqe, "SplineEdgeRouter", 1453);
124068 bcb(268, 1, { 268: 1 }, BQc);
124069 _2.Ib = function CQc() {
124070 return this.a + " ->(" + this.c + ") " + this.b;
124071 };
124072 _2.c = 0;
124073 mdb(Pqe, "SplineEdgeRouter/Dependency", 268);
124074 bcb(455, 22, { 3: 1, 35: 1, 22: 1, 455: 1 }, GQc);
124075 var DQc, EQc;
124076 var YZ = ndb(Pqe, "SplineEdgeRouter/SideToProcess", 455, CI, IQc, HQc);
124077 var JQc;
124078 bcb(1454, 1, Oie, LQc);
124079 _2.Mb = function MQc(a) {
124080 return hQc(), !BD(a, 128).o;
124081 };
124082 mdb(Pqe, "SplineEdgeRouter/lambda$0$Type", 1454);
124083 bcb(1455, 1, {}, NQc);
124084 _2.Ge = function OQc(a) {
124085 return hQc(), BD(a, 128).v + 1;
124086 };
124087 mdb(Pqe, "SplineEdgeRouter/lambda$1$Type", 1455);
124088 bcb(1456, 1, qie, PQc);
124089 _2.td = function QQc(a) {
124090 sQc(this.a, this.b, BD(a, 46));
124091 };
124092 mdb(Pqe, "SplineEdgeRouter/lambda$2$Type", 1456);
124093 bcb(1457, 1, qie, RQc);
124094 _2.td = function SQc(a) {
124095 tQc(this.a, this.b, BD(a, 46));
124096 };
124097 mdb(Pqe, "SplineEdgeRouter/lambda$3$Type", 1457);
124098 bcb(128, 1, { 35: 1, 128: 1 }, YQc, ZQc);
124099 _2.wd = function $Qc(a) {
124100 return WQc(this, BD(a, 128));
124101 };
124102 _2.b = 0;
124103 _2.e = false;
124104 _2.f = 0;
124105 _2.g = 0;
124106 _2.j = false;
124107 _2.k = false;
124108 _2.n = 0;
124109 _2.o = false;
124110 _2.p = false;
124111 _2.q = false;
124112 _2.s = 0;
124113 _2.u = 0;
124114 _2.v = 0;
124115 _2.F = 0;
124116 mdb(Pqe, "SplineSegment", 128);
124117 bcb(459, 1, { 459: 1 }, _Qc);
124118 _2.a = 0;
124119 _2.b = false;
124120 _2.c = false;
124121 _2.d = false;
124122 _2.e = false;
124123 _2.f = 0;
124124 mdb(Pqe, "SplineSegment/EdgeInformation", 459);
124125 bcb(1234, 1, {}, hRc);
124126 mdb(Uqe, hme, 1234);
124127 bcb(1235, 1, Dke, jRc);
124128 _2.ue = function kRc(a, b) {
124129 return iRc(BD(a, 135), BD(b, 135));
124130 };
124131 _2.Fb = function lRc(a) {
124132 return this === a;
124133 };
124134 _2.ve = function mRc() {
124135 return new tpb(this);
124136 };
124137 mdb(Uqe, ime, 1235);
124138 bcb(1233, 1, {}, tRc);
124139 mdb(Uqe, "MrTree", 1233);
124140 bcb(393, 22, { 3: 1, 35: 1, 22: 1, 393: 1, 246: 1, 234: 1 }, ARc);
124141 _2.Kf = function CRc() {
124142 return zRc(this);
124143 };
124144 _2.Xf = function BRc() {
124145 return zRc(this);
124146 };
124147 var uRc, vRc, wRc, xRc;
124148 var h$ = ndb(Uqe, "TreeLayoutPhases", 393, CI, ERc, DRc);
124149 var FRc;
124150 bcb(1130, 209, Mle, HRc);
124151 _2.Ze = function IRc(a, b) {
124152 var c2, d, e, f2, g, h, i3;
124153 Ccb(DD(hkd(a, (JTc(), ATc)))) || $Cb((c2 = new _Cb((Pgd(), new bhd(a))), c2));
124154 g = (h = new SRc(), tNb(h, a), yNb(h, (mTc(), dTc), a), i3 = new Lqb(), pRc(a, h, i3), oRc(a, h, i3), h);
124155 f2 = gRc(this.a, g);
124156 for (e = new olb(f2); e.a < e.c.c.length; ) {
124157 d = BD(mlb(e), 135);
124158 rRc(this.b, d, Udd(b, 1 / f2.c.length));
124159 }
124160 g = fRc(f2);
124161 nRc(g);
124162 };
124163 mdb(Uqe, "TreeLayoutProvider", 1130);
124164 bcb(1847, 1, vie, KRc);
124165 _2.Jc = function LRc(a) {
124166 reb(this, a);
124167 };
124168 _2.Kc = function MRc() {
124169 return mmb(), Emb(), Dmb;
124170 };
124171 mdb(Uqe, "TreeUtil/1", 1847);
124172 bcb(1848, 1, vie, NRc);
124173 _2.Jc = function ORc(a) {
124174 reb(this, a);
124175 };
124176 _2.Kc = function PRc() {
124177 return mmb(), Emb(), Dmb;
124178 };
124179 mdb(Uqe, "TreeUtil/2", 1848);
124180 bcb(502, 134, { 3: 1, 502: 1, 94: 1, 134: 1 });
124181 _2.g = 0;
124182 mdb(Vqe, "TGraphElement", 502);
124183 bcb(188, 502, { 3: 1, 188: 1, 502: 1, 94: 1, 134: 1 }, QRc);
124184 _2.Ib = function RRc() {
124185 return !!this.b && !!this.c ? WRc(this.b) + "->" + WRc(this.c) : "e_" + tb(this);
124186 };
124187 mdb(Vqe, "TEdge", 188);
124188 bcb(135, 134, { 3: 1, 135: 1, 94: 1, 134: 1 }, SRc);
124189 _2.Ib = function TRc() {
124190 var a, b, c2, d, e;
124191 e = null;
124192 for (d = Jsb(this.b, 0); d.b != d.d.c; ) {
124193 c2 = BD(Xsb(d), 86);
124194 e += (c2.c == null || c2.c.length == 0 ? "n_" + c2.g : "n_" + c2.c) + "\n";
124195 }
124196 for (b = Jsb(this.a, 0); b.b != b.d.c; ) {
124197 a = BD(Xsb(b), 188);
124198 e += (!!a.b && !!a.c ? WRc(a.b) + "->" + WRc(a.c) : "e_" + tb(a)) + "\n";
124199 }
124200 return e;
124201 };
124202 var n$ = mdb(Vqe, "TGraph", 135);
124203 bcb(633, 502, { 3: 1, 502: 1, 633: 1, 94: 1, 134: 1 });
124204 mdb(Vqe, "TShape", 633);
124205 bcb(86, 633, { 3: 1, 502: 1, 86: 1, 633: 1, 94: 1, 134: 1 }, XRc);
124206 _2.Ib = function YRc() {
124207 return WRc(this);
124208 };
124209 var q$ = mdb(Vqe, "TNode", 86);
124210 bcb(255, 1, vie, ZRc);
124211 _2.Jc = function $Rc(a) {
124212 reb(this, a);
124213 };
124214 _2.Kc = function _Rc() {
124215 var a;
124216 return a = Jsb(this.a.d, 0), new aSc(a);
124217 };
124218 mdb(Vqe, "TNode/2", 255);
124219 bcb(358, 1, aie, aSc);
124220 _2.Nb = function bSc(a) {
124221 Rrb(this, a);
124222 };
124223 _2.Pb = function dSc() {
124224 return BD(Xsb(this.a), 188).c;
124225 };
124226 _2.Ob = function cSc() {
124227 return Wsb(this.a);
124228 };
124229 _2.Qb = function eSc() {
124230 Zsb(this.a);
124231 };
124232 mdb(Vqe, "TNode/2/1", 358);
124233 bcb(1840, 1, ene, hSc);
124234 _2.pf = function jSc(a, b) {
124235 gSc(this, BD(a, 135), b);
124236 };
124237 mdb(Wqe, "FanProcessor", 1840);
124238 bcb(327, 22, { 3: 1, 35: 1, 22: 1, 327: 1, 234: 1 }, rSc);
124239 _2.Kf = function sSc() {
124240 switch (this.g) {
124241 case 0:
124242 return new QSc();
124243 case 1:
124244 return new hSc();
124245 case 2:
124246 return new GSc();
124247 case 3:
124248 return new zSc();
124249 case 4:
124250 return new NSc();
124251 case 5:
124252 return new TSc();
124253 default:
124254 throw vbb(new Wdb(Dne + (this.f != null ? this.f : "" + this.g)));
124255 }
124256 };
124257 var kSc, lSc, mSc, nSc, oSc, pSc;
124258 var t$ = ndb(Wqe, Ene, 327, CI, uSc, tSc);
124259 var vSc;
124260 bcb(1843, 1, ene, zSc);
124261 _2.pf = function ASc(a, b) {
124262 xSc(this, BD(a, 135), b);
124263 };
124264 _2.a = 0;
124265 mdb(Wqe, "LevelHeightProcessor", 1843);
124266 bcb(1844, 1, vie, BSc);
124267 _2.Jc = function CSc(a) {
124268 reb(this, a);
124269 };
124270 _2.Kc = function DSc() {
124271 return mmb(), Emb(), Dmb;
124272 };
124273 mdb(Wqe, "LevelHeightProcessor/1", 1844);
124274 bcb(1841, 1, ene, GSc);
124275 _2.pf = function HSc(a, b) {
124276 ESc(this, BD(a, 135), b);
124277 };
124278 _2.a = 0;
124279 mdb(Wqe, "NeighborsProcessor", 1841);
124280 bcb(1842, 1, vie, ISc);
124281 _2.Jc = function JSc(a) {
124282 reb(this, a);
124283 };
124284 _2.Kc = function KSc() {
124285 return mmb(), Emb(), Dmb;
124286 };
124287 mdb(Wqe, "NeighborsProcessor/1", 1842);
124288 bcb(1845, 1, ene, NSc);
124289 _2.pf = function OSc(a, b) {
124290 LSc(this, BD(a, 135), b);
124291 };
124292 _2.a = 0;
124293 mdb(Wqe, "NodePositionProcessor", 1845);
124294 bcb(1839, 1, ene, QSc);
124295 _2.pf = function RSc(a, b) {
124296 PSc(this, BD(a, 135));
124297 };
124298 mdb(Wqe, "RootProcessor", 1839);
124299 bcb(1846, 1, ene, TSc);
124300 _2.pf = function USc(a, b) {
124301 SSc(BD(a, 135));
124302 };
124303 mdb(Wqe, "Untreeifyer", 1846);
124304 var VSc, WSc, XSc, YSc, ZSc, $Sc, _Sc, aTc, bTc, cTc, dTc, eTc, fTc, gTc, hTc, iTc, jTc, kTc, lTc;
124305 bcb(851, 1, ale, sTc);
124306 _2.Qe = function tTc(a) {
124307 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zqe), ""), "Weighting of Nodes"), "Which weighting to use when computing a node order."), qTc), (_5c(), V5c)), E$), pqb((N5c(), L5c)))));
124308 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $qe), ""), "Search Order"), "Which search order to use when computing a spanning tree."), oTc), V5c), F$), pqb(L5c))));
124309 KTc((new LTc(), a));
124310 };
124311 var nTc, oTc, pTc, qTc;
124312 mdb(_qe, "MrTreeMetaDataProvider", 851);
124313 bcb(994, 1, ale, LTc);
124314 _2.Qe = function MTc(a) {
124315 KTc(a);
124316 };
124317 var uTc, vTc, wTc, xTc, yTc, zTc, ATc, BTc, CTc, DTc, ETc, FTc, GTc, HTc, ITc;
124318 mdb(_qe, "MrTreeOptions", 994);
124319 bcb(995, 1, {}, NTc);
124320 _2.$e = function OTc() {
124321 var a;
124322 return a = new HRc(), a;
124323 };
124324 _2._e = function PTc(a) {
124325 };
124326 mdb(_qe, "MrTreeOptions/MrtreeFactory", 995);
124327 bcb(480, 22, { 3: 1, 35: 1, 22: 1, 480: 1 }, TTc);
124328 var QTc, RTc;
124329 var E$ = ndb(_qe, "OrderWeighting", 480, CI, VTc, UTc);
124330 var WTc;
124331 bcb(425, 22, { 3: 1, 35: 1, 22: 1, 425: 1 }, _Tc);
124332 var YTc, ZTc;
124333 var F$ = ndb(_qe, "TreeifyingOrder", 425, CI, bUc, aUc);
124334 var cUc;
124335 bcb(1459, 1, Bqe, lUc);
124336 _2.Yf = function mUc(a) {
124337 return BD(a, 135), eUc;
124338 };
124339 _2.pf = function nUc(a, b) {
124340 kUc(this, BD(a, 135), b);
124341 };
124342 var eUc;
124343 mdb("org.eclipse.elk.alg.mrtree.p1treeify", "DFSTreeifyer", 1459);
124344 bcb(1460, 1, Bqe, sUc);
124345 _2.Yf = function tUc(a) {
124346 return BD(a, 135), oUc;
124347 };
124348 _2.pf = function uUc(a, b) {
124349 rUc(this, BD(a, 135), b);
124350 };
124351 var oUc;
124352 mdb("org.eclipse.elk.alg.mrtree.p2order", "NodeOrderer", 1460);
124353 bcb(1461, 1, Bqe, CUc);
124354 _2.Yf = function DUc(a) {
124355 return BD(a, 135), vUc;
124356 };
124357 _2.pf = function EUc(a, b) {
124358 AUc(this, BD(a, 135), b);
124359 };
124360 _2.a = 0;
124361 var vUc;
124362 mdb("org.eclipse.elk.alg.mrtree.p3place", "NodePlacer", 1461);
124363 bcb(1462, 1, Bqe, IUc);
124364 _2.Yf = function JUc(a) {
124365 return BD(a, 135), FUc;
124366 };
124367 _2.pf = function KUc(a, b) {
124368 HUc(BD(a, 135), b);
124369 };
124370 var FUc;
124371 mdb("org.eclipse.elk.alg.mrtree.p4route", "EdgeRouter", 1462);
124372 var LUc;
124373 bcb(495, 22, { 3: 1, 35: 1, 22: 1, 495: 1, 246: 1, 234: 1 }, RUc);
124374 _2.Kf = function TUc() {
124375 return QUc(this);
124376 };
124377 _2.Xf = function SUc() {
124378 return QUc(this);
124379 };
124380 var NUc, OUc;
124381 var K$ = ndb(cre, "RadialLayoutPhases", 495, CI, VUc, UUc);
124382 var WUc;
124383 bcb(1131, 209, Mle, ZUc);
124384 _2.Ze = function $Uc(a, b) {
124385 var c2, d, e, f2, g, h;
124386 c2 = YUc(this, a);
124387 Odd(b, "Radial layout", c2.c.length);
124388 Ccb(DD(hkd(a, (ZWc(), QWc)))) || $Cb((d = new _Cb((Pgd(), new bhd(a))), d));
124389 h = aVc(a);
124390 jkd(a, (MUc(), LUc), h);
124391 if (!h) {
124392 throw vbb(new Wdb("The given graph is not a tree!"));
124393 }
124394 e = Edb(ED(hkd(a, VWc)));
124395 e == 0 && (e = _Uc(a));
124396 jkd(a, VWc, e);
124397 for (g = new olb(YUc(this, a)); g.a < g.c.c.length; ) {
124398 f2 = BD(mlb(g), 51);
124399 f2.pf(a, Udd(b, 1));
124400 }
124401 Qdd(b);
124402 };
124403 mdb(cre, "RadialLayoutProvider", 1131);
124404 bcb(549, 1, Dke, jVc);
124405 _2.ue = function kVc(a, b) {
124406 return iVc(this.a, this.b, BD(a, 33), BD(b, 33));
124407 };
124408 _2.Fb = function lVc(a) {
124409 return this === a;
124410 };
124411 _2.ve = function mVc() {
124412 return new tpb(this);
124413 };
124414 _2.a = 0;
124415 _2.b = 0;
124416 mdb(cre, "RadialUtil/lambda$0$Type", 549);
124417 bcb(1375, 1, ene, oVc);
124418 _2.pf = function pVc(a, b) {
124419 nVc(BD(a, 33), b);
124420 };
124421 mdb(fre, "CalculateGraphSize", 1375);
124422 bcb(442, 22, { 3: 1, 35: 1, 22: 1, 442: 1, 234: 1 }, uVc);
124423 _2.Kf = function vVc() {
124424 switch (this.g) {
124425 case 0:
124426 return new bWc();
124427 case 1:
124428 return new NVc();
124429 case 2:
124430 return new oVc();
124431 default:
124432 throw vbb(new Wdb(Dne + (this.f != null ? this.f : "" + this.g)));
124433 }
124434 };
124435 var qVc, rVc, sVc;
124436 var O$ = ndb(fre, Ene, 442, CI, xVc, wVc);
124437 var yVc;
124438 bcb(645, 1, {});
124439 _2.e = 1;
124440 _2.g = 0;
124441 mdb(gre, "AbstractRadiusExtensionCompaction", 645);
124442 bcb(1772, 645, {}, KVc);
124443 _2.hg = function LVc(a) {
124444 var b, c2, d, e, f2, g, h, i3, j;
124445 this.c = BD(hkd(a, (MUc(), LUc)), 33);
124446 EVc(this, this.c);
124447 this.d = tXc(BD(hkd(a, (ZWc(), WWc)), 293));
124448 i3 = BD(hkd(a, KWc), 19);
124449 !!i3 && DVc(this, i3.a);
124450 h = ED(hkd(a, (Y9c(), T9c)));
124451 FVc(this, (uCb(h), h));
124452 j = gVc(this.c);
124453 !!this.d && this.d.lg(j);
124454 GVc(this, j);
124455 g = new amb(OC(GC(E2, 1), hre, 33, 0, [this.c]));
124456 for (c2 = 0; c2 < 2; c2++) {
124457 for (b = 0; b < j.c.length; b++) {
124458 e = new amb(OC(GC(E2, 1), hre, 33, 0, [(tCb(b, j.c.length), BD(j.c[b], 33))]));
124459 f2 = b < j.c.length - 1 ? (tCb(b + 1, j.c.length), BD(j.c[b + 1], 33)) : (tCb(0, j.c.length), BD(j.c[0], 33));
124460 d = b == 0 ? BD(Ikb(j, j.c.length - 1), 33) : (tCb(b - 1, j.c.length), BD(j.c[b - 1], 33));
124461 IVc(this, (tCb(b, j.c.length), BD(j.c[b], 33), g), d, f2, e);
124462 }
124463 }
124464 };
124465 mdb(gre, "AnnulusWedgeCompaction", 1772);
124466 bcb(1374, 1, ene, NVc);
124467 _2.pf = function OVc(a, b) {
124468 MVc(BD(a, 33), b);
124469 };
124470 mdb(gre, "GeneralCompactor", 1374);
124471 bcb(1771, 645, {}, SVc);
124472 _2.hg = function TVc(a) {
124473 var b, c2, d, e;
124474 c2 = BD(hkd(a, (MUc(), LUc)), 33);
124475 this.f = c2;
124476 this.b = tXc(BD(hkd(a, (ZWc(), WWc)), 293));
124477 e = BD(hkd(a, KWc), 19);
124478 !!e && DVc(this, e.a);
124479 d = ED(hkd(a, (Y9c(), T9c)));
124480 FVc(this, (uCb(d), d));
124481 b = gVc(c2);
124482 !!this.b && this.b.lg(b);
124483 QVc(this, b);
124484 };
124485 _2.a = 0;
124486 mdb(gre, "RadialCompaction", 1771);
124487 bcb(1779, 1, {}, VVc);
124488 _2.ig = function WVc(a) {
124489 var b, c2, d, e, f2, g;
124490 this.a = a;
124491 b = 0;
124492 g = gVc(a);
124493 d = 0;
124494 for (f2 = new olb(g); f2.a < f2.c.c.length; ) {
124495 e = BD(mlb(f2), 33);
124496 ++d;
124497 for (c2 = d; c2 < g.c.length; c2++) {
124498 UVc(this, e, (tCb(c2, g.c.length), BD(g.c[c2], 33))) && (b += 1);
124499 }
124500 }
124501 return b;
124502 };
124503 mdb(ire, "CrossingMinimizationPosition", 1779);
124504 bcb(1777, 1, {}, XVc);
124505 _2.ig = function YVc(a) {
124506 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n;
124507 d = 0;
124508 for (c2 = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c2); ) {
124509 b = BD(Rr(c2), 79);
124510 h = atd(BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82));
124511 j = h.i + h.g / 2;
124512 k = h.j + h.f / 2;
124513 e = a.i + a.g / 2;
124514 f2 = a.j + a.f / 2;
124515 l = new d7c();
124516 l.a = j - e;
124517 l.b = k - f2;
124518 g = new f7c(l.a, l.b);
124519 l6c(g, a.g, a.f);
124520 l.a -= g.a;
124521 l.b -= g.b;
124522 e = j - l.a;
124523 f2 = k - l.b;
124524 i3 = new f7c(l.a, l.b);
124525 l6c(i3, h.g, h.f);
124526 l.a -= i3.a;
124527 l.b -= i3.b;
124528 j = e + l.a;
124529 k = f2 + l.b;
124530 m = j - e;
124531 n = k - f2;
124532 d += $wnd.Math.sqrt(m * m + n * n);
124533 }
124534 return d;
124535 };
124536 mdb(ire, "EdgeLengthOptimization", 1777);
124537 bcb(1778, 1, {}, ZVc);
124538 _2.ig = function $Vc(a) {
124539 var b, c2, d, e, f2, g, h, i3, j, k, l;
124540 d = 0;
124541 for (c2 = new Sr(ur(_sd(a).a.Kc(), new Sq())); Qr(c2); ) {
124542 b = BD(Rr(c2), 79);
124543 h = atd(BD(qud((!b.c && (b.c = new y5d(z2, b, 5, 8)), b.c), 0), 82));
124544 i3 = h.i + h.g / 2;
124545 j = h.j + h.f / 2;
124546 e = BD(hkd(h, (Y9c(), C9c)), 8);
124547 f2 = a.i + e.a + a.g / 2;
124548 g = a.j + e.b + a.f;
124549 k = i3 - f2;
124550 l = j - g;
124551 d += $wnd.Math.sqrt(k * k + l * l);
124552 }
124553 return d;
124554 };
124555 mdb(ire, "EdgeLengthPositionOptimization", 1778);
124556 bcb(1373, 645, ene, bWc);
124557 _2.pf = function cWc(a, b) {
124558 aWc(this, BD(a, 33), b);
124559 };
124560 mdb("org.eclipse.elk.alg.radial.intermediate.overlaps", "RadiusExtensionOverlapRemoval", 1373);
124561 bcb(426, 22, { 3: 1, 35: 1, 22: 1, 426: 1 }, hWc);
124562 var dWc, eWc;
124563 var X$ = ndb(kre, "AnnulusWedgeCriteria", 426, CI, jWc, iWc);
124564 var kWc;
124565 bcb(380, 22, { 3: 1, 35: 1, 22: 1, 380: 1 }, rWc);
124566 var mWc, nWc, oWc;
124567 var Y$ = ndb(kre, Sle, 380, CI, tWc, sWc);
124568 var uWc;
124569 bcb(852, 1, ale, IWc);
124570 _2.Qe = function JWc(a) {
124571 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), lre), ""), "Order ID"), "The id can be used to define an order for nodes of one radius. This can be used to sort them in the layer accordingly."), meb(0)), (_5c(), X5c)), JI), pqb((N5c(), K5c)))));
124572 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mre), ""), "Radius"), "The radius option can be used to set the initial radius for the radial layouter."), 0), U5c), BI), pqb(L5c))));
124573 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), nre), ""), "Compaction"), "With the compacter option it can be determined how compaction on the graph is done. It can be chosen between none, the radial compaction or the compaction of wedges separately."), yWc), V5c), Y$), pqb(L5c))));
124574 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ore), ""), "Compaction Step Size"), "Determine the size of steps with which the compaction is done. Step size 1 correlates to a compaction of 1 pixel per Iteration."), meb(1)), X5c), JI), pqb(L5c))));
124575 o4c(a, ore, nre, null);
124576 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), pre), ""), "Sorter"), "Sort the nodes per radius according to the sorting algorithm. The strategies are none, by the given order id, or sorting them by polar coordinates."), EWc), V5c), b_), pqb(L5c))));
124577 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), qre), ""), "Annulus Wedge Criteria"), "Determine how the wedge for the node placement is calculated. It can be chosen between wedge determination by the number of leaves or by the maximum sum of diagonals."), GWc), V5c), X$), pqb(L5c))));
124578 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), rre), ""), "Translation Optimization"), "Find the optimal translation of the nodes of the first radii according to this criteria. For example edge crossings can be minimized."), AWc), V5c), a_), pqb(L5c))));
124579 $Wc((new _Wc(), a));
124580 };
124581 var wWc, xWc, yWc, zWc, AWc, BWc, CWc, DWc, EWc, FWc, GWc;
124582 mdb(kre, "RadialMetaDataProvider", 852);
124583 bcb(996, 1, ale, _Wc);
124584 _2.Qe = function aXc(a) {
124585 $Wc(a);
124586 };
124587 var KWc, LWc, MWc, NWc, OWc, PWc, QWc, RWc, SWc, TWc, UWc, VWc, WWc, XWc, YWc;
124588 mdb(kre, "RadialOptions", 996);
124589 bcb(997, 1, {}, bXc);
124590 _2.$e = function cXc() {
124591 var a;
124592 return a = new ZUc(), a;
124593 };
124594 _2._e = function dXc(a) {
124595 };
124596 mdb(kre, "RadialOptions/RadialFactory", 997);
124597 bcb(340, 22, { 3: 1, 35: 1, 22: 1, 340: 1 }, kXc);
124598 var eXc, fXc, gXc, hXc;
124599 var a_ = ndb(kre, "RadialTranslationStrategy", 340, CI, mXc, lXc);
124600 var nXc;
124601 bcb(293, 22, { 3: 1, 35: 1, 22: 1, 293: 1 }, uXc);
124602 var pXc, qXc, rXc;
124603 var b_ = ndb(kre, "SortingStrategy", 293, CI, wXc, vXc);
124604 var xXc;
124605 bcb(1449, 1, Bqe, CXc);
124606 _2.Yf = function DXc(a) {
124607 return BD(a, 33), null;
124608 };
124609 _2.pf = function EXc(a, b) {
124610 AXc(this, BD(a, 33), b);
124611 };
124612 _2.c = 0;
124613 mdb("org.eclipse.elk.alg.radial.p1position", "EadesRadial", 1449);
124614 bcb(1775, 1, {}, FXc);
124615 _2.jg = function GXc(a) {
124616 return eVc(a);
124617 };
124618 mdb(tre, "AnnulusWedgeByLeafs", 1775);
124619 bcb(1776, 1, {}, IXc);
124620 _2.jg = function JXc(a) {
124621 return HXc(this, a);
124622 };
124623 mdb(tre, "AnnulusWedgeByNodeSpace", 1776);
124624 bcb(1450, 1, Bqe, MXc);
124625 _2.Yf = function NXc(a) {
124626 return BD(a, 33), null;
124627 };
124628 _2.pf = function OXc(a, b) {
124629 KXc(this, BD(a, 33), b);
124630 };
124631 mdb("org.eclipse.elk.alg.radial.p2routing", "StraightLineEdgeRouter", 1450);
124632 bcb(811, 1, {}, QXc);
124633 _2.kg = function RXc(a) {
124634 };
124635 _2.lg = function TXc(a) {
124636 PXc(this, a);
124637 };
124638 mdb(ure, "IDSorter", 811);
124639 bcb(1774, 1, Dke, UXc);
124640 _2.ue = function VXc(a, b) {
124641 return SXc(BD(a, 33), BD(b, 33));
124642 };
124643 _2.Fb = function WXc(a) {
124644 return this === a;
124645 };
124646 _2.ve = function XXc() {
124647 return new tpb(this);
124648 };
124649 mdb(ure, "IDSorter/lambda$0$Type", 1774);
124650 bcb(1773, 1, {}, $Xc);
124651 _2.kg = function _Xc(a) {
124652 YXc(this, a);
124653 };
124654 _2.lg = function aYc(a) {
124655 var b;
124656 if (!a.dc()) {
124657 if (!this.e) {
124658 b = bVc(BD(a.Xb(0), 33));
124659 YXc(this, b);
124660 }
124661 PXc(this.e, a);
124662 }
124663 };
124664 mdb(ure, "PolarCoordinateSorter", 1773);
124665 bcb(1136, 209, Mle, bYc);
124666 _2.Ze = function eYc(a, b) {
124667 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B, C, D3, F;
124668 Odd(b, "Rectangle Packing", 1);
124669 b.n && b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
124670 c2 = Edb(ED(hkd(a, (lZc(), RYc))));
124671 p = BD(hkd(a, eZc), 381);
124672 s = Ccb(DD(hkd(a, ZYc)));
124673 w2 = Ccb(DD(hkd(a, dZc)));
124674 l = Ccb(DD(hkd(a, VYc)));
124675 A = BD(hkd(a, fZc), 116);
124676 v = Edb(ED(hkd(a, jZc)));
124677 e = Ccb(DD(hkd(a, iZc)));
124678 m = Ccb(DD(hkd(a, WYc)));
124679 r = Ccb(DD(hkd(a, XYc)));
124680 F = Edb(ED(hkd(a, kZc)));
124681 C = (!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a);
124682 r$c(C);
124683 if (r) {
124684 o2 = new Rkb();
124685 for (i3 = new Fyd(C); i3.e != i3.i.gc(); ) {
124686 g = BD(Dyd(i3), 33);
124687 ikd(g, UYc) && (o2.c[o2.c.length] = g, true);
124688 }
124689 for (j = new olb(o2); j.a < j.c.c.length; ) {
124690 g = BD(mlb(j), 33);
124691 Ftd(C, g);
124692 }
124693 mmb();
124694 Okb(o2, new fYc());
124695 for (k = new olb(o2); k.a < k.c.c.length; ) {
124696 g = BD(mlb(k), 33);
124697 B = BD(hkd(g, UYc), 19).a;
124698 B = $wnd.Math.min(B, C.i);
124699 vtd(C, B, g);
124700 }
124701 q = 0;
124702 for (h = new Fyd(C); h.e != h.i.gc(); ) {
124703 g = BD(Dyd(h), 33);
124704 jkd(g, TYc, meb(q));
124705 ++q;
124706 }
124707 }
124708 u2 = rfd(a);
124709 u2.a -= A.b + A.c;
124710 u2.b -= A.d + A.a;
124711 t4 = u2.a;
124712 if (F < 0 || F < u2.a) {
124713 n = new nYc(c2, p, s);
124714 f2 = jYc(n, C, v, A);
124715 b.n && b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
124716 } else {
124717 f2 = new d$c(c2, F, 0, (k$c(), j$c));
124718 }
124719 u2.a += A.b + A.c;
124720 u2.b += A.d + A.a;
124721 if (!w2) {
124722 r$c(C);
124723 D3 = new DZc(c2, l, m, e, v);
124724 t4 = $wnd.Math.max(u2.a, f2.c);
124725 f2 = CZc(D3, C, t4, u2, b, a, A);
124726 }
124727 cYc(C, A);
124728 Afd(a, f2.c + (A.b + A.c), f2.b + (A.d + A.a), false, true);
124729 Ccb(DD(hkd(a, cZc))) || $Cb((d = new _Cb((Pgd(), new bhd(a))), d));
124730 b.n && b.n && !!a && Tdd(b, i6d(a), (pgd(), mgd));
124731 Qdd(b);
124732 };
124733 mdb(yre, "RectPackingLayoutProvider", 1136);
124734 bcb(1137, 1, Dke, fYc);
124735 _2.ue = function gYc(a, b) {
124736 return dYc(BD(a, 33), BD(b, 33));
124737 };
124738 _2.Fb = function hYc(a) {
124739 return this === a;
124740 };
124741 _2.ve = function iYc() {
124742 return new tpb(this);
124743 };
124744 mdb(yre, "RectPackingLayoutProvider/lambda$0$Type", 1137);
124745 bcb(1256, 1, {}, nYc);
124746 _2.a = 0;
124747 _2.c = false;
124748 mdb(zre, "AreaApproximation", 1256);
124749 var o_ = odb(zre, "BestCandidateFilter");
124750 bcb(638, 1, { 526: 1 }, oYc);
124751 _2.mg = function pYc(a, b, c2) {
124752 var d, e, f2, g, h, i3;
124753 i3 = new Rkb();
124754 f2 = Pje;
124755 for (h = new olb(a); h.a < h.c.c.length; ) {
124756 g = BD(mlb(h), 220);
124757 f2 = $wnd.Math.min(f2, (g.c + (c2.b + c2.c)) * (g.b + (c2.d + c2.a)));
124758 }
124759 for (e = new olb(a); e.a < e.c.c.length; ) {
124760 d = BD(mlb(e), 220);
124761 (d.c + (c2.b + c2.c)) * (d.b + (c2.d + c2.a)) == f2 && (i3.c[i3.c.length] = d, true);
124762 }
124763 return i3;
124764 };
124765 mdb(zre, "AreaFilter", 638);
124766 bcb(639, 1, { 526: 1 }, qYc);
124767 _2.mg = function rYc(a, b, c2) {
124768 var d, e, f2, g, h, i3;
124769 h = new Rkb();
124770 i3 = Pje;
124771 for (g = new olb(a); g.a < g.c.c.length; ) {
124772 f2 = BD(mlb(g), 220);
124773 i3 = $wnd.Math.min(i3, $wnd.Math.abs((f2.c + (c2.b + c2.c)) / (f2.b + (c2.d + c2.a)) - b));
124774 }
124775 for (e = new olb(a); e.a < e.c.c.length; ) {
124776 d = BD(mlb(e), 220);
124777 $wnd.Math.abs((d.c + (c2.b + c2.c)) / (d.b + (c2.d + c2.a)) - b) == i3 && (h.c[h.c.length] = d, true);
124778 }
124779 return h;
124780 };
124781 mdb(zre, "AspectRatioFilter", 639);
124782 bcb(637, 1, { 526: 1 }, uYc);
124783 _2.mg = function vYc(a, b, c2) {
124784 var d, e, f2, g, h, i3;
124785 i3 = new Rkb();
124786 f2 = Qje;
124787 for (h = new olb(a); h.a < h.c.c.length; ) {
124788 g = BD(mlb(h), 220);
124789 f2 = $wnd.Math.max(f2, q$c(g.c + (c2.b + c2.c), g.b + (c2.d + c2.a), g.a));
124790 }
124791 for (e = new olb(a); e.a < e.c.c.length; ) {
124792 d = BD(mlb(e), 220);
124793 q$c(d.c + (c2.b + c2.c), d.b + (c2.d + c2.a), d.a) == f2 && (i3.c[i3.c.length] = d, true);
124794 }
124795 return i3;
124796 };
124797 mdb(zre, "ScaleMeasureFilter", 637);
124798 bcb(381, 22, { 3: 1, 35: 1, 22: 1, 381: 1 }, AYc);
124799 var wYc, xYc, yYc;
124800 var q_ = ndb(Are, "OptimizationGoal", 381, CI, CYc, BYc);
124801 var DYc;
124802 bcb(856, 1, ale, PYc);
124803 _2.Qe = function QYc(a) {
124804 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Bre), ""), "Optimization Goal"), "Optimization goal for approximation of the bounding box given by the first iteration. Determines whether layout is sorted by the maximum scaling, aspect ratio, or area. Depending on the strategy the aspect ratio might be nearly ignored."), LYc), (_5c(), V5c)), q_), pqb((N5c(), K5c)))));
124805 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Cre), ""), "Shift Last Placed."), "When placing a rectangle behind or below the last placed rectangle in the first iteration, it is sometimes possible to shift the rectangle further to the left or right, resulting in less whitespace. True (default) enables the shift and false disables it. Disabling the shift produces a greater approximated area by the first iteration and a layout, when using ONLY the first iteration (default not the case), where it is sometimes impossible to implement a size transformation of rectangles that will fill the bounding box and eliminate empty spaces."), (Bcb(), true)), T5c), wI), pqb(K5c))));
124806 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Dre), ""), "Current position of a node in the order of nodes"), "The rectangles are ordered. Normally according to their definition the the model. This option specifies the current position of a node."), meb(-1)), X5c), JI), pqb(K5c))));
124807 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ere), ""), "Desired index of node"), "The rectangles are ordered. Normally according to their definition the the model. This option allows to specify a desired position that has preference over the original position."), meb(-1)), X5c), JI), pqb(K5c))));
124808 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Fre), ""), "Only Area Approximation"), "If enabled only the width approximation step is executed and the nodes are placed accordingly. The nodes are layouted according to the packingStrategy. If set to true not expansion of nodes is taking place."), false), T5c), wI), pqb(K5c))));
124809 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Gre), ""), "Compact Rows"), "Enables compaction. Compacts blocks if they do not use the full height of the row. This option allows to have a smaller drawing. If this option is disabled all nodes are placed next to each other in rows."), true), T5c), wI), pqb(K5c))));
124810 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Hre), ""), "Fit Aspect Ratio"), "Expands nodes if expandNodes is true to fit the aspect ratio instead of only in their bounds. The option is only useful if the used packingStrategy is ASPECT_RATIO_DRIVEN, otherwise this may result in unreasonable ndoe expansion."), false), T5c), wI), pqb(K5c))));
124811 o4c(a, Hre, Jre, null);
124812 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ire), ""), "Target Width"), "Option to place the rectangles in the given target width instead of approximating the width using the desired aspect ratio. The padding is not included in this. Meaning a drawing will have width of targetwidth + horizontal padding."), -1), U5c), BI), pqb(K5c))));
124813 mZc((new nZc(), a));
124814 };
124815 var FYc, GYc, HYc, IYc, JYc, KYc, LYc, MYc, NYc;
124816 mdb(Are, "RectPackingMetaDataProvider", 856);
124817 bcb(1004, 1, ale, nZc);
124818 _2.Qe = function oZc(a) {
124819 mZc(a);
124820 };
124821 var RYc, SYc, TYc, UYc, VYc, WYc, XYc, YYc, ZYc, $Yc, _Yc, aZc, bZc, cZc, dZc, eZc, fZc, gZc, hZc, iZc, jZc, kZc;
124822 mdb(Are, "RectPackingOptions", 1004);
124823 bcb(1005, 1, {}, pZc);
124824 _2.$e = function qZc() {
124825 var a;
124826 return a = new bYc(), a;
124827 };
124828 _2._e = function rZc(a) {
124829 };
124830 mdb(Are, "RectPackingOptions/RectpackingFactory", 1005);
124831 bcb(1257, 1, {}, DZc);
124832 _2.a = 0;
124833 _2.b = false;
124834 _2.c = 0;
124835 _2.d = 0;
124836 _2.e = false;
124837 _2.f = false;
124838 _2.g = 0;
124839 mdb("org.eclipse.elk.alg.rectpacking.seconditeration", "RowFillingAndCompaction", 1257);
124840 bcb(187, 1, { 187: 1 }, PZc);
124841 _2.a = 0;
124842 _2.c = false;
124843 _2.d = 0;
124844 _2.e = 0;
124845 _2.f = 0;
124846 _2.g = 0;
124847 _2.i = 0;
124848 _2.k = false;
124849 _2.o = Pje;
124850 _2.p = Pje;
124851 _2.r = 0;
124852 _2.s = 0;
124853 _2.t = 0;
124854 mdb(Lre, "Block", 187);
124855 bcb(211, 1, { 211: 1 }, VZc);
124856 _2.a = 0;
124857 _2.b = 0;
124858 _2.d = 0;
124859 _2.e = 0;
124860 _2.f = 0;
124861 mdb(Lre, "BlockRow", 211);
124862 bcb(443, 1, { 443: 1 }, b$c);
124863 _2.b = 0;
124864 _2.c = 0;
124865 _2.d = 0;
124866 _2.e = 0;
124867 _2.f = 0;
124868 mdb(Lre, "BlockStack", 443);
124869 bcb(220, 1, { 220: 1 }, d$c, e$c);
124870 _2.a = 0;
124871 _2.b = 0;
124872 _2.c = 0;
124873 _2.d = 0;
124874 _2.e = 0;
124875 var z_ = mdb(Lre, "DrawingData", 220);
124876 bcb(355, 22, { 3: 1, 35: 1, 22: 1, 355: 1 }, l$c);
124877 var f$c, g$c, h$c, i$c, j$c;
124878 var y_ = ndb(Lre, "DrawingDataDescriptor", 355, CI, n$c, m$c);
124879 var o$c;
124880 bcb(200, 1, { 200: 1 }, x$c);
124881 _2.b = 0;
124882 _2.c = 0;
124883 _2.e = 0;
124884 _2.f = 0;
124885 mdb(Lre, "RectRow", 200);
124886 bcb(756, 1, {}, F$c);
124887 _2.j = 0;
124888 mdb(Nre, une, 756);
124889 bcb(1245, 1, {}, G$c);
124890 _2.Je = function H$c(a) {
124891 return S6c(a.a, a.b);
124892 };
124893 mdb(Nre, vne, 1245);
124894 bcb(1246, 1, {}, I$c);
124895 _2.Je = function J$c(a) {
124896 return A$c(this.a, a);
124897 };
124898 mdb(Nre, wne, 1246);
124899 bcb(1247, 1, {}, K$c);
124900 _2.Je = function L$c(a) {
124901 return B$c(this.a, a);
124902 };
124903 mdb(Nre, xne, 1247);
124904 bcb(1248, 1, {}, M$c);
124905 _2.Je = function N$c(a) {
124906 return C$c(this.a, a);
124907 };
124908 mdb(Nre, "ElkGraphImporter/lambda$3$Type", 1248);
124909 bcb(1249, 1, {}, O$c);
124910 _2.Je = function P$c(a) {
124911 return D$c(this.a, a);
124912 };
124913 mdb(Nre, yne, 1249);
124914 bcb(1133, 209, Mle, Q$c);
124915 _2.Ze = function S$c(a, b) {
124916 var c2, d, e, f2, g, h, i3, j, k, l, m, n;
124917 if (ikd(a, (d0c(), c0c))) {
124918 n = GD(hkd(a, (J0c(), I0c)));
124919 f2 = h4c(n4c(), n);
124920 if (f2) {
124921 g = BD(hgd(f2.f), 209);
124922 g.Ze(a, Udd(b, 1));
124923 }
124924 }
124925 jkd(a, Z_c, (C_c(), A_c));
124926 jkd(a, $_c, (N_c(), K_c));
124927 jkd(a, __c, (a1c(), _0c));
124928 h = BD(hkd(a, (J0c(), E0c)), 19).a;
124929 Odd(b, "Overlap removal", 1);
124930 Ccb(DD(hkd(a, D0c))) && "null45scanlineOverlaps";
124931 i3 = new Tqb();
124932 j = new U$c(i3);
124933 d = new F$c();
124934 c2 = z$c(d, a);
124935 k = true;
124936 e = 0;
124937 while (e < h && k) {
124938 if (Ccb(DD(hkd(a, F0c)))) {
124939 i3.a.$b();
124940 cOb(new dOb(j), c2.i);
124941 if (i3.a.gc() == 0) {
124942 break;
124943 }
124944 c2.e = i3;
124945 }
124946 H2c(this.b);
124947 K2c(this.b, (Y$c(), V$c), (R0c(), Q0c));
124948 K2c(this.b, W$c, c2.g);
124949 K2c(this.b, X$c, (s_c(), r_c));
124950 this.a = F2c(this.b, c2);
124951 for (m = new olb(this.a); m.a < m.c.c.length; ) {
124952 l = BD(mlb(m), 51);
124953 l.pf(c2, Udd(b, 1));
124954 }
124955 E$c(d, c2);
124956 k = Ccb(DD(vNb(c2, (XNb(), WNb))));
124957 ++e;
124958 }
124959 y$c(d, c2);
124960 Qdd(b);
124961 };
124962 mdb(Nre, "OverlapRemovalLayoutProvider", 1133);
124963 bcb(1134, 1, {}, U$c);
124964 mdb(Nre, "OverlapRemovalLayoutProvider/lambda$0$Type", 1134);
124965 bcb(437, 22, { 3: 1, 35: 1, 22: 1, 437: 1 }, Z$c);
124966 var V$c, W$c, X$c;
124967 var J_ = ndb(Nre, "SPOrEPhases", 437, CI, _$c, $$c);
124968 var a_c;
124969 bcb(1255, 1, {}, d_c);
124970 mdb(Nre, "ShrinkTree", 1255);
124971 bcb(1135, 209, Mle, e_c);
124972 _2.Ze = function f_c(a, b) {
124973 var c2, d, e, f2, g;
124974 if (ikd(a, (d0c(), c0c))) {
124975 g = GD(hkd(a, c0c));
124976 e = h4c(n4c(), g);
124977 if (e) {
124978 f2 = BD(hgd(e.f), 209);
124979 f2.Ze(a, Udd(b, 1));
124980 }
124981 }
124982 d = new F$c();
124983 c2 = z$c(d, a);
124984 c_c(this.a, c2, Udd(b, 1));
124985 y$c(d, c2);
124986 };
124987 mdb(Nre, "ShrinkTreeLayoutProvider", 1135);
124988 bcb(300, 134, { 3: 1, 300: 1, 94: 1, 134: 1 }, g_c);
124989 _2.c = false;
124990 mdb("org.eclipse.elk.alg.spore.graph", "Graph", 300);
124991 bcb(482, 22, { 3: 1, 35: 1, 22: 1, 482: 1, 246: 1, 234: 1 }, k_c);
124992 _2.Kf = function m_c() {
124993 return j_c(this);
124994 };
124995 _2.Xf = function l_c() {
124996 return j_c(this);
124997 };
124998 var h_c;
124999 var N_ = ndb(Ore, Sle, 482, CI, o_c, n_c);
125000 var p_c;
125001 bcb(551, 22, { 3: 1, 35: 1, 22: 1, 551: 1, 246: 1, 234: 1 }, t_c);
125002 _2.Kf = function v_c() {
125003 return new I1c();
125004 };
125005 _2.Xf = function u_c() {
125006 return new I1c();
125007 };
125008 var r_c;
125009 var O_ = ndb(Ore, "OverlapRemovalStrategy", 551, CI, x_c, w_c);
125010 var y_c;
125011 bcb(430, 22, { 3: 1, 35: 1, 22: 1, 430: 1 }, D_c);
125012 var A_c, B_c;
125013 var P_ = ndb(Ore, "RootSelection", 430, CI, F_c, E_c);
125014 var G_c;
125015 bcb(316, 22, { 3: 1, 35: 1, 22: 1, 316: 1 }, O_c);
125016 var I_c, J_c, K_c, L_c, M_c;
125017 var Q_ = ndb(Ore, "SpanningTreeCostFunction", 316, CI, Q_c, P_c);
125018 var R_c;
125019 bcb(1002, 1, ale, f0c);
125020 _2.Qe = function g0c(a) {
125021 e0c(a);
125022 };
125023 var T_c, U_c, V_c, W_c, X_c, Y_c, Z_c, $_c, __c, a0c, b0c, c0c;
125024 mdb(Ore, "SporeCompactionOptions", 1002);
125025 bcb(1003, 1, {}, h0c);
125026 _2.$e = function i0c() {
125027 var a;
125028 return a = new e_c(), a;
125029 };
125030 _2._e = function j0c(a) {
125031 };
125032 mdb(Ore, "SporeCompactionOptions/SporeCompactionFactory", 1003);
125033 bcb(855, 1, ale, B0c);
125034 _2.Qe = function C0c(a) {
125035 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Qre), ""), "Underlying Layout Algorithm"), "A layout algorithm that is applied to the graph before it is compacted. If this is null, nothing is applied before compaction."), (_5c(), Z5c)), ZI), pqb((N5c(), L5c)))));
125036 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Vre), "structure"), "Structure Extraction Strategy"), "This option defines what kind of triangulation or other partitioning of the plane is applied to the vertices."), y0c), V5c), W_), pqb(L5c))));
125037 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Rre), $re), "Tree Construction Strategy"), "Whether a minimum spanning tree or a maximum spanning tree should be constructed."), w0c), V5c), X_), pqb(L5c))));
125038 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Sre), $re), "Cost Function for Spanning Tree"), "The cost function is used in the creation of the spanning tree."), u0c), V5c), Q_), pqb(L5c))));
125039 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tre), $re), "Root node for spanning tree construction"), "The identifier of the node that is preferred as the root of the spanning tree. If this is null, the first node is chosen."), null), Z5c), ZI), pqb(L5c))));
125040 o4c(a, Tre, Ure, q0c);
125041 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ure), $re), "Root selection for spanning tree"), "This sets the method used to select a root node for the construction of a spanning tree"), s0c), V5c), P_), pqb(L5c))));
125042 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Wre), Bpe), "Compaction Strategy"), "This option defines how the compaction is applied."), l0c), V5c), N_), pqb(L5c))));
125043 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Xre), Bpe), "Orthogonal Compaction"), "Restricts the translation of nodes to orthogonal directions in the compaction phase."), (Bcb(), false)), T5c), wI), pqb(L5c))));
125044 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Yre), _re), "Upper limit for iterations of overlap removal"), null), meb(64)), X5c), JI), pqb(L5c))));
125045 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zre), _re), "Whether to run a supplementary scanline overlap check."), null), true), T5c), wI), pqb(L5c))));
125046 K0c((new L0c(), a));
125047 e0c((new f0c(), a));
125048 };
125049 var k0c, l0c, m0c, n0c, o0c, p0c, q0c, r0c, s0c, t0c, u0c, v0c, w0c, x0c, y0c, z0c;
125050 mdb(Ore, "SporeMetaDataProvider", 855);
125051 bcb(_ie, 1, ale, L0c);
125052 _2.Qe = function M0c(a) {
125053 K0c(a);
125054 };
125055 var D0c, E0c, F0c, G0c, H0c, I0c;
125056 mdb(Ore, "SporeOverlapRemovalOptions", _ie);
125057 bcb(1001, 1, {}, N0c);
125058 _2.$e = function O0c() {
125059 var a;
125060 return a = new Q$c(), a;
125061 };
125062 _2._e = function P0c(a) {
125063 };
125064 mdb(Ore, "SporeOverlapRemovalOptions/SporeOverlapFactory", 1001);
125065 bcb(530, 22, { 3: 1, 35: 1, 22: 1, 530: 1, 246: 1, 234: 1 }, T0c);
125066 _2.Kf = function V0c() {
125067 return S0c(this);
125068 };
125069 _2.Xf = function U0c() {
125070 return S0c(this);
125071 };
125072 var Q0c;
125073 var W_ = ndb(Ore, "StructureExtractionStrategy", 530, CI, X0c, W0c);
125074 var Y0c;
125075 bcb(429, 22, { 3: 1, 35: 1, 22: 1, 429: 1, 246: 1, 234: 1 }, c1c);
125076 _2.Kf = function e1c() {
125077 return b1c(this);
125078 };
125079 _2.Xf = function d1c() {
125080 return b1c(this);
125081 };
125082 var $0c, _0c;
125083 var X_ = ndb(Ore, "TreeConstructionStrategy", 429, CI, g1c, f1c);
125084 var h1c;
125085 bcb(1443, 1, Bqe, k1c);
125086 _2.Yf = function l1c(a) {
125087 return BD(a, 300), new j3c();
125088 };
125089 _2.pf = function m1c(a, b) {
125090 j1c(BD(a, 300), b);
125091 };
125092 mdb(bse, "DelaunayTriangulationPhase", 1443);
125093 bcb(1444, 1, qie, n1c);
125094 _2.td = function o1c(a) {
125095 Ekb(this.a, BD(a, 65).a);
125096 };
125097 mdb(bse, "DelaunayTriangulationPhase/lambda$0$Type", 1444);
125098 bcb(783, 1, Bqe, s1c);
125099 _2.Yf = function t1c(a) {
125100 return BD(a, 300), new j3c();
125101 };
125102 _2.pf = function u1c(a, b) {
125103 this.ng(BD(a, 300), b);
125104 };
125105 _2.ng = function v1c(a, b) {
125106 var c2, d, e;
125107 Odd(b, "Minimum spanning tree construction", 1);
125108 a.d ? d = a.d.a : d = BD(Ikb(a.i, 0), 65).a;
125109 Ccb(DD(vNb(a, (XNb(), VNb)))) ? e = UCb(a.e, d, (c2 = a.b, c2)) : e = UCb(a.e, d, a.b);
125110 q1c(this, e, a);
125111 Qdd(b);
125112 };
125113 mdb(cse, "MinSTPhase", 783);
125114 bcb(1446, 783, Bqe, w1c);
125115 _2.ng = function y1c(a, b) {
125116 var c2, d, e, f2;
125117 Odd(b, "Maximum spanning tree construction", 1);
125118 c2 = new z1c(a);
125119 a.d ? e = a.d.c : e = BD(Ikb(a.i, 0), 65).c;
125120 Ccb(DD(vNb(a, (XNb(), VNb)))) ? f2 = UCb(a.e, e, (d = c2, d)) : f2 = UCb(a.e, e, c2);
125121 q1c(this, f2, a);
125122 Qdd(b);
125123 };
125124 mdb(cse, "MaxSTPhase", 1446);
125125 bcb(1447, 1, {}, z1c);
125126 _2.Je = function A1c(a) {
125127 return x1c(this.a, a);
125128 };
125129 mdb(cse, "MaxSTPhase/lambda$0$Type", 1447);
125130 bcb(1445, 1, qie, B1c);
125131 _2.td = function C1c(a) {
125132 r1c(this.a, BD(a, 65));
125133 };
125134 mdb(cse, "MinSTPhase/lambda$0$Type", 1445);
125135 bcb(785, 1, Bqe, I1c);
125136 _2.Yf = function J1c(a) {
125137 return BD(a, 300), new j3c();
125138 };
125139 _2.pf = function K1c(a, b) {
125140 H1c(this, BD(a, 300), b);
125141 };
125142 _2.a = false;
125143 mdb(dse, "GrowTreePhase", 785);
125144 bcb(786, 1, qie, L1c);
125145 _2.td = function M1c(a) {
125146 G1c(this.a, this.b, this.c, BD(a, 221));
125147 };
125148 mdb(dse, "GrowTreePhase/lambda$0$Type", 786);
125149 bcb(1448, 1, Bqe, Q1c);
125150 _2.Yf = function R1c(a) {
125151 return BD(a, 300), new j3c();
125152 };
125153 _2.pf = function S1c(a, b) {
125154 P1c(this, BD(a, 300), b);
125155 };
125156 mdb(dse, "ShrinkTreeCompactionPhase", 1448);
125157 bcb(784, 1, qie, T1c);
125158 _2.td = function U1c(a) {
125159 O1c(this.a, this.b, this.c, BD(a, 221));
125160 };
125161 mdb(dse, "ShrinkTreeCompactionPhase/lambda$0$Type", 784);
125162 var g2 = odb(yqe, "IGraphElementVisitor");
125163 bcb(860, 1, { 527: 1 }, b2c);
125164 _2.og = function e2c(a) {
125165 var b;
125166 b = a2c(this, a);
125167 tNb(b, BD(Ohb(this.b, a), 94));
125168 $1c(this, a, b);
125169 };
125170 var V1c, W1c;
125171 mdb(Nle, "LayoutConfigurator", 860);
125172 var h0 = odb(Nle, "LayoutConfigurator/IPropertyHolderOptionFilter");
125173 bcb(932, 1, { 1933: 1 }, f2c);
125174 _2.pg = function g2c(a, b) {
125175 return Y1c(), !a.Xe(b);
125176 };
125177 mdb(Nle, "LayoutConfigurator/lambda$0$Type", 932);
125178 bcb(933, 1, { 1933: 1 }, i2c);
125179 _2.pg = function j2c(a, b) {
125180 return h2c(a, b);
125181 };
125182 mdb(Nle, "LayoutConfigurator/lambda$1$Type", 933);
125183 bcb(931, 1, { 831: 1 }, k2c);
125184 _2.qg = function l2c(a, b) {
125185 return Y1c(), !a.Xe(b);
125186 };
125187 mdb(Nle, "LayoutConfigurator/lambda$2$Type", 931);
125188 bcb(934, 1, Oie, m2c);
125189 _2.Mb = function n2c(a) {
125190 return d2c(this.a, this.b, BD(a, 1933));
125191 };
125192 mdb(Nle, "LayoutConfigurator/lambda$3$Type", 934);
125193 bcb(858, 1, {}, w2c);
125194 mdb(Nle, "RecursiveGraphLayoutEngine", 858);
125195 bcb(296, 60, Tie, x2c, y2c);
125196 mdb(Nle, "UnsupportedConfigurationException", 296);
125197 bcb(453, 60, Tie, z2c);
125198 mdb(Nle, "UnsupportedGraphException", 453);
125199 bcb(754, 1, {});
125200 mdb(yqe, "AbstractRandomListAccessor", 754);
125201 bcb(500, 754, {}, L2c);
125202 _2.rg = function N2c() {
125203 return null;
125204 };
125205 _2.d = true;
125206 _2.e = true;
125207 _2.f = 0;
125208 mdb(fse, "AlgorithmAssembler", 500);
125209 bcb(1236, 1, Oie, O2c);
125210 _2.Mb = function P2c(a) {
125211 return !!BD(a, 123);
125212 };
125213 mdb(fse, "AlgorithmAssembler/lambda$0$Type", 1236);
125214 bcb(1237, 1, {}, Q2c);
125215 _2.Kb = function R2c(a) {
125216 return M2c(this.a, BD(a, 123));
125217 };
125218 mdb(fse, "AlgorithmAssembler/lambda$1$Type", 1237);
125219 bcb(1238, 1, Oie, S2c);
125220 _2.Mb = function T2c(a) {
125221 return !!BD(a, 80);
125222 };
125223 mdb(fse, "AlgorithmAssembler/lambda$2$Type", 1238);
125224 bcb(1239, 1, qie, U2c);
125225 _2.td = function V2c(a) {
125226 d3c(this.a, BD(a, 80));
125227 };
125228 mdb(fse, "AlgorithmAssembler/lambda$3$Type", 1239);
125229 bcb(1240, 1, qie, W2c);
125230 _2.td = function X2c(a) {
125231 G2c(this.a, this.b, BD(a, 234));
125232 };
125233 mdb(fse, "AlgorithmAssembler/lambda$4$Type", 1240);
125234 bcb(1355, 1, Dke, Z2c);
125235 _2.ue = function $2c(a, b) {
125236 return Y2c(BD(a, 234), BD(b, 234));
125237 };
125238 _2.Fb = function _2c(a) {
125239 return this === a;
125240 };
125241 _2.ve = function a3c() {
125242 return new tpb(this);
125243 };
125244 mdb(fse, "EnumBasedFactoryComparator", 1355);
125245 bcb(80, 754, { 80: 1 }, j3c);
125246 _2.rg = function l3c() {
125247 return new Tqb();
125248 };
125249 _2.a = 0;
125250 mdb(fse, "LayoutProcessorConfiguration", 80);
125251 bcb(1013, 1, { 527: 1 }, q3c);
125252 _2.og = function u3c(a) {
125253 stb(n3c, new z3c(a));
125254 };
125255 var m3c, n3c, o3c;
125256 mdb(Xke, "DeprecatedLayoutOptionReplacer", 1013);
125257 bcb(1014, 1, qie, v3c);
125258 _2.td = function w3c(a) {
125259 r3c(BD(a, 160));
125260 };
125261 mdb(Xke, "DeprecatedLayoutOptionReplacer/lambda$0$Type", 1014);
125262 bcb(1015, 1, qie, x3c);
125263 _2.td = function y3c(a) {
125264 s3c(BD(a, 160));
125265 };
125266 mdb(Xke, "DeprecatedLayoutOptionReplacer/lambda$1$Type", 1015);
125267 bcb(1016, 1, {}, z3c);
125268 _2.Od = function A3c(a, b) {
125269 t3c(this.a, BD(a, 146), BD(b, 38));
125270 };
125271 mdb(Xke, "DeprecatedLayoutOptionReplacer/lambda$2$Type", 1016);
125272 bcb(149, 1, { 686: 1, 149: 1 }, E3c);
125273 _2.Fb = function F3c(a) {
125274 return C3c(this, a);
125275 };
125276 _2.sg = function G3c() {
125277 return this.b;
125278 };
125279 _2.tg = function H3c() {
125280 return this.c;
125281 };
125282 _2.ne = function I3c() {
125283 return this.e;
125284 };
125285 _2.Hb = function J3c() {
125286 return LCb(this.c);
125287 };
125288 _2.Ib = function K3c() {
125289 return "Layout Algorithm: " + this.c;
125290 };
125291 var E0 = mdb(Xke, "LayoutAlgorithmData", 149);
125292 bcb(263, 1, {}, R3c);
125293 mdb(Xke, "LayoutAlgorithmData/Builder", 263);
125294 bcb(1017, 1, { 527: 1 }, U3c);
125295 _2.og = function V3c(a) {
125296 JD(a, 239) && !Ccb(DD(a.We((Y9c(), d9c)))) && S3c(BD(a, 33));
125297 };
125298 mdb(Xke, "LayoutAlgorithmResolver", 1017);
125299 bcb(229, 1, { 686: 1, 229: 1 }, W3c);
125300 _2.Fb = function X3c(a) {
125301 if (JD(a, 229)) {
125302 return dfb(this.b, BD(a, 229).b);
125303 }
125304 return false;
125305 };
125306 _2.sg = function Y3c() {
125307 return this.a;
125308 };
125309 _2.tg = function Z3c() {
125310 return this.b;
125311 };
125312 _2.ne = function $3c() {
125313 return this.d;
125314 };
125315 _2.Hb = function _3c() {
125316 return LCb(this.b);
125317 };
125318 _2.Ib = function a4c() {
125319 return "Layout Type: " + this.b;
125320 };
125321 mdb(Xke, "LayoutCategoryData", 229);
125322 bcb(344, 1, {}, e4c);
125323 mdb(Xke, "LayoutCategoryData/Builder", 344);
125324 bcb(867, 1, {}, m4c);
125325 var f4c;
125326 mdb(Xke, "LayoutMetaDataService", 867);
125327 bcb(868, 1, {}, v4c);
125328 mdb(Xke, "LayoutMetaDataService/Registry", 868);
125329 bcb(478, 1, { 478: 1 }, w4c);
125330 mdb(Xke, "LayoutMetaDataService/Registry/Triple", 478);
125331 bcb(869, 1, gse, x4c);
125332 _2.ug = function y4c() {
125333 return new d7c();
125334 };
125335 mdb(Xke, "LayoutMetaDataService/lambda$0$Type", 869);
125336 bcb(870, 1, hse, z4c);
125337 _2.vg = function A4c(a) {
125338 return R6c(BD(a, 8));
125339 };
125340 mdb(Xke, "LayoutMetaDataService/lambda$1$Type", 870);
125341 bcb(879, 1, gse, B4c);
125342 _2.ug = function C4c() {
125343 return new Rkb();
125344 };
125345 mdb(Xke, "LayoutMetaDataService/lambda$10$Type", 879);
125346 bcb(880, 1, hse, D4c);
125347 _2.vg = function E4c(a) {
125348 return new Tkb(BD(a, 12));
125349 };
125350 mdb(Xke, "LayoutMetaDataService/lambda$11$Type", 880);
125351 bcb(881, 1, gse, F4c);
125352 _2.ug = function G4c() {
125353 return new Psb();
125354 };
125355 mdb(Xke, "LayoutMetaDataService/lambda$12$Type", 881);
125356 bcb(882, 1, hse, H4c);
125357 _2.vg = function I4c(a) {
125358 return Ru(BD(a, 68));
125359 };
125360 mdb(Xke, "LayoutMetaDataService/lambda$13$Type", 882);
125361 bcb(883, 1, gse, J4c);
125362 _2.ug = function K4c() {
125363 return new Tqb();
125364 };
125365 mdb(Xke, "LayoutMetaDataService/lambda$14$Type", 883);
125366 bcb(884, 1, hse, L4c);
125367 _2.vg = function M4c(a) {
125368 return Dx(BD(a, 53));
125369 };
125370 mdb(Xke, "LayoutMetaDataService/lambda$15$Type", 884);
125371 bcb(885, 1, gse, N4c);
125372 _2.ug = function O4c() {
125373 return new zsb();
125374 };
125375 mdb(Xke, "LayoutMetaDataService/lambda$16$Type", 885);
125376 bcb(886, 1, hse, P4c);
125377 _2.vg = function Q4c(a) {
125378 return Gx(BD(a, 53));
125379 };
125380 mdb(Xke, "LayoutMetaDataService/lambda$17$Type", 886);
125381 bcb(887, 1, gse, R4c);
125382 _2.ug = function S4c() {
125383 return new Gxb();
125384 };
125385 mdb(Xke, "LayoutMetaDataService/lambda$18$Type", 887);
125386 bcb(888, 1, hse, T4c);
125387 _2.vg = function U4c(a) {
125388 return Hx(BD(a, 208));
125389 };
125390 mdb(Xke, "LayoutMetaDataService/lambda$19$Type", 888);
125391 bcb(871, 1, gse, V4c);
125392 _2.ug = function W4c() {
125393 return new s7c();
125394 };
125395 mdb(Xke, "LayoutMetaDataService/lambda$2$Type", 871);
125396 bcb(872, 1, hse, X4c);
125397 _2.vg = function Y4c(a) {
125398 return new t7c(BD(a, 74));
125399 };
125400 mdb(Xke, "LayoutMetaDataService/lambda$3$Type", 872);
125401 bcb(873, 1, gse, Z4c);
125402 _2.ug = function $4c() {
125403 return new H_b();
125404 };
125405 mdb(Xke, "LayoutMetaDataService/lambda$4$Type", 873);
125406 bcb(874, 1, hse, _4c);
125407 _2.vg = function a5c(a) {
125408 return new K_b(BD(a, 142));
125409 };
125410 mdb(Xke, "LayoutMetaDataService/lambda$5$Type", 874);
125411 bcb(875, 1, gse, b5c);
125412 _2.ug = function c5c() {
125413 return new p0b();
125414 };
125415 mdb(Xke, "LayoutMetaDataService/lambda$6$Type", 875);
125416 bcb(876, 1, hse, d5c);
125417 _2.vg = function e5c(a) {
125418 return new r0b(BD(a, 116));
125419 };
125420 mdb(Xke, "LayoutMetaDataService/lambda$7$Type", 876);
125421 bcb(877, 1, gse, f5c);
125422 _2.ug = function g5c() {
125423 return new _fd();
125424 };
125425 mdb(Xke, "LayoutMetaDataService/lambda$8$Type", 877);
125426 bcb(878, 1, hse, h5c);
125427 _2.vg = function i5c(a) {
125428 return new agd(BD(a, 373));
125429 };
125430 mdb(Xke, "LayoutMetaDataService/lambda$9$Type", 878);
125431 var Q3 = odb(Hle, "IProperty");
125432 bcb(23, 1, { 35: 1, 686: 1, 23: 1, 146: 1 }, p5c);
125433 _2.wd = function q5c(a) {
125434 return k5c(this, BD(a, 146));
125435 };
125436 _2.Fb = function r5c(a) {
125437 return JD(a, 23) ? dfb(this.f, BD(a, 23).f) : JD(a, 146) && dfb(this.f, BD(a, 146).tg());
125438 };
125439 _2.wg = function s5c() {
125440 var a;
125441 if (JD(this.b, 4)) {
125442 a = fvd(this.b);
125443 if (a == null) {
125444 throw vbb(new Zdb(mse + this.f + "'. Make sure it's type is registered with the " + (fdb(Y3), Y3.k) + jse));
125445 }
125446 return a;
125447 } else {
125448 return this.b;
125449 }
125450 };
125451 _2.sg = function t5c() {
125452 return this.d;
125453 };
125454 _2.tg = function u5c() {
125455 return this.f;
125456 };
125457 _2.ne = function v5c() {
125458 return this.i;
125459 };
125460 _2.Hb = function w5c() {
125461 return LCb(this.f);
125462 };
125463 _2.Ib = function x5c() {
125464 return "Layout Option: " + this.f;
125465 };
125466 mdb(Xke, "LayoutOptionData", 23);
125467 bcb(24, 1, {}, H5c);
125468 mdb(Xke, "LayoutOptionData/Builder", 24);
125469 bcb(175, 22, { 3: 1, 35: 1, 22: 1, 175: 1 }, O5c);
125470 var I5c, J5c, K5c, L5c, M5c;
125471 var e1 = ndb(Xke, "LayoutOptionData/Target", 175, CI, Q5c, P5c);
125472 var R5c;
125473 bcb(277, 22, { 3: 1, 35: 1, 22: 1, 277: 1 }, a6c);
125474 var T5c, U5c, V5c, W5c, X5c, Y5c, Z5c, $5c;
125475 var f1 = ndb(Xke, "LayoutOptionData/Type", 277, CI, c6c, b6c);
125476 var d6c;
125477 var f6c;
125478 var h6c;
125479 bcb(110, 1, { 110: 1 }, I6c, J6c, K6c);
125480 _2.Fb = function L6c(a) {
125481 var b;
125482 if (a == null || !JD(a, 110)) {
125483 return false;
125484 }
125485 b = BD(a, 110);
125486 return wtb(this.c, b.c) && wtb(this.d, b.d) && wtb(this.b, b.b) && wtb(this.a, b.a);
125487 };
125488 _2.Hb = function M6c() {
125489 return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [this.c, this.d, this.b, this.a]));
125490 };
125491 _2.Ib = function N6c() {
125492 return "Rect[x=" + this.c + ",y=" + this.d + ",w=" + this.b + ",h=" + this.a + "]";
125493 };
125494 _2.a = 0;
125495 _2.b = 0;
125496 _2.c = 0;
125497 _2.d = 0;
125498 mdb(pne, "ElkRectangle", 110);
125499 bcb(8, 1, { 3: 1, 4: 1, 8: 1, 414: 1 }, d7c, e7c, f7c, g7c);
125500 _2.Fb = function h7c(a) {
125501 return T6c(this, a);
125502 };
125503 _2.Hb = function i7c() {
125504 return Hdb(this.a) + jeb(Hdb(this.b));
125505 };
125506 _2.Jf = function k7c(b) {
125507 var c2, d, e, f2;
125508 e = 0;
125509 while (e < b.length && j7c((BCb(e, b.length), b.charCodeAt(e)), mne)) {
125510 ++e;
125511 }
125512 c2 = b.length;
125513 while (c2 > 0 && j7c((BCb(c2 - 1, b.length), b.charCodeAt(c2 - 1)), nne)) {
125514 --c2;
125515 }
125516 if (e >= c2) {
125517 throw vbb(new Wdb("The given string does not contain any numbers."));
125518 }
125519 f2 = mfb(b.substr(e, c2 - e), ",|;|\r|\n");
125520 if (f2.length != 2) {
125521 throw vbb(new Wdb("Exactly two numbers are expected, " + f2.length + " were found."));
125522 }
125523 try {
125524 this.a = Hcb(ufb(f2[0]));
125525 this.b = Hcb(ufb(f2[1]));
125526 } catch (a) {
125527 a = ubb(a);
125528 if (JD(a, 127)) {
125529 d = a;
125530 throw vbb(new Wdb(one2 + d));
125531 } else
125532 throw vbb(a);
125533 }
125534 };
125535 _2.Ib = function m7c() {
125536 return "(" + this.a + "," + this.b + ")";
125537 };
125538 _2.a = 0;
125539 _2.b = 0;
125540 var m1 = mdb(pne, "KVector", 8);
125541 bcb(74, 68, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 68: 1, 15: 1, 74: 1, 414: 1 }, s7c, t7c, u7c);
125542 _2.Pc = function x7c() {
125543 return r7c(this);
125544 };
125545 _2.Jf = function v7c(b) {
125546 var c2, d, e, f2, g, h;
125547 e = mfb(b, ",|;|\\(|\\)|\\[|\\]|\\{|\\}| | |\n");
125548 Osb(this);
125549 try {
125550 d = 0;
125551 g = 0;
125552 f2 = 0;
125553 h = 0;
125554 while (d < e.length) {
125555 if (e[d] != null && ufb(e[d]).length > 0) {
125556 g % 2 == 0 ? f2 = Hcb(e[d]) : h = Hcb(e[d]);
125557 g > 0 && g % 2 != 0 && Dsb(this, new f7c(f2, h));
125558 ++g;
125559 }
125560 ++d;
125561 }
125562 } catch (a) {
125563 a = ubb(a);
125564 if (JD(a, 127)) {
125565 c2 = a;
125566 throw vbb(new Wdb("The given string does not match the expected format for vectors." + c2));
125567 } else
125568 throw vbb(a);
125569 }
125570 };
125571 _2.Ib = function y7c() {
125572 var a, b, c2;
125573 a = new Wfb("(");
125574 b = Jsb(this, 0);
125575 while (b.b != b.d.c) {
125576 c2 = BD(Xsb(b), 8);
125577 Qfb(a, c2.a + "," + c2.b);
125578 b.b != b.d.c && (a.a += "; ", a);
125579 }
125580 return (a.a += ")", a).a;
125581 };
125582 var l1 = mdb(pne, "KVectorChain", 74);
125583 bcb(248, 22, { 3: 1, 35: 1, 22: 1, 248: 1 }, G7c);
125584 var z7c, A7c, B7c, C7c, D7c, E7c;
125585 var o1 = ndb(ose, "Alignment", 248, CI, I7c, H7c);
125586 var J7c;
125587 bcb(979, 1, ale, Z7c);
125588 _2.Qe = function $7c(a) {
125589 Y7c(a);
125590 };
125591 var L7c, M7c, N7c, O7c, P7c, Q7c, R7c, S7c, T7c, U7c, V7c, W7c;
125592 mdb(ose, "BoxLayouterOptions", 979);
125593 bcb(980, 1, {}, _7c);
125594 _2.$e = function a8c() {
125595 var a;
125596 return a = new ged(), a;
125597 };
125598 _2._e = function b8c(a) {
125599 };
125600 mdb(ose, "BoxLayouterOptions/BoxFactory", 980);
125601 bcb(291, 22, { 3: 1, 35: 1, 22: 1, 291: 1 }, j8c);
125602 var c8c, d8c, e8c, f8c, g8c, h8c;
125603 var r1 = ndb(ose, "ContentAlignment", 291, CI, l8c, k8c);
125604 var m8c;
125605 bcb(684, 1, ale, Z9c);
125606 _2.Qe = function $9c(a) {
125607 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), sse), ""), "Layout Algorithm"), "Select a specific layout algorithm."), (_5c(), Z5c)), ZI), pqb((N5c(), L5c)))));
125608 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), tse), ""), "Resolved Layout Algorithm"), "Meta data associated with the selected algorithm."), Y5c), E0), pqb(L5c))));
125609 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $pe), ""), "Alignment"), "Alignment of the selected node relative to other nodes; the exact meaning depends on the used algorithm."), q8c), V5c), o1), pqb(K5c))));
125610 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), _le), ""), "Aspect Ratio"), "The desired aspect ratio of the drawing, that is the quotient of width by height."), U5c), BI), pqb(L5c))));
125611 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), use), ""), "Bend Points"), "A fixed list of bend points for the edge. This is used by the 'Fixed Layout' algorithm to specify a pre-defined routing for an edge. The vector chain must include the source point, any bend points, and the target point, so it must have at least two points."), Y5c), l1), pqb(I5c))));
125612 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), lqe), ""), "Content Alignment"), "Specifies how the content of a node are aligned. Each node can individually control the alignment of its contents. I.e. if a node should be aligned top left in its parent node, the parent node should specify that option."), x8c), W5c), r1), pqb(L5c))));
125613 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zpe), ""), "Debug Mode"), "Whether additional debug information shall be generated."), (Bcb(), false)), T5c), wI), pqb(L5c))));
125614 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), cqe), ""), Cle), "Overall direction of edges: horizontal (right / left) or vertical (down / up)."), A8c), V5c), t12), pqb(L5c))));
125615 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ype), ""), "Edge Routing"), "What kind of edge routing style should be applied for the content of a parent node. Algorithms may also set this option to single edges in order to mark them as splines. The bend point list of edges with this option set to SPLINES must be interpreted as control points for a piecewise cubic spline."), F8c), V5c), v1), pqb(L5c))));
125616 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Jre), ""), "Expand Nodes"), "If active, nodes are expanded to fill the area of their parent."), false), T5c), wI), pqb(L5c))));
125617 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), tpe), ""), "Hierarchy Handling"), "Determines whether separate layout runs are triggered for different compound nodes in a hierarchical graph. Setting a node's hierarchy handling to `INCLUDE_CHILDREN` will lay out that node and all of its descendants in a single layout run, until a descendant is encountered which has its hierarchy handling set to `SEPARATE_CHILDREN`. In general, `SEPARATE_CHILDREN` will ensure that a new layout run is triggered for a node with that setting. Including multiple levels of hierarchy in a single layout run may allow cross-hierarchical edges to be laid out properly. If the root node is set to `INHERIT` (or not set at all), the default behavior is `SEPARATE_CHILDREN`."), K8c), V5c), z1), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c])))));
125618 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), ame), ""), "Padding"), "The padding to be left to a parent element's border when placing child elements. This can also serve as an output option of a layout algorithm if node size calculation is setup appropriately."), g9c), Y5c), j1), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c])))));
125619 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ame), ""), "Interactive"), "Whether the algorithm should be run in interactive mode for the content of a parent node. What this means exactly depends on how the specific algorithm interprets this option. Usually in the interactive mode algorithms try to modify the current layout as little as possible."), false), T5c), wI), pqb(L5c))));
125620 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xqe), ""), "interactive Layout"), "Whether the graph should be changeable interactively and by setting constraints"), false), T5c), wI), pqb(L5c))));
125621 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Dme), ""), "Omit Node Micro Layout"), "Node micro layout comprises the computation of node dimensions (if requested), the placement of ports and their labels, and the placement of node labels. The functionality is implemented independent of any specific layout algorithm and shouldn't have any negative impact on the layout algorithm's performance itself. Yet, if any unforeseen behavior occurs, this option allows to deactivate the micro layout."), false), T5c), wI), pqb(L5c))));
125622 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Bme), ""), "Port Constraints"), "Defines constraints of the position of the ports of a node."), u9c), V5c), D1), pqb(K5c))));
125623 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), uqe), ""), "Position"), "The position of a node, port, or label. This is used by the 'Fixed Layout' algorithm to specify a pre-defined position."), Y5c), m1), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [M5c, J5c])))));
125624 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), vme), ""), "Priority"), "Defines the priority of an object; its meaning depends on the specific layout algorithm and the context where it is used."), X5c), JI), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [I5c])))));
125625 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), yme), ""), "Randomization Seed"), "Seed used for pseudo-random number generators to control the layout algorithm. If the value is 0, the seed shall be determined pseudo-randomly (e.g. from the system time)."), X5c), JI), pqb(L5c))));
125626 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), zme), ""), "Separate Connected Components"), "Whether each connected component should be processed separately."), T5c), wI), pqb(L5c))));
125627 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), mqe), ""), "Junction Points"), "This option is not used as option, but as output of the layout algorithms. It is attached to edges and determines the points where junction symbols should be drawn in order to represent hyperedges with orthogonal routing. Whether such points are computed depends on the chosen layout algorithm and edge routing style. The points are put into the vector chain with no specific order."), R8c), Y5c), l1), pqb(I5c))));
125628 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), pqe), ""), "Comment Box"), "Whether the node should be regarded as a comment box instead of a regular node. In that case its placement should be similar to how labels are handled. Any edges incident to a comment box specify to which graph elements the comment is related."), false), T5c), wI), pqb(K5c))));
125629 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), qqe), ""), "Hypernode"), "Whether the node should be handled as a hypernode."), false), T5c), wI), pqb(K5c))));
125630 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), vse), ""), "Label Manager"), "Label managers can shorten labels upon a layout algorithm's request."), Y5c), h1), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [J5c])))));
125631 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), vqe), ""), "Margins"), "Margins define additional space around the actual bounds of a graph element. For instance, ports or labels being placed on the outside of a node's border might introduce such a margin. The margin is used to guarantee non-overlap of other graph elements with those ports or labels."), T8c), Y5c), i1), pqb(K5c))));
125632 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Xpe), ""), "No Layout"), "No layout is done for the associated element. This is used to mark parts of a diagram to avoid their inclusion in the layout graph, or to mark parts of the layout graph to prevent layout engines from processing them. If you wish to exclude the contents of a compound node from automatic layout, while the node itself is still considered on its own layer, use the 'Fixed Layout' algorithm for that node."), false), T5c), wI), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [I5c, M5c, J5c])))));
125633 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), wse), ""), "Scale Factor"), "The scaling factor to be applied to the corresponding node in recursive layout. It causes the corresponding node's size to be adjusted, and its ports and labels to be sized and placed accordingly after the layout of that node has been determined (and before the node itself and its siblings are arranged). The scaling is not reverted afterwards, so the resulting layout graph contains the adjusted size and position data. This option is currently not supported if 'Layout Hierarchy' is set."), 1), U5c), BI), pqb(K5c))));
125634 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xse), ""), "Animate"), "Whether the shift from the old layout to the new computed layout shall be animated."), true), T5c), wI), pqb(L5c))));
125635 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), yse), ""), "Animation Time Factor"), "Factor for computation of animation time. The higher the value, the longer the animation time. If the value is 0, the resulting time is always equal to the minimum defined by 'Minimal Animation Time'."), meb(100)), X5c), JI), pqb(L5c))));
125636 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), zse), ""), "Layout Ancestors"), "Whether the hierarchy levels on the path from the selected element to the root of the diagram shall be included in the layout process."), false), T5c), wI), pqb(L5c))));
125637 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ase), ""), "Maximal Animation Time"), "The maximal time for animations, in milliseconds."), meb(4e3)), X5c), JI), pqb(L5c))));
125638 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Bse), ""), "Minimal Animation Time"), "The minimal time for animations, in milliseconds."), meb(400)), X5c), JI), pqb(L5c))));
125639 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Cse), ""), "Progress Bar"), "Whether a progress bar shall be displayed during layout computations."), false), T5c), wI), pqb(L5c))));
125640 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Dse), ""), "Validate Graph"), "Whether the graph shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."), false), T5c), wI), pqb(L5c))));
125641 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ese), ""), "Validate Options"), "Whether layout options shall be validated before any layout algorithm is applied. If this option is enabled and at least one error is found, the layout process is aborted and a message is shown to the user."), true), T5c), wI), pqb(L5c))));
125642 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Fse), ""), "Zoom to Fit"), "Whether the zoom level shall be set to view the whole diagram after layout."), false), T5c), wI), pqb(L5c))));
125643 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), rse), "box"), "Box Layout Mode"), "Configures the packing mode used by the {@link BoxLayoutProvider}. If SIMPLE is not required (neither priorities are used nor the interactive mode), GROUP_DEC can improve the packing and decrease the area. GROUP_MIXED and GROUP_INC may, in very specific scenarios, work better."), u8c), V5c), O1), pqb(L5c))));
125644 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Lpe), zpe), "Comment Comment Spacing"), "Spacing to be preserved between a comment box and other comment boxes connected to the same node. The space left between comment boxes of different nodes is controlled by the node-node spacing."), 10), U5c), BI), pqb(L5c))));
125645 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Mpe), zpe), "Comment Node Spacing"), "Spacing to be preserved between a node and its connected comment boxes. The space left between a node and the comments of another node is controlled by the node-node spacing."), 10), U5c), BI), pqb(L5c))));
125646 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Zle), zpe), "Components Spacing"), "Spacing to be preserved between pairs of connected components. This option is only relevant if 'separateConnectedComponents' is activated."), 20), U5c), BI), pqb(L5c))));
125647 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Npe), zpe), "Edge Spacing"), "Spacing to be preserved between any two edges. Note that while this can somewhat easily be satisfied for the segments of orthogonally drawn edges, it is harder for general polylines or splines."), 10), U5c), BI), pqb(L5c))));
125648 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), xme), zpe), "Edge Label Spacing"), "The minimal distance to be preserved between a label and the edge it is associated with. Note that the placement of a label is influenced by the 'edgelabels.placement' option."), 2), U5c), BI), pqb(L5c))));
125649 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ope), zpe), "Edge Node Spacing"), "Spacing to be preserved between nodes and edges."), 10), U5c), BI), pqb(L5c))));
125650 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ppe), zpe), "Label Spacing"), "Determines the amount of space to be left between two labels of the same graph element."), 0), U5c), BI), pqb(L5c))));
125651 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Spe), zpe), "Label Node Spacing"), "Spacing to be preserved between labels and the border of node they are associated with. Note that the placement of a label is influenced by the 'nodelabels.placement' option."), 5), U5c), BI), pqb(L5c))));
125652 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Qpe), zpe), "Horizontal spacing between Label and Port"), "Horizontal spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), U5c), BI), pqb(L5c))));
125653 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Rpe), zpe), "Vertical spacing between Label and Port"), "Vertical spacing to be preserved between labels and the ports they are associated with. Note that the placement of a label is influenced by the 'portlabels.placement' option."), 1), U5c), BI), pqb(L5c))));
125654 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), wme), zpe), "Node Spacing"), "The minimal distance to be preserved between each two nodes."), 20), U5c), BI), pqb(L5c))));
125655 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tpe), zpe), "Node Self Loop Spacing"), "Spacing to be preserved between a node and its self loops."), 10), U5c), BI), pqb(L5c))));
125656 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Upe), zpe), "Port Spacing"), "Spacing between pairs of ports of the same node."), 10), U5c), BI), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c])))));
125657 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Vpe), zpe), "Individual Spacing"), "Allows to specify individual spacing values for graph elements that shall be different from the value specified for the element's parent."), Y5c), i2), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [I5c, M5c, J5c])))));
125658 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), wqe), zpe), "Additional Port Space"), "Additional space around the sets of ports on each node side. For each side of a node, this option can reserve additional space before and after the ports on each side. For example, a top spacing of 20 makes sure that the first port on the western and eastern side is 20 units away from the northern border."), W9c), Y5c), i1), pqb(L5c))));
125659 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), tqe), Jse), "Layout Partition"), "Partition to which the node belongs. This requires Layout Partitioning to be active. Nodes with lower partition IDs will appear to the left of nodes with higher partition IDs (assuming a left-to-right layout direction)."), X5c), JI), qqb(L5c, OC(GC(e1, 1), Kie, 175, 0, [K5c])))));
125660 o4c(a, tqe, sqe, k9c);
125661 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), sqe), Jse), "Layout Partitioning"), "Whether to activate partitioned layout. This will allow to group nodes through the Layout Partition option. a pair of nodes with different partition indices is then placed such that the node with lower index is placed to the left of the other node (with left-to-right layout direction). Depending on the layout algorithm, this may only be guaranteed to work if all nodes have a layout partition configured, or at least if edges that cross partitions are not part of a partition-crossing cycle."), i9c), T5c), wI), pqb(L5c))));
125662 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), dqe), Kse), "Node Label Padding"), "Define padding for node labels that are placed inside of a node."), V8c), Y5c), j1), pqb(L5c))));
125663 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Gme), Kse), "Node Label Placement"), "Hints for where node labels are to be placed; if empty, the node label's position is not modified."), X8c), W5c), B1), qqb(K5c, OC(GC(e1, 1), Kie, 175, 0, [J5c])))));
125664 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), gqe), Lse), "Port Alignment"), "Defines the default port distribution for a node. May be overridden for each side individually."), m9c), V5c), C1), pqb(K5c))));
125665 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), hqe), Lse), "Port Alignment (North)"), "Defines how ports on the northern side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c))));
125666 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), iqe), Lse), "Port Alignment (South)"), "Defines how ports on the southern side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c))));
125667 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), jqe), Lse), "Port Alignment (West)"), "Defines how ports on the western side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c))));
125668 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), kqe), Lse), "Port Alignment (East)"), "Defines how ports on the eastern side are placed, overriding the node's general port alignment."), V5c), C1), pqb(K5c))));
125669 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Fme), Mse), "Node Size Constraints"), "What should be taken into account when calculating a node's size. Empty size constraints specify that a node's size is already fixed and should not be changed."), Z8c), W5c), I1), pqb(K5c))));
125670 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Eme), Mse), "Node Size Options"), "Options modifying the behavior of the size constraints set on a node. Each member of the set specifies something that should be taken into account when calculating node sizes. The empty set corresponds to no further modifications."), c9c), W5c), J1), pqb(K5c))));
125671 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Tme), Mse), "Node Size Minimum"), "The minimal size to which a node can be reduced."), a9c), Y5c), m1), pqb(K5c))));
125672 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), bqe), Mse), "Fixed Graph Size"), "By default, the fixed layout provider will enlarge a graph until it is large enough to contain its children. If this option is set, it won't do so."), false), T5c), wI), pqb(L5c))));
125673 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), nqe), Jpe), "Edge Label Placement"), "Gives a hint on where to put edge labels."), D8c), V5c), u1), pqb(J5c))));
125674 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Cme), Jpe), "Inline Edge Labels"), "If true, an edge label is placed directly on its edge. May only apply to center edge labels. This kind of label placement is only advisable if the label's rendering is such that it is not crossed by its edge and thus stays legible."), false), T5c), wI), pqb(J5c))));
125675 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Gse), "font"), "Font Name"), "Font name used for a label."), Z5c), ZI), pqb(J5c))));
125676 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Hse), "font"), "Font Size"), "Font size used for a label."), X5c), JI), pqb(J5c))));
125677 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), rqe), Nse), "Port Anchor Offset"), "The offset to the port position where connections shall be attached."), Y5c), m1), pqb(M5c))));
125678 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), oqe), Nse), "Port Index"), "The index of a port in the fixed order around a node. The order is assumed as clockwise, starting with the leftmost port on the top side. This option must be set if 'Port Constraints' is set to FIXED_ORDER and no specific positions are given for the ports. Additionally, the option 'Port Side' must be defined in this case."), X5c), JI), pqb(M5c))));
125679 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ype), Nse), "Port Side"), "The side of a node on which a port is situated. This option must be set if 'Port Constraints' is set to FIXED_SIDE or FIXED_ORDER and no specific positions are given for the ports."), B9c), V5c), F1), pqb(M5c))));
125680 t4c(a, new p5c(F5c(E5c(G5c(z5c(D5c(A5c(B5c(new H5c(), Wpe), Nse), "Port Border Offset"), "The offset of ports on the node border. With a positive offset the port is moved outside of the node, while with a negative offset the port is moved towards the inside. An offset of 0 means that the port is placed directly on the node border, i.e. if the port side is north, the port's south border touches the nodes's north border; if the port side is east, the port's west border touches the nodes's east border; if the port side is south, the port's north border touches the node's south border; if the port side is west, the port's east border touches the node's west border."), U5c), BI), pqb(M5c))));
125681 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Hme), Ose), "Port Label Placement"), "Decides on a placement method for port labels; if empty, the node label's position is not modified."), y9c), W5c), E1), pqb(K5c))));
125682 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), eqe), Ose), "Port Labels Next to Port"), "Use 'portLabels.placement': NEXT_TO_PORT_OF_POSSIBLE."), false), T5c), wI), pqb(K5c))));
125683 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), fqe), Ose), "Treat Port Labels as Group"), "If this option is true (default), the labels of a port will be treated as a group when it comes to centering them next to their port. If this option is false, only the first label will be centered next to the port, with the others being placed below. This only applies to labels of eastern and western ports and will have no effect if labels are not placed next to their port."), true), T5c), wI), pqb(K5c))));
125684 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), _pe), Pse), "Activate Inside Self Loops"), "Whether this node allows to route self loops inside of it instead of around it. If set to true, this will make the node a compound node if it isn't already, and will require the layout algorithm to support compound nodes with hierarchical ports."), false), T5c), wI), pqb(K5c))));
125685 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), aqe), Pse), "Inside Self Loop"), "Whether a self loop should be routed inside a node instead of around that node."), false), T5c), wI), pqb(I5c))));
125686 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), $le), "edge"), "Edge Thickness"), "The thickness of an edge. This is a hint on the line width used to draw an edge, possibly requiring more space to be reserved for it."), 1), U5c), BI), pqb(I5c))));
125687 t4c(a, new p5c(F5c(E5c(G5c(y5c(z5c(D5c(A5c(B5c(new H5c(), Ise), "edge"), "Edge Type"), "The type of an edge. This is usually used for UML class diagrams, where associations must be handled differently from generalizations."), H8c), V5c), w1), pqb(I5c))));
125688 s4c(a, new W3c(b4c(d4c(c4c(new e4c(), sne), "Layered"), 'The layer-based method was introduced by Sugiyama, Tagawa and Toda in 1981. It emphasizes the direction of edges by pointing as many edges as possible into the same direction. The nodes are arranged in layers, which are sometimes called "hierarchies", and then reordered such that the number of edge crossings is minimized. Afterwards, concrete coordinates are computed for the nodes and edge bend points.')));
125689 s4c(a, new W3c(b4c(d4c(c4c(new e4c(), "org.eclipse.elk.orthogonal"), "Orthogonal"), `Orthogonal methods that follow the "topology-shape-metrics" approach by Batini, Nardelli and Tamassia '86. The first phase determines the topology of the drawing by applying a planarization technique, which results in a planar representation of the graph. The orthogonal shape is computed in the second phase, which aims at minimizing the number of edge bends, and is called orthogonalization. The third phase leads to concrete coordinates for nodes and edge bend points by applying a compaction method, thus defining the metrics.`)));
125690 s4c(a, new W3c(b4c(d4c(c4c(new e4c(), ume), "Force"), "Layout algorithms that follow physical analogies by simulating a system of attractive and repulsive forces. The first successful method of this kind was proposed by Eades in 1984.")));
125691 s4c(a, new W3c(b4c(d4c(c4c(new e4c(), "org.eclipse.elk.circle"), "Circle"), "Circular layout algorithms emphasize cycles or biconnected components of a graph by arranging them in circles. This is useful if a drawing is desired where such components are clearly grouped, or where cycles are shown as prominent OPTIONS of the graph.")));
125692 s4c(a, new W3c(b4c(d4c(c4c(new e4c(), bre), "Tree"), "Specialized layout methods for trees, i.e. acyclic graphs. The regular structure of graphs that have no undirected cycles can be emphasized using an algorithm of this type.")));
125693 s4c(a, new W3c(b4c(d4c(c4c(new e4c(), "org.eclipse.elk.planar"), "Planar"), "Algorithms that require a planar or upward planar graph. Most of these algorithms are theoretically interesting, but not practically usable.")));
125694 s4c(a, new W3c(b4c(d4c(c4c(new e4c(), sre), "Radial"), "Radial layout algorithms usually position the nodes of the graph on concentric circles.")));
125695 $ad((new _ad(), a));
125696 Y7c((new Z7c(), a));
125697 jdd((new kdd(), a));
125698 };
125699 var o8c, p8c, q8c, r8c, s8c, t8c, u8c, v8c, w8c, x8c, y8c, z8c, A8c, B8c, C8c, D8c, E8c, F8c, G8c, H8c, I8c, J8c, K8c, L8c, M8c, N8c, O8c, P8c, Q8c, R8c, S8c, T8c, U8c, V8c, W8c, X8c, Y8c, Z8c, $8c, _8c, a9c, b9c, c9c, d9c, e9c, f9c, g9c, h9c, i9c, j9c, k9c, l9c, m9c, n9c, o9c, p9c, q9c, r9c, s9c, t9c, u9c, v9c, w9c, x9c, y9c, z9c, A9c, B9c, C9c, D9c, E9c, F9c, G9c, H9c, I9c, J9c, K9c, L9c, M9c, N9c, O9c, P9c, Q9c, R9c, S9c, T9c, U9c, V9c, W9c, X9c;
125700 mdb(ose, "CoreOptions", 684);
125701 bcb(103, 22, { 3: 1, 35: 1, 22: 1, 103: 1 }, iad);
125702 var _9c, aad, bad, cad, dad;
125703 var t12 = ndb(ose, Cle, 103, CI, kad, jad);
125704 var lad;
125705 bcb(272, 22, { 3: 1, 35: 1, 22: 1, 272: 1 }, rad);
125706 var nad, oad, pad2;
125707 var u1 = ndb(ose, "EdgeLabelPlacement", 272, CI, tad, sad);
125708 var uad;
125709 bcb(218, 22, { 3: 1, 35: 1, 22: 1, 218: 1 }, Bad);
125710 var wad, xad, yad, zad;
125711 var v1 = ndb(ose, "EdgeRouting", 218, CI, Dad, Cad);
125712 var Ead;
125713 bcb(312, 22, { 3: 1, 35: 1, 22: 1, 312: 1 }, Nad);
125714 var Gad, Had, Iad, Jad, Kad, Lad;
125715 var w1 = ndb(ose, "EdgeType", 312, CI, Pad, Oad);
125716 var Qad;
125717 bcb(977, 1, ale, _ad);
125718 _2.Qe = function abd(a) {
125719 $ad(a);
125720 };
125721 var Sad, Tad, Uad, Vad, Wad, Xad, Yad;
125722 mdb(ose, "FixedLayouterOptions", 977);
125723 bcb(978, 1, {}, bbd);
125724 _2.$e = function cbd() {
125725 var a;
125726 return a = new Zfd(), a;
125727 };
125728 _2._e = function dbd(a) {
125729 };
125730 mdb(ose, "FixedLayouterOptions/FixedFactory", 978);
125731 bcb(334, 22, { 3: 1, 35: 1, 22: 1, 334: 1 }, ibd);
125732 var ebd, fbd, gbd;
125733 var z1 = ndb(ose, "HierarchyHandling", 334, CI, kbd, jbd);
125734 var lbd;
125735 bcb(285, 22, { 3: 1, 35: 1, 22: 1, 285: 1 }, tbd);
125736 var nbd, obd, pbd, qbd;
125737 var A1 = ndb(ose, "LabelSide", 285, CI, vbd, ubd);
125738 var wbd;
125739 bcb(93, 22, { 3: 1, 35: 1, 22: 1, 93: 1 }, Ibd);
125740 var ybd, zbd, Abd, Bbd, Cbd, Dbd, Ebd, Fbd, Gbd;
125741 var B1 = ndb(ose, "NodeLabelPlacement", 93, CI, Lbd, Kbd);
125742 var Mbd;
125743 bcb(249, 22, { 3: 1, 35: 1, 22: 1, 249: 1 }, Ubd);
125744 var Obd, Pbd, Qbd, Rbd, Sbd;
125745 var C1 = ndb(ose, "PortAlignment", 249, CI, Wbd, Vbd);
125746 var Xbd;
125747 bcb(98, 22, { 3: 1, 35: 1, 22: 1, 98: 1 }, gcd);
125748 var Zbd, $bd, _bd, acd, bcd, ccd;
125749 var D1 = ndb(ose, "PortConstraints", 98, CI, icd, hcd);
125750 var jcd;
125751 bcb(273, 22, { 3: 1, 35: 1, 22: 1, 273: 1 }, scd);
125752 var lcd, mcd, ncd, ocd, pcd, qcd;
125753 var E1 = ndb(ose, "PortLabelPlacement", 273, CI, wcd, vcd);
125754 var xcd;
125755 bcb(61, 22, { 3: 1, 35: 1, 22: 1, 61: 1 }, Ycd);
125756 var zcd, Acd, Bcd, Ccd, Dcd, Ecd, Fcd, Gcd, Hcd, Icd, Jcd, Kcd, Lcd, Mcd, Ncd, Ocd, Pcd, Qcd, Rcd, Scd, Tcd;
125757 var F1 = ndb(ose, "PortSide", 61, CI, _cd, $cd);
125758 var bdd;
125759 bcb(981, 1, ale, kdd);
125760 _2.Qe = function ldd(a) {
125761 jdd(a);
125762 };
125763 var ddd, edd, fdd, gdd, hdd;
125764 mdb(ose, "RandomLayouterOptions", 981);
125765 bcb(982, 1, {}, mdd);
125766 _2.$e = function ndd() {
125767 var a;
125768 return a = new Mgd(), a;
125769 };
125770 _2._e = function odd(a) {
125771 };
125772 mdb(ose, "RandomLayouterOptions/RandomFactory", 982);
125773 bcb(374, 22, { 3: 1, 35: 1, 22: 1, 374: 1 }, udd);
125774 var pdd, qdd, rdd, sdd;
125775 var I1 = ndb(ose, "SizeConstraint", 374, CI, wdd, vdd);
125776 var xdd;
125777 bcb(259, 22, { 3: 1, 35: 1, 22: 1, 259: 1 }, Jdd);
125778 var zdd, Add, Bdd, Cdd, Ddd, Edd, Fdd, Gdd, Hdd;
125779 var J1 = ndb(ose, "SizeOptions", 259, CI, Ldd, Kdd);
125780 var Mdd;
125781 bcb(370, 1, { 1949: 1 }, Zdd);
125782 _2.b = false;
125783 _2.c = 0;
125784 _2.d = -1;
125785 _2.e = null;
125786 _2.f = null;
125787 _2.g = -1;
125788 _2.j = false;
125789 _2.k = false;
125790 _2.n = false;
125791 _2.o = 0;
125792 _2.q = 0;
125793 _2.r = 0;
125794 mdb(yqe, "BasicProgressMonitor", 370);
125795 bcb(972, 209, Mle, ged);
125796 _2.Ze = function ked(a, b) {
125797 var c2, d, e, f2, g, h, i3, j, k;
125798 Odd(b, "Box layout", 2);
125799 e = Gdb(ED(hkd(a, (X7c(), W7c))));
125800 f2 = BD(hkd(a, T7c), 116);
125801 c2 = Ccb(DD(hkd(a, O7c)));
125802 d = Ccb(DD(hkd(a, P7c)));
125803 switch (BD(hkd(a, M7c), 311).g) {
125804 case 0:
125805 g = (h = new Tkb((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)), mmb(), Okb(h, new med(d)), h);
125806 i3 = rfd(a);
125807 j = ED(hkd(a, L7c));
125808 (j == null || (uCb(j), j) <= 0) && (j = 1.3);
125809 k = ded(g, e, f2, i3.a, i3.b, c2, (uCb(j), j));
125810 Afd(a, k.a, k.b, false, true);
125811 break;
125812 default:
125813 eed(a, e, f2, c2);
125814 }
125815 Qdd(b);
125816 };
125817 mdb(yqe, "BoxLayoutProvider", 972);
125818 bcb(973, 1, Dke, med);
125819 _2.ue = function ned(a, b) {
125820 return led(this, BD(a, 33), BD(b, 33));
125821 };
125822 _2.Fb = function oed(a) {
125823 return this === a;
125824 };
125825 _2.ve = function ped() {
125826 return new tpb(this);
125827 };
125828 _2.a = false;
125829 mdb(yqe, "BoxLayoutProvider/1", 973);
125830 bcb(157, 1, { 157: 1 }, wed, xed);
125831 _2.Ib = function yed() {
125832 return this.c ? _od(this.c) : Fe(this.b);
125833 };
125834 mdb(yqe, "BoxLayoutProvider/Group", 157);
125835 bcb(311, 22, { 3: 1, 35: 1, 22: 1, 311: 1 }, Eed);
125836 var zed, Aed, Bed, Ced;
125837 var O1 = ndb(yqe, "BoxLayoutProvider/PackingMode", 311, CI, Ged, Fed);
125838 var Hed;
125839 bcb(974, 1, Dke, Jed);
125840 _2.ue = function Ked(a, b) {
125841 return hed(BD(a, 157), BD(b, 157));
125842 };
125843 _2.Fb = function Led(a) {
125844 return this === a;
125845 };
125846 _2.ve = function Med() {
125847 return new tpb(this);
125848 };
125849 mdb(yqe, "BoxLayoutProvider/lambda$0$Type", 974);
125850 bcb(975, 1, Dke, Ned);
125851 _2.ue = function Oed(a, b) {
125852 return ied(BD(a, 157), BD(b, 157));
125853 };
125854 _2.Fb = function Ped(a) {
125855 return this === a;
125856 };
125857 _2.ve = function Qed() {
125858 return new tpb(this);
125859 };
125860 mdb(yqe, "BoxLayoutProvider/lambda$1$Type", 975);
125861 bcb(976, 1, Dke, Red);
125862 _2.ue = function Sed(a, b) {
125863 return jed(BD(a, 157), BD(b, 157));
125864 };
125865 _2.Fb = function Ted(a) {
125866 return this === a;
125867 };
125868 _2.ve = function Ued() {
125869 return new tpb(this);
125870 };
125871 mdb(yqe, "BoxLayoutProvider/lambda$2$Type", 976);
125872 bcb(1365, 1, { 831: 1 }, Ved);
125873 _2.qg = function Wed(a, b) {
125874 return Vyc(), !JD(b, 160) || h2c((Y1c(), BD(a, 160)), b);
125875 };
125876 mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$0$Type", 1365);
125877 bcb(1366, 1, qie, Xed);
125878 _2.td = function Yed(a) {
125879 Yyc(this.a, BD(a, 146));
125880 };
125881 mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$1$Type", 1366);
125882 bcb(1367, 1, qie, Zed);
125883 _2.td = function $ed(a) {
125884 BD(a, 94);
125885 Vyc();
125886 };
125887 mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$2$Type", 1367);
125888 bcb(1371, 1, qie, _ed);
125889 _2.td = function afd(a) {
125890 Zyc(this.a, BD(a, 94));
125891 };
125892 mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$3$Type", 1371);
125893 bcb(1369, 1, Oie, bfd);
125894 _2.Mb = function cfd(a) {
125895 return $yc(this.a, this.b, BD(a, 146));
125896 };
125897 mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$4$Type", 1369);
125898 bcb(1368, 1, Oie, dfd);
125899 _2.Mb = function efd(a) {
125900 return azc(this.a, this.b, BD(a, 831));
125901 };
125902 mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$5$Type", 1368);
125903 bcb(1370, 1, qie, ffd);
125904 _2.td = function gfd(a) {
125905 _yc(this.a, this.b, BD(a, 146));
125906 };
125907 mdb(yqe, "ElkSpacings/AbstractSpacingsBuilder/lambda$6$Type", 1370);
125908 bcb(935, 1, {}, Hfd);
125909 _2.Kb = function Ifd(a) {
125910 return Gfd(a);
125911 };
125912 _2.Fb = function Jfd(a) {
125913 return this === a;
125914 };
125915 mdb(yqe, "ElkUtil/lambda$0$Type", 935);
125916 bcb(936, 1, qie, Kfd);
125917 _2.td = function Lfd(a) {
125918 ufd(this.a, this.b, BD(a, 79));
125919 };
125920 _2.a = 0;
125921 _2.b = 0;
125922 mdb(yqe, "ElkUtil/lambda$1$Type", 936);
125923 bcb(937, 1, qie, Mfd);
125924 _2.td = function Nfd(a) {
125925 vfd(this.a, this.b, BD(a, 202));
125926 };
125927 _2.a = 0;
125928 _2.b = 0;
125929 mdb(yqe, "ElkUtil/lambda$2$Type", 937);
125930 bcb(938, 1, qie, Ofd);
125931 _2.td = function Pfd(a) {
125932 wfd(this.a, this.b, BD(a, 137));
125933 };
125934 _2.a = 0;
125935 _2.b = 0;
125936 mdb(yqe, "ElkUtil/lambda$3$Type", 938);
125937 bcb(939, 1, qie, Qfd);
125938 _2.td = function Rfd(a) {
125939 xfd(this.a, BD(a, 469));
125940 };
125941 mdb(yqe, "ElkUtil/lambda$4$Type", 939);
125942 bcb(342, 1, { 35: 1, 342: 1 }, Tfd);
125943 _2.wd = function Ufd(a) {
125944 return Sfd(this, BD(a, 236));
125945 };
125946 _2.Fb = function Vfd(a) {
125947 var b;
125948 if (JD(a, 342)) {
125949 b = BD(a, 342);
125950 return this.a == b.a;
125951 }
125952 return false;
125953 };
125954 _2.Hb = function Wfd() {
125955 return QD(this.a);
125956 };
125957 _2.Ib = function Xfd() {
125958 return this.a + " (exclusive)";
125959 };
125960 _2.a = 0;
125961 mdb(yqe, "ExclusiveBounds/ExclusiveLowerBound", 342);
125962 bcb(1138, 209, Mle, Zfd);
125963 _2.Ze = function $fd(a, b) {
125964 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r, s, t4, u2, v, w2, A, B;
125965 Odd(b, "Fixed Layout", 1);
125966 f2 = BD(hkd(a, (Y9c(), E8c)), 218);
125967 l = 0;
125968 m = 0;
125969 for (s = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); s.e != s.i.gc(); ) {
125970 q = BD(Dyd(s), 33);
125971 B = BD(hkd(q, (Zad(), Yad)), 8);
125972 if (B) {
125973 bld(q, B.a, B.b);
125974 if (BD(hkd(q, Tad), 174).Hc((tdd(), pdd))) {
125975 n = BD(hkd(q, Vad), 8);
125976 n.a > 0 && n.b > 0 && Afd(q, n.a, n.b, true, true);
125977 }
125978 }
125979 l = $wnd.Math.max(l, q.i + q.g);
125980 m = $wnd.Math.max(m, q.j + q.f);
125981 for (j = new Fyd((!q.n && (q.n = new cUd(D2, q, 1, 7)), q.n)); j.e != j.i.gc(); ) {
125982 h = BD(Dyd(j), 137);
125983 B = BD(hkd(h, Yad), 8);
125984 !!B && bld(h, B.a, B.b);
125985 l = $wnd.Math.max(l, q.i + h.i + h.g);
125986 m = $wnd.Math.max(m, q.j + h.j + h.f);
125987 }
125988 for (v = new Fyd((!q.c && (q.c = new cUd(F2, q, 9, 9)), q.c)); v.e != v.i.gc(); ) {
125989 u2 = BD(Dyd(v), 118);
125990 B = BD(hkd(u2, Yad), 8);
125991 !!B && bld(u2, B.a, B.b);
125992 w2 = q.i + u2.i;
125993 A = q.j + u2.j;
125994 l = $wnd.Math.max(l, w2 + u2.g);
125995 m = $wnd.Math.max(m, A + u2.f);
125996 for (i3 = new Fyd((!u2.n && (u2.n = new cUd(D2, u2, 1, 7)), u2.n)); i3.e != i3.i.gc(); ) {
125997 h = BD(Dyd(i3), 137);
125998 B = BD(hkd(h, Yad), 8);
125999 !!B && bld(h, B.a, B.b);
126000 l = $wnd.Math.max(l, w2 + h.i + h.g);
126001 m = $wnd.Math.max(m, A + h.j + h.f);
126002 }
126003 }
126004 for (e = new Sr(ur(_sd(q).a.Kc(), new Sq())); Qr(e); ) {
126005 c2 = BD(Rr(e), 79);
126006 k = Yfd(c2);
126007 l = $wnd.Math.max(l, k.a);
126008 m = $wnd.Math.max(m, k.b);
126009 }
126010 for (d = new Sr(ur($sd(q).a.Kc(), new Sq())); Qr(d); ) {
126011 c2 = BD(Rr(d), 79);
126012 if (Xod(jtd(c2)) != a) {
126013 k = Yfd(c2);
126014 l = $wnd.Math.max(l, k.a);
126015 m = $wnd.Math.max(m, k.b);
126016 }
126017 }
126018 }
126019 if (f2 == (Aad(), wad)) {
126020 for (r = new Fyd((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a)); r.e != r.i.gc(); ) {
126021 q = BD(Dyd(r), 33);
126022 for (d = new Sr(ur(_sd(q).a.Kc(), new Sq())); Qr(d); ) {
126023 c2 = BD(Rr(d), 79);
126024 g = pfd(c2);
126025 g.b == 0 ? jkd(c2, Q8c, null) : jkd(c2, Q8c, g);
126026 }
126027 }
126028 }
126029 if (!Ccb(DD(hkd(a, (Zad(), Uad))))) {
126030 t4 = BD(hkd(a, Wad), 116);
126031 p = l + t4.b + t4.c;
126032 o2 = m + t4.d + t4.a;
126033 Afd(a, p, o2, true, true);
126034 }
126035 Qdd(b);
126036 };
126037 mdb(yqe, "FixedLayoutProvider", 1138);
126038 bcb(373, 134, { 3: 1, 414: 1, 373: 1, 94: 1, 134: 1 }, _fd, agd);
126039 _2.Jf = function dgd(b) {
126040 var c2, d, e, f2, g, h, i3, j, k;
126041 if (!b) {
126042 return;
126043 }
126044 try {
126045 j = mfb(b, ";,;");
126046 for (g = j, h = 0, i3 = g.length; h < i3; ++h) {
126047 f2 = g[h];
126048 d = mfb(f2, "\\:");
126049 e = k4c(n4c(), d[0]);
126050 if (!e) {
126051 throw vbb(new Wdb("Invalid option id: " + d[0]));
126052 }
126053 k = o5c(e, d[1]);
126054 if (k == null) {
126055 throw vbb(new Wdb("Invalid option value: " + d[1]));
126056 }
126057 k == null ? (!this.q && (this.q = new Lqb()), Thb(this.q, e)) : (!this.q && (this.q = new Lqb()), Rhb(this.q, e, k));
126058 }
126059 } catch (a) {
126060 a = ubb(a);
126061 if (JD(a, 102)) {
126062 c2 = a;
126063 throw vbb(new Xdb(c2));
126064 } else
126065 throw vbb(a);
126066 }
126067 };
126068 _2.Ib = function egd() {
126069 var a;
126070 a = GD(GAb(NAb((!this.q ? (mmb(), mmb(), kmb) : this.q).vc().Oc(), new fgd()), Ayb(new pzb(), new nzb(), new Zyb(), new _yb(), OC(GC(xL, 1), Kie, 132, 0, []))));
126071 return a;
126072 };
126073 var i2 = mdb(yqe, "IndividualSpacings", 373);
126074 bcb(971, 1, {}, fgd);
126075 _2.Kb = function ggd(a) {
126076 return cgd(BD(a, 42));
126077 };
126078 mdb(yqe, "IndividualSpacings/lambda$0$Type", 971);
126079 bcb(709, 1, {}, jgd);
126080 _2.c = 0;
126081 mdb(yqe, "InstancePool", 709);
126082 bcb(1275, 1, {}, kgd);
126083 mdb(yqe, "LoggedGraph", 1275);
126084 bcb(396, 22, { 3: 1, 35: 1, 22: 1, 396: 1 }, qgd);
126085 var lgd, mgd, ngd, ogd;
126086 var k2 = ndb(yqe, "LoggedGraph/Type", 396, CI, sgd, rgd);
126087 var tgd;
126088 bcb(46, 1, { 20: 1, 46: 1 }, vgd);
126089 _2.Jc = function xgd(a) {
126090 reb(this, a);
126091 };
126092 _2.Fb = function wgd(a) {
126093 var b, c2, d;
126094 if (JD(a, 46)) {
126095 c2 = BD(a, 46);
126096 b = this.a == null ? c2.a == null : pb(this.a, c2.a);
126097 d = this.b == null ? c2.b == null : pb(this.b, c2.b);
126098 return b && d;
126099 } else {
126100 return false;
126101 }
126102 };
126103 _2.Hb = function ygd() {
126104 var a, b, c2, d, e, f2;
126105 c2 = this.a == null ? 0 : tb(this.a);
126106 a = c2 & aje;
126107 b = c2 & -65536;
126108 f2 = this.b == null ? 0 : tb(this.b);
126109 d = f2 & aje;
126110 e = f2 & -65536;
126111 return a ^ e >> 16 & aje | b ^ d << 16;
126112 };
126113 _2.Kc = function zgd() {
126114 return new Bgd(this);
126115 };
126116 _2.Ib = function Agd() {
126117 return this.a == null && this.b == null ? "pair(null,null)" : this.a == null ? "pair(null," + fcb(this.b) + ")" : this.b == null ? "pair(" + fcb(this.a) + ",null)" : "pair(" + fcb(this.a) + "," + fcb(this.b) + ")";
126118 };
126119 mdb(yqe, "Pair", 46);
126120 bcb(983, 1, aie, Bgd);
126121 _2.Nb = function Cgd(a) {
126122 Rrb(this, a);
126123 };
126124 _2.Ob = function Dgd() {
126125 return !this.c && (!this.b && this.a.a != null || this.a.b != null);
126126 };
126127 _2.Pb = function Egd() {
126128 if (!this.c && !this.b && this.a.a != null) {
126129 this.b = true;
126130 return this.a.a;
126131 } else if (!this.c && this.a.b != null) {
126132 this.c = true;
126133 return this.a.b;
126134 }
126135 throw vbb(new utb());
126136 };
126137 _2.Qb = function Fgd() {
126138 this.c && this.a.b != null ? this.a.b = null : this.b && this.a.a != null && (this.a.a = null);
126139 throw vbb(new Ydb());
126140 };
126141 _2.b = false;
126142 _2.c = false;
126143 mdb(yqe, "Pair/1", 983);
126144 bcb(448, 1, { 448: 1 }, Ggd);
126145 _2.Fb = function Hgd(a) {
126146 return wtb(this.a, BD(a, 448).a) && wtb(this.c, BD(a, 448).c) && wtb(this.d, BD(a, 448).d) && wtb(this.b, BD(a, 448).b);
126147 };
126148 _2.Hb = function Igd() {
126149 return Hlb(OC(GC(SI, 1), Uhe, 1, 5, [this.a, this.c, this.d, this.b]));
126150 };
126151 _2.Ib = function Jgd() {
126152 return "(" + this.a + She + this.c + She + this.d + She + this.b + ")";
126153 };
126154 mdb(yqe, "Quadruple", 448);
126155 bcb(1126, 209, Mle, Mgd);
126156 _2.Ze = function Ngd(a, b) {
126157 var c2, d, e, f2, g;
126158 Odd(b, "Random Layout", 1);
126159 if ((!a.a && (a.a = new cUd(E2, a, 10, 11)), a.a).i == 0) {
126160 Qdd(b);
126161 return;
126162 }
126163 f2 = BD(hkd(a, (idd(), gdd)), 19);
126164 !!f2 && f2.a != 0 ? e = new Hub(f2.a) : e = new Gub();
126165 c2 = Gdb(ED(hkd(a, ddd)));
126166 g = Gdb(ED(hkd(a, hdd)));
126167 d = BD(hkd(a, edd), 116);
126168 Lgd(a, e, c2, g, d);
126169 Qdd(b);
126170 };
126171 mdb(yqe, "RandomLayoutProvider", 1126);
126172 var Ogd;
126173 bcb(553, 1, {});
126174 _2.qf = function Sgd() {
126175 return new f7c(this.f.i, this.f.j);
126176 };
126177 _2.We = function Tgd(a) {
126178 if (Jsd(a, (Y9c(), s9c))) {
126179 return hkd(this.f, Qgd);
126180 }
126181 return hkd(this.f, a);
126182 };
126183 _2.rf = function Ugd() {
126184 return new f7c(this.f.g, this.f.f);
126185 };
126186 _2.sf = function Vgd() {
126187 return this.g;
126188 };
126189 _2.Xe = function Wgd(a) {
126190 return ikd(this.f, a);
126191 };
126192 _2.tf = function Xgd(a) {
126193 dld(this.f, a.a);
126194 eld(this.f, a.b);
126195 };
126196 _2.uf = function Ygd(a) {
126197 cld(this.f, a.a);
126198 ald(this.f, a.b);
126199 };
126200 _2.vf = function Zgd(a) {
126201 this.g = a;
126202 };
126203 _2.g = 0;
126204 var Qgd;
126205 mdb(Use, "ElkGraphAdapters/AbstractElkGraphElementAdapter", 553);
126206 bcb(554, 1, { 839: 1 }, $gd);
126207 _2.wf = function _gd() {
126208 var a, b;
126209 if (!this.b) {
126210 this.b = Qu(Kkd(this.a).i);
126211 for (b = new Fyd(Kkd(this.a)); b.e != b.i.gc(); ) {
126212 a = BD(Dyd(b), 137);
126213 Ekb(this.b, new dhd(a));
126214 }
126215 }
126216 return this.b;
126217 };
126218 _2.b = null;
126219 mdb(Use, "ElkGraphAdapters/ElkEdgeAdapter", 554);
126220 bcb(301, 553, {}, bhd);
126221 _2.xf = function chd() {
126222 return ahd(this);
126223 };
126224 _2.a = null;
126225 mdb(Use, "ElkGraphAdapters/ElkGraphAdapter", 301);
126226 bcb(630, 553, { 181: 1 }, dhd);
126227 mdb(Use, "ElkGraphAdapters/ElkLabelAdapter", 630);
126228 bcb(629, 553, { 680: 1 }, hhd);
126229 _2.wf = function khd() {
126230 return ehd(this);
126231 };
126232 _2.Af = function lhd() {
126233 var a;
126234 return a = BD(hkd(this.f, (Y9c(), S8c)), 142), !a && (a = new H_b()), a;
126235 };
126236 _2.Cf = function nhd() {
126237 return fhd(this);
126238 };
126239 _2.Ef = function phd(a) {
126240 var b;
126241 b = new K_b(a);
126242 jkd(this.f, (Y9c(), S8c), b);
126243 };
126244 _2.Ff = function qhd(a) {
126245 jkd(this.f, (Y9c(), f9c), new r0b(a));
126246 };
126247 _2.yf = function ihd() {
126248 return this.d;
126249 };
126250 _2.zf = function jhd() {
126251 var a, b;
126252 if (!this.a) {
126253 this.a = new Rkb();
126254 for (b = new Sr(ur($sd(BD(this.f, 33)).a.Kc(), new Sq())); Qr(b); ) {
126255 a = BD(Rr(b), 79);
126256 Ekb(this.a, new $gd(a));
126257 }
126258 }
126259 return this.a;
126260 };
126261 _2.Bf = function mhd() {
126262 var a, b;
126263 if (!this.c) {
126264 this.c = new Rkb();
126265 for (b = new Sr(ur(_sd(BD(this.f, 33)).a.Kc(), new Sq())); Qr(b); ) {
126266 a = BD(Rr(b), 79);
126267 Ekb(this.c, new $gd(a));
126268 }
126269 }
126270 return this.c;
126271 };
126272 _2.Df = function ohd() {
126273 return Vod(BD(this.f, 33)).i != 0 || Ccb(DD(BD(this.f, 33).We((Y9c(), M8c))));
126274 };
126275 _2.Gf = function rhd() {
126276 ghd(this, (Pgd(), Ogd));
126277 };
126278 _2.a = null;
126279 _2.b = null;
126280 _2.c = null;
126281 _2.d = null;
126282 _2.e = null;
126283 mdb(Use, "ElkGraphAdapters/ElkNodeAdapter", 629);
126284 bcb(1266, 553, { 838: 1 }, thd);
126285 _2.wf = function vhd() {
126286 return shd(this);
126287 };
126288 _2.zf = function uhd() {
126289 var a, b;
126290 if (!this.a) {
126291 this.a = Pu(BD(this.f, 118).xg().i);
126292 for (b = new Fyd(BD(this.f, 118).xg()); b.e != b.i.gc(); ) {
126293 a = BD(Dyd(b), 79);
126294 Ekb(this.a, new $gd(a));
126295 }
126296 }
126297 return this.a;
126298 };
126299 _2.Bf = function whd() {
126300 var a, b;
126301 if (!this.c) {
126302 this.c = Pu(BD(this.f, 118).yg().i);
126303 for (b = new Fyd(BD(this.f, 118).yg()); b.e != b.i.gc(); ) {
126304 a = BD(Dyd(b), 79);
126305 Ekb(this.c, new $gd(a));
126306 }
126307 }
126308 return this.c;
126309 };
126310 _2.Hf = function xhd() {
126311 return BD(BD(this.f, 118).We((Y9c(), A9c)), 61);
126312 };
126313 _2.If = function yhd() {
126314 var a, b, c2, d, e, f2, g, h;
126315 d = mpd(BD(this.f, 118));
126316 for (c2 = new Fyd(BD(this.f, 118).yg()); c2.e != c2.i.gc(); ) {
126317 a = BD(Dyd(c2), 79);
126318 for (h = new Fyd((!a.c && (a.c = new y5d(z2, a, 5, 8)), a.c)); h.e != h.i.gc(); ) {
126319 g = BD(Dyd(h), 82);
126320 if (ntd(atd(g), d)) {
126321 return true;
126322 } else if (atd(g) == d && Ccb(DD(hkd(a, (Y9c(), N8c))))) {
126323 return true;
126324 }
126325 }
126326 }
126327 for (b = new Fyd(BD(this.f, 118).xg()); b.e != b.i.gc(); ) {
126328 a = BD(Dyd(b), 79);
126329 for (f2 = new Fyd((!a.b && (a.b = new y5d(z2, a, 4, 7)), a.b)); f2.e != f2.i.gc(); ) {
126330 e = BD(Dyd(f2), 82);
126331 if (ntd(atd(e), d)) {
126332 return true;
126333 }
126334 }
126335 }
126336 return false;
126337 };
126338 _2.a = null;
126339 _2.b = null;
126340 _2.c = null;
126341 mdb(Use, "ElkGraphAdapters/ElkPortAdapter", 1266);
126342 bcb(1267, 1, Dke, Ahd);
126343 _2.ue = function Bhd(a, b) {
126344 return zhd(BD(a, 118), BD(b, 118));
126345 };
126346 _2.Fb = function Chd(a) {
126347 return this === a;
126348 };
126349 _2.ve = function Dhd() {
126350 return new tpb(this);
126351 };
126352 mdb(Use, "ElkGraphAdapters/PortComparator", 1267);
126353 var m5 = odb(Vse, "EObject");
126354 var x2 = odb(Wse, Xse);
126355 var y2 = odb(Wse, Yse);
126356 var C2 = odb(Wse, Zse);
126357 var G2 = odb(Wse, "ElkShape");
126358 var z2 = odb(Wse, $se);
126359 var B2 = odb(Wse, _se);
126360 var A2 = odb(Wse, ate);
126361 var k5 = odb(Vse, bte);
126362 var i5 = odb(Vse, "EFactory");
126363 var Ehd;
126364 var l5 = odb(Vse, cte);
126365 var o5 = odb(Vse, "EPackage");
126366 var Ghd;
126367 var Ihd, Jhd, Khd, Lhd, Mhd, Nhd, Ohd, Phd, Qhd, Rhd, Shd;
126368 var D2 = odb(Wse, dte);
126369 var E2 = odb(Wse, ete);
126370 var F2 = odb(Wse, fte);
126371 bcb(90, 1, gte);
126372 _2.Jg = function Vhd() {
126373 this.Kg();
126374 return null;
126375 };
126376 _2.Kg = function Whd() {
126377 return null;
126378 };
126379 _2.Lg = function Xhd() {
126380 return this.Kg(), false;
126381 };
126382 _2.Mg = function Yhd() {
126383 return false;
126384 };
126385 _2.Ng = function Zhd(a) {
126386 Uhd(this, a);
126387 };
126388 mdb(hte, "BasicNotifierImpl", 90);
126389 bcb(97, 90, pte);
126390 _2.nh = function fjd() {
126391 return oid(this);
126392 };
126393 _2.Og = function Fid(a, b) {
126394 return a;
126395 };
126396 _2.Pg = function Gid() {
126397 throw vbb(new bgb());
126398 };
126399 _2.Qg = function Hid(a) {
126400 var b;
126401 return b = zUd(BD(XKd(this.Tg(), this.Vg()), 18)), this.eh().ih(this, b.n, b.f, a);
126402 };
126403 _2.Rg = function Iid(a, b) {
126404 throw vbb(new bgb());
126405 };
126406 _2.Sg = function Jid(a, b, c2) {
126407 return _hd(this, a, b, c2);
126408 };
126409 _2.Tg = function Kid() {
126410 var a;
126411 if (this.Pg()) {
126412 a = this.Pg().ck();
126413 if (a) {
126414 return a;
126415 }
126416 }
126417 return this.zh();
126418 };
126419 _2.Ug = function Lid() {
126420 return aid(this);
126421 };
126422 _2.Vg = function Mid() {
126423 throw vbb(new bgb());
126424 };
126425 _2.Wg = function Oid() {
126426 var a, b;
126427 b = this.ph().dk();
126428 !b && this.Pg().ik(b = (nRd(), a = pNd(TKd(this.Tg())), a == null ? mRd : new qRd(this, a)));
126429 return b;
126430 };
126431 _2.Xg = function Qid(a, b) {
126432 return a;
126433 };
126434 _2.Yg = function Rid(a) {
126435 var b;
126436 b = a.Gj();
126437 return !b ? bLd(this.Tg(), a) : a.aj();
126438 };
126439 _2.Zg = function Sid() {
126440 var a;
126441 a = this.Pg();
126442 return !a ? null : a.fk();
126443 };
126444 _2.$g = function Tid() {
126445 return !this.Pg() ? null : this.Pg().ck();
126446 };
126447 _2._g = function Uid(a, b, c2) {
126448 return fid(this, a, b, c2);
126449 };
126450 _2.ah = function Vid(a) {
126451 return gid(this, a);
126452 };
126453 _2.bh = function Wid(a, b) {
126454 return hid(this, a, b);
126455 };
126456 _2.dh = function Xid() {
126457 var a;
126458 a = this.Pg();
126459 return !!a && a.gk();
126460 };
126461 _2.eh = function Yid() {
126462 throw vbb(new bgb());
126463 };
126464 _2.fh = function Zid() {
126465 return jid(this);
126466 };
126467 _2.gh = function $id(a, b, c2, d) {
126468 return kid(this, a, b, d);
126469 };
126470 _2.hh = function _id(a, b, c2) {
126471 var d;
126472 return d = BD(XKd(this.Tg(), b), 66), d.Nj().Qj(this, this.yh(), b - this.Ah(), a, c2);
126473 };
126474 _2.ih = function ajd(a, b, c2, d) {
126475 return lid(this, a, b, d);
126476 };
126477 _2.jh = function bjd(a, b, c2) {
126478 var d;
126479 return d = BD(XKd(this.Tg(), b), 66), d.Nj().Rj(this, this.yh(), b - this.Ah(), a, c2);
126480 };
126481 _2.kh = function cjd() {
126482 return !!this.Pg() && !!this.Pg().ek();
126483 };
126484 _2.lh = function djd(a) {
126485 return mid(this, a);
126486 };
126487 _2.mh = function ejd(a) {
126488 return nid(this, a);
126489 };
126490 _2.oh = function gjd(a) {
126491 return rid(this, a);
126492 };
126493 _2.ph = function hjd() {
126494 throw vbb(new bgb());
126495 };
126496 _2.qh = function ijd() {
126497 return !this.Pg() ? null : this.Pg().ek();
126498 };
126499 _2.rh = function jjd() {
126500 return jid(this);
126501 };
126502 _2.sh = function kjd(a, b) {
126503 yid(this, a, b);
126504 };
126505 _2.th = function ljd(a) {
126506 this.ph().hk(a);
126507 };
126508 _2.uh = function mjd(a) {
126509 this.ph().kk(a);
126510 };
126511 _2.vh = function njd(a) {
126512 this.ph().jk(a);
126513 };
126514 _2.wh = function ojd(a, b) {
126515 var c2, d, e, f2;
126516 f2 = this.Zg();
126517 if (!!f2 && !!a) {
126518 b = Txd(f2.Vk(), this, b);
126519 f2.Zk(this);
126520 }
126521 d = this.eh();
126522 if (d) {
126523 if ((Nid(this, this.eh(), this.Vg()).Bb & Tje) != 0) {
126524 e = d.fh();
126525 !!e && (!a ? e.Yk(this) : !f2 && e.Zk(this));
126526 } else {
126527 b = (c2 = this.Vg(), c2 >= 0 ? this.Qg(b) : this.eh().ih(this, -1 - c2, null, b));
126528 b = this.Sg(null, -1, b);
126529 }
126530 }
126531 this.uh(a);
126532 return b;
126533 };
126534 _2.xh = function pjd(a) {
126535 var b, c2, d, e, f2, g, h, i3;
126536 c2 = this.Tg();
126537 f2 = bLd(c2, a);
126538 b = this.Ah();
126539 if (f2 >= b) {
126540 return BD(a, 66).Nj().Uj(this, this.yh(), f2 - b);
126541 } else if (f2 <= -1) {
126542 g = e1d((O6d(), M6d), c2, a);
126543 if (g) {
126544 Q6d();
126545 BD(g, 66).Oj() || (g = _1d(q1d(M6d, g)));
126546 e = (d = this.Yg(g), BD(d >= 0 ? this._g(d, true, true) : sid(this, g, true), 153));
126547 i3 = g.Zj();
126548 if (i3 > 1 || i3 == -1) {
126549 return BD(BD(e, 215).hl(a, false), 76);
126550 }
126551 } else {
126552 throw vbb(new Wdb(ite + a.ne() + lte));
126553 }
126554 } else if (a.$j()) {
126555 return d = this.Yg(a), BD(d >= 0 ? this._g(d, false, true) : sid(this, a, false), 76);
126556 }
126557 h = new nGd(this, a);
126558 return h;
126559 };
126560 _2.yh = function qjd() {
126561 return Aid(this);
126562 };
126563 _2.zh = function rjd() {
126564 return (NFd(), MFd).S;
126565 };
126566 _2.Ah = function sjd() {
126567 return aLd(this.zh());
126568 };
126569 _2.Bh = function tjd(a) {
126570 Cid(this, a);
126571 };
126572 _2.Ib = function ujd() {
126573 return Eid(this);
126574 };
126575 mdb(qte, "BasicEObjectImpl", 97);
126576 var zFd;
126577 bcb(114, 97, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1 });
126578 _2.Ch = function Djd(a) {
126579 var b;
126580 b = xjd(this);
126581 return b[a];
126582 };
126583 _2.Dh = function Ejd(a, b) {
126584 var c2;
126585 c2 = xjd(this);
126586 NC(c2, a, b);
126587 };
126588 _2.Eh = function Fjd(a) {
126589 var b;
126590 b = xjd(this);
126591 NC(b, a, null);
126592 };
126593 _2.Jg = function Gjd() {
126594 return BD(Ajd(this, 4), 126);
126595 };
126596 _2.Kg = function Hjd() {
126597 throw vbb(new bgb());
126598 };
126599 _2.Lg = function Ijd() {
126600 return (this.Db & 4) != 0;
126601 };
126602 _2.Pg = function Jjd() {
126603 throw vbb(new bgb());
126604 };
126605 _2.Fh = function Kjd(a) {
126606 Cjd(this, 2, a);
126607 };
126608 _2.Rg = function Ljd(a, b) {
126609 this.Db = b << 16 | this.Db & 255;
126610 this.Fh(a);
126611 };
126612 _2.Tg = function Mjd() {
126613 return wjd(this);
126614 };
126615 _2.Vg = function Njd() {
126616 return this.Db >> 16;
126617 };
126618 _2.Wg = function Ojd() {
126619 var a, b;
126620 return nRd(), b = pNd(TKd((a = BD(Ajd(this, 16), 26), !a ? this.zh() : a))), b == null ? mRd : new qRd(this, b);
126621 };
126622 _2.Mg = function Pjd() {
126623 return (this.Db & 1) == 0;
126624 };
126625 _2.Zg = function Qjd() {
126626 return BD(Ajd(this, 128), 1935);
126627 };
126628 _2.$g = function Rjd() {
126629 return BD(Ajd(this, 16), 26);
126630 };
126631 _2.dh = function Sjd() {
126632 return (this.Db & 32) != 0;
126633 };
126634 _2.eh = function Tjd() {
126635 return BD(Ajd(this, 2), 49);
126636 };
126637 _2.kh = function Ujd() {
126638 return (this.Db & 64) != 0;
126639 };
126640 _2.ph = function Vjd() {
126641 throw vbb(new bgb());
126642 };
126643 _2.qh = function Wjd() {
126644 return BD(Ajd(this, 64), 281);
126645 };
126646 _2.th = function Xjd(a) {
126647 Cjd(this, 16, a);
126648 };
126649 _2.uh = function Yjd(a) {
126650 Cjd(this, 128, a);
126651 };
126652 _2.vh = function Zjd(a) {
126653 Cjd(this, 64, a);
126654 };
126655 _2.yh = function $jd() {
126656 return yjd(this);
126657 };
126658 _2.Db = 0;
126659 mdb(qte, "MinimalEObjectImpl", 114);
126660 bcb(115, 114, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
126661 _2.Fh = function _jd(a) {
126662 this.Cb = a;
126663 };
126664 _2.eh = function akd() {
126665 return this.Cb;
126666 };
126667 mdb(qte, "MinimalEObjectImpl/Container", 115);
126668 bcb(1985, 115, { 105: 1, 413: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
126669 _2._g = function kkd(a, b, c2) {
126670 return bkd(this, a, b, c2);
126671 };
126672 _2.jh = function lkd(a, b, c2) {
126673 return ckd(this, a, b, c2);
126674 };
126675 _2.lh = function mkd(a) {
126676 return dkd(this, a);
126677 };
126678 _2.sh = function nkd(a, b) {
126679 ekd(this, a, b);
126680 };
126681 _2.zh = function okd() {
126682 return Thd(), Shd;
126683 };
126684 _2.Bh = function pkd(a) {
126685 fkd(this, a);
126686 };
126687 _2.Ve = function qkd() {
126688 return gkd(this);
126689 };
126690 _2.We = function rkd(a) {
126691 return hkd(this, a);
126692 };
126693 _2.Xe = function skd(a) {
126694 return ikd(this, a);
126695 };
126696 _2.Ye = function tkd(a, b) {
126697 return jkd(this, a, b);
126698 };
126699 mdb(rte, "EMapPropertyHolderImpl", 1985);
126700 bcb(567, 115, { 105: 1, 469: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, xkd);
126701 _2._g = function ykd(a, b, c2) {
126702 switch (a) {
126703 case 0:
126704 return this.a;
126705 case 1:
126706 return this.b;
126707 }
126708 return fid(this, a, b, c2);
126709 };
126710 _2.lh = function zkd(a) {
126711 switch (a) {
126712 case 0:
126713 return this.a != 0;
126714 case 1:
126715 return this.b != 0;
126716 }
126717 return mid(this, a);
126718 };
126719 _2.sh = function Akd(a, b) {
126720 switch (a) {
126721 case 0:
126722 vkd(this, Edb(ED(b)));
126723 return;
126724 case 1:
126725 wkd(this, Edb(ED(b)));
126726 return;
126727 }
126728 yid(this, a, b);
126729 };
126730 _2.zh = function Bkd() {
126731 return Thd(), Ihd;
126732 };
126733 _2.Bh = function Ckd(a) {
126734 switch (a) {
126735 case 0:
126736 vkd(this, 0);
126737 return;
126738 case 1:
126739 wkd(this, 0);
126740 return;
126741 }
126742 Cid(this, a);
126743 };
126744 _2.Ib = function Dkd() {
126745 var a;
126746 if ((this.Db & 64) != 0)
126747 return Eid(this);
126748 a = new Jfb(Eid(this));
126749 a.a += " (x: ";
126750 Bfb(a, this.a);
126751 a.a += ", y: ";
126752 Bfb(a, this.b);
126753 a.a += ")";
126754 return a.a;
126755 };
126756 _2.a = 0;
126757 _2.b = 0;
126758 mdb(rte, "ElkBendPointImpl", 567);
126759 bcb(723, 1985, { 105: 1, 413: 1, 160: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
126760 _2._g = function Nkd(a, b, c2) {
126761 return Ekd(this, a, b, c2);
126762 };
126763 _2.hh = function Okd(a, b, c2) {
126764 return Fkd(this, a, b, c2);
126765 };
126766 _2.jh = function Pkd(a, b, c2) {
126767 return Gkd(this, a, b, c2);
126768 };
126769 _2.lh = function Qkd(a) {
126770 return Hkd(this, a);
126771 };
126772 _2.sh = function Rkd(a, b) {
126773 Ikd(this, a, b);
126774 };
126775 _2.zh = function Skd() {
126776 return Thd(), Mhd;
126777 };
126778 _2.Bh = function Tkd(a) {
126779 Jkd(this, a);
126780 };
126781 _2.zg = function Ukd() {
126782 return this.k;
126783 };
126784 _2.Ag = function Vkd() {
126785 return Kkd(this);
126786 };
126787 _2.Ib = function Wkd() {
126788 return Mkd(this);
126789 };
126790 _2.k = null;
126791 mdb(rte, "ElkGraphElementImpl", 723);
126792 bcb(724, 723, { 105: 1, 413: 1, 160: 1, 470: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
126793 _2._g = function gld(a, b, c2) {
126794 return Xkd(this, a, b, c2);
126795 };
126796 _2.lh = function hld(a) {
126797 return Ykd(this, a);
126798 };
126799 _2.sh = function ild(a, b) {
126800 Zkd(this, a, b);
126801 };
126802 _2.zh = function jld() {
126803 return Thd(), Rhd;
126804 };
126805 _2.Bh = function kld(a) {
126806 $kd(this, a);
126807 };
126808 _2.Bg = function lld() {
126809 return this.f;
126810 };
126811 _2.Cg = function mld() {
126812 return this.g;
126813 };
126814 _2.Dg = function nld() {
126815 return this.i;
126816 };
126817 _2.Eg = function old() {
126818 return this.j;
126819 };
126820 _2.Fg = function pld(a, b) {
126821 _kd(this, a, b);
126822 };
126823 _2.Gg = function qld(a, b) {
126824 bld(this, a, b);
126825 };
126826 _2.Hg = function rld(a) {
126827 dld(this, a);
126828 };
126829 _2.Ig = function sld(a) {
126830 eld(this, a);
126831 };
126832 _2.Ib = function tld() {
126833 return fld(this);
126834 };
126835 _2.f = 0;
126836 _2.g = 0;
126837 _2.i = 0;
126838 _2.j = 0;
126839 mdb(rte, "ElkShapeImpl", 724);
126840 bcb(725, 724, { 105: 1, 413: 1, 82: 1, 160: 1, 470: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 });
126841 _2._g = function Bld(a, b, c2) {
126842 return uld(this, a, b, c2);
126843 };
126844 _2.hh = function Cld(a, b, c2) {
126845 return vld(this, a, b, c2);
126846 };
126847 _2.jh = function Dld(a, b, c2) {
126848 return wld(this, a, b, c2);
126849 };
126850 _2.lh = function Eld(a) {
126851 return xld(this, a);
126852 };
126853 _2.sh = function Fld(a, b) {
126854 yld(this, a, b);
126855 };
126856 _2.zh = function Gld() {
126857 return Thd(), Jhd;
126858 };
126859 _2.Bh = function Hld(a) {
126860 zld(this, a);
126861 };
126862 _2.xg = function Ild() {
126863 return !this.d && (this.d = new y5d(B2, this, 8, 5)), this.d;
126864 };
126865 _2.yg = function Jld() {
126866 return !this.e && (this.e = new y5d(B2, this, 7, 4)), this.e;
126867 };
126868 mdb(rte, "ElkConnectableShapeImpl", 725);
126869 bcb(352, 723, { 105: 1, 413: 1, 79: 1, 160: 1, 352: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, Tld);
126870 _2.Qg = function Uld(a) {
126871 return Lld(this, a);
126872 };
126873 _2._g = function Vld(a, b, c2) {
126874 switch (a) {
126875 case 3:
126876 return Mld(this);
126877 case 4:
126878 return !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b;
126879 case 5:
126880 return !this.c && (this.c = new y5d(z2, this, 5, 8)), this.c;
126881 case 6:
126882 return !this.a && (this.a = new cUd(A2, this, 6, 6)), this.a;
126883 case 7:
126884 return Bcb(), !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b.i <= 1 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i <= 1) ? false : true;
126885 case 8:
126886 return Bcb(), Pld(this) ? true : false;
126887 case 9:
126888 return Bcb(), Qld(this) ? true : false;
126889 case 10:
126890 return Bcb(), !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b.i != 0 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i != 0) ? true : false;
126891 }
126892 return Ekd(this, a, b, c2);
126893 };
126894 _2.hh = function Wld(a, b, c2) {
126895 var d;
126896 switch (b) {
126897 case 3:
126898 !!this.Cb && (c2 = (d = this.Db >> 16, d >= 0 ? Lld(this, c2) : this.Cb.ih(this, -1 - d, null, c2)));
126899 return Kld(this, BD(a, 33), c2);
126900 case 4:
126901 return !this.b && (this.b = new y5d(z2, this, 4, 7)), Sxd(this.b, a, c2);
126902 case 5:
126903 return !this.c && (this.c = new y5d(z2, this, 5, 8)), Sxd(this.c, a, c2);
126904 case 6:
126905 return !this.a && (this.a = new cUd(A2, this, 6, 6)), Sxd(this.a, a, c2);
126906 }
126907 return Fkd(this, a, b, c2);
126908 };
126909 _2.jh = function Xld(a, b, c2) {
126910 switch (b) {
126911 case 3:
126912 return Kld(this, null, c2);
126913 case 4:
126914 return !this.b && (this.b = new y5d(z2, this, 4, 7)), Txd(this.b, a, c2);
126915 case 5:
126916 return !this.c && (this.c = new y5d(z2, this, 5, 8)), Txd(this.c, a, c2);
126917 case 6:
126918 return !this.a && (this.a = new cUd(A2, this, 6, 6)), Txd(this.a, a, c2);
126919 }
126920 return Gkd(this, a, b, c2);
126921 };
126922 _2.lh = function Yld(a) {
126923 switch (a) {
126924 case 3:
126925 return !!Mld(this);
126926 case 4:
126927 return !!this.b && this.b.i != 0;
126928 case 5:
126929 return !!this.c && this.c.i != 0;
126930 case 6:
126931 return !!this.a && this.a.i != 0;
126932 case 7:
126933 return !this.b && (this.b = new y5d(z2, this, 4, 7)), !(this.b.i <= 1 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i <= 1));
126934 case 8:
126935 return Pld(this);
126936 case 9:
126937 return Qld(this);
126938 case 10:
126939 return !this.b && (this.b = new y5d(z2, this, 4, 7)), this.b.i != 0 && (!this.c && (this.c = new y5d(z2, this, 5, 8)), this.c.i != 0);
126940 }
126941 return Hkd(this, a);
126942 };
126943 _2.sh = function Zld(a, b) {
126944 switch (a) {
126945 case 3:
126946 Rld(this, BD(b, 33));
126947 return;
126948 case 4:
126949 !this.b && (this.b = new y5d(z2, this, 4, 7));
126950 Uxd(this.b);
126951 !this.b && (this.b = new y5d(z2, this, 4, 7));
126952 ytd(this.b, BD(b, 14));
126953 return;
126954 case 5:
126955 !this.c && (this.c = new y5d(z2, this, 5, 8));
126956 Uxd(this.c);
126957 !this.c && (this.c = new y5d(z2, this, 5, 8));
126958 ytd(this.c, BD(b, 14));
126959 return;
126960 case 6:
126961 !this.a && (this.a = new cUd(A2, this, 6, 6));
126962 Uxd(this.a);
126963 !this.a && (this.a = new cUd(A2, this, 6, 6));
126964 ytd(this.a, BD(b, 14));
126965 return;
126966 }
126967 Ikd(this, a, b);
126968 };
126969 _2.zh = function $ld() {
126970 return Thd(), Khd;
126971 };
126972 _2.Bh = function _ld(a) {
126973 switch (a) {
126974 case 3:
126975 Rld(this, null);
126976 return;
126977 case 4:
126978 !this.b && (this.b = new y5d(z2, this, 4, 7));
126979 Uxd(this.b);
126980 return;
126981 case 5:
126982 !this.c && (this.c = new y5d(z2, this, 5, 8));
126983 Uxd(this.c);
126984 return;
126985 case 6:
126986 !this.a && (this.a = new cUd(A2, this, 6, 6));
126987 Uxd(this.a);
126988 return;
126989 }
126990 Jkd(this, a);
126991 };
126992 _2.Ib = function amd() {
126993 return Sld(this);
126994 };
126995 mdb(rte, "ElkEdgeImpl", 352);
126996 bcb(439, 1985, { 105: 1, 413: 1, 202: 1, 439: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, rmd);
126997 _2.Qg = function smd(a) {
126998 return cmd(this, a);
126999 };
127000 _2._g = function tmd(a, b, c2) {
127001 switch (a) {
127002 case 1:
127003 return this.j;
127004 case 2:
127005 return this.k;
127006 case 3:
127007 return this.b;
127008 case 4:
127009 return this.c;
127010 case 5:
127011 return !this.a && (this.a = new xMd(y2, this, 5)), this.a;
127012 case 6:
127013 return fmd(this);
127014 case 7:
127015 if (b)
127016 return emd(this);
127017 return this.i;
127018 case 8:
127019 if (b)
127020 return dmd(this);
127021 return this.f;
127022 case 9:
127023 return !this.g && (this.g = new y5d(A2, this, 9, 10)), this.g;
127024 case 10:
127025 return !this.e && (this.e = new y5d(A2, this, 10, 9)), this.e;
127026 case 11:
127027 return this.d;
127028 }
127029 return bkd(this, a, b, c2);
127030 };
127031 _2.hh = function umd(a, b, c2) {
127032 var d, e, f2;
127033 switch (b) {
127034 case 6:
127035 !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? cmd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
127036 return bmd(this, BD(a, 79), c2);
127037 case 9:
127038 return !this.g && (this.g = new y5d(A2, this, 9, 10)), Sxd(this.g, a, c2);
127039 case 10:
127040 return !this.e && (this.e = new y5d(A2, this, 10, 9)), Sxd(this.e, a, c2);
127041 }
127042 return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (Thd(), Lhd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((Thd(), Lhd)), a, c2);
127043 };
127044 _2.jh = function vmd(a, b, c2) {
127045 switch (b) {
127046 case 5:
127047 return !this.a && (this.a = new xMd(y2, this, 5)), Txd(this.a, a, c2);
127048 case 6:
127049 return bmd(this, null, c2);
127050 case 9:
127051 return !this.g && (this.g = new y5d(A2, this, 9, 10)), Txd(this.g, a, c2);
127052 case 10:
127053 return !this.e && (this.e = new y5d(A2, this, 10, 9)), Txd(this.e, a, c2);
127054 }
127055 return ckd(this, a, b, c2);
127056 };
127057 _2.lh = function wmd(a) {
127058 switch (a) {
127059 case 1:
127060 return this.j != 0;
127061 case 2:
127062 return this.k != 0;
127063 case 3:
127064 return this.b != 0;
127065 case 4:
127066 return this.c != 0;
127067 case 5:
127068 return !!this.a && this.a.i != 0;
127069 case 6:
127070 return !!fmd(this);
127071 case 7:
127072 return !!this.i;
127073 case 8:
127074 return !!this.f;
127075 case 9:
127076 return !!this.g && this.g.i != 0;
127077 case 10:
127078 return !!this.e && this.e.i != 0;
127079 case 11:
127080 return this.d != null;
127081 }
127082 return dkd(this, a);
127083 };
127084 _2.sh = function xmd(a, b) {
127085 switch (a) {
127086 case 1:
127087 omd(this, Edb(ED(b)));
127088 return;
127089 case 2:
127090 pmd(this, Edb(ED(b)));
127091 return;
127092 case 3:
127093 hmd(this, Edb(ED(b)));
127094 return;
127095 case 4:
127096 imd(this, Edb(ED(b)));
127097 return;
127098 case 5:
127099 !this.a && (this.a = new xMd(y2, this, 5));
127100 Uxd(this.a);
127101 !this.a && (this.a = new xMd(y2, this, 5));
127102 ytd(this.a, BD(b, 14));
127103 return;
127104 case 6:
127105 mmd(this, BD(b, 79));
127106 return;
127107 case 7:
127108 lmd(this, BD(b, 82));
127109 return;
127110 case 8:
127111 kmd(this, BD(b, 82));
127112 return;
127113 case 9:
127114 !this.g && (this.g = new y5d(A2, this, 9, 10));
127115 Uxd(this.g);
127116 !this.g && (this.g = new y5d(A2, this, 9, 10));
127117 ytd(this.g, BD(b, 14));
127118 return;
127119 case 10:
127120 !this.e && (this.e = new y5d(A2, this, 10, 9));
127121 Uxd(this.e);
127122 !this.e && (this.e = new y5d(A2, this, 10, 9));
127123 ytd(this.e, BD(b, 14));
127124 return;
127125 case 11:
127126 jmd(this, GD(b));
127127 return;
127128 }
127129 ekd(this, a, b);
127130 };
127131 _2.zh = function ymd() {
127132 return Thd(), Lhd;
127133 };
127134 _2.Bh = function zmd(a) {
127135 switch (a) {
127136 case 1:
127137 omd(this, 0);
127138 return;
127139 case 2:
127140 pmd(this, 0);
127141 return;
127142 case 3:
127143 hmd(this, 0);
127144 return;
127145 case 4:
127146 imd(this, 0);
127147 return;
127148 case 5:
127149 !this.a && (this.a = new xMd(y2, this, 5));
127150 Uxd(this.a);
127151 return;
127152 case 6:
127153 mmd(this, null);
127154 return;
127155 case 7:
127156 lmd(this, null);
127157 return;
127158 case 8:
127159 kmd(this, null);
127160 return;
127161 case 9:
127162 !this.g && (this.g = new y5d(A2, this, 9, 10));
127163 Uxd(this.g);
127164 return;
127165 case 10:
127166 !this.e && (this.e = new y5d(A2, this, 10, 9));
127167 Uxd(this.e);
127168 return;
127169 case 11:
127170 jmd(this, null);
127171 return;
127172 }
127173 fkd(this, a);
127174 };
127175 _2.Ib = function Amd() {
127176 return qmd(this);
127177 };
127178 _2.b = 0;
127179 _2.c = 0;
127180 _2.d = null;
127181 _2.j = 0;
127182 _2.k = 0;
127183 mdb(rte, "ElkEdgeSectionImpl", 439);
127184 bcb(150, 115, { 105: 1, 92: 1, 90: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 });
127185 _2._g = function Emd(a, b, c2) {
127186 var d;
127187 if (a == 0) {
127188 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
127189 }
127190 return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c2);
127191 };
127192 _2.hh = function Fmd(a, b, c2) {
127193 var d, e;
127194 if (b == 0) {
127195 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
127196 }
127197 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Qj(this, yjd(this), b - aLd(this.zh()), a, c2);
127198 };
127199 _2.jh = function Gmd(a, b, c2) {
127200 var d, e;
127201 if (b == 0) {
127202 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
127203 }
127204 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c2);
127205 };
127206 _2.lh = function Hmd(a) {
127207 var b;
127208 if (a == 0) {
127209 return !!this.Ab && this.Ab.i != 0;
127210 }
127211 return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
127212 };
127213 _2.oh = function Imd(a) {
127214 return Bmd(this, a);
127215 };
127216 _2.sh = function Jmd(a, b) {
127217 var c2;
127218 switch (a) {
127219 case 0:
127220 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
127221 Uxd(this.Ab);
127222 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
127223 ytd(this.Ab, BD(b, 14));
127224 return;
127225 }
127226 did(this, a - aLd(this.zh()), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? this.zh() : c2), a), b);
127227 };
127228 _2.uh = function Kmd(a) {
127229 Cjd(this, 128, a);
127230 };
127231 _2.zh = function Lmd() {
127232 return jGd(), ZFd;
127233 };
127234 _2.Bh = function Mmd(a) {
127235 var b;
127236 switch (a) {
127237 case 0:
127238 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
127239 Uxd(this.Ab);
127240 return;
127241 }
127242 eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
127243 };
127244 _2.Gh = function Nmd() {
127245 this.Bb |= 1;
127246 };
127247 _2.Hh = function Omd(a) {
127248 return Dmd(this, a);
127249 };
127250 _2.Bb = 0;
127251 mdb(qte, "EModelElementImpl", 150);
127252 bcb(704, 150, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, $md);
127253 _2.Ih = function _md(a, b) {
127254 return Vmd(this, a, b);
127255 };
127256 _2.Jh = function and(a) {
127257 var b, c2, d, e, f2;
127258 if (this.a != bKd(a) || (a.Bb & 256) != 0) {
127259 throw vbb(new Wdb(xte + a.zb + ute));
127260 }
127261 for (d = _Kd(a); VKd(d.a).i != 0; ) {
127262 c2 = BD(nOd(d, 0, (b = BD(qud(VKd(d.a), 0), 87), f2 = b.c, JD(f2, 88) ? BD(f2, 26) : (jGd(), _Fd))), 26);
127263 if (dKd(c2)) {
127264 e = bKd(c2).Nh().Jh(c2);
127265 BD(e, 49).th(a);
127266 return e;
127267 }
127268 d = _Kd(c2);
127269 }
127270 return (a.D != null ? a.D : a.B) == "java.util.Map$Entry" ? new lHd(a) : new _Gd(a);
127271 };
127272 _2.Kh = function bnd(a, b) {
127273 return Wmd(this, a, b);
127274 };
127275 _2._g = function cnd(a, b, c2) {
127276 var d;
127277 switch (a) {
127278 case 0:
127279 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
127280 case 1:
127281 return this.a;
127282 }
127283 return bid(this, a - aLd((jGd(), WFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? WFd : d), a), b, c2);
127284 };
127285 _2.hh = function dnd(a, b, c2) {
127286 var d, e;
127287 switch (b) {
127288 case 0:
127289 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
127290 case 1:
127291 !!this.a && (c2 = BD(this.a, 49).ih(this, 4, o5, c2));
127292 return Tmd(this, BD(a, 235), c2);
127293 }
127294 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), WFd) : d), b), 66), e.Nj().Qj(this, yjd(this), b - aLd((jGd(), WFd)), a, c2);
127295 };
127296 _2.jh = function end2(a, b, c2) {
127297 var d, e;
127298 switch (b) {
127299 case 0:
127300 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
127301 case 1:
127302 return Tmd(this, null, c2);
127303 }
127304 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), WFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), WFd)), a, c2);
127305 };
127306 _2.lh = function fnd(a) {
127307 var b;
127308 switch (a) {
127309 case 0:
127310 return !!this.Ab && this.Ab.i != 0;
127311 case 1:
127312 return !!this.a;
127313 }
127314 return cid(this, a - aLd((jGd(), WFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? WFd : b), a));
127315 };
127316 _2.sh = function gnd(a, b) {
127317 var c2;
127318 switch (a) {
127319 case 0:
127320 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
127321 Uxd(this.Ab);
127322 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
127323 ytd(this.Ab, BD(b, 14));
127324 return;
127325 case 1:
127326 Ymd(this, BD(b, 235));
127327 return;
127328 }
127329 did(this, a - aLd((jGd(), WFd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? WFd : c2), a), b);
127330 };
127331 _2.zh = function hnd() {
127332 return jGd(), WFd;
127333 };
127334 _2.Bh = function ind(a) {
127335 var b;
127336 switch (a) {
127337 case 0:
127338 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
127339 Uxd(this.Ab);
127340 return;
127341 case 1:
127342 Ymd(this, null);
127343 return;
127344 }
127345 eid(this, a - aLd((jGd(), WFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? WFd : b), a));
127346 };
127347 var Pmd, Qmd, Rmd;
127348 mdb(qte, "EFactoryImpl", 704);
127349 bcb(zte, 704, { 105: 1, 2014: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, knd);
127350 _2.Ih = function lnd(a, b) {
127351 switch (a.yj()) {
127352 case 12:
127353 return BD(b, 146).tg();
127354 case 13:
127355 return fcb(b);
127356 default:
127357 throw vbb(new Wdb(tte + a.ne() + ute));
127358 }
127359 };
127360 _2.Jh = function mnd(a) {
127361 var b, c2, d, e, f2, g, h, i3;
127362 switch (a.G == -1 && (a.G = (b = bKd(a), b ? HLd(b.Mh(), a) : -1)), a.G) {
127363 case 4:
127364 return f2 = new Jod(), f2;
127365 case 6:
127366 return g = new apd(), g;
127367 case 7:
127368 return h = new ppd(), h;
127369 case 8:
127370 return d = new Tld(), d;
127371 case 9:
127372 return c2 = new xkd(), c2;
127373 case 10:
127374 return e = new rmd(), e;
127375 case 11:
127376 return i3 = new Bpd(), i3;
127377 default:
127378 throw vbb(new Wdb(xte + a.zb + ute));
127379 }
127380 };
127381 _2.Kh = function nnd(a, b) {
127382 switch (a.yj()) {
127383 case 13:
127384 case 12:
127385 return null;
127386 default:
127387 throw vbb(new Wdb(tte + a.ne() + ute));
127388 }
127389 };
127390 mdb(rte, "ElkGraphFactoryImpl", zte);
127391 bcb(438, 150, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 });
127392 _2.Wg = function rnd() {
127393 var a, b;
127394 b = (a = BD(Ajd(this, 16), 26), pNd(TKd(!a ? this.zh() : a)));
127395 return b == null ? (nRd(), nRd(), mRd) : new GRd(this, b);
127396 };
127397 _2._g = function snd(a, b, c2) {
127398 var d;
127399 switch (a) {
127400 case 0:
127401 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
127402 case 1:
127403 return this.ne();
127404 }
127405 return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c2);
127406 };
127407 _2.lh = function tnd(a) {
127408 var b;
127409 switch (a) {
127410 case 0:
127411 return !!this.Ab && this.Ab.i != 0;
127412 case 1:
127413 return this.zb != null;
127414 }
127415 return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
127416 };
127417 _2.sh = function und(a, b) {
127418 var c2;
127419 switch (a) {
127420 case 0:
127421 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
127422 Uxd(this.Ab);
127423 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
127424 ytd(this.Ab, BD(b, 14));
127425 return;
127426 case 1:
127427 this.Lh(GD(b));
127428 return;
127429 }
127430 did(this, a - aLd(this.zh()), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? this.zh() : c2), a), b);
127431 };
127432 _2.zh = function vnd() {
127433 return jGd(), $Fd;
127434 };
127435 _2.Bh = function wnd(a) {
127436 var b;
127437 switch (a) {
127438 case 0:
127439 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
127440 Uxd(this.Ab);
127441 return;
127442 case 1:
127443 this.Lh(null);
127444 return;
127445 }
127446 eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
127447 };
127448 _2.ne = function xnd() {
127449 return this.zb;
127450 };
127451 _2.Lh = function ynd(a) {
127452 pnd(this, a);
127453 };
127454 _2.Ib = function znd() {
127455 return qnd(this);
127456 };
127457 _2.zb = null;
127458 mdb(qte, "ENamedElementImpl", 438);
127459 bcb(179, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1 }, eod);
127460 _2.Qg = function god(a) {
127461 return Snd(this, a);
127462 };
127463 _2._g = function hod(a, b, c2) {
127464 var d;
127465 switch (a) {
127466 case 0:
127467 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
127468 case 1:
127469 return this.zb;
127470 case 2:
127471 return this.yb;
127472 case 3:
127473 return this.xb;
127474 case 4:
127475 return this.sb;
127476 case 5:
127477 return !this.rb && (this.rb = new jUd(this, d5, this)), this.rb;
127478 case 6:
127479 return !this.vb && (this.vb = new gUd(o5, this, 6, 7)), this.vb;
127480 case 7:
127481 if (b)
127482 return this.Db >> 16 == 7 ? BD(this.Cb, 235) : null;
127483 return Ind(this);
127484 }
127485 return bid(this, a - aLd((jGd(), cGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? cGd : d), a), b, c2);
127486 };
127487 _2.hh = function iod(a, b, c2) {
127488 var d, e, f2;
127489 switch (b) {
127490 case 0:
127491 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
127492 case 4:
127493 !!this.sb && (c2 = BD(this.sb, 49).ih(this, 1, i5, c2));
127494 return Jnd(this, BD(a, 471), c2);
127495 case 5:
127496 return !this.rb && (this.rb = new jUd(this, d5, this)), Sxd(this.rb, a, c2);
127497 case 6:
127498 return !this.vb && (this.vb = new gUd(o5, this, 6, 7)), Sxd(this.vb, a, c2);
127499 case 7:
127500 !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? Snd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
127501 return _hd(this, a, 7, c2);
127502 }
127503 return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), cGd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((jGd(), cGd)), a, c2);
127504 };
127505 _2.jh = function jod(a, b, c2) {
127506 var d, e;
127507 switch (b) {
127508 case 0:
127509 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
127510 case 4:
127511 return Jnd(this, null, c2);
127512 case 5:
127513 return !this.rb && (this.rb = new jUd(this, d5, this)), Txd(this.rb, a, c2);
127514 case 6:
127515 return !this.vb && (this.vb = new gUd(o5, this, 6, 7)), Txd(this.vb, a, c2);
127516 case 7:
127517 return _hd(this, null, 7, c2);
127518 }
127519 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), cGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), cGd)), a, c2);
127520 };
127521 _2.lh = function kod(a) {
127522 var b;
127523 switch (a) {
127524 case 0:
127525 return !!this.Ab && this.Ab.i != 0;
127526 case 1:
127527 return this.zb != null;
127528 case 2:
127529 return this.yb != null;
127530 case 3:
127531 return this.xb != null;
127532 case 4:
127533 return !!this.sb;
127534 case 5:
127535 return !!this.rb && this.rb.i != 0;
127536 case 6:
127537 return !!this.vb && this.vb.i != 0;
127538 case 7:
127539 return !!Ind(this);
127540 }
127541 return cid(this, a - aLd((jGd(), cGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? cGd : b), a));
127542 };
127543 _2.oh = function lod(a) {
127544 var b;
127545 b = Und(this, a);
127546 return b ? b : Bmd(this, a);
127547 };
127548 _2.sh = function mod(a, b) {
127549 var c2;
127550 switch (a) {
127551 case 0:
127552 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
127553 Uxd(this.Ab);
127554 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
127555 ytd(this.Ab, BD(b, 14));
127556 return;
127557 case 1:
127558 pnd(this, GD(b));
127559 return;
127560 case 2:
127561 dod(this, GD(b));
127562 return;
127563 case 3:
127564 cod(this, GD(b));
127565 return;
127566 case 4:
127567 bod(this, BD(b, 471));
127568 return;
127569 case 5:
127570 !this.rb && (this.rb = new jUd(this, d5, this));
127571 Uxd(this.rb);
127572 !this.rb && (this.rb = new jUd(this, d5, this));
127573 ytd(this.rb, BD(b, 14));
127574 return;
127575 case 6:
127576 !this.vb && (this.vb = new gUd(o5, this, 6, 7));
127577 Uxd(this.vb);
127578 !this.vb && (this.vb = new gUd(o5, this, 6, 7));
127579 ytd(this.vb, BD(b, 14));
127580 return;
127581 }
127582 did(this, a - aLd((jGd(), cGd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? cGd : c2), a), b);
127583 };
127584 _2.vh = function nod(a) {
127585 var b, c2;
127586 if (!!a && !!this.rb) {
127587 for (c2 = new Fyd(this.rb); c2.e != c2.i.gc(); ) {
127588 b = Dyd(c2);
127589 JD(b, 351) && (BD(b, 351).w = null);
127590 }
127591 }
127592 Cjd(this, 64, a);
127593 };
127594 _2.zh = function ood() {
127595 return jGd(), cGd;
127596 };
127597 _2.Bh = function pod(a) {
127598 var b;
127599 switch (a) {
127600 case 0:
127601 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
127602 Uxd(this.Ab);
127603 return;
127604 case 1:
127605 pnd(this, null);
127606 return;
127607 case 2:
127608 dod(this, null);
127609 return;
127610 case 3:
127611 cod(this, null);
127612 return;
127613 case 4:
127614 bod(this, null);
127615 return;
127616 case 5:
127617 !this.rb && (this.rb = new jUd(this, d5, this));
127618 Uxd(this.rb);
127619 return;
127620 case 6:
127621 !this.vb && (this.vb = new gUd(o5, this, 6, 7));
127622 Uxd(this.vb);
127623 return;
127624 }
127625 eid(this, a - aLd((jGd(), cGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? cGd : b), a));
127626 };
127627 _2.Gh = function qod() {
127628 Tnd(this);
127629 };
127630 _2.Mh = function rod() {
127631 return !this.rb && (this.rb = new jUd(this, d5, this)), this.rb;
127632 };
127633 _2.Nh = function sod() {
127634 return this.sb;
127635 };
127636 _2.Oh = function tod() {
127637 return this.ub;
127638 };
127639 _2.Ph = function uod() {
127640 return this.xb;
127641 };
127642 _2.Qh = function vod() {
127643 return this.yb;
127644 };
127645 _2.Rh = function wod(a) {
127646 this.ub = a;
127647 };
127648 _2.Ib = function xod() {
127649 var a;
127650 if ((this.Db & 64) != 0)
127651 return qnd(this);
127652 a = new Jfb(qnd(this));
127653 a.a += " (nsURI: ";
127654 Efb(a, this.yb);
127655 a.a += ", nsPrefix: ";
127656 Efb(a, this.xb);
127657 a.a += ")";
127658 return a.a;
127659 };
127660 _2.xb = null;
127661 _2.yb = null;
127662 mdb(qte, "EPackageImpl", 179);
127663 bcb(555, 179, { 105: 1, 2016: 1, 555: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1 }, Bod);
127664 _2.q = false;
127665 _2.r = false;
127666 var yod = false;
127667 mdb(rte, "ElkGraphPackageImpl", 555);
127668 bcb(354, 724, { 105: 1, 413: 1, 160: 1, 137: 1, 470: 1, 354: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, Jod);
127669 _2.Qg = function Kod(a) {
127670 return Eod(this, a);
127671 };
127672 _2._g = function Lod(a, b, c2) {
127673 switch (a) {
127674 case 7:
127675 return Fod(this);
127676 case 8:
127677 return this.a;
127678 }
127679 return Xkd(this, a, b, c2);
127680 };
127681 _2.hh = function Mod(a, b, c2) {
127682 var d;
127683 switch (b) {
127684 case 7:
127685 !!this.Cb && (c2 = (d = this.Db >> 16, d >= 0 ? Eod(this, c2) : this.Cb.ih(this, -1 - d, null, c2)));
127686 return Dod(this, BD(a, 160), c2);
127687 }
127688 return Fkd(this, a, b, c2);
127689 };
127690 _2.jh = function Nod(a, b, c2) {
127691 if (b == 7) {
127692 return Dod(this, null, c2);
127693 }
127694 return Gkd(this, a, b, c2);
127695 };
127696 _2.lh = function Ood(a) {
127697 switch (a) {
127698 case 7:
127699 return !!Fod(this);
127700 case 8:
127701 return !dfb("", this.a);
127702 }
127703 return Ykd(this, a);
127704 };
127705 _2.sh = function Pod(a, b) {
127706 switch (a) {
127707 case 7:
127708 God(this, BD(b, 160));
127709 return;
127710 case 8:
127711 Hod(this, GD(b));
127712 return;
127713 }
127714 Zkd(this, a, b);
127715 };
127716 _2.zh = function Qod() {
127717 return Thd(), Nhd;
127718 };
127719 _2.Bh = function Rod(a) {
127720 switch (a) {
127721 case 7:
127722 God(this, null);
127723 return;
127724 case 8:
127725 Hod(this, "");
127726 return;
127727 }
127728 $kd(this, a);
127729 };
127730 _2.Ib = function Sod() {
127731 return Iod(this);
127732 };
127733 _2.a = "";
127734 mdb(rte, "ElkLabelImpl", 354);
127735 bcb(239, 725, { 105: 1, 413: 1, 82: 1, 160: 1, 33: 1, 470: 1, 239: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, apd);
127736 _2.Qg = function bpd(a) {
127737 return Uod(this, a);
127738 };
127739 _2._g = function cpd(a, b, c2) {
127740 switch (a) {
127741 case 9:
127742 return !this.c && (this.c = new cUd(F2, this, 9, 9)), this.c;
127743 case 10:
127744 return !this.a && (this.a = new cUd(E2, this, 10, 11)), this.a;
127745 case 11:
127746 return Xod(this);
127747 case 12:
127748 return !this.b && (this.b = new cUd(B2, this, 12, 3)), this.b;
127749 case 13:
127750 return Bcb(), !this.a && (this.a = new cUd(E2, this, 10, 11)), this.a.i > 0 ? true : false;
127751 }
127752 return uld(this, a, b, c2);
127753 };
127754 _2.hh = function dpd(a, b, c2) {
127755 var d;
127756 switch (b) {
127757 case 9:
127758 return !this.c && (this.c = new cUd(F2, this, 9, 9)), Sxd(this.c, a, c2);
127759 case 10:
127760 return !this.a && (this.a = new cUd(E2, this, 10, 11)), Sxd(this.a, a, c2);
127761 case 11:
127762 !!this.Cb && (c2 = (d = this.Db >> 16, d >= 0 ? Uod(this, c2) : this.Cb.ih(this, -1 - d, null, c2)));
127763 return Tod(this, BD(a, 33), c2);
127764 case 12:
127765 return !this.b && (this.b = new cUd(B2, this, 12, 3)), Sxd(this.b, a, c2);
127766 }
127767 return vld(this, a, b, c2);
127768 };
127769 _2.jh = function epd(a, b, c2) {
127770 switch (b) {
127771 case 9:
127772 return !this.c && (this.c = new cUd(F2, this, 9, 9)), Txd(this.c, a, c2);
127773 case 10:
127774 return !this.a && (this.a = new cUd(E2, this, 10, 11)), Txd(this.a, a, c2);
127775 case 11:
127776 return Tod(this, null, c2);
127777 case 12:
127778 return !this.b && (this.b = new cUd(B2, this, 12, 3)), Txd(this.b, a, c2);
127779 }
127780 return wld(this, a, b, c2);
127781 };
127782 _2.lh = function fpd(a) {
127783 switch (a) {
127784 case 9:
127785 return !!this.c && this.c.i != 0;
127786 case 10:
127787 return !!this.a && this.a.i != 0;
127788 case 11:
127789 return !!Xod(this);
127790 case 12:
127791 return !!this.b && this.b.i != 0;
127792 case 13:
127793 return !this.a && (this.a = new cUd(E2, this, 10, 11)), this.a.i > 0;
127794 }
127795 return xld(this, a);
127796 };
127797 _2.sh = function gpd(a, b) {
127798 switch (a) {
127799 case 9:
127800 !this.c && (this.c = new cUd(F2, this, 9, 9));
127801 Uxd(this.c);
127802 !this.c && (this.c = new cUd(F2, this, 9, 9));
127803 ytd(this.c, BD(b, 14));
127804 return;
127805 case 10:
127806 !this.a && (this.a = new cUd(E2, this, 10, 11));
127807 Uxd(this.a);
127808 !this.a && (this.a = new cUd(E2, this, 10, 11));
127809 ytd(this.a, BD(b, 14));
127810 return;
127811 case 11:
127812 $od(this, BD(b, 33));
127813 return;
127814 case 12:
127815 !this.b && (this.b = new cUd(B2, this, 12, 3));
127816 Uxd(this.b);
127817 !this.b && (this.b = new cUd(B2, this, 12, 3));
127818 ytd(this.b, BD(b, 14));
127819 return;
127820 }
127821 yld(this, a, b);
127822 };
127823 _2.zh = function hpd() {
127824 return Thd(), Ohd;
127825 };
127826 _2.Bh = function ipd(a) {
127827 switch (a) {
127828 case 9:
127829 !this.c && (this.c = new cUd(F2, this, 9, 9));
127830 Uxd(this.c);
127831 return;
127832 case 10:
127833 !this.a && (this.a = new cUd(E2, this, 10, 11));
127834 Uxd(this.a);
127835 return;
127836 case 11:
127837 $od(this, null);
127838 return;
127839 case 12:
127840 !this.b && (this.b = new cUd(B2, this, 12, 3));
127841 Uxd(this.b);
127842 return;
127843 }
127844 zld(this, a);
127845 };
127846 _2.Ib = function jpd() {
127847 return _od(this);
127848 };
127849 mdb(rte, "ElkNodeImpl", 239);
127850 bcb(186, 725, { 105: 1, 413: 1, 82: 1, 160: 1, 118: 1, 470: 1, 186: 1, 94: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, ppd);
127851 _2.Qg = function qpd(a) {
127852 return lpd(this, a);
127853 };
127854 _2._g = function rpd(a, b, c2) {
127855 if (a == 9) {
127856 return mpd(this);
127857 }
127858 return uld(this, a, b, c2);
127859 };
127860 _2.hh = function spd(a, b, c2) {
127861 var d;
127862 switch (b) {
127863 case 9:
127864 !!this.Cb && (c2 = (d = this.Db >> 16, d >= 0 ? lpd(this, c2) : this.Cb.ih(this, -1 - d, null, c2)));
127865 return kpd(this, BD(a, 33), c2);
127866 }
127867 return vld(this, a, b, c2);
127868 };
127869 _2.jh = function tpd(a, b, c2) {
127870 if (b == 9) {
127871 return kpd(this, null, c2);
127872 }
127873 return wld(this, a, b, c2);
127874 };
127875 _2.lh = function upd(a) {
127876 if (a == 9) {
127877 return !!mpd(this);
127878 }
127879 return xld(this, a);
127880 };
127881 _2.sh = function vpd(a, b) {
127882 switch (a) {
127883 case 9:
127884 npd(this, BD(b, 33));
127885 return;
127886 }
127887 yld(this, a, b);
127888 };
127889 _2.zh = function wpd() {
127890 return Thd(), Phd;
127891 };
127892 _2.Bh = function xpd(a) {
127893 switch (a) {
127894 case 9:
127895 npd(this, null);
127896 return;
127897 }
127898 zld(this, a);
127899 };
127900 _2.Ib = function ypd() {
127901 return opd(this);
127902 };
127903 mdb(rte, "ElkPortImpl", 186);
127904 var J4 = odb(Tte, "BasicEMap/Entry");
127905 bcb(1092, 115, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1, 114: 1, 115: 1 }, Bpd);
127906 _2.Fb = function Hpd(a) {
127907 return this === a;
127908 };
127909 _2.cd = function Jpd() {
127910 return this.b;
127911 };
127912 _2.Hb = function Lpd() {
127913 return FCb(this);
127914 };
127915 _2.Uh = function Npd(a) {
127916 zpd(this, BD(a, 146));
127917 };
127918 _2._g = function Cpd(a, b, c2) {
127919 switch (a) {
127920 case 0:
127921 return this.b;
127922 case 1:
127923 return this.c;
127924 }
127925 return fid(this, a, b, c2);
127926 };
127927 _2.lh = function Dpd(a) {
127928 switch (a) {
127929 case 0:
127930 return !!this.b;
127931 case 1:
127932 return this.c != null;
127933 }
127934 return mid(this, a);
127935 };
127936 _2.sh = function Epd(a, b) {
127937 switch (a) {
127938 case 0:
127939 zpd(this, BD(b, 146));
127940 return;
127941 case 1:
127942 Apd(this, b);
127943 return;
127944 }
127945 yid(this, a, b);
127946 };
127947 _2.zh = function Fpd() {
127948 return Thd(), Qhd;
127949 };
127950 _2.Bh = function Gpd(a) {
127951 switch (a) {
127952 case 0:
127953 zpd(this, null);
127954 return;
127955 case 1:
127956 Apd(this, null);
127957 return;
127958 }
127959 Cid(this, a);
127960 };
127961 _2.Sh = function Ipd() {
127962 var a;
127963 if (this.a == -1) {
127964 a = this.b;
127965 this.a = !a ? 0 : tb(a);
127966 }
127967 return this.a;
127968 };
127969 _2.dd = function Kpd() {
127970 return this.c;
127971 };
127972 _2.Th = function Mpd(a) {
127973 this.a = a;
127974 };
127975 _2.ed = function Opd(a) {
127976 var b;
127977 b = this.c;
127978 Apd(this, a);
127979 return b;
127980 };
127981 _2.Ib = function Ppd() {
127982 var a;
127983 if ((this.Db & 64) != 0)
127984 return Eid(this);
127985 a = new Ufb();
127986 Qfb(Qfb(Qfb(a, this.b ? this.b.tg() : Xhe), gne), xfb(this.c));
127987 return a.a;
127988 };
127989 _2.a = -1;
127990 _2.c = null;
127991 var S2 = mdb(rte, "ElkPropertyToValueMapEntryImpl", 1092);
127992 bcb(984, 1, {}, bqd);
127993 mdb(Wte, "JsonAdapter", 984);
127994 bcb(210, 60, Tie, cqd);
127995 mdb(Wte, "JsonImportException", 210);
127996 bcb(857, 1, {}, ird);
127997 mdb(Wte, "JsonImporter", 857);
127998 bcb(891, 1, {}, jrd);
127999 mdb(Wte, "JsonImporter/lambda$0$Type", 891);
128000 bcb(892, 1, {}, krd);
128001 mdb(Wte, "JsonImporter/lambda$1$Type", 892);
128002 bcb(900, 1, {}, lrd);
128003 mdb(Wte, "JsonImporter/lambda$10$Type", 900);
128004 bcb(902, 1, {}, mrd);
128005 mdb(Wte, "JsonImporter/lambda$11$Type", 902);
128006 bcb(903, 1, {}, nrd);
128007 mdb(Wte, "JsonImporter/lambda$12$Type", 903);
128008 bcb(909, 1, {}, ord);
128009 mdb(Wte, "JsonImporter/lambda$13$Type", 909);
128010 bcb(908, 1, {}, prd);
128011 mdb(Wte, "JsonImporter/lambda$14$Type", 908);
128012 bcb(904, 1, {}, qrd);
128013 mdb(Wte, "JsonImporter/lambda$15$Type", 904);
128014 bcb(905, 1, {}, rrd);
128015 mdb(Wte, "JsonImporter/lambda$16$Type", 905);
128016 bcb(906, 1, {}, srd);
128017 mdb(Wte, "JsonImporter/lambda$17$Type", 906);
128018 bcb(907, 1, {}, trd);
128019 mdb(Wte, "JsonImporter/lambda$18$Type", 907);
128020 bcb(912, 1, {}, urd);
128021 mdb(Wte, "JsonImporter/lambda$19$Type", 912);
128022 bcb(893, 1, {}, vrd);
128023 mdb(Wte, "JsonImporter/lambda$2$Type", 893);
128024 bcb(910, 1, {}, wrd);
128025 mdb(Wte, "JsonImporter/lambda$20$Type", 910);
128026 bcb(911, 1, {}, xrd);
128027 mdb(Wte, "JsonImporter/lambda$21$Type", 911);
128028 bcb(915, 1, {}, yrd);
128029 mdb(Wte, "JsonImporter/lambda$22$Type", 915);
128030 bcb(913, 1, {}, zrd);
128031 mdb(Wte, "JsonImporter/lambda$23$Type", 913);
128032 bcb(914, 1, {}, Ard);
128033 mdb(Wte, "JsonImporter/lambda$24$Type", 914);
128034 bcb(917, 1, {}, Brd);
128035 mdb(Wte, "JsonImporter/lambda$25$Type", 917);
128036 bcb(916, 1, {}, Crd);
128037 mdb(Wte, "JsonImporter/lambda$26$Type", 916);
128038 bcb(918, 1, qie, Drd);
128039 _2.td = function Erd(a) {
128040 Bqd(this.b, this.a, GD(a));
128041 };
128042 mdb(Wte, "JsonImporter/lambda$27$Type", 918);
128043 bcb(919, 1, qie, Frd);
128044 _2.td = function Grd(a) {
128045 Cqd(this.b, this.a, GD(a));
128046 };
128047 mdb(Wte, "JsonImporter/lambda$28$Type", 919);
128048 bcb(920, 1, {}, Hrd);
128049 mdb(Wte, "JsonImporter/lambda$29$Type", 920);
128050 bcb(896, 1, {}, Ird);
128051 mdb(Wte, "JsonImporter/lambda$3$Type", 896);
128052 bcb(921, 1, {}, Jrd);
128053 mdb(Wte, "JsonImporter/lambda$30$Type", 921);
128054 bcb(922, 1, {}, Krd);
128055 mdb(Wte, "JsonImporter/lambda$31$Type", 922);
128056 bcb(923, 1, {}, Lrd);
128057 mdb(Wte, "JsonImporter/lambda$32$Type", 923);
128058 bcb(924, 1, {}, Mrd);
128059 mdb(Wte, "JsonImporter/lambda$33$Type", 924);
128060 bcb(925, 1, {}, Nrd);
128061 mdb(Wte, "JsonImporter/lambda$34$Type", 925);
128062 bcb(859, 1, {}, Prd);
128063 mdb(Wte, "JsonImporter/lambda$35$Type", 859);
128064 bcb(929, 1, {}, Rrd);
128065 mdb(Wte, "JsonImporter/lambda$36$Type", 929);
128066 bcb(926, 1, qie, Srd);
128067 _2.td = function Trd(a) {
128068 Lqd(this.a, BD(a, 469));
128069 };
128070 mdb(Wte, "JsonImporter/lambda$37$Type", 926);
128071 bcb(927, 1, qie, Urd);
128072 _2.td = function Vrd(a) {
128073 Mqd(this.a, this.b, BD(a, 202));
128074 };
128075 mdb(Wte, "JsonImporter/lambda$38$Type", 927);
128076 bcb(928, 1, qie, Wrd);
128077 _2.td = function Xrd(a) {
128078 Nqd(this.a, this.b, BD(a, 202));
128079 };
128080 mdb(Wte, "JsonImporter/lambda$39$Type", 928);
128081 bcb(894, 1, {}, Yrd);
128082 mdb(Wte, "JsonImporter/lambda$4$Type", 894);
128083 bcb(930, 1, qie, Zrd);
128084 _2.td = function $rd(a) {
128085 Oqd(this.a, BD(a, 8));
128086 };
128087 mdb(Wte, "JsonImporter/lambda$40$Type", 930);
128088 bcb(895, 1, {}, _rd);
128089 mdb(Wte, "JsonImporter/lambda$5$Type", 895);
128090 bcb(899, 1, {}, asd);
128091 mdb(Wte, "JsonImporter/lambda$6$Type", 899);
128092 bcb(897, 1, {}, bsd);
128093 mdb(Wte, "JsonImporter/lambda$7$Type", 897);
128094 bcb(898, 1, {}, csd);
128095 mdb(Wte, "JsonImporter/lambda$8$Type", 898);
128096 bcb(901, 1, {}, dsd);
128097 mdb(Wte, "JsonImporter/lambda$9$Type", 901);
128098 bcb(948, 1, qie, msd);
128099 _2.td = function nsd(a) {
128100 Qpd(this.a, new yC(GD(a)));
128101 };
128102 mdb(Wte, "JsonMetaDataConverter/lambda$0$Type", 948);
128103 bcb(949, 1, qie, osd);
128104 _2.td = function psd(a) {
128105 isd(this.a, BD(a, 237));
128106 };
128107 mdb(Wte, "JsonMetaDataConverter/lambda$1$Type", 949);
128108 bcb(950, 1, qie, qsd);
128109 _2.td = function rsd(a) {
128110 jsd(this.a, BD(a, 149));
128111 };
128112 mdb(Wte, "JsonMetaDataConverter/lambda$2$Type", 950);
128113 bcb(951, 1, qie, ssd);
128114 _2.td = function tsd(a) {
128115 ksd(this.a, BD(a, 175));
128116 };
128117 mdb(Wte, "JsonMetaDataConverter/lambda$3$Type", 951);
128118 bcb(237, 22, { 3: 1, 35: 1, 22: 1, 237: 1 }, Dsd);
128119 var usd, vsd, wsd, xsd, ysd, zsd, Asd, Bsd;
128120 var O3 = ndb(Hle, "GraphFeature", 237, CI, Fsd, Esd);
128121 var Gsd;
128122 bcb(13, 1, { 35: 1, 146: 1 }, Lsd, Msd, Nsd, Osd);
128123 _2.wd = function Psd(a) {
128124 return Isd(this, BD(a, 146));
128125 };
128126 _2.Fb = function Qsd(a) {
128127 return Jsd(this, a);
128128 };
128129 _2.wg = function Rsd() {
128130 return Ksd(this);
128131 };
128132 _2.tg = function Ssd() {
128133 return this.b;
128134 };
128135 _2.Hb = function Tsd() {
128136 return LCb(this.b);
128137 };
128138 _2.Ib = function Usd() {
128139 return this.b;
128140 };
128141 mdb(Hle, "Property", 13);
128142 bcb(818, 1, Dke, Wsd);
128143 _2.ue = function Xsd(a, b) {
128144 return Vsd(this, BD(a, 94), BD(b, 94));
128145 };
128146 _2.Fb = function Ysd(a) {
128147 return this === a;
128148 };
128149 _2.ve = function Zsd() {
128150 return new tpb(this);
128151 };
128152 mdb(Hle, "PropertyHolderComparator", 818);
128153 bcb(695, 1, aie, qtd);
128154 _2.Nb = function rtd(a) {
128155 Rrb(this, a);
128156 };
128157 _2.Pb = function ttd() {
128158 return ptd(this);
128159 };
128160 _2.Qb = function utd() {
128161 Srb();
128162 };
128163 _2.Ob = function std() {
128164 return !!this.a;
128165 };
128166 mdb(jue, "ElkGraphUtil/AncestorIterator", 695);
128167 var T4 = odb(Tte, "EList");
128168 bcb(67, 52, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1 });
128169 _2.Vc = function Jtd(a, b) {
128170 vtd(this, a, b);
128171 };
128172 _2.Fc = function Ktd(a) {
128173 return wtd(this, a);
128174 };
128175 _2.Wc = function Ltd(a, b) {
128176 return xtd(this, a, b);
128177 };
128178 _2.Gc = function Mtd(a) {
128179 return ytd(this, a);
128180 };
128181 _2.Zh = function Ntd() {
128182 return new $yd(this);
128183 };
128184 _2.$h = function Otd() {
128185 return new bzd(this);
128186 };
128187 _2._h = function Ptd(a) {
128188 return ztd(this, a);
128189 };
128190 _2.ai = function Qtd() {
128191 return true;
128192 };
128193 _2.bi = function Rtd(a, b) {
128194 };
128195 _2.ci = function Std() {
128196 };
128197 _2.di = function Ttd(a, b) {
128198 Atd(this, a, b);
128199 };
128200 _2.ei = function Utd(a, b, c2) {
128201 };
128202 _2.fi = function Vtd(a, b) {
128203 };
128204 _2.gi = function Wtd(a, b, c2) {
128205 };
128206 _2.Fb = function Xtd(a) {
128207 return Btd(this, a);
128208 };
128209 _2.Hb = function Ytd() {
128210 return Etd(this);
128211 };
128212 _2.hi = function Ztd() {
128213 return false;
128214 };
128215 _2.Kc = function $td() {
128216 return new Fyd(this);
128217 };
128218 _2.Yc = function _td() {
128219 return new Oyd(this);
128220 };
128221 _2.Zc = function aud(a) {
128222 var b;
128223 b = this.gc();
128224 if (a < 0 || a > b)
128225 throw vbb(new Cyd(a, b));
128226 return new Pyd(this, a);
128227 };
128228 _2.ji = function bud(a, b) {
128229 this.ii(a, this.Xc(b));
128230 };
128231 _2.Mc = function cud(a) {
128232 return Ftd(this, a);
128233 };
128234 _2.li = function dud(a, b) {
128235 return b;
128236 };
128237 _2._c = function eud(a, b) {
128238 return Gtd(this, a, b);
128239 };
128240 _2.Ib = function fud() {
128241 return Htd(this);
128242 };
128243 _2.ni = function gud() {
128244 return true;
128245 };
128246 _2.oi = function hud(a, b) {
128247 return Itd(this, b);
128248 };
128249 mdb(Tte, "AbstractEList", 67);
128250 bcb(63, 67, oue, yud, zud, Aud);
128251 _2.Vh = function Bud(a, b) {
128252 return iud(this, a, b);
128253 };
128254 _2.Wh = function Cud(a) {
128255 return jud(this, a);
128256 };
128257 _2.Xh = function Dud(a, b) {
128258 kud(this, a, b);
128259 };
128260 _2.Yh = function Eud(a) {
128261 lud(this, a);
128262 };
128263 _2.pi = function Fud(a) {
128264 return nud(this, a);
128265 };
128266 _2.$b = function Gud() {
128267 oud(this);
128268 };
128269 _2.Hc = function Hud(a) {
128270 return pud(this, a);
128271 };
128272 _2.Xb = function Iud(a) {
128273 return qud(this, a);
128274 };
128275 _2.qi = function Jud(a) {
128276 var b, c2, d;
128277 ++this.j;
128278 c2 = this.g == null ? 0 : this.g.length;
128279 if (a > c2) {
128280 d = this.g;
128281 b = c2 + (c2 / 2 | 0) + 4;
128282 b < a && (b = a);
128283 this.g = this.ri(b);
128284 d != null && $fb(d, 0, this.g, 0, this.i);
128285 }
128286 };
128287 _2.Xc = function Kud(a) {
128288 return rud(this, a);
128289 };
128290 _2.dc = function Lud() {
128291 return this.i == 0;
128292 };
128293 _2.ii = function Mud(a, b) {
128294 return sud(this, a, b);
128295 };
128296 _2.ri = function Nud(a) {
128297 return KC(SI, Uhe, 1, a, 5, 1);
128298 };
128299 _2.ki = function Oud(a) {
128300 return this.g[a];
128301 };
128302 _2.$c = function Pud(a) {
128303 return tud(this, a);
128304 };
128305 _2.mi = function Qud(a, b) {
128306 return uud(this, a, b);
128307 };
128308 _2.gc = function Rud() {
128309 return this.i;
128310 };
128311 _2.Pc = function Sud() {
128312 return wud(this);
128313 };
128314 _2.Qc = function Tud(a) {
128315 return xud(this, a);
128316 };
128317 _2.i = 0;
128318 var y4 = mdb(Tte, "BasicEList", 63);
128319 var X4 = odb(Tte, "TreeIterator");
128320 bcb(694, 63, pue);
128321 _2.Nb = function Xud(a) {
128322 Rrb(this, a);
128323 };
128324 _2.Ob = function Yud() {
128325 return this.g == null && !this.c ? Uud(this) : this.g == null || this.i != 0 && BD(this.g[this.i - 1], 47).Ob();
128326 };
128327 _2.Pb = function Zud() {
128328 return Vud(this);
128329 };
128330 _2.Qb = function $ud() {
128331 if (!this.e) {
128332 throw vbb(new Zdb("There is no valid object to remove."));
128333 }
128334 this.e.Qb();
128335 };
128336 _2.c = false;
128337 mdb(Tte, "AbstractTreeIterator", 694);
128338 bcb(685, 694, pue, _ud);
128339 _2.si = function avd(a) {
128340 var b;
128341 b = BD(a, 56).Wg().Kc();
128342 JD(b, 279) && BD(b, 279).Nk(new bvd());
128343 return b;
128344 };
128345 mdb(jue, "ElkGraphUtil/PropertiesSkippingTreeIterator", 685);
128346 bcb(952, 1, {}, bvd);
128347 mdb(jue, "ElkGraphUtil/PropertiesSkippingTreeIterator/1", 952);
128348 var cvd, dvd;
128349 var Y3 = mdb(jue, "ElkReflect", null);
128350 bcb(889, 1, hse, jvd);
128351 _2.vg = function kvd(a) {
128352 return evd(), sqb(BD(a, 174));
128353 };
128354 mdb(jue, "ElkReflect/lambda$0$Type", 889);
128355 var lvd;
128356 odb(Tte, "ResourceLocator");
128357 bcb(1051, 1, {});
128358 mdb(Tte, "DelegatingResourceLocator", 1051);
128359 bcb(1052, 1051, {});
128360 mdb("org.eclipse.emf.common", "EMFPlugin", 1052);
128361 var $3 = odb(cve, "Adapter");
128362 var _3 = odb(cve, "Notification");
128363 bcb(1153, 1, dve);
128364 _2.ti = function vvd() {
128365 return this.d;
128366 };
128367 _2.ui = function wvd(a) {
128368 };
128369 _2.vi = function xvd(a) {
128370 this.d = a;
128371 };
128372 _2.wi = function yvd(a) {
128373 this.d == a && (this.d = null);
128374 };
128375 _2.d = null;
128376 mdb(hte, "AdapterImpl", 1153);
128377 bcb(1995, 67, eve);
128378 _2.Vh = function Fvd(a, b) {
128379 return zvd(this, a, b);
128380 };
128381 _2.Wh = function Gvd(a) {
128382 var b, c2, d;
128383 ++this.j;
128384 if (a.dc()) {
128385 return false;
128386 } else {
128387 b = this.Vi();
128388 for (d = a.Kc(); d.Ob(); ) {
128389 c2 = d.Pb();
128390 this.Ii(this.oi(b, c2));
128391 ++b;
128392 }
128393 return true;
128394 }
128395 };
128396 _2.Xh = function Hvd(a, b) {
128397 Avd(this, a, b);
128398 };
128399 _2.Yh = function Ivd(a) {
128400 Bvd(this, a);
128401 };
128402 _2.Gi = function Jvd() {
128403 return this.Ji();
128404 };
128405 _2.$b = function Kvd() {
128406 Cvd(this, this.Vi(), this.Wi());
128407 };
128408 _2.Hc = function Lvd(a) {
128409 return this.Li(a);
128410 };
128411 _2.Ic = function Mvd(a) {
128412 return this.Mi(a);
128413 };
128414 _2.Hi = function Nvd(a, b) {
128415 this.Si().jm();
128416 };
128417 _2.Ii = function Ovd(a) {
128418 this.Si().jm();
128419 };
128420 _2.Ji = function Pvd() {
128421 return this.Si();
128422 };
128423 _2.Ki = function Qvd() {
128424 this.Si().jm();
128425 };
128426 _2.Li = function Rvd(a) {
128427 return this.Si().jm();
128428 };
128429 _2.Mi = function Svd(a) {
128430 return this.Si().jm();
128431 };
128432 _2.Ni = function Tvd(a) {
128433 return this.Si().jm();
128434 };
128435 _2.Oi = function Uvd(a) {
128436 return this.Si().jm();
128437 };
128438 _2.Pi = function Vvd() {
128439 return this.Si().jm();
128440 };
128441 _2.Qi = function Wvd(a) {
128442 return this.Si().jm();
128443 };
128444 _2.Ri = function Xvd() {
128445 return this.Si().jm();
128446 };
128447 _2.Ti = function Yvd(a) {
128448 return this.Si().jm();
128449 };
128450 _2.Ui = function Zvd(a, b) {
128451 return this.Si().jm();
128452 };
128453 _2.Vi = function $vd() {
128454 return this.Si().jm();
128455 };
128456 _2.Wi = function _vd() {
128457 return this.Si().jm();
128458 };
128459 _2.Xi = function awd(a) {
128460 return this.Si().jm();
128461 };
128462 _2.Yi = function bwd() {
128463 return this.Si().jm();
128464 };
128465 _2.Fb = function cwd(a) {
128466 return this.Ni(a);
128467 };
128468 _2.Xb = function dwd(a) {
128469 return this.li(a, this.Oi(a));
128470 };
128471 _2.Hb = function ewd() {
128472 return this.Pi();
128473 };
128474 _2.Xc = function fwd(a) {
128475 return this.Qi(a);
128476 };
128477 _2.dc = function gwd() {
128478 return this.Ri();
128479 };
128480 _2.ii = function hwd(a, b) {
128481 return Dvd(this, a, b);
128482 };
128483 _2.ki = function iwd(a) {
128484 return this.Oi(a);
128485 };
128486 _2.$c = function jwd(a) {
128487 return Evd(this, a);
128488 };
128489 _2.Mc = function kwd(a) {
128490 var b;
128491 b = this.Xc(a);
128492 if (b >= 0) {
128493 this.$c(b);
128494 return true;
128495 } else {
128496 return false;
128497 }
128498 };
128499 _2.mi = function lwd(a, b) {
128500 return this.Ui(a, this.oi(a, b));
128501 };
128502 _2.gc = function mwd() {
128503 return this.Vi();
128504 };
128505 _2.Pc = function nwd() {
128506 return this.Wi();
128507 };
128508 _2.Qc = function owd(a) {
128509 return this.Xi(a);
128510 };
128511 _2.Ib = function pwd() {
128512 return this.Yi();
128513 };
128514 mdb(Tte, "DelegatingEList", 1995);
128515 bcb(1996, 1995, eve);
128516 _2.Vh = function xwd(a, b) {
128517 return qwd(this, a, b);
128518 };
128519 _2.Wh = function ywd(a) {
128520 return this.Vh(this.Vi(), a);
128521 };
128522 _2.Xh = function zwd(a, b) {
128523 rwd(this, a, b);
128524 };
128525 _2.Yh = function Awd(a) {
128526 swd(this, a);
128527 };
128528 _2.ai = function Bwd() {
128529 return !this.bj();
128530 };
128531 _2.$b = function Cwd() {
128532 vwd(this);
128533 };
128534 _2.Zi = function Dwd(a, b, c2, d, e) {
128535 return new Cxd(this, a, b, c2, d, e);
128536 };
128537 _2.$i = function Ewd(a) {
128538 Uhd(this.Ai(), a);
128539 };
128540 _2._i = function Fwd() {
128541 return null;
128542 };
128543 _2.aj = function Gwd() {
128544 return -1;
128545 };
128546 _2.Ai = function Hwd() {
128547 return null;
128548 };
128549 _2.bj = function Iwd() {
128550 return false;
128551 };
128552 _2.cj = function Jwd(a, b) {
128553 return b;
128554 };
128555 _2.dj = function Kwd(a, b) {
128556 return b;
128557 };
128558 _2.ej = function Lwd() {
128559 return false;
128560 };
128561 _2.fj = function Mwd() {
128562 return !this.Ri();
128563 };
128564 _2.ii = function Nwd(a, b) {
128565 var c2, d;
128566 if (this.ej()) {
128567 d = this.fj();
128568 c2 = Dvd(this, a, b);
128569 this.$i(this.Zi(7, meb(b), c2, a, d));
128570 return c2;
128571 } else {
128572 return Dvd(this, a, b);
128573 }
128574 };
128575 _2.$c = function Owd(a) {
128576 var b, c2, d, e;
128577 if (this.ej()) {
128578 c2 = null;
128579 d = this.fj();
128580 b = this.Zi(4, e = Evd(this, a), null, a, d);
128581 if (this.bj() && !!e) {
128582 c2 = this.dj(e, c2);
128583 if (!c2) {
128584 this.$i(b);
128585 } else {
128586 c2.Ei(b);
128587 c2.Fi();
128588 }
128589 } else {
128590 if (!c2) {
128591 this.$i(b);
128592 } else {
128593 c2.Ei(b);
128594 c2.Fi();
128595 }
128596 }
128597 return e;
128598 } else {
128599 e = Evd(this, a);
128600 if (this.bj() && !!e) {
128601 c2 = this.dj(e, null);
128602 !!c2 && c2.Fi();
128603 }
128604 return e;
128605 }
128606 };
128607 _2.mi = function Pwd(a, b) {
128608 return wwd(this, a, b);
128609 };
128610 mdb(hte, "DelegatingNotifyingListImpl", 1996);
128611 bcb(143, 1, fve);
128612 _2.Ei = function pxd(a) {
128613 return Qwd(this, a);
128614 };
128615 _2.Fi = function qxd() {
128616 Rwd(this);
128617 };
128618 _2.xi = function rxd() {
128619 return this.d;
128620 };
128621 _2._i = function sxd() {
128622 return null;
128623 };
128624 _2.gj = function txd() {
128625 return null;
128626 };
128627 _2.yi = function uxd(a) {
128628 return -1;
128629 };
128630 _2.zi = function vxd() {
128631 return $wd(this);
128632 };
128633 _2.Ai = function wxd() {
128634 return null;
128635 };
128636 _2.Bi = function xxd() {
128637 return hxd(this);
128638 };
128639 _2.Ci = function yxd() {
128640 return this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o;
128641 };
128642 _2.hj = function zxd() {
128643 return false;
128644 };
128645 _2.Di = function Axd(a) {
128646 var b, c2, d, e, f2, g, h, i3, j, k, l;
128647 switch (this.d) {
128648 case 1:
128649 case 2: {
128650 e = a.xi();
128651 switch (e) {
128652 case 1:
128653 case 2: {
128654 f2 = a.Ai();
128655 if (PD(f2) === PD(this.Ai()) && this.yi(null) == a.yi(null)) {
128656 this.g = a.zi();
128657 a.xi() == 1 && (this.d = 1);
128658 return true;
128659 }
128660 }
128661 }
128662 }
128663 case 4: {
128664 e = a.xi();
128665 switch (e) {
128666 case 4: {
128667 f2 = a.Ai();
128668 if (PD(f2) === PD(this.Ai()) && this.yi(null) == a.yi(null)) {
128669 j = jxd(this);
128670 i3 = this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o;
128671 g = a.Ci();
128672 this.d = 6;
128673 l = new zud(2);
128674 if (i3 <= g) {
128675 wtd(l, this.n);
128676 wtd(l, a.Bi());
128677 this.g = OC(GC(WD, 1), oje, 25, 15, [this.o = i3, g + 1]);
128678 } else {
128679 wtd(l, a.Bi());
128680 wtd(l, this.n);
128681 this.g = OC(GC(WD, 1), oje, 25, 15, [this.o = g, i3]);
128682 }
128683 this.n = l;
128684 j || (this.o = -2 - this.o - 1);
128685 return true;
128686 }
128687 break;
128688 }
128689 }
128690 break;
128691 }
128692 case 6: {
128693 e = a.xi();
128694 switch (e) {
128695 case 4: {
128696 f2 = a.Ai();
128697 if (PD(f2) === PD(this.Ai()) && this.yi(null) == a.yi(null)) {
128698 j = jxd(this);
128699 g = a.Ci();
128700 k = BD(this.g, 48);
128701 d = KC(WD, oje, 25, k.length + 1, 15, 1);
128702 b = 0;
128703 while (b < k.length) {
128704 h = k[b];
128705 if (h <= g) {
128706 d[b++] = h;
128707 ++g;
128708 } else {
128709 break;
128710 }
128711 }
128712 c2 = BD(this.n, 15);
128713 c2.Vc(b, a.Bi());
128714 d[b] = g;
128715 while (++b < d.length) {
128716 d[b] = k[b - 1];
128717 }
128718 this.g = d;
128719 j || (this.o = -2 - d[0]);
128720 return true;
128721 }
128722 break;
128723 }
128724 }
128725 break;
128726 }
128727 }
128728 return false;
128729 };
128730 _2.Ib = function Bxd() {
128731 var a, b, c2, d;
128732 d = new Jfb(hdb(this.gm) + "@" + (b = tb(this) >>> 0, b.toString(16)));
128733 d.a += " (eventType: ";
128734 switch (this.d) {
128735 case 1: {
128736 d.a += "SET";
128737 break;
128738 }
128739 case 2: {
128740 d.a += "UNSET";
128741 break;
128742 }
128743 case 3: {
128744 d.a += "ADD";
128745 break;
128746 }
128747 case 5: {
128748 d.a += "ADD_MANY";
128749 break;
128750 }
128751 case 4: {
128752 d.a += "REMOVE";
128753 break;
128754 }
128755 case 6: {
128756 d.a += "REMOVE_MANY";
128757 break;
128758 }
128759 case 7: {
128760 d.a += "MOVE";
128761 break;
128762 }
128763 case 8: {
128764 d.a += "REMOVING_ADAPTER";
128765 break;
128766 }
128767 case 9: {
128768 d.a += "RESOLVE";
128769 break;
128770 }
128771 default: {
128772 Cfb(d, this.d);
128773 break;
128774 }
128775 }
128776 ixd(this) && (d.a += ", touch: true", d);
128777 d.a += ", position: ";
128778 Cfb(d, this.o < 0 ? this.o < -2 ? -2 - this.o - 1 : -1 : this.o);
128779 d.a += ", notifier: ";
128780 Dfb(d, this.Ai());
128781 d.a += ", feature: ";
128782 Dfb(d, this._i());
128783 d.a += ", oldValue: ";
128784 Dfb(d, hxd(this));
128785 d.a += ", newValue: ";
128786 if (this.d == 6 && JD(this.g, 48)) {
128787 c2 = BD(this.g, 48);
128788 d.a += "[";
128789 for (a = 0; a < c2.length; ) {
128790 d.a += c2[a];
128791 ++a < c2.length && (d.a += She, d);
128792 }
128793 d.a += "]";
128794 } else {
128795 Dfb(d, $wd(this));
128796 }
128797 d.a += ", isTouch: ";
128798 Ffb(d, ixd(this));
128799 d.a += ", wasSet: ";
128800 Ffb(d, jxd(this));
128801 d.a += ")";
128802 return d.a;
128803 };
128804 _2.d = 0;
128805 _2.e = 0;
128806 _2.f = 0;
128807 _2.j = 0;
128808 _2.k = 0;
128809 _2.o = 0;
128810 _2.p = 0;
128811 mdb(hte, "NotificationImpl", 143);
128812 bcb(1167, 143, fve, Cxd);
128813 _2._i = function Dxd() {
128814 return this.a._i();
128815 };
128816 _2.yi = function Exd(a) {
128817 return this.a.aj();
128818 };
128819 _2.Ai = function Fxd() {
128820 return this.a.Ai();
128821 };
128822 mdb(hte, "DelegatingNotifyingListImpl/1", 1167);
128823 bcb(242, 63, oue, Hxd, Ixd);
128824 _2.Fc = function Jxd(a) {
128825 return Gxd(this, BD(a, 366));
128826 };
128827 _2.Ei = function Kxd(a) {
128828 return Gxd(this, a);
128829 };
128830 _2.Fi = function Lxd() {
128831 var a, b, c2;
128832 for (a = 0; a < this.i; ++a) {
128833 b = BD(this.g[a], 366);
128834 c2 = b.Ai();
128835 c2 != null && b.xi() != -1 && BD(c2, 92).Ng(b);
128836 }
128837 };
128838 _2.ri = function Mxd(a) {
128839 return KC(_3, Uhe, 366, a, 0, 1);
128840 };
128841 mdb(hte, "NotificationChainImpl", 242);
128842 bcb(1378, 90, gte);
128843 _2.Kg = function Nxd() {
128844 return this.e;
128845 };
128846 _2.Mg = function Oxd() {
128847 return (this.f & 1) != 0;
128848 };
128849 _2.f = 1;
128850 mdb(hte, "NotifierImpl", 1378);
128851 bcb(1993, 63, oue);
128852 _2.Vh = function $xd(a, b) {
128853 return Pxd(this, a, b);
128854 };
128855 _2.Wh = function _xd(a) {
128856 return this.Vh(this.i, a);
128857 };
128858 _2.Xh = function ayd(a, b) {
128859 Qxd(this, a, b);
128860 };
128861 _2.Yh = function byd(a) {
128862 Rxd(this, a);
128863 };
128864 _2.ai = function cyd() {
128865 return !this.bj();
128866 };
128867 _2.$b = function dyd() {
128868 Uxd(this);
128869 };
128870 _2.Zi = function eyd(a, b, c2, d, e) {
128871 return new vyd(this, a, b, c2, d, e);
128872 };
128873 _2.$i = function fyd(a) {
128874 Uhd(this.Ai(), a);
128875 };
128876 _2._i = function gyd() {
128877 return null;
128878 };
128879 _2.aj = function hyd() {
128880 return -1;
128881 };
128882 _2.Ai = function iyd() {
128883 return null;
128884 };
128885 _2.bj = function jyd() {
128886 return false;
128887 };
128888 _2.ij = function kyd() {
128889 return false;
128890 };
128891 _2.cj = function lyd(a, b) {
128892 return b;
128893 };
128894 _2.dj = function myd(a, b) {
128895 return b;
128896 };
128897 _2.ej = function nyd() {
128898 return false;
128899 };
128900 _2.fj = function oyd() {
128901 return this.i != 0;
128902 };
128903 _2.ii = function pyd(a, b) {
128904 return Wxd(this, a, b);
128905 };
128906 _2.$c = function qyd(a) {
128907 return Xxd(this, a);
128908 };
128909 _2.mi = function ryd(a, b) {
128910 return Zxd(this, a, b);
128911 };
128912 _2.jj = function syd(a, b) {
128913 return b;
128914 };
128915 _2.kj = function tyd(a, b) {
128916 return b;
128917 };
128918 _2.lj = function uyd(a, b, c2) {
128919 return c2;
128920 };
128921 mdb(hte, "NotifyingListImpl", 1993);
128922 bcb(1166, 143, fve, vyd);
128923 _2._i = function wyd() {
128924 return this.a._i();
128925 };
128926 _2.yi = function xyd(a) {
128927 return this.a.aj();
128928 };
128929 _2.Ai = function yyd() {
128930 return this.a.Ai();
128931 };
128932 mdb(hte, "NotifyingListImpl/1", 1166);
128933 bcb(953, 63, oue, zyd);
128934 _2.Hc = function Ayd(a) {
128935 if (this.i > 10) {
128936 if (!this.b || this.c.j != this.a) {
128937 this.b = new Vqb(this);
128938 this.a = this.j;
128939 }
128940 return Rqb(this.b, a);
128941 } else {
128942 return pud(this, a);
128943 }
128944 };
128945 _2.ni = function Byd() {
128946 return true;
128947 };
128948 _2.a = 0;
128949 mdb(Tte, "AbstractEList/1", 953);
128950 bcb(295, 73, Mje, Cyd);
128951 mdb(Tte, "AbstractEList/BasicIndexOutOfBoundsException", 295);
128952 bcb(40, 1, aie, Fyd);
128953 _2.Nb = function Iyd(a) {
128954 Rrb(this, a);
128955 };
128956 _2.mj = function Gyd() {
128957 if (this.i.j != this.f) {
128958 throw vbb(new Apb());
128959 }
128960 };
128961 _2.nj = function Hyd() {
128962 return Dyd(this);
128963 };
128964 _2.Ob = function Jyd() {
128965 return this.e != this.i.gc();
128966 };
128967 _2.Pb = function Kyd() {
128968 return this.nj();
128969 };
128970 _2.Qb = function Lyd() {
128971 Eyd(this);
128972 };
128973 _2.e = 0;
128974 _2.f = 0;
128975 _2.g = -1;
128976 mdb(Tte, "AbstractEList/EIterator", 40);
128977 bcb(278, 40, jie, Oyd, Pyd);
128978 _2.Qb = function Xyd() {
128979 Eyd(this);
128980 };
128981 _2.Rb = function Qyd(a) {
128982 Myd(this, a);
128983 };
128984 _2.oj = function Ryd() {
128985 var b;
128986 try {
128987 b = this.d.Xb(--this.e);
128988 this.mj();
128989 this.g = this.e;
128990 return b;
128991 } catch (a) {
128992 a = ubb(a);
128993 if (JD(a, 73)) {
128994 this.mj();
128995 throw vbb(new utb());
128996 } else
128997 throw vbb(a);
128998 }
128999 };
129000 _2.pj = function Syd(a) {
129001 Nyd(this, a);
129002 };
129003 _2.Sb = function Tyd() {
129004 return this.e != 0;
129005 };
129006 _2.Tb = function Uyd() {
129007 return this.e;
129008 };
129009 _2.Ub = function Vyd() {
129010 return this.oj();
129011 };
129012 _2.Vb = function Wyd() {
129013 return this.e - 1;
129014 };
129015 _2.Wb = function Yyd(a) {
129016 this.pj(a);
129017 };
129018 mdb(Tte, "AbstractEList/EListIterator", 278);
129019 bcb(341, 40, aie, $yd);
129020 _2.nj = function _yd() {
129021 return Zyd(this);
129022 };
129023 _2.Qb = function azd() {
129024 throw vbb(new bgb());
129025 };
129026 mdb(Tte, "AbstractEList/NonResolvingEIterator", 341);
129027 bcb(385, 278, jie, bzd, czd);
129028 _2.Rb = function dzd(a) {
129029 throw vbb(new bgb());
129030 };
129031 _2.nj = function ezd() {
129032 var b;
129033 try {
129034 b = this.c.ki(this.e);
129035 this.mj();
129036 this.g = this.e++;
129037 return b;
129038 } catch (a) {
129039 a = ubb(a);
129040 if (JD(a, 73)) {
129041 this.mj();
129042 throw vbb(new utb());
129043 } else
129044 throw vbb(a);
129045 }
129046 };
129047 _2.oj = function fzd() {
129048 var b;
129049 try {
129050 b = this.c.ki(--this.e);
129051 this.mj();
129052 this.g = this.e;
129053 return b;
129054 } catch (a) {
129055 a = ubb(a);
129056 if (JD(a, 73)) {
129057 this.mj();
129058 throw vbb(new utb());
129059 } else
129060 throw vbb(a);
129061 }
129062 };
129063 _2.Qb = function gzd() {
129064 throw vbb(new bgb());
129065 };
129066 _2.Wb = function hzd(a) {
129067 throw vbb(new bgb());
129068 };
129069 mdb(Tte, "AbstractEList/NonResolvingEListIterator", 385);
129070 bcb(1982, 67, ive);
129071 _2.Vh = function pzd(a, b) {
129072 var c2, d, e, f2, g, h, i3, j, k, l, m;
129073 e = b.gc();
129074 if (e != 0) {
129075 j = BD(Ajd(this.a, 4), 126);
129076 k = j == null ? 0 : j.length;
129077 m = k + e;
129078 d = nzd(this, m);
129079 l = k - a;
129080 l > 0 && $fb(j, a, d, a + e, l);
129081 i3 = b.Kc();
129082 for (g = 0; g < e; ++g) {
129083 h = i3.Pb();
129084 c2 = a + g;
129085 lzd(d, c2, Itd(this, h));
129086 }
129087 b0d(this, d);
129088 for (f2 = 0; f2 < e; ++f2) {
129089 h = d[a];
129090 this.bi(a, h);
129091 ++a;
129092 }
129093 return true;
129094 } else {
129095 ++this.j;
129096 return false;
129097 }
129098 };
129099 _2.Wh = function qzd(a) {
129100 var b, c2, d, e, f2, g, h, i3, j;
129101 d = a.gc();
129102 if (d != 0) {
129103 i3 = (c2 = BD(Ajd(this.a, 4), 126), c2 == null ? 0 : c2.length);
129104 j = i3 + d;
129105 b = nzd(this, j);
129106 h = a.Kc();
129107 for (f2 = i3; f2 < j; ++f2) {
129108 g = h.Pb();
129109 lzd(b, f2, Itd(this, g));
129110 }
129111 b0d(this, b);
129112 for (e = i3; e < j; ++e) {
129113 g = b[e];
129114 this.bi(e, g);
129115 }
129116 return true;
129117 } else {
129118 ++this.j;
129119 return false;
129120 }
129121 };
129122 _2.Xh = function rzd(a, b) {
129123 var c2, d, e, f2;
129124 d = BD(Ajd(this.a, 4), 126);
129125 e = d == null ? 0 : d.length;
129126 c2 = nzd(this, e + 1);
129127 f2 = Itd(this, b);
129128 a != e && $fb(d, a, c2, a + 1, e - a);
129129 NC(c2, a, f2);
129130 b0d(this, c2);
129131 this.bi(a, b);
129132 };
129133 _2.Yh = function szd(a) {
129134 var b, c2, d;
129135 d = (c2 = BD(Ajd(this.a, 4), 126), c2 == null ? 0 : c2.length);
129136 b = nzd(this, d + 1);
129137 lzd(b, d, Itd(this, a));
129138 b0d(this, b);
129139 this.bi(d, a);
129140 };
129141 _2.Zh = function tzd() {
129142 return new Uzd(this);
129143 };
129144 _2.$h = function uzd() {
129145 return new Xzd(this);
129146 };
129147 _2._h = function vzd(a) {
129148 var b, c2;
129149 c2 = (b = BD(Ajd(this.a, 4), 126), b == null ? 0 : b.length);
129150 if (a < 0 || a > c2)
129151 throw vbb(new Cyd(a, c2));
129152 return new Yzd(this, a);
129153 };
129154 _2.$b = function wzd() {
129155 var a, b;
129156 ++this.j;
129157 a = BD(Ajd(this.a, 4), 126);
129158 b = a == null ? 0 : a.length;
129159 b0d(this, null);
129160 Atd(this, b, a);
129161 };
129162 _2.Hc = function xzd(a) {
129163 var b, c2, d, e, f2;
129164 b = BD(Ajd(this.a, 4), 126);
129165 if (b != null) {
129166 if (a != null) {
129167 for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
129168 c2 = d[e];
129169 if (pb(a, c2)) {
129170 return true;
129171 }
129172 }
129173 } else {
129174 for (d = b, e = 0, f2 = d.length; e < f2; ++e) {
129175 c2 = d[e];
129176 if (PD(c2) === PD(a)) {
129177 return true;
129178 }
129179 }
129180 }
129181 }
129182 return false;
129183 };
129184 _2.Xb = function yzd(a) {
129185 var b, c2;
129186 b = BD(Ajd(this.a, 4), 126);
129187 c2 = b == null ? 0 : b.length;
129188 if (a >= c2)
129189 throw vbb(new Cyd(a, c2));
129190 return b[a];
129191 };
129192 _2.Xc = function zzd(a) {
129193 var b, c2, d;
129194 b = BD(Ajd(this.a, 4), 126);
129195 if (b != null) {
129196 if (a != null) {
129197 for (c2 = 0, d = b.length; c2 < d; ++c2) {
129198 if (pb(a, b[c2])) {
129199 return c2;
129200 }
129201 }
129202 } else {
129203 for (c2 = 0, d = b.length; c2 < d; ++c2) {
129204 if (PD(b[c2]) === PD(a)) {
129205 return c2;
129206 }
129207 }
129208 }
129209 }
129210 return -1;
129211 };
129212 _2.dc = function Azd() {
129213 return BD(Ajd(this.a, 4), 126) == null;
129214 };
129215 _2.Kc = function Bzd() {
129216 return new Lzd(this);
129217 };
129218 _2.Yc = function Czd() {
129219 return new Pzd(this);
129220 };
129221 _2.Zc = function Dzd(a) {
129222 var b, c2;
129223 c2 = (b = BD(Ajd(this.a, 4), 126), b == null ? 0 : b.length);
129224 if (a < 0 || a > c2)
129225 throw vbb(new Cyd(a, c2));
129226 return new Qzd(this, a);
129227 };
129228 _2.ii = function Ezd(a, b) {
129229 var c2, d, e;
129230 c2 = mzd(this);
129231 e = c2 == null ? 0 : c2.length;
129232 if (a >= e)
129233 throw vbb(new qcb(lue + a + mue + e));
129234 if (b >= e)
129235 throw vbb(new qcb(nue + b + mue + e));
129236 d = c2[b];
129237 if (a != b) {
129238 a < b ? $fb(c2, a, c2, a + 1, b - a) : $fb(c2, b + 1, c2, b, a - b);
129239 NC(c2, a, d);
129240 b0d(this, c2);
129241 }
129242 return d;
129243 };
129244 _2.ki = function Fzd(a) {
129245 return BD(Ajd(this.a, 4), 126)[a];
129246 };
129247 _2.$c = function Gzd(a) {
129248 return ozd(this, a);
129249 };
129250 _2.mi = function Hzd(a, b) {
129251 var c2, d;
129252 c2 = mzd(this);
129253 d = c2[a];
129254 lzd(c2, a, Itd(this, b));
129255 b0d(this, c2);
129256 return d;
129257 };
129258 _2.gc = function Izd() {
129259 var a;
129260 return a = BD(Ajd(this.a, 4), 126), a == null ? 0 : a.length;
129261 };
129262 _2.Pc = function Jzd() {
129263 var a, b, c2;
129264 a = BD(Ajd(this.a, 4), 126);
129265 c2 = a == null ? 0 : a.length;
129266 b = KC($3, hve, 415, c2, 0, 1);
129267 c2 > 0 && $fb(a, 0, b, 0, c2);
129268 return b;
129269 };
129270 _2.Qc = function Kzd(a) {
129271 var b, c2, d;
129272 b = BD(Ajd(this.a, 4), 126);
129273 d = b == null ? 0 : b.length;
129274 if (d > 0) {
129275 if (a.length < d) {
129276 c2 = izd(rb(a).c, d);
129277 a = c2;
129278 }
129279 $fb(b, 0, a, 0, d);
129280 }
129281 a.length > d && NC(a, d, null);
129282 return a;
129283 };
129284 var jzd;
129285 mdb(Tte, "ArrayDelegatingEList", 1982);
129286 bcb(1038, 40, aie, Lzd);
129287 _2.mj = function Mzd() {
129288 if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) {
129289 throw vbb(new Apb());
129290 }
129291 };
129292 _2.Qb = function Nzd() {
129293 Eyd(this);
129294 this.a = BD(Ajd(this.b.a, 4), 126);
129295 };
129296 mdb(Tte, "ArrayDelegatingEList/EIterator", 1038);
129297 bcb(706, 278, jie, Pzd, Qzd);
129298 _2.mj = function Rzd() {
129299 if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) {
129300 throw vbb(new Apb());
129301 }
129302 };
129303 _2.pj = function Szd(a) {
129304 Nyd(this, a);
129305 this.a = BD(Ajd(this.b.a, 4), 126);
129306 };
129307 _2.Qb = function Tzd() {
129308 Eyd(this);
129309 this.a = BD(Ajd(this.b.a, 4), 126);
129310 };
129311 mdb(Tte, "ArrayDelegatingEList/EListIterator", 706);
129312 bcb(1039, 341, aie, Uzd);
129313 _2.mj = function Vzd() {
129314 if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) {
129315 throw vbb(new Apb());
129316 }
129317 };
129318 mdb(Tte, "ArrayDelegatingEList/NonResolvingEIterator", 1039);
129319 bcb(707, 385, jie, Xzd, Yzd);
129320 _2.mj = function Zzd() {
129321 if (this.b.j != this.f || PD(BD(Ajd(this.b.a, 4), 126)) !== PD(this.a)) {
129322 throw vbb(new Apb());
129323 }
129324 };
129325 mdb(Tte, "ArrayDelegatingEList/NonResolvingEListIterator", 707);
129326 bcb(606, 295, Mje, $zd);
129327 mdb(Tte, "BasicEList/BasicIndexOutOfBoundsException", 606);
129328 bcb(696, 63, oue, _zd);
129329 _2.Vc = function aAd(a, b) {
129330 throw vbb(new bgb());
129331 };
129332 _2.Fc = function bAd(a) {
129333 throw vbb(new bgb());
129334 };
129335 _2.Wc = function cAd(a, b) {
129336 throw vbb(new bgb());
129337 };
129338 _2.Gc = function dAd(a) {
129339 throw vbb(new bgb());
129340 };
129341 _2.$b = function eAd() {
129342 throw vbb(new bgb());
129343 };
129344 _2.qi = function fAd(a) {
129345 throw vbb(new bgb());
129346 };
129347 _2.Kc = function gAd() {
129348 return this.Zh();
129349 };
129350 _2.Yc = function hAd() {
129351 return this.$h();
129352 };
129353 _2.Zc = function iAd(a) {
129354 return this._h(a);
129355 };
129356 _2.ii = function jAd(a, b) {
129357 throw vbb(new bgb());
129358 };
129359 _2.ji = function kAd(a, b) {
129360 throw vbb(new bgb());
129361 };
129362 _2.$c = function lAd(a) {
129363 throw vbb(new bgb());
129364 };
129365 _2.Mc = function mAd(a) {
129366 throw vbb(new bgb());
129367 };
129368 _2._c = function nAd(a, b) {
129369 throw vbb(new bgb());
129370 };
129371 mdb(Tte, "BasicEList/UnmodifiableEList", 696);
129372 bcb(705, 1, { 3: 1, 20: 1, 14: 1, 15: 1, 58: 1, 589: 1 });
129373 _2.Vc = function OAd(a, b) {
129374 oAd(this, a, BD(b, 42));
129375 };
129376 _2.Fc = function PAd(a) {
129377 return pAd(this, BD(a, 42));
129378 };
129379 _2.Jc = function XAd(a) {
129380 reb(this, a);
129381 };
129382 _2.Xb = function YAd(a) {
129383 return BD(qud(this.c, a), 133);
129384 };
129385 _2.ii = function fBd(a, b) {
129386 return BD(this.c.ii(a, b), 42);
129387 };
129388 _2.ji = function gBd(a, b) {
129389 GAd(this, a, BD(b, 42));
129390 };
129391 _2.Lc = function jBd() {
129392 return new YAb(null, new Kub(this, 16));
129393 };
129394 _2.$c = function kBd(a) {
129395 return BD(this.c.$c(a), 42);
129396 };
129397 _2._c = function mBd(a, b) {
129398 return MAd(this, a, BD(b, 42));
129399 };
129400 _2.ad = function oBd(a) {
129401 ktb(this, a);
129402 };
129403 _2.Nc = function pBd() {
129404 return new Kub(this, 16);
129405 };
129406 _2.Oc = function qBd() {
129407 return new YAb(null, new Kub(this, 16));
129408 };
129409 _2.Wc = function QAd(a, b) {
129410 return this.c.Wc(a, b);
129411 };
129412 _2.Gc = function RAd(a) {
129413 return this.c.Gc(a);
129414 };
129415 _2.$b = function SAd() {
129416 this.c.$b();
129417 };
129418 _2.Hc = function TAd(a) {
129419 return this.c.Hc(a);
129420 };
129421 _2.Ic = function UAd(a) {
129422 return Be(this.c, a);
129423 };
129424 _2.qj = function VAd() {
129425 var a, b, c2;
129426 if (this.d == null) {
129427 this.d = KC(y4, jve, 63, 2 * this.f + 1, 0, 1);
129428 c2 = this.e;
129429 this.f = 0;
129430 for (b = this.c.Kc(); b.e != b.i.gc(); ) {
129431 a = BD(b.nj(), 133);
129432 uAd(this, a);
129433 }
129434 this.e = c2;
129435 }
129436 };
129437 _2.Fb = function WAd(a) {
129438 return zAd(this, a);
129439 };
129440 _2.Hb = function ZAd() {
129441 return Etd(this.c);
129442 };
129443 _2.Xc = function $Ad(a) {
129444 return this.c.Xc(a);
129445 };
129446 _2.rj = function _Ad() {
129447 this.c = new yBd(this);
129448 };
129449 _2.dc = function aBd() {
129450 return this.f == 0;
129451 };
129452 _2.Kc = function bBd() {
129453 return this.c.Kc();
129454 };
129455 _2.Yc = function cBd() {
129456 return this.c.Yc();
129457 };
129458 _2.Zc = function dBd(a) {
129459 return this.c.Zc(a);
129460 };
129461 _2.sj = function eBd() {
129462 return FAd(this);
129463 };
129464 _2.tj = function hBd(a, b, c2) {
129465 return new zCd(a, b, c2);
129466 };
129467 _2.uj = function iBd() {
129468 return new EBd();
129469 };
129470 _2.Mc = function lBd(a) {
129471 return JAd(this, a);
129472 };
129473 _2.gc = function nBd() {
129474 return this.f;
129475 };
129476 _2.bd = function rBd(a, b) {
129477 return new Jib(this.c, a, b);
129478 };
129479 _2.Pc = function sBd() {
129480 return this.c.Pc();
129481 };
129482 _2.Qc = function tBd(a) {
129483 return this.c.Qc(a);
129484 };
129485 _2.Ib = function uBd() {
129486 return Htd(this.c);
129487 };
129488 _2.e = 0;
129489 _2.f = 0;
129490 mdb(Tte, "BasicEMap", 705);
129491 bcb(1033, 63, oue, yBd);
129492 _2.bi = function zBd(a, b) {
129493 vBd(this, BD(b, 133));
129494 };
129495 _2.ei = function BBd(a, b, c2) {
129496 var d;
129497 ++(d = this, BD(b, 133), d).a.e;
129498 };
129499 _2.fi = function CBd(a, b) {
129500 wBd(this, BD(b, 133));
129501 };
129502 _2.gi = function DBd(a, b, c2) {
129503 xBd(this, BD(b, 133), BD(c2, 133));
129504 };
129505 _2.di = function ABd(a, b) {
129506 tAd(this.a);
129507 };
129508 mdb(Tte, "BasicEMap/1", 1033);
129509 bcb(1034, 63, oue, EBd);
129510 _2.ri = function FBd(a) {
129511 return KC(I4, kve, 612, a, 0, 1);
129512 };
129513 mdb(Tte, "BasicEMap/2", 1034);
129514 bcb(1035, eie, fie, GBd);
129515 _2.$b = function HBd() {
129516 this.a.c.$b();
129517 };
129518 _2.Hc = function IBd(a) {
129519 return qAd(this.a, a);
129520 };
129521 _2.Kc = function JBd() {
129522 return this.a.f == 0 ? (LCd(), KCd.a) : new dCd(this.a);
129523 };
129524 _2.Mc = function KBd(a) {
129525 var b;
129526 b = this.a.f;
129527 LAd(this.a, a);
129528 return this.a.f != b;
129529 };
129530 _2.gc = function LBd() {
129531 return this.a.f;
129532 };
129533 mdb(Tte, "BasicEMap/3", 1035);
129534 bcb(1036, 28, die, MBd);
129535 _2.$b = function NBd() {
129536 this.a.c.$b();
129537 };
129538 _2.Hc = function OBd(a) {
129539 return rAd(this.a, a);
129540 };
129541 _2.Kc = function PBd() {
129542 return this.a.f == 0 ? (LCd(), KCd.a) : new fCd(this.a);
129543 };
129544 _2.gc = function QBd() {
129545 return this.a.f;
129546 };
129547 mdb(Tte, "BasicEMap/4", 1036);
129548 bcb(1037, eie, fie, SBd);
129549 _2.$b = function TBd() {
129550 this.a.c.$b();
129551 };
129552 _2.Hc = function UBd(a) {
129553 var b, c2, d, e, f2, g, h, i3, j;
129554 if (this.a.f > 0 && JD(a, 42)) {
129555 this.a.qj();
129556 i3 = BD(a, 42);
129557 h = i3.cd();
129558 e = h == null ? 0 : tb(h);
129559 f2 = DAd(this.a, e);
129560 b = this.a.d[f2];
129561 if (b) {
129562 c2 = BD(b.g, 367);
129563 j = b.i;
129564 for (g = 0; g < j; ++g) {
129565 d = c2[g];
129566 if (d.Sh() == e && d.Fb(i3)) {
129567 return true;
129568 }
129569 }
129570 }
129571 }
129572 return false;
129573 };
129574 _2.Kc = function VBd() {
129575 return this.a.f == 0 ? (LCd(), KCd.a) : new ZBd(this.a);
129576 };
129577 _2.Mc = function WBd(a) {
129578 return RBd(this, a);
129579 };
129580 _2.gc = function XBd() {
129581 return this.a.f;
129582 };
129583 mdb(Tte, "BasicEMap/5", 1037);
129584 bcb(613, 1, aie, ZBd);
129585 _2.Nb = function $Bd(a) {
129586 Rrb(this, a);
129587 };
129588 _2.Ob = function _Bd() {
129589 return this.b != -1;
129590 };
129591 _2.Pb = function aCd() {
129592 var a;
129593 if (this.f.e != this.c) {
129594 throw vbb(new Apb());
129595 }
129596 if (this.b == -1) {
129597 throw vbb(new utb());
129598 }
129599 this.d = this.a;
129600 this.e = this.b;
129601 YBd(this);
129602 a = BD(this.f.d[this.d].g[this.e], 133);
129603 return this.vj(a);
129604 };
129605 _2.Qb = function bCd() {
129606 if (this.f.e != this.c) {
129607 throw vbb(new Apb());
129608 }
129609 if (this.e == -1) {
129610 throw vbb(new Ydb());
129611 }
129612 this.f.c.Mc(qud(this.f.d[this.d], this.e));
129613 this.c = this.f.e;
129614 this.e = -1;
129615 this.a == this.d && this.b != -1 && --this.b;
129616 };
129617 _2.vj = function cCd(a) {
129618 return a;
129619 };
129620 _2.a = 0;
129621 _2.b = -1;
129622 _2.c = 0;
129623 _2.d = 0;
129624 _2.e = 0;
129625 mdb(Tte, "BasicEMap/BasicEMapIterator", 613);
129626 bcb(1031, 613, aie, dCd);
129627 _2.vj = function eCd(a) {
129628 return a.cd();
129629 };
129630 mdb(Tte, "BasicEMap/BasicEMapKeyIterator", 1031);
129631 bcb(1032, 613, aie, fCd);
129632 _2.vj = function gCd(a) {
129633 return a.dd();
129634 };
129635 mdb(Tte, "BasicEMap/BasicEMapValueIterator", 1032);
129636 bcb(1030, 1, cie, iCd);
129637 _2.wc = function oCd(a) {
129638 stb(this, a);
129639 };
129640 _2.yc = function tCd(a, b, c2) {
129641 return ttb(this, a, b, c2);
129642 };
129643 _2.$b = function jCd() {
129644 this.a.c.$b();
129645 };
129646 _2._b = function kCd(a) {
129647 return hCd(this, a);
129648 };
129649 _2.uc = function lCd(a) {
129650 return rAd(this.a, a);
129651 };
129652 _2.vc = function mCd() {
129653 return yAd(this.a);
129654 };
129655 _2.Fb = function nCd(a) {
129656 return zAd(this.a, a);
129657 };
129658 _2.xc = function pCd(a) {
129659 return AAd(this.a, a);
129660 };
129661 _2.Hb = function qCd() {
129662 return Etd(this.a.c);
129663 };
129664 _2.dc = function rCd() {
129665 return this.a.f == 0;
129666 };
129667 _2.ec = function sCd() {
129668 return EAd(this.a);
129669 };
129670 _2.zc = function uCd(a, b) {
129671 return HAd(this.a, a, b);
129672 };
129673 _2.Bc = function vCd(a) {
129674 return LAd(this.a, a);
129675 };
129676 _2.gc = function wCd() {
129677 return this.a.f;
129678 };
129679 _2.Ib = function xCd() {
129680 return Htd(this.a.c);
129681 };
129682 _2.Cc = function yCd() {
129683 return NAd(this.a);
129684 };
129685 mdb(Tte, "BasicEMap/DelegatingMap", 1030);
129686 bcb(612, 1, { 42: 1, 133: 1, 612: 1 }, zCd);
129687 _2.Fb = function ACd(a) {
129688 var b;
129689 if (JD(a, 42)) {
129690 b = BD(a, 42);
129691 return (this.b != null ? pb(this.b, b.cd()) : PD(this.b) === PD(b.cd())) && (this.c != null ? pb(this.c, b.dd()) : PD(this.c) === PD(b.dd()));
129692 } else {
129693 return false;
129694 }
129695 };
129696 _2.Sh = function BCd() {
129697 return this.a;
129698 };
129699 _2.cd = function CCd() {
129700 return this.b;
129701 };
129702 _2.dd = function DCd() {
129703 return this.c;
129704 };
129705 _2.Hb = function ECd() {
129706 return this.a ^ (this.c == null ? 0 : tb(this.c));
129707 };
129708 _2.Th = function FCd(a) {
129709 this.a = a;
129710 };
129711 _2.Uh = function GCd(a) {
129712 throw vbb(new gz());
129713 };
129714 _2.ed = function HCd(a) {
129715 var b;
129716 b = this.c;
129717 this.c = a;
129718 return b;
129719 };
129720 _2.Ib = function ICd() {
129721 return this.b + "->" + this.c;
129722 };
129723 _2.a = 0;
129724 var I4 = mdb(Tte, "BasicEMap/EntryImpl", 612);
129725 bcb(536, 1, {}, JCd);
129726 mdb(Tte, "BasicEMap/View", 536);
129727 var KCd;
129728 bcb(768, 1, {});
129729 _2.Fb = function ZCd(a) {
129730 return At((mmb(), jmb), a);
129731 };
129732 _2.Hb = function $Cd() {
129733 return qmb((mmb(), jmb));
129734 };
129735 _2.Ib = function _Cd() {
129736 return Fe((mmb(), jmb));
129737 };
129738 mdb(Tte, "ECollections/BasicEmptyUnmodifiableEList", 768);
129739 bcb(1312, 1, jie, aDd);
129740 _2.Nb = function cDd(a) {
129741 Rrb(this, a);
129742 };
129743 _2.Rb = function bDd(a) {
129744 throw vbb(new bgb());
129745 };
129746 _2.Ob = function dDd() {
129747 return false;
129748 };
129749 _2.Sb = function eDd() {
129750 return false;
129751 };
129752 _2.Pb = function fDd() {
129753 throw vbb(new utb());
129754 };
129755 _2.Tb = function gDd() {
129756 return 0;
129757 };
129758 _2.Ub = function hDd() {
129759 throw vbb(new utb());
129760 };
129761 _2.Vb = function iDd() {
129762 return -1;
129763 };
129764 _2.Qb = function jDd() {
129765 throw vbb(new bgb());
129766 };
129767 _2.Wb = function kDd(a) {
129768 throw vbb(new bgb());
129769 };
129770 mdb(Tte, "ECollections/BasicEmptyUnmodifiableEList/1", 1312);
129771 bcb(1310, 768, { 20: 1, 14: 1, 15: 1, 58: 1 }, lDd);
129772 _2.Vc = function mDd(a, b) {
129773 OCd();
129774 };
129775 _2.Fc = function nDd(a) {
129776 return PCd();
129777 };
129778 _2.Wc = function oDd(a, b) {
129779 return QCd();
129780 };
129781 _2.Gc = function pDd(a) {
129782 return RCd();
129783 };
129784 _2.$b = function qDd() {
129785 SCd();
129786 };
129787 _2.Hc = function rDd(a) {
129788 return false;
129789 };
129790 _2.Ic = function sDd(a) {
129791 return false;
129792 };
129793 _2.Jc = function tDd(a) {
129794 reb(this, a);
129795 };
129796 _2.Xb = function uDd(a) {
129797 return wmb((mmb(), a)), null;
129798 };
129799 _2.Xc = function vDd(a) {
129800 return -1;
129801 };
129802 _2.dc = function wDd() {
129803 return true;
129804 };
129805 _2.Kc = function xDd() {
129806 return this.a;
129807 };
129808 _2.Yc = function yDd() {
129809 return this.a;
129810 };
129811 _2.Zc = function zDd(a) {
129812 return this.a;
129813 };
129814 _2.ii = function ADd(a, b) {
129815 return TCd();
129816 };
129817 _2.ji = function BDd(a, b) {
129818 UCd();
129819 };
129820 _2.Lc = function CDd() {
129821 return new YAb(null, new Kub(this, 16));
129822 };
129823 _2.$c = function DDd(a) {
129824 return VCd();
129825 };
129826 _2.Mc = function EDd(a) {
129827 return WCd();
129828 };
129829 _2._c = function FDd(a, b) {
129830 return XCd();
129831 };
129832 _2.gc = function GDd() {
129833 return 0;
129834 };
129835 _2.ad = function HDd(a) {
129836 ktb(this, a);
129837 };
129838 _2.Nc = function IDd() {
129839 return new Kub(this, 16);
129840 };
129841 _2.Oc = function JDd() {
129842 return new YAb(null, new Kub(this, 16));
129843 };
129844 _2.bd = function KDd(a, b) {
129845 return mmb(), new Jib(jmb, a, b);
129846 };
129847 _2.Pc = function LDd() {
129848 return De((mmb(), jmb));
129849 };
129850 _2.Qc = function MDd(a) {
129851 return mmb(), Ee(jmb, a);
129852 };
129853 mdb(Tte, "ECollections/EmptyUnmodifiableEList", 1310);
129854 bcb(1311, 768, { 20: 1, 14: 1, 15: 1, 58: 1, 589: 1 }, NDd);
129855 _2.Vc = function ODd(a, b) {
129856 OCd();
129857 };
129858 _2.Fc = function PDd(a) {
129859 return PCd();
129860 };
129861 _2.Wc = function QDd(a, b) {
129862 return QCd();
129863 };
129864 _2.Gc = function RDd(a) {
129865 return RCd();
129866 };
129867 _2.$b = function SDd() {
129868 SCd();
129869 };
129870 _2.Hc = function TDd(a) {
129871 return false;
129872 };
129873 _2.Ic = function UDd(a) {
129874 return false;
129875 };
129876 _2.Jc = function VDd(a) {
129877 reb(this, a);
129878 };
129879 _2.Xb = function WDd(a) {
129880 return wmb((mmb(), a)), null;
129881 };
129882 _2.Xc = function XDd(a) {
129883 return -1;
129884 };
129885 _2.dc = function YDd() {
129886 return true;
129887 };
129888 _2.Kc = function ZDd() {
129889 return this.a;
129890 };
129891 _2.Yc = function $Dd() {
129892 return this.a;
129893 };
129894 _2.Zc = function _Dd(a) {
129895 return this.a;
129896 };
129897 _2.ii = function bEd(a, b) {
129898 return TCd();
129899 };
129900 _2.ji = function cEd(a, b) {
129901 UCd();
129902 };
129903 _2.Lc = function dEd() {
129904 return new YAb(null, new Kub(this, 16));
129905 };
129906 _2.$c = function eEd(a) {
129907 return VCd();
129908 };
129909 _2.Mc = function fEd(a) {
129910 return WCd();
129911 };
129912 _2._c = function gEd(a, b) {
129913 return XCd();
129914 };
129915 _2.gc = function hEd() {
129916 return 0;
129917 };
129918 _2.ad = function iEd(a) {
129919 ktb(this, a);
129920 };
129921 _2.Nc = function jEd() {
129922 return new Kub(this, 16);
129923 };
129924 _2.Oc = function kEd() {
129925 return new YAb(null, new Kub(this, 16));
129926 };
129927 _2.bd = function lEd(a, b) {
129928 return mmb(), new Jib(jmb, a, b);
129929 };
129930 _2.Pc = function mEd() {
129931 return De((mmb(), jmb));
129932 };
129933 _2.Qc = function nEd(a) {
129934 return mmb(), Ee(jmb, a);
129935 };
129936 _2.sj = function aEd() {
129937 return mmb(), mmb(), kmb;
129938 };
129939 mdb(Tte, "ECollections/EmptyUnmodifiableEMap", 1311);
129940 var U4 = odb(Tte, "Enumerator");
129941 var oEd;
129942 bcb(281, 1, { 281: 1 }, NEd);
129943 _2.Fb = function REd(a) {
129944 var b;
129945 if (this === a)
129946 return true;
129947 if (!JD(a, 281))
129948 return false;
129949 b = BD(a, 281);
129950 return this.f == b.f && TEd(this.i, b.i) && SEd(this.a, (this.f & 256) != 0 ? (b.f & 256) != 0 ? b.a : null : (b.f & 256) != 0 ? null : b.a) && SEd(this.d, b.d) && SEd(this.g, b.g) && SEd(this.e, b.e) && KEd(this, b);
129951 };
129952 _2.Hb = function WEd() {
129953 return this.f;
129954 };
129955 _2.Ib = function cFd() {
129956 return LEd(this);
129957 };
129958 _2.f = 0;
129959 var sEd = 0, tEd = 0, uEd = 0, vEd = 0, wEd = 0, xEd = 0, yEd = 0, zEd = 0, AEd = 0, BEd, CEd = 0, DEd = 0, EEd = 0, FEd = 0, GEd, HEd;
129960 mdb(Tte, "URI", 281);
129961 bcb(1091, 43, fke, mFd);
129962 _2.zc = function nFd(a, b) {
129963 return BD(Shb(this, GD(a), BD(b, 281)), 281);
129964 };
129965 mdb(Tte, "URI/URICache", 1091);
129966 bcb(497, 63, oue, oFd, pFd);
129967 _2.hi = function qFd() {
129968 return true;
129969 };
129970 mdb(Tte, "UniqueEList", 497);
129971 bcb(581, 60, Tie, rFd);
129972 mdb(Tte, "WrappedException", 581);
129973 var a5 = odb(Vse, nve);
129974 var v52 = odb(Vse, ove);
129975 var t5 = odb(Vse, pve);
129976 var b5 = odb(Vse, qve);
129977 var d5 = odb(Vse, rve);
129978 var c5 = odb(Vse, "EClass");
129979 var f5 = odb(Vse, "EDataType");
129980 var sFd;
129981 bcb(1183, 43, fke, vFd);
129982 _2.xc = function wFd(a) {
129983 return ND(a) ? Phb(this, a) : Wd(irb(this.f, a));
129984 };
129985 mdb(Vse, "EDataType/Internal/ConversionDelegate/Factory/Registry/Impl", 1183);
129986 var h5 = odb(Vse, "EEnum");
129987 var g5 = odb(Vse, sve);
129988 var j5 = odb(Vse, tve);
129989 var n5 = odb(Vse, uve);
129990 var xFd;
129991 var p5 = odb(Vse, vve);
129992 var q5 = odb(Vse, wve);
129993 bcb(1029, 1, {}, BFd);
129994 _2.Ib = function CFd() {
129995 return "NIL";
129996 };
129997 mdb(Vse, "EStructuralFeature/Internal/DynamicValueHolder/1", 1029);
129998 var DFd;
129999 bcb(1028, 43, fke, GFd);
130000 _2.xc = function HFd(a) {
130001 return ND(a) ? Phb(this, a) : Wd(irb(this.f, a));
130002 };
130003 mdb(Vse, "EStructuralFeature/Internal/SettingDelegate/Factory/Registry/Impl", 1028);
130004 var u5 = odb(Vse, xve);
130005 var w5 = odb(Vse, "EValidator/PatternMatcher");
130006 var IFd;
130007 var KFd;
130008 var MFd;
130009 var OFd, PFd, QFd, RFd, SFd, TFd, UFd, VFd, WFd, XFd, YFd, ZFd, $Fd, _Fd, aGd, bGd, cGd, dGd, eGd, fGd, gGd, hGd, iGd;
130010 var E9 = odb(yve, "FeatureMap/Entry");
130011 bcb(535, 1, { 72: 1 }, kGd);
130012 _2.ak = function lGd() {
130013 return this.a;
130014 };
130015 _2.dd = function mGd() {
130016 return this.b;
130017 };
130018 mdb(qte, "BasicEObjectImpl/1", 535);
130019 bcb(1027, 1, zve, nGd);
130020 _2.Wj = function oGd(a) {
130021 return hid(this.a, this.b, a);
130022 };
130023 _2.fj = function pGd() {
130024 return nid(this.a, this.b);
130025 };
130026 _2.Wb = function qGd(a) {
130027 zid(this.a, this.b, a);
130028 };
130029 _2.Xj = function rGd() {
130030 Did(this.a, this.b);
130031 };
130032 mdb(qte, "BasicEObjectImpl/4", 1027);
130033 bcb(1983, 1, { 108: 1 });
130034 _2.bk = function uGd(a) {
130035 this.e = a == 0 ? sGd : KC(SI, Uhe, 1, a, 5, 1);
130036 };
130037 _2.Ch = function vGd(a) {
130038 return this.e[a];
130039 };
130040 _2.Dh = function wGd(a, b) {
130041 this.e[a] = b;
130042 };
130043 _2.Eh = function xGd(a) {
130044 this.e[a] = null;
130045 };
130046 _2.ck = function yGd() {
130047 return this.c;
130048 };
130049 _2.dk = function zGd() {
130050 throw vbb(new bgb());
130051 };
130052 _2.ek = function AGd() {
130053 throw vbb(new bgb());
130054 };
130055 _2.fk = function BGd() {
130056 return this.d;
130057 };
130058 _2.gk = function CGd() {
130059 return this.e != null;
130060 };
130061 _2.hk = function DGd(a) {
130062 this.c = a;
130063 };
130064 _2.ik = function EGd(a) {
130065 throw vbb(new bgb());
130066 };
130067 _2.jk = function FGd(a) {
130068 throw vbb(new bgb());
130069 };
130070 _2.kk = function GGd(a) {
130071 this.d = a;
130072 };
130073 var sGd;
130074 mdb(qte, "BasicEObjectImpl/EPropertiesHolderBaseImpl", 1983);
130075 bcb(185, 1983, { 108: 1 }, HGd);
130076 _2.dk = function IGd() {
130077 return this.a;
130078 };
130079 _2.ek = function JGd() {
130080 return this.b;
130081 };
130082 _2.ik = function KGd(a) {
130083 this.a = a;
130084 };
130085 _2.jk = function LGd(a) {
130086 this.b = a;
130087 };
130088 mdb(qte, "BasicEObjectImpl/EPropertiesHolderImpl", 185);
130089 bcb(506, 97, pte, MGd);
130090 _2.Kg = function NGd() {
130091 return this.f;
130092 };
130093 _2.Pg = function OGd() {
130094 return this.k;
130095 };
130096 _2.Rg = function PGd(a, b) {
130097 this.g = a;
130098 this.i = b;
130099 };
130100 _2.Tg = function QGd() {
130101 return (this.j & 2) == 0 ? this.zh() : this.ph().ck();
130102 };
130103 _2.Vg = function RGd() {
130104 return this.i;
130105 };
130106 _2.Mg = function SGd() {
130107 return (this.j & 1) != 0;
130108 };
130109 _2.eh = function TGd() {
130110 return this.g;
130111 };
130112 _2.kh = function UGd() {
130113 return (this.j & 4) != 0;
130114 };
130115 _2.ph = function VGd() {
130116 return !this.k && (this.k = new HGd()), this.k;
130117 };
130118 _2.th = function WGd(a) {
130119 this.ph().hk(a);
130120 a ? this.j |= 2 : this.j &= -3;
130121 };
130122 _2.vh = function XGd(a) {
130123 this.ph().jk(a);
130124 a ? this.j |= 4 : this.j &= -5;
130125 };
130126 _2.zh = function YGd() {
130127 return (NFd(), MFd).S;
130128 };
130129 _2.i = 0;
130130 _2.j = 1;
130131 mdb(qte, "EObjectImpl", 506);
130132 bcb(780, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 108: 1, 49: 1, 97: 1 }, _Gd);
130133 _2.Ch = function aHd(a) {
130134 return this.e[a];
130135 };
130136 _2.Dh = function bHd(a, b) {
130137 this.e[a] = b;
130138 };
130139 _2.Eh = function cHd(a) {
130140 this.e[a] = null;
130141 };
130142 _2.Tg = function dHd() {
130143 return this.d;
130144 };
130145 _2.Yg = function eHd(a) {
130146 return bLd(this.d, a);
130147 };
130148 _2.$g = function fHd() {
130149 return this.d;
130150 };
130151 _2.dh = function gHd() {
130152 return this.e != null;
130153 };
130154 _2.ph = function hHd() {
130155 !this.k && (this.k = new vHd());
130156 return this.k;
130157 };
130158 _2.th = function iHd(a) {
130159 this.d = a;
130160 };
130161 _2.yh = function jHd() {
130162 var a;
130163 if (this.e == null) {
130164 a = aLd(this.d);
130165 this.e = a == 0 ? ZGd : KC(SI, Uhe, 1, a, 5, 1);
130166 }
130167 return this;
130168 };
130169 _2.Ah = function kHd() {
130170 return 0;
130171 };
130172 var ZGd;
130173 mdb(qte, "DynamicEObjectImpl", 780);
130174 bcb(1376, 780, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1 }, lHd);
130175 _2.Fb = function nHd(a) {
130176 return this === a;
130177 };
130178 _2.Hb = function rHd() {
130179 return FCb(this);
130180 };
130181 _2.th = function mHd(a) {
130182 this.d = a;
130183 this.b = YKd(a, "key");
130184 this.c = YKd(a, Bte);
130185 };
130186 _2.Sh = function oHd() {
130187 var a;
130188 if (this.a == -1) {
130189 a = iid(this, this.b);
130190 this.a = a == null ? 0 : tb(a);
130191 }
130192 return this.a;
130193 };
130194 _2.cd = function pHd() {
130195 return iid(this, this.b);
130196 };
130197 _2.dd = function qHd() {
130198 return iid(this, this.c);
130199 };
130200 _2.Th = function sHd(a) {
130201 this.a = a;
130202 };
130203 _2.Uh = function tHd(a) {
130204 zid(this, this.b, a);
130205 };
130206 _2.ed = function uHd(a) {
130207 var b;
130208 b = iid(this, this.c);
130209 zid(this, this.c, a);
130210 return b;
130211 };
130212 _2.a = 0;
130213 mdb(qte, "DynamicEObjectImpl/BasicEMapEntry", 1376);
130214 bcb(1377, 1, { 108: 1 }, vHd);
130215 _2.bk = function wHd(a) {
130216 throw vbb(new bgb());
130217 };
130218 _2.Ch = function xHd(a) {
130219 throw vbb(new bgb());
130220 };
130221 _2.Dh = function yHd(a, b) {
130222 throw vbb(new bgb());
130223 };
130224 _2.Eh = function zHd(a) {
130225 throw vbb(new bgb());
130226 };
130227 _2.ck = function AHd() {
130228 throw vbb(new bgb());
130229 };
130230 _2.dk = function BHd() {
130231 return this.a;
130232 };
130233 _2.ek = function CHd() {
130234 return this.b;
130235 };
130236 _2.fk = function DHd() {
130237 return this.c;
130238 };
130239 _2.gk = function EHd() {
130240 throw vbb(new bgb());
130241 };
130242 _2.hk = function FHd(a) {
130243 throw vbb(new bgb());
130244 };
130245 _2.ik = function GHd(a) {
130246 this.a = a;
130247 };
130248 _2.jk = function HHd(a) {
130249 this.b = a;
130250 };
130251 _2.kk = function IHd(a) {
130252 this.c = a;
130253 };
130254 mdb(qte, "DynamicEObjectImpl/DynamicEPropertiesHolderImpl", 1377);
130255 bcb(510, 150, { 105: 1, 92: 1, 90: 1, 590: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 510: 1, 150: 1, 114: 1, 115: 1 }, RHd);
130256 _2.Qg = function SHd(a) {
130257 return KHd(this, a);
130258 };
130259 _2._g = function THd(a, b, c2) {
130260 var d;
130261 switch (a) {
130262 case 0:
130263 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
130264 case 1:
130265 return this.d;
130266 case 2:
130267 return c2 ? (!this.b && (this.b = new sId((jGd(), fGd), x6, this)), this.b) : (!this.b && (this.b = new sId((jGd(), fGd), x6, this)), FAd(this.b));
130268 case 3:
130269 return MHd(this);
130270 case 4:
130271 return !this.a && (this.a = new xMd(m5, this, 4)), this.a;
130272 case 5:
130273 return !this.c && (this.c = new _4d(m5, this, 5)), this.c;
130274 }
130275 return bid(this, a - aLd((jGd(), OFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? OFd : d), a), b, c2);
130276 };
130277 _2.hh = function UHd(a, b, c2) {
130278 var d, e, f2;
130279 switch (b) {
130280 case 0:
130281 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
130282 case 3:
130283 !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? KHd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
130284 return JHd(this, BD(a, 147), c2);
130285 }
130286 return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), OFd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((jGd(), OFd)), a, c2);
130287 };
130288 _2.jh = function VHd(a, b, c2) {
130289 var d, e;
130290 switch (b) {
130291 case 0:
130292 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
130293 case 2:
130294 return !this.b && (this.b = new sId((jGd(), fGd), x6, this)), bId(this.b, a, c2);
130295 case 3:
130296 return JHd(this, null, c2);
130297 case 4:
130298 return !this.a && (this.a = new xMd(m5, this, 4)), Txd(this.a, a, c2);
130299 }
130300 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), OFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), OFd)), a, c2);
130301 };
130302 _2.lh = function WHd(a) {
130303 var b;
130304 switch (a) {
130305 case 0:
130306 return !!this.Ab && this.Ab.i != 0;
130307 case 1:
130308 return this.d != null;
130309 case 2:
130310 return !!this.b && this.b.f != 0;
130311 case 3:
130312 return !!MHd(this);
130313 case 4:
130314 return !!this.a && this.a.i != 0;
130315 case 5:
130316 return !!this.c && this.c.i != 0;
130317 }
130318 return cid(this, a - aLd((jGd(), OFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? OFd : b), a));
130319 };
130320 _2.sh = function XHd(a, b) {
130321 var c2;
130322 switch (a) {
130323 case 0:
130324 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
130325 Uxd(this.Ab);
130326 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
130327 ytd(this.Ab, BD(b, 14));
130328 return;
130329 case 1:
130330 OHd(this, GD(b));
130331 return;
130332 case 2:
130333 !this.b && (this.b = new sId((jGd(), fGd), x6, this));
130334 cId(this.b, b);
130335 return;
130336 case 3:
130337 NHd(this, BD(b, 147));
130338 return;
130339 case 4:
130340 !this.a && (this.a = new xMd(m5, this, 4));
130341 Uxd(this.a);
130342 !this.a && (this.a = new xMd(m5, this, 4));
130343 ytd(this.a, BD(b, 14));
130344 return;
130345 case 5:
130346 !this.c && (this.c = new _4d(m5, this, 5));
130347 Uxd(this.c);
130348 !this.c && (this.c = new _4d(m5, this, 5));
130349 ytd(this.c, BD(b, 14));
130350 return;
130351 }
130352 did(this, a - aLd((jGd(), OFd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? OFd : c2), a), b);
130353 };
130354 _2.zh = function YHd() {
130355 return jGd(), OFd;
130356 };
130357 _2.Bh = function ZHd(a) {
130358 var b;
130359 switch (a) {
130360 case 0:
130361 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
130362 Uxd(this.Ab);
130363 return;
130364 case 1:
130365 PHd(this, null);
130366 return;
130367 case 2:
130368 !this.b && (this.b = new sId((jGd(), fGd), x6, this));
130369 this.b.c.$b();
130370 return;
130371 case 3:
130372 NHd(this, null);
130373 return;
130374 case 4:
130375 !this.a && (this.a = new xMd(m5, this, 4));
130376 Uxd(this.a);
130377 return;
130378 case 5:
130379 !this.c && (this.c = new _4d(m5, this, 5));
130380 Uxd(this.c);
130381 return;
130382 }
130383 eid(this, a - aLd((jGd(), OFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? OFd : b), a));
130384 };
130385 _2.Ib = function $Hd() {
130386 return QHd(this);
130387 };
130388 _2.d = null;
130389 mdb(qte, "EAnnotationImpl", 510);
130390 bcb(151, 705, Ave, dId);
130391 _2.Xh = function eId(a, b) {
130392 _Hd(this, a, BD(b, 42));
130393 };
130394 _2.lk = function fId(a, b) {
130395 return aId(this, BD(a, 42), b);
130396 };
130397 _2.pi = function gId(a) {
130398 return BD(BD(this.c, 69).pi(a), 133);
130399 };
130400 _2.Zh = function hId() {
130401 return BD(this.c, 69).Zh();
130402 };
130403 _2.$h = function iId() {
130404 return BD(this.c, 69).$h();
130405 };
130406 _2._h = function jId(a) {
130407 return BD(this.c, 69)._h(a);
130408 };
130409 _2.mk = function kId(a, b) {
130410 return bId(this, a, b);
130411 };
130412 _2.Wj = function lId(a) {
130413 return BD(this.c, 76).Wj(a);
130414 };
130415 _2.rj = function mId() {
130416 };
130417 _2.fj = function nId() {
130418 return BD(this.c, 76).fj();
130419 };
130420 _2.tj = function oId(a, b, c2) {
130421 var d;
130422 d = BD(bKd(this.b).Nh().Jh(this.b), 133);
130423 d.Th(a);
130424 d.Uh(b);
130425 d.ed(c2);
130426 return d;
130427 };
130428 _2.uj = function pId() {
130429 return new W5d(this);
130430 };
130431 _2.Wb = function qId(a) {
130432 cId(this, a);
130433 };
130434 _2.Xj = function rId() {
130435 BD(this.c, 76).Xj();
130436 };
130437 mdb(yve, "EcoreEMap", 151);
130438 bcb(158, 151, Ave, sId);
130439 _2.qj = function tId() {
130440 var a, b, c2, d, e, f2;
130441 if (this.d == null) {
130442 f2 = KC(y4, jve, 63, 2 * this.f + 1, 0, 1);
130443 for (c2 = this.c.Kc(); c2.e != c2.i.gc(); ) {
130444 b = BD(c2.nj(), 133);
130445 d = b.Sh();
130446 e = (d & Ohe) % f2.length;
130447 a = f2[e];
130448 !a && (a = f2[e] = new W5d(this));
130449 a.Fc(b);
130450 }
130451 this.d = f2;
130452 }
130453 };
130454 mdb(qte, "EAnnotationImpl/1", 158);
130455 bcb(284, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 284: 1, 114: 1, 115: 1 });
130456 _2._g = function GId(a, b, c2) {
130457 var d, e;
130458 switch (a) {
130459 case 0:
130460 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
130461 case 1:
130462 return this.zb;
130463 case 2:
130464 return Bcb(), (this.Bb & 256) != 0 ? true : false;
130465 case 3:
130466 return Bcb(), (this.Bb & 512) != 0 ? true : false;
130467 case 4:
130468 return meb(this.s);
130469 case 5:
130470 return meb(this.t);
130471 case 6:
130472 return Bcb(), this.$j() ? true : false;
130473 case 7:
130474 return Bcb(), e = this.s, e >= 1 ? true : false;
130475 case 8:
130476 if (b)
130477 return wId(this);
130478 return this.r;
130479 case 9:
130480 return this.q;
130481 }
130482 return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c2);
130483 };
130484 _2.jh = function HId(a, b, c2) {
130485 var d, e;
130486 switch (b) {
130487 case 0:
130488 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
130489 case 9:
130490 return vId(this, c2);
130491 }
130492 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c2);
130493 };
130494 _2.lh = function IId(a) {
130495 var b, c2;
130496 switch (a) {
130497 case 0:
130498 return !!this.Ab && this.Ab.i != 0;
130499 case 1:
130500 return this.zb != null;
130501 case 2:
130502 return (this.Bb & 256) == 0;
130503 case 3:
130504 return (this.Bb & 512) == 0;
130505 case 4:
130506 return this.s != 0;
130507 case 5:
130508 return this.t != 1;
130509 case 6:
130510 return this.$j();
130511 case 7:
130512 return c2 = this.s, c2 >= 1;
130513 case 8:
130514 return !!this.r && !this.q.e && LQd(this.q).i == 0;
130515 case 9:
130516 return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
130517 }
130518 return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
130519 };
130520 _2.sh = function JId(a, b) {
130521 var c2, d;
130522 switch (a) {
130523 case 0:
130524 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
130525 Uxd(this.Ab);
130526 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
130527 ytd(this.Ab, BD(b, 14));
130528 return;
130529 case 1:
130530 this.Lh(GD(b));
130531 return;
130532 case 2:
130533 BId(this, Ccb(DD(b)));
130534 return;
130535 case 3:
130536 CId(this, Ccb(DD(b)));
130537 return;
130538 case 4:
130539 AId(this, BD(b, 19).a);
130540 return;
130541 case 5:
130542 this.ok(BD(b, 19).a);
130543 return;
130544 case 8:
130545 yId(this, BD(b, 138));
130546 return;
130547 case 9:
130548 d = xId(this, BD(b, 87), null);
130549 !!d && d.Fi();
130550 return;
130551 }
130552 did(this, a - aLd(this.zh()), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? this.zh() : c2), a), b);
130553 };
130554 _2.zh = function KId() {
130555 return jGd(), hGd;
130556 };
130557 _2.Bh = function LId(a) {
130558 var b, c2;
130559 switch (a) {
130560 case 0:
130561 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
130562 Uxd(this.Ab);
130563 return;
130564 case 1:
130565 this.Lh(null);
130566 return;
130567 case 2:
130568 BId(this, true);
130569 return;
130570 case 3:
130571 CId(this, true);
130572 return;
130573 case 4:
130574 AId(this, 0);
130575 return;
130576 case 5:
130577 this.ok(1);
130578 return;
130579 case 8:
130580 yId(this, null);
130581 return;
130582 case 9:
130583 c2 = xId(this, null, null);
130584 !!c2 && c2.Fi();
130585 return;
130586 }
130587 eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
130588 };
130589 _2.Gh = function MId() {
130590 wId(this);
130591 this.Bb |= 1;
130592 };
130593 _2.Yj = function NId() {
130594 return wId(this);
130595 };
130596 _2.Zj = function OId() {
130597 return this.t;
130598 };
130599 _2.$j = function PId() {
130600 var a;
130601 return a = this.t, a > 1 || a == -1;
130602 };
130603 _2.hi = function QId() {
130604 return (this.Bb & 512) != 0;
130605 };
130606 _2.nk = function RId(a, b) {
130607 return zId(this, a, b);
130608 };
130609 _2.ok = function SId(a) {
130610 DId(this, a);
130611 };
130612 _2.Ib = function TId() {
130613 return EId(this);
130614 };
130615 _2.s = 0;
130616 _2.t = 1;
130617 mdb(qte, "ETypedElementImpl", 284);
130618 bcb(449, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 });
130619 _2.Qg = function iJd(a) {
130620 return UId(this, a);
130621 };
130622 _2._g = function jJd(a, b, c2) {
130623 var d, e;
130624 switch (a) {
130625 case 0:
130626 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
130627 case 1:
130628 return this.zb;
130629 case 2:
130630 return Bcb(), (this.Bb & 256) != 0 ? true : false;
130631 case 3:
130632 return Bcb(), (this.Bb & 512) != 0 ? true : false;
130633 case 4:
130634 return meb(this.s);
130635 case 5:
130636 return meb(this.t);
130637 case 6:
130638 return Bcb(), this.$j() ? true : false;
130639 case 7:
130640 return Bcb(), e = this.s, e >= 1 ? true : false;
130641 case 8:
130642 if (b)
130643 return wId(this);
130644 return this.r;
130645 case 9:
130646 return this.q;
130647 case 10:
130648 return Bcb(), (this.Bb & zte) != 0 ? true : false;
130649 case 11:
130650 return Bcb(), (this.Bb & Dve) != 0 ? true : false;
130651 case 12:
130652 return Bcb(), (this.Bb & Rje) != 0 ? true : false;
130653 case 13:
130654 return this.j;
130655 case 14:
130656 return VId(this);
130657 case 15:
130658 return Bcb(), (this.Bb & Cve) != 0 ? true : false;
130659 case 16:
130660 return Bcb(), (this.Bb & oie) != 0 ? true : false;
130661 case 17:
130662 return WId(this);
130663 }
130664 return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c2);
130665 };
130666 _2.hh = function kJd(a, b, c2) {
130667 var d, e, f2;
130668 switch (b) {
130669 case 0:
130670 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
130671 case 17:
130672 !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? UId(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
130673 return _hd(this, a, 17, c2);
130674 }
130675 return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd(this.zh()), a, c2);
130676 };
130677 _2.jh = function lJd(a, b, c2) {
130678 var d, e;
130679 switch (b) {
130680 case 0:
130681 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
130682 case 9:
130683 return vId(this, c2);
130684 case 17:
130685 return _hd(this, null, 17, c2);
130686 }
130687 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c2);
130688 };
130689 _2.lh = function mJd(a) {
130690 var b, c2;
130691 switch (a) {
130692 case 0:
130693 return !!this.Ab && this.Ab.i != 0;
130694 case 1:
130695 return this.zb != null;
130696 case 2:
130697 return (this.Bb & 256) == 0;
130698 case 3:
130699 return (this.Bb & 512) == 0;
130700 case 4:
130701 return this.s != 0;
130702 case 5:
130703 return this.t != 1;
130704 case 6:
130705 return this.$j();
130706 case 7:
130707 return c2 = this.s, c2 >= 1;
130708 case 8:
130709 return !!this.r && !this.q.e && LQd(this.q).i == 0;
130710 case 9:
130711 return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
130712 case 10:
130713 return (this.Bb & zte) == 0;
130714 case 11:
130715 return (this.Bb & Dve) != 0;
130716 case 12:
130717 return (this.Bb & Rje) != 0;
130718 case 13:
130719 return this.j != null;
130720 case 14:
130721 return VId(this) != null;
130722 case 15:
130723 return (this.Bb & Cve) != 0;
130724 case 16:
130725 return (this.Bb & oie) != 0;
130726 case 17:
130727 return !!WId(this);
130728 }
130729 return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
130730 };
130731 _2.sh = function nJd(a, b) {
130732 var c2, d;
130733 switch (a) {
130734 case 0:
130735 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
130736 Uxd(this.Ab);
130737 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
130738 ytd(this.Ab, BD(b, 14));
130739 return;
130740 case 1:
130741 cJd(this, GD(b));
130742 return;
130743 case 2:
130744 BId(this, Ccb(DD(b)));
130745 return;
130746 case 3:
130747 CId(this, Ccb(DD(b)));
130748 return;
130749 case 4:
130750 AId(this, BD(b, 19).a);
130751 return;
130752 case 5:
130753 this.ok(BD(b, 19).a);
130754 return;
130755 case 8:
130756 yId(this, BD(b, 138));
130757 return;
130758 case 9:
130759 d = xId(this, BD(b, 87), null);
130760 !!d && d.Fi();
130761 return;
130762 case 10:
130763 ZId(this, Ccb(DD(b)));
130764 return;
130765 case 11:
130766 fJd(this, Ccb(DD(b)));
130767 return;
130768 case 12:
130769 dJd(this, Ccb(DD(b)));
130770 return;
130771 case 13:
130772 $Id(this, GD(b));
130773 return;
130774 case 15:
130775 eJd(this, Ccb(DD(b)));
130776 return;
130777 case 16:
130778 aJd(this, Ccb(DD(b)));
130779 return;
130780 }
130781 did(this, a - aLd(this.zh()), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? this.zh() : c2), a), b);
130782 };
130783 _2.zh = function oJd() {
130784 return jGd(), gGd;
130785 };
130786 _2.Bh = function pJd(a) {
130787 var b, c2;
130788 switch (a) {
130789 case 0:
130790 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
130791 Uxd(this.Ab);
130792 return;
130793 case 1:
130794 JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 4);
130795 pnd(this, null);
130796 return;
130797 case 2:
130798 BId(this, true);
130799 return;
130800 case 3:
130801 CId(this, true);
130802 return;
130803 case 4:
130804 AId(this, 0);
130805 return;
130806 case 5:
130807 this.ok(1);
130808 return;
130809 case 8:
130810 yId(this, null);
130811 return;
130812 case 9:
130813 c2 = xId(this, null, null);
130814 !!c2 && c2.Fi();
130815 return;
130816 case 10:
130817 ZId(this, true);
130818 return;
130819 case 11:
130820 fJd(this, false);
130821 return;
130822 case 12:
130823 dJd(this, false);
130824 return;
130825 case 13:
130826 this.i = null;
130827 _Id(this, null);
130828 return;
130829 case 15:
130830 eJd(this, false);
130831 return;
130832 case 16:
130833 aJd(this, false);
130834 return;
130835 }
130836 eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
130837 };
130838 _2.Gh = function qJd() {
130839 a2d(q1d((O6d(), M6d), this));
130840 wId(this);
130841 this.Bb |= 1;
130842 };
130843 _2.Gj = function rJd() {
130844 return this.f;
130845 };
130846 _2.zj = function sJd() {
130847 return VId(this);
130848 };
130849 _2.Hj = function tJd() {
130850 return WId(this);
130851 };
130852 _2.Lj = function uJd() {
130853 return null;
130854 };
130855 _2.pk = function vJd() {
130856 return this.k;
130857 };
130858 _2.aj = function wJd() {
130859 return this.n;
130860 };
130861 _2.Mj = function xJd() {
130862 return XId(this);
130863 };
130864 _2.Nj = function yJd() {
130865 var a, b, c2, d, e, f2, g, h, i3;
130866 if (!this.p) {
130867 c2 = WId(this);
130868 (c2.i == null && TKd(c2), c2.i).length;
130869 d = this.Lj();
130870 !!d && aLd(WId(d));
130871 e = wId(this);
130872 g = e.Bj();
130873 a = !g ? null : (g.i & 1) != 0 ? g == sbb ? wI : g == WD ? JI : g == VD ? FI : g == UD ? BI : g == XD ? MI : g == rbb ? UI : g == SD ? xI : yI : g;
130874 b = VId(this);
130875 h = e.zj();
130876 n6d(this);
130877 (this.Bb & oie) != 0 && (!!(f2 = t1d((O6d(), M6d), c2)) && f2 != this || !!(f2 = _1d(q1d(M6d, this)))) ? this.p = new zVd(this, f2) : this.$j() ? this.rk() ? !d ? (this.Bb & Cve) != 0 ? !a ? this.sk() ? this.p = new KVd(42, this) : this.p = new KVd(0, this) : a == CK ? this.p = new IVd(50, J4, this) : this.sk() ? this.p = new IVd(43, a, this) : this.p = new IVd(1, a, this) : !a ? this.sk() ? this.p = new KVd(44, this) : this.p = new KVd(2, this) : a == CK ? this.p = new IVd(41, J4, this) : this.sk() ? this.p = new IVd(45, a, this) : this.p = new IVd(3, a, this) : (this.Bb & Cve) != 0 ? !a ? this.sk() ? this.p = new LVd(46, this, d) : this.p = new LVd(4, this, d) : this.sk() ? this.p = new JVd(47, a, this, d) : this.p = new JVd(5, a, this, d) : !a ? this.sk() ? this.p = new LVd(48, this, d) : this.p = new LVd(6, this, d) : this.sk() ? this.p = new JVd(49, a, this, d) : this.p = new JVd(7, a, this, d) : JD(e, 148) ? a == E9 ? this.p = new KVd(40, this) : (this.Bb & 512) != 0 ? (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(8, this) : this.p = new IVd(9, a, this) : !a ? this.p = new KVd(10, this) : this.p = new IVd(11, a, this) : (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(12, this) : this.p = new IVd(13, a, this) : !a ? this.p = new KVd(14, this) : this.p = new IVd(15, a, this) : !d ? this.sk() ? (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(16, this) : this.p = new IVd(17, a, this) : !a ? this.p = new KVd(18, this) : this.p = new IVd(19, a, this) : (this.Bb & Cve) != 0 ? !a ? this.p = new KVd(20, this) : this.p = new IVd(21, a, this) : !a ? this.p = new KVd(22, this) : this.p = new IVd(23, a, this) : (i3 = d.t, i3 > 1 || i3 == -1 ? this.sk() ? (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(24, this, d) : this.p = new JVd(25, a, this, d) : !a ? this.p = new LVd(26, this, d) : this.p = new JVd(27, a, this, d) : (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(28, this, d) : this.p = new JVd(29, a, this, d) : !a ? this.p = new LVd(30, this, d) : this.p = new JVd(31, a, this, d) : this.sk() ? (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(32, this, d) : this.p = new JVd(33, a, this, d) : !a ? this.p = new LVd(34, this, d) : this.p = new JVd(35, a, this, d) : (this.Bb & Cve) != 0 ? !a ? this.p = new LVd(36, this, d) : this.p = new JVd(37, a, this, d) : !a ? this.p = new LVd(38, this, d) : this.p = new JVd(39, a, this, d)) : this.qk() ? this.sk() ? this.p = new kWd(BD(e, 26), this, d) : this.p = new cWd(BD(e, 26), this, d) : JD(e, 148) ? a == E9 ? this.p = new KVd(40, this) : (this.Bb & Cve) != 0 ? !a ? this.p = new jXd(BD(e, 148), b, h, this) : this.p = new lXd(b, h, this, (CWd(), g == WD ? yWd : g == sbb ? tWd : g == XD ? zWd : g == VD ? xWd : g == UD ? wWd : g == rbb ? BWd : g == SD ? uWd : g == TD ? vWd : AWd)) : !a ? this.p = new cXd(BD(e, 148), b, h, this) : this.p = new eXd(b, h, this, (CWd(), g == WD ? yWd : g == sbb ? tWd : g == XD ? zWd : g == VD ? xWd : g == UD ? wWd : g == rbb ? BWd : g == SD ? uWd : g == TD ? vWd : AWd)) : this.rk() ? !d ? (this.Bb & Cve) != 0 ? this.sk() ? this.p = new FXd(BD(e, 26), this) : this.p = new DXd(BD(e, 26), this) : this.sk() ? this.p = new BXd(BD(e, 26), this) : this.p = new zXd(BD(e, 26), this) : (this.Bb & Cve) != 0 ? this.sk() ? this.p = new NXd(BD(e, 26), this, d) : this.p = new LXd(BD(e, 26), this, d) : this.sk() ? this.p = new JXd(BD(e, 26), this, d) : this.p = new HXd(BD(e, 26), this, d) : this.sk() ? !d ? (this.Bb & Cve) != 0 ? this.p = new RXd(BD(e, 26), this) : this.p = new PXd(BD(e, 26), this) : (this.Bb & Cve) != 0 ? this.p = new VXd(BD(e, 26), this, d) : this.p = new TXd(BD(e, 26), this, d) : !d ? (this.Bb & Cve) != 0 ? this.p = new XXd(BD(e, 26), this) : this.p = new nXd(BD(e, 26), this) : (this.Bb & Cve) != 0 ? this.p = new _Xd(BD(e, 26), this, d) : this.p = new ZXd(BD(e, 26), this, d);
130878 }
130879 return this.p;
130880 };
130881 _2.Ij = function zJd() {
130882 return (this.Bb & zte) != 0;
130883 };
130884 _2.qk = function AJd() {
130885 return false;
130886 };
130887 _2.rk = function BJd() {
130888 return false;
130889 };
130890 _2.Jj = function CJd() {
130891 return (this.Bb & oie) != 0;
130892 };
130893 _2.Oj = function DJd() {
130894 return YId(this);
130895 };
130896 _2.sk = function EJd() {
130897 return false;
130898 };
130899 _2.Kj = function FJd() {
130900 return (this.Bb & Cve) != 0;
130901 };
130902 _2.tk = function GJd(a) {
130903 this.k = a;
130904 };
130905 _2.Lh = function HJd(a) {
130906 cJd(this, a);
130907 };
130908 _2.Ib = function IJd() {
130909 return gJd(this);
130910 };
130911 _2.e = false;
130912 _2.n = 0;
130913 mdb(qte, "EStructuralFeatureImpl", 449);
130914 bcb(322, 449, { 105: 1, 92: 1, 90: 1, 34: 1, 147: 1, 191: 1, 56: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 322: 1, 150: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 }, OJd);
130915 _2._g = function PJd(a, b, c2) {
130916 var d, e;
130917 switch (a) {
130918 case 0:
130919 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
130920 case 1:
130921 return this.zb;
130922 case 2:
130923 return Bcb(), (this.Bb & 256) != 0 ? true : false;
130924 case 3:
130925 return Bcb(), (this.Bb & 512) != 0 ? true : false;
130926 case 4:
130927 return meb(this.s);
130928 case 5:
130929 return meb(this.t);
130930 case 6:
130931 return Bcb(), LJd(this) ? true : false;
130932 case 7:
130933 return Bcb(), e = this.s, e >= 1 ? true : false;
130934 case 8:
130935 if (b)
130936 return wId(this);
130937 return this.r;
130938 case 9:
130939 return this.q;
130940 case 10:
130941 return Bcb(), (this.Bb & zte) != 0 ? true : false;
130942 case 11:
130943 return Bcb(), (this.Bb & Dve) != 0 ? true : false;
130944 case 12:
130945 return Bcb(), (this.Bb & Rje) != 0 ? true : false;
130946 case 13:
130947 return this.j;
130948 case 14:
130949 return VId(this);
130950 case 15:
130951 return Bcb(), (this.Bb & Cve) != 0 ? true : false;
130952 case 16:
130953 return Bcb(), (this.Bb & oie) != 0 ? true : false;
130954 case 17:
130955 return WId(this);
130956 case 18:
130957 return Bcb(), (this.Bb & ote) != 0 ? true : false;
130958 case 19:
130959 if (b)
130960 return KJd(this);
130961 return JJd(this);
130962 }
130963 return bid(this, a - aLd((jGd(), PFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? PFd : d), a), b, c2);
130964 };
130965 _2.lh = function QJd(a) {
130966 var b, c2;
130967 switch (a) {
130968 case 0:
130969 return !!this.Ab && this.Ab.i != 0;
130970 case 1:
130971 return this.zb != null;
130972 case 2:
130973 return (this.Bb & 256) == 0;
130974 case 3:
130975 return (this.Bb & 512) == 0;
130976 case 4:
130977 return this.s != 0;
130978 case 5:
130979 return this.t != 1;
130980 case 6:
130981 return LJd(this);
130982 case 7:
130983 return c2 = this.s, c2 >= 1;
130984 case 8:
130985 return !!this.r && !this.q.e && LQd(this.q).i == 0;
130986 case 9:
130987 return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
130988 case 10:
130989 return (this.Bb & zte) == 0;
130990 case 11:
130991 return (this.Bb & Dve) != 0;
130992 case 12:
130993 return (this.Bb & Rje) != 0;
130994 case 13:
130995 return this.j != null;
130996 case 14:
130997 return VId(this) != null;
130998 case 15:
130999 return (this.Bb & Cve) != 0;
131000 case 16:
131001 return (this.Bb & oie) != 0;
131002 case 17:
131003 return !!WId(this);
131004 case 18:
131005 return (this.Bb & ote) != 0;
131006 case 19:
131007 return !!JJd(this);
131008 }
131009 return cid(this, a - aLd((jGd(), PFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? PFd : b), a));
131010 };
131011 _2.sh = function RJd(a, b) {
131012 var c2, d;
131013 switch (a) {
131014 case 0:
131015 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
131016 Uxd(this.Ab);
131017 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
131018 ytd(this.Ab, BD(b, 14));
131019 return;
131020 case 1:
131021 cJd(this, GD(b));
131022 return;
131023 case 2:
131024 BId(this, Ccb(DD(b)));
131025 return;
131026 case 3:
131027 CId(this, Ccb(DD(b)));
131028 return;
131029 case 4:
131030 AId(this, BD(b, 19).a);
131031 return;
131032 case 5:
131033 NJd(this, BD(b, 19).a);
131034 return;
131035 case 8:
131036 yId(this, BD(b, 138));
131037 return;
131038 case 9:
131039 d = xId(this, BD(b, 87), null);
131040 !!d && d.Fi();
131041 return;
131042 case 10:
131043 ZId(this, Ccb(DD(b)));
131044 return;
131045 case 11:
131046 fJd(this, Ccb(DD(b)));
131047 return;
131048 case 12:
131049 dJd(this, Ccb(DD(b)));
131050 return;
131051 case 13:
131052 $Id(this, GD(b));
131053 return;
131054 case 15:
131055 eJd(this, Ccb(DD(b)));
131056 return;
131057 case 16:
131058 aJd(this, Ccb(DD(b)));
131059 return;
131060 case 18:
131061 MJd(this, Ccb(DD(b)));
131062 return;
131063 }
131064 did(this, a - aLd((jGd(), PFd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? PFd : c2), a), b);
131065 };
131066 _2.zh = function SJd() {
131067 return jGd(), PFd;
131068 };
131069 _2.Bh = function TJd(a) {
131070 var b, c2;
131071 switch (a) {
131072 case 0:
131073 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
131074 Uxd(this.Ab);
131075 return;
131076 case 1:
131077 JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 4);
131078 pnd(this, null);
131079 return;
131080 case 2:
131081 BId(this, true);
131082 return;
131083 case 3:
131084 CId(this, true);
131085 return;
131086 case 4:
131087 AId(this, 0);
131088 return;
131089 case 5:
131090 this.b = 0;
131091 DId(this, 1);
131092 return;
131093 case 8:
131094 yId(this, null);
131095 return;
131096 case 9:
131097 c2 = xId(this, null, null);
131098 !!c2 && c2.Fi();
131099 return;
131100 case 10:
131101 ZId(this, true);
131102 return;
131103 case 11:
131104 fJd(this, false);
131105 return;
131106 case 12:
131107 dJd(this, false);
131108 return;
131109 case 13:
131110 this.i = null;
131111 _Id(this, null);
131112 return;
131113 case 15:
131114 eJd(this, false);
131115 return;
131116 case 16:
131117 aJd(this, false);
131118 return;
131119 case 18:
131120 MJd(this, false);
131121 return;
131122 }
131123 eid(this, a - aLd((jGd(), PFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? PFd : b), a));
131124 };
131125 _2.Gh = function UJd() {
131126 KJd(this);
131127 a2d(q1d((O6d(), M6d), this));
131128 wId(this);
131129 this.Bb |= 1;
131130 };
131131 _2.$j = function VJd() {
131132 return LJd(this);
131133 };
131134 _2.nk = function WJd(a, b) {
131135 this.b = 0;
131136 this.a = null;
131137 return zId(this, a, b);
131138 };
131139 _2.ok = function XJd(a) {
131140 NJd(this, a);
131141 };
131142 _2.Ib = function YJd() {
131143 var a;
131144 if ((this.Db & 64) != 0)
131145 return gJd(this);
131146 a = new Jfb(gJd(this));
131147 a.a += " (iD: ";
131148 Ffb(a, (this.Bb & ote) != 0);
131149 a.a += ")";
131150 return a.a;
131151 };
131152 _2.b = 0;
131153 mdb(qte, "EAttributeImpl", 322);
131154 bcb(351, 438, { 105: 1, 92: 1, 90: 1, 138: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 150: 1, 114: 1, 115: 1, 676: 1 });
131155 _2.uk = function nKd(a) {
131156 return a.Tg() == this;
131157 };
131158 _2.Qg = function oKd(a) {
131159 return aKd(this, a);
131160 };
131161 _2.Rg = function pKd(a, b) {
131162 this.w = null;
131163 this.Db = b << 16 | this.Db & 255;
131164 this.Cb = a;
131165 };
131166 _2._g = function qKd(a, b, c2) {
131167 var d;
131168 switch (a) {
131169 case 0:
131170 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
131171 case 1:
131172 return this.zb;
131173 case 2:
131174 return this.D != null ? this.D : this.B;
131175 case 3:
131176 return dKd(this);
131177 case 4:
131178 return this.zj();
131179 case 5:
131180 return this.F;
131181 case 6:
131182 if (b)
131183 return bKd(this);
131184 return ZJd(this);
131185 case 7:
131186 return !this.A && (this.A = new K4d(u5, this, 7)), this.A;
131187 }
131188 return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c2);
131189 };
131190 _2.hh = function rKd(a, b, c2) {
131191 var d, e, f2;
131192 switch (b) {
131193 case 0:
131194 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
131195 case 6:
131196 !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? aKd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
131197 return _hd(this, a, 6, c2);
131198 }
131199 return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd(this.zh()), a, c2);
131200 };
131201 _2.jh = function sKd(a, b, c2) {
131202 var d, e;
131203 switch (b) {
131204 case 0:
131205 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
131206 case 6:
131207 return _hd(this, null, 6, c2);
131208 case 7:
131209 return !this.A && (this.A = new K4d(u5, this, 7)), Txd(this.A, a, c2);
131210 }
131211 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd(this.zh()), a, c2);
131212 };
131213 _2.lh = function tKd(a) {
131214 var b;
131215 switch (a) {
131216 case 0:
131217 return !!this.Ab && this.Ab.i != 0;
131218 case 1:
131219 return this.zb != null;
131220 case 2:
131221 return this.D != null && this.D == this.F;
131222 case 3:
131223 return !!dKd(this);
131224 case 4:
131225 return this.zj() != null;
131226 case 5:
131227 return this.F != null && this.F != this.D && this.F != this.B;
131228 case 6:
131229 return !!ZJd(this);
131230 case 7:
131231 return !!this.A && this.A.i != 0;
131232 }
131233 return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
131234 };
131235 _2.sh = function uKd(a, b) {
131236 var c2;
131237 switch (a) {
131238 case 0:
131239 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
131240 Uxd(this.Ab);
131241 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
131242 ytd(this.Ab, BD(b, 14));
131243 return;
131244 case 1:
131245 lKd(this, GD(b));
131246 return;
131247 case 2:
131248 iKd(this, GD(b));
131249 return;
131250 case 5:
131251 kKd(this, GD(b));
131252 return;
131253 case 7:
131254 !this.A && (this.A = new K4d(u5, this, 7));
131255 Uxd(this.A);
131256 !this.A && (this.A = new K4d(u5, this, 7));
131257 ytd(this.A, BD(b, 14));
131258 return;
131259 }
131260 did(this, a - aLd(this.zh()), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? this.zh() : c2), a), b);
131261 };
131262 _2.zh = function vKd() {
131263 return jGd(), RFd;
131264 };
131265 _2.Bh = function wKd(a) {
131266 var b;
131267 switch (a) {
131268 case 0:
131269 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
131270 Uxd(this.Ab);
131271 return;
131272 case 1:
131273 JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null);
131274 pnd(this, null);
131275 return;
131276 case 2:
131277 $Jd(this, null);
131278 _Jd(this, this.D);
131279 return;
131280 case 5:
131281 kKd(this, null);
131282 return;
131283 case 7:
131284 !this.A && (this.A = new K4d(u5, this, 7));
131285 Uxd(this.A);
131286 return;
131287 }
131288 eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
131289 };
131290 _2.yj = function xKd() {
131291 var a;
131292 return this.G == -1 && (this.G = (a = bKd(this), a ? HLd(a.Mh(), this) : -1)), this.G;
131293 };
131294 _2.zj = function yKd() {
131295 return null;
131296 };
131297 _2.Aj = function zKd() {
131298 return bKd(this);
131299 };
131300 _2.vk = function AKd() {
131301 return this.v;
131302 };
131303 _2.Bj = function BKd() {
131304 return dKd(this);
131305 };
131306 _2.Cj = function CKd() {
131307 return this.D != null ? this.D : this.B;
131308 };
131309 _2.Dj = function DKd() {
131310 return this.F;
131311 };
131312 _2.wj = function EKd(a) {
131313 return fKd(this, a);
131314 };
131315 _2.wk = function FKd(a) {
131316 this.v = a;
131317 };
131318 _2.xk = function GKd(a) {
131319 gKd(this, a);
131320 };
131321 _2.yk = function HKd(a) {
131322 this.C = a;
131323 };
131324 _2.Lh = function IKd(a) {
131325 lKd(this, a);
131326 };
131327 _2.Ib = function JKd() {
131328 return mKd(this);
131329 };
131330 _2.C = null;
131331 _2.D = null;
131332 _2.G = -1;
131333 mdb(qte, "EClassifierImpl", 351);
131334 bcb(88, 351, { 105: 1, 92: 1, 90: 1, 26: 1, 138: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 88: 1, 351: 1, 150: 1, 473: 1, 114: 1, 115: 1, 676: 1 }, hLd);
131335 _2.uk = function iLd(a) {
131336 return dLd(this, a.Tg());
131337 };
131338 _2._g = function jLd(a, b, c2) {
131339 var d;
131340 switch (a) {
131341 case 0:
131342 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
131343 case 1:
131344 return this.zb;
131345 case 2:
131346 return this.D != null ? this.D : this.B;
131347 case 3:
131348 return dKd(this);
131349 case 4:
131350 return null;
131351 case 5:
131352 return this.F;
131353 case 6:
131354 if (b)
131355 return bKd(this);
131356 return ZJd(this);
131357 case 7:
131358 return !this.A && (this.A = new K4d(u5, this, 7)), this.A;
131359 case 8:
131360 return Bcb(), (this.Bb & 256) != 0 ? true : false;
131361 case 9:
131362 return Bcb(), (this.Bb & 512) != 0 ? true : false;
131363 case 10:
131364 return _Kd(this);
131365 case 11:
131366 return !this.q && (this.q = new cUd(n5, this, 11, 10)), this.q;
131367 case 12:
131368 return OKd(this);
131369 case 13:
131370 return SKd(this);
131371 case 14:
131372 return SKd(this), this.r;
131373 case 15:
131374 return OKd(this), this.k;
131375 case 16:
131376 return PKd(this);
131377 case 17:
131378 return RKd(this);
131379 case 18:
131380 return TKd(this);
131381 case 19:
131382 return UKd(this);
131383 case 20:
131384 return OKd(this), this.o;
131385 case 21:
131386 return !this.s && (this.s = new cUd(t5, this, 21, 17)), this.s;
131387 case 22:
131388 return VKd(this);
131389 case 23:
131390 return QKd(this);
131391 }
131392 return bid(this, a - aLd((jGd(), QFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? QFd : d), a), b, c2);
131393 };
131394 _2.hh = function kLd(a, b, c2) {
131395 var d, e, f2;
131396 switch (b) {
131397 case 0:
131398 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
131399 case 6:
131400 !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? aKd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
131401 return _hd(this, a, 6, c2);
131402 case 11:
131403 return !this.q && (this.q = new cUd(n5, this, 11, 10)), Sxd(this.q, a, c2);
131404 case 21:
131405 return !this.s && (this.s = new cUd(t5, this, 21, 17)), Sxd(this.s, a, c2);
131406 }
131407 return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), QFd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((jGd(), QFd)), a, c2);
131408 };
131409 _2.jh = function lLd(a, b, c2) {
131410 var d, e;
131411 switch (b) {
131412 case 0:
131413 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
131414 case 6:
131415 return _hd(this, null, 6, c2);
131416 case 7:
131417 return !this.A && (this.A = new K4d(u5, this, 7)), Txd(this.A, a, c2);
131418 case 11:
131419 return !this.q && (this.q = new cUd(n5, this, 11, 10)), Txd(this.q, a, c2);
131420 case 21:
131421 return !this.s && (this.s = new cUd(t5, this, 21, 17)), Txd(this.s, a, c2);
131422 case 22:
131423 return Txd(VKd(this), a, c2);
131424 }
131425 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), QFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), QFd)), a, c2);
131426 };
131427 _2.lh = function mLd(a) {
131428 var b;
131429 switch (a) {
131430 case 0:
131431 return !!this.Ab && this.Ab.i != 0;
131432 case 1:
131433 return this.zb != null;
131434 case 2:
131435 return this.D != null && this.D == this.F;
131436 case 3:
131437 return !!dKd(this);
131438 case 4:
131439 return false;
131440 case 5:
131441 return this.F != null && this.F != this.D && this.F != this.B;
131442 case 6:
131443 return !!ZJd(this);
131444 case 7:
131445 return !!this.A && this.A.i != 0;
131446 case 8:
131447 return (this.Bb & 256) != 0;
131448 case 9:
131449 return (this.Bb & 512) != 0;
131450 case 10:
131451 return !!this.u && VKd(this.u.a).i != 0 && !(!!this.n && FMd(this.n));
131452 case 11:
131453 return !!this.q && this.q.i != 0;
131454 case 12:
131455 return OKd(this).i != 0;
131456 case 13:
131457 return SKd(this).i != 0;
131458 case 14:
131459 return SKd(this), this.r.i != 0;
131460 case 15:
131461 return OKd(this), this.k.i != 0;
131462 case 16:
131463 return PKd(this).i != 0;
131464 case 17:
131465 return RKd(this).i != 0;
131466 case 18:
131467 return TKd(this).i != 0;
131468 case 19:
131469 return UKd(this).i != 0;
131470 case 20:
131471 return OKd(this), !!this.o;
131472 case 21:
131473 return !!this.s && this.s.i != 0;
131474 case 22:
131475 return !!this.n && FMd(this.n);
131476 case 23:
131477 return QKd(this).i != 0;
131478 }
131479 return cid(this, a - aLd((jGd(), QFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? QFd : b), a));
131480 };
131481 _2.oh = function nLd(a) {
131482 var b;
131483 b = this.i == null || !!this.q && this.q.i != 0 ? null : YKd(this, a);
131484 return b ? b : Bmd(this, a);
131485 };
131486 _2.sh = function oLd(a, b) {
131487 var c2;
131488 switch (a) {
131489 case 0:
131490 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
131491 Uxd(this.Ab);
131492 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
131493 ytd(this.Ab, BD(b, 14));
131494 return;
131495 case 1:
131496 lKd(this, GD(b));
131497 return;
131498 case 2:
131499 iKd(this, GD(b));
131500 return;
131501 case 5:
131502 kKd(this, GD(b));
131503 return;
131504 case 7:
131505 !this.A && (this.A = new K4d(u5, this, 7));
131506 Uxd(this.A);
131507 !this.A && (this.A = new K4d(u5, this, 7));
131508 ytd(this.A, BD(b, 14));
131509 return;
131510 case 8:
131511 eLd(this, Ccb(DD(b)));
131512 return;
131513 case 9:
131514 fLd(this, Ccb(DD(b)));
131515 return;
131516 case 10:
131517 vwd(_Kd(this));
131518 ytd(_Kd(this), BD(b, 14));
131519 return;
131520 case 11:
131521 !this.q && (this.q = new cUd(n5, this, 11, 10));
131522 Uxd(this.q);
131523 !this.q && (this.q = new cUd(n5, this, 11, 10));
131524 ytd(this.q, BD(b, 14));
131525 return;
131526 case 21:
131527 !this.s && (this.s = new cUd(t5, this, 21, 17));
131528 Uxd(this.s);
131529 !this.s && (this.s = new cUd(t5, this, 21, 17));
131530 ytd(this.s, BD(b, 14));
131531 return;
131532 case 22:
131533 Uxd(VKd(this));
131534 ytd(VKd(this), BD(b, 14));
131535 return;
131536 }
131537 did(this, a - aLd((jGd(), QFd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? QFd : c2), a), b);
131538 };
131539 _2.zh = function pLd() {
131540 return jGd(), QFd;
131541 };
131542 _2.Bh = function qLd(a) {
131543 var b;
131544 switch (a) {
131545 case 0:
131546 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
131547 Uxd(this.Ab);
131548 return;
131549 case 1:
131550 JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null);
131551 pnd(this, null);
131552 return;
131553 case 2:
131554 $Jd(this, null);
131555 _Jd(this, this.D);
131556 return;
131557 case 5:
131558 kKd(this, null);
131559 return;
131560 case 7:
131561 !this.A && (this.A = new K4d(u5, this, 7));
131562 Uxd(this.A);
131563 return;
131564 case 8:
131565 eLd(this, false);
131566 return;
131567 case 9:
131568 fLd(this, false);
131569 return;
131570 case 10:
131571 !!this.u && vwd(this.u);
131572 return;
131573 case 11:
131574 !this.q && (this.q = new cUd(n5, this, 11, 10));
131575 Uxd(this.q);
131576 return;
131577 case 21:
131578 !this.s && (this.s = new cUd(t5, this, 21, 17));
131579 Uxd(this.s);
131580 return;
131581 case 22:
131582 !!this.n && Uxd(this.n);
131583 return;
131584 }
131585 eid(this, a - aLd((jGd(), QFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? QFd : b), a));
131586 };
131587 _2.Gh = function rLd() {
131588 var a, b;
131589 OKd(this);
131590 SKd(this);
131591 PKd(this);
131592 RKd(this);
131593 TKd(this);
131594 UKd(this);
131595 QKd(this);
131596 oud(SMd($Kd(this)));
131597 if (this.s) {
131598 for (a = 0, b = this.s.i; a < b; ++a) {
131599 Cmd(qud(this.s, a));
131600 }
131601 }
131602 if (this.q) {
131603 for (a = 0, b = this.q.i; a < b; ++a) {
131604 Cmd(qud(this.q, a));
131605 }
131606 }
131607 o1d((O6d(), M6d), this).ne();
131608 this.Bb |= 1;
131609 };
131610 _2.Ib = function sLd() {
131611 return gLd(this);
131612 };
131613 _2.k = null;
131614 _2.r = null;
131615 var KKd, LKd, MKd;
131616 mdb(qte, "EClassImpl", 88);
131617 bcb(1994, 1993, Ove);
131618 _2.Vh = function tLd(a, b) {
131619 return Pxd(this, a, b);
131620 };
131621 _2.Wh = function uLd(a) {
131622 return Pxd(this, this.i, a);
131623 };
131624 _2.Xh = function vLd(a, b) {
131625 Qxd(this, a, b);
131626 };
131627 _2.Yh = function wLd(a) {
131628 Rxd(this, a);
131629 };
131630 _2.lk = function xLd(a, b) {
131631 return Sxd(this, a, b);
131632 };
131633 _2.pi = function yLd(a) {
131634 return nud(this, a);
131635 };
131636 _2.mk = function CLd(a, b) {
131637 return Txd(this, a, b);
131638 };
131639 _2.mi = function DLd(a, b) {
131640 return Zxd(this, a, b);
131641 };
131642 _2.Zh = function zLd() {
131643 return new $yd(this);
131644 };
131645 _2.$h = function ALd() {
131646 return new bzd(this);
131647 };
131648 _2._h = function BLd(a) {
131649 return ztd(this, a);
131650 };
131651 mdb(yve, "NotifyingInternalEListImpl", 1994);
131652 bcb(622, 1994, Pve);
131653 _2.Hc = function NLd(a) {
131654 return ELd(this, a);
131655 };
131656 _2.Zi = function OLd(a, b, c2, d, e) {
131657 return FLd(this, a, b, c2, d, e);
131658 };
131659 _2.$i = function PLd(a) {
131660 GLd(this, a);
131661 };
131662 _2.Wj = function QLd(a) {
131663 return this;
131664 };
131665 _2.ak = function RLd() {
131666 return XKd(this.e.Tg(), this.aj());
131667 };
131668 _2._i = function SLd() {
131669 return this.ak();
131670 };
131671 _2.aj = function TLd() {
131672 return bLd(this.e.Tg(), this.ak());
131673 };
131674 _2.zk = function ULd() {
131675 return BD(this.ak().Yj(), 26).Bj();
131676 };
131677 _2.Ak = function VLd() {
131678 return zUd(BD(this.ak(), 18)).n;
131679 };
131680 _2.Ai = function WLd() {
131681 return this.e;
131682 };
131683 _2.Bk = function XLd() {
131684 return true;
131685 };
131686 _2.Ck = function YLd() {
131687 return false;
131688 };
131689 _2.Dk = function ZLd() {
131690 return false;
131691 };
131692 _2.Ek = function $Ld() {
131693 return false;
131694 };
131695 _2.Xc = function _Ld(a) {
131696 return HLd(this, a);
131697 };
131698 _2.cj = function aMd(a, b) {
131699 var c2;
131700 return c2 = BD(a, 49), this.Dk() ? this.Bk() ? c2.gh(this.e, this.Ak(), this.zk(), b) : c2.gh(this.e, bLd(c2.Tg(), zUd(BD(this.ak(), 18))), null, b) : c2.gh(this.e, -1 - this.aj(), null, b);
131701 };
131702 _2.dj = function bMd(a, b) {
131703 var c2;
131704 return c2 = BD(a, 49), this.Dk() ? this.Bk() ? c2.ih(this.e, this.Ak(), this.zk(), b) : c2.ih(this.e, bLd(c2.Tg(), zUd(BD(this.ak(), 18))), null, b) : c2.ih(this.e, -1 - this.aj(), null, b);
131705 };
131706 _2.rk = function cMd() {
131707 return false;
131708 };
131709 _2.Fk = function dMd() {
131710 return true;
131711 };
131712 _2.wj = function eMd(a) {
131713 return qEd(this.d, a);
131714 };
131715 _2.ej = function fMd() {
131716 return oid(this.e);
131717 };
131718 _2.fj = function gMd() {
131719 return this.i != 0;
131720 };
131721 _2.ri = function hMd(a) {
131722 return izd(this.d, a);
131723 };
131724 _2.li = function iMd(a, b) {
131725 return this.Fk() && this.Ek() ? ILd(this, a, BD(b, 56)) : b;
131726 };
131727 _2.Gk = function jMd(a) {
131728 return a.kh() ? xid(this.e, BD(a, 49)) : a;
131729 };
131730 _2.Wb = function kMd(a) {
131731 JLd(this, a);
131732 };
131733 _2.Pc = function lMd() {
131734 return KLd(this);
131735 };
131736 _2.Qc = function mMd(a) {
131737 var b;
131738 if (this.Ek()) {
131739 for (b = this.i - 1; b >= 0; --b) {
131740 qud(this, b);
131741 }
131742 }
131743 return xud(this, a);
131744 };
131745 _2.Xj = function nMd() {
131746 Uxd(this);
131747 };
131748 _2.oi = function oMd(a, b) {
131749 return LLd(this, a, b);
131750 };
131751 mdb(yve, "EcoreEList", 622);
131752 bcb(496, 622, Pve, pMd);
131753 _2.ai = function qMd() {
131754 return false;
131755 };
131756 _2.aj = function rMd() {
131757 return this.c;
131758 };
131759 _2.bj = function sMd() {
131760 return false;
131761 };
131762 _2.Fk = function tMd() {
131763 return true;
131764 };
131765 _2.hi = function uMd() {
131766 return true;
131767 };
131768 _2.li = function vMd(a, b) {
131769 return b;
131770 };
131771 _2.ni = function wMd() {
131772 return false;
131773 };
131774 _2.c = 0;
131775 mdb(yve, "EObjectEList", 496);
131776 bcb(85, 496, Pve, xMd);
131777 _2.bj = function yMd() {
131778 return true;
131779 };
131780 _2.Dk = function zMd() {
131781 return false;
131782 };
131783 _2.rk = function AMd() {
131784 return true;
131785 };
131786 mdb(yve, "EObjectContainmentEList", 85);
131787 bcb(545, 85, Pve, BMd);
131788 _2.ci = function CMd() {
131789 this.b = true;
131790 };
131791 _2.fj = function DMd() {
131792 return this.b;
131793 };
131794 _2.Xj = function EMd() {
131795 var a;
131796 Uxd(this);
131797 if (oid(this.e)) {
131798 a = this.b;
131799 this.b = false;
131800 Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
131801 } else {
131802 this.b = false;
131803 }
131804 };
131805 _2.b = false;
131806 mdb(yve, "EObjectContainmentEList/Unsettable", 545);
131807 bcb(1140, 545, Pve, JMd);
131808 _2.ii = function NMd(a, b) {
131809 var c2, d;
131810 return c2 = BD(Wxd(this, a, b), 87), oid(this.e) && GLd(this, new ESd(this.a, 7, (jGd(), SFd), meb(b), (d = c2.c, JD(d, 88) ? BD(d, 26) : _Fd), a)), c2;
131811 };
131812 _2.jj = function OMd(a, b) {
131813 return GMd(this, BD(a, 87), b);
131814 };
131815 _2.kj = function PMd(a, b) {
131816 return HMd(this, BD(a, 87), b);
131817 };
131818 _2.lj = function QMd(a, b, c2) {
131819 return IMd(this, BD(a, 87), BD(b, 87), c2);
131820 };
131821 _2.Zi = function KMd(a, b, c2, d, e) {
131822 switch (a) {
131823 case 3: {
131824 return FLd(this, a, b, c2, d, this.i > 1);
131825 }
131826 case 5: {
131827 return FLd(this, a, b, c2, d, this.i - BD(c2, 15).gc() > 0);
131828 }
131829 default: {
131830 return new pSd(this.e, a, this.c, b, c2, d, true);
131831 }
131832 }
131833 };
131834 _2.ij = function LMd() {
131835 return true;
131836 };
131837 _2.fj = function MMd() {
131838 return FMd(this);
131839 };
131840 _2.Xj = function RMd() {
131841 Uxd(this);
131842 };
131843 mdb(qte, "EClassImpl/1", 1140);
131844 bcb(1154, 1153, dve);
131845 _2.ui = function VMd(a) {
131846 var b, c2, d, e, f2, g, h;
131847 c2 = a.xi();
131848 if (c2 != 8) {
131849 d = UMd(a);
131850 if (d == 0) {
131851 switch (c2) {
131852 case 1:
131853 case 9: {
131854 h = a.Bi();
131855 if (h != null) {
131856 b = $Kd(BD(h, 473));
131857 !b.c && (b.c = new xYd());
131858 Ftd(b.c, a.Ai());
131859 }
131860 g = a.zi();
131861 if (g != null) {
131862 e = BD(g, 473);
131863 if ((e.Bb & 1) == 0) {
131864 b = $Kd(e);
131865 !b.c && (b.c = new xYd());
131866 wtd(b.c, BD(a.Ai(), 26));
131867 }
131868 }
131869 break;
131870 }
131871 case 3: {
131872 g = a.zi();
131873 if (g != null) {
131874 e = BD(g, 473);
131875 if ((e.Bb & 1) == 0) {
131876 b = $Kd(e);
131877 !b.c && (b.c = new xYd());
131878 wtd(b.c, BD(a.Ai(), 26));
131879 }
131880 }
131881 break;
131882 }
131883 case 5: {
131884 g = a.zi();
131885 if (g != null) {
131886 for (f2 = BD(g, 14).Kc(); f2.Ob(); ) {
131887 e = BD(f2.Pb(), 473);
131888 if ((e.Bb & 1) == 0) {
131889 b = $Kd(e);
131890 !b.c && (b.c = new xYd());
131891 wtd(b.c, BD(a.Ai(), 26));
131892 }
131893 }
131894 }
131895 break;
131896 }
131897 case 4: {
131898 h = a.Bi();
131899 if (h != null) {
131900 e = BD(h, 473);
131901 if ((e.Bb & 1) == 0) {
131902 b = $Kd(e);
131903 !b.c && (b.c = new xYd());
131904 Ftd(b.c, a.Ai());
131905 }
131906 }
131907 break;
131908 }
131909 case 6: {
131910 h = a.Bi();
131911 if (h != null) {
131912 for (f2 = BD(h, 14).Kc(); f2.Ob(); ) {
131913 e = BD(f2.Pb(), 473);
131914 if ((e.Bb & 1) == 0) {
131915 b = $Kd(e);
131916 !b.c && (b.c = new xYd());
131917 Ftd(b.c, a.Ai());
131918 }
131919 }
131920 }
131921 break;
131922 }
131923 }
131924 }
131925 this.Hk(d);
131926 }
131927 };
131928 _2.Hk = function WMd(a) {
131929 TMd(this, a);
131930 };
131931 _2.b = 63;
131932 mdb(qte, "ESuperAdapter", 1154);
131933 bcb(1155, 1154, dve, YMd);
131934 _2.Hk = function ZMd(a) {
131935 XMd(this, a);
131936 };
131937 mdb(qte, "EClassImpl/10", 1155);
131938 bcb(1144, 696, Pve);
131939 _2.Vh = function $Md(a, b) {
131940 return iud(this, a, b);
131941 };
131942 _2.Wh = function _Md(a) {
131943 return jud(this, a);
131944 };
131945 _2.Xh = function aNd(a, b) {
131946 kud(this, a, b);
131947 };
131948 _2.Yh = function bNd(a) {
131949 lud(this, a);
131950 };
131951 _2.pi = function dNd(a) {
131952 return nud(this, a);
131953 };
131954 _2.mi = function lNd(a, b) {
131955 return uud(this, a, b);
131956 };
131957 _2.lk = function cNd(a, b) {
131958 throw vbb(new bgb());
131959 };
131960 _2.Zh = function eNd() {
131961 return new $yd(this);
131962 };
131963 _2.$h = function fNd() {
131964 return new bzd(this);
131965 };
131966 _2._h = function gNd(a) {
131967 return ztd(this, a);
131968 };
131969 _2.mk = function hNd(a, b) {
131970 throw vbb(new bgb());
131971 };
131972 _2.Wj = function iNd(a) {
131973 return this;
131974 };
131975 _2.fj = function jNd() {
131976 return this.i != 0;
131977 };
131978 _2.Wb = function kNd(a) {
131979 throw vbb(new bgb());
131980 };
131981 _2.Xj = function mNd() {
131982 throw vbb(new bgb());
131983 };
131984 mdb(yve, "EcoreEList/UnmodifiableEList", 1144);
131985 bcb(319, 1144, Pve, nNd);
131986 _2.ni = function oNd() {
131987 return false;
131988 };
131989 mdb(yve, "EcoreEList/UnmodifiableEList/FastCompare", 319);
131990 bcb(1147, 319, Pve, rNd);
131991 _2.Xc = function sNd(a) {
131992 var b, c2, d;
131993 if (JD(a, 170)) {
131994 b = BD(a, 170);
131995 c2 = b.aj();
131996 if (c2 != -1) {
131997 for (d = this.i; c2 < d; ++c2) {
131998 if (PD(this.g[c2]) === PD(a)) {
131999 return c2;
132000 }
132001 }
132002 }
132003 }
132004 return -1;
132005 };
132006 mdb(qte, "EClassImpl/1EAllStructuralFeaturesList", 1147);
132007 bcb(1141, 497, oue, wNd);
132008 _2.ri = function xNd(a) {
132009 return KC(j5, Tve, 87, a, 0, 1);
132010 };
132011 _2.ni = function yNd() {
132012 return false;
132013 };
132014 mdb(qte, "EClassImpl/1EGenericSuperTypeEList", 1141);
132015 bcb(623, 497, oue, zNd);
132016 _2.ri = function ANd(a) {
132017 return KC(t5, Mve, 170, a, 0, 1);
132018 };
132019 _2.ni = function BNd() {
132020 return false;
132021 };
132022 mdb(qte, "EClassImpl/1EStructuralFeatureUniqueEList", 623);
132023 bcb(741, 497, oue, CNd);
132024 _2.ri = function DNd(a) {
132025 return KC(q5, Mve, 18, a, 0, 1);
132026 };
132027 _2.ni = function ENd() {
132028 return false;
132029 };
132030 mdb(qte, "EClassImpl/1ReferenceList", 741);
132031 bcb(1142, 497, oue, GNd);
132032 _2.bi = function HNd(a, b) {
132033 FNd(this, BD(b, 34));
132034 };
132035 _2.ri = function INd(a) {
132036 return KC(b5, Mve, 34, a, 0, 1);
132037 };
132038 _2.ni = function JNd() {
132039 return false;
132040 };
132041 mdb(qte, "EClassImpl/2", 1142);
132042 bcb(1143, 497, oue, KNd);
132043 _2.ri = function LNd(a) {
132044 return KC(b5, Mve, 34, a, 0, 1);
132045 };
132046 _2.ni = function MNd() {
132047 return false;
132048 };
132049 mdb(qte, "EClassImpl/3", 1143);
132050 bcb(1145, 319, Pve, PNd);
132051 _2.Fc = function QNd(a) {
132052 return NNd(this, BD(a, 34));
132053 };
132054 _2.Yh = function RNd(a) {
132055 ONd(this, BD(a, 34));
132056 };
132057 mdb(qte, "EClassImpl/4", 1145);
132058 bcb(1146, 319, Pve, UNd);
132059 _2.Fc = function VNd(a) {
132060 return SNd(this, BD(a, 18));
132061 };
132062 _2.Yh = function WNd(a) {
132063 TNd(this, BD(a, 18));
132064 };
132065 mdb(qte, "EClassImpl/5", 1146);
132066 bcb(1148, 497, oue, XNd);
132067 _2.ri = function YNd(a) {
132068 return KC(n5, Nve, 59, a, 0, 1);
132069 };
132070 _2.ni = function ZNd() {
132071 return false;
132072 };
132073 mdb(qte, "EClassImpl/6", 1148);
132074 bcb(1149, 497, oue, $Nd);
132075 _2.ri = function _Nd(a) {
132076 return KC(q5, Mve, 18, a, 0, 1);
132077 };
132078 _2.ni = function aOd() {
132079 return false;
132080 };
132081 mdb(qte, "EClassImpl/7", 1149);
132082 bcb(1997, 1996, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 67: 1, 58: 1, 69: 1 });
132083 _2.Vh = function bOd(a, b) {
132084 return qwd(this, a, b);
132085 };
132086 _2.Wh = function cOd(a) {
132087 return qwd(this, this.Vi(), a);
132088 };
132089 _2.Xh = function dOd(a, b) {
132090 rwd(this, a, b);
132091 };
132092 _2.Yh = function eOd(a) {
132093 swd(this, a);
132094 };
132095 _2.lk = function fOd(a, b) {
132096 return twd(this, a, b);
132097 };
132098 _2.mk = function lOd(a, b) {
132099 return uwd(this, a, b);
132100 };
132101 _2.mi = function mOd(a, b) {
132102 return wwd(this, a, b);
132103 };
132104 _2.pi = function gOd(a) {
132105 return this.Oi(a);
132106 };
132107 _2.Zh = function hOd() {
132108 return new $yd(this);
132109 };
132110 _2.Gi = function iOd() {
132111 return this.Ji();
132112 };
132113 _2.$h = function jOd() {
132114 return new bzd(this);
132115 };
132116 _2._h = function kOd(a) {
132117 return ztd(this, a);
132118 };
132119 mdb(yve, "DelegatingNotifyingInternalEListImpl", 1997);
132120 bcb(742, 1997, Uve);
132121 _2.ai = function rOd() {
132122 var a;
132123 a = XKd(wjd(this.b), this.aj()).Yj();
132124 return JD(a, 148) && !JD(a, 457) && (a.Bj().i & 1) == 0;
132125 };
132126 _2.Hc = function sOd(a) {
132127 var b, c2, d, e, f2, g, h, i3;
132128 if (this.Fk()) {
132129 i3 = this.Vi();
132130 if (i3 > 4) {
132131 if (this.wj(a)) {
132132 if (this.rk()) {
132133 d = BD(a, 49);
132134 c2 = d.Ug();
132135 h = c2 == this.b && (this.Dk() ? d.Og(d.Vg(), BD(XKd(wjd(this.b), this.aj()).Yj(), 26).Bj()) == zUd(BD(XKd(wjd(this.b), this.aj()), 18)).n : -1 - d.Vg() == this.aj());
132136 if (this.Ek() && !h && !c2 && !!d.Zg()) {
132137 for (e = 0; e < i3; ++e) {
132138 b = oOd(this, this.Oi(e));
132139 if (PD(b) === PD(a)) {
132140 return true;
132141 }
132142 }
132143 }
132144 return h;
132145 } else if (this.Dk() && !this.Ck()) {
132146 f2 = BD(a, 56).ah(zUd(BD(XKd(wjd(this.b), this.aj()), 18)));
132147 if (PD(f2) === PD(this.b)) {
132148 return true;
132149 } else if (f2 == null || !BD(f2, 56).kh()) {
132150 return false;
132151 }
132152 }
132153 } else {
132154 return false;
132155 }
132156 }
132157 g = this.Li(a);
132158 if (this.Ek() && !g) {
132159 for (e = 0; e < i3; ++e) {
132160 d = oOd(this, this.Oi(e));
132161 if (PD(d) === PD(a)) {
132162 return true;
132163 }
132164 }
132165 }
132166 return g;
132167 } else {
132168 return this.Li(a);
132169 }
132170 };
132171 _2.Zi = function tOd(a, b, c2, d, e) {
132172 return new pSd(this.b, a, this.aj(), b, c2, d, e);
132173 };
132174 _2.$i = function uOd(a) {
132175 Uhd(this.b, a);
132176 };
132177 _2.Wj = function vOd(a) {
132178 return this;
132179 };
132180 _2._i = function wOd() {
132181 return XKd(wjd(this.b), this.aj());
132182 };
132183 _2.aj = function xOd() {
132184 return bLd(wjd(this.b), XKd(wjd(this.b), this.aj()));
132185 };
132186 _2.Ai = function yOd() {
132187 return this.b;
132188 };
132189 _2.Bk = function zOd() {
132190 return !!XKd(wjd(this.b), this.aj()).Yj().Bj();
132191 };
132192 _2.bj = function AOd() {
132193 var a, b;
132194 b = XKd(wjd(this.b), this.aj());
132195 if (JD(b, 99)) {
132196 a = BD(b, 18);
132197 return (a.Bb & ote) != 0 || !!zUd(BD(b, 18));
132198 } else {
132199 return false;
132200 }
132201 };
132202 _2.Ck = function BOd() {
132203 var a, b, c2, d;
132204 b = XKd(wjd(this.b), this.aj());
132205 if (JD(b, 99)) {
132206 a = BD(b, 18);
132207 c2 = zUd(a);
132208 return !!c2 && (d = c2.t, d > 1 || d == -1);
132209 } else {
132210 return false;
132211 }
132212 };
132213 _2.Dk = function COd() {
132214 var a, b, c2;
132215 b = XKd(wjd(this.b), this.aj());
132216 if (JD(b, 99)) {
132217 a = BD(b, 18);
132218 c2 = zUd(a);
132219 return !!c2;
132220 } else {
132221 return false;
132222 }
132223 };
132224 _2.Ek = function DOd() {
132225 var a, b;
132226 b = XKd(wjd(this.b), this.aj());
132227 if (JD(b, 99)) {
132228 a = BD(b, 18);
132229 return (a.Bb & Tje) != 0;
132230 } else {
132231 return false;
132232 }
132233 };
132234 _2.Xc = function EOd(a) {
132235 var b, c2, d, e;
132236 d = this.Qi(a);
132237 if (d >= 0)
132238 return d;
132239 if (this.Fk()) {
132240 for (c2 = 0, e = this.Vi(); c2 < e; ++c2) {
132241 b = oOd(this, this.Oi(c2));
132242 if (PD(b) === PD(a)) {
132243 return c2;
132244 }
132245 }
132246 }
132247 return -1;
132248 };
132249 _2.cj = function FOd(a, b) {
132250 var c2;
132251 return c2 = BD(a, 49), this.Dk() ? this.Bk() ? c2.gh(this.b, zUd(BD(XKd(wjd(this.b), this.aj()), 18)).n, BD(XKd(wjd(this.b), this.aj()).Yj(), 26).Bj(), b) : c2.gh(this.b, bLd(c2.Tg(), zUd(BD(XKd(wjd(this.b), this.aj()), 18))), null, b) : c2.gh(this.b, -1 - this.aj(), null, b);
132252 };
132253 _2.dj = function GOd(a, b) {
132254 var c2;
132255 return c2 = BD(a, 49), this.Dk() ? this.Bk() ? c2.ih(this.b, zUd(BD(XKd(wjd(this.b), this.aj()), 18)).n, BD(XKd(wjd(this.b), this.aj()).Yj(), 26).Bj(), b) : c2.ih(this.b, bLd(c2.Tg(), zUd(BD(XKd(wjd(this.b), this.aj()), 18))), null, b) : c2.ih(this.b, -1 - this.aj(), null, b);
132256 };
132257 _2.rk = function HOd() {
132258 var a, b;
132259 b = XKd(wjd(this.b), this.aj());
132260 if (JD(b, 99)) {
132261 a = BD(b, 18);
132262 return (a.Bb & ote) != 0;
132263 } else {
132264 return false;
132265 }
132266 };
132267 _2.Fk = function IOd() {
132268 return JD(XKd(wjd(this.b), this.aj()).Yj(), 88);
132269 };
132270 _2.wj = function JOd(a) {
132271 return XKd(wjd(this.b), this.aj()).Yj().wj(a);
132272 };
132273 _2.ej = function KOd() {
132274 return oid(this.b);
132275 };
132276 _2.fj = function LOd() {
132277 return !this.Ri();
132278 };
132279 _2.hi = function MOd() {
132280 return XKd(wjd(this.b), this.aj()).hi();
132281 };
132282 _2.li = function NOd(a, b) {
132283 return nOd(this, a, b);
132284 };
132285 _2.Wb = function OOd(a) {
132286 vwd(this);
132287 ytd(this, BD(a, 15));
132288 };
132289 _2.Pc = function POd() {
132290 var a;
132291 if (this.Ek()) {
132292 for (a = this.Vi() - 1; a >= 0; --a) {
132293 nOd(this, a, this.Oi(a));
132294 }
132295 }
132296 return this.Wi();
132297 };
132298 _2.Qc = function QOd(a) {
132299 var b;
132300 if (this.Ek()) {
132301 for (b = this.Vi() - 1; b >= 0; --b) {
132302 nOd(this, b, this.Oi(b));
132303 }
132304 }
132305 return this.Xi(a);
132306 };
132307 _2.Xj = function ROd() {
132308 vwd(this);
132309 };
132310 _2.oi = function SOd(a, b) {
132311 return pOd(this, a, b);
132312 };
132313 mdb(yve, "DelegatingEcoreEList", 742);
132314 bcb(1150, 742, Uve, YOd);
132315 _2.Hi = function _Od(a, b) {
132316 TOd(this, a, BD(b, 26));
132317 };
132318 _2.Ii = function aPd(a) {
132319 UOd(this, BD(a, 26));
132320 };
132321 _2.Oi = function gPd(a) {
132322 var b, c2;
132323 return b = BD(qud(VKd(this.a), a), 87), c2 = b.c, JD(c2, 88) ? BD(c2, 26) : (jGd(), _Fd);
132324 };
132325 _2.Ti = function lPd(a) {
132326 var b, c2;
132327 return b = BD(Xxd(VKd(this.a), a), 87), c2 = b.c, JD(c2, 88) ? BD(c2, 26) : (jGd(), _Fd);
132328 };
132329 _2.Ui = function mPd(a, b) {
132330 return WOd(this, a, BD(b, 26));
132331 };
132332 _2.ai = function ZOd() {
132333 return false;
132334 };
132335 _2.Zi = function $Od(a, b, c2, d, e) {
132336 return null;
132337 };
132338 _2.Ji = function bPd() {
132339 return new EPd(this);
132340 };
132341 _2.Ki = function cPd() {
132342 Uxd(VKd(this.a));
132343 };
132344 _2.Li = function dPd(a) {
132345 return VOd(this, a);
132346 };
132347 _2.Mi = function ePd(a) {
132348 var b, c2;
132349 for (c2 = a.Kc(); c2.Ob(); ) {
132350 b = c2.Pb();
132351 if (!VOd(this, b)) {
132352 return false;
132353 }
132354 }
132355 return true;
132356 };
132357 _2.Ni = function fPd(a) {
132358 var b, c2, d;
132359 if (JD(a, 15)) {
132360 d = BD(a, 15);
132361 if (d.gc() == VKd(this.a).i) {
132362 for (b = d.Kc(), c2 = new Fyd(this); b.Ob(); ) {
132363 if (PD(b.Pb()) !== PD(Dyd(c2))) {
132364 return false;
132365 }
132366 }
132367 return true;
132368 }
132369 }
132370 return false;
132371 };
132372 _2.Pi = function hPd() {
132373 var a, b, c2, d, e;
132374 c2 = 1;
132375 for (b = new Fyd(VKd(this.a)); b.e != b.i.gc(); ) {
132376 a = BD(Dyd(b), 87);
132377 d = (e = a.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd));
132378 c2 = 31 * c2 + (!d ? 0 : FCb(d));
132379 }
132380 return c2;
132381 };
132382 _2.Qi = function iPd(a) {
132383 var b, c2, d, e;
132384 d = 0;
132385 for (c2 = new Fyd(VKd(this.a)); c2.e != c2.i.gc(); ) {
132386 b = BD(Dyd(c2), 87);
132387 if (PD(a) === PD((e = b.c, JD(e, 88) ? BD(e, 26) : (jGd(), _Fd)))) {
132388 return d;
132389 }
132390 ++d;
132391 }
132392 return -1;
132393 };
132394 _2.Ri = function jPd() {
132395 return VKd(this.a).i == 0;
132396 };
132397 _2.Si = function kPd() {
132398 return null;
132399 };
132400 _2.Vi = function nPd() {
132401 return VKd(this.a).i;
132402 };
132403 _2.Wi = function oPd() {
132404 var a, b, c2, d, e, f2;
132405 f2 = VKd(this.a).i;
132406 e = KC(SI, Uhe, 1, f2, 5, 1);
132407 c2 = 0;
132408 for (b = new Fyd(VKd(this.a)); b.e != b.i.gc(); ) {
132409 a = BD(Dyd(b), 87);
132410 e[c2++] = (d = a.c, JD(d, 88) ? BD(d, 26) : (jGd(), _Fd));
132411 }
132412 return e;
132413 };
132414 _2.Xi = function pPd(a) {
132415 var b, c2, d, e, f2, g, h;
132416 h = VKd(this.a).i;
132417 if (a.length < h) {
132418 e = izd(rb(a).c, h);
132419 a = e;
132420 }
132421 a.length > h && NC(a, h, null);
132422 d = 0;
132423 for (c2 = new Fyd(VKd(this.a)); c2.e != c2.i.gc(); ) {
132424 b = BD(Dyd(c2), 87);
132425 f2 = (g = b.c, JD(g, 88) ? BD(g, 26) : (jGd(), _Fd));
132426 NC(a, d++, f2);
132427 }
132428 return a;
132429 };
132430 _2.Yi = function qPd() {
132431 var a, b, c2, d, e;
132432 e = new Hfb();
132433 e.a += "[";
132434 a = VKd(this.a);
132435 for (b = 0, d = VKd(this.a).i; b < d; ) {
132436 Efb(e, xfb((c2 = BD(qud(a, b), 87).c, JD(c2, 88) ? BD(c2, 26) : (jGd(), _Fd))));
132437 ++b < d && (e.a += She, e);
132438 }
132439 e.a += "]";
132440 return e.a;
132441 };
132442 _2.$i = function rPd(a) {
132443 };
132444 _2.aj = function sPd() {
132445 return 10;
132446 };
132447 _2.Bk = function tPd() {
132448 return true;
132449 };
132450 _2.bj = function uPd() {
132451 return false;
132452 };
132453 _2.Ck = function vPd() {
132454 return false;
132455 };
132456 _2.Dk = function wPd() {
132457 return false;
132458 };
132459 _2.Ek = function xPd() {
132460 return true;
132461 };
132462 _2.rk = function yPd() {
132463 return false;
132464 };
132465 _2.Fk = function zPd() {
132466 return true;
132467 };
132468 _2.wj = function APd(a) {
132469 return JD(a, 88);
132470 };
132471 _2.fj = function BPd() {
132472 return cLd(this.a);
132473 };
132474 _2.hi = function CPd() {
132475 return true;
132476 };
132477 _2.ni = function DPd() {
132478 return true;
132479 };
132480 mdb(qte, "EClassImpl/8", 1150);
132481 bcb(1151, 1964, Lie, EPd);
132482 _2.Zc = function FPd(a) {
132483 return ztd(this.a, a);
132484 };
132485 _2.gc = function GPd() {
132486 return VKd(this.a.a).i;
132487 };
132488 mdb(qte, "EClassImpl/8/1", 1151);
132489 bcb(1152, 497, oue, HPd);
132490 _2.ri = function IPd(a) {
132491 return KC(d5, Uhe, 138, a, 0, 1);
132492 };
132493 _2.ni = function JPd() {
132494 return false;
132495 };
132496 mdb(qte, "EClassImpl/9", 1152);
132497 bcb(1139, 53, gke, KPd);
132498 mdb(qte, "EClassImpl/MyHashSet", 1139);
132499 bcb(566, 351, { 105: 1, 92: 1, 90: 1, 138: 1, 148: 1, 834: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 150: 1, 114: 1, 115: 1, 676: 1 }, MPd);
132500 _2._g = function NPd(a, b, c2) {
132501 var d;
132502 switch (a) {
132503 case 0:
132504 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
132505 case 1:
132506 return this.zb;
132507 case 2:
132508 return this.D != null ? this.D : this.B;
132509 case 3:
132510 return dKd(this);
132511 case 4:
132512 return this.zj();
132513 case 5:
132514 return this.F;
132515 case 6:
132516 if (b)
132517 return bKd(this);
132518 return ZJd(this);
132519 case 7:
132520 return !this.A && (this.A = new K4d(u5, this, 7)), this.A;
132521 case 8:
132522 return Bcb(), (this.Bb & 256) != 0 ? true : false;
132523 }
132524 return bid(this, a - aLd(this.zh()), XKd((d = BD(Ajd(this, 16), 26), !d ? this.zh() : d), a), b, c2);
132525 };
132526 _2.lh = function OPd(a) {
132527 var b;
132528 switch (a) {
132529 case 0:
132530 return !!this.Ab && this.Ab.i != 0;
132531 case 1:
132532 return this.zb != null;
132533 case 2:
132534 return this.D != null && this.D == this.F;
132535 case 3:
132536 return !!dKd(this);
132537 case 4:
132538 return this.zj() != null;
132539 case 5:
132540 return this.F != null && this.F != this.D && this.F != this.B;
132541 case 6:
132542 return !!ZJd(this);
132543 case 7:
132544 return !!this.A && this.A.i != 0;
132545 case 8:
132546 return (this.Bb & 256) == 0;
132547 }
132548 return cid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
132549 };
132550 _2.sh = function PPd(a, b) {
132551 var c2;
132552 switch (a) {
132553 case 0:
132554 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
132555 Uxd(this.Ab);
132556 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
132557 ytd(this.Ab, BD(b, 14));
132558 return;
132559 case 1:
132560 lKd(this, GD(b));
132561 return;
132562 case 2:
132563 iKd(this, GD(b));
132564 return;
132565 case 5:
132566 kKd(this, GD(b));
132567 return;
132568 case 7:
132569 !this.A && (this.A = new K4d(u5, this, 7));
132570 Uxd(this.A);
132571 !this.A && (this.A = new K4d(u5, this, 7));
132572 ytd(this.A, BD(b, 14));
132573 return;
132574 case 8:
132575 LPd(this, Ccb(DD(b)));
132576 return;
132577 }
132578 did(this, a - aLd(this.zh()), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? this.zh() : c2), a), b);
132579 };
132580 _2.zh = function QPd() {
132581 return jGd(), TFd;
132582 };
132583 _2.Bh = function RPd(a) {
132584 var b;
132585 switch (a) {
132586 case 0:
132587 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
132588 Uxd(this.Ab);
132589 return;
132590 case 1:
132591 JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null);
132592 pnd(this, null);
132593 return;
132594 case 2:
132595 $Jd(this, null);
132596 _Jd(this, this.D);
132597 return;
132598 case 5:
132599 kKd(this, null);
132600 return;
132601 case 7:
132602 !this.A && (this.A = new K4d(u5, this, 7));
132603 Uxd(this.A);
132604 return;
132605 case 8:
132606 LPd(this, true);
132607 return;
132608 }
132609 eid(this, a - aLd(this.zh()), XKd((b = BD(Ajd(this, 16), 26), !b ? this.zh() : b), a));
132610 };
132611 _2.Gh = function SPd() {
132612 o1d((O6d(), M6d), this).ne();
132613 this.Bb |= 1;
132614 };
132615 _2.Fj = function TPd() {
132616 var a, b, c2;
132617 if (!this.c) {
132618 a = l6d(bKd(this));
132619 if (!a.dc()) {
132620 for (c2 = a.Kc(); c2.Ob(); ) {
132621 b = GD(c2.Pb());
132622 !!Dmd(this, b) && k6d(this);
132623 }
132624 }
132625 }
132626 return this.b;
132627 };
132628 _2.zj = function UPd() {
132629 var b;
132630 if (!this.e) {
132631 b = null;
132632 try {
132633 b = dKd(this);
132634 } catch (a) {
132635 a = ubb(a);
132636 if (!JD(a, 102))
132637 throw vbb(a);
132638 }
132639 this.d = null;
132640 !!b && (b.i & 1) != 0 && (b == sbb ? this.d = (Bcb(), zcb) : b == WD ? this.d = meb(0) : b == VD ? this.d = new Ndb(0) : b == UD ? this.d = 0 : b == XD ? this.d = Aeb(0) : b == rbb ? this.d = Web(0) : b == SD ? this.d = Scb(0) : this.d = bdb(0));
132641 this.e = true;
132642 }
132643 return this.d;
132644 };
132645 _2.Ej = function VPd() {
132646 return (this.Bb & 256) != 0;
132647 };
132648 _2.Ik = function WPd(a) {
132649 a && (this.D = "org.eclipse.emf.common.util.AbstractEnumerator");
132650 };
132651 _2.xk = function XPd(a) {
132652 gKd(this, a);
132653 this.Ik(a);
132654 };
132655 _2.yk = function YPd(a) {
132656 this.C = a;
132657 this.e = false;
132658 };
132659 _2.Ib = function ZPd() {
132660 var a;
132661 if ((this.Db & 64) != 0)
132662 return mKd(this);
132663 a = new Jfb(mKd(this));
132664 a.a += " (serializable: ";
132665 Ffb(a, (this.Bb & 256) != 0);
132666 a.a += ")";
132667 return a.a;
132668 };
132669 _2.c = false;
132670 _2.d = null;
132671 _2.e = false;
132672 mdb(qte, "EDataTypeImpl", 566);
132673 bcb(457, 566, { 105: 1, 92: 1, 90: 1, 138: 1, 148: 1, 834: 1, 671: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 351: 1, 457: 1, 150: 1, 114: 1, 115: 1, 676: 1 }, aQd);
132674 _2._g = function bQd(a, b, c2) {
132675 var d;
132676 switch (a) {
132677 case 0:
132678 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
132679 case 1:
132680 return this.zb;
132681 case 2:
132682 return this.D != null ? this.D : this.B;
132683 case 3:
132684 return dKd(this);
132685 case 4:
132686 return $Pd(this);
132687 case 5:
132688 return this.F;
132689 case 6:
132690 if (b)
132691 return bKd(this);
132692 return ZJd(this);
132693 case 7:
132694 return !this.A && (this.A = new K4d(u5, this, 7)), this.A;
132695 case 8:
132696 return Bcb(), (this.Bb & 256) != 0 ? true : false;
132697 case 9:
132698 return !this.a && (this.a = new cUd(g5, this, 9, 5)), this.a;
132699 }
132700 return bid(this, a - aLd((jGd(), UFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? UFd : d), a), b, c2);
132701 };
132702 _2.hh = function cQd(a, b, c2) {
132703 var d, e, f2;
132704 switch (b) {
132705 case 0:
132706 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
132707 case 6:
132708 !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? aKd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
132709 return _hd(this, a, 6, c2);
132710 case 9:
132711 return !this.a && (this.a = new cUd(g5, this, 9, 5)), Sxd(this.a, a, c2);
132712 }
132713 return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), UFd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((jGd(), UFd)), a, c2);
132714 };
132715 _2.jh = function dQd(a, b, c2) {
132716 var d, e;
132717 switch (b) {
132718 case 0:
132719 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
132720 case 6:
132721 return _hd(this, null, 6, c2);
132722 case 7:
132723 return !this.A && (this.A = new K4d(u5, this, 7)), Txd(this.A, a, c2);
132724 case 9:
132725 return !this.a && (this.a = new cUd(g5, this, 9, 5)), Txd(this.a, a, c2);
132726 }
132727 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), UFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), UFd)), a, c2);
132728 };
132729 _2.lh = function eQd(a) {
132730 var b;
132731 switch (a) {
132732 case 0:
132733 return !!this.Ab && this.Ab.i != 0;
132734 case 1:
132735 return this.zb != null;
132736 case 2:
132737 return this.D != null && this.D == this.F;
132738 case 3:
132739 return !!dKd(this);
132740 case 4:
132741 return !!$Pd(this);
132742 case 5:
132743 return this.F != null && this.F != this.D && this.F != this.B;
132744 case 6:
132745 return !!ZJd(this);
132746 case 7:
132747 return !!this.A && this.A.i != 0;
132748 case 8:
132749 return (this.Bb & 256) == 0;
132750 case 9:
132751 return !!this.a && this.a.i != 0;
132752 }
132753 return cid(this, a - aLd((jGd(), UFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? UFd : b), a));
132754 };
132755 _2.sh = function fQd(a, b) {
132756 var c2;
132757 switch (a) {
132758 case 0:
132759 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
132760 Uxd(this.Ab);
132761 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
132762 ytd(this.Ab, BD(b, 14));
132763 return;
132764 case 1:
132765 lKd(this, GD(b));
132766 return;
132767 case 2:
132768 iKd(this, GD(b));
132769 return;
132770 case 5:
132771 kKd(this, GD(b));
132772 return;
132773 case 7:
132774 !this.A && (this.A = new K4d(u5, this, 7));
132775 Uxd(this.A);
132776 !this.A && (this.A = new K4d(u5, this, 7));
132777 ytd(this.A, BD(b, 14));
132778 return;
132779 case 8:
132780 LPd(this, Ccb(DD(b)));
132781 return;
132782 case 9:
132783 !this.a && (this.a = new cUd(g5, this, 9, 5));
132784 Uxd(this.a);
132785 !this.a && (this.a = new cUd(g5, this, 9, 5));
132786 ytd(this.a, BD(b, 14));
132787 return;
132788 }
132789 did(this, a - aLd((jGd(), UFd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? UFd : c2), a), b);
132790 };
132791 _2.zh = function gQd() {
132792 return jGd(), UFd;
132793 };
132794 _2.Bh = function hQd(a) {
132795 var b;
132796 switch (a) {
132797 case 0:
132798 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
132799 Uxd(this.Ab);
132800 return;
132801 case 1:
132802 JD(this.Cb, 179) && (BD(this.Cb, 179).tb = null);
132803 pnd(this, null);
132804 return;
132805 case 2:
132806 $Jd(this, null);
132807 _Jd(this, this.D);
132808 return;
132809 case 5:
132810 kKd(this, null);
132811 return;
132812 case 7:
132813 !this.A && (this.A = new K4d(u5, this, 7));
132814 Uxd(this.A);
132815 return;
132816 case 8:
132817 LPd(this, true);
132818 return;
132819 case 9:
132820 !this.a && (this.a = new cUd(g5, this, 9, 5));
132821 Uxd(this.a);
132822 return;
132823 }
132824 eid(this, a - aLd((jGd(), UFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? UFd : b), a));
132825 };
132826 _2.Gh = function iQd() {
132827 var a, b;
132828 if (this.a) {
132829 for (a = 0, b = this.a.i; a < b; ++a) {
132830 Cmd(qud(this.a, a));
132831 }
132832 }
132833 o1d((O6d(), M6d), this).ne();
132834 this.Bb |= 1;
132835 };
132836 _2.zj = function jQd() {
132837 return $Pd(this);
132838 };
132839 _2.wj = function kQd(a) {
132840 if (a != null) {
132841 return true;
132842 }
132843 return false;
132844 };
132845 _2.Ik = function lQd(a) {
132846 };
132847 mdb(qte, "EEnumImpl", 457);
132848 bcb(573, 438, { 105: 1, 92: 1, 90: 1, 1940: 1, 678: 1, 147: 1, 191: 1, 56: 1, 108: 1, 49: 1, 97: 1, 573: 1, 150: 1, 114: 1, 115: 1 }, rQd);
132849 _2.ne = function AQd() {
132850 return this.zb;
132851 };
132852 _2.Qg = function sQd(a) {
132853 return mQd(this, a);
132854 };
132855 _2._g = function tQd(a, b, c2) {
132856 var d, e;
132857 switch (a) {
132858 case 0:
132859 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
132860 case 1:
132861 return this.zb;
132862 case 2:
132863 return meb(this.d);
132864 case 3:
132865 return this.b ? this.b : this.a;
132866 case 4:
132867 return e = this.c, e == null ? this.zb : e;
132868 case 5:
132869 return this.Db >> 16 == 5 ? BD(this.Cb, 671) : null;
132870 }
132871 return bid(this, a - aLd((jGd(), VFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? VFd : d), a), b, c2);
132872 };
132873 _2.hh = function uQd(a, b, c2) {
132874 var d, e, f2;
132875 switch (b) {
132876 case 0:
132877 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
132878 case 5:
132879 !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? mQd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
132880 return _hd(this, a, 5, c2);
132881 }
132882 return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), VFd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((jGd(), VFd)), a, c2);
132883 };
132884 _2.jh = function vQd(a, b, c2) {
132885 var d, e;
132886 switch (b) {
132887 case 0:
132888 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
132889 case 5:
132890 return _hd(this, null, 5, c2);
132891 }
132892 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), VFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), VFd)), a, c2);
132893 };
132894 _2.lh = function wQd(a) {
132895 var b;
132896 switch (a) {
132897 case 0:
132898 return !!this.Ab && this.Ab.i != 0;
132899 case 1:
132900 return this.zb != null;
132901 case 2:
132902 return this.d != 0;
132903 case 3:
132904 return !!this.b;
132905 case 4:
132906 return this.c != null;
132907 case 5:
132908 return !!(this.Db >> 16 == 5 ? BD(this.Cb, 671) : null);
132909 }
132910 return cid(this, a - aLd((jGd(), VFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? VFd : b), a));
132911 };
132912 _2.sh = function xQd(a, b) {
132913 var c2;
132914 switch (a) {
132915 case 0:
132916 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
132917 Uxd(this.Ab);
132918 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
132919 ytd(this.Ab, BD(b, 14));
132920 return;
132921 case 1:
132922 pnd(this, GD(b));
132923 return;
132924 case 2:
132925 qQd(this, BD(b, 19).a);
132926 return;
132927 case 3:
132928 oQd(this, BD(b, 1940));
132929 return;
132930 case 4:
132931 pQd(this, GD(b));
132932 return;
132933 }
132934 did(this, a - aLd((jGd(), VFd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? VFd : c2), a), b);
132935 };
132936 _2.zh = function yQd() {
132937 return jGd(), VFd;
132938 };
132939 _2.Bh = function zQd(a) {
132940 var b;
132941 switch (a) {
132942 case 0:
132943 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
132944 Uxd(this.Ab);
132945 return;
132946 case 1:
132947 pnd(this, null);
132948 return;
132949 case 2:
132950 qQd(this, 0);
132951 return;
132952 case 3:
132953 oQd(this, null);
132954 return;
132955 case 4:
132956 pQd(this, null);
132957 return;
132958 }
132959 eid(this, a - aLd((jGd(), VFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? VFd : b), a));
132960 };
132961 _2.Ib = function BQd() {
132962 var a;
132963 return a = this.c, a == null ? this.zb : a;
132964 };
132965 _2.b = null;
132966 _2.c = null;
132967 _2.d = 0;
132968 mdb(qte, "EEnumLiteralImpl", 573);
132969 var c6 = odb(qte, "EFactoryImpl/InternalEDateTimeFormat");
132970 bcb(489, 1, { 2015: 1 }, EQd);
132971 mdb(qte, "EFactoryImpl/1ClientInternalEDateTimeFormat", 489);
132972 bcb(241, 115, { 105: 1, 92: 1, 90: 1, 87: 1, 56: 1, 108: 1, 49: 1, 97: 1, 241: 1, 114: 1, 115: 1 }, UQd);
132973 _2.Sg = function VQd(a, b, c2) {
132974 var d;
132975 c2 = _hd(this, a, b, c2);
132976 if (!!this.e && JD(a, 170)) {
132977 d = MQd(this, this.e);
132978 d != this.c && (c2 = QQd(this, d, c2));
132979 }
132980 return c2;
132981 };
132982 _2._g = function WQd(a, b, c2) {
132983 var d;
132984 switch (a) {
132985 case 0:
132986 return this.f;
132987 case 1:
132988 return !this.d && (this.d = new xMd(j5, this, 1)), this.d;
132989 case 2:
132990 if (b)
132991 return KQd(this);
132992 return this.c;
132993 case 3:
132994 return this.b;
132995 case 4:
132996 return this.e;
132997 case 5:
132998 if (b)
132999 return JQd(this);
133000 return this.a;
133001 }
133002 return bid(this, a - aLd((jGd(), XFd)), XKd((d = BD(Ajd(this, 16), 26), !d ? XFd : d), a), b, c2);
133003 };
133004 _2.jh = function XQd(a, b, c2) {
133005 var d, e;
133006 switch (b) {
133007 case 0:
133008 return IQd(this, null, c2);
133009 case 1:
133010 return !this.d && (this.d = new xMd(j5, this, 1)), Txd(this.d, a, c2);
133011 case 3:
133012 return GQd(this, null, c2);
133013 }
133014 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), XFd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), XFd)), a, c2);
133015 };
133016 _2.lh = function YQd(a) {
133017 var b;
133018 switch (a) {
133019 case 0:
133020 return !!this.f;
133021 case 1:
133022 return !!this.d && this.d.i != 0;
133023 case 2:
133024 return !!this.c;
133025 case 3:
133026 return !!this.b;
133027 case 4:
133028 return !!this.e;
133029 case 5:
133030 return !!this.a;
133031 }
133032 return cid(this, a - aLd((jGd(), XFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? XFd : b), a));
133033 };
133034 _2.sh = function ZQd(a, b) {
133035 var c2;
133036 switch (a) {
133037 case 0:
133038 SQd(this, BD(b, 87));
133039 return;
133040 case 1:
133041 !this.d && (this.d = new xMd(j5, this, 1));
133042 Uxd(this.d);
133043 !this.d && (this.d = new xMd(j5, this, 1));
133044 ytd(this.d, BD(b, 14));
133045 return;
133046 case 3:
133047 PQd(this, BD(b, 87));
133048 return;
133049 case 4:
133050 RQd(this, BD(b, 836));
133051 return;
133052 case 5:
133053 NQd(this, BD(b, 138));
133054 return;
133055 }
133056 did(this, a - aLd((jGd(), XFd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? XFd : c2), a), b);
133057 };
133058 _2.zh = function $Qd() {
133059 return jGd(), XFd;
133060 };
133061 _2.Bh = function _Qd(a) {
133062 var b;
133063 switch (a) {
133064 case 0:
133065 SQd(this, null);
133066 return;
133067 case 1:
133068 !this.d && (this.d = new xMd(j5, this, 1));
133069 Uxd(this.d);
133070 return;
133071 case 3:
133072 PQd(this, null);
133073 return;
133074 case 4:
133075 RQd(this, null);
133076 return;
133077 case 5:
133078 NQd(this, null);
133079 return;
133080 }
133081 eid(this, a - aLd((jGd(), XFd)), XKd((b = BD(Ajd(this, 16), 26), !b ? XFd : b), a));
133082 };
133083 _2.Ib = function aRd() {
133084 var a;
133085 a = new Wfb(Eid(this));
133086 a.a += " (expression: ";
133087 TQd(this, a);
133088 a.a += ")";
133089 return a.a;
133090 };
133091 var FQd;
133092 mdb(qte, "EGenericTypeImpl", 241);
133093 bcb(1969, 1964, Vve);
133094 _2.Xh = function cRd(a, b) {
133095 bRd(this, a, b);
133096 };
133097 _2.lk = function dRd(a, b) {
133098 bRd(this, this.gc(), a);
133099 return b;
133100 };
133101 _2.pi = function eRd(a) {
133102 return Ut(this.Gi(), a);
133103 };
133104 _2.Zh = function fRd() {
133105 return this.$h();
133106 };
133107 _2.Gi = function gRd() {
133108 return new O0d(this);
133109 };
133110 _2.$h = function hRd() {
133111 return this._h(0);
133112 };
133113 _2._h = function iRd(a) {
133114 return this.Gi().Zc(a);
133115 };
133116 _2.mk = function jRd(a, b) {
133117 ze(this, a, true);
133118 return b;
133119 };
133120 _2.ii = function kRd(a, b) {
133121 var c2, d;
133122 d = Vt(this, b);
133123 c2 = this.Zc(a);
133124 c2.Rb(d);
133125 return d;
133126 };
133127 _2.ji = function lRd(a, b) {
133128 var c2;
133129 ze(this, b, true);
133130 c2 = this.Zc(a);
133131 c2.Rb(b);
133132 };
133133 mdb(yve, "AbstractSequentialInternalEList", 1969);
133134 bcb(486, 1969, Vve, qRd);
133135 _2.pi = function rRd(a) {
133136 return Ut(this.Gi(), a);
133137 };
133138 _2.Zh = function sRd() {
133139 if (this.b == null) {
133140 return LRd(), LRd(), KRd;
133141 }
133142 return this.Jk();
133143 };
133144 _2.Gi = function tRd() {
133145 return new w4d(this.a, this.b);
133146 };
133147 _2.$h = function uRd() {
133148 if (this.b == null) {
133149 return LRd(), LRd(), KRd;
133150 }
133151 return this.Jk();
133152 };
133153 _2._h = function vRd(a) {
133154 var b, c2;
133155 if (this.b == null) {
133156 if (a < 0 || a > 1) {
133157 throw vbb(new qcb(gve + a + ", size=0"));
133158 }
133159 return LRd(), LRd(), KRd;
133160 }
133161 c2 = this.Jk();
133162 for (b = 0; b < a; ++b) {
133163 MRd(c2);
133164 }
133165 return c2;
133166 };
133167 _2.dc = function wRd() {
133168 var a, b, c2, d, e, f2;
133169 if (this.b != null) {
133170 for (c2 = 0; c2 < this.b.length; ++c2) {
133171 a = this.b[c2];
133172 if (!this.Mk() || this.a.mh(a)) {
133173 f2 = this.a.bh(a, false);
133174 Q6d();
133175 if (BD(a, 66).Oj()) {
133176 b = BD(f2, 153);
133177 for (d = 0, e = b.gc(); d < e; ++d) {
133178 if (oRd(b.il(d)) && b.jl(d) != null) {
133179 return false;
133180 }
133181 }
133182 } else if (a.$j()) {
133183 if (!BD(f2, 14).dc()) {
133184 return false;
133185 }
133186 } else if (f2 != null) {
133187 return false;
133188 }
133189 }
133190 }
133191 }
133192 return true;
133193 };
133194 _2.Kc = function xRd() {
133195 return pRd(this);
133196 };
133197 _2.Zc = function yRd(a) {
133198 var b, c2;
133199 if (this.b == null) {
133200 if (a != 0) {
133201 throw vbb(new qcb(gve + a + ", size=0"));
133202 }
133203 return LRd(), LRd(), KRd;
133204 }
133205 c2 = this.Lk() ? this.Kk() : this.Jk();
133206 for (b = 0; b < a; ++b) {
133207 MRd(c2);
133208 }
133209 return c2;
133210 };
133211 _2.ii = function zRd(a, b) {
133212 throw vbb(new bgb());
133213 };
133214 _2.ji = function ARd(a, b) {
133215 throw vbb(new bgb());
133216 };
133217 _2.Jk = function BRd() {
133218 return new RRd(this.a, this.b);
133219 };
133220 _2.Kk = function CRd() {
133221 return new dSd(this.a, this.b);
133222 };
133223 _2.Lk = function DRd() {
133224 return true;
133225 };
133226 _2.gc = function ERd() {
133227 var a, b, c2, d, e, f2, g;
133228 e = 0;
133229 if (this.b != null) {
133230 for (c2 = 0; c2 < this.b.length; ++c2) {
133231 a = this.b[c2];
133232 if (!this.Mk() || this.a.mh(a)) {
133233 g = this.a.bh(a, false);
133234 Q6d();
133235 if (BD(a, 66).Oj()) {
133236 b = BD(g, 153);
133237 for (d = 0, f2 = b.gc(); d < f2; ++d) {
133238 oRd(b.il(d)) && b.jl(d) != null && ++e;
133239 }
133240 } else
133241 a.$j() ? e += BD(g, 14).gc() : g != null && ++e;
133242 }
133243 }
133244 }
133245 return e;
133246 };
133247 _2.Mk = function FRd() {
133248 return true;
133249 };
133250 var mRd;
133251 mdb(yve, "EContentsEList", 486);
133252 bcb(1156, 486, Vve, GRd);
133253 _2.Jk = function HRd() {
133254 return new hSd(this.a, this.b);
133255 };
133256 _2.Kk = function IRd() {
133257 return new fSd(this.a, this.b);
133258 };
133259 _2.Mk = function JRd() {
133260 return false;
133261 };
133262 mdb(qte, "ENamedElementImpl/1", 1156);
133263 bcb(279, 1, Wve, RRd);
133264 _2.Nb = function URd(a) {
133265 Rrb(this, a);
133266 };
133267 _2.Rb = function SRd(a) {
133268 throw vbb(new bgb());
133269 };
133270 _2.Nk = function TRd(a) {
133271 if (this.g != 0 || !!this.e) {
133272 throw vbb(new Zdb("Iterator already in use or already filtered"));
133273 }
133274 this.e = a;
133275 };
133276 _2.Ob = function VRd() {
133277 var a, b, c2, d, e, f2;
133278 switch (this.g) {
133279 case 3:
133280 case 2: {
133281 return true;
133282 }
133283 case 1: {
133284 return false;
133285 }
133286 case -3: {
133287 !this.p ? ++this.n : this.p.Pb();
133288 }
133289 default: {
133290 if (!this.k || (!this.p ? !NRd(this) : !ORd(this, this.p))) {
133291 while (this.d < this.c.length) {
133292 b = this.c[this.d++];
133293 if ((!this.e || b.Gj() != x2 || b.aj() != 0) && (!this.Mk() || this.b.mh(b))) {
133294 f2 = this.b.bh(b, this.Lk());
133295 this.f = (Q6d(), BD(b, 66).Oj());
133296 if (this.f || b.$j()) {
133297 if (this.Lk()) {
133298 d = BD(f2, 15);
133299 this.k = d;
133300 } else {
133301 d = BD(f2, 69);
133302 this.k = this.j = d;
133303 }
133304 if (JD(this.k, 54)) {
133305 this.p = null;
133306 this.o = this.k.gc();
133307 this.n = 0;
133308 } else {
133309 this.p = !this.j ? this.k.Yc() : this.j.$h();
133310 }
133311 if (!this.p ? NRd(this) : ORd(this, this.p)) {
133312 e = !this.p ? !this.j ? this.k.Xb(this.n++) : this.j.pi(this.n++) : this.p.Pb();
133313 if (this.f) {
133314 a = BD(e, 72);
133315 a.ak();
133316 c2 = a.dd();
133317 this.i = c2;
133318 } else {
133319 c2 = e;
133320 this.i = c2;
133321 }
133322 this.g = 3;
133323 return true;
133324 }
133325 } else if (f2 != null) {
133326 this.k = null;
133327 this.p = null;
133328 c2 = f2;
133329 this.i = c2;
133330 this.g = 2;
133331 return true;
133332 }
133333 }
133334 }
133335 this.k = null;
133336 this.p = null;
133337 this.f = false;
133338 this.g = 1;
133339 return false;
133340 } else {
133341 e = !this.p ? !this.j ? this.k.Xb(this.n++) : this.j.pi(this.n++) : this.p.Pb();
133342 if (this.f) {
133343 a = BD(e, 72);
133344 a.ak();
133345 c2 = a.dd();
133346 this.i = c2;
133347 } else {
133348 c2 = e;
133349 this.i = c2;
133350 }
133351 this.g = 3;
133352 return true;
133353 }
133354 }
133355 }
133356 };
133357 _2.Sb = function WRd() {
133358 var a, b, c2, d, e, f2;
133359 switch (this.g) {
133360 case -3:
133361 case -2: {
133362 return true;
133363 }
133364 case -1: {
133365 return false;
133366 }
133367 case 3: {
133368 !this.p ? --this.n : this.p.Ub();
133369 }
133370 default: {
133371 if (!this.k || (!this.p ? !PRd(this) : !QRd(this, this.p))) {
133372 while (this.d > 0) {
133373 b = this.c[--this.d];
133374 if ((!this.e || b.Gj() != x2 || b.aj() != 0) && (!this.Mk() || this.b.mh(b))) {
133375 f2 = this.b.bh(b, this.Lk());
133376 this.f = (Q6d(), BD(b, 66).Oj());
133377 if (this.f || b.$j()) {
133378 if (this.Lk()) {
133379 d = BD(f2, 15);
133380 this.k = d;
133381 } else {
133382 d = BD(f2, 69);
133383 this.k = this.j = d;
133384 }
133385 if (JD(this.k, 54)) {
133386 this.o = this.k.gc();
133387 this.n = this.o;
133388 } else {
133389 this.p = !this.j ? this.k.Zc(this.k.gc()) : this.j._h(this.k.gc());
133390 }
133391 if (!this.p ? PRd(this) : QRd(this, this.p)) {
133392 e = !this.p ? !this.j ? this.k.Xb(--this.n) : this.j.pi(--this.n) : this.p.Ub();
133393 if (this.f) {
133394 a = BD(e, 72);
133395 a.ak();
133396 c2 = a.dd();
133397 this.i = c2;
133398 } else {
133399 c2 = e;
133400 this.i = c2;
133401 }
133402 this.g = -3;
133403 return true;
133404 }
133405 } else if (f2 != null) {
133406 this.k = null;
133407 this.p = null;
133408 c2 = f2;
133409 this.i = c2;
133410 this.g = -2;
133411 return true;
133412 }
133413 }
133414 }
133415 this.k = null;
133416 this.p = null;
133417 this.g = -1;
133418 return false;
133419 } else {
133420 e = !this.p ? !this.j ? this.k.Xb(--this.n) : this.j.pi(--this.n) : this.p.Ub();
133421 if (this.f) {
133422 a = BD(e, 72);
133423 a.ak();
133424 c2 = a.dd();
133425 this.i = c2;
133426 } else {
133427 c2 = e;
133428 this.i = c2;
133429 }
133430 this.g = -3;
133431 return true;
133432 }
133433 }
133434 }
133435 };
133436 _2.Pb = function XRd() {
133437 return MRd(this);
133438 };
133439 _2.Tb = function YRd() {
133440 return this.a;
133441 };
133442 _2.Ub = function ZRd() {
133443 var a;
133444 if (this.g < -1 || this.Sb()) {
133445 --this.a;
133446 this.g = 0;
133447 a = this.i;
133448 this.Sb();
133449 return a;
133450 } else {
133451 throw vbb(new utb());
133452 }
133453 };
133454 _2.Vb = function $Rd() {
133455 return this.a - 1;
133456 };
133457 _2.Qb = function _Rd() {
133458 throw vbb(new bgb());
133459 };
133460 _2.Lk = function aSd() {
133461 return false;
133462 };
133463 _2.Wb = function bSd(a) {
133464 throw vbb(new bgb());
133465 };
133466 _2.Mk = function cSd() {
133467 return true;
133468 };
133469 _2.a = 0;
133470 _2.d = 0;
133471 _2.f = false;
133472 _2.g = 0;
133473 _2.n = 0;
133474 _2.o = 0;
133475 var KRd;
133476 mdb(yve, "EContentsEList/FeatureIteratorImpl", 279);
133477 bcb(697, 279, Wve, dSd);
133478 _2.Lk = function eSd() {
133479 return true;
133480 };
133481 mdb(yve, "EContentsEList/ResolvingFeatureIteratorImpl", 697);
133482 bcb(1157, 697, Wve, fSd);
133483 _2.Mk = function gSd() {
133484 return false;
133485 };
133486 mdb(qte, "ENamedElementImpl/1/1", 1157);
133487 bcb(1158, 279, Wve, hSd);
133488 _2.Mk = function iSd() {
133489 return false;
133490 };
133491 mdb(qte, "ENamedElementImpl/1/2", 1158);
133492 bcb(36, 143, fve, lSd, mSd, nSd, oSd, pSd, qSd, rSd, sSd, tSd, uSd, vSd, wSd, xSd, ySd, zSd, ASd, BSd, CSd, DSd, ESd, FSd, GSd, HSd, ISd, JSd);
133493 _2._i = function KSd() {
133494 return kSd(this);
133495 };
133496 _2.gj = function LSd() {
133497 var a;
133498 a = kSd(this);
133499 if (a) {
133500 return a.zj();
133501 }
133502 return null;
133503 };
133504 _2.yi = function MSd(a) {
133505 this.b == -1 && !!this.a && (this.b = this.c.Xg(this.a.aj(), this.a.Gj()));
133506 return this.c.Og(this.b, a);
133507 };
133508 _2.Ai = function NSd() {
133509 return this.c;
133510 };
133511 _2.hj = function OSd() {
133512 var a;
133513 a = kSd(this);
133514 if (a) {
133515 return a.Kj();
133516 }
133517 return false;
133518 };
133519 _2.b = -1;
133520 mdb(qte, "ENotificationImpl", 36);
133521 bcb(399, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 59: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 399: 1, 284: 1, 114: 1, 115: 1 }, SSd);
133522 _2.Qg = function TSd(a) {
133523 return PSd(this, a);
133524 };
133525 _2._g = function USd(a, b, c2) {
133526 var d, e, f2;
133527 switch (a) {
133528 case 0:
133529 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
133530 case 1:
133531 return this.zb;
133532 case 2:
133533 return Bcb(), (this.Bb & 256) != 0 ? true : false;
133534 case 3:
133535 return Bcb(), (this.Bb & 512) != 0 ? true : false;
133536 case 4:
133537 return meb(this.s);
133538 case 5:
133539 return meb(this.t);
133540 case 6:
133541 return Bcb(), f2 = this.t, f2 > 1 || f2 == -1 ? true : false;
133542 case 7:
133543 return Bcb(), e = this.s, e >= 1 ? true : false;
133544 case 8:
133545 if (b)
133546 return wId(this);
133547 return this.r;
133548 case 9:
133549 return this.q;
133550 case 10:
133551 return this.Db >> 16 == 10 ? BD(this.Cb, 26) : null;
133552 case 11:
133553 return !this.d && (this.d = new K4d(u5, this, 11)), this.d;
133554 case 12:
133555 return !this.c && (this.c = new cUd(p5, this, 12, 10)), this.c;
133556 case 13:
133557 return !this.a && (this.a = new fTd(this, this)), this.a;
133558 case 14:
133559 return QSd(this);
133560 }
133561 return bid(this, a - aLd((jGd(), aGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? aGd : d), a), b, c2);
133562 };
133563 _2.hh = function VSd(a, b, c2) {
133564 var d, e, f2;
133565 switch (b) {
133566 case 0:
133567 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
133568 case 10:
133569 !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? PSd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
133570 return _hd(this, a, 10, c2);
133571 case 12:
133572 return !this.c && (this.c = new cUd(p5, this, 12, 10)), Sxd(this.c, a, c2);
133573 }
133574 return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), aGd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((jGd(), aGd)), a, c2);
133575 };
133576 _2.jh = function WSd(a, b, c2) {
133577 var d, e;
133578 switch (b) {
133579 case 0:
133580 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
133581 case 9:
133582 return vId(this, c2);
133583 case 10:
133584 return _hd(this, null, 10, c2);
133585 case 11:
133586 return !this.d && (this.d = new K4d(u5, this, 11)), Txd(this.d, a, c2);
133587 case 12:
133588 return !this.c && (this.c = new cUd(p5, this, 12, 10)), Txd(this.c, a, c2);
133589 case 14:
133590 return Txd(QSd(this), a, c2);
133591 }
133592 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), aGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), aGd)), a, c2);
133593 };
133594 _2.lh = function XSd(a) {
133595 var b, c2, d;
133596 switch (a) {
133597 case 0:
133598 return !!this.Ab && this.Ab.i != 0;
133599 case 1:
133600 return this.zb != null;
133601 case 2:
133602 return (this.Bb & 256) == 0;
133603 case 3:
133604 return (this.Bb & 512) == 0;
133605 case 4:
133606 return this.s != 0;
133607 case 5:
133608 return this.t != 1;
133609 case 6:
133610 return d = this.t, d > 1 || d == -1;
133611 case 7:
133612 return c2 = this.s, c2 >= 1;
133613 case 8:
133614 return !!this.r && !this.q.e && LQd(this.q).i == 0;
133615 case 9:
133616 return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
133617 case 10:
133618 return !!(this.Db >> 16 == 10 ? BD(this.Cb, 26) : null);
133619 case 11:
133620 return !!this.d && this.d.i != 0;
133621 case 12:
133622 return !!this.c && this.c.i != 0;
133623 case 13:
133624 return !!this.a && QSd(this.a.a).i != 0 && !(!!this.b && QTd(this.b));
133625 case 14:
133626 return !!this.b && QTd(this.b);
133627 }
133628 return cid(this, a - aLd((jGd(), aGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? aGd : b), a));
133629 };
133630 _2.sh = function YSd(a, b) {
133631 var c2, d;
133632 switch (a) {
133633 case 0:
133634 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
133635 Uxd(this.Ab);
133636 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
133637 ytd(this.Ab, BD(b, 14));
133638 return;
133639 case 1:
133640 pnd(this, GD(b));
133641 return;
133642 case 2:
133643 BId(this, Ccb(DD(b)));
133644 return;
133645 case 3:
133646 CId(this, Ccb(DD(b)));
133647 return;
133648 case 4:
133649 AId(this, BD(b, 19).a);
133650 return;
133651 case 5:
133652 DId(this, BD(b, 19).a);
133653 return;
133654 case 8:
133655 yId(this, BD(b, 138));
133656 return;
133657 case 9:
133658 d = xId(this, BD(b, 87), null);
133659 !!d && d.Fi();
133660 return;
133661 case 11:
133662 !this.d && (this.d = new K4d(u5, this, 11));
133663 Uxd(this.d);
133664 !this.d && (this.d = new K4d(u5, this, 11));
133665 ytd(this.d, BD(b, 14));
133666 return;
133667 case 12:
133668 !this.c && (this.c = new cUd(p5, this, 12, 10));
133669 Uxd(this.c);
133670 !this.c && (this.c = new cUd(p5, this, 12, 10));
133671 ytd(this.c, BD(b, 14));
133672 return;
133673 case 13:
133674 !this.a && (this.a = new fTd(this, this));
133675 vwd(this.a);
133676 !this.a && (this.a = new fTd(this, this));
133677 ytd(this.a, BD(b, 14));
133678 return;
133679 case 14:
133680 Uxd(QSd(this));
133681 ytd(QSd(this), BD(b, 14));
133682 return;
133683 }
133684 did(this, a - aLd((jGd(), aGd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? aGd : c2), a), b);
133685 };
133686 _2.zh = function ZSd() {
133687 return jGd(), aGd;
133688 };
133689 _2.Bh = function $Sd(a) {
133690 var b, c2;
133691 switch (a) {
133692 case 0:
133693 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
133694 Uxd(this.Ab);
133695 return;
133696 case 1:
133697 pnd(this, null);
133698 return;
133699 case 2:
133700 BId(this, true);
133701 return;
133702 case 3:
133703 CId(this, true);
133704 return;
133705 case 4:
133706 AId(this, 0);
133707 return;
133708 case 5:
133709 DId(this, 1);
133710 return;
133711 case 8:
133712 yId(this, null);
133713 return;
133714 case 9:
133715 c2 = xId(this, null, null);
133716 !!c2 && c2.Fi();
133717 return;
133718 case 11:
133719 !this.d && (this.d = new K4d(u5, this, 11));
133720 Uxd(this.d);
133721 return;
133722 case 12:
133723 !this.c && (this.c = new cUd(p5, this, 12, 10));
133724 Uxd(this.c);
133725 return;
133726 case 13:
133727 !!this.a && vwd(this.a);
133728 return;
133729 case 14:
133730 !!this.b && Uxd(this.b);
133731 return;
133732 }
133733 eid(this, a - aLd((jGd(), aGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? aGd : b), a));
133734 };
133735 _2.Gh = function _Sd() {
133736 var a, b;
133737 if (this.c) {
133738 for (a = 0, b = this.c.i; a < b; ++a) {
133739 Cmd(qud(this.c, a));
133740 }
133741 }
133742 wId(this);
133743 this.Bb |= 1;
133744 };
133745 mdb(qte, "EOperationImpl", 399);
133746 bcb(505, 742, Uve, fTd);
133747 _2.Hi = function iTd(a, b) {
133748 aTd(this, a, BD(b, 138));
133749 };
133750 _2.Ii = function jTd(a) {
133751 bTd(this, BD(a, 138));
133752 };
133753 _2.Oi = function pTd(a) {
133754 var b, c2;
133755 return b = BD(qud(QSd(this.a), a), 87), c2 = b.c, c2 ? c2 : (jGd(), YFd);
133756 };
133757 _2.Ti = function uTd(a) {
133758 var b, c2;
133759 return b = BD(Xxd(QSd(this.a), a), 87), c2 = b.c, c2 ? c2 : (jGd(), YFd);
133760 };
133761 _2.Ui = function vTd(a, b) {
133762 return dTd(this, a, BD(b, 138));
133763 };
133764 _2.ai = function gTd() {
133765 return false;
133766 };
133767 _2.Zi = function hTd(a, b, c2, d, e) {
133768 return null;
133769 };
133770 _2.Ji = function kTd() {
133771 return new NTd(this);
133772 };
133773 _2.Ki = function lTd() {
133774 Uxd(QSd(this.a));
133775 };
133776 _2.Li = function mTd(a) {
133777 return cTd(this, a);
133778 };
133779 _2.Mi = function nTd(a) {
133780 var b, c2;
133781 for (c2 = a.Kc(); c2.Ob(); ) {
133782 b = c2.Pb();
133783 if (!cTd(this, b)) {
133784 return false;
133785 }
133786 }
133787 return true;
133788 };
133789 _2.Ni = function oTd(a) {
133790 var b, c2, d;
133791 if (JD(a, 15)) {
133792 d = BD(a, 15);
133793 if (d.gc() == QSd(this.a).i) {
133794 for (b = d.Kc(), c2 = new Fyd(this); b.Ob(); ) {
133795 if (PD(b.Pb()) !== PD(Dyd(c2))) {
133796 return false;
133797 }
133798 }
133799 return true;
133800 }
133801 }
133802 return false;
133803 };
133804 _2.Pi = function qTd() {
133805 var a, b, c2, d, e;
133806 c2 = 1;
133807 for (b = new Fyd(QSd(this.a)); b.e != b.i.gc(); ) {
133808 a = BD(Dyd(b), 87);
133809 d = (e = a.c, e ? e : (jGd(), YFd));
133810 c2 = 31 * c2 + (!d ? 0 : tb(d));
133811 }
133812 return c2;
133813 };
133814 _2.Qi = function rTd(a) {
133815 var b, c2, d, e;
133816 d = 0;
133817 for (c2 = new Fyd(QSd(this.a)); c2.e != c2.i.gc(); ) {
133818 b = BD(Dyd(c2), 87);
133819 if (PD(a) === PD((e = b.c, e ? e : (jGd(), YFd)))) {
133820 return d;
133821 }
133822 ++d;
133823 }
133824 return -1;
133825 };
133826 _2.Ri = function sTd() {
133827 return QSd(this.a).i == 0;
133828 };
133829 _2.Si = function tTd() {
133830 return null;
133831 };
133832 _2.Vi = function wTd() {
133833 return QSd(this.a).i;
133834 };
133835 _2.Wi = function xTd() {
133836 var a, b, c2, d, e, f2;
133837 f2 = QSd(this.a).i;
133838 e = KC(SI, Uhe, 1, f2, 5, 1);
133839 c2 = 0;
133840 for (b = new Fyd(QSd(this.a)); b.e != b.i.gc(); ) {
133841 a = BD(Dyd(b), 87);
133842 e[c2++] = (d = a.c, d ? d : (jGd(), YFd));
133843 }
133844 return e;
133845 };
133846 _2.Xi = function yTd(a) {
133847 var b, c2, d, e, f2, g, h;
133848 h = QSd(this.a).i;
133849 if (a.length < h) {
133850 e = izd(rb(a).c, h);
133851 a = e;
133852 }
133853 a.length > h && NC(a, h, null);
133854 d = 0;
133855 for (c2 = new Fyd(QSd(this.a)); c2.e != c2.i.gc(); ) {
133856 b = BD(Dyd(c2), 87);
133857 f2 = (g = b.c, g ? g : (jGd(), YFd));
133858 NC(a, d++, f2);
133859 }
133860 return a;
133861 };
133862 _2.Yi = function zTd() {
133863 var a, b, c2, d, e;
133864 e = new Hfb();
133865 e.a += "[";
133866 a = QSd(this.a);
133867 for (b = 0, d = QSd(this.a).i; b < d; ) {
133868 Efb(e, xfb((c2 = BD(qud(a, b), 87).c, c2 ? c2 : (jGd(), YFd))));
133869 ++b < d && (e.a += She, e);
133870 }
133871 e.a += "]";
133872 return e.a;
133873 };
133874 _2.$i = function ATd(a) {
133875 };
133876 _2.aj = function BTd() {
133877 return 13;
133878 };
133879 _2.Bk = function CTd() {
133880 return true;
133881 };
133882 _2.bj = function DTd() {
133883 return false;
133884 };
133885 _2.Ck = function ETd() {
133886 return false;
133887 };
133888 _2.Dk = function FTd() {
133889 return false;
133890 };
133891 _2.Ek = function GTd() {
133892 return true;
133893 };
133894 _2.rk = function HTd() {
133895 return false;
133896 };
133897 _2.Fk = function ITd() {
133898 return true;
133899 };
133900 _2.wj = function JTd(a) {
133901 return JD(a, 138);
133902 };
133903 _2.fj = function KTd() {
133904 return RSd(this.a);
133905 };
133906 _2.hi = function LTd() {
133907 return true;
133908 };
133909 _2.ni = function MTd() {
133910 return true;
133911 };
133912 mdb(qte, "EOperationImpl/1", 505);
133913 bcb(1340, 1964, Lie, NTd);
133914 _2.Zc = function OTd(a) {
133915 return ztd(this.a, a);
133916 };
133917 _2.gc = function PTd() {
133918 return QSd(this.a.a).i;
133919 };
133920 mdb(qte, "EOperationImpl/1/1", 1340);
133921 bcb(1341, 545, Pve, UTd);
133922 _2.ii = function YTd(a, b) {
133923 var c2, d;
133924 return c2 = BD(Wxd(this, a, b), 87), oid(this.e) && GLd(this, new ESd(this.a, 7, (jGd(), bGd), meb(b), (d = c2.c, d ? d : YFd), a)), c2;
133925 };
133926 _2.jj = function ZTd(a, b) {
133927 return RTd(this, BD(a, 87), b);
133928 };
133929 _2.kj = function $Td(a, b) {
133930 return STd(this, BD(a, 87), b);
133931 };
133932 _2.lj = function _Td(a, b, c2) {
133933 return TTd(this, BD(a, 87), BD(b, 87), c2);
133934 };
133935 _2.Zi = function VTd(a, b, c2, d, e) {
133936 switch (a) {
133937 case 3: {
133938 return FLd(this, a, b, c2, d, this.i > 1);
133939 }
133940 case 5: {
133941 return FLd(this, a, b, c2, d, this.i - BD(c2, 15).gc() > 0);
133942 }
133943 default: {
133944 return new pSd(this.e, a, this.c, b, c2, d, true);
133945 }
133946 }
133947 };
133948 _2.ij = function WTd() {
133949 return true;
133950 };
133951 _2.fj = function XTd() {
133952 return QTd(this);
133953 };
133954 _2.Xj = function aUd() {
133955 Uxd(this);
133956 };
133957 mdb(qte, "EOperationImpl/2", 1341);
133958 bcb(498, 1, { 1938: 1, 498: 1 }, bUd);
133959 mdb(qte, "EPackageImpl/1", 498);
133960 bcb(16, 85, Pve, cUd);
133961 _2.zk = function dUd() {
133962 return this.d;
133963 };
133964 _2.Ak = function eUd() {
133965 return this.b;
133966 };
133967 _2.Dk = function fUd() {
133968 return true;
133969 };
133970 _2.b = 0;
133971 mdb(yve, "EObjectContainmentWithInverseEList", 16);
133972 bcb(353, 16, Pve, gUd);
133973 _2.Ek = function hUd() {
133974 return true;
133975 };
133976 _2.li = function iUd(a, b) {
133977 return ILd(this, a, BD(b, 56));
133978 };
133979 mdb(yve, "EObjectContainmentWithInverseEList/Resolving", 353);
133980 bcb(298, 353, Pve, jUd);
133981 _2.ci = function kUd() {
133982 this.a.tb = null;
133983 };
133984 mdb(qte, "EPackageImpl/2", 298);
133985 bcb(1228, 1, {}, lUd);
133986 mdb(qte, "EPackageImpl/3", 1228);
133987 bcb(718, 43, fke, oUd);
133988 _2._b = function pUd(a) {
133989 return ND(a) ? Qhb(this, a) : !!irb(this.f, a);
133990 };
133991 mdb(qte, "EPackageRegistryImpl", 718);
133992 bcb(509, 284, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 2017: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 509: 1, 284: 1, 114: 1, 115: 1 }, rUd);
133993 _2.Qg = function sUd(a) {
133994 return qUd(this, a);
133995 };
133996 _2._g = function tUd(a, b, c2) {
133997 var d, e, f2;
133998 switch (a) {
133999 case 0:
134000 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
134001 case 1:
134002 return this.zb;
134003 case 2:
134004 return Bcb(), (this.Bb & 256) != 0 ? true : false;
134005 case 3:
134006 return Bcb(), (this.Bb & 512) != 0 ? true : false;
134007 case 4:
134008 return meb(this.s);
134009 case 5:
134010 return meb(this.t);
134011 case 6:
134012 return Bcb(), f2 = this.t, f2 > 1 || f2 == -1 ? true : false;
134013 case 7:
134014 return Bcb(), e = this.s, e >= 1 ? true : false;
134015 case 8:
134016 if (b)
134017 return wId(this);
134018 return this.r;
134019 case 9:
134020 return this.q;
134021 case 10:
134022 return this.Db >> 16 == 10 ? BD(this.Cb, 59) : null;
134023 }
134024 return bid(this, a - aLd((jGd(), dGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? dGd : d), a), b, c2);
134025 };
134026 _2.hh = function uUd(a, b, c2) {
134027 var d, e, f2;
134028 switch (b) {
134029 case 0:
134030 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Sxd(this.Ab, a, c2);
134031 case 10:
134032 !!this.Cb && (c2 = (e = this.Db >> 16, e >= 0 ? qUd(this, c2) : this.Cb.ih(this, -1 - e, null, c2)));
134033 return _hd(this, a, 10, c2);
134034 }
134035 return f2 = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), dGd) : d), b), 66), f2.Nj().Qj(this, yjd(this), b - aLd((jGd(), dGd)), a, c2);
134036 };
134037 _2.jh = function vUd(a, b, c2) {
134038 var d, e;
134039 switch (b) {
134040 case 0:
134041 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
134042 case 9:
134043 return vId(this, c2);
134044 case 10:
134045 return _hd(this, null, 10, c2);
134046 }
134047 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), dGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), dGd)), a, c2);
134048 };
134049 _2.lh = function wUd(a) {
134050 var b, c2, d;
134051 switch (a) {
134052 case 0:
134053 return !!this.Ab && this.Ab.i != 0;
134054 case 1:
134055 return this.zb != null;
134056 case 2:
134057 return (this.Bb & 256) == 0;
134058 case 3:
134059 return (this.Bb & 512) == 0;
134060 case 4:
134061 return this.s != 0;
134062 case 5:
134063 return this.t != 1;
134064 case 6:
134065 return d = this.t, d > 1 || d == -1;
134066 case 7:
134067 return c2 = this.s, c2 >= 1;
134068 case 8:
134069 return !!this.r && !this.q.e && LQd(this.q).i == 0;
134070 case 9:
134071 return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
134072 case 10:
134073 return !!(this.Db >> 16 == 10 ? BD(this.Cb, 59) : null);
134074 }
134075 return cid(this, a - aLd((jGd(), dGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? dGd : b), a));
134076 };
134077 _2.zh = function xUd() {
134078 return jGd(), dGd;
134079 };
134080 mdb(qte, "EParameterImpl", 509);
134081 bcb(99, 449, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 18: 1, 170: 1, 66: 1, 108: 1, 472: 1, 49: 1, 97: 1, 150: 1, 99: 1, 449: 1, 284: 1, 114: 1, 115: 1, 677: 1 }, FUd);
134082 _2._g = function GUd(a, b, c2) {
134083 var d, e, f2, g;
134084 switch (a) {
134085 case 0:
134086 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
134087 case 1:
134088 return this.zb;
134089 case 2:
134090 return Bcb(), (this.Bb & 256) != 0 ? true : false;
134091 case 3:
134092 return Bcb(), (this.Bb & 512) != 0 ? true : false;
134093 case 4:
134094 return meb(this.s);
134095 case 5:
134096 return meb(this.t);
134097 case 6:
134098 return Bcb(), g = this.t, g > 1 || g == -1 ? true : false;
134099 case 7:
134100 return Bcb(), e = this.s, e >= 1 ? true : false;
134101 case 8:
134102 if (b)
134103 return wId(this);
134104 return this.r;
134105 case 9:
134106 return this.q;
134107 case 10:
134108 return Bcb(), (this.Bb & zte) != 0 ? true : false;
134109 case 11:
134110 return Bcb(), (this.Bb & Dve) != 0 ? true : false;
134111 case 12:
134112 return Bcb(), (this.Bb & Rje) != 0 ? true : false;
134113 case 13:
134114 return this.j;
134115 case 14:
134116 return VId(this);
134117 case 15:
134118 return Bcb(), (this.Bb & Cve) != 0 ? true : false;
134119 case 16:
134120 return Bcb(), (this.Bb & oie) != 0 ? true : false;
134121 case 17:
134122 return WId(this);
134123 case 18:
134124 return Bcb(), (this.Bb & ote) != 0 ? true : false;
134125 case 19:
134126 return Bcb(), f2 = zUd(this), !!f2 && (f2.Bb & ote) != 0 ? true : false;
134127 case 20:
134128 return Bcb(), (this.Bb & Tje) != 0 ? true : false;
134129 case 21:
134130 if (b)
134131 return zUd(this);
134132 return this.b;
134133 case 22:
134134 if (b)
134135 return AUd(this);
134136 return yUd(this);
134137 case 23:
134138 return !this.a && (this.a = new _4d(b5, this, 23)), this.a;
134139 }
134140 return bid(this, a - aLd((jGd(), eGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? eGd : d), a), b, c2);
134141 };
134142 _2.lh = function HUd(a) {
134143 var b, c2, d, e;
134144 switch (a) {
134145 case 0:
134146 return !!this.Ab && this.Ab.i != 0;
134147 case 1:
134148 return this.zb != null;
134149 case 2:
134150 return (this.Bb & 256) == 0;
134151 case 3:
134152 return (this.Bb & 512) == 0;
134153 case 4:
134154 return this.s != 0;
134155 case 5:
134156 return this.t != 1;
134157 case 6:
134158 return e = this.t, e > 1 || e == -1;
134159 case 7:
134160 return c2 = this.s, c2 >= 1;
134161 case 8:
134162 return !!this.r && !this.q.e && LQd(this.q).i == 0;
134163 case 9:
134164 return !!this.q && !(!!this.r && !this.q.e && LQd(this.q).i == 0);
134165 case 10:
134166 return (this.Bb & zte) == 0;
134167 case 11:
134168 return (this.Bb & Dve) != 0;
134169 case 12:
134170 return (this.Bb & Rje) != 0;
134171 case 13:
134172 return this.j != null;
134173 case 14:
134174 return VId(this) != null;
134175 case 15:
134176 return (this.Bb & Cve) != 0;
134177 case 16:
134178 return (this.Bb & oie) != 0;
134179 case 17:
134180 return !!WId(this);
134181 case 18:
134182 return (this.Bb & ote) != 0;
134183 case 19:
134184 return d = zUd(this), !!d && (d.Bb & ote) != 0;
134185 case 20:
134186 return (this.Bb & Tje) == 0;
134187 case 21:
134188 return !!this.b;
134189 case 22:
134190 return !!yUd(this);
134191 case 23:
134192 return !!this.a && this.a.i != 0;
134193 }
134194 return cid(this, a - aLd((jGd(), eGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? eGd : b), a));
134195 };
134196 _2.sh = function IUd(a, b) {
134197 var c2, d;
134198 switch (a) {
134199 case 0:
134200 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
134201 Uxd(this.Ab);
134202 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
134203 ytd(this.Ab, BD(b, 14));
134204 return;
134205 case 1:
134206 cJd(this, GD(b));
134207 return;
134208 case 2:
134209 BId(this, Ccb(DD(b)));
134210 return;
134211 case 3:
134212 CId(this, Ccb(DD(b)));
134213 return;
134214 case 4:
134215 AId(this, BD(b, 19).a);
134216 return;
134217 case 5:
134218 DId(this, BD(b, 19).a);
134219 return;
134220 case 8:
134221 yId(this, BD(b, 138));
134222 return;
134223 case 9:
134224 d = xId(this, BD(b, 87), null);
134225 !!d && d.Fi();
134226 return;
134227 case 10:
134228 ZId(this, Ccb(DD(b)));
134229 return;
134230 case 11:
134231 fJd(this, Ccb(DD(b)));
134232 return;
134233 case 12:
134234 dJd(this, Ccb(DD(b)));
134235 return;
134236 case 13:
134237 $Id(this, GD(b));
134238 return;
134239 case 15:
134240 eJd(this, Ccb(DD(b)));
134241 return;
134242 case 16:
134243 aJd(this, Ccb(DD(b)));
134244 return;
134245 case 18:
134246 BUd(this, Ccb(DD(b)));
134247 return;
134248 case 20:
134249 EUd(this, Ccb(DD(b)));
134250 return;
134251 case 21:
134252 DUd(this, BD(b, 18));
134253 return;
134254 case 23:
134255 !this.a && (this.a = new _4d(b5, this, 23));
134256 Uxd(this.a);
134257 !this.a && (this.a = new _4d(b5, this, 23));
134258 ytd(this.a, BD(b, 14));
134259 return;
134260 }
134261 did(this, a - aLd((jGd(), eGd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? eGd : c2), a), b);
134262 };
134263 _2.zh = function JUd() {
134264 return jGd(), eGd;
134265 };
134266 _2.Bh = function KUd(a) {
134267 var b, c2;
134268 switch (a) {
134269 case 0:
134270 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
134271 Uxd(this.Ab);
134272 return;
134273 case 1:
134274 JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 4);
134275 pnd(this, null);
134276 return;
134277 case 2:
134278 BId(this, true);
134279 return;
134280 case 3:
134281 CId(this, true);
134282 return;
134283 case 4:
134284 AId(this, 0);
134285 return;
134286 case 5:
134287 DId(this, 1);
134288 return;
134289 case 8:
134290 yId(this, null);
134291 return;
134292 case 9:
134293 c2 = xId(this, null, null);
134294 !!c2 && c2.Fi();
134295 return;
134296 case 10:
134297 ZId(this, true);
134298 return;
134299 case 11:
134300 fJd(this, false);
134301 return;
134302 case 12:
134303 dJd(this, false);
134304 return;
134305 case 13:
134306 this.i = null;
134307 _Id(this, null);
134308 return;
134309 case 15:
134310 eJd(this, false);
134311 return;
134312 case 16:
134313 aJd(this, false);
134314 return;
134315 case 18:
134316 CUd(this, false);
134317 JD(this.Cb, 88) && XMd($Kd(BD(this.Cb, 88)), 2);
134318 return;
134319 case 20:
134320 EUd(this, true);
134321 return;
134322 case 21:
134323 DUd(this, null);
134324 return;
134325 case 23:
134326 !this.a && (this.a = new _4d(b5, this, 23));
134327 Uxd(this.a);
134328 return;
134329 }
134330 eid(this, a - aLd((jGd(), eGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? eGd : b), a));
134331 };
134332 _2.Gh = function LUd() {
134333 AUd(this);
134334 a2d(q1d((O6d(), M6d), this));
134335 wId(this);
134336 this.Bb |= 1;
134337 };
134338 _2.Lj = function MUd() {
134339 return zUd(this);
134340 };
134341 _2.qk = function NUd() {
134342 var a;
134343 return a = zUd(this), !!a && (a.Bb & ote) != 0;
134344 };
134345 _2.rk = function OUd() {
134346 return (this.Bb & ote) != 0;
134347 };
134348 _2.sk = function PUd() {
134349 return (this.Bb & Tje) != 0;
134350 };
134351 _2.nk = function QUd(a, b) {
134352 this.c = null;
134353 return zId(this, a, b);
134354 };
134355 _2.Ib = function RUd() {
134356 var a;
134357 if ((this.Db & 64) != 0)
134358 return gJd(this);
134359 a = new Jfb(gJd(this));
134360 a.a += " (containment: ";
134361 Ffb(a, (this.Bb & ote) != 0);
134362 a.a += ", resolveProxies: ";
134363 Ffb(a, (this.Bb & Tje) != 0);
134364 a.a += ")";
134365 return a.a;
134366 };
134367 mdb(qte, "EReferenceImpl", 99);
134368 bcb(548, 115, { 105: 1, 42: 1, 92: 1, 90: 1, 133: 1, 56: 1, 108: 1, 49: 1, 97: 1, 548: 1, 114: 1, 115: 1 }, XUd);
134369 _2.Fb = function bVd(a) {
134370 return this === a;
134371 };
134372 _2.cd = function dVd() {
134373 return this.b;
134374 };
134375 _2.dd = function eVd() {
134376 return this.c;
134377 };
134378 _2.Hb = function fVd() {
134379 return FCb(this);
134380 };
134381 _2.Uh = function hVd(a) {
134382 SUd(this, GD(a));
134383 };
134384 _2.ed = function iVd(a) {
134385 return WUd(this, GD(a));
134386 };
134387 _2._g = function YUd(a, b, c2) {
134388 var d;
134389 switch (a) {
134390 case 0:
134391 return this.b;
134392 case 1:
134393 return this.c;
134394 }
134395 return bid(this, a - aLd((jGd(), fGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? fGd : d), a), b, c2);
134396 };
134397 _2.lh = function ZUd(a) {
134398 var b;
134399 switch (a) {
134400 case 0:
134401 return this.b != null;
134402 case 1:
134403 return this.c != null;
134404 }
134405 return cid(this, a - aLd((jGd(), fGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? fGd : b), a));
134406 };
134407 _2.sh = function $Ud(a, b) {
134408 var c2;
134409 switch (a) {
134410 case 0:
134411 TUd(this, GD(b));
134412 return;
134413 case 1:
134414 VUd(this, GD(b));
134415 return;
134416 }
134417 did(this, a - aLd((jGd(), fGd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? fGd : c2), a), b);
134418 };
134419 _2.zh = function _Ud() {
134420 return jGd(), fGd;
134421 };
134422 _2.Bh = function aVd(a) {
134423 var b;
134424 switch (a) {
134425 case 0:
134426 UUd(this, null);
134427 return;
134428 case 1:
134429 VUd(this, null);
134430 return;
134431 }
134432 eid(this, a - aLd((jGd(), fGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? fGd : b), a));
134433 };
134434 _2.Sh = function cVd() {
134435 var a;
134436 if (this.a == -1) {
134437 a = this.b;
134438 this.a = a == null ? 0 : LCb(a);
134439 }
134440 return this.a;
134441 };
134442 _2.Th = function gVd(a) {
134443 this.a = a;
134444 };
134445 _2.Ib = function jVd() {
134446 var a;
134447 if ((this.Db & 64) != 0)
134448 return Eid(this);
134449 a = new Jfb(Eid(this));
134450 a.a += " (key: ";
134451 Efb(a, this.b);
134452 a.a += ", value: ";
134453 Efb(a, this.c);
134454 a.a += ")";
134455 return a.a;
134456 };
134457 _2.a = -1;
134458 _2.b = null;
134459 _2.c = null;
134460 var x6 = mdb(qte, "EStringToStringMapEntryImpl", 548);
134461 var D9 = odb(yve, "FeatureMap/Entry/Internal");
134462 bcb(565, 1, Xve);
134463 _2.Ok = function mVd(a) {
134464 return this.Pk(BD(a, 49));
134465 };
134466 _2.Pk = function nVd(a) {
134467 return this.Ok(a);
134468 };
134469 _2.Fb = function oVd(a) {
134470 var b, c2;
134471 if (this === a) {
134472 return true;
134473 } else if (JD(a, 72)) {
134474 b = BD(a, 72);
134475 if (b.ak() == this.c) {
134476 c2 = this.dd();
134477 return c2 == null ? b.dd() == null : pb(c2, b.dd());
134478 } else {
134479 return false;
134480 }
134481 } else {
134482 return false;
134483 }
134484 };
134485 _2.ak = function pVd() {
134486 return this.c;
134487 };
134488 _2.Hb = function qVd() {
134489 var a;
134490 a = this.dd();
134491 return tb(this.c) ^ (a == null ? 0 : tb(a));
134492 };
134493 _2.Ib = function rVd() {
134494 var a, b;
134495 a = this.c;
134496 b = bKd(a.Hj()).Ph();
134497 a.ne();
134498 return (b != null && b.length != 0 ? b + ":" + a.ne() : a.ne()) + "=" + this.dd();
134499 };
134500 mdb(qte, "EStructuralFeatureImpl/BasicFeatureMapEntry", 565);
134501 bcb(776, 565, Xve, uVd);
134502 _2.Pk = function vVd(a) {
134503 return new uVd(this.c, a);
134504 };
134505 _2.dd = function wVd() {
134506 return this.a;
134507 };
134508 _2.Qk = function xVd(a, b, c2) {
134509 return sVd(this, a, this.a, b, c2);
134510 };
134511 _2.Rk = function yVd(a, b, c2) {
134512 return tVd(this, a, this.a, b, c2);
134513 };
134514 mdb(qte, "EStructuralFeatureImpl/ContainmentUpdatingFeatureMapEntry", 776);
134515 bcb(1314, 1, {}, zVd);
134516 _2.Pj = function AVd(a, b, c2, d, e) {
134517 var f2;
134518 f2 = BD(gid(a, this.b), 215);
134519 return f2.nl(this.a).Wj(d);
134520 };
134521 _2.Qj = function BVd(a, b, c2, d, e) {
134522 var f2;
134523 f2 = BD(gid(a, this.b), 215);
134524 return f2.el(this.a, d, e);
134525 };
134526 _2.Rj = function CVd(a, b, c2, d, e) {
134527 var f2;
134528 f2 = BD(gid(a, this.b), 215);
134529 return f2.fl(this.a, d, e);
134530 };
134531 _2.Sj = function DVd(a, b, c2) {
134532 var d;
134533 d = BD(gid(a, this.b), 215);
134534 return d.nl(this.a).fj();
134535 };
134536 _2.Tj = function EVd(a, b, c2, d) {
134537 var e;
134538 e = BD(gid(a, this.b), 215);
134539 e.nl(this.a).Wb(d);
134540 };
134541 _2.Uj = function FVd(a, b, c2) {
134542 return BD(gid(a, this.b), 215).nl(this.a);
134543 };
134544 _2.Vj = function GVd(a, b, c2) {
134545 var d;
134546 d = BD(gid(a, this.b), 215);
134547 d.nl(this.a).Xj();
134548 };
134549 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateFeatureMapDelegator", 1314);
134550 bcb(89, 1, {}, IVd, JVd, KVd, LVd);
134551 _2.Pj = function MVd(a, b, c2, d, e) {
134552 var f2;
134553 f2 = b.Ch(c2);
134554 f2 == null && b.Dh(c2, f2 = HVd(this, a));
134555 if (!e) {
134556 switch (this.e) {
134557 case 50:
134558 case 41:
134559 return BD(f2, 589).sj();
134560 case 40:
134561 return BD(f2, 215).kl();
134562 }
134563 }
134564 return f2;
134565 };
134566 _2.Qj = function NVd(a, b, c2, d, e) {
134567 var f2, g;
134568 g = b.Ch(c2);
134569 g == null && b.Dh(c2, g = HVd(this, a));
134570 f2 = BD(g, 69).lk(d, e);
134571 return f2;
134572 };
134573 _2.Rj = function OVd(a, b, c2, d, e) {
134574 var f2;
134575 f2 = b.Ch(c2);
134576 f2 != null && (e = BD(f2, 69).mk(d, e));
134577 return e;
134578 };
134579 _2.Sj = function PVd(a, b, c2) {
134580 var d;
134581 d = b.Ch(c2);
134582 return d != null && BD(d, 76).fj();
134583 };
134584 _2.Tj = function QVd(a, b, c2, d) {
134585 var e;
134586 e = BD(b.Ch(c2), 76);
134587 !e && b.Dh(c2, e = HVd(this, a));
134588 e.Wb(d);
134589 };
134590 _2.Uj = function RVd(a, b, c2) {
134591 var d, e;
134592 e = b.Ch(c2);
134593 e == null && b.Dh(c2, e = HVd(this, a));
134594 if (JD(e, 76)) {
134595 return BD(e, 76);
134596 } else {
134597 d = BD(b.Ch(c2), 15);
134598 return new iYd(d);
134599 }
134600 };
134601 _2.Vj = function SVd(a, b, c2) {
134602 var d;
134603 d = BD(b.Ch(c2), 76);
134604 !d && b.Dh(c2, d = HVd(this, a));
134605 d.Xj();
134606 };
134607 _2.b = 0;
134608 _2.e = 0;
134609 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateMany", 89);
134610 bcb(504, 1, {});
134611 _2.Qj = function WVd(a, b, c2, d, e) {
134612 throw vbb(new bgb());
134613 };
134614 _2.Rj = function XVd(a, b, c2, d, e) {
134615 throw vbb(new bgb());
134616 };
134617 _2.Uj = function YVd(a, b, c2) {
134618 return new ZVd(this, a, b, c2);
134619 };
134620 var TVd;
134621 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingle", 504);
134622 bcb(1331, 1, zve, ZVd);
134623 _2.Wj = function $Vd(a) {
134624 return this.a.Pj(this.c, this.d, this.b, a, true);
134625 };
134626 _2.fj = function _Vd() {
134627 return this.a.Sj(this.c, this.d, this.b);
134628 };
134629 _2.Wb = function aWd(a) {
134630 this.a.Tj(this.c, this.d, this.b, a);
134631 };
134632 _2.Xj = function bWd() {
134633 this.a.Vj(this.c, this.d, this.b);
134634 };
134635 _2.b = 0;
134636 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingle/1", 1331);
134637 bcb(769, 504, {}, cWd);
134638 _2.Pj = function dWd(a, b, c2, d, e) {
134639 return Nid(a, a.eh(), a.Vg()) == this.b ? this.sk() && d ? aid(a) : a.eh() : null;
134640 };
134641 _2.Qj = function eWd(a, b, c2, d, e) {
134642 var f2, g;
134643 !!a.eh() && (e = (f2 = a.Vg(), f2 >= 0 ? a.Qg(e) : a.eh().ih(a, -1 - f2, null, e)));
134644 g = bLd(a.Tg(), this.e);
134645 return a.Sg(d, g, e);
134646 };
134647 _2.Rj = function fWd(a, b, c2, d, e) {
134648 var f2;
134649 f2 = bLd(a.Tg(), this.e);
134650 return a.Sg(null, f2, e);
134651 };
134652 _2.Sj = function gWd(a, b, c2) {
134653 var d;
134654 d = bLd(a.Tg(), this.e);
134655 return !!a.eh() && a.Vg() == d;
134656 };
134657 _2.Tj = function hWd(a, b, c2, d) {
134658 var e, f2, g, h, i3;
134659 if (d != null && !fKd(this.a, d)) {
134660 throw vbb(new Cdb(Yve + (JD(d, 56) ? gLd(BD(d, 56).Tg()) : idb(rb(d))) + Zve + this.a + "'"));
134661 }
134662 e = a.eh();
134663 g = bLd(a.Tg(), this.e);
134664 if (PD(d) !== PD(e) || a.Vg() != g && d != null) {
134665 if (p6d(a, BD(d, 56)))
134666 throw vbb(new Wdb(ste + a.Ib()));
134667 i3 = null;
134668 !!e && (i3 = (f2 = a.Vg(), f2 >= 0 ? a.Qg(i3) : a.eh().ih(a, -1 - f2, null, i3)));
134669 h = BD(d, 49);
134670 !!h && (i3 = h.gh(a, bLd(h.Tg(), this.b), null, i3));
134671 i3 = a.Sg(h, g, i3);
134672 !!i3 && i3.Fi();
134673 } else {
134674 a.Lg() && a.Mg() && Uhd(a, new nSd(a, 1, g, d, d));
134675 }
134676 };
134677 _2.Vj = function iWd(a, b, c2) {
134678 var d, e, f2, g;
134679 d = a.eh();
134680 if (d) {
134681 g = (e = a.Vg(), e >= 0 ? a.Qg(null) : a.eh().ih(a, -1 - e, null, null));
134682 f2 = bLd(a.Tg(), this.e);
134683 g = a.Sg(null, f2, g);
134684 !!g && g.Fi();
134685 } else {
134686 a.Lg() && a.Mg() && Uhd(a, new DSd(a, 1, this.e, null, null));
134687 }
134688 };
134689 _2.sk = function jWd() {
134690 return false;
134691 };
134692 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleContainer", 769);
134693 bcb(1315, 769, {}, kWd);
134694 _2.sk = function lWd() {
134695 return true;
134696 };
134697 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleContainerResolving", 1315);
134698 bcb(563, 504, {});
134699 _2.Pj = function oWd(a, b, c2, d, e) {
134700 var f2;
134701 return f2 = b.Ch(c2), f2 == null ? this.b : PD(f2) === PD(TVd) ? null : f2;
134702 };
134703 _2.Sj = function pWd(a, b, c2) {
134704 var d;
134705 d = b.Ch(c2);
134706 return d != null && (PD(d) === PD(TVd) || !pb(d, this.b));
134707 };
134708 _2.Tj = function qWd(a, b, c2, d) {
134709 var e, f2;
134710 if (a.Lg() && a.Mg()) {
134711 e = (f2 = b.Ch(c2), f2 == null ? this.b : PD(f2) === PD(TVd) ? null : f2);
134712 if (d == null) {
134713 if (this.c != null) {
134714 b.Dh(c2, null);
134715 d = this.b;
134716 } else
134717 this.b != null ? b.Dh(c2, TVd) : b.Dh(c2, null);
134718 } else {
134719 this.Sk(d);
134720 b.Dh(c2, d);
134721 }
134722 Uhd(a, this.d.Tk(a, 1, this.e, e, d));
134723 } else {
134724 if (d == null) {
134725 this.c != null ? b.Dh(c2, null) : this.b != null ? b.Dh(c2, TVd) : b.Dh(c2, null);
134726 } else {
134727 this.Sk(d);
134728 b.Dh(c2, d);
134729 }
134730 }
134731 };
134732 _2.Vj = function rWd(a, b, c2) {
134733 var d, e;
134734 if (a.Lg() && a.Mg()) {
134735 d = (e = b.Ch(c2), e == null ? this.b : PD(e) === PD(TVd) ? null : e);
134736 b.Eh(c2);
134737 Uhd(a, this.d.Tk(a, 1, this.e, d, this.b));
134738 } else {
134739 b.Eh(c2);
134740 }
134741 };
134742 _2.Sk = function sWd(a) {
134743 throw vbb(new Bdb());
134744 };
134745 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData", 563);
134746 bcb($ve, 1, {}, DWd);
134747 _2.Tk = function EWd(a, b, c2, d, e) {
134748 return new DSd(a, b, c2, d, e);
134749 };
134750 _2.Uk = function FWd(a, b, c2, d, e, f2) {
134751 return new FSd(a, b, c2, d, e, f2);
134752 };
134753 var tWd, uWd, vWd, wWd, xWd, yWd, zWd, AWd, BWd;
134754 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator", $ve);
134755 bcb(1332, $ve, {}, GWd);
134756 _2.Tk = function HWd(a, b, c2, d, e) {
134757 return new ISd(a, b, c2, Ccb(DD(d)), Ccb(DD(e)));
134758 };
134759 _2.Uk = function IWd(a, b, c2, d, e, f2) {
134760 return new JSd(a, b, c2, Ccb(DD(d)), Ccb(DD(e)), f2);
134761 };
134762 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/1", 1332);
134763 bcb(1333, $ve, {}, JWd);
134764 _2.Tk = function KWd(a, b, c2, d, e) {
134765 return new rSd(a, b, c2, BD(d, 217).a, BD(e, 217).a);
134766 };
134767 _2.Uk = function LWd(a, b, c2, d, e, f2) {
134768 return new sSd(a, b, c2, BD(d, 217).a, BD(e, 217).a, f2);
134769 };
134770 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/2", 1333);
134771 bcb(1334, $ve, {}, MWd);
134772 _2.Tk = function NWd(a, b, c2, d, e) {
134773 return new tSd(a, b, c2, BD(d, 172).a, BD(e, 172).a);
134774 };
134775 _2.Uk = function OWd(a, b, c2, d, e, f2) {
134776 return new uSd(a, b, c2, BD(d, 172).a, BD(e, 172).a, f2);
134777 };
134778 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/3", 1334);
134779 bcb(1335, $ve, {}, PWd);
134780 _2.Tk = function QWd(a, b, c2, d, e) {
134781 return new vSd(a, b, c2, Edb(ED(d)), Edb(ED(e)));
134782 };
134783 _2.Uk = function RWd(a, b, c2, d, e, f2) {
134784 return new wSd(a, b, c2, Edb(ED(d)), Edb(ED(e)), f2);
134785 };
134786 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/4", 1335);
134787 bcb(1336, $ve, {}, SWd);
134788 _2.Tk = function TWd(a, b, c2, d, e) {
134789 return new xSd(a, b, c2, BD(d, 155).a, BD(e, 155).a);
134790 };
134791 _2.Uk = function UWd(a, b, c2, d, e, f2) {
134792 return new ySd(a, b, c2, BD(d, 155).a, BD(e, 155).a, f2);
134793 };
134794 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/5", 1336);
134795 bcb(1337, $ve, {}, VWd);
134796 _2.Tk = function WWd(a, b, c2, d, e) {
134797 return new zSd(a, b, c2, BD(d, 19).a, BD(e, 19).a);
134798 };
134799 _2.Uk = function XWd(a, b, c2, d, e, f2) {
134800 return new ASd(a, b, c2, BD(d, 19).a, BD(e, 19).a, f2);
134801 };
134802 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/6", 1337);
134803 bcb(1338, $ve, {}, YWd);
134804 _2.Tk = function ZWd(a, b, c2, d, e) {
134805 return new BSd(a, b, c2, BD(d, 162).a, BD(e, 162).a);
134806 };
134807 _2.Uk = function $Wd(a, b, c2, d, e, f2) {
134808 return new CSd(a, b, c2, BD(d, 162).a, BD(e, 162).a, f2);
134809 };
134810 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/7", 1338);
134811 bcb(1339, $ve, {}, _Wd);
134812 _2.Tk = function aXd(a, b, c2, d, e) {
134813 return new GSd(a, b, c2, BD(d, 184).a, BD(e, 184).a);
134814 };
134815 _2.Uk = function bXd(a, b, c2, d, e, f2) {
134816 return new HSd(a, b, c2, BD(d, 184).a, BD(e, 184).a, f2);
134817 };
134818 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleData/NotificationCreator/8", 1339);
134819 bcb(1317, 563, {}, cXd);
134820 _2.Sk = function dXd(a) {
134821 if (!this.a.wj(a)) {
134822 throw vbb(new Cdb(Yve + rb(a) + Zve + this.a + "'"));
134823 }
134824 };
134825 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataDynamic", 1317);
134826 bcb(1318, 563, {}, eXd);
134827 _2.Sk = function fXd(a) {
134828 };
134829 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataStatic", 1318);
134830 bcb(770, 563, {});
134831 _2.Sj = function gXd(a, b, c2) {
134832 var d;
134833 d = b.Ch(c2);
134834 return d != null;
134835 };
134836 _2.Tj = function hXd(a, b, c2, d) {
134837 var e, f2;
134838 if (a.Lg() && a.Mg()) {
134839 e = true;
134840 f2 = b.Ch(c2);
134841 if (f2 == null) {
134842 e = false;
134843 f2 = this.b;
134844 } else
134845 PD(f2) === PD(TVd) && (f2 = null);
134846 if (d == null) {
134847 if (this.c != null) {
134848 b.Dh(c2, null);
134849 d = this.b;
134850 } else {
134851 b.Dh(c2, TVd);
134852 }
134853 } else {
134854 this.Sk(d);
134855 b.Dh(c2, d);
134856 }
134857 Uhd(a, this.d.Uk(a, 1, this.e, f2, d, !e));
134858 } else {
134859 if (d == null) {
134860 this.c != null ? b.Dh(c2, null) : b.Dh(c2, TVd);
134861 } else {
134862 this.Sk(d);
134863 b.Dh(c2, d);
134864 }
134865 }
134866 };
134867 _2.Vj = function iXd(a, b, c2) {
134868 var d, e;
134869 if (a.Lg() && a.Mg()) {
134870 d = true;
134871 e = b.Ch(c2);
134872 if (e == null) {
134873 d = false;
134874 e = this.b;
134875 } else
134876 PD(e) === PD(TVd) && (e = null);
134877 b.Eh(c2);
134878 Uhd(a, this.d.Uk(a, 2, this.e, e, this.b, d));
134879 } else {
134880 b.Eh(c2);
134881 }
134882 };
134883 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettable", 770);
134884 bcb(1319, 770, {}, jXd);
134885 _2.Sk = function kXd(a) {
134886 if (!this.a.wj(a)) {
134887 throw vbb(new Cdb(Yve + rb(a) + Zve + this.a + "'"));
134888 }
134889 };
134890 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableDynamic", 1319);
134891 bcb(1320, 770, {}, lXd);
134892 _2.Sk = function mXd(a) {
134893 };
134894 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleDataUnsettableStatic", 1320);
134895 bcb(398, 504, {}, nXd);
134896 _2.Pj = function pXd(a, b, c2, d, e) {
134897 var f2, g, h, i3, j;
134898 j = b.Ch(c2);
134899 if (this.Kj() && PD(j) === PD(TVd)) {
134900 return null;
134901 } else if (this.sk() && d && j != null) {
134902 h = BD(j, 49);
134903 if (h.kh()) {
134904 i3 = xid(a, h);
134905 if (h != i3) {
134906 if (!fKd(this.a, i3)) {
134907 throw vbb(new Cdb(Yve + rb(i3) + Zve + this.a + "'"));
134908 }
134909 b.Dh(c2, j = i3);
134910 if (this.rk()) {
134911 f2 = BD(i3, 49);
134912 g = h.ih(a, !this.b ? -1 - bLd(a.Tg(), this.e) : bLd(h.Tg(), this.b), null, null);
134913 !f2.eh() && (g = f2.gh(a, !this.b ? -1 - bLd(a.Tg(), this.e) : bLd(f2.Tg(), this.b), null, g));
134914 !!g && g.Fi();
134915 }
134916 a.Lg() && a.Mg() && Uhd(a, new DSd(a, 9, this.e, h, i3));
134917 }
134918 }
134919 return j;
134920 } else {
134921 return j;
134922 }
134923 };
134924 _2.Qj = function qXd(a, b, c2, d, e) {
134925 var f2, g;
134926 g = b.Ch(c2);
134927 PD(g) === PD(TVd) && (g = null);
134928 b.Dh(c2, d);
134929 if (this.bj()) {
134930 if (PD(g) !== PD(d) && g != null) {
134931 f2 = BD(g, 49);
134932 e = f2.ih(a, bLd(f2.Tg(), this.b), null, e);
134933 }
134934 } else
134935 this.rk() && g != null && (e = BD(g, 49).ih(a, -1 - bLd(a.Tg(), this.e), null, e));
134936 if (a.Lg() && a.Mg()) {
134937 !e && (e = new Ixd(4));
134938 e.Ei(new DSd(a, 1, this.e, g, d));
134939 }
134940 return e;
134941 };
134942 _2.Rj = function rXd(a, b, c2, d, e) {
134943 var f2;
134944 f2 = b.Ch(c2);
134945 PD(f2) === PD(TVd) && (f2 = null);
134946 b.Eh(c2);
134947 if (a.Lg() && a.Mg()) {
134948 !e && (e = new Ixd(4));
134949 this.Kj() ? e.Ei(new DSd(a, 2, this.e, f2, null)) : e.Ei(new DSd(a, 1, this.e, f2, null));
134950 }
134951 return e;
134952 };
134953 _2.Sj = function sXd(a, b, c2) {
134954 var d;
134955 d = b.Ch(c2);
134956 return d != null;
134957 };
134958 _2.Tj = function tXd(a, b, c2, d) {
134959 var e, f2, g, h, i3;
134960 if (d != null && !fKd(this.a, d)) {
134961 throw vbb(new Cdb(Yve + (JD(d, 56) ? gLd(BD(d, 56).Tg()) : idb(rb(d))) + Zve + this.a + "'"));
134962 }
134963 i3 = b.Ch(c2);
134964 h = i3 != null;
134965 this.Kj() && PD(i3) === PD(TVd) && (i3 = null);
134966 g = null;
134967 if (this.bj()) {
134968 if (PD(i3) !== PD(d)) {
134969 if (i3 != null) {
134970 e = BD(i3, 49);
134971 g = e.ih(a, bLd(e.Tg(), this.b), null, g);
134972 }
134973 if (d != null) {
134974 e = BD(d, 49);
134975 g = e.gh(a, bLd(e.Tg(), this.b), null, g);
134976 }
134977 }
134978 } else if (this.rk()) {
134979 if (PD(i3) !== PD(d)) {
134980 i3 != null && (g = BD(i3, 49).ih(a, -1 - bLd(a.Tg(), this.e), null, g));
134981 d != null && (g = BD(d, 49).gh(a, -1 - bLd(a.Tg(), this.e), null, g));
134982 }
134983 }
134984 d == null && this.Kj() ? b.Dh(c2, TVd) : b.Dh(c2, d);
134985 if (a.Lg() && a.Mg()) {
134986 f2 = new FSd(a, 1, this.e, i3, d, this.Kj() && !h);
134987 if (!g) {
134988 Uhd(a, f2);
134989 } else {
134990 g.Ei(f2);
134991 g.Fi();
134992 }
134993 } else
134994 !!g && g.Fi();
134995 };
134996 _2.Vj = function uXd(a, b, c2) {
134997 var d, e, f2, g, h;
134998 h = b.Ch(c2);
134999 g = h != null;
135000 this.Kj() && PD(h) === PD(TVd) && (h = null);
135001 f2 = null;
135002 if (h != null) {
135003 if (this.bj()) {
135004 d = BD(h, 49);
135005 f2 = d.ih(a, bLd(d.Tg(), this.b), null, f2);
135006 } else
135007 this.rk() && (f2 = BD(h, 49).ih(a, -1 - bLd(a.Tg(), this.e), null, f2));
135008 }
135009 b.Eh(c2);
135010 if (a.Lg() && a.Mg()) {
135011 e = new FSd(a, this.Kj() ? 2 : 1, this.e, h, null, g);
135012 if (!f2) {
135013 Uhd(a, e);
135014 } else {
135015 f2.Ei(e);
135016 f2.Fi();
135017 }
135018 } else
135019 !!f2 && f2.Fi();
135020 };
135021 _2.bj = function vXd() {
135022 return false;
135023 };
135024 _2.rk = function wXd() {
135025 return false;
135026 };
135027 _2.sk = function xXd() {
135028 return false;
135029 };
135030 _2.Kj = function yXd() {
135031 return false;
135032 };
135033 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObject", 398);
135034 bcb(564, 398, {}, zXd);
135035 _2.rk = function AXd() {
135036 return true;
135037 };
135038 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainment", 564);
135039 bcb(1323, 564, {}, BXd);
135040 _2.sk = function CXd() {
135041 return true;
135042 };
135043 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentResolving", 1323);
135044 bcb(772, 564, {}, DXd);
135045 _2.Kj = function EXd() {
135046 return true;
135047 };
135048 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettable", 772);
135049 bcb(1325, 772, {}, FXd);
135050 _2.sk = function GXd() {
135051 return true;
135052 };
135053 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentUnsettableResolving", 1325);
135054 bcb(640, 564, {}, HXd);
135055 _2.bj = function IXd() {
135056 return true;
135057 };
135058 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverse", 640);
135059 bcb(1324, 640, {}, JXd);
135060 _2.sk = function KXd() {
135061 return true;
135062 };
135063 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseResolving", 1324);
135064 bcb(773, 640, {}, LXd);
135065 _2.Kj = function MXd() {
135066 return true;
135067 };
135068 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettable", 773);
135069 bcb(1326, 773, {}, NXd);
135070 _2.sk = function OXd() {
135071 return true;
135072 };
135073 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectContainmentWithInverseUnsettableResolving", 1326);
135074 bcb(641, 398, {}, PXd);
135075 _2.sk = function QXd() {
135076 return true;
135077 };
135078 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolving", 641);
135079 bcb(1327, 641, {}, RXd);
135080 _2.Kj = function SXd() {
135081 return true;
135082 };
135083 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingUnsettable", 1327);
135084 bcb(774, 641, {}, TXd);
135085 _2.bj = function UXd() {
135086 return true;
135087 };
135088 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverse", 774);
135089 bcb(1328, 774, {}, VXd);
135090 _2.Kj = function WXd() {
135091 return true;
135092 };
135093 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectResolvingWithInverseUnsettable", 1328);
135094 bcb(1321, 398, {}, XXd);
135095 _2.Kj = function YXd() {
135096 return true;
135097 };
135098 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectUnsettable", 1321);
135099 bcb(771, 398, {}, ZXd);
135100 _2.bj = function $Xd() {
135101 return true;
135102 };
135103 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverse", 771);
135104 bcb(1322, 771, {}, _Xd);
135105 _2.Kj = function aYd() {
135106 return true;
135107 };
135108 mdb(qte, "EStructuralFeatureImpl/InternalSettingDelegateSingleEObjectWithInverseUnsettable", 1322);
135109 bcb(775, 565, Xve, dYd);
135110 _2.Pk = function eYd(a) {
135111 return new dYd(this.a, this.c, a);
135112 };
135113 _2.dd = function fYd() {
135114 return this.b;
135115 };
135116 _2.Qk = function gYd(a, b, c2) {
135117 return bYd(this, a, this.b, c2);
135118 };
135119 _2.Rk = function hYd(a, b, c2) {
135120 return cYd(this, a, this.b, c2);
135121 };
135122 mdb(qte, "EStructuralFeatureImpl/InverseUpdatingFeatureMapEntry", 775);
135123 bcb(1329, 1, zve, iYd);
135124 _2.Wj = function jYd(a) {
135125 return this.a;
135126 };
135127 _2.fj = function kYd() {
135128 return JD(this.a, 95) ? BD(this.a, 95).fj() : !this.a.dc();
135129 };
135130 _2.Wb = function lYd(a) {
135131 this.a.$b();
135132 this.a.Gc(BD(a, 15));
135133 };
135134 _2.Xj = function mYd() {
135135 JD(this.a, 95) ? BD(this.a, 95).Xj() : this.a.$b();
135136 };
135137 mdb(qte, "EStructuralFeatureImpl/SettingMany", 1329);
135138 bcb(1330, 565, Xve, nYd);
135139 _2.Ok = function oYd(a) {
135140 return new sYd((Q8d(), P8d), this.b.Ih(this.a, a));
135141 };
135142 _2.dd = function pYd() {
135143 return null;
135144 };
135145 _2.Qk = function qYd(a, b, c2) {
135146 return c2;
135147 };
135148 _2.Rk = function rYd(a, b, c2) {
135149 return c2;
135150 };
135151 mdb(qte, "EStructuralFeatureImpl/SimpleContentFeatureMapEntry", 1330);
135152 bcb(642, 565, Xve, sYd);
135153 _2.Ok = function tYd(a) {
135154 return new sYd(this.c, a);
135155 };
135156 _2.dd = function uYd() {
135157 return this.a;
135158 };
135159 _2.Qk = function vYd(a, b, c2) {
135160 return c2;
135161 };
135162 _2.Rk = function wYd(a, b, c2) {
135163 return c2;
135164 };
135165 mdb(qte, "EStructuralFeatureImpl/SimpleFeatureMapEntry", 642);
135166 bcb(391, 497, oue, xYd);
135167 _2.ri = function yYd(a) {
135168 return KC(c5, Uhe, 26, a, 0, 1);
135169 };
135170 _2.ni = function zYd() {
135171 return false;
135172 };
135173 mdb(qte, "ESuperAdapter/1", 391);
135174 bcb(444, 438, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 108: 1, 836: 1, 49: 1, 97: 1, 150: 1, 444: 1, 114: 1, 115: 1 }, BYd);
135175 _2._g = function CYd(a, b, c2) {
135176 var d;
135177 switch (a) {
135178 case 0:
135179 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), this.Ab;
135180 case 1:
135181 return this.zb;
135182 case 2:
135183 return !this.a && (this.a = new KYd(this, j5, this)), this.a;
135184 }
135185 return bid(this, a - aLd((jGd(), iGd)), XKd((d = BD(Ajd(this, 16), 26), !d ? iGd : d), a), b, c2);
135186 };
135187 _2.jh = function DYd(a, b, c2) {
135188 var d, e;
135189 switch (b) {
135190 case 0:
135191 return !this.Ab && (this.Ab = new cUd(a5, this, 0, 3)), Txd(this.Ab, a, c2);
135192 case 2:
135193 return !this.a && (this.a = new KYd(this, j5, this)), Txd(this.a, a, c2);
135194 }
135195 return e = BD(XKd((d = BD(Ajd(this, 16), 26), !d ? (jGd(), iGd) : d), b), 66), e.Nj().Rj(this, yjd(this), b - aLd((jGd(), iGd)), a, c2);
135196 };
135197 _2.lh = function EYd(a) {
135198 var b;
135199 switch (a) {
135200 case 0:
135201 return !!this.Ab && this.Ab.i != 0;
135202 case 1:
135203 return this.zb != null;
135204 case 2:
135205 return !!this.a && this.a.i != 0;
135206 }
135207 return cid(this, a - aLd((jGd(), iGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? iGd : b), a));
135208 };
135209 _2.sh = function FYd(a, b) {
135210 var c2;
135211 switch (a) {
135212 case 0:
135213 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
135214 Uxd(this.Ab);
135215 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
135216 ytd(this.Ab, BD(b, 14));
135217 return;
135218 case 1:
135219 pnd(this, GD(b));
135220 return;
135221 case 2:
135222 !this.a && (this.a = new KYd(this, j5, this));
135223 Uxd(this.a);
135224 !this.a && (this.a = new KYd(this, j5, this));
135225 ytd(this.a, BD(b, 14));
135226 return;
135227 }
135228 did(this, a - aLd((jGd(), iGd)), XKd((c2 = BD(Ajd(this, 16), 26), !c2 ? iGd : c2), a), b);
135229 };
135230 _2.zh = function GYd() {
135231 return jGd(), iGd;
135232 };
135233 _2.Bh = function HYd(a) {
135234 var b;
135235 switch (a) {
135236 case 0:
135237 !this.Ab && (this.Ab = new cUd(a5, this, 0, 3));
135238 Uxd(this.Ab);
135239 return;
135240 case 1:
135241 pnd(this, null);
135242 return;
135243 case 2:
135244 !this.a && (this.a = new KYd(this, j5, this));
135245 Uxd(this.a);
135246 return;
135247 }
135248 eid(this, a - aLd((jGd(), iGd)), XKd((b = BD(Ajd(this, 16), 26), !b ? iGd : b), a));
135249 };
135250 mdb(qte, "ETypeParameterImpl", 444);
135251 bcb(445, 85, Pve, KYd);
135252 _2.cj = function LYd(a, b) {
135253 return IYd(this, BD(a, 87), b);
135254 };
135255 _2.dj = function MYd(a, b) {
135256 return JYd(this, BD(a, 87), b);
135257 };
135258 mdb(qte, "ETypeParameterImpl/1", 445);
135259 bcb(634, 43, fke, NYd);
135260 _2.ec = function OYd() {
135261 return new RYd(this);
135262 };
135263 mdb(qte, "ETypeParameterImpl/2", 634);
135264 bcb(556, eie, fie, RYd);
135265 _2.Fc = function SYd(a) {
135266 return PYd(this, BD(a, 87));
135267 };
135268 _2.Gc = function TYd(a) {
135269 var b, c2, d;
135270 d = false;
135271 for (c2 = a.Kc(); c2.Ob(); ) {
135272 b = BD(c2.Pb(), 87);
135273 Rhb(this.a, b, "") == null && (d = true);
135274 }
135275 return d;
135276 };
135277 _2.$b = function UYd() {
135278 Uhb(this.a);
135279 };
135280 _2.Hc = function VYd(a) {
135281 return Mhb(this.a, a);
135282 };
135283 _2.Kc = function WYd() {
135284 var a;
135285 return a = new nib(new eib(this.a).a), new ZYd(a);
135286 };
135287 _2.Mc = function XYd(a) {
135288 return QYd(this, a);
135289 };
135290 _2.gc = function YYd() {
135291 return Vhb(this.a);
135292 };
135293 mdb(qte, "ETypeParameterImpl/2/1", 556);
135294 bcb(557, 1, aie, ZYd);
135295 _2.Nb = function $Yd(a) {
135296 Rrb(this, a);
135297 };
135298 _2.Pb = function aZd() {
135299 return BD(lib(this.a).cd(), 87);
135300 };
135301 _2.Ob = function _Yd() {
135302 return this.a.b;
135303 };
135304 _2.Qb = function bZd() {
135305 mib(this.a);
135306 };
135307 mdb(qte, "ETypeParameterImpl/2/1/1", 557);
135308 bcb(1276, 43, fke, cZd);
135309 _2._b = function dZd(a) {
135310 return ND(a) ? Qhb(this, a) : !!irb(this.f, a);
135311 };
135312 _2.xc = function eZd(a) {
135313 var b, c2;
135314 b = ND(a) ? Phb(this, a) : Wd(irb(this.f, a));
135315 if (JD(b, 837)) {
135316 c2 = BD(b, 837);
135317 b = c2._j();
135318 Rhb(this, BD(a, 235), b);
135319 return b;
135320 } else
135321 return b != null ? b : a == null ? (g5d(), f5d) : null;
135322 };
135323 mdb(qte, "EValidatorRegistryImpl", 1276);
135324 bcb(1313, 704, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 1941: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1 }, mZd);
135325 _2.Ih = function nZd(a, b) {
135326 switch (a.yj()) {
135327 case 21:
135328 case 22:
135329 case 23:
135330 case 24:
135331 case 26:
135332 case 31:
135333 case 32:
135334 case 37:
135335 case 38:
135336 case 39:
135337 case 40:
135338 case 43:
135339 case 44:
135340 case 48:
135341 case 49:
135342 case 20:
135343 return b == null ? null : fcb(b);
135344 case 25:
135345 return gZd(b);
135346 case 27:
135347 return hZd(b);
135348 case 28:
135349 return iZd(b);
135350 case 29:
135351 return b == null ? null : CQd(Pmd[0], BD(b, 199));
135352 case 41:
135353 return b == null ? "" : hdb(BD(b, 290));
135354 case 42:
135355 return fcb(b);
135356 case 50:
135357 return GD(b);
135358 default:
135359 throw vbb(new Wdb(tte + a.ne() + ute));
135360 }
135361 };
135362 _2.Jh = function oZd(a) {
135363 var b, c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q;
135364 switch (a.G == -1 && (a.G = (m = bKd(a), m ? HLd(m.Mh(), a) : -1)), a.G) {
135365 case 0:
135366 return c2 = new OJd(), c2;
135367 case 1:
135368 return b = new RHd(), b;
135369 case 2:
135370 return d = new hLd(), d;
135371 case 4:
135372 return e = new MPd(), e;
135373 case 5:
135374 return f2 = new aQd(), f2;
135375 case 6:
135376 return g = new rQd(), g;
135377 case 7:
135378 return h = new $md(), h;
135379 case 10:
135380 return j = new MGd(), j;
135381 case 11:
135382 return k = new SSd(), k;
135383 case 12:
135384 return l = new eod(), l;
135385 case 13:
135386 return n = new rUd(), n;
135387 case 14:
135388 return o2 = new FUd(), o2;
135389 case 17:
135390 return p = new XUd(), p;
135391 case 18:
135392 return i3 = new UQd(), i3;
135393 case 19:
135394 return q = new BYd(), q;
135395 default:
135396 throw vbb(new Wdb(xte + a.zb + ute));
135397 }
135398 };
135399 _2.Kh = function pZd(a, b) {
135400 switch (a.yj()) {
135401 case 20:
135402 return b == null ? null : new tgb(b);
135403 case 21:
135404 return b == null ? null : new Ygb(b);
135405 case 23:
135406 case 22:
135407 return b == null ? null : fZd(b);
135408 case 26:
135409 case 24:
135410 return b == null ? null : Scb(Icb(b, -128, 127) << 24 >> 24);
135411 case 25:
135412 return Xmd(b);
135413 case 27:
135414 return jZd(b);
135415 case 28:
135416 return kZd(b);
135417 case 29:
135418 return lZd(b);
135419 case 32:
135420 case 31:
135421 return b == null ? null : Hcb(b);
135422 case 38:
135423 case 37:
135424 return b == null ? null : new Odb(b);
135425 case 40:
135426 case 39:
135427 return b == null ? null : meb(Icb(b, Rie, Ohe));
135428 case 41:
135429 return null;
135430 case 42:
135431 return b == null ? null : null;
135432 case 44:
135433 case 43:
135434 return b == null ? null : Aeb(Jcb(b));
135435 case 49:
135436 case 48:
135437 return b == null ? null : Web(Icb(b, awe, 32767) << 16 >> 16);
135438 case 50:
135439 return b;
135440 default:
135441 throw vbb(new Wdb(tte + a.ne() + ute));
135442 }
135443 };
135444 mdb(qte, "EcoreFactoryImpl", 1313);
135445 bcb(547, 179, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 1939: 1, 49: 1, 97: 1, 150: 1, 179: 1, 547: 1, 114: 1, 115: 1, 675: 1 }, AZd);
135446 _2.gb = false;
135447 _2.hb = false;
135448 var rZd, sZd = false;
135449 mdb(qte, "EcorePackageImpl", 547);
135450 bcb(1184, 1, { 837: 1 }, EZd);
135451 _2._j = function FZd() {
135452 return I6d(), H6d;
135453 };
135454 mdb(qte, "EcorePackageImpl/1", 1184);
135455 bcb(1193, 1, nwe, GZd);
135456 _2.wj = function HZd(a) {
135457 return JD(a, 147);
135458 };
135459 _2.xj = function IZd(a) {
135460 return KC(k5, Uhe, 147, a, 0, 1);
135461 };
135462 mdb(qte, "EcorePackageImpl/10", 1193);
135463 bcb(1194, 1, nwe, JZd);
135464 _2.wj = function KZd(a) {
135465 return JD(a, 191);
135466 };
135467 _2.xj = function LZd(a) {
135468 return KC(l5, Uhe, 191, a, 0, 1);
135469 };
135470 mdb(qte, "EcorePackageImpl/11", 1194);
135471 bcb(1195, 1, nwe, MZd);
135472 _2.wj = function NZd(a) {
135473 return JD(a, 56);
135474 };
135475 _2.xj = function OZd(a) {
135476 return KC(m5, Uhe, 56, a, 0, 1);
135477 };
135478 mdb(qte, "EcorePackageImpl/12", 1195);
135479 bcb(1196, 1, nwe, PZd);
135480 _2.wj = function QZd(a) {
135481 return JD(a, 399);
135482 };
135483 _2.xj = function RZd(a) {
135484 return KC(n5, Nve, 59, a, 0, 1);
135485 };
135486 mdb(qte, "EcorePackageImpl/13", 1196);
135487 bcb(1197, 1, nwe, SZd);
135488 _2.wj = function TZd(a) {
135489 return JD(a, 235);
135490 };
135491 _2.xj = function UZd(a) {
135492 return KC(o5, Uhe, 235, a, 0, 1);
135493 };
135494 mdb(qte, "EcorePackageImpl/14", 1197);
135495 bcb(1198, 1, nwe, VZd);
135496 _2.wj = function WZd(a) {
135497 return JD(a, 509);
135498 };
135499 _2.xj = function XZd(a) {
135500 return KC(p5, Uhe, 2017, a, 0, 1);
135501 };
135502 mdb(qte, "EcorePackageImpl/15", 1198);
135503 bcb(1199, 1, nwe, YZd);
135504 _2.wj = function ZZd(a) {
135505 return JD(a, 99);
135506 };
135507 _2.xj = function $Zd(a) {
135508 return KC(q5, Mve, 18, a, 0, 1);
135509 };
135510 mdb(qte, "EcorePackageImpl/16", 1199);
135511 bcb(1200, 1, nwe, _Zd);
135512 _2.wj = function a$d(a) {
135513 return JD(a, 170);
135514 };
135515 _2.xj = function b$d(a) {
135516 return KC(t5, Mve, 170, a, 0, 1);
135517 };
135518 mdb(qte, "EcorePackageImpl/17", 1200);
135519 bcb(1201, 1, nwe, c$d);
135520 _2.wj = function d$d(a) {
135521 return JD(a, 472);
135522 };
135523 _2.xj = function e$d(a) {
135524 return KC(v52, Uhe, 472, a, 0, 1);
135525 };
135526 mdb(qte, "EcorePackageImpl/18", 1201);
135527 bcb(1202, 1, nwe, f$d);
135528 _2.wj = function g$d(a) {
135529 return JD(a, 548);
135530 };
135531 _2.xj = function h$d(a) {
135532 return KC(x6, kve, 548, a, 0, 1);
135533 };
135534 mdb(qte, "EcorePackageImpl/19", 1202);
135535 bcb(1185, 1, nwe, i$d);
135536 _2.wj = function j$d(a) {
135537 return JD(a, 322);
135538 };
135539 _2.xj = function k$d(a) {
135540 return KC(b5, Mve, 34, a, 0, 1);
135541 };
135542 mdb(qte, "EcorePackageImpl/2", 1185);
135543 bcb(1203, 1, nwe, l$d);
135544 _2.wj = function m$d(a) {
135545 return JD(a, 241);
135546 };
135547 _2.xj = function n$d(a) {
135548 return KC(j5, Tve, 87, a, 0, 1);
135549 };
135550 mdb(qte, "EcorePackageImpl/20", 1203);
135551 bcb(1204, 1, nwe, o$d);
135552 _2.wj = function p$d(a) {
135553 return JD(a, 444);
135554 };
135555 _2.xj = function q$d(a) {
135556 return KC(u5, Uhe, 836, a, 0, 1);
135557 };
135558 mdb(qte, "EcorePackageImpl/21", 1204);
135559 bcb(1205, 1, nwe, r$d);
135560 _2.wj = function s$d(a) {
135561 return KD(a);
135562 };
135563 _2.xj = function t$d(a) {
135564 return KC(wI, nie, 476, a, 8, 1);
135565 };
135566 mdb(qte, "EcorePackageImpl/22", 1205);
135567 bcb(1206, 1, nwe, u$d);
135568 _2.wj = function v$d(a) {
135569 return JD(a, 190);
135570 };
135571 _2.xj = function w$d(a) {
135572 return KC(SD, nie, 190, a, 0, 2);
135573 };
135574 mdb(qte, "EcorePackageImpl/23", 1206);
135575 bcb(1207, 1, nwe, x$d);
135576 _2.wj = function y$d(a) {
135577 return JD(a, 217);
135578 };
135579 _2.xj = function z$d(a) {
135580 return KC(xI, nie, 217, a, 0, 1);
135581 };
135582 mdb(qte, "EcorePackageImpl/24", 1207);
135583 bcb(1208, 1, nwe, A$d);
135584 _2.wj = function B$d(a) {
135585 return JD(a, 172);
135586 };
135587 _2.xj = function C$d(a) {
135588 return KC(yI, nie, 172, a, 0, 1);
135589 };
135590 mdb(qte, "EcorePackageImpl/25", 1208);
135591 bcb(1209, 1, nwe, D$d);
135592 _2.wj = function E$d(a) {
135593 return JD(a, 199);
135594 };
135595 _2.xj = function F$d(a) {
135596 return KC($J, nie, 199, a, 0, 1);
135597 };
135598 mdb(qte, "EcorePackageImpl/26", 1209);
135599 bcb(1210, 1, nwe, G$d);
135600 _2.wj = function H$d(a) {
135601 return false;
135602 };
135603 _2.xj = function I$d(a) {
135604 return KC(O4, Uhe, 2110, a, 0, 1);
135605 };
135606 mdb(qte, "EcorePackageImpl/27", 1210);
135607 bcb(1211, 1, nwe, J$d);
135608 _2.wj = function K$d(a) {
135609 return LD(a);
135610 };
135611 _2.xj = function L$d(a) {
135612 return KC(BI, nie, 333, a, 7, 1);
135613 };
135614 mdb(qte, "EcorePackageImpl/28", 1211);
135615 bcb(1212, 1, nwe, M$d);
135616 _2.wj = function N$d(a) {
135617 return JD(a, 58);
135618 };
135619 _2.xj = function O$d(a) {
135620 return KC(T4, eme, 58, a, 0, 1);
135621 };
135622 mdb(qte, "EcorePackageImpl/29", 1212);
135623 bcb(1186, 1, nwe, P$d);
135624 _2.wj = function Q$d(a) {
135625 return JD(a, 510);
135626 };
135627 _2.xj = function R$d(a) {
135628 return KC(a5, { 3: 1, 4: 1, 5: 1, 1934: 1 }, 590, a, 0, 1);
135629 };
135630 mdb(qte, "EcorePackageImpl/3", 1186);
135631 bcb(1213, 1, nwe, S$d);
135632 _2.wj = function T$d(a) {
135633 return JD(a, 573);
135634 };
135635 _2.xj = function U$d(a) {
135636 return KC(U4, Uhe, 1940, a, 0, 1);
135637 };
135638 mdb(qte, "EcorePackageImpl/30", 1213);
135639 bcb(1214, 1, nwe, V$d);
135640 _2.wj = function W$d(a) {
135641 return JD(a, 153);
135642 };
135643 _2.xj = function X$d(a) {
135644 return KC(O9, eme, 153, a, 0, 1);
135645 };
135646 mdb(qte, "EcorePackageImpl/31", 1214);
135647 bcb(1215, 1, nwe, Y$d);
135648 _2.wj = function Z$d(a) {
135649 return JD(a, 72);
135650 };
135651 _2.xj = function $$d(a) {
135652 return KC(E9, owe, 72, a, 0, 1);
135653 };
135654 mdb(qte, "EcorePackageImpl/32", 1215);
135655 bcb(1216, 1, nwe, _$d);
135656 _2.wj = function a_d(a) {
135657 return JD(a, 155);
135658 };
135659 _2.xj = function b_d(a) {
135660 return KC(FI, nie, 155, a, 0, 1);
135661 };
135662 mdb(qte, "EcorePackageImpl/33", 1216);
135663 bcb(1217, 1, nwe, c_d);
135664 _2.wj = function d_d(a) {
135665 return JD(a, 19);
135666 };
135667 _2.xj = function e_d(a) {
135668 return KC(JI, nie, 19, a, 0, 1);
135669 };
135670 mdb(qte, "EcorePackageImpl/34", 1217);
135671 bcb(1218, 1, nwe, f_d);
135672 _2.wj = function g_d(a) {
135673 return JD(a, 290);
135674 };
135675 _2.xj = function h_d(a) {
135676 return KC(AI, Uhe, 290, a, 0, 1);
135677 };
135678 mdb(qte, "EcorePackageImpl/35", 1218);
135679 bcb(1219, 1, nwe, i_d);
135680 _2.wj = function j_d(a) {
135681 return JD(a, 162);
135682 };
135683 _2.xj = function k_d(a) {
135684 return KC(MI, nie, 162, a, 0, 1);
135685 };
135686 mdb(qte, "EcorePackageImpl/36", 1219);
135687 bcb(1220, 1, nwe, l_d);
135688 _2.wj = function m_d(a) {
135689 return JD(a, 83);
135690 };
135691 _2.xj = function n_d(a) {
135692 return KC(DK, Uhe, 83, a, 0, 1);
135693 };
135694 mdb(qte, "EcorePackageImpl/37", 1220);
135695 bcb(1221, 1, nwe, o_d);
135696 _2.wj = function p_d(a) {
135697 return JD(a, 591);
135698 };
135699 _2.xj = function q_d(a) {
135700 return KC(v8, Uhe, 591, a, 0, 1);
135701 };
135702 mdb(qte, "EcorePackageImpl/38", 1221);
135703 bcb(1222, 1, nwe, r_d);
135704 _2.wj = function s_d(a) {
135705 return false;
135706 };
135707 _2.xj = function t_d(a) {
135708 return KC(u8, Uhe, 2111, a, 0, 1);
135709 };
135710 mdb(qte, "EcorePackageImpl/39", 1222);
135711 bcb(1187, 1, nwe, u_d);
135712 _2.wj = function v_d(a) {
135713 return JD(a, 88);
135714 };
135715 _2.xj = function w_d(a) {
135716 return KC(c5, Uhe, 26, a, 0, 1);
135717 };
135718 mdb(qte, "EcorePackageImpl/4", 1187);
135719 bcb(1223, 1, nwe, x_d);
135720 _2.wj = function y_d(a) {
135721 return JD(a, 184);
135722 };
135723 _2.xj = function z_d(a) {
135724 return KC(UI, nie, 184, a, 0, 1);
135725 };
135726 mdb(qte, "EcorePackageImpl/40", 1223);
135727 bcb(1224, 1, nwe, A_d);
135728 _2.wj = function B_d(a) {
135729 return ND(a);
135730 };
135731 _2.xj = function C_d(a) {
135732 return KC(ZI, nie, 2, a, 6, 1);
135733 };
135734 mdb(qte, "EcorePackageImpl/41", 1224);
135735 bcb(1225, 1, nwe, D_d);
135736 _2.wj = function E_d(a) {
135737 return JD(a, 588);
135738 };
135739 _2.xj = function F_d(a) {
135740 return KC(X4, Uhe, 588, a, 0, 1);
135741 };
135742 mdb(qte, "EcorePackageImpl/42", 1225);
135743 bcb(1226, 1, nwe, G_d);
135744 _2.wj = function H_d(a) {
135745 return false;
135746 };
135747 _2.xj = function I_d(a) {
135748 return KC(V4, nie, 2112, a, 0, 1);
135749 };
135750 mdb(qte, "EcorePackageImpl/43", 1226);
135751 bcb(1227, 1, nwe, J_d);
135752 _2.wj = function K_d(a) {
135753 return JD(a, 42);
135754 };
135755 _2.xj = function L_d(a) {
135756 return KC(CK, zie, 42, a, 0, 1);
135757 };
135758 mdb(qte, "EcorePackageImpl/44", 1227);
135759 bcb(1188, 1, nwe, M_d);
135760 _2.wj = function N_d(a) {
135761 return JD(a, 138);
135762 };
135763 _2.xj = function O_d(a) {
135764 return KC(d5, Uhe, 138, a, 0, 1);
135765 };
135766 mdb(qte, "EcorePackageImpl/5", 1188);
135767 bcb(1189, 1, nwe, P_d);
135768 _2.wj = function Q_d(a) {
135769 return JD(a, 148);
135770 };
135771 _2.xj = function R_d(a) {
135772 return KC(f5, Uhe, 148, a, 0, 1);
135773 };
135774 mdb(qte, "EcorePackageImpl/6", 1189);
135775 bcb(1190, 1, nwe, S_d);
135776 _2.wj = function T_d(a) {
135777 return JD(a, 457);
135778 };
135779 _2.xj = function U_d(a) {
135780 return KC(h5, Uhe, 671, a, 0, 1);
135781 };
135782 mdb(qte, "EcorePackageImpl/7", 1190);
135783 bcb(1191, 1, nwe, V_d);
135784 _2.wj = function W_d(a) {
135785 return JD(a, 573);
135786 };
135787 _2.xj = function X_d(a) {
135788 return KC(g5, Uhe, 678, a, 0, 1);
135789 };
135790 mdb(qte, "EcorePackageImpl/8", 1191);
135791 bcb(1192, 1, nwe, Y_d);
135792 _2.wj = function Z_d(a) {
135793 return JD(a, 471);
135794 };
135795 _2.xj = function $_d(a) {
135796 return KC(i5, Uhe, 471, a, 0, 1);
135797 };
135798 mdb(qte, "EcorePackageImpl/9", 1192);
135799 bcb(1025, 1982, ive, c0d);
135800 _2.bi = function d0d(a, b) {
135801 __d(this, BD(b, 415));
135802 };
135803 _2.fi = function e0d(a, b) {
135804 a0d(this, a, BD(b, 415));
135805 };
135806 mdb(qte, "MinimalEObjectImpl/1ArrayDelegatingAdapterList", 1025);
135807 bcb(1026, 143, fve, f0d);
135808 _2.Ai = function g0d() {
135809 return this.a.a;
135810 };
135811 mdb(qte, "MinimalEObjectImpl/1ArrayDelegatingAdapterList/1", 1026);
135812 bcb(1053, 1052, {}, i0d);
135813 mdb("org.eclipse.emf.ecore.plugin", "EcorePlugin", 1053);
135814 var v8 = odb(pwe, "Resource");
135815 bcb(781, 1378, qwe);
135816 _2.Yk = function m0d(a) {
135817 };
135818 _2.Zk = function n0d(a) {
135819 };
135820 _2.Vk = function o0d() {
135821 return !this.a && (this.a = new z0d(this)), this.a;
135822 };
135823 _2.Wk = function p0d(a) {
135824 var b, c2, d, e, f2;
135825 d = a.length;
135826 if (d > 0) {
135827 BCb(0, a.length);
135828 if (a.charCodeAt(0) == 47) {
135829 f2 = new Skb(4);
135830 e = 1;
135831 for (b = 1; b < d; ++b) {
135832 BCb(b, a.length);
135833 if (a.charCodeAt(b) == 47) {
135834 Ekb(f2, e == b ? "" : a.substr(e, b - e));
135835 e = b + 1;
135836 }
135837 }
135838 Ekb(f2, a.substr(e));
135839 return j0d(this, f2);
135840 } else {
135841 BCb(d - 1, a.length);
135842 if (a.charCodeAt(d - 1) == 63) {
135843 c2 = lfb(a, wfb(63), d - 2);
135844 c2 > 0 && (a = a.substr(0, c2));
135845 }
135846 }
135847 }
135848 return k0d(this, a);
135849 };
135850 _2.Xk = function q0d() {
135851 return this.c;
135852 };
135853 _2.Ib = function r0d() {
135854 var a;
135855 return hdb(this.gm) + "@" + (a = tb(this) >>> 0, a.toString(16)) + " uri='" + this.d + "'";
135856 };
135857 _2.b = false;
135858 mdb(rwe, "ResourceImpl", 781);
135859 bcb(1379, 781, qwe, s0d);
135860 mdb(rwe, "BinaryResourceImpl", 1379);
135861 bcb(1169, 694, pue);
135862 _2.si = function v0d(a) {
135863 return JD(a, 56) ? t0d(this, BD(a, 56)) : JD(a, 591) ? new Fyd(BD(a, 591).Vk()) : PD(a) === PD(this.f) ? BD(a, 14).Kc() : (LCd(), KCd.a);
135864 };
135865 _2.Ob = function w0d() {
135866 return u0d(this);
135867 };
135868 _2.a = false;
135869 mdb(yve, "EcoreUtil/ContentTreeIterator", 1169);
135870 bcb(1380, 1169, pue, x0d);
135871 _2.si = function y0d(a) {
135872 return PD(a) === PD(this.f) ? BD(a, 15).Kc() : new C6d(BD(a, 56));
135873 };
135874 mdb(rwe, "ResourceImpl/5", 1380);
135875 bcb(648, 1994, Ove, z0d);
135876 _2.Hc = function A0d(a) {
135877 return this.i <= 4 ? pud(this, a) : JD(a, 49) && BD(a, 49).Zg() == this.a;
135878 };
135879 _2.bi = function B0d(a, b) {
135880 a == this.i - 1 && (this.a.b || (this.a.b = true, null));
135881 };
135882 _2.di = function C0d(a, b) {
135883 a == 0 ? this.a.b || (this.a.b = true, null) : Atd(this, a, b);
135884 };
135885 _2.fi = function D0d(a, b) {
135886 };
135887 _2.gi = function E0d(a, b, c2) {
135888 };
135889 _2.aj = function F0d() {
135890 return 2;
135891 };
135892 _2.Ai = function G0d() {
135893 return this.a;
135894 };
135895 _2.bj = function H0d() {
135896 return true;
135897 };
135898 _2.cj = function I0d(a, b) {
135899 var c2;
135900 c2 = BD(a, 49);
135901 b = c2.wh(this.a, b);
135902 return b;
135903 };
135904 _2.dj = function J0d(a, b) {
135905 var c2;
135906 c2 = BD(a, 49);
135907 return c2.wh(null, b);
135908 };
135909 _2.ej = function K0d() {
135910 return false;
135911 };
135912 _2.hi = function L0d() {
135913 return true;
135914 };
135915 _2.ri = function M0d(a) {
135916 return KC(m5, Uhe, 56, a, 0, 1);
135917 };
135918 _2.ni = function N0d() {
135919 return false;
135920 };
135921 mdb(rwe, "ResourceImpl/ContentsEList", 648);
135922 bcb(957, 1964, Lie, O0d);
135923 _2.Zc = function P0d(a) {
135924 return this.a._h(a);
135925 };
135926 _2.gc = function Q0d() {
135927 return this.a.gc();
135928 };
135929 mdb(yve, "AbstractSequentialInternalEList/1", 957);
135930 var K6d, L6d, M6d, N6d;
135931 bcb(624, 1, {}, y1d);
135932 var R0d, S0d;
135933 mdb(yve, "BasicExtendedMetaData", 624);
135934 bcb(1160, 1, {}, C1d);
135935 _2.$k = function D1d() {
135936 return null;
135937 };
135938 _2._k = function E1d() {
135939 this.a == -2 && A1d(this, W0d(this.d, this.b));
135940 return this.a;
135941 };
135942 _2.al = function F1d() {
135943 return null;
135944 };
135945 _2.bl = function G1d() {
135946 return mmb(), mmb(), jmb;
135947 };
135948 _2.ne = function H1d() {
135949 this.c == Gwe && B1d(this, _0d(this.d, this.b));
135950 return this.c;
135951 };
135952 _2.cl = function I1d() {
135953 return 0;
135954 };
135955 _2.a = -2;
135956 _2.c = Gwe;
135957 mdb(yve, "BasicExtendedMetaData/EClassExtendedMetaDataImpl", 1160);
135958 bcb(1161, 1, {}, O1d);
135959 _2.$k = function P1d() {
135960 this.a == (T0d(), R0d) && J1d(this, V0d(this.f, this.b));
135961 return this.a;
135962 };
135963 _2._k = function Q1d() {
135964 return 0;
135965 };
135966 _2.al = function R1d() {
135967 this.c == (T0d(), R0d) && K1d(this, Z0d(this.f, this.b));
135968 return this.c;
135969 };
135970 _2.bl = function S1d() {
135971 !this.d && L1d(this, $0d(this.f, this.b));
135972 return this.d;
135973 };
135974 _2.ne = function T1d() {
135975 this.e == Gwe && M1d(this, _0d(this.f, this.b));
135976 return this.e;
135977 };
135978 _2.cl = function U1d() {
135979 this.g == -2 && N1d(this, c1d(this.f, this.b));
135980 return this.g;
135981 };
135982 _2.e = Gwe;
135983 _2.g = -2;
135984 mdb(yve, "BasicExtendedMetaData/EDataTypeExtendedMetaDataImpl", 1161);
135985 bcb(1159, 1, {}, Y1d);
135986 _2.b = false;
135987 _2.c = false;
135988 mdb(yve, "BasicExtendedMetaData/EPackageExtendedMetaDataImpl", 1159);
135989 bcb(1162, 1, {}, j2d);
135990 _2.c = -2;
135991 _2.e = Gwe;
135992 _2.f = Gwe;
135993 mdb(yve, "BasicExtendedMetaData/EStructuralFeatureExtendedMetaDataImpl", 1162);
135994 bcb(585, 622, Pve, k2d);
135995 _2.aj = function l2d() {
135996 return this.c;
135997 };
135998 _2.Fk = function m2d() {
135999 return false;
136000 };
136001 _2.li = function n2d(a, b) {
136002 return b;
136003 };
136004 _2.c = 0;
136005 mdb(yve, "EDataTypeEList", 585);
136006 var O9 = odb(yve, "FeatureMap");
136007 bcb(75, 585, { 3: 1, 4: 1, 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 54: 1, 67: 1, 63: 1, 58: 1, 76: 1, 153: 1, 215: 1, 1937: 1, 69: 1, 95: 1 }, u3d);
136008 _2.Vc = function v3d(a, b) {
136009 o2d(this, a, BD(b, 72));
136010 };
136011 _2.Fc = function w3d(a) {
136012 return r2d(this, BD(a, 72));
136013 };
136014 _2.Yh = function B3d(a) {
136015 w2d(this, BD(a, 72));
136016 };
136017 _2.cj = function M3d(a, b) {
136018 return O2d(this, BD(a, 72), b);
136019 };
136020 _2.dj = function N3d(a, b) {
136021 return Q2d(this, BD(a, 72), b);
136022 };
136023 _2.ii = function P3d(a, b) {
136024 return W2d(this, a, b);
136025 };
136026 _2.li = function R3d(a, b) {
136027 return _2d(this, a, BD(b, 72));
136028 };
136029 _2._c = function T3d(a, b) {
136030 return c3d(this, a, BD(b, 72));
136031 };
136032 _2.jj = function X3d(a, b) {
136033 return i3d(this, BD(a, 72), b);
136034 };
136035 _2.kj = function Y3d(a, b) {
136036 return k3d(this, BD(a, 72), b);
136037 };
136038 _2.lj = function Z3d(a, b, c2) {
136039 return l3d(this, BD(a, 72), BD(b, 72), c2);
136040 };
136041 _2.oi = function _3d(a, b) {
136042 return t3d(this, a, BD(b, 72));
136043 };
136044 _2.dl = function x3d(a, b) {
136045 return q2d(this, a, b);
136046 };
136047 _2.Wc = function y3d(a, b) {
136048 var c2, d, e, f2, g, h, i3, j, k;
136049 j = new zud(b.gc());
136050 for (e = b.Kc(); e.Ob(); ) {
136051 d = BD(e.Pb(), 72);
136052 f2 = d.ak();
136053 if (T6d(this.e, f2)) {
136054 (!f2.hi() || !E2d(this, f2, d.dd()) && !pud(j, d)) && wtd(j, d);
136055 } else {
136056 k = S6d(this.e.Tg(), f2);
136057 c2 = BD(this.g, 119);
136058 g = true;
136059 for (h = 0; h < this.i; ++h) {
136060 i3 = c2[h];
136061 if (k.rl(i3.ak())) {
136062 BD(Gtd(this, h, d), 72);
136063 g = false;
136064 break;
136065 }
136066 }
136067 g && wtd(j, d);
136068 }
136069 }
136070 return xtd(this, a, j);
136071 };
136072 _2.Gc = function z3d(a) {
136073 var b, c2, d, e, f2, g, h, i3, j;
136074 i3 = new zud(a.gc());
136075 for (d = a.Kc(); d.Ob(); ) {
136076 c2 = BD(d.Pb(), 72);
136077 e = c2.ak();
136078 if (T6d(this.e, e)) {
136079 (!e.hi() || !E2d(this, e, c2.dd()) && !pud(i3, c2)) && wtd(i3, c2);
136080 } else {
136081 j = S6d(this.e.Tg(), e);
136082 b = BD(this.g, 119);
136083 f2 = true;
136084 for (g = 0; g < this.i; ++g) {
136085 h = b[g];
136086 if (j.rl(h.ak())) {
136087 BD(Gtd(this, g, c2), 72);
136088 f2 = false;
136089 break;
136090 }
136091 }
136092 f2 && wtd(i3, c2);
136093 }
136094 }
136095 return ytd(this, i3);
136096 };
136097 _2.Wh = function A3d(a) {
136098 this.j = -1;
136099 return Pxd(this, this.i, a);
136100 };
136101 _2.el = function C3d(a, b, c2) {
136102 return x2d(this, a, b, c2);
136103 };
136104 _2.mk = function D3d(a, b) {
136105 return B2d(this, a, b);
136106 };
136107 _2.fl = function E3d(a, b, c2) {
136108 return C2d(this, a, b, c2);
136109 };
136110 _2.gl = function F3d() {
136111 return this;
136112 };
136113 _2.hl = function G3d(a, b) {
136114 return K2d(this, a, b);
136115 };
136116 _2.il = function H3d(a) {
136117 return BD(qud(this, a), 72).ak();
136118 };
136119 _2.jl = function I3d(a) {
136120 return BD(qud(this, a), 72).dd();
136121 };
136122 _2.kl = function J3d() {
136123 return this.b;
136124 };
136125 _2.bj = function K3d() {
136126 return true;
136127 };
136128 _2.ij = function L3d() {
136129 return true;
136130 };
136131 _2.ll = function O3d(a) {
136132 return !R2d(this, a);
136133 };
136134 _2.ri = function Q3d(a) {
136135 return KC(D9, owe, 332, a, 0, 1);
136136 };
136137 _2.Gk = function S3d(a) {
136138 return a3d(this, a);
136139 };
136140 _2.Wb = function U3d(a) {
136141 d3d(this, a);
136142 };
136143 _2.ml = function V3d(a, b) {
136144 f3d(this, a, b);
136145 };
136146 _2.nl = function W3d(a) {
136147 return g3d(this, a);
136148 };
136149 _2.ol = function $3d(a) {
136150 s3d(this, a);
136151 };
136152 mdb(yve, "BasicFeatureMap", 75);
136153 bcb(1851, 1, jie);
136154 _2.Nb = function f4d(a) {
136155 Rrb(this, a);
136156 };
136157 _2.Rb = function e4d(b) {
136158 if (this.g == -1) {
136159 throw vbb(new Ydb());
136160 }
136161 a4d(this);
136162 try {
136163 p2d(this.e, this.b, this.a, b);
136164 this.d = this.e.j;
136165 d4d(this);
136166 } catch (a) {
136167 a = ubb(a);
136168 if (JD(a, 73)) {
136169 throw vbb(new Apb());
136170 } else
136171 throw vbb(a);
136172 }
136173 };
136174 _2.Ob = function g4d() {
136175 return b4d(this);
136176 };
136177 _2.Sb = function h4d() {
136178 return c4d(this);
136179 };
136180 _2.Pb = function i4d() {
136181 return d4d(this);
136182 };
136183 _2.Tb = function j4d() {
136184 return this.a;
136185 };
136186 _2.Ub = function k4d() {
136187 var a;
136188 if (c4d(this)) {
136189 a4d(this);
136190 this.g = --this.a;
136191 if (this.Lk()) {
136192 a = b3d(this.e, this.b, this.c, this.a, this.j);
136193 this.j = a;
136194 }
136195 this.i = 0;
136196 return this.j;
136197 } else {
136198 throw vbb(new utb());
136199 }
136200 };
136201 _2.Vb = function l4d() {
136202 return this.a - 1;
136203 };
136204 _2.Qb = function m4d() {
136205 if (this.g == -1) {
136206 throw vbb(new Ydb());
136207 }
136208 a4d(this);
136209 try {
136210 Z2d(this.e, this.b, this.g);
136211 this.d = this.e.j;
136212 if (this.g < this.a) {
136213 --this.a;
136214 --this.c;
136215 }
136216 --this.g;
136217 } catch (a) {
136218 a = ubb(a);
136219 if (JD(a, 73)) {
136220 throw vbb(new Apb());
136221 } else
136222 throw vbb(a);
136223 }
136224 };
136225 _2.Lk = function n4d() {
136226 return false;
136227 };
136228 _2.Wb = function o4d(b) {
136229 if (this.g == -1) {
136230 throw vbb(new Ydb());
136231 }
136232 a4d(this);
136233 try {
136234 e3d(this.e, this.b, this.g, b);
136235 this.d = this.e.j;
136236 } catch (a) {
136237 a = ubb(a);
136238 if (JD(a, 73)) {
136239 throw vbb(new Apb());
136240 } else
136241 throw vbb(a);
136242 }
136243 };
136244 _2.a = 0;
136245 _2.c = 0;
136246 _2.d = 0;
136247 _2.f = false;
136248 _2.g = 0;
136249 _2.i = 0;
136250 mdb(yve, "FeatureMapUtil/BasicFeatureEIterator", 1851);
136251 bcb(410, 1851, jie, p4d);
136252 _2.pl = function q4d() {
136253 var a, b, c2;
136254 c2 = this.e.i;
136255 a = BD(this.e.g, 119);
136256 while (this.c < c2) {
136257 b = a[this.c];
136258 if (this.k.rl(b.ak())) {
136259 this.j = this.f ? b : b.dd();
136260 this.i = 2;
136261 return true;
136262 }
136263 ++this.c;
136264 }
136265 this.i = 1;
136266 this.g = -1;
136267 return false;
136268 };
136269 _2.ql = function r4d() {
136270 var a, b;
136271 a = BD(this.e.g, 119);
136272 while (--this.c >= 0) {
136273 b = a[this.c];
136274 if (this.k.rl(b.ak())) {
136275 this.j = this.f ? b : b.dd();
136276 this.i = -2;
136277 return true;
136278 }
136279 }
136280 this.i = -1;
136281 this.g = -1;
136282 return false;
136283 };
136284 mdb(yve, "BasicFeatureMap/FeatureEIterator", 410);
136285 bcb(662, 410, jie, s4d);
136286 _2.Lk = function t4d() {
136287 return true;
136288 };
136289 mdb(yve, "BasicFeatureMap/ResolvingFeatureEIterator", 662);
136290 bcb(955, 486, Vve, u4d);
136291 _2.Gi = function v4d() {
136292 return this;
136293 };
136294 mdb(yve, "EContentsEList/1", 955);
136295 bcb(956, 486, Vve, w4d);
136296 _2.Lk = function x4d() {
136297 return false;
136298 };
136299 mdb(yve, "EContentsEList/2", 956);
136300 bcb(954, 279, Wve, y4d);
136301 _2.Nk = function z4d(a) {
136302 };
136303 _2.Ob = function A4d() {
136304 return false;
136305 };
136306 _2.Sb = function B4d() {
136307 return false;
136308 };
136309 mdb(yve, "EContentsEList/FeatureIteratorImpl/1", 954);
136310 bcb(825, 585, Pve, C4d);
136311 _2.ci = function D4d() {
136312 this.a = true;
136313 };
136314 _2.fj = function E4d() {
136315 return this.a;
136316 };
136317 _2.Xj = function F4d() {
136318 var a;
136319 Uxd(this);
136320 if (oid(this.e)) {
136321 a = this.a;
136322 this.a = false;
136323 Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
136324 } else {
136325 this.a = false;
136326 }
136327 };
136328 _2.a = false;
136329 mdb(yve, "EDataTypeEList/Unsettable", 825);
136330 bcb(1849, 585, Pve, G4d);
136331 _2.hi = function H4d() {
136332 return true;
136333 };
136334 mdb(yve, "EDataTypeUniqueEList", 1849);
136335 bcb(1850, 825, Pve, I4d);
136336 _2.hi = function J4d() {
136337 return true;
136338 };
136339 mdb(yve, "EDataTypeUniqueEList/Unsettable", 1850);
136340 bcb(139, 85, Pve, K4d);
136341 _2.Ek = function L4d() {
136342 return true;
136343 };
136344 _2.li = function M4d(a, b) {
136345 return ILd(this, a, BD(b, 56));
136346 };
136347 mdb(yve, "EObjectContainmentEList/Resolving", 139);
136348 bcb(1163, 545, Pve, N4d);
136349 _2.Ek = function O4d() {
136350 return true;
136351 };
136352 _2.li = function P4d(a, b) {
136353 return ILd(this, a, BD(b, 56));
136354 };
136355 mdb(yve, "EObjectContainmentEList/Unsettable/Resolving", 1163);
136356 bcb(748, 16, Pve, Q4d);
136357 _2.ci = function R4d() {
136358 this.a = true;
136359 };
136360 _2.fj = function S4d() {
136361 return this.a;
136362 };
136363 _2.Xj = function T4d() {
136364 var a;
136365 Uxd(this);
136366 if (oid(this.e)) {
136367 a = this.a;
136368 this.a = false;
136369 Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
136370 } else {
136371 this.a = false;
136372 }
136373 };
136374 _2.a = false;
136375 mdb(yve, "EObjectContainmentWithInverseEList/Unsettable", 748);
136376 bcb(1173, 748, Pve, U4d);
136377 _2.Ek = function V4d() {
136378 return true;
136379 };
136380 _2.li = function W4d(a, b) {
136381 return ILd(this, a, BD(b, 56));
136382 };
136383 mdb(yve, "EObjectContainmentWithInverseEList/Unsettable/Resolving", 1173);
136384 bcb(743, 496, Pve, X4d);
136385 _2.ci = function Y4d() {
136386 this.a = true;
136387 };
136388 _2.fj = function Z4d() {
136389 return this.a;
136390 };
136391 _2.Xj = function $4d() {
136392 var a;
136393 Uxd(this);
136394 if (oid(this.e)) {
136395 a = this.a;
136396 this.a = false;
136397 Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
136398 } else {
136399 this.a = false;
136400 }
136401 };
136402 _2.a = false;
136403 mdb(yve, "EObjectEList/Unsettable", 743);
136404 bcb(328, 496, Pve, _4d);
136405 _2.Ek = function a5d() {
136406 return true;
136407 };
136408 _2.li = function b5d(a, b) {
136409 return ILd(this, a, BD(b, 56));
136410 };
136411 mdb(yve, "EObjectResolvingEList", 328);
136412 bcb(1641, 743, Pve, c5d);
136413 _2.Ek = function d5d() {
136414 return true;
136415 };
136416 _2.li = function e5d(a, b) {
136417 return ILd(this, a, BD(b, 56));
136418 };
136419 mdb(yve, "EObjectResolvingEList/Unsettable", 1641);
136420 bcb(1381, 1, {}, h5d);
136421 var f5d;
136422 mdb(yve, "EObjectValidator", 1381);
136423 bcb(546, 496, Pve, i5d);
136424 _2.zk = function j5d() {
136425 return this.d;
136426 };
136427 _2.Ak = function k5d() {
136428 return this.b;
136429 };
136430 _2.bj = function l5d() {
136431 return true;
136432 };
136433 _2.Dk = function m5d() {
136434 return true;
136435 };
136436 _2.b = 0;
136437 mdb(yve, "EObjectWithInverseEList", 546);
136438 bcb(1176, 546, Pve, n5d);
136439 _2.Ck = function o5d() {
136440 return true;
136441 };
136442 mdb(yve, "EObjectWithInverseEList/ManyInverse", 1176);
136443 bcb(625, 546, Pve, p5d);
136444 _2.ci = function q5d() {
136445 this.a = true;
136446 };
136447 _2.fj = function r5d() {
136448 return this.a;
136449 };
136450 _2.Xj = function s5d() {
136451 var a;
136452 Uxd(this);
136453 if (oid(this.e)) {
136454 a = this.a;
136455 this.a = false;
136456 Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
136457 } else {
136458 this.a = false;
136459 }
136460 };
136461 _2.a = false;
136462 mdb(yve, "EObjectWithInverseEList/Unsettable", 625);
136463 bcb(1175, 625, Pve, t5d);
136464 _2.Ck = function u5d() {
136465 return true;
136466 };
136467 mdb(yve, "EObjectWithInverseEList/Unsettable/ManyInverse", 1175);
136468 bcb(749, 546, Pve, v5d);
136469 _2.Ek = function w5d() {
136470 return true;
136471 };
136472 _2.li = function x5d(a, b) {
136473 return ILd(this, a, BD(b, 56));
136474 };
136475 mdb(yve, "EObjectWithInverseResolvingEList", 749);
136476 bcb(31, 749, Pve, y5d);
136477 _2.Ck = function z5d() {
136478 return true;
136479 };
136480 mdb(yve, "EObjectWithInverseResolvingEList/ManyInverse", 31);
136481 bcb(750, 625, Pve, A5d);
136482 _2.Ek = function B5d() {
136483 return true;
136484 };
136485 _2.li = function C5d(a, b) {
136486 return ILd(this, a, BD(b, 56));
136487 };
136488 mdb(yve, "EObjectWithInverseResolvingEList/Unsettable", 750);
136489 bcb(1174, 750, Pve, D5d);
136490 _2.Ck = function E5d() {
136491 return true;
136492 };
136493 mdb(yve, "EObjectWithInverseResolvingEList/Unsettable/ManyInverse", 1174);
136494 bcb(1164, 622, Pve);
136495 _2.ai = function F5d() {
136496 return (this.b & 1792) == 0;
136497 };
136498 _2.ci = function G5d() {
136499 this.b |= 1;
136500 };
136501 _2.Bk = function H5d() {
136502 return (this.b & 4) != 0;
136503 };
136504 _2.bj = function I5d() {
136505 return (this.b & 40) != 0;
136506 };
136507 _2.Ck = function J5d() {
136508 return (this.b & 16) != 0;
136509 };
136510 _2.Dk = function K5d() {
136511 return (this.b & 8) != 0;
136512 };
136513 _2.Ek = function L5d() {
136514 return (this.b & Dve) != 0;
136515 };
136516 _2.rk = function M5d() {
136517 return (this.b & 32) != 0;
136518 };
136519 _2.Fk = function N5d() {
136520 return (this.b & zte) != 0;
136521 };
136522 _2.wj = function O5d(a) {
136523 return !this.d ? this.ak().Yj().wj(a) : qEd(this.d, a);
136524 };
136525 _2.fj = function P5d() {
136526 return (this.b & 2) != 0 ? (this.b & 1) != 0 : this.i != 0;
136527 };
136528 _2.hi = function Q5d() {
136529 return (this.b & 128) != 0;
136530 };
136531 _2.Xj = function S5d() {
136532 var a;
136533 Uxd(this);
136534 if ((this.b & 2) != 0) {
136535 if (oid(this.e)) {
136536 a = (this.b & 1) != 0;
136537 this.b &= -2;
136538 GLd(this, new qSd(this.e, 2, bLd(this.e.Tg(), this.ak()), a, false));
136539 } else {
136540 this.b &= -2;
136541 }
136542 }
136543 };
136544 _2.ni = function T5d() {
136545 return (this.b & 1536) == 0;
136546 };
136547 _2.b = 0;
136548 mdb(yve, "EcoreEList/Generic", 1164);
136549 bcb(1165, 1164, Pve, U5d);
136550 _2.ak = function V5d() {
136551 return this.a;
136552 };
136553 mdb(yve, "EcoreEList/Dynamic", 1165);
136554 bcb(747, 63, oue, W5d);
136555 _2.ri = function X5d(a) {
136556 return izd(this.a.a, a);
136557 };
136558 mdb(yve, "EcoreEMap/1", 747);
136559 bcb(746, 85, Pve, Y5d);
136560 _2.bi = function Z5d(a, b) {
136561 uAd(this.b, BD(b, 133));
136562 };
136563 _2.di = function $5d(a, b) {
136564 tAd(this.b);
136565 };
136566 _2.ei = function _5d(a, b, c2) {
136567 var d;
136568 ++(d = this.b, BD(b, 133), d).e;
136569 };
136570 _2.fi = function a6d(a, b) {
136571 vAd(this.b, BD(b, 133));
136572 };
136573 _2.gi = function b6d(a, b, c2) {
136574 vAd(this.b, BD(c2, 133));
136575 PD(c2) === PD(b) && BD(c2, 133).Th(CAd(BD(b, 133).cd()));
136576 uAd(this.b, BD(b, 133));
136577 };
136578 mdb(yve, "EcoreEMap/DelegateEObjectContainmentEList", 746);
136579 bcb(1171, 151, Ave, c6d);
136580 mdb(yve, "EcoreEMap/Unsettable", 1171);
136581 bcb(1172, 746, Pve, d6d);
136582 _2.ci = function e6d() {
136583 this.a = true;
136584 };
136585 _2.fj = function f6d() {
136586 return this.a;
136587 };
136588 _2.Xj = function g6d() {
136589 var a;
136590 Uxd(this);
136591 if (oid(this.e)) {
136592 a = this.a;
136593 this.a = false;
136594 Uhd(this.e, new qSd(this.e, 2, this.c, a, false));
136595 } else {
136596 this.a = false;
136597 }
136598 };
136599 _2.a = false;
136600 mdb(yve, "EcoreEMap/Unsettable/UnsettableDelegateEObjectContainmentEList", 1172);
136601 bcb(1168, 228, fke, A6d);
136602 _2.a = false;
136603 _2.b = false;
136604 mdb(yve, "EcoreUtil/Copier", 1168);
136605 bcb(745, 1, aie, C6d);
136606 _2.Nb = function D6d(a) {
136607 Rrb(this, a);
136608 };
136609 _2.Ob = function E6d() {
136610 return B6d(this);
136611 };
136612 _2.Pb = function F6d() {
136613 var a;
136614 B6d(this);
136615 a = this.b;
136616 this.b = null;
136617 return a;
136618 };
136619 _2.Qb = function G6d() {
136620 this.a.Qb();
136621 };
136622 mdb(yve, "EcoreUtil/ProperContentIterator", 745);
136623 bcb(1382, 1381, {}, J6d);
136624 var H6d;
136625 mdb(yve, "EcoreValidator", 1382);
136626 var P6d;
136627 odb(yve, "FeatureMapUtil/Validator");
136628 bcb(1260, 1, { 1942: 1 }, U6d);
136629 _2.rl = function V6d(a) {
136630 return true;
136631 };
136632 mdb(yve, "FeatureMapUtil/1", 1260);
136633 bcb(757, 1, { 1942: 1 }, Z6d);
136634 _2.rl = function $6d(a) {
136635 var b;
136636 if (this.c == a)
136637 return true;
136638 b = DD(Ohb(this.a, a));
136639 if (b == null) {
136640 if (Y6d(this, a)) {
136641 _6d(this.a, a, (Bcb(), Acb));
136642 return true;
136643 } else {
136644 _6d(this.a, a, (Bcb(), zcb));
136645 return false;
136646 }
136647 } else {
136648 return b == (Bcb(), Acb);
136649 }
136650 };
136651 _2.e = false;
136652 var W6d;
136653 mdb(yve, "FeatureMapUtil/BasicValidator", 757);
136654 bcb(758, 43, fke, a7d);
136655 mdb(yve, "FeatureMapUtil/BasicValidator/Cache", 758);
136656 bcb(501, 52, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 76: 1, 69: 1, 95: 1 }, f7d);
136657 _2.Vc = function g7d(a, b) {
136658 p2d(this.c, this.b, a, b);
136659 };
136660 _2.Fc = function h7d(a) {
136661 return q2d(this.c, this.b, a);
136662 };
136663 _2.Wc = function i7d(a, b) {
136664 return s2d(this.c, this.b, a, b);
136665 };
136666 _2.Gc = function j7d(a) {
136667 return b7d(this, a);
136668 };
136669 _2.Xh = function k7d(a, b) {
136670 u2d(this.c, this.b, a, b);
136671 };
136672 _2.lk = function l7d(a, b) {
136673 return x2d(this.c, this.b, a, b);
136674 };
136675 _2.pi = function m7d(a) {
136676 return J2d(this.c, this.b, a, false);
136677 };
136678 _2.Zh = function n7d() {
136679 return y2d(this.c, this.b);
136680 };
136681 _2.$h = function o7d() {
136682 return z2d(this.c, this.b);
136683 };
136684 _2._h = function p7d(a) {
136685 return A2d(this.c, this.b, a);
136686 };
136687 _2.mk = function q7d(a, b) {
136688 return c7d(this, a, b);
136689 };
136690 _2.$b = function r7d() {
136691 d7d(this);
136692 };
136693 _2.Hc = function s7d(a) {
136694 return E2d(this.c, this.b, a);
136695 };
136696 _2.Ic = function t7d(a) {
136697 return G2d(this.c, this.b, a);
136698 };
136699 _2.Xb = function u7d(a) {
136700 return J2d(this.c, this.b, a, true);
136701 };
136702 _2.Wj = function v7d(a) {
136703 return this;
136704 };
136705 _2.Xc = function w7d(a) {
136706 return L2d(this.c, this.b, a);
136707 };
136708 _2.dc = function x7d() {
136709 return e7d(this);
136710 };
136711 _2.fj = function y7d() {
136712 return !R2d(this.c, this.b);
136713 };
136714 _2.Kc = function z7d() {
136715 return S2d(this.c, this.b);
136716 };
136717 _2.Yc = function A7d() {
136718 return U2d(this.c, this.b);
136719 };
136720 _2.Zc = function B7d(a) {
136721 return V2d(this.c, this.b, a);
136722 };
136723 _2.ii = function C7d(a, b) {
136724 return X2d(this.c, this.b, a, b);
136725 };
136726 _2.ji = function D7d(a, b) {
136727 Y2d(this.c, this.b, a, b);
136728 };
136729 _2.$c = function E7d(a) {
136730 return Z2d(this.c, this.b, a);
136731 };
136732 _2.Mc = function F7d(a) {
136733 return $2d(this.c, this.b, a);
136734 };
136735 _2._c = function G7d(a, b) {
136736 return e3d(this.c, this.b, a, b);
136737 };
136738 _2.Wb = function H7d(a) {
136739 D2d(this.c, this.b);
136740 b7d(this, BD(a, 15));
136741 };
136742 _2.gc = function I7d() {
136743 return n3d(this.c, this.b);
136744 };
136745 _2.Pc = function J7d() {
136746 return o3d(this.c, this.b);
136747 };
136748 _2.Qc = function K7d(a) {
136749 return q3d(this.c, this.b, a);
136750 };
136751 _2.Ib = function L7d() {
136752 var a, b;
136753 b = new Hfb();
136754 b.a += "[";
136755 for (a = y2d(this.c, this.b); b4d(a); ) {
136756 Efb(b, xfb(d4d(a)));
136757 b4d(a) && (b.a += She, b);
136758 }
136759 b.a += "]";
136760 return b.a;
136761 };
136762 _2.Xj = function M7d() {
136763 D2d(this.c, this.b);
136764 };
136765 mdb(yve, "FeatureMapUtil/FeatureEList", 501);
136766 bcb(627, 36, fve, O7d);
136767 _2.yi = function P7d(a) {
136768 return N7d(this, a);
136769 };
136770 _2.Di = function Q7d(a) {
136771 var b, c2, d, e, f2, g, h;
136772 switch (this.d) {
136773 case 1:
136774 case 2: {
136775 f2 = a.Ai();
136776 if (PD(f2) === PD(this.c) && N7d(this, null) == a.yi(null)) {
136777 this.g = a.zi();
136778 a.xi() == 1 && (this.d = 1);
136779 return true;
136780 }
136781 break;
136782 }
136783 case 3: {
136784 e = a.xi();
136785 switch (e) {
136786 case 3: {
136787 f2 = a.Ai();
136788 if (PD(f2) === PD(this.c) && N7d(this, null) == a.yi(null)) {
136789 this.d = 5;
136790 b = new zud(2);
136791 wtd(b, this.g);
136792 wtd(b, a.zi());
136793 this.g = b;
136794 return true;
136795 }
136796 break;
136797 }
136798 }
136799 break;
136800 }
136801 case 5: {
136802 e = a.xi();
136803 switch (e) {
136804 case 3: {
136805 f2 = a.Ai();
136806 if (PD(f2) === PD(this.c) && N7d(this, null) == a.yi(null)) {
136807 c2 = BD(this.g, 14);
136808 c2.Fc(a.zi());
136809 return true;
136810 }
136811 break;
136812 }
136813 }
136814 break;
136815 }
136816 case 4: {
136817 e = a.xi();
136818 switch (e) {
136819 case 3: {
136820 f2 = a.Ai();
136821 if (PD(f2) === PD(this.c) && N7d(this, null) == a.yi(null)) {
136822 this.d = 1;
136823 this.g = a.zi();
136824 return true;
136825 }
136826 break;
136827 }
136828 case 4: {
136829 f2 = a.Ai();
136830 if (PD(f2) === PD(this.c) && N7d(this, null) == a.yi(null)) {
136831 this.d = 6;
136832 h = new zud(2);
136833 wtd(h, this.n);
136834 wtd(h, a.Bi());
136835 this.n = h;
136836 g = OC(GC(WD, 1), oje, 25, 15, [this.o, a.Ci()]);
136837 this.g = g;
136838 return true;
136839 }
136840 break;
136841 }
136842 }
136843 break;
136844 }
136845 case 6: {
136846 e = a.xi();
136847 switch (e) {
136848 case 4: {
136849 f2 = a.Ai();
136850 if (PD(f2) === PD(this.c) && N7d(this, null) == a.yi(null)) {
136851 c2 = BD(this.n, 14);
136852 c2.Fc(a.Bi());
136853 g = BD(this.g, 48);
136854 d = KC(WD, oje, 25, g.length + 1, 15, 1);
136855 $fb(g, 0, d, 0, g.length);
136856 d[g.length] = a.Ci();
136857 this.g = d;
136858 return true;
136859 }
136860 break;
136861 }
136862 }
136863 break;
136864 }
136865 }
136866 return false;
136867 };
136868 mdb(yve, "FeatureMapUtil/FeatureENotificationImpl", 627);
136869 bcb(552, 501, { 20: 1, 28: 1, 52: 1, 14: 1, 15: 1, 58: 1, 76: 1, 153: 1, 215: 1, 1937: 1, 69: 1, 95: 1 }, R7d);
136870 _2.dl = function S7d(a, b) {
136871 return q2d(this.c, a, b);
136872 };
136873 _2.el = function T7d(a, b, c2) {
136874 return x2d(this.c, a, b, c2);
136875 };
136876 _2.fl = function U7d(a, b, c2) {
136877 return C2d(this.c, a, b, c2);
136878 };
136879 _2.gl = function V7d() {
136880 return this;
136881 };
136882 _2.hl = function W7d(a, b) {
136883 return K2d(this.c, a, b);
136884 };
136885 _2.il = function X7d(a) {
136886 return BD(J2d(this.c, this.b, a, false), 72).ak();
136887 };
136888 _2.jl = function Y7d(a) {
136889 return BD(J2d(this.c, this.b, a, false), 72).dd();
136890 };
136891 _2.kl = function Z7d() {
136892 return this.a;
136893 };
136894 _2.ll = function $7d(a) {
136895 return !R2d(this.c, a);
136896 };
136897 _2.ml = function _7d(a, b) {
136898 f3d(this.c, a, b);
136899 };
136900 _2.nl = function a8d(a) {
136901 return g3d(this.c, a);
136902 };
136903 _2.ol = function b8d(a) {
136904 s3d(this.c, a);
136905 };
136906 mdb(yve, "FeatureMapUtil/FeatureFeatureMap", 552);
136907 bcb(1259, 1, zve, c8d);
136908 _2.Wj = function d8d(a) {
136909 return J2d(this.b, this.a, -1, a);
136910 };
136911 _2.fj = function e8d() {
136912 return !R2d(this.b, this.a);
136913 };
136914 _2.Wb = function f8d(a) {
136915 f3d(this.b, this.a, a);
136916 };
136917 _2.Xj = function g8d() {
136918 D2d(this.b, this.a);
136919 };
136920 mdb(yve, "FeatureMapUtil/FeatureValue", 1259);
136921 var h8d, i8d, j8d, k8d, l8d;
136922 var Q9 = odb(Iwe, "AnyType");
136923 bcb(666, 60, Tie, n8d);
136924 mdb(Iwe, "InvalidDatatypeValueException", 666);
136925 var S9 = odb(Iwe, Jwe);
136926 var T9 = odb(Iwe, Kwe);
136927 var U9 = odb(Iwe, Lwe);
136928 var o8d;
136929 var q8d;
136930 var s8d, t8d, u8d, v8d, w8d, x8d, y8d, z8d, A8d, B8d, C8d, D8d, E8d, F8d, G8d, H8d, I8d, J8d, K8d, L8d, M8d, N8d, O8d, P8d;
136931 bcb(830, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 843: 1 }, R8d);
136932 _2._g = function S8d(a, b, c2) {
136933 switch (a) {
136934 case 0:
136935 if (c2)
136936 return !this.c && (this.c = new u3d(this, 0)), this.c;
136937 return !this.c && (this.c = new u3d(this, 0)), this.c.b;
136938 case 1:
136939 if (c2)
136940 return !this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153);
136941 return (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).kl();
136942 case 2:
136943 if (c2)
136944 return !this.b && (this.b = new u3d(this, 2)), this.b;
136945 return !this.b && (this.b = new u3d(this, 2)), this.b.b;
136946 }
136947 return bid(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c2);
136948 };
136949 _2.jh = function T8d(a, b, c2) {
136950 var d;
136951 switch (b) {
136952 case 0:
136953 return !this.c && (this.c = new u3d(this, 0)), B2d(this.c, a, c2);
136954 case 1:
136955 return (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 69)).mk(a, c2);
136956 case 2:
136957 return !this.b && (this.b = new u3d(this, 2)), B2d(this.b, a, c2);
136958 }
136959 return d = BD(XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), b), 66), d.Nj().Rj(this, Aid(this), b - aLd(this.zh()), a, c2);
136960 };
136961 _2.lh = function U8d(a) {
136962 switch (a) {
136963 case 0:
136964 return !!this.c && this.c.i != 0;
136965 case 1:
136966 return !(!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).dc();
136967 case 2:
136968 return !!this.b && this.b.i != 0;
136969 }
136970 return cid(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a));
136971 };
136972 _2.sh = function V8d(a, b) {
136973 switch (a) {
136974 case 0:
136975 !this.c && (this.c = new u3d(this, 0));
136976 d3d(this.c, b);
136977 return;
136978 case 1:
136979 (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).Wb(b);
136980 return;
136981 case 2:
136982 !this.b && (this.b = new u3d(this, 2));
136983 d3d(this.b, b);
136984 return;
136985 }
136986 did(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a), b);
136987 };
136988 _2.zh = function W8d() {
136989 return Q8d(), s8d;
136990 };
136991 _2.Bh = function X8d(a) {
136992 switch (a) {
136993 case 0:
136994 !this.c && (this.c = new u3d(this, 0));
136995 Uxd(this.c);
136996 return;
136997 case 1:
136998 (!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).$b();
136999 return;
137000 case 2:
137001 !this.b && (this.b = new u3d(this, 2));
137002 Uxd(this.b);
137003 return;
137004 }
137005 eid(this, a - aLd(this.zh()), XKd((this.j & 2) == 0 ? this.zh() : (!this.k && (this.k = new HGd()), this.k).ck(), a));
137006 };
137007 _2.Ib = function Y8d() {
137008 var a;
137009 if ((this.j & 4) != 0)
137010 return Eid(this);
137011 a = new Jfb(Eid(this));
137012 a.a += " (mixed: ";
137013 Dfb(a, this.c);
137014 a.a += ", anyAttribute: ";
137015 Dfb(a, this.b);
137016 a.a += ")";
137017 return a.a;
137018 };
137019 mdb(Mwe, "AnyTypeImpl", 830);
137020 bcb(667, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 2021: 1, 667: 1 }, _8d);
137021 _2._g = function a9d(a, b, c2) {
137022 switch (a) {
137023 case 0:
137024 return this.a;
137025 case 1:
137026 return this.b;
137027 }
137028 return bid(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c2);
137029 };
137030 _2.lh = function b9d(a) {
137031 switch (a) {
137032 case 0:
137033 return this.a != null;
137034 case 1:
137035 return this.b != null;
137036 }
137037 return cid(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
137038 };
137039 _2.sh = function c9d(a, b) {
137040 switch (a) {
137041 case 0:
137042 Z8d(this, GD(b));
137043 return;
137044 case 1:
137045 $8d(this, GD(b));
137046 return;
137047 }
137048 did(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b);
137049 };
137050 _2.zh = function d9d() {
137051 return Q8d(), F8d;
137052 };
137053 _2.Bh = function e9d(a) {
137054 switch (a) {
137055 case 0:
137056 this.a = null;
137057 return;
137058 case 1:
137059 this.b = null;
137060 return;
137061 }
137062 eid(this, a - aLd((Q8d(), F8d)), XKd((this.j & 2) == 0 ? F8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
137063 };
137064 _2.Ib = function f9d() {
137065 var a;
137066 if ((this.j & 4) != 0)
137067 return Eid(this);
137068 a = new Jfb(Eid(this));
137069 a.a += " (data: ";
137070 Efb(a, this.a);
137071 a.a += ", target: ";
137072 Efb(a, this.b);
137073 a.a += ")";
137074 return a.a;
137075 };
137076 _2.a = null;
137077 _2.b = null;
137078 mdb(Mwe, "ProcessingInstructionImpl", 667);
137079 bcb(668, 830, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 843: 1, 2022: 1, 668: 1 }, i9d);
137080 _2._g = function j9d(a, b, c2) {
137081 switch (a) {
137082 case 0:
137083 if (c2)
137084 return !this.c && (this.c = new u3d(this, 0)), this.c;
137085 return !this.c && (this.c = new u3d(this, 0)), this.c.b;
137086 case 1:
137087 if (c2)
137088 return !this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153);
137089 return (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).kl();
137090 case 2:
137091 if (c2)
137092 return !this.b && (this.b = new u3d(this, 2)), this.b;
137093 return !this.b && (this.b = new u3d(this, 2)), this.b.b;
137094 case 3:
137095 return !this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true));
137096 case 4:
137097 return j6d(this.a, (!this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true))));
137098 case 5:
137099 return this.a;
137100 }
137101 return bid(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c2);
137102 };
137103 _2.lh = function k9d(a) {
137104 switch (a) {
137105 case 0:
137106 return !!this.c && this.c.i != 0;
137107 case 1:
137108 return !(!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).dc();
137109 case 2:
137110 return !!this.b && this.b.i != 0;
137111 case 3:
137112 return !this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true)) != null;
137113 case 4:
137114 return j6d(this.a, (!this.c && (this.c = new u3d(this, 0)), GD(K2d(this.c, (Q8d(), I8d), true)))) != null;
137115 case 5:
137116 return !!this.a;
137117 }
137118 return cid(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
137119 };
137120 _2.sh = function l9d(a, b) {
137121 switch (a) {
137122 case 0:
137123 !this.c && (this.c = new u3d(this, 0));
137124 d3d(this.c, b);
137125 return;
137126 case 1:
137127 (!this.c && (this.c = new u3d(this, 0)), BD(BD(T2d(this.c, (Q8d(), t8d)), 153), 215)).Wb(b);
137128 return;
137129 case 2:
137130 !this.b && (this.b = new u3d(this, 2));
137131 d3d(this.b, b);
137132 return;
137133 case 3:
137134 h9d(this, GD(b));
137135 return;
137136 case 4:
137137 h9d(this, h6d(this.a, b));
137138 return;
137139 case 5:
137140 g9d(this, BD(b, 148));
137141 return;
137142 }
137143 did(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b);
137144 };
137145 _2.zh = function m9d() {
137146 return Q8d(), H8d;
137147 };
137148 _2.Bh = function n9d(a) {
137149 switch (a) {
137150 case 0:
137151 !this.c && (this.c = new u3d(this, 0));
137152 Uxd(this.c);
137153 return;
137154 case 1:
137155 (!this.c && (this.c = new u3d(this, 0)), BD(T2d(this.c, (Q8d(), t8d)), 153)).$b();
137156 return;
137157 case 2:
137158 !this.b && (this.b = new u3d(this, 2));
137159 Uxd(this.b);
137160 return;
137161 case 3:
137162 !this.c && (this.c = new u3d(this, 0));
137163 f3d(this.c, (Q8d(), I8d), null);
137164 return;
137165 case 4:
137166 h9d(this, h6d(this.a, null));
137167 return;
137168 case 5:
137169 this.a = null;
137170 return;
137171 }
137172 eid(this, a - aLd((Q8d(), H8d)), XKd((this.j & 2) == 0 ? H8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
137173 };
137174 mdb(Mwe, "SimpleAnyTypeImpl", 668);
137175 bcb(669, 506, { 105: 1, 92: 1, 90: 1, 56: 1, 49: 1, 97: 1, 2023: 1, 669: 1 }, o9d);
137176 _2._g = function p9d(a, b, c2) {
137177 switch (a) {
137178 case 0:
137179 if (c2)
137180 return !this.a && (this.a = new u3d(this, 0)), this.a;
137181 return !this.a && (this.a = new u3d(this, 0)), this.a.b;
137182 case 1:
137183 return c2 ? (!this.b && (this.b = new dId((jGd(), fGd), x6, this, 1)), this.b) : (!this.b && (this.b = new dId((jGd(), fGd), x6, this, 1)), FAd(this.b));
137184 case 2:
137185 return c2 ? (!this.c && (this.c = new dId((jGd(), fGd), x6, this, 2)), this.c) : (!this.c && (this.c = new dId((jGd(), fGd), x6, this, 2)), FAd(this.c));
137186 case 3:
137187 return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), L8d));
137188 case 4:
137189 return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), M8d));
137190 case 5:
137191 return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), O8d));
137192 case 6:
137193 return !this.a && (this.a = new u3d(this, 0)), T2d(this.a, (Q8d(), P8d));
137194 }
137195 return bid(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b, c2);
137196 };
137197 _2.jh = function q9d(a, b, c2) {
137198 var d;
137199 switch (b) {
137200 case 0:
137201 return !this.a && (this.a = new u3d(this, 0)), B2d(this.a, a, c2);
137202 case 1:
137203 return !this.b && (this.b = new dId((jGd(), fGd), x6, this, 1)), bId(this.b, a, c2);
137204 case 2:
137205 return !this.c && (this.c = new dId((jGd(), fGd), x6, this, 2)), bId(this.c, a, c2);
137206 case 5:
137207 return !this.a && (this.a = new u3d(this, 0)), c7d(T2d(this.a, (Q8d(), O8d)), a, c2);
137208 }
137209 return d = BD(XKd((this.j & 2) == 0 ? (Q8d(), K8d) : (!this.k && (this.k = new HGd()), this.k).ck(), b), 66), d.Nj().Rj(this, Aid(this), b - aLd((Q8d(), K8d)), a, c2);
137210 };
137211 _2.lh = function r9d(a) {
137212 switch (a) {
137213 case 0:
137214 return !!this.a && this.a.i != 0;
137215 case 1:
137216 return !!this.b && this.b.f != 0;
137217 case 2:
137218 return !!this.c && this.c.f != 0;
137219 case 3:
137220 return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), L8d)));
137221 case 4:
137222 return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), M8d)));
137223 case 5:
137224 return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), O8d)));
137225 case 6:
137226 return !this.a && (this.a = new u3d(this, 0)), !e7d(T2d(this.a, (Q8d(), P8d)));
137227 }
137228 return cid(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
137229 };
137230 _2.sh = function s9d(a, b) {
137231 switch (a) {
137232 case 0:
137233 !this.a && (this.a = new u3d(this, 0));
137234 d3d(this.a, b);
137235 return;
137236 case 1:
137237 !this.b && (this.b = new dId((jGd(), fGd), x6, this, 1));
137238 cId(this.b, b);
137239 return;
137240 case 2:
137241 !this.c && (this.c = new dId((jGd(), fGd), x6, this, 2));
137242 cId(this.c, b);
137243 return;
137244 case 3:
137245 !this.a && (this.a = new u3d(this, 0));
137246 d7d(T2d(this.a, (Q8d(), L8d)));
137247 !this.a && (this.a = new u3d(this, 0));
137248 b7d(T2d(this.a, L8d), BD(b, 14));
137249 return;
137250 case 4:
137251 !this.a && (this.a = new u3d(this, 0));
137252 d7d(T2d(this.a, (Q8d(), M8d)));
137253 !this.a && (this.a = new u3d(this, 0));
137254 b7d(T2d(this.a, M8d), BD(b, 14));
137255 return;
137256 case 5:
137257 !this.a && (this.a = new u3d(this, 0));
137258 d7d(T2d(this.a, (Q8d(), O8d)));
137259 !this.a && (this.a = new u3d(this, 0));
137260 b7d(T2d(this.a, O8d), BD(b, 14));
137261 return;
137262 case 6:
137263 !this.a && (this.a = new u3d(this, 0));
137264 d7d(T2d(this.a, (Q8d(), P8d)));
137265 !this.a && (this.a = new u3d(this, 0));
137266 b7d(T2d(this.a, P8d), BD(b, 14));
137267 return;
137268 }
137269 did(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a), b);
137270 };
137271 _2.zh = function t9d() {
137272 return Q8d(), K8d;
137273 };
137274 _2.Bh = function u9d(a) {
137275 switch (a) {
137276 case 0:
137277 !this.a && (this.a = new u3d(this, 0));
137278 Uxd(this.a);
137279 return;
137280 case 1:
137281 !this.b && (this.b = new dId((jGd(), fGd), x6, this, 1));
137282 this.b.c.$b();
137283 return;
137284 case 2:
137285 !this.c && (this.c = new dId((jGd(), fGd), x6, this, 2));
137286 this.c.c.$b();
137287 return;
137288 case 3:
137289 !this.a && (this.a = new u3d(this, 0));
137290 d7d(T2d(this.a, (Q8d(), L8d)));
137291 return;
137292 case 4:
137293 !this.a && (this.a = new u3d(this, 0));
137294 d7d(T2d(this.a, (Q8d(), M8d)));
137295 return;
137296 case 5:
137297 !this.a && (this.a = new u3d(this, 0));
137298 d7d(T2d(this.a, (Q8d(), O8d)));
137299 return;
137300 case 6:
137301 !this.a && (this.a = new u3d(this, 0));
137302 d7d(T2d(this.a, (Q8d(), P8d)));
137303 return;
137304 }
137305 eid(this, a - aLd((Q8d(), K8d)), XKd((this.j & 2) == 0 ? K8d : (!this.k && (this.k = new HGd()), this.k).ck(), a));
137306 };
137307 _2.Ib = function v9d() {
137308 var a;
137309 if ((this.j & 4) != 0)
137310 return Eid(this);
137311 a = new Jfb(Eid(this));
137312 a.a += " (mixed: ";
137313 Dfb(a, this.a);
137314 a.a += ")";
137315 return a.a;
137316 };
137317 mdb(Mwe, "XMLTypeDocumentRootImpl", 669);
137318 bcb(1919, 704, { 105: 1, 92: 1, 90: 1, 471: 1, 147: 1, 56: 1, 108: 1, 49: 1, 97: 1, 150: 1, 114: 1, 115: 1, 2024: 1 }, U9d);
137319 _2.Ih = function V9d(a, b) {
137320 switch (a.yj()) {
137321 case 7:
137322 case 8:
137323 case 9:
137324 case 10:
137325 case 16:
137326 case 22:
137327 case 23:
137328 case 24:
137329 case 25:
137330 case 26:
137331 case 32:
137332 case 33:
137333 case 34:
137334 case 36:
137335 case 37:
137336 case 44:
137337 case 45:
137338 case 50:
137339 case 51:
137340 case 53:
137341 case 55:
137342 case 56:
137343 case 57:
137344 case 58:
137345 case 60:
137346 case 61:
137347 case 4:
137348 return b == null ? null : fcb(b);
137349 case 19:
137350 case 28:
137351 case 29:
137352 case 35:
137353 case 38:
137354 case 39:
137355 case 41:
137356 case 46:
137357 case 52:
137358 case 54:
137359 case 5:
137360 return GD(b);
137361 case 6:
137362 return C9d(BD(b, 190));
137363 case 12:
137364 case 47:
137365 case 49:
137366 case 11:
137367 return Vmd(this, a, b);
137368 case 13:
137369 return b == null ? null : qgb(BD(b, 240));
137370 case 15:
137371 case 14:
137372 return b == null ? null : D9d(Edb(ED(b)));
137373 case 17:
137374 return E9d((Q8d(), b));
137375 case 18:
137376 return E9d(b);
137377 case 21:
137378 case 20:
137379 return b == null ? null : F9d(BD(b, 155).a);
137380 case 27:
137381 return G9d(BD(b, 190));
137382 case 30:
137383 return H9d((Q8d(), BD(b, 15)));
137384 case 31:
137385 return H9d(BD(b, 15));
137386 case 40:
137387 return K9d((Q8d(), b));
137388 case 42:
137389 return I9d((Q8d(), b));
137390 case 43:
137391 return I9d(b);
137392 case 59:
137393 case 48:
137394 return J9d((Q8d(), b));
137395 default:
137396 throw vbb(new Wdb(tte + a.ne() + ute));
137397 }
137398 };
137399 _2.Jh = function W9d(a) {
137400 var b, c2, d, e, f2;
137401 switch (a.G == -1 && (a.G = (c2 = bKd(a), c2 ? HLd(c2.Mh(), a) : -1)), a.G) {
137402 case 0:
137403 return b = new R8d(), b;
137404 case 1:
137405 return d = new _8d(), d;
137406 case 2:
137407 return e = new i9d(), e;
137408 case 3:
137409 return f2 = new o9d(), f2;
137410 default:
137411 throw vbb(new Wdb(xte + a.zb + ute));
137412 }
137413 };
137414 _2.Kh = function X9d(a, b) {
137415 var c2, d, e, f2, g, h, i3, j, k, l, m, n, o2, p, q, r;
137416 switch (a.yj()) {
137417 case 5:
137418 case 52:
137419 case 4:
137420 return b;
137421 case 6:
137422 return L9d(b);
137423 case 8:
137424 case 7:
137425 return b == null ? null : B9d(b);
137426 case 9:
137427 return b == null ? null : Scb(Icb((d = Qge(b, true), d.length > 0 && (BCb(0, d.length), d.charCodeAt(0) == 43) ? d.substr(1) : d), -128, 127) << 24 >> 24);
137428 case 10:
137429 return b == null ? null : Scb(Icb((e = Qge(b, true), e.length > 0 && (BCb(0, e.length), e.charCodeAt(0) == 43) ? e.substr(1) : e), -128, 127) << 24 >> 24);
137430 case 11:
137431 return GD(Wmd(this, (Q8d(), w8d), b));
137432 case 12:
137433 return GD(Wmd(this, (Q8d(), x8d), b));
137434 case 13:
137435 return b == null ? null : new tgb(Qge(b, true));
137436 case 15:
137437 case 14:
137438 return M9d(b);
137439 case 16:
137440 return GD(Wmd(this, (Q8d(), y8d), b));
137441 case 17:
137442 return N9d((Q8d(), b));
137443 case 18:
137444 return N9d(b);
137445 case 28:
137446 case 29:
137447 case 35:
137448 case 38:
137449 case 39:
137450 case 41:
137451 case 54:
137452 case 19:
137453 return Qge(b, true);
137454 case 21:
137455 case 20:
137456 return O9d(b);
137457 case 22:
137458 return GD(Wmd(this, (Q8d(), z8d), b));
137459 case 23:
137460 return GD(Wmd(this, (Q8d(), A8d), b));
137461 case 24:
137462 return GD(Wmd(this, (Q8d(), B8d), b));
137463 case 25:
137464 return GD(Wmd(this, (Q8d(), C8d), b));
137465 case 26:
137466 return GD(Wmd(this, (Q8d(), D8d), b));
137467 case 27:
137468 return P9d(b);
137469 case 30:
137470 return Q9d((Q8d(), b));
137471 case 31:
137472 return Q9d(b);
137473 case 32:
137474 return b == null ? null : meb(Icb((k = Qge(b, true), k.length > 0 && (BCb(0, k.length), k.charCodeAt(0) == 43) ? k.substr(1) : k), Rie, Ohe));
137475 case 33:
137476 return b == null ? null : new Ygb((l = Qge(b, true), l.length > 0 && (BCb(0, l.length), l.charCodeAt(0) == 43) ? l.substr(1) : l));
137477 case 34:
137478 return b == null ? null : meb(Icb((m = Qge(b, true), m.length > 0 && (BCb(0, m.length), m.charCodeAt(0) == 43) ? m.substr(1) : m), Rie, Ohe));
137479 case 36:
137480 return b == null ? null : Aeb(Jcb((n = Qge(b, true), n.length > 0 && (BCb(0, n.length), n.charCodeAt(0) == 43) ? n.substr(1) : n)));
137481 case 37:
137482 return b == null ? null : Aeb(Jcb((o2 = Qge(b, true), o2.length > 0 && (BCb(0, o2.length), o2.charCodeAt(0) == 43) ? o2.substr(1) : o2)));
137483 case 40:
137484 return T9d((Q8d(), b));
137485 case 42:
137486 return R9d((Q8d(), b));
137487 case 43:
137488 return R9d(b);
137489 case 44:
137490 return b == null ? null : new Ygb((p = Qge(b, true), p.length > 0 && (BCb(0, p.length), p.charCodeAt(0) == 43) ? p.substr(1) : p));
137491 case 45:
137492 return b == null ? null : new Ygb((q = Qge(b, true), q.length > 0 && (BCb(0, q.length), q.charCodeAt(0) == 43) ? q.substr(1) : q));
137493 case 46:
137494 return Qge(b, false);
137495 case 47:
137496 return GD(Wmd(this, (Q8d(), E8d), b));
137497 case 59:
137498 case 48:
137499 return S9d((Q8d(), b));
137500 case 49:
137501 return GD(Wmd(this, (Q8d(), G8d), b));
137502 case 50:
137503 return b == null ? null : Web(Icb((r = Qge(b, true), r.length > 0 && (BCb(0, r.length), r.charCodeAt(0) == 43) ? r.substr(1) : r), awe, 32767) << 16 >> 16);
137504 case 51:
137505 return b == null ? null : Web(Icb((f2 = Qge(b, true), f2.length > 0 && (BCb(0, f2.length), f2.charCodeAt(0) == 43) ? f2.substr(1) : f2), awe, 32767) << 16 >> 16);
137506 case 53:
137507 return GD(Wmd(this, (Q8d(), J8d), b));
137508 case 55:
137509 return b == null ? null : Web(Icb((g = Qge(b, true), g.length > 0 && (BCb(0, g.length), g.charCodeAt(0) == 43) ? g.substr(1) : g), awe, 32767) << 16 >> 16);
137510 case 56:
137511 return b == null ? null : Web(Icb((h = Qge(b, true), h.length > 0 && (BCb(0, h.length), h.charCodeAt(0) == 43) ? h.substr(1) : h), awe, 32767) << 16 >> 16);
137512 case 57:
137513 return b == null ? null : Aeb(Jcb((i3 = Qge(b, true), i3.length > 0 && (BCb(0, i3.length), i3.charCodeAt(0) == 43) ? i3.substr(1) : i3)));
137514 case 58:
137515 return b == null ? null : Aeb(Jcb((j = Qge(b, true), j.length > 0 && (BCb(0, j.length), j.charCodeAt(0) == 43) ? j.substr(1) : j)));
137516 case 60:
137517 return b == null ? null : meb(Icb((c2 = Qge(b, true), c2.length > 0 && (BCb(0, c2.length), c2.charCodeAt(0) == 43) ? c2.substr(1) : c2), Rie, Ohe));
137518 case 61:
137519 return b == null ? null : meb(Icb(Qge(b, true), Rie, Ohe));
137520 default:
137521 throw vbb(new Wdb(tte + a.ne() + ute));
137522 }
137523 };
137524 var w9d, x9d, y9d, z9d;
137525 mdb(Mwe, "XMLTypeFactoryImpl", 1919);
137526 bcb(586, 179, { 105: 1, 92: 1, 90: 1, 147: 1, 191: 1, 56: 1, 235: 1, 108: 1, 49: 1, 97: 1, 150: 1, 179: 1, 114: 1, 115: 1, 675: 1, 1945: 1, 586: 1 }, cae);
137527 _2.N = false;
137528 _2.O = false;
137529 var Z9d = false;
137530 mdb(Mwe, "XMLTypePackageImpl", 586);
137531 bcb(1852, 1, { 837: 1 }, fae);
137532 _2._j = function gae() {
137533 return Uge(), Tge;
137534 };
137535 mdb(Mwe, "XMLTypePackageImpl/1", 1852);
137536 bcb(1861, 1, nwe, hae);
137537 _2.wj = function iae(a) {
137538 return ND(a);
137539 };
137540 _2.xj = function jae(a) {
137541 return KC(ZI, nie, 2, a, 6, 1);
137542 };
137543 mdb(Mwe, "XMLTypePackageImpl/10", 1861);
137544 bcb(1862, 1, nwe, kae);
137545 _2.wj = function lae(a) {
137546 return ND(a);
137547 };
137548 _2.xj = function mae(a) {
137549 return KC(ZI, nie, 2, a, 6, 1);
137550 };
137551 mdb(Mwe, "XMLTypePackageImpl/11", 1862);
137552 bcb(1863, 1, nwe, nae);
137553 _2.wj = function oae(a) {
137554 return ND(a);
137555 };
137556 _2.xj = function pae(a) {
137557 return KC(ZI, nie, 2, a, 6, 1);
137558 };
137559 mdb(Mwe, "XMLTypePackageImpl/12", 1863);
137560 bcb(1864, 1, nwe, qae);
137561 _2.wj = function rae(a) {
137562 return LD(a);
137563 };
137564 _2.xj = function sae(a) {
137565 return KC(BI, nie, 333, a, 7, 1);
137566 };
137567 mdb(Mwe, "XMLTypePackageImpl/13", 1864);
137568 bcb(1865, 1, nwe, tae);
137569 _2.wj = function uae(a) {
137570 return ND(a);
137571 };
137572 _2.xj = function vae(a) {
137573 return KC(ZI, nie, 2, a, 6, 1);
137574 };
137575 mdb(Mwe, "XMLTypePackageImpl/14", 1865);
137576 bcb(1866, 1, nwe, wae);
137577 _2.wj = function xae(a) {
137578 return JD(a, 15);
137579 };
137580 _2.xj = function yae(a) {
137581 return KC(yK, eme, 15, a, 0, 1);
137582 };
137583 mdb(Mwe, "XMLTypePackageImpl/15", 1866);
137584 bcb(1867, 1, nwe, zae);
137585 _2.wj = function Aae(a) {
137586 return JD(a, 15);
137587 };
137588 _2.xj = function Bae(a) {
137589 return KC(yK, eme, 15, a, 0, 1);
137590 };
137591 mdb(Mwe, "XMLTypePackageImpl/16", 1867);
137592 bcb(1868, 1, nwe, Cae);
137593 _2.wj = function Dae(a) {
137594 return ND(a);
137595 };
137596 _2.xj = function Eae(a) {
137597 return KC(ZI, nie, 2, a, 6, 1);
137598 };
137599 mdb(Mwe, "XMLTypePackageImpl/17", 1868);
137600 bcb(1869, 1, nwe, Fae);
137601 _2.wj = function Gae(a) {
137602 return JD(a, 155);
137603 };
137604 _2.xj = function Hae(a) {
137605 return KC(FI, nie, 155, a, 0, 1);
137606 };
137607 mdb(Mwe, "XMLTypePackageImpl/18", 1869);
137608 bcb(1870, 1, nwe, Iae);
137609 _2.wj = function Jae(a) {
137610 return ND(a);
137611 };
137612 _2.xj = function Kae(a) {
137613 return KC(ZI, nie, 2, a, 6, 1);
137614 };
137615 mdb(Mwe, "XMLTypePackageImpl/19", 1870);
137616 bcb(1853, 1, nwe, Lae);
137617 _2.wj = function Mae(a) {
137618 return JD(a, 843);
137619 };
137620 _2.xj = function Nae(a) {
137621 return KC(Q9, Uhe, 843, a, 0, 1);
137622 };
137623 mdb(Mwe, "XMLTypePackageImpl/2", 1853);
137624 bcb(1871, 1, nwe, Oae);
137625 _2.wj = function Pae(a) {
137626 return ND(a);
137627 };
137628 _2.xj = function Qae(a) {
137629 return KC(ZI, nie, 2, a, 6, 1);
137630 };
137631 mdb(Mwe, "XMLTypePackageImpl/20", 1871);
137632 bcb(1872, 1, nwe, Rae);
137633 _2.wj = function Sae(a) {
137634 return ND(a);
137635 };
137636 _2.xj = function Tae(a) {
137637 return KC(ZI, nie, 2, a, 6, 1);
137638 };
137639 mdb(Mwe, "XMLTypePackageImpl/21", 1872);
137640 bcb(1873, 1, nwe, Uae);
137641 _2.wj = function Vae(a) {
137642 return ND(a);
137643 };
137644 _2.xj = function Wae(a) {
137645 return KC(ZI, nie, 2, a, 6, 1);
137646 };
137647 mdb(Mwe, "XMLTypePackageImpl/22", 1873);
137648 bcb(1874, 1, nwe, Xae);
137649 _2.wj = function Yae(a) {
137650 return ND(a);
137651 };
137652 _2.xj = function Zae(a) {
137653 return KC(ZI, nie, 2, a, 6, 1);
137654 };
137655 mdb(Mwe, "XMLTypePackageImpl/23", 1874);
137656 bcb(1875, 1, nwe, $ae);
137657 _2.wj = function _ae(a) {
137658 return JD(a, 190);
137659 };
137660 _2.xj = function abe(a) {
137661 return KC(SD, nie, 190, a, 0, 2);
137662 };
137663 mdb(Mwe, "XMLTypePackageImpl/24", 1875);
137664 bcb(1876, 1, nwe, bbe);
137665 _2.wj = function cbe(a) {
137666 return ND(a);
137667 };
137668 _2.xj = function dbe(a) {
137669 return KC(ZI, nie, 2, a, 6, 1);
137670 };
137671 mdb(Mwe, "XMLTypePackageImpl/25", 1876);
137672 bcb(1877, 1, nwe, ebe);
137673 _2.wj = function fbe(a) {
137674 return ND(a);
137675 };
137676 _2.xj = function gbe(a) {
137677 return KC(ZI, nie, 2, a, 6, 1);
137678 };
137679 mdb(Mwe, "XMLTypePackageImpl/26", 1877);
137680 bcb(1878, 1, nwe, hbe);
137681 _2.wj = function ibe(a) {
137682 return JD(a, 15);
137683 };
137684 _2.xj = function jbe(a) {
137685 return KC(yK, eme, 15, a, 0, 1);
137686 };
137687 mdb(Mwe, "XMLTypePackageImpl/27", 1878);
137688 bcb(1879, 1, nwe, kbe);
137689 _2.wj = function lbe(a) {
137690 return JD(a, 15);
137691 };
137692 _2.xj = function mbe(a) {
137693 return KC(yK, eme, 15, a, 0, 1);
137694 };
137695 mdb(Mwe, "XMLTypePackageImpl/28", 1879);
137696 bcb(1880, 1, nwe, nbe);
137697 _2.wj = function obe(a) {
137698 return ND(a);
137699 };
137700 _2.xj = function pbe(a) {
137701 return KC(ZI, nie, 2, a, 6, 1);
137702 };
137703 mdb(Mwe, "XMLTypePackageImpl/29", 1880);
137704 bcb(1854, 1, nwe, qbe);
137705 _2.wj = function rbe(a) {
137706 return JD(a, 667);
137707 };
137708 _2.xj = function sbe(a) {
137709 return KC(S9, Uhe, 2021, a, 0, 1);
137710 };
137711 mdb(Mwe, "XMLTypePackageImpl/3", 1854);
137712 bcb(1881, 1, nwe, tbe);
137713 _2.wj = function ube(a) {
137714 return JD(a, 19);
137715 };
137716 _2.xj = function vbe(a) {
137717 return KC(JI, nie, 19, a, 0, 1);
137718 };
137719 mdb(Mwe, "XMLTypePackageImpl/30", 1881);
137720 bcb(1882, 1, nwe, wbe);
137721 _2.wj = function xbe(a) {
137722 return ND(a);
137723 };
137724 _2.xj = function ybe(a) {
137725 return KC(ZI, nie, 2, a, 6, 1);
137726 };
137727 mdb(Mwe, "XMLTypePackageImpl/31", 1882);
137728 bcb(1883, 1, nwe, zbe);
137729 _2.wj = function Abe(a) {
137730 return JD(a, 162);
137731 };
137732 _2.xj = function Bbe(a) {
137733 return KC(MI, nie, 162, a, 0, 1);
137734 };
137735 mdb(Mwe, "XMLTypePackageImpl/32", 1883);
137736 bcb(1884, 1, nwe, Cbe);
137737 _2.wj = function Dbe(a) {
137738 return ND(a);
137739 };
137740 _2.xj = function Ebe(a) {
137741 return KC(ZI, nie, 2, a, 6, 1);
137742 };
137743 mdb(Mwe, "XMLTypePackageImpl/33", 1884);
137744 bcb(1885, 1, nwe, Fbe);
137745 _2.wj = function Gbe(a) {
137746 return ND(a);
137747 };
137748 _2.xj = function Hbe(a) {
137749 return KC(ZI, nie, 2, a, 6, 1);
137750 };
137751 mdb(Mwe, "XMLTypePackageImpl/34", 1885);
137752 bcb(1886, 1, nwe, Ibe);
137753 _2.wj = function Jbe(a) {
137754 return ND(a);
137755 };
137756 _2.xj = function Kbe(a) {
137757 return KC(ZI, nie, 2, a, 6, 1);
137758 };
137759 mdb(Mwe, "XMLTypePackageImpl/35", 1886);
137760 bcb(1887, 1, nwe, Lbe);
137761 _2.wj = function Mbe(a) {
137762 return ND(a);
137763 };
137764 _2.xj = function Nbe(a) {
137765 return KC(ZI, nie, 2, a, 6, 1);
137766 };
137767 mdb(Mwe, "XMLTypePackageImpl/36", 1887);
137768 bcb(1888, 1, nwe, Obe);
137769 _2.wj = function Pbe(a) {
137770 return JD(a, 15);
137771 };
137772 _2.xj = function Qbe(a) {
137773 return KC(yK, eme, 15, a, 0, 1);
137774 };
137775 mdb(Mwe, "XMLTypePackageImpl/37", 1888);
137776 bcb(1889, 1, nwe, Rbe);
137777 _2.wj = function Sbe(a) {
137778 return JD(a, 15);
137779 };
137780 _2.xj = function Tbe(a) {
137781 return KC(yK, eme, 15, a, 0, 1);
137782 };
137783 mdb(Mwe, "XMLTypePackageImpl/38", 1889);
137784 bcb(1890, 1, nwe, Ube);
137785 _2.wj = function Vbe(a) {
137786 return ND(a);
137787 };
137788 _2.xj = function Wbe(a) {
137789 return KC(ZI, nie, 2, a, 6, 1);
137790 };
137791 mdb(Mwe, "XMLTypePackageImpl/39", 1890);
137792 bcb(1855, 1, nwe, Xbe);
137793 _2.wj = function Ybe(a) {
137794 return JD(a, 668);
137795 };
137796 _2.xj = function Zbe(a) {
137797 return KC(T9, Uhe, 2022, a, 0, 1);
137798 };
137799 mdb(Mwe, "XMLTypePackageImpl/4", 1855);
137800 bcb(1891, 1, nwe, $be);
137801 _2.wj = function _be(a) {
137802 return ND(a);
137803 };
137804 _2.xj = function ace(a) {
137805 return KC(ZI, nie, 2, a, 6, 1);
137806 };
137807 mdb(Mwe, "XMLTypePackageImpl/40", 1891);
137808 bcb(1892, 1, nwe, bce);
137809 _2.wj = function cce(a) {
137810 return ND(a);
137811 };
137812 _2.xj = function dce(a) {
137813 return KC(ZI, nie, 2, a, 6, 1);
137814 };
137815 mdb(Mwe, "XMLTypePackageImpl/41", 1892);
137816 bcb(1893, 1, nwe, ece);
137817 _2.wj = function fce(a) {
137818 return ND(a);
137819 };
137820 _2.xj = function gce(a) {
137821 return KC(ZI, nie, 2, a, 6, 1);
137822 };
137823 mdb(Mwe, "XMLTypePackageImpl/42", 1893);
137824 bcb(1894, 1, nwe, hce);
137825 _2.wj = function ice(a) {
137826 return ND(a);
137827 };
137828 _2.xj = function jce(a) {
137829 return KC(ZI, nie, 2, a, 6, 1);
137830 };
137831 mdb(Mwe, "XMLTypePackageImpl/43", 1894);
137832 bcb(1895, 1, nwe, kce);
137833 _2.wj = function lce(a) {
137834 return ND(a);
137835 };
137836 _2.xj = function mce(a) {
137837 return KC(ZI, nie, 2, a, 6, 1);
137838 };
137839 mdb(Mwe, "XMLTypePackageImpl/44", 1895);
137840 bcb(1896, 1, nwe, nce);
137841 _2.wj = function oce(a) {
137842 return JD(a, 184);
137843 };
137844 _2.xj = function pce(a) {
137845 return KC(UI, nie, 184, a, 0, 1);
137846 };
137847 mdb(Mwe, "XMLTypePackageImpl/45", 1896);
137848 bcb(1897, 1, nwe, qce);
137849 _2.wj = function rce(a) {
137850 return ND(a);
137851 };
137852 _2.xj = function sce(a) {
137853 return KC(ZI, nie, 2, a, 6, 1);
137854 };
137855 mdb(Mwe, "XMLTypePackageImpl/46", 1897);
137856 bcb(1898, 1, nwe, tce);
137857 _2.wj = function uce(a) {
137858 return ND(a);
137859 };
137860 _2.xj = function vce(a) {
137861 return KC(ZI, nie, 2, a, 6, 1);
137862 };
137863 mdb(Mwe, "XMLTypePackageImpl/47", 1898);
137864 bcb(1899, 1, nwe, wce);
137865 _2.wj = function xce(a) {
137866 return ND(a);
137867 };
137868 _2.xj = function yce(a) {
137869 return KC(ZI, nie, 2, a, 6, 1);
137870 };
137871 mdb(Mwe, "XMLTypePackageImpl/48", 1899);
137872 bcb(nje, 1, nwe, zce);
137873 _2.wj = function Ace(a) {
137874 return JD(a, 184);
137875 };
137876 _2.xj = function Bce(a) {
137877 return KC(UI, nie, 184, a, 0, 1);
137878 };
137879 mdb(Mwe, "XMLTypePackageImpl/49", nje);
137880 bcb(1856, 1, nwe, Cce);
137881 _2.wj = function Dce(a) {
137882 return JD(a, 669);
137883 };
137884 _2.xj = function Ece(a) {
137885 return KC(U9, Uhe, 2023, a, 0, 1);
137886 };
137887 mdb(Mwe, "XMLTypePackageImpl/5", 1856);
137888 bcb(1901, 1, nwe, Fce);
137889 _2.wj = function Gce(a) {
137890 return JD(a, 162);
137891 };
137892 _2.xj = function Hce(a) {
137893 return KC(MI, nie, 162, a, 0, 1);
137894 };
137895 mdb(Mwe, "XMLTypePackageImpl/50", 1901);
137896 bcb(1902, 1, nwe, Ice);
137897 _2.wj = function Jce(a) {
137898 return ND(a);
137899 };
137900 _2.xj = function Kce(a) {
137901 return KC(ZI, nie, 2, a, 6, 1);
137902 };
137903 mdb(Mwe, "XMLTypePackageImpl/51", 1902);
137904 bcb(1903, 1, nwe, Lce);
137905 _2.wj = function Mce(a) {
137906 return JD(a, 19);
137907 };
137908 _2.xj = function Nce(a) {
137909 return KC(JI, nie, 19, a, 0, 1);
137910 };
137911 mdb(Mwe, "XMLTypePackageImpl/52", 1903);
137912 bcb(1857, 1, nwe, Oce);
137913 _2.wj = function Pce(a) {
137914 return ND(a);
137915 };
137916 _2.xj = function Qce(a) {
137917 return KC(ZI, nie, 2, a, 6, 1);
137918 };
137919 mdb(Mwe, "XMLTypePackageImpl/6", 1857);
137920 bcb(1858, 1, nwe, Rce);
137921 _2.wj = function Sce(a) {
137922 return JD(a, 190);
137923 };
137924 _2.xj = function Tce(a) {
137925 return KC(SD, nie, 190, a, 0, 2);
137926 };
137927 mdb(Mwe, "XMLTypePackageImpl/7", 1858);
137928 bcb(1859, 1, nwe, Uce);
137929 _2.wj = function Vce(a) {
137930 return KD(a);
137931 };
137932 _2.xj = function Wce(a) {
137933 return KC(wI, nie, 476, a, 8, 1);
137934 };
137935 mdb(Mwe, "XMLTypePackageImpl/8", 1859);
137936 bcb(1860, 1, nwe, Xce);
137937 _2.wj = function Yce(a) {
137938 return JD(a, 217);
137939 };
137940 _2.xj = function Zce(a) {
137941 return KC(xI, nie, 217, a, 0, 1);
137942 };
137943 mdb(Mwe, "XMLTypePackageImpl/9", 1860);
137944 var $ce, _ce;
137945 var fde, gde;
137946 var kde;
137947 bcb(50, 60, Tie, mde);
137948 mdb(kxe, "RegEx/ParseException", 50);
137949 bcb(820, 1, {}, ude);
137950 _2.sl = function vde(a) {
137951 return a < this.j && bfb(this.i, a) == 63;
137952 };
137953 _2.tl = function wde() {
137954 var a, b, c2, d, e;
137955 if (this.c != 10)
137956 throw vbb(new mde(tvd((h0d(), uue))));
137957 a = this.a;
137958 switch (a) {
137959 case 101:
137960 a = 27;
137961 break;
137962 case 102:
137963 a = 12;
137964 break;
137965 case 110:
137966 a = 10;
137967 break;
137968 case 114:
137969 a = 13;
137970 break;
137971 case 116:
137972 a = 9;
137973 break;
137974 case 120:
137975 nde(this);
137976 if (this.c != 0)
137977 throw vbb(new mde(tvd((h0d(), Tue))));
137978 if (this.a == 123) {
137979 e = 0;
137980 c2 = 0;
137981 do {
137982 nde(this);
137983 if (this.c != 0)
137984 throw vbb(new mde(tvd((h0d(), Tue))));
137985 if ((e = yde(this.a)) < 0)
137986 break;
137987 if (c2 > c2 * 16)
137988 throw vbb(new mde(tvd((h0d(), Uue))));
137989 c2 = c2 * 16 + e;
137990 } while (true);
137991 if (this.a != 125)
137992 throw vbb(new mde(tvd((h0d(), Vue))));
137993 if (c2 > lxe)
137994 throw vbb(new mde(tvd((h0d(), Wue))));
137995 a = c2;
137996 } else {
137997 e = 0;
137998 if (this.c != 0 || (e = yde(this.a)) < 0)
137999 throw vbb(new mde(tvd((h0d(), Tue))));
138000 c2 = e;
138001 nde(this);
138002 if (this.c != 0 || (e = yde(this.a)) < 0)
138003 throw vbb(new mde(tvd((h0d(), Tue))));
138004 c2 = c2 * 16 + e;
138005 a = c2;
138006 }
138007 break;
138008 case 117:
138009 d = 0;
138010 nde(this);
138011 if (this.c != 0 || (d = yde(this.a)) < 0)
138012 throw vbb(new mde(tvd((h0d(), Tue))));
138013 b = d;
138014 nde(this);
138015 if (this.c != 0 || (d = yde(this.a)) < 0)
138016 throw vbb(new mde(tvd((h0d(), Tue))));
138017 b = b * 16 + d;
138018 nde(this);
138019 if (this.c != 0 || (d = yde(this.a)) < 0)
138020 throw vbb(new mde(tvd((h0d(), Tue))));
138021 b = b * 16 + d;
138022 nde(this);
138023 if (this.c != 0 || (d = yde(this.a)) < 0)
138024 throw vbb(new mde(tvd((h0d(), Tue))));
138025 b = b * 16 + d;
138026 a = b;
138027 break;
138028 case 118:
138029 nde(this);
138030 if (this.c != 0 || (d = yde(this.a)) < 0)
138031 throw vbb(new mde(tvd((h0d(), Tue))));
138032 b = d;
138033 nde(this);
138034 if (this.c != 0 || (d = yde(this.a)) < 0)
138035 throw vbb(new mde(tvd((h0d(), Tue))));
138036 b = b * 16 + d;
138037 nde(this);
138038 if (this.c != 0 || (d = yde(this.a)) < 0)
138039 throw vbb(new mde(tvd((h0d(), Tue))));
138040 b = b * 16 + d;
138041 nde(this);
138042 if (this.c != 0 || (d = yde(this.a)) < 0)
138043 throw vbb(new mde(tvd((h0d(), Tue))));
138044 b = b * 16 + d;
138045 nde(this);
138046 if (this.c != 0 || (d = yde(this.a)) < 0)
138047 throw vbb(new mde(tvd((h0d(), Tue))));
138048 b = b * 16 + d;
138049 nde(this);
138050 if (this.c != 0 || (d = yde(this.a)) < 0)
138051 throw vbb(new mde(tvd((h0d(), Tue))));
138052 b = b * 16 + d;
138053 if (b > lxe)
138054 throw vbb(new mde(tvd((h0d(), "parser.descappe.4"))));
138055 a = b;
138056 break;
138057 case 65:
138058 case 90:
138059 case 122:
138060 throw vbb(new mde(tvd((h0d(), Xue))));
138061 }
138062 return a;
138063 };
138064 _2.ul = function xde(a) {
138065 var b, c2;
138066 switch (a) {
138067 case 100:
138068 c2 = (this.e & 32) == 32 ? Kfe("Nd", true) : (wfe(), cfe);
138069 break;
138070 case 68:
138071 c2 = (this.e & 32) == 32 ? Kfe("Nd", false) : (wfe(), jfe);
138072 break;
138073 case 119:
138074 c2 = (this.e & 32) == 32 ? Kfe("IsWord", true) : (wfe(), sfe);
138075 break;
138076 case 87:
138077 c2 = (this.e & 32) == 32 ? Kfe("IsWord", false) : (wfe(), lfe);
138078 break;
138079 case 115:
138080 c2 = (this.e & 32) == 32 ? Kfe("IsSpace", true) : (wfe(), nfe);
138081 break;
138082 case 83:
138083 c2 = (this.e & 32) == 32 ? Kfe("IsSpace", false) : (wfe(), kfe);
138084 break;
138085 default:
138086 throw vbb(new hz((b = a, mxe + b.toString(16))));
138087 }
138088 return c2;
138089 };
138090 _2.vl = function zde(a) {
138091 var b, c2, d, e, f2, g, h, i3, j, k, l, m;
138092 this.b = 1;
138093 nde(this);
138094 b = null;
138095 if (this.c == 0 && this.a == 94) {
138096 nde(this);
138097 if (a) {
138098 k = (wfe(), wfe(), new $fe(5));
138099 } else {
138100 b = (wfe(), wfe(), new $fe(4));
138101 Ufe(b, 0, lxe);
138102 k = new $fe(4);
138103 }
138104 } else {
138105 k = (wfe(), wfe(), new $fe(4));
138106 }
138107 e = true;
138108 while ((m = this.c) != 1) {
138109 if (m == 0 && this.a == 93 && !e)
138110 break;
138111 e = false;
138112 c2 = this.a;
138113 d = false;
138114 if (m == 10) {
138115 switch (c2) {
138116 case 100:
138117 case 68:
138118 case 119:
138119 case 87:
138120 case 115:
138121 case 83:
138122 Xfe(k, this.ul(c2));
138123 d = true;
138124 break;
138125 case 105:
138126 case 73:
138127 case 99:
138128 case 67:
138129 c2 = this.Ll(k, c2);
138130 c2 < 0 && (d = true);
138131 break;
138132 case 112:
138133 case 80:
138134 l = tde(this, c2);
138135 if (!l)
138136 throw vbb(new mde(tvd((h0d(), Iue))));
138137 Xfe(k, l);
138138 d = true;
138139 break;
138140 default:
138141 c2 = this.tl();
138142 }
138143 } else if (m == 20) {
138144 g = gfb(this.i, 58, this.d);
138145 if (g < 0)
138146 throw vbb(new mde(tvd((h0d(), Jue))));
138147 h = true;
138148 if (bfb(this.i, this.d) == 94) {
138149 ++this.d;
138150 h = false;
138151 }
138152 f2 = qfb(this.i, this.d, g);
138153 i3 = Lfe(f2, h, (this.e & 512) == 512);
138154 if (!i3)
138155 throw vbb(new mde(tvd((h0d(), Lue))));
138156 Xfe(k, i3);
138157 d = true;
138158 if (g + 1 >= this.j || bfb(this.i, g + 1) != 93)
138159 throw vbb(new mde(tvd((h0d(), Jue))));
138160 this.d = g + 2;
138161 }
138162 nde(this);
138163 if (!d) {
138164 if (this.c != 0 || this.a != 45) {
138165 Ufe(k, c2, c2);
138166 } else {
138167 nde(this);
138168 if ((m = this.c) == 1)
138169 throw vbb(new mde(tvd((h0d(), Kue))));
138170 if (m == 0 && this.a == 93) {
138171 Ufe(k, c2, c2);
138172 Ufe(k, 45, 45);
138173 } else {
138174 j = this.a;
138175 m == 10 && (j = this.tl());
138176 nde(this);
138177 Ufe(k, c2, j);
138178 }
138179 }
138180 }
138181 (this.e & zte) == zte && this.c == 0 && this.a == 44 && nde(this);
138182 }
138183 if (this.c == 1)
138184 throw vbb(new mde(tvd((h0d(), Kue))));
138185 if (b) {
138186 Zfe(b, k);
138187 k = b;
138188 }
138189 Yfe(k);
138190 Vfe(k);
138191 this.b = 0;
138192 nde(this);
138193 return k;
138194 };
138195 _2.wl = function Ade() {
138196 var a, b, c2, d;
138197 c2 = this.vl(false);
138198 while ((d = this.c) != 7) {
138199 a = this.a;
138200 if (d == 0 && (a == 45 || a == 38) || d == 4) {
138201 nde(this);
138202 if (this.c != 9)
138203 throw vbb(new mde(tvd((h0d(), Que))));
138204 b = this.vl(false);
138205 if (d == 4)
138206 Xfe(c2, b);
138207 else if (a == 45)
138208 Zfe(c2, b);
138209 else if (a == 38)
138210 Wfe(c2, b);
138211 else
138212 throw vbb(new hz("ASSERT"));
138213 } else {
138214 throw vbb(new mde(tvd((h0d(), Rue))));
138215 }
138216 }
138217 nde(this);
138218 return c2;
138219 };
138220 _2.xl = function Bde() {
138221 var a, b;
138222 a = this.a - 48;
138223 b = (wfe(), wfe(), new Hge(12, null, a));
138224 !this.g && (this.g = new Wvb());
138225 Tvb(this.g, new cge(a));
138226 nde(this);
138227 return b;
138228 };
138229 _2.yl = function Cde() {
138230 nde(this);
138231 return wfe(), ofe;
138232 };
138233 _2.zl = function Dde() {
138234 nde(this);
138235 return wfe(), mfe;
138236 };
138237 _2.Al = function Ede() {
138238 throw vbb(new mde(tvd((h0d(), Yue))));
138239 };
138240 _2.Bl = function Fde() {
138241 throw vbb(new mde(tvd((h0d(), Yue))));
138242 };
138243 _2.Cl = function Gde() {
138244 nde(this);
138245 return Ife();
138246 };
138247 _2.Dl = function Hde() {
138248 nde(this);
138249 return wfe(), qfe;
138250 };
138251 _2.El = function Ide() {
138252 nde(this);
138253 return wfe(), tfe;
138254 };
138255 _2.Fl = function Jde() {
138256 var a;
138257 if (this.d >= this.j || ((a = bfb(this.i, this.d++)) & 65504) != 64)
138258 throw vbb(new mde(tvd((h0d(), Eue))));
138259 nde(this);
138260 return wfe(), wfe(), new ige(0, a - 64);
138261 };
138262 _2.Gl = function Kde() {
138263 nde(this);
138264 return Jfe();
138265 };
138266 _2.Hl = function Lde() {
138267 nde(this);
138268 return wfe(), ufe;
138269 };
138270 _2.Il = function Mde() {
138271 var a;
138272 a = (wfe(), wfe(), new ige(0, 105));
138273 nde(this);
138274 return a;
138275 };
138276 _2.Jl = function Nde() {
138277 nde(this);
138278 return wfe(), rfe;
138279 };
138280 _2.Kl = function Ode() {
138281 nde(this);
138282 return wfe(), pfe;
138283 };
138284 _2.Ll = function Pde(a, b) {
138285 return this.tl();
138286 };
138287 _2.Ml = function Qde() {
138288 nde(this);
138289 return wfe(), hfe;
138290 };
138291 _2.Nl = function Rde() {
138292 var a, b, c2, d, e;
138293 if (this.d + 1 >= this.j)
138294 throw vbb(new mde(tvd((h0d(), Bue))));
138295 d = -1;
138296 b = null;
138297 a = bfb(this.i, this.d);
138298 if (49 <= a && a <= 57) {
138299 d = a - 48;
138300 !this.g && (this.g = new Wvb());
138301 Tvb(this.g, new cge(d));
138302 ++this.d;
138303 if (bfb(this.i, this.d) != 41)
138304 throw vbb(new mde(tvd((h0d(), yue))));
138305 ++this.d;
138306 } else {
138307 a == 63 && --this.d;
138308 nde(this);
138309 b = qde(this);
138310 switch (b.e) {
138311 case 20:
138312 case 21:
138313 case 22:
138314 case 23:
138315 break;
138316 case 8:
138317 if (this.c != 7)
138318 throw vbb(new mde(tvd((h0d(), yue))));
138319 break;
138320 default:
138321 throw vbb(new mde(tvd((h0d(), Cue))));
138322 }
138323 }
138324 nde(this);
138325 e = rde(this);
138326 c2 = null;
138327 if (e.e == 2) {
138328 if (e.em() != 2)
138329 throw vbb(new mde(tvd((h0d(), Due))));
138330 c2 = e.am(1);
138331 e = e.am(0);
138332 }
138333 if (this.c != 7)
138334 throw vbb(new mde(tvd((h0d(), yue))));
138335 nde(this);
138336 return wfe(), wfe(), new vge(d, b, e, c2);
138337 };
138338 _2.Ol = function Sde() {
138339 nde(this);
138340 return wfe(), ife;
138341 };
138342 _2.Pl = function Tde() {
138343 var a;
138344 nde(this);
138345 a = Cfe(24, rde(this));
138346 if (this.c != 7)
138347 throw vbb(new mde(tvd((h0d(), yue))));
138348 nde(this);
138349 return a;
138350 };
138351 _2.Ql = function Ude() {
138352 var a;
138353 nde(this);
138354 a = Cfe(20, rde(this));
138355 if (this.c != 7)
138356 throw vbb(new mde(tvd((h0d(), yue))));
138357 nde(this);
138358 return a;
138359 };
138360 _2.Rl = function Vde() {
138361 var a;
138362 nde(this);
138363 a = Cfe(22, rde(this));
138364 if (this.c != 7)
138365 throw vbb(new mde(tvd((h0d(), yue))));
138366 nde(this);
138367 return a;
138368 };
138369 _2.Sl = function Wde() {
138370 var a, b, c2, d, e;
138371 a = 0;
138372 c2 = 0;
138373 b = -1;
138374 while (this.d < this.j) {
138375 b = bfb(this.i, this.d);
138376 e = Uee(b);
138377 if (e == 0)
138378 break;
138379 a |= e;
138380 ++this.d;
138381 }
138382 if (this.d >= this.j)
138383 throw vbb(new mde(tvd((h0d(), zue))));
138384 if (b == 45) {
138385 ++this.d;
138386 while (this.d < this.j) {
138387 b = bfb(this.i, this.d);
138388 e = Uee(b);
138389 if (e == 0)
138390 break;
138391 c2 |= e;
138392 ++this.d;
138393 }
138394 if (this.d >= this.j)
138395 throw vbb(new mde(tvd((h0d(), zue))));
138396 }
138397 if (b == 58) {
138398 ++this.d;
138399 nde(this);
138400 d = Dfe(rde(this), a, c2);
138401 if (this.c != 7)
138402 throw vbb(new mde(tvd((h0d(), yue))));
138403 nde(this);
138404 } else if (b == 41) {
138405 ++this.d;
138406 nde(this);
138407 d = Dfe(rde(this), a, c2);
138408 } else
138409 throw vbb(new mde(tvd((h0d(), Aue))));
138410 return d;
138411 };
138412 _2.Tl = function Xde() {
138413 var a;
138414 nde(this);
138415 a = Cfe(21, rde(this));
138416 if (this.c != 7)
138417 throw vbb(new mde(tvd((h0d(), yue))));
138418 nde(this);
138419 return a;
138420 };
138421 _2.Ul = function Yde() {
138422 var a;
138423 nde(this);
138424 a = Cfe(23, rde(this));
138425 if (this.c != 7)
138426 throw vbb(new mde(tvd((h0d(), yue))));
138427 nde(this);
138428 return a;
138429 };
138430 _2.Vl = function Zde() {
138431 var a, b;
138432 nde(this);
138433 a = this.f++;
138434 b = Efe(rde(this), a);
138435 if (this.c != 7)
138436 throw vbb(new mde(tvd((h0d(), yue))));
138437 nde(this);
138438 return b;
138439 };
138440 _2.Wl = function $de() {
138441 var a;
138442 nde(this);
138443 a = Efe(rde(this), 0);
138444 if (this.c != 7)
138445 throw vbb(new mde(tvd((h0d(), yue))));
138446 nde(this);
138447 return a;
138448 };
138449 _2.Xl = function _de(a) {
138450 nde(this);
138451 if (this.c == 5) {
138452 nde(this);
138453 return Bfe(a, (wfe(), wfe(), new lge(9, a)));
138454 } else
138455 return Bfe(a, (wfe(), wfe(), new lge(3, a)));
138456 };
138457 _2.Yl = function aee(a) {
138458 var b;
138459 nde(this);
138460 b = (wfe(), wfe(), new Lge(2));
138461 if (this.c == 5) {
138462 nde(this);
138463 Kge(b, ffe);
138464 Kge(b, a);
138465 } else {
138466 Kge(b, a);
138467 Kge(b, ffe);
138468 }
138469 return b;
138470 };
138471 _2.Zl = function bee(a) {
138472 nde(this);
138473 if (this.c == 5) {
138474 nde(this);
138475 return wfe(), wfe(), new lge(9, a);
138476 } else
138477 return wfe(), wfe(), new lge(3, a);
138478 };
138479 _2.a = 0;
138480 _2.b = 0;
138481 _2.c = 0;
138482 _2.d = 0;
138483 _2.e = 0;
138484 _2.f = 1;
138485 _2.g = null;
138486 _2.j = 0;
138487 mdb(kxe, "RegEx/RegexParser", 820);
138488 bcb(1824, 820, {}, hee);
138489 _2.sl = function iee(a) {
138490 return false;
138491 };
138492 _2.tl = function jee() {
138493 return eee(this);
138494 };
138495 _2.ul = function lee(a) {
138496 return fee(a);
138497 };
138498 _2.vl = function mee(a) {
138499 return gee(this);
138500 };
138501 _2.wl = function nee() {
138502 throw vbb(new mde(tvd((h0d(), Yue))));
138503 };
138504 _2.xl = function oee() {
138505 throw vbb(new mde(tvd((h0d(), Yue))));
138506 };
138507 _2.yl = function pee() {
138508 throw vbb(new mde(tvd((h0d(), Yue))));
138509 };
138510 _2.zl = function qee() {
138511 throw vbb(new mde(tvd((h0d(), Yue))));
138512 };
138513 _2.Al = function ree() {
138514 nde(this);
138515 return fee(67);
138516 };
138517 _2.Bl = function see() {
138518 nde(this);
138519 return fee(73);
138520 };
138521 _2.Cl = function tee() {
138522 throw vbb(new mde(tvd((h0d(), Yue))));
138523 };
138524 _2.Dl = function uee() {
138525 throw vbb(new mde(tvd((h0d(), Yue))));
138526 };
138527 _2.El = function vee2() {
138528 throw vbb(new mde(tvd((h0d(), Yue))));
138529 };
138530 _2.Fl = function wee() {
138531 nde(this);
138532 return fee(99);
138533 };
138534 _2.Gl = function xee() {
138535 throw vbb(new mde(tvd((h0d(), Yue))));
138536 };
138537 _2.Hl = function yee() {
138538 throw vbb(new mde(tvd((h0d(), Yue))));
138539 };
138540 _2.Il = function zee() {
138541 nde(this);
138542 return fee(105);
138543 };
138544 _2.Jl = function Aee() {
138545 throw vbb(new mde(tvd((h0d(), Yue))));
138546 };
138547 _2.Kl = function Bee() {
138548 throw vbb(new mde(tvd((h0d(), Yue))));
138549 };
138550 _2.Ll = function Cee(a, b) {
138551 return Xfe(a, fee(b)), -1;
138552 };
138553 _2.Ml = function Dee() {
138554 nde(this);
138555 return wfe(), wfe(), new ige(0, 94);
138556 };
138557 _2.Nl = function Eee() {
138558 throw vbb(new mde(tvd((h0d(), Yue))));
138559 };
138560 _2.Ol = function Fee() {
138561 nde(this);
138562 return wfe(), wfe(), new ige(0, 36);
138563 };
138564 _2.Pl = function Gee() {
138565 throw vbb(new mde(tvd((h0d(), Yue))));
138566 };
138567 _2.Ql = function Hee() {
138568 throw vbb(new mde(tvd((h0d(), Yue))));
138569 };
138570 _2.Rl = function Iee() {
138571 throw vbb(new mde(tvd((h0d(), Yue))));
138572 };
138573 _2.Sl = function Jee() {
138574 throw vbb(new mde(tvd((h0d(), Yue))));
138575 };
138576 _2.Tl = function Kee() {
138577 throw vbb(new mde(tvd((h0d(), Yue))));
138578 };
138579 _2.Ul = function Lee() {
138580 throw vbb(new mde(tvd((h0d(), Yue))));
138581 };
138582 _2.Vl = function Mee() {
138583 var a;
138584 nde(this);
138585 a = Efe(rde(this), 0);
138586 if (this.c != 7)
138587 throw vbb(new mde(tvd((h0d(), yue))));
138588 nde(this);
138589 return a;
138590 };
138591 _2.Wl = function Nee() {
138592 throw vbb(new mde(tvd((h0d(), Yue))));
138593 };
138594 _2.Xl = function Oee(a) {
138595 nde(this);
138596 return Bfe(a, (wfe(), wfe(), new lge(3, a)));
138597 };
138598 _2.Yl = function Pee(a) {
138599 var b;
138600 nde(this);
138601 b = (wfe(), wfe(), new Lge(2));
138602 Kge(b, a);
138603 Kge(b, ffe);
138604 return b;
138605 };
138606 _2.Zl = function Qee(a) {
138607 nde(this);
138608 return wfe(), wfe(), new lge(3, a);
138609 };
138610 var cee = null, dee = null;
138611 mdb(kxe, "RegEx/ParserForXMLSchema", 1824);
138612 bcb(117, 1, yxe, xfe);
138613 _2.$l = function yfe(a) {
138614 throw vbb(new hz("Not supported."));
138615 };
138616 _2._l = function Gfe() {
138617 return -1;
138618 };
138619 _2.am = function Hfe(a) {
138620 return null;
138621 };
138622 _2.bm = function Mfe() {
138623 return null;
138624 };
138625 _2.cm = function Pfe(a) {
138626 };
138627 _2.dm = function Qfe(a) {
138628 };
138629 _2.em = function Rfe() {
138630 return 0;
138631 };
138632 _2.Ib = function Sfe() {
138633 return this.fm(0);
138634 };
138635 _2.fm = function Tfe(a) {
138636 return this.e == 11 ? "." : "";
138637 };
138638 _2.e = 0;
138639 var Yee, Zee, $ee, _ee, afe, bfe = null, cfe, dfe = null, efe, ffe, gfe = null, hfe, ife, jfe, kfe, lfe, mfe, nfe, ofe, pfe, qfe, rfe, sfe, tfe, ufe;
138640 var lbb = mdb(kxe, "RegEx/Token", 117);
138641 bcb(136, 117, { 3: 1, 136: 1, 117: 1 }, $fe);
138642 _2.fm = function bge(a) {
138643 var b, c2, d;
138644 if (this.e == 4) {
138645 if (this == efe)
138646 c2 = ".";
138647 else if (this == cfe)
138648 c2 = "\\d";
138649 else if (this == sfe)
138650 c2 = "\\w";
138651 else if (this == nfe)
138652 c2 = "\\s";
138653 else {
138654 d = new Hfb();
138655 d.a += "[";
138656 for (b = 0; b < this.b.length; b += 2) {
138657 (a & zte) != 0 && b > 0 && (d.a += ",", d);
138658 if (this.b[b] === this.b[b + 1]) {
138659 Efb(d, age(this.b[b]));
138660 } else {
138661 Efb(d, age(this.b[b]));
138662 d.a += "-";
138663 Efb(d, age(this.b[b + 1]));
138664 }
138665 }
138666 d.a += "]";
138667 c2 = d.a;
138668 }
138669 } else {
138670 if (this == jfe)
138671 c2 = "\\D";
138672 else if (this == lfe)
138673 c2 = "\\W";
138674 else if (this == kfe)
138675 c2 = "\\S";
138676 else {
138677 d = new Hfb();
138678 d.a += "[^";
138679 for (b = 0; b < this.b.length; b += 2) {
138680 (a & zte) != 0 && b > 0 && (d.a += ",", d);
138681 if (this.b[b] === this.b[b + 1]) {
138682 Efb(d, age(this.b[b]));
138683 } else {
138684 Efb(d, age(this.b[b]));
138685 d.a += "-";
138686 Efb(d, age(this.b[b + 1]));
138687 }
138688 }
138689 d.a += "]";
138690 c2 = d.a;
138691 }
138692 }
138693 return c2;
138694 };
138695 _2.a = false;
138696 _2.c = false;
138697 mdb(kxe, "RegEx/RangeToken", 136);
138698 bcb(584, 1, { 584: 1 }, cge);
138699 _2.a = 0;
138700 mdb(kxe, "RegEx/RegexParser/ReferencePosition", 584);
138701 bcb(583, 1, { 3: 1, 583: 1 }, ege);
138702 _2.Fb = function fge(a) {
138703 var b;
138704 if (a == null)
138705 return false;
138706 if (!JD(a, 583))
138707 return false;
138708 b = BD(a, 583);
138709 return dfb(this.b, b.b) && this.a == b.a;
138710 };
138711 _2.Hb = function gge() {
138712 return LCb(this.b + "/" + See(this.a));
138713 };
138714 _2.Ib = function hge() {
138715 return this.c.fm(this.a);
138716 };
138717 _2.a = 0;
138718 mdb(kxe, "RegEx/RegularExpression", 583);
138719 bcb(223, 117, yxe, ige);
138720 _2._l = function jge() {
138721 return this.a;
138722 };
138723 _2.fm = function kge(a) {
138724 var b, c2, d;
138725 switch (this.e) {
138726 case 0:
138727 switch (this.a) {
138728 case 124:
138729 case 42:
138730 case 43:
138731 case 63:
138732 case 40:
138733 case 41:
138734 case 46:
138735 case 91:
138736 case 123:
138737 case 92:
138738 d = "\\" + HD(this.a & aje);
138739 break;
138740 case 12:
138741 d = "\\f";
138742 break;
138743 case 10:
138744 d = "\\n";
138745 break;
138746 case 13:
138747 d = "\\r";
138748 break;
138749 case 9:
138750 d = "\\t";
138751 break;
138752 case 27:
138753 d = "\\e";
138754 break;
138755 default:
138756 if (this.a >= Tje) {
138757 c2 = (b = this.a >>> 0, "0" + b.toString(16));
138758 d = "\\v" + qfb(c2, c2.length - 6, c2.length);
138759 } else
138760 d = "" + HD(this.a & aje);
138761 }
138762 break;
138763 case 8:
138764 this == hfe || this == ife ? d = "" + HD(this.a & aje) : d = "\\" + HD(this.a & aje);
138765 break;
138766 default:
138767 d = null;
138768 }
138769 return d;
138770 };
138771 _2.a = 0;
138772 mdb(kxe, "RegEx/Token/CharToken", 223);
138773 bcb(309, 117, yxe, lge);
138774 _2.am = function mge(a) {
138775 return this.a;
138776 };
138777 _2.cm = function nge(a) {
138778 this.b = a;
138779 };
138780 _2.dm = function oge(a) {
138781 this.c = a;
138782 };
138783 _2.em = function pge() {
138784 return 1;
138785 };
138786 _2.fm = function qge(a) {
138787 var b;
138788 if (this.e == 3) {
138789 if (this.c < 0 && this.b < 0) {
138790 b = this.a.fm(a) + "*";
138791 } else if (this.c == this.b) {
138792 b = this.a.fm(a) + "{" + this.c + "}";
138793 } else if (this.c >= 0 && this.b >= 0) {
138794 b = this.a.fm(a) + "{" + this.c + "," + this.b + "}";
138795 } else if (this.c >= 0 && this.b < 0) {
138796 b = this.a.fm(a) + "{" + this.c + ",}";
138797 } else
138798 throw vbb(new hz("Token#toString(): CLOSURE " + this.c + She + this.b));
138799 } else {
138800 if (this.c < 0 && this.b < 0) {
138801 b = this.a.fm(a) + "*?";
138802 } else if (this.c == this.b) {
138803 b = this.a.fm(a) + "{" + this.c + "}?";
138804 } else if (this.c >= 0 && this.b >= 0) {
138805 b = this.a.fm(a) + "{" + this.c + "," + this.b + "}?";
138806 } else if (this.c >= 0 && this.b < 0) {
138807 b = this.a.fm(a) + "{" + this.c + ",}?";
138808 } else
138809 throw vbb(new hz("Token#toString(): NONGREEDYCLOSURE " + this.c + She + this.b));
138810 }
138811 return b;
138812 };
138813 _2.b = 0;
138814 _2.c = 0;
138815 mdb(kxe, "RegEx/Token/ClosureToken", 309);
138816 bcb(821, 117, yxe, rge);
138817 _2.am = function sge(a) {
138818 return a == 0 ? this.a : this.b;
138819 };
138820 _2.em = function tge() {
138821 return 2;
138822 };
138823 _2.fm = function uge(a) {
138824 var b;
138825 this.b.e == 3 && this.b.am(0) == this.a ? b = this.a.fm(a) + "+" : this.b.e == 9 && this.b.am(0) == this.a ? b = this.a.fm(a) + "+?" : b = this.a.fm(a) + ("" + this.b.fm(a));
138826 return b;
138827 };
138828 mdb(kxe, "RegEx/Token/ConcatToken", 821);
138829 bcb(1822, 117, yxe, vge);
138830 _2.am = function wge(a) {
138831 if (a == 0)
138832 return this.d;
138833 if (a == 1)
138834 return this.b;
138835 throw vbb(new hz("Internal Error: " + a));
138836 };
138837 _2.em = function xge() {
138838 return !this.b ? 1 : 2;
138839 };
138840 _2.fm = function yge(a) {
138841 var b;
138842 this.c > 0 ? b = "(?(" + this.c + ")" : this.a.e == 8 ? b = "(?(" + this.a + ")" : b = "(?" + this.a;
138843 !this.b ? b += this.d + ")" : b += this.d + "|" + this.b + ")";
138844 return b;
138845 };
138846 _2.c = 0;
138847 mdb(kxe, "RegEx/Token/ConditionToken", 1822);
138848 bcb(1823, 117, yxe, zge);
138849 _2.am = function Age(a) {
138850 return this.b;
138851 };
138852 _2.em = function Bge() {
138853 return 1;
138854 };
138855 _2.fm = function Cge(a) {
138856 return "(?" + (this.a == 0 ? "" : See(this.a)) + (this.c == 0 ? "" : See(this.c)) + ":" + this.b.fm(a) + ")";
138857 };
138858 _2.a = 0;
138859 _2.c = 0;
138860 mdb(kxe, "RegEx/Token/ModifierToken", 1823);
138861 bcb(822, 117, yxe, Dge);
138862 _2.am = function Ege(a) {
138863 return this.a;
138864 };
138865 _2.em = function Fge() {
138866 return 1;
138867 };
138868 _2.fm = function Gge(a) {
138869 var b;
138870 b = null;
138871 switch (this.e) {
138872 case 6:
138873 this.b == 0 ? b = "(?:" + this.a.fm(a) + ")" : b = "(" + this.a.fm(a) + ")";
138874 break;
138875 case 20:
138876 b = "(?=" + this.a.fm(a) + ")";
138877 break;
138878 case 21:
138879 b = "(?!" + this.a.fm(a) + ")";
138880 break;
138881 case 22:
138882 b = "(?<=" + this.a.fm(a) + ")";
138883 break;
138884 case 23:
138885 b = "(?<!" + this.a.fm(a) + ")";
138886 break;
138887 case 24:
138888 b = "(?>" + this.a.fm(a) + ")";
138889 }
138890 return b;
138891 };
138892 _2.b = 0;
138893 mdb(kxe, "RegEx/Token/ParenToken", 822);
138894 bcb(521, 117, { 3: 1, 117: 1, 521: 1 }, Hge);
138895 _2.bm = function Ige() {
138896 return this.b;
138897 };
138898 _2.fm = function Jge(a) {
138899 return this.e == 12 ? "\\" + this.a : Wee(this.b);
138900 };
138901 _2.a = 0;
138902 mdb(kxe, "RegEx/Token/StringToken", 521);
138903 bcb(465, 117, yxe, Lge);
138904 _2.$l = function Mge(a) {
138905 Kge(this, a);
138906 };
138907 _2.am = function Nge(a) {
138908 return BD(Uvb(this.a, a), 117);
138909 };
138910 _2.em = function Oge() {
138911 return !this.a ? 0 : this.a.a.c.length;
138912 };
138913 _2.fm = function Pge(a) {
138914 var b, c2, d, e, f2;
138915 if (this.e == 1) {
138916 if (this.a.a.c.length == 2) {
138917 b = BD(Uvb(this.a, 0), 117);
138918 c2 = BD(Uvb(this.a, 1), 117);
138919 c2.e == 3 && c2.am(0) == b ? e = b.fm(a) + "+" : c2.e == 9 && c2.am(0) == b ? e = b.fm(a) + "+?" : e = b.fm(a) + ("" + c2.fm(a));
138920 } else {
138921 f2 = new Hfb();
138922 for (d = 0; d < this.a.a.c.length; d++) {
138923 Efb(f2, BD(Uvb(this.a, d), 117).fm(a));
138924 }
138925 e = f2.a;
138926 }
138927 return e;
138928 }
138929 if (this.a.a.c.length == 2 && BD(Uvb(this.a, 1), 117).e == 7) {
138930 e = BD(Uvb(this.a, 0), 117).fm(a) + "?";
138931 } else if (this.a.a.c.length == 2 && BD(Uvb(this.a, 0), 117).e == 7) {
138932 e = BD(Uvb(this.a, 1), 117).fm(a) + "??";
138933 } else {
138934 f2 = new Hfb();
138935 Efb(f2, BD(Uvb(this.a, 0), 117).fm(a));
138936 for (d = 1; d < this.a.a.c.length; d++) {
138937 f2.a += "|";
138938 Efb(f2, BD(Uvb(this.a, d), 117).fm(a));
138939 }
138940 e = f2.a;
138941 }
138942 return e;
138943 };
138944 mdb(kxe, "RegEx/Token/UnionToken", 465);
138945 bcb(518, 1, { 592: 1 }, Rge);
138946 _2.Ib = function Sge() {
138947 return this.a.b;
138948 };
138949 mdb(zxe, "XMLTypeUtil/PatternMatcherImpl", 518);
138950 bcb(1622, 1381, {}, Vge);
138951 var Tge;
138952 mdb(zxe, "XMLTypeValidator", 1622);
138953 bcb(264, 1, vie, Yge);
138954 _2.Jc = function Zge(a) {
138955 reb(this, a);
138956 };
138957 _2.Kc = function $ge() {
138958 return (this.b - this.a) * this.c < 0 ? Wge : new she(this);
138959 };
138960 _2.a = 0;
138961 _2.b = 0;
138962 _2.c = 0;
138963 var Wge;
138964 mdb(Bxe, "ExclusiveRange", 264);
138965 bcb(1068, 1, jie, dhe);
138966 _2.Rb = function ehe(a) {
138967 BD(a, 19);
138968 _ge();
138969 };
138970 _2.Nb = function fhe(a) {
138971 Rrb(this, a);
138972 };
138973 _2.Pb = function ihe() {
138974 return ahe();
138975 };
138976 _2.Ub = function khe() {
138977 return bhe();
138978 };
138979 _2.Wb = function nhe(a) {
138980 BD(a, 19);
138981 che();
138982 };
138983 _2.Ob = function ghe() {
138984 return false;
138985 };
138986 _2.Sb = function hhe() {
138987 return false;
138988 };
138989 _2.Tb = function jhe() {
138990 return -1;
138991 };
138992 _2.Vb = function lhe() {
138993 return -1;
138994 };
138995 _2.Qb = function mhe() {
138996 throw vbb(new cgb(Exe));
138997 };
138998 mdb(Bxe, "ExclusiveRange/1", 1068);
138999 bcb(254, 1, jie, she);
139000 _2.Rb = function the(a) {
139001 BD(a, 19);
139002 ohe();
139003 };
139004 _2.Nb = function uhe(a) {
139005 Rrb(this, a);
139006 };
139007 _2.Pb = function xhe() {
139008 return phe(this);
139009 };
139010 _2.Ub = function zhe() {
139011 return qhe(this);
139012 };
139013 _2.Wb = function Che(a) {
139014 BD(a, 19);
139015 rhe();
139016 };
139017 _2.Ob = function vhe() {
139018 return this.c.c < 0 ? this.a >= this.c.b : this.a <= this.c.b;
139019 };
139020 _2.Sb = function whe() {
139021 return this.b > 0;
139022 };
139023 _2.Tb = function yhe() {
139024 return this.b;
139025 };
139026 _2.Vb = function Ahe() {
139027 return this.b - 1;
139028 };
139029 _2.Qb = function Bhe() {
139030 throw vbb(new cgb(Exe));
139031 };
139032 _2.a = 0;
139033 _2.b = 0;
139034 mdb(Bxe, "ExclusiveRange/RangeIterator", 254);
139035 var TD = pdb(Fve, "C");
139036 var WD = pdb(Ive, "I");
139037 var sbb = pdb(Khe, "Z");
139038 var XD = pdb(Jve, "J");
139039 var SD = pdb(Eve, "B");
139040 var UD = pdb(Gve, "D");
139041 var VD = pdb(Hve, "F");
139042 var rbb = pdb(Kve, "S");
139043 var h1 = odb("org.eclipse.elk.core.labels", "ILabelManager");
139044 var O4 = odb(Tte, "DiagnosticChain");
139045 var u8 = odb(pwe, "ResourceSet");
139046 var V4 = mdb(Tte, "InvocationTargetException", null);
139047 var Ihe = (Az(), Dz);
139048 var gwtOnLoad = gwtOnLoad = Zbb;
139049 Xbb(hcb);
139050 $bb("permProps", [[[Fxe, Gxe], [Hxe, "gecko1_8"]], [[Fxe, Gxe], [Hxe, "ie10"]], [[Fxe, Gxe], [Hxe, "ie8"]], [[Fxe, Gxe], [Hxe, "ie9"]], [[Fxe, Gxe], [Hxe, "safari"]]]);
139051 gwtOnLoad(null, "elk", null);
139052 }).call(this);
139053 }).call(this, typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {});
139054 }, {}], 3: [function(require, module3, exports3) {
139055 function _classCallCheck(instance2, Constructor) {
139056 if (!(instance2 instanceof Constructor)) {
139057 throw new TypeError("Cannot call a class as a function");
139058 }
139059 }
139060 function _possibleConstructorReturn(self2, call) {
139061 if (!self2) {
139062 throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
139063 }
139064 return call && (typeof call === "object" || typeof call === "function") ? call : self2;
139065 }
139066 function _inherits(subClass, superClass) {
139067 if (typeof superClass !== "function" && superClass !== null) {
139068 throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
139069 }
139070 subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });
139071 if (superClass)
139072 Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
139073 }
139074 var ELK2 = require("./elk-api.js").default;
139075 var ELKNode = function(_ELK) {
139076 _inherits(ELKNode2, _ELK);
139077 function ELKNode2() {
139078 var options2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
139079 _classCallCheck(this, ELKNode2);
139080 var optionsClone = Object.assign({}, options2);
139081 var workerThreadsExist = false;
139082 try {
139083 require.resolve("web-worker");
139084 workerThreadsExist = true;
139085 } catch (e) {
139086 }
139087 if (options2.workerUrl) {
139088 if (workerThreadsExist) {
139089 var Worker2 = require("web-worker");
139090 optionsClone.workerFactory = function(url) {
139091 return new Worker2(url);
139092 };
139093 } else {
139094 console.warn("Web worker requested but 'web-worker' package not installed. \nConsider installing the package or pass your own 'workerFactory' to ELK's constructor.\n... Falling back to non-web worker version.");
139095 }
139096 }
139097 if (!optionsClone.workerFactory) {
139098 var _require = require("./elk-worker.min.js"), _Worker = _require.Worker;
139099 optionsClone.workerFactory = function(url) {
139100 return new _Worker(url);
139101 };
139102 }
139103 return _possibleConstructorReturn(this, (ELKNode2.__proto__ || Object.getPrototypeOf(ELKNode2)).call(this, optionsClone));
139104 }
139105 return ELKNode2;
139106 }(ELK2);
139107 Object.defineProperty(module3.exports, "__esModule", {
139108 value: true
139109 });
139110 module3.exports = ELKNode;
139111 ELKNode.default = ELKNode;
139112 }, { "./elk-api.js": 1, "./elk-worker.min.js": 2, "web-worker": 4 }], 4: [function(require, module3, exports3) {
139113 module3.exports = Worker;
139114 }, {}] }, {}, [3])(3);
139115 });
139116 })(elk_bundled);
139117 const ELK = /* @__PURE__ */ getDefaultExportFromCjs(elk_bundledExports);
139118 const elk = new ELK();
139119 let portPos = {};
139120 const conf = {};
139121 let nodeDb = {};
139122 const addVertices = async function(vert, svgId, root2, doc, diagObj, parentLookupDb, graph) {
139123 const svg2 = root2.select(`[id="${svgId}"]`);
139124 const nodes2 = svg2.insert("g").attr("class", "nodes");
139125 const keys2 = Object.keys(vert);
139126 await Promise.all(
139127 keys2.map(async function(id2) {
139128 const vertex = vert[id2];
139129 let classStr = "default";
139130 if (vertex.classes.length > 0) {
139131 classStr = vertex.classes.join(" ");
139132 }
139133 classStr = classStr + " flowchart-label";
139134 const styles2 = getStylesFromArray(vertex.styles);
139135 let vertexText = vertex.text !== void 0 ? vertex.text : vertex.id;
139136 const labelData = { width: 0, height: 0 };
139137 const ports = [
139138 {
139139 id: vertex.id + "-west",
139140 layoutOptions: {
139141 "port.side": "WEST"
139142 }
139143 },
139144 {
139145 id: vertex.id + "-east",
139146 layoutOptions: {
139147 "port.side": "EAST"
139148 }
139149 },
139150 {
139151 id: vertex.id + "-south",
139152 layoutOptions: {
139153 "port.side": "SOUTH"
139154 }
139155 },
139156 {
139157 id: vertex.id + "-north",
139158 layoutOptions: {
139159 "port.side": "NORTH"
139160 }
139161 }
139162 ];
139163 let radious = 0;
139164 let _shape = "";
139165 let layoutOptions = {};
139166 switch (vertex.type) {
139167 case "round":
139168 radious = 5;
139169 _shape = "rect";
139170 break;
139171 case "square":
139172 _shape = "rect";
139173 break;
139174 case "diamond":
139175 _shape = "question";
139176 layoutOptions = {
139177 portConstraints: "FIXED_SIDE"
139178 };
139179 break;
139180 case "hexagon":
139181 _shape = "hexagon";
139182 break;
139183 case "odd":
139184 _shape = "rect_left_inv_arrow";
139185 break;
139186 case "lean_right":
139187 _shape = "lean_right";
139188 break;
139189 case "lean_left":
139190 _shape = "lean_left";
139191 break;
139192 case "trapezoid":
139193 _shape = "trapezoid";
139194 break;
139195 case "inv_trapezoid":
139196 _shape = "inv_trapezoid";
139197 break;
139198 case "odd_right":
139199 _shape = "rect_left_inv_arrow";
139200 break;
139201 case "circle":
139202 _shape = "circle";
139203 break;
139204 case "ellipse":
139205 _shape = "ellipse";
139206 break;
139207 case "stadium":
139208 _shape = "stadium";
139209 break;
139210 case "subroutine":
139211 _shape = "subroutine";
139212 break;
139213 case "cylinder":
139214 _shape = "cylinder";
139215 break;
139216 case "group":
139217 _shape = "rect";
139218 break;
139219 case "doublecircle":
139220 _shape = "doublecircle";
139221 break;
139222 default:
139223 _shape = "rect";
139224 }
139225 const node2 = {
139226 labelStyle: styles2.labelStyle,
139227 shape: _shape,
139228 labelText: vertexText,
139229 labelType: vertex.labelType,
139230 rx: radious,
139231 ry: radious,
139232 class: classStr,
139233 style: styles2.style,
139234 id: vertex.id,
139235 link: vertex.link,
139236 linkTarget: vertex.linkTarget,
139237 tooltip: diagObj.db.getTooltip(vertex.id) || "",
139238 domId: diagObj.db.lookUpDomId(vertex.id),
139239 haveCallback: vertex.haveCallback,
139240 width: vertex.type === "group" ? 500 : void 0,
139241 dir: vertex.dir,
139242 type: vertex.type,
139243 props: vertex.props,
139244 padding: getConfig$1().flowchart.padding
139245 };
139246 let boundingBox;
139247 let nodeEl;
139248 if (node2.type !== "group") {
139249 nodeEl = await insertNode(nodes2, node2, vertex.dir);
139250 boundingBox = nodeEl.node().getBBox();
139251 } else {
139252 doc.createElementNS("http://www.w3.org/2000/svg", "text");
139253 const { shapeSvg, bbox } = await labelHelper(nodes2, node2, void 0, true);
139254 labelData.width = bbox.width;
139255 labelData.wrappingWidth = getConfig$1().flowchart.wrappingWidth;
139256 labelData.height = bbox.height;
139257 labelData.labelNode = shapeSvg.node();
139258 node2.labelData = labelData;
139259 }
139260 const data = {
139261 id: vertex.id,
139262 ports: vertex.type === "diamond" ? ports : [],
139263 // labelStyle: styles.labelStyle,
139264 // shape: _shape,
139265 layoutOptions,
139266 labelText: vertexText,
139267 labelData,
139268 // labels: [{ text: vertexText }],
139269 // rx: radius,
139270 // ry: radius,
139271 // class: classStr,
139272 // style: styles.style,
139273 // link: vertex.link,
139274 // linkTarget: vertex.linkTarget,
139275 // tooltip: diagObj.db.getTooltip(vertex.id) || '',
139276 domId: diagObj.db.lookUpDomId(vertex.id),
139277 // haveCallback: vertex.haveCallback,
139278 width: boundingBox == null ? void 0 : boundingBox.width,
139279 height: boundingBox == null ? void 0 : boundingBox.height,
139280 // dir: vertex.dir,
139281 type: vertex.type,
139282 // props: vertex.props,
139283 // padding: getConfig().flowchart.padding,
139284 // boundingBox,
139285 el: nodeEl,
139286 parent: parentLookupDb.parentById[vertex.id]
139287 };
139288 nodeDb[node2.id] = data;
139289 })
139290 );
139291 return graph;
139292 };
139293 const getNextPosition = (position2, edgeDirection, graphDirection) => {
139294 const portPos2 = {
139295 TB: {
139296 in: {
139297 north: "north"
139298 },
139299 out: {
139300 south: "west",
139301 west: "east",
139302 east: "south"
139303 }
139304 },
139305 LR: {
139306 in: {
139307 west: "west"
139308 },
139309 out: {
139310 east: "south",
139311 south: "north",
139312 north: "east"
139313 }
139314 },
139315 RL: {
139316 in: {
139317 east: "east"
139318 },
139319 out: {
139320 west: "north",
139321 north: "south",
139322 south: "west"
139323 }
139324 },
139325 BT: {
139326 in: {
139327 south: "south"
139328 },
139329 out: {
139330 north: "east",
139331 east: "west",
139332 west: "north"
139333 }
139334 }
139335 };
139336 portPos2.TD = portPos2.TB;
139337 log$1.info("abc88", graphDirection, edgeDirection, position2);
139338 return portPos2[graphDirection][edgeDirection][position2];
139339 };
139340 const getNextPort = (node2, edgeDirection, graphDirection) => {
139341 log$1.info("getNextPort abc88", { node: node2, edgeDirection, graphDirection });
139342 if (!portPos[node2]) {
139343 switch (graphDirection) {
139344 case "TB":
139345 case "TD":
139346 portPos[node2] = {
139347 inPosition: "north",
139348 outPosition: "south"
139349 };
139350 break;
139351 case "BT":
139352 portPos[node2] = {
139353 inPosition: "south",
139354 outPosition: "north"
139355 };
139356 break;
139357 case "RL":
139358 portPos[node2] = {
139359 inPosition: "east",
139360 outPosition: "west"
139361 };
139362 break;
139363 case "LR":
139364 portPos[node2] = {
139365 inPosition: "west",
139366 outPosition: "east"
139367 };
139368 break;
139369 }
139370 }
139371 const result = edgeDirection === "in" ? portPos[node2].inPosition : portPos[node2].outPosition;
139372 if (edgeDirection === "in") {
139373 portPos[node2].inPosition = getNextPosition(
139374 portPos[node2].inPosition,
139375 edgeDirection,
139376 graphDirection
139377 );
139378 } else {
139379 portPos[node2].outPosition = getNextPosition(
139380 portPos[node2].outPosition,
139381 edgeDirection,
139382 graphDirection
139383 );
139384 }
139385 return result;
139386 };
139387 const getEdgeStartEndPoint = (edge, dir) => {
139388 let source = edge.start;
139389 let target = edge.end;
139390 const sourceId = source;
139391 const targetId = target;
139392 const startNode = nodeDb[source];
139393 const endNode = nodeDb[target];
139394 if (!startNode || !endNode) {
139395 return { source, target };
139396 }
139397 if (startNode.type === "diamond") {
139398 source = `${source}-${getNextPort(source, "out", dir)}`;
139399 }
139400 if (endNode.type === "diamond") {
139401 target = `${target}-${getNextPort(target, "in", dir)}`;
139402 }
139403 return { source, target, sourceId, targetId };
139404 };
139405 const addEdges = function(edges2, diagObj, graph, svg2) {
139406 log$1.info("abc78 edges = ", edges2);
139407 const labelsEl = svg2.insert("g").attr("class", "edgeLabels");
139408 let linkIdCnt = {};
139409 let dir = diagObj.db.getDirection();
139410 let defaultStyle2;
139411 let defaultLabelStyle;
139412 if (edges2.defaultStyle !== void 0) {
139413 const defaultStyles = getStylesFromArray(edges2.defaultStyle);
139414 defaultStyle2 = defaultStyles.style;
139415 defaultLabelStyle = defaultStyles.labelStyle;
139416 }
139417 edges2.forEach(function(edge) {
139418 const linkIdBase = "L-" + edge.start + "-" + edge.end;
139419 if (linkIdCnt[linkIdBase] === void 0) {
139420 linkIdCnt[linkIdBase] = 0;
139421 log$1.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
139422 } else {
139423 linkIdCnt[linkIdBase]++;
139424 log$1.info("abc78 new entry", linkIdBase, linkIdCnt[linkIdBase]);
139425 }
139426 let linkId = linkIdBase + "-" + linkIdCnt[linkIdBase];
139427 log$1.info("abc78 new link id to be used is", linkIdBase, linkId, linkIdCnt[linkIdBase]);
139428 const linkNameStart = "LS-" + edge.start;
139429 const linkNameEnd = "LE-" + edge.end;
139430 const edgeData = { style: "", labelStyle: "" };
139431 edgeData.minlen = edge.length || 1;
139432 if (edge.type === "arrow_open") {
139433 edgeData.arrowhead = "none";
139434 } else {
139435 edgeData.arrowhead = "normal";
139436 }
139437 edgeData.arrowTypeStart = "arrow_open";
139438 edgeData.arrowTypeEnd = "arrow_open";
139439 switch (edge.type) {
139440 case "double_arrow_cross":
139441 edgeData.arrowTypeStart = "arrow_cross";
139442 case "arrow_cross":
139443 edgeData.arrowTypeEnd = "arrow_cross";
139444 break;
139445 case "double_arrow_point":
139446 edgeData.arrowTypeStart = "arrow_point";
139447 case "arrow_point":
139448 edgeData.arrowTypeEnd = "arrow_point";
139449 break;
139450 case "double_arrow_circle":
139451 edgeData.arrowTypeStart = "arrow_circle";
139452 case "arrow_circle":
139453 edgeData.arrowTypeEnd = "arrow_circle";
139454 break;
139455 }
139456 let style = "";
139457 let labelStyle = "";
139458 switch (edge.stroke) {
139459 case "normal":
139460 style = "fill:none;";
139461 if (defaultStyle2 !== void 0) {
139462 style = defaultStyle2;
139463 }
139464 if (defaultLabelStyle !== void 0) {
139465 labelStyle = defaultLabelStyle;
139466 }
139467 edgeData.thickness = "normal";
139468 edgeData.pattern = "solid";
139469 break;
139470 case "dotted":
139471 edgeData.thickness = "normal";
139472 edgeData.pattern = "dotted";
139473 edgeData.style = "fill:none;stroke-width:2px;stroke-dasharray:3;";
139474 break;
139475 case "thick":
139476 edgeData.thickness = "thick";
139477 edgeData.pattern = "solid";
139478 edgeData.style = "stroke-width: 3.5px;fill:none;";
139479 break;
139480 }
139481 if (edge.style !== void 0) {
139482 const styles2 = getStylesFromArray(edge.style);
139483 style = styles2.style;
139484 labelStyle = styles2.labelStyle;
139485 }
139486 edgeData.style = edgeData.style += style;
139487 edgeData.labelStyle = edgeData.labelStyle += labelStyle;
139488 if (edge.interpolate !== void 0) {
139489 edgeData.curve = interpolateToCurve(edge.interpolate, curveLinear);
139490 } else if (edges2.defaultInterpolate !== void 0) {
139491 edgeData.curve = interpolateToCurve(edges2.defaultInterpolate, curveLinear);
139492 } else {
139493 edgeData.curve = interpolateToCurve(conf.curve, curveLinear);
139494 }
139495 if (edge.text === void 0) {
139496 if (edge.style !== void 0) {
139497 edgeData.arrowheadStyle = "fill: #333";
139498 }
139499 } else {
139500 edgeData.arrowheadStyle = "fill: #333";
139501 edgeData.labelpos = "c";
139502 }
139503 edgeData.labelType = edge.labelType;
139504 edgeData.label = edge.text.replace(common$1.lineBreakRegex, "\n");
139505 if (edge.style === void 0) {
139506 edgeData.style = edgeData.style || "stroke: #333; stroke-width: 1.5px;fill:none;";
139507 }
139508 edgeData.labelStyle = edgeData.labelStyle.replace("color:", "fill:");
139509 edgeData.id = linkId;
139510 edgeData.classes = "flowchart-link " + linkNameStart + " " + linkNameEnd;
139511 const labelEl = insertEdgeLabel(labelsEl, edgeData);
139512 const { source, target, sourceId, targetId } = getEdgeStartEndPoint(edge, dir);
139513 log$1.debug("abc78 source and target", source, target);
139514 graph.edges.push({
139515 id: "e" + edge.start + edge.end,
139516 sources: [source],
139517 targets: [target],
139518 sourceId,
139519 targetId,
139520 labelEl,
139521 labels: [
139522 {
139523 width: edgeData.width,
139524 height: edgeData.height,
139525 orgWidth: edgeData.width,
139526 orgHeight: edgeData.height,
139527 text: edgeData.label,
139528 layoutOptions: {
139529 "edgeLabels.inline": "true",
139530 "edgeLabels.placement": "CENTER"
139531 }
139532 }
139533 ],
139534 edgeData
139535 });
139536 });
139537 return graph;
139538 };
139539 const addMarkersToEdge = function(svgPath, edgeData, diagramType, arrowMarkerAbsolute) {
139540 let url = "";
139541 if (arrowMarkerAbsolute) {
139542 url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
139543 url = url.replace(/\(/g, "\\(");
139544 url = url.replace(/\)/g, "\\)");
139545 }
139546 switch (edgeData.arrowTypeStart) {
139547 case "arrow_cross":
139548 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-crossStart)");
139549 break;
139550 case "arrow_point":
139551 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-pointStart)");
139552 break;
139553 case "arrow_barb":
139554 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-barbStart)");
139555 break;
139556 case "arrow_circle":
139557 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-circleStart)");
139558 break;
139559 case "aggregation":
139560 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-aggregationStart)");
139561 break;
139562 case "extension":
139563 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-extensionStart)");
139564 break;
139565 case "composition":
139566 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-compositionStart)");
139567 break;
139568 case "dependency":
139569 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-dependencyStart)");
139570 break;
139571 case "lollipop":
139572 svgPath.attr("marker-start", "url(" + url + "#" + diagramType + "-lollipopStart)");
139573 break;
139574 }
139575 switch (edgeData.arrowTypeEnd) {
139576 case "arrow_cross":
139577 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-crossEnd)");
139578 break;
139579 case "arrow_point":
139580 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-pointEnd)");
139581 break;
139582 case "arrow_barb":
139583 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-barbEnd)");
139584 break;
139585 case "arrow_circle":
139586 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-circleEnd)");
139587 break;
139588 case "aggregation":
139589 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-aggregationEnd)");
139590 break;
139591 case "extension":
139592 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-extensionEnd)");
139593 break;
139594 case "composition":
139595 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-compositionEnd)");
139596 break;
139597 case "dependency":
139598 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-dependencyEnd)");
139599 break;
139600 case "lollipop":
139601 svgPath.attr("marker-end", "url(" + url + "#" + diagramType + "-lollipopEnd)");
139602 break;
139603 }
139604 };
139605 const getClasses = function(text2, diagObj) {
139606 log$1.info("Extracting classes");
139607 diagObj.db.clear("ver-2");
139608 try {
139609 diagObj.parse(text2);
139610 return diagObj.db.getClasses();
139611 } catch (e) {
139612 return {};
139613 }
139614 };
139615 const addSubGraphs = function(db2) {
139616 const parentLookupDb = { parentById: {}, childrenById: {} };
139617 const subgraphs = db2.getSubGraphs();
139618 log$1.info("Subgraphs - ", subgraphs);
139619 subgraphs.forEach(function(subgraph) {
139620 subgraph.nodes.forEach(function(node2) {
139621 parentLookupDb.parentById[node2] = subgraph.id;
139622 if (parentLookupDb.childrenById[subgraph.id] === void 0) {
139623 parentLookupDb.childrenById[subgraph.id] = [];
139624 }
139625 parentLookupDb.childrenById[subgraph.id].push(node2);
139626 });
139627 });
139628 subgraphs.forEach(function(subgraph) {
139629 ({ id: subgraph.id });
139630 if (parentLookupDb.parentById[subgraph.id] !== void 0) {
139631 parentLookupDb.parentById[subgraph.id];
139632 }
139633 });
139634 return parentLookupDb;
139635 };
139636 const calcOffset = function(src, dest, parentLookupDb) {
139637 const ancestor = findCommonAncestor(src, dest, parentLookupDb);
139638 if (ancestor === void 0 || ancestor === "root") {
139639 return { x: 0, y: 0 };
139640 }
139641 const ancestorOffset = nodeDb[ancestor].offset;
139642 return { x: ancestorOffset.posX, y: ancestorOffset.posY };
139643 };
139644 const insertEdge = function(edgesEl, edge, edgeData, diagObj, parentLookupDb) {
139645 const offset = calcOffset(edge.sourceId, edge.targetId, parentLookupDb);
139646 const src = edge.sections[0].startPoint;
139647 const dest = edge.sections[0].endPoint;
139648 const segments = edge.sections[0].bendPoints ? edge.sections[0].bendPoints : [];
139649 const segPoints = segments.map((segment) => [segment.x + offset.x, segment.y + offset.y]);
139650 const points = [
139651 [src.x + offset.x, src.y + offset.y],
139652 ...segPoints,
139653 [dest.x + offset.x, dest.y + offset.y]
139654 ];
139655 const curve = line$1().curve(curveLinear);
139656 const edgePath = edgesEl.insert("path").attr("d", curve(points)).attr("class", "path").attr("fill", "none");
139657 const edgeG = edgesEl.insert("g").attr("class", "edgeLabel");
139658 const edgeWithLabel = select(edgeG.node().appendChild(edge.labelEl));
139659 const box = edgeWithLabel.node().firstChild.getBoundingClientRect();
139660 edgeWithLabel.attr("width", box.width);
139661 edgeWithLabel.attr("height", box.height);
139662 edgeG.attr(
139663 "transform",
139664 `translate(${edge.labels[0].x + offset.x}, ${edge.labels[0].y + offset.y})`
139665 );
139666 addMarkersToEdge(edgePath, edgeData, diagObj.type, diagObj.arrowMarkerAbsolute);
139667 };
139668 const insertChildren = (nodeArray, parentLookupDb) => {
139669 nodeArray.forEach((node2) => {
139670 if (!node2.children) {
139671 node2.children = [];
139672 }
139673 const childIds = parentLookupDb.childrenById[node2.id];
139674 if (childIds) {
139675 childIds.forEach((childId) => {
139676 node2.children.push(nodeDb[childId]);
139677 });
139678 }
139679 insertChildren(node2.children, parentLookupDb);
139680 });
139681 };
139682 const draw$2 = async function(text2, id2, _version, diagObj) {
139683 var _a;
139684 diagObj.db.clear();
139685 nodeDb = {};
139686 portPos = {};
139687 diagObj.db.setGen("gen-2");
139688 diagObj.parser.parse(text2);
139689 const renderEl = select("body").append("div").attr("style", "height:400px").attr("id", "cy");
139690 let graph = {
139691 id: "root",
139692 layoutOptions: {
139693 "elk.hierarchyHandling": "INCLUDE_CHILDREN",
139694 "org.eclipse.elk.padding": "[top=100, left=100, bottom=110, right=110]",
139695 "elk.layered.spacing.edgeNodeBetweenLayers": "30",
139696 // 'elk.layered.mergeEdges': 'true',
139697 "elk.direction": "DOWN"
139698 // 'elk.ports.sameLayerEdges': true,
139699 // 'nodePlacement.strategy': 'SIMPLE',
139700 },
139701 children: [],
139702 edges: []
139703 };
139704 log$1.info("Drawing flowchart using v3 renderer", elk);
139705 let dir = diagObj.db.getDirection();
139706 switch (dir) {
139707 case "BT":
139708 graph.layoutOptions["elk.direction"] = "UP";
139709 break;
139710 case "TB":
139711 graph.layoutOptions["elk.direction"] = "DOWN";
139712 break;
139713 case "LR":
139714 graph.layoutOptions["elk.direction"] = "RIGHT";
139715 break;
139716 case "RL":
139717 graph.layoutOptions["elk.direction"] = "LEFT";
139718 break;
139719 }
139720 const { securityLevel, flowchart: conf2 } = getConfig$1();
139721 let sandboxElement;
139722 if (securityLevel === "sandbox") {
139723 sandboxElement = select("#i" + id2);
139724 }
139725 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
139726 const doc = securityLevel === "sandbox" ? sandboxElement.nodes()[0].contentDocument : document;
139727 const svg2 = root2.select(`[id="${id2}"]`);
139728 const markers2 = ["point", "circle", "cross"];
139729 insertMarkers$4(svg2, markers2, diagObj.type, diagObj.arrowMarkerAbsolute);
139730 const vert = diagObj.db.getVertices();
139731 let subG;
139732 const subGraphs2 = diagObj.db.getSubGraphs();
139733 log$1.info("Subgraphs - ", subGraphs2);
139734 for (let i2 = subGraphs2.length - 1; i2 >= 0; i2--) {
139735 subG = subGraphs2[i2];
139736 diagObj.db.addVertex(
139737 subG.id,
139738 { text: subG.title, type: subG.labelType },
139739 "group",
139740 void 0,
139741 subG.classes,
139742 subG.dir
139743 );
139744 }
139745 const subGraphsEl = svg2.insert("g").attr("class", "subgraphs");
139746 const parentLookupDb = addSubGraphs(diagObj.db);
139747 graph = await addVertices(vert, id2, root2, doc, diagObj, parentLookupDb, graph);
139748 const edgesEl = svg2.insert("g").attr("class", "edges edgePath");
139749 const edges2 = diagObj.db.getEdges();
139750 graph = addEdges(edges2, diagObj, graph, svg2);
139751 const nodes2 = Object.keys(nodeDb);
139752 nodes2.forEach((nodeId) => {
139753 const node2 = nodeDb[nodeId];
139754 if (!node2.parent) {
139755 graph.children.push(node2);
139756 }
139757 if (parentLookupDb.childrenById[nodeId] !== void 0) {
139758 node2.labels = [
139759 {
139760 text: node2.labelText,
139761 layoutOptions: {
139762 "nodeLabels.placement": "[H_CENTER, V_TOP, INSIDE]"
139763 },
139764 width: node2.labelData.width,
139765 height: node2.labelData.height
139766 // width: 100,
139767 // height: 100,
139768 }
139769 ];
139770 delete node2.x;
139771 delete node2.y;
139772 delete node2.width;
139773 delete node2.height;
139774 }
139775 });
139776 insertChildren(graph.children, parentLookupDb);
139777 log$1.info("after layout", JSON.stringify(graph, null, 2));
139778 const g = await elk.layout(graph);
139779 drawNodes$1(0, 0, g.children, svg2, subGraphsEl, diagObj, 0);
139780 log$1.info("after layout", g);
139781 (_a = g.edges) == null ? void 0 : _a.map((edge) => {
139782 insertEdge(edgesEl, edge, edge.edgeData, diagObj, parentLookupDb);
139783 });
139784 setupGraphViewbox$1({}, svg2, conf2.diagramPadding, conf2.useMaxWidth);
139785 renderEl.remove();
139786 };
139787 const drawNodes$1 = (relX, relY, nodeArray, svg2, subgraphsEl, diagObj, depth) => {
139788 nodeArray.forEach(function(node2) {
139789 if (node2) {
139790 nodeDb[node2.id].offset = {
139791 posX: node2.x + relX,
139792 posY: node2.y + relY,
139793 x: relX,
139794 y: relY,
139795 depth,
139796 width: node2.width,
139797 height: node2.height
139798 };
139799 if (node2.type === "group") {
139800 const subgraphEl = subgraphsEl.insert("g").attr("class", "subgraph");
139801 subgraphEl.insert("rect").attr("class", "subgraph subgraph-lvl-" + depth % 5 + " node").attr("x", node2.x + relX).attr("y", node2.y + relY).attr("width", node2.width).attr("height", node2.height);
139802 const label = subgraphEl.insert("g").attr("class", "label");
139803 const labelCentering = getConfig$1().flowchart.htmlLabels ? node2.labelData.width / 2 : 0;
139804 label.attr(
139805 "transform",
139806 `translate(${node2.labels[0].x + relX + node2.x + labelCentering}, ${node2.labels[0].y + relY + node2.y + 3})`
139807 );
139808 label.node().appendChild(node2.labelData.labelNode);
139809 log$1.info("Id (UGH)= ", node2.type, node2.labels);
139810 } else {
139811 log$1.info("Id (UGH)= ", node2.id);
139812 node2.el.attr(
139813 "transform",
139814 `translate(${node2.x + relX + node2.width / 2}, ${node2.y + relY + node2.height / 2})`
139815 );
139816 }
139817 }
139818 });
139819 nodeArray.forEach(function(node2) {
139820 if (node2 && node2.type === "group") {
139821 drawNodes$1(relX + node2.x, relY + node2.y, node2.children, svg2, subgraphsEl, diagObj, depth + 1);
139822 }
139823 });
139824 };
139825 const renderer$1 = {
139826 getClasses,
139827 draw: draw$2
139828 };
139829 const genSections$2 = (options2) => {
139830 let sections2 = "";
139831 for (let i2 = 0; i2 < 5; i2++) {
139832 sections2 += `
139833 .subgraph-lvl-${i2} {
139834 fill: ${options2[`surface${i2}`]};
139835 stroke: ${options2[`surfacePeer${i2}`]};
139836 }
139837 `;
139838 }
139839 return sections2;
139840 };
139841 const getStyles$2 = (options2) => `.label {
139842 font-family: ${options2.fontFamily};
139843 color: ${options2.nodeTextColor || options2.textColor};
139844 }
139845 .cluster-label text {
139846 fill: ${options2.titleColor};
139847 }
139848 .cluster-label span {
139849 color: ${options2.titleColor};
139850 }
139851
139852 .label text,span {
139853 fill: ${options2.nodeTextColor || options2.textColor};
139854 color: ${options2.nodeTextColor || options2.textColor};
139855 }
139856
139857 .node rect,
139858 .node circle,
139859 .node ellipse,
139860 .node polygon,
139861 .node path {
139862 fill: ${options2.mainBkg};
139863 stroke: ${options2.nodeBorder};
139864 stroke-width: 1px;
139865 }
139866
139867 .node .label {
139868 text-align: center;
139869 }
139870 .node.clickable {
139871 cursor: pointer;
139872 }
139873
139874 .arrowheadPath {
139875 fill: ${options2.arrowheadColor};
139876 }
139877
139878 .edgePath .path {
139879 stroke: ${options2.lineColor};
139880 stroke-width: 2.0px;
139881 }
139882
139883 .flowchart-link {
139884 stroke: ${options2.lineColor};
139885 fill: none;
139886 }
139887
139888 .edgeLabel {
139889 background-color: ${options2.edgeLabelBackground};
139890 rect {
139891 opacity: 0.85;
139892 background-color: ${options2.edgeLabelBackground};
139893 fill: ${options2.edgeLabelBackground};
139894 }
139895 text-align: center;
139896 }
139897
139898 .cluster rect {
139899 fill: ${options2.clusterBkg};
139900 stroke: ${options2.clusterBorder};
139901 stroke-width: 1px;
139902 }
139903
139904 .cluster text {
139905 fill: ${options2.titleColor};
139906 }
139907
139908 .cluster span {
139909 color: ${options2.titleColor};
139910 }
139911 /* .cluster div {
139912 color: ${options2.titleColor};
139913 } */
139914
139915 div.mermaidTooltip {
139916 position: absolute;
139917 text-align: center;
139918 max-width: 200px;
139919 padding: 2px;
139920 font-family: ${options2.fontFamily};
139921 font-size: 12px;
139922 background: ${options2.tertiaryColor};
139923 border: 1px solid ${options2.border2};
139924 border-radius: 2px;
139925 pointer-events: none;
139926 z-index: 100;
139927 }
139928
139929 .flowchartTitleText {
139930 text-anchor: middle;
139931 font-size: 18px;
139932 fill: ${options2.textColor};
139933 }
139934 .subgraph {
139935 stroke-width:2;
139936 rx:3;
139937 }
139938 // .subgraph-lvl-1 {
139939 // fill:#ccc;
139940 // // stroke:black;
139941 // }
139942
139943 .flowchart-label text {
139944 text-anchor: middle;
139945 }
139946
139947 ${genSections$2(options2)}
139948`;
139949 const styles$1 = getStyles$2;
139950 const diagram$2 = {
139951 db: db$9,
139952 renderer: renderer$1,
139953 parser: parser$n,
139954 styles: styles$1
139955 };
139956 const flowchartElkDefinition = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
139957 __proto__: null,
139958 diagram: diagram$2
139959 }, Symbol.toStringTag, { value: "Module" }));
139960 var parser$1 = function() {
139961 var o = function(k, v, o2, l) {
139962 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
139963 ;
139964 return o2;
139965 }, $V0 = [1, 2], $V1 = [1, 5], $V2 = [6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 17], $V6 = [1, 18], $V7 = [1, 19], $V8 = [1, 23], $V9 = [1, 24], $Va = [1, 27], $Vb = [4, 6, 9, 11, 17, 18, 20, 22, 23, 26, 27, 28];
139966 var parser2 = {
139967 trace: function trace() {
139968 },
139969 yy: {},
139970 symbols_: { "error": 2, "start": 3, "timeline": 4, "document": 5, "EOF": 6, "directive": 7, "line": 8, "SPACE": 9, "statement": 10, "NEWLINE": 11, "openDirective": 12, "typeDirective": 13, "closeDirective": 14, ":": 15, "argDirective": 16, "title": 17, "acc_title": 18, "acc_title_value": 19, "acc_descr": 20, "acc_descr_value": 21, "acc_descr_multiline_value": 22, "section": 23, "period_statement": 24, "event_statement": 25, "period": 26, "event": 27, "open_directive": 28, "type_directive": 29, "arg_directive": 30, "close_directive": 31, "$accept": 0, "$end": 1 },
139971 terminals_: { 2: "error", 4: "timeline", 6: "EOF", 9: "SPACE", 11: "NEWLINE", 15: ":", 17: "title", 18: "acc_title", 19: "acc_title_value", 20: "acc_descr", 21: "acc_descr_value", 22: "acc_descr_multiline_value", 23: "section", 26: "period", 27: "event", 28: "open_directive", 29: "type_directive", 30: "arg_directive", 31: "close_directive" },
139972 productions_: [0, [3, 3], [3, 2], [5, 0], [5, 2], [8, 2], [8, 1], [8, 1], [8, 1], [7, 4], [7, 6], [10, 1], [10, 2], [10, 2], [10, 1], [10, 1], [10, 1], [10, 1], [10, 1], [24, 1], [25, 1], [12, 1], [13, 1], [16, 1], [14, 1]],
139973 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
139974 var $0 = $$.length - 1;
139975 switch (yystate) {
139976 case 1:
139977 return $$[$0 - 1];
139978 case 3:
139979 this.$ = [];
139980 break;
139981 case 4:
139982 $$[$0 - 1].push($$[$0]);
139983 this.$ = $$[$0 - 1];
139984 break;
139985 case 5:
139986 case 6:
139987 this.$ = $$[$0];
139988 break;
139989 case 7:
139990 case 8:
139991 this.$ = [];
139992 break;
139993 case 11:
139994 yy.getCommonDb().setDiagramTitle($$[$0].substr(6));
139995 this.$ = $$[$0].substr(6);
139996 break;
139997 case 12:
139998 this.$ = $$[$0].trim();
139999 yy.getCommonDb().setAccTitle(this.$);
140000 break;
140001 case 13:
140002 case 14:
140003 this.$ = $$[$0].trim();
140004 yy.getCommonDb().setAccDescription(this.$);
140005 break;
140006 case 15:
140007 yy.addSection($$[$0].substr(8));
140008 this.$ = $$[$0].substr(8);
140009 break;
140010 case 19:
140011 yy.addTask($$[$0], 0, "");
140012 this.$ = $$[$0];
140013 break;
140014 case 20:
140015 yy.addEvent($$[$0].substr(2));
140016 this.$ = $$[$0];
140017 break;
140018 case 21:
140019 yy.parseDirective("%%{", "open_directive");
140020 break;
140021 case 22:
140022 yy.parseDirective($$[$0], "type_directive");
140023 break;
140024 case 23:
140025 $$[$0] = $$[$0].trim().replace(/'/g, '"');
140026 yy.parseDirective($$[$0], "arg_directive");
140027 break;
140028 case 24:
140029 yy.parseDirective("}%%", "close_directive", "timeline");
140030 break;
140031 }
140032 },
140033 table: [{ 3: 1, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 1: [3] }, o($V2, [2, 3], { 5: 6 }), { 3: 7, 4: $V0, 7: 3, 12: 4, 28: $V1 }, { 13: 8, 29: [1, 9] }, { 29: [2, 21] }, { 6: [1, 10], 7: 22, 8: 11, 9: [1, 12], 10: 13, 11: [1, 14], 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, { 1: [2, 2] }, { 14: 25, 15: [1, 26], 31: $Va }, o([15, 31], [2, 22]), o($V2, [2, 8], { 1: [2, 1] }), o($V2, [2, 4]), { 7: 22, 10: 28, 12: 4, 17: $V3, 18: $V4, 20: $V5, 22: $V6, 23: $V7, 24: 20, 25: 21, 26: $V8, 27: $V9, 28: $V1 }, o($V2, [2, 6]), o($V2, [2, 7]), o($V2, [2, 11]), { 19: [1, 29] }, { 21: [1, 30] }, o($V2, [2, 14]), o($V2, [2, 15]), o($V2, [2, 16]), o($V2, [2, 17]), o($V2, [2, 18]), o($V2, [2, 19]), o($V2, [2, 20]), { 11: [1, 31] }, { 16: 32, 30: [1, 33] }, { 11: [2, 24] }, o($V2, [2, 5]), o($V2, [2, 12]), o($V2, [2, 13]), o($Vb, [2, 9]), { 14: 34, 31: $Va }, { 31: [2, 23] }, { 11: [1, 35] }, o($Vb, [2, 10])],
140034 defaultActions: { 5: [2, 21], 7: [2, 2], 27: [2, 24], 33: [2, 23] },
140035 parseError: function parseError2(str2, hash) {
140036 if (hash.recoverable) {
140037 this.trace(str2);
140038 } else {
140039 var error = new Error(str2);
140040 error.hash = hash;
140041 throw error;
140042 }
140043 },
140044 parse: function parse2(input) {
140045 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
140046 var args = lstack.slice.call(arguments, 1);
140047 var lexer2 = Object.create(this.lexer);
140048 var sharedState = { yy: {} };
140049 for (var k in this.yy) {
140050 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
140051 sharedState.yy[k] = this.yy[k];
140052 }
140053 }
140054 lexer2.setInput(input, sharedState.yy);
140055 sharedState.yy.lexer = lexer2;
140056 sharedState.yy.parser = this;
140057 if (typeof lexer2.yylloc == "undefined") {
140058 lexer2.yylloc = {};
140059 }
140060 var yyloc = lexer2.yylloc;
140061 lstack.push(yyloc);
140062 var ranges = lexer2.options && lexer2.options.ranges;
140063 if (typeof sharedState.yy.parseError === "function") {
140064 this.parseError = sharedState.yy.parseError;
140065 } else {
140066 this.parseError = Object.getPrototypeOf(this).parseError;
140067 }
140068 function lex2() {
140069 var token2;
140070 token2 = tstack.pop() || lexer2.lex() || EOF;
140071 if (typeof token2 !== "number") {
140072 if (token2 instanceof Array) {
140073 tstack = token2;
140074 token2 = tstack.pop();
140075 }
140076 token2 = self2.symbols_[token2] || token2;
140077 }
140078 return token2;
140079 }
140080 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
140081 while (true) {
140082 state2 = stack[stack.length - 1];
140083 if (this.defaultActions[state2]) {
140084 action = this.defaultActions[state2];
140085 } else {
140086 if (symbol === null || typeof symbol == "undefined") {
140087 symbol = lex2();
140088 }
140089 action = table[state2] && table[state2][symbol];
140090 }
140091 if (typeof action === "undefined" || !action.length || !action[0]) {
140092 var errStr = "";
140093 expected = [];
140094 for (p in table[state2]) {
140095 if (this.terminals_[p] && p > TERROR) {
140096 expected.push("'" + this.terminals_[p] + "'");
140097 }
140098 }
140099 if (lexer2.showPosition) {
140100 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
140101 } else {
140102 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
140103 }
140104 this.parseError(errStr, {
140105 text: lexer2.match,
140106 token: this.terminals_[symbol] || symbol,
140107 line: lexer2.yylineno,
140108 loc: yyloc,
140109 expected
140110 });
140111 }
140112 if (action[0] instanceof Array && action.length > 1) {
140113 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
140114 }
140115 switch (action[0]) {
140116 case 1:
140117 stack.push(symbol);
140118 vstack.push(lexer2.yytext);
140119 lstack.push(lexer2.yylloc);
140120 stack.push(action[1]);
140121 symbol = null;
140122 {
140123 yyleng = lexer2.yyleng;
140124 yytext = lexer2.yytext;
140125 yylineno = lexer2.yylineno;
140126 yyloc = lexer2.yylloc;
140127 }
140128 break;
140129 case 2:
140130 len = this.productions_[action[1]][1];
140131 yyval.$ = vstack[vstack.length - len];
140132 yyval._$ = {
140133 first_line: lstack[lstack.length - (len || 1)].first_line,
140134 last_line: lstack[lstack.length - 1].last_line,
140135 first_column: lstack[lstack.length - (len || 1)].first_column,
140136 last_column: lstack[lstack.length - 1].last_column
140137 };
140138 if (ranges) {
140139 yyval._$.range = [
140140 lstack[lstack.length - (len || 1)].range[0],
140141 lstack[lstack.length - 1].range[1]
140142 ];
140143 }
140144 r = this.performAction.apply(yyval, [
140145 yytext,
140146 yyleng,
140147 yylineno,
140148 sharedState.yy,
140149 action[1],
140150 vstack,
140151 lstack
140152 ].concat(args));
140153 if (typeof r !== "undefined") {
140154 return r;
140155 }
140156 if (len) {
140157 stack = stack.slice(0, -1 * len * 2);
140158 vstack = vstack.slice(0, -1 * len);
140159 lstack = lstack.slice(0, -1 * len);
140160 }
140161 stack.push(this.productions_[action[1]][0]);
140162 vstack.push(yyval.$);
140163 lstack.push(yyval._$);
140164 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
140165 stack.push(newState);
140166 break;
140167 case 3:
140168 return true;
140169 }
140170 }
140171 return true;
140172 }
140173 };
140174 var lexer = function() {
140175 var lexer2 = {
140176 EOF: 1,
140177 parseError: function parseError2(str2, hash) {
140178 if (this.yy.parser) {
140179 this.yy.parser.parseError(str2, hash);
140180 } else {
140181 throw new Error(str2);
140182 }
140183 },
140184 // resets the lexer, sets new input
140185 setInput: function(input, yy) {
140186 this.yy = yy || this.yy || {};
140187 this._input = input;
140188 this._more = this._backtrack = this.done = false;
140189 this.yylineno = this.yyleng = 0;
140190 this.yytext = this.matched = this.match = "";
140191 this.conditionStack = ["INITIAL"];
140192 this.yylloc = {
140193 first_line: 1,
140194 first_column: 0,
140195 last_line: 1,
140196 last_column: 0
140197 };
140198 if (this.options.ranges) {
140199 this.yylloc.range = [0, 0];
140200 }
140201 this.offset = 0;
140202 return this;
140203 },
140204 // consumes and returns one char from the input
140205 input: function() {
140206 var ch = this._input[0];
140207 this.yytext += ch;
140208 this.yyleng++;
140209 this.offset++;
140210 this.match += ch;
140211 this.matched += ch;
140212 var lines = ch.match(/(?:\r\n?|\n).*/g);
140213 if (lines) {
140214 this.yylineno++;
140215 this.yylloc.last_line++;
140216 } else {
140217 this.yylloc.last_column++;
140218 }
140219 if (this.options.ranges) {
140220 this.yylloc.range[1]++;
140221 }
140222 this._input = this._input.slice(1);
140223 return ch;
140224 },
140225 // unshifts one char (or a string) into the input
140226 unput: function(ch) {
140227 var len = ch.length;
140228 var lines = ch.split(/(?:\r\n?|\n)/g);
140229 this._input = ch + this._input;
140230 this.yytext = this.yytext.substr(0, this.yytext.length - len);
140231 this.offset -= len;
140232 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
140233 this.match = this.match.substr(0, this.match.length - 1);
140234 this.matched = this.matched.substr(0, this.matched.length - 1);
140235 if (lines.length - 1) {
140236 this.yylineno -= lines.length - 1;
140237 }
140238 var r = this.yylloc.range;
140239 this.yylloc = {
140240 first_line: this.yylloc.first_line,
140241 last_line: this.yylineno + 1,
140242 first_column: this.yylloc.first_column,
140243 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
140244 };
140245 if (this.options.ranges) {
140246 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
140247 }
140248 this.yyleng = this.yytext.length;
140249 return this;
140250 },
140251 // When called from action, caches matched text and appends it on next action
140252 more: function() {
140253 this._more = true;
140254 return this;
140255 },
140256 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
140257 reject: function() {
140258 if (this.options.backtrack_lexer) {
140259 this._backtrack = true;
140260 } else {
140261 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
140262 text: "",
140263 token: null,
140264 line: this.yylineno
140265 });
140266 }
140267 return this;
140268 },
140269 // retain first n characters of the match
140270 less: function(n) {
140271 this.unput(this.match.slice(n));
140272 },
140273 // displays already matched input, i.e. for error messages
140274 pastInput: function() {
140275 var past = this.matched.substr(0, this.matched.length - this.match.length);
140276 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
140277 },
140278 // displays upcoming input, i.e. for error messages
140279 upcomingInput: function() {
140280 var next2 = this.match;
140281 if (next2.length < 20) {
140282 next2 += this._input.substr(0, 20 - next2.length);
140283 }
140284 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
140285 },
140286 // displays the character position where the lexing error occurred, i.e. for error messages
140287 showPosition: function() {
140288 var pre = this.pastInput();
140289 var c2 = new Array(pre.length + 1).join("-");
140290 return pre + this.upcomingInput() + "\n" + c2 + "^";
140291 },
140292 // test the lexed token: return FALSE when not a match, otherwise return token
140293 test_match: function(match, indexed_rule) {
140294 var token2, lines, backup;
140295 if (this.options.backtrack_lexer) {
140296 backup = {
140297 yylineno: this.yylineno,
140298 yylloc: {
140299 first_line: this.yylloc.first_line,
140300 last_line: this.last_line,
140301 first_column: this.yylloc.first_column,
140302 last_column: this.yylloc.last_column
140303 },
140304 yytext: this.yytext,
140305 match: this.match,
140306 matches: this.matches,
140307 matched: this.matched,
140308 yyleng: this.yyleng,
140309 offset: this.offset,
140310 _more: this._more,
140311 _input: this._input,
140312 yy: this.yy,
140313 conditionStack: this.conditionStack.slice(0),
140314 done: this.done
140315 };
140316 if (this.options.ranges) {
140317 backup.yylloc.range = this.yylloc.range.slice(0);
140318 }
140319 }
140320 lines = match[0].match(/(?:\r\n?|\n).*/g);
140321 if (lines) {
140322 this.yylineno += lines.length;
140323 }
140324 this.yylloc = {
140325 first_line: this.yylloc.last_line,
140326 last_line: this.yylineno + 1,
140327 first_column: this.yylloc.last_column,
140328 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
140329 };
140330 this.yytext += match[0];
140331 this.match += match[0];
140332 this.matches = match;
140333 this.yyleng = this.yytext.length;
140334 if (this.options.ranges) {
140335 this.yylloc.range = [this.offset, this.offset += this.yyleng];
140336 }
140337 this._more = false;
140338 this._backtrack = false;
140339 this._input = this._input.slice(match[0].length);
140340 this.matched += match[0];
140341 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
140342 if (this.done && this._input) {
140343 this.done = false;
140344 }
140345 if (token2) {
140346 return token2;
140347 } else if (this._backtrack) {
140348 for (var k in backup) {
140349 this[k] = backup[k];
140350 }
140351 return false;
140352 }
140353 return false;
140354 },
140355 // return next match in input
140356 next: function() {
140357 if (this.done) {
140358 return this.EOF;
140359 }
140360 if (!this._input) {
140361 this.done = true;
140362 }
140363 var token2, match, tempMatch, index2;
140364 if (!this._more) {
140365 this.yytext = "";
140366 this.match = "";
140367 }
140368 var rules = this._currentRules();
140369 for (var i2 = 0; i2 < rules.length; i2++) {
140370 tempMatch = this._input.match(this.rules[rules[i2]]);
140371 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
140372 match = tempMatch;
140373 index2 = i2;
140374 if (this.options.backtrack_lexer) {
140375 token2 = this.test_match(tempMatch, rules[i2]);
140376 if (token2 !== false) {
140377 return token2;
140378 } else if (this._backtrack) {
140379 match = false;
140380 continue;
140381 } else {
140382 return false;
140383 }
140384 } else if (!this.options.flex) {
140385 break;
140386 }
140387 }
140388 }
140389 if (match) {
140390 token2 = this.test_match(match, rules[index2]);
140391 if (token2 !== false) {
140392 return token2;
140393 }
140394 return false;
140395 }
140396 if (this._input === "") {
140397 return this.EOF;
140398 } else {
140399 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
140400 text: "",
140401 token: null,
140402 line: this.yylineno
140403 });
140404 }
140405 },
140406 // return next match that has a token
140407 lex: function lex2() {
140408 var r = this.next();
140409 if (r) {
140410 return r;
140411 } else {
140412 return this.lex();
140413 }
140414 },
140415 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
140416 begin: function begin(condition) {
140417 this.conditionStack.push(condition);
140418 },
140419 // pop the previously active lexer condition state off the condition stack
140420 popState: function popState() {
140421 var n = this.conditionStack.length - 1;
140422 if (n > 0) {
140423 return this.conditionStack.pop();
140424 } else {
140425 return this.conditionStack[0];
140426 }
140427 },
140428 // produce the lexer rule set which is active for the currently active lexer condition state
140429 _currentRules: function _currentRules() {
140430 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
140431 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
140432 } else {
140433 return this.conditions["INITIAL"].rules;
140434 }
140435 },
140436 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
140437 topState: function topState(n) {
140438 n = this.conditionStack.length - 1 - Math.abs(n || 0);
140439 if (n >= 0) {
140440 return this.conditionStack[n];
140441 } else {
140442 return "INITIAL";
140443 }
140444 },
140445 // alias for begin(condition)
140446 pushState: function pushState(condition) {
140447 this.begin(condition);
140448 },
140449 // return the number of states currently on the stack
140450 stateStackSize: function stateStackSize() {
140451 return this.conditionStack.length;
140452 },
140453 options: { "case-insensitive": true },
140454 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
140455 switch ($avoiding_name_collisions) {
140456 case 0:
140457 this.begin("open_directive");
140458 return 28;
140459 case 1:
140460 this.begin("type_directive");
140461 return 29;
140462 case 2:
140463 this.popState();
140464 this.begin("arg_directive");
140465 return 15;
140466 case 3:
140467 this.popState();
140468 this.popState();
140469 return 31;
140470 case 4:
140471 return 30;
140472 case 5:
140473 break;
140474 case 6:
140475 break;
140476 case 7:
140477 return 11;
140478 case 8:
140479 break;
140480 case 9:
140481 break;
140482 case 10:
140483 return 4;
140484 case 11:
140485 return 17;
140486 case 12:
140487 this.begin("acc_title");
140488 return 18;
140489 case 13:
140490 this.popState();
140491 return "acc_title_value";
140492 case 14:
140493 this.begin("acc_descr");
140494 return 20;
140495 case 15:
140496 this.popState();
140497 return "acc_descr_value";
140498 case 16:
140499 this.begin("acc_descr_multiline");
140500 break;
140501 case 17:
140502 this.popState();
140503 break;
140504 case 18:
140505 return "acc_descr_multiline_value";
140506 case 19:
140507 return 23;
140508 case 20:
140509 return 27;
140510 case 21:
140511 return 26;
140512 case 22:
140513 return 6;
140514 case 23:
140515 return "INVALID";
140516 }
140517 },
140518 rules: [/^(?:%%\{)/i, /^(?:((?:(?!\}%%)[^:.])*))/i, /^(?::)/i, /^(?:\}%%)/i, /^(?:((?:(?!\}%%).|\n)*))/i, /^(?:%(?!\{)[^\n]*)/i, /^(?:[^\}]%%[^\n]*)/i, /^(?:[\n]+)/i, /^(?:\s+)/i, /^(?:#[^\n]*)/i, /^(?:timeline\b)/i, /^(?:title\s[^#\n;]+)/i, /^(?:accTitle\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*:\s*)/i, /^(?:(?!\n||)*[^\n]*)/i, /^(?:accDescr\s*\{\s*)/i, /^(?:[\}])/i, /^(?:[^\}]*)/i, /^(?:section\s[^#:\n;]+)/i, /^(?::\s[^#:\n;]+)/i, /^(?:[^#:\n;]+)/i, /^(?:$)/i, /^(?:.)/i],
140519 conditions: { "open_directive": { "rules": [1], "inclusive": false }, "type_directive": { "rules": [2, 3], "inclusive": false }, "arg_directive": { "rules": [3, 4], "inclusive": false }, "acc_descr_multiline": { "rules": [17, 18], "inclusive": false }, "acc_descr": { "rules": [15], "inclusive": false }, "acc_title": { "rules": [13], "inclusive": false }, "INITIAL": { "rules": [0, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 19, 20, 21, 22, 23], "inclusive": true } }
140520 };
140521 return lexer2;
140522 }();
140523 parser2.lexer = lexer;
140524 function Parser() {
140525 this.yy = {};
140526 }
140527 Parser.prototype = parser2;
140528 parser2.Parser = Parser;
140529 return new Parser();
140530 }();
140531 parser$1.parser = parser$1;
140532 const parser$2 = parser$1;
140533 let currentSection = "";
140534 let currentTaskId = 0;
140535 const sections = [];
140536 const tasks = [];
140537 const rawTasks = [];
140538 const getCommonDb = () => commonDb$1;
140539 const parseDirective = (statement, context, type2) => {
140540 parseDirective$e(globalThis, statement, context, type2);
140541 };
140542 const clear$1 = function() {
140543 sections.length = 0;
140544 tasks.length = 0;
140545 currentSection = "";
140546 rawTasks.length = 0;
140547 clear$j();
140548 };
140549 const addSection = function(txt) {
140550 currentSection = txt;
140551 sections.push(txt);
140552 };
140553 const getSections = function() {
140554 return sections;
140555 };
140556 const getTasks = function() {
140557 let allItemsProcessed = compileTasks();
140558 const maxDepth = 100;
140559 let iterationCount = 0;
140560 while (!allItemsProcessed && iterationCount < maxDepth) {
140561 allItemsProcessed = compileTasks();
140562 iterationCount++;
140563 }
140564 tasks.push(...rawTasks);
140565 return tasks;
140566 };
140567 const addTask = function(period, length2, event) {
140568 const rawTask = {
140569 id: currentTaskId++,
140570 section: currentSection,
140571 type: currentSection,
140572 task: period,
140573 score: length2 ? length2 : 0,
140574 //if event is defined, then add it the events array
140575 events: event ? [event] : []
140576 };
140577 rawTasks.push(rawTask);
140578 };
140579 const addEvent = function(event) {
140580 const currentTask = rawTasks.find((task) => task.id === currentTaskId - 1);
140581 currentTask.events.push(event);
140582 };
140583 const addTaskOrg = function(descr) {
140584 const newTask = {
140585 section: currentSection,
140586 type: currentSection,
140587 description: descr,
140588 task: descr,
140589 classes: []
140590 };
140591 tasks.push(newTask);
140592 };
140593 const compileTasks = function() {
140594 const compileTask = function(pos) {
140595 return rawTasks[pos].processed;
140596 };
140597 let allProcessed = true;
140598 for (const [i2, rawTask] of rawTasks.entries()) {
140599 compileTask(i2);
140600 allProcessed = allProcessed && rawTask.processed;
140601 }
140602 return allProcessed;
140603 };
140604 const timelineDb = {
140605 clear: clear$1,
140606 getCommonDb,
140607 addSection,
140608 getSections,
140609 getTasks,
140610 addTask,
140611 addTaskOrg,
140612 addEvent,
140613 parseDirective
140614 };
140615 const db = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
140616 __proto__: null,
140617 addEvent,
140618 addSection,
140619 addTask,
140620 addTaskOrg,
140621 clear: clear$1,
140622 default: timelineDb,
140623 getCommonDb,
140624 getSections,
140625 getTasks,
140626 parseDirective
140627 }, Symbol.toStringTag, { value: "Module" }));
140628 const MAX_SECTIONS$1 = 12;
140629 const drawRect = function(elem, rectData) {
140630 const rectElem = elem.append("rect");
140631 rectElem.attr("x", rectData.x);
140632 rectElem.attr("y", rectData.y);
140633 rectElem.attr("fill", rectData.fill);
140634 rectElem.attr("stroke", rectData.stroke);
140635 rectElem.attr("width", rectData.width);
140636 rectElem.attr("height", rectData.height);
140637 rectElem.attr("rx", rectData.rx);
140638 rectElem.attr("ry", rectData.ry);
140639 if (rectData.class !== void 0) {
140640 rectElem.attr("class", rectData.class);
140641 }
140642 return rectElem;
140643 };
140644 const drawFace = function(element2, faceData) {
140645 const radius = 15;
140646 const circleElement = element2.append("circle").attr("cx", faceData.cx).attr("cy", faceData.cy).attr("class", "face").attr("r", radius).attr("stroke-width", 2).attr("overflow", "visible");
140647 const face = element2.append("g");
140648 face.append("circle").attr("cx", faceData.cx - radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
140649 face.append("circle").attr("cx", faceData.cx + radius / 3).attr("cy", faceData.cy - radius / 3).attr("r", 1.5).attr("stroke-width", 2).attr("fill", "#666").attr("stroke", "#666");
140650 function smile(face2) {
140651 const arc = d3arc().startAngle(Math.PI / 2).endAngle(3 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
140652 face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 2) + ")");
140653 }
140654 function sad(face2) {
140655 const arc = d3arc().startAngle(3 * Math.PI / 2).endAngle(5 * (Math.PI / 2)).innerRadius(radius / 2).outerRadius(radius / 2.2);
140656 face2.append("path").attr("class", "mouth").attr("d", arc).attr("transform", "translate(" + faceData.cx + "," + (faceData.cy + 7) + ")");
140657 }
140658 function ambivalent(face2) {
140659 face2.append("line").attr("class", "mouth").attr("stroke", 2).attr("x1", faceData.cx - 5).attr("y1", faceData.cy + 7).attr("x2", faceData.cx + 5).attr("y2", faceData.cy + 7).attr("class", "mouth").attr("stroke-width", "1px").attr("stroke", "#666");
140660 }
140661 if (faceData.score > 3) {
140662 smile(face);
140663 } else if (faceData.score < 3) {
140664 sad(face);
140665 } else {
140666 ambivalent(face);
140667 }
140668 return circleElement;
140669 };
140670 const drawCircle = function(element2, circleData) {
140671 const circleElement = element2.append("circle");
140672 circleElement.attr("cx", circleData.cx);
140673 circleElement.attr("cy", circleData.cy);
140674 circleElement.attr("class", "actor-" + circleData.pos);
140675 circleElement.attr("fill", circleData.fill);
140676 circleElement.attr("stroke", circleData.stroke);
140677 circleElement.attr("r", circleData.r);
140678 if (circleElement.class !== void 0) {
140679 circleElement.attr("class", circleElement.class);
140680 }
140681 if (circleData.title !== void 0) {
140682 circleElement.append("title").text(circleData.title);
140683 }
140684 return circleElement;
140685 };
140686 const drawText = function(elem, textData) {
140687 const nText = textData.text.replace(/<br\s*\/?>/gi, " ");
140688 const textElem = elem.append("text");
140689 textElem.attr("x", textData.x);
140690 textElem.attr("y", textData.y);
140691 textElem.attr("class", "legend");
140692 textElem.style("text-anchor", textData.anchor);
140693 if (textData.class !== void 0) {
140694 textElem.attr("class", textData.class);
140695 }
140696 const span = textElem.append("tspan");
140697 span.attr("x", textData.x + textData.textMargin * 2);
140698 span.text(nText);
140699 return textElem;
140700 };
140701 const drawLabel = function(elem, txtObject) {
140702 function genPoints(x2, y2, width2, height2, cut) {
140703 return x2 + "," + y2 + " " + (x2 + width2) + "," + y2 + " " + (x2 + width2) + "," + (y2 + height2 - cut) + " " + (x2 + width2 - cut * 1.2) + "," + (y2 + height2) + " " + x2 + "," + (y2 + height2);
140704 }
140705 const polygon = elem.append("polygon");
140706 polygon.attr("points", genPoints(txtObject.x, txtObject.y, 50, 20, 7));
140707 polygon.attr("class", "labelBox");
140708 txtObject.y = txtObject.y + txtObject.labelMargin;
140709 txtObject.x = txtObject.x + 0.5 * txtObject.labelMargin;
140710 drawText(elem, txtObject);
140711 };
140712 const drawSection = function(elem, section, conf2) {
140713 const g = elem.append("g");
140714 const rect2 = getNoteRect();
140715 rect2.x = section.x;
140716 rect2.y = section.y;
140717 rect2.fill = section.fill;
140718 rect2.width = conf2.width;
140719 rect2.height = conf2.height;
140720 rect2.class = "journey-section section-type-" + section.num;
140721 rect2.rx = 3;
140722 rect2.ry = 3;
140723 drawRect(g, rect2);
140724 _drawTextCandidateFunc(conf2)(
140725 section.text,
140726 g,
140727 rect2.x,
140728 rect2.y,
140729 rect2.width,
140730 rect2.height,
140731 { class: "journey-section section-type-" + section.num },
140732 conf2,
140733 section.colour
140734 );
140735 };
140736 let taskCount = -1;
140737 const drawTask = function(elem, task, conf2) {
140738 const center2 = task.x + conf2.width / 2;
140739 const g = elem.append("g");
140740 taskCount++;
140741 const maxHeight = 300 + 5 * 30;
140742 g.append("line").attr("id", "task" + taskCount).attr("x1", center2).attr("y1", task.y).attr("x2", center2).attr("y2", maxHeight).attr("class", "task-line").attr("stroke-width", "1px").attr("stroke-dasharray", "4 2").attr("stroke", "#666");
140743 drawFace(g, {
140744 cx: center2,
140745 cy: 300 + (5 - task.score) * 30,
140746 score: task.score
140747 });
140748 const rect2 = getNoteRect();
140749 rect2.x = task.x;
140750 rect2.y = task.y;
140751 rect2.fill = task.fill;
140752 rect2.width = conf2.width;
140753 rect2.height = conf2.height;
140754 rect2.class = "task task-type-" + task.num;
140755 rect2.rx = 3;
140756 rect2.ry = 3;
140757 drawRect(g, rect2);
140758 task.x + 14;
140759 _drawTextCandidateFunc(conf2)(
140760 task.task,
140761 g,
140762 rect2.x,
140763 rect2.y,
140764 rect2.width,
140765 rect2.height,
140766 { class: "task" },
140767 conf2,
140768 task.colour
140769 );
140770 };
140771 const drawBackgroundRect = function(elem, bounds2) {
140772 const rectElem = drawRect(elem, {
140773 x: bounds2.startx,
140774 y: bounds2.starty,
140775 width: bounds2.stopx - bounds2.startx,
140776 height: bounds2.stopy - bounds2.starty,
140777 fill: bounds2.fill,
140778 class: "rect"
140779 });
140780 rectElem.lower();
140781 };
140782 const getTextObj = function() {
140783 return {
140784 x: 0,
140785 y: 0,
140786 fill: void 0,
140787 "text-anchor": "start",
140788 width: 100,
140789 height: 100,
140790 textMargin: 0,
140791 rx: 0,
140792 ry: 0
140793 };
140794 };
140795 const getNoteRect = function() {
140796 return {
140797 x: 0,
140798 y: 0,
140799 width: 100,
140800 anchor: "start",
140801 height: 100,
140802 rx: 0,
140803 ry: 0
140804 };
140805 };
140806 const _drawTextCandidateFunc = function() {
140807 function byText(content2, g, x2, y2, width2, height2, textAttrs, colour) {
140808 const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2 + height2 / 2 + 5).style("font-color", colour).style("text-anchor", "middle").text(content2);
140809 _setTextAttrs(text2, textAttrs);
140810 }
140811 function byTspan(content2, g, x2, y2, width2, height2, textAttrs, conf2, colour) {
140812 const { taskFontSize, taskFontFamily } = conf2;
140813 const lines = content2.split(/<br\s*\/?>/gi);
140814 for (let i2 = 0; i2 < lines.length; i2++) {
140815 const dy = i2 * taskFontSize - taskFontSize * (lines.length - 1) / 2;
140816 const text2 = g.append("text").attr("x", x2 + width2 / 2).attr("y", y2).attr("fill", colour).style("text-anchor", "middle").style("font-size", taskFontSize).style("font-family", taskFontFamily);
140817 text2.append("tspan").attr("x", x2 + width2 / 2).attr("dy", dy).text(lines[i2]);
140818 text2.attr("y", y2 + height2 / 2).attr("dominant-baseline", "central").attr("alignment-baseline", "central");
140819 _setTextAttrs(text2, textAttrs);
140820 }
140821 }
140822 function byFo(content2, g, x2, y2, width2, height2, textAttrs, conf2) {
140823 const body = g.append("switch");
140824 const f2 = body.append("foreignObject").attr("x", x2).attr("y", y2).attr("width", width2).attr("height", height2).attr("position", "fixed");
140825 const text2 = f2.append("xhtml:div").style("display", "table").style("height", "100%").style("width", "100%");
140826 text2.append("div").attr("class", "label").style("display", "table-cell").style("text-align", "center").style("vertical-align", "middle").text(content2);
140827 byTspan(content2, body, x2, y2, width2, height2, textAttrs, conf2);
140828 _setTextAttrs(text2, textAttrs);
140829 }
140830 function _setTextAttrs(toText, fromTextAttrsDict) {
140831 for (const key in fromTextAttrsDict) {
140832 if (key in fromTextAttrsDict) {
140833 toText.attr(key, fromTextAttrsDict[key]);
140834 }
140835 }
140836 }
140837 return function(conf2) {
140838 return conf2.textPlacement === "fo" ? byFo : conf2.textPlacement === "old" ? byText : byTspan;
140839 };
140840 }();
140841 const initGraphics = function(graphics) {
140842 graphics.append("defs").append("marker").attr("id", "arrowhead").attr("refX", 5).attr("refY", 2).attr("markerWidth", 6).attr("markerHeight", 4).attr("orient", "auto").append("path").attr("d", "M 0,0 V 4 L6,2 Z");
140843 };
140844 function wrap(text2, width2) {
140845 text2.each(function() {
140846 var text3 = select(this), words = text3.text().split(/(\s+|<br>)/).reverse(), word, line2 = [], lineHeight = 1.1, y2 = text3.attr("y"), dy = parseFloat(text3.attr("dy")), tspan = text3.text(null).append("tspan").attr("x", 0).attr("y", y2).attr("dy", dy + "em");
140847 for (let j = 0; j < words.length; j++) {
140848 word = words[words.length - 1 - j];
140849 line2.push(word);
140850 tspan.text(line2.join(" ").trim());
140851 if (tspan.node().getComputedTextLength() > width2 || word === "<br>") {
140852 line2.pop();
140853 tspan.text(line2.join(" ").trim());
140854 if (word === "<br>") {
140855 line2 = [""];
140856 } else {
140857 line2 = [word];
140858 }
140859 tspan = text3.append("tspan").attr("x", 0).attr("y", y2).attr("dy", lineHeight + "em").text(word);
140860 }
140861 }
140862 });
140863 }
140864 const drawNode$1 = function(elem, node2, fullSection, conf2) {
140865 const section = fullSection % MAX_SECTIONS$1 - 1;
140866 const nodeElem = elem.append("g");
140867 node2.section = section;
140868 nodeElem.attr(
140869 "class",
140870 (node2.class ? node2.class + " " : "") + "timeline-node " + ("section-" + section)
140871 );
140872 const bkgElem = nodeElem.append("g");
140873 const textElem = nodeElem.append("g");
140874 const txt = textElem.append("text").text(node2.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node2.width);
140875 const bbox = txt.node().getBBox();
140876 const fontSize = conf2.fontSize && conf2.fontSize.replace ? conf2.fontSize.replace("px", "") : conf2.fontSize;
140877 node2.height = bbox.height + fontSize * 1.1 * 0.5 + node2.padding;
140878 node2.height = Math.max(node2.height, node2.maxHeight);
140879 node2.width = node2.width + 2 * node2.padding;
140880 textElem.attr("transform", "translate(" + node2.width / 2 + ", " + node2.padding / 2 + ")");
140881 defaultBkg$1(bkgElem, node2, section);
140882 return node2;
140883 };
140884 const getVirtualNodeHeight = function(elem, node2, conf2) {
140885 const textElem = elem.append("g");
140886 const txt = textElem.append("text").text(node2.descr).attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle").call(wrap, node2.width);
140887 const bbox = txt.node().getBBox();
140888 const fontSize = conf2.fontSize && conf2.fontSize.replace ? conf2.fontSize.replace("px", "") : conf2.fontSize;
140889 textElem.remove();
140890 return bbox.height + fontSize * 1.1 * 0.5 + node2.padding;
140891 };
140892 const defaultBkg$1 = function(elem, node2, section) {
140893 const rd = 5;
140894 elem.append("path").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + node2.type).attr(
140895 "d",
140896 `M0 ${node2.height - rd} v${-node2.height + 2 * rd} q0,-5 5,-5 h${node2.width - 2 * rd} q5,0 5,5 v${node2.height - rd} H0 Z`
140897 );
140898 elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node2.height).attr("x2", node2.width).attr("y2", node2.height);
140899 };
140900 const svgDraw$1 = {
140901 drawRect,
140902 drawCircle,
140903 drawSection,
140904 drawText,
140905 drawLabel,
140906 drawTask,
140907 drawBackgroundRect,
140908 getTextObj,
140909 getNoteRect,
140910 initGraphics,
140911 drawNode: drawNode$1,
140912 getVirtualNodeHeight
140913 };
140914 const draw$1 = function(text2, id2, version2, diagObj) {
140915 var _a, _b, _c, _d;
140916 const conf2 = getConfig$1();
140917 const LEFT_MARGIN2 = conf2.leftMargin ?? 50;
140918 (_b = (_a = diagObj.db).clear) == null ? void 0 : _b.call(_a);
140919 diagObj.parser.parse(text2 + "\n");
140920 log$1.debug("timeline", diagObj.db);
140921 const securityLevel = conf2.securityLevel;
140922 let sandboxElement;
140923 if (securityLevel === "sandbox") {
140924 sandboxElement = select("#i" + id2);
140925 }
140926 const root2 = securityLevel === "sandbox" ? (
140927 // @ts-ignore d3 types are wrong
140928 select(sandboxElement.nodes()[0].contentDocument.body)
140929 ) : select("body");
140930 const svg2 = root2.select("#" + id2);
140931 svg2.append("g");
140932 const tasks2 = diagObj.db.getTasks();
140933 const title2 = diagObj.db.getCommonDb().getDiagramTitle();
140934 log$1.debug("task", tasks2);
140935 svgDraw$1.initGraphics(svg2);
140936 const sections2 = diagObj.db.getSections();
140937 log$1.debug("sections", sections2);
140938 let maxSectionHeight = 0;
140939 let maxTaskHeight = 0;
140940 let depthY = 0;
140941 let sectionBeginY = 0;
140942 let masterX = 50 + LEFT_MARGIN2;
140943 let masterY = 50;
140944 sectionBeginY = 50;
140945 let sectionNumber = 0;
140946 let hasSections = true;
140947 sections2.forEach(function(section) {
140948 const sectionNode = {
140949 number: sectionNumber,
140950 descr: section,
140951 section: sectionNumber,
140952 width: 150,
140953 padding: 20,
140954 maxHeight: maxSectionHeight
140955 };
140956 const sectionHeight = svgDraw$1.getVirtualNodeHeight(svg2, sectionNode, conf2);
140957 log$1.debug("sectionHeight before draw", sectionHeight);
140958 maxSectionHeight = Math.max(maxSectionHeight, sectionHeight + 20);
140959 });
140960 let maxEventCount = 0;
140961 let maxEventLineLength = 0;
140962 log$1.debug("tasks.length", tasks2.length);
140963 for (const [i2, task] of tasks2.entries()) {
140964 const taskNode = {
140965 number: i2,
140966 descr: task,
140967 section: task.section,
140968 width: 150,
140969 padding: 20,
140970 maxHeight: maxTaskHeight
140971 };
140972 const taskHeight = svgDraw$1.getVirtualNodeHeight(svg2, taskNode, conf2);
140973 log$1.debug("taskHeight before draw", taskHeight);
140974 maxTaskHeight = Math.max(maxTaskHeight, taskHeight + 20);
140975 maxEventCount = Math.max(maxEventCount, task.events.length);
140976 let maxEventLineLengthTemp = 0;
140977 for (let j = 0; j < task.events.length; j++) {
140978 const event = task.events[j];
140979 const eventNode = {
140980 descr: event,
140981 section: task.section,
140982 number: task.section,
140983 width: 150,
140984 padding: 20,
140985 maxHeight: 50
140986 };
140987 maxEventLineLengthTemp += svgDraw$1.getVirtualNodeHeight(svg2, eventNode, conf2);
140988 }
140989 maxEventLineLength = Math.max(maxEventLineLength, maxEventLineLengthTemp);
140990 }
140991 log$1.debug("maxSectionHeight before draw", maxSectionHeight);
140992 log$1.debug("maxTaskHeight before draw", maxTaskHeight);
140993 if (sections2 && sections2.length > 0) {
140994 sections2.forEach((section) => {
140995 const tasksForSection = tasks2.filter((task) => task.section === section);
140996 const sectionNode = {
140997 number: sectionNumber,
140998 descr: section,
140999 section: sectionNumber,
141000 width: 200 * Math.max(tasksForSection.length, 1) - 50,
141001 padding: 20,
141002 maxHeight: maxSectionHeight
141003 };
141004 log$1.debug("sectionNode", sectionNode);
141005 const sectionNodeWrapper = svg2.append("g");
141006 const node2 = svgDraw$1.drawNode(sectionNodeWrapper, sectionNode, sectionNumber, conf2);
141007 log$1.debug("sectionNode output", node2);
141008 sectionNodeWrapper.attr("transform", `translate(${masterX}, ${sectionBeginY})`);
141009 masterY += maxSectionHeight + 50;
141010 if (tasksForSection.length > 0) {
141011 drawTasks(
141012 svg2,
141013 tasksForSection,
141014 sectionNumber,
141015 masterX,
141016 masterY,
141017 maxTaskHeight,
141018 conf2,
141019 maxEventCount,
141020 maxEventLineLength,
141021 maxSectionHeight,
141022 false
141023 );
141024 }
141025 masterX += 200 * Math.max(tasksForSection.length, 1);
141026 masterY = sectionBeginY;
141027 sectionNumber++;
141028 });
141029 } else {
141030 hasSections = false;
141031 drawTasks(
141032 svg2,
141033 tasks2,
141034 sectionNumber,
141035 masterX,
141036 masterY,
141037 maxTaskHeight,
141038 conf2,
141039 maxEventCount,
141040 maxEventLineLength,
141041 maxSectionHeight,
141042 true
141043 );
141044 }
141045 const box = svg2.node().getBBox();
141046 log$1.debug("bounds", box);
141047 if (title2) {
141048 svg2.append("text").text(title2).attr("x", box.width / 2 - LEFT_MARGIN2).attr("font-size", "4ex").attr("font-weight", "bold").attr("y", 20);
141049 }
141050 depthY = hasSections ? maxSectionHeight + maxTaskHeight + 150 : maxTaskHeight + 100;
141051 const lineWrapper = svg2.append("g").attr("class", "lineWrapper");
141052 lineWrapper.append("line").attr("x1", LEFT_MARGIN2).attr("y1", depthY).attr("x2", box.width + 3 * LEFT_MARGIN2).attr("y2", depthY).attr("stroke-width", 4).attr("stroke", "black").attr("marker-end", "url(#arrowhead)");
141053 setupGraphViewbox$1(
141054 void 0,
141055 svg2,
141056 ((_c = conf2.timeline) == null ? void 0 : _c.padding) ?? 50,
141057 ((_d = conf2.timeline) == null ? void 0 : _d.useMaxWidth) ?? false
141058 );
141059 };
141060 const drawTasks = function(diagram2, tasks2, sectionColor, masterX, masterY, maxTaskHeight, conf2, maxEventCount, maxEventLineLength, maxSectionHeight, isWithoutSections) {
141061 var _a;
141062 for (const task of tasks2) {
141063 const taskNode = {
141064 descr: task.task,
141065 section: sectionColor,
141066 number: sectionColor,
141067 width: 150,
141068 padding: 20,
141069 maxHeight: maxTaskHeight
141070 };
141071 log$1.debug("taskNode", taskNode);
141072 const taskWrapper = diagram2.append("g").attr("class", "taskWrapper");
141073 const node2 = svgDraw$1.drawNode(taskWrapper, taskNode, sectionColor, conf2);
141074 const taskHeight = node2.height;
141075 log$1.debug("taskHeight after draw", taskHeight);
141076 taskWrapper.attr("transform", `translate(${masterX}, ${masterY})`);
141077 maxTaskHeight = Math.max(maxTaskHeight, taskHeight);
141078 if (task.events) {
141079 const lineWrapper = diagram2.append("g").attr("class", "lineWrapper");
141080 let lineLength = maxTaskHeight;
141081 masterY += 100;
141082 lineLength = lineLength + drawEvents(diagram2, task.events, sectionColor, masterX, masterY, conf2);
141083 masterY -= 100;
141084 lineWrapper.append("line").attr("x1", masterX + 190 / 2).attr("y1", masterY + maxTaskHeight).attr("x2", masterX + 190 / 2).attr(
141085 "y2",
141086 masterY + maxTaskHeight + (isWithoutSections ? maxTaskHeight : maxSectionHeight) + maxEventLineLength + 120
141087 ).attr("stroke-width", 2).attr("stroke", "black").attr("marker-end", "url(#arrowhead)").attr("stroke-dasharray", "5,5");
141088 }
141089 masterX = masterX + 200;
141090 if (isWithoutSections && !((_a = conf2.timeline) == null ? void 0 : _a.disableMulticolor)) {
141091 sectionColor++;
141092 }
141093 }
141094 masterY = masterY - 10;
141095 };
141096 const drawEvents = function(diagram2, events, sectionColor, masterX, masterY, conf2) {
141097 let maxEventHeight = 0;
141098 const eventBeginY = masterY;
141099 masterY = masterY + 100;
141100 for (const event of events) {
141101 const eventNode = {
141102 descr: event,
141103 section: sectionColor,
141104 number: sectionColor,
141105 width: 150,
141106 padding: 20,
141107 maxHeight: 50
141108 };
141109 log$1.debug("eventNode", eventNode);
141110 const eventWrapper = diagram2.append("g").attr("class", "eventWrapper");
141111 const node2 = svgDraw$1.drawNode(eventWrapper, eventNode, sectionColor, conf2);
141112 const eventHeight = node2.height;
141113 maxEventHeight = maxEventHeight + eventHeight;
141114 eventWrapper.attr("transform", `translate(${masterX}, ${masterY})`);
141115 masterY = masterY + 10 + eventHeight;
141116 }
141117 masterY = eventBeginY;
141118 return maxEventHeight;
141119 };
141120 const renderer = {
141121 setConf: () => {
141122 },
141123 draw: draw$1
141124 };
141125 const genSections$1 = (options2) => {
141126 let sections2 = "";
141127 for (let i2 = 0; i2 < options2.THEME_COLOR_LIMIT; i2++) {
141128 options2["lineColor" + i2] = options2["lineColor" + i2] || options2["cScaleInv" + i2];
141129 if (isDark$1(options2["lineColor" + i2])) {
141130 options2["lineColor" + i2] = lighten$1(options2["lineColor" + i2], 20);
141131 } else {
141132 options2["lineColor" + i2] = darken$1(options2["lineColor" + i2], 20);
141133 }
141134 }
141135 for (let i2 = 0; i2 < options2.THEME_COLOR_LIMIT; i2++) {
141136 const sw = "" + (17 - 3 * i2);
141137 sections2 += `
141138 .section-${i2 - 1} rect, .section-${i2 - 1} path, .section-${i2 - 1} circle, .section-${i2 - 1} path {
141139 fill: ${options2["cScale" + i2]};
141140 }
141141 .section-${i2 - 1} text {
141142 fill: ${options2["cScaleLabel" + i2]};
141143 }
141144 .node-icon-${i2 - 1} {
141145 font-size: 40px;
141146 color: ${options2["cScaleLabel" + i2]};
141147 }
141148 .section-edge-${i2 - 1}{
141149 stroke: ${options2["cScale" + i2]};
141150 }
141151 .edge-depth-${i2 - 1}{
141152 stroke-width: ${sw};
141153 }
141154 .section-${i2 - 1} line {
141155 stroke: ${options2["cScaleInv" + i2]} ;
141156 stroke-width: 3;
141157 }
141158
141159 .lineWrapper line{
141160 stroke: ${options2["cScaleLabel" + i2]} ;
141161 }
141162
141163 .disabled, .disabled circle, .disabled text {
141164 fill: lightgray;
141165 }
141166 .disabled text {
141167 fill: #efefef;
141168 }
141169 `;
141170 }
141171 return sections2;
141172 };
141173 const getStyles$1 = (options2) => `
141174 .edge {
141175 stroke-width: 3;
141176 }
141177 ${genSections$1(options2)}
141178 .section-root rect, .section-root path, .section-root circle {
141179 fill: ${options2.git0};
141180 }
141181 .section-root text {
141182 fill: ${options2.gitBranchLabel0};
141183 }
141184 .icon-container {
141185 height:100%;
141186 display: flex;
141187 justify-content: center;
141188 align-items: center;
141189 }
141190 .edge {
141191 fill: none;
141192 }
141193 .eventWrapper {
141194 filter: brightness(120%);
141195 }
141196`;
141197 const styles = getStyles$1;
141198 const diagram$1 = {
141199 db,
141200 renderer,
141201 parser: parser$2,
141202 styles
141203 };
141204 const timelineDefinition = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
141205 __proto__: null,
141206 diagram: diagram$1
141207 }, Symbol.toStringTag, { value: "Module" }));
141208 var parser = function() {
141209 var o = function(k, v, o2, l) {
141210 for (o2 = o2 || {}, l = k.length; l--; o2[k[l]] = v)
141211 ;
141212 return o2;
141213 }, $V0 = [1, 4], $V1 = [1, 13], $V2 = [1, 12], $V3 = [1, 15], $V4 = [1, 16], $V5 = [1, 20], $V6 = [1, 19], $V7 = [6, 7, 8], $V8 = [1, 26], $V9 = [1, 24], $Va = [1, 25], $Vb = [6, 7, 11], $Vc = [1, 6, 13, 15, 16, 19, 22], $Vd = [1, 33], $Ve = [1, 34], $Vf = [1, 6, 7, 11, 13, 15, 16, 19, 22];
141214 var parser2 = {
141215 trace: function trace() {
141216 },
141217 yy: {},
141218 symbols_: { "error": 2, "start": 3, "mindMap": 4, "spaceLines": 5, "SPACELINE": 6, "NL": 7, "MINDMAP": 8, "document": 9, "stop": 10, "EOF": 11, "statement": 12, "SPACELIST": 13, "node": 14, "ICON": 15, "CLASS": 16, "nodeWithId": 17, "nodeWithoutId": 18, "NODE_DSTART": 19, "NODE_DESCR": 20, "NODE_DEND": 21, "NODE_ID": 22, "$accept": 0, "$end": 1 },
141219 terminals_: { 2: "error", 6: "SPACELINE", 7: "NL", 8: "MINDMAP", 11: "EOF", 13: "SPACELIST", 15: "ICON", 16: "CLASS", 19: "NODE_DSTART", 20: "NODE_DESCR", 21: "NODE_DEND", 22: "NODE_ID" },
141220 productions_: [0, [3, 1], [3, 2], [5, 1], [5, 2], [5, 2], [4, 2], [4, 3], [10, 1], [10, 1], [10, 1], [10, 2], [10, 2], [9, 3], [9, 2], [12, 2], [12, 2], [12, 2], [12, 1], [12, 1], [12, 1], [12, 1], [12, 1], [14, 1], [14, 1], [18, 3], [17, 1], [17, 4]],
141221 performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
141222 var $0 = $$.length - 1;
141223 switch (yystate) {
141224 case 6:
141225 case 7:
141226 return yy;
141227 case 8:
141228 yy.getLogger().trace("Stop NL ");
141229 break;
141230 case 9:
141231 yy.getLogger().trace("Stop EOF ");
141232 break;
141233 case 11:
141234 yy.getLogger().trace("Stop NL2 ");
141235 break;
141236 case 12:
141237 yy.getLogger().trace("Stop EOF2 ");
141238 break;
141239 case 15:
141240 yy.getLogger().info("Node: ", $$[$0].id);
141241 yy.addNode($$[$0 - 1].length, $$[$0].id, $$[$0].descr, $$[$0].type);
141242 break;
141243 case 16:
141244 yy.getLogger().trace("Icon: ", $$[$0]);
141245 yy.decorateNode({ icon: $$[$0] });
141246 break;
141247 case 17:
141248 case 21:
141249 yy.decorateNode({ class: $$[$0] });
141250 break;
141251 case 18:
141252 yy.getLogger().trace("SPACELIST");
141253 break;
141254 case 19:
141255 yy.getLogger().trace("Node: ", $$[$0].id);
141256 yy.addNode(0, $$[$0].id, $$[$0].descr, $$[$0].type);
141257 break;
141258 case 20:
141259 yy.decorateNode({ icon: $$[$0] });
141260 break;
141261 case 25:
141262 yy.getLogger().trace("node found ..", $$[$0 - 2]);
141263 this.$ = { id: $$[$0 - 1], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };
141264 break;
141265 case 26:
141266 this.$ = { id: $$[$0], descr: $$[$0], type: yy.nodeType.DEFAULT };
141267 break;
141268 case 27:
141269 yy.getLogger().trace("node found ..", $$[$0 - 3]);
141270 this.$ = { id: $$[$0 - 3], descr: $$[$0 - 1], type: yy.getType($$[$0 - 2], $$[$0]) };
141271 break;
141272 }
141273 },
141274 table: [{ 3: 1, 4: 2, 5: 3, 6: [1, 5], 8: $V0 }, { 1: [3] }, { 1: [2, 1] }, { 4: 6, 6: [1, 7], 7: [1, 8], 8: $V0 }, { 6: $V1, 7: [1, 10], 9: 9, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($V7, [2, 3]), { 1: [2, 2] }, o($V7, [2, 4]), o($V7, [2, 5]), { 1: [2, 6], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V1, 9: 22, 12: 11, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, { 6: $V8, 7: $V9, 10: 23, 11: $Va }, o($Vb, [2, 22], { 17: 17, 18: 18, 14: 27, 15: [1, 28], 16: [1, 29], 19: $V5, 22: $V6 }), o($Vb, [2, 18]), o($Vb, [2, 19]), o($Vb, [2, 20]), o($Vb, [2, 21]), o($Vb, [2, 23]), o($Vb, [2, 24]), o($Vb, [2, 26], { 19: [1, 30] }), { 20: [1, 31] }, { 6: $V8, 7: $V9, 10: 32, 11: $Va }, { 1: [2, 7], 6: $V1, 12: 21, 13: $V2, 14: 14, 15: $V3, 16: $V4, 17: 17, 18: 18, 19: $V5, 22: $V6 }, o($Vc, [2, 14], { 7: $Vd, 11: $Ve }), o($Vf, [2, 8]), o($Vf, [2, 9]), o($Vf, [2, 10]), o($Vb, [2, 15]), o($Vb, [2, 16]), o($Vb, [2, 17]), { 20: [1, 35] }, { 21: [1, 36] }, o($Vc, [2, 13], { 7: $Vd, 11: $Ve }), o($Vf, [2, 11]), o($Vf, [2, 12]), { 21: [1, 37] }, o($Vb, [2, 25]), o($Vb, [2, 27])],
141275 defaultActions: { 2: [2, 1], 6: [2, 2] },
141276 parseError: function parseError2(str2, hash) {
141277 if (hash.recoverable) {
141278 this.trace(str2);
141279 } else {
141280 var error = new Error(str2);
141281 error.hash = hash;
141282 throw error;
141283 }
141284 },
141285 parse: function parse2(input) {
141286 var self2 = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = "", yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
141287 var args = lstack.slice.call(arguments, 1);
141288 var lexer2 = Object.create(this.lexer);
141289 var sharedState = { yy: {} };
141290 for (var k in this.yy) {
141291 if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
141292 sharedState.yy[k] = this.yy[k];
141293 }
141294 }
141295 lexer2.setInput(input, sharedState.yy);
141296 sharedState.yy.lexer = lexer2;
141297 sharedState.yy.parser = this;
141298 if (typeof lexer2.yylloc == "undefined") {
141299 lexer2.yylloc = {};
141300 }
141301 var yyloc = lexer2.yylloc;
141302 lstack.push(yyloc);
141303 var ranges = lexer2.options && lexer2.options.ranges;
141304 if (typeof sharedState.yy.parseError === "function") {
141305 this.parseError = sharedState.yy.parseError;
141306 } else {
141307 this.parseError = Object.getPrototypeOf(this).parseError;
141308 }
141309 function lex2() {
141310 var token2;
141311 token2 = tstack.pop() || lexer2.lex() || EOF;
141312 if (typeof token2 !== "number") {
141313 if (token2 instanceof Array) {
141314 tstack = token2;
141315 token2 = tstack.pop();
141316 }
141317 token2 = self2.symbols_[token2] || token2;
141318 }
141319 return token2;
141320 }
141321 var symbol, state2, action, r, yyval = {}, p, len, newState, expected;
141322 while (true) {
141323 state2 = stack[stack.length - 1];
141324 if (this.defaultActions[state2]) {
141325 action = this.defaultActions[state2];
141326 } else {
141327 if (symbol === null || typeof symbol == "undefined") {
141328 symbol = lex2();
141329 }
141330 action = table[state2] && table[state2][symbol];
141331 }
141332 if (typeof action === "undefined" || !action.length || !action[0]) {
141333 var errStr = "";
141334 expected = [];
141335 for (p in table[state2]) {
141336 if (this.terminals_[p] && p > TERROR) {
141337 expected.push("'" + this.terminals_[p] + "'");
141338 }
141339 }
141340 if (lexer2.showPosition) {
141341 errStr = "Parse error on line " + (yylineno + 1) + ":\n" + lexer2.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + (this.terminals_[symbol] || symbol) + "'";
141342 } else {
141343 errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == EOF ? "end of input" : "'" + (this.terminals_[symbol] || symbol) + "'");
141344 }
141345 this.parseError(errStr, {
141346 text: lexer2.match,
141347 token: this.terminals_[symbol] || symbol,
141348 line: lexer2.yylineno,
141349 loc: yyloc,
141350 expected
141351 });
141352 }
141353 if (action[0] instanceof Array && action.length > 1) {
141354 throw new Error("Parse Error: multiple actions possible at state: " + state2 + ", token: " + symbol);
141355 }
141356 switch (action[0]) {
141357 case 1:
141358 stack.push(symbol);
141359 vstack.push(lexer2.yytext);
141360 lstack.push(lexer2.yylloc);
141361 stack.push(action[1]);
141362 symbol = null;
141363 {
141364 yyleng = lexer2.yyleng;
141365 yytext = lexer2.yytext;
141366 yylineno = lexer2.yylineno;
141367 yyloc = lexer2.yylloc;
141368 }
141369 break;
141370 case 2:
141371 len = this.productions_[action[1]][1];
141372 yyval.$ = vstack[vstack.length - len];
141373 yyval._$ = {
141374 first_line: lstack[lstack.length - (len || 1)].first_line,
141375 last_line: lstack[lstack.length - 1].last_line,
141376 first_column: lstack[lstack.length - (len || 1)].first_column,
141377 last_column: lstack[lstack.length - 1].last_column
141378 };
141379 if (ranges) {
141380 yyval._$.range = [
141381 lstack[lstack.length - (len || 1)].range[0],
141382 lstack[lstack.length - 1].range[1]
141383 ];
141384 }
141385 r = this.performAction.apply(yyval, [
141386 yytext,
141387 yyleng,
141388 yylineno,
141389 sharedState.yy,
141390 action[1],
141391 vstack,
141392 lstack
141393 ].concat(args));
141394 if (typeof r !== "undefined") {
141395 return r;
141396 }
141397 if (len) {
141398 stack = stack.slice(0, -1 * len * 2);
141399 vstack = vstack.slice(0, -1 * len);
141400 lstack = lstack.slice(0, -1 * len);
141401 }
141402 stack.push(this.productions_[action[1]][0]);
141403 vstack.push(yyval.$);
141404 lstack.push(yyval._$);
141405 newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
141406 stack.push(newState);
141407 break;
141408 case 3:
141409 return true;
141410 }
141411 }
141412 return true;
141413 }
141414 };
141415 var lexer = function() {
141416 var lexer2 = {
141417 EOF: 1,
141418 parseError: function parseError2(str2, hash) {
141419 if (this.yy.parser) {
141420 this.yy.parser.parseError(str2, hash);
141421 } else {
141422 throw new Error(str2);
141423 }
141424 },
141425 // resets the lexer, sets new input
141426 setInput: function(input, yy) {
141427 this.yy = yy || this.yy || {};
141428 this._input = input;
141429 this._more = this._backtrack = this.done = false;
141430 this.yylineno = this.yyleng = 0;
141431 this.yytext = this.matched = this.match = "";
141432 this.conditionStack = ["INITIAL"];
141433 this.yylloc = {
141434 first_line: 1,
141435 first_column: 0,
141436 last_line: 1,
141437 last_column: 0
141438 };
141439 if (this.options.ranges) {
141440 this.yylloc.range = [0, 0];
141441 }
141442 this.offset = 0;
141443 return this;
141444 },
141445 // consumes and returns one char from the input
141446 input: function() {
141447 var ch = this._input[0];
141448 this.yytext += ch;
141449 this.yyleng++;
141450 this.offset++;
141451 this.match += ch;
141452 this.matched += ch;
141453 var lines = ch.match(/(?:\r\n?|\n).*/g);
141454 if (lines) {
141455 this.yylineno++;
141456 this.yylloc.last_line++;
141457 } else {
141458 this.yylloc.last_column++;
141459 }
141460 if (this.options.ranges) {
141461 this.yylloc.range[1]++;
141462 }
141463 this._input = this._input.slice(1);
141464 return ch;
141465 },
141466 // unshifts one char (or a string) into the input
141467 unput: function(ch) {
141468 var len = ch.length;
141469 var lines = ch.split(/(?:\r\n?|\n)/g);
141470 this._input = ch + this._input;
141471 this.yytext = this.yytext.substr(0, this.yytext.length - len);
141472 this.offset -= len;
141473 var oldLines = this.match.split(/(?:\r\n?|\n)/g);
141474 this.match = this.match.substr(0, this.match.length - 1);
141475 this.matched = this.matched.substr(0, this.matched.length - 1);
141476 if (lines.length - 1) {
141477 this.yylineno -= lines.length - 1;
141478 }
141479 var r = this.yylloc.range;
141480 this.yylloc = {
141481 first_line: this.yylloc.first_line,
141482 last_line: this.yylineno + 1,
141483 first_column: this.yylloc.first_column,
141484 last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
141485 };
141486 if (this.options.ranges) {
141487 this.yylloc.range = [r[0], r[0] + this.yyleng - len];
141488 }
141489 this.yyleng = this.yytext.length;
141490 return this;
141491 },
141492 // When called from action, caches matched text and appends it on next action
141493 more: function() {
141494 this._more = true;
141495 return this;
141496 },
141497 // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
141498 reject: function() {
141499 if (this.options.backtrack_lexer) {
141500 this._backtrack = true;
141501 } else {
141502 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n" + this.showPosition(), {
141503 text: "",
141504 token: null,
141505 line: this.yylineno
141506 });
141507 }
141508 return this;
141509 },
141510 // retain first n characters of the match
141511 less: function(n) {
141512 this.unput(this.match.slice(n));
141513 },
141514 // displays already matched input, i.e. for error messages
141515 pastInput: function() {
141516 var past = this.matched.substr(0, this.matched.length - this.match.length);
141517 return (past.length > 20 ? "..." : "") + past.substr(-20).replace(/\n/g, "");
141518 },
141519 // displays upcoming input, i.e. for error messages
141520 upcomingInput: function() {
141521 var next2 = this.match;
141522 if (next2.length < 20) {
141523 next2 += this._input.substr(0, 20 - next2.length);
141524 }
141525 return (next2.substr(0, 20) + (next2.length > 20 ? "..." : "")).replace(/\n/g, "");
141526 },
141527 // displays the character position where the lexing error occurred, i.e. for error messages
141528 showPosition: function() {
141529 var pre = this.pastInput();
141530 var c2 = new Array(pre.length + 1).join("-");
141531 return pre + this.upcomingInput() + "\n" + c2 + "^";
141532 },
141533 // test the lexed token: return FALSE when not a match, otherwise return token
141534 test_match: function(match, indexed_rule) {
141535 var token2, lines, backup;
141536 if (this.options.backtrack_lexer) {
141537 backup = {
141538 yylineno: this.yylineno,
141539 yylloc: {
141540 first_line: this.yylloc.first_line,
141541 last_line: this.last_line,
141542 first_column: this.yylloc.first_column,
141543 last_column: this.yylloc.last_column
141544 },
141545 yytext: this.yytext,
141546 match: this.match,
141547 matches: this.matches,
141548 matched: this.matched,
141549 yyleng: this.yyleng,
141550 offset: this.offset,
141551 _more: this._more,
141552 _input: this._input,
141553 yy: this.yy,
141554 conditionStack: this.conditionStack.slice(0),
141555 done: this.done
141556 };
141557 if (this.options.ranges) {
141558 backup.yylloc.range = this.yylloc.range.slice(0);
141559 }
141560 }
141561 lines = match[0].match(/(?:\r\n?|\n).*/g);
141562 if (lines) {
141563 this.yylineno += lines.length;
141564 }
141565 this.yylloc = {
141566 first_line: this.yylloc.last_line,
141567 last_line: this.yylineno + 1,
141568 first_column: this.yylloc.last_column,
141569 last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
141570 };
141571 this.yytext += match[0];
141572 this.match += match[0];
141573 this.matches = match;
141574 this.yyleng = this.yytext.length;
141575 if (this.options.ranges) {
141576 this.yylloc.range = [this.offset, this.offset += this.yyleng];
141577 }
141578 this._more = false;
141579 this._backtrack = false;
141580 this._input = this._input.slice(match[0].length);
141581 this.matched += match[0];
141582 token2 = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
141583 if (this.done && this._input) {
141584 this.done = false;
141585 }
141586 if (token2) {
141587 return token2;
141588 } else if (this._backtrack) {
141589 for (var k in backup) {
141590 this[k] = backup[k];
141591 }
141592 return false;
141593 }
141594 return false;
141595 },
141596 // return next match in input
141597 next: function() {
141598 if (this.done) {
141599 return this.EOF;
141600 }
141601 if (!this._input) {
141602 this.done = true;
141603 }
141604 var token2, match, tempMatch, index2;
141605 if (!this._more) {
141606 this.yytext = "";
141607 this.match = "";
141608 }
141609 var rules = this._currentRules();
141610 for (var i2 = 0; i2 < rules.length; i2++) {
141611 tempMatch = this._input.match(this.rules[rules[i2]]);
141612 if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
141613 match = tempMatch;
141614 index2 = i2;
141615 if (this.options.backtrack_lexer) {
141616 token2 = this.test_match(tempMatch, rules[i2]);
141617 if (token2 !== false) {
141618 return token2;
141619 } else if (this._backtrack) {
141620 match = false;
141621 continue;
141622 } else {
141623 return false;
141624 }
141625 } else if (!this.options.flex) {
141626 break;
141627 }
141628 }
141629 }
141630 if (match) {
141631 token2 = this.test_match(match, rules[index2]);
141632 if (token2 !== false) {
141633 return token2;
141634 }
141635 return false;
141636 }
141637 if (this._input === "") {
141638 return this.EOF;
141639 } else {
141640 return this.parseError("Lexical error on line " + (this.yylineno + 1) + ". Unrecognized text.\n" + this.showPosition(), {
141641 text: "",
141642 token: null,
141643 line: this.yylineno
141644 });
141645 }
141646 },
141647 // return next match that has a token
141648 lex: function lex2() {
141649 var r = this.next();
141650 if (r) {
141651 return r;
141652 } else {
141653 return this.lex();
141654 }
141655 },
141656 // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
141657 begin: function begin(condition) {
141658 this.conditionStack.push(condition);
141659 },
141660 // pop the previously active lexer condition state off the condition stack
141661 popState: function popState() {
141662 var n = this.conditionStack.length - 1;
141663 if (n > 0) {
141664 return this.conditionStack.pop();
141665 } else {
141666 return this.conditionStack[0];
141667 }
141668 },
141669 // produce the lexer rule set which is active for the currently active lexer condition state
141670 _currentRules: function _currentRules() {
141671 if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
141672 return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
141673 } else {
141674 return this.conditions["INITIAL"].rules;
141675 }
141676 },
141677 // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
141678 topState: function topState(n) {
141679 n = this.conditionStack.length - 1 - Math.abs(n || 0);
141680 if (n >= 0) {
141681 return this.conditionStack[n];
141682 } else {
141683 return "INITIAL";
141684 }
141685 },
141686 // alias for begin(condition)
141687 pushState: function pushState(condition) {
141688 this.begin(condition);
141689 },
141690 // return the number of states currently on the stack
141691 stateStackSize: function stateStackSize() {
141692 return this.conditionStack.length;
141693 },
141694 options: { "case-insensitive": true },
141695 performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
141696 switch ($avoiding_name_collisions) {
141697 case 0:
141698 yy.getLogger().trace("Found comment", yy_.yytext);
141699 return 6;
141700 case 1:
141701 return 8;
141702 case 2:
141703 this.begin("CLASS");
141704 break;
141705 case 3:
141706 this.popState();
141707 return 16;
141708 case 4:
141709 this.popState();
141710 break;
141711 case 5:
141712 yy.getLogger().trace("Begin icon");
141713 this.begin("ICON");
141714 break;
141715 case 6:
141716 yy.getLogger().trace("SPACELINE");
141717 return 6;
141718 case 7:
141719 return 7;
141720 case 8:
141721 return 15;
141722 case 9:
141723 yy.getLogger().trace("end icon");
141724 this.popState();
141725 break;
141726 case 10:
141727 yy.getLogger().trace("Exploding node");
141728 this.begin("NODE");
141729 return 19;
141730 case 11:
141731 yy.getLogger().trace("Cloud");
141732 this.begin("NODE");
141733 return 19;
141734 case 12:
141735 yy.getLogger().trace("Explosion Bang");
141736 this.begin("NODE");
141737 return 19;
141738 case 13:
141739 yy.getLogger().trace("Cloud Bang");
141740 this.begin("NODE");
141741 return 19;
141742 case 14:
141743 this.begin("NODE");
141744 return 19;
141745 case 15:
141746 this.begin("NODE");
141747 return 19;
141748 case 16:
141749 this.begin("NODE");
141750 return 19;
141751 case 17:
141752 this.begin("NODE");
141753 return 19;
141754 case 18:
141755 return 13;
141756 case 19:
141757 return 22;
141758 case 20:
141759 return 11;
141760 case 21:
141761 this.begin("NSTR2");
141762 break;
141763 case 22:
141764 return "NODE_DESCR";
141765 case 23:
141766 this.popState();
141767 break;
141768 case 24:
141769 yy.getLogger().trace("Starting NSTR");
141770 this.begin("NSTR");
141771 break;
141772 case 25:
141773 yy.getLogger().trace("description:", yy_.yytext);
141774 return "NODE_DESCR";
141775 case 26:
141776 this.popState();
141777 break;
141778 case 27:
141779 this.popState();
141780 yy.getLogger().trace("node end ))");
141781 return "NODE_DEND";
141782 case 28:
141783 this.popState();
141784 yy.getLogger().trace("node end )");
141785 return "NODE_DEND";
141786 case 29:
141787 this.popState();
141788 yy.getLogger().trace("node end ...", yy_.yytext);
141789 return "NODE_DEND";
141790 case 30:
141791 this.popState();
141792 yy.getLogger().trace("node end ((");
141793 return "NODE_DEND";
141794 case 31:
141795 this.popState();
141796 yy.getLogger().trace("node end (-");
141797 return "NODE_DEND";
141798 case 32:
141799 this.popState();
141800 yy.getLogger().trace("node end (-");
141801 return "NODE_DEND";
141802 case 33:
141803 this.popState();
141804 yy.getLogger().trace("node end ((");
141805 return "NODE_DEND";
141806 case 34:
141807 this.popState();
141808 yy.getLogger().trace("node end ((");
141809 return "NODE_DEND";
141810 case 35:
141811 yy.getLogger().trace("Long description:", yy_.yytext);
141812 return 20;
141813 case 36:
141814 yy.getLogger().trace("Long description:", yy_.yytext);
141815 return 20;
141816 }
141817 },
141818 rules: [/^(?:\s*%%.*)/i, /^(?:mindmap\b)/i, /^(?::::)/i, /^(?:.+)/i, /^(?:\n)/i, /^(?:::icon\()/i, /^(?:[\s]+[\n])/i, /^(?:[\n]+)/i, /^(?:[^\)]+)/i, /^(?:\))/i, /^(?:-\))/i, /^(?:\(-)/i, /^(?:\)\))/i, /^(?:\))/i, /^(?:\(\()/i, /^(?:\{\{)/i, /^(?:\()/i, /^(?:\[)/i, /^(?:[\s]+)/i, /^(?:[^\(\[\n\-\)\{\}]+)/i, /^(?:$)/i, /^(?:["][`])/i, /^(?:[^`"]+)/i, /^(?:[`]["])/i, /^(?:["])/i, /^(?:[^"]+)/i, /^(?:["])/i, /^(?:[\)]\))/i, /^(?:[\)])/i, /^(?:[\]])/i, /^(?:\}\})/i, /^(?:\(-)/i, /^(?:-\))/i, /^(?:\(\()/i, /^(?:\()/i, /^(?:[^\)\]\(\}]+)/i, /^(?:.+(?!\(\())/i],
141819 conditions: { "CLASS": { "rules": [3, 4], "inclusive": false }, "ICON": { "rules": [8, 9], "inclusive": false }, "NSTR2": { "rules": [22, 23], "inclusive": false }, "NSTR": { "rules": [25, 26], "inclusive": false }, "NODE": { "rules": [21, 24, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "inclusive": false }, "INITIAL": { "rules": [0, 1, 2, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "inclusive": true } }
141820 };
141821 return lexer2;
141822 }();
141823 parser2.lexer = lexer;
141824 function Parser() {
141825 this.yy = {};
141826 }
141827 Parser.prototype = parser2;
141828 parser2.Parser = Parser;
141829 return new Parser();
141830 }();
141831 parser.parser = parser;
141832 const mindmapParser = parser;
141833 const sanitizeText = (text2) => sanitizeText$6(text2, getConfig$1());
141834 let nodes = [];
141835 let cnt = 0;
141836 let elements = {};
141837 const clear = () => {
141838 nodes = [];
141839 cnt = 0;
141840 elements = {};
141841 };
141842 const getParent = function(level) {
141843 for (let i2 = nodes.length - 1; i2 >= 0; i2--) {
141844 if (nodes[i2].level < level) {
141845 return nodes[i2];
141846 }
141847 }
141848 return null;
141849 };
141850 const getMindmap = () => {
141851 return nodes.length > 0 ? nodes[0] : null;
141852 };
141853 const addNode = (level, id2, descr, type2) => {
141854 log$1.info("addNode", level, id2, descr, type2);
141855 const conf2 = getConfig$1();
141856 const node2 = {
141857 id: cnt++,
141858 nodeId: sanitizeText(id2),
141859 level,
141860 descr: sanitizeText(descr),
141861 type: type2,
141862 children: [],
141863 width: getConfig$1().mindmap.maxNodeWidth
141864 };
141865 switch (node2.type) {
141866 case nodeType.ROUNDED_RECT:
141867 node2.padding = 2 * conf2.mindmap.padding;
141868 break;
141869 case nodeType.RECT:
141870 node2.padding = 2 * conf2.mindmap.padding;
141871 break;
141872 case nodeType.HEXAGON:
141873 node2.padding = 2 * conf2.mindmap.padding;
141874 break;
141875 default:
141876 node2.padding = conf2.mindmap.padding;
141877 }
141878 const parent = getParent(level);
141879 if (parent) {
141880 parent.children.push(node2);
141881 nodes.push(node2);
141882 } else {
141883 if (nodes.length === 0) {
141884 nodes.push(node2);
141885 } else {
141886 let error = new Error(
141887 'There can be only one root. No parent could be found for ("' + node2.descr + '")'
141888 );
141889 error.hash = {
141890 text: "branch " + name,
141891 token: "branch " + name,
141892 line: "1",
141893 loc: { first_line: 1, last_line: 1, first_column: 1, last_column: 1 },
141894 expected: ['"checkout ' + name + '"']
141895 };
141896 throw error;
141897 }
141898 }
141899 };
141900 const nodeType = {
141901 DEFAULT: 0,
141902 NO_BORDER: 0,
141903 ROUNDED_RECT: 1,
141904 RECT: 2,
141905 CIRCLE: 3,
141906 CLOUD: 4,
141907 BANG: 5,
141908 HEXAGON: 6
141909 };
141910 const getType = (startStr, endStr) => {
141911 log$1.debug("In get type", startStr, endStr);
141912 switch (startStr) {
141913 case "[":
141914 return nodeType.RECT;
141915 case "(":
141916 return endStr === ")" ? nodeType.ROUNDED_RECT : nodeType.CLOUD;
141917 case "((":
141918 return nodeType.CIRCLE;
141919 case ")":
141920 return nodeType.CLOUD;
141921 case "))":
141922 return nodeType.BANG;
141923 case "{{":
141924 return nodeType.HEXAGON;
141925 default:
141926 return nodeType.DEFAULT;
141927 }
141928 };
141929 const setElementForId = (id2, element2) => {
141930 elements[id2] = element2;
141931 };
141932 const decorateNode = (decoration) => {
141933 const node2 = nodes[nodes.length - 1];
141934 if (decoration && decoration.icon) {
141935 node2.icon = sanitizeText(decoration.icon);
141936 }
141937 if (decoration && decoration.class) {
141938 node2.class = sanitizeText(decoration.class);
141939 }
141940 };
141941 const type2Str = (type2) => {
141942 switch (type2) {
141943 case nodeType.DEFAULT:
141944 return "no-border";
141945 case nodeType.RECT:
141946 return "rect";
141947 case nodeType.ROUNDED_RECT:
141948 return "rounded-rect";
141949 case nodeType.CIRCLE:
141950 return "circle";
141951 case nodeType.CLOUD:
141952 return "cloud";
141953 case nodeType.BANG:
141954 return "bang";
141955 case nodeType.HEXAGON:
141956 return "hexgon";
141957 default:
141958 return "no-border";
141959 }
141960 };
141961 let parseError;
141962 const setErrorHandler = (handler) => {
141963 parseError = handler;
141964 };
141965 const getLogger = () => log$1;
141966 const getNodeById = (id2) => nodes[id2];
141967 const getElementById = (id2) => elements[id2];
141968 const mindmapDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
141969 __proto__: null,
141970 addNode,
141971 clear,
141972 decorateNode,
141973 getElementById,
141974 getLogger,
141975 getMindmap,
141976 getNodeById,
141977 getType,
141978 nodeType,
141979 get parseError() {
141980 return parseError;
141981 },
141982 sanitizeText,
141983 setElementForId,
141984 setErrorHandler,
141985 type2Str
141986 }, Symbol.toStringTag, { value: "Module" }));
141987 const MAX_SECTIONS = 12;
141988 const defaultBkg = function(elem, node2, section) {
141989 const rd = 5;
141990 elem.append("path").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + type2Str(node2.type)).attr(
141991 "d",
141992 `M0 ${node2.height - rd} v${-node2.height + 2 * rd} q0,-5 5,-5 h${node2.width - 2 * rd} q5,0 5,5 v${node2.height - rd} H0 Z`
141993 );
141994 elem.append("line").attr("class", "node-line-" + section).attr("x1", 0).attr("y1", node2.height).attr("x2", node2.width).attr("y2", node2.height);
141995 };
141996 const rectBkg = function(elem, node2) {
141997 elem.append("rect").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + type2Str(node2.type)).attr("height", node2.height).attr("width", node2.width);
141998 };
141999 const cloudBkg = function(elem, node2) {
142000 const w2 = node2.width;
142001 const h = node2.height;
142002 const r1 = 0.15 * w2;
142003 const r2 = 0.25 * w2;
142004 const r3 = 0.35 * w2;
142005 const r4 = 0.2 * w2;
142006 elem.append("path").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + type2Str(node2.type)).attr(
142007 "d",
142008 `M0 0 a${r1},${r1} 0 0,1 ${w2 * 0.25},${-1 * w2 * 0.1}
142009 a${r3},${r3} 1 0,1 ${w2 * 0.4},${-1 * w2 * 0.1}
142010 a${r2},${r2} 1 0,1 ${w2 * 0.35},${1 * w2 * 0.2}
142011
142012 a${r1},${r1} 1 0,1 ${w2 * 0.15},${1 * h * 0.35}
142013 a${r4},${r4} 1 0,1 ${-1 * w2 * 0.15},${1 * h * 0.65}
142014
142015 a${r2},${r1} 1 0,1 ${-1 * w2 * 0.25},${w2 * 0.15}
142016 a${r3},${r3} 1 0,1 ${-1 * w2 * 0.5},${0}
142017 a${r1},${r1} 1 0,1 ${-1 * w2 * 0.25},${-1 * w2 * 0.15}
142018
142019 a${r1},${r1} 1 0,1 ${-1 * w2 * 0.1},${-1 * h * 0.35}
142020 a${r4},${r4} 1 0,1 ${w2 * 0.1},${-1 * h * 0.65}
142021
142022 H0 V0 Z`
142023 );
142024 };
142025 const bangBkg = function(elem, node2) {
142026 const w2 = node2.width;
142027 const h = node2.height;
142028 const r = 0.15 * w2;
142029 elem.append("path").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + type2Str(node2.type)).attr(
142030 "d",
142031 `M0 0 a${r},${r} 1 0,0 ${w2 * 0.25},${-1 * h * 0.1}
142032 a${r},${r} 1 0,0 ${w2 * 0.25},${0}
142033 a${r},${r} 1 0,0 ${w2 * 0.25},${0}
142034 a${r},${r} 1 0,0 ${w2 * 0.25},${1 * h * 0.1}
142035
142036 a${r},${r} 1 0,0 ${w2 * 0.15},${1 * h * 0.33}
142037 a${r * 0.8},${r * 0.8} 1 0,0 ${0},${1 * h * 0.34}
142038 a${r},${r} 1 0,0 ${-1 * w2 * 0.15},${1 * h * 0.33}
142039
142040 a${r},${r} 1 0,0 ${-1 * w2 * 0.25},${h * 0.15}
142041 a${r},${r} 1 0,0 ${-1 * w2 * 0.25},${0}
142042 a${r},${r} 1 0,0 ${-1 * w2 * 0.25},${0}
142043 a${r},${r} 1 0,0 ${-1 * w2 * 0.25},${-1 * h * 0.15}
142044
142045 a${r},${r} 1 0,0 ${-1 * w2 * 0.1},${-1 * h * 0.33}
142046 a${r * 0.8},${r * 0.8} 1 0,0 ${0},${-1 * h * 0.34}
142047 a${r},${r} 1 0,0 ${w2 * 0.1},${-1 * h * 0.33}
142048
142049 H0 V0 Z`
142050 );
142051 };
142052 const circleBkg = function(elem, node2) {
142053 elem.append("circle").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + type2Str(node2.type)).attr("r", node2.width / 2);
142054 };
142055 function insertPolygonShape(parent, w2, h, points, node2) {
142056 return parent.insert("polygon", ":first-child").attr(
142057 "points",
142058 points.map(function(d) {
142059 return d.x + "," + d.y;
142060 }).join(" ")
142061 ).attr("transform", "translate(" + (node2.width - w2) / 2 + ", " + h + ")");
142062 }
142063 const hexagonBkg = function(elem, node2) {
142064 const h = node2.height;
142065 const f2 = 4;
142066 const m = h / f2;
142067 const w2 = node2.width - node2.padding + 2 * m;
142068 const points = [
142069 { x: m, y: 0 },
142070 { x: w2 - m, y: 0 },
142071 { x: w2, y: -h / 2 },
142072 { x: w2 - m, y: -h },
142073 { x: m, y: -h },
142074 { x: 0, y: -h / 2 }
142075 ];
142076 insertPolygonShape(elem, w2, h, points, node2);
142077 };
142078 const roundedRectBkg = function(elem, node2) {
142079 elem.append("rect").attr("id", "node-" + node2.id).attr("class", "node-bkg node-" + type2Str(node2.type)).attr("height", node2.height).attr("rx", node2.padding).attr("ry", node2.padding).attr("width", node2.width);
142080 };
142081 const drawNode = function(elem, node2, fullSection, conf2) {
142082 const htmlLabels = conf2.htmlLabels;
142083 const section = fullSection % (MAX_SECTIONS - 1);
142084 const nodeElem = elem.append("g");
142085 node2.section = section;
142086 let sectionClass = "section-" + section;
142087 if (section < 0) {
142088 sectionClass += " section-root";
142089 }
142090 nodeElem.attr("class", (node2.class ? node2.class + " " : "") + "mindmap-node " + sectionClass);
142091 const bkgElem = nodeElem.append("g");
142092 const textElem = nodeElem.append("g");
142093 const description2 = node2.descr.replace(/(<br\/*>)/g, "\n");
142094 createText(textElem, description2, {
142095 useHtmlLabels: htmlLabels,
142096 width: node2.width,
142097 classes: "mindmap-node-label"
142098 });
142099 if (!htmlLabels) {
142100 textElem.attr("dy", "1em").attr("alignment-baseline", "middle").attr("dominant-baseline", "middle").attr("text-anchor", "middle");
142101 }
142102 const bbox = textElem.node().getBBox();
142103 const fontSize = conf2.fontSize.replace ? conf2.fontSize.replace("px", "") : conf2.fontSize;
142104 node2.height = bbox.height + fontSize * 1.1 * 0.5 + node2.padding;
142105 node2.width = bbox.width + 2 * node2.padding;
142106 if (node2.icon) {
142107 if (node2.type === nodeType.CIRCLE) {
142108 node2.height += 50;
142109 node2.width += 50;
142110 const icon = nodeElem.append("foreignObject").attr("height", "50px").attr("width", node2.width).attr("style", "text-align: center;");
142111 icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node2.icon);
142112 textElem.attr(
142113 "transform",
142114 "translate(" + node2.width / 2 + ", " + (node2.height / 2 - 1.5 * node2.padding) + ")"
142115 );
142116 } else {
142117 node2.width += 50;
142118 const orgHeight = node2.height;
142119 node2.height = Math.max(orgHeight, 60);
142120 const heightDiff = Math.abs(node2.height - orgHeight);
142121 const icon = nodeElem.append("foreignObject").attr("width", "60px").attr("height", node2.height).attr("style", "text-align: center;margin-top:" + heightDiff / 2 + "px;");
142122 icon.append("div").attr("class", "icon-container").append("i").attr("class", "node-icon-" + section + " " + node2.icon);
142123 textElem.attr(
142124 "transform",
142125 "translate(" + (25 + node2.width / 2) + ", " + (heightDiff / 2 + node2.padding / 2) + ")"
142126 );
142127 }
142128 } else {
142129 if (!htmlLabels) {
142130 const dx = node2.width / 2;
142131 const dy = node2.padding / 2;
142132 textElem.attr("transform", "translate(" + dx + ", " + dy + ")");
142133 } else {
142134 const dx = (node2.width - bbox.width) / 2;
142135 const dy = (node2.height - bbox.height) / 2;
142136 textElem.attr("transform", "translate(" + dx + ", " + dy + ")");
142137 }
142138 }
142139 switch (node2.type) {
142140 case nodeType.DEFAULT:
142141 defaultBkg(bkgElem, node2, section);
142142 break;
142143 case nodeType.ROUNDED_RECT:
142144 roundedRectBkg(bkgElem, node2);
142145 break;
142146 case nodeType.RECT:
142147 rectBkg(bkgElem, node2);
142148 break;
142149 case nodeType.CIRCLE:
142150 bkgElem.attr("transform", "translate(" + node2.width / 2 + ", " + +node2.height / 2 + ")");
142151 circleBkg(bkgElem, node2);
142152 break;
142153 case nodeType.CLOUD:
142154 cloudBkg(bkgElem, node2);
142155 break;
142156 case nodeType.BANG:
142157 bangBkg(bkgElem, node2);
142158 break;
142159 case nodeType.HEXAGON:
142160 hexagonBkg(bkgElem, node2);
142161 break;
142162 }
142163 setElementForId(node2.id, nodeElem);
142164 return node2.height;
142165 };
142166 const drawEdge = function drawEdge2(edgesElem, mindmap2, parent, depth, fullSection) {
142167 const section = fullSection % (MAX_SECTIONS - 1);
142168 const sx = parent.x + parent.width / 2;
142169 const sy = parent.y + parent.height / 2;
142170 const ex = mindmap2.x + mindmap2.width / 2;
142171 const ey = mindmap2.y + mindmap2.height / 2;
142172 const mx = ex > sx ? sx + Math.abs(sx - ex) / 2 : sx - Math.abs(sx - ex) / 2;
142173 const my = ey > sy ? sy + Math.abs(sy - ey) / 2 : sy - Math.abs(sy - ey) / 2;
142174 const qx = ex > sx ? Math.abs(sx - mx) / 2 + sx : -Math.abs(sx - mx) / 2 + sx;
142175 const qy = ey > sy ? Math.abs(sy - my) / 2 + sy : -Math.abs(sy - my) / 2 + sy;
142176 edgesElem.append("path").attr(
142177 "d",
142178 parent.direction === "TB" || parent.direction === "BT" ? `M${sx},${sy} Q${sx},${qy} ${mx},${my} T${ex},${ey}` : `M${sx},${sy} Q${qx},${sy} ${mx},${my} T${ex},${ey}`
142179 ).attr("class", "edge section-edge-" + section + " edge-depth-" + depth);
142180 };
142181 const positionNode = function(node2) {
142182 const nodeElem = getElementById(node2.id);
142183 const x2 = node2.x || 0;
142184 const y2 = node2.y || 0;
142185 nodeElem.attr("transform", "translate(" + x2 + "," + y2 + ")");
142186 };
142187 const svgDraw = { drawNode, positionNode, drawEdge };
142188 var cytoscape_umdExports = {};
142189 var cytoscape_umd = {
142190 get exports() {
142191 return cytoscape_umdExports;
142192 },
142193 set exports(v) {
142194 cytoscape_umdExports = v;
142195 }
142196 };
142197 (function(module2, exports2) {
142198 (function(global2, factory) {
142199 module2.exports = factory();
142200 })(commonjsGlobal, function() {
142201 function _typeof(obj) {
142202 "@babel/helpers - typeof";
142203 return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) {
142204 return typeof obj2;
142205 } : function(obj2) {
142206 return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
142207 }, _typeof(obj);
142208 }
142209 function _classCallCheck(instance2, Constructor) {
142210 if (!(instance2 instanceof Constructor)) {
142211 throw new TypeError("Cannot call a class as a function");
142212 }
142213 }
142214 function _defineProperties(target, props) {
142215 for (var i3 = 0; i3 < props.length; i3++) {
142216 var descriptor = props[i3];
142217 descriptor.enumerable = descriptor.enumerable || false;
142218 descriptor.configurable = true;
142219 if ("value" in descriptor)
142220 descriptor.writable = true;
142221 Object.defineProperty(target, descriptor.key, descriptor);
142222 }
142223 }
142224 function _createClass(Constructor, protoProps, staticProps) {
142225 if (protoProps)
142226 _defineProperties(Constructor.prototype, protoProps);
142227 if (staticProps)
142228 _defineProperties(Constructor, staticProps);
142229 Object.defineProperty(Constructor, "prototype", {
142230 writable: false
142231 });
142232 return Constructor;
142233 }
142234 function _defineProperty$1(obj, key, value) {
142235 if (key in obj) {
142236 Object.defineProperty(obj, key, {
142237 value,
142238 enumerable: true,
142239 configurable: true,
142240 writable: true
142241 });
142242 } else {
142243 obj[key] = value;
142244 }
142245 return obj;
142246 }
142247 function _slicedToArray(arr, i3) {
142248 return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i3) || _unsupportedIterableToArray(arr, i3) || _nonIterableRest();
142249 }
142250 function _arrayWithHoles(arr) {
142251 if (Array.isArray(arr))
142252 return arr;
142253 }
142254 function _iterableToArrayLimit(arr, i3) {
142255 var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
142256 if (_i == null)
142257 return;
142258 var _arr = [];
142259 var _n = true;
142260 var _d = false;
142261 var _s, _e;
142262 try {
142263 for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
142264 _arr.push(_s.value);
142265 if (i3 && _arr.length === i3)
142266 break;
142267 }
142268 } catch (err) {
142269 _d = true;
142270 _e = err;
142271 } finally {
142272 try {
142273 if (!_n && _i["return"] != null)
142274 _i["return"]();
142275 } finally {
142276 if (_d)
142277 throw _e;
142278 }
142279 }
142280 return _arr;
142281 }
142282 function _unsupportedIterableToArray(o, minLen) {
142283 if (!o)
142284 return;
142285 if (typeof o === "string")
142286 return _arrayLikeToArray(o, minLen);
142287 var n = Object.prototype.toString.call(o).slice(8, -1);
142288 if (n === "Object" && o.constructor)
142289 n = o.constructor.name;
142290 if (n === "Map" || n === "Set")
142291 return Array.from(o);
142292 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
142293 return _arrayLikeToArray(o, minLen);
142294 }
142295 function _arrayLikeToArray(arr, len) {
142296 if (len == null || len > arr.length)
142297 len = arr.length;
142298 for (var i3 = 0, arr2 = new Array(len); i3 < len; i3++)
142299 arr2[i3] = arr[i3];
142300 return arr2;
142301 }
142302 function _nonIterableRest() {
142303 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
142304 }
142305 var window$1 = typeof window === "undefined" ? null : window;
142306 var navigator2 = window$1 ? window$1.navigator : null;
142307 window$1 ? window$1.document : null;
142308 var typeofstr = _typeof("");
142309 var typeofobj = _typeof({});
142310 var typeoffn = _typeof(function() {
142311 });
142312 var typeofhtmlele = typeof HTMLElement === "undefined" ? "undefined" : _typeof(HTMLElement);
142313 var instanceStr = function instanceStr2(obj) {
142314 return obj && obj.instanceString && fn$6(obj.instanceString) ? obj.instanceString() : null;
142315 };
142316 var string2 = function string3(obj) {
142317 return obj != null && _typeof(obj) == typeofstr;
142318 };
142319 var fn$6 = function fn2(obj) {
142320 return obj != null && _typeof(obj) === typeoffn;
142321 };
142322 var array2 = function array3(obj) {
142323 return !elementOrCollection(obj) && (Array.isArray ? Array.isArray(obj) : obj != null && obj instanceof Array);
142324 };
142325 var plainObject = function plainObject2(obj) {
142326 return obj != null && _typeof(obj) === typeofobj && !array2(obj) && obj.constructor === Object;
142327 };
142328 var object2 = function object3(obj) {
142329 return obj != null && _typeof(obj) === typeofobj;
142330 };
142331 var number$12 = function number3(obj) {
142332 return obj != null && _typeof(obj) === _typeof(1) && !isNaN(obj);
142333 };
142334 var integer = function integer2(obj) {
142335 return number$12(obj) && Math.floor(obj) === obj;
142336 };
142337 var htmlElement = function htmlElement2(obj) {
142338 if ("undefined" === typeofhtmlele) {
142339 return void 0;
142340 } else {
142341 return null != obj && obj instanceof HTMLElement;
142342 }
142343 };
142344 var elementOrCollection = function elementOrCollection2(obj) {
142345 return element2(obj) || collection(obj);
142346 };
142347 var element2 = function element3(obj) {
142348 return instanceStr(obj) === "collection" && obj._private.single;
142349 };
142350 var collection = function collection2(obj) {
142351 return instanceStr(obj) === "collection" && !obj._private.single;
142352 };
142353 var core2 = function core3(obj) {
142354 return instanceStr(obj) === "core";
142355 };
142356 var stylesheet = function stylesheet2(obj) {
142357 return instanceStr(obj) === "stylesheet";
142358 };
142359 var event = function event2(obj) {
142360 return instanceStr(obj) === "event";
142361 };
142362 var emptyString = function emptyString2(obj) {
142363 if (obj === void 0 || obj === null) {
142364 return true;
142365 } else if (obj === "" || obj.match(/^\s+$/)) {
142366 return true;
142367 }
142368 return false;
142369 };
142370 var domElement = function domElement2(obj) {
142371 if (typeof HTMLElement === "undefined") {
142372 return false;
142373 } else {
142374 return obj instanceof HTMLElement;
142375 }
142376 };
142377 var boundingBox = function boundingBox2(obj) {
142378 return plainObject(obj) && number$12(obj.x1) && number$12(obj.x2) && number$12(obj.y1) && number$12(obj.y2);
142379 };
142380 var promise = function promise2(obj) {
142381 return object2(obj) && fn$6(obj.then);
142382 };
142383 var ms = function ms2() {
142384 return navigator2 && navigator2.userAgent.match(/msie|trident|edge/i);
142385 };
142386 var memoize$1 = function memoize3(fn2, keyFn) {
142387 if (!keyFn) {
142388 keyFn = function keyFn2() {
142389 if (arguments.length === 1) {
142390 return arguments[0];
142391 } else if (arguments.length === 0) {
142392 return "undefined";
142393 }
142394 var args = [];
142395 for (var i3 = 0; i3 < arguments.length; i3++) {
142396 args.push(arguments[i3]);
142397 }
142398 return args.join("$");
142399 };
142400 }
142401 var memoizedFn = function memoizedFn2() {
142402 var self2 = this;
142403 var args = arguments;
142404 var ret;
142405 var k = keyFn.apply(self2, args);
142406 var cache2 = memoizedFn2.cache;
142407 if (!(ret = cache2[k])) {
142408 ret = cache2[k] = fn2.apply(self2, args);
142409 }
142410 return ret;
142411 };
142412 memoizedFn.cache = {};
142413 return memoizedFn;
142414 };
142415 var camel2dash = memoize$1(function(str2) {
142416 return str2.replace(/([A-Z])/g, function(v) {
142417 return "-" + v.toLowerCase();
142418 });
142419 });
142420 var dash2camel = memoize$1(function(str2) {
142421 return str2.replace(/(-\w)/g, function(v) {
142422 return v[1].toUpperCase();
142423 });
142424 });
142425 var prependCamel = memoize$1(function(prefix, str2) {
142426 return prefix + str2[0].toUpperCase() + str2.substring(1);
142427 }, function(prefix, str2) {
142428 return prefix + "$" + str2;
142429 });
142430 var capitalize = function capitalize2(str2) {
142431 if (emptyString(str2)) {
142432 return str2;
142433 }
142434 return str2.charAt(0).toUpperCase() + str2.substring(1);
142435 };
142436 var number2 = "(?:[-+]?(?:(?:\\d+|\\d*\\.\\d+)(?:[Ee][+-]?\\d+)?))";
142437 var rgba2 = "rgb[a]?\\((" + number2 + "[%]?)\\s*,\\s*(" + number2 + "[%]?)\\s*,\\s*(" + number2 + "[%]?)(?:\\s*,\\s*(" + number2 + "))?\\)";
142438 var rgbaNoBackRefs = "rgb[a]?\\((?:" + number2 + "[%]?)\\s*,\\s*(?:" + number2 + "[%]?)\\s*,\\s*(?:" + number2 + "[%]?)(?:\\s*,\\s*(?:" + number2 + "))?\\)";
142439 var hsla2 = "hsl[a]?\\((" + number2 + ")\\s*,\\s*(" + number2 + "[%])\\s*,\\s*(" + number2 + "[%])(?:\\s*,\\s*(" + number2 + "))?\\)";
142440 var hslaNoBackRefs = "hsl[a]?\\((?:" + number2 + ")\\s*,\\s*(?:" + number2 + "[%])\\s*,\\s*(?:" + number2 + "[%])(?:\\s*,\\s*(?:" + number2 + "))?\\)";
142441 var hex3 = "\\#[0-9a-fA-F]{3}";
142442 var hex6 = "\\#[0-9a-fA-F]{6}";
142443 var ascending2 = function ascending3(a, b) {
142444 if (a < b) {
142445 return -1;
142446 } else if (a > b) {
142447 return 1;
142448 } else {
142449 return 0;
142450 }
142451 };
142452 var descending2 = function descending3(a, b) {
142453 return -1 * ascending2(a, b);
142454 };
142455 var extend2 = Object.assign != null ? Object.assign.bind(Object) : function(tgt) {
142456 var args = arguments;
142457 for (var i3 = 1; i3 < args.length; i3++) {
142458 var obj = args[i3];
142459 if (obj == null) {
142460 continue;
142461 }
142462 var keys2 = Object.keys(obj);
142463 for (var j = 0; j < keys2.length; j++) {
142464 var k = keys2[j];
142465 tgt[k] = obj[k];
142466 }
142467 }
142468 return tgt;
142469 };
142470 var hex2tuple = function hex2tuple2(hex2) {
142471 if (!(hex2.length === 4 || hex2.length === 7) || hex2[0] !== "#") {
142472 return;
142473 }
142474 var shortHex = hex2.length === 4;
142475 var r, g, b;
142476 var base = 16;
142477 if (shortHex) {
142478 r = parseInt(hex2[1] + hex2[1], base);
142479 g = parseInt(hex2[2] + hex2[2], base);
142480 b = parseInt(hex2[3] + hex2[3], base);
142481 } else {
142482 r = parseInt(hex2[1] + hex2[2], base);
142483 g = parseInt(hex2[3] + hex2[4], base);
142484 b = parseInt(hex2[5] + hex2[6], base);
142485 }
142486 return [r, g, b];
142487 };
142488 var hsl2tuple = function hsl2tuple2(hsl2) {
142489 var ret;
142490 var h, s, l, a, r, g, b;
142491 function hue2rgb(p3, q2, t4) {
142492 if (t4 < 0)
142493 t4 += 1;
142494 if (t4 > 1)
142495 t4 -= 1;
142496 if (t4 < 1 / 6)
142497 return p3 + (q2 - p3) * 6 * t4;
142498 if (t4 < 1 / 2)
142499 return q2;
142500 if (t4 < 2 / 3)
142501 return p3 + (q2 - p3) * (2 / 3 - t4) * 6;
142502 return p3;
142503 }
142504 var m = new RegExp("^" + hsla2 + "$").exec(hsl2);
142505 if (m) {
142506 h = parseInt(m[1]);
142507 if (h < 0) {
142508 h = (360 - -1 * h % 360) % 360;
142509 } else if (h > 360) {
142510 h = h % 360;
142511 }
142512 h /= 360;
142513 s = parseFloat(m[2]);
142514 if (s < 0 || s > 100) {
142515 return;
142516 }
142517 s = s / 100;
142518 l = parseFloat(m[3]);
142519 if (l < 0 || l > 100) {
142520 return;
142521 }
142522 l = l / 100;
142523 a = m[4];
142524 if (a !== void 0) {
142525 a = parseFloat(a);
142526 if (a < 0 || a > 1) {
142527 return;
142528 }
142529 }
142530 if (s === 0) {
142531 r = g = b = Math.round(l * 255);
142532 } else {
142533 var q = l < 0.5 ? l * (1 + s) : l + s - l * s;
142534 var p2 = 2 * l - q;
142535 r = Math.round(255 * hue2rgb(p2, q, h + 1 / 3));
142536 g = Math.round(255 * hue2rgb(p2, q, h));
142537 b = Math.round(255 * hue2rgb(p2, q, h - 1 / 3));
142538 }
142539 ret = [r, g, b, a];
142540 }
142541 return ret;
142542 };
142543 var rgb2tuple = function rgb2tuple2(rgb2) {
142544 var ret;
142545 var m = new RegExp("^" + rgba2 + "$").exec(rgb2);
142546 if (m) {
142547 ret = [];
142548 var isPct = [];
142549 for (var i3 = 1; i3 <= 3; i3++) {
142550 var channel2 = m[i3];
142551 if (channel2[channel2.length - 1] === "%") {
142552 isPct[i3] = true;
142553 }
142554 channel2 = parseFloat(channel2);
142555 if (isPct[i3]) {
142556 channel2 = channel2 / 100 * 255;
142557 }
142558 if (channel2 < 0 || channel2 > 255) {
142559 return;
142560 }
142561 ret.push(Math.floor(channel2));
142562 }
142563 var atLeastOneIsPct = isPct[1] || isPct[2] || isPct[3];
142564 var allArePct = isPct[1] && isPct[2] && isPct[3];
142565 if (atLeastOneIsPct && !allArePct) {
142566 return;
142567 }
142568 var alpha = m[4];
142569 if (alpha !== void 0) {
142570 alpha = parseFloat(alpha);
142571 if (alpha < 0 || alpha > 1) {
142572 return;
142573 }
142574 ret.push(alpha);
142575 }
142576 }
142577 return ret;
142578 };
142579 var colorname2tuple = function colorname2tuple2(color2) {
142580 return colors[color2.toLowerCase()];
142581 };
142582 var color2tuple = function color2tuple2(color2) {
142583 return (array2(color2) ? color2 : null) || colorname2tuple(color2) || hex2tuple(color2) || rgb2tuple(color2) || hsl2tuple(color2);
142584 };
142585 var colors = {
142586 // special colour names
142587 transparent: [0, 0, 0, 0],
142588 // NB alpha === 0
142589 // regular colours
142590 aliceblue: [240, 248, 255],
142591 antiquewhite: [250, 235, 215],
142592 aqua: [0, 255, 255],
142593 aquamarine: [127, 255, 212],
142594 azure: [240, 255, 255],
142595 beige: [245, 245, 220],
142596 bisque: [255, 228, 196],
142597 black: [0, 0, 0],
142598 blanchedalmond: [255, 235, 205],
142599 blue: [0, 0, 255],
142600 blueviolet: [138, 43, 226],
142601 brown: [165, 42, 42],
142602 burlywood: [222, 184, 135],
142603 cadetblue: [95, 158, 160],
142604 chartreuse: [127, 255, 0],
142605 chocolate: [210, 105, 30],
142606 coral: [255, 127, 80],
142607 cornflowerblue: [100, 149, 237],
142608 cornsilk: [255, 248, 220],
142609 crimson: [220, 20, 60],
142610 cyan: [0, 255, 255],
142611 darkblue: [0, 0, 139],
142612 darkcyan: [0, 139, 139],
142613 darkgoldenrod: [184, 134, 11],
142614 darkgray: [169, 169, 169],
142615 darkgreen: [0, 100, 0],
142616 darkgrey: [169, 169, 169],
142617 darkkhaki: [189, 183, 107],
142618 darkmagenta: [139, 0, 139],
142619 darkolivegreen: [85, 107, 47],
142620 darkorange: [255, 140, 0],
142621 darkorchid: [153, 50, 204],
142622 darkred: [139, 0, 0],
142623 darksalmon: [233, 150, 122],
142624 darkseagreen: [143, 188, 143],
142625 darkslateblue: [72, 61, 139],
142626 darkslategray: [47, 79, 79],
142627 darkslategrey: [47, 79, 79],
142628 darkturquoise: [0, 206, 209],
142629 darkviolet: [148, 0, 211],
142630 deeppink: [255, 20, 147],
142631 deepskyblue: [0, 191, 255],
142632 dimgray: [105, 105, 105],
142633 dimgrey: [105, 105, 105],
142634 dodgerblue: [30, 144, 255],
142635 firebrick: [178, 34, 34],
142636 floralwhite: [255, 250, 240],
142637 forestgreen: [34, 139, 34],
142638 fuchsia: [255, 0, 255],
142639 gainsboro: [220, 220, 220],
142640 ghostwhite: [248, 248, 255],
142641 gold: [255, 215, 0],
142642 goldenrod: [218, 165, 32],
142643 gray: [128, 128, 128],
142644 grey: [128, 128, 128],
142645 green: [0, 128, 0],
142646 greenyellow: [173, 255, 47],
142647 honeydew: [240, 255, 240],
142648 hotpink: [255, 105, 180],
142649 indianred: [205, 92, 92],
142650 indigo: [75, 0, 130],
142651 ivory: [255, 255, 240],
142652 khaki: [240, 230, 140],
142653 lavender: [230, 230, 250],
142654 lavenderblush: [255, 240, 245],
142655 lawngreen: [124, 252, 0],
142656 lemonchiffon: [255, 250, 205],
142657 lightblue: [173, 216, 230],
142658 lightcoral: [240, 128, 128],
142659 lightcyan: [224, 255, 255],
142660 lightgoldenrodyellow: [250, 250, 210],
142661 lightgray: [211, 211, 211],
142662 lightgreen: [144, 238, 144],
142663 lightgrey: [211, 211, 211],
142664 lightpink: [255, 182, 193],
142665 lightsalmon: [255, 160, 122],
142666 lightseagreen: [32, 178, 170],
142667 lightskyblue: [135, 206, 250],
142668 lightslategray: [119, 136, 153],
142669 lightslategrey: [119, 136, 153],
142670 lightsteelblue: [176, 196, 222],
142671 lightyellow: [255, 255, 224],
142672 lime: [0, 255, 0],
142673 limegreen: [50, 205, 50],
142674 linen: [250, 240, 230],
142675 magenta: [255, 0, 255],
142676 maroon: [128, 0, 0],
142677 mediumaquamarine: [102, 205, 170],
142678 mediumblue: [0, 0, 205],
142679 mediumorchid: [186, 85, 211],
142680 mediumpurple: [147, 112, 219],
142681 mediumseagreen: [60, 179, 113],
142682 mediumslateblue: [123, 104, 238],
142683 mediumspringgreen: [0, 250, 154],
142684 mediumturquoise: [72, 209, 204],
142685 mediumvioletred: [199, 21, 133],
142686 midnightblue: [25, 25, 112],
142687 mintcream: [245, 255, 250],
142688 mistyrose: [255, 228, 225],
142689 moccasin: [255, 228, 181],
142690 navajowhite: [255, 222, 173],
142691 navy: [0, 0, 128],
142692 oldlace: [253, 245, 230],
142693 olive: [128, 128, 0],
142694 olivedrab: [107, 142, 35],
142695 orange: [255, 165, 0],
142696 orangered: [255, 69, 0],
142697 orchid: [218, 112, 214],
142698 palegoldenrod: [238, 232, 170],
142699 palegreen: [152, 251, 152],
142700 paleturquoise: [175, 238, 238],
142701 palevioletred: [219, 112, 147],
142702 papayawhip: [255, 239, 213],
142703 peachpuff: [255, 218, 185],
142704 peru: [205, 133, 63],
142705 pink: [255, 192, 203],
142706 plum: [221, 160, 221],
142707 powderblue: [176, 224, 230],
142708 purple: [128, 0, 128],
142709 red: [255, 0, 0],
142710 rosybrown: [188, 143, 143],
142711 royalblue: [65, 105, 225],
142712 saddlebrown: [139, 69, 19],
142713 salmon: [250, 128, 114],
142714 sandybrown: [244, 164, 96],
142715 seagreen: [46, 139, 87],
142716 seashell: [255, 245, 238],
142717 sienna: [160, 82, 45],
142718 silver: [192, 192, 192],
142719 skyblue: [135, 206, 235],
142720 slateblue: [106, 90, 205],
142721 slategray: [112, 128, 144],
142722 slategrey: [112, 128, 144],
142723 snow: [255, 250, 250],
142724 springgreen: [0, 255, 127],
142725 steelblue: [70, 130, 180],
142726 tan: [210, 180, 140],
142727 teal: [0, 128, 128],
142728 thistle: [216, 191, 216],
142729 tomato: [255, 99, 71],
142730 turquoise: [64, 224, 208],
142731 violet: [238, 130, 238],
142732 wheat: [245, 222, 179],
142733 white: [255, 255, 255],
142734 whitesmoke: [245, 245, 245],
142735 yellow: [255, 255, 0],
142736 yellowgreen: [154, 205, 50]
142737 };
142738 var setMap = function setMap2(options2) {
142739 var obj = options2.map;
142740 var keys2 = options2.keys;
142741 var l = keys2.length;
142742 for (var i3 = 0; i3 < l; i3++) {
142743 var key = keys2[i3];
142744 if (plainObject(key)) {
142745 throw Error("Tried to set map with object key");
142746 }
142747 if (i3 < keys2.length - 1) {
142748 if (obj[key] == null) {
142749 obj[key] = {};
142750 }
142751 obj = obj[key];
142752 } else {
142753 obj[key] = options2.value;
142754 }
142755 }
142756 };
142757 var getMap = function getMap2(options2) {
142758 var obj = options2.map;
142759 var keys2 = options2.keys;
142760 var l = keys2.length;
142761 for (var i3 = 0; i3 < l; i3++) {
142762 var key = keys2[i3];
142763 if (plainObject(key)) {
142764 throw Error("Tried to get map with object key");
142765 }
142766 obj = obj[key];
142767 if (obj == null) {
142768 return obj;
142769 }
142770 }
142771 return obj;
142772 };
142773 function isObject2(value) {
142774 var type2 = typeof value;
142775 return value != null && (type2 == "object" || type2 == "function");
142776 }
142777 var isObject_12 = isObject2;
142778 var commonjsGlobal$1 = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof commonjsGlobal !== "undefined" ? commonjsGlobal : typeof self !== "undefined" ? self : {};
142779 function createCommonjsModule(fn2, module3) {
142780 return module3 = { exports: {} }, fn2(module3, module3.exports), module3.exports;
142781 }
142782 var freeGlobal2 = typeof commonjsGlobal$1 == "object" && commonjsGlobal$1 && commonjsGlobal$1.Object === Object && commonjsGlobal$1;
142783 var _freeGlobal = freeGlobal2;
142784 var freeSelf2 = typeof self == "object" && self && self.Object === Object && self;
142785 var root2 = _freeGlobal || freeSelf2 || Function("return this")();
142786 var _root = root2;
142787 var now2 = function() {
142788 return _root.Date.now();
142789 };
142790 var now_1 = now2;
142791 var reWhitespace2 = /\s/;
142792 function trimmedEndIndex2(string3) {
142793 var index2 = string3.length;
142794 while (index2-- && reWhitespace2.test(string3.charAt(index2))) {
142795 }
142796 return index2;
142797 }
142798 var _trimmedEndIndex = trimmedEndIndex2;
142799 var reTrimStart2 = /^\s+/;
142800 function baseTrim2(string3) {
142801 return string3 ? string3.slice(0, _trimmedEndIndex(string3) + 1).replace(reTrimStart2, "") : string3;
142802 }
142803 var _baseTrim = baseTrim2;
142804 var Symbol$12 = _root.Symbol;
142805 var _Symbol = Symbol$12;
142806 var objectProto$52 = Object.prototype;
142807 var hasOwnProperty$42 = objectProto$52.hasOwnProperty;
142808 var nativeObjectToString$12 = objectProto$52.toString;
142809 var symToStringTag$12 = _Symbol ? _Symbol.toStringTag : void 0;
142810 function getRawTag2(value) {
142811 var isOwn = hasOwnProperty$42.call(value, symToStringTag$12), tag = value[symToStringTag$12];
142812 try {
142813 value[symToStringTag$12] = void 0;
142814 var unmasked = true;
142815 } catch (e) {
142816 }
142817 var result = nativeObjectToString$12.call(value);
142818 if (unmasked) {
142819 if (isOwn) {
142820 value[symToStringTag$12] = tag;
142821 } else {
142822 delete value[symToStringTag$12];
142823 }
142824 }
142825 return result;
142826 }
142827 var _getRawTag = getRawTag2;
142828 var objectProto$42 = Object.prototype;
142829 var nativeObjectToString2 = objectProto$42.toString;
142830 function objectToString2(value) {
142831 return nativeObjectToString2.call(value);
142832 }
142833 var _objectToString = objectToString2;
142834 var nullTag2 = "[object Null]", undefinedTag2 = "[object Undefined]";
142835 var symToStringTag2 = _Symbol ? _Symbol.toStringTag : void 0;
142836 function baseGetTag2(value) {
142837 if (value == null) {
142838 return value === void 0 ? undefinedTag2 : nullTag2;
142839 }
142840 return symToStringTag2 && symToStringTag2 in Object(value) ? _getRawTag(value) : _objectToString(value);
142841 }
142842 var _baseGetTag = baseGetTag2;
142843 function isObjectLike2(value) {
142844 return value != null && typeof value == "object";
142845 }
142846 var isObjectLike_1 = isObjectLike2;
142847 var symbolTag2 = "[object Symbol]";
142848 function isSymbol2(value) {
142849 return typeof value == "symbol" || isObjectLike_1(value) && _baseGetTag(value) == symbolTag2;
142850 }
142851 var isSymbol_1 = isSymbol2;
142852 var NAN2 = 0 / 0;
142853 var reIsBadHex2 = /^[-+]0x[0-9a-f]+$/i;
142854 var reIsBinary2 = /^0b[01]+$/i;
142855 var reIsOctal2 = /^0o[0-7]+$/i;
142856 var freeParseInt2 = parseInt;
142857 function toNumber2(value) {
142858 if (typeof value == "number") {
142859 return value;
142860 }
142861 if (isSymbol_1(value)) {
142862 return NAN2;
142863 }
142864 if (isObject_12(value)) {
142865 var other = typeof value.valueOf == "function" ? value.valueOf() : value;
142866 value = isObject_12(other) ? other + "" : other;
142867 }
142868 if (typeof value != "string") {
142869 return value === 0 ? value : +value;
142870 }
142871 value = _baseTrim(value);
142872 var isBinary2 = reIsBinary2.test(value);
142873 return isBinary2 || reIsOctal2.test(value) ? freeParseInt2(value.slice(2), isBinary2 ? 2 : 8) : reIsBadHex2.test(value) ? NAN2 : +value;
142874 }
142875 var toNumber_1 = toNumber2;
142876 var FUNC_ERROR_TEXT$1 = "Expected a function";
142877 var nativeMax2 = Math.max, nativeMin = Math.min;
142878 function debounce(func, wait, options2) {
142879 var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
142880 if (typeof func != "function") {
142881 throw new TypeError(FUNC_ERROR_TEXT$1);
142882 }
142883 wait = toNumber_1(wait) || 0;
142884 if (isObject_12(options2)) {
142885 leading = !!options2.leading;
142886 maxing = "maxWait" in options2;
142887 maxWait = maxing ? nativeMax2(toNumber_1(options2.maxWait) || 0, wait) : maxWait;
142888 trailing = "trailing" in options2 ? !!options2.trailing : trailing;
142889 }
142890 function invokeFunc(time2) {
142891 var args = lastArgs, thisArg = lastThis;
142892 lastArgs = lastThis = void 0;
142893 lastInvokeTime = time2;
142894 result = func.apply(thisArg, args);
142895 return result;
142896 }
142897 function leadingEdge(time2) {
142898 lastInvokeTime = time2;
142899 timerId = setTimeout(timerExpired, wait);
142900 return leading ? invokeFunc(time2) : result;
142901 }
142902 function remainingWait(time2) {
142903 var timeSinceLastCall = time2 - lastCallTime, timeSinceLastInvoke = time2 - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
142904 return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
142905 }
142906 function shouldInvoke(time2) {
142907 var timeSinceLastCall = time2 - lastCallTime, timeSinceLastInvoke = time2 - lastInvokeTime;
142908 return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
142909 }
142910 function timerExpired() {
142911 var time2 = now_1();
142912 if (shouldInvoke(time2)) {
142913 return trailingEdge(time2);
142914 }
142915 timerId = setTimeout(timerExpired, remainingWait(time2));
142916 }
142917 function trailingEdge(time2) {
142918 timerId = void 0;
142919 if (trailing && lastArgs) {
142920 return invokeFunc(time2);
142921 }
142922 lastArgs = lastThis = void 0;
142923 return result;
142924 }
142925 function cancel() {
142926 if (timerId !== void 0) {
142927 clearTimeout(timerId);
142928 }
142929 lastInvokeTime = 0;
142930 lastArgs = lastCallTime = lastThis = timerId = void 0;
142931 }
142932 function flush() {
142933 return timerId === void 0 ? result : trailingEdge(now_1());
142934 }
142935 function debounced() {
142936 var time2 = now_1(), isInvoking = shouldInvoke(time2);
142937 lastArgs = arguments;
142938 lastThis = this;
142939 lastCallTime = time2;
142940 if (isInvoking) {
142941 if (timerId === void 0) {
142942 return leadingEdge(lastCallTime);
142943 }
142944 if (maxing) {
142945 clearTimeout(timerId);
142946 timerId = setTimeout(timerExpired, wait);
142947 return invokeFunc(lastCallTime);
142948 }
142949 }
142950 if (timerId === void 0) {
142951 timerId = setTimeout(timerExpired, wait);
142952 }
142953 return result;
142954 }
142955 debounced.cancel = cancel;
142956 debounced.flush = flush;
142957 return debounced;
142958 }
142959 var debounce_1 = debounce;
142960 var performance2 = window$1 ? window$1.performance : null;
142961 var pnow = performance2 && performance2.now ? function() {
142962 return performance2.now();
142963 } : function() {
142964 return Date.now();
142965 };
142966 var raf = function() {
142967 if (window$1) {
142968 if (window$1.requestAnimationFrame) {
142969 return function(fn2) {
142970 window$1.requestAnimationFrame(fn2);
142971 };
142972 } else if (window$1.mozRequestAnimationFrame) {
142973 return function(fn2) {
142974 window$1.mozRequestAnimationFrame(fn2);
142975 };
142976 } else if (window$1.webkitRequestAnimationFrame) {
142977 return function(fn2) {
142978 window$1.webkitRequestAnimationFrame(fn2);
142979 };
142980 } else if (window$1.msRequestAnimationFrame) {
142981 return function(fn2) {
142982 window$1.msRequestAnimationFrame(fn2);
142983 };
142984 }
142985 }
142986 return function(fn2) {
142987 if (fn2) {
142988 setTimeout(function() {
142989 fn2(pnow());
142990 }, 1e3 / 60);
142991 }
142992 };
142993 }();
142994 var requestAnimationFrame2 = function requestAnimationFrame3(fn2) {
142995 return raf(fn2);
142996 };
142997 var performanceNow = pnow;
142998 var DEFAULT_HASH_SEED = 9261;
142999 var K2 = 65599;
143000 var DEFAULT_HASH_SEED_ALT = 5381;
143001 var hashIterableInts = function hashIterableInts2(iterator) {
143002 var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED;
143003 var hash = seed;
143004 var entry;
143005 for (; ; ) {
143006 entry = iterator.next();
143007 if (entry.done) {
143008 break;
143009 }
143010 hash = hash * K2 + entry.value | 0;
143011 }
143012 return hash;
143013 };
143014 var hashInt = function hashInt2(num) {
143015 var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED;
143016 return seed * K2 + num | 0;
143017 };
143018 var hashIntAlt = function hashIntAlt2(num) {
143019 var seed = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : DEFAULT_HASH_SEED_ALT;
143020 return (seed << 5) + seed + num | 0;
143021 };
143022 var combineHashes = function combineHashes2(hash1, hash2) {
143023 return hash1 * 2097152 + hash2;
143024 };
143025 var combineHashesArray = function combineHashesArray2(hashes) {
143026 return hashes[0] * 2097152 + hashes[1];
143027 };
143028 var hashArrays = function hashArrays2(hashes1, hashes2) {
143029 return [hashInt(hashes1[0], hashes2[0]), hashIntAlt(hashes1[1], hashes2[1])];
143030 };
143031 var hashIntsArray = function hashIntsArray2(ints, seed) {
143032 var entry = {
143033 value: 0,
143034 done: false
143035 };
143036 var i3 = 0;
143037 var length2 = ints.length;
143038 var iterator = {
143039 next: function next2() {
143040 if (i3 < length2) {
143041 entry.value = ints[i3++];
143042 } else {
143043 entry.done = true;
143044 }
143045 return entry;
143046 }
143047 };
143048 return hashIterableInts(iterator, seed);
143049 };
143050 var hashString = function hashString2(str2, seed) {
143051 var entry = {
143052 value: 0,
143053 done: false
143054 };
143055 var i3 = 0;
143056 var length2 = str2.length;
143057 var iterator = {
143058 next: function next2() {
143059 if (i3 < length2) {
143060 entry.value = str2.charCodeAt(i3++);
143061 } else {
143062 entry.done = true;
143063 }
143064 return entry;
143065 }
143066 };
143067 return hashIterableInts(iterator, seed);
143068 };
143069 var hashStrings = function hashStrings2() {
143070 return hashStringsArray(arguments);
143071 };
143072 var hashStringsArray = function hashStringsArray2(strs) {
143073 var hash;
143074 for (var i3 = 0; i3 < strs.length; i3++) {
143075 var str2 = strs[i3];
143076 if (i3 === 0) {
143077 hash = hashString(str2);
143078 } else {
143079 hash = hashString(str2, hash);
143080 }
143081 }
143082 return hash;
143083 };
143084 var warningsEnabled = true;
143085 var warnSupported = console.warn != null;
143086 var traceSupported = console.trace != null;
143087 var MAX_INT$1 = Number.MAX_SAFE_INTEGER || 9007199254740991;
143088 var trueify = function trueify2() {
143089 return true;
143090 };
143091 var falsify = function falsify2() {
143092 return false;
143093 };
143094 var zeroify = function zeroify2() {
143095 return 0;
143096 };
143097 var noop$12 = function noop3() {
143098 };
143099 var error = function error2(msg) {
143100 throw new Error(msg);
143101 };
143102 var warnings = function warnings2(enabled) {
143103 if (enabled !== void 0) {
143104 warningsEnabled = !!enabled;
143105 } else {
143106 return warningsEnabled;
143107 }
143108 };
143109 var warn = function warn2(msg) {
143110 if (!warnings()) {
143111 return;
143112 }
143113 if (warnSupported) {
143114 console.warn(msg);
143115 } else {
143116 console.log(msg);
143117 if (traceSupported) {
143118 console.trace();
143119 }
143120 }
143121 };
143122 var clone2 = function clone3(obj) {
143123 return extend2({}, obj);
143124 };
143125 var copy2 = function copy3(obj) {
143126 if (obj == null) {
143127 return obj;
143128 }
143129 if (array2(obj)) {
143130 return obj.slice();
143131 } else if (plainObject(obj)) {
143132 return clone2(obj);
143133 } else {
143134 return obj;
143135 }
143136 };
143137 var copyArray$1 = function copyArray3(arr) {
143138 return arr.slice();
143139 };
143140 var uuid = function uuid2(a, b) {
143141 for (
143142 // loop :)
143143 b = a = "";
143144 // b - result , a - numeric letiable
143145 a++ < 36;
143146 //
143147 b += a * 51 & 52 ? (
143148 // return a random number or 4
143149 (a ^ 15 ? (
143150 // generate a random number from 0 to 15
143151 8 ^ Math.random() * (a ^ 20 ? 16 : 4)
143152 ) : 4).toString(16)
143153 ) : "-"
143154 ) {
143155 }
143156 return b;
143157 };
143158 var _staticEmptyObject = {};
143159 var staticEmptyObject = function staticEmptyObject2() {
143160 return _staticEmptyObject;
143161 };
143162 var defaults$g = function defaults3(_defaults) {
143163 var keys2 = Object.keys(_defaults);
143164 return function(opts) {
143165 var filledOpts = {};
143166 for (var i3 = 0; i3 < keys2.length; i3++) {
143167 var key = keys2[i3];
143168 var optVal = opts == null ? void 0 : opts[key];
143169 filledOpts[key] = optVal === void 0 ? _defaults[key] : optVal;
143170 }
143171 return filledOpts;
143172 };
143173 };
143174 var removeFromArray = function removeFromArray2(arr, ele, oneCopy) {
143175 for (var i3 = arr.length - 1; i3 >= 0; i3--) {
143176 if (arr[i3] === ele) {
143177 arr.splice(i3, 1);
143178 if (oneCopy) {
143179 break;
143180 }
143181 }
143182 }
143183 };
143184 var clearArray = function clearArray2(arr) {
143185 arr.splice(0, arr.length);
143186 };
143187 var push2 = function push3(arr, otherArr) {
143188 for (var i3 = 0; i3 < otherArr.length; i3++) {
143189 var el = otherArr[i3];
143190 arr.push(el);
143191 }
143192 };
143193 var getPrefixedProperty = function getPrefixedProperty2(obj, propName, prefix) {
143194 if (prefix) {
143195 propName = prependCamel(prefix, propName);
143196 }
143197 return obj[propName];
143198 };
143199 var setPrefixedProperty = function setPrefixedProperty2(obj, propName, prefix, value) {
143200 if (prefix) {
143201 propName = prependCamel(prefix, propName);
143202 }
143203 obj[propName] = value;
143204 };
143205 var ObjectMap = /* @__PURE__ */ function() {
143206 function ObjectMap2() {
143207 _classCallCheck(this, ObjectMap2);
143208 this._obj = {};
143209 }
143210 _createClass(ObjectMap2, [{
143211 key: "set",
143212 value: function set3(key, val) {
143213 this._obj[key] = val;
143214 return this;
143215 }
143216 }, {
143217 key: "delete",
143218 value: function _delete(key) {
143219 this._obj[key] = void 0;
143220 return this;
143221 }
143222 }, {
143223 key: "clear",
143224 value: function clear2() {
143225 this._obj = {};
143226 }
143227 }, {
143228 key: "has",
143229 value: function has2(key) {
143230 return this._obj[key] !== void 0;
143231 }
143232 }, {
143233 key: "get",
143234 value: function get3(key) {
143235 return this._obj[key];
143236 }
143237 }]);
143238 return ObjectMap2;
143239 }();
143240 var Map$22 = typeof Map !== "undefined" ? Map : ObjectMap;
143241 var undef = "undefined";
143242 var ObjectSet = /* @__PURE__ */ function() {
143243 function ObjectSet2(arrayOrObjectSet) {
143244 _classCallCheck(this, ObjectSet2);
143245 this._obj = /* @__PURE__ */ Object.create(null);
143246 this.size = 0;
143247 if (arrayOrObjectSet != null) {
143248 var arr;
143249 if (arrayOrObjectSet.instanceString != null && arrayOrObjectSet.instanceString() === this.instanceString()) {
143250 arr = arrayOrObjectSet.toArray();
143251 } else {
143252 arr = arrayOrObjectSet;
143253 }
143254 for (var i3 = 0; i3 < arr.length; i3++) {
143255 this.add(arr[i3]);
143256 }
143257 }
143258 }
143259 _createClass(ObjectSet2, [{
143260 key: "instanceString",
143261 value: function instanceString() {
143262 return "set";
143263 }
143264 }, {
143265 key: "add",
143266 value: function add(val) {
143267 var o = this._obj;
143268 if (o[val] !== 1) {
143269 o[val] = 1;
143270 this.size++;
143271 }
143272 }
143273 }, {
143274 key: "delete",
143275 value: function _delete(val) {
143276 var o = this._obj;
143277 if (o[val] === 1) {
143278 o[val] = 0;
143279 this.size--;
143280 }
143281 }
143282 }, {
143283 key: "clear",
143284 value: function clear2() {
143285 this._obj = /* @__PURE__ */ Object.create(null);
143286 }
143287 }, {
143288 key: "has",
143289 value: function has2(val) {
143290 return this._obj[val] === 1;
143291 }
143292 }, {
143293 key: "toArray",
143294 value: function toArray2() {
143295 var _this = this;
143296 return Object.keys(this._obj).filter(function(key) {
143297 return _this.has(key);
143298 });
143299 }
143300 }, {
143301 key: "forEach",
143302 value: function forEach2(callback, thisArg) {
143303 return this.toArray().forEach(callback, thisArg);
143304 }
143305 }]);
143306 return ObjectSet2;
143307 }();
143308 var Set$12 = (typeof Set === "undefined" ? "undefined" : _typeof(Set)) !== undef ? Set : ObjectSet;
143309 var Element = function Element2(cy, params) {
143310 var restore = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
143311 if (cy === void 0 || params === void 0 || !core2(cy)) {
143312 error("An element must have a core reference and parameters set");
143313 return;
143314 }
143315 var group = params.group;
143316 if (group == null) {
143317 if (params.data && params.data.source != null && params.data.target != null) {
143318 group = "edges";
143319 } else {
143320 group = "nodes";
143321 }
143322 }
143323 if (group !== "nodes" && group !== "edges") {
143324 error("An element must be of type `nodes` or `edges`; you specified `" + group + "`");
143325 return;
143326 }
143327 this.length = 1;
143328 this[0] = this;
143329 var _p = this._private = {
143330 cy,
143331 single: true,
143332 // indicates this is an element
143333 data: params.data || {},
143334 // data object
143335 position: params.position || {
143336 x: 0,
143337 y: 0
143338 },
143339 // (x, y) position pair
143340 autoWidth: void 0,
143341 // width and height of nodes calculated by the renderer when set to special 'auto' value
143342 autoHeight: void 0,
143343 autoPadding: void 0,
143344 compoundBoundsClean: false,
143345 // whether the compound dimensions need to be recalculated the next time dimensions are read
143346 listeners: [],
143347 // array of bound listeners
143348 group,
143349 // string; 'nodes' or 'edges'
143350 style: {},
143351 // properties as set by the style
143352 rstyle: {},
143353 // properties for style sent from the renderer to the core
143354 styleCxts: [],
143355 // applied style contexts from the styler
143356 styleKeys: {},
143357 // per-group keys of style property values
143358 removed: true,
143359 // whether it's inside the vis; true if removed (set true here since we call restore)
143360 selected: params.selected ? true : false,
143361 // whether it's selected
143362 selectable: params.selectable === void 0 ? true : params.selectable ? true : false,
143363 // whether it's selectable
143364 locked: params.locked ? true : false,
143365 // whether the element is locked (cannot be moved)
143366 grabbed: false,
143367 // whether the element is grabbed by the mouse; renderer sets this privately
143368 grabbable: params.grabbable === void 0 ? true : params.grabbable ? true : false,
143369 // whether the element can be grabbed
143370 pannable: params.pannable === void 0 ? group === "edges" ? true : false : params.pannable ? true : false,
143371 // whether the element has passthrough panning enabled
143372 active: false,
143373 // whether the element is active from user interaction
143374 classes: new Set$12(),
143375 // map ( className => true )
143376 animation: {
143377 // object for currently-running animations
143378 current: [],
143379 queue: []
143380 },
143381 rscratch: {},
143382 // object in which the renderer can store information
143383 scratch: params.scratch || {},
143384 // scratch objects
143385 edges: [],
143386 // array of connected edges
143387 children: [],
143388 // array of children
143389 parent: params.parent && params.parent.isNode() ? params.parent : null,
143390 // parent ref
143391 traversalCache: {},
143392 // cache of output of traversal functions
143393 backgrounding: false,
143394 // whether background images are loading
143395 bbCache: null,
143396 // cache of the current bounding box
143397 bbCacheShift: {
143398 x: 0,
143399 y: 0
143400 },
143401 // shift applied to cached bb to be applied on next get
143402 bodyBounds: null,
143403 // bounds cache of element body, w/o overlay
143404 overlayBounds: null,
143405 // bounds cache of element body, including overlay
143406 labelBounds: {
143407 // bounds cache of labels
143408 all: null,
143409 source: null,
143410 target: null,
143411 main: null
143412 },
143413 arrowBounds: {
143414 // bounds cache of edge arrows
143415 source: null,
143416 target: null,
143417 "mid-source": null,
143418 "mid-target": null
143419 }
143420 };
143421 if (_p.position.x == null) {
143422 _p.position.x = 0;
143423 }
143424 if (_p.position.y == null) {
143425 _p.position.y = 0;
143426 }
143427 if (params.renderedPosition) {
143428 var rpos = params.renderedPosition;
143429 var pan = cy.pan();
143430 var zoom = cy.zoom();
143431 _p.position = {
143432 x: (rpos.x - pan.x) / zoom,
143433 y: (rpos.y - pan.y) / zoom
143434 };
143435 }
143436 var classes2 = [];
143437 if (array2(params.classes)) {
143438 classes2 = params.classes;
143439 } else if (string2(params.classes)) {
143440 classes2 = params.classes.split(/\s+/);
143441 }
143442 for (var i3 = 0, l = classes2.length; i3 < l; i3++) {
143443 var cls = classes2[i3];
143444 if (!cls || cls === "") {
143445 continue;
143446 }
143447 _p.classes.add(cls);
143448 }
143449 this.createEmitter();
143450 var bypass = params.style || params.css;
143451 if (bypass) {
143452 warn("Setting a `style` bypass at element creation should be done only when absolutely necessary. Try to use the stylesheet instead.");
143453 this.style(bypass);
143454 }
143455 if (restore === void 0 || restore) {
143456 this.restore();
143457 }
143458 };
143459 var defineSearch = function defineSearch2(params) {
143460 params = {
143461 bfs: params.bfs || !params.dfs,
143462 dfs: params.dfs || !params.bfs
143463 };
143464 return function searchFn(roots, fn2, directed) {
143465 var options2;
143466 if (plainObject(roots) && !elementOrCollection(roots)) {
143467 options2 = roots;
143468 roots = options2.roots || options2.root;
143469 fn2 = options2.visit;
143470 directed = options2.directed;
143471 }
143472 directed = arguments.length === 2 && !fn$6(fn2) ? fn2 : directed;
143473 fn2 = fn$6(fn2) ? fn2 : function() {
143474 };
143475 var cy = this._private.cy;
143476 var v = roots = string2(roots) ? this.filter(roots) : roots;
143477 var Q2 = [];
143478 var connectedNodes = [];
143479 var connectedBy = {};
143480 var id2depth = {};
143481 var V = {};
143482 var j = 0;
143483 var found;
143484 var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges2 = _this$byGroup.edges;
143485 for (var i3 = 0; i3 < v.length; i3++) {
143486 var vi = v[i3];
143487 var viId = vi.id();
143488 if (vi.isNode()) {
143489 Q2.unshift(vi);
143490 if (params.bfs) {
143491 V[viId] = true;
143492 connectedNodes.push(vi);
143493 }
143494 id2depth[viId] = 0;
143495 }
143496 }
143497 var _loop = function _loop2() {
143498 var v2 = params.bfs ? Q2.shift() : Q2.pop();
143499 var vId = v2.id();
143500 if (params.dfs) {
143501 if (V[vId]) {
143502 return "continue";
143503 }
143504 V[vId] = true;
143505 connectedNodes.push(v2);
143506 }
143507 var depth = id2depth[vId];
143508 var prevEdge = connectedBy[vId];
143509 var src = prevEdge != null ? prevEdge.source() : null;
143510 var tgt = prevEdge != null ? prevEdge.target() : null;
143511 var prevNode = prevEdge == null ? void 0 : v2.same(src) ? tgt[0] : src[0];
143512 var ret = void 0;
143513 ret = fn2(v2, prevEdge, prevNode, j++, depth);
143514 if (ret === true) {
143515 found = v2;
143516 return "break";
143517 }
143518 if (ret === false) {
143519 return "break";
143520 }
143521 var vwEdges = v2.connectedEdges().filter(function(e3) {
143522 return (!directed || e3.source().same(v2)) && edges2.has(e3);
143523 });
143524 for (var _i2 = 0; _i2 < vwEdges.length; _i2++) {
143525 var e = vwEdges[_i2];
143526 var w2 = e.connectedNodes().filter(function(n) {
143527 return !n.same(v2) && nodes2.has(n);
143528 });
143529 var wId = w2.id();
143530 if (w2.length !== 0 && !V[wId]) {
143531 w2 = w2[0];
143532 Q2.push(w2);
143533 if (params.bfs) {
143534 V[wId] = true;
143535 connectedNodes.push(w2);
143536 }
143537 connectedBy[wId] = e;
143538 id2depth[wId] = id2depth[vId] + 1;
143539 }
143540 }
143541 };
143542 while (Q2.length !== 0) {
143543 var _ret = _loop();
143544 if (_ret === "continue")
143545 continue;
143546 if (_ret === "break")
143547 break;
143548 }
143549 var connectedEles = cy.collection();
143550 for (var _i = 0; _i < connectedNodes.length; _i++) {
143551 var node2 = connectedNodes[_i];
143552 var edge = connectedBy[node2.id()];
143553 if (edge != null) {
143554 connectedEles.push(edge);
143555 }
143556 connectedEles.push(node2);
143557 }
143558 return {
143559 path: cy.collection(connectedEles),
143560 found: cy.collection(found)
143561 };
143562 };
143563 };
143564 var elesfn$v = {
143565 breadthFirstSearch: defineSearch({
143566 bfs: true
143567 }),
143568 depthFirstSearch: defineSearch({
143569 dfs: true
143570 })
143571 };
143572 elesfn$v.bfs = elesfn$v.breadthFirstSearch;
143573 elesfn$v.dfs = elesfn$v.depthFirstSearch;
143574 var heap$1 = createCommonjsModule(function(module3, exports3) {
143575 (function() {
143576 var Heap, defaultCmp, floor, heapify, heappop, heappush, heappushpop, heapreplace, insort, min3, nlargest, nsmallest, updateItem, _siftdown, _siftup;
143577 floor = Math.floor, min3 = Math.min;
143578 defaultCmp = function(x2, y2) {
143579 if (x2 < y2) {
143580 return -1;
143581 }
143582 if (x2 > y2) {
143583 return 1;
143584 }
143585 return 0;
143586 };
143587 insort = function(a, x2, lo, hi, cmp) {
143588 var mid;
143589 if (lo == null) {
143590 lo = 0;
143591 }
143592 if (cmp == null) {
143593 cmp = defaultCmp;
143594 }
143595 if (lo < 0) {
143596 throw new Error("lo must be non-negative");
143597 }
143598 if (hi == null) {
143599 hi = a.length;
143600 }
143601 while (lo < hi) {
143602 mid = floor((lo + hi) / 2);
143603 if (cmp(x2, a[mid]) < 0) {
143604 hi = mid;
143605 } else {
143606 lo = mid + 1;
143607 }
143608 }
143609 return [].splice.apply(a, [lo, lo - lo].concat(x2)), x2;
143610 };
143611 heappush = function(array3, item, cmp) {
143612 if (cmp == null) {
143613 cmp = defaultCmp;
143614 }
143615 array3.push(item);
143616 return _siftdown(array3, 0, array3.length - 1, cmp);
143617 };
143618 heappop = function(array3, cmp) {
143619 var lastelt, returnitem;
143620 if (cmp == null) {
143621 cmp = defaultCmp;
143622 }
143623 lastelt = array3.pop();
143624 if (array3.length) {
143625 returnitem = array3[0];
143626 array3[0] = lastelt;
143627 _siftup(array3, 0, cmp);
143628 } else {
143629 returnitem = lastelt;
143630 }
143631 return returnitem;
143632 };
143633 heapreplace = function(array3, item, cmp) {
143634 var returnitem;
143635 if (cmp == null) {
143636 cmp = defaultCmp;
143637 }
143638 returnitem = array3[0];
143639 array3[0] = item;
143640 _siftup(array3, 0, cmp);
143641 return returnitem;
143642 };
143643 heappushpop = function(array3, item, cmp) {
143644 var _ref;
143645 if (cmp == null) {
143646 cmp = defaultCmp;
143647 }
143648 if (array3.length && cmp(array3[0], item) < 0) {
143649 _ref = [array3[0], item], item = _ref[0], array3[0] = _ref[1];
143650 _siftup(array3, 0, cmp);
143651 }
143652 return item;
143653 };
143654 heapify = function(array3, cmp) {
143655 var i3, _i, _len, _ref1, _results, _results1;
143656 if (cmp == null) {
143657 cmp = defaultCmp;
143658 }
143659 _ref1 = function() {
143660 _results1 = [];
143661 for (var _j = 0, _ref = floor(array3.length / 2); 0 <= _ref ? _j < _ref : _j > _ref; 0 <= _ref ? _j++ : _j--) {
143662 _results1.push(_j);
143663 }
143664 return _results1;
143665 }.apply(this).reverse();
143666 _results = [];
143667 for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
143668 i3 = _ref1[_i];
143669 _results.push(_siftup(array3, i3, cmp));
143670 }
143671 return _results;
143672 };
143673 updateItem = function(array3, item, cmp) {
143674 var pos;
143675 if (cmp == null) {
143676 cmp = defaultCmp;
143677 }
143678 pos = array3.indexOf(item);
143679 if (pos === -1) {
143680 return;
143681 }
143682 _siftdown(array3, 0, pos, cmp);
143683 return _siftup(array3, pos, cmp);
143684 };
143685 nlargest = function(array3, n, cmp) {
143686 var elem, result, _i, _len, _ref;
143687 if (cmp == null) {
143688 cmp = defaultCmp;
143689 }
143690 result = array3.slice(0, n);
143691 if (!result.length) {
143692 return result;
143693 }
143694 heapify(result, cmp);
143695 _ref = array3.slice(n);
143696 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
143697 elem = _ref[_i];
143698 heappushpop(result, elem, cmp);
143699 }
143700 return result.sort(cmp).reverse();
143701 };
143702 nsmallest = function(array3, n, cmp) {
143703 var elem, los, result, _i, _j, _len, _ref, _ref1, _results;
143704 if (cmp == null) {
143705 cmp = defaultCmp;
143706 }
143707 if (n * 10 <= array3.length) {
143708 result = array3.slice(0, n).sort(cmp);
143709 if (!result.length) {
143710 return result;
143711 }
143712 los = result[result.length - 1];
143713 _ref = array3.slice(n);
143714 for (_i = 0, _len = _ref.length; _i < _len; _i++) {
143715 elem = _ref[_i];
143716 if (cmp(elem, los) < 0) {
143717 insort(result, elem, 0, null, cmp);
143718 result.pop();
143719 los = result[result.length - 1];
143720 }
143721 }
143722 return result;
143723 }
143724 heapify(array3, cmp);
143725 _results = [];
143726 for (_j = 0, _ref1 = min3(n, array3.length); 0 <= _ref1 ? _j < _ref1 : _j > _ref1; 0 <= _ref1 ? ++_j : --_j) {
143727 _results.push(heappop(array3, cmp));
143728 }
143729 return _results;
143730 };
143731 _siftdown = function(array3, startpos, pos, cmp) {
143732 var newitem, parent, parentpos;
143733 if (cmp == null) {
143734 cmp = defaultCmp;
143735 }
143736 newitem = array3[pos];
143737 while (pos > startpos) {
143738 parentpos = pos - 1 >> 1;
143739 parent = array3[parentpos];
143740 if (cmp(newitem, parent) < 0) {
143741 array3[pos] = parent;
143742 pos = parentpos;
143743 continue;
143744 }
143745 break;
143746 }
143747 return array3[pos] = newitem;
143748 };
143749 _siftup = function(array3, pos, cmp) {
143750 var childpos, endpos, newitem, rightpos, startpos;
143751 if (cmp == null) {
143752 cmp = defaultCmp;
143753 }
143754 endpos = array3.length;
143755 startpos = pos;
143756 newitem = array3[pos];
143757 childpos = 2 * pos + 1;
143758 while (childpos < endpos) {
143759 rightpos = childpos + 1;
143760 if (rightpos < endpos && !(cmp(array3[childpos], array3[rightpos]) < 0)) {
143761 childpos = rightpos;
143762 }
143763 array3[pos] = array3[childpos];
143764 pos = childpos;
143765 childpos = 2 * pos + 1;
143766 }
143767 array3[pos] = newitem;
143768 return _siftdown(array3, startpos, pos, cmp);
143769 };
143770 Heap = function() {
143771 Heap2.push = heappush;
143772 Heap2.pop = heappop;
143773 Heap2.replace = heapreplace;
143774 Heap2.pushpop = heappushpop;
143775 Heap2.heapify = heapify;
143776 Heap2.updateItem = updateItem;
143777 Heap2.nlargest = nlargest;
143778 Heap2.nsmallest = nsmallest;
143779 function Heap2(cmp) {
143780 this.cmp = cmp != null ? cmp : defaultCmp;
143781 this.nodes = [];
143782 }
143783 Heap2.prototype.push = function(x2) {
143784 return heappush(this.nodes, x2, this.cmp);
143785 };
143786 Heap2.prototype.pop = function() {
143787 return heappop(this.nodes, this.cmp);
143788 };
143789 Heap2.prototype.peek = function() {
143790 return this.nodes[0];
143791 };
143792 Heap2.prototype.contains = function(x2) {
143793 return this.nodes.indexOf(x2) !== -1;
143794 };
143795 Heap2.prototype.replace = function(x2) {
143796 return heapreplace(this.nodes, x2, this.cmp);
143797 };
143798 Heap2.prototype.pushpop = function(x2) {
143799 return heappushpop(this.nodes, x2, this.cmp);
143800 };
143801 Heap2.prototype.heapify = function() {
143802 return heapify(this.nodes, this.cmp);
143803 };
143804 Heap2.prototype.updateItem = function(x2) {
143805 return updateItem(this.nodes, x2, this.cmp);
143806 };
143807 Heap2.prototype.clear = function() {
143808 return this.nodes = [];
143809 };
143810 Heap2.prototype.empty = function() {
143811 return this.nodes.length === 0;
143812 };
143813 Heap2.prototype.size = function() {
143814 return this.nodes.length;
143815 };
143816 Heap2.prototype.clone = function() {
143817 var heap2;
143818 heap2 = new Heap2();
143819 heap2.nodes = this.nodes.slice(0);
143820 return heap2;
143821 };
143822 Heap2.prototype.toArray = function() {
143823 return this.nodes.slice(0);
143824 };
143825 Heap2.prototype.insert = Heap2.prototype.push;
143826 Heap2.prototype.top = Heap2.prototype.peek;
143827 Heap2.prototype.front = Heap2.prototype.peek;
143828 Heap2.prototype.has = Heap2.prototype.contains;
143829 Heap2.prototype.copy = Heap2.prototype.clone;
143830 return Heap2;
143831 }();
143832 (function(root3, factory) {
143833 {
143834 return module3.exports = factory();
143835 }
143836 })(this, function() {
143837 return Heap;
143838 });
143839 }).call(commonjsGlobal$1);
143840 });
143841 var heap = heap$1;
143842 var dijkstraDefaults = defaults$g({
143843 root: null,
143844 weight: function weight(edge) {
143845 return 1;
143846 },
143847 directed: false
143848 });
143849 var elesfn$u = {
143850 dijkstra: function dijkstra(options2) {
143851 if (!plainObject(options2)) {
143852 var args = arguments;
143853 options2 = {
143854 root: args[0],
143855 weight: args[1],
143856 directed: args[2]
143857 };
143858 }
143859 var _dijkstraDefaults = dijkstraDefaults(options2), root3 = _dijkstraDefaults.root, weight = _dijkstraDefaults.weight, directed = _dijkstraDefaults.directed;
143860 var eles = this;
143861 var weightFn = weight;
143862 var source = string2(root3) ? this.filter(root3)[0] : root3[0];
143863 var dist3 = {};
143864 var prev2 = {};
143865 var knownDist = {};
143866 var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges2 = _this$byGroup.edges;
143867 edges2.unmergeBy(function(ele) {
143868 return ele.isLoop();
143869 });
143870 var getDist2 = function getDist3(node3) {
143871 return dist3[node3.id()];
143872 };
143873 var setDist = function setDist2(node3, d) {
143874 dist3[node3.id()] = d;
143875 Q2.updateItem(node3);
143876 };
143877 var Q2 = new heap(function(a, b) {
143878 return getDist2(a) - getDist2(b);
143879 });
143880 for (var i3 = 0; i3 < nodes2.length; i3++) {
143881 var node2 = nodes2[i3];
143882 dist3[node2.id()] = node2.same(source) ? 0 : Infinity;
143883 Q2.push(node2);
143884 }
143885 var distBetween = function distBetween2(u3, v2) {
143886 var uvs = (directed ? u3.edgesTo(v2) : u3.edgesWith(v2)).intersect(edges2);
143887 var smallestDistance = Infinity;
143888 var smallestEdge;
143889 for (var _i = 0; _i < uvs.length; _i++) {
143890 var edge = uvs[_i];
143891 var _weight = weightFn(edge);
143892 if (_weight < smallestDistance || !smallestEdge) {
143893 smallestDistance = _weight;
143894 smallestEdge = edge;
143895 }
143896 }
143897 return {
143898 edge: smallestEdge,
143899 dist: smallestDistance
143900 };
143901 };
143902 while (Q2.size() > 0) {
143903 var u2 = Q2.pop();
143904 var smalletsDist = getDist2(u2);
143905 var uid = u2.id();
143906 knownDist[uid] = smalletsDist;
143907 if (smalletsDist === Infinity) {
143908 continue;
143909 }
143910 var neighbors = u2.neighborhood().intersect(nodes2);
143911 for (var _i2 = 0; _i2 < neighbors.length; _i2++) {
143912 var v = neighbors[_i2];
143913 var vid = v.id();
143914 var vDist = distBetween(u2, v);
143915 var alt = smalletsDist + vDist.dist;
143916 if (alt < getDist2(v)) {
143917 setDist(v, alt);
143918 prev2[vid] = {
143919 node: u2,
143920 edge: vDist.edge
143921 };
143922 }
143923 }
143924 }
143925 return {
143926 distanceTo: function distanceTo(node3) {
143927 var target = string2(node3) ? nodes2.filter(node3)[0] : node3[0];
143928 return knownDist[target.id()];
143929 },
143930 pathTo: function pathTo(node3) {
143931 var target = string2(node3) ? nodes2.filter(node3)[0] : node3[0];
143932 var S2 = [];
143933 var u3 = target;
143934 var uid2 = u3.id();
143935 if (target.length > 0) {
143936 S2.unshift(target);
143937 while (prev2[uid2]) {
143938 var p2 = prev2[uid2];
143939 S2.unshift(p2.edge);
143940 S2.unshift(p2.node);
143941 u3 = p2.node;
143942 uid2 = u3.id();
143943 }
143944 }
143945 return eles.spawn(S2);
143946 }
143947 };
143948 }
143949 };
143950 var elesfn$t = {
143951 // kruskal's algorithm (finds min spanning tree, assuming undirected graph)
143952 // implemented from pseudocode from wikipedia
143953 kruskal: function kruskal(weightFn) {
143954 weightFn = weightFn || function(edge2) {
143955 return 1;
143956 };
143957 var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges2 = _this$byGroup.edges;
143958 var numNodes = nodes2.length;
143959 var forest = new Array(numNodes);
143960 var A = nodes2;
143961 var findSetIndex = function findSetIndex2(ele) {
143962 for (var i4 = 0; i4 < forest.length; i4++) {
143963 var eles = forest[i4];
143964 if (eles.has(ele)) {
143965 return i4;
143966 }
143967 }
143968 };
143969 for (var i3 = 0; i3 < numNodes; i3++) {
143970 forest[i3] = this.spawn(nodes2[i3]);
143971 }
143972 var S2 = edges2.sort(function(a, b) {
143973 return weightFn(a) - weightFn(b);
143974 });
143975 for (var _i = 0; _i < S2.length; _i++) {
143976 var edge = S2[_i];
143977 var u2 = edge.source()[0];
143978 var v = edge.target()[0];
143979 var setUIndex = findSetIndex(u2);
143980 var setVIndex = findSetIndex(v);
143981 var setU = forest[setUIndex];
143982 var setV = forest[setVIndex];
143983 if (setUIndex !== setVIndex) {
143984 A.merge(edge);
143985 setU.merge(setV);
143986 forest.splice(setVIndex, 1);
143987 }
143988 }
143989 return A;
143990 }
143991 };
143992 var aStarDefaults = defaults$g({
143993 root: null,
143994 goal: null,
143995 weight: function weight(edge) {
143996 return 1;
143997 },
143998 heuristic: function heuristic(edge) {
143999 return 0;
144000 },
144001 directed: false
144002 });
144003 var elesfn$s = {
144004 // Implemented from pseudocode from wikipedia
144005 aStar: function aStar(options2) {
144006 var cy = this.cy();
144007 var _aStarDefaults = aStarDefaults(options2), root3 = _aStarDefaults.root, goal = _aStarDefaults.goal, heuristic = _aStarDefaults.heuristic, directed = _aStarDefaults.directed, weight = _aStarDefaults.weight;
144008 root3 = cy.collection(root3)[0];
144009 goal = cy.collection(goal)[0];
144010 var sid = root3.id();
144011 var tid = goal.id();
144012 var gScore = {};
144013 var fScore = {};
144014 var closedSetIds = {};
144015 var openSet = new heap(function(a, b) {
144016 return fScore[a.id()] - fScore[b.id()];
144017 });
144018 var openSetIds = new Set$12();
144019 var cameFrom = {};
144020 var cameFromEdge = {};
144021 var addToOpenSet = function addToOpenSet2(ele, id2) {
144022 openSet.push(ele);
144023 openSetIds.add(id2);
144024 };
144025 var cMin, cMinId;
144026 var popFromOpenSet = function popFromOpenSet2() {
144027 cMin = openSet.pop();
144028 cMinId = cMin.id();
144029 openSetIds["delete"](cMinId);
144030 };
144031 var isInOpenSet = function isInOpenSet2(id2) {
144032 return openSetIds.has(id2);
144033 };
144034 addToOpenSet(root3, sid);
144035 gScore[sid] = 0;
144036 fScore[sid] = heuristic(root3);
144037 var steps = 0;
144038 while (openSet.size() > 0) {
144039 popFromOpenSet();
144040 steps++;
144041 if (cMinId === tid) {
144042 var path2 = [];
144043 var pathNode = goal;
144044 var pathNodeId = tid;
144045 var pathEdge = cameFromEdge[pathNodeId];
144046 for (; ; ) {
144047 path2.unshift(pathNode);
144048 if (pathEdge != null) {
144049 path2.unshift(pathEdge);
144050 }
144051 pathNode = cameFrom[pathNodeId];
144052 if (pathNode == null) {
144053 break;
144054 }
144055 pathNodeId = pathNode.id();
144056 pathEdge = cameFromEdge[pathNodeId];
144057 }
144058 return {
144059 found: true,
144060 distance: gScore[cMinId],
144061 path: this.spawn(path2),
144062 steps
144063 };
144064 }
144065 closedSetIds[cMinId] = true;
144066 var vwEdges = cMin._private.edges;
144067 for (var i3 = 0; i3 < vwEdges.length; i3++) {
144068 var e = vwEdges[i3];
144069 if (!this.hasElementWithId(e.id())) {
144070 continue;
144071 }
144072 if (directed && e.data("source") !== cMinId) {
144073 continue;
144074 }
144075 var wSrc = e.source();
144076 var wTgt = e.target();
144077 var w2 = wSrc.id() !== cMinId ? wSrc : wTgt;
144078 var wid = w2.id();
144079 if (!this.hasElementWithId(wid)) {
144080 continue;
144081 }
144082 if (closedSetIds[wid]) {
144083 continue;
144084 }
144085 var tempScore = gScore[cMinId] + weight(e);
144086 if (!isInOpenSet(wid)) {
144087 gScore[wid] = tempScore;
144088 fScore[wid] = tempScore + heuristic(w2);
144089 addToOpenSet(w2, wid);
144090 cameFrom[wid] = cMin;
144091 cameFromEdge[wid] = e;
144092 continue;
144093 }
144094 if (tempScore < gScore[wid]) {
144095 gScore[wid] = tempScore;
144096 fScore[wid] = tempScore + heuristic(w2);
144097 cameFrom[wid] = cMin;
144098 cameFromEdge[wid] = e;
144099 }
144100 }
144101 }
144102 return {
144103 found: false,
144104 distance: void 0,
144105 path: void 0,
144106 steps
144107 };
144108 }
144109 };
144110 var floydWarshallDefaults = defaults$g({
144111 weight: function weight(edge) {
144112 return 1;
144113 },
144114 directed: false
144115 });
144116 var elesfn$r = {
144117 // Implemented from pseudocode from wikipedia
144118 floydWarshall: function floydWarshall(options2) {
144119 var cy = this.cy();
144120 var _floydWarshallDefault = floydWarshallDefaults(options2), weight = _floydWarshallDefault.weight, directed = _floydWarshallDefault.directed;
144121 var weightFn = weight;
144122 var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges2 = _this$byGroup.edges;
144123 var N = nodes2.length;
144124 var Nsq = N * N;
144125 var indexOf = function indexOf2(node2) {
144126 return nodes2.indexOf(node2);
144127 };
144128 var atIndex = function atIndex2(i4) {
144129 return nodes2[i4];
144130 };
144131 var dist3 = new Array(Nsq);
144132 for (var n = 0; n < Nsq; n++) {
144133 var j = n % N;
144134 var i3 = (n - j) / N;
144135 if (i3 === j) {
144136 dist3[n] = 0;
144137 } else {
144138 dist3[n] = Infinity;
144139 }
144140 }
144141 var next2 = new Array(Nsq);
144142 var edgeNext = new Array(Nsq);
144143 for (var _i = 0; _i < edges2.length; _i++) {
144144 var edge = edges2[_i];
144145 var src = edge.source()[0];
144146 var tgt = edge.target()[0];
144147 if (src === tgt) {
144148 continue;
144149 }
144150 var s = indexOf(src);
144151 var t4 = indexOf(tgt);
144152 var st = s * N + t4;
144153 var _weight = weightFn(edge);
144154 if (dist3[st] > _weight) {
144155 dist3[st] = _weight;
144156 next2[st] = t4;
144157 edgeNext[st] = edge;
144158 }
144159 if (!directed) {
144160 var ts = t4 * N + s;
144161 if (!directed && dist3[ts] > _weight) {
144162 dist3[ts] = _weight;
144163 next2[ts] = s;
144164 edgeNext[ts] = edge;
144165 }
144166 }
144167 }
144168 for (var k = 0; k < N; k++) {
144169 for (var _i2 = 0; _i2 < N; _i2++) {
144170 var ik = _i2 * N + k;
144171 for (var _j = 0; _j < N; _j++) {
144172 var ij = _i2 * N + _j;
144173 var kj = k * N + _j;
144174 if (dist3[ik] + dist3[kj] < dist3[ij]) {
144175 dist3[ij] = dist3[ik] + dist3[kj];
144176 next2[ij] = next2[ik];
144177 }
144178 }
144179 }
144180 }
144181 var getArgEle = function getArgEle2(ele) {
144182 return (string2(ele) ? cy.filter(ele) : ele)[0];
144183 };
144184 var indexOfArgEle = function indexOfArgEle2(ele) {
144185 return indexOf(getArgEle(ele));
144186 };
144187 var res = {
144188 distance: function distance2(from2, to) {
144189 var i4 = indexOfArgEle(from2);
144190 var j2 = indexOfArgEle(to);
144191 return dist3[i4 * N + j2];
144192 },
144193 path: function path2(from2, to) {
144194 var i4 = indexOfArgEle(from2);
144195 var j2 = indexOfArgEle(to);
144196 var fromNode = atIndex(i4);
144197 if (i4 === j2) {
144198 return fromNode.collection();
144199 }
144200 if (next2[i4 * N + j2] == null) {
144201 return cy.collection();
144202 }
144203 var path3 = cy.collection();
144204 var prev2 = i4;
144205 var edge2;
144206 path3.merge(fromNode);
144207 while (i4 !== j2) {
144208 prev2 = i4;
144209 i4 = next2[i4 * N + j2];
144210 edge2 = edgeNext[prev2 * N + i4];
144211 path3.merge(edge2);
144212 path3.merge(atIndex(i4));
144213 }
144214 return path3;
144215 }
144216 };
144217 return res;
144218 }
144219 // floydWarshall
144220 };
144221 var bellmanFordDefaults = defaults$g({
144222 weight: function weight(edge) {
144223 return 1;
144224 },
144225 directed: false,
144226 root: null
144227 });
144228 var elesfn$q = {
144229 // Implemented from pseudocode from wikipedia
144230 bellmanFord: function bellmanFord(options2) {
144231 var _this = this;
144232 var _bellmanFordDefaults = bellmanFordDefaults(options2), weight = _bellmanFordDefaults.weight, directed = _bellmanFordDefaults.directed, root3 = _bellmanFordDefaults.root;
144233 var weightFn = weight;
144234 var eles = this;
144235 var cy = this.cy();
144236 var _this$byGroup = this.byGroup(), edges2 = _this$byGroup.edges, nodes2 = _this$byGroup.nodes;
144237 var numNodes = nodes2.length;
144238 var infoMap = new Map$22();
144239 var hasNegativeWeightCycle = false;
144240 var negativeWeightCycles = [];
144241 root3 = cy.collection(root3)[0];
144242 edges2.unmergeBy(function(edge2) {
144243 return edge2.isLoop();
144244 });
144245 var numEdges = edges2.length;
144246 var getInfo3 = function getInfo4(node3) {
144247 var obj = infoMap.get(node3.id());
144248 if (!obj) {
144249 obj = {};
144250 infoMap.set(node3.id(), obj);
144251 }
144252 return obj;
144253 };
144254 var getNodeFromTo = function getNodeFromTo2(to) {
144255 return (string2(to) ? cy.$(to) : to)[0];
144256 };
144257 var distanceTo = function distanceTo2(to) {
144258 return getInfo3(getNodeFromTo(to)).dist;
144259 };
144260 var pathTo = function pathTo2(to) {
144261 var thisStart = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : root3;
144262 var end2 = getNodeFromTo(to);
144263 var path2 = [];
144264 var node3 = end2;
144265 for (; ; ) {
144266 if (node3 == null) {
144267 return _this.spawn();
144268 }
144269 var _getInfo = getInfo3(node3), edge2 = _getInfo.edge, pred = _getInfo.pred;
144270 path2.unshift(node3[0]);
144271 if (node3.same(thisStart) && path2.length > 0) {
144272 break;
144273 }
144274 if (edge2 != null) {
144275 path2.unshift(edge2);
144276 }
144277 node3 = pred;
144278 }
144279 return eles.spawn(path2);
144280 };
144281 for (var i3 = 0; i3 < numNodes; i3++) {
144282 var node2 = nodes2[i3];
144283 var info2 = getInfo3(node2);
144284 if (node2.same(root3)) {
144285 info2.dist = 0;
144286 } else {
144287 info2.dist = Infinity;
144288 }
144289 info2.pred = null;
144290 info2.edge = null;
144291 }
144292 var replacedEdge = false;
144293 var checkForEdgeReplacement = function checkForEdgeReplacement2(node1, node22, edge2, info1, info22, weight2) {
144294 var dist3 = info1.dist + weight2;
144295 if (dist3 < info22.dist && !edge2.same(info1.edge)) {
144296 info22.dist = dist3;
144297 info22.pred = node1;
144298 info22.edge = edge2;
144299 replacedEdge = true;
144300 }
144301 };
144302 for (var _i = 1; _i < numNodes; _i++) {
144303 replacedEdge = false;
144304 for (var e = 0; e < numEdges; e++) {
144305 var edge = edges2[e];
144306 var src = edge.source();
144307 var tgt = edge.target();
144308 var _weight = weightFn(edge);
144309 var srcInfo = getInfo3(src);
144310 var tgtInfo = getInfo3(tgt);
144311 checkForEdgeReplacement(src, tgt, edge, srcInfo, tgtInfo, _weight);
144312 if (!directed) {
144313 checkForEdgeReplacement(tgt, src, edge, tgtInfo, srcInfo, _weight);
144314 }
144315 }
144316 if (!replacedEdge) {
144317 break;
144318 }
144319 }
144320 if (replacedEdge) {
144321 var negativeWeightCycleIds = [];
144322 for (var _e = 0; _e < numEdges; _e++) {
144323 var _edge = edges2[_e];
144324 var _src = _edge.source();
144325 var _tgt = _edge.target();
144326 var _weight2 = weightFn(_edge);
144327 var srcDist = getInfo3(_src).dist;
144328 var tgtDist = getInfo3(_tgt).dist;
144329 if (srcDist + _weight2 < tgtDist || !directed && tgtDist + _weight2 < srcDist) {
144330 if (!hasNegativeWeightCycle) {
144331 warn("Graph contains a negative weight cycle for Bellman-Ford");
144332 hasNegativeWeightCycle = true;
144333 }
144334 if (options2.findNegativeWeightCycles !== false) {
144335 var negativeNodes = [];
144336 if (srcDist + _weight2 < tgtDist) {
144337 negativeNodes.push(_src);
144338 }
144339 if (!directed && tgtDist + _weight2 < srcDist) {
144340 negativeNodes.push(_tgt);
144341 }
144342 var numNegativeNodes = negativeNodes.length;
144343 for (var n = 0; n < numNegativeNodes; n++) {
144344 var start2 = negativeNodes[n];
144345 var cycle = [start2];
144346 cycle.push(getInfo3(start2).edge);
144347 var _node = getInfo3(start2).pred;
144348 while (cycle.indexOf(_node) === -1) {
144349 cycle.push(_node);
144350 cycle.push(getInfo3(_node).edge);
144351 _node = getInfo3(_node).pred;
144352 }
144353 cycle = cycle.slice(cycle.indexOf(_node));
144354 var smallestId = cycle[0].id();
144355 var smallestIndex = 0;
144356 for (var c2 = 2; c2 < cycle.length; c2 += 2) {
144357 if (cycle[c2].id() < smallestId) {
144358 smallestId = cycle[c2].id();
144359 smallestIndex = c2;
144360 }
144361 }
144362 cycle = cycle.slice(smallestIndex).concat(cycle.slice(0, smallestIndex));
144363 cycle.push(cycle[0]);
144364 var cycleId = cycle.map(function(el) {
144365 return el.id();
144366 }).join(",");
144367 if (negativeWeightCycleIds.indexOf(cycleId) === -1) {
144368 negativeWeightCycles.push(eles.spawn(cycle));
144369 negativeWeightCycleIds.push(cycleId);
144370 }
144371 }
144372 } else {
144373 break;
144374 }
144375 }
144376 }
144377 }
144378 return {
144379 distanceTo,
144380 pathTo,
144381 hasNegativeWeightCycle,
144382 negativeWeightCycles
144383 };
144384 }
144385 // bellmanFord
144386 };
144387 var sqrt2 = Math.sqrt(2);
144388 var collapse = function collapse2(edgeIndex, nodeMap, remainingEdges) {
144389 if (remainingEdges.length === 0) {
144390 error("Karger-Stein must be run on a connected (sub)graph");
144391 }
144392 var edgeInfo = remainingEdges[edgeIndex];
144393 var sourceIn = edgeInfo[1];
144394 var targetIn = edgeInfo[2];
144395 var partition1 = nodeMap[sourceIn];
144396 var partition2 = nodeMap[targetIn];
144397 var newEdges = remainingEdges;
144398 for (var i3 = newEdges.length - 1; i3 >= 0; i3--) {
144399 var edge = newEdges[i3];
144400 var src = edge[1];
144401 var tgt = edge[2];
144402 if (nodeMap[src] === partition1 && nodeMap[tgt] === partition2 || nodeMap[src] === partition2 && nodeMap[tgt] === partition1) {
144403 newEdges.splice(i3, 1);
144404 }
144405 }
144406 for (var _i = 0; _i < newEdges.length; _i++) {
144407 var _edge = newEdges[_i];
144408 if (_edge[1] === partition2) {
144409 newEdges[_i] = _edge.slice();
144410 newEdges[_i][1] = partition1;
144411 } else if (_edge[2] === partition2) {
144412 newEdges[_i] = _edge.slice();
144413 newEdges[_i][2] = partition1;
144414 }
144415 }
144416 for (var _i2 = 0; _i2 < nodeMap.length; _i2++) {
144417 if (nodeMap[_i2] === partition2) {
144418 nodeMap[_i2] = partition1;
144419 }
144420 }
144421 return newEdges;
144422 };
144423 var contractUntil = function contractUntil2(metaNodeMap, remainingEdges, size2, sizeLimit) {
144424 while (size2 > sizeLimit) {
144425 var edgeIndex = Math.floor(Math.random() * remainingEdges.length);
144426 remainingEdges = collapse(edgeIndex, metaNodeMap, remainingEdges);
144427 size2--;
144428 }
144429 return remainingEdges;
144430 };
144431 var elesfn$p = {
144432 // Computes the minimum cut of an undirected graph
144433 // Returns the correct answer with high probability
144434 kargerStein: function kargerStein() {
144435 var _this = this;
144436 var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges2 = _this$byGroup.edges;
144437 edges2.unmergeBy(function(edge) {
144438 return edge.isLoop();
144439 });
144440 var numNodes = nodes2.length;
144441 var numEdges = edges2.length;
144442 var numIter = Math.ceil(Math.pow(Math.log(numNodes) / Math.LN2, 2));
144443 var stopSize = Math.floor(numNodes / sqrt2);
144444 if (numNodes < 2) {
144445 error("At least 2 nodes are required for Karger-Stein algorithm");
144446 return void 0;
144447 }
144448 var edgeIndexes = [];
144449 for (var i3 = 0; i3 < numEdges; i3++) {
144450 var e = edges2[i3];
144451 edgeIndexes.push([i3, nodes2.indexOf(e.source()), nodes2.indexOf(e.target())]);
144452 }
144453 var minCutSize = Infinity;
144454 var minCutEdgeIndexes = [];
144455 var minCutNodeMap = new Array(numNodes);
144456 var metaNodeMap = new Array(numNodes);
144457 var metaNodeMap2 = new Array(numNodes);
144458 var copyNodesMap = function copyNodesMap2(from2, to) {
144459 for (var _i3 = 0; _i3 < numNodes; _i3++) {
144460 to[_i3] = from2[_i3];
144461 }
144462 };
144463 for (var iter = 0; iter <= numIter; iter++) {
144464 for (var _i4 = 0; _i4 < numNodes; _i4++) {
144465 metaNodeMap[_i4] = _i4;
144466 }
144467 var edgesState = contractUntil(metaNodeMap, edgeIndexes.slice(), numNodes, stopSize);
144468 var edgesState2 = edgesState.slice();
144469 copyNodesMap(metaNodeMap, metaNodeMap2);
144470 var res1 = contractUntil(metaNodeMap, edgesState, stopSize, 2);
144471 var res2 = contractUntil(metaNodeMap2, edgesState2, stopSize, 2);
144472 if (res1.length <= res2.length && res1.length < minCutSize) {
144473 minCutSize = res1.length;
144474 minCutEdgeIndexes = res1;
144475 copyNodesMap(metaNodeMap, minCutNodeMap);
144476 } else if (res2.length <= res1.length && res2.length < minCutSize) {
144477 minCutSize = res2.length;
144478 minCutEdgeIndexes = res2;
144479 copyNodesMap(metaNodeMap2, minCutNodeMap);
144480 }
144481 }
144482 var cut = this.spawn(minCutEdgeIndexes.map(function(e3) {
144483 return edges2[e3[0]];
144484 }));
144485 var partition1 = this.spawn();
144486 var partition2 = this.spawn();
144487 var witnessNodePartition = minCutNodeMap[0];
144488 for (var _i5 = 0; _i5 < minCutNodeMap.length; _i5++) {
144489 var partitionId = minCutNodeMap[_i5];
144490 var node2 = nodes2[_i5];
144491 if (partitionId === witnessNodePartition) {
144492 partition1.merge(node2);
144493 } else {
144494 partition2.merge(node2);
144495 }
144496 }
144497 var constructComponent = function constructComponent2(subset) {
144498 var component = _this.spawn();
144499 subset.forEach(function(node3) {
144500 component.merge(node3);
144501 node3.connectedEdges().forEach(function(edge) {
144502 if (_this.contains(edge) && !cut.contains(edge)) {
144503 component.merge(edge);
144504 }
144505 });
144506 });
144507 return component;
144508 };
144509 var components = [constructComponent(partition1), constructComponent(partition2)];
144510 var ret = {
144511 cut,
144512 components,
144513 // n.b. partitions are included to be compatible with the old api spec
144514 // (could be removed in a future major version)
144515 partition1,
144516 partition2
144517 };
144518 return ret;
144519 }
144520 };
144521 var copyPosition = function copyPosition2(p2) {
144522 return {
144523 x: p2.x,
144524 y: p2.y
144525 };
144526 };
144527 var modelToRenderedPosition = function modelToRenderedPosition2(p2, zoom, pan) {
144528 return {
144529 x: p2.x * zoom + pan.x,
144530 y: p2.y * zoom + pan.y
144531 };
144532 };
144533 var renderedToModelPosition = function renderedToModelPosition2(p2, zoom, pan) {
144534 return {
144535 x: (p2.x - pan.x) / zoom,
144536 y: (p2.y - pan.y) / zoom
144537 };
144538 };
144539 var array2point = function array2point2(arr) {
144540 return {
144541 x: arr[0],
144542 y: arr[1]
144543 };
144544 };
144545 var min2 = function min3(arr) {
144546 var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
144547 var end2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
144548 var min4 = Infinity;
144549 for (var i3 = begin; i3 < end2; i3++) {
144550 var val = arr[i3];
144551 if (isFinite(val)) {
144552 min4 = Math.min(val, min4);
144553 }
144554 }
144555 return min4;
144556 };
144557 var max2 = function max3(arr) {
144558 var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
144559 var end2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
144560 var max4 = -Infinity;
144561 for (var i3 = begin; i3 < end2; i3++) {
144562 var val = arr[i3];
144563 if (isFinite(val)) {
144564 max4 = Math.max(val, max4);
144565 }
144566 }
144567 return max4;
144568 };
144569 var mean = function mean2(arr) {
144570 var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
144571 var end2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
144572 var total = 0;
144573 var n = 0;
144574 for (var i3 = begin; i3 < end2; i3++) {
144575 var val = arr[i3];
144576 if (isFinite(val)) {
144577 total += val;
144578 n++;
144579 }
144580 }
144581 return total / n;
144582 };
144583 var median = function median2(arr) {
144584 var begin = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
144585 var end2 = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : arr.length;
144586 var copy3 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
144587 var sort2 = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
144588 var includeHoles = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
144589 if (copy3) {
144590 arr = arr.slice(begin, end2);
144591 } else {
144592 if (end2 < arr.length) {
144593 arr.splice(end2, arr.length - end2);
144594 }
144595 if (begin > 0) {
144596 arr.splice(0, begin);
144597 }
144598 }
144599 var off = 0;
144600 for (var i3 = arr.length - 1; i3 >= 0; i3--) {
144601 var v = arr[i3];
144602 if (includeHoles) {
144603 if (!isFinite(v)) {
144604 arr[i3] = -Infinity;
144605 off++;
144606 }
144607 } else {
144608 arr.splice(i3, 1);
144609 }
144610 }
144611 if (sort2) {
144612 arr.sort(function(a, b) {
144613 return a - b;
144614 });
144615 }
144616 var len = arr.length;
144617 var mid = Math.floor(len / 2);
144618 if (len % 2 !== 0) {
144619 return arr[mid + 1 + off];
144620 } else {
144621 return (arr[mid - 1 + off] + arr[mid + off]) / 2;
144622 }
144623 };
144624 var deg2rad = function deg2rad2(deg) {
144625 return Math.PI * deg / 180;
144626 };
144627 var getAngleFromDisp = function getAngleFromDisp2(dispX, dispY) {
144628 return Math.atan2(dispY, dispX) - Math.PI / 2;
144629 };
144630 var log2 = Math.log2 || function(n) {
144631 return Math.log(n) / Math.log(2);
144632 };
144633 var signum = function signum2(x2) {
144634 if (x2 > 0) {
144635 return 1;
144636 } else if (x2 < 0) {
144637 return -1;
144638 } else {
144639 return 0;
144640 }
144641 };
144642 var dist2 = function dist3(p1, p2) {
144643 return Math.sqrt(sqdist(p1, p2));
144644 };
144645 var sqdist = function sqdist2(p1, p2) {
144646 var dx = p2.x - p1.x;
144647 var dy = p2.y - p1.y;
144648 return dx * dx + dy * dy;
144649 };
144650 var inPlaceSumNormalize = function inPlaceSumNormalize2(v) {
144651 var length2 = v.length;
144652 var total = 0;
144653 for (var i3 = 0; i3 < length2; i3++) {
144654 total += v[i3];
144655 }
144656 for (var _i = 0; _i < length2; _i++) {
144657 v[_i] = v[_i] / total;
144658 }
144659 return v;
144660 };
144661 var qbezierAt = function qbezierAt2(p0, p1, p2, t4) {
144662 return (1 - t4) * (1 - t4) * p0 + 2 * (1 - t4) * t4 * p1 + t4 * t4 * p2;
144663 };
144664 var qbezierPtAt = function qbezierPtAt2(p0, p1, p2, t4) {
144665 return {
144666 x: qbezierAt(p0.x, p1.x, p2.x, t4),
144667 y: qbezierAt(p0.y, p1.y, p2.y, t4)
144668 };
144669 };
144670 var lineAt = function lineAt2(p0, p1, t4, d) {
144671 var vec = {
144672 x: p1.x - p0.x,
144673 y: p1.y - p0.y
144674 };
144675 var vecDist = dist2(p0, p1);
144676 var normVec = {
144677 x: vec.x / vecDist,
144678 y: vec.y / vecDist
144679 };
144680 t4 = t4 == null ? 0 : t4;
144681 d = d != null ? d : t4 * vecDist;
144682 return {
144683 x: p0.x + normVec.x * d,
144684 y: p0.y + normVec.y * d
144685 };
144686 };
144687 var bound = function bound2(min3, val, max3) {
144688 return Math.max(min3, Math.min(max3, val));
144689 };
144690 var makeBoundingBox = function makeBoundingBox2(bb) {
144691 if (bb == null) {
144692 return {
144693 x1: Infinity,
144694 y1: Infinity,
144695 x2: -Infinity,
144696 y2: -Infinity,
144697 w: 0,
144698 h: 0
144699 };
144700 } else if (bb.x1 != null && bb.y1 != null) {
144701 if (bb.x2 != null && bb.y2 != null && bb.x2 >= bb.x1 && bb.y2 >= bb.y1) {
144702 return {
144703 x1: bb.x1,
144704 y1: bb.y1,
144705 x2: bb.x2,
144706 y2: bb.y2,
144707 w: bb.x2 - bb.x1,
144708 h: bb.y2 - bb.y1
144709 };
144710 } else if (bb.w != null && bb.h != null && bb.w >= 0 && bb.h >= 0) {
144711 return {
144712 x1: bb.x1,
144713 y1: bb.y1,
144714 x2: bb.x1 + bb.w,
144715 y2: bb.y1 + bb.h,
144716 w: bb.w,
144717 h: bb.h
144718 };
144719 }
144720 }
144721 };
144722 var copyBoundingBox = function copyBoundingBox2(bb) {
144723 return {
144724 x1: bb.x1,
144725 x2: bb.x2,
144726 w: bb.w,
144727 y1: bb.y1,
144728 y2: bb.y2,
144729 h: bb.h
144730 };
144731 };
144732 var clearBoundingBox = function clearBoundingBox2(bb) {
144733 bb.x1 = Infinity;
144734 bb.y1 = Infinity;
144735 bb.x2 = -Infinity;
144736 bb.y2 = -Infinity;
144737 bb.w = 0;
144738 bb.h = 0;
144739 };
144740 var updateBoundingBox = function updateBoundingBox2(bb1, bb2) {
144741 bb1.x1 = Math.min(bb1.x1, bb2.x1);
144742 bb1.x2 = Math.max(bb1.x2, bb2.x2);
144743 bb1.w = bb1.x2 - bb1.x1;
144744 bb1.y1 = Math.min(bb1.y1, bb2.y1);
144745 bb1.y2 = Math.max(bb1.y2, bb2.y2);
144746 bb1.h = bb1.y2 - bb1.y1;
144747 };
144748 var expandBoundingBoxByPoint = function expandBoundingBoxByPoint2(bb, x2, y2) {
144749 bb.x1 = Math.min(bb.x1, x2);
144750 bb.x2 = Math.max(bb.x2, x2);
144751 bb.w = bb.x2 - bb.x1;
144752 bb.y1 = Math.min(bb.y1, y2);
144753 bb.y2 = Math.max(bb.y2, y2);
144754 bb.h = bb.y2 - bb.y1;
144755 };
144756 var expandBoundingBox = function expandBoundingBox2(bb) {
144757 var padding2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
144758 bb.x1 -= padding2;
144759 bb.x2 += padding2;
144760 bb.y1 -= padding2;
144761 bb.y2 += padding2;
144762 bb.w = bb.x2 - bb.x1;
144763 bb.h = bb.y2 - bb.y1;
144764 return bb;
144765 };
144766 var expandBoundingBoxSides = function expandBoundingBoxSides2(bb) {
144767 var padding2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [0];
144768 var top2, right2, bottom2, left2;
144769 if (padding2.length === 1) {
144770 top2 = right2 = bottom2 = left2 = padding2[0];
144771 } else if (padding2.length === 2) {
144772 top2 = bottom2 = padding2[0];
144773 left2 = right2 = padding2[1];
144774 } else if (padding2.length === 4) {
144775 var _padding = _slicedToArray(padding2, 4);
144776 top2 = _padding[0];
144777 right2 = _padding[1];
144778 bottom2 = _padding[2];
144779 left2 = _padding[3];
144780 }
144781 bb.x1 -= left2;
144782 bb.x2 += right2;
144783 bb.y1 -= top2;
144784 bb.y2 += bottom2;
144785 bb.w = bb.x2 - bb.x1;
144786 bb.h = bb.y2 - bb.y1;
144787 return bb;
144788 };
144789 var assignBoundingBox = function assignBoundingBox2(bb1, bb2) {
144790 bb1.x1 = bb2.x1;
144791 bb1.y1 = bb2.y1;
144792 bb1.x2 = bb2.x2;
144793 bb1.y2 = bb2.y2;
144794 bb1.w = bb1.x2 - bb1.x1;
144795 bb1.h = bb1.y2 - bb1.y1;
144796 };
144797 var boundingBoxesIntersect = function boundingBoxesIntersect2(bb1, bb2) {
144798 if (bb1.x1 > bb2.x2) {
144799 return false;
144800 }
144801 if (bb2.x1 > bb1.x2) {
144802 return false;
144803 }
144804 if (bb1.x2 < bb2.x1) {
144805 return false;
144806 }
144807 if (bb2.x2 < bb1.x1) {
144808 return false;
144809 }
144810 if (bb1.y2 < bb2.y1) {
144811 return false;
144812 }
144813 if (bb2.y2 < bb1.y1) {
144814 return false;
144815 }
144816 if (bb1.y1 > bb2.y2) {
144817 return false;
144818 }
144819 if (bb2.y1 > bb1.y2) {
144820 return false;
144821 }
144822 return true;
144823 };
144824 var inBoundingBox = function inBoundingBox2(bb, x2, y2) {
144825 return bb.x1 <= x2 && x2 <= bb.x2 && bb.y1 <= y2 && y2 <= bb.y2;
144826 };
144827 var pointInBoundingBox = function pointInBoundingBox2(bb, pt) {
144828 return inBoundingBox(bb, pt.x, pt.y);
144829 };
144830 var boundingBoxInBoundingBox = function boundingBoxInBoundingBox2(bb1, bb2) {
144831 return inBoundingBox(bb1, bb2.x1, bb2.y1) && inBoundingBox(bb1, bb2.x2, bb2.y2);
144832 };
144833 var roundRectangleIntersectLine = function roundRectangleIntersectLine2(x2, y2, nodeX, nodeY, width2, height2, padding2) {
144834 var cornerRadius = getRoundRectangleRadius(width2, height2);
144835 var halfWidth = width2 / 2;
144836 var halfHeight = height2 / 2;
144837 var straightLineIntersections;
144838 {
144839 var topStartX = nodeX - halfWidth + cornerRadius - padding2;
144840 var topStartY = nodeY - halfHeight - padding2;
144841 var topEndX = nodeX + halfWidth - cornerRadius + padding2;
144842 var topEndY = topStartY;
144843 straightLineIntersections = finiteLinesIntersect(x2, y2, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);
144844 if (straightLineIntersections.length > 0) {
144845 return straightLineIntersections;
144846 }
144847 }
144848 {
144849 var rightStartX = nodeX + halfWidth + padding2;
144850 var rightStartY = nodeY - halfHeight + cornerRadius - padding2;
144851 var rightEndX = rightStartX;
144852 var rightEndY = nodeY + halfHeight - cornerRadius + padding2;
144853 straightLineIntersections = finiteLinesIntersect(x2, y2, nodeX, nodeY, rightStartX, rightStartY, rightEndX, rightEndY, false);
144854 if (straightLineIntersections.length > 0) {
144855 return straightLineIntersections;
144856 }
144857 }
144858 {
144859 var bottomStartX = nodeX - halfWidth + cornerRadius - padding2;
144860 var bottomStartY = nodeY + halfHeight + padding2;
144861 var bottomEndX = nodeX + halfWidth - cornerRadius + padding2;
144862 var bottomEndY = bottomStartY;
144863 straightLineIntersections = finiteLinesIntersect(x2, y2, nodeX, nodeY, bottomStartX, bottomStartY, bottomEndX, bottomEndY, false);
144864 if (straightLineIntersections.length > 0) {
144865 return straightLineIntersections;
144866 }
144867 }
144868 {
144869 var leftStartX = nodeX - halfWidth - padding2;
144870 var leftStartY = nodeY - halfHeight + cornerRadius - padding2;
144871 var leftEndX = leftStartX;
144872 var leftEndY = nodeY + halfHeight - cornerRadius + padding2;
144873 straightLineIntersections = finiteLinesIntersect(x2, y2, nodeX, nodeY, leftStartX, leftStartY, leftEndX, leftEndY, false);
144874 if (straightLineIntersections.length > 0) {
144875 return straightLineIntersections;
144876 }
144877 }
144878 var arcIntersections;
144879 {
144880 var topLeftCenterX = nodeX - halfWidth + cornerRadius;
144881 var topLeftCenterY = nodeY - halfHeight + cornerRadius;
144882 arcIntersections = intersectLineCircle(x2, y2, nodeX, nodeY, topLeftCenterX, topLeftCenterY, cornerRadius + padding2);
144883 if (arcIntersections.length > 0 && arcIntersections[0] <= topLeftCenterX && arcIntersections[1] <= topLeftCenterY) {
144884 return [arcIntersections[0], arcIntersections[1]];
144885 }
144886 }
144887 {
144888 var topRightCenterX = nodeX + halfWidth - cornerRadius;
144889 var topRightCenterY = nodeY - halfHeight + cornerRadius;
144890 arcIntersections = intersectLineCircle(x2, y2, nodeX, nodeY, topRightCenterX, topRightCenterY, cornerRadius + padding2);
144891 if (arcIntersections.length > 0 && arcIntersections[0] >= topRightCenterX && arcIntersections[1] <= topRightCenterY) {
144892 return [arcIntersections[0], arcIntersections[1]];
144893 }
144894 }
144895 {
144896 var bottomRightCenterX = nodeX + halfWidth - cornerRadius;
144897 var bottomRightCenterY = nodeY + halfHeight - cornerRadius;
144898 arcIntersections = intersectLineCircle(x2, y2, nodeX, nodeY, bottomRightCenterX, bottomRightCenterY, cornerRadius + padding2);
144899 if (arcIntersections.length > 0 && arcIntersections[0] >= bottomRightCenterX && arcIntersections[1] >= bottomRightCenterY) {
144900 return [arcIntersections[0], arcIntersections[1]];
144901 }
144902 }
144903 {
144904 var bottomLeftCenterX = nodeX - halfWidth + cornerRadius;
144905 var bottomLeftCenterY = nodeY + halfHeight - cornerRadius;
144906 arcIntersections = intersectLineCircle(x2, y2, nodeX, nodeY, bottomLeftCenterX, bottomLeftCenterY, cornerRadius + padding2);
144907 if (arcIntersections.length > 0 && arcIntersections[0] <= bottomLeftCenterX && arcIntersections[1] >= bottomLeftCenterY) {
144908 return [arcIntersections[0], arcIntersections[1]];
144909 }
144910 }
144911 return [];
144912 };
144913 var inLineVicinity = function inLineVicinity2(x2, y2, lx1, ly1, lx2, ly2, tolerance) {
144914 var t4 = tolerance;
144915 var x1 = Math.min(lx1, lx2);
144916 var x22 = Math.max(lx1, lx2);
144917 var y1 = Math.min(ly1, ly2);
144918 var y22 = Math.max(ly1, ly2);
144919 return x1 - t4 <= x2 && x2 <= x22 + t4 && y1 - t4 <= y2 && y2 <= y22 + t4;
144920 };
144921 var inBezierVicinity = function inBezierVicinity2(x2, y2, x1, y1, x22, y22, x3, y3, tolerance) {
144922 var bb = {
144923 x1: Math.min(x1, x3, x22) - tolerance,
144924 x2: Math.max(x1, x3, x22) + tolerance,
144925 y1: Math.min(y1, y3, y22) - tolerance,
144926 y2: Math.max(y1, y3, y22) + tolerance
144927 };
144928 if (x2 < bb.x1 || x2 > bb.x2 || y2 < bb.y1 || y2 > bb.y2) {
144929 return false;
144930 } else {
144931 return true;
144932 }
144933 };
144934 var solveQuadratic = function solveQuadratic2(a, b, c2, val) {
144935 c2 -= val;
144936 var r = b * b - 4 * a * c2;
144937 if (r < 0) {
144938 return [];
144939 }
144940 var sqrtR = Math.sqrt(r);
144941 var denom = 2 * a;
144942 var root1 = (-b + sqrtR) / denom;
144943 var root22 = (-b - sqrtR) / denom;
144944 return [root1, root22];
144945 };
144946 var solveCubic = function solveCubic2(a, b, c2, d, result) {
144947 var epsilon2 = 1e-5;
144948 if (a === 0) {
144949 a = epsilon2;
144950 }
144951 b /= a;
144952 c2 /= a;
144953 d /= a;
144954 var discriminant, q, r, dum1, s, t4, term1, r13;
144955 q = (3 * c2 - b * b) / 9;
144956 r = -(27 * d) + b * (9 * c2 - 2 * (b * b));
144957 r /= 54;
144958 discriminant = q * q * q + r * r;
144959 result[1] = 0;
144960 term1 = b / 3;
144961 if (discriminant > 0) {
144962 s = r + Math.sqrt(discriminant);
144963 s = s < 0 ? -Math.pow(-s, 1 / 3) : Math.pow(s, 1 / 3);
144964 t4 = r - Math.sqrt(discriminant);
144965 t4 = t4 < 0 ? -Math.pow(-t4, 1 / 3) : Math.pow(t4, 1 / 3);
144966 result[0] = -term1 + s + t4;
144967 term1 += (s + t4) / 2;
144968 result[4] = result[2] = -term1;
144969 term1 = Math.sqrt(3) * (-t4 + s) / 2;
144970 result[3] = term1;
144971 result[5] = -term1;
144972 return;
144973 }
144974 result[5] = result[3] = 0;
144975 if (discriminant === 0) {
144976 r13 = r < 0 ? -Math.pow(-r, 1 / 3) : Math.pow(r, 1 / 3);
144977 result[0] = -term1 + 2 * r13;
144978 result[4] = result[2] = -(r13 + term1);
144979 return;
144980 }
144981 q = -q;
144982 dum1 = q * q * q;
144983 dum1 = Math.acos(r / Math.sqrt(dum1));
144984 r13 = 2 * Math.sqrt(q);
144985 result[0] = -term1 + r13 * Math.cos(dum1 / 3);
144986 result[2] = -term1 + r13 * Math.cos((dum1 + 2 * Math.PI) / 3);
144987 result[4] = -term1 + r13 * Math.cos((dum1 + 4 * Math.PI) / 3);
144988 return;
144989 };
144990 var sqdistToQuadraticBezier = function sqdistToQuadraticBezier2(x2, y2, x1, y1, x22, y22, x3, y3) {
144991 var a = 1 * x1 * x1 - 4 * x1 * x22 + 2 * x1 * x3 + 4 * x22 * x22 - 4 * x22 * x3 + x3 * x3 + y1 * y1 - 4 * y1 * y22 + 2 * y1 * y3 + 4 * y22 * y22 - 4 * y22 * y3 + y3 * y3;
144992 var b = 1 * 9 * x1 * x22 - 3 * x1 * x1 - 3 * x1 * x3 - 6 * x22 * x22 + 3 * x22 * x3 + 9 * y1 * y22 - 3 * y1 * y1 - 3 * y1 * y3 - 6 * y22 * y22 + 3 * y22 * y3;
144993 var c2 = 1 * 3 * x1 * x1 - 6 * x1 * x22 + x1 * x3 - x1 * x2 + 2 * x22 * x22 + 2 * x22 * x2 - x3 * x2 + 3 * y1 * y1 - 6 * y1 * y22 + y1 * y3 - y1 * y2 + 2 * y22 * y22 + 2 * y22 * y2 - y3 * y2;
144994 var d = 1 * x1 * x22 - x1 * x1 + x1 * x2 - x22 * x2 + y1 * y22 - y1 * y1 + y1 * y2 - y22 * y2;
144995 var roots = [];
144996 solveCubic(a, b, c2, d, roots);
144997 var zeroThreshold = 1e-7;
144998 var params = [];
144999 for (var index2 = 0; index2 < 6; index2 += 2) {
145000 if (Math.abs(roots[index2 + 1]) < zeroThreshold && roots[index2] >= 0 && roots[index2] <= 1) {
145001 params.push(roots[index2]);
145002 }
145003 }
145004 params.push(1);
145005 params.push(0);
145006 var minDistanceSquared = -1;
145007 var curX, curY, distSquared;
145008 for (var i3 = 0; i3 < params.length; i3++) {
145009 curX = Math.pow(1 - params[i3], 2) * x1 + 2 * (1 - params[i3]) * params[i3] * x22 + params[i3] * params[i3] * x3;
145010 curY = Math.pow(1 - params[i3], 2) * y1 + 2 * (1 - params[i3]) * params[i3] * y22 + params[i3] * params[i3] * y3;
145011 distSquared = Math.pow(curX - x2, 2) + Math.pow(curY - y2, 2);
145012 if (minDistanceSquared >= 0) {
145013 if (distSquared < minDistanceSquared) {
145014 minDistanceSquared = distSquared;
145015 }
145016 } else {
145017 minDistanceSquared = distSquared;
145018 }
145019 }
145020 return minDistanceSquared;
145021 };
145022 var sqdistToFiniteLine = function sqdistToFiniteLine2(x2, y2, x1, y1, x22, y22) {
145023 var offset = [x2 - x1, y2 - y1];
145024 var line2 = [x22 - x1, y22 - y1];
145025 var lineSq = line2[0] * line2[0] + line2[1] * line2[1];
145026 var hypSq = offset[0] * offset[0] + offset[1] * offset[1];
145027 var dotProduct = offset[0] * line2[0] + offset[1] * line2[1];
145028 var adjSq = dotProduct * dotProduct / lineSq;
145029 if (dotProduct < 0) {
145030 return hypSq;
145031 }
145032 if (adjSq > lineSq) {
145033 return (x2 - x22) * (x2 - x22) + (y2 - y22) * (y2 - y22);
145034 }
145035 return hypSq - adjSq;
145036 };
145037 var pointInsidePolygonPoints = function pointInsidePolygonPoints2(x2, y2, points) {
145038 var x1, y1, x22, y22;
145039 var y3;
145040 var up = 0;
145041 for (var i3 = 0; i3 < points.length / 2; i3++) {
145042 x1 = points[i3 * 2];
145043 y1 = points[i3 * 2 + 1];
145044 if (i3 + 1 < points.length / 2) {
145045 x22 = points[(i3 + 1) * 2];
145046 y22 = points[(i3 + 1) * 2 + 1];
145047 } else {
145048 x22 = points[(i3 + 1 - points.length / 2) * 2];
145049 y22 = points[(i3 + 1 - points.length / 2) * 2 + 1];
145050 }
145051 if (x1 == x2 && x22 == x2)
145052 ;
145053 else if (x1 >= x2 && x2 >= x22 || x1 <= x2 && x2 <= x22) {
145054 y3 = (x2 - x1) / (x22 - x1) * (y22 - y1) + y1;
145055 if (y3 > y2) {
145056 up++;
145057 }
145058 } else {
145059 continue;
145060 }
145061 }
145062 if (up % 2 === 0) {
145063 return false;
145064 } else {
145065 return true;
145066 }
145067 };
145068 var pointInsidePolygon = function pointInsidePolygon2(x2, y2, basePoints, centerX, centerY, width2, height2, direction2, padding2) {
145069 var transformedPoints = new Array(basePoints.length);
145070 var angle;
145071 if (direction2[0] != null) {
145072 angle = Math.atan(direction2[1] / direction2[0]);
145073 if (direction2[0] < 0) {
145074 angle = angle + Math.PI / 2;
145075 } else {
145076 angle = -angle - Math.PI / 2;
145077 }
145078 } else {
145079 angle = direction2;
145080 }
145081 var cos3 = Math.cos(-angle);
145082 var sin3 = Math.sin(-angle);
145083 for (var i3 = 0; i3 < transformedPoints.length / 2; i3++) {
145084 transformedPoints[i3 * 2] = width2 / 2 * (basePoints[i3 * 2] * cos3 - basePoints[i3 * 2 + 1] * sin3);
145085 transformedPoints[i3 * 2 + 1] = height2 / 2 * (basePoints[i3 * 2 + 1] * cos3 + basePoints[i3 * 2] * sin3);
145086 transformedPoints[i3 * 2] += centerX;
145087 transformedPoints[i3 * 2 + 1] += centerY;
145088 }
145089 var points;
145090 if (padding2 > 0) {
145091 var expandedLineSet = expandPolygon(transformedPoints, -padding2);
145092 points = joinLines(expandedLineSet);
145093 } else {
145094 points = transformedPoints;
145095 }
145096 return pointInsidePolygonPoints(x2, y2, points);
145097 };
145098 var pointInsideRoundPolygon = function pointInsideRoundPolygon2(x2, y2, basePoints, centerX, centerY, width2, height2) {
145099 var cutPolygonPoints = new Array(basePoints.length);
145100 var halfW = width2 / 2;
145101 var halfH = height2 / 2;
145102 var cornerRadius = getRoundPolygonRadius(width2, height2);
145103 var squaredCornerRadius = cornerRadius * cornerRadius;
145104 for (var i3 = 0; i3 < basePoints.length / 4; i3++) {
145105 var sourceUv = void 0, destUv = void 0;
145106 if (i3 === 0) {
145107 sourceUv = basePoints.length - 2;
145108 } else {
145109 sourceUv = i3 * 4 - 2;
145110 }
145111 destUv = i3 * 4 + 2;
145112 var px = centerX + halfW * basePoints[i3 * 4];
145113 var py = centerY + halfH * basePoints[i3 * 4 + 1];
145114 var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1];
145115 var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);
145116 var cp0x = px - offset * basePoints[sourceUv];
145117 var cp0y = py - offset * basePoints[sourceUv + 1];
145118 var cp1x = px + offset * basePoints[destUv];
145119 var cp1y = py + offset * basePoints[destUv + 1];
145120 cutPolygonPoints[i3 * 4] = cp0x;
145121 cutPolygonPoints[i3 * 4 + 1] = cp0y;
145122 cutPolygonPoints[i3 * 4 + 2] = cp1x;
145123 cutPolygonPoints[i3 * 4 + 3] = cp1y;
145124 var orthx = basePoints[sourceUv + 1];
145125 var orthy = -basePoints[sourceUv];
145126 var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1];
145127 if (cosAlpha < 0) {
145128 orthx *= -1;
145129 orthy *= -1;
145130 }
145131 var cx = cp0x + orthx * cornerRadius;
145132 var cy = cp0y + orthy * cornerRadius;
145133 var squaredDistance = Math.pow(cx - x2, 2) + Math.pow(cy - y2, 2);
145134 if (squaredDistance <= squaredCornerRadius) {
145135 return true;
145136 }
145137 }
145138 return pointInsidePolygonPoints(x2, y2, cutPolygonPoints);
145139 };
145140 var joinLines = function joinLines2(lineSet) {
145141 var vertices2 = new Array(lineSet.length / 2);
145142 var currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY;
145143 var nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY;
145144 for (var i3 = 0; i3 < lineSet.length / 4; i3++) {
145145 currentLineStartX = lineSet[i3 * 4];
145146 currentLineStartY = lineSet[i3 * 4 + 1];
145147 currentLineEndX = lineSet[i3 * 4 + 2];
145148 currentLineEndY = lineSet[i3 * 4 + 3];
145149 if (i3 < lineSet.length / 4 - 1) {
145150 nextLineStartX = lineSet[(i3 + 1) * 4];
145151 nextLineStartY = lineSet[(i3 + 1) * 4 + 1];
145152 nextLineEndX = lineSet[(i3 + 1) * 4 + 2];
145153 nextLineEndY = lineSet[(i3 + 1) * 4 + 3];
145154 } else {
145155 nextLineStartX = lineSet[0];
145156 nextLineStartY = lineSet[1];
145157 nextLineEndX = lineSet[2];
145158 nextLineEndY = lineSet[3];
145159 }
145160 var intersection2 = finiteLinesIntersect(currentLineStartX, currentLineStartY, currentLineEndX, currentLineEndY, nextLineStartX, nextLineStartY, nextLineEndX, nextLineEndY, true);
145161 vertices2[i3 * 2] = intersection2[0];
145162 vertices2[i3 * 2 + 1] = intersection2[1];
145163 }
145164 return vertices2;
145165 };
145166 var expandPolygon = function expandPolygon2(points, pad2) {
145167 var expandedLineSet = new Array(points.length * 2);
145168 var currentPointX, currentPointY, nextPointX, nextPointY;
145169 for (var i3 = 0; i3 < points.length / 2; i3++) {
145170 currentPointX = points[i3 * 2];
145171 currentPointY = points[i3 * 2 + 1];
145172 if (i3 < points.length / 2 - 1) {
145173 nextPointX = points[(i3 + 1) * 2];
145174 nextPointY = points[(i3 + 1) * 2 + 1];
145175 } else {
145176 nextPointX = points[0];
145177 nextPointY = points[1];
145178 }
145179 var offsetX = nextPointY - currentPointY;
145180 var offsetY = -(nextPointX - currentPointX);
145181 var offsetLength = Math.sqrt(offsetX * offsetX + offsetY * offsetY);
145182 var normalizedOffsetX = offsetX / offsetLength;
145183 var normalizedOffsetY = offsetY / offsetLength;
145184 expandedLineSet[i3 * 4] = currentPointX + normalizedOffsetX * pad2;
145185 expandedLineSet[i3 * 4 + 1] = currentPointY + normalizedOffsetY * pad2;
145186 expandedLineSet[i3 * 4 + 2] = nextPointX + normalizedOffsetX * pad2;
145187 expandedLineSet[i3 * 4 + 3] = nextPointY + normalizedOffsetY * pad2;
145188 }
145189 return expandedLineSet;
145190 };
145191 var intersectLineEllipse = function intersectLineEllipse2(x2, y2, centerX, centerY, ellipseWradius, ellipseHradius) {
145192 var dispX = centerX - x2;
145193 var dispY = centerY - y2;
145194 dispX /= ellipseWradius;
145195 dispY /= ellipseHradius;
145196 var len = Math.sqrt(dispX * dispX + dispY * dispY);
145197 var newLength = len - 1;
145198 if (newLength < 0) {
145199 return [];
145200 }
145201 var lenProportion = newLength / len;
145202 return [(centerX - x2) * lenProportion + x2, (centerY - y2) * lenProportion + y2];
145203 };
145204 var checkInEllipse = function checkInEllipse2(x2, y2, width2, height2, centerX, centerY, padding2) {
145205 x2 -= centerX;
145206 y2 -= centerY;
145207 x2 /= width2 / 2 + padding2;
145208 y2 /= height2 / 2 + padding2;
145209 return x2 * x2 + y2 * y2 <= 1;
145210 };
145211 var intersectLineCircle = function intersectLineCircle2(x1, y1, x2, y2, centerX, centerY, radius) {
145212 var d = [x2 - x1, y2 - y1];
145213 var f2 = [x1 - centerX, y1 - centerY];
145214 var a = d[0] * d[0] + d[1] * d[1];
145215 var b = 2 * (f2[0] * d[0] + f2[1] * d[1]);
145216 var c2 = f2[0] * f2[0] + f2[1] * f2[1] - radius * radius;
145217 var discriminant = b * b - 4 * a * c2;
145218 if (discriminant < 0) {
145219 return [];
145220 }
145221 var t12 = (-b + Math.sqrt(discriminant)) / (2 * a);
145222 var t22 = (-b - Math.sqrt(discriminant)) / (2 * a);
145223 var tMin = Math.min(t12, t22);
145224 var tMax = Math.max(t12, t22);
145225 var inRangeParams = [];
145226 if (tMin >= 0 && tMin <= 1) {
145227 inRangeParams.push(tMin);
145228 }
145229 if (tMax >= 0 && tMax <= 1) {
145230 inRangeParams.push(tMax);
145231 }
145232 if (inRangeParams.length === 0) {
145233 return [];
145234 }
145235 var nearIntersectionX = inRangeParams[0] * d[0] + x1;
145236 var nearIntersectionY = inRangeParams[0] * d[1] + y1;
145237 if (inRangeParams.length > 1) {
145238 if (inRangeParams[0] == inRangeParams[1]) {
145239 return [nearIntersectionX, nearIntersectionY];
145240 } else {
145241 var farIntersectionX = inRangeParams[1] * d[0] + x1;
145242 var farIntersectionY = inRangeParams[1] * d[1] + y1;
145243 return [nearIntersectionX, nearIntersectionY, farIntersectionX, farIntersectionY];
145244 }
145245 } else {
145246 return [nearIntersectionX, nearIntersectionY];
145247 }
145248 };
145249 var midOfThree = function midOfThree2(a, b, c2) {
145250 if (b <= a && a <= c2 || c2 <= a && a <= b) {
145251 return a;
145252 } else if (a <= b && b <= c2 || c2 <= b && b <= a) {
145253 return b;
145254 } else {
145255 return c2;
145256 }
145257 };
145258 var finiteLinesIntersect = function finiteLinesIntersect2(x1, y1, x2, y2, x3, y3, x4, y4, infiniteLines) {
145259 var dx13 = x1 - x3;
145260 var dx21 = x2 - x1;
145261 var dx43 = x4 - x3;
145262 var dy13 = y1 - y3;
145263 var dy21 = y2 - y1;
145264 var dy43 = y4 - y3;
145265 var ua_t = dx43 * dy13 - dy43 * dx13;
145266 var ub_t = dx21 * dy13 - dy21 * dx13;
145267 var u_b = dy43 * dx21 - dx43 * dy21;
145268 if (u_b !== 0) {
145269 var ua = ua_t / u_b;
145270 var ub = ub_t / u_b;
145271 var flptThreshold = 1e-3;
145272 var _min = 0 - flptThreshold;
145273 var _max = 1 + flptThreshold;
145274 if (_min <= ua && ua <= _max && _min <= ub && ub <= _max) {
145275 return [x1 + ua * dx21, y1 + ua * dy21];
145276 } else {
145277 if (!infiniteLines) {
145278 return [];
145279 } else {
145280 return [x1 + ua * dx21, y1 + ua * dy21];
145281 }
145282 }
145283 } else {
145284 if (ua_t === 0 || ub_t === 0) {
145285 if (midOfThree(x1, x2, x4) === x4) {
145286 return [x4, y4];
145287 }
145288 if (midOfThree(x1, x2, x3) === x3) {
145289 return [x3, y3];
145290 }
145291 if (midOfThree(x3, x4, x2) === x2) {
145292 return [x2, y2];
145293 }
145294 return [];
145295 } else {
145296 return [];
145297 }
145298 }
145299 };
145300 var polygonIntersectLine = function polygonIntersectLine2(x2, y2, basePoints, centerX, centerY, width2, height2, padding2) {
145301 var intersections = [];
145302 var intersection2;
145303 var transformedPoints = new Array(basePoints.length);
145304 var doTransform = true;
145305 if (width2 == null) {
145306 doTransform = false;
145307 }
145308 var points;
145309 if (doTransform) {
145310 for (var i3 = 0; i3 < transformedPoints.length / 2; i3++) {
145311 transformedPoints[i3 * 2] = basePoints[i3 * 2] * width2 + centerX;
145312 transformedPoints[i3 * 2 + 1] = basePoints[i3 * 2 + 1] * height2 + centerY;
145313 }
145314 if (padding2 > 0) {
145315 var expandedLineSet = expandPolygon(transformedPoints, -padding2);
145316 points = joinLines(expandedLineSet);
145317 } else {
145318 points = transformedPoints;
145319 }
145320 } else {
145321 points = basePoints;
145322 }
145323 var currentX, currentY, nextX, nextY;
145324 for (var _i2 = 0; _i2 < points.length / 2; _i2++) {
145325 currentX = points[_i2 * 2];
145326 currentY = points[_i2 * 2 + 1];
145327 if (_i2 < points.length / 2 - 1) {
145328 nextX = points[(_i2 + 1) * 2];
145329 nextY = points[(_i2 + 1) * 2 + 1];
145330 } else {
145331 nextX = points[0];
145332 nextY = points[1];
145333 }
145334 intersection2 = finiteLinesIntersect(x2, y2, centerX, centerY, currentX, currentY, nextX, nextY);
145335 if (intersection2.length !== 0) {
145336 intersections.push(intersection2[0], intersection2[1]);
145337 }
145338 }
145339 return intersections;
145340 };
145341 var roundPolygonIntersectLine = function roundPolygonIntersectLine2(x2, y2, basePoints, centerX, centerY, width2, height2, padding2) {
145342 var intersections = [];
145343 var intersection2;
145344 var lines = new Array(basePoints.length);
145345 var halfW = width2 / 2;
145346 var halfH = height2 / 2;
145347 var cornerRadius = getRoundPolygonRadius(width2, height2);
145348 for (var i3 = 0; i3 < basePoints.length / 4; i3++) {
145349 var sourceUv = void 0, destUv = void 0;
145350 if (i3 === 0) {
145351 sourceUv = basePoints.length - 2;
145352 } else {
145353 sourceUv = i3 * 4 - 2;
145354 }
145355 destUv = i3 * 4 + 2;
145356 var px = centerX + halfW * basePoints[i3 * 4];
145357 var py = centerY + halfH * basePoints[i3 * 4 + 1];
145358 var cosTheta = -basePoints[sourceUv] * basePoints[destUv] - basePoints[sourceUv + 1] * basePoints[destUv + 1];
145359 var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);
145360 var cp0x = px - offset * basePoints[sourceUv];
145361 var cp0y = py - offset * basePoints[sourceUv + 1];
145362 var cp1x = px + offset * basePoints[destUv];
145363 var cp1y = py + offset * basePoints[destUv + 1];
145364 if (i3 === 0) {
145365 lines[basePoints.length - 2] = cp0x;
145366 lines[basePoints.length - 1] = cp0y;
145367 } else {
145368 lines[i3 * 4 - 2] = cp0x;
145369 lines[i3 * 4 - 1] = cp0y;
145370 }
145371 lines[i3 * 4] = cp1x;
145372 lines[i3 * 4 + 1] = cp1y;
145373 var orthx = basePoints[sourceUv + 1];
145374 var orthy = -basePoints[sourceUv];
145375 var cosAlpha = orthx * basePoints[destUv] + orthy * basePoints[destUv + 1];
145376 if (cosAlpha < 0) {
145377 orthx *= -1;
145378 orthy *= -1;
145379 }
145380 var cx = cp0x + orthx * cornerRadius;
145381 var cy = cp0y + orthy * cornerRadius;
145382 intersection2 = intersectLineCircle(x2, y2, centerX, centerY, cx, cy, cornerRadius);
145383 if (intersection2.length !== 0) {
145384 intersections.push(intersection2[0], intersection2[1]);
145385 }
145386 }
145387 for (var _i3 = 0; _i3 < lines.length / 4; _i3++) {
145388 intersection2 = finiteLinesIntersect(x2, y2, centerX, centerY, lines[_i3 * 4], lines[_i3 * 4 + 1], lines[_i3 * 4 + 2], lines[_i3 * 4 + 3], false);
145389 if (intersection2.length !== 0) {
145390 intersections.push(intersection2[0], intersection2[1]);
145391 }
145392 }
145393 if (intersections.length > 2) {
145394 var lowestIntersection = [intersections[0], intersections[1]];
145395 var lowestSquaredDistance = Math.pow(lowestIntersection[0] - x2, 2) + Math.pow(lowestIntersection[1] - y2, 2);
145396 for (var _i4 = 1; _i4 < intersections.length / 2; _i4++) {
145397 var squaredDistance = Math.pow(intersections[_i4 * 2] - x2, 2) + Math.pow(intersections[_i4 * 2 + 1] - y2, 2);
145398 if (squaredDistance <= lowestSquaredDistance) {
145399 lowestIntersection[0] = intersections[_i4 * 2];
145400 lowestIntersection[1] = intersections[_i4 * 2 + 1];
145401 lowestSquaredDistance = squaredDistance;
145402 }
145403 }
145404 return lowestIntersection;
145405 }
145406 return intersections;
145407 };
145408 var shortenIntersection = function shortenIntersection2(intersection2, offset, amount) {
145409 var disp = [intersection2[0] - offset[0], intersection2[1] - offset[1]];
145410 var length2 = Math.sqrt(disp[0] * disp[0] + disp[1] * disp[1]);
145411 var lenRatio = (length2 - amount) / length2;
145412 if (lenRatio < 0) {
145413 lenRatio = 1e-5;
145414 }
145415 return [offset[0] + lenRatio * disp[0], offset[1] + lenRatio * disp[1]];
145416 };
145417 var generateUnitNgonPointsFitToSquare = function generateUnitNgonPointsFitToSquare2(sides, rotationRadians) {
145418 var points = generateUnitNgonPoints(sides, rotationRadians);
145419 points = fitPolygonToSquare(points);
145420 return points;
145421 };
145422 var fitPolygonToSquare = function fitPolygonToSquare2(points) {
145423 var x2, y2;
145424 var sides = points.length / 2;
145425 var minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
145426 for (var i3 = 0; i3 < sides; i3++) {
145427 x2 = points[2 * i3];
145428 y2 = points[2 * i3 + 1];
145429 minX = Math.min(minX, x2);
145430 maxX = Math.max(maxX, x2);
145431 minY = Math.min(minY, y2);
145432 maxY = Math.max(maxY, y2);
145433 }
145434 var sx = 2 / (maxX - minX);
145435 var sy = 2 / (maxY - minY);
145436 for (var _i5 = 0; _i5 < sides; _i5++) {
145437 x2 = points[2 * _i5] = points[2 * _i5] * sx;
145438 y2 = points[2 * _i5 + 1] = points[2 * _i5 + 1] * sy;
145439 minX = Math.min(minX, x2);
145440 maxX = Math.max(maxX, x2);
145441 minY = Math.min(minY, y2);
145442 maxY = Math.max(maxY, y2);
145443 }
145444 if (minY < -1) {
145445 for (var _i6 = 0; _i6 < sides; _i6++) {
145446 y2 = points[2 * _i6 + 1] = points[2 * _i6 + 1] + (-1 - minY);
145447 }
145448 }
145449 return points;
145450 };
145451 var generateUnitNgonPoints = function generateUnitNgonPoints2(sides, rotationRadians) {
145452 var increment = 1 / sides * 2 * Math.PI;
145453 var startAngle = sides % 2 === 0 ? Math.PI / 2 + increment / 2 : Math.PI / 2;
145454 startAngle += rotationRadians;
145455 var points = new Array(sides * 2);
145456 var currentAngle;
145457 for (var i3 = 0; i3 < sides; i3++) {
145458 currentAngle = i3 * increment + startAngle;
145459 points[2 * i3] = Math.cos(currentAngle);
145460 points[2 * i3 + 1] = Math.sin(-currentAngle);
145461 }
145462 return points;
145463 };
145464 var getRoundRectangleRadius = function getRoundRectangleRadius2(width2, height2) {
145465 return Math.min(width2 / 4, height2 / 4, 8);
145466 };
145467 var getRoundPolygonRadius = function getRoundPolygonRadius2(width2, height2) {
145468 return Math.min(width2 / 10, height2 / 10, 8);
145469 };
145470 var getCutRectangleCornerLength = function getCutRectangleCornerLength2() {
145471 return 8;
145472 };
145473 var bezierPtsToQuadCoeff = function bezierPtsToQuadCoeff2(p0, p1, p2) {
145474 return [p0 - 2 * p1 + p2, 2 * (p1 - p0), p0];
145475 };
145476 var getBarrelCurveConstants = function getBarrelCurveConstants2(width2, height2) {
145477 return {
145478 heightOffset: Math.min(15, 0.05 * height2),
145479 widthOffset: Math.min(100, 0.25 * width2),
145480 ctrlPtOffsetPct: 0.05
145481 };
145482 };
145483 var pageRankDefaults = defaults$g({
145484 dampingFactor: 0.8,
145485 precision: 1e-6,
145486 iterations: 200,
145487 weight: function weight(edge) {
145488 return 1;
145489 }
145490 });
145491 var elesfn$o = {
145492 pageRank: function pageRank(options2) {
145493 var _pageRankDefaults = pageRankDefaults(options2), dampingFactor = _pageRankDefaults.dampingFactor, precision = _pageRankDefaults.precision, iterations = _pageRankDefaults.iterations, weight = _pageRankDefaults.weight;
145494 var cy = this._private.cy;
145495 var _this$byGroup = this.byGroup(), nodes2 = _this$byGroup.nodes, edges2 = _this$byGroup.edges;
145496 var numNodes = nodes2.length;
145497 var numNodesSqd = numNodes * numNodes;
145498 var numEdges = edges2.length;
145499 var matrix = new Array(numNodesSqd);
145500 var columnSum = new Array(numNodes);
145501 var additionalProb = (1 - dampingFactor) / numNodes;
145502 for (var i3 = 0; i3 < numNodes; i3++) {
145503 for (var j = 0; j < numNodes; j++) {
145504 var n = i3 * numNodes + j;
145505 matrix[n] = 0;
145506 }
145507 columnSum[i3] = 0;
145508 }
145509 for (var _i = 0; _i < numEdges; _i++) {
145510 var edge = edges2[_i];
145511 var srcId = edge.data("source");
145512 var tgtId = edge.data("target");
145513 if (srcId === tgtId) {
145514 continue;
145515 }
145516 var s = nodes2.indexOfId(srcId);
145517 var t4 = nodes2.indexOfId(tgtId);
145518 var w2 = weight(edge);
145519 var _n = t4 * numNodes + s;
145520 matrix[_n] += w2;
145521 columnSum[s] += w2;
145522 }
145523 var p2 = 1 / numNodes + additionalProb;
145524 for (var _j = 0; _j < numNodes; _j++) {
145525 if (columnSum[_j] === 0) {
145526 for (var _i2 = 0; _i2 < numNodes; _i2++) {
145527 var _n2 = _i2 * numNodes + _j;
145528 matrix[_n2] = p2;
145529 }
145530 } else {
145531 for (var _i3 = 0; _i3 < numNodes; _i3++) {
145532 var _n3 = _i3 * numNodes + _j;
145533 matrix[_n3] = matrix[_n3] / columnSum[_j] + additionalProb;
145534 }
145535 }
145536 }
145537 var eigenvector = new Array(numNodes);
145538 var temp = new Array(numNodes);
145539 var previous2;
145540 for (var _i4 = 0; _i4 < numNodes; _i4++) {
145541 eigenvector[_i4] = 1;
145542 }
145543 for (var iter = 0; iter < iterations; iter++) {
145544 for (var _i5 = 0; _i5 < numNodes; _i5++) {
145545 temp[_i5] = 0;
145546 }
145547 for (var _i6 = 0; _i6 < numNodes; _i6++) {
145548 for (var _j2 = 0; _j2 < numNodes; _j2++) {
145549 var _n4 = _i6 * numNodes + _j2;
145550 temp[_i6] += matrix[_n4] * eigenvector[_j2];
145551 }
145552 }
145553 inPlaceSumNormalize(temp);
145554 previous2 = eigenvector;
145555 eigenvector = temp;
145556 temp = previous2;
145557 var diff = 0;
145558 for (var _i7 = 0; _i7 < numNodes; _i7++) {
145559 var delta = previous2[_i7] - eigenvector[_i7];
145560 diff += delta * delta;
145561 }
145562 if (diff < precision) {
145563 break;
145564 }
145565 }
145566 var res = {
145567 rank: function rank2(node2) {
145568 node2 = cy.collection(node2)[0];
145569 return eigenvector[nodes2.indexOf(node2)];
145570 }
145571 };
145572 return res;
145573 }
145574 // pageRank
145575 };
145576 var defaults$f = defaults$g({
145577 root: null,
145578 weight: function weight(edge) {
145579 return 1;
145580 },
145581 directed: false,
145582 alpha: 0
145583 });
145584 var elesfn$n = {
145585 degreeCentralityNormalized: function degreeCentralityNormalized(options2) {
145586 options2 = defaults$f(options2);
145587 var cy = this.cy();
145588 var nodes2 = this.nodes();
145589 var numNodes = nodes2.length;
145590 if (!options2.directed) {
145591 var degrees2 = {};
145592 var maxDegree = 0;
145593 for (var i3 = 0; i3 < numNodes; i3++) {
145594 var node2 = nodes2[i3];
145595 options2.root = node2;
145596 var currDegree = this.degreeCentrality(options2);
145597 if (maxDegree < currDegree.degree) {
145598 maxDegree = currDegree.degree;
145599 }
145600 degrees2[node2.id()] = currDegree.degree;
145601 }
145602 return {
145603 degree: function degree(node3) {
145604 if (maxDegree === 0) {
145605 return 0;
145606 }
145607 if (string2(node3)) {
145608 node3 = cy.filter(node3);
145609 }
145610 return degrees2[node3.id()] / maxDegree;
145611 }
145612 };
145613 } else {
145614 var indegrees = {};
145615 var outdegrees = {};
145616 var maxIndegree = 0;
145617 var maxOutdegree = 0;
145618 for (var _i = 0; _i < numNodes; _i++) {
145619 var _node = nodes2[_i];
145620 var id2 = _node.id();
145621 options2.root = _node;
145622 var _currDegree = this.degreeCentrality(options2);
145623 if (maxIndegree < _currDegree.indegree)
145624 maxIndegree = _currDegree.indegree;
145625 if (maxOutdegree < _currDegree.outdegree)
145626 maxOutdegree = _currDegree.outdegree;
145627 indegrees[id2] = _currDegree.indegree;
145628 outdegrees[id2] = _currDegree.outdegree;
145629 }
145630 return {
145631 indegree: function indegree(node3) {
145632 if (maxIndegree == 0) {
145633 return 0;
145634 }
145635 if (string2(node3)) {
145636 node3 = cy.filter(node3);
145637 }
145638 return indegrees[node3.id()] / maxIndegree;
145639 },
145640 outdegree: function outdegree(node3) {
145641 if (maxOutdegree === 0) {
145642 return 0;
145643 }
145644 if (string2(node3)) {
145645 node3 = cy.filter(node3);
145646 }
145647 return outdegrees[node3.id()] / maxOutdegree;
145648 }
145649 };
145650 }
145651 },
145652 // degreeCentralityNormalized
145653 // Implemented from the algorithm in Opsahl's paper
145654 // "Node centrality in weighted networks: Generalizing degree and shortest paths"
145655 // check the heading 2 "Degree"
145656 degreeCentrality: function degreeCentrality(options2) {
145657 options2 = defaults$f(options2);
145658 var cy = this.cy();
145659 var callingEles = this;
145660 var _options = options2, root3 = _options.root, weight = _options.weight, directed = _options.directed, alpha = _options.alpha;
145661 root3 = cy.collection(root3)[0];
145662 if (!directed) {
145663 var connEdges = root3.connectedEdges().intersection(callingEles);
145664 var k = connEdges.length;
145665 var s = 0;
145666 for (var i3 = 0; i3 < connEdges.length; i3++) {
145667 s += weight(connEdges[i3]);
145668 }
145669 return {
145670 degree: Math.pow(k, 1 - alpha) * Math.pow(s, alpha)
145671 };
145672 } else {
145673 var edges2 = root3.connectedEdges();
145674 var incoming = edges2.filter(function(edge) {
145675 return edge.target().same(root3) && callingEles.has(edge);
145676 });
145677 var outgoing = edges2.filter(function(edge) {
145678 return edge.source().same(root3) && callingEles.has(edge);
145679 });
145680 var k_in = incoming.length;
145681 var k_out = outgoing.length;
145682 var s_in = 0;
145683 var s_out = 0;
145684 for (var _i2 = 0; _i2 < incoming.length; _i2++) {
145685 s_in += weight(incoming[_i2]);
145686 }
145687 for (var _i3 = 0; _i3 < outgoing.length; _i3++) {
145688 s_out += weight(outgoing[_i3]);
145689 }
145690 return {
145691 indegree: Math.pow(k_in, 1 - alpha) * Math.pow(s_in, alpha),
145692 outdegree: Math.pow(k_out, 1 - alpha) * Math.pow(s_out, alpha)
145693 };
145694 }
145695 }
145696 // degreeCentrality
145697 };
145698 elesfn$n.dc = elesfn$n.degreeCentrality;
145699 elesfn$n.dcn = elesfn$n.degreeCentralityNormalised = elesfn$n.degreeCentralityNormalized;
145700 var defaults$e = defaults$g({
145701 harmonic: true,
145702 weight: function weight() {
145703 return 1;
145704 },
145705 directed: false,
145706 root: null
145707 });
145708 var elesfn$m = {
145709 closenessCentralityNormalized: function closenessCentralityNormalized(options2) {
145710 var _defaults = defaults$e(options2), harmonic = _defaults.harmonic, weight = _defaults.weight, directed = _defaults.directed;
145711 var cy = this.cy();
145712 var closenesses = {};
145713 var maxCloseness = 0;
145714 var nodes2 = this.nodes();
145715 var fw = this.floydWarshall({
145716 weight,
145717 directed
145718 });
145719 for (var i3 = 0; i3 < nodes2.length; i3++) {
145720 var currCloseness = 0;
145721 var node_i = nodes2[i3];
145722 for (var j = 0; j < nodes2.length; j++) {
145723 if (i3 !== j) {
145724 var d = fw.distance(node_i, nodes2[j]);
145725 if (harmonic) {
145726 currCloseness += 1 / d;
145727 } else {
145728 currCloseness += d;
145729 }
145730 }
145731 }
145732 if (!harmonic) {
145733 currCloseness = 1 / currCloseness;
145734 }
145735 if (maxCloseness < currCloseness) {
145736 maxCloseness = currCloseness;
145737 }
145738 closenesses[node_i.id()] = currCloseness;
145739 }
145740 return {
145741 closeness: function closeness(node2) {
145742 if (maxCloseness == 0) {
145743 return 0;
145744 }
145745 if (string2(node2)) {
145746 node2 = cy.filter(node2)[0].id();
145747 } else {
145748 node2 = node2.id();
145749 }
145750 return closenesses[node2] / maxCloseness;
145751 }
145752 };
145753 },
145754 // Implemented from pseudocode from wikipedia
145755 closenessCentrality: function closenessCentrality(options2) {
145756 var _defaults2 = defaults$e(options2), root3 = _defaults2.root, weight = _defaults2.weight, directed = _defaults2.directed, harmonic = _defaults2.harmonic;
145757 root3 = this.filter(root3)[0];
145758 var dijkstra = this.dijkstra({
145759 root: root3,
145760 weight,
145761 directed
145762 });
145763 var totalDistance = 0;
145764 var nodes2 = this.nodes();
145765 for (var i3 = 0; i3 < nodes2.length; i3++) {
145766 var n = nodes2[i3];
145767 if (!n.same(root3)) {
145768 var d = dijkstra.distanceTo(n);
145769 if (harmonic) {
145770 totalDistance += 1 / d;
145771 } else {
145772 totalDistance += d;
145773 }
145774 }
145775 }
145776 return harmonic ? totalDistance : 1 / totalDistance;
145777 }
145778 // closenessCentrality
145779 };
145780 elesfn$m.cc = elesfn$m.closenessCentrality;
145781 elesfn$m.ccn = elesfn$m.closenessCentralityNormalised = elesfn$m.closenessCentralityNormalized;
145782 var defaults$d = defaults$g({
145783 weight: null,
145784 directed: false
145785 });
145786 var elesfn$l = {
145787 // Implemented from the algorithm in the paper "On Variants of Shortest-Path Betweenness Centrality and their Generic Computation" by Ulrik Brandes
145788 betweennessCentrality: function betweennessCentrality(options2) {
145789 var _defaults = defaults$d(options2), directed = _defaults.directed, weight = _defaults.weight;
145790 var weighted = weight != null;
145791 var cy = this.cy();
145792 var V = this.nodes();
145793 var A = {};
145794 var _C = {};
145795 var max3 = 0;
145796 var C = {
145797 set: function set3(key, val) {
145798 _C[key] = val;
145799 if (val > max3) {
145800 max3 = val;
145801 }
145802 },
145803 get: function get3(key) {
145804 return _C[key];
145805 }
145806 };
145807 for (var i3 = 0; i3 < V.length; i3++) {
145808 var v = V[i3];
145809 var vid = v.id();
145810 if (directed) {
145811 A[vid] = v.outgoers().nodes();
145812 } else {
145813 A[vid] = v.openNeighborhood().nodes();
145814 }
145815 C.set(vid, 0);
145816 }
145817 var _loop = function _loop2(s2) {
145818 var sid = V[s2].id();
145819 var S2 = [];
145820 var P = {};
145821 var g = {};
145822 var d = {};
145823 var Q2 = new heap(function(a, b) {
145824 return d[a] - d[b];
145825 });
145826 for (var _i = 0; _i < V.length; _i++) {
145827 var _vid = V[_i].id();
145828 P[_vid] = [];
145829 g[_vid] = 0;
145830 d[_vid] = Infinity;
145831 }
145832 g[sid] = 1;
145833 d[sid] = 0;
145834 Q2.push(sid);
145835 while (!Q2.empty()) {
145836 var _v = Q2.pop();
145837 S2.push(_v);
145838 if (weighted) {
145839 for (var j = 0; j < A[_v].length; j++) {
145840 var w2 = A[_v][j];
145841 var vEle = cy.getElementById(_v);
145842 var edge = void 0;
145843 if (vEle.edgesTo(w2).length > 0) {
145844 edge = vEle.edgesTo(w2)[0];
145845 } else {
145846 edge = w2.edgesTo(vEle)[0];
145847 }
145848 var edgeWeight = weight(edge);
145849 w2 = w2.id();
145850 if (d[w2] > d[_v] + edgeWeight) {
145851 d[w2] = d[_v] + edgeWeight;
145852 if (Q2.nodes.indexOf(w2) < 0) {
145853 Q2.push(w2);
145854 } else {
145855 Q2.updateItem(w2);
145856 }
145857 g[w2] = 0;
145858 P[w2] = [];
145859 }
145860 if (d[w2] == d[_v] + edgeWeight) {
145861 g[w2] = g[w2] + g[_v];
145862 P[w2].push(_v);
145863 }
145864 }
145865 } else {
145866 for (var _j = 0; _j < A[_v].length; _j++) {
145867 var _w = A[_v][_j].id();
145868 if (d[_w] == Infinity) {
145869 Q2.push(_w);
145870 d[_w] = d[_v] + 1;
145871 }
145872 if (d[_w] == d[_v] + 1) {
145873 g[_w] = g[_w] + g[_v];
145874 P[_w].push(_v);
145875 }
145876 }
145877 }
145878 }
145879 var e = {};
145880 for (var _i2 = 0; _i2 < V.length; _i2++) {
145881 e[V[_i2].id()] = 0;
145882 }
145883 while (S2.length > 0) {
145884 var _w2 = S2.pop();
145885 for (var _j2 = 0; _j2 < P[_w2].length; _j2++) {
145886 var _v2 = P[_w2][_j2];
145887 e[_v2] = e[_v2] + g[_v2] / g[_w2] * (1 + e[_w2]);
145888 }
145889 if (_w2 != V[s2].id()) {
145890 C.set(_w2, C.get(_w2) + e[_w2]);
145891 }
145892 }
145893 };
145894 for (var s = 0; s < V.length; s++) {
145895 _loop(s);
145896 }
145897 var ret = {
145898 betweenness: function betweenness(node2) {
145899 var id2 = cy.collection(node2).id();
145900 return C.get(id2);
145901 },
145902 betweennessNormalized: function betweennessNormalized(node2) {
145903 if (max3 == 0) {
145904 return 0;
145905 }
145906 var id2 = cy.collection(node2).id();
145907 return C.get(id2) / max3;
145908 }
145909 };
145910 ret.betweennessNormalised = ret.betweennessNormalized;
145911 return ret;
145912 }
145913 // betweennessCentrality
145914 };
145915 elesfn$l.bc = elesfn$l.betweennessCentrality;
145916 var defaults$c = defaults$g({
145917 expandFactor: 2,
145918 // affects time of computation and cluster granularity to some extent: M * M
145919 inflateFactor: 2,
145920 // affects cluster granularity (the greater the value, the more clusters): M(i,j) / E(j)
145921 multFactor: 1,
145922 // optional self loops for each node. Use a neutral value to improve cluster computations.
145923 maxIterations: 20,
145924 // maximum number of iterations of the MCL algorithm in a single run
145925 attributes: [
145926 // attributes/features used to group nodes, ie. similarity values between nodes
145927 function(edge) {
145928 return 1;
145929 }
145930 ]
145931 });
145932 var setOptions$3 = function setOptions3(options2) {
145933 return defaults$c(options2);
145934 };
145935 var getSimilarity$1 = function getSimilarity2(edge, attributes) {
145936 var total = 0;
145937 for (var i3 = 0; i3 < attributes.length; i3++) {
145938 total += attributes[i3](edge);
145939 }
145940 return total;
145941 };
145942 var addLoops = function addLoops2(M2, n, val) {
145943 for (var i3 = 0; i3 < n; i3++) {
145944 M2[i3 * n + i3] = val;
145945 }
145946 };
145947 var normalize2 = function normalize3(M2, n) {
145948 var sum;
145949 for (var col = 0; col < n; col++) {
145950 sum = 0;
145951 for (var row = 0; row < n; row++) {
145952 sum += M2[row * n + col];
145953 }
145954 for (var _row = 0; _row < n; _row++) {
145955 M2[_row * n + col] = M2[_row * n + col] / sum;
145956 }
145957 }
145958 };
145959 var mmult = function mmult2(A, B, n) {
145960 var C = new Array(n * n);
145961 for (var i3 = 0; i3 < n; i3++) {
145962 for (var j = 0; j < n; j++) {
145963 C[i3 * n + j] = 0;
145964 }
145965 for (var k = 0; k < n; k++) {
145966 for (var _j = 0; _j < n; _j++) {
145967 C[i3 * n + _j] += A[i3 * n + k] * B[k * n + _j];
145968 }
145969 }
145970 }
145971 return C;
145972 };
145973 var expand = function expand2(M2, n, expandFactor) {
145974 var _M = M2.slice(0);
145975 for (var p2 = 1; p2 < expandFactor; p2++) {
145976 M2 = mmult(M2, _M, n);
145977 }
145978 return M2;
145979 };
145980 var inflate = function inflate2(M2, n, inflateFactor) {
145981 var _M = new Array(n * n);
145982 for (var i3 = 0; i3 < n * n; i3++) {
145983 _M[i3] = Math.pow(M2[i3], inflateFactor);
145984 }
145985 normalize2(_M, n);
145986 return _M;
145987 };
145988 var hasConverged = function hasConverged2(M2, _M, n2, roundFactor) {
145989 for (var i3 = 0; i3 < n2; i3++) {
145990 var v1 = Math.round(M2[i3] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor);
145991 var v2 = Math.round(_M[i3] * Math.pow(10, roundFactor)) / Math.pow(10, roundFactor);
145992 if (v1 !== v2) {
145993 return false;
145994 }
145995 }
145996 return true;
145997 };
145998 var assign$2 = function assign2(M2, n, nodes2, cy) {
145999 var clusters = [];
146000 for (var i3 = 0; i3 < n; i3++) {
146001 var cluster = [];
146002 for (var j = 0; j < n; j++) {
146003 if (Math.round(M2[i3 * n + j] * 1e3) / 1e3 > 0) {
146004 cluster.push(nodes2[j]);
146005 }
146006 }
146007 if (cluster.length !== 0) {
146008 clusters.push(cy.collection(cluster));
146009 }
146010 }
146011 return clusters;
146012 };
146013 var isDuplicate = function isDuplicate2(c1, c2) {
146014 for (var i3 = 0; i3 < c1.length; i3++) {
146015 if (!c2[i3] || c1[i3].id() !== c2[i3].id()) {
146016 return false;
146017 }
146018 }
146019 return true;
146020 };
146021 var removeDuplicates = function removeDuplicates2(clusters) {
146022 for (var i3 = 0; i3 < clusters.length; i3++) {
146023 for (var j = 0; j < clusters.length; j++) {
146024 if (i3 != j && isDuplicate(clusters[i3], clusters[j])) {
146025 clusters.splice(j, 1);
146026 }
146027 }
146028 }
146029 return clusters;
146030 };
146031 var markovClustering = function markovClustering2(options2) {
146032 var nodes2 = this.nodes();
146033 var edges2 = this.edges();
146034 var cy = this.cy();
146035 var opts = setOptions$3(options2);
146036 var id2position = {};
146037 for (var i3 = 0; i3 < nodes2.length; i3++) {
146038 id2position[nodes2[i3].id()] = i3;
146039 }
146040 var n = nodes2.length, n2 = n * n;
146041 var M2 = new Array(n2), _M;
146042 for (var _i = 0; _i < n2; _i++) {
146043 M2[_i] = 0;
146044 }
146045 for (var e = 0; e < edges2.length; e++) {
146046 var edge = edges2[e];
146047 var _i2 = id2position[edge.source().id()];
146048 var j = id2position[edge.target().id()];
146049 var sim = getSimilarity$1(edge, opts.attributes);
146050 M2[_i2 * n + j] += sim;
146051 M2[j * n + _i2] += sim;
146052 }
146053 addLoops(M2, n, opts.multFactor);
146054 normalize2(M2, n);
146055 var isStillMoving = true;
146056 var iterations = 0;
146057 while (isStillMoving && iterations < opts.maxIterations) {
146058 isStillMoving = false;
146059 _M = expand(M2, n, opts.expandFactor);
146060 M2 = inflate(_M, n, opts.inflateFactor);
146061 if (!hasConverged(M2, _M, n2, 4)) {
146062 isStillMoving = true;
146063 }
146064 iterations++;
146065 }
146066 var clusters = assign$2(M2, n, nodes2, cy);
146067 clusters = removeDuplicates(clusters);
146068 return clusters;
146069 };
146070 var markovClustering$1 = {
146071 markovClustering,
146072 mcl: markovClustering
146073 };
146074 var identity2 = function identity3(x2) {
146075 return x2;
146076 };
146077 var absDiff = function absDiff2(p2, q) {
146078 return Math.abs(q - p2);
146079 };
146080 var addAbsDiff = function addAbsDiff2(total, p2, q) {
146081 return total + absDiff(p2, q);
146082 };
146083 var addSquaredDiff = function addSquaredDiff2(total, p2, q) {
146084 return total + Math.pow(q - p2, 2);
146085 };
146086 var sqrt3 = function sqrt4(x2) {
146087 return Math.sqrt(x2);
146088 };
146089 var maxAbsDiff = function maxAbsDiff2(currentMax, p2, q) {
146090 return Math.max(currentMax, absDiff(p2, q));
146091 };
146092 var getDistance = function getDistance2(length2, getP, getQ, init2, visit) {
146093 var post = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : identity2;
146094 var ret = init2;
146095 var p2, q;
146096 for (var dim = 0; dim < length2; dim++) {
146097 p2 = getP(dim);
146098 q = getQ(dim);
146099 ret = visit(ret, p2, q);
146100 }
146101 return post(ret);
146102 };
146103 var distances = {
146104 euclidean: function euclidean(length2, getP, getQ) {
146105 if (length2 >= 2) {
146106 return getDistance(length2, getP, getQ, 0, addSquaredDiff, sqrt3);
146107 } else {
146108 return getDistance(length2, getP, getQ, 0, addAbsDiff);
146109 }
146110 },
146111 squaredEuclidean: function squaredEuclidean(length2, getP, getQ) {
146112 return getDistance(length2, getP, getQ, 0, addSquaredDiff);
146113 },
146114 manhattan: function manhattan(length2, getP, getQ) {
146115 return getDistance(length2, getP, getQ, 0, addAbsDiff);
146116 },
146117 max: function max3(length2, getP, getQ) {
146118 return getDistance(length2, getP, getQ, -Infinity, maxAbsDiff);
146119 }
146120 };
146121 distances["squared-euclidean"] = distances["squaredEuclidean"];
146122 distances["squaredeuclidean"] = distances["squaredEuclidean"];
146123 function clusteringDistance(method, length2, getP, getQ, nodeP, nodeQ) {
146124 var impl2;
146125 if (fn$6(method)) {
146126 impl2 = method;
146127 } else {
146128 impl2 = distances[method] || distances.euclidean;
146129 }
146130 if (length2 === 0 && fn$6(method)) {
146131 return impl2(nodeP, nodeQ);
146132 } else {
146133 return impl2(length2, getP, getQ, nodeP, nodeQ);
146134 }
146135 }
146136 var defaults$b = defaults$g({
146137 k: 2,
146138 m: 2,
146139 sensitivityThreshold: 1e-4,
146140 distance: "euclidean",
146141 maxIterations: 10,
146142 attributes: [],
146143 testMode: false,
146144 testCentroids: null
146145 });
146146 var setOptions$2 = function setOptions3(options2) {
146147 return defaults$b(options2);
146148 };
146149 var getDist = function getDist2(type2, node2, centroid, attributes, mode) {
146150 var noNodeP = mode !== "kMedoids";
146151 var getP = noNodeP ? function(i3) {
146152 return centroid[i3];
146153 } : function(i3) {
146154 return attributes[i3](centroid);
146155 };
146156 var getQ = function getQ2(i3) {
146157 return attributes[i3](node2);
146158 };
146159 var nodeP = centroid;
146160 var nodeQ = node2;
146161 return clusteringDistance(type2, attributes.length, getP, getQ, nodeP, nodeQ);
146162 };
146163 var randomCentroids = function randomCentroids2(nodes2, k, attributes) {
146164 var ndim = attributes.length;
146165 var min3 = new Array(ndim);
146166 var max3 = new Array(ndim);
146167 var centroids = new Array(k);
146168 var centroid = null;
146169 for (var i3 = 0; i3 < ndim; i3++) {
146170 min3[i3] = nodes2.min(attributes[i3]).value;
146171 max3[i3] = nodes2.max(attributes[i3]).value;
146172 }
146173 for (var c2 = 0; c2 < k; c2++) {
146174 centroid = [];
146175 for (var _i = 0; _i < ndim; _i++) {
146176 centroid[_i] = Math.random() * (max3[_i] - min3[_i]) + min3[_i];
146177 }
146178 centroids[c2] = centroid;
146179 }
146180 return centroids;
146181 };
146182 var classify = function classify2(node2, centroids, distance2, attributes, type2) {
146183 var min3 = Infinity;
146184 var index2 = 0;
146185 for (var i3 = 0; i3 < centroids.length; i3++) {
146186 var dist3 = getDist(distance2, node2, centroids[i3], attributes, type2);
146187 if (dist3 < min3) {
146188 min3 = dist3;
146189 index2 = i3;
146190 }
146191 }
146192 return index2;
146193 };
146194 var buildCluster = function buildCluster2(centroid, nodes2, assignment) {
146195 var cluster = [];
146196 var node2 = null;
146197 for (var n = 0; n < nodes2.length; n++) {
146198 node2 = nodes2[n];
146199 if (assignment[node2.id()] === centroid) {
146200 cluster.push(node2);
146201 }
146202 }
146203 return cluster;
146204 };
146205 var haveValuesConverged = function haveValuesConverged2(v1, v2, sensitivityThreshold) {
146206 return Math.abs(v2 - v1) <= sensitivityThreshold;
146207 };
146208 var haveMatricesConverged = function haveMatricesConverged2(v1, v2, sensitivityThreshold) {
146209 for (var i3 = 0; i3 < v1.length; i3++) {
146210 for (var j = 0; j < v1[i3].length; j++) {
146211 var diff = Math.abs(v1[i3][j] - v2[i3][j]);
146212 if (diff > sensitivityThreshold) {
146213 return false;
146214 }
146215 }
146216 }
146217 return true;
146218 };
146219 var seenBefore = function seenBefore2(node2, medoids, n) {
146220 for (var i3 = 0; i3 < n; i3++) {
146221 if (node2 === medoids[i3])
146222 return true;
146223 }
146224 return false;
146225 };
146226 var randomMedoids = function randomMedoids2(nodes2, k) {
146227 var medoids = new Array(k);
146228 if (nodes2.length < 50) {
146229 for (var i3 = 0; i3 < k; i3++) {
146230 var node2 = nodes2[Math.floor(Math.random() * nodes2.length)];
146231 while (seenBefore(node2, medoids, i3)) {
146232 node2 = nodes2[Math.floor(Math.random() * nodes2.length)];
146233 }
146234 medoids[i3] = node2;
146235 }
146236 } else {
146237 for (var _i2 = 0; _i2 < k; _i2++) {
146238 medoids[_i2] = nodes2[Math.floor(Math.random() * nodes2.length)];
146239 }
146240 }
146241 return medoids;
146242 };
146243 var findCost = function findCost2(potentialNewMedoid, cluster, attributes) {
146244 var cost = 0;
146245 for (var n = 0; n < cluster.length; n++) {
146246 cost += getDist("manhattan", cluster[n], potentialNewMedoid, attributes, "kMedoids");
146247 }
146248 return cost;
146249 };
146250 var kMeans = function kMeans2(options2) {
146251 var cy = this.cy();
146252 var nodes2 = this.nodes();
146253 var node2 = null;
146254 var opts = setOptions$2(options2);
146255 var clusters = new Array(opts.k);
146256 var assignment = {};
146257 var centroids;
146258 if (opts.testMode) {
146259 if (typeof opts.testCentroids === "number") {
146260 opts.testCentroids;
146261 centroids = randomCentroids(nodes2, opts.k, opts.attributes);
146262 } else if (_typeof(opts.testCentroids) === "object") {
146263 centroids = opts.testCentroids;
146264 } else {
146265 centroids = randomCentroids(nodes2, opts.k, opts.attributes);
146266 }
146267 } else {
146268 centroids = randomCentroids(nodes2, opts.k, opts.attributes);
146269 }
146270 var isStillMoving = true;
146271 var iterations = 0;
146272 while (isStillMoving && iterations < opts.maxIterations) {
146273 for (var n = 0; n < nodes2.length; n++) {
146274 node2 = nodes2[n];
146275 assignment[node2.id()] = classify(node2, centroids, opts.distance, opts.attributes, "kMeans");
146276 }
146277 isStillMoving = false;
146278 for (var c2 = 0; c2 < opts.k; c2++) {
146279 var cluster = buildCluster(c2, nodes2, assignment);
146280 if (cluster.length === 0) {
146281 continue;
146282 }
146283 var ndim = opts.attributes.length;
146284 var centroid = centroids[c2];
146285 var newCentroid = new Array(ndim);
146286 var sum = new Array(ndim);
146287 for (var d = 0; d < ndim; d++) {
146288 sum[d] = 0;
146289 for (var i3 = 0; i3 < cluster.length; i3++) {
146290 node2 = cluster[i3];
146291 sum[d] += opts.attributes[d](node2);
146292 }
146293 newCentroid[d] = sum[d] / cluster.length;
146294 if (!haveValuesConverged(newCentroid[d], centroid[d], opts.sensitivityThreshold)) {
146295 isStillMoving = true;
146296 }
146297 }
146298 centroids[c2] = newCentroid;
146299 clusters[c2] = cy.collection(cluster);
146300 }
146301 iterations++;
146302 }
146303 return clusters;
146304 };
146305 var kMedoids = function kMedoids2(options2) {
146306 var cy = this.cy();
146307 var nodes2 = this.nodes();
146308 var node2 = null;
146309 var opts = setOptions$2(options2);
146310 var clusters = new Array(opts.k);
146311 var medoids;
146312 var assignment = {};
146313 var curCost;
146314 var minCosts = new Array(opts.k);
146315 if (opts.testMode) {
146316 if (typeof opts.testCentroids === "number")
146317 ;
146318 else if (_typeof(opts.testCentroids) === "object") {
146319 medoids = opts.testCentroids;
146320 } else {
146321 medoids = randomMedoids(nodes2, opts.k);
146322 }
146323 } else {
146324 medoids = randomMedoids(nodes2, opts.k);
146325 }
146326 var isStillMoving = true;
146327 var iterations = 0;
146328 while (isStillMoving && iterations < opts.maxIterations) {
146329 for (var n = 0; n < nodes2.length; n++) {
146330 node2 = nodes2[n];
146331 assignment[node2.id()] = classify(node2, medoids, opts.distance, opts.attributes, "kMedoids");
146332 }
146333 isStillMoving = false;
146334 for (var m = 0; m < medoids.length; m++) {
146335 var cluster = buildCluster(m, nodes2, assignment);
146336 if (cluster.length === 0) {
146337 continue;
146338 }
146339 minCosts[m] = findCost(medoids[m], cluster, opts.attributes);
146340 for (var _n = 0; _n < cluster.length; _n++) {
146341 curCost = findCost(cluster[_n], cluster, opts.attributes);
146342 if (curCost < minCosts[m]) {
146343 minCosts[m] = curCost;
146344 medoids[m] = cluster[_n];
146345 isStillMoving = true;
146346 }
146347 }
146348 clusters[m] = cy.collection(cluster);
146349 }
146350 iterations++;
146351 }
146352 return clusters;
146353 };
146354 var updateCentroids = function updateCentroids2(centroids, nodes2, U2, weight, opts) {
146355 var numerator, denominator;
146356 for (var n = 0; n < nodes2.length; n++) {
146357 for (var c2 = 0; c2 < centroids.length; c2++) {
146358 weight[n][c2] = Math.pow(U2[n][c2], opts.m);
146359 }
146360 }
146361 for (var _c = 0; _c < centroids.length; _c++) {
146362 for (var dim = 0; dim < opts.attributes.length; dim++) {
146363 numerator = 0;
146364 denominator = 0;
146365 for (var _n2 = 0; _n2 < nodes2.length; _n2++) {
146366 numerator += weight[_n2][_c] * opts.attributes[dim](nodes2[_n2]);
146367 denominator += weight[_n2][_c];
146368 }
146369 centroids[_c][dim] = numerator / denominator;
146370 }
146371 }
146372 };
146373 var updateMembership = function updateMembership2(U2, _U, centroids, nodes2, opts) {
146374 for (var i3 = 0; i3 < U2.length; i3++) {
146375 _U[i3] = U2[i3].slice();
146376 }
146377 var sum, numerator, denominator;
146378 var pow = 2 / (opts.m - 1);
146379 for (var c2 = 0; c2 < centroids.length; c2++) {
146380 for (var n = 0; n < nodes2.length; n++) {
146381 sum = 0;
146382 for (var k = 0; k < centroids.length; k++) {
146383 numerator = getDist(opts.distance, nodes2[n], centroids[c2], opts.attributes, "cmeans");
146384 denominator = getDist(opts.distance, nodes2[n], centroids[k], opts.attributes, "cmeans");
146385 sum += Math.pow(numerator / denominator, pow);
146386 }
146387 U2[n][c2] = 1 / sum;
146388 }
146389 }
146390 };
146391 var assign$1 = function assign2(nodes2, U2, opts, cy) {
146392 var clusters = new Array(opts.k);
146393 for (var c2 = 0; c2 < clusters.length; c2++) {
146394 clusters[c2] = [];
146395 }
146396 var max3;
146397 var index2;
146398 for (var n = 0; n < U2.length; n++) {
146399 max3 = -Infinity;
146400 index2 = -1;
146401 for (var _c2 = 0; _c2 < U2[0].length; _c2++) {
146402 if (U2[n][_c2] > max3) {
146403 max3 = U2[n][_c2];
146404 index2 = _c2;
146405 }
146406 }
146407 clusters[index2].push(nodes2[n]);
146408 }
146409 for (var _c3 = 0; _c3 < clusters.length; _c3++) {
146410 clusters[_c3] = cy.collection(clusters[_c3]);
146411 }
146412 return clusters;
146413 };
146414 var fuzzyCMeans = function fuzzyCMeans2(options2) {
146415 var cy = this.cy();
146416 var nodes2 = this.nodes();
146417 var opts = setOptions$2(options2);
146418 var clusters;
146419 var centroids;
146420 var U2;
146421 var _U;
146422 var weight;
146423 _U = new Array(nodes2.length);
146424 for (var i3 = 0; i3 < nodes2.length; i3++) {
146425 _U[i3] = new Array(opts.k);
146426 }
146427 U2 = new Array(nodes2.length);
146428 for (var _i3 = 0; _i3 < nodes2.length; _i3++) {
146429 U2[_i3] = new Array(opts.k);
146430 }
146431 for (var _i4 = 0; _i4 < nodes2.length; _i4++) {
146432 var total = 0;
146433 for (var j = 0; j < opts.k; j++) {
146434 U2[_i4][j] = Math.random();
146435 total += U2[_i4][j];
146436 }
146437 for (var _j = 0; _j < opts.k; _j++) {
146438 U2[_i4][_j] = U2[_i4][_j] / total;
146439 }
146440 }
146441 centroids = new Array(opts.k);
146442 for (var _i5 = 0; _i5 < opts.k; _i5++) {
146443 centroids[_i5] = new Array(opts.attributes.length);
146444 }
146445 weight = new Array(nodes2.length);
146446 for (var _i6 = 0; _i6 < nodes2.length; _i6++) {
146447 weight[_i6] = new Array(opts.k);
146448 }
146449 var isStillMoving = true;
146450 var iterations = 0;
146451 while (isStillMoving && iterations < opts.maxIterations) {
146452 isStillMoving = false;
146453 updateCentroids(centroids, nodes2, U2, weight, opts);
146454 updateMembership(U2, _U, centroids, nodes2, opts);
146455 if (!haveMatricesConverged(U2, _U, opts.sensitivityThreshold)) {
146456 isStillMoving = true;
146457 }
146458 iterations++;
146459 }
146460 clusters = assign$1(nodes2, U2, opts, cy);
146461 return {
146462 clusters,
146463 degreeOfMembership: U2
146464 };
146465 };
146466 var kClustering = {
146467 kMeans,
146468 kMedoids,
146469 fuzzyCMeans,
146470 fcm: fuzzyCMeans
146471 };
146472 var defaults$a = defaults$g({
146473 distance: "euclidean",
146474 // distance metric to compare nodes
146475 linkage: "min",
146476 // linkage criterion : how to determine the distance between clusters of nodes
146477 mode: "threshold",
146478 // mode:'threshold' => clusters must be threshold distance apart
146479 threshold: Infinity,
146480 // the distance threshold
146481 // mode:'dendrogram' => the nodes are organised as leaves in a tree (siblings are close), merging makes clusters
146482 addDendrogram: false,
146483 // whether to add the dendrogram to the graph for viz
146484 dendrogramDepth: 0,
146485 // depth at which dendrogram branches are merged into the returned clusters
146486 attributes: []
146487 // array of attr functions
146488 });
146489 var linkageAliases = {
146490 "single": "min",
146491 "complete": "max"
146492 };
146493 var setOptions$1 = function setOptions3(options2) {
146494 var opts = defaults$a(options2);
146495 var preferredAlias = linkageAliases[opts.linkage];
146496 if (preferredAlias != null) {
146497 opts.linkage = preferredAlias;
146498 }
146499 return opts;
146500 };
146501 var mergeClosest = function mergeClosest2(clusters, index2, dists, mins, opts) {
146502 var minKey = 0;
146503 var min3 = Infinity;
146504 var dist3;
146505 var attrs = opts.attributes;
146506 var getDist2 = function getDist3(n1, n2) {
146507 return clusteringDistance(opts.distance, attrs.length, function(i4) {
146508 return attrs[i4](n1);
146509 }, function(i4) {
146510 return attrs[i4](n2);
146511 }, n1, n2);
146512 };
146513 for (var i3 = 0; i3 < clusters.length; i3++) {
146514 var key = clusters[i3].key;
146515 var _dist = dists[key][mins[key]];
146516 if (_dist < min3) {
146517 minKey = key;
146518 min3 = _dist;
146519 }
146520 }
146521 if (opts.mode === "threshold" && min3 >= opts.threshold || opts.mode === "dendrogram" && clusters.length === 1) {
146522 return false;
146523 }
146524 var c1 = index2[minKey];
146525 var c2 = index2[mins[minKey]];
146526 var merged;
146527 if (opts.mode === "dendrogram") {
146528 merged = {
146529 left: c1,
146530 right: c2,
146531 key: c1.key
146532 };
146533 } else {
146534 merged = {
146535 value: c1.value.concat(c2.value),
146536 key: c1.key
146537 };
146538 }
146539 clusters[c1.index] = merged;
146540 clusters.splice(c2.index, 1);
146541 index2[c1.key] = merged;
146542 for (var _i = 0; _i < clusters.length; _i++) {
146543 var cur = clusters[_i];
146544 if (c1.key === cur.key) {
146545 dist3 = Infinity;
146546 } else if (opts.linkage === "min") {
146547 dist3 = dists[c1.key][cur.key];
146548 if (dists[c1.key][cur.key] > dists[c2.key][cur.key]) {
146549 dist3 = dists[c2.key][cur.key];
146550 }
146551 } else if (opts.linkage === "max") {
146552 dist3 = dists[c1.key][cur.key];
146553 if (dists[c1.key][cur.key] < dists[c2.key][cur.key]) {
146554 dist3 = dists[c2.key][cur.key];
146555 }
146556 } else if (opts.linkage === "mean") {
146557 dist3 = (dists[c1.key][cur.key] * c1.size + dists[c2.key][cur.key] * c2.size) / (c1.size + c2.size);
146558 } else {
146559 if (opts.mode === "dendrogram")
146560 dist3 = getDist2(cur.value, c1.value);
146561 else
146562 dist3 = getDist2(cur.value[0], c1.value[0]);
146563 }
146564 dists[c1.key][cur.key] = dists[cur.key][c1.key] = dist3;
146565 }
146566 for (var _i2 = 0; _i2 < clusters.length; _i2++) {
146567 var key1 = clusters[_i2].key;
146568 if (mins[key1] === c1.key || mins[key1] === c2.key) {
146569 var _min = key1;
146570 for (var j = 0; j < clusters.length; j++) {
146571 var key2 = clusters[j].key;
146572 if (dists[key1][key2] < dists[key1][_min]) {
146573 _min = key2;
146574 }
146575 }
146576 mins[key1] = _min;
146577 }
146578 clusters[_i2].index = _i2;
146579 }
146580 c1.key = c2.key = c1.index = c2.index = null;
146581 return true;
146582 };
146583 var getAllChildren = function getAllChildren2(root3, arr, cy) {
146584 if (!root3)
146585 return;
146586 if (root3.value) {
146587 arr.push(root3.value);
146588 } else {
146589 if (root3.left)
146590 getAllChildren2(root3.left, arr);
146591 if (root3.right)
146592 getAllChildren2(root3.right, arr);
146593 }
146594 };
146595 var buildDendrogram = function buildDendrogram2(root3, cy) {
146596 if (!root3)
146597 return "";
146598 if (root3.left && root3.right) {
146599 var leftStr = buildDendrogram2(root3.left, cy);
146600 var rightStr = buildDendrogram2(root3.right, cy);
146601 var node2 = cy.add({
146602 group: "nodes",
146603 data: {
146604 id: leftStr + "," + rightStr
146605 }
146606 });
146607 cy.add({
146608 group: "edges",
146609 data: {
146610 source: leftStr,
146611 target: node2.id()
146612 }
146613 });
146614 cy.add({
146615 group: "edges",
146616 data: {
146617 source: rightStr,
146618 target: node2.id()
146619 }
146620 });
146621 return node2.id();
146622 } else if (root3.value) {
146623 return root3.value.id();
146624 }
146625 };
146626 var buildClustersFromTree = function buildClustersFromTree2(root3, k, cy) {
146627 if (!root3)
146628 return [];
146629 var left2 = [], right2 = [], leaves = [];
146630 if (k === 0) {
146631 if (root3.left)
146632 getAllChildren(root3.left, left2);
146633 if (root3.right)
146634 getAllChildren(root3.right, right2);
146635 leaves = left2.concat(right2);
146636 return [cy.collection(leaves)];
146637 } else if (k === 1) {
146638 if (root3.value) {
146639 return [cy.collection(root3.value)];
146640 } else {
146641 if (root3.left)
146642 getAllChildren(root3.left, left2);
146643 if (root3.right)
146644 getAllChildren(root3.right, right2);
146645 return [cy.collection(left2), cy.collection(right2)];
146646 }
146647 } else {
146648 if (root3.value) {
146649 return [cy.collection(root3.value)];
146650 } else {
146651 if (root3.left)
146652 left2 = buildClustersFromTree2(root3.left, k - 1, cy);
146653 if (root3.right)
146654 right2 = buildClustersFromTree2(root3.right, k - 1, cy);
146655 return left2.concat(right2);
146656 }
146657 }
146658 };
146659 var hierarchicalClustering = function hierarchicalClustering2(options2) {
146660 var cy = this.cy();
146661 var nodes2 = this.nodes();
146662 var opts = setOptions$1(options2);
146663 var attrs = opts.attributes;
146664 var getDist2 = function getDist3(n1, n2) {
146665 return clusteringDistance(opts.distance, attrs.length, function(i4) {
146666 return attrs[i4](n1);
146667 }, function(i4) {
146668 return attrs[i4](n2);
146669 }, n1, n2);
146670 };
146671 var clusters = [];
146672 var dists = [];
146673 var mins = [];
146674 var index2 = [];
146675 for (var n = 0; n < nodes2.length; n++) {
146676 var cluster = {
146677 value: opts.mode === "dendrogram" ? nodes2[n] : [nodes2[n]],
146678 key: n,
146679 index: n
146680 };
146681 clusters[n] = cluster;
146682 index2[n] = cluster;
146683 dists[n] = [];
146684 mins[n] = 0;
146685 }
146686 for (var i3 = 0; i3 < clusters.length; i3++) {
146687 for (var j = 0; j <= i3; j++) {
146688 var dist3 = void 0;
146689 if (opts.mode === "dendrogram") {
146690 dist3 = i3 === j ? Infinity : getDist2(clusters[i3].value, clusters[j].value);
146691 } else {
146692 dist3 = i3 === j ? Infinity : getDist2(clusters[i3].value[0], clusters[j].value[0]);
146693 }
146694 dists[i3][j] = dist3;
146695 dists[j][i3] = dist3;
146696 if (dist3 < dists[i3][mins[i3]]) {
146697 mins[i3] = j;
146698 }
146699 }
146700 }
146701 var merged = mergeClosest(clusters, index2, dists, mins, opts);
146702 while (merged) {
146703 merged = mergeClosest(clusters, index2, dists, mins, opts);
146704 }
146705 var retClusters;
146706 if (opts.mode === "dendrogram") {
146707 retClusters = buildClustersFromTree(clusters[0], opts.dendrogramDepth, cy);
146708 if (opts.addDendrogram)
146709 buildDendrogram(clusters[0], cy);
146710 } else {
146711 retClusters = new Array(clusters.length);
146712 clusters.forEach(function(cluster2, i4) {
146713 cluster2.key = cluster2.index = null;
146714 retClusters[i4] = cy.collection(cluster2.value);
146715 });
146716 }
146717 return retClusters;
146718 };
146719 var hierarchicalClustering$1 = {
146720 hierarchicalClustering,
146721 hca: hierarchicalClustering
146722 };
146723 var defaults$9 = defaults$g({
146724 distance: "euclidean",
146725 // distance metric to compare attributes between two nodes
146726 preference: "median",
146727 // suitability of a data point to serve as an exemplar
146728 damping: 0.8,
146729 // damping factor between [0.5, 1)
146730 maxIterations: 1e3,
146731 // max number of iterations to run
146732 minIterations: 100,
146733 // min number of iterations to run in order for clustering to stop
146734 attributes: [
146735 // functions to quantify the similarity between any two points
146736 // e.g. node => node.data('weight')
146737 ]
146738 });
146739 var setOptions2 = function setOptions3(options2) {
146740 var dmp = options2.damping;
146741 var pref = options2.preference;
146742 if (!(0.5 <= dmp && dmp < 1)) {
146743 error("Damping must range on [0.5, 1). Got: ".concat(dmp));
146744 }
146745 var validPrefs = ["median", "mean", "min", "max"];
146746 if (!(validPrefs.some(function(v) {
146747 return v === pref;
146748 }) || number$12(pref))) {
146749 error("Preference must be one of [".concat(validPrefs.map(function(p2) {
146750 return "'".concat(p2, "'");
146751 }).join(", "), "] or a number. Got: ").concat(pref));
146752 }
146753 return defaults$9(options2);
146754 };
146755 var getSimilarity = function getSimilarity2(type2, n1, n2, attributes) {
146756 var attr = function attr2(n, i3) {
146757 return attributes[i3](n);
146758 };
146759 return -clusteringDistance(type2, attributes.length, function(i3) {
146760 return attr(n1, i3);
146761 }, function(i3) {
146762 return attr(n2, i3);
146763 }, n1, n2);
146764 };
146765 var getPreference = function getPreference2(S2, preference) {
146766 var p2 = null;
146767 if (preference === "median") {
146768 p2 = median(S2);
146769 } else if (preference === "mean") {
146770 p2 = mean(S2);
146771 } else if (preference === "min") {
146772 p2 = min2(S2);
146773 } else if (preference === "max") {
146774 p2 = max2(S2);
146775 } else {
146776 p2 = preference;
146777 }
146778 return p2;
146779 };
146780 var findExemplars = function findExemplars2(n, R, A) {
146781 var indices = [];
146782 for (var i3 = 0; i3 < n; i3++) {
146783 if (R[i3 * n + i3] + A[i3 * n + i3] > 0) {
146784 indices.push(i3);
146785 }
146786 }
146787 return indices;
146788 };
146789 var assignClusters = function assignClusters2(n, S2, exemplars) {
146790 var clusters = [];
146791 for (var i3 = 0; i3 < n; i3++) {
146792 var index2 = -1;
146793 var max3 = -Infinity;
146794 for (var ei = 0; ei < exemplars.length; ei++) {
146795 var e = exemplars[ei];
146796 if (S2[i3 * n + e] > max3) {
146797 index2 = e;
146798 max3 = S2[i3 * n + e];
146799 }
146800 }
146801 if (index2 > 0) {
146802 clusters.push(index2);
146803 }
146804 }
146805 for (var _ei = 0; _ei < exemplars.length; _ei++) {
146806 clusters[exemplars[_ei]] = exemplars[_ei];
146807 }
146808 return clusters;
146809 };
146810 var assign = function assign2(n, S2, exemplars) {
146811 var clusters = assignClusters(n, S2, exemplars);
146812 for (var ei = 0; ei < exemplars.length; ei++) {
146813 var ii = [];
146814 for (var c2 = 0; c2 < clusters.length; c2++) {
146815 if (clusters[c2] === exemplars[ei]) {
146816 ii.push(c2);
146817 }
146818 }
146819 var maxI = -1;
146820 var maxSum = -Infinity;
146821 for (var i3 = 0; i3 < ii.length; i3++) {
146822 var sum = 0;
146823 for (var j = 0; j < ii.length; j++) {
146824 sum += S2[ii[j] * n + ii[i3]];
146825 }
146826 if (sum > maxSum) {
146827 maxI = i3;
146828 maxSum = sum;
146829 }
146830 }
146831 exemplars[ei] = ii[maxI];
146832 }
146833 clusters = assignClusters(n, S2, exemplars);
146834 return clusters;
146835 };
146836 var affinityPropagation = function affinityPropagation2(options2) {
146837 var cy = this.cy();
146838 var nodes2 = this.nodes();
146839 var opts = setOptions2(options2);
146840 var id2position = {};
146841 for (var i3 = 0; i3 < nodes2.length; i3++) {
146842 id2position[nodes2[i3].id()] = i3;
146843 }
146844 var n;
146845 var n2;
146846 var S2;
146847 var p2;
146848 var R;
146849 var A;
146850 n = nodes2.length;
146851 n2 = n * n;
146852 S2 = new Array(n2);
146853 for (var _i = 0; _i < n2; _i++) {
146854 S2[_i] = -Infinity;
146855 }
146856 for (var _i2 = 0; _i2 < n; _i2++) {
146857 for (var j = 0; j < n; j++) {
146858 if (_i2 !== j) {
146859 S2[_i2 * n + j] = getSimilarity(opts.distance, nodes2[_i2], nodes2[j], opts.attributes);
146860 }
146861 }
146862 }
146863 p2 = getPreference(S2, opts.preference);
146864 for (var _i3 = 0; _i3 < n; _i3++) {
146865 S2[_i3 * n + _i3] = p2;
146866 }
146867 R = new Array(n2);
146868 for (var _i4 = 0; _i4 < n2; _i4++) {
146869 R[_i4] = 0;
146870 }
146871 A = new Array(n2);
146872 for (var _i5 = 0; _i5 < n2; _i5++) {
146873 A[_i5] = 0;
146874 }
146875 var old = new Array(n);
146876 var Rp = new Array(n);
146877 var se = new Array(n);
146878 for (var _i6 = 0; _i6 < n; _i6++) {
146879 old[_i6] = 0;
146880 Rp[_i6] = 0;
146881 se[_i6] = 0;
146882 }
146883 var e = new Array(n * opts.minIterations);
146884 for (var _i7 = 0; _i7 < e.length; _i7++) {
146885 e[_i7] = 0;
146886 }
146887 var iter;
146888 for (iter = 0; iter < opts.maxIterations; iter++) {
146889 for (var _i8 = 0; _i8 < n; _i8++) {
146890 var max3 = -Infinity, max22 = -Infinity, maxI = -1, AS = 0;
146891 for (var _j = 0; _j < n; _j++) {
146892 old[_j] = R[_i8 * n + _j];
146893 AS = A[_i8 * n + _j] + S2[_i8 * n + _j];
146894 if (AS >= max3) {
146895 max22 = max3;
146896 max3 = AS;
146897 maxI = _j;
146898 } else if (AS > max22) {
146899 max22 = AS;
146900 }
146901 }
146902 for (var _j2 = 0; _j2 < n; _j2++) {
146903 R[_i8 * n + _j2] = (1 - opts.damping) * (S2[_i8 * n + _j2] - max3) + opts.damping * old[_j2];
146904 }
146905 R[_i8 * n + maxI] = (1 - opts.damping) * (S2[_i8 * n + maxI] - max22) + opts.damping * old[maxI];
146906 }
146907 for (var _i9 = 0; _i9 < n; _i9++) {
146908 var sum = 0;
146909 for (var _j3 = 0; _j3 < n; _j3++) {
146910 old[_j3] = A[_j3 * n + _i9];
146911 Rp[_j3] = Math.max(0, R[_j3 * n + _i9]);
146912 sum += Rp[_j3];
146913 }
146914 sum -= Rp[_i9];
146915 Rp[_i9] = R[_i9 * n + _i9];
146916 sum += Rp[_i9];
146917 for (var _j4 = 0; _j4 < n; _j4++) {
146918 A[_j4 * n + _i9] = (1 - opts.damping) * Math.min(0, sum - Rp[_j4]) + opts.damping * old[_j4];
146919 }
146920 A[_i9 * n + _i9] = (1 - opts.damping) * (sum - Rp[_i9]) + opts.damping * old[_i9];
146921 }
146922 var K3 = 0;
146923 for (var _i10 = 0; _i10 < n; _i10++) {
146924 var E = A[_i10 * n + _i10] + R[_i10 * n + _i10] > 0 ? 1 : 0;
146925 e[iter % opts.minIterations * n + _i10] = E;
146926 K3 += E;
146927 }
146928 if (K3 > 0 && (iter >= opts.minIterations - 1 || iter == opts.maxIterations - 1)) {
146929 var _sum = 0;
146930 for (var _i11 = 0; _i11 < n; _i11++) {
146931 se[_i11] = 0;
146932 for (var _j5 = 0; _j5 < opts.minIterations; _j5++) {
146933 se[_i11] += e[_j5 * n + _i11];
146934 }
146935 if (se[_i11] === 0 || se[_i11] === opts.minIterations) {
146936 _sum++;
146937 }
146938 }
146939 if (_sum === n) {
146940 break;
146941 }
146942 }
146943 }
146944 var exemplarsIndices = findExemplars(n, R, A);
146945 var clusterIndices = assign(n, S2, exemplarsIndices);
146946 var clusters = {};
146947 for (var c2 = 0; c2 < exemplarsIndices.length; c2++) {
146948 clusters[exemplarsIndices[c2]] = [];
146949 }
146950 for (var _i12 = 0; _i12 < nodes2.length; _i12++) {
146951 var pos = id2position[nodes2[_i12].id()];
146952 var clusterIndex = clusterIndices[pos];
146953 if (clusterIndex != null) {
146954 clusters[clusterIndex].push(nodes2[_i12]);
146955 }
146956 }
146957 var retClusters = new Array(exemplarsIndices.length);
146958 for (var _c = 0; _c < exemplarsIndices.length; _c++) {
146959 retClusters[_c] = cy.collection(clusters[exemplarsIndices[_c]]);
146960 }
146961 return retClusters;
146962 };
146963 var affinityPropagation$1 = {
146964 affinityPropagation,
146965 ap: affinityPropagation
146966 };
146967 var hierholzerDefaults = defaults$g({
146968 root: void 0,
146969 directed: false
146970 });
146971 var elesfn$k = {
146972 hierholzer: function hierholzer(options2) {
146973 if (!plainObject(options2)) {
146974 var args = arguments;
146975 options2 = {
146976 root: args[0],
146977 directed: args[1]
146978 };
146979 }
146980 var _hierholzerDefaults = hierholzerDefaults(options2), root3 = _hierholzerDefaults.root, directed = _hierholzerDefaults.directed;
146981 var eles = this;
146982 var dflag = false;
146983 var oddIn;
146984 var oddOut;
146985 var startVertex;
146986 if (root3)
146987 startVertex = string2(root3) ? this.filter(root3)[0].id() : root3[0].id();
146988 var nodes2 = {};
146989 var edges2 = {};
146990 if (directed) {
146991 eles.forEach(function(ele) {
146992 var id2 = ele.id();
146993 if (ele.isNode()) {
146994 var ind = ele.indegree(true);
146995 var outd = ele.outdegree(true);
146996 var d1 = ind - outd;
146997 var d2 = outd - ind;
146998 if (d1 == 1) {
146999 if (oddIn)
147000 dflag = true;
147001 else
147002 oddIn = id2;
147003 } else if (d2 == 1) {
147004 if (oddOut)
147005 dflag = true;
147006 else
147007 oddOut = id2;
147008 } else if (d2 > 1 || d1 > 1) {
147009 dflag = true;
147010 }
147011 nodes2[id2] = [];
147012 ele.outgoers().forEach(function(e) {
147013 if (e.isEdge())
147014 nodes2[id2].push(e.id());
147015 });
147016 } else {
147017 edges2[id2] = [void 0, ele.target().id()];
147018 }
147019 });
147020 } else {
147021 eles.forEach(function(ele) {
147022 var id2 = ele.id();
147023 if (ele.isNode()) {
147024 var d2 = ele.degree(true);
147025 if (d2 % 2) {
147026 if (!oddIn)
147027 oddIn = id2;
147028 else if (!oddOut)
147029 oddOut = id2;
147030 else
147031 dflag = true;
147032 }
147033 nodes2[id2] = [];
147034 ele.connectedEdges().forEach(function(e) {
147035 return nodes2[id2].push(e.id());
147036 });
147037 } else {
147038 edges2[id2] = [ele.source().id(), ele.target().id()];
147039 }
147040 });
147041 }
147042 var result = {
147043 found: false,
147044 trail: void 0
147045 };
147046 if (dflag)
147047 return result;
147048 else if (oddOut && oddIn) {
147049 if (directed) {
147050 if (startVertex && oddOut != startVertex) {
147051 return result;
147052 }
147053 startVertex = oddOut;
147054 } else {
147055 if (startVertex && oddOut != startVertex && oddIn != startVertex) {
147056 return result;
147057 } else if (!startVertex) {
147058 startVertex = oddOut;
147059 }
147060 }
147061 } else {
147062 if (!startVertex)
147063 startVertex = eles[0].id();
147064 }
147065 var walk = function walk2(v) {
147066 var currentNode = v;
147067 var subtour2 = [v];
147068 var adj, adjTail, adjHead;
147069 while (nodes2[currentNode].length) {
147070 adj = nodes2[currentNode].shift();
147071 adjTail = edges2[adj][0];
147072 adjHead = edges2[adj][1];
147073 if (currentNode != adjHead) {
147074 nodes2[adjHead] = nodes2[adjHead].filter(function(e) {
147075 return e != adj;
147076 });
147077 currentNode = adjHead;
147078 } else if (!directed && currentNode != adjTail) {
147079 nodes2[adjTail] = nodes2[adjTail].filter(function(e) {
147080 return e != adj;
147081 });
147082 currentNode = adjTail;
147083 }
147084 subtour2.unshift(adj);
147085 subtour2.unshift(currentNode);
147086 }
147087 return subtour2;
147088 };
147089 var trail = [];
147090 var subtour = [];
147091 subtour = walk(startVertex);
147092 while (subtour.length != 1) {
147093 if (nodes2[subtour[0]].length == 0) {
147094 trail.unshift(eles.getElementById(subtour.shift()));
147095 trail.unshift(eles.getElementById(subtour.shift()));
147096 } else {
147097 subtour = walk(subtour.shift()).concat(subtour);
147098 }
147099 }
147100 trail.unshift(eles.getElementById(subtour.shift()));
147101 for (var d in nodes2) {
147102 if (nodes2[d].length) {
147103 return result;
147104 }
147105 }
147106 result.found = true;
147107 result.trail = this.spawn(trail, true);
147108 return result;
147109 }
147110 };
147111 var hopcroftTarjanBiconnected = function hopcroftTarjanBiconnected2() {
147112 var eles = this;
147113 var nodes2 = {};
147114 var id2 = 0;
147115 var edgeCount2 = 0;
147116 var components = [];
147117 var stack = [];
147118 var visitedEdges = {};
147119 var buildComponent = function buildComponent2(x2, y2) {
147120 var i3 = stack.length - 1;
147121 var cutset = [];
147122 var component = eles.spawn();
147123 while (stack[i3].x != x2 || stack[i3].y != y2) {
147124 cutset.push(stack.pop().edge);
147125 i3--;
147126 }
147127 cutset.push(stack.pop().edge);
147128 cutset.forEach(function(edge) {
147129 var connectedNodes = edge.connectedNodes().intersection(eles);
147130 component.merge(edge);
147131 connectedNodes.forEach(function(node2) {
147132 var nodeId = node2.id();
147133 var connectedEdges = node2.connectedEdges().intersection(eles);
147134 component.merge(node2);
147135 if (!nodes2[nodeId].cutVertex) {
147136 component.merge(connectedEdges);
147137 } else {
147138 component.merge(connectedEdges.filter(function(edge2) {
147139 return edge2.isLoop();
147140 }));
147141 }
147142 });
147143 });
147144 components.push(component);
147145 };
147146 var biconnectedSearch = function biconnectedSearch2(root3, currentNode, parent) {
147147 if (root3 === parent)
147148 edgeCount2 += 1;
147149 nodes2[currentNode] = {
147150 id: id2,
147151 low: id2++,
147152 cutVertex: false
147153 };
147154 var edges2 = eles.getElementById(currentNode).connectedEdges().intersection(eles);
147155 if (edges2.size() === 0) {
147156 components.push(eles.spawn(eles.getElementById(currentNode)));
147157 } else {
147158 var sourceId, targetId, otherNodeId, edgeId;
147159 edges2.forEach(function(edge) {
147160 sourceId = edge.source().id();
147161 targetId = edge.target().id();
147162 otherNodeId = sourceId === currentNode ? targetId : sourceId;
147163 if (otherNodeId !== parent) {
147164 edgeId = edge.id();
147165 if (!visitedEdges[edgeId]) {
147166 visitedEdges[edgeId] = true;
147167 stack.push({
147168 x: currentNode,
147169 y: otherNodeId,
147170 edge
147171 });
147172 }
147173 if (!(otherNodeId in nodes2)) {
147174 biconnectedSearch2(root3, otherNodeId, currentNode);
147175 nodes2[currentNode].low = Math.min(nodes2[currentNode].low, nodes2[otherNodeId].low);
147176 if (nodes2[currentNode].id <= nodes2[otherNodeId].low) {
147177 nodes2[currentNode].cutVertex = true;
147178 buildComponent(currentNode, otherNodeId);
147179 }
147180 } else {
147181 nodes2[currentNode].low = Math.min(nodes2[currentNode].low, nodes2[otherNodeId].id);
147182 }
147183 }
147184 });
147185 }
147186 };
147187 eles.forEach(function(ele) {
147188 if (ele.isNode()) {
147189 var nodeId = ele.id();
147190 if (!(nodeId in nodes2)) {
147191 edgeCount2 = 0;
147192 biconnectedSearch(nodeId, nodeId);
147193 nodes2[nodeId].cutVertex = edgeCount2 > 1;
147194 }
147195 }
147196 });
147197 var cutVertices = Object.keys(nodes2).filter(function(id3) {
147198 return nodes2[id3].cutVertex;
147199 }).map(function(id3) {
147200 return eles.getElementById(id3);
147201 });
147202 return {
147203 cut: eles.spawn(cutVertices),
147204 components
147205 };
147206 };
147207 var hopcroftTarjanBiconnected$1 = {
147208 hopcroftTarjanBiconnected,
147209 htbc: hopcroftTarjanBiconnected,
147210 htb: hopcroftTarjanBiconnected,
147211 hopcroftTarjanBiconnectedComponents: hopcroftTarjanBiconnected
147212 };
147213 var tarjanStronglyConnected = function tarjanStronglyConnected2() {
147214 var eles = this;
147215 var nodes2 = {};
147216 var index2 = 0;
147217 var components = [];
147218 var stack = [];
147219 var cut = eles.spawn(eles);
147220 var stronglyConnectedSearch = function stronglyConnectedSearch2(sourceNodeId) {
147221 stack.push(sourceNodeId);
147222 nodes2[sourceNodeId] = {
147223 index: index2,
147224 low: index2++,
147225 explored: false
147226 };
147227 var connectedEdges = eles.getElementById(sourceNodeId).connectedEdges().intersection(eles);
147228 connectedEdges.forEach(function(edge) {
147229 var targetNodeId = edge.target().id();
147230 if (targetNodeId !== sourceNodeId) {
147231 if (!(targetNodeId in nodes2)) {
147232 stronglyConnectedSearch2(targetNodeId);
147233 }
147234 if (!nodes2[targetNodeId].explored) {
147235 nodes2[sourceNodeId].low = Math.min(nodes2[sourceNodeId].low, nodes2[targetNodeId].low);
147236 }
147237 }
147238 });
147239 if (nodes2[sourceNodeId].index === nodes2[sourceNodeId].low) {
147240 var componentNodes = eles.spawn();
147241 for (; ; ) {
147242 var nodeId = stack.pop();
147243 componentNodes.merge(eles.getElementById(nodeId));
147244 nodes2[nodeId].low = nodes2[sourceNodeId].index;
147245 nodes2[nodeId].explored = true;
147246 if (nodeId === sourceNodeId) {
147247 break;
147248 }
147249 }
147250 var componentEdges = componentNodes.edgesWith(componentNodes);
147251 var component = componentNodes.merge(componentEdges);
147252 components.push(component);
147253 cut = cut.difference(component);
147254 }
147255 };
147256 eles.forEach(function(ele) {
147257 if (ele.isNode()) {
147258 var nodeId = ele.id();
147259 if (!(nodeId in nodes2)) {
147260 stronglyConnectedSearch(nodeId);
147261 }
147262 }
147263 });
147264 return {
147265 cut,
147266 components
147267 };
147268 };
147269 var tarjanStronglyConnected$1 = {
147270 tarjanStronglyConnected,
147271 tsc: tarjanStronglyConnected,
147272 tscc: tarjanStronglyConnected,
147273 tarjanStronglyConnectedComponents: tarjanStronglyConnected
147274 };
147275 var elesfn$j = {};
147276 [elesfn$v, elesfn$u, elesfn$t, elesfn$s, elesfn$r, elesfn$q, elesfn$p, elesfn$o, elesfn$n, elesfn$m, elesfn$l, markovClustering$1, kClustering, hierarchicalClustering$1, affinityPropagation$1, elesfn$k, hopcroftTarjanBiconnected$1, tarjanStronglyConnected$1].forEach(function(props) {
147277 extend2(elesfn$j, props);
147278 });
147279 /*!
147280 Embeddable Minimum Strictly-Compliant Promises/A+ 1.1.1 Thenable
147281 Copyright (c) 2013-2014 Ralf S. Engelschall (http://engelschall.com)
147282 Licensed under The MIT License (http://opensource.org/licenses/MIT)
147283 */
147284 var STATE_PENDING = 0;
147285 var STATE_FULFILLED = 1;
147286 var STATE_REJECTED = 2;
147287 var api = function api2(executor) {
147288 if (!(this instanceof api2))
147289 return new api2(executor);
147290 this.id = "Thenable/1.0.7";
147291 this.state = STATE_PENDING;
147292 this.fulfillValue = void 0;
147293 this.rejectReason = void 0;
147294 this.onFulfilled = [];
147295 this.onRejected = [];
147296 this.proxy = {
147297 then: this.then.bind(this)
147298 };
147299 if (typeof executor === "function")
147300 executor.call(this, this.fulfill.bind(this), this.reject.bind(this));
147301 };
147302 api.prototype = {
147303 /* promise resolving methods */
147304 fulfill: function fulfill(value) {
147305 return deliver(this, STATE_FULFILLED, "fulfillValue", value);
147306 },
147307 reject: function reject(value) {
147308 return deliver(this, STATE_REJECTED, "rejectReason", value);
147309 },
147310 /* "The then Method" [Promises/A+ 1.1, 1.2, 2.2] */
147311 then: function then(onFulfilled, onRejected) {
147312 var curr = this;
147313 var next2 = new api();
147314 curr.onFulfilled.push(resolver2(onFulfilled, next2, "fulfill"));
147315 curr.onRejected.push(resolver2(onRejected, next2, "reject"));
147316 execute(curr);
147317 return next2.proxy;
147318 }
147319 };
147320 var deliver = function deliver2(curr, state2, name2, value) {
147321 if (curr.state === STATE_PENDING) {
147322 curr.state = state2;
147323 curr[name2] = value;
147324 execute(curr);
147325 }
147326 return curr;
147327 };
147328 var execute = function execute2(curr) {
147329 if (curr.state === STATE_FULFILLED)
147330 execute_handlers(curr, "onFulfilled", curr.fulfillValue);
147331 else if (curr.state === STATE_REJECTED)
147332 execute_handlers(curr, "onRejected", curr.rejectReason);
147333 };
147334 var execute_handlers = function execute_handlers2(curr, name2, value) {
147335 if (curr[name2].length === 0)
147336 return;
147337 var handlers = curr[name2];
147338 curr[name2] = [];
147339 var func = function func2() {
147340 for (var i3 = 0; i3 < handlers.length; i3++) {
147341 handlers[i3](value);
147342 }
147343 };
147344 if (typeof setImmediate === "function")
147345 setImmediate(func);
147346 else
147347 setTimeout(func, 0);
147348 };
147349 var resolver2 = function resolver3(cb, next2, method) {
147350 return function(value) {
147351 if (typeof cb !== "function")
147352 next2[method].call(next2, value);
147353 else {
147354 var result;
147355 try {
147356 result = cb(value);
147357 } catch (e) {
147358 next2.reject(e);
147359 return;
147360 }
147361 resolve(next2, result);
147362 }
147363 };
147364 };
147365 var resolve = function resolve2(promise2, x2) {
147366 if (promise2 === x2 || promise2.proxy === x2) {
147367 promise2.reject(new TypeError("cannot resolve promise with itself"));
147368 return;
147369 }
147370 var then;
147371 if (_typeof(x2) === "object" && x2 !== null || typeof x2 === "function") {
147372 try {
147373 then = x2.then;
147374 } catch (e) {
147375 promise2.reject(e);
147376 return;
147377 }
147378 }
147379 if (typeof then === "function") {
147380 var resolved = false;
147381 try {
147382 then.call(
147383 x2,
147384 /* resolvePromise */
147385 /* [Promises/A+ 2.3.3.3.1] */
147386 function(y2) {
147387 if (resolved)
147388 return;
147389 resolved = true;
147390 if (y2 === x2)
147391 promise2.reject(new TypeError("circular thenable chain"));
147392 else
147393 resolve2(promise2, y2);
147394 },
147395 /* rejectPromise */
147396 /* [Promises/A+ 2.3.3.3.2] */
147397 function(r) {
147398 if (resolved)
147399 return;
147400 resolved = true;
147401 promise2.reject(r);
147402 }
147403 );
147404 } catch (e) {
147405 if (!resolved)
147406 promise2.reject(e);
147407 }
147408 return;
147409 }
147410 promise2.fulfill(x2);
147411 };
147412 api.all = function(ps) {
147413 return new api(function(resolveAll2, rejectAll) {
147414 var vals = new Array(ps.length);
147415 var doneCount = 0;
147416 var fulfill = function fulfill2(i4, val) {
147417 vals[i4] = val;
147418 doneCount++;
147419 if (doneCount === ps.length) {
147420 resolveAll2(vals);
147421 }
147422 };
147423 for (var i3 = 0; i3 < ps.length; i3++) {
147424 (function(i4) {
147425 var p2 = ps[i4];
147426 var isPromise = p2 != null && p2.then != null;
147427 if (isPromise) {
147428 p2.then(function(val2) {
147429 fulfill(i4, val2);
147430 }, function(err) {
147431 rejectAll(err);
147432 });
147433 } else {
147434 var val = p2;
147435 fulfill(i4, val);
147436 }
147437 })(i3);
147438 }
147439 });
147440 };
147441 api.resolve = function(val) {
147442 return new api(function(resolve2, reject) {
147443 resolve2(val);
147444 });
147445 };
147446 api.reject = function(val) {
147447 return new api(function(resolve2, reject) {
147448 reject(val);
147449 });
147450 };
147451 var Promise$12 = typeof Promise !== "undefined" ? Promise : api;
147452 var Animation = function Animation2(target, opts, opts2) {
147453 var isCore = core2(target);
147454 var isEle = !isCore;
147455 var _p = this._private = extend2({
147456 duration: 1e3
147457 }, opts, opts2);
147458 _p.target = target;
147459 _p.style = _p.style || _p.css;
147460 _p.started = false;
147461 _p.playing = false;
147462 _p.hooked = false;
147463 _p.applying = false;
147464 _p.progress = 0;
147465 _p.completes = [];
147466 _p.frames = [];
147467 if (_p.complete && fn$6(_p.complete)) {
147468 _p.completes.push(_p.complete);
147469 }
147470 if (isEle) {
147471 var pos = target.position();
147472 _p.startPosition = _p.startPosition || {
147473 x: pos.x,
147474 y: pos.y
147475 };
147476 _p.startStyle = _p.startStyle || target.cy().style().getAnimationStartStyle(target, _p.style);
147477 }
147478 if (isCore) {
147479 var pan = target.pan();
147480 _p.startPan = {
147481 x: pan.x,
147482 y: pan.y
147483 };
147484 _p.startZoom = target.zoom();
147485 }
147486 this.length = 1;
147487 this[0] = this;
147488 };
147489 var anifn = Animation.prototype;
147490 extend2(anifn, {
147491 instanceString: function instanceString() {
147492 return "animation";
147493 },
147494 hook: function hook() {
147495 var _p = this._private;
147496 if (!_p.hooked) {
147497 var q;
147498 var tAni = _p.target._private.animation;
147499 if (_p.queue) {
147500 q = tAni.queue;
147501 } else {
147502 q = tAni.current;
147503 }
147504 q.push(this);
147505 if (elementOrCollection(_p.target)) {
147506 _p.target.cy().addToAnimationPool(_p.target);
147507 }
147508 _p.hooked = true;
147509 }
147510 return this;
147511 },
147512 play: function play() {
147513 var _p = this._private;
147514 if (_p.progress === 1) {
147515 _p.progress = 0;
147516 }
147517 _p.playing = true;
147518 _p.started = false;
147519 _p.stopped = false;
147520 this.hook();
147521 return this;
147522 },
147523 playing: function playing() {
147524 return this._private.playing;
147525 },
147526 apply: function apply2() {
147527 var _p = this._private;
147528 _p.applying = true;
147529 _p.started = false;
147530 _p.stopped = false;
147531 this.hook();
147532 return this;
147533 },
147534 applying: function applying() {
147535 return this._private.applying;
147536 },
147537 pause: function pause() {
147538 var _p = this._private;
147539 _p.playing = false;
147540 _p.started = false;
147541 return this;
147542 },
147543 stop: function stop() {
147544 var _p = this._private;
147545 _p.playing = false;
147546 _p.started = false;
147547 _p.stopped = true;
147548 return this;
147549 },
147550 rewind: function rewind() {
147551 return this.progress(0);
147552 },
147553 fastforward: function fastforward() {
147554 return this.progress(1);
147555 },
147556 time: function time2(t4) {
147557 var _p = this._private;
147558 if (t4 === void 0) {
147559 return _p.progress * _p.duration;
147560 } else {
147561 return this.progress(t4 / _p.duration);
147562 }
147563 },
147564 progress: function progress(p2) {
147565 var _p = this._private;
147566 var wasPlaying = _p.playing;
147567 if (p2 === void 0) {
147568 return _p.progress;
147569 } else {
147570 if (wasPlaying) {
147571 this.pause();
147572 }
147573 _p.progress = p2;
147574 _p.started = false;
147575 if (wasPlaying) {
147576 this.play();
147577 }
147578 }
147579 return this;
147580 },
147581 completed: function completed() {
147582 return this._private.progress === 1;
147583 },
147584 reverse: function reverse() {
147585 var _p = this._private;
147586 var wasPlaying = _p.playing;
147587 if (wasPlaying) {
147588 this.pause();
147589 }
147590 _p.progress = 1 - _p.progress;
147591 _p.started = false;
147592 var swap = function swap2(a, b) {
147593 var _pa = _p[a];
147594 if (_pa == null) {
147595 return;
147596 }
147597 _p[a] = _p[b];
147598 _p[b] = _pa;
147599 };
147600 swap("zoom", "startZoom");
147601 swap("pan", "startPan");
147602 swap("position", "startPosition");
147603 if (_p.style) {
147604 for (var i3 = 0; i3 < _p.style.length; i3++) {
147605 var prop = _p.style[i3];
147606 var name2 = prop.name;
147607 var startStyleProp = _p.startStyle[name2];
147608 _p.startStyle[name2] = prop;
147609 _p.style[i3] = startStyleProp;
147610 }
147611 }
147612 if (wasPlaying) {
147613 this.play();
147614 }
147615 return this;
147616 },
147617 promise: function promise2(type2) {
147618 var _p = this._private;
147619 var arr;
147620 switch (type2) {
147621 case "frame":
147622 arr = _p.frames;
147623 break;
147624 default:
147625 case "complete":
147626 case "completed":
147627 arr = _p.completes;
147628 }
147629 return new Promise$12(function(resolve2, reject) {
147630 arr.push(function() {
147631 resolve2();
147632 });
147633 });
147634 }
147635 });
147636 anifn.complete = anifn.completed;
147637 anifn.run = anifn.play;
147638 anifn.running = anifn.playing;
147639 var define$3 = {
147640 animated: function animated() {
147641 return function animatedImpl() {
147642 var self2 = this;
147643 var selfIsArrayLike = self2.length !== void 0;
147644 var all2 = selfIsArrayLike ? self2 : [self2];
147645 var cy = this._private.cy || this;
147646 if (!cy.styleEnabled()) {
147647 return false;
147648 }
147649 var ele = all2[0];
147650 if (ele) {
147651 return ele._private.animation.current.length > 0;
147652 }
147653 };
147654 },
147655 // animated
147656 clearQueue: function clearQueue() {
147657 return function clearQueueImpl() {
147658 var self2 = this;
147659 var selfIsArrayLike = self2.length !== void 0;
147660 var all2 = selfIsArrayLike ? self2 : [self2];
147661 var cy = this._private.cy || this;
147662 if (!cy.styleEnabled()) {
147663 return this;
147664 }
147665 for (var i3 = 0; i3 < all2.length; i3++) {
147666 var ele = all2[i3];
147667 ele._private.animation.queue = [];
147668 }
147669 return this;
147670 };
147671 },
147672 // clearQueue
147673 delay: function delay() {
147674 return function delayImpl(time2, complete) {
147675 var cy = this._private.cy || this;
147676 if (!cy.styleEnabled()) {
147677 return this;
147678 }
147679 return this.animate({
147680 delay: time2,
147681 duration: time2,
147682 complete
147683 });
147684 };
147685 },
147686 // delay
147687 delayAnimation: function delayAnimation() {
147688 return function delayAnimationImpl(time2, complete) {
147689 var cy = this._private.cy || this;
147690 if (!cy.styleEnabled()) {
147691 return this;
147692 }
147693 return this.animation({
147694 delay: time2,
147695 duration: time2,
147696 complete
147697 });
147698 };
147699 },
147700 // delay
147701 animation: function animation() {
147702 return function animationImpl(properties, params) {
147703 var self2 = this;
147704 var selfIsArrayLike = self2.length !== void 0;
147705 var all2 = selfIsArrayLike ? self2 : [self2];
147706 var cy = this._private.cy || this;
147707 var isCore = !selfIsArrayLike;
147708 var isEles = !isCore;
147709 if (!cy.styleEnabled()) {
147710 return this;
147711 }
147712 var style = cy.style();
147713 properties = extend2({}, properties, params);
147714 var propertiesEmpty = Object.keys(properties).length === 0;
147715 if (propertiesEmpty) {
147716 return new Animation(all2[0], properties);
147717 }
147718 if (properties.duration === void 0) {
147719 properties.duration = 400;
147720 }
147721 switch (properties.duration) {
147722 case "slow":
147723 properties.duration = 600;
147724 break;
147725 case "fast":
147726 properties.duration = 200;
147727 break;
147728 }
147729 if (isEles) {
147730 properties.style = style.getPropsList(properties.style || properties.css);
147731 properties.css = void 0;
147732 }
147733 if (isEles && properties.renderedPosition != null) {
147734 var rpos = properties.renderedPosition;
147735 var pan = cy.pan();
147736 var zoom = cy.zoom();
147737 properties.position = renderedToModelPosition(rpos, zoom, pan);
147738 }
147739 if (isCore && properties.panBy != null) {
147740 var panBy = properties.panBy;
147741 var cyPan = cy.pan();
147742 properties.pan = {
147743 x: cyPan.x + panBy.x,
147744 y: cyPan.y + panBy.y
147745 };
147746 }
147747 var center2 = properties.center || properties.centre;
147748 if (isCore && center2 != null) {
147749 var centerPan = cy.getCenterPan(center2.eles, properties.zoom);
147750 if (centerPan != null) {
147751 properties.pan = centerPan;
147752 }
147753 }
147754 if (isCore && properties.fit != null) {
147755 var fit = properties.fit;
147756 var fitVp = cy.getFitViewport(fit.eles || fit.boundingBox, fit.padding);
147757 if (fitVp != null) {
147758 properties.pan = fitVp.pan;
147759 properties.zoom = fitVp.zoom;
147760 }
147761 }
147762 if (isCore && plainObject(properties.zoom)) {
147763 var vp = cy.getZoomedViewport(properties.zoom);
147764 if (vp != null) {
147765 if (vp.zoomed) {
147766 properties.zoom = vp.zoom;
147767 }
147768 if (vp.panned) {
147769 properties.pan = vp.pan;
147770 }
147771 } else {
147772 properties.zoom = null;
147773 }
147774 }
147775 return new Animation(all2[0], properties);
147776 };
147777 },
147778 // animate
147779 animate: function animate() {
147780 return function animateImpl(properties, params) {
147781 var self2 = this;
147782 var selfIsArrayLike = self2.length !== void 0;
147783 var all2 = selfIsArrayLike ? self2 : [self2];
147784 var cy = this._private.cy || this;
147785 if (!cy.styleEnabled()) {
147786 return this;
147787 }
147788 if (params) {
147789 properties = extend2({}, properties, params);
147790 }
147791 for (var i3 = 0; i3 < all2.length; i3++) {
147792 var ele = all2[i3];
147793 var queue = ele.animated() && (properties.queue === void 0 || properties.queue);
147794 var ani = ele.animation(properties, queue ? {
147795 queue: true
147796 } : void 0);
147797 ani.play();
147798 }
147799 return this;
147800 };
147801 },
147802 // animate
147803 stop: function stop() {
147804 return function stopImpl(clearQueue, jumpToEnd) {
147805 var self2 = this;
147806 var selfIsArrayLike = self2.length !== void 0;
147807 var all2 = selfIsArrayLike ? self2 : [self2];
147808 var cy = this._private.cy || this;
147809 if (!cy.styleEnabled()) {
147810 return this;
147811 }
147812 for (var i3 = 0; i3 < all2.length; i3++) {
147813 var ele = all2[i3];
147814 var _p = ele._private;
147815 var anis = _p.animation.current;
147816 for (var j = 0; j < anis.length; j++) {
147817 var ani = anis[j];
147818 var ani_p = ani._private;
147819 if (jumpToEnd) {
147820 ani_p.duration = 0;
147821 }
147822 }
147823 if (clearQueue) {
147824 _p.animation.queue = [];
147825 }
147826 if (!jumpToEnd) {
147827 _p.animation.current = [];
147828 }
147829 }
147830 cy.notify("draw");
147831 return this;
147832 };
147833 }
147834 // stop
147835 };
147836 var isArray2 = Array.isArray;
147837 var isArray_1 = isArray2;
147838 var reIsDeepProp2 = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp2 = /^\w*$/;
147839 function isKey2(value, object3) {
147840 if (isArray_1(value)) {
147841 return false;
147842 }
147843 var type2 = typeof value;
147844 if (type2 == "number" || type2 == "symbol" || type2 == "boolean" || value == null || isSymbol_1(value)) {
147845 return true;
147846 }
147847 return reIsPlainProp2.test(value) || !reIsDeepProp2.test(value) || object3 != null && value in Object(object3);
147848 }
147849 var _isKey = isKey2;
147850 var asyncTag2 = "[object AsyncFunction]", funcTag2 = "[object Function]", genTag2 = "[object GeneratorFunction]", proxyTag2 = "[object Proxy]";
147851 function isFunction2(value) {
147852 if (!isObject_12(value)) {
147853 return false;
147854 }
147855 var tag = _baseGetTag(value);
147856 return tag == funcTag2 || tag == genTag2 || tag == asyncTag2 || tag == proxyTag2;
147857 }
147858 var isFunction_1 = isFunction2;
147859 var coreJsData2 = _root["__core-js_shared__"];
147860 var _coreJsData = coreJsData2;
147861 var maskSrcKey2 = function() {
147862 var uid = /[^.]+$/.exec(_coreJsData && _coreJsData.keys && _coreJsData.keys.IE_PROTO || "");
147863 return uid ? "Symbol(src)_1." + uid : "";
147864 }();
147865 function isMasked2(func) {
147866 return !!maskSrcKey2 && maskSrcKey2 in func;
147867 }
147868 var _isMasked = isMasked2;
147869 var funcProto$12 = Function.prototype;
147870 var funcToString$12 = funcProto$12.toString;
147871 function toSource2(func) {
147872 if (func != null) {
147873 try {
147874 return funcToString$12.call(func);
147875 } catch (e) {
147876 }
147877 try {
147878 return func + "";
147879 } catch (e) {
147880 }
147881 }
147882 return "";
147883 }
147884 var _toSource = toSource2;
147885 var reRegExpChar2 = /[\\^$.*+?()[\]{}|]/g;
147886 var reIsHostCtor2 = /^\[object .+?Constructor\]$/;
147887 var funcProto2 = Function.prototype, objectProto$32 = Object.prototype;
147888 var funcToString2 = funcProto2.toString;
147889 var hasOwnProperty$32 = objectProto$32.hasOwnProperty;
147890 var reIsNative2 = RegExp(
147891 "^" + funcToString2.call(hasOwnProperty$32).replace(reRegExpChar2, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"
147892 );
147893 function baseIsNative2(value) {
147894 if (!isObject_12(value) || _isMasked(value)) {
147895 return false;
147896 }
147897 var pattern = isFunction_1(value) ? reIsNative2 : reIsHostCtor2;
147898 return pattern.test(_toSource(value));
147899 }
147900 var _baseIsNative = baseIsNative2;
147901 function getValue$1(object3, key) {
147902 return object3 == null ? void 0 : object3[key];
147903 }
147904 var _getValue = getValue$1;
147905 function getNative2(object3, key) {
147906 var value = _getValue(object3, key);
147907 return _baseIsNative(value) ? value : void 0;
147908 }
147909 var _getNative = getNative2;
147910 var nativeCreate2 = _getNative(Object, "create");
147911 var _nativeCreate = nativeCreate2;
147912 function hashClear2() {
147913 this.__data__ = _nativeCreate ? _nativeCreate(null) : {};
147914 this.size = 0;
147915 }
147916 var _hashClear = hashClear2;
147917 function hashDelete2(key) {
147918 var result = this.has(key) && delete this.__data__[key];
147919 this.size -= result ? 1 : 0;
147920 return result;
147921 }
147922 var _hashDelete = hashDelete2;
147923 var HASH_UNDEFINED$12 = "__lodash_hash_undefined__";
147924 var objectProto$22 = Object.prototype;
147925 var hasOwnProperty$22 = objectProto$22.hasOwnProperty;
147926 function hashGet2(key) {
147927 var data2 = this.__data__;
147928 if (_nativeCreate) {
147929 var result = data2[key];
147930 return result === HASH_UNDEFINED$12 ? void 0 : result;
147931 }
147932 return hasOwnProperty$22.call(data2, key) ? data2[key] : void 0;
147933 }
147934 var _hashGet = hashGet2;
147935 var objectProto$12 = Object.prototype;
147936 var hasOwnProperty$12 = objectProto$12.hasOwnProperty;
147937 function hashHas2(key) {
147938 var data2 = this.__data__;
147939 return _nativeCreate ? data2[key] !== void 0 : hasOwnProperty$12.call(data2, key);
147940 }
147941 var _hashHas = hashHas2;
147942 var HASH_UNDEFINED2 = "__lodash_hash_undefined__";
147943 function hashSet2(key, value) {
147944 var data2 = this.__data__;
147945 this.size += this.has(key) ? 0 : 1;
147946 data2[key] = _nativeCreate && value === void 0 ? HASH_UNDEFINED2 : value;
147947 return this;
147948 }
147949 var _hashSet = hashSet2;
147950 function Hash2(entries2) {
147951 var index2 = -1, length2 = entries2 == null ? 0 : entries2.length;
147952 this.clear();
147953 while (++index2 < length2) {
147954 var entry = entries2[index2];
147955 this.set(entry[0], entry[1]);
147956 }
147957 }
147958 Hash2.prototype.clear = _hashClear;
147959 Hash2.prototype["delete"] = _hashDelete;
147960 Hash2.prototype.get = _hashGet;
147961 Hash2.prototype.has = _hashHas;
147962 Hash2.prototype.set = _hashSet;
147963 var _Hash = Hash2;
147964 function listCacheClear2() {
147965 this.__data__ = [];
147966 this.size = 0;
147967 }
147968 var _listCacheClear = listCacheClear2;
147969 function eq2(value, other) {
147970 return value === other || value !== value && other !== other;
147971 }
147972 var eq_1 = eq2;
147973 function assocIndexOf2(array3, key) {
147974 var length2 = array3.length;
147975 while (length2--) {
147976 if (eq_1(array3[length2][0], key)) {
147977 return length2;
147978 }
147979 }
147980 return -1;
147981 }
147982 var _assocIndexOf = assocIndexOf2;
147983 var arrayProto2 = Array.prototype;
147984 var splice2 = arrayProto2.splice;
147985 function listCacheDelete2(key) {
147986 var data2 = this.__data__, index2 = _assocIndexOf(data2, key);
147987 if (index2 < 0) {
147988 return false;
147989 }
147990 var lastIndex = data2.length - 1;
147991 if (index2 == lastIndex) {
147992 data2.pop();
147993 } else {
147994 splice2.call(data2, index2, 1);
147995 }
147996 --this.size;
147997 return true;
147998 }
147999 var _listCacheDelete = listCacheDelete2;
148000 function listCacheGet2(key) {
148001 var data2 = this.__data__, index2 = _assocIndexOf(data2, key);
148002 return index2 < 0 ? void 0 : data2[index2][1];
148003 }
148004 var _listCacheGet = listCacheGet2;
148005 function listCacheHas2(key) {
148006 return _assocIndexOf(this.__data__, key) > -1;
148007 }
148008 var _listCacheHas = listCacheHas2;
148009 function listCacheSet2(key, value) {
148010 var data2 = this.__data__, index2 = _assocIndexOf(data2, key);
148011 if (index2 < 0) {
148012 ++this.size;
148013 data2.push([key, value]);
148014 } else {
148015 data2[index2][1] = value;
148016 }
148017 return this;
148018 }
148019 var _listCacheSet = listCacheSet2;
148020 function ListCache2(entries2) {
148021 var index2 = -1, length2 = entries2 == null ? 0 : entries2.length;
148022 this.clear();
148023 while (++index2 < length2) {
148024 var entry = entries2[index2];
148025 this.set(entry[0], entry[1]);
148026 }
148027 }
148028 ListCache2.prototype.clear = _listCacheClear;
148029 ListCache2.prototype["delete"] = _listCacheDelete;
148030 ListCache2.prototype.get = _listCacheGet;
148031 ListCache2.prototype.has = _listCacheHas;
148032 ListCache2.prototype.set = _listCacheSet;
148033 var _ListCache = ListCache2;
148034 var Map$12 = _getNative(_root, "Map");
148035 var _Map = Map$12;
148036 function mapCacheClear2() {
148037 this.size = 0;
148038 this.__data__ = {
148039 "hash": new _Hash(),
148040 "map": new (_Map || _ListCache)(),
148041 "string": new _Hash()
148042 };
148043 }
148044 var _mapCacheClear = mapCacheClear2;
148045 function isKeyable2(value) {
148046 var type2 = typeof value;
148047 return type2 == "string" || type2 == "number" || type2 == "symbol" || type2 == "boolean" ? value !== "__proto__" : value === null;
148048 }
148049 var _isKeyable = isKeyable2;
148050 function getMapData2(map2, key) {
148051 var data2 = map2.__data__;
148052 return _isKeyable(key) ? data2[typeof key == "string" ? "string" : "hash"] : data2.map;
148053 }
148054 var _getMapData = getMapData2;
148055 function mapCacheDelete2(key) {
148056 var result = _getMapData(this, key)["delete"](key);
148057 this.size -= result ? 1 : 0;
148058 return result;
148059 }
148060 var _mapCacheDelete = mapCacheDelete2;
148061 function mapCacheGet2(key) {
148062 return _getMapData(this, key).get(key);
148063 }
148064 var _mapCacheGet = mapCacheGet2;
148065 function mapCacheHas2(key) {
148066 return _getMapData(this, key).has(key);
148067 }
148068 var _mapCacheHas = mapCacheHas2;
148069 function mapCacheSet2(key, value) {
148070 var data2 = _getMapData(this, key), size2 = data2.size;
148071 data2.set(key, value);
148072 this.size += data2.size == size2 ? 0 : 1;
148073 return this;
148074 }
148075 var _mapCacheSet = mapCacheSet2;
148076 function MapCache2(entries2) {
148077 var index2 = -1, length2 = entries2 == null ? 0 : entries2.length;
148078 this.clear();
148079 while (++index2 < length2) {
148080 var entry = entries2[index2];
148081 this.set(entry[0], entry[1]);
148082 }
148083 }
148084 MapCache2.prototype.clear = _mapCacheClear;
148085 MapCache2.prototype["delete"] = _mapCacheDelete;
148086 MapCache2.prototype.get = _mapCacheGet;
148087 MapCache2.prototype.has = _mapCacheHas;
148088 MapCache2.prototype.set = _mapCacheSet;
148089 var _MapCache = MapCache2;
148090 var FUNC_ERROR_TEXT2 = "Expected a function";
148091 function memoize2(func, resolver3) {
148092 if (typeof func != "function" || resolver3 != null && typeof resolver3 != "function") {
148093 throw new TypeError(FUNC_ERROR_TEXT2);
148094 }
148095 var memoized = function() {
148096 var args = arguments, key = resolver3 ? resolver3.apply(this, args) : args[0], cache2 = memoized.cache;
148097 if (cache2.has(key)) {
148098 return cache2.get(key);
148099 }
148100 var result = func.apply(this, args);
148101 memoized.cache = cache2.set(key, result) || cache2;
148102 return result;
148103 };
148104 memoized.cache = new (memoize2.Cache || _MapCache)();
148105 return memoized;
148106 }
148107 memoize2.Cache = _MapCache;
148108 var memoize_1 = memoize2;
148109 var MAX_MEMOIZE_SIZE2 = 500;
148110 function memoizeCapped2(func) {
148111 var result = memoize_1(func, function(key) {
148112 if (cache2.size === MAX_MEMOIZE_SIZE2) {
148113 cache2.clear();
148114 }
148115 return key;
148116 });
148117 var cache2 = result.cache;
148118 return result;
148119 }
148120 var _memoizeCapped = memoizeCapped2;
148121 var rePropName2 = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;
148122 var reEscapeChar2 = /\\(\\)?/g;
148123 var stringToPath2 = _memoizeCapped(function(string3) {
148124 var result = [];
148125 if (string3.charCodeAt(0) === 46) {
148126 result.push("");
148127 }
148128 string3.replace(rePropName2, function(match5, number3, quote, subString) {
148129 result.push(quote ? subString.replace(reEscapeChar2, "$1") : number3 || match5);
148130 });
148131 return result;
148132 });
148133 var _stringToPath = stringToPath2;
148134 function arrayMap2(array3, iteratee) {
148135 var index2 = -1, length2 = array3 == null ? 0 : array3.length, result = Array(length2);
148136 while (++index2 < length2) {
148137 result[index2] = iteratee(array3[index2], index2, array3);
148138 }
148139 return result;
148140 }
148141 var _arrayMap = arrayMap2;
148142 var INFINITY$12 = 1 / 0;
148143 var symbolProto2 = _Symbol ? _Symbol.prototype : void 0, symbolToString2 = symbolProto2 ? symbolProto2.toString : void 0;
148144 function baseToString2(value) {
148145 if (typeof value == "string") {
148146 return value;
148147 }
148148 if (isArray_1(value)) {
148149 return _arrayMap(value, baseToString2) + "";
148150 }
148151 if (isSymbol_1(value)) {
148152 return symbolToString2 ? symbolToString2.call(value) : "";
148153 }
148154 var result = value + "";
148155 return result == "0" && 1 / value == -INFINITY$12 ? "-0" : result;
148156 }
148157 var _baseToString = baseToString2;
148158 function toString$12(value) {
148159 return value == null ? "" : _baseToString(value);
148160 }
148161 var toString_1 = toString$12;
148162 function castPath2(value, object3) {
148163 if (isArray_1(value)) {
148164 return value;
148165 }
148166 return _isKey(value, object3) ? [value] : _stringToPath(toString_1(value));
148167 }
148168 var _castPath = castPath2;
148169 var INFINITY2 = 1 / 0;
148170 function toKey2(value) {
148171 if (typeof value == "string" || isSymbol_1(value)) {
148172 return value;
148173 }
148174 var result = value + "";
148175 return result == "0" && 1 / value == -INFINITY2 ? "-0" : result;
148176 }
148177 var _toKey = toKey2;
148178 function baseGet2(object3, path2) {
148179 path2 = _castPath(path2, object3);
148180 var index2 = 0, length2 = path2.length;
148181 while (object3 != null && index2 < length2) {
148182 object3 = object3[_toKey(path2[index2++])];
148183 }
148184 return index2 && index2 == length2 ? object3 : void 0;
148185 }
148186 var _baseGet = baseGet2;
148187 function get2(object3, path2, defaultValue) {
148188 var result = object3 == null ? void 0 : _baseGet(object3, path2);
148189 return result === void 0 ? defaultValue : result;
148190 }
148191 var get_1 = get2;
148192 var defineProperty2 = function() {
148193 try {
148194 var func = _getNative(Object, "defineProperty");
148195 func({}, "", {});
148196 return func;
148197 } catch (e) {
148198 }
148199 }();
148200 var _defineProperty = defineProperty2;
148201 function baseAssignValue2(object3, key, value) {
148202 if (key == "__proto__" && _defineProperty) {
148203 _defineProperty(object3, key, {
148204 "configurable": true,
148205 "enumerable": true,
148206 "value": value,
148207 "writable": true
148208 });
148209 } else {
148210 object3[key] = value;
148211 }
148212 }
148213 var _baseAssignValue = baseAssignValue2;
148214 var objectProto2 = Object.prototype;
148215 var hasOwnProperty2 = objectProto2.hasOwnProperty;
148216 function assignValue2(object3, key, value) {
148217 var objValue = object3[key];
148218 if (!(hasOwnProperty2.call(object3, key) && eq_1(objValue, value)) || value === void 0 && !(key in object3)) {
148219 _baseAssignValue(object3, key, value);
148220 }
148221 }
148222 var _assignValue = assignValue2;
148223 var MAX_SAFE_INTEGER2 = 9007199254740991;
148224 var reIsUint2 = /^(?:0|[1-9]\d*)$/;
148225 function isIndex2(value, length2) {
148226 var type2 = typeof value;
148227 length2 = length2 == null ? MAX_SAFE_INTEGER2 : length2;
148228 return !!length2 && (type2 == "number" || type2 != "symbol" && reIsUint2.test(value)) && (value > -1 && value % 1 == 0 && value < length2);
148229 }
148230 var _isIndex = isIndex2;
148231 function baseSet2(object3, path2, value, customizer) {
148232 if (!isObject_12(object3)) {
148233 return object3;
148234 }
148235 path2 = _castPath(path2, object3);
148236 var index2 = -1, length2 = path2.length, lastIndex = length2 - 1, nested = object3;
148237 while (nested != null && ++index2 < length2) {
148238 var key = _toKey(path2[index2]), newValue = value;
148239 if (key === "__proto__" || key === "constructor" || key === "prototype") {
148240 return object3;
148241 }
148242 if (index2 != lastIndex) {
148243 var objValue = nested[key];
148244 newValue = customizer ? customizer(objValue, key, nested) : void 0;
148245 if (newValue === void 0) {
148246 newValue = isObject_12(objValue) ? objValue : _isIndex(path2[index2 + 1]) ? [] : {};
148247 }
148248 }
148249 _assignValue(nested, key, newValue);
148250 nested = nested[key];
148251 }
148252 return object3;
148253 }
148254 var _baseSet = baseSet2;
148255 function set2(object3, path2, value) {
148256 return object3 == null ? object3 : _baseSet(object3, path2, value);
148257 }
148258 var set_1 = set2;
148259 function copyArray2(source, array3) {
148260 var index2 = -1, length2 = source.length;
148261 array3 || (array3 = Array(length2));
148262 while (++index2 < length2) {
148263 array3[index2] = source[index2];
148264 }
148265 return array3;
148266 }
148267 var _copyArray = copyArray2;
148268 function toPath(value) {
148269 if (isArray_1(value)) {
148270 return _arrayMap(value, _toKey);
148271 }
148272 return isSymbol_1(value) ? [value] : _copyArray(_stringToPath(toString_1(value)));
148273 }
148274 var toPath_1 = toPath;
148275 var define$2 = {
148276 // access data field
148277 data: function data2(params) {
148278 var defaults3 = {
148279 field: "data",
148280 bindingEvent: "data",
148281 allowBinding: false,
148282 allowSetting: false,
148283 allowGetting: false,
148284 settingEvent: "data",
148285 settingTriggersEvent: false,
148286 triggerFnName: "trigger",
148287 immutableKeys: {},
148288 // key => true if immutable
148289 updateStyle: false,
148290 beforeGet: function beforeGet(self2) {
148291 },
148292 beforeSet: function beforeSet(self2, obj) {
148293 },
148294 onSet: function onSet(self2) {
148295 },
148296 canSet: function canSet(self2) {
148297 return true;
148298 }
148299 };
148300 params = extend2({}, defaults3, params);
148301 return function dataImpl(name2, value) {
148302 var p2 = params;
148303 var self2 = this;
148304 var selfIsArrayLike = self2.length !== void 0;
148305 var all2 = selfIsArrayLike ? self2 : [self2];
148306 var single = selfIsArrayLike ? self2[0] : self2;
148307 if (string2(name2)) {
148308 var isPathLike = name2.indexOf(".") !== -1;
148309 var path2 = isPathLike && toPath_1(name2);
148310 if (p2.allowGetting && value === void 0) {
148311 var ret;
148312 if (single) {
148313 p2.beforeGet(single);
148314 if (path2 && single._private[p2.field][name2] === void 0) {
148315 ret = get_1(single._private[p2.field], path2);
148316 } else {
148317 ret = single._private[p2.field][name2];
148318 }
148319 }
148320 return ret;
148321 } else if (p2.allowSetting && value !== void 0) {
148322 var valid2 = !p2.immutableKeys[name2];
148323 if (valid2) {
148324 var change2 = _defineProperty$1({}, name2, value);
148325 p2.beforeSet(self2, change2);
148326 for (var i3 = 0, l = all2.length; i3 < l; i3++) {
148327 var ele = all2[i3];
148328 if (p2.canSet(ele)) {
148329 if (path2 && single._private[p2.field][name2] === void 0) {
148330 set_1(ele._private[p2.field], path2, value);
148331 } else {
148332 ele._private[p2.field][name2] = value;
148333 }
148334 }
148335 }
148336 if (p2.updateStyle) {
148337 self2.updateStyle();
148338 }
148339 p2.onSet(self2);
148340 if (p2.settingTriggersEvent) {
148341 self2[p2.triggerFnName](p2.settingEvent);
148342 }
148343 }
148344 }
148345 } else if (p2.allowSetting && plainObject(name2)) {
148346 var obj = name2;
148347 var k, v;
148348 var keys2 = Object.keys(obj);
148349 p2.beforeSet(self2, obj);
148350 for (var _i = 0; _i < keys2.length; _i++) {
148351 k = keys2[_i];
148352 v = obj[k];
148353 var _valid = !p2.immutableKeys[k];
148354 if (_valid) {
148355 for (var j = 0; j < all2.length; j++) {
148356 var _ele = all2[j];
148357 if (p2.canSet(_ele)) {
148358 _ele._private[p2.field][k] = v;
148359 }
148360 }
148361 }
148362 }
148363 if (p2.updateStyle) {
148364 self2.updateStyle();
148365 }
148366 p2.onSet(self2);
148367 if (p2.settingTriggersEvent) {
148368 self2[p2.triggerFnName](p2.settingEvent);
148369 }
148370 } else if (p2.allowBinding && fn$6(name2)) {
148371 var fn2 = name2;
148372 self2.on(p2.bindingEvent, fn2);
148373 } else if (p2.allowGetting && name2 === void 0) {
148374 var _ret;
148375 if (single) {
148376 p2.beforeGet(single);
148377 _ret = single._private[p2.field];
148378 }
148379 return _ret;
148380 }
148381 return self2;
148382 };
148383 },
148384 // data
148385 // remove data field
148386 removeData: function removeData(params) {
148387 var defaults3 = {
148388 field: "data",
148389 event: "data",
148390 triggerFnName: "trigger",
148391 triggerEvent: false,
148392 immutableKeys: {}
148393 // key => true if immutable
148394 };
148395 params = extend2({}, defaults3, params);
148396 return function removeDataImpl(names) {
148397 var p2 = params;
148398 var self2 = this;
148399 var selfIsArrayLike = self2.length !== void 0;
148400 var all2 = selfIsArrayLike ? self2 : [self2];
148401 if (string2(names)) {
148402 var keys2 = names.split(/\s+/);
148403 var l = keys2.length;
148404 for (var i3 = 0; i3 < l; i3++) {
148405 var key = keys2[i3];
148406 if (emptyString(key)) {
148407 continue;
148408 }
148409 var valid2 = !p2.immutableKeys[key];
148410 if (valid2) {
148411 for (var i_a = 0, l_a = all2.length; i_a < l_a; i_a++) {
148412 all2[i_a]._private[p2.field][key] = void 0;
148413 }
148414 }
148415 }
148416 if (p2.triggerEvent) {
148417 self2[p2.triggerFnName](p2.event);
148418 }
148419 } else if (names === void 0) {
148420 for (var _i_a = 0, _l_a = all2.length; _i_a < _l_a; _i_a++) {
148421 var _privateFields = all2[_i_a]._private[p2.field];
148422 var _keys = Object.keys(_privateFields);
148423 for (var _i2 = 0; _i2 < _keys.length; _i2++) {
148424 var _key = _keys[_i2];
148425 var validKeyToDelete = !p2.immutableKeys[_key];
148426 if (validKeyToDelete) {
148427 _privateFields[_key] = void 0;
148428 }
148429 }
148430 }
148431 if (p2.triggerEvent) {
148432 self2[p2.triggerFnName](p2.event);
148433 }
148434 }
148435 return self2;
148436 };
148437 }
148438 // removeData
148439 };
148440 var define$1 = {
148441 eventAliasesOn: function eventAliasesOn(proto2) {
148442 var p2 = proto2;
148443 p2.addListener = p2.listen = p2.bind = p2.on;
148444 p2.unlisten = p2.unbind = p2.off = p2.removeListener;
148445 p2.trigger = p2.emit;
148446 p2.pon = p2.promiseOn = function(events, selector2) {
148447 var self2 = this;
148448 var args = Array.prototype.slice.call(arguments, 0);
148449 return new Promise$12(function(resolve2, reject) {
148450 var callback = function callback2(e) {
148451 self2.off.apply(self2, offArgs);
148452 resolve2(e);
148453 };
148454 var onArgs = args.concat([callback]);
148455 var offArgs = onArgs.concat([]);
148456 self2.on.apply(self2, onArgs);
148457 });
148458 };
148459 }
148460 };
148461 var define3 = {};
148462 [define$3, define$2, define$1].forEach(function(m) {
148463 extend2(define3, m);
148464 });
148465 var elesfn$i = {
148466 animate: define3.animate(),
148467 animation: define3.animation(),
148468 animated: define3.animated(),
148469 clearQueue: define3.clearQueue(),
148470 delay: define3.delay(),
148471 delayAnimation: define3.delayAnimation(),
148472 stop: define3.stop()
148473 };
148474 var elesfn$h = {
148475 classes: function classes2(_classes) {
148476 var self2 = this;
148477 if (_classes === void 0) {
148478 var ret = [];
148479 self2[0]._private.classes.forEach(function(cls2) {
148480 return ret.push(cls2);
148481 });
148482 return ret;
148483 } else if (!array2(_classes)) {
148484 _classes = (_classes || "").match(/\S+/g) || [];
148485 }
148486 var changed = [];
148487 var classesSet = new Set$12(_classes);
148488 for (var j = 0; j < self2.length; j++) {
148489 var ele = self2[j];
148490 var _p = ele._private;
148491 var eleClasses = _p.classes;
148492 var changedEle = false;
148493 for (var i3 = 0; i3 < _classes.length; i3++) {
148494 var cls = _classes[i3];
148495 var eleHasClass = eleClasses.has(cls);
148496 if (!eleHasClass) {
148497 changedEle = true;
148498 break;
148499 }
148500 }
148501 if (!changedEle) {
148502 changedEle = eleClasses.size !== _classes.length;
148503 }
148504 if (changedEle) {
148505 _p.classes = classesSet;
148506 changed.push(ele);
148507 }
148508 }
148509 if (changed.length > 0) {
148510 this.spawn(changed).updateStyle().emit("class");
148511 }
148512 return self2;
148513 },
148514 addClass: function addClass2(classes2) {
148515 return this.toggleClass(classes2, true);
148516 },
148517 hasClass: function hasClass(className) {
148518 var ele = this[0];
148519 return ele != null && ele._private.classes.has(className);
148520 },
148521 toggleClass: function toggleClass(classes2, toggle) {
148522 if (!array2(classes2)) {
148523 classes2 = classes2.match(/\S+/g) || [];
148524 }
148525 var self2 = this;
148526 var toggleUndefd = toggle === void 0;
148527 var changed = [];
148528 for (var i3 = 0, il = self2.length; i3 < il; i3++) {
148529 var ele = self2[i3];
148530 var eleClasses = ele._private.classes;
148531 var changedEle = false;
148532 for (var j = 0; j < classes2.length; j++) {
148533 var cls = classes2[j];
148534 var hasClass = eleClasses.has(cls);
148535 var changedNow = false;
148536 if (toggle || toggleUndefd && !hasClass) {
148537 eleClasses.add(cls);
148538 changedNow = true;
148539 } else if (!toggle || toggleUndefd && hasClass) {
148540 eleClasses["delete"](cls);
148541 changedNow = true;
148542 }
148543 if (!changedEle && changedNow) {
148544 changed.push(ele);
148545 changedEle = true;
148546 }
148547 }
148548 }
148549 if (changed.length > 0) {
148550 this.spawn(changed).updateStyle().emit("class");
148551 }
148552 return self2;
148553 },
148554 removeClass: function removeClass(classes2) {
148555 return this.toggleClass(classes2, false);
148556 },
148557 flashClass: function flashClass(classes2, duration) {
148558 var self2 = this;
148559 if (duration == null) {
148560 duration = 250;
148561 } else if (duration === 0) {
148562 return self2;
148563 }
148564 self2.addClass(classes2);
148565 setTimeout(function() {
148566 self2.removeClass(classes2);
148567 }, duration);
148568 return self2;
148569 }
148570 };
148571 elesfn$h.className = elesfn$h.classNames = elesfn$h.classes;
148572 var tokens = {
148573 metaChar: "[\\!\\\"\\#\\$\\%\\&\\'\\(\\)\\*\\+\\,\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\]\\^\\`\\{\\|\\}\\~]",
148574 // chars we need to escape in let names, etc
148575 comparatorOp: "=|\\!=|>|>=|<|<=|\\$=|\\^=|\\*=",
148576 // binary comparison op (used in data selectors)
148577 boolOp: "\\?|\\!|\\^",
148578 // boolean (unary) operators (used in data selectors)
148579 string: `"(?:\\\\"|[^"])*"|'(?:\\\\'|[^'])*'`,
148580 // string literals (used in data selectors) -- doublequotes | singlequotes
148581 number: number2,
148582 // number literal (used in data selectors) --- e.g. 0.1234, 1234, 12e123
148583 meta: "degree|indegree|outdegree",
148584 // allowed metadata fields (i.e. allowed functions to use from Collection)
148585 separator: "\\s*,\\s*",
148586 // queries are separated by commas, e.g. edge[foo = 'bar'], node.someClass
148587 descendant: "\\s+",
148588 child: "\\s+>\\s+",
148589 subject: "\\$",
148590 group: "node|edge|\\*",
148591 directedEdge: "\\s+->\\s+",
148592 undirectedEdge: "\\s+<->\\s+"
148593 };
148594 tokens.variable = "(?:[\\w-.]|(?:\\\\" + tokens.metaChar + "))+";
148595 tokens.className = "(?:[\\w-]|(?:\\\\" + tokens.metaChar + "))+";
148596 tokens.value = tokens.string + "|" + tokens.number;
148597 tokens.id = tokens.variable;
148598 (function() {
148599 var ops, op, i3;
148600 ops = tokens.comparatorOp.split("|");
148601 for (i3 = 0; i3 < ops.length; i3++) {
148602 op = ops[i3];
148603 tokens.comparatorOp += "|@" + op;
148604 }
148605 ops = tokens.comparatorOp.split("|");
148606 for (i3 = 0; i3 < ops.length; i3++) {
148607 op = ops[i3];
148608 if (op.indexOf("!") >= 0) {
148609 continue;
148610 }
148611 if (op === "=") {
148612 continue;
148613 }
148614 tokens.comparatorOp += "|\\!" + op;
148615 }
148616 })();
148617 var newQuery = function newQuery2() {
148618 return {
148619 checks: []
148620 };
148621 };
148622 var Type2 = {
148623 /** E.g. node */
148624 GROUP: 0,
148625 /** A collection of elements */
148626 COLLECTION: 1,
148627 /** A filter(ele) function */
148628 FILTER: 2,
148629 /** E.g. [foo > 1] */
148630 DATA_COMPARE: 3,
148631 /** E.g. [foo] */
148632 DATA_EXIST: 4,
148633 /** E.g. [?foo] */
148634 DATA_BOOL: 5,
148635 /** E.g. [[degree > 2]] */
148636 META_COMPARE: 6,
148637 /** E.g. :selected */
148638 STATE: 7,
148639 /** E.g. #foo */
148640 ID: 8,
148641 /** E.g. .foo */
148642 CLASS: 9,
148643 /** E.g. #foo <-> #bar */
148644 UNDIRECTED_EDGE: 10,
148645 /** E.g. #foo -> #bar */
148646 DIRECTED_EDGE: 11,
148647 /** E.g. $#foo -> #bar */
148648 NODE_SOURCE: 12,
148649 /** E.g. #foo -> $#bar */
148650 NODE_TARGET: 13,
148651 /** E.g. $#foo <-> #bar */
148652 NODE_NEIGHBOR: 14,
148653 /** E.g. #foo > #bar */
148654 CHILD: 15,
148655 /** E.g. #foo #bar */
148656 DESCENDANT: 16,
148657 /** E.g. $#foo > #bar */
148658 PARENT: 17,
148659 /** E.g. $#foo #bar */
148660 ANCESTOR: 18,
148661 /** E.g. #foo > $bar > #baz */
148662 COMPOUND_SPLIT: 19,
148663 /** Always matches, useful placeholder for subject in `COMPOUND_SPLIT` */
148664 TRUE: 20
148665 };
148666 var stateSelectors = [{
148667 selector: ":selected",
148668 matches: function matches2(ele) {
148669 return ele.selected();
148670 }
148671 }, {
148672 selector: ":unselected",
148673 matches: function matches2(ele) {
148674 return !ele.selected();
148675 }
148676 }, {
148677 selector: ":selectable",
148678 matches: function matches2(ele) {
148679 return ele.selectable();
148680 }
148681 }, {
148682 selector: ":unselectable",
148683 matches: function matches2(ele) {
148684 return !ele.selectable();
148685 }
148686 }, {
148687 selector: ":locked",
148688 matches: function matches2(ele) {
148689 return ele.locked();
148690 }
148691 }, {
148692 selector: ":unlocked",
148693 matches: function matches2(ele) {
148694 return !ele.locked();
148695 }
148696 }, {
148697 selector: ":visible",
148698 matches: function matches2(ele) {
148699 return ele.visible();
148700 }
148701 }, {
148702 selector: ":hidden",
148703 matches: function matches2(ele) {
148704 return !ele.visible();
148705 }
148706 }, {
148707 selector: ":transparent",
148708 matches: function matches2(ele) {
148709 return ele.transparent();
148710 }
148711 }, {
148712 selector: ":grabbed",
148713 matches: function matches2(ele) {
148714 return ele.grabbed();
148715 }
148716 }, {
148717 selector: ":free",
148718 matches: function matches2(ele) {
148719 return !ele.grabbed();
148720 }
148721 }, {
148722 selector: ":removed",
148723 matches: function matches2(ele) {
148724 return ele.removed();
148725 }
148726 }, {
148727 selector: ":inside",
148728 matches: function matches2(ele) {
148729 return !ele.removed();
148730 }
148731 }, {
148732 selector: ":grabbable",
148733 matches: function matches2(ele) {
148734 return ele.grabbable();
148735 }
148736 }, {
148737 selector: ":ungrabbable",
148738 matches: function matches2(ele) {
148739 return !ele.grabbable();
148740 }
148741 }, {
148742 selector: ":animated",
148743 matches: function matches2(ele) {
148744 return ele.animated();
148745 }
148746 }, {
148747 selector: ":unanimated",
148748 matches: function matches2(ele) {
148749 return !ele.animated();
148750 }
148751 }, {
148752 selector: ":parent",
148753 matches: function matches2(ele) {
148754 return ele.isParent();
148755 }
148756 }, {
148757 selector: ":childless",
148758 matches: function matches2(ele) {
148759 return ele.isChildless();
148760 }
148761 }, {
148762 selector: ":child",
148763 matches: function matches2(ele) {
148764 return ele.isChild();
148765 }
148766 }, {
148767 selector: ":orphan",
148768 matches: function matches2(ele) {
148769 return ele.isOrphan();
148770 }
148771 }, {
148772 selector: ":nonorphan",
148773 matches: function matches2(ele) {
148774 return ele.isChild();
148775 }
148776 }, {
148777 selector: ":compound",
148778 matches: function matches2(ele) {
148779 if (ele.isNode()) {
148780 return ele.isParent();
148781 } else {
148782 return ele.source().isParent() || ele.target().isParent();
148783 }
148784 }
148785 }, {
148786 selector: ":loop",
148787 matches: function matches2(ele) {
148788 return ele.isLoop();
148789 }
148790 }, {
148791 selector: ":simple",
148792 matches: function matches2(ele) {
148793 return ele.isSimple();
148794 }
148795 }, {
148796 selector: ":active",
148797 matches: function matches2(ele) {
148798 return ele.active();
148799 }
148800 }, {
148801 selector: ":inactive",
148802 matches: function matches2(ele) {
148803 return !ele.active();
148804 }
148805 }, {
148806 selector: ":backgrounding",
148807 matches: function matches2(ele) {
148808 return ele.backgrounding();
148809 }
148810 }, {
148811 selector: ":nonbackgrounding",
148812 matches: function matches2(ele) {
148813 return !ele.backgrounding();
148814 }
148815 }].sort(function(a, b) {
148816 return descending2(a.selector, b.selector);
148817 });
148818 var lookup = function() {
148819 var selToFn = {};
148820 var s;
148821 for (var i3 = 0; i3 < stateSelectors.length; i3++) {
148822 s = stateSelectors[i3];
148823 selToFn[s.selector] = s.matches;
148824 }
148825 return selToFn;
148826 }();
148827 var stateSelectorMatches = function stateSelectorMatches2(sel, ele) {
148828 return lookup[sel](ele);
148829 };
148830 var stateSelectorRegex = "(" + stateSelectors.map(function(s) {
148831 return s.selector;
148832 }).join("|") + ")";
148833 var cleanMetaChars = function cleanMetaChars2(str2) {
148834 return str2.replace(new RegExp("\\\\(" + tokens.metaChar + ")", "g"), function(match5, $1) {
148835 return $1;
148836 });
148837 };
148838 var replaceLastQuery = function replaceLastQuery2(selector2, examiningQuery, replacementQuery) {
148839 selector2[selector2.length - 1] = replacementQuery;
148840 };
148841 var exprs = [{
148842 name: "group",
148843 // just used for identifying when debugging
148844 query: true,
148845 regex: "(" + tokens.group + ")",
148846 populate: function populate(selector2, query, _ref) {
148847 var _ref2 = _slicedToArray(_ref, 1), group = _ref2[0];
148848 query.checks.push({
148849 type: Type2.GROUP,
148850 value: group === "*" ? group : group + "s"
148851 });
148852 }
148853 }, {
148854 name: "state",
148855 query: true,
148856 regex: stateSelectorRegex,
148857 populate: function populate(selector2, query, _ref3) {
148858 var _ref4 = _slicedToArray(_ref3, 1), state2 = _ref4[0];
148859 query.checks.push({
148860 type: Type2.STATE,
148861 value: state2
148862 });
148863 }
148864 }, {
148865 name: "id",
148866 query: true,
148867 regex: "\\#(" + tokens.id + ")",
148868 populate: function populate(selector2, query, _ref5) {
148869 var _ref6 = _slicedToArray(_ref5, 1), id2 = _ref6[0];
148870 query.checks.push({
148871 type: Type2.ID,
148872 value: cleanMetaChars(id2)
148873 });
148874 }
148875 }, {
148876 name: "className",
148877 query: true,
148878 regex: "\\.(" + tokens.className + ")",
148879 populate: function populate(selector2, query, _ref7) {
148880 var _ref8 = _slicedToArray(_ref7, 1), className = _ref8[0];
148881 query.checks.push({
148882 type: Type2.CLASS,
148883 value: cleanMetaChars(className)
148884 });
148885 }
148886 }, {
148887 name: "dataExists",
148888 query: true,
148889 regex: "\\[\\s*(" + tokens.variable + ")\\s*\\]",
148890 populate: function populate(selector2, query, _ref9) {
148891 var _ref10 = _slicedToArray(_ref9, 1), variable = _ref10[0];
148892 query.checks.push({
148893 type: Type2.DATA_EXIST,
148894 field: cleanMetaChars(variable)
148895 });
148896 }
148897 }, {
148898 name: "dataCompare",
148899 query: true,
148900 regex: "\\[\\s*(" + tokens.variable + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.value + ")\\s*\\]",
148901 populate: function populate(selector2, query, _ref11) {
148902 var _ref12 = _slicedToArray(_ref11, 3), variable = _ref12[0], comparatorOp = _ref12[1], value = _ref12[2];
148903 var valueIsString = new RegExp("^" + tokens.string + "$").exec(value) != null;
148904 if (valueIsString) {
148905 value = value.substring(1, value.length - 1);
148906 } else {
148907 value = parseFloat(value);
148908 }
148909 query.checks.push({
148910 type: Type2.DATA_COMPARE,
148911 field: cleanMetaChars(variable),
148912 operator: comparatorOp,
148913 value
148914 });
148915 }
148916 }, {
148917 name: "dataBool",
148918 query: true,
148919 regex: "\\[\\s*(" + tokens.boolOp + ")\\s*(" + tokens.variable + ")\\s*\\]",
148920 populate: function populate(selector2, query, _ref13) {
148921 var _ref14 = _slicedToArray(_ref13, 2), boolOp = _ref14[0], variable = _ref14[1];
148922 query.checks.push({
148923 type: Type2.DATA_BOOL,
148924 field: cleanMetaChars(variable),
148925 operator: boolOp
148926 });
148927 }
148928 }, {
148929 name: "metaCompare",
148930 query: true,
148931 regex: "\\[\\[\\s*(" + tokens.meta + ")\\s*(" + tokens.comparatorOp + ")\\s*(" + tokens.number + ")\\s*\\]\\]",
148932 populate: function populate(selector2, query, _ref15) {
148933 var _ref16 = _slicedToArray(_ref15, 3), meta2 = _ref16[0], comparatorOp = _ref16[1], number3 = _ref16[2];
148934 query.checks.push({
148935 type: Type2.META_COMPARE,
148936 field: cleanMetaChars(meta2),
148937 operator: comparatorOp,
148938 value: parseFloat(number3)
148939 });
148940 }
148941 }, {
148942 name: "nextQuery",
148943 separator: true,
148944 regex: tokens.separator,
148945 populate: function populate(selector2, query) {
148946 var currentSubject = selector2.currentSubject;
148947 var edgeCount2 = selector2.edgeCount;
148948 var compoundCount = selector2.compoundCount;
148949 var lastQ = selector2[selector2.length - 1];
148950 if (currentSubject != null) {
148951 lastQ.subject = currentSubject;
148952 selector2.currentSubject = null;
148953 }
148954 lastQ.edgeCount = edgeCount2;
148955 lastQ.compoundCount = compoundCount;
148956 selector2.edgeCount = 0;
148957 selector2.compoundCount = 0;
148958 var nextQuery = selector2[selector2.length++] = newQuery();
148959 return nextQuery;
148960 }
148961 }, {
148962 name: "directedEdge",
148963 separator: true,
148964 regex: tokens.directedEdge,
148965 populate: function populate(selector2, query) {
148966 if (selector2.currentSubject == null) {
148967 var edgeQuery = newQuery();
148968 var source = query;
148969 var target = newQuery();
148970 edgeQuery.checks.push({
148971 type: Type2.DIRECTED_EDGE,
148972 source,
148973 target
148974 });
148975 replaceLastQuery(selector2, query, edgeQuery);
148976 selector2.edgeCount++;
148977 return target;
148978 } else {
148979 var srcTgtQ = newQuery();
148980 var _source = query;
148981 var _target = newQuery();
148982 srcTgtQ.checks.push({
148983 type: Type2.NODE_SOURCE,
148984 source: _source,
148985 target: _target
148986 });
148987 replaceLastQuery(selector2, query, srcTgtQ);
148988 selector2.edgeCount++;
148989 return _target;
148990 }
148991 }
148992 }, {
148993 name: "undirectedEdge",
148994 separator: true,
148995 regex: tokens.undirectedEdge,
148996 populate: function populate(selector2, query) {
148997 if (selector2.currentSubject == null) {
148998 var edgeQuery = newQuery();
148999 var source = query;
149000 var target = newQuery();
149001 edgeQuery.checks.push({
149002 type: Type2.UNDIRECTED_EDGE,
149003 nodes: [source, target]
149004 });
149005 replaceLastQuery(selector2, query, edgeQuery);
149006 selector2.edgeCount++;
149007 return target;
149008 } else {
149009 var nhoodQ = newQuery();
149010 var node2 = query;
149011 var neighbor = newQuery();
149012 nhoodQ.checks.push({
149013 type: Type2.NODE_NEIGHBOR,
149014 node: node2,
149015 neighbor
149016 });
149017 replaceLastQuery(selector2, query, nhoodQ);
149018 return neighbor;
149019 }
149020 }
149021 }, {
149022 name: "child",
149023 separator: true,
149024 regex: tokens.child,
149025 populate: function populate(selector2, query) {
149026 if (selector2.currentSubject == null) {
149027 var parentChildQuery = newQuery();
149028 var child = newQuery();
149029 var parent = selector2[selector2.length - 1];
149030 parentChildQuery.checks.push({
149031 type: Type2.CHILD,
149032 parent,
149033 child
149034 });
149035 replaceLastQuery(selector2, query, parentChildQuery);
149036 selector2.compoundCount++;
149037 return child;
149038 } else if (selector2.currentSubject === query) {
149039 var compound = newQuery();
149040 var left2 = selector2[selector2.length - 1];
149041 var right2 = newQuery();
149042 var subject = newQuery();
149043 var _child = newQuery();
149044 var _parent = newQuery();
149045 compound.checks.push({
149046 type: Type2.COMPOUND_SPLIT,
149047 left: left2,
149048 right: right2,
149049 subject
149050 });
149051 subject.checks = query.checks;
149052 query.checks = [{
149053 type: Type2.TRUE
149054 }];
149055 _parent.checks.push({
149056 type: Type2.TRUE
149057 });
149058 right2.checks.push({
149059 type: Type2.PARENT,
149060 // type is swapped on right side queries
149061 parent: _parent,
149062 child: _child
149063 // empty for now
149064 });
149065 replaceLastQuery(selector2, left2, compound);
149066 selector2.currentSubject = subject;
149067 selector2.compoundCount++;
149068 return _child;
149069 } else {
149070 var _parent2 = newQuery();
149071 var _child2 = newQuery();
149072 var pcQChecks = [{
149073 type: Type2.PARENT,
149074 parent: _parent2,
149075 child: _child2
149076 }];
149077 _parent2.checks = query.checks;
149078 query.checks = pcQChecks;
149079 selector2.compoundCount++;
149080 return _child2;
149081 }
149082 }
149083 }, {
149084 name: "descendant",
149085 separator: true,
149086 regex: tokens.descendant,
149087 populate: function populate(selector2, query) {
149088 if (selector2.currentSubject == null) {
149089 var ancChQuery = newQuery();
149090 var descendant = newQuery();
149091 var ancestor = selector2[selector2.length - 1];
149092 ancChQuery.checks.push({
149093 type: Type2.DESCENDANT,
149094 ancestor,
149095 descendant
149096 });
149097 replaceLastQuery(selector2, query, ancChQuery);
149098 selector2.compoundCount++;
149099 return descendant;
149100 } else if (selector2.currentSubject === query) {
149101 var compound = newQuery();
149102 var left2 = selector2[selector2.length - 1];
149103 var right2 = newQuery();
149104 var subject = newQuery();
149105 var _descendant = newQuery();
149106 var _ancestor = newQuery();
149107 compound.checks.push({
149108 type: Type2.COMPOUND_SPLIT,
149109 left: left2,
149110 right: right2,
149111 subject
149112 });
149113 subject.checks = query.checks;
149114 query.checks = [{
149115 type: Type2.TRUE
149116 }];
149117 _ancestor.checks.push({
149118 type: Type2.TRUE
149119 });
149120 right2.checks.push({
149121 type: Type2.ANCESTOR,
149122 // type is swapped on right side queries
149123 ancestor: _ancestor,
149124 descendant: _descendant
149125 // empty for now
149126 });
149127 replaceLastQuery(selector2, left2, compound);
149128 selector2.currentSubject = subject;
149129 selector2.compoundCount++;
149130 return _descendant;
149131 } else {
149132 var _ancestor2 = newQuery();
149133 var _descendant2 = newQuery();
149134 var adQChecks = [{
149135 type: Type2.ANCESTOR,
149136 ancestor: _ancestor2,
149137 descendant: _descendant2
149138 }];
149139 _ancestor2.checks = query.checks;
149140 query.checks = adQChecks;
149141 selector2.compoundCount++;
149142 return _descendant2;
149143 }
149144 }
149145 }, {
149146 name: "subject",
149147 modifier: true,
149148 regex: tokens.subject,
149149 populate: function populate(selector2, query) {
149150 if (selector2.currentSubject != null && selector2.currentSubject !== query) {
149151 warn("Redefinition of subject in selector `" + selector2.toString() + "`");
149152 return false;
149153 }
149154 selector2.currentSubject = query;
149155 var topQ = selector2[selector2.length - 1];
149156 var topChk = topQ.checks[0];
149157 var topType = topChk == null ? null : topChk.type;
149158 if (topType === Type2.DIRECTED_EDGE) {
149159 topChk.type = Type2.NODE_TARGET;
149160 } else if (topType === Type2.UNDIRECTED_EDGE) {
149161 topChk.type = Type2.NODE_NEIGHBOR;
149162 topChk.node = topChk.nodes[1];
149163 topChk.neighbor = topChk.nodes[0];
149164 topChk.nodes = null;
149165 }
149166 }
149167 }];
149168 exprs.forEach(function(e) {
149169 return e.regexObj = new RegExp("^" + e.regex);
149170 });
149171 var consumeExpr = function consumeExpr2(remaining) {
149172 var expr;
149173 var match5;
149174 var name2;
149175 for (var j = 0; j < exprs.length; j++) {
149176 var e = exprs[j];
149177 var n = e.name;
149178 var m = remaining.match(e.regexObj);
149179 if (m != null) {
149180 match5 = m;
149181 expr = e;
149182 name2 = n;
149183 var consumed = m[0];
149184 remaining = remaining.substring(consumed.length);
149185 break;
149186 }
149187 }
149188 return {
149189 expr,
149190 match: match5,
149191 name: name2,
149192 remaining
149193 };
149194 };
149195 var consumeWhitespace = function consumeWhitespace2(remaining) {
149196 var match5 = remaining.match(/^\s+/);
149197 if (match5) {
149198 var consumed = match5[0];
149199 remaining = remaining.substring(consumed.length);
149200 }
149201 return remaining;
149202 };
149203 var parse2 = function parse3(selector2) {
149204 var self2 = this;
149205 var remaining = self2.inputText = selector2;
149206 var currentQuery = self2[0] = newQuery();
149207 self2.length = 1;
149208 remaining = consumeWhitespace(remaining);
149209 for (; ; ) {
149210 var exprInfo = consumeExpr(remaining);
149211 if (exprInfo.expr == null) {
149212 warn("The selector `" + selector2 + "`is invalid");
149213 return false;
149214 } else {
149215 var args = exprInfo.match.slice(1);
149216 var ret = exprInfo.expr.populate(self2, currentQuery, args);
149217 if (ret === false) {
149218 return false;
149219 } else if (ret != null) {
149220 currentQuery = ret;
149221 }
149222 }
149223 remaining = exprInfo.remaining;
149224 if (remaining.match(/^\s*$/)) {
149225 break;
149226 }
149227 }
149228 var lastQ = self2[self2.length - 1];
149229 if (self2.currentSubject != null) {
149230 lastQ.subject = self2.currentSubject;
149231 }
149232 lastQ.edgeCount = self2.edgeCount;
149233 lastQ.compoundCount = self2.compoundCount;
149234 for (var i3 = 0; i3 < self2.length; i3++) {
149235 var q = self2[i3];
149236 if (q.compoundCount > 0 && q.edgeCount > 0) {
149237 warn("The selector `" + selector2 + "` is invalid because it uses both a compound selector and an edge selector");
149238 return false;
149239 }
149240 if (q.edgeCount > 1) {
149241 warn("The selector `" + selector2 + "` is invalid because it uses multiple edge selectors");
149242 return false;
149243 } else if (q.edgeCount === 1) {
149244 warn("The selector `" + selector2 + "` is deprecated. Edge selectors do not take effect on changes to source and target nodes after an edge is added, for performance reasons. Use a class or data selector on edges instead, updating the class or data of an edge when your app detects a change in source or target nodes.");
149245 }
149246 }
149247 return true;
149248 };
149249 var toString2 = function toString3() {
149250 if (this.toStringCache != null) {
149251 return this.toStringCache;
149252 }
149253 var clean = function clean2(obj) {
149254 if (obj == null) {
149255 return "";
149256 } else {
149257 return obj;
149258 }
149259 };
149260 var cleanVal = function cleanVal2(val) {
149261 if (string2(val)) {
149262 return '"' + val + '"';
149263 } else {
149264 return clean(val);
149265 }
149266 };
149267 var space = function space2(val) {
149268 return " " + val + " ";
149269 };
149270 var checkToString = function checkToString2(check, subject) {
149271 var type2 = check.type, value = check.value;
149272 switch (type2) {
149273 case Type2.GROUP: {
149274 var group = clean(value);
149275 return group.substring(0, group.length - 1);
149276 }
149277 case Type2.DATA_COMPARE: {
149278 var field = check.field, operator = check.operator;
149279 return "[" + field + space(clean(operator)) + cleanVal(value) + "]";
149280 }
149281 case Type2.DATA_BOOL: {
149282 var _operator = check.operator, _field = check.field;
149283 return "[" + clean(_operator) + _field + "]";
149284 }
149285 case Type2.DATA_EXIST: {
149286 var _field2 = check.field;
149287 return "[" + _field2 + "]";
149288 }
149289 case Type2.META_COMPARE: {
149290 var _operator2 = check.operator, _field3 = check.field;
149291 return "[[" + _field3 + space(clean(_operator2)) + cleanVal(value) + "]]";
149292 }
149293 case Type2.STATE: {
149294 return value;
149295 }
149296 case Type2.ID: {
149297 return "#" + value;
149298 }
149299 case Type2.CLASS: {
149300 return "." + value;
149301 }
149302 case Type2.PARENT:
149303 case Type2.CHILD: {
149304 return queryToString(check.parent, subject) + space(">") + queryToString(check.child, subject);
149305 }
149306 case Type2.ANCESTOR:
149307 case Type2.DESCENDANT: {
149308 return queryToString(check.ancestor, subject) + " " + queryToString(check.descendant, subject);
149309 }
149310 case Type2.COMPOUND_SPLIT: {
149311 var lhs = queryToString(check.left, subject);
149312 var sub = queryToString(check.subject, subject);
149313 var rhs = queryToString(check.right, subject);
149314 return lhs + (lhs.length > 0 ? " " : "") + sub + rhs;
149315 }
149316 case Type2.TRUE: {
149317 return "";
149318 }
149319 }
149320 };
149321 var queryToString = function queryToString2(query2, subject) {
149322 return query2.checks.reduce(function(str3, chk, i4) {
149323 return str3 + (subject === query2 && i4 === 0 ? "$" : "") + checkToString(chk, subject);
149324 }, "");
149325 };
149326 var str2 = "";
149327 for (var i3 = 0; i3 < this.length; i3++) {
149328 var query = this[i3];
149329 str2 += queryToString(query, query.subject);
149330 if (this.length > 1 && i3 < this.length - 1) {
149331 str2 += ", ";
149332 }
149333 }
149334 this.toStringCache = str2;
149335 return str2;
149336 };
149337 var parse$12 = {
149338 parse: parse2,
149339 toString: toString2
149340 };
149341 var valCmp = function valCmp2(fieldVal, operator, value) {
149342 var matches2;
149343 var isFieldStr = string2(fieldVal);
149344 var isFieldNum = number$12(fieldVal);
149345 var isValStr = string2(value);
149346 var fieldStr, valStr;
149347 var caseInsensitive = false;
149348 var notExpr = false;
149349 var isIneqCmp = false;
149350 if (operator.indexOf("!") >= 0) {
149351 operator = operator.replace("!", "");
149352 notExpr = true;
149353 }
149354 if (operator.indexOf("@") >= 0) {
149355 operator = operator.replace("@", "");
149356 caseInsensitive = true;
149357 }
149358 if (isFieldStr || isValStr || caseInsensitive) {
149359 fieldStr = !isFieldStr && !isFieldNum ? "" : "" + fieldVal;
149360 valStr = "" + value;
149361 }
149362 if (caseInsensitive) {
149363 fieldVal = fieldStr = fieldStr.toLowerCase();
149364 value = valStr = valStr.toLowerCase();
149365 }
149366 switch (operator) {
149367 case "*=":
149368 matches2 = fieldStr.indexOf(valStr) >= 0;
149369 break;
149370 case "$=":
149371 matches2 = fieldStr.indexOf(valStr, fieldStr.length - valStr.length) >= 0;
149372 break;
149373 case "^=":
149374 matches2 = fieldStr.indexOf(valStr) === 0;
149375 break;
149376 case "=":
149377 matches2 = fieldVal === value;
149378 break;
149379 case ">":
149380 isIneqCmp = true;
149381 matches2 = fieldVal > value;
149382 break;
149383 case ">=":
149384 isIneqCmp = true;
149385 matches2 = fieldVal >= value;
149386 break;
149387 case "<":
149388 isIneqCmp = true;
149389 matches2 = fieldVal < value;
149390 break;
149391 case "<=":
149392 isIneqCmp = true;
149393 matches2 = fieldVal <= value;
149394 break;
149395 default:
149396 matches2 = false;
149397 break;
149398 }
149399 if (notExpr && (fieldVal != null || !isIneqCmp)) {
149400 matches2 = !matches2;
149401 }
149402 return matches2;
149403 };
149404 var boolCmp = function boolCmp2(fieldVal, operator) {
149405 switch (operator) {
149406 case "?":
149407 return fieldVal ? true : false;
149408 case "!":
149409 return fieldVal ? false : true;
149410 case "^":
149411 return fieldVal === void 0;
149412 }
149413 };
149414 var existCmp = function existCmp2(fieldVal) {
149415 return fieldVal !== void 0;
149416 };
149417 var data$1 = function data2(ele, field) {
149418 return ele.data(field);
149419 };
149420 var meta = function meta2(ele, field) {
149421 return ele[field]();
149422 };
149423 var match = [];
149424 var matches$1 = function matches2(query, ele) {
149425 return query.checks.every(function(chk) {
149426 return match[chk.type](chk, ele);
149427 });
149428 };
149429 match[Type2.GROUP] = function(check, ele) {
149430 var group = check.value;
149431 return group === "*" || group === ele.group();
149432 };
149433 match[Type2.STATE] = function(check, ele) {
149434 var stateSelector = check.value;
149435 return stateSelectorMatches(stateSelector, ele);
149436 };
149437 match[Type2.ID] = function(check, ele) {
149438 var id2 = check.value;
149439 return ele.id() === id2;
149440 };
149441 match[Type2.CLASS] = function(check, ele) {
149442 var cls = check.value;
149443 return ele.hasClass(cls);
149444 };
149445 match[Type2.META_COMPARE] = function(check, ele) {
149446 var field = check.field, operator = check.operator, value = check.value;
149447 return valCmp(meta(ele, field), operator, value);
149448 };
149449 match[Type2.DATA_COMPARE] = function(check, ele) {
149450 var field = check.field, operator = check.operator, value = check.value;
149451 return valCmp(data$1(ele, field), operator, value);
149452 };
149453 match[Type2.DATA_BOOL] = function(check, ele) {
149454 var field = check.field, operator = check.operator;
149455 return boolCmp(data$1(ele, field), operator);
149456 };
149457 match[Type2.DATA_EXIST] = function(check, ele) {
149458 var field = check.field;
149459 check.operator;
149460 return existCmp(data$1(ele, field));
149461 };
149462 match[Type2.UNDIRECTED_EDGE] = function(check, ele) {
149463 var qA = check.nodes[0];
149464 var qB = check.nodes[1];
149465 var src = ele.source();
149466 var tgt = ele.target();
149467 return matches$1(qA, src) && matches$1(qB, tgt) || matches$1(qB, src) && matches$1(qA, tgt);
149468 };
149469 match[Type2.NODE_NEIGHBOR] = function(check, ele) {
149470 return matches$1(check.node, ele) && ele.neighborhood().some(function(n) {
149471 return n.isNode() && matches$1(check.neighbor, n);
149472 });
149473 };
149474 match[Type2.DIRECTED_EDGE] = function(check, ele) {
149475 return matches$1(check.source, ele.source()) && matches$1(check.target, ele.target());
149476 };
149477 match[Type2.NODE_SOURCE] = function(check, ele) {
149478 return matches$1(check.source, ele) && ele.outgoers().some(function(n) {
149479 return n.isNode() && matches$1(check.target, n);
149480 });
149481 };
149482 match[Type2.NODE_TARGET] = function(check, ele) {
149483 return matches$1(check.target, ele) && ele.incomers().some(function(n) {
149484 return n.isNode() && matches$1(check.source, n);
149485 });
149486 };
149487 match[Type2.CHILD] = function(check, ele) {
149488 return matches$1(check.child, ele) && matches$1(check.parent, ele.parent());
149489 };
149490 match[Type2.PARENT] = function(check, ele) {
149491 return matches$1(check.parent, ele) && ele.children().some(function(c2) {
149492 return matches$1(check.child, c2);
149493 });
149494 };
149495 match[Type2.DESCENDANT] = function(check, ele) {
149496 return matches$1(check.descendant, ele) && ele.ancestors().some(function(a) {
149497 return matches$1(check.ancestor, a);
149498 });
149499 };
149500 match[Type2.ANCESTOR] = function(check, ele) {
149501 return matches$1(check.ancestor, ele) && ele.descendants().some(function(d) {
149502 return matches$1(check.descendant, d);
149503 });
149504 };
149505 match[Type2.COMPOUND_SPLIT] = function(check, ele) {
149506 return matches$1(check.subject, ele) && matches$1(check.left, ele) && matches$1(check.right, ele);
149507 };
149508 match[Type2.TRUE] = function() {
149509 return true;
149510 };
149511 match[Type2.COLLECTION] = function(check, ele) {
149512 var collection2 = check.value;
149513 return collection2.has(ele);
149514 };
149515 match[Type2.FILTER] = function(check, ele) {
149516 var filter3 = check.value;
149517 return filter3(ele);
149518 };
149519 var filter2 = function filter3(collection2) {
149520 var self2 = this;
149521 if (self2.length === 1 && self2[0].checks.length === 1 && self2[0].checks[0].type === Type2.ID) {
149522 return collection2.getElementById(self2[0].checks[0].value).collection();
149523 }
149524 var selectorFunction = function selectorFunction2(element3) {
149525 for (var j = 0; j < self2.length; j++) {
149526 var query = self2[j];
149527 if (matches$1(query, element3)) {
149528 return true;
149529 }
149530 }
149531 return false;
149532 };
149533 if (self2.text() == null) {
149534 selectorFunction = function selectorFunction2() {
149535 return true;
149536 };
149537 }
149538 return collection2.filter(selectorFunction);
149539 };
149540 var matches = function matches2(ele) {
149541 var self2 = this;
149542 for (var j = 0; j < self2.length; j++) {
149543 var query = self2[j];
149544 if (matches$1(query, ele)) {
149545 return true;
149546 }
149547 }
149548 return false;
149549 };
149550 var matching = {
149551 matches,
149552 filter: filter2
149553 };
149554 var Selector = function Selector2(selector2) {
149555 this.inputText = selector2;
149556 this.currentSubject = null;
149557 this.compoundCount = 0;
149558 this.edgeCount = 0;
149559 this.length = 0;
149560 if (selector2 == null || string2(selector2) && selector2.match(/^\s*$/))
149561 ;
149562 else if (elementOrCollection(selector2)) {
149563 this.addQuery({
149564 checks: [{
149565 type: Type2.COLLECTION,
149566 value: selector2.collection()
149567 }]
149568 });
149569 } else if (fn$6(selector2)) {
149570 this.addQuery({
149571 checks: [{
149572 type: Type2.FILTER,
149573 value: selector2
149574 }]
149575 });
149576 } else if (string2(selector2)) {
149577 if (!this.parse(selector2)) {
149578 this.invalid = true;
149579 }
149580 } else {
149581 error("A selector must be created from a string; found ");
149582 }
149583 };
149584 var selfn = Selector.prototype;
149585 [parse$12, matching].forEach(function(p2) {
149586 return extend2(selfn, p2);
149587 });
149588 selfn.text = function() {
149589 return this.inputText;
149590 };
149591 selfn.size = function() {
149592 return this.length;
149593 };
149594 selfn.eq = function(i3) {
149595 return this[i3];
149596 };
149597 selfn.sameText = function(otherSel) {
149598 return !this.invalid && !otherSel.invalid && this.text() === otherSel.text();
149599 };
149600 selfn.addQuery = function(q) {
149601 this[this.length++] = q;
149602 };
149603 selfn.selector = selfn.toString;
149604 var elesfn$g = {
149605 allAre: function allAre(selector2) {
149606 var selObj = new Selector(selector2);
149607 return this.every(function(ele) {
149608 return selObj.matches(ele);
149609 });
149610 },
149611 is: function is(selector2) {
149612 var selObj = new Selector(selector2);
149613 return this.some(function(ele) {
149614 return selObj.matches(ele);
149615 });
149616 },
149617 some: function some(fn2, thisArg) {
149618 for (var i3 = 0; i3 < this.length; i3++) {
149619 var ret = !thisArg ? fn2(this[i3], i3, this) : fn2.apply(thisArg, [this[i3], i3, this]);
149620 if (ret) {
149621 return true;
149622 }
149623 }
149624 return false;
149625 },
149626 every: function every(fn2, thisArg) {
149627 for (var i3 = 0; i3 < this.length; i3++) {
149628 var ret = !thisArg ? fn2(this[i3], i3, this) : fn2.apply(thisArg, [this[i3], i3, this]);
149629 if (!ret) {
149630 return false;
149631 }
149632 }
149633 return true;
149634 },
149635 same: function same(collection2) {
149636 if (this === collection2) {
149637 return true;
149638 }
149639 collection2 = this.cy().collection(collection2);
149640 var thisLength = this.length;
149641 var collectionLength = collection2.length;
149642 if (thisLength !== collectionLength) {
149643 return false;
149644 }
149645 if (thisLength === 1) {
149646 return this[0] === collection2[0];
149647 }
149648 return this.every(function(ele) {
149649 return collection2.hasElementWithId(ele.id());
149650 });
149651 },
149652 anySame: function anySame(collection2) {
149653 collection2 = this.cy().collection(collection2);
149654 return this.some(function(ele) {
149655 return collection2.hasElementWithId(ele.id());
149656 });
149657 },
149658 allAreNeighbors: function allAreNeighbors(collection2) {
149659 collection2 = this.cy().collection(collection2);
149660 var nhood = this.neighborhood();
149661 return collection2.every(function(ele) {
149662 return nhood.hasElementWithId(ele.id());
149663 });
149664 },
149665 contains: function contains(collection2) {
149666 collection2 = this.cy().collection(collection2);
149667 var self2 = this;
149668 return collection2.every(function(ele) {
149669 return self2.hasElementWithId(ele.id());
149670 });
149671 }
149672 };
149673 elesfn$g.allAreNeighbours = elesfn$g.allAreNeighbors;
149674 elesfn$g.has = elesfn$g.contains;
149675 elesfn$g.equal = elesfn$g.equals = elesfn$g.same;
149676 var cache = function cache2(fn2, name2) {
149677 return function traversalCache(arg1, arg2, arg3, arg4) {
149678 var selectorOrEles = arg1;
149679 var eles = this;
149680 var key;
149681 if (selectorOrEles == null) {
149682 key = "";
149683 } else if (elementOrCollection(selectorOrEles) && selectorOrEles.length === 1) {
149684 key = selectorOrEles.id();
149685 }
149686 if (eles.length === 1 && key) {
149687 var _p = eles[0]._private;
149688 var tch = _p.traversalCache = _p.traversalCache || {};
149689 var ch = tch[name2] = tch[name2] || [];
149690 var hash = hashString(key);
149691 var cacheHit = ch[hash];
149692 if (cacheHit) {
149693 return cacheHit;
149694 } else {
149695 return ch[hash] = fn2.call(eles, arg1, arg2, arg3, arg4);
149696 }
149697 } else {
149698 return fn2.call(eles, arg1, arg2, arg3, arg4);
149699 }
149700 };
149701 };
149702 var elesfn$f = {
149703 parent: function parent(selector2) {
149704 var parents2 = [];
149705 if (this.length === 1) {
149706 var parent2 = this[0]._private.parent;
149707 if (parent2) {
149708 return parent2;
149709 }
149710 }
149711 for (var i3 = 0; i3 < this.length; i3++) {
149712 var ele = this[i3];
149713 var _parent = ele._private.parent;
149714 if (_parent) {
149715 parents2.push(_parent);
149716 }
149717 }
149718 return this.spawn(parents2, true).filter(selector2);
149719 },
149720 parents: function parents2(selector2) {
149721 var parents3 = [];
149722 var eles = this.parent();
149723 while (eles.nonempty()) {
149724 for (var i3 = 0; i3 < eles.length; i3++) {
149725 var ele = eles[i3];
149726 parents3.push(ele);
149727 }
149728 eles = eles.parent();
149729 }
149730 return this.spawn(parents3, true).filter(selector2);
149731 },
149732 commonAncestors: function commonAncestors(selector2) {
149733 var ancestors;
149734 for (var i3 = 0; i3 < this.length; i3++) {
149735 var ele = this[i3];
149736 var parents2 = ele.parents();
149737 ancestors = ancestors || parents2;
149738 ancestors = ancestors.intersect(parents2);
149739 }
149740 return ancestors.filter(selector2);
149741 },
149742 orphans: function orphans(selector2) {
149743 return this.stdFilter(function(ele) {
149744 return ele.isOrphan();
149745 }).filter(selector2);
149746 },
149747 nonorphans: function nonorphans(selector2) {
149748 return this.stdFilter(function(ele) {
149749 return ele.isChild();
149750 }).filter(selector2);
149751 },
149752 children: cache(function(selector2) {
149753 var children2 = [];
149754 for (var i3 = 0; i3 < this.length; i3++) {
149755 var ele = this[i3];
149756 var eleChildren = ele._private.children;
149757 for (var j = 0; j < eleChildren.length; j++) {
149758 children2.push(eleChildren[j]);
149759 }
149760 }
149761 return this.spawn(children2, true).filter(selector2);
149762 }, "children"),
149763 siblings: function siblings(selector2) {
149764 return this.parent().children().not(this).filter(selector2);
149765 },
149766 isParent: function isParent() {
149767 var ele = this[0];
149768 if (ele) {
149769 return ele.isNode() && ele._private.children.length !== 0;
149770 }
149771 },
149772 isChildless: function isChildless() {
149773 var ele = this[0];
149774 if (ele) {
149775 return ele.isNode() && ele._private.children.length === 0;
149776 }
149777 },
149778 isChild: function isChild() {
149779 var ele = this[0];
149780 if (ele) {
149781 return ele.isNode() && ele._private.parent != null;
149782 }
149783 },
149784 isOrphan: function isOrphan() {
149785 var ele = this[0];
149786 if (ele) {
149787 return ele.isNode() && ele._private.parent == null;
149788 }
149789 },
149790 descendants: function descendants2(selector2) {
149791 var elements2 = [];
149792 function add(eles) {
149793 for (var i3 = 0; i3 < eles.length; i3++) {
149794 var ele = eles[i3];
149795 elements2.push(ele);
149796 if (ele.children().nonempty()) {
149797 add(ele.children());
149798 }
149799 }
149800 }
149801 add(this.children());
149802 return this.spawn(elements2, true).filter(selector2);
149803 }
149804 };
149805 function forEachCompound(eles, fn2, includeSelf, recursiveStep) {
149806 var q = [];
149807 var did = new Set$12();
149808 var cy = eles.cy();
149809 var hasCompounds = cy.hasCompoundNodes();
149810 for (var i3 = 0; i3 < eles.length; i3++) {
149811 var ele = eles[i3];
149812 if (includeSelf) {
149813 q.push(ele);
149814 } else if (hasCompounds) {
149815 recursiveStep(q, did, ele);
149816 }
149817 }
149818 while (q.length > 0) {
149819 var _ele = q.shift();
149820 fn2(_ele);
149821 did.add(_ele.id());
149822 if (hasCompounds) {
149823 recursiveStep(q, did, _ele);
149824 }
149825 }
149826 return eles;
149827 }
149828 function addChildren(q, did, ele) {
149829 if (ele.isParent()) {
149830 var children2 = ele._private.children;
149831 for (var i3 = 0; i3 < children2.length; i3++) {
149832 var child = children2[i3];
149833 if (!did.has(child.id())) {
149834 q.push(child);
149835 }
149836 }
149837 }
149838 }
149839 elesfn$f.forEachDown = function(fn2) {
149840 var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
149841 return forEachCompound(this, fn2, includeSelf, addChildren);
149842 };
149843 function addParent(q, did, ele) {
149844 if (ele.isChild()) {
149845 var parent = ele._private.parent;
149846 if (!did.has(parent.id())) {
149847 q.push(parent);
149848 }
149849 }
149850 }
149851 elesfn$f.forEachUp = function(fn2) {
149852 var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
149853 return forEachCompound(this, fn2, includeSelf, addParent);
149854 };
149855 function addParentAndChildren(q, did, ele) {
149856 addParent(q, did, ele);
149857 addChildren(q, did, ele);
149858 }
149859 elesfn$f.forEachUpAndDown = function(fn2) {
149860 var includeSelf = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
149861 return forEachCompound(this, fn2, includeSelf, addParentAndChildren);
149862 };
149863 elesfn$f.ancestors = elesfn$f.parents;
149864 var fn$5, elesfn$e;
149865 fn$5 = elesfn$e = {
149866 data: define3.data({
149867 field: "data",
149868 bindingEvent: "data",
149869 allowBinding: true,
149870 allowSetting: true,
149871 settingEvent: "data",
149872 settingTriggersEvent: true,
149873 triggerFnName: "trigger",
149874 allowGetting: true,
149875 immutableKeys: {
149876 "id": true,
149877 "source": true,
149878 "target": true,
149879 "parent": true
149880 },
149881 updateStyle: true
149882 }),
149883 removeData: define3.removeData({
149884 field: "data",
149885 event: "data",
149886 triggerFnName: "trigger",
149887 triggerEvent: true,
149888 immutableKeys: {
149889 "id": true,
149890 "source": true,
149891 "target": true,
149892 "parent": true
149893 },
149894 updateStyle: true
149895 }),
149896 scratch: define3.data({
149897 field: "scratch",
149898 bindingEvent: "scratch",
149899 allowBinding: true,
149900 allowSetting: true,
149901 settingEvent: "scratch",
149902 settingTriggersEvent: true,
149903 triggerFnName: "trigger",
149904 allowGetting: true,
149905 updateStyle: true
149906 }),
149907 removeScratch: define3.removeData({
149908 field: "scratch",
149909 event: "scratch",
149910 triggerFnName: "trigger",
149911 triggerEvent: true,
149912 updateStyle: true
149913 }),
149914 rscratch: define3.data({
149915 field: "rscratch",
149916 allowBinding: false,
149917 allowSetting: true,
149918 settingTriggersEvent: false,
149919 allowGetting: true
149920 }),
149921 removeRscratch: define3.removeData({
149922 field: "rscratch",
149923 triggerEvent: false
149924 }),
149925 id: function id2() {
149926 var ele = this[0];
149927 if (ele) {
149928 return ele._private.data.id;
149929 }
149930 }
149931 };
149932 fn$5.attr = fn$5.data;
149933 fn$5.removeAttr = fn$5.removeData;
149934 var data = elesfn$e;
149935 var elesfn$d = {};
149936 function defineDegreeFunction(callback) {
149937 return function(includeLoops) {
149938 var self2 = this;
149939 if (includeLoops === void 0) {
149940 includeLoops = true;
149941 }
149942 if (self2.length === 0) {
149943 return;
149944 }
149945 if (self2.isNode() && !self2.removed()) {
149946 var degree = 0;
149947 var node2 = self2[0];
149948 var connectedEdges = node2._private.edges;
149949 for (var i3 = 0; i3 < connectedEdges.length; i3++) {
149950 var edge = connectedEdges[i3];
149951 if (!includeLoops && edge.isLoop()) {
149952 continue;
149953 }
149954 degree += callback(node2, edge);
149955 }
149956 return degree;
149957 } else {
149958 return;
149959 }
149960 };
149961 }
149962 extend2(elesfn$d, {
149963 degree: defineDegreeFunction(function(node2, edge) {
149964 if (edge.source().same(edge.target())) {
149965 return 2;
149966 } else {
149967 return 1;
149968 }
149969 }),
149970 indegree: defineDegreeFunction(function(node2, edge) {
149971 if (edge.target().same(node2)) {
149972 return 1;
149973 } else {
149974 return 0;
149975 }
149976 }),
149977 outdegree: defineDegreeFunction(function(node2, edge) {
149978 if (edge.source().same(node2)) {
149979 return 1;
149980 } else {
149981 return 0;
149982 }
149983 })
149984 });
149985 function defineDegreeBoundsFunction(degreeFn, callback) {
149986 return function(includeLoops) {
149987 var ret;
149988 var nodes2 = this.nodes();
149989 for (var i3 = 0; i3 < nodes2.length; i3++) {
149990 var ele = nodes2[i3];
149991 var degree = ele[degreeFn](includeLoops);
149992 if (degree !== void 0 && (ret === void 0 || callback(degree, ret))) {
149993 ret = degree;
149994 }
149995 }
149996 return ret;
149997 };
149998 }
149999 extend2(elesfn$d, {
150000 minDegree: defineDegreeBoundsFunction("degree", function(degree, min3) {
150001 return degree < min3;
150002 }),
150003 maxDegree: defineDegreeBoundsFunction("degree", function(degree, max3) {
150004 return degree > max3;
150005 }),
150006 minIndegree: defineDegreeBoundsFunction("indegree", function(degree, min3) {
150007 return degree < min3;
150008 }),
150009 maxIndegree: defineDegreeBoundsFunction("indegree", function(degree, max3) {
150010 return degree > max3;
150011 }),
150012 minOutdegree: defineDegreeBoundsFunction("outdegree", function(degree, min3) {
150013 return degree < min3;
150014 }),
150015 maxOutdegree: defineDegreeBoundsFunction("outdegree", function(degree, max3) {
150016 return degree > max3;
150017 })
150018 });
150019 extend2(elesfn$d, {
150020 totalDegree: function totalDegree(includeLoops) {
150021 var total = 0;
150022 var nodes2 = this.nodes();
150023 for (var i3 = 0; i3 < nodes2.length; i3++) {
150024 total += nodes2[i3].degree(includeLoops);
150025 }
150026 return total;
150027 }
150028 });
150029 var fn$4, elesfn$c;
150030 var beforePositionSet = function beforePositionSet2(eles, newPos, silent) {
150031 for (var i3 = 0; i3 < eles.length; i3++) {
150032 var ele = eles[i3];
150033 if (!ele.locked()) {
150034 var oldPos = ele._private.position;
150035 var delta = {
150036 x: newPos.x != null ? newPos.x - oldPos.x : 0,
150037 y: newPos.y != null ? newPos.y - oldPos.y : 0
150038 };
150039 if (ele.isParent() && !(delta.x === 0 && delta.y === 0)) {
150040 ele.children().shift(delta, silent);
150041 }
150042 ele.dirtyBoundingBoxCache();
150043 }
150044 }
150045 };
150046 var positionDef = {
150047 field: "position",
150048 bindingEvent: "position",
150049 allowBinding: true,
150050 allowSetting: true,
150051 settingEvent: "position",
150052 settingTriggersEvent: true,
150053 triggerFnName: "emitAndNotify",
150054 allowGetting: true,
150055 validKeys: ["x", "y"],
150056 beforeGet: function beforeGet(ele) {
150057 ele.updateCompoundBounds();
150058 },
150059 beforeSet: function beforeSet(eles, newPos) {
150060 beforePositionSet(eles, newPos, false);
150061 },
150062 onSet: function onSet(eles) {
150063 eles.dirtyCompoundBoundsCache();
150064 },
150065 canSet: function canSet(ele) {
150066 return !ele.locked();
150067 }
150068 };
150069 fn$4 = elesfn$c = {
150070 position: define3.data(positionDef),
150071 // position but no notification to renderer
150072 silentPosition: define3.data(extend2({}, positionDef, {
150073 allowBinding: false,
150074 allowSetting: true,
150075 settingTriggersEvent: false,
150076 allowGetting: false,
150077 beforeSet: function beforeSet(eles, newPos) {
150078 beforePositionSet(eles, newPos, true);
150079 },
150080 onSet: function onSet(eles) {
150081 eles.dirtyCompoundBoundsCache();
150082 }
150083 })),
150084 positions: function positions(pos, silent) {
150085 if (plainObject(pos)) {
150086 if (silent) {
150087 this.silentPosition(pos);
150088 } else {
150089 this.position(pos);
150090 }
150091 } else if (fn$6(pos)) {
150092 var _fn = pos;
150093 var cy = this.cy();
150094 cy.startBatch();
150095 for (var i3 = 0; i3 < this.length; i3++) {
150096 var ele = this[i3];
150097 var _pos = void 0;
150098 if (_pos = _fn(ele, i3)) {
150099 if (silent) {
150100 ele.silentPosition(_pos);
150101 } else {
150102 ele.position(_pos);
150103 }
150104 }
150105 }
150106 cy.endBatch();
150107 }
150108 return this;
150109 },
150110 silentPositions: function silentPositions(pos) {
150111 return this.positions(pos, true);
150112 },
150113 shift: function shift(dim, val, silent) {
150114 var delta;
150115 if (plainObject(dim)) {
150116 delta = {
150117 x: number$12(dim.x) ? dim.x : 0,
150118 y: number$12(dim.y) ? dim.y : 0
150119 };
150120 silent = val;
150121 } else if (string2(dim) && number$12(val)) {
150122 delta = {
150123 x: 0,
150124 y: 0
150125 };
150126 delta[dim] = val;
150127 }
150128 if (delta != null) {
150129 var cy = this.cy();
150130 cy.startBatch();
150131 for (var i3 = 0; i3 < this.length; i3++) {
150132 var ele = this[i3];
150133 if (cy.hasCompoundNodes() && ele.isChild() && ele.ancestors().anySame(this)) {
150134 continue;
150135 }
150136 var pos = ele.position();
150137 var newPos = {
150138 x: pos.x + delta.x,
150139 y: pos.y + delta.y
150140 };
150141 if (silent) {
150142 ele.silentPosition(newPos);
150143 } else {
150144 ele.position(newPos);
150145 }
150146 }
150147 cy.endBatch();
150148 }
150149 return this;
150150 },
150151 silentShift: function silentShift(dim, val) {
150152 if (plainObject(dim)) {
150153 this.shift(dim, true);
150154 } else if (string2(dim) && number$12(val)) {
150155 this.shift(dim, val, true);
150156 }
150157 return this;
150158 },
150159 // get/set the rendered (i.e. on screen) positon of the element
150160 renderedPosition: function renderedPosition(dim, val) {
150161 var ele = this[0];
150162 var cy = this.cy();
150163 var zoom = cy.zoom();
150164 var pan = cy.pan();
150165 var rpos = plainObject(dim) ? dim : void 0;
150166 var setting = rpos !== void 0 || val !== void 0 && string2(dim);
150167 if (ele && ele.isNode()) {
150168 if (setting) {
150169 for (var i3 = 0; i3 < this.length; i3++) {
150170 var _ele = this[i3];
150171 if (val !== void 0) {
150172 _ele.position(dim, (val - pan[dim]) / zoom);
150173 } else if (rpos !== void 0) {
150174 _ele.position(renderedToModelPosition(rpos, zoom, pan));
150175 }
150176 }
150177 } else {
150178 var pos = ele.position();
150179 rpos = modelToRenderedPosition(pos, zoom, pan);
150180 if (dim === void 0) {
150181 return rpos;
150182 } else {
150183 return rpos[dim];
150184 }
150185 }
150186 } else if (!setting) {
150187 return void 0;
150188 }
150189 return this;
150190 },
150191 // get/set the position relative to the parent
150192 relativePosition: function relativePosition(dim, val) {
150193 var ele = this[0];
150194 var cy = this.cy();
150195 var ppos = plainObject(dim) ? dim : void 0;
150196 var setting = ppos !== void 0 || val !== void 0 && string2(dim);
150197 var hasCompoundNodes = cy.hasCompoundNodes();
150198 if (ele && ele.isNode()) {
150199 if (setting) {
150200 for (var i3 = 0; i3 < this.length; i3++) {
150201 var _ele2 = this[i3];
150202 var parent = hasCompoundNodes ? _ele2.parent() : null;
150203 var hasParent = parent && parent.length > 0;
150204 var relativeToParent = hasParent;
150205 if (hasParent) {
150206 parent = parent[0];
150207 }
150208 var origin = relativeToParent ? parent.position() : {
150209 x: 0,
150210 y: 0
150211 };
150212 if (val !== void 0) {
150213 _ele2.position(dim, val + origin[dim]);
150214 } else if (ppos !== void 0) {
150215 _ele2.position({
150216 x: ppos.x + origin.x,
150217 y: ppos.y + origin.y
150218 });
150219 }
150220 }
150221 } else {
150222 var pos = ele.position();
150223 var _parent = hasCompoundNodes ? ele.parent() : null;
150224 var _hasParent = _parent && _parent.length > 0;
150225 var _relativeToParent = _hasParent;
150226 if (_hasParent) {
150227 _parent = _parent[0];
150228 }
150229 var _origin = _relativeToParent ? _parent.position() : {
150230 x: 0,
150231 y: 0
150232 };
150233 ppos = {
150234 x: pos.x - _origin.x,
150235 y: pos.y - _origin.y
150236 };
150237 if (dim === void 0) {
150238 return ppos;
150239 } else {
150240 return ppos[dim];
150241 }
150242 }
150243 } else if (!setting) {
150244 return void 0;
150245 }
150246 return this;
150247 }
150248 };
150249 fn$4.modelPosition = fn$4.point = fn$4.position;
150250 fn$4.modelPositions = fn$4.points = fn$4.positions;
150251 fn$4.renderedPoint = fn$4.renderedPosition;
150252 fn$4.relativePoint = fn$4.relativePosition;
150253 var position2 = elesfn$c;
150254 var fn$3, elesfn$b;
150255 fn$3 = elesfn$b = {};
150256 elesfn$b.renderedBoundingBox = function(options2) {
150257 var bb = this.boundingBox(options2);
150258 var cy = this.cy();
150259 var zoom = cy.zoom();
150260 var pan = cy.pan();
150261 var x1 = bb.x1 * zoom + pan.x;
150262 var x2 = bb.x2 * zoom + pan.x;
150263 var y1 = bb.y1 * zoom + pan.y;
150264 var y2 = bb.y2 * zoom + pan.y;
150265 return {
150266 x1,
150267 x2,
150268 y1,
150269 y2,
150270 w: x2 - x1,
150271 h: y2 - y1
150272 };
150273 };
150274 elesfn$b.dirtyCompoundBoundsCache = function() {
150275 var silent = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
150276 var cy = this.cy();
150277 if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {
150278 return this;
150279 }
150280 this.forEachUp(function(ele) {
150281 if (ele.isParent()) {
150282 var _p = ele._private;
150283 _p.compoundBoundsClean = false;
150284 _p.bbCache = null;
150285 if (!silent) {
150286 ele.emitAndNotify("bounds");
150287 }
150288 }
150289 });
150290 return this;
150291 };
150292 elesfn$b.updateCompoundBounds = function() {
150293 var force = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
150294 var cy = this.cy();
150295 if (!cy.styleEnabled() || !cy.hasCompoundNodes()) {
150296 return this;
150297 }
150298 if (!force && cy.batching()) {
150299 return this;
150300 }
150301 function update2(parent) {
150302 if (!parent.isParent()) {
150303 return;
150304 }
150305 var _p2 = parent._private;
150306 var children2 = parent.children();
150307 var includeLabels = parent.pstyle("compound-sizing-wrt-labels").value === "include";
150308 var min3 = {
150309 width: {
150310 val: parent.pstyle("min-width").pfValue,
150311 left: parent.pstyle("min-width-bias-left"),
150312 right: parent.pstyle("min-width-bias-right")
150313 },
150314 height: {
150315 val: parent.pstyle("min-height").pfValue,
150316 top: parent.pstyle("min-height-bias-top"),
150317 bottom: parent.pstyle("min-height-bias-bottom")
150318 }
150319 };
150320 var bb = children2.boundingBox({
150321 includeLabels,
150322 includeOverlays: false,
150323 // updating the compound bounds happens outside of the regular
150324 // cache cycle (i.e. before fired events)
150325 useCache: false
150326 });
150327 var pos = _p2.position;
150328 if (bb.w === 0 || bb.h === 0) {
150329 bb = {
150330 w: parent.pstyle("width").pfValue,
150331 h: parent.pstyle("height").pfValue
150332 };
150333 bb.x1 = pos.x - bb.w / 2;
150334 bb.x2 = pos.x + bb.w / 2;
150335 bb.y1 = pos.y - bb.h / 2;
150336 bb.y2 = pos.y + bb.h / 2;
150337 }
150338 function computeBiasValues(propDiff, propBias, propBiasComplement) {
150339 var biasDiff = 0;
150340 var biasComplementDiff = 0;
150341 var biasTotal = propBias + propBiasComplement;
150342 if (propDiff > 0 && biasTotal > 0) {
150343 biasDiff = propBias / biasTotal * propDiff;
150344 biasComplementDiff = propBiasComplement / biasTotal * propDiff;
150345 }
150346 return {
150347 biasDiff,
150348 biasComplementDiff
150349 };
150350 }
150351 function computePaddingValues(width2, height2, paddingObject, relativeTo) {
150352 if (paddingObject.units === "%") {
150353 switch (relativeTo) {
150354 case "width":
150355 return width2 > 0 ? paddingObject.pfValue * width2 : 0;
150356 case "height":
150357 return height2 > 0 ? paddingObject.pfValue * height2 : 0;
150358 case "average":
150359 return width2 > 0 && height2 > 0 ? paddingObject.pfValue * (width2 + height2) / 2 : 0;
150360 case "min":
150361 return width2 > 0 && height2 > 0 ? width2 > height2 ? paddingObject.pfValue * height2 : paddingObject.pfValue * width2 : 0;
150362 case "max":
150363 return width2 > 0 && height2 > 0 ? width2 > height2 ? paddingObject.pfValue * width2 : paddingObject.pfValue * height2 : 0;
150364 default:
150365 return 0;
150366 }
150367 } else if (paddingObject.units === "px") {
150368 return paddingObject.pfValue;
150369 } else {
150370 return 0;
150371 }
150372 }
150373 var leftVal = min3.width.left.value;
150374 if (min3.width.left.units === "px" && min3.width.val > 0) {
150375 leftVal = leftVal * 100 / min3.width.val;
150376 }
150377 var rightVal = min3.width.right.value;
150378 if (min3.width.right.units === "px" && min3.width.val > 0) {
150379 rightVal = rightVal * 100 / min3.width.val;
150380 }
150381 var topVal = min3.height.top.value;
150382 if (min3.height.top.units === "px" && min3.height.val > 0) {
150383 topVal = topVal * 100 / min3.height.val;
150384 }
150385 var bottomVal = min3.height.bottom.value;
150386 if (min3.height.bottom.units === "px" && min3.height.val > 0) {
150387 bottomVal = bottomVal * 100 / min3.height.val;
150388 }
150389 var widthBiasDiffs = computeBiasValues(min3.width.val - bb.w, leftVal, rightVal);
150390 var diffLeft = widthBiasDiffs.biasDiff;
150391 var diffRight = widthBiasDiffs.biasComplementDiff;
150392 var heightBiasDiffs = computeBiasValues(min3.height.val - bb.h, topVal, bottomVal);
150393 var diffTop = heightBiasDiffs.biasDiff;
150394 var diffBottom = heightBiasDiffs.biasComplementDiff;
150395 _p2.autoPadding = computePaddingValues(bb.w, bb.h, parent.pstyle("padding"), parent.pstyle("padding-relative-to").value);
150396 _p2.autoWidth = Math.max(bb.w, min3.width.val);
150397 pos.x = (-diffLeft + bb.x1 + bb.x2 + diffRight) / 2;
150398 _p2.autoHeight = Math.max(bb.h, min3.height.val);
150399 pos.y = (-diffTop + bb.y1 + bb.y2 + diffBottom) / 2;
150400 }
150401 for (var i3 = 0; i3 < this.length; i3++) {
150402 var ele = this[i3];
150403 var _p = ele._private;
150404 if (!_p.compoundBoundsClean || force) {
150405 update2(ele);
150406 if (!cy.batching()) {
150407 _p.compoundBoundsClean = true;
150408 }
150409 }
150410 }
150411 return this;
150412 };
150413 var noninf = function noninf2(x2) {
150414 if (x2 === Infinity || x2 === -Infinity) {
150415 return 0;
150416 }
150417 return x2;
150418 };
150419 var updateBounds = function updateBounds2(b, x1, y1, x2, y2) {
150420 if (x2 - x1 === 0 || y2 - y1 === 0) {
150421 return;
150422 }
150423 if (x1 == null || y1 == null || x2 == null || y2 == null) {
150424 return;
150425 }
150426 b.x1 = x1 < b.x1 ? x1 : b.x1;
150427 b.x2 = x2 > b.x2 ? x2 : b.x2;
150428 b.y1 = y1 < b.y1 ? y1 : b.y1;
150429 b.y2 = y2 > b.y2 ? y2 : b.y2;
150430 b.w = b.x2 - b.x1;
150431 b.h = b.y2 - b.y1;
150432 };
150433 var updateBoundsFromBox = function updateBoundsFromBox2(b, b2) {
150434 if (b2 == null) {
150435 return b;
150436 }
150437 return updateBounds(b, b2.x1, b2.y1, b2.x2, b2.y2);
150438 };
150439 var prefixedProperty = function prefixedProperty2(obj, field, prefix) {
150440 return getPrefixedProperty(obj, field, prefix);
150441 };
150442 var updateBoundsFromArrow = function updateBoundsFromArrow2(bounds3, ele, prefix) {
150443 if (ele.cy().headless()) {
150444 return;
150445 }
150446 var _p = ele._private;
150447 var rstyle = _p.rstyle;
150448 var halfArW = rstyle.arrowWidth / 2;
150449 var arrowType = ele.pstyle(prefix + "-arrow-shape").value;
150450 var x2;
150451 var y2;
150452 if (arrowType !== "none") {
150453 if (prefix === "source") {
150454 x2 = rstyle.srcX;
150455 y2 = rstyle.srcY;
150456 } else if (prefix === "target") {
150457 x2 = rstyle.tgtX;
150458 y2 = rstyle.tgtY;
150459 } else {
150460 x2 = rstyle.midX;
150461 y2 = rstyle.midY;
150462 }
150463 var bbs = _p.arrowBounds = _p.arrowBounds || {};
150464 var bb = bbs[prefix] = bbs[prefix] || {};
150465 bb.x1 = x2 - halfArW;
150466 bb.y1 = y2 - halfArW;
150467 bb.x2 = x2 + halfArW;
150468 bb.y2 = y2 + halfArW;
150469 bb.w = bb.x2 - bb.x1;
150470 bb.h = bb.y2 - bb.y1;
150471 expandBoundingBox(bb, 1);
150472 updateBounds(bounds3, bb.x1, bb.y1, bb.x2, bb.y2);
150473 }
150474 };
150475 var updateBoundsFromLabel = function updateBoundsFromLabel2(bounds3, ele, prefix) {
150476 if (ele.cy().headless()) {
150477 return;
150478 }
150479 var prefixDash;
150480 if (prefix) {
150481 prefixDash = prefix + "-";
150482 } else {
150483 prefixDash = "";
150484 }
150485 var _p = ele._private;
150486 var rstyle = _p.rstyle;
150487 var label = ele.pstyle(prefixDash + "label").strValue;
150488 if (label) {
150489 var halign = ele.pstyle("text-halign");
150490 var valign = ele.pstyle("text-valign");
150491 var labelWidth = prefixedProperty(rstyle, "labelWidth", prefix);
150492 var labelHeight = prefixedProperty(rstyle, "labelHeight", prefix);
150493 var labelX = prefixedProperty(rstyle, "labelX", prefix);
150494 var labelY = prefixedProperty(rstyle, "labelY", prefix);
150495 var marginX = ele.pstyle(prefixDash + "text-margin-x").pfValue;
150496 var marginY = ele.pstyle(prefixDash + "text-margin-y").pfValue;
150497 var isEdge = ele.isEdge();
150498 var rotation = ele.pstyle(prefixDash + "text-rotation");
150499 var outlineWidth = ele.pstyle("text-outline-width").pfValue;
150500 var borderWidth = ele.pstyle("text-border-width").pfValue;
150501 var halfBorderWidth = borderWidth / 2;
150502 var padding2 = ele.pstyle("text-background-padding").pfValue;
150503 var marginOfError = 2;
150504 var lh = labelHeight;
150505 var lw = labelWidth;
150506 var lw_2 = lw / 2;
150507 var lh_2 = lh / 2;
150508 var lx1, lx2, ly1, ly2;
150509 if (isEdge) {
150510 lx1 = labelX - lw_2;
150511 lx2 = labelX + lw_2;
150512 ly1 = labelY - lh_2;
150513 ly2 = labelY + lh_2;
150514 } else {
150515 switch (halign.value) {
150516 case "left":
150517 lx1 = labelX - lw;
150518 lx2 = labelX;
150519 break;
150520 case "center":
150521 lx1 = labelX - lw_2;
150522 lx2 = labelX + lw_2;
150523 break;
150524 case "right":
150525 lx1 = labelX;
150526 lx2 = labelX + lw;
150527 break;
150528 }
150529 switch (valign.value) {
150530 case "top":
150531 ly1 = labelY - lh;
150532 ly2 = labelY;
150533 break;
150534 case "center":
150535 ly1 = labelY - lh_2;
150536 ly2 = labelY + lh_2;
150537 break;
150538 case "bottom":
150539 ly1 = labelY;
150540 ly2 = labelY + lh;
150541 break;
150542 }
150543 }
150544 lx1 += marginX - Math.max(outlineWidth, halfBorderWidth) - padding2 - marginOfError;
150545 lx2 += marginX + Math.max(outlineWidth, halfBorderWidth) + padding2 + marginOfError;
150546 ly1 += marginY - Math.max(outlineWidth, halfBorderWidth) - padding2 - marginOfError;
150547 ly2 += marginY + Math.max(outlineWidth, halfBorderWidth) + padding2 + marginOfError;
150548 var bbPrefix = prefix || "main";
150549 var bbs = _p.labelBounds;
150550 var bb = bbs[bbPrefix] = bbs[bbPrefix] || {};
150551 bb.x1 = lx1;
150552 bb.y1 = ly1;
150553 bb.x2 = lx2;
150554 bb.y2 = ly2;
150555 bb.w = lx2 - lx1;
150556 bb.h = ly2 - ly1;
150557 var isAutorotate = isEdge && rotation.strValue === "autorotate";
150558 var isPfValue = rotation.pfValue != null && rotation.pfValue !== 0;
150559 if (isAutorotate || isPfValue) {
150560 var theta = isAutorotate ? prefixedProperty(_p.rstyle, "labelAngle", prefix) : rotation.pfValue;
150561 var cos3 = Math.cos(theta);
150562 var sin3 = Math.sin(theta);
150563 var xo = (lx1 + lx2) / 2;
150564 var yo = (ly1 + ly2) / 2;
150565 if (!isEdge) {
150566 switch (halign.value) {
150567 case "left":
150568 xo = lx2;
150569 break;
150570 case "right":
150571 xo = lx1;
150572 break;
150573 }
150574 switch (valign.value) {
150575 case "top":
150576 yo = ly2;
150577 break;
150578 case "bottom":
150579 yo = ly1;
150580 break;
150581 }
150582 }
150583 var rotate = function rotate2(x2, y2) {
150584 x2 = x2 - xo;
150585 y2 = y2 - yo;
150586 return {
150587 x: x2 * cos3 - y2 * sin3 + xo,
150588 y: x2 * sin3 + y2 * cos3 + yo
150589 };
150590 };
150591 var px1y1 = rotate(lx1, ly1);
150592 var px1y2 = rotate(lx1, ly2);
150593 var px2y1 = rotate(lx2, ly1);
150594 var px2y2 = rotate(lx2, ly2);
150595 lx1 = Math.min(px1y1.x, px1y2.x, px2y1.x, px2y2.x);
150596 lx2 = Math.max(px1y1.x, px1y2.x, px2y1.x, px2y2.x);
150597 ly1 = Math.min(px1y1.y, px1y2.y, px2y1.y, px2y2.y);
150598 ly2 = Math.max(px1y1.y, px1y2.y, px2y1.y, px2y2.y);
150599 }
150600 var bbPrefixRot = bbPrefix + "Rot";
150601 var bbRot = bbs[bbPrefixRot] = bbs[bbPrefixRot] || {};
150602 bbRot.x1 = lx1;
150603 bbRot.y1 = ly1;
150604 bbRot.x2 = lx2;
150605 bbRot.y2 = ly2;
150606 bbRot.w = lx2 - lx1;
150607 bbRot.h = ly2 - ly1;
150608 updateBounds(bounds3, lx1, ly1, lx2, ly2);
150609 updateBounds(_p.labelBounds.all, lx1, ly1, lx2, ly2);
150610 }
150611 return bounds3;
150612 };
150613 var boundingBoxImpl = function boundingBoxImpl2(ele, options2) {
150614 var cy = ele._private.cy;
150615 var styleEnabled = cy.styleEnabled();
150616 var headless = cy.headless();
150617 var bounds3 = makeBoundingBox();
150618 var _p = ele._private;
150619 var isNode = ele.isNode();
150620 var isEdge = ele.isEdge();
150621 var ex1, ex2, ey1, ey2;
150622 var x2, y2;
150623 var rstyle = _p.rstyle;
150624 var manualExpansion = isNode && styleEnabled ? ele.pstyle("bounds-expansion").pfValue : [0];
150625 var isDisplayed = function isDisplayed2(ele2) {
150626 return ele2.pstyle("display").value !== "none";
150627 };
150628 var displayed = !styleEnabled || isDisplayed(ele) && (!isEdge || isDisplayed(ele.source()) && isDisplayed(ele.target()));
150629 if (displayed) {
150630 var overlayOpacity = 0;
150631 var overlayPadding = 0;
150632 if (styleEnabled && options2.includeOverlays) {
150633 overlayOpacity = ele.pstyle("overlay-opacity").value;
150634 if (overlayOpacity !== 0) {
150635 overlayPadding = ele.pstyle("overlay-padding").value;
150636 }
150637 }
150638 var underlayOpacity = 0;
150639 var underlayPadding = 0;
150640 if (styleEnabled && options2.includeUnderlays) {
150641 underlayOpacity = ele.pstyle("underlay-opacity").value;
150642 if (underlayOpacity !== 0) {
150643 underlayPadding = ele.pstyle("underlay-padding").value;
150644 }
150645 }
150646 var padding2 = Math.max(overlayPadding, underlayPadding);
150647 var w2 = 0;
150648 var wHalf = 0;
150649 if (styleEnabled) {
150650 w2 = ele.pstyle("width").pfValue;
150651 wHalf = w2 / 2;
150652 }
150653 if (isNode && options2.includeNodes) {
150654 var pos = ele.position();
150655 x2 = pos.x;
150656 y2 = pos.y;
150657 var _w = ele.outerWidth();
150658 var halfW = _w / 2;
150659 var h = ele.outerHeight();
150660 var halfH = h / 2;
150661 ex1 = x2 - halfW;
150662 ex2 = x2 + halfW;
150663 ey1 = y2 - halfH;
150664 ey2 = y2 + halfH;
150665 updateBounds(bounds3, ex1, ey1, ex2, ey2);
150666 } else if (isEdge && options2.includeEdges) {
150667 if (styleEnabled && !headless) {
150668 var curveStyle = ele.pstyle("curve-style").strValue;
150669 ex1 = Math.min(rstyle.srcX, rstyle.midX, rstyle.tgtX);
150670 ex2 = Math.max(rstyle.srcX, rstyle.midX, rstyle.tgtX);
150671 ey1 = Math.min(rstyle.srcY, rstyle.midY, rstyle.tgtY);
150672 ey2 = Math.max(rstyle.srcY, rstyle.midY, rstyle.tgtY);
150673 ex1 -= wHalf;
150674 ex2 += wHalf;
150675 ey1 -= wHalf;
150676 ey2 += wHalf;
150677 updateBounds(bounds3, ex1, ey1, ex2, ey2);
150678 if (curveStyle === "haystack") {
150679 var hpts = rstyle.haystackPts;
150680 if (hpts && hpts.length === 2) {
150681 ex1 = hpts[0].x;
150682 ey1 = hpts[0].y;
150683 ex2 = hpts[1].x;
150684 ey2 = hpts[1].y;
150685 if (ex1 > ex2) {
150686 var temp = ex1;
150687 ex1 = ex2;
150688 ex2 = temp;
150689 }
150690 if (ey1 > ey2) {
150691 var _temp = ey1;
150692 ey1 = ey2;
150693 ey2 = _temp;
150694 }
150695 updateBounds(bounds3, ex1 - wHalf, ey1 - wHalf, ex2 + wHalf, ey2 + wHalf);
150696 }
150697 } else if (curveStyle === "bezier" || curveStyle === "unbundled-bezier" || curveStyle === "segments" || curveStyle === "taxi") {
150698 var pts2;
150699 switch (curveStyle) {
150700 case "bezier":
150701 case "unbundled-bezier":
150702 pts2 = rstyle.bezierPts;
150703 break;
150704 case "segments":
150705 case "taxi":
150706 pts2 = rstyle.linePts;
150707 break;
150708 }
150709 if (pts2 != null) {
150710 for (var j = 0; j < pts2.length; j++) {
150711 var pt = pts2[j];
150712 ex1 = pt.x - wHalf;
150713 ex2 = pt.x + wHalf;
150714 ey1 = pt.y - wHalf;
150715 ey2 = pt.y + wHalf;
150716 updateBounds(bounds3, ex1, ey1, ex2, ey2);
150717 }
150718 }
150719 }
150720 } else {
150721 var n1 = ele.source();
150722 var n1pos = n1.position();
150723 var n2 = ele.target();
150724 var n2pos = n2.position();
150725 ex1 = n1pos.x;
150726 ex2 = n2pos.x;
150727 ey1 = n1pos.y;
150728 ey2 = n2pos.y;
150729 if (ex1 > ex2) {
150730 var _temp2 = ex1;
150731 ex1 = ex2;
150732 ex2 = _temp2;
150733 }
150734 if (ey1 > ey2) {
150735 var _temp3 = ey1;
150736 ey1 = ey2;
150737 ey2 = _temp3;
150738 }
150739 ex1 -= wHalf;
150740 ex2 += wHalf;
150741 ey1 -= wHalf;
150742 ey2 += wHalf;
150743 updateBounds(bounds3, ex1, ey1, ex2, ey2);
150744 }
150745 }
150746 if (styleEnabled && options2.includeEdges && isEdge) {
150747 updateBoundsFromArrow(bounds3, ele, "mid-source");
150748 updateBoundsFromArrow(bounds3, ele, "mid-target");
150749 updateBoundsFromArrow(bounds3, ele, "source");
150750 updateBoundsFromArrow(bounds3, ele, "target");
150751 }
150752 if (styleEnabled) {
150753 var ghost = ele.pstyle("ghost").value === "yes";
150754 if (ghost) {
150755 var gx = ele.pstyle("ghost-offset-x").pfValue;
150756 var gy = ele.pstyle("ghost-offset-y").pfValue;
150757 updateBounds(bounds3, bounds3.x1 + gx, bounds3.y1 + gy, bounds3.x2 + gx, bounds3.y2 + gy);
150758 }
150759 }
150760 var bbBody = _p.bodyBounds = _p.bodyBounds || {};
150761 assignBoundingBox(bbBody, bounds3);
150762 expandBoundingBoxSides(bbBody, manualExpansion);
150763 expandBoundingBox(bbBody, 1);
150764 if (styleEnabled) {
150765 ex1 = bounds3.x1;
150766 ex2 = bounds3.x2;
150767 ey1 = bounds3.y1;
150768 ey2 = bounds3.y2;
150769 updateBounds(bounds3, ex1 - padding2, ey1 - padding2, ex2 + padding2, ey2 + padding2);
150770 }
150771 var bbOverlay = _p.overlayBounds = _p.overlayBounds || {};
150772 assignBoundingBox(bbOverlay, bounds3);
150773 expandBoundingBoxSides(bbOverlay, manualExpansion);
150774 expandBoundingBox(bbOverlay, 1);
150775 var bbLabels = _p.labelBounds = _p.labelBounds || {};
150776 if (bbLabels.all != null) {
150777 clearBoundingBox(bbLabels.all);
150778 } else {
150779 bbLabels.all = makeBoundingBox();
150780 }
150781 if (styleEnabled && options2.includeLabels) {
150782 if (options2.includeMainLabels) {
150783 updateBoundsFromLabel(bounds3, ele, null);
150784 }
150785 if (isEdge) {
150786 if (options2.includeSourceLabels) {
150787 updateBoundsFromLabel(bounds3, ele, "source");
150788 }
150789 if (options2.includeTargetLabels) {
150790 updateBoundsFromLabel(bounds3, ele, "target");
150791 }
150792 }
150793 }
150794 }
150795 bounds3.x1 = noninf(bounds3.x1);
150796 bounds3.y1 = noninf(bounds3.y1);
150797 bounds3.x2 = noninf(bounds3.x2);
150798 bounds3.y2 = noninf(bounds3.y2);
150799 bounds3.w = noninf(bounds3.x2 - bounds3.x1);
150800 bounds3.h = noninf(bounds3.y2 - bounds3.y1);
150801 if (bounds3.w > 0 && bounds3.h > 0 && displayed) {
150802 expandBoundingBoxSides(bounds3, manualExpansion);
150803 expandBoundingBox(bounds3, 1);
150804 }
150805 return bounds3;
150806 };
150807 var getKey = function getKey2(opts) {
150808 var i3 = 0;
150809 var tf = function tf2(val) {
150810 return (val ? 1 : 0) << i3++;
150811 };
150812 var key = 0;
150813 key += tf(opts.incudeNodes);
150814 key += tf(opts.includeEdges);
150815 key += tf(opts.includeLabels);
150816 key += tf(opts.includeMainLabels);
150817 key += tf(opts.includeSourceLabels);
150818 key += tf(opts.includeTargetLabels);
150819 key += tf(opts.includeOverlays);
150820 return key;
150821 };
150822 var getBoundingBoxPosKey = function getBoundingBoxPosKey2(ele) {
150823 if (ele.isEdge()) {
150824 var p1 = ele.source().position();
150825 var p2 = ele.target().position();
150826 var r = function r2(x2) {
150827 return Math.round(x2);
150828 };
150829 return hashIntsArray([r(p1.x), r(p1.y), r(p2.x), r(p2.y)]);
150830 } else {
150831 return 0;
150832 }
150833 };
150834 var cachedBoundingBoxImpl = function cachedBoundingBoxImpl2(ele, opts) {
150835 var _p = ele._private;
150836 var bb;
150837 var isEdge = ele.isEdge();
150838 var key = opts == null ? defBbOptsKey : getKey(opts);
150839 var usingDefOpts = key === defBbOptsKey;
150840 var currPosKey = getBoundingBoxPosKey(ele);
150841 var isPosKeySame = _p.bbCachePosKey === currPosKey;
150842 var useCache = opts.useCache && isPosKeySame;
150843 var isDirty = function isDirty2(ele2) {
150844 return ele2._private.bbCache == null || ele2._private.styleDirty;
150845 };
150846 var needRecalc = !useCache || isDirty(ele) || isEdge && isDirty(ele.source()) || isDirty(ele.target());
150847 if (needRecalc) {
150848 if (!isPosKeySame) {
150849 ele.recalculateRenderedStyle(useCache);
150850 }
150851 bb = boundingBoxImpl(ele, defBbOpts);
150852 _p.bbCache = bb;
150853 _p.bbCachePosKey = currPosKey;
150854 } else {
150855 bb = _p.bbCache;
150856 }
150857 if (!usingDefOpts) {
150858 var isNode = ele.isNode();
150859 bb = makeBoundingBox();
150860 if (opts.includeNodes && isNode || opts.includeEdges && !isNode) {
150861 if (opts.includeOverlays) {
150862 updateBoundsFromBox(bb, _p.overlayBounds);
150863 } else {
150864 updateBoundsFromBox(bb, _p.bodyBounds);
150865 }
150866 }
150867 if (opts.includeLabels) {
150868 if (opts.includeMainLabels && (!isEdge || opts.includeSourceLabels && opts.includeTargetLabels)) {
150869 updateBoundsFromBox(bb, _p.labelBounds.all);
150870 } else {
150871 if (opts.includeMainLabels) {
150872 updateBoundsFromBox(bb, _p.labelBounds.mainRot);
150873 }
150874 if (opts.includeSourceLabels) {
150875 updateBoundsFromBox(bb, _p.labelBounds.sourceRot);
150876 }
150877 if (opts.includeTargetLabels) {
150878 updateBoundsFromBox(bb, _p.labelBounds.targetRot);
150879 }
150880 }
150881 }
150882 bb.w = bb.x2 - bb.x1;
150883 bb.h = bb.y2 - bb.y1;
150884 }
150885 return bb;
150886 };
150887 var defBbOpts = {
150888 includeNodes: true,
150889 includeEdges: true,
150890 includeLabels: true,
150891 includeMainLabels: true,
150892 includeSourceLabels: true,
150893 includeTargetLabels: true,
150894 includeOverlays: true,
150895 includeUnderlays: true,
150896 useCache: true
150897 };
150898 var defBbOptsKey = getKey(defBbOpts);
150899 var filledBbOpts = defaults$g(defBbOpts);
150900 elesfn$b.boundingBox = function(options2) {
150901 var bounds3;
150902 if (this.length === 1 && this[0]._private.bbCache != null && !this[0]._private.styleDirty && (options2 === void 0 || options2.useCache === void 0 || options2.useCache === true)) {
150903 if (options2 === void 0) {
150904 options2 = defBbOpts;
150905 } else {
150906 options2 = filledBbOpts(options2);
150907 }
150908 bounds3 = cachedBoundingBoxImpl(this[0], options2);
150909 } else {
150910 bounds3 = makeBoundingBox();
150911 options2 = options2 || defBbOpts;
150912 var opts = filledBbOpts(options2);
150913 var eles = this;
150914 var cy = eles.cy();
150915 var styleEnabled = cy.styleEnabled();
150916 if (styleEnabled) {
150917 for (var i3 = 0; i3 < eles.length; i3++) {
150918 var ele = eles[i3];
150919 var _p = ele._private;
150920 var currPosKey = getBoundingBoxPosKey(ele);
150921 var isPosKeySame = _p.bbCachePosKey === currPosKey;
150922 var useCache = opts.useCache && isPosKeySame && !_p.styleDirty;
150923 ele.recalculateRenderedStyle(useCache);
150924 }
150925 }
150926 this.updateCompoundBounds(!options2.useCache);
150927 for (var _i = 0; _i < eles.length; _i++) {
150928 var _ele = eles[_i];
150929 updateBoundsFromBox(bounds3, cachedBoundingBoxImpl(_ele, opts));
150930 }
150931 }
150932 bounds3.x1 = noninf(bounds3.x1);
150933 bounds3.y1 = noninf(bounds3.y1);
150934 bounds3.x2 = noninf(bounds3.x2);
150935 bounds3.y2 = noninf(bounds3.y2);
150936 bounds3.w = noninf(bounds3.x2 - bounds3.x1);
150937 bounds3.h = noninf(bounds3.y2 - bounds3.y1);
150938 return bounds3;
150939 };
150940 elesfn$b.dirtyBoundingBoxCache = function() {
150941 for (var i3 = 0; i3 < this.length; i3++) {
150942 var _p = this[i3]._private;
150943 _p.bbCache = null;
150944 _p.bbCachePosKey = null;
150945 _p.bodyBounds = null;
150946 _p.overlayBounds = null;
150947 _p.labelBounds.all = null;
150948 _p.labelBounds.source = null;
150949 _p.labelBounds.target = null;
150950 _p.labelBounds.main = null;
150951 _p.labelBounds.sourceRot = null;
150952 _p.labelBounds.targetRot = null;
150953 _p.labelBounds.mainRot = null;
150954 _p.arrowBounds.source = null;
150955 _p.arrowBounds.target = null;
150956 _p.arrowBounds["mid-source"] = null;
150957 _p.arrowBounds["mid-target"] = null;
150958 }
150959 this.emitAndNotify("bounds");
150960 return this;
150961 };
150962 elesfn$b.boundingBoxAt = function(fn2) {
150963 var nodes2 = this.nodes();
150964 var cy = this.cy();
150965 var hasCompoundNodes = cy.hasCompoundNodes();
150966 var parents2 = cy.collection();
150967 if (hasCompoundNodes) {
150968 parents2 = nodes2.filter(function(node2) {
150969 return node2.isParent();
150970 });
150971 nodes2 = nodes2.not(parents2);
150972 }
150973 if (plainObject(fn2)) {
150974 var obj = fn2;
150975 fn2 = function fn3() {
150976 return obj;
150977 };
150978 }
150979 var storeOldPos = function storeOldPos2(node2, i3) {
150980 return node2._private.bbAtOldPos = fn2(node2, i3);
150981 };
150982 var getOldPos = function getOldPos2(node2) {
150983 return node2._private.bbAtOldPos;
150984 };
150985 cy.startBatch();
150986 nodes2.forEach(storeOldPos).silentPositions(fn2);
150987 if (hasCompoundNodes) {
150988 parents2.dirtyCompoundBoundsCache();
150989 parents2.dirtyBoundingBoxCache();
150990 parents2.updateCompoundBounds(true);
150991 }
150992 var bb = copyBoundingBox(this.boundingBox({
150993 useCache: false
150994 }));
150995 nodes2.silentPositions(getOldPos);
150996 if (hasCompoundNodes) {
150997 parents2.dirtyCompoundBoundsCache();
150998 parents2.dirtyBoundingBoxCache();
150999 parents2.updateCompoundBounds(true);
151000 }
151001 cy.endBatch();
151002 return bb;
151003 };
151004 fn$3.boundingbox = fn$3.bb = fn$3.boundingBox;
151005 fn$3.renderedBoundingbox = fn$3.renderedBoundingBox;
151006 var bounds2 = elesfn$b;
151007 var fn$2, elesfn$a;
151008 fn$2 = elesfn$a = {};
151009 var defineDimFns = function defineDimFns2(opts) {
151010 opts.uppercaseName = capitalize(opts.name);
151011 opts.autoName = "auto" + opts.uppercaseName;
151012 opts.labelName = "label" + opts.uppercaseName;
151013 opts.outerName = "outer" + opts.uppercaseName;
151014 opts.uppercaseOuterName = capitalize(opts.outerName);
151015 fn$2[opts.name] = function dimImpl() {
151016 var ele = this[0];
151017 var _p = ele._private;
151018 var cy = _p.cy;
151019 var styleEnabled = cy._private.styleEnabled;
151020 if (ele) {
151021 if (styleEnabled) {
151022 if (ele.isParent()) {
151023 ele.updateCompoundBounds();
151024 return _p[opts.autoName] || 0;
151025 }
151026 var d = ele.pstyle(opts.name);
151027 switch (d.strValue) {
151028 case "label":
151029 ele.recalculateRenderedStyle();
151030 return _p.rstyle[opts.labelName] || 0;
151031 default:
151032 return d.pfValue;
151033 }
151034 } else {
151035 return 1;
151036 }
151037 }
151038 };
151039 fn$2["outer" + opts.uppercaseName] = function outerDimImpl() {
151040 var ele = this[0];
151041 var _p = ele._private;
151042 var cy = _p.cy;
151043 var styleEnabled = cy._private.styleEnabled;
151044 if (ele) {
151045 if (styleEnabled) {
151046 var dim = ele[opts.name]();
151047 var border = ele.pstyle("border-width").pfValue;
151048 var padding2 = 2 * ele.padding();
151049 return dim + border + padding2;
151050 } else {
151051 return 1;
151052 }
151053 }
151054 };
151055 fn$2["rendered" + opts.uppercaseName] = function renderedDimImpl() {
151056 var ele = this[0];
151057 if (ele) {
151058 var d = ele[opts.name]();
151059 return d * this.cy().zoom();
151060 }
151061 };
151062 fn$2["rendered" + opts.uppercaseOuterName] = function renderedOuterDimImpl() {
151063 var ele = this[0];
151064 if (ele) {
151065 var od = ele[opts.outerName]();
151066 return od * this.cy().zoom();
151067 }
151068 };
151069 };
151070 defineDimFns({
151071 name: "width"
151072 });
151073 defineDimFns({
151074 name: "height"
151075 });
151076 elesfn$a.padding = function() {
151077 var ele = this[0];
151078 var _p = ele._private;
151079 if (ele.isParent()) {
151080 ele.updateCompoundBounds();
151081 if (_p.autoPadding !== void 0) {
151082 return _p.autoPadding;
151083 } else {
151084 return ele.pstyle("padding").pfValue;
151085 }
151086 } else {
151087 return ele.pstyle("padding").pfValue;
151088 }
151089 };
151090 elesfn$a.paddedHeight = function() {
151091 var ele = this[0];
151092 return ele.height() + 2 * ele.padding();
151093 };
151094 elesfn$a.paddedWidth = function() {
151095 var ele = this[0];
151096 return ele.width() + 2 * ele.padding();
151097 };
151098 var widthHeight = elesfn$a;
151099 var ifEdge = function ifEdge2(ele, getValue3) {
151100 if (ele.isEdge()) {
151101 return getValue3(ele);
151102 }
151103 };
151104 var ifEdgeRenderedPosition = function ifEdgeRenderedPosition2(ele, getPoint) {
151105 if (ele.isEdge()) {
151106 var cy = ele.cy();
151107 return modelToRenderedPosition(getPoint(ele), cy.zoom(), cy.pan());
151108 }
151109 };
151110 var ifEdgeRenderedPositions = function ifEdgeRenderedPositions2(ele, getPoints) {
151111 if (ele.isEdge()) {
151112 var cy = ele.cy();
151113 var pan = cy.pan();
151114 var zoom = cy.zoom();
151115 return getPoints(ele).map(function(p2) {
151116 return modelToRenderedPosition(p2, zoom, pan);
151117 });
151118 }
151119 };
151120 var controlPoints2 = function controlPoints3(ele) {
151121 return ele.renderer().getControlPoints(ele);
151122 };
151123 var segmentPoints = function segmentPoints2(ele) {
151124 return ele.renderer().getSegmentPoints(ele);
151125 };
151126 var sourceEndpoint = function sourceEndpoint2(ele) {
151127 return ele.renderer().getSourceEndpoint(ele);
151128 };
151129 var targetEndpoint = function targetEndpoint2(ele) {
151130 return ele.renderer().getTargetEndpoint(ele);
151131 };
151132 var midpoint = function midpoint2(ele) {
151133 return ele.renderer().getEdgeMidpoint(ele);
151134 };
151135 var pts = {
151136 controlPoints: {
151137 get: controlPoints2,
151138 mult: true
151139 },
151140 segmentPoints: {
151141 get: segmentPoints,
151142 mult: true
151143 },
151144 sourceEndpoint: {
151145 get: sourceEndpoint
151146 },
151147 targetEndpoint: {
151148 get: targetEndpoint
151149 },
151150 midpoint: {
151151 get: midpoint
151152 }
151153 };
151154 var renderedName = function renderedName2(name2) {
151155 return "rendered" + name2[0].toUpperCase() + name2.substr(1);
151156 };
151157 var edgePoints = Object.keys(pts).reduce(function(obj, name2) {
151158 var spec = pts[name2];
151159 var rName = renderedName(name2);
151160 obj[name2] = function() {
151161 return ifEdge(this, spec.get);
151162 };
151163 if (spec.mult) {
151164 obj[rName] = function() {
151165 return ifEdgeRenderedPositions(this, spec.get);
151166 };
151167 } else {
151168 obj[rName] = function() {
151169 return ifEdgeRenderedPosition(this, spec.get);
151170 };
151171 }
151172 return obj;
151173 }, {});
151174 var dimensions = extend2({}, position2, bounds2, widthHeight, edgePoints);
151175 /*!
151176 Event object based on jQuery events, MIT license
151177
151178 https://jquery.org/license/
151179 https://tldrlegal.com/license/mit-license
151180 https://github.com/jquery/jquery/blob/master/src/event.js
151181 */
151182 var Event = function Event2(src, props) {
151183 this.recycle(src, props);
151184 };
151185 function returnFalse() {
151186 return false;
151187 }
151188 function returnTrue() {
151189 return true;
151190 }
151191 Event.prototype = {
151192 instanceString: function instanceString() {
151193 return "event";
151194 },
151195 recycle: function recycle(src, props) {
151196 this.isImmediatePropagationStopped = this.isPropagationStopped = this.isDefaultPrevented = returnFalse;
151197 if (src != null && src.preventDefault) {
151198 this.type = src.type;
151199 this.isDefaultPrevented = src.defaultPrevented ? returnTrue : returnFalse;
151200 } else if (src != null && src.type) {
151201 props = src;
151202 } else {
151203 this.type = src;
151204 }
151205 if (props != null) {
151206 this.originalEvent = props.originalEvent;
151207 this.type = props.type != null ? props.type : this.type;
151208 this.cy = props.cy;
151209 this.target = props.target;
151210 this.position = props.position;
151211 this.renderedPosition = props.renderedPosition;
151212 this.namespace = props.namespace;
151213 this.layout = props.layout;
151214 }
151215 if (this.cy != null && this.position != null && this.renderedPosition == null) {
151216 var pos = this.position;
151217 var zoom = this.cy.zoom();
151218 var pan = this.cy.pan();
151219 this.renderedPosition = {
151220 x: pos.x * zoom + pan.x,
151221 y: pos.y * zoom + pan.y
151222 };
151223 }
151224 this.timeStamp = src && src.timeStamp || Date.now();
151225 },
151226 preventDefault: function preventDefault() {
151227 this.isDefaultPrevented = returnTrue;
151228 var e = this.originalEvent;
151229 if (!e) {
151230 return;
151231 }
151232 if (e.preventDefault) {
151233 e.preventDefault();
151234 }
151235 },
151236 stopPropagation: function stopPropagation() {
151237 this.isPropagationStopped = returnTrue;
151238 var e = this.originalEvent;
151239 if (!e) {
151240 return;
151241 }
151242 if (e.stopPropagation) {
151243 e.stopPropagation();
151244 }
151245 },
151246 stopImmediatePropagation: function stopImmediatePropagation() {
151247 this.isImmediatePropagationStopped = returnTrue;
151248 this.stopPropagation();
151249 },
151250 isDefaultPrevented: returnFalse,
151251 isPropagationStopped: returnFalse,
151252 isImmediatePropagationStopped: returnFalse
151253 };
151254 var eventRegex = /^([^.]+)(\.(?:[^.]+))?$/;
151255 var universalNamespace = ".*";
151256 var defaults$8 = {
151257 qualifierCompare: function qualifierCompare(q1, q2) {
151258 return q1 === q2;
151259 },
151260 eventMatches: function eventMatches() {
151261 return true;
151262 },
151263 addEventFields: function addEventFields() {
151264 },
151265 callbackContext: function callbackContext(context) {
151266 return context;
151267 },
151268 beforeEmit: function beforeEmit() {
151269 },
151270 afterEmit: function afterEmit() {
151271 },
151272 bubble: function bubble() {
151273 return false;
151274 },
151275 parent: function parent() {
151276 return null;
151277 },
151278 context: null
151279 };
151280 var defaultsKeys = Object.keys(defaults$8);
151281 var emptyOpts = {};
151282 function Emitter() {
151283 var opts = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : emptyOpts;
151284 var context = arguments.length > 1 ? arguments[1] : void 0;
151285 for (var i3 = 0; i3 < defaultsKeys.length; i3++) {
151286 var key = defaultsKeys[i3];
151287 this[key] = opts[key] || defaults$8[key];
151288 }
151289 this.context = context || this.context;
151290 this.listeners = [];
151291 this.emitting = 0;
151292 }
151293 var p = Emitter.prototype;
151294 var forEachEvent = function forEachEvent2(self2, handler, events, qualifier, callback, conf2, confOverrides) {
151295 if (fn$6(qualifier)) {
151296 callback = qualifier;
151297 qualifier = null;
151298 }
151299 if (confOverrides) {
151300 if (conf2 == null) {
151301 conf2 = confOverrides;
151302 } else {
151303 conf2 = extend2({}, conf2, confOverrides);
151304 }
151305 }
151306 var eventList = array2(events) ? events : events.split(/\s+/);
151307 for (var i3 = 0; i3 < eventList.length; i3++) {
151308 var evt = eventList[i3];
151309 if (emptyString(evt)) {
151310 continue;
151311 }
151312 var match5 = evt.match(eventRegex);
151313 if (match5) {
151314 var type2 = match5[1];
151315 var namespace2 = match5[2] ? match5[2] : null;
151316 var ret = handler(self2, evt, type2, namespace2, qualifier, callback, conf2);
151317 if (ret === false) {
151318 break;
151319 }
151320 }
151321 }
151322 };
151323 var makeEventObj = function makeEventObj2(self2, obj) {
151324 self2.addEventFields(self2.context, obj);
151325 return new Event(obj.type, obj);
151326 };
151327 var forEachEventObj = function forEachEventObj2(self2, handler, events) {
151328 if (event(events)) {
151329 handler(self2, events);
151330 return;
151331 } else if (plainObject(events)) {
151332 handler(self2, makeEventObj(self2, events));
151333 return;
151334 }
151335 var eventList = array2(events) ? events : events.split(/\s+/);
151336 for (var i3 = 0; i3 < eventList.length; i3++) {
151337 var evt = eventList[i3];
151338 if (emptyString(evt)) {
151339 continue;
151340 }
151341 var match5 = evt.match(eventRegex);
151342 if (match5) {
151343 var type2 = match5[1];
151344 var namespace2 = match5[2] ? match5[2] : null;
151345 var eventObj = makeEventObj(self2, {
151346 type: type2,
151347 namespace: namespace2,
151348 target: self2.context
151349 });
151350 handler(self2, eventObj);
151351 }
151352 }
151353 };
151354 p.on = p.addListener = function(events, qualifier, callback, conf2, confOverrides) {
151355 forEachEvent(this, function(self2, event2, type2, namespace2, qualifier2, callback2, conf3) {
151356 if (fn$6(callback2)) {
151357 self2.listeners.push({
151358 event: event2,
151359 // full event string
151360 callback: callback2,
151361 // callback to run
151362 type: type2,
151363 // the event type (e.g. 'click')
151364 namespace: namespace2,
151365 // the event namespace (e.g. ".foo")
151366 qualifier: qualifier2,
151367 // a restriction on whether to match this emitter
151368 conf: conf3
151369 // additional configuration
151370 });
151371 }
151372 }, events, qualifier, callback, conf2, confOverrides);
151373 return this;
151374 };
151375 p.one = function(events, qualifier, callback, conf2) {
151376 return this.on(events, qualifier, callback, conf2, {
151377 one: true
151378 });
151379 };
151380 p.removeListener = p.off = function(events, qualifier, callback, conf2) {
151381 var _this = this;
151382 if (this.emitting !== 0) {
151383 this.listeners = copyArray$1(this.listeners);
151384 }
151385 var listeners = this.listeners;
151386 var _loop = function _loop2(i4) {
151387 var listener = listeners[i4];
151388 forEachEvent(_this, function(self2, event2, type2, namespace2, qualifier2, callback2) {
151389 if ((listener.type === type2 || events === "*") && (!namespace2 && listener.namespace !== ".*" || listener.namespace === namespace2) && (!qualifier2 || self2.qualifierCompare(listener.qualifier, qualifier2)) && (!callback2 || listener.callback === callback2)) {
151390 listeners.splice(i4, 1);
151391 return false;
151392 }
151393 }, events, qualifier, callback, conf2);
151394 };
151395 for (var i3 = listeners.length - 1; i3 >= 0; i3--) {
151396 _loop(i3);
151397 }
151398 return this;
151399 };
151400 p.removeAllListeners = function() {
151401 return this.removeListener("*");
151402 };
151403 p.emit = p.trigger = function(events, extraParams, manualCallback) {
151404 var listeners = this.listeners;
151405 var numListenersBeforeEmit = listeners.length;
151406 this.emitting++;
151407 if (!array2(extraParams)) {
151408 extraParams = [extraParams];
151409 }
151410 forEachEventObj(this, function(self2, eventObj) {
151411 if (manualCallback != null) {
151412 listeners = [{
151413 event: eventObj.event,
151414 type: eventObj.type,
151415 namespace: eventObj.namespace,
151416 callback: manualCallback
151417 }];
151418 numListenersBeforeEmit = listeners.length;
151419 }
151420 var _loop2 = function _loop22(i4) {
151421 var listener = listeners[i4];
151422 if (listener.type === eventObj.type && (!listener.namespace || listener.namespace === eventObj.namespace || listener.namespace === universalNamespace) && self2.eventMatches(self2.context, listener, eventObj)) {
151423 var args = [eventObj];
151424 if (extraParams != null) {
151425 push2(args, extraParams);
151426 }
151427 self2.beforeEmit(self2.context, listener, eventObj);
151428 if (listener.conf && listener.conf.one) {
151429 self2.listeners = self2.listeners.filter(function(l) {
151430 return l !== listener;
151431 });
151432 }
151433 var context = self2.callbackContext(self2.context, listener, eventObj);
151434 var ret = listener.callback.apply(context, args);
151435 self2.afterEmit(self2.context, listener, eventObj);
151436 if (ret === false) {
151437 eventObj.stopPropagation();
151438 eventObj.preventDefault();
151439 }
151440 }
151441 };
151442 for (var i3 = 0; i3 < numListenersBeforeEmit; i3++) {
151443 _loop2(i3);
151444 }
151445 if (self2.bubble(self2.context) && !eventObj.isPropagationStopped()) {
151446 self2.parent(self2.context).emit(eventObj, extraParams);
151447 }
151448 }, events);
151449 this.emitting--;
151450 return this;
151451 };
151452 var emitterOptions$1 = {
151453 qualifierCompare: function qualifierCompare(selector1, selector2) {
151454 if (selector1 == null || selector2 == null) {
151455 return selector1 == null && selector2 == null;
151456 } else {
151457 return selector1.sameText(selector2);
151458 }
151459 },
151460 eventMatches: function eventMatches(ele, listener, eventObj) {
151461 var selector2 = listener.qualifier;
151462 if (selector2 != null) {
151463 return ele !== eventObj.target && element2(eventObj.target) && selector2.matches(eventObj.target);
151464 }
151465 return true;
151466 },
151467 addEventFields: function addEventFields(ele, evt) {
151468 evt.cy = ele.cy();
151469 evt.target = ele;
151470 },
151471 callbackContext: function callbackContext(ele, listener, eventObj) {
151472 return listener.qualifier != null ? eventObj.target : ele;
151473 },
151474 beforeEmit: function beforeEmit(context, listener) {
151475 if (listener.conf && listener.conf.once) {
151476 listener.conf.onceCollection.removeListener(listener.event, listener.qualifier, listener.callback);
151477 }
151478 },
151479 bubble: function bubble() {
151480 return true;
151481 },
151482 parent: function parent(ele) {
151483 return ele.isChild() ? ele.parent() : ele.cy();
151484 }
151485 };
151486 var argSelector$1 = function argSelector2(arg) {
151487 if (string2(arg)) {
151488 return new Selector(arg);
151489 } else {
151490 return arg;
151491 }
151492 };
151493 var elesfn$9 = {
151494 createEmitter: function createEmitter() {
151495 for (var i3 = 0; i3 < this.length; i3++) {
151496 var ele = this[i3];
151497 var _p = ele._private;
151498 if (!_p.emitter) {
151499 _p.emitter = new Emitter(emitterOptions$1, ele);
151500 }
151501 }
151502 return this;
151503 },
151504 emitter: function emitter() {
151505 return this._private.emitter;
151506 },
151507 on: function on(events, selector2, callback) {
151508 var argSel = argSelector$1(selector2);
151509 for (var i3 = 0; i3 < this.length; i3++) {
151510 var ele = this[i3];
151511 ele.emitter().on(events, argSel, callback);
151512 }
151513 return this;
151514 },
151515 removeListener: function removeListener(events, selector2, callback) {
151516 var argSel = argSelector$1(selector2);
151517 for (var i3 = 0; i3 < this.length; i3++) {
151518 var ele = this[i3];
151519 ele.emitter().removeListener(events, argSel, callback);
151520 }
151521 return this;
151522 },
151523 removeAllListeners: function removeAllListeners() {
151524 for (var i3 = 0; i3 < this.length; i3++) {
151525 var ele = this[i3];
151526 ele.emitter().removeAllListeners();
151527 }
151528 return this;
151529 },
151530 one: function one2(events, selector2, callback) {
151531 var argSel = argSelector$1(selector2);
151532 for (var i3 = 0; i3 < this.length; i3++) {
151533 var ele = this[i3];
151534 ele.emitter().one(events, argSel, callback);
151535 }
151536 return this;
151537 },
151538 once: function once(events, selector2, callback) {
151539 var argSel = argSelector$1(selector2);
151540 for (var i3 = 0; i3 < this.length; i3++) {
151541 var ele = this[i3];
151542 ele.emitter().on(events, argSel, callback, {
151543 once: true,
151544 onceCollection: this
151545 });
151546 }
151547 },
151548 emit: function emit(events, extraParams) {
151549 for (var i3 = 0; i3 < this.length; i3++) {
151550 var ele = this[i3];
151551 ele.emitter().emit(events, extraParams);
151552 }
151553 return this;
151554 },
151555 emitAndNotify: function emitAndNotify(event2, extraParams) {
151556 if (this.length === 0) {
151557 return;
151558 }
151559 this.cy().notify(event2, this);
151560 this.emit(event2, extraParams);
151561 return this;
151562 }
151563 };
151564 define3.eventAliasesOn(elesfn$9);
151565 var elesfn$8 = {
151566 nodes: function nodes2(selector2) {
151567 return this.filter(function(ele) {
151568 return ele.isNode();
151569 }).filter(selector2);
151570 },
151571 edges: function edges2(selector2) {
151572 return this.filter(function(ele) {
151573 return ele.isEdge();
151574 }).filter(selector2);
151575 },
151576 // internal helper to get nodes and edges as separate collections with single iteration over elements
151577 byGroup: function byGroup() {
151578 var nodes2 = this.spawn();
151579 var edges2 = this.spawn();
151580 for (var i3 = 0; i3 < this.length; i3++) {
151581 var ele = this[i3];
151582 if (ele.isNode()) {
151583 nodes2.push(ele);
151584 } else {
151585 edges2.push(ele);
151586 }
151587 }
151588 return {
151589 nodes: nodes2,
151590 edges: edges2
151591 };
151592 },
151593 filter: function filter3(_filter, thisArg) {
151594 if (_filter === void 0) {
151595 return this;
151596 } else if (string2(_filter) || elementOrCollection(_filter)) {
151597 return new Selector(_filter).filter(this);
151598 } else if (fn$6(_filter)) {
151599 var filterEles = this.spawn();
151600 var eles = this;
151601 for (var i3 = 0; i3 < eles.length; i3++) {
151602 var ele = eles[i3];
151603 var include = thisArg ? _filter.apply(thisArg, [ele, i3, eles]) : _filter(ele, i3, eles);
151604 if (include) {
151605 filterEles.push(ele);
151606 }
151607 }
151608 return filterEles;
151609 }
151610 return this.spawn();
151611 },
151612 not: function not(toRemove) {
151613 if (!toRemove) {
151614 return this;
151615 } else {
151616 if (string2(toRemove)) {
151617 toRemove = this.filter(toRemove);
151618 }
151619 var elements2 = this.spawn();
151620 for (var i3 = 0; i3 < this.length; i3++) {
151621 var element3 = this[i3];
151622 var remove2 = toRemove.has(element3);
151623 if (!remove2) {
151624 elements2.push(element3);
151625 }
151626 }
151627 return elements2;
151628 }
151629 },
151630 absoluteComplement: function absoluteComplement() {
151631 var cy = this.cy();
151632 return cy.mutableElements().not(this);
151633 },
151634 intersect: function intersect2(other) {
151635 if (string2(other)) {
151636 var selector2 = other;
151637 return this.filter(selector2);
151638 }
151639 var elements2 = this.spawn();
151640 var col1 = this;
151641 var col2 = other;
151642 var col1Smaller = this.length < other.length;
151643 var colS = col1Smaller ? col1 : col2;
151644 var colL = col1Smaller ? col2 : col1;
151645 for (var i3 = 0; i3 < colS.length; i3++) {
151646 var ele = colS[i3];
151647 if (colL.has(ele)) {
151648 elements2.push(ele);
151649 }
151650 }
151651 return elements2;
151652 },
151653 xor: function xor(other) {
151654 var cy = this._private.cy;
151655 if (string2(other)) {
151656 other = cy.$(other);
151657 }
151658 var elements2 = this.spawn();
151659 var col1 = this;
151660 var col2 = other;
151661 var add = function add2(col, other2) {
151662 for (var i3 = 0; i3 < col.length; i3++) {
151663 var ele = col[i3];
151664 var id2 = ele._private.data.id;
151665 var inOther = other2.hasElementWithId(id2);
151666 if (!inOther) {
151667 elements2.push(ele);
151668 }
151669 }
151670 };
151671 add(col1, col2);
151672 add(col2, col1);
151673 return elements2;
151674 },
151675 diff: function diff(other) {
151676 var cy = this._private.cy;
151677 if (string2(other)) {
151678 other = cy.$(other);
151679 }
151680 var left2 = this.spawn();
151681 var right2 = this.spawn();
151682 var both = this.spawn();
151683 var col1 = this;
151684 var col2 = other;
151685 var add = function add2(col, other2, retEles) {
151686 for (var i3 = 0; i3 < col.length; i3++) {
151687 var ele = col[i3];
151688 var id2 = ele._private.data.id;
151689 var inOther = other2.hasElementWithId(id2);
151690 if (inOther) {
151691 both.merge(ele);
151692 } else {
151693 retEles.push(ele);
151694 }
151695 }
151696 };
151697 add(col1, col2, left2);
151698 add(col2, col1, right2);
151699 return {
151700 left: left2,
151701 right: right2,
151702 both
151703 };
151704 },
151705 add: function add(toAdd) {
151706 var cy = this._private.cy;
151707 if (!toAdd) {
151708 return this;
151709 }
151710 if (string2(toAdd)) {
151711 var selector2 = toAdd;
151712 toAdd = cy.mutableElements().filter(selector2);
151713 }
151714 var elements2 = this.spawnSelf();
151715 for (var i3 = 0; i3 < toAdd.length; i3++) {
151716 var ele = toAdd[i3];
151717 var add2 = !this.has(ele);
151718 if (add2) {
151719 elements2.push(ele);
151720 }
151721 }
151722 return elements2;
151723 },
151724 // in place merge on calling collection
151725 merge: function merge2(toAdd) {
151726 var _p = this._private;
151727 var cy = _p.cy;
151728 if (!toAdd) {
151729 return this;
151730 }
151731 if (toAdd && string2(toAdd)) {
151732 var selector2 = toAdd;
151733 toAdd = cy.mutableElements().filter(selector2);
151734 }
151735 var map2 = _p.map;
151736 for (var i3 = 0; i3 < toAdd.length; i3++) {
151737 var toAddEle = toAdd[i3];
151738 var id2 = toAddEle._private.data.id;
151739 var add = !map2.has(id2);
151740 if (add) {
151741 var index2 = this.length++;
151742 this[index2] = toAddEle;
151743 map2.set(id2, {
151744 ele: toAddEle,
151745 index: index2
151746 });
151747 }
151748 }
151749 return this;
151750 },
151751 unmergeAt: function unmergeAt(i3) {
151752 var ele = this[i3];
151753 var id2 = ele.id();
151754 var _p = this._private;
151755 var map2 = _p.map;
151756 this[i3] = void 0;
151757 map2["delete"](id2);
151758 var unmergedLastEle = i3 === this.length - 1;
151759 if (this.length > 1 && !unmergedLastEle) {
151760 var lastEleI = this.length - 1;
151761 var lastEle = this[lastEleI];
151762 var lastEleId = lastEle._private.data.id;
151763 this[lastEleI] = void 0;
151764 this[i3] = lastEle;
151765 map2.set(lastEleId, {
151766 ele: lastEle,
151767 index: i3
151768 });
151769 }
151770 this.length--;
151771 return this;
151772 },
151773 // remove single ele in place in calling collection
151774 unmergeOne: function unmergeOne(ele) {
151775 ele = ele[0];
151776 var _p = this._private;
151777 var id2 = ele._private.data.id;
151778 var map2 = _p.map;
151779 var entry = map2.get(id2);
151780 if (!entry) {
151781 return this;
151782 }
151783 var i3 = entry.index;
151784 this.unmergeAt(i3);
151785 return this;
151786 },
151787 // remove eles in place on calling collection
151788 unmerge: function unmerge(toRemove) {
151789 var cy = this._private.cy;
151790 if (!toRemove) {
151791 return this;
151792 }
151793 if (toRemove && string2(toRemove)) {
151794 var selector2 = toRemove;
151795 toRemove = cy.mutableElements().filter(selector2);
151796 }
151797 for (var i3 = 0; i3 < toRemove.length; i3++) {
151798 this.unmergeOne(toRemove[i3]);
151799 }
151800 return this;
151801 },
151802 unmergeBy: function unmergeBy(toRmFn) {
151803 for (var i3 = this.length - 1; i3 >= 0; i3--) {
151804 var ele = this[i3];
151805 if (toRmFn(ele)) {
151806 this.unmergeAt(i3);
151807 }
151808 }
151809 return this;
151810 },
151811 map: function map2(mapFn, thisArg) {
151812 var arr = [];
151813 var eles = this;
151814 for (var i3 = 0; i3 < eles.length; i3++) {
151815 var ele = eles[i3];
151816 var ret = thisArg ? mapFn.apply(thisArg, [ele, i3, eles]) : mapFn(ele, i3, eles);
151817 arr.push(ret);
151818 }
151819 return arr;
151820 },
151821 reduce: function reduce2(fn2, initialValue) {
151822 var val = initialValue;
151823 var eles = this;
151824 for (var i3 = 0; i3 < eles.length; i3++) {
151825 val = fn2(val, eles[i3], i3, eles);
151826 }
151827 return val;
151828 },
151829 max: function max3(valFn, thisArg) {
151830 var max4 = -Infinity;
151831 var maxEle;
151832 var eles = this;
151833 for (var i3 = 0; i3 < eles.length; i3++) {
151834 var ele = eles[i3];
151835 var val = thisArg ? valFn.apply(thisArg, [ele, i3, eles]) : valFn(ele, i3, eles);
151836 if (val > max4) {
151837 max4 = val;
151838 maxEle = ele;
151839 }
151840 }
151841 return {
151842 value: max4,
151843 ele: maxEle
151844 };
151845 },
151846 min: function min3(valFn, thisArg) {
151847 var min4 = Infinity;
151848 var minEle;
151849 var eles = this;
151850 for (var i3 = 0; i3 < eles.length; i3++) {
151851 var ele = eles[i3];
151852 var val = thisArg ? valFn.apply(thisArg, [ele, i3, eles]) : valFn(ele, i3, eles);
151853 if (val < min4) {
151854 min4 = val;
151855 minEle = ele;
151856 }
151857 }
151858 return {
151859 value: min4,
151860 ele: minEle
151861 };
151862 }
151863 };
151864 var fn$1 = elesfn$8;
151865 fn$1["u"] = fn$1["|"] = fn$1["+"] = fn$1.union = fn$1.or = fn$1.add;
151866 fn$1["\\"] = fn$1["!"] = fn$1["-"] = fn$1.difference = fn$1.relativeComplement = fn$1.subtract = fn$1.not;
151867 fn$1["n"] = fn$1["&"] = fn$1["."] = fn$1.and = fn$1.intersection = fn$1.intersect;
151868 fn$1["^"] = fn$1["(+)"] = fn$1["(-)"] = fn$1.symmetricDifference = fn$1.symdiff = fn$1.xor;
151869 fn$1.fnFilter = fn$1.filterFn = fn$1.stdFilter = fn$1.filter;
151870 fn$1.complement = fn$1.abscomp = fn$1.absoluteComplement;
151871 var elesfn$7 = {
151872 isNode: function isNode() {
151873 return this.group() === "nodes";
151874 },
151875 isEdge: function isEdge() {
151876 return this.group() === "edges";
151877 },
151878 isLoop: function isLoop() {
151879 return this.isEdge() && this.source()[0] === this.target()[0];
151880 },
151881 isSimple: function isSimple() {
151882 return this.isEdge() && this.source()[0] !== this.target()[0];
151883 },
151884 group: function group() {
151885 var ele = this[0];
151886 if (ele) {
151887 return ele._private.group;
151888 }
151889 }
151890 };
151891 var zIndexSort = function zIndexSort2(a, b) {
151892 var cy = a.cy();
151893 var hasCompoundNodes = cy.hasCompoundNodes();
151894 function getDepth(ele) {
151895 var style = ele.pstyle("z-compound-depth");
151896 if (style.value === "auto") {
151897 return hasCompoundNodes ? ele.zDepth() : 0;
151898 } else if (style.value === "bottom") {
151899 return -1;
151900 } else if (style.value === "top") {
151901 return MAX_INT$1;
151902 }
151903 return 0;
151904 }
151905 var depthDiff = getDepth(a) - getDepth(b);
151906 if (depthDiff !== 0) {
151907 return depthDiff;
151908 }
151909 function getEleDepth(ele) {
151910 var style = ele.pstyle("z-index-compare");
151911 if (style.value === "auto") {
151912 return ele.isNode() ? 1 : 0;
151913 }
151914 return 0;
151915 }
151916 var eleDiff = getEleDepth(a) - getEleDepth(b);
151917 if (eleDiff !== 0) {
151918 return eleDiff;
151919 }
151920 var zDiff = a.pstyle("z-index").value - b.pstyle("z-index").value;
151921 if (zDiff !== 0) {
151922 return zDiff;
151923 }
151924 return a.poolIndex() - b.poolIndex();
151925 };
151926 var elesfn$6 = {
151927 forEach: function forEach2(fn2, thisArg) {
151928 if (fn$6(fn2)) {
151929 var N = this.length;
151930 for (var i3 = 0; i3 < N; i3++) {
151931 var ele = this[i3];
151932 var ret = thisArg ? fn2.apply(thisArg, [ele, i3, this]) : fn2(ele, i3, this);
151933 if (ret === false) {
151934 break;
151935 }
151936 }
151937 }
151938 return this;
151939 },
151940 toArray: function toArray2() {
151941 var array3 = [];
151942 for (var i3 = 0; i3 < this.length; i3++) {
151943 array3.push(this[i3]);
151944 }
151945 return array3;
151946 },
151947 slice: function slice2(start2, end2) {
151948 var array3 = [];
151949 var thisSize = this.length;
151950 if (end2 == null) {
151951 end2 = thisSize;
151952 }
151953 if (start2 == null) {
151954 start2 = 0;
151955 }
151956 if (start2 < 0) {
151957 start2 = thisSize + start2;
151958 }
151959 if (end2 < 0) {
151960 end2 = thisSize + end2;
151961 }
151962 for (var i3 = start2; i3 >= 0 && i3 < end2 && i3 < thisSize; i3++) {
151963 array3.push(this[i3]);
151964 }
151965 return this.spawn(array3);
151966 },
151967 size: function size2() {
151968 return this.length;
151969 },
151970 eq: function eq3(i3) {
151971 return this[i3] || this.spawn();
151972 },
151973 first: function first() {
151974 return this[0] || this.spawn();
151975 },
151976 last: function last2() {
151977 return this[this.length - 1] || this.spawn();
151978 },
151979 empty: function empty2() {
151980 return this.length === 0;
151981 },
151982 nonempty: function nonempty() {
151983 return !this.empty();
151984 },
151985 sort: function sort2(sortFn) {
151986 if (!fn$6(sortFn)) {
151987 return this;
151988 }
151989 var sorted = this.toArray().sort(sortFn);
151990 return this.spawn(sorted);
151991 },
151992 sortByZIndex: function sortByZIndex() {
151993 return this.sort(zIndexSort);
151994 },
151995 zDepth: function zDepth() {
151996 var ele = this[0];
151997 if (!ele) {
151998 return void 0;
151999 }
152000 var _p = ele._private;
152001 var group = _p.group;
152002 if (group === "nodes") {
152003 var depth = _p.data.parent ? ele.parents().size() : 0;
152004 if (!ele.isParent()) {
152005 return MAX_INT$1 - 1;
152006 }
152007 return depth;
152008 } else {
152009 var src = _p.source;
152010 var tgt = _p.target;
152011 var srcDepth = src.zDepth();
152012 var tgtDepth = tgt.zDepth();
152013 return Math.max(srcDepth, tgtDepth, 0);
152014 }
152015 }
152016 };
152017 elesfn$6.each = elesfn$6.forEach;
152018 var defineSymbolIterator = function defineSymbolIterator2() {
152019 var typeofUndef = "undefined";
152020 var isIteratorSupported = (typeof Symbol === "undefined" ? "undefined" : _typeof(Symbol)) != typeofUndef && _typeof(Symbol.iterator) != typeofUndef;
152021 if (isIteratorSupported) {
152022 elesfn$6[Symbol.iterator] = function() {
152023 var _this = this;
152024 var entry = {
152025 value: void 0,
152026 done: false
152027 };
152028 var i3 = 0;
152029 var length2 = this.length;
152030 return _defineProperty$1({
152031 next: function next2() {
152032 if (i3 < length2) {
152033 entry.value = _this[i3++];
152034 } else {
152035 entry.value = void 0;
152036 entry.done = true;
152037 }
152038 return entry;
152039 }
152040 }, Symbol.iterator, function() {
152041 return this;
152042 });
152043 };
152044 }
152045 };
152046 defineSymbolIterator();
152047 var getLayoutDimensionOptions = defaults$g({
152048 nodeDimensionsIncludeLabels: false
152049 });
152050 var elesfn$5 = {
152051 // Calculates and returns node dimensions { x, y } based on options given
152052 layoutDimensions: function layoutDimensions(options2) {
152053 options2 = getLayoutDimensionOptions(options2);
152054 var dims;
152055 if (!this.takesUpSpace()) {
152056 dims = {
152057 w: 0,
152058 h: 0
152059 };
152060 } else if (options2.nodeDimensionsIncludeLabels) {
152061 var bbDim = this.boundingBox();
152062 dims = {
152063 w: bbDim.w,
152064 h: bbDim.h
152065 };
152066 } else {
152067 dims = {
152068 w: this.outerWidth(),
152069 h: this.outerHeight()
152070 };
152071 }
152072 if (dims.w === 0 || dims.h === 0) {
152073 dims.w = dims.h = 1;
152074 }
152075 return dims;
152076 },
152077 // using standard layout options, apply position function (w/ or w/o animation)
152078 layoutPositions: function layoutPositions(layout3, options2, fn2) {
152079 var nodes2 = this.nodes().filter(function(n) {
152080 return !n.isParent();
152081 });
152082 var cy = this.cy();
152083 var layoutEles = options2.eles;
152084 var getMemoizeKey = function getMemoizeKey2(node3) {
152085 return node3.id();
152086 };
152087 var fnMem = memoize$1(fn2, getMemoizeKey);
152088 layout3.emit({
152089 type: "layoutstart",
152090 layout: layout3
152091 });
152092 layout3.animations = [];
152093 var calculateSpacing = function calculateSpacing2(spacing, nodesBb, pos) {
152094 var center2 = {
152095 x: nodesBb.x1 + nodesBb.w / 2,
152096 y: nodesBb.y1 + nodesBb.h / 2
152097 };
152098 var spacingVector = {
152099 // scale from center of bounding box (not necessarily 0,0)
152100 x: (pos.x - center2.x) * spacing,
152101 y: (pos.y - center2.y) * spacing
152102 };
152103 return {
152104 x: center2.x + spacingVector.x,
152105 y: center2.y + spacingVector.y
152106 };
152107 };
152108 var useSpacingFactor = options2.spacingFactor && options2.spacingFactor !== 1;
152109 var spacingBb = function spacingBb2() {
152110 if (!useSpacingFactor) {
152111 return null;
152112 }
152113 var bb2 = makeBoundingBox();
152114 for (var i4 = 0; i4 < nodes2.length; i4++) {
152115 var node3 = nodes2[i4];
152116 var pos = fnMem(node3, i4);
152117 expandBoundingBoxByPoint(bb2, pos.x, pos.y);
152118 }
152119 return bb2;
152120 };
152121 var bb = spacingBb();
152122 var getFinalPos = memoize$1(function(node3, i4) {
152123 var newPos2 = fnMem(node3, i4);
152124 if (useSpacingFactor) {
152125 var spacing = Math.abs(options2.spacingFactor);
152126 newPos2 = calculateSpacing(spacing, bb, newPos2);
152127 }
152128 if (options2.transform != null) {
152129 newPos2 = options2.transform(node3, newPos2);
152130 }
152131 return newPos2;
152132 }, getMemoizeKey);
152133 if (options2.animate) {
152134 for (var i3 = 0; i3 < nodes2.length; i3++) {
152135 var node2 = nodes2[i3];
152136 var newPos = getFinalPos(node2, i3);
152137 var animateNode = options2.animateFilter == null || options2.animateFilter(node2, i3);
152138 if (animateNode) {
152139 var ani = node2.animation({
152140 position: newPos,
152141 duration: options2.animationDuration,
152142 easing: options2.animationEasing
152143 });
152144 layout3.animations.push(ani);
152145 } else {
152146 node2.position(newPos);
152147 }
152148 }
152149 if (options2.fit) {
152150 var fitAni = cy.animation({
152151 fit: {
152152 boundingBox: layoutEles.boundingBoxAt(getFinalPos),
152153 padding: options2.padding
152154 },
152155 duration: options2.animationDuration,
152156 easing: options2.animationEasing
152157 });
152158 layout3.animations.push(fitAni);
152159 } else if (options2.zoom !== void 0 && options2.pan !== void 0) {
152160 var zoomPanAni = cy.animation({
152161 zoom: options2.zoom,
152162 pan: options2.pan,
152163 duration: options2.animationDuration,
152164 easing: options2.animationEasing
152165 });
152166 layout3.animations.push(zoomPanAni);
152167 }
152168 layout3.animations.forEach(function(ani2) {
152169 return ani2.play();
152170 });
152171 layout3.one("layoutready", options2.ready);
152172 layout3.emit({
152173 type: "layoutready",
152174 layout: layout3
152175 });
152176 Promise$12.all(layout3.animations.map(function(ani2) {
152177 return ani2.promise();
152178 })).then(function() {
152179 layout3.one("layoutstop", options2.stop);
152180 layout3.emit({
152181 type: "layoutstop",
152182 layout: layout3
152183 });
152184 });
152185 } else {
152186 nodes2.positions(getFinalPos);
152187 if (options2.fit) {
152188 cy.fit(options2.eles, options2.padding);
152189 }
152190 if (options2.zoom != null) {
152191 cy.zoom(options2.zoom);
152192 }
152193 if (options2.pan) {
152194 cy.pan(options2.pan);
152195 }
152196 layout3.one("layoutready", options2.ready);
152197 layout3.emit({
152198 type: "layoutready",
152199 layout: layout3
152200 });
152201 layout3.one("layoutstop", options2.stop);
152202 layout3.emit({
152203 type: "layoutstop",
152204 layout: layout3
152205 });
152206 }
152207 return this;
152208 },
152209 layout: function layout3(options2) {
152210 var cy = this.cy();
152211 return cy.makeLayout(extend2({}, options2, {
152212 eles: this
152213 }));
152214 }
152215 };
152216 elesfn$5.createLayout = elesfn$5.makeLayout = elesfn$5.layout;
152217 function styleCache(key, fn2, ele) {
152218 var _p = ele._private;
152219 var cache2 = _p.styleCache = _p.styleCache || [];
152220 var val;
152221 if ((val = cache2[key]) != null) {
152222 return val;
152223 } else {
152224 val = cache2[key] = fn2(ele);
152225 return val;
152226 }
152227 }
152228 function cacheStyleFunction(key, fn2) {
152229 key = hashString(key);
152230 return function cachedStyleFunction(ele) {
152231 return styleCache(key, fn2, ele);
152232 };
152233 }
152234 function cachePrototypeStyleFunction(key, fn2) {
152235 key = hashString(key);
152236 var selfFn = function selfFn2(ele) {
152237 return fn2.call(ele);
152238 };
152239 return function cachedPrototypeStyleFunction() {
152240 var ele = this[0];
152241 if (ele) {
152242 return styleCache(key, selfFn, ele);
152243 }
152244 };
152245 }
152246 var elesfn$4 = {
152247 recalculateRenderedStyle: function recalculateRenderedStyle(useCache) {
152248 var cy = this.cy();
152249 var renderer3 = cy.renderer();
152250 var styleEnabled = cy.styleEnabled();
152251 if (renderer3 && styleEnabled) {
152252 renderer3.recalculateRenderedStyle(this, useCache);
152253 }
152254 return this;
152255 },
152256 dirtyStyleCache: function dirtyStyleCache() {
152257 var cy = this.cy();
152258 var dirty = function dirty2(ele) {
152259 return ele._private.styleCache = null;
152260 };
152261 if (cy.hasCompoundNodes()) {
152262 var eles;
152263 eles = this.spawnSelf().merge(this.descendants()).merge(this.parents());
152264 eles.merge(eles.connectedEdges());
152265 eles.forEach(dirty);
152266 } else {
152267 this.forEach(function(ele) {
152268 dirty(ele);
152269 ele.connectedEdges().forEach(dirty);
152270 });
152271 }
152272 return this;
152273 },
152274 // fully updates (recalculates) the style for the elements
152275 updateStyle: function updateStyle(notifyRenderer) {
152276 var cy = this._private.cy;
152277 if (!cy.styleEnabled()) {
152278 return this;
152279 }
152280 if (cy.batching()) {
152281 var bEles = cy._private.batchStyleEles;
152282 bEles.merge(this);
152283 return this;
152284 }
152285 var hasCompounds = cy.hasCompoundNodes();
152286 var updatedEles = this;
152287 notifyRenderer = notifyRenderer || notifyRenderer === void 0 ? true : false;
152288 if (hasCompounds) {
152289 updatedEles = this.spawnSelf().merge(this.descendants()).merge(this.parents());
152290 }
152291 var changedEles = updatedEles;
152292 if (notifyRenderer) {
152293 changedEles.emitAndNotify("style");
152294 } else {
152295 changedEles.emit("style");
152296 }
152297 updatedEles.forEach(function(ele) {
152298 return ele._private.styleDirty = true;
152299 });
152300 return this;
152301 },
152302 // private: clears dirty flag and recalculates style
152303 cleanStyle: function cleanStyle() {
152304 var cy = this.cy();
152305 if (!cy.styleEnabled()) {
152306 return;
152307 }
152308 for (var i3 = 0; i3 < this.length; i3++) {
152309 var ele = this[i3];
152310 if (ele._private.styleDirty) {
152311 ele._private.styleDirty = false;
152312 cy.style().apply(ele);
152313 }
152314 }
152315 },
152316 // get the internal parsed style object for the specified property
152317 parsedStyle: function parsedStyle(property2) {
152318 var includeNonDefault = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
152319 var ele = this[0];
152320 var cy = ele.cy();
152321 if (!cy.styleEnabled()) {
152322 return;
152323 }
152324 if (ele) {
152325 this.cleanStyle();
152326 var overriddenStyle = ele._private.style[property2];
152327 if (overriddenStyle != null) {
152328 return overriddenStyle;
152329 } else if (includeNonDefault) {
152330 return cy.style().getDefaultProperty(property2);
152331 } else {
152332 return null;
152333 }
152334 }
152335 },
152336 numericStyle: function numericStyle(property2) {
152337 var ele = this[0];
152338 if (!ele.cy().styleEnabled()) {
152339 return;
152340 }
152341 if (ele) {
152342 var pstyle = ele.pstyle(property2);
152343 return pstyle.pfValue !== void 0 ? pstyle.pfValue : pstyle.value;
152344 }
152345 },
152346 numericStyleUnits: function numericStyleUnits(property2) {
152347 var ele = this[0];
152348 if (!ele.cy().styleEnabled()) {
152349 return;
152350 }
152351 if (ele) {
152352 return ele.pstyle(property2).units;
152353 }
152354 },
152355 // get the specified css property as a rendered value (i.e. on-screen value)
152356 // or get the whole rendered style if no property specified (NB doesn't allow setting)
152357 renderedStyle: function renderedStyle(property2) {
152358 var cy = this.cy();
152359 if (!cy.styleEnabled()) {
152360 return this;
152361 }
152362 var ele = this[0];
152363 if (ele) {
152364 return cy.style().getRenderedStyle(ele, property2);
152365 }
152366 },
152367 // read the calculated css style of the element or override the style (via a bypass)
152368 style: function style(name2, value) {
152369 var cy = this.cy();
152370 if (!cy.styleEnabled()) {
152371 return this;
152372 }
152373 var updateTransitions = false;
152374 var style2 = cy.style();
152375 if (plainObject(name2)) {
152376 var props = name2;
152377 style2.applyBypass(this, props, updateTransitions);
152378 this.emitAndNotify("style");
152379 } else if (string2(name2)) {
152380 if (value === void 0) {
152381 var ele = this[0];
152382 if (ele) {
152383 return style2.getStylePropertyValue(ele, name2);
152384 } else {
152385 return;
152386 }
152387 } else {
152388 style2.applyBypass(this, name2, value, updateTransitions);
152389 this.emitAndNotify("style");
152390 }
152391 } else if (name2 === void 0) {
152392 var _ele = this[0];
152393 if (_ele) {
152394 return style2.getRawStyle(_ele);
152395 } else {
152396 return;
152397 }
152398 }
152399 return this;
152400 },
152401 removeStyle: function removeStyle(names) {
152402 var cy = this.cy();
152403 if (!cy.styleEnabled()) {
152404 return this;
152405 }
152406 var updateTransitions = false;
152407 var style = cy.style();
152408 var eles = this;
152409 if (names === void 0) {
152410 for (var i3 = 0; i3 < eles.length; i3++) {
152411 var ele = eles[i3];
152412 style.removeAllBypasses(ele, updateTransitions);
152413 }
152414 } else {
152415 names = names.split(/\s+/);
152416 for (var _i = 0; _i < eles.length; _i++) {
152417 var _ele2 = eles[_i];
152418 style.removeBypasses(_ele2, names, updateTransitions);
152419 }
152420 }
152421 this.emitAndNotify("style");
152422 return this;
152423 },
152424 show: function show() {
152425 this.css("display", "element");
152426 return this;
152427 },
152428 hide: function hide() {
152429 this.css("display", "none");
152430 return this;
152431 },
152432 effectiveOpacity: function effectiveOpacity() {
152433 var cy = this.cy();
152434 if (!cy.styleEnabled()) {
152435 return 1;
152436 }
152437 var hasCompoundNodes = cy.hasCompoundNodes();
152438 var ele = this[0];
152439 if (ele) {
152440 var _p = ele._private;
152441 var parentOpacity = ele.pstyle("opacity").value;
152442 if (!hasCompoundNodes) {
152443 return parentOpacity;
152444 }
152445 var parents2 = !_p.data.parent ? null : ele.parents();
152446 if (parents2) {
152447 for (var i3 = 0; i3 < parents2.length; i3++) {
152448 var parent = parents2[i3];
152449 var opacity = parent.pstyle("opacity").value;
152450 parentOpacity = opacity * parentOpacity;
152451 }
152452 }
152453 return parentOpacity;
152454 }
152455 },
152456 transparent: function transparent() {
152457 var cy = this.cy();
152458 if (!cy.styleEnabled()) {
152459 return false;
152460 }
152461 var ele = this[0];
152462 var hasCompoundNodes = ele.cy().hasCompoundNodes();
152463 if (ele) {
152464 if (!hasCompoundNodes) {
152465 return ele.pstyle("opacity").value === 0;
152466 } else {
152467 return ele.effectiveOpacity() === 0;
152468 }
152469 }
152470 },
152471 backgrounding: function backgrounding() {
152472 var cy = this.cy();
152473 if (!cy.styleEnabled()) {
152474 return false;
152475 }
152476 var ele = this[0];
152477 return ele._private.backgrounding ? true : false;
152478 }
152479 };
152480 function checkCompound(ele, parentOk) {
152481 var _p = ele._private;
152482 var parents2 = _p.data.parent ? ele.parents() : null;
152483 if (parents2) {
152484 for (var i3 = 0; i3 < parents2.length; i3++) {
152485 var parent = parents2[i3];
152486 if (!parentOk(parent)) {
152487 return false;
152488 }
152489 }
152490 }
152491 return true;
152492 }
152493 function defineDerivedStateFunction(specs) {
152494 var ok = specs.ok;
152495 var edgeOkViaNode = specs.edgeOkViaNode || specs.ok;
152496 var parentOk = specs.parentOk || specs.ok;
152497 return function() {
152498 var cy = this.cy();
152499 if (!cy.styleEnabled()) {
152500 return true;
152501 }
152502 var ele = this[0];
152503 var hasCompoundNodes = cy.hasCompoundNodes();
152504 if (ele) {
152505 var _p = ele._private;
152506 if (!ok(ele)) {
152507 return false;
152508 }
152509 if (ele.isNode()) {
152510 return !hasCompoundNodes || checkCompound(ele, parentOk);
152511 } else {
152512 var src = _p.source;
152513 var tgt = _p.target;
152514 return edgeOkViaNode(src) && (!hasCompoundNodes || checkCompound(src, edgeOkViaNode)) && (src === tgt || edgeOkViaNode(tgt) && (!hasCompoundNodes || checkCompound(tgt, edgeOkViaNode)));
152515 }
152516 }
152517 };
152518 }
152519 var eleTakesUpSpace = cacheStyleFunction("eleTakesUpSpace", function(ele) {
152520 return ele.pstyle("display").value === "element" && ele.width() !== 0 && (ele.isNode() ? ele.height() !== 0 : true);
152521 });
152522 elesfn$4.takesUpSpace = cachePrototypeStyleFunction("takesUpSpace", defineDerivedStateFunction({
152523 ok: eleTakesUpSpace
152524 }));
152525 var eleInteractive = cacheStyleFunction("eleInteractive", function(ele) {
152526 return ele.pstyle("events").value === "yes" && ele.pstyle("visibility").value === "visible" && eleTakesUpSpace(ele);
152527 });
152528 var parentInteractive = cacheStyleFunction("parentInteractive", function(parent) {
152529 return parent.pstyle("visibility").value === "visible" && eleTakesUpSpace(parent);
152530 });
152531 elesfn$4.interactive = cachePrototypeStyleFunction("interactive", defineDerivedStateFunction({
152532 ok: eleInteractive,
152533 parentOk: parentInteractive,
152534 edgeOkViaNode: eleTakesUpSpace
152535 }));
152536 elesfn$4.noninteractive = function() {
152537 var ele = this[0];
152538 if (ele) {
152539 return !ele.interactive();
152540 }
152541 };
152542 var eleVisible = cacheStyleFunction("eleVisible", function(ele) {
152543 return ele.pstyle("visibility").value === "visible" && ele.pstyle("opacity").pfValue !== 0 && eleTakesUpSpace(ele);
152544 });
152545 var edgeVisibleViaNode = eleTakesUpSpace;
152546 elesfn$4.visible = cachePrototypeStyleFunction("visible", defineDerivedStateFunction({
152547 ok: eleVisible,
152548 edgeOkViaNode: edgeVisibleViaNode
152549 }));
152550 elesfn$4.hidden = function() {
152551 var ele = this[0];
152552 if (ele) {
152553 return !ele.visible();
152554 }
152555 };
152556 elesfn$4.isBundledBezier = cachePrototypeStyleFunction("isBundledBezier", function() {
152557 if (!this.cy().styleEnabled()) {
152558 return false;
152559 }
152560 return !this.removed() && this.pstyle("curve-style").value === "bezier" && this.takesUpSpace();
152561 });
152562 elesfn$4.bypass = elesfn$4.css = elesfn$4.style;
152563 elesfn$4.renderedCss = elesfn$4.renderedStyle;
152564 elesfn$4.removeBypass = elesfn$4.removeCss = elesfn$4.removeStyle;
152565 elesfn$4.pstyle = elesfn$4.parsedStyle;
152566 var elesfn$3 = {};
152567 function defineSwitchFunction(params) {
152568 return function() {
152569 var args = arguments;
152570 var changedEles = [];
152571 if (args.length === 2) {
152572 var data2 = args[0];
152573 var handler = args[1];
152574 this.on(params.event, data2, handler);
152575 } else if (args.length === 1 && fn$6(args[0])) {
152576 var _handler = args[0];
152577 this.on(params.event, _handler);
152578 } else if (args.length === 0 || args.length === 1 && array2(args[0])) {
152579 var addlEvents = args.length === 1 ? args[0] : null;
152580 for (var i3 = 0; i3 < this.length; i3++) {
152581 var ele = this[i3];
152582 var able = !params.ableField || ele._private[params.ableField];
152583 var changed = ele._private[params.field] != params.value;
152584 if (params.overrideAble) {
152585 var overrideAble = params.overrideAble(ele);
152586 if (overrideAble !== void 0) {
152587 able = overrideAble;
152588 if (!overrideAble) {
152589 return this;
152590 }
152591 }
152592 }
152593 if (able) {
152594 ele._private[params.field] = params.value;
152595 if (changed) {
152596 changedEles.push(ele);
152597 }
152598 }
152599 }
152600 var changedColl = this.spawn(changedEles);
152601 changedColl.updateStyle();
152602 changedColl.emit(params.event);
152603 if (addlEvents) {
152604 changedColl.emit(addlEvents);
152605 }
152606 }
152607 return this;
152608 };
152609 }
152610 function defineSwitchSet(params) {
152611 elesfn$3[params.field] = function() {
152612 var ele = this[0];
152613 if (ele) {
152614 if (params.overrideField) {
152615 var val = params.overrideField(ele);
152616 if (val !== void 0) {
152617 return val;
152618 }
152619 }
152620 return ele._private[params.field];
152621 }
152622 };
152623 elesfn$3[params.on] = defineSwitchFunction({
152624 event: params.on,
152625 field: params.field,
152626 ableField: params.ableField,
152627 overrideAble: params.overrideAble,
152628 value: true
152629 });
152630 elesfn$3[params.off] = defineSwitchFunction({
152631 event: params.off,
152632 field: params.field,
152633 ableField: params.ableField,
152634 overrideAble: params.overrideAble,
152635 value: false
152636 });
152637 }
152638 defineSwitchSet({
152639 field: "locked",
152640 overrideField: function overrideField(ele) {
152641 return ele.cy().autolock() ? true : void 0;
152642 },
152643 on: "lock",
152644 off: "unlock"
152645 });
152646 defineSwitchSet({
152647 field: "grabbable",
152648 overrideField: function overrideField(ele) {
152649 return ele.cy().autoungrabify() || ele.pannable() ? false : void 0;
152650 },
152651 on: "grabify",
152652 off: "ungrabify"
152653 });
152654 defineSwitchSet({
152655 field: "selected",
152656 ableField: "selectable",
152657 overrideAble: function overrideAble(ele) {
152658 return ele.cy().autounselectify() ? false : void 0;
152659 },
152660 on: "select",
152661 off: "unselect"
152662 });
152663 defineSwitchSet({
152664 field: "selectable",
152665 overrideField: function overrideField(ele) {
152666 return ele.cy().autounselectify() ? false : void 0;
152667 },
152668 on: "selectify",
152669 off: "unselectify"
152670 });
152671 elesfn$3.deselect = elesfn$3.unselect;
152672 elesfn$3.grabbed = function() {
152673 var ele = this[0];
152674 if (ele) {
152675 return ele._private.grabbed;
152676 }
152677 };
152678 defineSwitchSet({
152679 field: "active",
152680 on: "activate",
152681 off: "unactivate"
152682 });
152683 defineSwitchSet({
152684 field: "pannable",
152685 on: "panify",
152686 off: "unpanify"
152687 });
152688 elesfn$3.inactive = function() {
152689 var ele = this[0];
152690 if (ele) {
152691 return !ele._private.active;
152692 }
152693 };
152694 var elesfn$2 = {};
152695 var defineDagExtremity = function defineDagExtremity2(params) {
152696 return function dagExtremityImpl(selector2) {
152697 var eles = this;
152698 var ret = [];
152699 for (var i3 = 0; i3 < eles.length; i3++) {
152700 var ele = eles[i3];
152701 if (!ele.isNode()) {
152702 continue;
152703 }
152704 var disqualified = false;
152705 var edges2 = ele.connectedEdges();
152706 for (var j = 0; j < edges2.length; j++) {
152707 var edge = edges2[j];
152708 var src = edge.source();
152709 var tgt = edge.target();
152710 if (params.noIncomingEdges && tgt === ele && src !== ele || params.noOutgoingEdges && src === ele && tgt !== ele) {
152711 disqualified = true;
152712 break;
152713 }
152714 }
152715 if (!disqualified) {
152716 ret.push(ele);
152717 }
152718 }
152719 return this.spawn(ret, true).filter(selector2);
152720 };
152721 };
152722 var defineDagOneHop = function defineDagOneHop2(params) {
152723 return function(selector2) {
152724 var eles = this;
152725 var oEles = [];
152726 for (var i3 = 0; i3 < eles.length; i3++) {
152727 var ele = eles[i3];
152728 if (!ele.isNode()) {
152729 continue;
152730 }
152731 var edges2 = ele.connectedEdges();
152732 for (var j = 0; j < edges2.length; j++) {
152733 var edge = edges2[j];
152734 var src = edge.source();
152735 var tgt = edge.target();
152736 if (params.outgoing && src === ele) {
152737 oEles.push(edge);
152738 oEles.push(tgt);
152739 } else if (params.incoming && tgt === ele) {
152740 oEles.push(edge);
152741 oEles.push(src);
152742 }
152743 }
152744 }
152745 return this.spawn(oEles, true).filter(selector2);
152746 };
152747 };
152748 var defineDagAllHops = function defineDagAllHops2(params) {
152749 return function(selector2) {
152750 var eles = this;
152751 var sEles = [];
152752 var sElesIds = {};
152753 for (; ; ) {
152754 var next2 = params.outgoing ? eles.outgoers() : eles.incomers();
152755 if (next2.length === 0) {
152756 break;
152757 }
152758 var newNext = false;
152759 for (var i3 = 0; i3 < next2.length; i3++) {
152760 var n = next2[i3];
152761 var nid = n.id();
152762 if (!sElesIds[nid]) {
152763 sElesIds[nid] = true;
152764 sEles.push(n);
152765 newNext = true;
152766 }
152767 }
152768 if (!newNext) {
152769 break;
152770 }
152771 eles = next2;
152772 }
152773 return this.spawn(sEles, true).filter(selector2);
152774 };
152775 };
152776 elesfn$2.clearTraversalCache = function() {
152777 for (var i3 = 0; i3 < this.length; i3++) {
152778 this[i3]._private.traversalCache = null;
152779 }
152780 };
152781 extend2(elesfn$2, {
152782 // get the root nodes in the DAG
152783 roots: defineDagExtremity({
152784 noIncomingEdges: true
152785 }),
152786 // get the leaf nodes in the DAG
152787 leaves: defineDagExtremity({
152788 noOutgoingEdges: true
152789 }),
152790 // normally called children in graph theory
152791 // these nodes =edges=> outgoing nodes
152792 outgoers: cache(defineDagOneHop({
152793 outgoing: true
152794 }), "outgoers"),
152795 // aka DAG descendants
152796 successors: defineDagAllHops({
152797 outgoing: true
152798 }),
152799 // normally called parents in graph theory
152800 // these nodes <=edges= incoming nodes
152801 incomers: cache(defineDagOneHop({
152802 incoming: true
152803 }), "incomers"),
152804 // aka DAG ancestors
152805 predecessors: defineDagAllHops({
152806 incoming: true
152807 })
152808 });
152809 extend2(elesfn$2, {
152810 neighborhood: cache(function(selector2) {
152811 var elements2 = [];
152812 var nodes2 = this.nodes();
152813 for (var i3 = 0; i3 < nodes2.length; i3++) {
152814 var node2 = nodes2[i3];
152815 var connectedEdges = node2.connectedEdges();
152816 for (var j = 0; j < connectedEdges.length; j++) {
152817 var edge = connectedEdges[j];
152818 var src = edge.source();
152819 var tgt = edge.target();
152820 var otherNode = node2 === src ? tgt : src;
152821 if (otherNode.length > 0) {
152822 elements2.push(otherNode[0]);
152823 }
152824 elements2.push(edge[0]);
152825 }
152826 }
152827 return this.spawn(elements2, true).filter(selector2);
152828 }, "neighborhood"),
152829 closedNeighborhood: function closedNeighborhood(selector2) {
152830 return this.neighborhood().add(this).filter(selector2);
152831 },
152832 openNeighborhood: function openNeighborhood(selector2) {
152833 return this.neighborhood(selector2);
152834 }
152835 });
152836 elesfn$2.neighbourhood = elesfn$2.neighborhood;
152837 elesfn$2.closedNeighbourhood = elesfn$2.closedNeighborhood;
152838 elesfn$2.openNeighbourhood = elesfn$2.openNeighborhood;
152839 extend2(elesfn$2, {
152840 source: cache(function sourceImpl(selector2) {
152841 var ele = this[0];
152842 var src;
152843 if (ele) {
152844 src = ele._private.source || ele.cy().collection();
152845 }
152846 return src && selector2 ? src.filter(selector2) : src;
152847 }, "source"),
152848 target: cache(function targetImpl(selector2) {
152849 var ele = this[0];
152850 var tgt;
152851 if (ele) {
152852 tgt = ele._private.target || ele.cy().collection();
152853 }
152854 return tgt && selector2 ? tgt.filter(selector2) : tgt;
152855 }, "target"),
152856 sources: defineSourceFunction({
152857 attr: "source"
152858 }),
152859 targets: defineSourceFunction({
152860 attr: "target"
152861 })
152862 });
152863 function defineSourceFunction(params) {
152864 return function sourceImpl(selector2) {
152865 var sources = [];
152866 for (var i3 = 0; i3 < this.length; i3++) {
152867 var ele = this[i3];
152868 var src = ele._private[params.attr];
152869 if (src) {
152870 sources.push(src);
152871 }
152872 }
152873 return this.spawn(sources, true).filter(selector2);
152874 };
152875 }
152876 extend2(elesfn$2, {
152877 edgesWith: cache(defineEdgesWithFunction(), "edgesWith"),
152878 edgesTo: cache(defineEdgesWithFunction({
152879 thisIsSrc: true
152880 }), "edgesTo")
152881 });
152882 function defineEdgesWithFunction(params) {
152883 return function edgesWithImpl(otherNodes) {
152884 var elements2 = [];
152885 var cy = this._private.cy;
152886 var p2 = params || {};
152887 if (string2(otherNodes)) {
152888 otherNodes = cy.$(otherNodes);
152889 }
152890 for (var h = 0; h < otherNodes.length; h++) {
152891 var edges2 = otherNodes[h]._private.edges;
152892 for (var i3 = 0; i3 < edges2.length; i3++) {
152893 var edge = edges2[i3];
152894 var edgeData = edge._private.data;
152895 var thisToOther = this.hasElementWithId(edgeData.source) && otherNodes.hasElementWithId(edgeData.target);
152896 var otherToThis = otherNodes.hasElementWithId(edgeData.source) && this.hasElementWithId(edgeData.target);
152897 var edgeConnectsThisAndOther = thisToOther || otherToThis;
152898 if (!edgeConnectsThisAndOther) {
152899 continue;
152900 }
152901 if (p2.thisIsSrc || p2.thisIsTgt) {
152902 if (p2.thisIsSrc && !thisToOther) {
152903 continue;
152904 }
152905 if (p2.thisIsTgt && !otherToThis) {
152906 continue;
152907 }
152908 }
152909 elements2.push(edge);
152910 }
152911 }
152912 return this.spawn(elements2, true);
152913 };
152914 }
152915 extend2(elesfn$2, {
152916 connectedEdges: cache(function(selector2) {
152917 var retEles = [];
152918 var eles = this;
152919 for (var i3 = 0; i3 < eles.length; i3++) {
152920 var node2 = eles[i3];
152921 if (!node2.isNode()) {
152922 continue;
152923 }
152924 var edges2 = node2._private.edges;
152925 for (var j = 0; j < edges2.length; j++) {
152926 var edge = edges2[j];
152927 retEles.push(edge);
152928 }
152929 }
152930 return this.spawn(retEles, true).filter(selector2);
152931 }, "connectedEdges"),
152932 connectedNodes: cache(function(selector2) {
152933 var retEles = [];
152934 var eles = this;
152935 for (var i3 = 0; i3 < eles.length; i3++) {
152936 var edge = eles[i3];
152937 if (!edge.isEdge()) {
152938 continue;
152939 }
152940 retEles.push(edge.source()[0]);
152941 retEles.push(edge.target()[0]);
152942 }
152943 return this.spawn(retEles, true).filter(selector2);
152944 }, "connectedNodes"),
152945 parallelEdges: cache(defineParallelEdgesFunction(), "parallelEdges"),
152946 codirectedEdges: cache(defineParallelEdgesFunction({
152947 codirected: true
152948 }), "codirectedEdges")
152949 });
152950 function defineParallelEdgesFunction(params) {
152951 var defaults3 = {
152952 codirected: false
152953 };
152954 params = extend2({}, defaults3, params);
152955 return function parallelEdgesImpl(selector2) {
152956 var elements2 = [];
152957 var edges2 = this.edges();
152958 var p2 = params;
152959 for (var i3 = 0; i3 < edges2.length; i3++) {
152960 var edge1 = edges2[i3];
152961 var edge1_p = edge1._private;
152962 var src1 = edge1_p.source;
152963 var srcid1 = src1._private.data.id;
152964 var tgtid1 = edge1_p.data.target;
152965 var srcEdges1 = src1._private.edges;
152966 for (var j = 0; j < srcEdges1.length; j++) {
152967 var edge2 = srcEdges1[j];
152968 var edge2data = edge2._private.data;
152969 var tgtid2 = edge2data.target;
152970 var srcid2 = edge2data.source;
152971 var codirected = tgtid2 === tgtid1 && srcid2 === srcid1;
152972 var oppdirected = srcid1 === tgtid2 && tgtid1 === srcid2;
152973 if (p2.codirected && codirected || !p2.codirected && (codirected || oppdirected)) {
152974 elements2.push(edge2);
152975 }
152976 }
152977 }
152978 return this.spawn(elements2, true).filter(selector2);
152979 };
152980 }
152981 extend2(elesfn$2, {
152982 components: function components(root3) {
152983 var self2 = this;
152984 var cy = self2.cy();
152985 var visited = cy.collection();
152986 var unvisited = root3 == null ? self2.nodes() : root3.nodes();
152987 var components2 = [];
152988 if (root3 != null && unvisited.empty()) {
152989 unvisited = root3.sources();
152990 }
152991 var visitInComponent = function visitInComponent2(node2, component) {
152992 visited.merge(node2);
152993 unvisited.unmerge(node2);
152994 component.merge(node2);
152995 };
152996 if (unvisited.empty()) {
152997 return self2.spawn();
152998 }
152999 var _loop = function _loop2() {
153000 var cmpt = cy.collection();
153001 components2.push(cmpt);
153002 var root4 = unvisited[0];
153003 visitInComponent(root4, cmpt);
153004 self2.bfs({
153005 directed: false,
153006 roots: root4,
153007 visit: function visit(v) {
153008 return visitInComponent(v, cmpt);
153009 }
153010 });
153011 cmpt.forEach(function(node2) {
153012 node2.connectedEdges().forEach(function(e) {
153013 if (self2.has(e) && cmpt.has(e.source()) && cmpt.has(e.target())) {
153014 cmpt.merge(e);
153015 }
153016 });
153017 });
153018 };
153019 do {
153020 _loop();
153021 } while (unvisited.length > 0);
153022 return components2;
153023 },
153024 component: function component() {
153025 var ele = this[0];
153026 return ele.cy().mutableElements().components(ele)[0];
153027 }
153028 });
153029 elesfn$2.componentsOf = elesfn$2.components;
153030 var Collection = function Collection2(cy, elements2) {
153031 var unique = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
153032 var removed = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false;
153033 if (cy === void 0) {
153034 error("A collection must have a reference to the core");
153035 return;
153036 }
153037 var map2 = new Map$22();
153038 var createdElements = false;
153039 if (!elements2) {
153040 elements2 = [];
153041 } else if (elements2.length > 0 && plainObject(elements2[0]) && !element2(elements2[0])) {
153042 createdElements = true;
153043 var eles = [];
153044 var elesIds = new Set$12();
153045 for (var i3 = 0, l = elements2.length; i3 < l; i3++) {
153046 var json2 = elements2[i3];
153047 if (json2.data == null) {
153048 json2.data = {};
153049 }
153050 var _data = json2.data;
153051 if (_data.id == null) {
153052 _data.id = uuid();
153053 } else if (cy.hasElementWithId(_data.id) || elesIds.has(_data.id)) {
153054 continue;
153055 }
153056 var ele = new Element(cy, json2, false);
153057 eles.push(ele);
153058 elesIds.add(_data.id);
153059 }
153060 elements2 = eles;
153061 }
153062 this.length = 0;
153063 for (var _i = 0, _l = elements2.length; _i < _l; _i++) {
153064 var element$1 = elements2[_i][0];
153065 if (element$1 == null) {
153066 continue;
153067 }
153068 var id2 = element$1._private.data.id;
153069 if (!unique || !map2.has(id2)) {
153070 if (unique) {
153071 map2.set(id2, {
153072 index: this.length,
153073 ele: element$1
153074 });
153075 }
153076 this[this.length] = element$1;
153077 this.length++;
153078 }
153079 }
153080 this._private = {
153081 eles: this,
153082 cy,
153083 get map() {
153084 if (this.lazyMap == null) {
153085 this.rebuildMap();
153086 }
153087 return this.lazyMap;
153088 },
153089 set map(m) {
153090 this.lazyMap = m;
153091 },
153092 rebuildMap: function rebuildMap() {
153093 var m = this.lazyMap = new Map$22();
153094 var eles2 = this.eles;
153095 for (var _i2 = 0; _i2 < eles2.length; _i2++) {
153096 var _ele = eles2[_i2];
153097 m.set(_ele.id(), {
153098 index: _i2,
153099 ele: _ele
153100 });
153101 }
153102 }
153103 };
153104 if (unique) {
153105 this._private.map = map2;
153106 }
153107 if (createdElements && !removed) {
153108 this.restore();
153109 }
153110 };
153111 var elesfn$1 = Element.prototype = Collection.prototype = Object.create(Array.prototype);
153112 elesfn$1.instanceString = function() {
153113 return "collection";
153114 };
153115 elesfn$1.spawn = function(eles, unique) {
153116 return new Collection(this.cy(), eles, unique);
153117 };
153118 elesfn$1.spawnSelf = function() {
153119 return this.spawn(this);
153120 };
153121 elesfn$1.cy = function() {
153122 return this._private.cy;
153123 };
153124 elesfn$1.renderer = function() {
153125 return this._private.cy.renderer();
153126 };
153127 elesfn$1.element = function() {
153128 return this[0];
153129 };
153130 elesfn$1.collection = function() {
153131 if (collection(this)) {
153132 return this;
153133 } else {
153134 return new Collection(this._private.cy, [this]);
153135 }
153136 };
153137 elesfn$1.unique = function() {
153138 return new Collection(this._private.cy, this, true);
153139 };
153140 elesfn$1.hasElementWithId = function(id2) {
153141 id2 = "" + id2;
153142 return this._private.map.has(id2);
153143 };
153144 elesfn$1.getElementById = function(id2) {
153145 id2 = "" + id2;
153146 var cy = this._private.cy;
153147 var entry = this._private.map.get(id2);
153148 return entry ? entry.ele : new Collection(cy);
153149 };
153150 elesfn$1.$id = elesfn$1.getElementById;
153151 elesfn$1.poolIndex = function() {
153152 var cy = this._private.cy;
153153 var eles = cy._private.elements;
153154 var id2 = this[0]._private.data.id;
153155 return eles._private.map.get(id2).index;
153156 };
153157 elesfn$1.indexOf = function(ele) {
153158 var id2 = ele[0]._private.data.id;
153159 return this._private.map.get(id2).index;
153160 };
153161 elesfn$1.indexOfId = function(id2) {
153162 id2 = "" + id2;
153163 return this._private.map.get(id2).index;
153164 };
153165 elesfn$1.json = function(obj) {
153166 var ele = this.element();
153167 var cy = this.cy();
153168 if (ele == null && obj) {
153169 return this;
153170 }
153171 if (ele == null) {
153172 return void 0;
153173 }
153174 var p2 = ele._private;
153175 if (plainObject(obj)) {
153176 cy.startBatch();
153177 if (obj.data) {
153178 ele.data(obj.data);
153179 var _data2 = p2.data;
153180 if (ele.isEdge()) {
153181 var move = false;
153182 var spec = {};
153183 var src = obj.data.source;
153184 var tgt = obj.data.target;
153185 if (src != null && src != _data2.source) {
153186 spec.source = "" + src;
153187 move = true;
153188 }
153189 if (tgt != null && tgt != _data2.target) {
153190 spec.target = "" + tgt;
153191 move = true;
153192 }
153193 if (move) {
153194 ele = ele.move(spec);
153195 }
153196 } else {
153197 var newParentValSpecd = "parent" in obj.data;
153198 var parent = obj.data.parent;
153199 if (newParentValSpecd && (parent != null || _data2.parent != null) && parent != _data2.parent) {
153200 if (parent === void 0) {
153201 parent = null;
153202 }
153203 if (parent != null) {
153204 parent = "" + parent;
153205 }
153206 ele = ele.move({
153207 parent
153208 });
153209 }
153210 }
153211 }
153212 if (obj.position) {
153213 ele.position(obj.position);
153214 }
153215 var checkSwitch = function checkSwitch2(k, trueFnName, falseFnName) {
153216 var obj_k = obj[k];
153217 if (obj_k != null && obj_k !== p2[k]) {
153218 if (obj_k) {
153219 ele[trueFnName]();
153220 } else {
153221 ele[falseFnName]();
153222 }
153223 }
153224 };
153225 checkSwitch("removed", "remove", "restore");
153226 checkSwitch("selected", "select", "unselect");
153227 checkSwitch("selectable", "selectify", "unselectify");
153228 checkSwitch("locked", "lock", "unlock");
153229 checkSwitch("grabbable", "grabify", "ungrabify");
153230 checkSwitch("pannable", "panify", "unpanify");
153231 if (obj.classes != null) {
153232 ele.classes(obj.classes);
153233 }
153234 cy.endBatch();
153235 return this;
153236 } else if (obj === void 0) {
153237 var json2 = {
153238 data: copy2(p2.data),
153239 position: copy2(p2.position),
153240 group: p2.group,
153241 removed: p2.removed,
153242 selected: p2.selected,
153243 selectable: p2.selectable,
153244 locked: p2.locked,
153245 grabbable: p2.grabbable,
153246 pannable: p2.pannable,
153247 classes: null
153248 };
153249 json2.classes = "";
153250 var i3 = 0;
153251 p2.classes.forEach(function(cls) {
153252 return json2.classes += i3++ === 0 ? cls : " " + cls;
153253 });
153254 return json2;
153255 }
153256 };
153257 elesfn$1.jsons = function() {
153258 var jsons = [];
153259 for (var i3 = 0; i3 < this.length; i3++) {
153260 var ele = this[i3];
153261 var json2 = ele.json();
153262 jsons.push(json2);
153263 }
153264 return jsons;
153265 };
153266 elesfn$1.clone = function() {
153267 var cy = this.cy();
153268 var elesArr = [];
153269 for (var i3 = 0; i3 < this.length; i3++) {
153270 var ele = this[i3];
153271 var json2 = ele.json();
153272 var clone3 = new Element(cy, json2, false);
153273 elesArr.push(clone3);
153274 }
153275 return new Collection(cy, elesArr);
153276 };
153277 elesfn$1.copy = elesfn$1.clone;
153278 elesfn$1.restore = function() {
153279 var notifyRenderer = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
153280 var addToPool = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
153281 var self2 = this;
153282 var cy = self2.cy();
153283 var cy_p = cy._private;
153284 var nodes2 = [];
153285 var edges2 = [];
153286 var elements2;
153287 for (var _i3 = 0, l = self2.length; _i3 < l; _i3++) {
153288 var ele = self2[_i3];
153289 if (addToPool && !ele.removed()) {
153290 continue;
153291 }
153292 if (ele.isNode()) {
153293 nodes2.push(ele);
153294 } else {
153295 edges2.push(ele);
153296 }
153297 }
153298 elements2 = nodes2.concat(edges2);
153299 var i3;
153300 var removeFromElements = function removeFromElements2() {
153301 elements2.splice(i3, 1);
153302 i3--;
153303 };
153304 for (i3 = 0; i3 < elements2.length; i3++) {
153305 var _ele2 = elements2[i3];
153306 var _private = _ele2._private;
153307 var _data3 = _private.data;
153308 _ele2.clearTraversalCache();
153309 if (!addToPool && !_private.removed)
153310 ;
153311 else if (_data3.id === void 0) {
153312 _data3.id = uuid();
153313 } else if (number$12(_data3.id)) {
153314 _data3.id = "" + _data3.id;
153315 } else if (emptyString(_data3.id) || !string2(_data3.id)) {
153316 error("Can not create element with invalid string ID `" + _data3.id + "`");
153317 removeFromElements();
153318 continue;
153319 } else if (cy.hasElementWithId(_data3.id)) {
153320 error("Can not create second element with ID `" + _data3.id + "`");
153321 removeFromElements();
153322 continue;
153323 }
153324 var id2 = _data3.id;
153325 if (_ele2.isNode()) {
153326 var pos = _private.position;
153327 if (pos.x == null) {
153328 pos.x = 0;
153329 }
153330 if (pos.y == null) {
153331 pos.y = 0;
153332 }
153333 }
153334 if (_ele2.isEdge()) {
153335 var edge = _ele2;
153336 var fields = ["source", "target"];
153337 var fieldsLength = fields.length;
153338 var badSourceOrTarget = false;
153339 for (var j = 0; j < fieldsLength; j++) {
153340 var field = fields[j];
153341 var val = _data3[field];
153342 if (number$12(val)) {
153343 val = _data3[field] = "" + _data3[field];
153344 }
153345 if (val == null || val === "") {
153346 error("Can not create edge `" + id2 + "` with unspecified " + field);
153347 badSourceOrTarget = true;
153348 } else if (!cy.hasElementWithId(val)) {
153349 error("Can not create edge `" + id2 + "` with nonexistant " + field + " `" + val + "`");
153350 badSourceOrTarget = true;
153351 }
153352 }
153353 if (badSourceOrTarget) {
153354 removeFromElements();
153355 continue;
153356 }
153357 var src = cy.getElementById(_data3.source);
153358 var tgt = cy.getElementById(_data3.target);
153359 if (src.same(tgt)) {
153360 src._private.edges.push(edge);
153361 } else {
153362 src._private.edges.push(edge);
153363 tgt._private.edges.push(edge);
153364 }
153365 edge._private.source = src;
153366 edge._private.target = tgt;
153367 }
153368 _private.map = new Map$22();
153369 _private.map.set(id2, {
153370 ele: _ele2,
153371 index: 0
153372 });
153373 _private.removed = false;
153374 if (addToPool) {
153375 cy.addToPool(_ele2);
153376 }
153377 }
153378 for (var _i4 = 0; _i4 < nodes2.length; _i4++) {
153379 var node2 = nodes2[_i4];
153380 var _data4 = node2._private.data;
153381 if (number$12(_data4.parent)) {
153382 _data4.parent = "" + _data4.parent;
153383 }
153384 var parentId = _data4.parent;
153385 var specifiedParent = parentId != null;
153386 if (specifiedParent || node2._private.parent) {
153387 var parent = node2._private.parent ? cy.collection().merge(node2._private.parent) : cy.getElementById(parentId);
153388 if (parent.empty()) {
153389 _data4.parent = void 0;
153390 } else if (parent[0].removed()) {
153391 warn("Node added with missing parent, reference to parent removed");
153392 _data4.parent = void 0;
153393 node2._private.parent = null;
153394 } else {
153395 var selfAsParent = false;
153396 var ancestor = parent;
153397 while (!ancestor.empty()) {
153398 if (node2.same(ancestor)) {
153399 selfAsParent = true;
153400 _data4.parent = void 0;
153401 break;
153402 }
153403 ancestor = ancestor.parent();
153404 }
153405 if (!selfAsParent) {
153406 parent[0]._private.children.push(node2);
153407 node2._private.parent = parent[0];
153408 cy_p.hasCompoundNodes = true;
153409 }
153410 }
153411 }
153412 }
153413 if (elements2.length > 0) {
153414 var restored = elements2.length === self2.length ? self2 : new Collection(cy, elements2);
153415 for (var _i5 = 0; _i5 < restored.length; _i5++) {
153416 var _ele3 = restored[_i5];
153417 if (_ele3.isNode()) {
153418 continue;
153419 }
153420 _ele3.parallelEdges().clearTraversalCache();
153421 _ele3.source().clearTraversalCache();
153422 _ele3.target().clearTraversalCache();
153423 }
153424 var toUpdateStyle;
153425 if (cy_p.hasCompoundNodes) {
153426 toUpdateStyle = cy.collection().merge(restored).merge(restored.connectedNodes()).merge(restored.parent());
153427 } else {
153428 toUpdateStyle = restored;
153429 }
153430 toUpdateStyle.dirtyCompoundBoundsCache().dirtyBoundingBoxCache().updateStyle(notifyRenderer);
153431 if (notifyRenderer) {
153432 restored.emitAndNotify("add");
153433 } else if (addToPool) {
153434 restored.emit("add");
153435 }
153436 }
153437 return self2;
153438 };
153439 elesfn$1.removed = function() {
153440 var ele = this[0];
153441 return ele && ele._private.removed;
153442 };
153443 elesfn$1.inside = function() {
153444 var ele = this[0];
153445 return ele && !ele._private.removed;
153446 };
153447 elesfn$1.remove = function() {
153448 var notifyRenderer = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
153449 var removeFromPool = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
153450 var self2 = this;
153451 var elesToRemove = [];
153452 var elesToRemoveIds = {};
153453 var cy = self2._private.cy;
153454 function addConnectedEdges(node2) {
153455 var edges2 = node2._private.edges;
153456 for (var i4 = 0; i4 < edges2.length; i4++) {
153457 add(edges2[i4]);
153458 }
153459 }
153460 function addChildren2(node2) {
153461 var children2 = node2._private.children;
153462 for (var i4 = 0; i4 < children2.length; i4++) {
153463 add(children2[i4]);
153464 }
153465 }
153466 function add(ele2) {
153467 var alreadyAdded = elesToRemoveIds[ele2.id()];
153468 if (removeFromPool && ele2.removed() || alreadyAdded) {
153469 return;
153470 } else {
153471 elesToRemoveIds[ele2.id()] = true;
153472 }
153473 if (ele2.isNode()) {
153474 elesToRemove.push(ele2);
153475 addConnectedEdges(ele2);
153476 addChildren2(ele2);
153477 } else {
153478 elesToRemove.unshift(ele2);
153479 }
153480 }
153481 for (var i3 = 0, l = self2.length; i3 < l; i3++) {
153482 var ele = self2[i3];
153483 add(ele);
153484 }
153485 function removeEdgeRef(node2, edge) {
153486 var connectedEdges = node2._private.edges;
153487 removeFromArray(connectedEdges, edge);
153488 node2.clearTraversalCache();
153489 }
153490 function removeParallelRef(pllEdge2) {
153491 pllEdge2.clearTraversalCache();
153492 }
153493 var alteredParents = [];
153494 alteredParents.ids = {};
153495 function removeChildRef(parent2, ele2) {
153496 ele2 = ele2[0];
153497 parent2 = parent2[0];
153498 var children2 = parent2._private.children;
153499 var pid = parent2.id();
153500 removeFromArray(children2, ele2);
153501 ele2._private.parent = null;
153502 if (!alteredParents.ids[pid]) {
153503 alteredParents.ids[pid] = true;
153504 alteredParents.push(parent2);
153505 }
153506 }
153507 self2.dirtyCompoundBoundsCache();
153508 if (removeFromPool) {
153509 cy.removeFromPool(elesToRemove);
153510 }
153511 for (var _i6 = 0; _i6 < elesToRemove.length; _i6++) {
153512 var _ele4 = elesToRemove[_i6];
153513 if (_ele4.isEdge()) {
153514 var src = _ele4.source()[0];
153515 var tgt = _ele4.target()[0];
153516 removeEdgeRef(src, _ele4);
153517 removeEdgeRef(tgt, _ele4);
153518 var pllEdges = _ele4.parallelEdges();
153519 for (var j = 0; j < pllEdges.length; j++) {
153520 var pllEdge = pllEdges[j];
153521 removeParallelRef(pllEdge);
153522 if (pllEdge.isBundledBezier()) {
153523 pllEdge.dirtyBoundingBoxCache();
153524 }
153525 }
153526 } else {
153527 var parent = _ele4.parent();
153528 if (parent.length !== 0) {
153529 removeChildRef(parent, _ele4);
153530 }
153531 }
153532 if (removeFromPool) {
153533 _ele4._private.removed = true;
153534 }
153535 }
153536 var elesStillInside = cy._private.elements;
153537 cy._private.hasCompoundNodes = false;
153538 for (var _i7 = 0; _i7 < elesStillInside.length; _i7++) {
153539 var _ele5 = elesStillInside[_i7];
153540 if (_ele5.isParent()) {
153541 cy._private.hasCompoundNodes = true;
153542 break;
153543 }
153544 }
153545 var removedElements = new Collection(this.cy(), elesToRemove);
153546 if (removedElements.size() > 0) {
153547 if (notifyRenderer) {
153548 removedElements.emitAndNotify("remove");
153549 } else if (removeFromPool) {
153550 removedElements.emit("remove");
153551 }
153552 }
153553 for (var _i8 = 0; _i8 < alteredParents.length; _i8++) {
153554 var _ele6 = alteredParents[_i8];
153555 if (!removeFromPool || !_ele6.removed()) {
153556 _ele6.updateStyle();
153557 }
153558 }
153559 return removedElements;
153560 };
153561 elesfn$1.move = function(struct) {
153562 var cy = this._private.cy;
153563 var eles = this;
153564 var notifyRenderer = false;
153565 var modifyPool = false;
153566 var toString3 = function toString4(id2) {
153567 return id2 == null ? id2 : "" + id2;
153568 };
153569 if (struct.source !== void 0 || struct.target !== void 0) {
153570 var srcId = toString3(struct.source);
153571 var tgtId = toString3(struct.target);
153572 var srcExists = srcId != null && cy.hasElementWithId(srcId);
153573 var tgtExists = tgtId != null && cy.hasElementWithId(tgtId);
153574 if (srcExists || tgtExists) {
153575 cy.batch(function() {
153576 eles.remove(notifyRenderer, modifyPool);
153577 eles.emitAndNotify("moveout");
153578 for (var i3 = 0; i3 < eles.length; i3++) {
153579 var ele = eles[i3];
153580 var _data5 = ele._private.data;
153581 if (ele.isEdge()) {
153582 if (srcExists) {
153583 _data5.source = srcId;
153584 }
153585 if (tgtExists) {
153586 _data5.target = tgtId;
153587 }
153588 }
153589 }
153590 eles.restore(notifyRenderer, modifyPool);
153591 });
153592 eles.emitAndNotify("move");
153593 }
153594 } else if (struct.parent !== void 0) {
153595 var parentId = toString3(struct.parent);
153596 var parentExists = parentId === null || cy.hasElementWithId(parentId);
153597 if (parentExists) {
153598 var pidToAssign = parentId === null ? void 0 : parentId;
153599 cy.batch(function() {
153600 var updated = eles.remove(notifyRenderer, modifyPool);
153601 updated.emitAndNotify("moveout");
153602 for (var i3 = 0; i3 < eles.length; i3++) {
153603 var ele = eles[i3];
153604 var _data6 = ele._private.data;
153605 if (ele.isNode()) {
153606 _data6.parent = pidToAssign;
153607 }
153608 }
153609 updated.restore(notifyRenderer, modifyPool);
153610 });
153611 eles.emitAndNotify("move");
153612 }
153613 }
153614 return this;
153615 };
153616 [elesfn$j, elesfn$i, elesfn$h, elesfn$g, elesfn$f, data, elesfn$d, dimensions, elesfn$9, elesfn$8, elesfn$7, elesfn$6, elesfn$5, elesfn$4, elesfn$3, elesfn$2].forEach(function(props) {
153617 extend2(elesfn$1, props);
153618 });
153619 var corefn$9 = {
153620 add: function add(opts) {
153621 var elements2;
153622 var cy = this;
153623 if (elementOrCollection(opts)) {
153624 var eles = opts;
153625 if (eles._private.cy === cy) {
153626 elements2 = eles.restore();
153627 } else {
153628 var jsons = [];
153629 for (var i3 = 0; i3 < eles.length; i3++) {
153630 var ele = eles[i3];
153631 jsons.push(ele.json());
153632 }
153633 elements2 = new Collection(cy, jsons);
153634 }
153635 } else if (array2(opts)) {
153636 var _jsons = opts;
153637 elements2 = new Collection(cy, _jsons);
153638 } else if (plainObject(opts) && (array2(opts.nodes) || array2(opts.edges))) {
153639 var elesByGroup = opts;
153640 var _jsons2 = [];
153641 var grs = ["nodes", "edges"];
153642 for (var _i = 0, il = grs.length; _i < il; _i++) {
153643 var group = grs[_i];
153644 var elesArray = elesByGroup[group];
153645 if (array2(elesArray)) {
153646 for (var j = 0, jl = elesArray.length; j < jl; j++) {
153647 var json2 = extend2({
153648 group
153649 }, elesArray[j]);
153650 _jsons2.push(json2);
153651 }
153652 }
153653 }
153654 elements2 = new Collection(cy, _jsons2);
153655 } else {
153656 var _json = opts;
153657 elements2 = new Element(cy, _json).collection();
153658 }
153659 return elements2;
153660 },
153661 remove: function remove2(collection2) {
153662 if (elementOrCollection(collection2))
153663 ;
153664 else if (string2(collection2)) {
153665 var selector2 = collection2;
153666 collection2 = this.$(selector2);
153667 }
153668 return collection2.remove();
153669 }
153670 };
153671 /*! Bezier curve function generator. Copyright Gaetan Renaudeau. MIT License: http://en.wikipedia.org/wiki/MIT_License */
153672 function generateCubicBezier(mX1, mY1, mX2, mY2) {
153673 var NEWTON_ITERATIONS = 4, NEWTON_MIN_SLOPE = 1e-3, SUBDIVISION_PRECISION = 1e-7, SUBDIVISION_MAX_ITERATIONS = 10, kSplineTableSize = 11, kSampleStepSize = 1 / (kSplineTableSize - 1), float32ArraySupported = typeof Float32Array !== "undefined";
153674 if (arguments.length !== 4) {
153675 return false;
153676 }
153677 for (var i3 = 0; i3 < 4; ++i3) {
153678 if (typeof arguments[i3] !== "number" || isNaN(arguments[i3]) || !isFinite(arguments[i3])) {
153679 return false;
153680 }
153681 }
153682 mX1 = Math.min(mX1, 1);
153683 mX2 = Math.min(mX2, 1);
153684 mX1 = Math.max(mX1, 0);
153685 mX2 = Math.max(mX2, 0);
153686 var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);
153687 function A(aA1, aA2) {
153688 return 1 - 3 * aA2 + 3 * aA1;
153689 }
153690 function B(aA1, aA2) {
153691 return 3 * aA2 - 6 * aA1;
153692 }
153693 function C(aA1) {
153694 return 3 * aA1;
153695 }
153696 function calcBezier(aT, aA1, aA2) {
153697 return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;
153698 }
153699 function getSlope(aT, aA1, aA2) {
153700 return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);
153701 }
153702 function newtonRaphsonIterate(aX, aGuessT) {
153703 for (var _i = 0; _i < NEWTON_ITERATIONS; ++_i) {
153704 var currentSlope = getSlope(aGuessT, mX1, mX2);
153705 if (currentSlope === 0) {
153706 return aGuessT;
153707 }
153708 var currentX = calcBezier(aGuessT, mX1, mX2) - aX;
153709 aGuessT -= currentX / currentSlope;
153710 }
153711 return aGuessT;
153712 }
153713 function calcSampleValues() {
153714 for (var _i2 = 0; _i2 < kSplineTableSize; ++_i2) {
153715 mSampleValues[_i2] = calcBezier(_i2 * kSampleStepSize, mX1, mX2);
153716 }
153717 }
153718 function binarySubdivide(aX, aA, aB) {
153719 var currentX, currentT, i4 = 0;
153720 do {
153721 currentT = aA + (aB - aA) / 2;
153722 currentX = calcBezier(currentT, mX1, mX2) - aX;
153723 if (currentX > 0) {
153724 aB = currentT;
153725 } else {
153726 aA = currentT;
153727 }
153728 } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i4 < SUBDIVISION_MAX_ITERATIONS);
153729 return currentT;
153730 }
153731 function getTForX(aX) {
153732 var intervalStart = 0, currentSample = 1, lastSample = kSplineTableSize - 1;
153733 for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {
153734 intervalStart += kSampleStepSize;
153735 }
153736 --currentSample;
153737 var dist3 = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]), guessForT = intervalStart + dist3 * kSampleStepSize, initialSlope = getSlope(guessForT, mX1, mX2);
153738 if (initialSlope >= NEWTON_MIN_SLOPE) {
153739 return newtonRaphsonIterate(aX, guessForT);
153740 } else if (initialSlope === 0) {
153741 return guessForT;
153742 } else {
153743 return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize);
153744 }
153745 }
153746 var _precomputed = false;
153747 function precompute() {
153748 _precomputed = true;
153749 if (mX1 !== mY1 || mX2 !== mY2) {
153750 calcSampleValues();
153751 }
153752 }
153753 var f2 = function f3(aX) {
153754 if (!_precomputed) {
153755 precompute();
153756 }
153757 if (mX1 === mY1 && mX2 === mY2) {
153758 return aX;
153759 }
153760 if (aX === 0) {
153761 return 0;
153762 }
153763 if (aX === 1) {
153764 return 1;
153765 }
153766 return calcBezier(getTForX(aX), mY1, mY2);
153767 };
153768 f2.getControlPoints = function() {
153769 return [{
153770 x: mX1,
153771 y: mY1
153772 }, {
153773 x: mX2,
153774 y: mY2
153775 }];
153776 };
153777 var str2 = "generateBezier(" + [mX1, mY1, mX2, mY2] + ")";
153778 f2.toString = function() {
153779 return str2;
153780 };
153781 return f2;
153782 }
153783 /*! Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */
153784 var generateSpringRK4 = function() {
153785 function springAccelerationForState(state2) {
153786 return -state2.tension * state2.x - state2.friction * state2.v;
153787 }
153788 function springEvaluateStateWithDerivative(initialState, dt, derivative) {
153789 var state2 = {
153790 x: initialState.x + derivative.dx * dt,
153791 v: initialState.v + derivative.dv * dt,
153792 tension: initialState.tension,
153793 friction: initialState.friction
153794 };
153795 return {
153796 dx: state2.v,
153797 dv: springAccelerationForState(state2)
153798 };
153799 }
153800 function springIntegrateState(state2, dt) {
153801 var a = {
153802 dx: state2.v,
153803 dv: springAccelerationForState(state2)
153804 }, b = springEvaluateStateWithDerivative(state2, dt * 0.5, a), c2 = springEvaluateStateWithDerivative(state2, dt * 0.5, b), d = springEvaluateStateWithDerivative(state2, dt, c2), dxdt = 1 / 6 * (a.dx + 2 * (b.dx + c2.dx) + d.dx), dvdt = 1 / 6 * (a.dv + 2 * (b.dv + c2.dv) + d.dv);
153805 state2.x = state2.x + dxdt * dt;
153806 state2.v = state2.v + dvdt * dt;
153807 return state2;
153808 }
153809 return function springRK4Factory(tension, friction, duration) {
153810 var initState = {
153811 x: -1,
153812 v: 0,
153813 tension: null,
153814 friction: null
153815 }, path2 = [0], time_lapsed = 0, tolerance = 1 / 1e4, DT = 16 / 1e3, have_duration, dt, last_state;
153816 tension = parseFloat(tension) || 500;
153817 friction = parseFloat(friction) || 20;
153818 duration = duration || null;
153819 initState.tension = tension;
153820 initState.friction = friction;
153821 have_duration = duration !== null;
153822 if (have_duration) {
153823 time_lapsed = springRK4Factory(tension, friction);
153824 dt = time_lapsed / duration * DT;
153825 } else {
153826 dt = DT;
153827 }
153828 for (; ; ) {
153829 last_state = springIntegrateState(last_state || initState, dt);
153830 path2.push(1 + last_state.x);
153831 time_lapsed += 16;
153832 if (!(Math.abs(last_state.x) > tolerance && Math.abs(last_state.v) > tolerance)) {
153833 break;
153834 }
153835 }
153836 return !have_duration ? time_lapsed : function(percentComplete) {
153837 return path2[percentComplete * (path2.length - 1) | 0];
153838 };
153839 };
153840 }();
153841 var cubicBezier = function cubicBezier2(t12, p1, t22, p2) {
153842 var bezier = generateCubicBezier(t12, p1, t22, p2);
153843 return function(start2, end2, percent) {
153844 return start2 + (end2 - start2) * bezier(percent);
153845 };
153846 };
153847 var easings = {
153848 "linear": function linear2(start2, end2, percent) {
153849 return start2 + (end2 - start2) * percent;
153850 },
153851 // default easings
153852 "ease": cubicBezier(0.25, 0.1, 0.25, 1),
153853 "ease-in": cubicBezier(0.42, 0, 1, 1),
153854 "ease-out": cubicBezier(0, 0, 0.58, 1),
153855 "ease-in-out": cubicBezier(0.42, 0, 0.58, 1),
153856 // sine
153857 "ease-in-sine": cubicBezier(0.47, 0, 0.745, 0.715),
153858 "ease-out-sine": cubicBezier(0.39, 0.575, 0.565, 1),
153859 "ease-in-out-sine": cubicBezier(0.445, 0.05, 0.55, 0.95),
153860 // quad
153861 "ease-in-quad": cubicBezier(0.55, 0.085, 0.68, 0.53),
153862 "ease-out-quad": cubicBezier(0.25, 0.46, 0.45, 0.94),
153863 "ease-in-out-quad": cubicBezier(0.455, 0.03, 0.515, 0.955),
153864 // cubic
153865 "ease-in-cubic": cubicBezier(0.55, 0.055, 0.675, 0.19),
153866 "ease-out-cubic": cubicBezier(0.215, 0.61, 0.355, 1),
153867 "ease-in-out-cubic": cubicBezier(0.645, 0.045, 0.355, 1),
153868 // quart
153869 "ease-in-quart": cubicBezier(0.895, 0.03, 0.685, 0.22),
153870 "ease-out-quart": cubicBezier(0.165, 0.84, 0.44, 1),
153871 "ease-in-out-quart": cubicBezier(0.77, 0, 0.175, 1),
153872 // quint
153873 "ease-in-quint": cubicBezier(0.755, 0.05, 0.855, 0.06),
153874 "ease-out-quint": cubicBezier(0.23, 1, 0.32, 1),
153875 "ease-in-out-quint": cubicBezier(0.86, 0, 0.07, 1),
153876 // expo
153877 "ease-in-expo": cubicBezier(0.95, 0.05, 0.795, 0.035),
153878 "ease-out-expo": cubicBezier(0.19, 1, 0.22, 1),
153879 "ease-in-out-expo": cubicBezier(1, 0, 0, 1),
153880 // circ
153881 "ease-in-circ": cubicBezier(0.6, 0.04, 0.98, 0.335),
153882 "ease-out-circ": cubicBezier(0.075, 0.82, 0.165, 1),
153883 "ease-in-out-circ": cubicBezier(0.785, 0.135, 0.15, 0.86),
153884 // user param easings...
153885 "spring": function spring(tension, friction, duration) {
153886 if (duration === 0) {
153887 return easings.linear;
153888 }
153889 var spring2 = generateSpringRK4(tension, friction, duration);
153890 return function(start2, end2, percent) {
153891 return start2 + (end2 - start2) * spring2(percent);
153892 };
153893 },
153894 "cubic-bezier": cubicBezier
153895 };
153896 function getEasedValue(type2, start2, end2, percent, easingFn) {
153897 if (percent === 1) {
153898 return end2;
153899 }
153900 if (start2 === end2) {
153901 return end2;
153902 }
153903 var val = easingFn(start2, end2, percent);
153904 if (type2 == null) {
153905 return val;
153906 }
153907 if (type2.roundValue || type2.color) {
153908 val = Math.round(val);
153909 }
153910 if (type2.min !== void 0) {
153911 val = Math.max(val, type2.min);
153912 }
153913 if (type2.max !== void 0) {
153914 val = Math.min(val, type2.max);
153915 }
153916 return val;
153917 }
153918 function getValue2(prop, spec) {
153919 if (prop.pfValue != null || prop.value != null) {
153920 if (prop.pfValue != null && (spec == null || spec.type.units !== "%")) {
153921 return prop.pfValue;
153922 } else {
153923 return prop.value;
153924 }
153925 } else {
153926 return prop;
153927 }
153928 }
153929 function ease(startProp, endProp, percent, easingFn, propSpec) {
153930 var type2 = propSpec != null ? propSpec.type : null;
153931 if (percent < 0) {
153932 percent = 0;
153933 } else if (percent > 1) {
153934 percent = 1;
153935 }
153936 var start2 = getValue2(startProp, propSpec);
153937 var end2 = getValue2(endProp, propSpec);
153938 if (number$12(start2) && number$12(end2)) {
153939 return getEasedValue(type2, start2, end2, percent, easingFn);
153940 } else if (array2(start2) && array2(end2)) {
153941 var easedArr = [];
153942 for (var i3 = 0; i3 < end2.length; i3++) {
153943 var si = start2[i3];
153944 var ei = end2[i3];
153945 if (si != null && ei != null) {
153946 var val = getEasedValue(type2, si, ei, percent, easingFn);
153947 easedArr.push(val);
153948 } else {
153949 easedArr.push(ei);
153950 }
153951 }
153952 return easedArr;
153953 }
153954 return void 0;
153955 }
153956 function step$1(self2, ani, now3, isCore) {
153957 var isEles = !isCore;
153958 var _p = self2._private;
153959 var ani_p = ani._private;
153960 var pEasing = ani_p.easing;
153961 var startTime = ani_p.startTime;
153962 var cy = isCore ? self2 : self2.cy();
153963 var style = cy.style();
153964 if (!ani_p.easingImpl) {
153965 if (pEasing == null) {
153966 ani_p.easingImpl = easings["linear"];
153967 } else {
153968 var easingVals;
153969 if (string2(pEasing)) {
153970 var easingProp = style.parse("transition-timing-function", pEasing);
153971 easingVals = easingProp.value;
153972 } else {
153973 easingVals = pEasing;
153974 }
153975 var name2, args;
153976 if (string2(easingVals)) {
153977 name2 = easingVals;
153978 args = [];
153979 } else {
153980 name2 = easingVals[1];
153981 args = easingVals.slice(2).map(function(n) {
153982 return +n;
153983 });
153984 }
153985 if (args.length > 0) {
153986 if (name2 === "spring") {
153987 args.push(ani_p.duration);
153988 }
153989 ani_p.easingImpl = easings[name2].apply(null, args);
153990 } else {
153991 ani_p.easingImpl = easings[name2];
153992 }
153993 }
153994 }
153995 var easing = ani_p.easingImpl;
153996 var percent;
153997 if (ani_p.duration === 0) {
153998 percent = 1;
153999 } else {
154000 percent = (now3 - startTime) / ani_p.duration;
154001 }
154002 if (ani_p.applying) {
154003 percent = ani_p.progress;
154004 }
154005 if (percent < 0) {
154006 percent = 0;
154007 } else if (percent > 1) {
154008 percent = 1;
154009 }
154010 if (ani_p.delay == null) {
154011 var startPos = ani_p.startPosition;
154012 var endPos = ani_p.position;
154013 if (endPos && isEles && !self2.locked()) {
154014 var newPos = {};
154015 if (valid(startPos.x, endPos.x)) {
154016 newPos.x = ease(startPos.x, endPos.x, percent, easing);
154017 }
154018 if (valid(startPos.y, endPos.y)) {
154019 newPos.y = ease(startPos.y, endPos.y, percent, easing);
154020 }
154021 self2.position(newPos);
154022 }
154023 var startPan = ani_p.startPan;
154024 var endPan = ani_p.pan;
154025 var pan = _p.pan;
154026 var animatingPan = endPan != null && isCore;
154027 if (animatingPan) {
154028 if (valid(startPan.x, endPan.x)) {
154029 pan.x = ease(startPan.x, endPan.x, percent, easing);
154030 }
154031 if (valid(startPan.y, endPan.y)) {
154032 pan.y = ease(startPan.y, endPan.y, percent, easing);
154033 }
154034 self2.emit("pan");
154035 }
154036 var startZoom = ani_p.startZoom;
154037 var endZoom = ani_p.zoom;
154038 var animatingZoom = endZoom != null && isCore;
154039 if (animatingZoom) {
154040 if (valid(startZoom, endZoom)) {
154041 _p.zoom = bound(_p.minZoom, ease(startZoom, endZoom, percent, easing), _p.maxZoom);
154042 }
154043 self2.emit("zoom");
154044 }
154045 if (animatingPan || animatingZoom) {
154046 self2.emit("viewport");
154047 }
154048 var props = ani_p.style;
154049 if (props && props.length > 0 && isEles) {
154050 for (var i3 = 0; i3 < props.length; i3++) {
154051 var prop = props[i3];
154052 var _name = prop.name;
154053 var end2 = prop;
154054 var start2 = ani_p.startStyle[_name];
154055 var propSpec = style.properties[start2.name];
154056 var easedVal = ease(start2, end2, percent, easing, propSpec);
154057 style.overrideBypass(self2, _name, easedVal);
154058 }
154059 self2.emit("style");
154060 }
154061 }
154062 ani_p.progress = percent;
154063 return percent;
154064 }
154065 function valid(start2, end2) {
154066 if (start2 == null || end2 == null) {
154067 return false;
154068 }
154069 if (number$12(start2) && number$12(end2)) {
154070 return true;
154071 } else if (start2 && end2) {
154072 return true;
154073 }
154074 return false;
154075 }
154076 function startAnimation(self2, ani, now3, isCore) {
154077 var ani_p = ani._private;
154078 ani_p.started = true;
154079 ani_p.startTime = now3 - ani_p.progress * ani_p.duration;
154080 }
154081 function stepAll(now3, cy) {
154082 var eles = cy._private.aniEles;
154083 var doneEles = [];
154084 function stepOne(ele2, isCore) {
154085 var _p = ele2._private;
154086 var current = _p.animation.current;
154087 var queue = _p.animation.queue;
154088 var ranAnis = false;
154089 if (current.length === 0) {
154090 var next2 = queue.shift();
154091 if (next2) {
154092 current.push(next2);
154093 }
154094 }
154095 var callbacks = function callbacks2(_callbacks) {
154096 for (var j = _callbacks.length - 1; j >= 0; j--) {
154097 var cb = _callbacks[j];
154098 cb();
154099 }
154100 _callbacks.splice(0, _callbacks.length);
154101 };
154102 for (var i3 = current.length - 1; i3 >= 0; i3--) {
154103 var ani = current[i3];
154104 var ani_p = ani._private;
154105 if (ani_p.stopped) {
154106 current.splice(i3, 1);
154107 ani_p.hooked = false;
154108 ani_p.playing = false;
154109 ani_p.started = false;
154110 callbacks(ani_p.frames);
154111 continue;
154112 }
154113 if (!ani_p.playing && !ani_p.applying) {
154114 continue;
154115 }
154116 if (ani_p.playing && ani_p.applying) {
154117 ani_p.applying = false;
154118 }
154119 if (!ani_p.started) {
154120 startAnimation(ele2, ani, now3);
154121 }
154122 step$1(ele2, ani, now3, isCore);
154123 if (ani_p.applying) {
154124 ani_p.applying = false;
154125 }
154126 callbacks(ani_p.frames);
154127 if (ani_p.step != null) {
154128 ani_p.step(now3);
154129 }
154130 if (ani.completed()) {
154131 current.splice(i3, 1);
154132 ani_p.hooked = false;
154133 ani_p.playing = false;
154134 ani_p.started = false;
154135 callbacks(ani_p.completes);
154136 }
154137 ranAnis = true;
154138 }
154139 if (!isCore && current.length === 0 && queue.length === 0) {
154140 doneEles.push(ele2);
154141 }
154142 return ranAnis;
154143 }
154144 var ranEleAni = false;
154145 for (var e = 0; e < eles.length; e++) {
154146 var ele = eles[e];
154147 var handledThisEle = stepOne(ele);
154148 ranEleAni = ranEleAni || handledThisEle;
154149 }
154150 var ranCoreAni = stepOne(cy, true);
154151 if (ranEleAni || ranCoreAni) {
154152 if (eles.length > 0) {
154153 cy.notify("draw", eles);
154154 } else {
154155 cy.notify("draw");
154156 }
154157 }
154158 eles.unmerge(doneEles);
154159 cy.emit("step");
154160 }
154161 var corefn$8 = {
154162 // pull in animation functions
154163 animate: define3.animate(),
154164 animation: define3.animation(),
154165 animated: define3.animated(),
154166 clearQueue: define3.clearQueue(),
154167 delay: define3.delay(),
154168 delayAnimation: define3.delayAnimation(),
154169 stop: define3.stop(),
154170 addToAnimationPool: function addToAnimationPool(eles) {
154171 var cy = this;
154172 if (!cy.styleEnabled()) {
154173 return;
154174 }
154175 cy._private.aniEles.merge(eles);
154176 },
154177 stopAnimationLoop: function stopAnimationLoop() {
154178 this._private.animationsRunning = false;
154179 },
154180 startAnimationLoop: function startAnimationLoop() {
154181 var cy = this;
154182 cy._private.animationsRunning = true;
154183 if (!cy.styleEnabled()) {
154184 return;
154185 }
154186 function headlessStep() {
154187 if (!cy._private.animationsRunning) {
154188 return;
154189 }
154190 requestAnimationFrame2(function animationStep(now3) {
154191 stepAll(now3, cy);
154192 headlessStep();
154193 });
154194 }
154195 var renderer3 = cy.renderer();
154196 if (renderer3 && renderer3.beforeRender) {
154197 renderer3.beforeRender(function rendererAnimationStep(willDraw, now3) {
154198 stepAll(now3, cy);
154199 }, renderer3.beforeRenderPriorities.animations);
154200 } else {
154201 headlessStep();
154202 }
154203 }
154204 };
154205 var emitterOptions = {
154206 qualifierCompare: function qualifierCompare(selector1, selector2) {
154207 if (selector1 == null || selector2 == null) {
154208 return selector1 == null && selector2 == null;
154209 } else {
154210 return selector1.sameText(selector2);
154211 }
154212 },
154213 eventMatches: function eventMatches(cy, listener, eventObj) {
154214 var selector2 = listener.qualifier;
154215 if (selector2 != null) {
154216 return cy !== eventObj.target && element2(eventObj.target) && selector2.matches(eventObj.target);
154217 }
154218 return true;
154219 },
154220 addEventFields: function addEventFields(cy, evt) {
154221 evt.cy = cy;
154222 evt.target = cy;
154223 },
154224 callbackContext: function callbackContext(cy, listener, eventObj) {
154225 return listener.qualifier != null ? eventObj.target : cy;
154226 }
154227 };
154228 var argSelector = function argSelector2(arg) {
154229 if (string2(arg)) {
154230 return new Selector(arg);
154231 } else {
154232 return arg;
154233 }
154234 };
154235 var elesfn = {
154236 createEmitter: function createEmitter() {
154237 var _p = this._private;
154238 if (!_p.emitter) {
154239 _p.emitter = new Emitter(emitterOptions, this);
154240 }
154241 return this;
154242 },
154243 emitter: function emitter() {
154244 return this._private.emitter;
154245 },
154246 on: function on(events, selector2, callback) {
154247 this.emitter().on(events, argSelector(selector2), callback);
154248 return this;
154249 },
154250 removeListener: function removeListener(events, selector2, callback) {
154251 this.emitter().removeListener(events, argSelector(selector2), callback);
154252 return this;
154253 },
154254 removeAllListeners: function removeAllListeners() {
154255 this.emitter().removeAllListeners();
154256 return this;
154257 },
154258 one: function one2(events, selector2, callback) {
154259 this.emitter().one(events, argSelector(selector2), callback);
154260 return this;
154261 },
154262 once: function once(events, selector2, callback) {
154263 this.emitter().one(events, argSelector(selector2), callback);
154264 return this;
154265 },
154266 emit: function emit(events, extraParams) {
154267 this.emitter().emit(events, extraParams);
154268 return this;
154269 },
154270 emitAndNotify: function emitAndNotify(event2, eles) {
154271 this.emit(event2);
154272 this.notify(event2, eles);
154273 return this;
154274 }
154275 };
154276 define3.eventAliasesOn(elesfn);
154277 var corefn$7 = {
154278 png: function png(options2) {
154279 var renderer3 = this._private.renderer;
154280 options2 = options2 || {};
154281 return renderer3.png(options2);
154282 },
154283 jpg: function jpg(options2) {
154284 var renderer3 = this._private.renderer;
154285 options2 = options2 || {};
154286 options2.bg = options2.bg || "#fff";
154287 return renderer3.jpg(options2);
154288 }
154289 };
154290 corefn$7.jpeg = corefn$7.jpg;
154291 var corefn$6 = {
154292 layout: function layout3(options2) {
154293 var cy = this;
154294 if (options2 == null) {
154295 error("Layout options must be specified to make a layout");
154296 return;
154297 }
154298 if (options2.name == null) {
154299 error("A `name` must be specified to make a layout");
154300 return;
154301 }
154302 var name2 = options2.name;
154303 var Layout2 = cy.extension("layout", name2);
154304 if (Layout2 == null) {
154305 error("No such layout `" + name2 + "` found. Did you forget to import it and `cytoscape.use()` it?");
154306 return;
154307 }
154308 var eles;
154309 if (string2(options2.eles)) {
154310 eles = cy.$(options2.eles);
154311 } else {
154312 eles = options2.eles != null ? options2.eles : cy.$();
154313 }
154314 var layout4 = new Layout2(extend2({}, options2, {
154315 cy,
154316 eles
154317 }));
154318 return layout4;
154319 }
154320 };
154321 corefn$6.createLayout = corefn$6.makeLayout = corefn$6.layout;
154322 var corefn$5 = {
154323 notify: function notify(eventName, eventEles) {
154324 var _p = this._private;
154325 if (this.batching()) {
154326 _p.batchNotifications = _p.batchNotifications || {};
154327 var eles = _p.batchNotifications[eventName] = _p.batchNotifications[eventName] || this.collection();
154328 if (eventEles != null) {
154329 eles.merge(eventEles);
154330 }
154331 return;
154332 }
154333 if (!_p.notificationsEnabled) {
154334 return;
154335 }
154336 var renderer3 = this.renderer();
154337 if (this.destroyed() || !renderer3) {
154338 return;
154339 }
154340 renderer3.notify(eventName, eventEles);
154341 },
154342 notifications: function notifications(bool2) {
154343 var p2 = this._private;
154344 if (bool2 === void 0) {
154345 return p2.notificationsEnabled;
154346 } else {
154347 p2.notificationsEnabled = bool2 ? true : false;
154348 }
154349 return this;
154350 },
154351 noNotifications: function noNotifications(callback) {
154352 this.notifications(false);
154353 callback();
154354 this.notifications(true);
154355 },
154356 batching: function batching() {
154357 return this._private.batchCount > 0;
154358 },
154359 startBatch: function startBatch() {
154360 var _p = this._private;
154361 if (_p.batchCount == null) {
154362 _p.batchCount = 0;
154363 }
154364 if (_p.batchCount === 0) {
154365 _p.batchStyleEles = this.collection();
154366 _p.batchNotifications = {};
154367 }
154368 _p.batchCount++;
154369 return this;
154370 },
154371 endBatch: function endBatch() {
154372 var _p = this._private;
154373 if (_p.batchCount === 0) {
154374 return this;
154375 }
154376 _p.batchCount--;
154377 if (_p.batchCount === 0) {
154378 _p.batchStyleEles.updateStyle();
154379 var renderer3 = this.renderer();
154380 Object.keys(_p.batchNotifications).forEach(function(eventName) {
154381 var eles = _p.batchNotifications[eventName];
154382 if (eles.empty()) {
154383 renderer3.notify(eventName);
154384 } else {
154385 renderer3.notify(eventName, eles);
154386 }
154387 });
154388 }
154389 return this;
154390 },
154391 batch: function batch(callback) {
154392 this.startBatch();
154393 callback();
154394 this.endBatch();
154395 return this;
154396 },
154397 // for backwards compatibility
154398 batchData: function batchData(map2) {
154399 var cy = this;
154400 return this.batch(function() {
154401 var ids = Object.keys(map2);
154402 for (var i3 = 0; i3 < ids.length; i3++) {
154403 var id2 = ids[i3];
154404 var data2 = map2[id2];
154405 var ele = cy.getElementById(id2);
154406 ele.data(data2);
154407 }
154408 });
154409 }
154410 };
154411 var rendererDefaults = defaults$g({
154412 hideEdgesOnViewport: false,
154413 textureOnViewport: false,
154414 motionBlur: false,
154415 motionBlurOpacity: 0.05,
154416 pixelRatio: void 0,
154417 desktopTapThreshold: 4,
154418 touchTapThreshold: 8,
154419 wheelSensitivity: 1,
154420 debug: false,
154421 showFps: false
154422 });
154423 var corefn$4 = {
154424 renderTo: function renderTo(context, zoom, pan, pxRatio) {
154425 var r = this._private.renderer;
154426 r.renderTo(context, zoom, pan, pxRatio);
154427 return this;
154428 },
154429 renderer: function renderer3() {
154430 return this._private.renderer;
154431 },
154432 forceRender: function forceRender() {
154433 this.notify("draw");
154434 return this;
154435 },
154436 resize: function resize() {
154437 this.invalidateSize();
154438 this.emitAndNotify("resize");
154439 return this;
154440 },
154441 initRenderer: function initRenderer(options2) {
154442 var cy = this;
154443 var RendererProto = cy.extension("renderer", options2.name);
154444 if (RendererProto == null) {
154445 error("Can not initialise: No such renderer `".concat(options2.name, "` found. Did you forget to import it and `cytoscape.use()` it?"));
154446 return;
154447 }
154448 if (options2.wheelSensitivity !== void 0) {
154449 warn("You have set a custom wheel sensitivity. This will make your app zoom unnaturally when using mainstream mice. You should change this value from the default only if you can guarantee that all your users will use the same hardware and OS configuration as your current machine.");
154450 }
154451 var rOpts = rendererDefaults(options2);
154452 rOpts.cy = cy;
154453 cy._private.renderer = new RendererProto(rOpts);
154454 this.notify("init");
154455 },
154456 destroyRenderer: function destroyRenderer() {
154457 var cy = this;
154458 cy.notify("destroy");
154459 var domEle = cy.container();
154460 if (domEle) {
154461 domEle._cyreg = null;
154462 while (domEle.childNodes.length > 0) {
154463 domEle.removeChild(domEle.childNodes[0]);
154464 }
154465 }
154466 cy._private.renderer = null;
154467 cy.mutableElements().forEach(function(ele) {
154468 var _p = ele._private;
154469 _p.rscratch = {};
154470 _p.rstyle = {};
154471 _p.animation.current = [];
154472 _p.animation.queue = [];
154473 });
154474 },
154475 onRender: function onRender(fn2) {
154476 return this.on("render", fn2);
154477 },
154478 offRender: function offRender(fn2) {
154479 return this.off("render", fn2);
154480 }
154481 };
154482 corefn$4.invalidateDimensions = corefn$4.resize;
154483 var corefn$3 = {
154484 // get a collection
154485 // - empty collection on no args
154486 // - collection of elements in the graph on selector arg
154487 // - guarantee a returned collection when elements or collection specified
154488 collection: function collection2(eles, opts) {
154489 if (string2(eles)) {
154490 return this.$(eles);
154491 } else if (elementOrCollection(eles)) {
154492 return eles.collection();
154493 } else if (array2(eles)) {
154494 if (!opts) {
154495 opts = {};
154496 }
154497 return new Collection(this, eles, opts.unique, opts.removed);
154498 }
154499 return new Collection(this);
154500 },
154501 nodes: function nodes2(selector2) {
154502 var nodes3 = this.$(function(ele) {
154503 return ele.isNode();
154504 });
154505 if (selector2) {
154506 return nodes3.filter(selector2);
154507 }
154508 return nodes3;
154509 },
154510 edges: function edges2(selector2) {
154511 var edges3 = this.$(function(ele) {
154512 return ele.isEdge();
154513 });
154514 if (selector2) {
154515 return edges3.filter(selector2);
154516 }
154517 return edges3;
154518 },
154519 // search the graph like jQuery
154520 $: function $(selector2) {
154521 var eles = this._private.elements;
154522 if (selector2) {
154523 return eles.filter(selector2);
154524 } else {
154525 return eles.spawnSelf();
154526 }
154527 },
154528 mutableElements: function mutableElements() {
154529 return this._private.elements;
154530 }
154531 };
154532 corefn$3.elements = corefn$3.filter = corefn$3.$;
154533 var styfn$8 = {};
154534 var TRUE = "t";
154535 var FALSE = "f";
154536 styfn$8.apply = function(eles) {
154537 var self2 = this;
154538 var _p = self2._private;
154539 var cy = _p.cy;
154540 var updatedEles = cy.collection();
154541 for (var ie = 0; ie < eles.length; ie++) {
154542 var ele = eles[ie];
154543 var cxtMeta = self2.getContextMeta(ele);
154544 if (cxtMeta.empty) {
154545 continue;
154546 }
154547 var cxtStyle = self2.getContextStyle(cxtMeta);
154548 var app = self2.applyContextStyle(cxtMeta, cxtStyle, ele);
154549 if (ele._private.appliedInitStyle) {
154550 self2.updateTransitions(ele, app.diffProps);
154551 } else {
154552 ele._private.appliedInitStyle = true;
154553 }
154554 var hintsDiff = self2.updateStyleHints(ele);
154555 if (hintsDiff) {
154556 updatedEles.push(ele);
154557 }
154558 }
154559 return updatedEles;
154560 };
154561 styfn$8.getPropertiesDiff = function(oldCxtKey, newCxtKey) {
154562 var self2 = this;
154563 var cache2 = self2._private.propDiffs = self2._private.propDiffs || {};
154564 var dualCxtKey = oldCxtKey + "-" + newCxtKey;
154565 var cachedVal = cache2[dualCxtKey];
154566 if (cachedVal) {
154567 return cachedVal;
154568 }
154569 var diffProps = [];
154570 var addedProp = {};
154571 for (var i3 = 0; i3 < self2.length; i3++) {
154572 var cxt = self2[i3];
154573 var oldHasCxt = oldCxtKey[i3] === TRUE;
154574 var newHasCxt = newCxtKey[i3] === TRUE;
154575 var cxtHasDiffed = oldHasCxt !== newHasCxt;
154576 var cxtHasMappedProps = cxt.mappedProperties.length > 0;
154577 if (cxtHasDiffed || newHasCxt && cxtHasMappedProps) {
154578 var props = void 0;
154579 if (cxtHasDiffed && cxtHasMappedProps) {
154580 props = cxt.properties;
154581 } else if (cxtHasDiffed) {
154582 props = cxt.properties;
154583 } else if (cxtHasMappedProps) {
154584 props = cxt.mappedProperties;
154585 }
154586 for (var j = 0; j < props.length; j++) {
154587 var prop = props[j];
154588 var name2 = prop.name;
154589 var laterCxtOverrides = false;
154590 for (var k = i3 + 1; k < self2.length; k++) {
154591 var laterCxt = self2[k];
154592 var hasLaterCxt = newCxtKey[k] === TRUE;
154593 if (!hasLaterCxt) {
154594 continue;
154595 }
154596 laterCxtOverrides = laterCxt.properties[prop.name] != null;
154597 if (laterCxtOverrides) {
154598 break;
154599 }
154600 }
154601 if (!addedProp[name2] && !laterCxtOverrides) {
154602 addedProp[name2] = true;
154603 diffProps.push(name2);
154604 }
154605 }
154606 }
154607 }
154608 cache2[dualCxtKey] = diffProps;
154609 return diffProps;
154610 };
154611 styfn$8.getContextMeta = function(ele) {
154612 var self2 = this;
154613 var cxtKey = "";
154614 var diffProps;
154615 var prevKey = ele._private.styleCxtKey || "";
154616 for (var i3 = 0; i3 < self2.length; i3++) {
154617 var context = self2[i3];
154618 var contextSelectorMatches = context.selector && context.selector.matches(ele);
154619 if (contextSelectorMatches) {
154620 cxtKey += TRUE;
154621 } else {
154622 cxtKey += FALSE;
154623 }
154624 }
154625 diffProps = self2.getPropertiesDiff(prevKey, cxtKey);
154626 ele._private.styleCxtKey = cxtKey;
154627 return {
154628 key: cxtKey,
154629 diffPropNames: diffProps,
154630 empty: diffProps.length === 0
154631 };
154632 };
154633 styfn$8.getContextStyle = function(cxtMeta) {
154634 var cxtKey = cxtMeta.key;
154635 var self2 = this;
154636 var cxtStyles = this._private.contextStyles = this._private.contextStyles || {};
154637 if (cxtStyles[cxtKey]) {
154638 return cxtStyles[cxtKey];
154639 }
154640 var style = {
154641 _private: {
154642 key: cxtKey
154643 }
154644 };
154645 for (var i3 = 0; i3 < self2.length; i3++) {
154646 var cxt = self2[i3];
154647 var hasCxt = cxtKey[i3] === TRUE;
154648 if (!hasCxt) {
154649 continue;
154650 }
154651 for (var j = 0; j < cxt.properties.length; j++) {
154652 var prop = cxt.properties[j];
154653 style[prop.name] = prop;
154654 }
154655 }
154656 cxtStyles[cxtKey] = style;
154657 return style;
154658 };
154659 styfn$8.applyContextStyle = function(cxtMeta, cxtStyle, ele) {
154660 var self2 = this;
154661 var diffProps = cxtMeta.diffPropNames;
154662 var retDiffProps = {};
154663 var types = self2.types;
154664 for (var i3 = 0; i3 < diffProps.length; i3++) {
154665 var diffPropName = diffProps[i3];
154666 var cxtProp = cxtStyle[diffPropName];
154667 var eleProp = ele.pstyle(diffPropName);
154668 if (!cxtProp) {
154669 if (!eleProp) {
154670 continue;
154671 } else if (eleProp.bypass) {
154672 cxtProp = {
154673 name: diffPropName,
154674 deleteBypassed: true
154675 };
154676 } else {
154677 cxtProp = {
154678 name: diffPropName,
154679 "delete": true
154680 };
154681 }
154682 }
154683 if (eleProp === cxtProp) {
154684 continue;
154685 }
154686 if (cxtProp.mapped === types.fn && eleProp != null && eleProp.mapping != null && eleProp.mapping.value === cxtProp.value) {
154687 var mapping = eleProp.mapping;
154688 var fnValue = mapping.fnValue = cxtProp.value(ele);
154689 if (fnValue === mapping.prevFnValue) {
154690 continue;
154691 }
154692 }
154693 var retDiffProp = retDiffProps[diffPropName] = {
154694 prev: eleProp
154695 };
154696 self2.applyParsedProperty(ele, cxtProp);
154697 retDiffProp.next = ele.pstyle(diffPropName);
154698 if (retDiffProp.next && retDiffProp.next.bypass) {
154699 retDiffProp.next = retDiffProp.next.bypassed;
154700 }
154701 }
154702 return {
154703 diffProps: retDiffProps
154704 };
154705 };
154706 styfn$8.updateStyleHints = function(ele) {
154707 var _p = ele._private;
154708 var self2 = this;
154709 var propNames = self2.propertyGroupNames;
154710 var propGrKeys = self2.propertyGroupKeys;
154711 var propHash = function propHash2(ele2, propNames2, seedKey) {
154712 return self2.getPropertiesHash(ele2, propNames2, seedKey);
154713 };
154714 var oldStyleKey = _p.styleKey;
154715 if (ele.removed()) {
154716 return false;
154717 }
154718 var isNode = _p.group === "nodes";
154719 var overriddenStyles = ele._private.style;
154720 propNames = Object.keys(overriddenStyles);
154721 for (var i3 = 0; i3 < propGrKeys.length; i3++) {
154722 var grKey = propGrKeys[i3];
154723 _p.styleKeys[grKey] = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];
154724 }
154725 var updateGrKey1 = function updateGrKey12(val, grKey2) {
154726 return _p.styleKeys[grKey2][0] = hashInt(val, _p.styleKeys[grKey2][0]);
154727 };
154728 var updateGrKey2 = function updateGrKey22(val, grKey2) {
154729 return _p.styleKeys[grKey2][1] = hashIntAlt(val, _p.styleKeys[grKey2][1]);
154730 };
154731 var updateGrKey = function updateGrKey3(val, grKey2) {
154732 updateGrKey1(val, grKey2);
154733 updateGrKey2(val, grKey2);
154734 };
154735 var updateGrKeyWStr = function updateGrKeyWStr2(strVal, grKey2) {
154736 for (var j = 0; j < strVal.length; j++) {
154737 var ch = strVal.charCodeAt(j);
154738 updateGrKey1(ch, grKey2);
154739 updateGrKey2(ch, grKey2);
154740 }
154741 };
154742 var N = 2e9;
154743 var cleanNum = function cleanNum2(val) {
154744 return -128 < val && val < 128 && Math.floor(val) !== val ? N - (val * 1024 | 0) : val;
154745 };
154746 for (var _i = 0; _i < propNames.length; _i++) {
154747 var name2 = propNames[_i];
154748 var parsedProp = overriddenStyles[name2];
154749 if (parsedProp == null) {
154750 continue;
154751 }
154752 var propInfo = this.properties[name2];
154753 var type2 = propInfo.type;
154754 var _grKey = propInfo.groupKey;
154755 var normalizedNumberVal = void 0;
154756 if (propInfo.hashOverride != null) {
154757 normalizedNumberVal = propInfo.hashOverride(ele, parsedProp);
154758 } else if (parsedProp.pfValue != null) {
154759 normalizedNumberVal = parsedProp.pfValue;
154760 }
154761 var numberVal = propInfo.enums == null ? parsedProp.value : null;
154762 var haveNormNum = normalizedNumberVal != null;
154763 var haveUnitedNum = numberVal != null;
154764 var haveNum = haveNormNum || haveUnitedNum;
154765 var units = parsedProp.units;
154766 if (type2.number && haveNum && !type2.multiple) {
154767 var v = haveNormNum ? normalizedNumberVal : numberVal;
154768 updateGrKey(cleanNum(v), _grKey);
154769 if (!haveNormNum && units != null) {
154770 updateGrKeyWStr(units, _grKey);
154771 }
154772 } else {
154773 updateGrKeyWStr(parsedProp.strValue, _grKey);
154774 }
154775 }
154776 var hash = [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT];
154777 for (var _i2 = 0; _i2 < propGrKeys.length; _i2++) {
154778 var _grKey2 = propGrKeys[_i2];
154779 var grHash = _p.styleKeys[_grKey2];
154780 hash[0] = hashInt(grHash[0], hash[0]);
154781 hash[1] = hashIntAlt(grHash[1], hash[1]);
154782 }
154783 _p.styleKey = combineHashes(hash[0], hash[1]);
154784 var sk = _p.styleKeys;
154785 _p.labelDimsKey = combineHashesArray(sk.labelDimensions);
154786 var labelKeys = propHash(ele, ["label"], sk.labelDimensions);
154787 _p.labelKey = combineHashesArray(labelKeys);
154788 _p.labelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, labelKeys));
154789 if (!isNode) {
154790 var sourceLabelKeys = propHash(ele, ["source-label"], sk.labelDimensions);
154791 _p.sourceLabelKey = combineHashesArray(sourceLabelKeys);
154792 _p.sourceLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, sourceLabelKeys));
154793 var targetLabelKeys = propHash(ele, ["target-label"], sk.labelDimensions);
154794 _p.targetLabelKey = combineHashesArray(targetLabelKeys);
154795 _p.targetLabelStyleKey = combineHashesArray(hashArrays(sk.commonLabel, targetLabelKeys));
154796 }
154797 if (isNode) {
154798 var _p$styleKeys = _p.styleKeys, nodeBody = _p$styleKeys.nodeBody, nodeBorder = _p$styleKeys.nodeBorder, backgroundImage = _p$styleKeys.backgroundImage, compound = _p$styleKeys.compound, pie2 = _p$styleKeys.pie;
154799 var nodeKeys = [nodeBody, nodeBorder, backgroundImage, compound, pie2].filter(function(k) {
154800 return k != null;
154801 }).reduce(hashArrays, [DEFAULT_HASH_SEED, DEFAULT_HASH_SEED_ALT]);
154802 _p.nodeKey = combineHashesArray(nodeKeys);
154803 _p.hasPie = pie2 != null && pie2[0] !== DEFAULT_HASH_SEED && pie2[1] !== DEFAULT_HASH_SEED_ALT;
154804 }
154805 return oldStyleKey !== _p.styleKey;
154806 };
154807 styfn$8.clearStyleHints = function(ele) {
154808 var _p = ele._private;
154809 _p.styleCxtKey = "";
154810 _p.styleKeys = {};
154811 _p.styleKey = null;
154812 _p.labelKey = null;
154813 _p.labelStyleKey = null;
154814 _p.sourceLabelKey = null;
154815 _p.sourceLabelStyleKey = null;
154816 _p.targetLabelKey = null;
154817 _p.targetLabelStyleKey = null;
154818 _p.nodeKey = null;
154819 _p.hasPie = null;
154820 };
154821 styfn$8.applyParsedProperty = function(ele, parsedProp) {
154822 var self2 = this;
154823 var prop = parsedProp;
154824 var style = ele._private.style;
154825 var flatProp;
154826 var types = self2.types;
154827 var type2 = self2.properties[prop.name].type;
154828 var propIsBypass = prop.bypass;
154829 var origProp = style[prop.name];
154830 var origPropIsBypass = origProp && origProp.bypass;
154831 var _p = ele._private;
154832 var flatPropMapping = "mapping";
154833 var getVal = function getVal2(p2) {
154834 if (p2 == null) {
154835 return null;
154836 } else if (p2.pfValue != null) {
154837 return p2.pfValue;
154838 } else {
154839 return p2.value;
154840 }
154841 };
154842 var checkTriggers = function checkTriggers2() {
154843 var fromVal = getVal(origProp);
154844 var toVal = getVal(prop);
154845 self2.checkTriggers(ele, prop.name, fromVal, toVal);
154846 };
154847 if (prop && prop.name.substr(0, 3) === "pie") {
154848 warn("The pie style properties are deprecated. Create charts using background images instead.");
154849 }
154850 if (parsedProp.name === "curve-style" && ele.isEdge() && // loops must be bundled beziers
154851 (parsedProp.value !== "bezier" && ele.isLoop() || // edges connected to compound nodes can not be haystacks
154852 parsedProp.value === "haystack" && (ele.source().isParent() || ele.target().isParent()))) {
154853 prop = parsedProp = this.parse(parsedProp.name, "bezier", propIsBypass);
154854 }
154855 if (prop["delete"]) {
154856 style[prop.name] = void 0;
154857 checkTriggers();
154858 return true;
154859 }
154860 if (prop.deleteBypassed) {
154861 if (!origProp) {
154862 checkTriggers();
154863 return true;
154864 } else if (origProp.bypass) {
154865 origProp.bypassed = void 0;
154866 checkTriggers();
154867 return true;
154868 } else {
154869 return false;
154870 }
154871 }
154872 if (prop.deleteBypass) {
154873 if (!origProp) {
154874 checkTriggers();
154875 return true;
154876 } else if (origProp.bypass) {
154877 style[prop.name] = origProp.bypassed;
154878 checkTriggers();
154879 return true;
154880 } else {
154881 return false;
154882 }
154883 }
154884 var printMappingErr = function printMappingErr2() {
154885 warn("Do not assign mappings to elements without corresponding data (i.e. ele `" + ele.id() + "` has no mapping for property `" + prop.name + "` with data field `" + prop.field + "`); try a `[" + prop.field + "]` selector to limit scope to elements with `" + prop.field + "` defined");
154886 };
154887 switch (prop.mapped) {
154888 case types.mapData: {
154889 var fields = prop.field.split(".");
154890 var fieldVal = _p.data;
154891 for (var i3 = 0; i3 < fields.length && fieldVal; i3++) {
154892 var field = fields[i3];
154893 fieldVal = fieldVal[field];
154894 }
154895 if (fieldVal == null) {
154896 printMappingErr();
154897 return false;
154898 }
154899 var percent;
154900 if (!number$12(fieldVal)) {
154901 warn("Do not use continuous mappers without specifying numeric data (i.e. `" + prop.field + ": " + fieldVal + "` for `" + ele.id() + "` is non-numeric)");
154902 return false;
154903 } else {
154904 var fieldWidth = prop.fieldMax - prop.fieldMin;
154905 if (fieldWidth === 0) {
154906 percent = 0;
154907 } else {
154908 percent = (fieldVal - prop.fieldMin) / fieldWidth;
154909 }
154910 }
154911 if (percent < 0) {
154912 percent = 0;
154913 } else if (percent > 1) {
154914 percent = 1;
154915 }
154916 if (type2.color) {
154917 var r1 = prop.valueMin[0];
154918 var r2 = prop.valueMax[0];
154919 var g1 = prop.valueMin[1];
154920 var g2 = prop.valueMax[1];
154921 var b1 = prop.valueMin[2];
154922 var b2 = prop.valueMax[2];
154923 var a1 = prop.valueMin[3] == null ? 1 : prop.valueMin[3];
154924 var a2 = prop.valueMax[3] == null ? 1 : prop.valueMax[3];
154925 var clr = [Math.round(r1 + (r2 - r1) * percent), Math.round(g1 + (g2 - g1) * percent), Math.round(b1 + (b2 - b1) * percent), Math.round(a1 + (a2 - a1) * percent)];
154926 flatProp = {
154927 // colours are simple, so just create the flat property instead of expensive string parsing
154928 bypass: prop.bypass,
154929 // we're a bypass if the mapping property is a bypass
154930 name: prop.name,
154931 value: clr,
154932 strValue: "rgb(" + clr[0] + ", " + clr[1] + ", " + clr[2] + ")"
154933 };
154934 } else if (type2.number) {
154935 var calcValue = prop.valueMin + (prop.valueMax - prop.valueMin) * percent;
154936 flatProp = this.parse(prop.name, calcValue, prop.bypass, flatPropMapping);
154937 } else {
154938 return false;
154939 }
154940 if (!flatProp) {
154941 printMappingErr();
154942 return false;
154943 }
154944 flatProp.mapping = prop;
154945 prop = flatProp;
154946 break;
154947 }
154948 case types.data: {
154949 var _fields = prop.field.split(".");
154950 var _fieldVal = _p.data;
154951 for (var _i3 = 0; _i3 < _fields.length && _fieldVal; _i3++) {
154952 var _field = _fields[_i3];
154953 _fieldVal = _fieldVal[_field];
154954 }
154955 if (_fieldVal != null) {
154956 flatProp = this.parse(prop.name, _fieldVal, prop.bypass, flatPropMapping);
154957 }
154958 if (!flatProp) {
154959 printMappingErr();
154960 return false;
154961 }
154962 flatProp.mapping = prop;
154963 prop = flatProp;
154964 break;
154965 }
154966 case types.fn: {
154967 var fn2 = prop.value;
154968 var fnRetVal = prop.fnValue != null ? prop.fnValue : fn2(ele);
154969 prop.prevFnValue = fnRetVal;
154970 if (fnRetVal == null) {
154971 warn("Custom function mappers may not return null (i.e. `" + prop.name + "` for ele `" + ele.id() + "` is null)");
154972 return false;
154973 }
154974 flatProp = this.parse(prop.name, fnRetVal, prop.bypass, flatPropMapping);
154975 if (!flatProp) {
154976 warn("Custom function mappers may not return invalid values for the property type (i.e. `" + prop.name + "` for ele `" + ele.id() + "` is invalid)");
154977 return false;
154978 }
154979 flatProp.mapping = copy2(prop);
154980 prop = flatProp;
154981 break;
154982 }
154983 case void 0:
154984 break;
154985 default:
154986 return false;
154987 }
154988 if (propIsBypass) {
154989 if (origPropIsBypass) {
154990 prop.bypassed = origProp.bypassed;
154991 } else {
154992 prop.bypassed = origProp;
154993 }
154994 style[prop.name] = prop;
154995 } else {
154996 if (origPropIsBypass) {
154997 origProp.bypassed = prop;
154998 } else {
154999 style[prop.name] = prop;
155000 }
155001 }
155002 checkTriggers();
155003 return true;
155004 };
155005 styfn$8.cleanElements = function(eles, keepBypasses) {
155006 for (var i3 = 0; i3 < eles.length; i3++) {
155007 var ele = eles[i3];
155008 this.clearStyleHints(ele);
155009 ele.dirtyCompoundBoundsCache();
155010 ele.dirtyBoundingBoxCache();
155011 if (!keepBypasses) {
155012 ele._private.style = {};
155013 } else {
155014 var style = ele._private.style;
155015 var propNames = Object.keys(style);
155016 for (var j = 0; j < propNames.length; j++) {
155017 var propName = propNames[j];
155018 var eleProp = style[propName];
155019 if (eleProp != null) {
155020 if (eleProp.bypass) {
155021 eleProp.bypassed = null;
155022 } else {
155023 style[propName] = null;
155024 }
155025 }
155026 }
155027 }
155028 }
155029 };
155030 styfn$8.update = function() {
155031 var cy = this._private.cy;
155032 var eles = cy.mutableElements();
155033 eles.updateStyle();
155034 };
155035 styfn$8.updateTransitions = function(ele, diffProps) {
155036 var self2 = this;
155037 var _p = ele._private;
155038 var props = ele.pstyle("transition-property").value;
155039 var duration = ele.pstyle("transition-duration").pfValue;
155040 var delay = ele.pstyle("transition-delay").pfValue;
155041 if (props.length > 0 && duration > 0) {
155042 var style = {};
155043 var anyPrev = false;
155044 for (var i3 = 0; i3 < props.length; i3++) {
155045 var prop = props[i3];
155046 var styProp = ele.pstyle(prop);
155047 var diffProp = diffProps[prop];
155048 if (!diffProp) {
155049 continue;
155050 }
155051 var prevProp = diffProp.prev;
155052 var fromProp = prevProp;
155053 var toProp = diffProp.next != null ? diffProp.next : styProp;
155054 var diff = false;
155055 var initVal = void 0;
155056 var initDt = 1e-6;
155057 if (!fromProp) {
155058 continue;
155059 }
155060 if (number$12(fromProp.pfValue) && number$12(toProp.pfValue)) {
155061 diff = toProp.pfValue - fromProp.pfValue;
155062 initVal = fromProp.pfValue + initDt * diff;
155063 } else if (number$12(fromProp.value) && number$12(toProp.value)) {
155064 diff = toProp.value - fromProp.value;
155065 initVal = fromProp.value + initDt * diff;
155066 } else if (array2(fromProp.value) && array2(toProp.value)) {
155067 diff = fromProp.value[0] !== toProp.value[0] || fromProp.value[1] !== toProp.value[1] || fromProp.value[2] !== toProp.value[2];
155068 initVal = fromProp.strValue;
155069 }
155070 if (diff) {
155071 style[prop] = toProp.strValue;
155072 this.applyBypass(ele, prop, initVal);
155073 anyPrev = true;
155074 }
155075 }
155076 if (!anyPrev) {
155077 return;
155078 }
155079 _p.transitioning = true;
155080 new Promise$12(function(resolve2) {
155081 if (delay > 0) {
155082 ele.delayAnimation(delay).play().promise().then(resolve2);
155083 } else {
155084 resolve2();
155085 }
155086 }).then(function() {
155087 return ele.animation({
155088 style,
155089 duration,
155090 easing: ele.pstyle("transition-timing-function").value,
155091 queue: false
155092 }).play().promise();
155093 }).then(function() {
155094 self2.removeBypasses(ele, props);
155095 ele.emitAndNotify("style");
155096 _p.transitioning = false;
155097 });
155098 } else if (_p.transitioning) {
155099 this.removeBypasses(ele, props);
155100 ele.emitAndNotify("style");
155101 _p.transitioning = false;
155102 }
155103 };
155104 styfn$8.checkTrigger = function(ele, name2, fromValue, toValue, getTrigger, onTrigger) {
155105 var prop = this.properties[name2];
155106 var triggerCheck = getTrigger(prop);
155107 if (triggerCheck != null && triggerCheck(fromValue, toValue)) {
155108 onTrigger(prop);
155109 }
155110 };
155111 styfn$8.checkZOrderTrigger = function(ele, name2, fromValue, toValue) {
155112 var _this = this;
155113 this.checkTrigger(ele, name2, fromValue, toValue, function(prop) {
155114 return prop.triggersZOrder;
155115 }, function() {
155116 _this._private.cy.notify("zorder", ele);
155117 });
155118 };
155119 styfn$8.checkBoundsTrigger = function(ele, name2, fromValue, toValue) {
155120 this.checkTrigger(ele, name2, fromValue, toValue, function(prop) {
155121 return prop.triggersBounds;
155122 }, function(prop) {
155123 ele.dirtyCompoundBoundsCache();
155124 ele.dirtyBoundingBoxCache();
155125 if (
155126 // only for beziers -- so performance of other edges isn't affected
155127 prop.triggersBoundsOfParallelBeziers && (name2 === "curve-style" && (fromValue === "bezier" || toValue === "bezier") || name2 === "display" && (fromValue === "none" || toValue === "none"))
155128 ) {
155129 ele.parallelEdges().forEach(function(pllEdge) {
155130 if (pllEdge.isBundledBezier()) {
155131 pllEdge.dirtyBoundingBoxCache();
155132 }
155133 });
155134 }
155135 });
155136 };
155137 styfn$8.checkTriggers = function(ele, name2, fromValue, toValue) {
155138 ele.dirtyStyleCache();
155139 this.checkZOrderTrigger(ele, name2, fromValue, toValue);
155140 this.checkBoundsTrigger(ele, name2, fromValue, toValue);
155141 };
155142 var styfn$7 = {};
155143 styfn$7.applyBypass = function(eles, name2, value, updateTransitions) {
155144 var self2 = this;
155145 var props = [];
155146 var isBypass = true;
155147 if (name2 === "*" || name2 === "**") {
155148 if (value !== void 0) {
155149 for (var i3 = 0; i3 < self2.properties.length; i3++) {
155150 var prop = self2.properties[i3];
155151 var _name = prop.name;
155152 var parsedProp = this.parse(_name, value, true);
155153 if (parsedProp) {
155154 props.push(parsedProp);
155155 }
155156 }
155157 }
155158 } else if (string2(name2)) {
155159 var _parsedProp = this.parse(name2, value, true);
155160 if (_parsedProp) {
155161 props.push(_parsedProp);
155162 }
155163 } else if (plainObject(name2)) {
155164 var specifiedProps = name2;
155165 updateTransitions = value;
155166 var names = Object.keys(specifiedProps);
155167 for (var _i = 0; _i < names.length; _i++) {
155168 var _name2 = names[_i];
155169 var _value = specifiedProps[_name2];
155170 if (_value === void 0) {
155171 _value = specifiedProps[dash2camel(_name2)];
155172 }
155173 if (_value !== void 0) {
155174 var _parsedProp2 = this.parse(_name2, _value, true);
155175 if (_parsedProp2) {
155176 props.push(_parsedProp2);
155177 }
155178 }
155179 }
155180 } else {
155181 return false;
155182 }
155183 if (props.length === 0) {
155184 return false;
155185 }
155186 var ret = false;
155187 for (var _i2 = 0; _i2 < eles.length; _i2++) {
155188 var ele = eles[_i2];
155189 var diffProps = {};
155190 var diffProp = void 0;
155191 for (var j = 0; j < props.length; j++) {
155192 var _prop = props[j];
155193 if (updateTransitions) {
155194 var prevProp = ele.pstyle(_prop.name);
155195 diffProp = diffProps[_prop.name] = {
155196 prev: prevProp
155197 };
155198 }
155199 ret = this.applyParsedProperty(ele, copy2(_prop)) || ret;
155200 if (updateTransitions) {
155201 diffProp.next = ele.pstyle(_prop.name);
155202 }
155203 }
155204 if (ret) {
155205 this.updateStyleHints(ele);
155206 }
155207 if (updateTransitions) {
155208 this.updateTransitions(ele, diffProps, isBypass);
155209 }
155210 }
155211 return ret;
155212 };
155213 styfn$7.overrideBypass = function(eles, name2, value) {
155214 name2 = camel2dash(name2);
155215 for (var i3 = 0; i3 < eles.length; i3++) {
155216 var ele = eles[i3];
155217 var prop = ele._private.style[name2];
155218 var type2 = this.properties[name2].type;
155219 var isColor = type2.color;
155220 var isMulti = type2.mutiple;
155221 var oldValue = !prop ? null : prop.pfValue != null ? prop.pfValue : prop.value;
155222 if (!prop || !prop.bypass) {
155223 this.applyBypass(ele, name2, value);
155224 } else {
155225 prop.value = value;
155226 if (prop.pfValue != null) {
155227 prop.pfValue = value;
155228 }
155229 if (isColor) {
155230 prop.strValue = "rgb(" + value.join(",") + ")";
155231 } else if (isMulti) {
155232 prop.strValue = value.join(" ");
155233 } else {
155234 prop.strValue = "" + value;
155235 }
155236 this.updateStyleHints(ele);
155237 }
155238 this.checkTriggers(ele, name2, oldValue, value);
155239 }
155240 };
155241 styfn$7.removeAllBypasses = function(eles, updateTransitions) {
155242 return this.removeBypasses(eles, this.propertyNames, updateTransitions);
155243 };
155244 styfn$7.removeBypasses = function(eles, props, updateTransitions) {
155245 var isBypass = true;
155246 for (var j = 0; j < eles.length; j++) {
155247 var ele = eles[j];
155248 var diffProps = {};
155249 for (var i3 = 0; i3 < props.length; i3++) {
155250 var name2 = props[i3];
155251 var prop = this.properties[name2];
155252 var prevProp = ele.pstyle(prop.name);
155253 if (!prevProp || !prevProp.bypass) {
155254 continue;
155255 }
155256 var value = "";
155257 var parsedProp = this.parse(name2, value, true);
155258 var diffProp = diffProps[prop.name] = {
155259 prev: prevProp
155260 };
155261 this.applyParsedProperty(ele, parsedProp);
155262 diffProp.next = ele.pstyle(prop.name);
155263 }
155264 this.updateStyleHints(ele);
155265 if (updateTransitions) {
155266 this.updateTransitions(ele, diffProps, isBypass);
155267 }
155268 }
155269 };
155270 var styfn$6 = {};
155271 styfn$6.getEmSizeInPixels = function() {
155272 var px = this.containerCss("font-size");
155273 if (px != null) {
155274 return parseFloat(px);
155275 } else {
155276 return 1;
155277 }
155278 };
155279 styfn$6.containerCss = function(propName) {
155280 var cy = this._private.cy;
155281 var domElement2 = cy.container();
155282 if (window$1 && domElement2 && window$1.getComputedStyle) {
155283 return window$1.getComputedStyle(domElement2).getPropertyValue(propName);
155284 }
155285 };
155286 var styfn$5 = {};
155287 styfn$5.getRenderedStyle = function(ele, prop) {
155288 if (prop) {
155289 return this.getStylePropertyValue(ele, prop, true);
155290 } else {
155291 return this.getRawStyle(ele, true);
155292 }
155293 };
155294 styfn$5.getRawStyle = function(ele, isRenderedVal) {
155295 var self2 = this;
155296 ele = ele[0];
155297 if (ele) {
155298 var rstyle = {};
155299 for (var i3 = 0; i3 < self2.properties.length; i3++) {
155300 var prop = self2.properties[i3];
155301 var val = self2.getStylePropertyValue(ele, prop.name, isRenderedVal);
155302 if (val != null) {
155303 rstyle[prop.name] = val;
155304 rstyle[dash2camel(prop.name)] = val;
155305 }
155306 }
155307 return rstyle;
155308 }
155309 };
155310 styfn$5.getIndexedStyle = function(ele, property2, subproperty, index2) {
155311 var pstyle = ele.pstyle(property2)[subproperty][index2];
155312 return pstyle != null ? pstyle : ele.cy().style().getDefaultProperty(property2)[subproperty][0];
155313 };
155314 styfn$5.getStylePropertyValue = function(ele, propName, isRenderedVal) {
155315 var self2 = this;
155316 ele = ele[0];
155317 if (ele) {
155318 var prop = self2.properties[propName];
155319 if (prop.alias) {
155320 prop = prop.pointsTo;
155321 }
155322 var type2 = prop.type;
155323 var styleProp = ele.pstyle(prop.name);
155324 if (styleProp) {
155325 var value = styleProp.value, units = styleProp.units, strValue = styleProp.strValue;
155326 if (isRenderedVal && type2.number && value != null && number$12(value)) {
155327 var zoom = ele.cy().zoom();
155328 var getRenderedValue = function getRenderedValue2(val) {
155329 return val * zoom;
155330 };
155331 var getValueStringWithUnits = function getValueStringWithUnits2(val, units2) {
155332 return getRenderedValue(val) + units2;
155333 };
155334 var isArrayValue = array2(value);
155335 var haveUnits = isArrayValue ? units.every(function(u2) {
155336 return u2 != null;
155337 }) : units != null;
155338 if (haveUnits) {
155339 if (isArrayValue) {
155340 return value.map(function(v, i3) {
155341 return getValueStringWithUnits(v, units[i3]);
155342 }).join(" ");
155343 } else {
155344 return getValueStringWithUnits(value, units);
155345 }
155346 } else {
155347 if (isArrayValue) {
155348 return value.map(function(v) {
155349 return string2(v) ? v : "" + getRenderedValue(v);
155350 }).join(" ");
155351 } else {
155352 return "" + getRenderedValue(value);
155353 }
155354 }
155355 } else if (strValue != null) {
155356 return strValue;
155357 }
155358 }
155359 return null;
155360 }
155361 };
155362 styfn$5.getAnimationStartStyle = function(ele, aniProps) {
155363 var rstyle = {};
155364 for (var i3 = 0; i3 < aniProps.length; i3++) {
155365 var aniProp = aniProps[i3];
155366 var name2 = aniProp.name;
155367 var styleProp = ele.pstyle(name2);
155368 if (styleProp !== void 0) {
155369 if (plainObject(styleProp)) {
155370 styleProp = this.parse(name2, styleProp.strValue);
155371 } else {
155372 styleProp = this.parse(name2, styleProp);
155373 }
155374 }
155375 if (styleProp) {
155376 rstyle[name2] = styleProp;
155377 }
155378 }
155379 return rstyle;
155380 };
155381 styfn$5.getPropsList = function(propsObj) {
155382 var self2 = this;
155383 var rstyle = [];
155384 var style = propsObj;
155385 var props = self2.properties;
155386 if (style) {
155387 var names = Object.keys(style);
155388 for (var i3 = 0; i3 < names.length; i3++) {
155389 var name2 = names[i3];
155390 var val = style[name2];
155391 var prop = props[name2] || props[camel2dash(name2)];
155392 var styleProp = this.parse(prop.name, val);
155393 if (styleProp) {
155394 rstyle.push(styleProp);
155395 }
155396 }
155397 }
155398 return rstyle;
155399 };
155400 styfn$5.getNonDefaultPropertiesHash = function(ele, propNames, seed) {
155401 var hash = seed.slice();
155402 var name2, val, strVal, chVal;
155403 var i3, j;
155404 for (i3 = 0; i3 < propNames.length; i3++) {
155405 name2 = propNames[i3];
155406 val = ele.pstyle(name2, false);
155407 if (val == null) {
155408 continue;
155409 } else if (val.pfValue != null) {
155410 hash[0] = hashInt(chVal, hash[0]);
155411 hash[1] = hashIntAlt(chVal, hash[1]);
155412 } else {
155413 strVal = val.strValue;
155414 for (j = 0; j < strVal.length; j++) {
155415 chVal = strVal.charCodeAt(j);
155416 hash[0] = hashInt(chVal, hash[0]);
155417 hash[1] = hashIntAlt(chVal, hash[1]);
155418 }
155419 }
155420 }
155421 return hash;
155422 };
155423 styfn$5.getPropertiesHash = styfn$5.getNonDefaultPropertiesHash;
155424 var styfn$4 = {};
155425 styfn$4.appendFromJson = function(json2) {
155426 var style = this;
155427 for (var i3 = 0; i3 < json2.length; i3++) {
155428 var context = json2[i3];
155429 var selector2 = context.selector;
155430 var props = context.style || context.css;
155431 var names = Object.keys(props);
155432 style.selector(selector2);
155433 for (var j = 0; j < names.length; j++) {
155434 var name2 = names[j];
155435 var value = props[name2];
155436 style.css(name2, value);
155437 }
155438 }
155439 return style;
155440 };
155441 styfn$4.fromJson = function(json2) {
155442 var style = this;
155443 style.resetToDefault();
155444 style.appendFromJson(json2);
155445 return style;
155446 };
155447 styfn$4.json = function() {
155448 var json2 = [];
155449 for (var i3 = this.defaultLength; i3 < this.length; i3++) {
155450 var cxt = this[i3];
155451 var selector2 = cxt.selector;
155452 var props = cxt.properties;
155453 var css = {};
155454 for (var j = 0; j < props.length; j++) {
155455 var prop = props[j];
155456 css[prop.name] = prop.strValue;
155457 }
155458 json2.push({
155459 selector: !selector2 ? "core" : selector2.toString(),
155460 style: css
155461 });
155462 }
155463 return json2;
155464 };
155465 var styfn$3 = {};
155466 styfn$3.appendFromString = function(string3) {
155467 var self2 = this;
155468 var style = this;
155469 var remaining = "" + string3;
155470 var selAndBlockStr;
155471 var blockRem;
155472 var propAndValStr;
155473 remaining = remaining.replace(/[/][*](\s|.)+?[*][/]/g, "");
155474 function removeSelAndBlockFromRemaining() {
155475 if (remaining.length > selAndBlockStr.length) {
155476 remaining = remaining.substr(selAndBlockStr.length);
155477 } else {
155478 remaining = "";
155479 }
155480 }
155481 function removePropAndValFromRem() {
155482 if (blockRem.length > propAndValStr.length) {
155483 blockRem = blockRem.substr(propAndValStr.length);
155484 } else {
155485 blockRem = "";
155486 }
155487 }
155488 for (; ; ) {
155489 var nothingLeftToParse = remaining.match(/^\s*$/);
155490 if (nothingLeftToParse) {
155491 break;
155492 }
155493 var selAndBlock = remaining.match(/^\s*((?:.|\s)+?)\s*\{((?:.|\s)+?)\}/);
155494 if (!selAndBlock) {
155495 warn("Halting stylesheet parsing: String stylesheet contains more to parse but no selector and block found in: " + remaining);
155496 break;
155497 }
155498 selAndBlockStr = selAndBlock[0];
155499 var selectorStr = selAndBlock[1];
155500 if (selectorStr !== "core") {
155501 var selector2 = new Selector(selectorStr);
155502 if (selector2.invalid) {
155503 warn("Skipping parsing of block: Invalid selector found in string stylesheet: " + selectorStr);
155504 removeSelAndBlockFromRemaining();
155505 continue;
155506 }
155507 }
155508 var blockStr = selAndBlock[2];
155509 var invalidBlock = false;
155510 blockRem = blockStr;
155511 var props = [];
155512 for (; ; ) {
155513 var _nothingLeftToParse = blockRem.match(/^\s*$/);
155514 if (_nothingLeftToParse) {
155515 break;
155516 }
155517 var propAndVal = blockRem.match(/^\s*(.+?)\s*:\s*(.+?)(?:\s*;|\s*$)/);
155518 if (!propAndVal) {
155519 warn("Skipping parsing of block: Invalid formatting of style property and value definitions found in:" + blockStr);
155520 invalidBlock = true;
155521 break;
155522 }
155523 propAndValStr = propAndVal[0];
155524 var propStr = propAndVal[1];
155525 var valStr = propAndVal[2];
155526 var prop = self2.properties[propStr];
155527 if (!prop) {
155528 warn("Skipping property: Invalid property name in: " + propAndValStr);
155529 removePropAndValFromRem();
155530 continue;
155531 }
155532 var parsedProp = style.parse(propStr, valStr);
155533 if (!parsedProp) {
155534 warn("Skipping property: Invalid property definition in: " + propAndValStr);
155535 removePropAndValFromRem();
155536 continue;
155537 }
155538 props.push({
155539 name: propStr,
155540 val: valStr
155541 });
155542 removePropAndValFromRem();
155543 }
155544 if (invalidBlock) {
155545 removeSelAndBlockFromRemaining();
155546 break;
155547 }
155548 style.selector(selectorStr);
155549 for (var i3 = 0; i3 < props.length; i3++) {
155550 var _prop = props[i3];
155551 style.css(_prop.name, _prop.val);
155552 }
155553 removeSelAndBlockFromRemaining();
155554 }
155555 return style;
155556 };
155557 styfn$3.fromString = function(string3) {
155558 var style = this;
155559 style.resetToDefault();
155560 style.appendFromString(string3);
155561 return style;
155562 };
155563 var styfn$2 = {};
155564 (function() {
155565 var number$13 = number2;
155566 var rgba3 = rgbaNoBackRefs;
155567 var hsla3 = hslaNoBackRefs;
155568 var hex3$1 = hex3;
155569 var hex6$1 = hex6;
155570 var data2 = function data3(prefix) {
155571 return "^" + prefix + "\\s*\\(\\s*([\\w\\.]+)\\s*\\)$";
155572 };
155573 var mapData = function mapData2(prefix) {
155574 var mapArg = number$13 + "|\\w+|" + rgba3 + "|" + hsla3 + "|" + hex3$1 + "|" + hex6$1;
155575 return "^" + prefix + "\\s*\\(([\\w\\.]+)\\s*\\,\\s*(" + number$13 + ")\\s*\\,\\s*(" + number$13 + ")\\s*,\\s*(" + mapArg + ")\\s*\\,\\s*(" + mapArg + ")\\)$";
155576 };
155577 var urlRegexes = [`^url\\s*\\(\\s*['"]?(.+?)['"]?\\s*\\)$`, "^(none)$", "^(.+)$"];
155578 styfn$2.types = {
155579 time: {
155580 number: true,
155581 min: 0,
155582 units: "s|ms",
155583 implicitUnits: "ms"
155584 },
155585 percent: {
155586 number: true,
155587 min: 0,
155588 max: 100,
155589 units: "%",
155590 implicitUnits: "%"
155591 },
155592 percentages: {
155593 number: true,
155594 min: 0,
155595 max: 100,
155596 units: "%",
155597 implicitUnits: "%",
155598 multiple: true
155599 },
155600 zeroOneNumber: {
155601 number: true,
155602 min: 0,
155603 max: 1,
155604 unitless: true
155605 },
155606 zeroOneNumbers: {
155607 number: true,
155608 min: 0,
155609 max: 1,
155610 unitless: true,
155611 multiple: true
155612 },
155613 nOneOneNumber: {
155614 number: true,
155615 min: -1,
155616 max: 1,
155617 unitless: true
155618 },
155619 nonNegativeInt: {
155620 number: true,
155621 min: 0,
155622 integer: true,
155623 unitless: true
155624 },
155625 position: {
155626 enums: ["parent", "origin"]
155627 },
155628 nodeSize: {
155629 number: true,
155630 min: 0,
155631 enums: ["label"]
155632 },
155633 number: {
155634 number: true,
155635 unitless: true
155636 },
155637 numbers: {
155638 number: true,
155639 unitless: true,
155640 multiple: true
155641 },
155642 positiveNumber: {
155643 number: true,
155644 unitless: true,
155645 min: 0,
155646 strictMin: true
155647 },
155648 size: {
155649 number: true,
155650 min: 0
155651 },
155652 bidirectionalSize: {
155653 number: true
155654 },
155655 // allows negative
155656 bidirectionalSizeMaybePercent: {
155657 number: true,
155658 allowPercent: true
155659 },
155660 // allows negative
155661 bidirectionalSizes: {
155662 number: true,
155663 multiple: true
155664 },
155665 // allows negative
155666 sizeMaybePercent: {
155667 number: true,
155668 min: 0,
155669 allowPercent: true
155670 },
155671 axisDirection: {
155672 enums: ["horizontal", "leftward", "rightward", "vertical", "upward", "downward", "auto"]
155673 },
155674 paddingRelativeTo: {
155675 enums: ["width", "height", "average", "min", "max"]
155676 },
155677 bgWH: {
155678 number: true,
155679 min: 0,
155680 allowPercent: true,
155681 enums: ["auto"],
155682 multiple: true
155683 },
155684 bgPos: {
155685 number: true,
155686 allowPercent: true,
155687 multiple: true
155688 },
155689 bgRelativeTo: {
155690 enums: ["inner", "include-padding"],
155691 multiple: true
155692 },
155693 bgRepeat: {
155694 enums: ["repeat", "repeat-x", "repeat-y", "no-repeat"],
155695 multiple: true
155696 },
155697 bgFit: {
155698 enums: ["none", "contain", "cover"],
155699 multiple: true
155700 },
155701 bgCrossOrigin: {
155702 enums: ["anonymous", "use-credentials"],
155703 multiple: true
155704 },
155705 bgClip: {
155706 enums: ["none", "node"],
155707 multiple: true
155708 },
155709 bgContainment: {
155710 enums: ["inside", "over"],
155711 multiple: true
155712 },
155713 color: {
155714 color: true
155715 },
155716 colors: {
155717 color: true,
155718 multiple: true
155719 },
155720 fill: {
155721 enums: ["solid", "linear-gradient", "radial-gradient"]
155722 },
155723 bool: {
155724 enums: ["yes", "no"]
155725 },
155726 bools: {
155727 enums: ["yes", "no"],
155728 multiple: true
155729 },
155730 lineStyle: {
155731 enums: ["solid", "dotted", "dashed"]
155732 },
155733 lineCap: {
155734 enums: ["butt", "round", "square"]
155735 },
155736 borderStyle: {
155737 enums: ["solid", "dotted", "dashed", "double"]
155738 },
155739 curveStyle: {
155740 enums: ["bezier", "unbundled-bezier", "haystack", "segments", "straight", "straight-triangle", "taxi"]
155741 },
155742 fontFamily: {
155743 regex: '^([\\w- \\"]+(?:\\s*,\\s*[\\w- \\"]+)*)$'
155744 },
155745 fontStyle: {
155746 enums: ["italic", "normal", "oblique"]
155747 },
155748 fontWeight: {
155749 enums: ["normal", "bold", "bolder", "lighter", "100", "200", "300", "400", "500", "600", "800", "900", 100, 200, 300, 400, 500, 600, 700, 800, 900]
155750 },
155751 textDecoration: {
155752 enums: ["none", "underline", "overline", "line-through"]
155753 },
155754 textTransform: {
155755 enums: ["none", "uppercase", "lowercase"]
155756 },
155757 textWrap: {
155758 enums: ["none", "wrap", "ellipsis"]
155759 },
155760 textOverflowWrap: {
155761 enums: ["whitespace", "anywhere"]
155762 },
155763 textBackgroundShape: {
155764 enums: ["rectangle", "roundrectangle", "round-rectangle"]
155765 },
155766 nodeShape: {
155767 enums: ["rectangle", "roundrectangle", "round-rectangle", "cutrectangle", "cut-rectangle", "bottomroundrectangle", "bottom-round-rectangle", "barrel", "ellipse", "triangle", "round-triangle", "square", "pentagon", "round-pentagon", "hexagon", "round-hexagon", "concavehexagon", "concave-hexagon", "heptagon", "round-heptagon", "octagon", "round-octagon", "tag", "round-tag", "star", "diamond", "round-diamond", "vee", "rhomboid", "polygon"]
155768 },
155769 overlayShape: {
155770 enums: ["roundrectangle", "round-rectangle", "ellipse"]
155771 },
155772 compoundIncludeLabels: {
155773 enums: ["include", "exclude"]
155774 },
155775 arrowShape: {
155776 enums: ["tee", "triangle", "triangle-tee", "circle-triangle", "triangle-cross", "triangle-backcurve", "vee", "square", "circle", "diamond", "chevron", "none"]
155777 },
155778 arrowFill: {
155779 enums: ["filled", "hollow"]
155780 },
155781 display: {
155782 enums: ["element", "none"]
155783 },
155784 visibility: {
155785 enums: ["hidden", "visible"]
155786 },
155787 zCompoundDepth: {
155788 enums: ["bottom", "orphan", "auto", "top"]
155789 },
155790 zIndexCompare: {
155791 enums: ["auto", "manual"]
155792 },
155793 valign: {
155794 enums: ["top", "center", "bottom"]
155795 },
155796 halign: {
155797 enums: ["left", "center", "right"]
155798 },
155799 justification: {
155800 enums: ["left", "center", "right", "auto"]
155801 },
155802 text: {
155803 string: true
155804 },
155805 data: {
155806 mapping: true,
155807 regex: data2("data")
155808 },
155809 layoutData: {
155810 mapping: true,
155811 regex: data2("layoutData")
155812 },
155813 scratch: {
155814 mapping: true,
155815 regex: data2("scratch")
155816 },
155817 mapData: {
155818 mapping: true,
155819 regex: mapData("mapData")
155820 },
155821 mapLayoutData: {
155822 mapping: true,
155823 regex: mapData("mapLayoutData")
155824 },
155825 mapScratch: {
155826 mapping: true,
155827 regex: mapData("mapScratch")
155828 },
155829 fn: {
155830 mapping: true,
155831 fn: true
155832 },
155833 url: {
155834 regexes: urlRegexes,
155835 singleRegexMatchValue: true
155836 },
155837 urls: {
155838 regexes: urlRegexes,
155839 singleRegexMatchValue: true,
155840 multiple: true
155841 },
155842 propList: {
155843 propList: true
155844 },
155845 angle: {
155846 number: true,
155847 units: "deg|rad",
155848 implicitUnits: "rad"
155849 },
155850 textRotation: {
155851 number: true,
155852 units: "deg|rad",
155853 implicitUnits: "rad",
155854 enums: ["none", "autorotate"]
155855 },
155856 polygonPointList: {
155857 number: true,
155858 multiple: true,
155859 evenMultiple: true,
155860 min: -1,
155861 max: 1,
155862 unitless: true
155863 },
155864 edgeDistances: {
155865 enums: ["intersection", "node-position"]
155866 },
155867 edgeEndpoint: {
155868 number: true,
155869 multiple: true,
155870 units: "%|px|em|deg|rad",
155871 implicitUnits: "px",
155872 enums: ["inside-to-node", "outside-to-node", "outside-to-node-or-label", "outside-to-line", "outside-to-line-or-label"],
155873 singleEnum: true,
155874 validate: function validate2(valArr, unitsArr) {
155875 switch (valArr.length) {
155876 case 2:
155877 return unitsArr[0] !== "deg" && unitsArr[0] !== "rad" && unitsArr[1] !== "deg" && unitsArr[1] !== "rad";
155878 case 1:
155879 return string2(valArr[0]) || unitsArr[0] === "deg" || unitsArr[0] === "rad";
155880 default:
155881 return false;
155882 }
155883 }
155884 },
155885 easing: {
155886 regexes: ["^(spring)\\s*\\(\\s*(" + number$13 + ")\\s*,\\s*(" + number$13 + ")\\s*\\)$", "^(cubic-bezier)\\s*\\(\\s*(" + number$13 + ")\\s*,\\s*(" + number$13 + ")\\s*,\\s*(" + number$13 + ")\\s*,\\s*(" + number$13 + ")\\s*\\)$"],
155887 enums: ["linear", "ease", "ease-in", "ease-out", "ease-in-out", "ease-in-sine", "ease-out-sine", "ease-in-out-sine", "ease-in-quad", "ease-out-quad", "ease-in-out-quad", "ease-in-cubic", "ease-out-cubic", "ease-in-out-cubic", "ease-in-quart", "ease-out-quart", "ease-in-out-quart", "ease-in-quint", "ease-out-quint", "ease-in-out-quint", "ease-in-expo", "ease-out-expo", "ease-in-out-expo", "ease-in-circ", "ease-out-circ", "ease-in-out-circ"]
155888 },
155889 gradientDirection: {
155890 enums: [
155891 "to-bottom",
155892 "to-top",
155893 "to-left",
155894 "to-right",
155895 "to-bottom-right",
155896 "to-bottom-left",
155897 "to-top-right",
155898 "to-top-left",
155899 "to-right-bottom",
155900 "to-left-bottom",
155901 "to-right-top",
155902 "to-left-top"
155903 // different order
155904 ]
155905 },
155906 boundsExpansion: {
155907 number: true,
155908 multiple: true,
155909 min: 0,
155910 validate: function validate2(valArr) {
155911 var length2 = valArr.length;
155912 return length2 === 1 || length2 === 2 || length2 === 4;
155913 }
155914 }
155915 };
155916 var diff = {
155917 zeroNonZero: function zeroNonZero(val1, val2) {
155918 if ((val1 == null || val2 == null) && val1 !== val2) {
155919 return true;
155920 }
155921 if (val1 == 0 && val2 != 0) {
155922 return true;
155923 } else if (val1 != 0 && val2 == 0) {
155924 return true;
155925 } else {
155926 return false;
155927 }
155928 },
155929 any: function any(val1, val2) {
155930 return val1 != val2;
155931 },
155932 emptyNonEmpty: function emptyNonEmpty(str1, str2) {
155933 var empty1 = emptyString(str1);
155934 var empty2 = emptyString(str2);
155935 return empty1 && !empty2 || !empty1 && empty2;
155936 }
155937 };
155938 var t4 = styfn$2.types;
155939 var mainLabel = [{
155940 name: "label",
155941 type: t4.text,
155942 triggersBounds: diff.any,
155943 triggersZOrder: diff.emptyNonEmpty
155944 }, {
155945 name: "text-rotation",
155946 type: t4.textRotation,
155947 triggersBounds: diff.any
155948 }, {
155949 name: "text-margin-x",
155950 type: t4.bidirectionalSize,
155951 triggersBounds: diff.any
155952 }, {
155953 name: "text-margin-y",
155954 type: t4.bidirectionalSize,
155955 triggersBounds: diff.any
155956 }];
155957 var sourceLabel = [{
155958 name: "source-label",
155959 type: t4.text,
155960 triggersBounds: diff.any
155961 }, {
155962 name: "source-text-rotation",
155963 type: t4.textRotation,
155964 triggersBounds: diff.any
155965 }, {
155966 name: "source-text-margin-x",
155967 type: t4.bidirectionalSize,
155968 triggersBounds: diff.any
155969 }, {
155970 name: "source-text-margin-y",
155971 type: t4.bidirectionalSize,
155972 triggersBounds: diff.any
155973 }, {
155974 name: "source-text-offset",
155975 type: t4.size,
155976 triggersBounds: diff.any
155977 }];
155978 var targetLabel = [{
155979 name: "target-label",
155980 type: t4.text,
155981 triggersBounds: diff.any
155982 }, {
155983 name: "target-text-rotation",
155984 type: t4.textRotation,
155985 triggersBounds: diff.any
155986 }, {
155987 name: "target-text-margin-x",
155988 type: t4.bidirectionalSize,
155989 triggersBounds: diff.any
155990 }, {
155991 name: "target-text-margin-y",
155992 type: t4.bidirectionalSize,
155993 triggersBounds: diff.any
155994 }, {
155995 name: "target-text-offset",
155996 type: t4.size,
155997 triggersBounds: diff.any
155998 }];
155999 var labelDimensions = [{
156000 name: "font-family",
156001 type: t4.fontFamily,
156002 triggersBounds: diff.any
156003 }, {
156004 name: "font-style",
156005 type: t4.fontStyle,
156006 triggersBounds: diff.any
156007 }, {
156008 name: "font-weight",
156009 type: t4.fontWeight,
156010 triggersBounds: diff.any
156011 }, {
156012 name: "font-size",
156013 type: t4.size,
156014 triggersBounds: diff.any
156015 }, {
156016 name: "text-transform",
156017 type: t4.textTransform,
156018 triggersBounds: diff.any
156019 }, {
156020 name: "text-wrap",
156021 type: t4.textWrap,
156022 triggersBounds: diff.any
156023 }, {
156024 name: "text-overflow-wrap",
156025 type: t4.textOverflowWrap,
156026 triggersBounds: diff.any
156027 }, {
156028 name: "text-max-width",
156029 type: t4.size,
156030 triggersBounds: diff.any
156031 }, {
156032 name: "text-outline-width",
156033 type: t4.size,
156034 triggersBounds: diff.any
156035 }, {
156036 name: "line-height",
156037 type: t4.positiveNumber,
156038 triggersBounds: diff.any
156039 }];
156040 var commonLabel = [{
156041 name: "text-valign",
156042 type: t4.valign,
156043 triggersBounds: diff.any
156044 }, {
156045 name: "text-halign",
156046 type: t4.halign,
156047 triggersBounds: diff.any
156048 }, {
156049 name: "color",
156050 type: t4.color
156051 }, {
156052 name: "text-outline-color",
156053 type: t4.color
156054 }, {
156055 name: "text-outline-opacity",
156056 type: t4.zeroOneNumber
156057 }, {
156058 name: "text-background-color",
156059 type: t4.color
156060 }, {
156061 name: "text-background-opacity",
156062 type: t4.zeroOneNumber
156063 }, {
156064 name: "text-background-padding",
156065 type: t4.size,
156066 triggersBounds: diff.any
156067 }, {
156068 name: "text-border-opacity",
156069 type: t4.zeroOneNumber
156070 }, {
156071 name: "text-border-color",
156072 type: t4.color
156073 }, {
156074 name: "text-border-width",
156075 type: t4.size,
156076 triggersBounds: diff.any
156077 }, {
156078 name: "text-border-style",
156079 type: t4.borderStyle,
156080 triggersBounds: diff.any
156081 }, {
156082 name: "text-background-shape",
156083 type: t4.textBackgroundShape,
156084 triggersBounds: diff.any
156085 }, {
156086 name: "text-justification",
156087 type: t4.justification
156088 }];
156089 var behavior = [{
156090 name: "events",
156091 type: t4.bool
156092 }, {
156093 name: "text-events",
156094 type: t4.bool
156095 }];
156096 var visibility = [{
156097 name: "display",
156098 type: t4.display,
156099 triggersZOrder: diff.any,
156100 triggersBounds: diff.any,
156101 triggersBoundsOfParallelBeziers: true
156102 }, {
156103 name: "visibility",
156104 type: t4.visibility,
156105 triggersZOrder: diff.any
156106 }, {
156107 name: "opacity",
156108 type: t4.zeroOneNumber,
156109 triggersZOrder: diff.zeroNonZero
156110 }, {
156111 name: "text-opacity",
156112 type: t4.zeroOneNumber
156113 }, {
156114 name: "min-zoomed-font-size",
156115 type: t4.size
156116 }, {
156117 name: "z-compound-depth",
156118 type: t4.zCompoundDepth,
156119 triggersZOrder: diff.any
156120 }, {
156121 name: "z-index-compare",
156122 type: t4.zIndexCompare,
156123 triggersZOrder: diff.any
156124 }, {
156125 name: "z-index",
156126 type: t4.nonNegativeInt,
156127 triggersZOrder: diff.any
156128 }];
156129 var overlay = [{
156130 name: "overlay-padding",
156131 type: t4.size,
156132 triggersBounds: diff.any
156133 }, {
156134 name: "overlay-color",
156135 type: t4.color
156136 }, {
156137 name: "overlay-opacity",
156138 type: t4.zeroOneNumber,
156139 triggersBounds: diff.zeroNonZero
156140 }, {
156141 name: "overlay-shape",
156142 type: t4.overlayShape,
156143 triggersBounds: diff.any
156144 }];
156145 var underlay = [{
156146 name: "underlay-padding",
156147 type: t4.size,
156148 triggersBounds: diff.any
156149 }, {
156150 name: "underlay-color",
156151 type: t4.color
156152 }, {
156153 name: "underlay-opacity",
156154 type: t4.zeroOneNumber,
156155 triggersBounds: diff.zeroNonZero
156156 }, {
156157 name: "underlay-shape",
156158 type: t4.overlayShape,
156159 triggersBounds: diff.any
156160 }];
156161 var transition = [{
156162 name: "transition-property",
156163 type: t4.propList
156164 }, {
156165 name: "transition-duration",
156166 type: t4.time
156167 }, {
156168 name: "transition-delay",
156169 type: t4.time
156170 }, {
156171 name: "transition-timing-function",
156172 type: t4.easing
156173 }];
156174 var nodeSizeHashOverride = function nodeSizeHashOverride2(ele, parsedProp) {
156175 if (parsedProp.value === "label") {
156176 return -ele.poolIndex();
156177 } else {
156178 return parsedProp.pfValue;
156179 }
156180 };
156181 var nodeBody = [{
156182 name: "height",
156183 type: t4.nodeSize,
156184 triggersBounds: diff.any,
156185 hashOverride: nodeSizeHashOverride
156186 }, {
156187 name: "width",
156188 type: t4.nodeSize,
156189 triggersBounds: diff.any,
156190 hashOverride: nodeSizeHashOverride
156191 }, {
156192 name: "shape",
156193 type: t4.nodeShape,
156194 triggersBounds: diff.any
156195 }, {
156196 name: "shape-polygon-points",
156197 type: t4.polygonPointList,
156198 triggersBounds: diff.any
156199 }, {
156200 name: "background-color",
156201 type: t4.color
156202 }, {
156203 name: "background-fill",
156204 type: t4.fill
156205 }, {
156206 name: "background-opacity",
156207 type: t4.zeroOneNumber
156208 }, {
156209 name: "background-blacken",
156210 type: t4.nOneOneNumber
156211 }, {
156212 name: "background-gradient-stop-colors",
156213 type: t4.colors
156214 }, {
156215 name: "background-gradient-stop-positions",
156216 type: t4.percentages
156217 }, {
156218 name: "background-gradient-direction",
156219 type: t4.gradientDirection
156220 }, {
156221 name: "padding",
156222 type: t4.sizeMaybePercent,
156223 triggersBounds: diff.any
156224 }, {
156225 name: "padding-relative-to",
156226 type: t4.paddingRelativeTo,
156227 triggersBounds: diff.any
156228 }, {
156229 name: "bounds-expansion",
156230 type: t4.boundsExpansion,
156231 triggersBounds: diff.any
156232 }];
156233 var nodeBorder = [{
156234 name: "border-color",
156235 type: t4.color
156236 }, {
156237 name: "border-opacity",
156238 type: t4.zeroOneNumber
156239 }, {
156240 name: "border-width",
156241 type: t4.size,
156242 triggersBounds: diff.any
156243 }, {
156244 name: "border-style",
156245 type: t4.borderStyle
156246 }];
156247 var backgroundImage = [{
156248 name: "background-image",
156249 type: t4.urls
156250 }, {
156251 name: "background-image-crossorigin",
156252 type: t4.bgCrossOrigin
156253 }, {
156254 name: "background-image-opacity",
156255 type: t4.zeroOneNumbers
156256 }, {
156257 name: "background-image-containment",
156258 type: t4.bgContainment
156259 }, {
156260 name: "background-image-smoothing",
156261 type: t4.bools
156262 }, {
156263 name: "background-position-x",
156264 type: t4.bgPos
156265 }, {
156266 name: "background-position-y",
156267 type: t4.bgPos
156268 }, {
156269 name: "background-width-relative-to",
156270 type: t4.bgRelativeTo
156271 }, {
156272 name: "background-height-relative-to",
156273 type: t4.bgRelativeTo
156274 }, {
156275 name: "background-repeat",
156276 type: t4.bgRepeat
156277 }, {
156278 name: "background-fit",
156279 type: t4.bgFit
156280 }, {
156281 name: "background-clip",
156282 type: t4.bgClip
156283 }, {
156284 name: "background-width",
156285 type: t4.bgWH
156286 }, {
156287 name: "background-height",
156288 type: t4.bgWH
156289 }, {
156290 name: "background-offset-x",
156291 type: t4.bgPos
156292 }, {
156293 name: "background-offset-y",
156294 type: t4.bgPos
156295 }];
156296 var compound = [{
156297 name: "position",
156298 type: t4.position,
156299 triggersBounds: diff.any
156300 }, {
156301 name: "compound-sizing-wrt-labels",
156302 type: t4.compoundIncludeLabels,
156303 triggersBounds: diff.any
156304 }, {
156305 name: "min-width",
156306 type: t4.size,
156307 triggersBounds: diff.any
156308 }, {
156309 name: "min-width-bias-left",
156310 type: t4.sizeMaybePercent,
156311 triggersBounds: diff.any
156312 }, {
156313 name: "min-width-bias-right",
156314 type: t4.sizeMaybePercent,
156315 triggersBounds: diff.any
156316 }, {
156317 name: "min-height",
156318 type: t4.size,
156319 triggersBounds: diff.any
156320 }, {
156321 name: "min-height-bias-top",
156322 type: t4.sizeMaybePercent,
156323 triggersBounds: diff.any
156324 }, {
156325 name: "min-height-bias-bottom",
156326 type: t4.sizeMaybePercent,
156327 triggersBounds: diff.any
156328 }];
156329 var edgeLine = [{
156330 name: "line-style",
156331 type: t4.lineStyle
156332 }, {
156333 name: "line-color",
156334 type: t4.color
156335 }, {
156336 name: "line-fill",
156337 type: t4.fill
156338 }, {
156339 name: "line-cap",
156340 type: t4.lineCap
156341 }, {
156342 name: "line-opacity",
156343 type: t4.zeroOneNumber
156344 }, {
156345 name: "line-dash-pattern",
156346 type: t4.numbers
156347 }, {
156348 name: "line-dash-offset",
156349 type: t4.number
156350 }, {
156351 name: "line-gradient-stop-colors",
156352 type: t4.colors
156353 }, {
156354 name: "line-gradient-stop-positions",
156355 type: t4.percentages
156356 }, {
156357 name: "curve-style",
156358 type: t4.curveStyle,
156359 triggersBounds: diff.any,
156360 triggersBoundsOfParallelBeziers: true
156361 }, {
156362 name: "haystack-radius",
156363 type: t4.zeroOneNumber,
156364 triggersBounds: diff.any
156365 }, {
156366 name: "source-endpoint",
156367 type: t4.edgeEndpoint,
156368 triggersBounds: diff.any
156369 }, {
156370 name: "target-endpoint",
156371 type: t4.edgeEndpoint,
156372 triggersBounds: diff.any
156373 }, {
156374 name: "control-point-step-size",
156375 type: t4.size,
156376 triggersBounds: diff.any
156377 }, {
156378 name: "control-point-distances",
156379 type: t4.bidirectionalSizes,
156380 triggersBounds: diff.any
156381 }, {
156382 name: "control-point-weights",
156383 type: t4.numbers,
156384 triggersBounds: diff.any
156385 }, {
156386 name: "segment-distances",
156387 type: t4.bidirectionalSizes,
156388 triggersBounds: diff.any
156389 }, {
156390 name: "segment-weights",
156391 type: t4.numbers,
156392 triggersBounds: diff.any
156393 }, {
156394 name: "taxi-turn",
156395 type: t4.bidirectionalSizeMaybePercent,
156396 triggersBounds: diff.any
156397 }, {
156398 name: "taxi-turn-min-distance",
156399 type: t4.size,
156400 triggersBounds: diff.any
156401 }, {
156402 name: "taxi-direction",
156403 type: t4.axisDirection,
156404 triggersBounds: diff.any
156405 }, {
156406 name: "edge-distances",
156407 type: t4.edgeDistances,
156408 triggersBounds: diff.any
156409 }, {
156410 name: "arrow-scale",
156411 type: t4.positiveNumber,
156412 triggersBounds: diff.any
156413 }, {
156414 name: "loop-direction",
156415 type: t4.angle,
156416 triggersBounds: diff.any
156417 }, {
156418 name: "loop-sweep",
156419 type: t4.angle,
156420 triggersBounds: diff.any
156421 }, {
156422 name: "source-distance-from-node",
156423 type: t4.size,
156424 triggersBounds: diff.any
156425 }, {
156426 name: "target-distance-from-node",
156427 type: t4.size,
156428 triggersBounds: diff.any
156429 }];
156430 var ghost = [{
156431 name: "ghost",
156432 type: t4.bool,
156433 triggersBounds: diff.any
156434 }, {
156435 name: "ghost-offset-x",
156436 type: t4.bidirectionalSize,
156437 triggersBounds: diff.any
156438 }, {
156439 name: "ghost-offset-y",
156440 type: t4.bidirectionalSize,
156441 triggersBounds: diff.any
156442 }, {
156443 name: "ghost-opacity",
156444 type: t4.zeroOneNumber
156445 }];
156446 var core3 = [{
156447 name: "selection-box-color",
156448 type: t4.color
156449 }, {
156450 name: "selection-box-opacity",
156451 type: t4.zeroOneNumber
156452 }, {
156453 name: "selection-box-border-color",
156454 type: t4.color
156455 }, {
156456 name: "selection-box-border-width",
156457 type: t4.size
156458 }, {
156459 name: "active-bg-color",
156460 type: t4.color
156461 }, {
156462 name: "active-bg-opacity",
156463 type: t4.zeroOneNumber
156464 }, {
156465 name: "active-bg-size",
156466 type: t4.size
156467 }, {
156468 name: "outside-texture-bg-color",
156469 type: t4.color
156470 }, {
156471 name: "outside-texture-bg-opacity",
156472 type: t4.zeroOneNumber
156473 }];
156474 var pie2 = [];
156475 styfn$2.pieBackgroundN = 16;
156476 pie2.push({
156477 name: "pie-size",
156478 type: t4.sizeMaybePercent
156479 });
156480 for (var i3 = 1; i3 <= styfn$2.pieBackgroundN; i3++) {
156481 pie2.push({
156482 name: "pie-" + i3 + "-background-color",
156483 type: t4.color
156484 });
156485 pie2.push({
156486 name: "pie-" + i3 + "-background-size",
156487 type: t4.percent
156488 });
156489 pie2.push({
156490 name: "pie-" + i3 + "-background-opacity",
156491 type: t4.zeroOneNumber
156492 });
156493 }
156494 var edgeArrow = [];
156495 var arrowPrefixes = styfn$2.arrowPrefixes = ["source", "mid-source", "target", "mid-target"];
156496 [{
156497 name: "arrow-shape",
156498 type: t4.arrowShape,
156499 triggersBounds: diff.any
156500 }, {
156501 name: "arrow-color",
156502 type: t4.color
156503 }, {
156504 name: "arrow-fill",
156505 type: t4.arrowFill
156506 }].forEach(function(prop2) {
156507 arrowPrefixes.forEach(function(prefix) {
156508 var name2 = prefix + "-" + prop2.name;
156509 var type2 = prop2.type, triggersBounds = prop2.triggersBounds;
156510 edgeArrow.push({
156511 name: name2,
156512 type: type2,
156513 triggersBounds
156514 });
156515 });
156516 }, {});
156517 var props = styfn$2.properties = [].concat(behavior, transition, visibility, overlay, underlay, ghost, commonLabel, labelDimensions, mainLabel, sourceLabel, targetLabel, nodeBody, nodeBorder, backgroundImage, pie2, compound, edgeLine, edgeArrow, core3);
156518 var propGroups = styfn$2.propertyGroups = {
156519 // common to all eles
156520 behavior,
156521 transition,
156522 visibility,
156523 overlay,
156524 underlay,
156525 ghost,
156526 // labels
156527 commonLabel,
156528 labelDimensions,
156529 mainLabel,
156530 sourceLabel,
156531 targetLabel,
156532 // node props
156533 nodeBody,
156534 nodeBorder,
156535 backgroundImage,
156536 pie: pie2,
156537 compound,
156538 // edge props
156539 edgeLine,
156540 edgeArrow,
156541 core: core3
156542 };
156543 var propGroupNames = styfn$2.propertyGroupNames = {};
156544 var propGroupKeys = styfn$2.propertyGroupKeys = Object.keys(propGroups);
156545 propGroupKeys.forEach(function(key) {
156546 propGroupNames[key] = propGroups[key].map(function(prop2) {
156547 return prop2.name;
156548 });
156549 propGroups[key].forEach(function(prop2) {
156550 return prop2.groupKey = key;
156551 });
156552 });
156553 var aliases = styfn$2.aliases = [{
156554 name: "content",
156555 pointsTo: "label"
156556 }, {
156557 name: "control-point-distance",
156558 pointsTo: "control-point-distances"
156559 }, {
156560 name: "control-point-weight",
156561 pointsTo: "control-point-weights"
156562 }, {
156563 name: "edge-text-rotation",
156564 pointsTo: "text-rotation"
156565 }, {
156566 name: "padding-left",
156567 pointsTo: "padding"
156568 }, {
156569 name: "padding-right",
156570 pointsTo: "padding"
156571 }, {
156572 name: "padding-top",
156573 pointsTo: "padding"
156574 }, {
156575 name: "padding-bottom",
156576 pointsTo: "padding"
156577 }];
156578 styfn$2.propertyNames = props.map(function(p2) {
156579 return p2.name;
156580 });
156581 for (var _i = 0; _i < props.length; _i++) {
156582 var prop = props[_i];
156583 props[prop.name] = prop;
156584 }
156585 for (var _i2 = 0; _i2 < aliases.length; _i2++) {
156586 var alias = aliases[_i2];
156587 var pointsToProp = props[alias.pointsTo];
156588 var aliasProp = {
156589 name: alias.name,
156590 alias: true,
156591 pointsTo: pointsToProp
156592 };
156593 props.push(aliasProp);
156594 props[alias.name] = aliasProp;
156595 }
156596 })();
156597 styfn$2.getDefaultProperty = function(name2) {
156598 return this.getDefaultProperties()[name2];
156599 };
156600 styfn$2.getDefaultProperties = function() {
156601 var _p = this._private;
156602 if (_p.defaultProperties != null) {
156603 return _p.defaultProperties;
156604 }
156605 var rawProps = extend2({
156606 // core props
156607 "selection-box-color": "#ddd",
156608 "selection-box-opacity": 0.65,
156609 "selection-box-border-color": "#aaa",
156610 "selection-box-border-width": 1,
156611 "active-bg-color": "black",
156612 "active-bg-opacity": 0.15,
156613 "active-bg-size": 30,
156614 "outside-texture-bg-color": "#000",
156615 "outside-texture-bg-opacity": 0.125,
156616 // common node/edge props
156617 "events": "yes",
156618 "text-events": "no",
156619 "text-valign": "top",
156620 "text-halign": "center",
156621 "text-justification": "auto",
156622 "line-height": 1,
156623 "color": "#000",
156624 "text-outline-color": "#000",
156625 "text-outline-width": 0,
156626 "text-outline-opacity": 1,
156627 "text-opacity": 1,
156628 "text-decoration": "none",
156629 "text-transform": "none",
156630 "text-wrap": "none",
156631 "text-overflow-wrap": "whitespace",
156632 "text-max-width": 9999,
156633 "text-background-color": "#000",
156634 "text-background-opacity": 0,
156635 "text-background-shape": "rectangle",
156636 "text-background-padding": 0,
156637 "text-border-opacity": 0,
156638 "text-border-width": 0,
156639 "text-border-style": "solid",
156640 "text-border-color": "#000",
156641 "font-family": "Helvetica Neue, Helvetica, sans-serif",
156642 "font-style": "normal",
156643 "font-weight": "normal",
156644 "font-size": 16,
156645 "min-zoomed-font-size": 0,
156646 "text-rotation": "none",
156647 "source-text-rotation": "none",
156648 "target-text-rotation": "none",
156649 "visibility": "visible",
156650 "display": "element",
156651 "opacity": 1,
156652 "z-compound-depth": "auto",
156653 "z-index-compare": "auto",
156654 "z-index": 0,
156655 "label": "",
156656 "text-margin-x": 0,
156657 "text-margin-y": 0,
156658 "source-label": "",
156659 "source-text-offset": 0,
156660 "source-text-margin-x": 0,
156661 "source-text-margin-y": 0,
156662 "target-label": "",
156663 "target-text-offset": 0,
156664 "target-text-margin-x": 0,
156665 "target-text-margin-y": 0,
156666 "overlay-opacity": 0,
156667 "overlay-color": "#000",
156668 "overlay-padding": 10,
156669 "overlay-shape": "round-rectangle",
156670 "underlay-opacity": 0,
156671 "underlay-color": "#000",
156672 "underlay-padding": 10,
156673 "underlay-shape": "round-rectangle",
156674 "transition-property": "none",
156675 "transition-duration": 0,
156676 "transition-delay": 0,
156677 "transition-timing-function": "linear",
156678 // node props
156679 "background-blacken": 0,
156680 "background-color": "#999",
156681 "background-fill": "solid",
156682 "background-opacity": 1,
156683 "background-image": "none",
156684 "background-image-crossorigin": "anonymous",
156685 "background-image-opacity": 1,
156686 "background-image-containment": "inside",
156687 "background-image-smoothing": "yes",
156688 "background-position-x": "50%",
156689 "background-position-y": "50%",
156690 "background-offset-x": 0,
156691 "background-offset-y": 0,
156692 "background-width-relative-to": "include-padding",
156693 "background-height-relative-to": "include-padding",
156694 "background-repeat": "no-repeat",
156695 "background-fit": "none",
156696 "background-clip": "node",
156697 "background-width": "auto",
156698 "background-height": "auto",
156699 "border-color": "#000",
156700 "border-opacity": 1,
156701 "border-width": 0,
156702 "border-style": "solid",
156703 "height": 30,
156704 "width": 30,
156705 "shape": "ellipse",
156706 "shape-polygon-points": "-1, -1, 1, -1, 1, 1, -1, 1",
156707 "bounds-expansion": 0,
156708 // node gradient
156709 "background-gradient-direction": "to-bottom",
156710 "background-gradient-stop-colors": "#999",
156711 "background-gradient-stop-positions": "0%",
156712 // ghost props
156713 "ghost": "no",
156714 "ghost-offset-y": 0,
156715 "ghost-offset-x": 0,
156716 "ghost-opacity": 0,
156717 // compound props
156718 "padding": 0,
156719 "padding-relative-to": "width",
156720 "position": "origin",
156721 "compound-sizing-wrt-labels": "include",
156722 "min-width": 0,
156723 "min-width-bias-left": 0,
156724 "min-width-bias-right": 0,
156725 "min-height": 0,
156726 "min-height-bias-top": 0,
156727 "min-height-bias-bottom": 0
156728 }, {
156729 // node pie bg
156730 "pie-size": "100%"
156731 }, [{
156732 name: "pie-{{i}}-background-color",
156733 value: "black"
156734 }, {
156735 name: "pie-{{i}}-background-size",
156736 value: "0%"
156737 }, {
156738 name: "pie-{{i}}-background-opacity",
156739 value: 1
156740 }].reduce(function(css, prop2) {
156741 for (var i4 = 1; i4 <= styfn$2.pieBackgroundN; i4++) {
156742 var name3 = prop2.name.replace("{{i}}", i4);
156743 var val2 = prop2.value;
156744 css[name3] = val2;
156745 }
156746 return css;
156747 }, {}), {
156748 // edge props
156749 "line-style": "solid",
156750 "line-color": "#999",
156751 "line-fill": "solid",
156752 "line-cap": "butt",
156753 "line-opacity": 1,
156754 "line-gradient-stop-colors": "#999",
156755 "line-gradient-stop-positions": "0%",
156756 "control-point-step-size": 40,
156757 "control-point-weights": 0.5,
156758 "segment-weights": 0.5,
156759 "segment-distances": 20,
156760 "taxi-turn": "50%",
156761 "taxi-turn-min-distance": 10,
156762 "taxi-direction": "auto",
156763 "edge-distances": "intersection",
156764 "curve-style": "haystack",
156765 "haystack-radius": 0,
156766 "arrow-scale": 1,
156767 "loop-direction": "-45deg",
156768 "loop-sweep": "-90deg",
156769 "source-distance-from-node": 0,
156770 "target-distance-from-node": 0,
156771 "source-endpoint": "outside-to-node",
156772 "target-endpoint": "outside-to-node",
156773 "line-dash-pattern": [6, 3],
156774 "line-dash-offset": 0
156775 }, [{
156776 name: "arrow-shape",
156777 value: "none"
156778 }, {
156779 name: "arrow-color",
156780 value: "#999"
156781 }, {
156782 name: "arrow-fill",
156783 value: "filled"
156784 }].reduce(function(css, prop2) {
156785 styfn$2.arrowPrefixes.forEach(function(prefix) {
156786 var name3 = prefix + "-" + prop2.name;
156787 var val2 = prop2.value;
156788 css[name3] = val2;
156789 });
156790 return css;
156791 }, {}));
156792 var parsedProps = {};
156793 for (var i3 = 0; i3 < this.properties.length; i3++) {
156794 var prop = this.properties[i3];
156795 if (prop.pointsTo) {
156796 continue;
156797 }
156798 var name2 = prop.name;
156799 var val = rawProps[name2];
156800 var parsedProp = this.parse(name2, val);
156801 parsedProps[name2] = parsedProp;
156802 }
156803 _p.defaultProperties = parsedProps;
156804 return _p.defaultProperties;
156805 };
156806 styfn$2.addDefaultStylesheet = function() {
156807 this.selector(":parent").css({
156808 "shape": "rectangle",
156809 "padding": 10,
156810 "background-color": "#eee",
156811 "border-color": "#ccc",
156812 "border-width": 1
156813 }).selector("edge").css({
156814 "width": 3
156815 }).selector(":loop").css({
156816 "curve-style": "bezier"
156817 }).selector("edge:compound").css({
156818 "curve-style": "bezier",
156819 "source-endpoint": "outside-to-line",
156820 "target-endpoint": "outside-to-line"
156821 }).selector(":selected").css({
156822 "background-color": "#0169D9",
156823 "line-color": "#0169D9",
156824 "source-arrow-color": "#0169D9",
156825 "target-arrow-color": "#0169D9",
156826 "mid-source-arrow-color": "#0169D9",
156827 "mid-target-arrow-color": "#0169D9"
156828 }).selector(":parent:selected").css({
156829 "background-color": "#CCE1F9",
156830 "border-color": "#aec8e5"
156831 }).selector(":active").css({
156832 "overlay-color": "black",
156833 "overlay-padding": 10,
156834 "overlay-opacity": 0.25
156835 });
156836 this.defaultLength = this.length;
156837 };
156838 var styfn$1 = {};
156839 styfn$1.parse = function(name2, value, propIsBypass, propIsFlat) {
156840 var self2 = this;
156841 if (fn$6(value)) {
156842 return self2.parseImplWarn(name2, value, propIsBypass, propIsFlat);
156843 }
156844 var flatKey = propIsFlat === "mapping" || propIsFlat === true || propIsFlat === false || propIsFlat == null ? "dontcare" : propIsFlat;
156845 var bypassKey = propIsBypass ? "t" : "f";
156846 var valueKey = "" + value;
156847 var argHash = hashStrings(name2, valueKey, bypassKey, flatKey);
156848 var propCache = self2.propCache = self2.propCache || [];
156849 var ret;
156850 if (!(ret = propCache[argHash])) {
156851 ret = propCache[argHash] = self2.parseImplWarn(name2, value, propIsBypass, propIsFlat);
156852 }
156853 if (propIsBypass || propIsFlat === "mapping") {
156854 ret = copy2(ret);
156855 if (ret) {
156856 ret.value = copy2(ret.value);
156857 }
156858 }
156859 return ret;
156860 };
156861 styfn$1.parseImplWarn = function(name2, value, propIsBypass, propIsFlat) {
156862 var prop = this.parseImpl(name2, value, propIsBypass, propIsFlat);
156863 if (!prop && value != null) {
156864 warn("The style property `".concat(name2, ": ").concat(value, "` is invalid"));
156865 }
156866 if (prop && (prop.name === "width" || prop.name === "height") && value === "label") {
156867 warn("The style value of `label` is deprecated for `" + prop.name + "`");
156868 }
156869 return prop;
156870 };
156871 styfn$1.parseImpl = function(name2, value, propIsBypass, propIsFlat) {
156872 var self2 = this;
156873 name2 = camel2dash(name2);
156874 var property2 = self2.properties[name2];
156875 var passedValue = value;
156876 var types = self2.types;
156877 if (!property2) {
156878 return null;
156879 }
156880 if (value === void 0) {
156881 return null;
156882 }
156883 if (property2.alias) {
156884 property2 = property2.pointsTo;
156885 name2 = property2.name;
156886 }
156887 var valueIsString = string2(value);
156888 if (valueIsString) {
156889 value = value.trim();
156890 }
156891 var type2 = property2.type;
156892 if (!type2) {
156893 return null;
156894 }
156895 if (propIsBypass && (value === "" || value === null)) {
156896 return {
156897 name: name2,
156898 value,
156899 bypass: true,
156900 deleteBypass: true
156901 };
156902 }
156903 if (fn$6(value)) {
156904 return {
156905 name: name2,
156906 value,
156907 strValue: "fn",
156908 mapped: types.fn,
156909 bypass: propIsBypass
156910 };
156911 }
156912 var data2, mapData;
156913 if (!valueIsString || propIsFlat || value.length < 7 || value[1] !== "a")
156914 ;
156915 else if (value.length >= 7 && value[0] === "d" && (data2 = new RegExp(types.data.regex).exec(value))) {
156916 if (propIsBypass) {
156917 return false;
156918 }
156919 var mapped = types.data;
156920 return {
156921 name: name2,
156922 value: data2,
156923 strValue: "" + value,
156924 mapped,
156925 field: data2[1],
156926 bypass: propIsBypass
156927 };
156928 } else if (value.length >= 10 && value[0] === "m" && (mapData = new RegExp(types.mapData.regex).exec(value))) {
156929 if (propIsBypass) {
156930 return false;
156931 }
156932 if (type2.multiple) {
156933 return false;
156934 }
156935 var _mapped = types.mapData;
156936 if (!(type2.color || type2.number)) {
156937 return false;
156938 }
156939 var valueMin = this.parse(name2, mapData[4]);
156940 if (!valueMin || valueMin.mapped) {
156941 return false;
156942 }
156943 var valueMax = this.parse(name2, mapData[5]);
156944 if (!valueMax || valueMax.mapped) {
156945 return false;
156946 }
156947 if (valueMin.pfValue === valueMax.pfValue || valueMin.strValue === valueMax.strValue) {
156948 warn("`" + name2 + ": " + value + "` is not a valid mapper because the output range is zero; converting to `" + name2 + ": " + valueMin.strValue + "`");
156949 return this.parse(name2, valueMin.strValue);
156950 } else if (type2.color) {
156951 var c1 = valueMin.value;
156952 var c2 = valueMax.value;
156953 var same = c1[0] === c2[0] && c1[1] === c2[1] && c1[2] === c2[2] && // optional alpha
156954 (c1[3] === c2[3] || (c1[3] == null || c1[3] === 1) && (c2[3] == null || c2[3] === 1));
156955 if (same) {
156956 return false;
156957 }
156958 }
156959 return {
156960 name: name2,
156961 value: mapData,
156962 strValue: "" + value,
156963 mapped: _mapped,
156964 field: mapData[1],
156965 fieldMin: parseFloat(mapData[2]),
156966 // min & max are numeric
156967 fieldMax: parseFloat(mapData[3]),
156968 valueMin: valueMin.value,
156969 valueMax: valueMax.value,
156970 bypass: propIsBypass
156971 };
156972 }
156973 if (type2.multiple && propIsFlat !== "multiple") {
156974 var vals;
156975 if (valueIsString) {
156976 vals = value.split(/\s+/);
156977 } else if (array2(value)) {
156978 vals = value;
156979 } else {
156980 vals = [value];
156981 }
156982 if (type2.evenMultiple && vals.length % 2 !== 0) {
156983 return null;
156984 }
156985 var valArr = [];
156986 var unitsArr = [];
156987 var pfValArr = [];
156988 var strVal = "";
156989 var hasEnum = false;
156990 for (var i3 = 0; i3 < vals.length; i3++) {
156991 var p2 = self2.parse(name2, vals[i3], propIsBypass, "multiple");
156992 hasEnum = hasEnum || string2(p2.value);
156993 valArr.push(p2.value);
156994 pfValArr.push(p2.pfValue != null ? p2.pfValue : p2.value);
156995 unitsArr.push(p2.units);
156996 strVal += (i3 > 0 ? " " : "") + p2.strValue;
156997 }
156998 if (type2.validate && !type2.validate(valArr, unitsArr)) {
156999 return null;
157000 }
157001 if (type2.singleEnum && hasEnum) {
157002 if (valArr.length === 1 && string2(valArr[0])) {
157003 return {
157004 name: name2,
157005 value: valArr[0],
157006 strValue: valArr[0],
157007 bypass: propIsBypass
157008 };
157009 } else {
157010 return null;
157011 }
157012 }
157013 return {
157014 name: name2,
157015 value: valArr,
157016 pfValue: pfValArr,
157017 strValue: strVal,
157018 bypass: propIsBypass,
157019 units: unitsArr
157020 };
157021 }
157022 var checkEnums = function checkEnums2() {
157023 for (var _i = 0; _i < type2.enums.length; _i++) {
157024 var en2 = type2.enums[_i];
157025 if (en2 === value) {
157026 return {
157027 name: name2,
157028 value,
157029 strValue: "" + value,
157030 bypass: propIsBypass
157031 };
157032 }
157033 }
157034 return null;
157035 };
157036 if (type2.number) {
157037 var units;
157038 var implicitUnits = "px";
157039 if (type2.units) {
157040 units = type2.units;
157041 }
157042 if (type2.implicitUnits) {
157043 implicitUnits = type2.implicitUnits;
157044 }
157045 if (!type2.unitless) {
157046 if (valueIsString) {
157047 var unitsRegex = "px|em" + (type2.allowPercent ? "|\\%" : "");
157048 if (units) {
157049 unitsRegex = units;
157050 }
157051 var match5 = value.match("^(" + number2 + ")(" + unitsRegex + ")?$");
157052 if (match5) {
157053 value = match5[1];
157054 units = match5[2] || implicitUnits;
157055 }
157056 } else if (!units || type2.implicitUnits) {
157057 units = implicitUnits;
157058 }
157059 }
157060 value = parseFloat(value);
157061 if (isNaN(value) && type2.enums === void 0) {
157062 return null;
157063 }
157064 if (isNaN(value) && type2.enums !== void 0) {
157065 value = passedValue;
157066 return checkEnums();
157067 }
157068 if (type2.integer && !integer(value)) {
157069 return null;
157070 }
157071 if (type2.min !== void 0 && (value < type2.min || type2.strictMin && value === type2.min) || type2.max !== void 0 && (value > type2.max || type2.strictMax && value === type2.max)) {
157072 return null;
157073 }
157074 var ret = {
157075 name: name2,
157076 value,
157077 strValue: "" + value + (units ? units : ""),
157078 units,
157079 bypass: propIsBypass
157080 };
157081 if (type2.unitless || units !== "px" && units !== "em") {
157082 ret.pfValue = value;
157083 } else {
157084 ret.pfValue = units === "px" || !units ? value : this.getEmSizeInPixels() * value;
157085 }
157086 if (units === "ms" || units === "s") {
157087 ret.pfValue = units === "ms" ? value : 1e3 * value;
157088 }
157089 if (units === "deg" || units === "rad") {
157090 ret.pfValue = units === "rad" ? value : deg2rad(value);
157091 }
157092 if (units === "%") {
157093 ret.pfValue = value / 100;
157094 }
157095 return ret;
157096 } else if (type2.propList) {
157097 var props = [];
157098 var propsStr = "" + value;
157099 if (propsStr === "none")
157100 ;
157101 else {
157102 var propsSplit = propsStr.split(/\s*,\s*|\s+/);
157103 for (var _i2 = 0; _i2 < propsSplit.length; _i2++) {
157104 var propName = propsSplit[_i2].trim();
157105 if (self2.properties[propName]) {
157106 props.push(propName);
157107 } else {
157108 warn("`" + propName + "` is not a valid property name");
157109 }
157110 }
157111 if (props.length === 0) {
157112 return null;
157113 }
157114 }
157115 return {
157116 name: name2,
157117 value: props,
157118 strValue: props.length === 0 ? "none" : props.join(" "),
157119 bypass: propIsBypass
157120 };
157121 } else if (type2.color) {
157122 var tuple = color2tuple(value);
157123 if (!tuple) {
157124 return null;
157125 }
157126 return {
157127 name: name2,
157128 value: tuple,
157129 pfValue: tuple,
157130 strValue: "rgb(" + tuple[0] + "," + tuple[1] + "," + tuple[2] + ")",
157131 // n.b. no spaces b/c of multiple support
157132 bypass: propIsBypass
157133 };
157134 } else if (type2.regex || type2.regexes) {
157135 if (type2.enums) {
157136 var enumProp = checkEnums();
157137 if (enumProp) {
157138 return enumProp;
157139 }
157140 }
157141 var regexes = type2.regexes ? type2.regexes : [type2.regex];
157142 for (var _i3 = 0; _i3 < regexes.length; _i3++) {
157143 var regex = new RegExp(regexes[_i3]);
157144 var m = regex.exec(value);
157145 if (m) {
157146 return {
157147 name: name2,
157148 value: type2.singleRegexMatchValue ? m[1] : m,
157149 strValue: "" + value,
157150 bypass: propIsBypass
157151 };
157152 }
157153 }
157154 return null;
157155 } else if (type2.string) {
157156 return {
157157 name: name2,
157158 value: "" + value,
157159 strValue: "" + value,
157160 bypass: propIsBypass
157161 };
157162 } else if (type2.enums) {
157163 return checkEnums();
157164 } else {
157165 return null;
157166 }
157167 };
157168 var Style = function Style2(cy) {
157169 if (!(this instanceof Style2)) {
157170 return new Style2(cy);
157171 }
157172 if (!core2(cy)) {
157173 error("A style must have a core reference");
157174 return;
157175 }
157176 this._private = {
157177 cy,
157178 coreStyle: {}
157179 };
157180 this.length = 0;
157181 this.resetToDefault();
157182 };
157183 var styfn = Style.prototype;
157184 styfn.instanceString = function() {
157185 return "style";
157186 };
157187 styfn.clear = function() {
157188 var _p = this._private;
157189 var cy = _p.cy;
157190 var eles = cy.elements();
157191 for (var i3 = 0; i3 < this.length; i3++) {
157192 this[i3] = void 0;
157193 }
157194 this.length = 0;
157195 _p.contextStyles = {};
157196 _p.propDiffs = {};
157197 this.cleanElements(eles, true);
157198 eles.forEach(function(ele) {
157199 var ele_p = ele[0]._private;
157200 ele_p.styleDirty = true;
157201 ele_p.appliedInitStyle = false;
157202 });
157203 return this;
157204 };
157205 styfn.resetToDefault = function() {
157206 this.clear();
157207 this.addDefaultStylesheet();
157208 return this;
157209 };
157210 styfn.core = function(propName) {
157211 return this._private.coreStyle[propName] || this.getDefaultProperty(propName);
157212 };
157213 styfn.selector = function(selectorStr) {
157214 var selector2 = selectorStr === "core" ? null : new Selector(selectorStr);
157215 var i3 = this.length++;
157216 this[i3] = {
157217 selector: selector2,
157218 properties: [],
157219 mappedProperties: [],
157220 index: i3
157221 };
157222 return this;
157223 };
157224 styfn.css = function() {
157225 var self2 = this;
157226 var args = arguments;
157227 if (args.length === 1) {
157228 var map2 = args[0];
157229 for (var i3 = 0; i3 < self2.properties.length; i3++) {
157230 var prop = self2.properties[i3];
157231 var mapVal = map2[prop.name];
157232 if (mapVal === void 0) {
157233 mapVal = map2[dash2camel(prop.name)];
157234 }
157235 if (mapVal !== void 0) {
157236 this.cssRule(prop.name, mapVal);
157237 }
157238 }
157239 } else if (args.length === 2) {
157240 this.cssRule(args[0], args[1]);
157241 }
157242 return this;
157243 };
157244 styfn.style = styfn.css;
157245 styfn.cssRule = function(name2, value) {
157246 var property2 = this.parse(name2, value);
157247 if (property2) {
157248 var i3 = this.length - 1;
157249 this[i3].properties.push(property2);
157250 this[i3].properties[property2.name] = property2;
157251 if (property2.name.match(/pie-(\d+)-background-size/) && property2.value) {
157252 this._private.hasPie = true;
157253 }
157254 if (property2.mapped) {
157255 this[i3].mappedProperties.push(property2);
157256 }
157257 var currentSelectorIsCore = !this[i3].selector;
157258 if (currentSelectorIsCore) {
157259 this._private.coreStyle[property2.name] = property2;
157260 }
157261 }
157262 return this;
157263 };
157264 styfn.append = function(style) {
157265 if (stylesheet(style)) {
157266 style.appendToStyle(this);
157267 } else if (array2(style)) {
157268 this.appendFromJson(style);
157269 } else if (string2(style)) {
157270 this.appendFromString(style);
157271 }
157272 return this;
157273 };
157274 Style.fromJson = function(cy, json2) {
157275 var style = new Style(cy);
157276 style.fromJson(json2);
157277 return style;
157278 };
157279 Style.fromString = function(cy, string3) {
157280 return new Style(cy).fromString(string3);
157281 };
157282 [styfn$8, styfn$7, styfn$6, styfn$5, styfn$4, styfn$3, styfn$2, styfn$1].forEach(function(props) {
157283 extend2(styfn, props);
157284 });
157285 Style.types = styfn.types;
157286 Style.properties = styfn.properties;
157287 Style.propertyGroups = styfn.propertyGroups;
157288 Style.propertyGroupNames = styfn.propertyGroupNames;
157289 Style.propertyGroupKeys = styfn.propertyGroupKeys;
157290 var corefn$2 = {
157291 style: function style(newStyle) {
157292 if (newStyle) {
157293 var s = this.setStyle(newStyle);
157294 s.update();
157295 }
157296 return this._private.style;
157297 },
157298 setStyle: function setStyle2(style) {
157299 var _p = this._private;
157300 if (stylesheet(style)) {
157301 _p.style = style.generateStyle(this);
157302 } else if (array2(style)) {
157303 _p.style = Style.fromJson(this, style);
157304 } else if (string2(style)) {
157305 _p.style = Style.fromString(this, style);
157306 } else {
157307 _p.style = Style(this);
157308 }
157309 return _p.style;
157310 },
157311 // e.g. cy.data() changed => recalc ele mappers
157312 updateStyle: function updateStyle() {
157313 this.mutableElements().updateStyle();
157314 }
157315 };
157316 var defaultSelectionType = "single";
157317 var corefn$1 = {
157318 autolock: function autolock(bool2) {
157319 if (bool2 !== void 0) {
157320 this._private.autolock = bool2 ? true : false;
157321 } else {
157322 return this._private.autolock;
157323 }
157324 return this;
157325 },
157326 autoungrabify: function autoungrabify(bool2) {
157327 if (bool2 !== void 0) {
157328 this._private.autoungrabify = bool2 ? true : false;
157329 } else {
157330 return this._private.autoungrabify;
157331 }
157332 return this;
157333 },
157334 autounselectify: function autounselectify(bool2) {
157335 if (bool2 !== void 0) {
157336 this._private.autounselectify = bool2 ? true : false;
157337 } else {
157338 return this._private.autounselectify;
157339 }
157340 return this;
157341 },
157342 selectionType: function selectionType(selType) {
157343 var _p = this._private;
157344 if (_p.selectionType == null) {
157345 _p.selectionType = defaultSelectionType;
157346 }
157347 if (selType !== void 0) {
157348 if (selType === "additive" || selType === "single") {
157349 _p.selectionType = selType;
157350 }
157351 } else {
157352 return _p.selectionType;
157353 }
157354 return this;
157355 },
157356 panningEnabled: function panningEnabled(bool2) {
157357 if (bool2 !== void 0) {
157358 this._private.panningEnabled = bool2 ? true : false;
157359 } else {
157360 return this._private.panningEnabled;
157361 }
157362 return this;
157363 },
157364 userPanningEnabled: function userPanningEnabled(bool2) {
157365 if (bool2 !== void 0) {
157366 this._private.userPanningEnabled = bool2 ? true : false;
157367 } else {
157368 return this._private.userPanningEnabled;
157369 }
157370 return this;
157371 },
157372 zoomingEnabled: function zoomingEnabled(bool2) {
157373 if (bool2 !== void 0) {
157374 this._private.zoomingEnabled = bool2 ? true : false;
157375 } else {
157376 return this._private.zoomingEnabled;
157377 }
157378 return this;
157379 },
157380 userZoomingEnabled: function userZoomingEnabled(bool2) {
157381 if (bool2 !== void 0) {
157382 this._private.userZoomingEnabled = bool2 ? true : false;
157383 } else {
157384 return this._private.userZoomingEnabled;
157385 }
157386 return this;
157387 },
157388 boxSelectionEnabled: function boxSelectionEnabled(bool2) {
157389 if (bool2 !== void 0) {
157390 this._private.boxSelectionEnabled = bool2 ? true : false;
157391 } else {
157392 return this._private.boxSelectionEnabled;
157393 }
157394 return this;
157395 },
157396 pan: function pan() {
157397 var args = arguments;
157398 var pan2 = this._private.pan;
157399 var dim, val, dims, x2, y2;
157400 switch (args.length) {
157401 case 0:
157402 return pan2;
157403 case 1:
157404 if (string2(args[0])) {
157405 dim = args[0];
157406 return pan2[dim];
157407 } else if (plainObject(args[0])) {
157408 if (!this._private.panningEnabled) {
157409 return this;
157410 }
157411 dims = args[0];
157412 x2 = dims.x;
157413 y2 = dims.y;
157414 if (number$12(x2)) {
157415 pan2.x = x2;
157416 }
157417 if (number$12(y2)) {
157418 pan2.y = y2;
157419 }
157420 this.emit("pan viewport");
157421 }
157422 break;
157423 case 2:
157424 if (!this._private.panningEnabled) {
157425 return this;
157426 }
157427 dim = args[0];
157428 val = args[1];
157429 if ((dim === "x" || dim === "y") && number$12(val)) {
157430 pan2[dim] = val;
157431 }
157432 this.emit("pan viewport");
157433 break;
157434 }
157435 this.notify("viewport");
157436 return this;
157437 },
157438 panBy: function panBy(arg0, arg1) {
157439 var args = arguments;
157440 var pan = this._private.pan;
157441 var dim, val, dims, x2, y2;
157442 if (!this._private.panningEnabled) {
157443 return this;
157444 }
157445 switch (args.length) {
157446 case 1:
157447 if (plainObject(arg0)) {
157448 dims = args[0];
157449 x2 = dims.x;
157450 y2 = dims.y;
157451 if (number$12(x2)) {
157452 pan.x += x2;
157453 }
157454 if (number$12(y2)) {
157455 pan.y += y2;
157456 }
157457 this.emit("pan viewport");
157458 }
157459 break;
157460 case 2:
157461 dim = arg0;
157462 val = arg1;
157463 if ((dim === "x" || dim === "y") && number$12(val)) {
157464 pan[dim] += val;
157465 }
157466 this.emit("pan viewport");
157467 break;
157468 }
157469 this.notify("viewport");
157470 return this;
157471 },
157472 fit: function fit(elements2, padding2) {
157473 var viewportState = this.getFitViewport(elements2, padding2);
157474 if (viewportState) {
157475 var _p = this._private;
157476 _p.zoom = viewportState.zoom;
157477 _p.pan = viewportState.pan;
157478 this.emit("pan zoom viewport");
157479 this.notify("viewport");
157480 }
157481 return this;
157482 },
157483 getFitViewport: function getFitViewport(elements2, padding2) {
157484 if (number$12(elements2) && padding2 === void 0) {
157485 padding2 = elements2;
157486 elements2 = void 0;
157487 }
157488 if (!this._private.panningEnabled || !this._private.zoomingEnabled) {
157489 return;
157490 }
157491 var bb;
157492 if (string2(elements2)) {
157493 var sel = elements2;
157494 elements2 = this.$(sel);
157495 } else if (boundingBox(elements2)) {
157496 var bbe = elements2;
157497 bb = {
157498 x1: bbe.x1,
157499 y1: bbe.y1,
157500 x2: bbe.x2,
157501 y2: bbe.y2
157502 };
157503 bb.w = bb.x2 - bb.x1;
157504 bb.h = bb.y2 - bb.y1;
157505 } else if (!elementOrCollection(elements2)) {
157506 elements2 = this.mutableElements();
157507 }
157508 if (elementOrCollection(elements2) && elements2.empty()) {
157509 return;
157510 }
157511 bb = bb || elements2.boundingBox();
157512 var w2 = this.width();
157513 var h = this.height();
157514 var zoom;
157515 padding2 = number$12(padding2) ? padding2 : 0;
157516 if (!isNaN(w2) && !isNaN(h) && w2 > 0 && h > 0 && !isNaN(bb.w) && !isNaN(bb.h) && bb.w > 0 && bb.h > 0) {
157517 zoom = Math.min((w2 - 2 * padding2) / bb.w, (h - 2 * padding2) / bb.h);
157518 zoom = zoom > this._private.maxZoom ? this._private.maxZoom : zoom;
157519 zoom = zoom < this._private.minZoom ? this._private.minZoom : zoom;
157520 var pan = {
157521 // now pan to middle
157522 x: (w2 - zoom * (bb.x1 + bb.x2)) / 2,
157523 y: (h - zoom * (bb.y1 + bb.y2)) / 2
157524 };
157525 return {
157526 zoom,
157527 pan
157528 };
157529 }
157530 return;
157531 },
157532 zoomRange: function zoomRange(min3, max3) {
157533 var _p = this._private;
157534 if (max3 == null) {
157535 var opts = min3;
157536 min3 = opts.min;
157537 max3 = opts.max;
157538 }
157539 if (number$12(min3) && number$12(max3) && min3 <= max3) {
157540 _p.minZoom = min3;
157541 _p.maxZoom = max3;
157542 } else if (number$12(min3) && max3 === void 0 && min3 <= _p.maxZoom) {
157543 _p.minZoom = min3;
157544 } else if (number$12(max3) && min3 === void 0 && max3 >= _p.minZoom) {
157545 _p.maxZoom = max3;
157546 }
157547 return this;
157548 },
157549 minZoom: function minZoom(zoom) {
157550 if (zoom === void 0) {
157551 return this._private.minZoom;
157552 } else {
157553 return this.zoomRange({
157554 min: zoom
157555 });
157556 }
157557 },
157558 maxZoom: function maxZoom2(zoom) {
157559 if (zoom === void 0) {
157560 return this._private.maxZoom;
157561 } else {
157562 return this.zoomRange({
157563 max: zoom
157564 });
157565 }
157566 },
157567 getZoomedViewport: function getZoomedViewport(params) {
157568 var _p = this._private;
157569 var currentPan = _p.pan;
157570 var currentZoom = _p.zoom;
157571 var pos;
157572 var zoom;
157573 var bail = false;
157574 if (!_p.zoomingEnabled) {
157575 bail = true;
157576 }
157577 if (number$12(params)) {
157578 zoom = params;
157579 } else if (plainObject(params)) {
157580 zoom = params.level;
157581 if (params.position != null) {
157582 pos = modelToRenderedPosition(params.position, currentZoom, currentPan);
157583 } else if (params.renderedPosition != null) {
157584 pos = params.renderedPosition;
157585 }
157586 if (pos != null && !_p.panningEnabled) {
157587 bail = true;
157588 }
157589 }
157590 zoom = zoom > _p.maxZoom ? _p.maxZoom : zoom;
157591 zoom = zoom < _p.minZoom ? _p.minZoom : zoom;
157592 if (bail || !number$12(zoom) || zoom === currentZoom || pos != null && (!number$12(pos.x) || !number$12(pos.y))) {
157593 return null;
157594 }
157595 if (pos != null) {
157596 var pan1 = currentPan;
157597 var zoom1 = currentZoom;
157598 var zoom2 = zoom;
157599 var pan2 = {
157600 x: -zoom2 / zoom1 * (pos.x - pan1.x) + pos.x,
157601 y: -zoom2 / zoom1 * (pos.y - pan1.y) + pos.y
157602 };
157603 return {
157604 zoomed: true,
157605 panned: true,
157606 zoom: zoom2,
157607 pan: pan2
157608 };
157609 } else {
157610 return {
157611 zoomed: true,
157612 panned: false,
157613 zoom,
157614 pan: currentPan
157615 };
157616 }
157617 },
157618 zoom: function zoom(params) {
157619 if (params === void 0) {
157620 return this._private.zoom;
157621 } else {
157622 var vp = this.getZoomedViewport(params);
157623 var _p = this._private;
157624 if (vp == null || !vp.zoomed) {
157625 return this;
157626 }
157627 _p.zoom = vp.zoom;
157628 if (vp.panned) {
157629 _p.pan.x = vp.pan.x;
157630 _p.pan.y = vp.pan.y;
157631 }
157632 this.emit("zoom" + (vp.panned ? " pan" : "") + " viewport");
157633 this.notify("viewport");
157634 return this;
157635 }
157636 },
157637 viewport: function viewport(opts) {
157638 var _p = this._private;
157639 var zoomDefd = true;
157640 var panDefd = true;
157641 var events = [];
157642 var zoomFailed = false;
157643 var panFailed = false;
157644 if (!opts) {
157645 return this;
157646 }
157647 if (!number$12(opts.zoom)) {
157648 zoomDefd = false;
157649 }
157650 if (!plainObject(opts.pan)) {
157651 panDefd = false;
157652 }
157653 if (!zoomDefd && !panDefd) {
157654 return this;
157655 }
157656 if (zoomDefd) {
157657 var z = opts.zoom;
157658 if (z < _p.minZoom || z > _p.maxZoom || !_p.zoomingEnabled) {
157659 zoomFailed = true;
157660 } else {
157661 _p.zoom = z;
157662 events.push("zoom");
157663 }
157664 }
157665 if (panDefd && (!zoomFailed || !opts.cancelOnFailedZoom) && _p.panningEnabled) {
157666 var p2 = opts.pan;
157667 if (number$12(p2.x)) {
157668 _p.pan.x = p2.x;
157669 panFailed = false;
157670 }
157671 if (number$12(p2.y)) {
157672 _p.pan.y = p2.y;
157673 panFailed = false;
157674 }
157675 if (!panFailed) {
157676 events.push("pan");
157677 }
157678 }
157679 if (events.length > 0) {
157680 events.push("viewport");
157681 this.emit(events.join(" "));
157682 this.notify("viewport");
157683 }
157684 return this;
157685 },
157686 center: function center2(elements2) {
157687 var pan = this.getCenterPan(elements2);
157688 if (pan) {
157689 this._private.pan = pan;
157690 this.emit("pan viewport");
157691 this.notify("viewport");
157692 }
157693 return this;
157694 },
157695 getCenterPan: function getCenterPan(elements2, zoom) {
157696 if (!this._private.panningEnabled) {
157697 return;
157698 }
157699 if (string2(elements2)) {
157700 var selector2 = elements2;
157701 elements2 = this.mutableElements().filter(selector2);
157702 } else if (!elementOrCollection(elements2)) {
157703 elements2 = this.mutableElements();
157704 }
157705 if (elements2.length === 0) {
157706 return;
157707 }
157708 var bb = elements2.boundingBox();
157709 var w2 = this.width();
157710 var h = this.height();
157711 zoom = zoom === void 0 ? this._private.zoom : zoom;
157712 var pan = {
157713 // middle
157714 x: (w2 - zoom * (bb.x1 + bb.x2)) / 2,
157715 y: (h - zoom * (bb.y1 + bb.y2)) / 2
157716 };
157717 return pan;
157718 },
157719 reset: function reset2() {
157720 if (!this._private.panningEnabled || !this._private.zoomingEnabled) {
157721 return this;
157722 }
157723 this.viewport({
157724 pan: {
157725 x: 0,
157726 y: 0
157727 },
157728 zoom: 1
157729 });
157730 return this;
157731 },
157732 invalidateSize: function invalidateSize() {
157733 this._private.sizeCache = null;
157734 },
157735 size: function size2() {
157736 var _p = this._private;
157737 var container = _p.container;
157738 return _p.sizeCache = _p.sizeCache || (container ? function() {
157739 var style = window$1.getComputedStyle(container);
157740 var val = function val2(name2) {
157741 return parseFloat(style.getPropertyValue(name2));
157742 };
157743 return {
157744 width: container.clientWidth - val("padding-left") - val("padding-right"),
157745 height: container.clientHeight - val("padding-top") - val("padding-bottom")
157746 };
157747 }() : {
157748 // fallback if no container (not 0 b/c can be used for dividing etc)
157749 width: 1,
157750 height: 1
157751 });
157752 },
157753 width: function width2() {
157754 return this.size().width;
157755 },
157756 height: function height2() {
157757 return this.size().height;
157758 },
157759 extent: function extent() {
157760 var pan = this._private.pan;
157761 var zoom = this._private.zoom;
157762 var rb = this.renderedExtent();
157763 var b = {
157764 x1: (rb.x1 - pan.x) / zoom,
157765 x2: (rb.x2 - pan.x) / zoom,
157766 y1: (rb.y1 - pan.y) / zoom,
157767 y2: (rb.y2 - pan.y) / zoom
157768 };
157769 b.w = b.x2 - b.x1;
157770 b.h = b.y2 - b.y1;
157771 return b;
157772 },
157773 renderedExtent: function renderedExtent() {
157774 var width2 = this.width();
157775 var height2 = this.height();
157776 return {
157777 x1: 0,
157778 y1: 0,
157779 x2: width2,
157780 y2: height2,
157781 w: width2,
157782 h: height2
157783 };
157784 },
157785 multiClickDebounceTime: function multiClickDebounceTime(_int) {
157786 if (_int)
157787 this._private.multiClickDebounceTime = _int;
157788 else
157789 return this._private.multiClickDebounceTime;
157790 return this;
157791 }
157792 };
157793 corefn$1.centre = corefn$1.center;
157794 corefn$1.autolockNodes = corefn$1.autolock;
157795 corefn$1.autoungrabifyNodes = corefn$1.autoungrabify;
157796 var fn = {
157797 data: define3.data({
157798 field: "data",
157799 bindingEvent: "data",
157800 allowBinding: true,
157801 allowSetting: true,
157802 settingEvent: "data",
157803 settingTriggersEvent: true,
157804 triggerFnName: "trigger",
157805 allowGetting: true,
157806 updateStyle: true
157807 }),
157808 removeData: define3.removeData({
157809 field: "data",
157810 event: "data",
157811 triggerFnName: "trigger",
157812 triggerEvent: true,
157813 updateStyle: true
157814 }),
157815 scratch: define3.data({
157816 field: "scratch",
157817 bindingEvent: "scratch",
157818 allowBinding: true,
157819 allowSetting: true,
157820 settingEvent: "scratch",
157821 settingTriggersEvent: true,
157822 triggerFnName: "trigger",
157823 allowGetting: true,
157824 updateStyle: true
157825 }),
157826 removeScratch: define3.removeData({
157827 field: "scratch",
157828 event: "scratch",
157829 triggerFnName: "trigger",
157830 triggerEvent: true,
157831 updateStyle: true
157832 })
157833 };
157834 fn.attr = fn.data;
157835 fn.removeAttr = fn.removeData;
157836 var Core = function Core2(opts) {
157837 var cy = this;
157838 opts = extend2({}, opts);
157839 var container = opts.container;
157840 if (container && !htmlElement(container) && htmlElement(container[0])) {
157841 container = container[0];
157842 }
157843 var reg = container ? container._cyreg : null;
157844 reg = reg || {};
157845 if (reg && reg.cy) {
157846 reg.cy.destroy();
157847 reg = {};
157848 }
157849 var readies = reg.readies = reg.readies || [];
157850 if (container) {
157851 container._cyreg = reg;
157852 }
157853 reg.cy = cy;
157854 var head2 = window$1 !== void 0 && container !== void 0 && !opts.headless;
157855 var options2 = opts;
157856 options2.layout = extend2({
157857 name: head2 ? "grid" : "null"
157858 }, options2.layout);
157859 options2.renderer = extend2({
157860 name: head2 ? "canvas" : "null"
157861 }, options2.renderer);
157862 var defVal = function defVal2(def, val, altVal) {
157863 if (val !== void 0) {
157864 return val;
157865 } else if (altVal !== void 0) {
157866 return altVal;
157867 } else {
157868 return def;
157869 }
157870 };
157871 var _p = this._private = {
157872 container,
157873 // html dom ele container
157874 ready: false,
157875 // whether ready has been triggered
157876 options: options2,
157877 // cached options
157878 elements: new Collection(this),
157879 // elements in the graph
157880 listeners: [],
157881 // list of listeners
157882 aniEles: new Collection(this),
157883 // elements being animated
157884 data: options2.data || {},
157885 // data for the core
157886 scratch: {},
157887 // scratch object for core
157888 layout: null,
157889 renderer: null,
157890 destroyed: false,
157891 // whether destroy was called
157892 notificationsEnabled: true,
157893 // whether notifications are sent to the renderer
157894 minZoom: 1e-50,
157895 maxZoom: 1e50,
157896 zoomingEnabled: defVal(true, options2.zoomingEnabled),
157897 userZoomingEnabled: defVal(true, options2.userZoomingEnabled),
157898 panningEnabled: defVal(true, options2.panningEnabled),
157899 userPanningEnabled: defVal(true, options2.userPanningEnabled),
157900 boxSelectionEnabled: defVal(true, options2.boxSelectionEnabled),
157901 autolock: defVal(false, options2.autolock, options2.autolockNodes),
157902 autoungrabify: defVal(false, options2.autoungrabify, options2.autoungrabifyNodes),
157903 autounselectify: defVal(false, options2.autounselectify),
157904 styleEnabled: options2.styleEnabled === void 0 ? head2 : options2.styleEnabled,
157905 zoom: number$12(options2.zoom) ? options2.zoom : 1,
157906 pan: {
157907 x: plainObject(options2.pan) && number$12(options2.pan.x) ? options2.pan.x : 0,
157908 y: plainObject(options2.pan) && number$12(options2.pan.y) ? options2.pan.y : 0
157909 },
157910 animation: {
157911 // object for currently-running animations
157912 current: [],
157913 queue: []
157914 },
157915 hasCompoundNodes: false,
157916 multiClickDebounceTime: defVal(250, options2.multiClickDebounceTime)
157917 };
157918 this.createEmitter();
157919 this.selectionType(options2.selectionType);
157920 this.zoomRange({
157921 min: options2.minZoom,
157922 max: options2.maxZoom
157923 });
157924 var loadExtData = function loadExtData2(extData, next2) {
157925 var anyIsPromise = extData.some(promise);
157926 if (anyIsPromise) {
157927 return Promise$12.all(extData).then(next2);
157928 } else {
157929 next2(extData);
157930 }
157931 };
157932 if (_p.styleEnabled) {
157933 cy.setStyle([]);
157934 }
157935 var rendererOptions = extend2({}, options2, options2.renderer);
157936 cy.initRenderer(rendererOptions);
157937 var setElesAndLayout = function setElesAndLayout2(elements2, onload, ondone) {
157938 cy.notifications(false);
157939 var oldEles = cy.mutableElements();
157940 if (oldEles.length > 0) {
157941 oldEles.remove();
157942 }
157943 if (elements2 != null) {
157944 if (plainObject(elements2) || array2(elements2)) {
157945 cy.add(elements2);
157946 }
157947 }
157948 cy.one("layoutready", function(e) {
157949 cy.notifications(true);
157950 cy.emit(e);
157951 cy.one("load", onload);
157952 cy.emitAndNotify("load");
157953 }).one("layoutstop", function() {
157954 cy.one("done", ondone);
157955 cy.emit("done");
157956 });
157957 var layoutOpts = extend2({}, cy._private.options.layout);
157958 layoutOpts.eles = cy.elements();
157959 cy.layout(layoutOpts).run();
157960 };
157961 loadExtData([options2.style, options2.elements], function(thens) {
157962 var initStyle = thens[0];
157963 var initEles = thens[1];
157964 if (_p.styleEnabled) {
157965 cy.style().append(initStyle);
157966 }
157967 setElesAndLayout(initEles, function() {
157968 cy.startAnimationLoop();
157969 _p.ready = true;
157970 if (fn$6(options2.ready)) {
157971 cy.on("ready", options2.ready);
157972 }
157973 for (var i3 = 0; i3 < readies.length; i3++) {
157974 var fn2 = readies[i3];
157975 cy.on("ready", fn2);
157976 }
157977 if (reg) {
157978 reg.readies = [];
157979 }
157980 cy.emit("ready");
157981 }, options2.done);
157982 });
157983 };
157984 var corefn = Core.prototype;
157985 extend2(corefn, {
157986 instanceString: function instanceString() {
157987 return "core";
157988 },
157989 isReady: function isReady() {
157990 return this._private.ready;
157991 },
157992 destroyed: function destroyed() {
157993 return this._private.destroyed;
157994 },
157995 ready: function ready(fn2) {
157996 if (this.isReady()) {
157997 this.emitter().emit("ready", [], fn2);
157998 } else {
157999 this.on("ready", fn2);
158000 }
158001 return this;
158002 },
158003 destroy: function destroy() {
158004 var cy = this;
158005 if (cy.destroyed())
158006 return;
158007 cy.stopAnimationLoop();
158008 cy.destroyRenderer();
158009 this.emit("destroy");
158010 cy._private.destroyed = true;
158011 return cy;
158012 },
158013 hasElementWithId: function hasElementWithId(id2) {
158014 return this._private.elements.hasElementWithId(id2);
158015 },
158016 getElementById: function getElementById2(id2) {
158017 return this._private.elements.getElementById(id2);
158018 },
158019 hasCompoundNodes: function hasCompoundNodes() {
158020 return this._private.hasCompoundNodes;
158021 },
158022 headless: function headless() {
158023 return this._private.renderer.isHeadless();
158024 },
158025 styleEnabled: function styleEnabled() {
158026 return this._private.styleEnabled;
158027 },
158028 addToPool: function addToPool(eles) {
158029 this._private.elements.merge(eles);
158030 return this;
158031 },
158032 removeFromPool: function removeFromPool(eles) {
158033 this._private.elements.unmerge(eles);
158034 return this;
158035 },
158036 container: function container() {
158037 return this._private.container || null;
158038 },
158039 mount: function mount(container) {
158040 if (container == null) {
158041 return;
158042 }
158043 var cy = this;
158044 var _p = cy._private;
158045 var options2 = _p.options;
158046 if (!htmlElement(container) && htmlElement(container[0])) {
158047 container = container[0];
158048 }
158049 cy.stopAnimationLoop();
158050 cy.destroyRenderer();
158051 _p.container = container;
158052 _p.styleEnabled = true;
158053 cy.invalidateSize();
158054 cy.initRenderer(extend2({}, options2, options2.renderer, {
158055 // allow custom renderer name to be re-used, otherwise use canvas
158056 name: options2.renderer.name === "null" ? "canvas" : options2.renderer.name
158057 }));
158058 cy.startAnimationLoop();
158059 cy.style(options2.style);
158060 cy.emit("mount");
158061 return cy;
158062 },
158063 unmount: function unmount() {
158064 var cy = this;
158065 cy.stopAnimationLoop();
158066 cy.destroyRenderer();
158067 cy.initRenderer({
158068 name: "null"
158069 });
158070 cy.emit("unmount");
158071 return cy;
158072 },
158073 options: function options2() {
158074 return copy2(this._private.options);
158075 },
158076 json: function json2(obj) {
158077 var cy = this;
158078 var _p = cy._private;
158079 var eles = cy.mutableElements();
158080 var getFreshRef = function getFreshRef2(ele) {
158081 return cy.getElementById(ele.id());
158082 };
158083 if (plainObject(obj)) {
158084 cy.startBatch();
158085 if (obj.elements) {
158086 var idInJson = {};
158087 var updateEles = function updateEles2(jsons, gr2) {
158088 var toAdd = [];
158089 var toMod = [];
158090 for (var i4 = 0; i4 < jsons.length; i4++) {
158091 var json4 = jsons[i4];
158092 if (!json4.data.id) {
158093 warn("cy.json() cannot handle elements without an ID attribute");
158094 continue;
158095 }
158096 var id2 = "" + json4.data.id;
158097 var ele = cy.getElementById(id2);
158098 idInJson[id2] = true;
158099 if (ele.length !== 0) {
158100 toMod.push({
158101 ele,
158102 json: json4
158103 });
158104 } else {
158105 if (gr2) {
158106 json4.group = gr2;
158107 toAdd.push(json4);
158108 } else {
158109 toAdd.push(json4);
158110 }
158111 }
158112 }
158113 cy.add(toAdd);
158114 for (var _i = 0; _i < toMod.length; _i++) {
158115 var _toMod$_i = toMod[_i], _ele = _toMod$_i.ele, _json = _toMod$_i.json;
158116 _ele.json(_json);
158117 }
158118 };
158119 if (array2(obj.elements)) {
158120 updateEles(obj.elements);
158121 } else {
158122 var grs = ["nodes", "edges"];
158123 for (var i3 = 0; i3 < grs.length; i3++) {
158124 var gr = grs[i3];
158125 var elements2 = obj.elements[gr];
158126 if (array2(elements2)) {
158127 updateEles(elements2, gr);
158128 }
158129 }
158130 }
158131 var parentsToRemove = cy.collection();
158132 eles.filter(function(ele) {
158133 return !idInJson[ele.id()];
158134 }).forEach(function(ele) {
158135 if (ele.isParent()) {
158136 parentsToRemove.merge(ele);
158137 } else {
158138 ele.remove();
158139 }
158140 });
158141 parentsToRemove.forEach(function(ele) {
158142 return ele.children().move({
158143 parent: null
158144 });
158145 });
158146 parentsToRemove.forEach(function(ele) {
158147 return getFreshRef(ele).remove();
158148 });
158149 }
158150 if (obj.style) {
158151 cy.style(obj.style);
158152 }
158153 if (obj.zoom != null && obj.zoom !== _p.zoom) {
158154 cy.zoom(obj.zoom);
158155 }
158156 if (obj.pan) {
158157 if (obj.pan.x !== _p.pan.x || obj.pan.y !== _p.pan.y) {
158158 cy.pan(obj.pan);
158159 }
158160 }
158161 if (obj.data) {
158162 cy.data(obj.data);
158163 }
158164 var fields = ["minZoom", "maxZoom", "zoomingEnabled", "userZoomingEnabled", "panningEnabled", "userPanningEnabled", "boxSelectionEnabled", "autolock", "autoungrabify", "autounselectify", "multiClickDebounceTime"];
158165 for (var _i2 = 0; _i2 < fields.length; _i2++) {
158166 var f2 = fields[_i2];
158167 if (obj[f2] != null) {
158168 cy[f2](obj[f2]);
158169 }
158170 }
158171 cy.endBatch();
158172 return this;
158173 } else {
158174 var flat = !!obj;
158175 var json3 = {};
158176 if (flat) {
158177 json3.elements = this.elements().map(function(ele) {
158178 return ele.json();
158179 });
158180 } else {
158181 json3.elements = {};
158182 eles.forEach(function(ele) {
158183 var group = ele.group();
158184 if (!json3.elements[group]) {
158185 json3.elements[group] = [];
158186 }
158187 json3.elements[group].push(ele.json());
158188 });
158189 }
158190 if (this._private.styleEnabled) {
158191 json3.style = cy.style().json();
158192 }
158193 json3.data = copy2(cy.data());
158194 var options2 = _p.options;
158195 json3.zoomingEnabled = _p.zoomingEnabled;
158196 json3.userZoomingEnabled = _p.userZoomingEnabled;
158197 json3.zoom = _p.zoom;
158198 json3.minZoom = _p.minZoom;
158199 json3.maxZoom = _p.maxZoom;
158200 json3.panningEnabled = _p.panningEnabled;
158201 json3.userPanningEnabled = _p.userPanningEnabled;
158202 json3.pan = copy2(_p.pan);
158203 json3.boxSelectionEnabled = _p.boxSelectionEnabled;
158204 json3.renderer = copy2(options2.renderer);
158205 json3.hideEdgesOnViewport = options2.hideEdgesOnViewport;
158206 json3.textureOnViewport = options2.textureOnViewport;
158207 json3.wheelSensitivity = options2.wheelSensitivity;
158208 json3.motionBlur = options2.motionBlur;
158209 json3.multiClickDebounceTime = options2.multiClickDebounceTime;
158210 return json3;
158211 }
158212 }
158213 });
158214 corefn.$id = corefn.getElementById;
158215 [corefn$9, corefn$8, elesfn, corefn$7, corefn$6, corefn$5, corefn$4, corefn$3, corefn$2, corefn$1, fn].forEach(function(props) {
158216 extend2(corefn, props);
158217 });
158218 var defaults$7 = {
158219 fit: true,
158220 // whether to fit the viewport to the graph
158221 directed: false,
158222 // whether the tree is directed downwards (or edges can point in any direction if false)
158223 padding: 30,
158224 // padding on fit
158225 circle: false,
158226 // put depths in concentric circles if true, put depths top down if false
158227 grid: false,
158228 // whether to create an even grid into which the DAG is placed (circle:false only)
158229 spacingFactor: 1.75,
158230 // positive spacing factor, larger => more space between nodes (N.B. n/a if causes overlap)
158231 boundingBox: void 0,
158232 // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
158233 avoidOverlap: true,
158234 // prevents node overlap, may overflow boundingBox if not enough space
158235 nodeDimensionsIncludeLabels: false,
158236 // Excludes the label when calculating node bounding boxes for the layout algorithm
158237 roots: void 0,
158238 // the roots of the trees
158239 maximal: false,
158240 // whether to shift nodes down their natural BFS depths in order to avoid upwards edges (DAGS only)
158241 depthSort: void 0,
158242 // a sorting function to order nodes at equal depth. e.g. function(a, b){ return a.data('weight') - b.data('weight') }
158243 animate: false,
158244 // whether to transition the node positions
158245 animationDuration: 500,
158246 // duration of animation in ms if enabled
158247 animationEasing: void 0,
158248 // easing of animation if enabled,
158249 animateFilter: function animateFilter(node2, i3) {
158250 return true;
158251 },
158252 // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
158253 ready: void 0,
158254 // callback on layoutready
158255 stop: void 0,
158256 // callback on layoutstop
158257 transform: function transform(node2, position3) {
158258 return position3;
158259 }
158260 // transform a given node position. Useful for changing flow direction in discrete layouts
158261 };
158262 var getInfo2 = function getInfo3(ele) {
158263 return ele.scratch("breadthfirst");
158264 };
158265 var setInfo2 = function setInfo3(ele, obj) {
158266 return ele.scratch("breadthfirst", obj);
158267 };
158268 function BreadthFirstLayout(options2) {
158269 this.options = extend2({}, defaults$7, options2);
158270 }
158271 BreadthFirstLayout.prototype.run = function() {
158272 var params = this.options;
158273 var options2 = params;
158274 var cy = params.cy;
158275 var eles = options2.eles;
158276 var nodes2 = eles.nodes().filter(function(n2) {
158277 return !n2.isParent();
158278 });
158279 var graph = eles;
158280 var directed = options2.directed;
158281 var maximal = options2.maximal || options2.maximalAdjustments > 0;
158282 var bb = makeBoundingBox(options2.boundingBox ? options2.boundingBox : {
158283 x1: 0,
158284 y1: 0,
158285 w: cy.width(),
158286 h: cy.height()
158287 });
158288 var roots;
158289 if (elementOrCollection(options2.roots)) {
158290 roots = options2.roots;
158291 } else if (array2(options2.roots)) {
158292 var rootsArray = [];
158293 for (var i3 = 0; i3 < options2.roots.length; i3++) {
158294 var id2 = options2.roots[i3];
158295 var ele = cy.getElementById(id2);
158296 rootsArray.push(ele);
158297 }
158298 roots = cy.collection(rootsArray);
158299 } else if (string2(options2.roots)) {
158300 roots = cy.$(options2.roots);
158301 } else {
158302 if (directed) {
158303 roots = nodes2.roots();
158304 } else {
158305 var components = eles.components();
158306 roots = cy.collection();
158307 var _loop = function _loop2(_i3) {
158308 var comp = components[_i3];
158309 var maxDegree = comp.maxDegree(false);
158310 var compRoots = comp.filter(function(ele2) {
158311 return ele2.degree(false) === maxDegree;
158312 });
158313 roots = roots.add(compRoots);
158314 };
158315 for (var _i = 0; _i < components.length; _i++) {
158316 _loop(_i);
158317 }
158318 }
158319 }
158320 var depths = [];
158321 var foundByBfs = {};
158322 var addToDepth = function addToDepth2(ele2, d) {
158323 if (depths[d] == null) {
158324 depths[d] = [];
158325 }
158326 var i4 = depths[d].length;
158327 depths[d].push(ele2);
158328 setInfo2(ele2, {
158329 index: i4,
158330 depth: d
158331 });
158332 };
158333 var changeDepth = function changeDepth2(ele2, newDepth) {
158334 var _getInfo = getInfo2(ele2), depth = _getInfo.depth, index2 = _getInfo.index;
158335 depths[depth][index2] = null;
158336 addToDepth(ele2, newDepth);
158337 };
158338 graph.bfs({
158339 roots,
158340 directed: options2.directed,
158341 visit: function visit(node2, edge, pNode, i4, depth) {
158342 var ele2 = node2[0];
158343 var id3 = ele2.id();
158344 addToDepth(ele2, depth);
158345 foundByBfs[id3] = true;
158346 }
158347 });
158348 var orphanNodes = [];
158349 for (var _i2 = 0; _i2 < nodes2.length; _i2++) {
158350 var _ele = nodes2[_i2];
158351 if (foundByBfs[_ele.id()]) {
158352 continue;
158353 } else {
158354 orphanNodes.push(_ele);
158355 }
158356 }
158357 var assignDepthsAt = function assignDepthsAt2(i4) {
158358 var eles2 = depths[i4];
158359 for (var j = 0; j < eles2.length; j++) {
158360 var _ele2 = eles2[j];
158361 if (_ele2 == null) {
158362 eles2.splice(j, 1);
158363 j--;
158364 continue;
158365 }
158366 setInfo2(_ele2, {
158367 depth: i4,
158368 index: j
158369 });
158370 }
158371 };
158372 var assignDepths = function assignDepths2() {
158373 for (var _i3 = 0; _i3 < depths.length; _i3++) {
158374 assignDepthsAt(_i3);
158375 }
158376 };
158377 var adjustMaximally = function adjustMaximally2(ele2, shifted2) {
158378 var eInfo = getInfo2(ele2);
158379 var incomers = ele2.incomers().filter(function(el) {
158380 return el.isNode() && eles.has(el);
158381 });
158382 var maxDepth = -1;
158383 var id3 = ele2.id();
158384 for (var k = 0; k < incomers.length; k++) {
158385 var incmr = incomers[k];
158386 var iInfo = getInfo2(incmr);
158387 maxDepth = Math.max(maxDepth, iInfo.depth);
158388 }
158389 if (eInfo.depth <= maxDepth) {
158390 if (shifted2[id3]) {
158391 return null;
158392 }
158393 changeDepth(ele2, maxDepth + 1);
158394 shifted2[id3] = true;
158395 return true;
158396 }
158397 return false;
158398 };
158399 if (directed && maximal) {
158400 var Q2 = [];
158401 var shifted = {};
158402 var enqueue = function enqueue2(n2) {
158403 return Q2.push(n2);
158404 };
158405 var dequeue = function dequeue2() {
158406 return Q2.shift();
158407 };
158408 nodes2.forEach(function(n2) {
158409 return Q2.push(n2);
158410 });
158411 while (Q2.length > 0) {
158412 var _ele3 = dequeue();
158413 var didShift = adjustMaximally(_ele3, shifted);
158414 if (didShift) {
158415 _ele3.outgoers().filter(function(el) {
158416 return el.isNode() && eles.has(el);
158417 }).forEach(enqueue);
158418 } else if (didShift === null) {
158419 warn("Detected double maximal shift for node `" + _ele3.id() + "`. Bailing maximal adjustment due to cycle. Use `options.maximal: true` only on DAGs.");
158420 break;
158421 }
158422 }
158423 }
158424 assignDepths();
158425 var minDistance = 0;
158426 if (options2.avoidOverlap) {
158427 for (var _i4 = 0; _i4 < nodes2.length; _i4++) {
158428 var n = nodes2[_i4];
158429 var nbb = n.layoutDimensions(options2);
158430 var w2 = nbb.w;
158431 var h = nbb.h;
158432 minDistance = Math.max(minDistance, w2, h);
158433 }
158434 }
158435 var cachedWeightedPercent = {};
158436 var getWeightedPercent = function getWeightedPercent2(ele2) {
158437 if (cachedWeightedPercent[ele2.id()]) {
158438 return cachedWeightedPercent[ele2.id()];
158439 }
158440 var eleDepth = getInfo2(ele2).depth;
158441 var neighbors = ele2.neighborhood();
158442 var percent = 0;
158443 var samples = 0;
158444 for (var _i5 = 0; _i5 < neighbors.length; _i5++) {
158445 var neighbor = neighbors[_i5];
158446 if (neighbor.isEdge() || neighbor.isParent() || !nodes2.has(neighbor)) {
158447 continue;
158448 }
158449 var bf = getInfo2(neighbor);
158450 if (bf == null) {
158451 continue;
158452 }
158453 var index2 = bf.index;
158454 var depth = bf.depth;
158455 if (index2 == null || depth == null) {
158456 continue;
158457 }
158458 var nDepth = depths[depth].length;
158459 if (depth < eleDepth) {
158460 percent += index2 / nDepth;
158461 samples++;
158462 }
158463 }
158464 samples = Math.max(1, samples);
158465 percent = percent / samples;
158466 if (samples === 0) {
158467 percent = 0;
158468 }
158469 cachedWeightedPercent[ele2.id()] = percent;
158470 return percent;
158471 };
158472 var sortFn = function sortFn2(a, b) {
158473 var apct = getWeightedPercent(a);
158474 var bpct = getWeightedPercent(b);
158475 var diff = apct - bpct;
158476 if (diff === 0) {
158477 return ascending2(a.id(), b.id());
158478 } else {
158479 return diff;
158480 }
158481 };
158482 if (options2.depthSort !== void 0) {
158483 sortFn = options2.depthSort;
158484 }
158485 for (var _i6 = 0; _i6 < depths.length; _i6++) {
158486 depths[_i6].sort(sortFn);
158487 assignDepthsAt(_i6);
158488 }
158489 var orphanDepth = [];
158490 for (var _i7 = 0; _i7 < orphanNodes.length; _i7++) {
158491 orphanDepth.push(orphanNodes[_i7]);
158492 }
158493 depths.unshift(orphanDepth);
158494 assignDepths();
158495 var biggestDepthSize = 0;
158496 for (var _i8 = 0; _i8 < depths.length; _i8++) {
158497 biggestDepthSize = Math.max(depths[_i8].length, biggestDepthSize);
158498 }
158499 var center2 = {
158500 x: bb.x1 + bb.w / 2,
158501 y: bb.x1 + bb.h / 2
158502 };
158503 var maxDepthSize = depths.reduce(function(max3, eles2) {
158504 return Math.max(max3, eles2.length);
158505 }, 0);
158506 var getPosition = function getPosition2(ele2) {
158507 var _getInfo2 = getInfo2(ele2), depth = _getInfo2.depth, index2 = _getInfo2.index;
158508 var depthSize = depths[depth].length;
158509 var distanceX = Math.max(bb.w / ((options2.grid ? maxDepthSize : depthSize) + 1), minDistance);
158510 var distanceY = Math.max(bb.h / (depths.length + 1), minDistance);
158511 var radiusStepSize = Math.min(bb.w / 2 / depths.length, bb.h / 2 / depths.length);
158512 radiusStepSize = Math.max(radiusStepSize, minDistance);
158513 if (!options2.circle) {
158514 var epos = {
158515 x: center2.x + (index2 + 1 - (depthSize + 1) / 2) * distanceX,
158516 y: (depth + 1) * distanceY
158517 };
158518 return epos;
158519 } else {
158520 var radius = radiusStepSize * depth + radiusStepSize - (depths.length > 0 && depths[0].length <= 3 ? radiusStepSize / 2 : 0);
158521 var theta = 2 * Math.PI / depths[depth].length * index2;
158522 if (depth === 0 && depths[0].length === 1) {
158523 radius = 1;
158524 }
158525 return {
158526 x: center2.x + radius * Math.cos(theta),
158527 y: center2.y + radius * Math.sin(theta)
158528 };
158529 }
158530 };
158531 eles.nodes().layoutPositions(this, options2, getPosition);
158532 return this;
158533 };
158534 var defaults$6 = {
158535 fit: true,
158536 // whether to fit the viewport to the graph
158537 padding: 30,
158538 // the padding on fit
158539 boundingBox: void 0,
158540 // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
158541 avoidOverlap: true,
158542 // prevents node overlap, may overflow boundingBox and radius if not enough space
158543 nodeDimensionsIncludeLabels: false,
158544 // Excludes the label when calculating node bounding boxes for the layout algorithm
158545 spacingFactor: void 0,
158546 // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
158547 radius: void 0,
158548 // the radius of the circle
158549 startAngle: 3 / 2 * Math.PI,
158550 // where nodes start in radians
158551 sweep: void 0,
158552 // how many radians should be between the first and last node (defaults to full circle)
158553 clockwise: true,
158554 // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)
158555 sort: void 0,
158556 // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }
158557 animate: false,
158558 // whether to transition the node positions
158559 animationDuration: 500,
158560 // duration of animation in ms if enabled
158561 animationEasing: void 0,
158562 // easing of animation if enabled
158563 animateFilter: function animateFilter(node2, i3) {
158564 return true;
158565 },
158566 // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
158567 ready: void 0,
158568 // callback on layoutready
158569 stop: void 0,
158570 // callback on layoutstop
158571 transform: function transform(node2, position3) {
158572 return position3;
158573 }
158574 // transform a given node position. Useful for changing flow direction in discrete layouts
158575 };
158576 function CircleLayout(options2) {
158577 this.options = extend2({}, defaults$6, options2);
158578 }
158579 CircleLayout.prototype.run = function() {
158580 var params = this.options;
158581 var options2 = params;
158582 var cy = params.cy;
158583 var eles = options2.eles;
158584 var clockwise = options2.counterclockwise !== void 0 ? !options2.counterclockwise : options2.clockwise;
158585 var nodes2 = eles.nodes().not(":parent");
158586 if (options2.sort) {
158587 nodes2 = nodes2.sort(options2.sort);
158588 }
158589 var bb = makeBoundingBox(options2.boundingBox ? options2.boundingBox : {
158590 x1: 0,
158591 y1: 0,
158592 w: cy.width(),
158593 h: cy.height()
158594 });
158595 var center2 = {
158596 x: bb.x1 + bb.w / 2,
158597 y: bb.y1 + bb.h / 2
158598 };
158599 var sweep = options2.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / nodes2.length : options2.sweep;
158600 var dTheta = sweep / Math.max(1, nodes2.length - 1);
158601 var r;
158602 var minDistance = 0;
158603 for (var i3 = 0; i3 < nodes2.length; i3++) {
158604 var n = nodes2[i3];
158605 var nbb = n.layoutDimensions(options2);
158606 var w2 = nbb.w;
158607 var h = nbb.h;
158608 minDistance = Math.max(minDistance, w2, h);
158609 }
158610 if (number$12(options2.radius)) {
158611 r = options2.radius;
158612 } else if (nodes2.length <= 1) {
158613 r = 0;
158614 } else {
158615 r = Math.min(bb.h, bb.w) / 2 - minDistance;
158616 }
158617 if (nodes2.length > 1 && options2.avoidOverlap) {
158618 minDistance *= 1.75;
158619 var dcos = Math.cos(dTheta) - Math.cos(0);
158620 var dsin = Math.sin(dTheta) - Math.sin(0);
158621 var rMin = Math.sqrt(minDistance * minDistance / (dcos * dcos + dsin * dsin));
158622 r = Math.max(rMin, r);
158623 }
158624 var getPos = function getPos2(ele, i4) {
158625 var theta = options2.startAngle + i4 * dTheta * (clockwise ? 1 : -1);
158626 var rx = r * Math.cos(theta);
158627 var ry = r * Math.sin(theta);
158628 var pos = {
158629 x: center2.x + rx,
158630 y: center2.y + ry
158631 };
158632 return pos;
158633 };
158634 eles.nodes().layoutPositions(this, options2, getPos);
158635 return this;
158636 };
158637 var defaults$5 = {
158638 fit: true,
158639 // whether to fit the viewport to the graph
158640 padding: 30,
158641 // the padding on fit
158642 startAngle: 3 / 2 * Math.PI,
158643 // where nodes start in radians
158644 sweep: void 0,
158645 // how many radians should be between the first and last node (defaults to full circle)
158646 clockwise: true,
158647 // whether the layout should go clockwise (true) or counterclockwise/anticlockwise (false)
158648 equidistant: false,
158649 // whether levels have an equal radial distance betwen them, may cause bounding box overflow
158650 minNodeSpacing: 10,
158651 // min spacing between outside of nodes (used for radius adjustment)
158652 boundingBox: void 0,
158653 // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
158654 avoidOverlap: true,
158655 // prevents node overlap, may overflow boundingBox if not enough space
158656 nodeDimensionsIncludeLabels: false,
158657 // Excludes the label when calculating node bounding boxes for the layout algorithm
158658 height: void 0,
158659 // height of layout area (overrides container height)
158660 width: void 0,
158661 // width of layout area (overrides container width)
158662 spacingFactor: void 0,
158663 // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
158664 concentric: function concentric(node2) {
158665 return node2.degree();
158666 },
158667 levelWidth: function levelWidth(nodes2) {
158668 return nodes2.maxDegree() / 4;
158669 },
158670 animate: false,
158671 // whether to transition the node positions
158672 animationDuration: 500,
158673 // duration of animation in ms if enabled
158674 animationEasing: void 0,
158675 // easing of animation if enabled
158676 animateFilter: function animateFilter(node2, i3) {
158677 return true;
158678 },
158679 // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
158680 ready: void 0,
158681 // callback on layoutready
158682 stop: void 0,
158683 // callback on layoutstop
158684 transform: function transform(node2, position3) {
158685 return position3;
158686 }
158687 // transform a given node position. Useful for changing flow direction in discrete layouts
158688 };
158689 function ConcentricLayout(options2) {
158690 this.options = extend2({}, defaults$5, options2);
158691 }
158692 ConcentricLayout.prototype.run = function() {
158693 var params = this.options;
158694 var options2 = params;
158695 var clockwise = options2.counterclockwise !== void 0 ? !options2.counterclockwise : options2.clockwise;
158696 var cy = params.cy;
158697 var eles = options2.eles;
158698 var nodes2 = eles.nodes().not(":parent");
158699 var bb = makeBoundingBox(options2.boundingBox ? options2.boundingBox : {
158700 x1: 0,
158701 y1: 0,
158702 w: cy.width(),
158703 h: cy.height()
158704 });
158705 var center2 = {
158706 x: bb.x1 + bb.w / 2,
158707 y: bb.y1 + bb.h / 2
158708 };
158709 var nodeValues = [];
158710 var maxNodeSize = 0;
158711 for (var i3 = 0; i3 < nodes2.length; i3++) {
158712 var node2 = nodes2[i3];
158713 var value = void 0;
158714 value = options2.concentric(node2);
158715 nodeValues.push({
158716 value,
158717 node: node2
158718 });
158719 node2._private.scratch.concentric = value;
158720 }
158721 nodes2.updateStyle();
158722 for (var _i = 0; _i < nodes2.length; _i++) {
158723 var _node = nodes2[_i];
158724 var nbb = _node.layoutDimensions(options2);
158725 maxNodeSize = Math.max(maxNodeSize, nbb.w, nbb.h);
158726 }
158727 nodeValues.sort(function(a, b) {
158728 return b.value - a.value;
158729 });
158730 var levelWidth = options2.levelWidth(nodes2);
158731 var levels = [[]];
158732 var currentLevel = levels[0];
158733 for (var _i2 = 0; _i2 < nodeValues.length; _i2++) {
158734 var val = nodeValues[_i2];
158735 if (currentLevel.length > 0) {
158736 var diff = Math.abs(currentLevel[0].value - val.value);
158737 if (diff >= levelWidth) {
158738 currentLevel = [];
158739 levels.push(currentLevel);
158740 }
158741 }
158742 currentLevel.push(val);
158743 }
158744 var minDist = maxNodeSize + options2.minNodeSpacing;
158745 if (!options2.avoidOverlap) {
158746 var firstLvlHasMulti = levels.length > 0 && levels[0].length > 1;
158747 var maxR = Math.min(bb.w, bb.h) / 2 - minDist;
158748 var rStep = maxR / (levels.length + firstLvlHasMulti ? 1 : 0);
158749 minDist = Math.min(minDist, rStep);
158750 }
158751 var r = 0;
158752 for (var _i3 = 0; _i3 < levels.length; _i3++) {
158753 var level = levels[_i3];
158754 var sweep = options2.sweep === void 0 ? 2 * Math.PI - 2 * Math.PI / level.length : options2.sweep;
158755 var dTheta = level.dTheta = sweep / Math.max(1, level.length - 1);
158756 if (level.length > 1 && options2.avoidOverlap) {
158757 var dcos = Math.cos(dTheta) - Math.cos(0);
158758 var dsin = Math.sin(dTheta) - Math.sin(0);
158759 var rMin = Math.sqrt(minDist * minDist / (dcos * dcos + dsin * dsin));
158760 r = Math.max(rMin, r);
158761 }
158762 level.r = r;
158763 r += minDist;
158764 }
158765 if (options2.equidistant) {
158766 var rDeltaMax = 0;
158767 var _r = 0;
158768 for (var _i4 = 0; _i4 < levels.length; _i4++) {
158769 var _level = levels[_i4];
158770 var rDelta = _level.r - _r;
158771 rDeltaMax = Math.max(rDeltaMax, rDelta);
158772 }
158773 _r = 0;
158774 for (var _i5 = 0; _i5 < levels.length; _i5++) {
158775 var _level2 = levels[_i5];
158776 if (_i5 === 0) {
158777 _r = _level2.r;
158778 }
158779 _level2.r = _r;
158780 _r += rDeltaMax;
158781 }
158782 }
158783 var pos = {};
158784 for (var _i6 = 0; _i6 < levels.length; _i6++) {
158785 var _level3 = levels[_i6];
158786 var _dTheta = _level3.dTheta;
158787 var _r2 = _level3.r;
158788 for (var j = 0; j < _level3.length; j++) {
158789 var _val = _level3[j];
158790 var theta = options2.startAngle + (clockwise ? 1 : -1) * _dTheta * j;
158791 var p2 = {
158792 x: center2.x + _r2 * Math.cos(theta),
158793 y: center2.y + _r2 * Math.sin(theta)
158794 };
158795 pos[_val.node.id()] = p2;
158796 }
158797 }
158798 eles.nodes().layoutPositions(this, options2, function(ele) {
158799 var id2 = ele.id();
158800 return pos[id2];
158801 });
158802 return this;
158803 };
158804 var DEBUG;
158805 var defaults$4 = {
158806 // Called on `layoutready`
158807 ready: function ready() {
158808 },
158809 // Called on `layoutstop`
158810 stop: function stop() {
158811 },
158812 // Whether to animate while running the layout
158813 // true : Animate continuously as the layout is running
158814 // false : Just show the end result
158815 // 'end' : Animate with the end result, from the initial positions to the end positions
158816 animate: true,
158817 // Easing of the animation for animate:'end'
158818 animationEasing: void 0,
158819 // The duration of the animation for animate:'end'
158820 animationDuration: void 0,
158821 // A function that determines whether the node should be animated
158822 // All nodes animated by default on animate enabled
158823 // Non-animated nodes are positioned immediately when the layout starts
158824 animateFilter: function animateFilter(node2, i3) {
158825 return true;
158826 },
158827 // The layout animates only after this many milliseconds for animate:true
158828 // (prevents flashing on fast runs)
158829 animationThreshold: 250,
158830 // Number of iterations between consecutive screen positions update
158831 refresh: 20,
158832 // Whether to fit the network view after when done
158833 fit: true,
158834 // Padding on fit
158835 padding: 30,
158836 // Constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
158837 boundingBox: void 0,
158838 // Excludes the label when calculating node bounding boxes for the layout algorithm
158839 nodeDimensionsIncludeLabels: false,
158840 // Randomize the initial positions of the nodes (true) or use existing positions (false)
158841 randomize: false,
158842 // Extra spacing between components in non-compound graphs
158843 componentSpacing: 40,
158844 // Node repulsion (non overlapping) multiplier
158845 nodeRepulsion: function nodeRepulsion2(node2) {
158846 return 2048;
158847 },
158848 // Node repulsion (overlapping) multiplier
158849 nodeOverlap: 4,
158850 // Ideal edge (non nested) length
158851 idealEdgeLength: function idealEdgeLength(edge) {
158852 return 32;
158853 },
158854 // Divisor to compute edge forces
158855 edgeElasticity: function edgeElasticity(edge) {
158856 return 32;
158857 },
158858 // Nesting factor (multiplier) to compute ideal edge length for nested edges
158859 nestingFactor: 1.2,
158860 // Gravity force (constant)
158861 gravity: 1,
158862 // Maximum number of iterations to perform
158863 numIter: 1e3,
158864 // Initial temperature (maximum node displacement)
158865 initialTemp: 1e3,
158866 // Cooling factor (how the temperature is reduced between consecutive iterations
158867 coolingFactor: 0.99,
158868 // Lower temperature threshold (below this point the layout will end)
158869 minTemp: 1
158870 };
158871 function CoseLayout(options2) {
158872 this.options = extend2({}, defaults$4, options2);
158873 this.options.layout = this;
158874 }
158875 CoseLayout.prototype.run = function() {
158876 var options2 = this.options;
158877 var cy = options2.cy;
158878 var layout3 = this;
158879 layout3.stopped = false;
158880 if (options2.animate === true || options2.animate === false) {
158881 layout3.emit({
158882 type: "layoutstart",
158883 layout: layout3
158884 });
158885 }
158886 if (true === options2.debug) {
158887 DEBUG = true;
158888 } else {
158889 DEBUG = false;
158890 }
158891 var layoutInfo = createLayoutInfo(cy, layout3, options2);
158892 if (DEBUG) {
158893 printLayoutInfo(layoutInfo);
158894 }
158895 if (options2.randomize) {
158896 randomizePositions(layoutInfo);
158897 }
158898 var startTime = performanceNow();
158899 var refresh = function refresh2() {
158900 refreshPositions(layoutInfo, cy, options2);
158901 if (true === options2.fit) {
158902 cy.fit(options2.padding);
158903 }
158904 };
158905 var mainLoop = function mainLoop2(i4) {
158906 if (layout3.stopped || i4 >= options2.numIter) {
158907 return false;
158908 }
158909 step(layoutInfo, options2);
158910 layoutInfo.temperature = layoutInfo.temperature * options2.coolingFactor;
158911 if (layoutInfo.temperature < options2.minTemp) {
158912 return false;
158913 }
158914 return true;
158915 };
158916 var done = function done2() {
158917 if (options2.animate === true || options2.animate === false) {
158918 refresh();
158919 layout3.one("layoutstop", options2.stop);
158920 layout3.emit({
158921 type: "layoutstop",
158922 layout: layout3
158923 });
158924 } else {
158925 var nodes2 = options2.eles.nodes();
158926 var getScaledPos = getScaleInBoundsFn(layoutInfo, options2, nodes2);
158927 nodes2.layoutPositions(layout3, options2, getScaledPos);
158928 }
158929 };
158930 var i3 = 0;
158931 var loopRet = true;
158932 if (options2.animate === true) {
158933 var frame2 = function frame3() {
158934 var f2 = 0;
158935 while (loopRet && f2 < options2.refresh) {
158936 loopRet = mainLoop(i3);
158937 i3++;
158938 f2++;
158939 }
158940 if (!loopRet) {
158941 separateComponents(layoutInfo, options2);
158942 done();
158943 } else {
158944 var now3 = performanceNow();
158945 if (now3 - startTime >= options2.animationThreshold) {
158946 refresh();
158947 }
158948 requestAnimationFrame2(frame3);
158949 }
158950 };
158951 frame2();
158952 } else {
158953 while (loopRet) {
158954 loopRet = mainLoop(i3);
158955 i3++;
158956 }
158957 separateComponents(layoutInfo, options2);
158958 done();
158959 }
158960 return this;
158961 };
158962 CoseLayout.prototype.stop = function() {
158963 this.stopped = true;
158964 if (this.thread) {
158965 this.thread.stop();
158966 }
158967 this.emit("layoutstop");
158968 return this;
158969 };
158970 CoseLayout.prototype.destroy = function() {
158971 if (this.thread) {
158972 this.thread.stop();
158973 }
158974 return this;
158975 };
158976 var createLayoutInfo = function createLayoutInfo2(cy, layout3, options2) {
158977 var edges2 = options2.eles.edges();
158978 var nodes2 = options2.eles.nodes();
158979 var layoutInfo = {
158980 isCompound: cy.hasCompoundNodes(),
158981 layoutNodes: [],
158982 idToIndex: {},
158983 nodeSize: nodes2.size(),
158984 graphSet: [],
158985 indexToGraph: [],
158986 layoutEdges: [],
158987 edgeSize: edges2.size(),
158988 temperature: options2.initialTemp,
158989 clientWidth: cy.width(),
158990 clientHeight: cy.width(),
158991 boundingBox: makeBoundingBox(options2.boundingBox ? options2.boundingBox : {
158992 x1: 0,
158993 y1: 0,
158994 w: cy.width(),
158995 h: cy.height()
158996 })
158997 };
158998 var components = options2.eles.components();
158999 var id2cmptId = {};
159000 for (var i3 = 0; i3 < components.length; i3++) {
159001 var component = components[i3];
159002 for (var j = 0; j < component.length; j++) {
159003 var node2 = component[j];
159004 id2cmptId[node2.id()] = i3;
159005 }
159006 }
159007 for (var i3 = 0; i3 < layoutInfo.nodeSize; i3++) {
159008 var n = nodes2[i3];
159009 var nbb = n.layoutDimensions(options2);
159010 var tempNode = {};
159011 tempNode.isLocked = n.locked();
159012 tempNode.id = n.data("id");
159013 tempNode.parentId = n.data("parent");
159014 tempNode.cmptId = id2cmptId[n.id()];
159015 tempNode.children = [];
159016 tempNode.positionX = n.position("x");
159017 tempNode.positionY = n.position("y");
159018 tempNode.offsetX = 0;
159019 tempNode.offsetY = 0;
159020 tempNode.height = nbb.w;
159021 tempNode.width = nbb.h;
159022 tempNode.maxX = tempNode.positionX + tempNode.width / 2;
159023 tempNode.minX = tempNode.positionX - tempNode.width / 2;
159024 tempNode.maxY = tempNode.positionY + tempNode.height / 2;
159025 tempNode.minY = tempNode.positionY - tempNode.height / 2;
159026 tempNode.padLeft = parseFloat(n.style("padding"));
159027 tempNode.padRight = parseFloat(n.style("padding"));
159028 tempNode.padTop = parseFloat(n.style("padding"));
159029 tempNode.padBottom = parseFloat(n.style("padding"));
159030 tempNode.nodeRepulsion = fn$6(options2.nodeRepulsion) ? options2.nodeRepulsion(n) : options2.nodeRepulsion;
159031 layoutInfo.layoutNodes.push(tempNode);
159032 layoutInfo.idToIndex[tempNode.id] = i3;
159033 }
159034 var queue = [];
159035 var start2 = 0;
159036 var end2 = -1;
159037 var tempGraph = [];
159038 for (var i3 = 0; i3 < layoutInfo.nodeSize; i3++) {
159039 var n = layoutInfo.layoutNodes[i3];
159040 var p_id = n.parentId;
159041 if (null != p_id) {
159042 layoutInfo.layoutNodes[layoutInfo.idToIndex[p_id]].children.push(n.id);
159043 } else {
159044 queue[++end2] = n.id;
159045 tempGraph.push(n.id);
159046 }
159047 }
159048 layoutInfo.graphSet.push(tempGraph);
159049 while (start2 <= end2) {
159050 var node_id = queue[start2++];
159051 var node_ix = layoutInfo.idToIndex[node_id];
159052 var node2 = layoutInfo.layoutNodes[node_ix];
159053 var children2 = node2.children;
159054 if (children2.length > 0) {
159055 layoutInfo.graphSet.push(children2);
159056 for (var i3 = 0; i3 < children2.length; i3++) {
159057 queue[++end2] = children2[i3];
159058 }
159059 }
159060 }
159061 for (var i3 = 0; i3 < layoutInfo.graphSet.length; i3++) {
159062 var graph = layoutInfo.graphSet[i3];
159063 for (var j = 0; j < graph.length; j++) {
159064 var index2 = layoutInfo.idToIndex[graph[j]];
159065 layoutInfo.indexToGraph[index2] = i3;
159066 }
159067 }
159068 for (var i3 = 0; i3 < layoutInfo.edgeSize; i3++) {
159069 var e = edges2[i3];
159070 var tempEdge = {};
159071 tempEdge.id = e.data("id");
159072 tempEdge.sourceId = e.data("source");
159073 tempEdge.targetId = e.data("target");
159074 var idealLength = fn$6(options2.idealEdgeLength) ? options2.idealEdgeLength(e) : options2.idealEdgeLength;
159075 var elasticity = fn$6(options2.edgeElasticity) ? options2.edgeElasticity(e) : options2.edgeElasticity;
159076 var sourceIx = layoutInfo.idToIndex[tempEdge.sourceId];
159077 var targetIx = layoutInfo.idToIndex[tempEdge.targetId];
159078 var sourceGraph = layoutInfo.indexToGraph[sourceIx];
159079 var targetGraph = layoutInfo.indexToGraph[targetIx];
159080 if (sourceGraph != targetGraph) {
159081 var lca = findLCA(tempEdge.sourceId, tempEdge.targetId, layoutInfo);
159082 var lcaGraph = layoutInfo.graphSet[lca];
159083 var depth = 0;
159084 var tempNode = layoutInfo.layoutNodes[sourceIx];
159085 while (-1 === lcaGraph.indexOf(tempNode.id)) {
159086 tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];
159087 depth++;
159088 }
159089 tempNode = layoutInfo.layoutNodes[targetIx];
159090 while (-1 === lcaGraph.indexOf(tempNode.id)) {
159091 tempNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[tempNode.parentId]];
159092 depth++;
159093 }
159094 idealLength *= depth * options2.nestingFactor;
159095 }
159096 tempEdge.idealLength = idealLength;
159097 tempEdge.elasticity = elasticity;
159098 layoutInfo.layoutEdges.push(tempEdge);
159099 }
159100 return layoutInfo;
159101 };
159102 var findLCA = function findLCA2(node1, node2, layoutInfo) {
159103 var res = findLCA_aux(node1, node2, 0, layoutInfo);
159104 if (2 > res.count) {
159105 return 0;
159106 } else {
159107 return res.graph;
159108 }
159109 };
159110 var findLCA_aux = function findLCA_aux2(node1, node2, graphIx, layoutInfo) {
159111 var graph = layoutInfo.graphSet[graphIx];
159112 if (-1 < graph.indexOf(node1) && -1 < graph.indexOf(node2)) {
159113 return {
159114 count: 2,
159115 graph: graphIx
159116 };
159117 }
159118 var c2 = 0;
159119 for (var i3 = 0; i3 < graph.length; i3++) {
159120 var nodeId = graph[i3];
159121 var nodeIx = layoutInfo.idToIndex[nodeId];
159122 var children2 = layoutInfo.layoutNodes[nodeIx].children;
159123 if (0 === children2.length) {
159124 continue;
159125 }
159126 var childGraphIx = layoutInfo.indexToGraph[layoutInfo.idToIndex[children2[0]]];
159127 var result = findLCA_aux2(node1, node2, childGraphIx, layoutInfo);
159128 if (0 === result.count) {
159129 continue;
159130 } else if (1 === result.count) {
159131 c2++;
159132 if (2 === c2) {
159133 break;
159134 }
159135 } else {
159136 return result;
159137 }
159138 }
159139 return {
159140 count: c2,
159141 graph: graphIx
159142 };
159143 };
159144 var printLayoutInfo;
159145 var randomizePositions = function randomizePositions2(layoutInfo, cy) {
159146 var width2 = layoutInfo.clientWidth;
159147 var height2 = layoutInfo.clientHeight;
159148 for (var i3 = 0; i3 < layoutInfo.nodeSize; i3++) {
159149 var n = layoutInfo.layoutNodes[i3];
159150 if (0 === n.children.length && !n.isLocked) {
159151 n.positionX = Math.random() * width2;
159152 n.positionY = Math.random() * height2;
159153 }
159154 }
159155 };
159156 var getScaleInBoundsFn = function getScaleInBoundsFn2(layoutInfo, options2, nodes2) {
159157 var bb = layoutInfo.boundingBox;
159158 var coseBB = {
159159 x1: Infinity,
159160 x2: -Infinity,
159161 y1: Infinity,
159162 y2: -Infinity
159163 };
159164 if (options2.boundingBox) {
159165 nodes2.forEach(function(node2) {
159166 var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[node2.data("id")]];
159167 coseBB.x1 = Math.min(coseBB.x1, lnode.positionX);
159168 coseBB.x2 = Math.max(coseBB.x2, lnode.positionX);
159169 coseBB.y1 = Math.min(coseBB.y1, lnode.positionY);
159170 coseBB.y2 = Math.max(coseBB.y2, lnode.positionY);
159171 });
159172 coseBB.w = coseBB.x2 - coseBB.x1;
159173 coseBB.h = coseBB.y2 - coseBB.y1;
159174 }
159175 return function(ele, i3) {
159176 var lnode = layoutInfo.layoutNodes[layoutInfo.idToIndex[ele.data("id")]];
159177 if (options2.boundingBox) {
159178 var pctX = (lnode.positionX - coseBB.x1) / coseBB.w;
159179 var pctY = (lnode.positionY - coseBB.y1) / coseBB.h;
159180 return {
159181 x: bb.x1 + pctX * bb.w,
159182 y: bb.y1 + pctY * bb.h
159183 };
159184 } else {
159185 return {
159186 x: lnode.positionX,
159187 y: lnode.positionY
159188 };
159189 }
159190 };
159191 };
159192 var refreshPositions = function refreshPositions2(layoutInfo, cy, options2) {
159193 var layout3 = options2.layout;
159194 var nodes2 = options2.eles.nodes();
159195 var getScaledPos = getScaleInBoundsFn(layoutInfo, options2, nodes2);
159196 nodes2.positions(getScaledPos);
159197 if (true !== layoutInfo.ready) {
159198 layoutInfo.ready = true;
159199 layout3.one("layoutready", options2.ready);
159200 layout3.emit({
159201 type: "layoutready",
159202 layout: this
159203 });
159204 }
159205 };
159206 var step = function step2(layoutInfo, options2, _step) {
159207 calculateNodeForces(layoutInfo, options2);
159208 calculateEdgeForces(layoutInfo);
159209 calculateGravityForces(layoutInfo, options2);
159210 propagateForces(layoutInfo);
159211 updatePositions(layoutInfo);
159212 };
159213 var calculateNodeForces = function calculateNodeForces2(layoutInfo, options2) {
159214 for (var i3 = 0; i3 < layoutInfo.graphSet.length; i3++) {
159215 var graph = layoutInfo.graphSet[i3];
159216 var numNodes = graph.length;
159217 for (var j = 0; j < numNodes; j++) {
159218 var node1 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]];
159219 for (var k = j + 1; k < numNodes; k++) {
159220 var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[k]]];
159221 nodeRepulsion(node1, node2, layoutInfo, options2);
159222 }
159223 }
159224 }
159225 };
159226 var randomDistance = function randomDistance2(max3) {
159227 return -max3 + 2 * max3 * Math.random();
159228 };
159229 var nodeRepulsion = function nodeRepulsion2(node1, node2, layoutInfo, options2) {
159230 var cmptId1 = node1.cmptId;
159231 var cmptId2 = node2.cmptId;
159232 if (cmptId1 !== cmptId2 && !layoutInfo.isCompound) {
159233 return;
159234 }
159235 var directionX = node2.positionX - node1.positionX;
159236 var directionY = node2.positionY - node1.positionY;
159237 var maxRandDist = 1;
159238 if (0 === directionX && 0 === directionY) {
159239 directionX = randomDistance(maxRandDist);
159240 directionY = randomDistance(maxRandDist);
159241 }
159242 var overlap = nodesOverlap(node1, node2, directionX, directionY);
159243 if (overlap > 0) {
159244 var force = options2.nodeOverlap * overlap;
159245 var distance2 = Math.sqrt(directionX * directionX + directionY * directionY);
159246 var forceX = force * directionX / distance2;
159247 var forceY = force * directionY / distance2;
159248 } else {
159249 var point1 = findClippingPoint(node1, directionX, directionY);
159250 var point2 = findClippingPoint(node2, -1 * directionX, -1 * directionY);
159251 var distanceX = point2.x - point1.x;
159252 var distanceY = point2.y - point1.y;
159253 var distanceSqr = distanceX * distanceX + distanceY * distanceY;
159254 var distance2 = Math.sqrt(distanceSqr);
159255 var force = (node1.nodeRepulsion + node2.nodeRepulsion) / distanceSqr;
159256 var forceX = force * distanceX / distance2;
159257 var forceY = force * distanceY / distance2;
159258 }
159259 if (!node1.isLocked) {
159260 node1.offsetX -= forceX;
159261 node1.offsetY -= forceY;
159262 }
159263 if (!node2.isLocked) {
159264 node2.offsetX += forceX;
159265 node2.offsetY += forceY;
159266 }
159267 return;
159268 };
159269 var nodesOverlap = function nodesOverlap2(node1, node2, dX, dY) {
159270 if (dX > 0) {
159271 var overlapX = node1.maxX - node2.minX;
159272 } else {
159273 var overlapX = node2.maxX - node1.minX;
159274 }
159275 if (dY > 0) {
159276 var overlapY = node1.maxY - node2.minY;
159277 } else {
159278 var overlapY = node2.maxY - node1.minY;
159279 }
159280 if (overlapX >= 0 && overlapY >= 0) {
159281 return Math.sqrt(overlapX * overlapX + overlapY * overlapY);
159282 } else {
159283 return 0;
159284 }
159285 };
159286 var findClippingPoint = function findClippingPoint2(node2, dX, dY) {
159287 var X = node2.positionX;
159288 var Y2 = node2.positionY;
159289 var H2 = node2.height || 1;
159290 var W2 = node2.width || 1;
159291 var dirSlope = dY / dX;
159292 var nodeSlope = H2 / W2;
159293 var res = {};
159294 if (0 === dX && 0 < dY) {
159295 res.x = X;
159296 res.y = Y2 + H2 / 2;
159297 return res;
159298 }
159299 if (0 === dX && 0 > dY) {
159300 res.x = X;
159301 res.y = Y2 + H2 / 2;
159302 return res;
159303 }
159304 if (0 < dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {
159305 res.x = X + W2 / 2;
159306 res.y = Y2 + W2 * dY / 2 / dX;
159307 return res;
159308 }
159309 if (0 > dX && -1 * nodeSlope <= dirSlope && dirSlope <= nodeSlope) {
159310 res.x = X - W2 / 2;
159311 res.y = Y2 - W2 * dY / 2 / dX;
159312 return res;
159313 }
159314 if (0 < dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {
159315 res.x = X + H2 * dX / 2 / dY;
159316 res.y = Y2 + H2 / 2;
159317 return res;
159318 }
159319 if (0 > dY && (dirSlope <= -1 * nodeSlope || dirSlope >= nodeSlope)) {
159320 res.x = X - H2 * dX / 2 / dY;
159321 res.y = Y2 - H2 / 2;
159322 return res;
159323 }
159324 return res;
159325 };
159326 var calculateEdgeForces = function calculateEdgeForces2(layoutInfo, options2) {
159327 for (var i3 = 0; i3 < layoutInfo.edgeSize; i3++) {
159328 var edge = layoutInfo.layoutEdges[i3];
159329 var sourceIx = layoutInfo.idToIndex[edge.sourceId];
159330 var source = layoutInfo.layoutNodes[sourceIx];
159331 var targetIx = layoutInfo.idToIndex[edge.targetId];
159332 var target = layoutInfo.layoutNodes[targetIx];
159333 var directionX = target.positionX - source.positionX;
159334 var directionY = target.positionY - source.positionY;
159335 if (0 === directionX && 0 === directionY) {
159336 continue;
159337 }
159338 var point1 = findClippingPoint(source, directionX, directionY);
159339 var point2 = findClippingPoint(target, -1 * directionX, -1 * directionY);
159340 var lx = point2.x - point1.x;
159341 var ly = point2.y - point1.y;
159342 var l = Math.sqrt(lx * lx + ly * ly);
159343 var force = Math.pow(edge.idealLength - l, 2) / edge.elasticity;
159344 if (0 !== l) {
159345 var forceX = force * lx / l;
159346 var forceY = force * ly / l;
159347 } else {
159348 var forceX = 0;
159349 var forceY = 0;
159350 }
159351 if (!source.isLocked) {
159352 source.offsetX += forceX;
159353 source.offsetY += forceY;
159354 }
159355 if (!target.isLocked) {
159356 target.offsetX -= forceX;
159357 target.offsetY -= forceY;
159358 }
159359 }
159360 };
159361 var calculateGravityForces = function calculateGravityForces2(layoutInfo, options2) {
159362 if (options2.gravity === 0) {
159363 return;
159364 }
159365 var distThreshold = 1;
159366 for (var i3 = 0; i3 < layoutInfo.graphSet.length; i3++) {
159367 var graph = layoutInfo.graphSet[i3];
159368 var numNodes = graph.length;
159369 if (0 === i3) {
159370 var centerX = layoutInfo.clientHeight / 2;
159371 var centerY = layoutInfo.clientWidth / 2;
159372 } else {
159373 var temp = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[0]]];
159374 var parent = layoutInfo.layoutNodes[layoutInfo.idToIndex[temp.parentId]];
159375 var centerX = parent.positionX;
159376 var centerY = parent.positionY;
159377 }
159378 for (var j = 0; j < numNodes; j++) {
159379 var node2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[graph[j]]];
159380 if (node2.isLocked) {
159381 continue;
159382 }
159383 var dx = centerX - node2.positionX;
159384 var dy = centerY - node2.positionY;
159385 var d = Math.sqrt(dx * dx + dy * dy);
159386 if (d > distThreshold) {
159387 var fx = options2.gravity * dx / d;
159388 var fy = options2.gravity * dy / d;
159389 node2.offsetX += fx;
159390 node2.offsetY += fy;
159391 }
159392 }
159393 }
159394 };
159395 var propagateForces = function propagateForces2(layoutInfo, options2) {
159396 var queue = [];
159397 var start2 = 0;
159398 var end2 = -1;
159399 queue.push.apply(queue, layoutInfo.graphSet[0]);
159400 end2 += layoutInfo.graphSet[0].length;
159401 while (start2 <= end2) {
159402 var nodeId = queue[start2++];
159403 var nodeIndex = layoutInfo.idToIndex[nodeId];
159404 var node2 = layoutInfo.layoutNodes[nodeIndex];
159405 var children2 = node2.children;
159406 if (0 < children2.length && !node2.isLocked) {
159407 var offX = node2.offsetX;
159408 var offY = node2.offsetY;
159409 for (var i3 = 0; i3 < children2.length; i3++) {
159410 var childNode = layoutInfo.layoutNodes[layoutInfo.idToIndex[children2[i3]]];
159411 childNode.offsetX += offX;
159412 childNode.offsetY += offY;
159413 queue[++end2] = children2[i3];
159414 }
159415 node2.offsetX = 0;
159416 node2.offsetY = 0;
159417 }
159418 }
159419 };
159420 var updatePositions = function updatePositions2(layoutInfo, options2) {
159421 for (var i3 = 0; i3 < layoutInfo.nodeSize; i3++) {
159422 var n = layoutInfo.layoutNodes[i3];
159423 if (0 < n.children.length) {
159424 n.maxX = void 0;
159425 n.minX = void 0;
159426 n.maxY = void 0;
159427 n.minY = void 0;
159428 }
159429 }
159430 for (var i3 = 0; i3 < layoutInfo.nodeSize; i3++) {
159431 var n = layoutInfo.layoutNodes[i3];
159432 if (0 < n.children.length || n.isLocked) {
159433 continue;
159434 }
159435 var tempForce = limitForce(n.offsetX, n.offsetY, layoutInfo.temperature);
159436 n.positionX += tempForce.x;
159437 n.positionY += tempForce.y;
159438 n.offsetX = 0;
159439 n.offsetY = 0;
159440 n.minX = n.positionX - n.width;
159441 n.maxX = n.positionX + n.width;
159442 n.minY = n.positionY - n.height;
159443 n.maxY = n.positionY + n.height;
159444 updateAncestryBoundaries(n, layoutInfo);
159445 }
159446 for (var i3 = 0; i3 < layoutInfo.nodeSize; i3++) {
159447 var n = layoutInfo.layoutNodes[i3];
159448 if (0 < n.children.length && !n.isLocked) {
159449 n.positionX = (n.maxX + n.minX) / 2;
159450 n.positionY = (n.maxY + n.minY) / 2;
159451 n.width = n.maxX - n.minX;
159452 n.height = n.maxY - n.minY;
159453 }
159454 }
159455 };
159456 var limitForce = function limitForce2(forceX, forceY, max3) {
159457 var force = Math.sqrt(forceX * forceX + forceY * forceY);
159458 if (force > max3) {
159459 var res = {
159460 x: max3 * forceX / force,
159461 y: max3 * forceY / force
159462 };
159463 } else {
159464 var res = {
159465 x: forceX,
159466 y: forceY
159467 };
159468 }
159469 return res;
159470 };
159471 var updateAncestryBoundaries = function updateAncestryBoundaries2(node2, layoutInfo) {
159472 var parentId = node2.parentId;
159473 if (null == parentId) {
159474 return;
159475 }
159476 var p2 = layoutInfo.layoutNodes[layoutInfo.idToIndex[parentId]];
159477 var flag = false;
159478 if (null == p2.maxX || node2.maxX + p2.padRight > p2.maxX) {
159479 p2.maxX = node2.maxX + p2.padRight;
159480 flag = true;
159481 }
159482 if (null == p2.minX || node2.minX - p2.padLeft < p2.minX) {
159483 p2.minX = node2.minX - p2.padLeft;
159484 flag = true;
159485 }
159486 if (null == p2.maxY || node2.maxY + p2.padBottom > p2.maxY) {
159487 p2.maxY = node2.maxY + p2.padBottom;
159488 flag = true;
159489 }
159490 if (null == p2.minY || node2.minY - p2.padTop < p2.minY) {
159491 p2.minY = node2.minY - p2.padTop;
159492 flag = true;
159493 }
159494 if (flag) {
159495 return updateAncestryBoundaries2(p2, layoutInfo);
159496 }
159497 return;
159498 };
159499 var separateComponents = function separateComponents2(layoutInfo, options2) {
159500 var nodes2 = layoutInfo.layoutNodes;
159501 var components = [];
159502 for (var i3 = 0; i3 < nodes2.length; i3++) {
159503 var node2 = nodes2[i3];
159504 var cid = node2.cmptId;
159505 var component = components[cid] = components[cid] || [];
159506 component.push(node2);
159507 }
159508 var totalA = 0;
159509 for (var i3 = 0; i3 < components.length; i3++) {
159510 var c2 = components[i3];
159511 if (!c2) {
159512 continue;
159513 }
159514 c2.x1 = Infinity;
159515 c2.x2 = -Infinity;
159516 c2.y1 = Infinity;
159517 c2.y2 = -Infinity;
159518 for (var j = 0; j < c2.length; j++) {
159519 var n = c2[j];
159520 c2.x1 = Math.min(c2.x1, n.positionX - n.width / 2);
159521 c2.x2 = Math.max(c2.x2, n.positionX + n.width / 2);
159522 c2.y1 = Math.min(c2.y1, n.positionY - n.height / 2);
159523 c2.y2 = Math.max(c2.y2, n.positionY + n.height / 2);
159524 }
159525 c2.w = c2.x2 - c2.x1;
159526 c2.h = c2.y2 - c2.y1;
159527 totalA += c2.w * c2.h;
159528 }
159529 components.sort(function(c1, c22) {
159530 return c22.w * c22.h - c1.w * c1.h;
159531 });
159532 var x2 = 0;
159533 var y2 = 0;
159534 var usedW = 0;
159535 var rowH = 0;
159536 var maxRowW = Math.sqrt(totalA) * layoutInfo.clientWidth / layoutInfo.clientHeight;
159537 for (var i3 = 0; i3 < components.length; i3++) {
159538 var c2 = components[i3];
159539 if (!c2) {
159540 continue;
159541 }
159542 for (var j = 0; j < c2.length; j++) {
159543 var n = c2[j];
159544 if (!n.isLocked) {
159545 n.positionX += x2 - c2.x1;
159546 n.positionY += y2 - c2.y1;
159547 }
159548 }
159549 x2 += c2.w + options2.componentSpacing;
159550 usedW += c2.w + options2.componentSpacing;
159551 rowH = Math.max(rowH, c2.h);
159552 if (usedW > maxRowW) {
159553 y2 += rowH + options2.componentSpacing;
159554 x2 = 0;
159555 usedW = 0;
159556 rowH = 0;
159557 }
159558 }
159559 };
159560 var defaults$3 = {
159561 fit: true,
159562 // whether to fit the viewport to the graph
159563 padding: 30,
159564 // padding used on fit
159565 boundingBox: void 0,
159566 // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
159567 avoidOverlap: true,
159568 // prevents node overlap, may overflow boundingBox if not enough space
159569 avoidOverlapPadding: 10,
159570 // extra spacing around nodes when avoidOverlap: true
159571 nodeDimensionsIncludeLabels: false,
159572 // Excludes the label when calculating node bounding boxes for the layout algorithm
159573 spacingFactor: void 0,
159574 // Applies a multiplicative factor (>0) to expand or compress the overall area that the nodes take up
159575 condense: false,
159576 // uses all available space on false, uses minimal space on true
159577 rows: void 0,
159578 // force num of rows in the grid
159579 cols: void 0,
159580 // force num of columns in the grid
159581 position: function position3(node2) {
159582 },
159583 // returns { row, col } for element
159584 sort: void 0,
159585 // a sorting function to order the nodes; e.g. function(a, b){ return a.data('weight') - b.data('weight') }
159586 animate: false,
159587 // whether to transition the node positions
159588 animationDuration: 500,
159589 // duration of animation in ms if enabled
159590 animationEasing: void 0,
159591 // easing of animation if enabled
159592 animateFilter: function animateFilter(node2, i3) {
159593 return true;
159594 },
159595 // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
159596 ready: void 0,
159597 // callback on layoutready
159598 stop: void 0,
159599 // callback on layoutstop
159600 transform: function transform(node2, position3) {
159601 return position3;
159602 }
159603 // transform a given node position. Useful for changing flow direction in discrete layouts
159604 };
159605 function GridLayout(options2) {
159606 this.options = extend2({}, defaults$3, options2);
159607 }
159608 GridLayout.prototype.run = function() {
159609 var params = this.options;
159610 var options2 = params;
159611 var cy = params.cy;
159612 var eles = options2.eles;
159613 var nodes2 = eles.nodes().not(":parent");
159614 if (options2.sort) {
159615 nodes2 = nodes2.sort(options2.sort);
159616 }
159617 var bb = makeBoundingBox(options2.boundingBox ? options2.boundingBox : {
159618 x1: 0,
159619 y1: 0,
159620 w: cy.width(),
159621 h: cy.height()
159622 });
159623 if (bb.h === 0 || bb.w === 0) {
159624 eles.nodes().layoutPositions(this, options2, function(ele) {
159625 return {
159626 x: bb.x1,
159627 y: bb.y1
159628 };
159629 });
159630 } else {
159631 var cells = nodes2.size();
159632 var splits = Math.sqrt(cells * bb.h / bb.w);
159633 var rows = Math.round(splits);
159634 var cols = Math.round(bb.w / bb.h * splits);
159635 var small = function small2(val) {
159636 if (val == null) {
159637 return Math.min(rows, cols);
159638 } else {
159639 var min3 = Math.min(rows, cols);
159640 if (min3 == rows) {
159641 rows = val;
159642 } else {
159643 cols = val;
159644 }
159645 }
159646 };
159647 var large = function large2(val) {
159648 if (val == null) {
159649 return Math.max(rows, cols);
159650 } else {
159651 var max3 = Math.max(rows, cols);
159652 if (max3 == rows) {
159653 rows = val;
159654 } else {
159655 cols = val;
159656 }
159657 }
159658 };
159659 var oRows = options2.rows;
159660 var oCols = options2.cols != null ? options2.cols : options2.columns;
159661 if (oRows != null && oCols != null) {
159662 rows = oRows;
159663 cols = oCols;
159664 } else if (oRows != null && oCols == null) {
159665 rows = oRows;
159666 cols = Math.ceil(cells / rows);
159667 } else if (oRows == null && oCols != null) {
159668 cols = oCols;
159669 rows = Math.ceil(cells / cols);
159670 } else if (cols * rows > cells) {
159671 var sm = small();
159672 var lg = large();
159673 if ((sm - 1) * lg >= cells) {
159674 small(sm - 1);
159675 } else if ((lg - 1) * sm >= cells) {
159676 large(lg - 1);
159677 }
159678 } else {
159679 while (cols * rows < cells) {
159680 var _sm = small();
159681 var _lg = large();
159682 if ((_lg + 1) * _sm >= cells) {
159683 large(_lg + 1);
159684 } else {
159685 small(_sm + 1);
159686 }
159687 }
159688 }
159689 var cellWidth = bb.w / cols;
159690 var cellHeight = bb.h / rows;
159691 if (options2.condense) {
159692 cellWidth = 0;
159693 cellHeight = 0;
159694 }
159695 if (options2.avoidOverlap) {
159696 for (var i3 = 0; i3 < nodes2.length; i3++) {
159697 var node2 = nodes2[i3];
159698 var pos = node2._private.position;
159699 if (pos.x == null || pos.y == null) {
159700 pos.x = 0;
159701 pos.y = 0;
159702 }
159703 var nbb = node2.layoutDimensions(options2);
159704 var p2 = options2.avoidOverlapPadding;
159705 var w2 = nbb.w + p2;
159706 var h = nbb.h + p2;
159707 cellWidth = Math.max(cellWidth, w2);
159708 cellHeight = Math.max(cellHeight, h);
159709 }
159710 }
159711 var cellUsed = {};
159712 var used = function used2(row2, col2) {
159713 return cellUsed["c-" + row2 + "-" + col2] ? true : false;
159714 };
159715 var use = function use2(row2, col2) {
159716 cellUsed["c-" + row2 + "-" + col2] = true;
159717 };
159718 var row = 0;
159719 var col = 0;
159720 var moveToNextCell = function moveToNextCell2() {
159721 col++;
159722 if (col >= cols) {
159723 col = 0;
159724 row++;
159725 }
159726 };
159727 var id2manPos = {};
159728 for (var _i = 0; _i < nodes2.length; _i++) {
159729 var _node = nodes2[_i];
159730 var rcPos = options2.position(_node);
159731 if (rcPos && (rcPos.row !== void 0 || rcPos.col !== void 0)) {
159732 var _pos = {
159733 row: rcPos.row,
159734 col: rcPos.col
159735 };
159736 if (_pos.col === void 0) {
159737 _pos.col = 0;
159738 while (used(_pos.row, _pos.col)) {
159739 _pos.col++;
159740 }
159741 } else if (_pos.row === void 0) {
159742 _pos.row = 0;
159743 while (used(_pos.row, _pos.col)) {
159744 _pos.row++;
159745 }
159746 }
159747 id2manPos[_node.id()] = _pos;
159748 use(_pos.row, _pos.col);
159749 }
159750 }
159751 var getPos = function getPos2(element3, i4) {
159752 var x2, y2;
159753 if (element3.locked() || element3.isParent()) {
159754 return false;
159755 }
159756 var rcPos2 = id2manPos[element3.id()];
159757 if (rcPos2) {
159758 x2 = rcPos2.col * cellWidth + cellWidth / 2 + bb.x1;
159759 y2 = rcPos2.row * cellHeight + cellHeight / 2 + bb.y1;
159760 } else {
159761 while (used(row, col)) {
159762 moveToNextCell();
159763 }
159764 x2 = col * cellWidth + cellWidth / 2 + bb.x1;
159765 y2 = row * cellHeight + cellHeight / 2 + bb.y1;
159766 use(row, col);
159767 moveToNextCell();
159768 }
159769 return {
159770 x: x2,
159771 y: y2
159772 };
159773 };
159774 nodes2.layoutPositions(this, options2, getPos);
159775 }
159776 return this;
159777 };
159778 var defaults$2 = {
159779 ready: function ready() {
159780 },
159781 // on layoutready
159782 stop: function stop() {
159783 }
159784 // on layoutstop
159785 };
159786 function NullLayout(options2) {
159787 this.options = extend2({}, defaults$2, options2);
159788 }
159789 NullLayout.prototype.run = function() {
159790 var options2 = this.options;
159791 var eles = options2.eles;
159792 var layout3 = this;
159793 options2.cy;
159794 layout3.emit("layoutstart");
159795 eles.nodes().positions(function() {
159796 return {
159797 x: 0,
159798 y: 0
159799 };
159800 });
159801 layout3.one("layoutready", options2.ready);
159802 layout3.emit("layoutready");
159803 layout3.one("layoutstop", options2.stop);
159804 layout3.emit("layoutstop");
159805 return this;
159806 };
159807 NullLayout.prototype.stop = function() {
159808 return this;
159809 };
159810 var defaults$12 = {
159811 positions: void 0,
159812 // map of (node id) => (position obj); or function(node){ return somPos; }
159813 zoom: void 0,
159814 // the zoom level to set (prob want fit = false if set)
159815 pan: void 0,
159816 // the pan level to set (prob want fit = false if set)
159817 fit: true,
159818 // whether to fit to viewport
159819 padding: 30,
159820 // padding on fit
159821 animate: false,
159822 // whether to transition the node positions
159823 animationDuration: 500,
159824 // duration of animation in ms if enabled
159825 animationEasing: void 0,
159826 // easing of animation if enabled
159827 animateFilter: function animateFilter(node2, i3) {
159828 return true;
159829 },
159830 // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
159831 ready: void 0,
159832 // callback on layoutready
159833 stop: void 0,
159834 // callback on layoutstop
159835 transform: function transform(node2, position3) {
159836 return position3;
159837 }
159838 // transform a given node position. Useful for changing flow direction in discrete layouts
159839 };
159840 function PresetLayout(options2) {
159841 this.options = extend2({}, defaults$12, options2);
159842 }
159843 PresetLayout.prototype.run = function() {
159844 var options2 = this.options;
159845 var eles = options2.eles;
159846 var nodes2 = eles.nodes();
159847 var posIsFn = fn$6(options2.positions);
159848 function getPosition(node2) {
159849 if (options2.positions == null) {
159850 return copyPosition(node2.position());
159851 }
159852 if (posIsFn) {
159853 return options2.positions(node2);
159854 }
159855 var pos = options2.positions[node2._private.data.id];
159856 if (pos == null) {
159857 return null;
159858 }
159859 return pos;
159860 }
159861 nodes2.layoutPositions(this, options2, function(node2, i3) {
159862 var position3 = getPosition(node2);
159863 if (node2.locked() || position3 == null) {
159864 return false;
159865 }
159866 return position3;
159867 });
159868 return this;
159869 };
159870 var defaults2 = {
159871 fit: true,
159872 // whether to fit to viewport
159873 padding: 30,
159874 // fit padding
159875 boundingBox: void 0,
159876 // constrain layout bounds; { x1, y1, x2, y2 } or { x1, y1, w, h }
159877 animate: false,
159878 // whether to transition the node positions
159879 animationDuration: 500,
159880 // duration of animation in ms if enabled
159881 animationEasing: void 0,
159882 // easing of animation if enabled
159883 animateFilter: function animateFilter(node2, i3) {
159884 return true;
159885 },
159886 // a function that determines whether the node should be animated. All nodes animated by default on animate enabled. Non-animated nodes are positioned immediately when the layout starts
159887 ready: void 0,
159888 // callback on layoutready
159889 stop: void 0,
159890 // callback on layoutstop
159891 transform: function transform(node2, position3) {
159892 return position3;
159893 }
159894 // transform a given node position. Useful for changing flow direction in discrete layouts
159895 };
159896 function RandomLayout(options2) {
159897 this.options = extend2({}, defaults2, options2);
159898 }
159899 RandomLayout.prototype.run = function() {
159900 var options2 = this.options;
159901 var cy = options2.cy;
159902 var eles = options2.eles;
159903 var bb = makeBoundingBox(options2.boundingBox ? options2.boundingBox : {
159904 x1: 0,
159905 y1: 0,
159906 w: cy.width(),
159907 h: cy.height()
159908 });
159909 var getPos = function getPos2(node2, i3) {
159910 return {
159911 x: bb.x1 + Math.round(Math.random() * bb.w),
159912 y: bb.y1 + Math.round(Math.random() * bb.h)
159913 };
159914 };
159915 eles.nodes().layoutPositions(this, options2, getPos);
159916 return this;
159917 };
159918 var layout2 = [{
159919 name: "breadthfirst",
159920 impl: BreadthFirstLayout
159921 }, {
159922 name: "circle",
159923 impl: CircleLayout
159924 }, {
159925 name: "concentric",
159926 impl: ConcentricLayout
159927 }, {
159928 name: "cose",
159929 impl: CoseLayout
159930 }, {
159931 name: "grid",
159932 impl: GridLayout
159933 }, {
159934 name: "null",
159935 impl: NullLayout
159936 }, {
159937 name: "preset",
159938 impl: PresetLayout
159939 }, {
159940 name: "random",
159941 impl: RandomLayout
159942 }];
159943 function NullRenderer(options2) {
159944 this.options = options2;
159945 this.notifications = 0;
159946 }
159947 var noop2 = function noop3() {
159948 };
159949 var throwImgErr = function throwImgErr2() {
159950 throw new Error("A headless instance can not render images");
159951 };
159952 NullRenderer.prototype = {
159953 recalculateRenderedStyle: noop2,
159954 notify: function notify() {
159955 this.notifications++;
159956 },
159957 init: noop2,
159958 isHeadless: function isHeadless() {
159959 return true;
159960 },
159961 png: throwImgErr,
159962 jpg: throwImgErr
159963 };
159964 var BRp$f = {};
159965 BRp$f.arrowShapeWidth = 0.3;
159966 BRp$f.registerArrowShapes = function() {
159967 var arrowShapes = this.arrowShapes = {};
159968 var renderer3 = this;
159969 var bbCollide = function bbCollide2(x2, y2, size2, angle, translation, edgeWidth, padding2) {
159970 var x1 = translation.x - size2 / 2 - padding2;
159971 var x22 = translation.x + size2 / 2 + padding2;
159972 var y1 = translation.y - size2 / 2 - padding2;
159973 var y22 = translation.y + size2 / 2 + padding2;
159974 var inside = x1 <= x2 && x2 <= x22 && y1 <= y2 && y2 <= y22;
159975 return inside;
159976 };
159977 var transform = function transform2(x2, y2, size2, angle, translation) {
159978 var xRotated = x2 * Math.cos(angle) - y2 * Math.sin(angle);
159979 var yRotated = x2 * Math.sin(angle) + y2 * Math.cos(angle);
159980 var xScaled = xRotated * size2;
159981 var yScaled = yRotated * size2;
159982 var xTranslated = xScaled + translation.x;
159983 var yTranslated = yScaled + translation.y;
159984 return {
159985 x: xTranslated,
159986 y: yTranslated
159987 };
159988 };
159989 var transformPoints = function transformPoints2(pts2, size2, angle, translation) {
159990 var retPts = [];
159991 for (var i3 = 0; i3 < pts2.length; i3 += 2) {
159992 var x2 = pts2[i3];
159993 var y2 = pts2[i3 + 1];
159994 retPts.push(transform(x2, y2, size2, angle, translation));
159995 }
159996 return retPts;
159997 };
159998 var pointsToArr = function pointsToArr2(pts2) {
159999 var ret = [];
160000 for (var i3 = 0; i3 < pts2.length; i3++) {
160001 var p2 = pts2[i3];
160002 ret.push(p2.x, p2.y);
160003 }
160004 return ret;
160005 };
160006 var standardGap = function standardGap2(edge) {
160007 return edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").pfValue * 2;
160008 };
160009 var defineArrowShape = function defineArrowShape2(name2, defn) {
160010 if (string2(defn)) {
160011 defn = arrowShapes[defn];
160012 }
160013 arrowShapes[name2] = extend2({
160014 name: name2,
160015 points: [-0.15, -0.3, 0.15, -0.3, 0.15, 0.3, -0.15, 0.3],
160016 collide: function collide(x2, y2, size2, angle, translation, padding2) {
160017 var points = pointsToArr(transformPoints(this.points, size2 + 2 * padding2, angle, translation));
160018 var inside = pointInsidePolygonPoints(x2, y2, points);
160019 return inside;
160020 },
160021 roughCollide: bbCollide,
160022 draw: function draw2(context, size2, angle, translation) {
160023 var points = transformPoints(this.points, size2, angle, translation);
160024 renderer3.arrowShapeImpl("polygon")(context, points);
160025 },
160026 spacing: function spacing(edge) {
160027 return 0;
160028 },
160029 gap: standardGap
160030 }, defn);
160031 };
160032 defineArrowShape("none", {
160033 collide: falsify,
160034 roughCollide: falsify,
160035 draw: noop$12,
160036 spacing: zeroify,
160037 gap: zeroify
160038 });
160039 defineArrowShape("triangle", {
160040 points: [-0.15, -0.3, 0, 0, 0.15, -0.3]
160041 });
160042 defineArrowShape("arrow", "triangle");
160043 defineArrowShape("triangle-backcurve", {
160044 points: arrowShapes["triangle"].points,
160045 controlPoint: [0, -0.15],
160046 roughCollide: bbCollide,
160047 draw: function draw2(context, size2, angle, translation, edgeWidth) {
160048 var ptsTrans = transformPoints(this.points, size2, angle, translation);
160049 var ctrlPt = this.controlPoint;
160050 var ctrlPtTrans = transform(ctrlPt[0], ctrlPt[1], size2, angle, translation);
160051 renderer3.arrowShapeImpl(this.name)(context, ptsTrans, ctrlPtTrans);
160052 },
160053 gap: function gap(edge) {
160054 return standardGap(edge) * 0.8;
160055 }
160056 });
160057 defineArrowShape("triangle-tee", {
160058 points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],
160059 pointsTee: [-0.15, -0.4, -0.15, -0.5, 0.15, -0.5, 0.15, -0.4],
160060 collide: function collide(x2, y2, size2, angle, translation, edgeWidth, padding2) {
160061 var triPts = pointsToArr(transformPoints(this.points, size2 + 2 * padding2, angle, translation));
160062 var teePts = pointsToArr(transformPoints(this.pointsTee, size2 + 2 * padding2, angle, translation));
160063 var inside = pointInsidePolygonPoints(x2, y2, triPts) || pointInsidePolygonPoints(x2, y2, teePts);
160064 return inside;
160065 },
160066 draw: function draw2(context, size2, angle, translation, edgeWidth) {
160067 var triPts = transformPoints(this.points, size2, angle, translation);
160068 var teePts = transformPoints(this.pointsTee, size2, angle, translation);
160069 renderer3.arrowShapeImpl(this.name)(context, triPts, teePts);
160070 }
160071 });
160072 defineArrowShape("circle-triangle", {
160073 radius: 0.15,
160074 pointsTr: [0, -0.15, 0.15, -0.45, -0.15, -0.45, 0, -0.15],
160075 collide: function collide(x2, y2, size2, angle, translation, edgeWidth, padding2) {
160076 var t4 = translation;
160077 var circleInside = Math.pow(t4.x - x2, 2) + Math.pow(t4.y - y2, 2) <= Math.pow((size2 + 2 * padding2) * this.radius, 2);
160078 var triPts = pointsToArr(transformPoints(this.points, size2 + 2 * padding2, angle, translation));
160079 return pointInsidePolygonPoints(x2, y2, triPts) || circleInside;
160080 },
160081 draw: function draw2(context, size2, angle, translation, edgeWidth) {
160082 var triPts = transformPoints(this.pointsTr, size2, angle, translation);
160083 renderer3.arrowShapeImpl(this.name)(context, triPts, translation.x, translation.y, this.radius * size2);
160084 },
160085 spacing: function spacing(edge) {
160086 return renderer3.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.radius;
160087 }
160088 });
160089 defineArrowShape("triangle-cross", {
160090 points: [0, 0, 0.15, -0.3, -0.15, -0.3, 0, 0],
160091 baseCrossLinePts: [
160092 -0.15,
160093 -0.4,
160094 // first half of the rectangle
160095 -0.15,
160096 -0.4,
160097 0.15,
160098 -0.4,
160099 // second half of the rectangle
160100 0.15,
160101 -0.4
160102 ],
160103 crossLinePts: function crossLinePts(size2, edgeWidth) {
160104 var p2 = this.baseCrossLinePts.slice();
160105 var shiftFactor = edgeWidth / size2;
160106 var y0 = 3;
160107 var y1 = 5;
160108 p2[y0] = p2[y0] - shiftFactor;
160109 p2[y1] = p2[y1] - shiftFactor;
160110 return p2;
160111 },
160112 collide: function collide(x2, y2, size2, angle, translation, edgeWidth, padding2) {
160113 var triPts = pointsToArr(transformPoints(this.points, size2 + 2 * padding2, angle, translation));
160114 var teePts = pointsToArr(transformPoints(this.crossLinePts(size2, edgeWidth), size2 + 2 * padding2, angle, translation));
160115 var inside = pointInsidePolygonPoints(x2, y2, triPts) || pointInsidePolygonPoints(x2, y2, teePts);
160116 return inside;
160117 },
160118 draw: function draw2(context, size2, angle, translation, edgeWidth) {
160119 var triPts = transformPoints(this.points, size2, angle, translation);
160120 var crossLinePts = transformPoints(this.crossLinePts(size2, edgeWidth), size2, angle, translation);
160121 renderer3.arrowShapeImpl(this.name)(context, triPts, crossLinePts);
160122 }
160123 });
160124 defineArrowShape("vee", {
160125 points: [-0.15, -0.3, 0, 0, 0.15, -0.3, 0, -0.15],
160126 gap: function gap(edge) {
160127 return standardGap(edge) * 0.525;
160128 }
160129 });
160130 defineArrowShape("circle", {
160131 radius: 0.15,
160132 collide: function collide(x2, y2, size2, angle, translation, edgeWidth, padding2) {
160133 var t4 = translation;
160134 var inside = Math.pow(t4.x - x2, 2) + Math.pow(t4.y - y2, 2) <= Math.pow((size2 + 2 * padding2) * this.radius, 2);
160135 return inside;
160136 },
160137 draw: function draw2(context, size2, angle, translation, edgeWidth) {
160138 renderer3.arrowShapeImpl(this.name)(context, translation.x, translation.y, this.radius * size2);
160139 },
160140 spacing: function spacing(edge) {
160141 return renderer3.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.radius;
160142 }
160143 });
160144 defineArrowShape("tee", {
160145 points: [-0.15, 0, -0.15, -0.1, 0.15, -0.1, 0.15, 0],
160146 spacing: function spacing(edge) {
160147 return 1;
160148 },
160149 gap: function gap(edge) {
160150 return 1;
160151 }
160152 });
160153 defineArrowShape("square", {
160154 points: [-0.15, 0, 0.15, 0, 0.15, -0.3, -0.15, -0.3]
160155 });
160156 defineArrowShape("diamond", {
160157 points: [-0.15, -0.15, 0, -0.3, 0.15, -0.15, 0, 0],
160158 gap: function gap(edge) {
160159 return edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").value;
160160 }
160161 });
160162 defineArrowShape("chevron", {
160163 points: [0, 0, -0.15, -0.15, -0.1, -0.2, 0, -0.1, 0.1, -0.2, 0.15, -0.15],
160164 gap: function gap(edge) {
160165 return 0.95 * edge.pstyle("width").pfValue * edge.pstyle("arrow-scale").value;
160166 }
160167 });
160168 };
160169 var BRp$e = {};
160170 BRp$e.projectIntoViewport = function(clientX, clientY) {
160171 var cy = this.cy;
160172 var offsets = this.findContainerClientCoords();
160173 var offsetLeft = offsets[0];
160174 var offsetTop = offsets[1];
160175 var scale = offsets[4];
160176 var pan = cy.pan();
160177 var zoom = cy.zoom();
160178 var x2 = ((clientX - offsetLeft) / scale - pan.x) / zoom;
160179 var y2 = ((clientY - offsetTop) / scale - pan.y) / zoom;
160180 return [x2, y2];
160181 };
160182 BRp$e.findContainerClientCoords = function() {
160183 if (this.containerBB) {
160184 return this.containerBB;
160185 }
160186 var container = this.container;
160187 var rect2 = container.getBoundingClientRect();
160188 var style = window$1.getComputedStyle(container);
160189 var styleValue2 = function styleValue3(name2) {
160190 return parseFloat(style.getPropertyValue(name2));
160191 };
160192 var padding2 = {
160193 left: styleValue2("padding-left"),
160194 right: styleValue2("padding-right"),
160195 top: styleValue2("padding-top"),
160196 bottom: styleValue2("padding-bottom")
160197 };
160198 var border = {
160199 left: styleValue2("border-left-width"),
160200 right: styleValue2("border-right-width"),
160201 top: styleValue2("border-top-width"),
160202 bottom: styleValue2("border-bottom-width")
160203 };
160204 var clientWidth = container.clientWidth;
160205 var clientHeight = container.clientHeight;
160206 var paddingHor = padding2.left + padding2.right;
160207 var paddingVer = padding2.top + padding2.bottom;
160208 var borderHor = border.left + border.right;
160209 var scale = rect2.width / (clientWidth + borderHor);
160210 var unscaledW = clientWidth - paddingHor;
160211 var unscaledH = clientHeight - paddingVer;
160212 var left2 = rect2.left + padding2.left + border.left;
160213 var top2 = rect2.top + padding2.top + border.top;
160214 return this.containerBB = [left2, top2, unscaledW, unscaledH, scale];
160215 };
160216 BRp$e.invalidateContainerClientCoordsCache = function() {
160217 this.containerBB = null;
160218 };
160219 BRp$e.findNearestElement = function(x2, y2, interactiveElementsOnly, isTouch) {
160220 return this.findNearestElements(x2, y2, interactiveElementsOnly, isTouch)[0];
160221 };
160222 BRp$e.findNearestElements = function(x2, y2, interactiveElementsOnly, isTouch) {
160223 var self2 = this;
160224 var r = this;
160225 var eles = r.getCachedZSortedEles();
160226 var near = [];
160227 var zoom = r.cy.zoom();
160228 var hasCompounds = r.cy.hasCompoundNodes();
160229 var edgeThreshold = (isTouch ? 24 : 8) / zoom;
160230 var nodeThreshold = (isTouch ? 8 : 2) / zoom;
160231 var labelThreshold = (isTouch ? 8 : 2) / zoom;
160232 var minSqDist = Infinity;
160233 var nearEdge;
160234 var nearNode;
160235 if (interactiveElementsOnly) {
160236 eles = eles.interactive;
160237 }
160238 function addEle(ele2, sqDist) {
160239 if (ele2.isNode()) {
160240 if (nearNode) {
160241 return;
160242 } else {
160243 nearNode = ele2;
160244 near.push(ele2);
160245 }
160246 }
160247 if (ele2.isEdge() && (sqDist == null || sqDist < minSqDist)) {
160248 if (nearEdge) {
160249 if (nearEdge.pstyle("z-compound-depth").value === ele2.pstyle("z-compound-depth").value && nearEdge.pstyle("z-compound-depth").value === ele2.pstyle("z-compound-depth").value) {
160250 for (var i4 = 0; i4 < near.length; i4++) {
160251 if (near[i4].isEdge()) {
160252 near[i4] = ele2;
160253 nearEdge = ele2;
160254 minSqDist = sqDist != null ? sqDist : minSqDist;
160255 break;
160256 }
160257 }
160258 }
160259 } else {
160260 near.push(ele2);
160261 nearEdge = ele2;
160262 minSqDist = sqDist != null ? sqDist : minSqDist;
160263 }
160264 }
160265 }
160266 function checkNode(node2) {
160267 var width2 = node2.outerWidth() + 2 * nodeThreshold;
160268 var height2 = node2.outerHeight() + 2 * nodeThreshold;
160269 var hw = width2 / 2;
160270 var hh = height2 / 2;
160271 var pos = node2.position();
160272 if (pos.x - hw <= x2 && x2 <= pos.x + hw && pos.y - hh <= y2 && y2 <= pos.y + hh) {
160273 var shape = r.nodeShapes[self2.getNodeShape(node2)];
160274 if (shape.checkPoint(x2, y2, 0, width2, height2, pos.x, pos.y)) {
160275 addEle(node2, 0);
160276 return true;
160277 }
160278 }
160279 }
160280 function checkEdge(edge) {
160281 var _p = edge._private;
160282 var rs = _p.rscratch;
160283 var styleWidth = edge.pstyle("width").pfValue;
160284 var scale = edge.pstyle("arrow-scale").value;
160285 var width2 = styleWidth / 2 + edgeThreshold;
160286 var widthSq = width2 * width2;
160287 var width22 = width2 * 2;
160288 var src = _p.source;
160289 var tgt = _p.target;
160290 var sqDist;
160291 if (rs.edgeType === "segments" || rs.edgeType === "straight" || rs.edgeType === "haystack") {
160292 var pts2 = rs.allpts;
160293 for (var i4 = 0; i4 + 3 < pts2.length; i4 += 2) {
160294 if (inLineVicinity(x2, y2, pts2[i4], pts2[i4 + 1], pts2[i4 + 2], pts2[i4 + 3], width22) && widthSq > (sqDist = sqdistToFiniteLine(x2, y2, pts2[i4], pts2[i4 + 1], pts2[i4 + 2], pts2[i4 + 3]))) {
160295 addEle(edge, sqDist);
160296 return true;
160297 }
160298 }
160299 } else if (rs.edgeType === "bezier" || rs.edgeType === "multibezier" || rs.edgeType === "self" || rs.edgeType === "compound") {
160300 var pts2 = rs.allpts;
160301 for (var i4 = 0; i4 + 5 < rs.allpts.length; i4 += 4) {
160302 if (inBezierVicinity(x2, y2, pts2[i4], pts2[i4 + 1], pts2[i4 + 2], pts2[i4 + 3], pts2[i4 + 4], pts2[i4 + 5], width22) && widthSq > (sqDist = sqdistToQuadraticBezier(x2, y2, pts2[i4], pts2[i4 + 1], pts2[i4 + 2], pts2[i4 + 3], pts2[i4 + 4], pts2[i4 + 5]))) {
160303 addEle(edge, sqDist);
160304 return true;
160305 }
160306 }
160307 }
160308 var src = src || _p.source;
160309 var tgt = tgt || _p.target;
160310 var arSize = self2.getArrowWidth(styleWidth, scale);
160311 var arrows2 = [{
160312 name: "source",
160313 x: rs.arrowStartX,
160314 y: rs.arrowStartY,
160315 angle: rs.srcArrowAngle
160316 }, {
160317 name: "target",
160318 x: rs.arrowEndX,
160319 y: rs.arrowEndY,
160320 angle: rs.tgtArrowAngle
160321 }, {
160322 name: "mid-source",
160323 x: rs.midX,
160324 y: rs.midY,
160325 angle: rs.midsrcArrowAngle
160326 }, {
160327 name: "mid-target",
160328 x: rs.midX,
160329 y: rs.midY,
160330 angle: rs.midtgtArrowAngle
160331 }];
160332 for (var i4 = 0; i4 < arrows2.length; i4++) {
160333 var ar = arrows2[i4];
160334 var shape = r.arrowShapes[edge.pstyle(ar.name + "-arrow-shape").value];
160335 var edgeWidth = edge.pstyle("width").pfValue;
160336 if (shape.roughCollide(x2, y2, arSize, ar.angle, {
160337 x: ar.x,
160338 y: ar.y
160339 }, edgeWidth, edgeThreshold) && shape.collide(x2, y2, arSize, ar.angle, {
160340 x: ar.x,
160341 y: ar.y
160342 }, edgeWidth, edgeThreshold)) {
160343 addEle(edge);
160344 return true;
160345 }
160346 }
160347 if (hasCompounds && near.length > 0) {
160348 checkNode(src);
160349 checkNode(tgt);
160350 }
160351 }
160352 function preprop(obj, name2, pre) {
160353 return getPrefixedProperty(obj, name2, pre);
160354 }
160355 function checkLabel(ele2, prefix) {
160356 var _p = ele2._private;
160357 var th = labelThreshold;
160358 var prefixDash;
160359 if (prefix) {
160360 prefixDash = prefix + "-";
160361 } else {
160362 prefixDash = "";
160363 }
160364 ele2.boundingBox();
160365 var bb = _p.labelBounds[prefix || "main"];
160366 var text2 = ele2.pstyle(prefixDash + "label").value;
160367 var eventsEnabled = ele2.pstyle("text-events").strValue === "yes";
160368 if (!eventsEnabled || !text2) {
160369 return;
160370 }
160371 var lx = preprop(_p.rscratch, "labelX", prefix);
160372 var ly = preprop(_p.rscratch, "labelY", prefix);
160373 var theta = preprop(_p.rscratch, "labelAngle", prefix);
160374 var ox = ele2.pstyle(prefixDash + "text-margin-x").pfValue;
160375 var oy = ele2.pstyle(prefixDash + "text-margin-y").pfValue;
160376 var lx1 = bb.x1 - th - ox;
160377 var lx2 = bb.x2 + th - ox;
160378 var ly1 = bb.y1 - th - oy;
160379 var ly2 = bb.y2 + th - oy;
160380 if (theta) {
160381 var cos3 = Math.cos(theta);
160382 var sin3 = Math.sin(theta);
160383 var rotate = function rotate2(x3, y3) {
160384 x3 = x3 - lx;
160385 y3 = y3 - ly;
160386 return {
160387 x: x3 * cos3 - y3 * sin3 + lx,
160388 y: x3 * sin3 + y3 * cos3 + ly
160389 };
160390 };
160391 var px1y1 = rotate(lx1, ly1);
160392 var px1y2 = rotate(lx1, ly2);
160393 var px2y1 = rotate(lx2, ly1);
160394 var px2y2 = rotate(lx2, ly2);
160395 var points = [
160396 // with the margin added after the rotation is applied
160397 px1y1.x + ox,
160398 px1y1.y + oy,
160399 px2y1.x + ox,
160400 px2y1.y + oy,
160401 px2y2.x + ox,
160402 px2y2.y + oy,
160403 px1y2.x + ox,
160404 px1y2.y + oy
160405 ];
160406 if (pointInsidePolygonPoints(x2, y2, points)) {
160407 addEle(ele2);
160408 return true;
160409 }
160410 } else {
160411 if (inBoundingBox(bb, x2, y2)) {
160412 addEle(ele2);
160413 return true;
160414 }
160415 }
160416 }
160417 for (var i3 = eles.length - 1; i3 >= 0; i3--) {
160418 var ele = eles[i3];
160419 if (ele.isNode()) {
160420 checkNode(ele) || checkLabel(ele);
160421 } else {
160422 checkEdge(ele) || checkLabel(ele) || checkLabel(ele, "source") || checkLabel(ele, "target");
160423 }
160424 }
160425 return near;
160426 };
160427 BRp$e.getAllInBox = function(x1, y1, x2, y2) {
160428 var eles = this.getCachedZSortedEles().interactive;
160429 var box = [];
160430 var x1c = Math.min(x1, x2);
160431 var x2c = Math.max(x1, x2);
160432 var y1c = Math.min(y1, y2);
160433 var y2c = Math.max(y1, y2);
160434 x1 = x1c;
160435 x2 = x2c;
160436 y1 = y1c;
160437 y2 = y2c;
160438 var boxBb = makeBoundingBox({
160439 x1,
160440 y1,
160441 x2,
160442 y2
160443 });
160444 for (var e = 0; e < eles.length; e++) {
160445 var ele = eles[e];
160446 if (ele.isNode()) {
160447 var node2 = ele;
160448 var nodeBb = node2.boundingBox({
160449 includeNodes: true,
160450 includeEdges: false,
160451 includeLabels: false
160452 });
160453 if (boundingBoxesIntersect(boxBb, nodeBb) && !boundingBoxInBoundingBox(nodeBb, boxBb)) {
160454 box.push(node2);
160455 }
160456 } else {
160457 var edge = ele;
160458 var _p = edge._private;
160459 var rs = _p.rscratch;
160460 if (rs.startX != null && rs.startY != null && !inBoundingBox(boxBb, rs.startX, rs.startY)) {
160461 continue;
160462 }
160463 if (rs.endX != null && rs.endY != null && !inBoundingBox(boxBb, rs.endX, rs.endY)) {
160464 continue;
160465 }
160466 if (rs.edgeType === "bezier" || rs.edgeType === "multibezier" || rs.edgeType === "self" || rs.edgeType === "compound" || rs.edgeType === "segments" || rs.edgeType === "haystack") {
160467 var pts2 = _p.rstyle.bezierPts || _p.rstyle.linePts || _p.rstyle.haystackPts;
160468 var allInside = true;
160469 for (var i3 = 0; i3 < pts2.length; i3++) {
160470 if (!pointInBoundingBox(boxBb, pts2[i3])) {
160471 allInside = false;
160472 break;
160473 }
160474 }
160475 if (allInside) {
160476 box.push(edge);
160477 }
160478 } else if (rs.edgeType === "haystack" || rs.edgeType === "straight") {
160479 box.push(edge);
160480 }
160481 }
160482 }
160483 return box;
160484 };
160485 var BRp$d = {};
160486 BRp$d.calculateArrowAngles = function(edge) {
160487 var rs = edge._private.rscratch;
160488 var isHaystack = rs.edgeType === "haystack";
160489 var isBezier = rs.edgeType === "bezier";
160490 var isMultibezier = rs.edgeType === "multibezier";
160491 var isSegments = rs.edgeType === "segments";
160492 var isCompound = rs.edgeType === "compound";
160493 var isSelf = rs.edgeType === "self";
160494 var dispX, dispY;
160495 var startX, startY, endX, endY, midX, midY;
160496 if (isHaystack) {
160497 startX = rs.haystackPts[0];
160498 startY = rs.haystackPts[1];
160499 endX = rs.haystackPts[2];
160500 endY = rs.haystackPts[3];
160501 } else {
160502 startX = rs.arrowStartX;
160503 startY = rs.arrowStartY;
160504 endX = rs.arrowEndX;
160505 endY = rs.arrowEndY;
160506 }
160507 midX = rs.midX;
160508 midY = rs.midY;
160509 if (isSegments) {
160510 dispX = startX - rs.segpts[0];
160511 dispY = startY - rs.segpts[1];
160512 } else if (isMultibezier || isCompound || isSelf || isBezier) {
160513 var pts2 = rs.allpts;
160514 var bX = qbezierAt(pts2[0], pts2[2], pts2[4], 0.1);
160515 var bY = qbezierAt(pts2[1], pts2[3], pts2[5], 0.1);
160516 dispX = startX - bX;
160517 dispY = startY - bY;
160518 } else {
160519 dispX = startX - midX;
160520 dispY = startY - midY;
160521 }
160522 rs.srcArrowAngle = getAngleFromDisp(dispX, dispY);
160523 var midX = rs.midX;
160524 var midY = rs.midY;
160525 if (isHaystack) {
160526 midX = (startX + endX) / 2;
160527 midY = (startY + endY) / 2;
160528 }
160529 dispX = endX - startX;
160530 dispY = endY - startY;
160531 if (isSegments) {
160532 var pts2 = rs.allpts;
160533 if (pts2.length / 2 % 2 === 0) {
160534 var i22 = pts2.length / 2;
160535 var i1 = i22 - 2;
160536 dispX = pts2[i22] - pts2[i1];
160537 dispY = pts2[i22 + 1] - pts2[i1 + 1];
160538 } else {
160539 var i22 = pts2.length / 2 - 1;
160540 var i1 = i22 - 2;
160541 var i3 = i22 + 2;
160542 dispX = pts2[i22] - pts2[i1];
160543 dispY = pts2[i22 + 1] - pts2[i1 + 1];
160544 }
160545 } else if (isMultibezier || isCompound || isSelf) {
160546 var pts2 = rs.allpts;
160547 var cpts = rs.ctrlpts;
160548 var bp0x, bp0y;
160549 var bp1x, bp1y;
160550 if (cpts.length / 2 % 2 === 0) {
160551 var p0 = pts2.length / 2 - 1;
160552 var ic = p0 + 2;
160553 var p1 = ic + 2;
160554 bp0x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0);
160555 bp0y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0);
160556 bp1x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 1e-4);
160557 bp1y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 1e-4);
160558 } else {
160559 var ic = pts2.length / 2 - 1;
160560 var p0 = ic - 2;
160561 var p1 = ic + 2;
160562 bp0x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0.4999);
160563 bp0y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0.4999);
160564 bp1x = qbezierAt(pts2[p0], pts2[ic], pts2[p1], 0.5);
160565 bp1y = qbezierAt(pts2[p0 + 1], pts2[ic + 1], pts2[p1 + 1], 0.5);
160566 }
160567 dispX = bp1x - bp0x;
160568 dispY = bp1y - bp0y;
160569 }
160570 rs.midtgtArrowAngle = getAngleFromDisp(dispX, dispY);
160571 rs.midDispX = dispX;
160572 rs.midDispY = dispY;
160573 dispX *= -1;
160574 dispY *= -1;
160575 if (isSegments) {
160576 var pts2 = rs.allpts;
160577 if (pts2.length / 2 % 2 === 0)
160578 ;
160579 else {
160580 var i22 = pts2.length / 2 - 1;
160581 var i3 = i22 + 2;
160582 dispX = -(pts2[i3] - pts2[i22]);
160583 dispY = -(pts2[i3 + 1] - pts2[i22 + 1]);
160584 }
160585 }
160586 rs.midsrcArrowAngle = getAngleFromDisp(dispX, dispY);
160587 if (isSegments) {
160588 dispX = endX - rs.segpts[rs.segpts.length - 2];
160589 dispY = endY - rs.segpts[rs.segpts.length - 1];
160590 } else if (isMultibezier || isCompound || isSelf || isBezier) {
160591 var pts2 = rs.allpts;
160592 var l = pts2.length;
160593 var bX = qbezierAt(pts2[l - 6], pts2[l - 4], pts2[l - 2], 0.9);
160594 var bY = qbezierAt(pts2[l - 5], pts2[l - 3], pts2[l - 1], 0.9);
160595 dispX = endX - bX;
160596 dispY = endY - bY;
160597 } else {
160598 dispX = endX - midX;
160599 dispY = endY - midY;
160600 }
160601 rs.tgtArrowAngle = getAngleFromDisp(dispX, dispY);
160602 };
160603 BRp$d.getArrowWidth = BRp$d.getArrowHeight = function(edgeWidth, scale) {
160604 var cache2 = this.arrowWidthCache = this.arrowWidthCache || {};
160605 var cachedVal = cache2[edgeWidth + ", " + scale];
160606 if (cachedVal) {
160607 return cachedVal;
160608 }
160609 cachedVal = Math.max(Math.pow(edgeWidth * 13.37, 0.9), 29) * scale;
160610 cache2[edgeWidth + ", " + scale] = cachedVal;
160611 return cachedVal;
160612 };
160613 var BRp$c = {};
160614 BRp$c.findHaystackPoints = function(edges2) {
160615 for (var i3 = 0; i3 < edges2.length; i3++) {
160616 var edge = edges2[i3];
160617 var _p = edge._private;
160618 var rs = _p.rscratch;
160619 if (!rs.haystack) {
160620 var angle = Math.random() * 2 * Math.PI;
160621 rs.source = {
160622 x: Math.cos(angle),
160623 y: Math.sin(angle)
160624 };
160625 angle = Math.random() * 2 * Math.PI;
160626 rs.target = {
160627 x: Math.cos(angle),
160628 y: Math.sin(angle)
160629 };
160630 }
160631 var src = _p.source;
160632 var tgt = _p.target;
160633 var srcPos = src.position();
160634 var tgtPos = tgt.position();
160635 var srcW = src.width();
160636 var tgtW = tgt.width();
160637 var srcH = src.height();
160638 var tgtH = tgt.height();
160639 var radius = edge.pstyle("haystack-radius").value;
160640 var halfRadius = radius / 2;
160641 rs.haystackPts = rs.allpts = [rs.source.x * srcW * halfRadius + srcPos.x, rs.source.y * srcH * halfRadius + srcPos.y, rs.target.x * tgtW * halfRadius + tgtPos.x, rs.target.y * tgtH * halfRadius + tgtPos.y];
160642 rs.midX = (rs.allpts[0] + rs.allpts[2]) / 2;
160643 rs.midY = (rs.allpts[1] + rs.allpts[3]) / 2;
160644 rs.edgeType = "haystack";
160645 rs.haystack = true;
160646 this.storeEdgeProjections(edge);
160647 this.calculateArrowAngles(edge);
160648 this.recalculateEdgeLabelProjections(edge);
160649 this.calculateLabelAngles(edge);
160650 }
160651 };
160652 BRp$c.findSegmentsPoints = function(edge, pairInfo) {
160653 var rs = edge._private.rscratch;
160654 var posPts = pairInfo.posPts, intersectionPts = pairInfo.intersectionPts, vectorNormInverse = pairInfo.vectorNormInverse;
160655 var edgeDistances = edge.pstyle("edge-distances").value;
160656 var segmentWs = edge.pstyle("segment-weights");
160657 var segmentDs = edge.pstyle("segment-distances");
160658 var segmentsN = Math.min(segmentWs.pfValue.length, segmentDs.pfValue.length);
160659 rs.edgeType = "segments";
160660 rs.segpts = [];
160661 for (var s = 0; s < segmentsN; s++) {
160662 var w2 = segmentWs.pfValue[s];
160663 var d = segmentDs.pfValue[s];
160664 var w1 = 1 - w2;
160665 var w22 = w2;
160666 var midptPts = edgeDistances === "node-position" ? posPts : intersectionPts;
160667 var adjustedMidpt = {
160668 x: midptPts.x1 * w1 + midptPts.x2 * w22,
160669 y: midptPts.y1 * w1 + midptPts.y2 * w22
160670 };
160671 rs.segpts.push(adjustedMidpt.x + vectorNormInverse.x * d, adjustedMidpt.y + vectorNormInverse.y * d);
160672 }
160673 };
160674 BRp$c.findLoopPoints = function(edge, pairInfo, i3, edgeIsUnbundled) {
160675 var rs = edge._private.rscratch;
160676 var dirCounts = pairInfo.dirCounts, srcPos = pairInfo.srcPos;
160677 var ctrlptDists = edge.pstyle("control-point-distances");
160678 var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0;
160679 var loopDir = edge.pstyle("loop-direction").pfValue;
160680 var loopSwp = edge.pstyle("loop-sweep").pfValue;
160681 var stepSize = edge.pstyle("control-point-step-size").pfValue;
160682 rs.edgeType = "self";
160683 var j = i3;
160684 var loopDist = stepSize;
160685 if (edgeIsUnbundled) {
160686 j = 0;
160687 loopDist = ctrlptDist;
160688 }
160689 var loopAngle = loopDir - Math.PI / 2;
160690 var outAngle = loopAngle - loopSwp / 2;
160691 var inAngle = loopAngle + loopSwp / 2;
160692 var dc = String(loopDir + "_" + loopSwp);
160693 j = dirCounts[dc] === void 0 ? dirCounts[dc] = 0 : ++dirCounts[dc];
160694 rs.ctrlpts = [srcPos.x + Math.cos(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(outAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.x + Math.cos(inAngle) * 1.4 * loopDist * (j / 3 + 1), srcPos.y + Math.sin(inAngle) * 1.4 * loopDist * (j / 3 + 1)];
160695 };
160696 BRp$c.findCompoundLoopPoints = function(edge, pairInfo, i3, edgeIsUnbundled) {
160697 var rs = edge._private.rscratch;
160698 rs.edgeType = "compound";
160699 var srcPos = pairInfo.srcPos, tgtPos = pairInfo.tgtPos, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH;
160700 var stepSize = edge.pstyle("control-point-step-size").pfValue;
160701 var ctrlptDists = edge.pstyle("control-point-distances");
160702 var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0;
160703 var j = i3;
160704 var loopDist = stepSize;
160705 if (edgeIsUnbundled) {
160706 j = 0;
160707 loopDist = ctrlptDist;
160708 }
160709 var loopW = 50;
160710 var loopaPos = {
160711 x: srcPos.x - srcW / 2,
160712 y: srcPos.y - srcH / 2
160713 };
160714 var loopbPos = {
160715 x: tgtPos.x - tgtW / 2,
160716 y: tgtPos.y - tgtH / 2
160717 };
160718 var loopPos = {
160719 x: Math.min(loopaPos.x, loopbPos.x),
160720 y: Math.min(loopaPos.y, loopbPos.y)
160721 };
160722 var minCompoundStretch = 0.5;
160723 var compoundStretchA = Math.max(minCompoundStretch, Math.log(srcW * 0.01));
160724 var compoundStretchB = Math.max(minCompoundStretch, Math.log(tgtW * 0.01));
160725 rs.ctrlpts = [loopPos.x, loopPos.y - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchA, loopPos.x - (1 + Math.pow(loopW, 1.12) / 100) * loopDist * (j / 3 + 1) * compoundStretchB, loopPos.y];
160726 };
160727 BRp$c.findStraightEdgePoints = function(edge) {
160728 edge._private.rscratch.edgeType = "straight";
160729 };
160730 BRp$c.findBezierPoints = function(edge, pairInfo, i3, edgeIsUnbundled, edgeIsSwapped) {
160731 var rs = edge._private.rscratch;
160732 var vectorNormInverse = pairInfo.vectorNormInverse, posPts = pairInfo.posPts, intersectionPts = pairInfo.intersectionPts;
160733 var edgeDistances = edge.pstyle("edge-distances").value;
160734 var stepSize = edge.pstyle("control-point-step-size").pfValue;
160735 var ctrlptDists = edge.pstyle("control-point-distances");
160736 var ctrlptWs = edge.pstyle("control-point-weights");
160737 var bezierN = ctrlptDists && ctrlptWs ? Math.min(ctrlptDists.value.length, ctrlptWs.value.length) : 1;
160738 var ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[0] : void 0;
160739 var ctrlptWeight = ctrlptWs.value[0];
160740 var multi = edgeIsUnbundled;
160741 rs.edgeType = multi ? "multibezier" : "bezier";
160742 rs.ctrlpts = [];
160743 for (var b = 0; b < bezierN; b++) {
160744 var normctrlptDist = (0.5 - pairInfo.eles.length / 2 + i3) * stepSize * (edgeIsSwapped ? -1 : 1);
160745 var manctrlptDist = void 0;
160746 var sign2 = signum(normctrlptDist);
160747 if (multi) {
160748 ctrlptDist = ctrlptDists ? ctrlptDists.pfValue[b] : stepSize;
160749 ctrlptWeight = ctrlptWs.value[b];
160750 }
160751 if (edgeIsUnbundled) {
160752 manctrlptDist = ctrlptDist;
160753 } else {
160754 manctrlptDist = ctrlptDist !== void 0 ? sign2 * ctrlptDist : void 0;
160755 }
160756 var distanceFromMidpoint = manctrlptDist !== void 0 ? manctrlptDist : normctrlptDist;
160757 var w1 = 1 - ctrlptWeight;
160758 var w2 = ctrlptWeight;
160759 var midptPts = edgeDistances === "node-position" ? posPts : intersectionPts;
160760 var adjustedMidpt = {
160761 x: midptPts.x1 * w1 + midptPts.x2 * w2,
160762 y: midptPts.y1 * w1 + midptPts.y2 * w2
160763 };
160764 rs.ctrlpts.push(adjustedMidpt.x + vectorNormInverse.x * distanceFromMidpoint, adjustedMidpt.y + vectorNormInverse.y * distanceFromMidpoint);
160765 }
160766 };
160767 BRp$c.findTaxiPoints = function(edge, pairInfo) {
160768 var rs = edge._private.rscratch;
160769 rs.edgeType = "segments";
160770 var VERTICAL = "vertical";
160771 var HORIZONTAL = "horizontal";
160772 var LEFTWARD = "leftward";
160773 var RIGHTWARD = "rightward";
160774 var DOWNWARD = "downward";
160775 var UPWARD = "upward";
160776 var AUTO = "auto";
160777 var posPts = pairInfo.posPts, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH;
160778 var edgeDistances = edge.pstyle("edge-distances").value;
160779 var dIncludesNodeBody = edgeDistances !== "node-position";
160780 var taxiDir = edge.pstyle("taxi-direction").value;
160781 var rawTaxiDir = taxiDir;
160782 var taxiTurn = edge.pstyle("taxi-turn");
160783 var turnIsPercent = taxiTurn.units === "%";
160784 var taxiTurnPfVal = taxiTurn.pfValue;
160785 var turnIsNegative = taxiTurnPfVal < 0;
160786 var minD = edge.pstyle("taxi-turn-min-distance").pfValue;
160787 var dw = dIncludesNodeBody ? (srcW + tgtW) / 2 : 0;
160788 var dh = dIncludesNodeBody ? (srcH + tgtH) / 2 : 0;
160789 var pdx = posPts.x2 - posPts.x1;
160790 var pdy = posPts.y2 - posPts.y1;
160791 var subDWH = function subDWH2(dxy, dwh) {
160792 if (dxy > 0) {
160793 return Math.max(dxy - dwh, 0);
160794 } else {
160795 return Math.min(dxy + dwh, 0);
160796 }
160797 };
160798 var dx = subDWH(pdx, dw);
160799 var dy = subDWH(pdy, dh);
160800 var isExplicitDir = false;
160801 if (rawTaxiDir === AUTO) {
160802 taxiDir = Math.abs(dx) > Math.abs(dy) ? HORIZONTAL : VERTICAL;
160803 } else if (rawTaxiDir === UPWARD || rawTaxiDir === DOWNWARD) {
160804 taxiDir = VERTICAL;
160805 isExplicitDir = true;
160806 } else if (rawTaxiDir === LEFTWARD || rawTaxiDir === RIGHTWARD) {
160807 taxiDir = HORIZONTAL;
160808 isExplicitDir = true;
160809 }
160810 var isVert = taxiDir === VERTICAL;
160811 var l = isVert ? dy : dx;
160812 var pl = isVert ? pdy : pdx;
160813 var sgnL = signum(pl);
160814 var forcedDir = false;
160815 if (!(isExplicitDir && (turnIsPercent || turnIsNegative)) && (rawTaxiDir === DOWNWARD && pl < 0 || rawTaxiDir === UPWARD && pl > 0 || rawTaxiDir === LEFTWARD && pl > 0 || rawTaxiDir === RIGHTWARD && pl < 0)) {
160816 sgnL *= -1;
160817 l = sgnL * Math.abs(l);
160818 forcedDir = true;
160819 }
160820 var d;
160821 if (turnIsPercent) {
160822 var p2 = taxiTurnPfVal < 0 ? 1 + taxiTurnPfVal : taxiTurnPfVal;
160823 d = p2 * l;
160824 } else {
160825 var k = taxiTurnPfVal < 0 ? l : 0;
160826 d = k + taxiTurnPfVal * sgnL;
160827 }
160828 var getIsTooClose = function getIsTooClose2(d2) {
160829 return Math.abs(d2) < minD || Math.abs(d2) >= Math.abs(l);
160830 };
160831 var isTooCloseSrc = getIsTooClose(d);
160832 var isTooCloseTgt = getIsTooClose(Math.abs(l) - Math.abs(d));
160833 var isTooClose = isTooCloseSrc || isTooCloseTgt;
160834 if (isTooClose && !forcedDir) {
160835 if (isVert) {
160836 var lShapeInsideSrc = Math.abs(pl) <= srcH / 2;
160837 var lShapeInsideTgt = Math.abs(pdx) <= tgtW / 2;
160838 if (lShapeInsideSrc) {
160839 var x2 = (posPts.x1 + posPts.x2) / 2;
160840 var y1 = posPts.y1, y2 = posPts.y2;
160841 rs.segpts = [x2, y1, x2, y2];
160842 } else if (lShapeInsideTgt) {
160843 var y3 = (posPts.y1 + posPts.y2) / 2;
160844 var x1 = posPts.x1, x22 = posPts.x2;
160845 rs.segpts = [x1, y3, x22, y3];
160846 } else {
160847 rs.segpts = [posPts.x1, posPts.y2];
160848 }
160849 } else {
160850 var _lShapeInsideSrc = Math.abs(pl) <= srcW / 2;
160851 var _lShapeInsideTgt = Math.abs(pdy) <= tgtH / 2;
160852 if (_lShapeInsideSrc) {
160853 var _y = (posPts.y1 + posPts.y2) / 2;
160854 var _x = posPts.x1, _x2 = posPts.x2;
160855 rs.segpts = [_x, _y, _x2, _y];
160856 } else if (_lShapeInsideTgt) {
160857 var _x3 = (posPts.x1 + posPts.x2) / 2;
160858 var _y2 = posPts.y1, _y3 = posPts.y2;
160859 rs.segpts = [_x3, _y2, _x3, _y3];
160860 } else {
160861 rs.segpts = [posPts.x2, posPts.y1];
160862 }
160863 }
160864 } else {
160865 if (isVert) {
160866 var _y4 = posPts.y1 + d + (dIncludesNodeBody ? srcH / 2 * sgnL : 0);
160867 var _x4 = posPts.x1, _x5 = posPts.x2;
160868 rs.segpts = [_x4, _y4, _x5, _y4];
160869 } else {
160870 var _x6 = posPts.x1 + d + (dIncludesNodeBody ? srcW / 2 * sgnL : 0);
160871 var _y5 = posPts.y1, _y6 = posPts.y2;
160872 rs.segpts = [_x6, _y5, _x6, _y6];
160873 }
160874 }
160875 };
160876 BRp$c.tryToCorrectInvalidPoints = function(edge, pairInfo) {
160877 var rs = edge._private.rscratch;
160878 if (rs.edgeType === "bezier") {
160879 var srcPos = pairInfo.srcPos, tgtPos = pairInfo.tgtPos, srcW = pairInfo.srcW, srcH = pairInfo.srcH, tgtW = pairInfo.tgtW, tgtH = pairInfo.tgtH, srcShape = pairInfo.srcShape, tgtShape = pairInfo.tgtShape;
160880 var badStart = !number$12(rs.startX) || !number$12(rs.startY);
160881 var badAStart = !number$12(rs.arrowStartX) || !number$12(rs.arrowStartY);
160882 var badEnd = !number$12(rs.endX) || !number$12(rs.endY);
160883 var badAEnd = !number$12(rs.arrowEndX) || !number$12(rs.arrowEndY);
160884 var minCpADistFactor = 3;
160885 var arrowW = this.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.arrowShapeWidth;
160886 var minCpADist = minCpADistFactor * arrowW;
160887 var startACpDist = dist2({
160888 x: rs.ctrlpts[0],
160889 y: rs.ctrlpts[1]
160890 }, {
160891 x: rs.startX,
160892 y: rs.startY
160893 });
160894 var closeStartACp = startACpDist < minCpADist;
160895 var endACpDist = dist2({
160896 x: rs.ctrlpts[0],
160897 y: rs.ctrlpts[1]
160898 }, {
160899 x: rs.endX,
160900 y: rs.endY
160901 });
160902 var closeEndACp = endACpDist < minCpADist;
160903 var overlapping = false;
160904 if (badStart || badAStart || closeStartACp) {
160905 overlapping = true;
160906 var cpD = {
160907 // delta
160908 x: rs.ctrlpts[0] - srcPos.x,
160909 y: rs.ctrlpts[1] - srcPos.y
160910 };
160911 var cpL = Math.sqrt(cpD.x * cpD.x + cpD.y * cpD.y);
160912 var cpM = {
160913 // normalised delta
160914 x: cpD.x / cpL,
160915 y: cpD.y / cpL
160916 };
160917 var radius = Math.max(srcW, srcH);
160918 var cpProj = {
160919 // *2 radius guarantees outside shape
160920 x: rs.ctrlpts[0] + cpM.x * 2 * radius,
160921 y: rs.ctrlpts[1] + cpM.y * 2 * radius
160922 };
160923 var srcCtrlPtIntn = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, cpProj.x, cpProj.y, 0);
160924 if (closeStartACp) {
160925 rs.ctrlpts[0] = rs.ctrlpts[0] + cpM.x * (minCpADist - startACpDist);
160926 rs.ctrlpts[1] = rs.ctrlpts[1] + cpM.y * (minCpADist - startACpDist);
160927 } else {
160928 rs.ctrlpts[0] = srcCtrlPtIntn[0] + cpM.x * minCpADist;
160929 rs.ctrlpts[1] = srcCtrlPtIntn[1] + cpM.y * minCpADist;
160930 }
160931 }
160932 if (badEnd || badAEnd || closeEndACp) {
160933 overlapping = true;
160934 var _cpD = {
160935 // delta
160936 x: rs.ctrlpts[0] - tgtPos.x,
160937 y: rs.ctrlpts[1] - tgtPos.y
160938 };
160939 var _cpL = Math.sqrt(_cpD.x * _cpD.x + _cpD.y * _cpD.y);
160940 var _cpM = {
160941 // normalised delta
160942 x: _cpD.x / _cpL,
160943 y: _cpD.y / _cpL
160944 };
160945 var _radius = Math.max(srcW, srcH);
160946 var _cpProj = {
160947 // *2 radius guarantees outside shape
160948 x: rs.ctrlpts[0] + _cpM.x * 2 * _radius,
160949 y: rs.ctrlpts[1] + _cpM.y * 2 * _radius
160950 };
160951 var tgtCtrlPtIntn = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, _cpProj.x, _cpProj.y, 0);
160952 if (closeEndACp) {
160953 rs.ctrlpts[0] = rs.ctrlpts[0] + _cpM.x * (minCpADist - endACpDist);
160954 rs.ctrlpts[1] = rs.ctrlpts[1] + _cpM.y * (minCpADist - endACpDist);
160955 } else {
160956 rs.ctrlpts[0] = tgtCtrlPtIntn[0] + _cpM.x * minCpADist;
160957 rs.ctrlpts[1] = tgtCtrlPtIntn[1] + _cpM.y * minCpADist;
160958 }
160959 }
160960 if (overlapping) {
160961 this.findEndpoints(edge);
160962 }
160963 }
160964 };
160965 BRp$c.storeAllpts = function(edge) {
160966 var rs = edge._private.rscratch;
160967 if (rs.edgeType === "multibezier" || rs.edgeType === "bezier" || rs.edgeType === "self" || rs.edgeType === "compound") {
160968 rs.allpts = [];
160969 rs.allpts.push(rs.startX, rs.startY);
160970 for (var b = 0; b + 1 < rs.ctrlpts.length; b += 2) {
160971 rs.allpts.push(rs.ctrlpts[b], rs.ctrlpts[b + 1]);
160972 if (b + 3 < rs.ctrlpts.length) {
160973 rs.allpts.push((rs.ctrlpts[b] + rs.ctrlpts[b + 2]) / 2, (rs.ctrlpts[b + 1] + rs.ctrlpts[b + 3]) / 2);
160974 }
160975 }
160976 rs.allpts.push(rs.endX, rs.endY);
160977 var m, mt;
160978 if (rs.ctrlpts.length / 2 % 2 === 0) {
160979 m = rs.allpts.length / 2 - 1;
160980 rs.midX = rs.allpts[m];
160981 rs.midY = rs.allpts[m + 1];
160982 } else {
160983 m = rs.allpts.length / 2 - 3;
160984 mt = 0.5;
160985 rs.midX = qbezierAt(rs.allpts[m], rs.allpts[m + 2], rs.allpts[m + 4], mt);
160986 rs.midY = qbezierAt(rs.allpts[m + 1], rs.allpts[m + 3], rs.allpts[m + 5], mt);
160987 }
160988 } else if (rs.edgeType === "straight") {
160989 rs.allpts = [rs.startX, rs.startY, rs.endX, rs.endY];
160990 rs.midX = (rs.startX + rs.endX + rs.arrowStartX + rs.arrowEndX) / 4;
160991 rs.midY = (rs.startY + rs.endY + rs.arrowStartY + rs.arrowEndY) / 4;
160992 } else if (rs.edgeType === "segments") {
160993 rs.allpts = [];
160994 rs.allpts.push(rs.startX, rs.startY);
160995 rs.allpts.push.apply(rs.allpts, rs.segpts);
160996 rs.allpts.push(rs.endX, rs.endY);
160997 if (rs.segpts.length % 4 === 0) {
160998 var i22 = rs.segpts.length / 2;
160999 var i1 = i22 - 2;
161000 rs.midX = (rs.segpts[i1] + rs.segpts[i22]) / 2;
161001 rs.midY = (rs.segpts[i1 + 1] + rs.segpts[i22 + 1]) / 2;
161002 } else {
161003 var _i = rs.segpts.length / 2 - 1;
161004 rs.midX = rs.segpts[_i];
161005 rs.midY = rs.segpts[_i + 1];
161006 }
161007 }
161008 };
161009 BRp$c.checkForInvalidEdgeWarning = function(edge) {
161010 var rs = edge[0]._private.rscratch;
161011 if (rs.nodesOverlap || number$12(rs.startX) && number$12(rs.startY) && number$12(rs.endX) && number$12(rs.endY)) {
161012 rs.loggedErr = false;
161013 } else {
161014 if (!rs.loggedErr) {
161015 rs.loggedErr = true;
161016 warn("Edge `" + edge.id() + "` has invalid endpoints and so it is impossible to draw. Adjust your edge style (e.g. control points) accordingly or use an alternative edge type. This is expected behaviour when the source node and the target node overlap.");
161017 }
161018 }
161019 };
161020 BRp$c.findEdgeControlPoints = function(edges2) {
161021 var _this = this;
161022 if (!edges2 || edges2.length === 0) {
161023 return;
161024 }
161025 var r = this;
161026 var cy = r.cy;
161027 var hasCompounds = cy.hasCompoundNodes();
161028 var hashTable = {
161029 map: new Map$22(),
161030 get: function get3(pairId2) {
161031 var map2 = this.map.get(pairId2[0]);
161032 if (map2 != null) {
161033 return map2.get(pairId2[1]);
161034 } else {
161035 return null;
161036 }
161037 },
161038 set: function set3(pairId2, val) {
161039 var map2 = this.map.get(pairId2[0]);
161040 if (map2 == null) {
161041 map2 = new Map$22();
161042 this.map.set(pairId2[0], map2);
161043 }
161044 map2.set(pairId2[1], val);
161045 }
161046 };
161047 var pairIds = [];
161048 var haystackEdges = [];
161049 for (var i3 = 0; i3 < edges2.length; i3++) {
161050 var edge = edges2[i3];
161051 var _p = edge._private;
161052 var curveStyle = edge.pstyle("curve-style").value;
161053 if (edge.removed() || !edge.takesUpSpace()) {
161054 continue;
161055 }
161056 if (curveStyle === "haystack") {
161057 haystackEdges.push(edge);
161058 continue;
161059 }
161060 var edgeIsUnbundled = curveStyle === "unbundled-bezier" || curveStyle === "segments" || curveStyle === "straight" || curveStyle === "straight-triangle" || curveStyle === "taxi";
161061 var edgeIsBezier = curveStyle === "unbundled-bezier" || curveStyle === "bezier";
161062 var src = _p.source;
161063 var tgt = _p.target;
161064 var srcIndex = src.poolIndex();
161065 var tgtIndex = tgt.poolIndex();
161066 var pairId = [srcIndex, tgtIndex].sort();
161067 var tableEntry = hashTable.get(pairId);
161068 if (tableEntry == null) {
161069 tableEntry = {
161070 eles: []
161071 };
161072 hashTable.set(pairId, tableEntry);
161073 pairIds.push(pairId);
161074 }
161075 tableEntry.eles.push(edge);
161076 if (edgeIsUnbundled) {
161077 tableEntry.hasUnbundled = true;
161078 }
161079 if (edgeIsBezier) {
161080 tableEntry.hasBezier = true;
161081 }
161082 }
161083 var _loop = function _loop2(p3) {
161084 var pairId2 = pairIds[p3];
161085 var pairInfo = hashTable.get(pairId2);
161086 var swappedpairInfo = void 0;
161087 if (!pairInfo.hasUnbundled) {
161088 var pllEdges = pairInfo.eles[0].parallelEdges().filter(function(e) {
161089 return e.isBundledBezier();
161090 });
161091 clearArray(pairInfo.eles);
161092 pllEdges.forEach(function(edge2) {
161093 return pairInfo.eles.push(edge2);
161094 });
161095 pairInfo.eles.sort(function(edge1, edge2) {
161096 return edge1.poolIndex() - edge2.poolIndex();
161097 });
161098 }
161099 var firstEdge = pairInfo.eles[0];
161100 var src2 = firstEdge.source();
161101 var tgt2 = firstEdge.target();
161102 if (src2.poolIndex() > tgt2.poolIndex()) {
161103 var temp = src2;
161104 src2 = tgt2;
161105 tgt2 = temp;
161106 }
161107 var srcPos = pairInfo.srcPos = src2.position();
161108 var tgtPos = pairInfo.tgtPos = tgt2.position();
161109 var srcW = pairInfo.srcW = src2.outerWidth();
161110 var srcH = pairInfo.srcH = src2.outerHeight();
161111 var tgtW = pairInfo.tgtW = tgt2.outerWidth();
161112 var tgtH = pairInfo.tgtH = tgt2.outerHeight();
161113 var srcShape = pairInfo.srcShape = r.nodeShapes[_this.getNodeShape(src2)];
161114 var tgtShape = pairInfo.tgtShape = r.nodeShapes[_this.getNodeShape(tgt2)];
161115 pairInfo.dirCounts = {
161116 "north": 0,
161117 "west": 0,
161118 "south": 0,
161119 "east": 0,
161120 "northwest": 0,
161121 "southwest": 0,
161122 "northeast": 0,
161123 "southeast": 0
161124 };
161125 for (var _i2 = 0; _i2 < pairInfo.eles.length; _i2++) {
161126 var _edge = pairInfo.eles[_i2];
161127 var rs = _edge[0]._private.rscratch;
161128 var _curveStyle = _edge.pstyle("curve-style").value;
161129 var _edgeIsUnbundled = _curveStyle === "unbundled-bezier" || _curveStyle === "segments" || _curveStyle === "taxi";
161130 var edgeIsSwapped = !src2.same(_edge.source());
161131 if (!pairInfo.calculatedIntersection && src2 !== tgt2 && (pairInfo.hasBezier || pairInfo.hasUnbundled)) {
161132 pairInfo.calculatedIntersection = true;
161133 var srcOutside = srcShape.intersectLine(srcPos.x, srcPos.y, srcW, srcH, tgtPos.x, tgtPos.y, 0);
161134 var srcIntn = pairInfo.srcIntn = srcOutside;
161135 var tgtOutside = tgtShape.intersectLine(tgtPos.x, tgtPos.y, tgtW, tgtH, srcPos.x, srcPos.y, 0);
161136 var tgtIntn = pairInfo.tgtIntn = tgtOutside;
161137 var intersectionPts = pairInfo.intersectionPts = {
161138 x1: srcOutside[0],
161139 x2: tgtOutside[0],
161140 y1: srcOutside[1],
161141 y2: tgtOutside[1]
161142 };
161143 var posPts = pairInfo.posPts = {
161144 x1: srcPos.x,
161145 x2: tgtPos.x,
161146 y1: srcPos.y,
161147 y2: tgtPos.y
161148 };
161149 var dy = tgtOutside[1] - srcOutside[1];
161150 var dx = tgtOutside[0] - srcOutside[0];
161151 var l = Math.sqrt(dx * dx + dy * dy);
161152 var vector = pairInfo.vector = {
161153 x: dx,
161154 y: dy
161155 };
161156 var vectorNorm = pairInfo.vectorNorm = {
161157 x: vector.x / l,
161158 y: vector.y / l
161159 };
161160 var vectorNormInverse = {
161161 x: -vectorNorm.y,
161162 y: vectorNorm.x
161163 };
161164 pairInfo.nodesOverlap = !number$12(l) || tgtShape.checkPoint(srcOutside[0], srcOutside[1], 0, tgtW, tgtH, tgtPos.x, tgtPos.y) || srcShape.checkPoint(tgtOutside[0], tgtOutside[1], 0, srcW, srcH, srcPos.x, srcPos.y);
161165 pairInfo.vectorNormInverse = vectorNormInverse;
161166 swappedpairInfo = {
161167 nodesOverlap: pairInfo.nodesOverlap,
161168 dirCounts: pairInfo.dirCounts,
161169 calculatedIntersection: true,
161170 hasBezier: pairInfo.hasBezier,
161171 hasUnbundled: pairInfo.hasUnbundled,
161172 eles: pairInfo.eles,
161173 srcPos: tgtPos,
161174 tgtPos: srcPos,
161175 srcW: tgtW,
161176 srcH: tgtH,
161177 tgtW: srcW,
161178 tgtH: srcH,
161179 srcIntn: tgtIntn,
161180 tgtIntn: srcIntn,
161181 srcShape: tgtShape,
161182 tgtShape: srcShape,
161183 posPts: {
161184 x1: posPts.x2,
161185 y1: posPts.y2,
161186 x2: posPts.x1,
161187 y2: posPts.y1
161188 },
161189 intersectionPts: {
161190 x1: intersectionPts.x2,
161191 y1: intersectionPts.y2,
161192 x2: intersectionPts.x1,
161193 y2: intersectionPts.y1
161194 },
161195 vector: {
161196 x: -vector.x,
161197 y: -vector.y
161198 },
161199 vectorNorm: {
161200 x: -vectorNorm.x,
161201 y: -vectorNorm.y
161202 },
161203 vectorNormInverse: {
161204 x: -vectorNormInverse.x,
161205 y: -vectorNormInverse.y
161206 }
161207 };
161208 }
161209 var passedPairInfo = edgeIsSwapped ? swappedpairInfo : pairInfo;
161210 rs.nodesOverlap = passedPairInfo.nodesOverlap;
161211 rs.srcIntn = passedPairInfo.srcIntn;
161212 rs.tgtIntn = passedPairInfo.tgtIntn;
161213 if (hasCompounds && (src2.isParent() || src2.isChild() || tgt2.isParent() || tgt2.isChild()) && (src2.parents().anySame(tgt2) || tgt2.parents().anySame(src2) || src2.same(tgt2) && src2.isParent())) {
161214 _this.findCompoundLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);
161215 } else if (src2 === tgt2) {
161216 _this.findLoopPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled);
161217 } else if (_curveStyle === "segments") {
161218 _this.findSegmentsPoints(_edge, passedPairInfo);
161219 } else if (_curveStyle === "taxi") {
161220 _this.findTaxiPoints(_edge, passedPairInfo);
161221 } else if (_curveStyle === "straight" || !_edgeIsUnbundled && pairInfo.eles.length % 2 === 1 && _i2 === Math.floor(pairInfo.eles.length / 2)) {
161222 _this.findStraightEdgePoints(_edge);
161223 } else {
161224 _this.findBezierPoints(_edge, passedPairInfo, _i2, _edgeIsUnbundled, edgeIsSwapped);
161225 }
161226 _this.findEndpoints(_edge);
161227 _this.tryToCorrectInvalidPoints(_edge, passedPairInfo);
161228 _this.checkForInvalidEdgeWarning(_edge);
161229 _this.storeAllpts(_edge);
161230 _this.storeEdgeProjections(_edge);
161231 _this.calculateArrowAngles(_edge);
161232 _this.recalculateEdgeLabelProjections(_edge);
161233 _this.calculateLabelAngles(_edge);
161234 }
161235 };
161236 for (var p2 = 0; p2 < pairIds.length; p2++) {
161237 _loop(p2);
161238 }
161239 this.findHaystackPoints(haystackEdges);
161240 };
161241 function getPts(pts2) {
161242 var retPts = [];
161243 if (pts2 == null) {
161244 return;
161245 }
161246 for (var i3 = 0; i3 < pts2.length; i3 += 2) {
161247 var x2 = pts2[i3];
161248 var y2 = pts2[i3 + 1];
161249 retPts.push({
161250 x: x2,
161251 y: y2
161252 });
161253 }
161254 return retPts;
161255 }
161256 BRp$c.getSegmentPoints = function(edge) {
161257 var rs = edge[0]._private.rscratch;
161258 var type2 = rs.edgeType;
161259 if (type2 === "segments") {
161260 this.recalculateRenderedStyle(edge);
161261 return getPts(rs.segpts);
161262 }
161263 };
161264 BRp$c.getControlPoints = function(edge) {
161265 var rs = edge[0]._private.rscratch;
161266 var type2 = rs.edgeType;
161267 if (type2 === "bezier" || type2 === "multibezier" || type2 === "self" || type2 === "compound") {
161268 this.recalculateRenderedStyle(edge);
161269 return getPts(rs.ctrlpts);
161270 }
161271 };
161272 BRp$c.getEdgeMidpoint = function(edge) {
161273 var rs = edge[0]._private.rscratch;
161274 this.recalculateRenderedStyle(edge);
161275 return {
161276 x: rs.midX,
161277 y: rs.midY
161278 };
161279 };
161280 var BRp$b = {};
161281 BRp$b.manualEndptToPx = function(node2, prop) {
161282 var r = this;
161283 var npos = node2.position();
161284 var w2 = node2.outerWidth();
161285 var h = node2.outerHeight();
161286 if (prop.value.length === 2) {
161287 var p2 = [prop.pfValue[0], prop.pfValue[1]];
161288 if (prop.units[0] === "%") {
161289 p2[0] = p2[0] * w2;
161290 }
161291 if (prop.units[1] === "%") {
161292 p2[1] = p2[1] * h;
161293 }
161294 p2[0] += npos.x;
161295 p2[1] += npos.y;
161296 return p2;
161297 } else {
161298 var angle = prop.pfValue[0];
161299 angle = -Math.PI / 2 + angle;
161300 var l = 2 * Math.max(w2, h);
161301 var _p = [npos.x + Math.cos(angle) * l, npos.y + Math.sin(angle) * l];
161302 return r.nodeShapes[this.getNodeShape(node2)].intersectLine(npos.x, npos.y, w2, h, _p[0], _p[1], 0);
161303 }
161304 };
161305 BRp$b.findEndpoints = function(edge) {
161306 var r = this;
161307 var intersect2;
161308 var source = edge.source()[0];
161309 var target = edge.target()[0];
161310 var srcPos = source.position();
161311 var tgtPos = target.position();
161312 var tgtArShape = edge.pstyle("target-arrow-shape").value;
161313 var srcArShape = edge.pstyle("source-arrow-shape").value;
161314 var tgtDist = edge.pstyle("target-distance-from-node").pfValue;
161315 var srcDist = edge.pstyle("source-distance-from-node").pfValue;
161316 var curveStyle = edge.pstyle("curve-style").value;
161317 var rs = edge._private.rscratch;
161318 var et = rs.edgeType;
161319 var taxi = curveStyle === "taxi";
161320 var self2 = et === "self" || et === "compound";
161321 var bezier = et === "bezier" || et === "multibezier" || self2;
161322 var multi = et !== "bezier";
161323 var lines = et === "straight" || et === "segments";
161324 var segments = et === "segments";
161325 var hasEndpts = bezier || multi || lines;
161326 var overrideEndpts = self2 || taxi;
161327 var srcManEndpt = edge.pstyle("source-endpoint");
161328 var srcManEndptVal = overrideEndpts ? "outside-to-node" : srcManEndpt.value;
161329 var tgtManEndpt = edge.pstyle("target-endpoint");
161330 var tgtManEndptVal = overrideEndpts ? "outside-to-node" : tgtManEndpt.value;
161331 rs.srcManEndpt = srcManEndpt;
161332 rs.tgtManEndpt = tgtManEndpt;
161333 var p1;
161334 var p2;
161335 var p1_i;
161336 var p2_i;
161337 if (bezier) {
161338 var cpStart = [rs.ctrlpts[0], rs.ctrlpts[1]];
161339 var cpEnd = multi ? [rs.ctrlpts[rs.ctrlpts.length - 2], rs.ctrlpts[rs.ctrlpts.length - 1]] : cpStart;
161340 p1 = cpEnd;
161341 p2 = cpStart;
161342 } else if (lines) {
161343 var srcArrowFromPt = !segments ? [tgtPos.x, tgtPos.y] : rs.segpts.slice(0, 2);
161344 var tgtArrowFromPt = !segments ? [srcPos.x, srcPos.y] : rs.segpts.slice(rs.segpts.length - 2);
161345 p1 = tgtArrowFromPt;
161346 p2 = srcArrowFromPt;
161347 }
161348 if (tgtManEndptVal === "inside-to-node") {
161349 intersect2 = [tgtPos.x, tgtPos.y];
161350 } else if (tgtManEndpt.units) {
161351 intersect2 = this.manualEndptToPx(target, tgtManEndpt);
161352 } else if (tgtManEndptVal === "outside-to-line") {
161353 intersect2 = rs.tgtIntn;
161354 } else {
161355 if (tgtManEndptVal === "outside-to-node" || tgtManEndptVal === "outside-to-node-or-label") {
161356 p1_i = p1;
161357 } else if (tgtManEndptVal === "outside-to-line" || tgtManEndptVal === "outside-to-line-or-label") {
161358 p1_i = [srcPos.x, srcPos.y];
161359 }
161360 intersect2 = r.nodeShapes[this.getNodeShape(target)].intersectLine(tgtPos.x, tgtPos.y, target.outerWidth(), target.outerHeight(), p1_i[0], p1_i[1], 0);
161361 if (tgtManEndptVal === "outside-to-node-or-label" || tgtManEndptVal === "outside-to-line-or-label") {
161362 var trs = target._private.rscratch;
161363 var lw = trs.labelWidth;
161364 var lh = trs.labelHeight;
161365 var lx = trs.labelX;
161366 var ly = trs.labelY;
161367 var lw2 = lw / 2;
161368 var lh2 = lh / 2;
161369 var va = target.pstyle("text-valign").value;
161370 if (va === "top") {
161371 ly -= lh2;
161372 } else if (va === "bottom") {
161373 ly += lh2;
161374 }
161375 var ha = target.pstyle("text-halign").value;
161376 if (ha === "left") {
161377 lx -= lw2;
161378 } else if (ha === "right") {
161379 lx += lw2;
161380 }
161381 var labelIntersect = polygonIntersectLine(p1_i[0], p1_i[1], [lx - lw2, ly - lh2, lx + lw2, ly - lh2, lx + lw2, ly + lh2, lx - lw2, ly + lh2], tgtPos.x, tgtPos.y);
161382 if (labelIntersect.length > 0) {
161383 var refPt = srcPos;
161384 var intSqdist = sqdist(refPt, array2point(intersect2));
161385 var labIntSqdist = sqdist(refPt, array2point(labelIntersect));
161386 var minSqDist = intSqdist;
161387 if (labIntSqdist < intSqdist) {
161388 intersect2 = labelIntersect;
161389 minSqDist = labIntSqdist;
161390 }
161391 if (labelIntersect.length > 2) {
161392 var labInt2SqDist = sqdist(refPt, {
161393 x: labelIntersect[2],
161394 y: labelIntersect[3]
161395 });
161396 if (labInt2SqDist < minSqDist) {
161397 intersect2 = [labelIntersect[2], labelIntersect[3]];
161398 }
161399 }
161400 }
161401 }
161402 }
161403 var arrowEnd = shortenIntersection(intersect2, p1, r.arrowShapes[tgtArShape].spacing(edge) + tgtDist);
161404 var edgeEnd = shortenIntersection(intersect2, p1, r.arrowShapes[tgtArShape].gap(edge) + tgtDist);
161405 rs.endX = edgeEnd[0];
161406 rs.endY = edgeEnd[1];
161407 rs.arrowEndX = arrowEnd[0];
161408 rs.arrowEndY = arrowEnd[1];
161409 if (srcManEndptVal === "inside-to-node") {
161410 intersect2 = [srcPos.x, srcPos.y];
161411 } else if (srcManEndpt.units) {
161412 intersect2 = this.manualEndptToPx(source, srcManEndpt);
161413 } else if (srcManEndptVal === "outside-to-line") {
161414 intersect2 = rs.srcIntn;
161415 } else {
161416 if (srcManEndptVal === "outside-to-node" || srcManEndptVal === "outside-to-node-or-label") {
161417 p2_i = p2;
161418 } else if (srcManEndptVal === "outside-to-line" || srcManEndptVal === "outside-to-line-or-label") {
161419 p2_i = [tgtPos.x, tgtPos.y];
161420 }
161421 intersect2 = r.nodeShapes[this.getNodeShape(source)].intersectLine(srcPos.x, srcPos.y, source.outerWidth(), source.outerHeight(), p2_i[0], p2_i[1], 0);
161422 if (srcManEndptVal === "outside-to-node-or-label" || srcManEndptVal === "outside-to-line-or-label") {
161423 var srs = source._private.rscratch;
161424 var _lw = srs.labelWidth;
161425 var _lh = srs.labelHeight;
161426 var _lx = srs.labelX;
161427 var _ly = srs.labelY;
161428 var _lw2 = _lw / 2;
161429 var _lh2 = _lh / 2;
161430 var _va = source.pstyle("text-valign").value;
161431 if (_va === "top") {
161432 _ly -= _lh2;
161433 } else if (_va === "bottom") {
161434 _ly += _lh2;
161435 }
161436 var _ha = source.pstyle("text-halign").value;
161437 if (_ha === "left") {
161438 _lx -= _lw2;
161439 } else if (_ha === "right") {
161440 _lx += _lw2;
161441 }
161442 var _labelIntersect = polygonIntersectLine(p2_i[0], p2_i[1], [_lx - _lw2, _ly - _lh2, _lx + _lw2, _ly - _lh2, _lx + _lw2, _ly + _lh2, _lx - _lw2, _ly + _lh2], srcPos.x, srcPos.y);
161443 if (_labelIntersect.length > 0) {
161444 var _refPt = tgtPos;
161445 var _intSqdist = sqdist(_refPt, array2point(intersect2));
161446 var _labIntSqdist = sqdist(_refPt, array2point(_labelIntersect));
161447 var _minSqDist = _intSqdist;
161448 if (_labIntSqdist < _intSqdist) {
161449 intersect2 = [_labelIntersect[0], _labelIntersect[1]];
161450 _minSqDist = _labIntSqdist;
161451 }
161452 if (_labelIntersect.length > 2) {
161453 var _labInt2SqDist = sqdist(_refPt, {
161454 x: _labelIntersect[2],
161455 y: _labelIntersect[3]
161456 });
161457 if (_labInt2SqDist < _minSqDist) {
161458 intersect2 = [_labelIntersect[2], _labelIntersect[3]];
161459 }
161460 }
161461 }
161462 }
161463 }
161464 var arrowStart = shortenIntersection(intersect2, p2, r.arrowShapes[srcArShape].spacing(edge) + srcDist);
161465 var edgeStart = shortenIntersection(intersect2, p2, r.arrowShapes[srcArShape].gap(edge) + srcDist);
161466 rs.startX = edgeStart[0];
161467 rs.startY = edgeStart[1];
161468 rs.arrowStartX = arrowStart[0];
161469 rs.arrowStartY = arrowStart[1];
161470 if (hasEndpts) {
161471 if (!number$12(rs.startX) || !number$12(rs.startY) || !number$12(rs.endX) || !number$12(rs.endY)) {
161472 rs.badLine = true;
161473 } else {
161474 rs.badLine = false;
161475 }
161476 }
161477 };
161478 BRp$b.getSourceEndpoint = function(edge) {
161479 var rs = edge[0]._private.rscratch;
161480 this.recalculateRenderedStyle(edge);
161481 switch (rs.edgeType) {
161482 case "haystack":
161483 return {
161484 x: rs.haystackPts[0],
161485 y: rs.haystackPts[1]
161486 };
161487 default:
161488 return {
161489 x: rs.arrowStartX,
161490 y: rs.arrowStartY
161491 };
161492 }
161493 };
161494 BRp$b.getTargetEndpoint = function(edge) {
161495 var rs = edge[0]._private.rscratch;
161496 this.recalculateRenderedStyle(edge);
161497 switch (rs.edgeType) {
161498 case "haystack":
161499 return {
161500 x: rs.haystackPts[2],
161501 y: rs.haystackPts[3]
161502 };
161503 default:
161504 return {
161505 x: rs.arrowEndX,
161506 y: rs.arrowEndY
161507 };
161508 }
161509 };
161510 var BRp$a = {};
161511 function pushBezierPts(r, edge, pts2) {
161512 var qbezierAt$1 = function qbezierAt$12(p1, p22, p3, t4) {
161513 return qbezierAt(p1, p22, p3, t4);
161514 };
161515 var _p = edge._private;
161516 var bpts = _p.rstyle.bezierPts;
161517 for (var i3 = 0; i3 < r.bezierProjPcts.length; i3++) {
161518 var p2 = r.bezierProjPcts[i3];
161519 bpts.push({
161520 x: qbezierAt$1(pts2[0], pts2[2], pts2[4], p2),
161521 y: qbezierAt$1(pts2[1], pts2[3], pts2[5], p2)
161522 });
161523 }
161524 }
161525 BRp$a.storeEdgeProjections = function(edge) {
161526 var _p = edge._private;
161527 var rs = _p.rscratch;
161528 var et = rs.edgeType;
161529 _p.rstyle.bezierPts = null;
161530 _p.rstyle.linePts = null;
161531 _p.rstyle.haystackPts = null;
161532 if (et === "multibezier" || et === "bezier" || et === "self" || et === "compound") {
161533 _p.rstyle.bezierPts = [];
161534 for (var i3 = 0; i3 + 5 < rs.allpts.length; i3 += 4) {
161535 pushBezierPts(this, edge, rs.allpts.slice(i3, i3 + 6));
161536 }
161537 } else if (et === "segments") {
161538 var lpts = _p.rstyle.linePts = [];
161539 for (var i3 = 0; i3 + 1 < rs.allpts.length; i3 += 2) {
161540 lpts.push({
161541 x: rs.allpts[i3],
161542 y: rs.allpts[i3 + 1]
161543 });
161544 }
161545 } else if (et === "haystack") {
161546 var hpts = rs.haystackPts;
161547 _p.rstyle.haystackPts = [{
161548 x: hpts[0],
161549 y: hpts[1]
161550 }, {
161551 x: hpts[2],
161552 y: hpts[3]
161553 }];
161554 }
161555 _p.rstyle.arrowWidth = this.getArrowWidth(edge.pstyle("width").pfValue, edge.pstyle("arrow-scale").value) * this.arrowShapeWidth;
161556 };
161557 BRp$a.recalculateEdgeProjections = function(edges2) {
161558 this.findEdgeControlPoints(edges2);
161559 };
161560 var BRp$9 = {};
161561 BRp$9.recalculateNodeLabelProjection = function(node2) {
161562 var content2 = node2.pstyle("label").strValue;
161563 if (emptyString(content2)) {
161564 return;
161565 }
161566 var textX, textY;
161567 var _p = node2._private;
161568 var nodeWidth = node2.width();
161569 var nodeHeight = node2.height();
161570 var padding2 = node2.padding();
161571 var nodePos = node2.position();
161572 var textHalign = node2.pstyle("text-halign").strValue;
161573 var textValign = node2.pstyle("text-valign").strValue;
161574 var rs = _p.rscratch;
161575 var rstyle = _p.rstyle;
161576 switch (textHalign) {
161577 case "left":
161578 textX = nodePos.x - nodeWidth / 2 - padding2;
161579 break;
161580 case "right":
161581 textX = nodePos.x + nodeWidth / 2 + padding2;
161582 break;
161583 default:
161584 textX = nodePos.x;
161585 }
161586 switch (textValign) {
161587 case "top":
161588 textY = nodePos.y - nodeHeight / 2 - padding2;
161589 break;
161590 case "bottom":
161591 textY = nodePos.y + nodeHeight / 2 + padding2;
161592 break;
161593 default:
161594 textY = nodePos.y;
161595 }
161596 rs.labelX = textX;
161597 rs.labelY = textY;
161598 rstyle.labelX = textX;
161599 rstyle.labelY = textY;
161600 this.calculateLabelAngles(node2);
161601 this.applyLabelDimensions(node2);
161602 };
161603 var lineAngleFromDelta = function lineAngleFromDelta2(dx, dy) {
161604 var angle = Math.atan(dy / dx);
161605 if (dx === 0 && angle < 0) {
161606 angle = angle * -1;
161607 }
161608 return angle;
161609 };
161610 var lineAngle = function lineAngle2(p0, p1) {
161611 var dx = p1.x - p0.x;
161612 var dy = p1.y - p0.y;
161613 return lineAngleFromDelta(dx, dy);
161614 };
161615 var bezierAngle = function bezierAngle2(p0, p1, p2, t4) {
161616 var t02 = bound(0, t4 - 1e-3, 1);
161617 var t12 = bound(0, t4 + 1e-3, 1);
161618 var lp0 = qbezierPtAt(p0, p1, p2, t02);
161619 var lp1 = qbezierPtAt(p0, p1, p2, t12);
161620 return lineAngle(lp0, lp1);
161621 };
161622 BRp$9.recalculateEdgeLabelProjections = function(edge) {
161623 var p2;
161624 var _p = edge._private;
161625 var rs = _p.rscratch;
161626 var r = this;
161627 var content2 = {
161628 mid: edge.pstyle("label").strValue,
161629 source: edge.pstyle("source-label").strValue,
161630 target: edge.pstyle("target-label").strValue
161631 };
161632 if (content2.mid || content2.source || content2.target)
161633 ;
161634 else {
161635 return;
161636 }
161637 p2 = {
161638 x: rs.midX,
161639 y: rs.midY
161640 };
161641 var setRs = function setRs2(propName, prefix, value) {
161642 setPrefixedProperty(_p.rscratch, propName, prefix, value);
161643 setPrefixedProperty(_p.rstyle, propName, prefix, value);
161644 };
161645 setRs("labelX", null, p2.x);
161646 setRs("labelY", null, p2.y);
161647 var midAngle = lineAngleFromDelta(rs.midDispX, rs.midDispY);
161648 setRs("labelAutoAngle", null, midAngle);
161649 var createControlPointInfo = function createControlPointInfo2() {
161650 if (createControlPointInfo2.cache) {
161651 return createControlPointInfo2.cache;
161652 }
161653 var ctrlpts = [];
161654 for (var i3 = 0; i3 + 5 < rs.allpts.length; i3 += 4) {
161655 var p0 = {
161656 x: rs.allpts[i3],
161657 y: rs.allpts[i3 + 1]
161658 };
161659 var p1 = {
161660 x: rs.allpts[i3 + 2],
161661 y: rs.allpts[i3 + 3]
161662 };
161663 var p22 = {
161664 x: rs.allpts[i3 + 4],
161665 y: rs.allpts[i3 + 5]
161666 };
161667 ctrlpts.push({
161668 p0,
161669 p1,
161670 p2: p22,
161671 startDist: 0,
161672 length: 0,
161673 segments: []
161674 });
161675 }
161676 var bpts = _p.rstyle.bezierPts;
161677 var nProjs = r.bezierProjPcts.length;
161678 function addSegment(cp2, p02, p12, t02, t12) {
161679 var length2 = dist2(p02, p12);
161680 var prevSegment = cp2.segments[cp2.segments.length - 1];
161681 var segment = {
161682 p0: p02,
161683 p1: p12,
161684 t0: t02,
161685 t1: t12,
161686 startDist: prevSegment ? prevSegment.startDist + prevSegment.length : 0,
161687 length: length2
161688 };
161689 cp2.segments.push(segment);
161690 cp2.length += length2;
161691 }
161692 for (var _i = 0; _i < ctrlpts.length; _i++) {
161693 var cp = ctrlpts[_i];
161694 var prevCp = ctrlpts[_i - 1];
161695 if (prevCp) {
161696 cp.startDist = prevCp.startDist + prevCp.length;
161697 }
161698 addSegment(cp, cp.p0, bpts[_i * nProjs], 0, r.bezierProjPcts[0]);
161699 for (var j = 0; j < nProjs - 1; j++) {
161700 addSegment(cp, bpts[_i * nProjs + j], bpts[_i * nProjs + j + 1], r.bezierProjPcts[j], r.bezierProjPcts[j + 1]);
161701 }
161702 addSegment(cp, bpts[_i * nProjs + nProjs - 1], cp.p2, r.bezierProjPcts[nProjs - 1], 1);
161703 }
161704 return createControlPointInfo2.cache = ctrlpts;
161705 };
161706 var calculateEndProjection = function calculateEndProjection2(prefix) {
161707 var angle;
161708 var isSrc = prefix === "source";
161709 if (!content2[prefix]) {
161710 return;
161711 }
161712 var offset = edge.pstyle(prefix + "-text-offset").pfValue;
161713 switch (rs.edgeType) {
161714 case "self":
161715 case "compound":
161716 case "bezier":
161717 case "multibezier": {
161718 var cps = createControlPointInfo();
161719 var selected;
161720 var startDist = 0;
161721 var totalDist = 0;
161722 for (var i3 = 0; i3 < cps.length; i3++) {
161723 var _cp = cps[isSrc ? i3 : cps.length - 1 - i3];
161724 for (var j = 0; j < _cp.segments.length; j++) {
161725 var _seg = _cp.segments[isSrc ? j : _cp.segments.length - 1 - j];
161726 var lastSeg = i3 === cps.length - 1 && j === _cp.segments.length - 1;
161727 startDist = totalDist;
161728 totalDist += _seg.length;
161729 if (totalDist >= offset || lastSeg) {
161730 selected = {
161731 cp: _cp,
161732 segment: _seg
161733 };
161734 break;
161735 }
161736 }
161737 if (selected) {
161738 break;
161739 }
161740 }
161741 var cp = selected.cp;
161742 var seg = selected.segment;
161743 var tSegment = (offset - startDist) / seg.length;
161744 var segDt = seg.t1 - seg.t0;
161745 var t4 = isSrc ? seg.t0 + segDt * tSegment : seg.t1 - segDt * tSegment;
161746 t4 = bound(0, t4, 1);
161747 p2 = qbezierPtAt(cp.p0, cp.p1, cp.p2, t4);
161748 angle = bezierAngle(cp.p0, cp.p1, cp.p2, t4);
161749 break;
161750 }
161751 case "straight":
161752 case "segments":
161753 case "haystack": {
161754 var d = 0, di, d0;
161755 var p0, p1;
161756 var l = rs.allpts.length;
161757 for (var _i2 = 0; _i2 + 3 < l; _i2 += 2) {
161758 if (isSrc) {
161759 p0 = {
161760 x: rs.allpts[_i2],
161761 y: rs.allpts[_i2 + 1]
161762 };
161763 p1 = {
161764 x: rs.allpts[_i2 + 2],
161765 y: rs.allpts[_i2 + 3]
161766 };
161767 } else {
161768 p0 = {
161769 x: rs.allpts[l - 2 - _i2],
161770 y: rs.allpts[l - 1 - _i2]
161771 };
161772 p1 = {
161773 x: rs.allpts[l - 4 - _i2],
161774 y: rs.allpts[l - 3 - _i2]
161775 };
161776 }
161777 di = dist2(p0, p1);
161778 d0 = d;
161779 d += di;
161780 if (d >= offset) {
161781 break;
161782 }
161783 }
161784 var pD = offset - d0;
161785 var _t = pD / di;
161786 _t = bound(0, _t, 1);
161787 p2 = lineAt(p0, p1, _t);
161788 angle = lineAngle(p0, p1);
161789 break;
161790 }
161791 }
161792 setRs("labelX", prefix, p2.x);
161793 setRs("labelY", prefix, p2.y);
161794 setRs("labelAutoAngle", prefix, angle);
161795 };
161796 calculateEndProjection("source");
161797 calculateEndProjection("target");
161798 this.applyLabelDimensions(edge);
161799 };
161800 BRp$9.applyLabelDimensions = function(ele) {
161801 this.applyPrefixedLabelDimensions(ele);
161802 if (ele.isEdge()) {
161803 this.applyPrefixedLabelDimensions(ele, "source");
161804 this.applyPrefixedLabelDimensions(ele, "target");
161805 }
161806 };
161807 BRp$9.applyPrefixedLabelDimensions = function(ele, prefix) {
161808 var _p = ele._private;
161809 var text2 = this.getLabelText(ele, prefix);
161810 var labelDims = this.calculateLabelDimensions(ele, text2);
161811 var lineHeight = ele.pstyle("line-height").pfValue;
161812 var textWrap = ele.pstyle("text-wrap").strValue;
161813 var lines = getPrefixedProperty(_p.rscratch, "labelWrapCachedLines", prefix) || [];
161814 var numLines = textWrap !== "wrap" ? 1 : Math.max(lines.length, 1);
161815 var normPerLineHeight = labelDims.height / numLines;
161816 var labelLineHeight = normPerLineHeight * lineHeight;
161817 var width2 = labelDims.width;
161818 var height2 = labelDims.height + (numLines - 1) * (lineHeight - 1) * normPerLineHeight;
161819 setPrefixedProperty(_p.rstyle, "labelWidth", prefix, width2);
161820 setPrefixedProperty(_p.rscratch, "labelWidth", prefix, width2);
161821 setPrefixedProperty(_p.rstyle, "labelHeight", prefix, height2);
161822 setPrefixedProperty(_p.rscratch, "labelHeight", prefix, height2);
161823 setPrefixedProperty(_p.rscratch, "labelLineHeight", prefix, labelLineHeight);
161824 };
161825 BRp$9.getLabelText = function(ele, prefix) {
161826 var _p = ele._private;
161827 var pfd = prefix ? prefix + "-" : "";
161828 var text2 = ele.pstyle(pfd + "label").strValue;
161829 var textTransform = ele.pstyle("text-transform").value;
161830 var rscratch = function rscratch2(propName, value) {
161831 if (value) {
161832 setPrefixedProperty(_p.rscratch, propName, prefix, value);
161833 return value;
161834 } else {
161835 return getPrefixedProperty(_p.rscratch, propName, prefix);
161836 }
161837 };
161838 if (!text2) {
161839 return "";
161840 }
161841 if (textTransform == "none")
161842 ;
161843 else if (textTransform == "uppercase") {
161844 text2 = text2.toUpperCase();
161845 } else if (textTransform == "lowercase") {
161846 text2 = text2.toLowerCase();
161847 }
161848 var wrapStyle = ele.pstyle("text-wrap").value;
161849 if (wrapStyle === "wrap") {
161850 var labelKey = rscratch("labelKey");
161851 if (labelKey != null && rscratch("labelWrapKey") === labelKey) {
161852 return rscratch("labelWrapCachedText");
161853 }
161854 var zwsp = "​";
161855 var lines = text2.split("\n");
161856 var maxW = ele.pstyle("text-max-width").pfValue;
161857 var overflow = ele.pstyle("text-overflow-wrap").value;
161858 var overflowAny = overflow === "anywhere";
161859 var wrappedLines = [];
161860 var wordsRegex = /[\s\u200b]+/;
161861 var wordSeparator = overflowAny ? "" : " ";
161862 for (var l = 0; l < lines.length; l++) {
161863 var line2 = lines[l];
161864 var lineDims = this.calculateLabelDimensions(ele, line2);
161865 var lineW = lineDims.width;
161866 if (overflowAny) {
161867 var processedLine = line2.split("").join(zwsp);
161868 line2 = processedLine;
161869 }
161870 if (lineW > maxW) {
161871 var words = line2.split(wordsRegex);
161872 var subline = "";
161873 for (var w2 = 0; w2 < words.length; w2++) {
161874 var word = words[w2];
161875 var testLine = subline.length === 0 ? word : subline + wordSeparator + word;
161876 var testDims = this.calculateLabelDimensions(ele, testLine);
161877 var testW = testDims.width;
161878 if (testW <= maxW) {
161879 subline += word + wordSeparator;
161880 } else {
161881 if (subline) {
161882 wrappedLines.push(subline);
161883 }
161884 subline = word + wordSeparator;
161885 }
161886 }
161887 if (!subline.match(/^[\s\u200b]+$/)) {
161888 wrappedLines.push(subline);
161889 }
161890 } else {
161891 wrappedLines.push(line2);
161892 }
161893 }
161894 rscratch("labelWrapCachedLines", wrappedLines);
161895 text2 = rscratch("labelWrapCachedText", wrappedLines.join("\n"));
161896 rscratch("labelWrapKey", labelKey);
161897 } else if (wrapStyle === "ellipsis") {
161898 var _maxW = ele.pstyle("text-max-width").pfValue;
161899 var ellipsized = "";
161900 var ellipsis = "…";
161901 var incLastCh = false;
161902 if (this.calculateLabelDimensions(ele, text2).width < _maxW) {
161903 return text2;
161904 }
161905 for (var i3 = 0; i3 < text2.length; i3++) {
161906 var widthWithNextCh = this.calculateLabelDimensions(ele, ellipsized + text2[i3] + ellipsis).width;
161907 if (widthWithNextCh > _maxW) {
161908 break;
161909 }
161910 ellipsized += text2[i3];
161911 if (i3 === text2.length - 1) {
161912 incLastCh = true;
161913 }
161914 }
161915 if (!incLastCh) {
161916 ellipsized += ellipsis;
161917 }
161918 return ellipsized;
161919 }
161920 return text2;
161921 };
161922 BRp$9.getLabelJustification = function(ele) {
161923 var justification = ele.pstyle("text-justification").strValue;
161924 var textHalign = ele.pstyle("text-halign").strValue;
161925 if (justification === "auto") {
161926 if (ele.isNode()) {
161927 switch (textHalign) {
161928 case "left":
161929 return "right";
161930 case "right":
161931 return "left";
161932 default:
161933 return "center";
161934 }
161935 } else {
161936 return "center";
161937 }
161938 } else {
161939 return justification;
161940 }
161941 };
161942 BRp$9.calculateLabelDimensions = function(ele, text2) {
161943 var r = this;
161944 var cacheKey = hashString(text2, ele._private.labelDimsKey);
161945 var cache2 = r.labelDimCache || (r.labelDimCache = []);
161946 var existingVal = cache2[cacheKey];
161947 if (existingVal != null) {
161948 return existingVal;
161949 }
161950 var padding2 = 0;
161951 var fStyle = ele.pstyle("font-style").strValue;
161952 var size2 = ele.pstyle("font-size").pfValue;
161953 var family = ele.pstyle("font-family").strValue;
161954 var weight = ele.pstyle("font-weight").strValue;
161955 var canvas = this.labelCalcCanvas;
161956 var c2d = this.labelCalcCanvasContext;
161957 if (!canvas) {
161958 canvas = this.labelCalcCanvas = document.createElement("canvas");
161959 c2d = this.labelCalcCanvasContext = canvas.getContext("2d");
161960 var ds = canvas.style;
161961 ds.position = "absolute";
161962 ds.left = "-9999px";
161963 ds.top = "-9999px";
161964 ds.zIndex = "-1";
161965 ds.visibility = "hidden";
161966 ds.pointerEvents = "none";
161967 }
161968 c2d.font = "".concat(fStyle, " ").concat(weight, " ").concat(size2, "px ").concat(family);
161969 var width2 = 0;
161970 var height2 = 0;
161971 var lines = text2.split("\n");
161972 for (var i3 = 0; i3 < lines.length; i3++) {
161973 var line2 = lines[i3];
161974 var metrics = c2d.measureText(line2);
161975 var w2 = Math.ceil(metrics.width);
161976 var h = size2;
161977 width2 = Math.max(w2, width2);
161978 height2 += h;
161979 }
161980 width2 += padding2;
161981 height2 += padding2;
161982 return cache2[cacheKey] = {
161983 width: width2,
161984 height: height2
161985 };
161986 };
161987 BRp$9.calculateLabelAngle = function(ele, prefix) {
161988 var _p = ele._private;
161989 var rs = _p.rscratch;
161990 var isEdge = ele.isEdge();
161991 var prefixDash = prefix ? prefix + "-" : "";
161992 var rot = ele.pstyle(prefixDash + "text-rotation");
161993 var rotStr = rot.strValue;
161994 if (rotStr === "none") {
161995 return 0;
161996 } else if (isEdge && rotStr === "autorotate") {
161997 return rs.labelAutoAngle;
161998 } else if (rotStr === "autorotate") {
161999 return 0;
162000 } else {
162001 return rot.pfValue;
162002 }
162003 };
162004 BRp$9.calculateLabelAngles = function(ele) {
162005 var r = this;
162006 var isEdge = ele.isEdge();
162007 var _p = ele._private;
162008 var rs = _p.rscratch;
162009 rs.labelAngle = r.calculateLabelAngle(ele);
162010 if (isEdge) {
162011 rs.sourceLabelAngle = r.calculateLabelAngle(ele, "source");
162012 rs.targetLabelAngle = r.calculateLabelAngle(ele, "target");
162013 }
162014 };
162015 var BRp$8 = {};
162016 var TOO_SMALL_CUT_RECT = 28;
162017 var warnedCutRect = false;
162018 BRp$8.getNodeShape = function(node2) {
162019 var r = this;
162020 var shape = node2.pstyle("shape").value;
162021 if (shape === "cutrectangle" && (node2.width() < TOO_SMALL_CUT_RECT || node2.height() < TOO_SMALL_CUT_RECT)) {
162022 if (!warnedCutRect) {
162023 warn("The `cutrectangle` node shape can not be used at small sizes so `rectangle` is used instead");
162024 warnedCutRect = true;
162025 }
162026 return "rectangle";
162027 }
162028 if (node2.isParent()) {
162029 if (shape === "rectangle" || shape === "roundrectangle" || shape === "round-rectangle" || shape === "cutrectangle" || shape === "cut-rectangle" || shape === "barrel") {
162030 return shape;
162031 } else {
162032 return "rectangle";
162033 }
162034 }
162035 if (shape === "polygon") {
162036 var points = node2.pstyle("shape-polygon-points").value;
162037 return r.nodeShapes.makePolygon(points).name;
162038 }
162039 return shape;
162040 };
162041 var BRp$7 = {};
162042 BRp$7.registerCalculationListeners = function() {
162043 var cy = this.cy;
162044 var elesToUpdate = cy.collection();
162045 var r = this;
162046 var enqueue = function enqueue2(eles) {
162047 var dirtyStyleCaches = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
162048 elesToUpdate.merge(eles);
162049 if (dirtyStyleCaches) {
162050 for (var i3 = 0; i3 < eles.length; i3++) {
162051 var ele = eles[i3];
162052 var _p = ele._private;
162053 var rstyle = _p.rstyle;
162054 rstyle.clean = false;
162055 rstyle.cleanConnected = false;
162056 }
162057 }
162058 };
162059 r.binder(cy).on("bounds.* dirty.*", function onDirtyBounds(e) {
162060 var ele = e.target;
162061 enqueue(ele);
162062 }).on("style.* background.*", function onDirtyStyle(e) {
162063 var ele = e.target;
162064 enqueue(ele, false);
162065 });
162066 var updateEleCalcs = function updateEleCalcs2(willDraw) {
162067 if (willDraw) {
162068 var fns = r.onUpdateEleCalcsFns;
162069 elesToUpdate.cleanStyle();
162070 for (var i3 = 0; i3 < elesToUpdate.length; i3++) {
162071 var ele = elesToUpdate[i3];
162072 var rstyle = ele._private.rstyle;
162073 if (ele.isNode() && !rstyle.cleanConnected) {
162074 enqueue(ele.connectedEdges());
162075 rstyle.cleanConnected = true;
162076 }
162077 }
162078 if (fns) {
162079 for (var _i = 0; _i < fns.length; _i++) {
162080 var fn2 = fns[_i];
162081 fn2(willDraw, elesToUpdate);
162082 }
162083 }
162084 r.recalculateRenderedStyle(elesToUpdate);
162085 elesToUpdate = cy.collection();
162086 }
162087 };
162088 r.flushRenderedStyleQueue = function() {
162089 updateEleCalcs(true);
162090 };
162091 r.beforeRender(updateEleCalcs, r.beforeRenderPriorities.eleCalcs);
162092 };
162093 BRp$7.onUpdateEleCalcs = function(fn2) {
162094 var fns = this.onUpdateEleCalcsFns = this.onUpdateEleCalcsFns || [];
162095 fns.push(fn2);
162096 };
162097 BRp$7.recalculateRenderedStyle = function(eles, useCache) {
162098 var isCleanConnected = function isCleanConnected2(ele2) {
162099 return ele2._private.rstyle.cleanConnected;
162100 };
162101 var edges2 = [];
162102 var nodes2 = [];
162103 if (this.destroyed) {
162104 return;
162105 }
162106 if (useCache === void 0) {
162107 useCache = true;
162108 }
162109 for (var i3 = 0; i3 < eles.length; i3++) {
162110 var ele = eles[i3];
162111 var _p = ele._private;
162112 var rstyle = _p.rstyle;
162113 if (ele.isEdge() && (!isCleanConnected(ele.source()) || !isCleanConnected(ele.target()))) {
162114 rstyle.clean = false;
162115 }
162116 if (useCache && rstyle.clean || ele.removed()) {
162117 continue;
162118 }
162119 if (ele.pstyle("display").value === "none") {
162120 continue;
162121 }
162122 if (_p.group === "nodes") {
162123 nodes2.push(ele);
162124 } else {
162125 edges2.push(ele);
162126 }
162127 rstyle.clean = true;
162128 }
162129 for (var _i2 = 0; _i2 < nodes2.length; _i2++) {
162130 var _ele = nodes2[_i2];
162131 var _p2 = _ele._private;
162132 var _rstyle = _p2.rstyle;
162133 var pos = _ele.position();
162134 this.recalculateNodeLabelProjection(_ele);
162135 _rstyle.nodeX = pos.x;
162136 _rstyle.nodeY = pos.y;
162137 _rstyle.nodeW = _ele.pstyle("width").pfValue;
162138 _rstyle.nodeH = _ele.pstyle("height").pfValue;
162139 }
162140 this.recalculateEdgeProjections(edges2);
162141 for (var _i3 = 0; _i3 < edges2.length; _i3++) {
162142 var _ele2 = edges2[_i3];
162143 var _p3 = _ele2._private;
162144 var _rstyle2 = _p3.rstyle;
162145 var rs = _p3.rscratch;
162146 _rstyle2.srcX = rs.arrowStartX;
162147 _rstyle2.srcY = rs.arrowStartY;
162148 _rstyle2.tgtX = rs.arrowEndX;
162149 _rstyle2.tgtY = rs.arrowEndY;
162150 _rstyle2.midX = rs.midX;
162151 _rstyle2.midY = rs.midY;
162152 _rstyle2.labelAngle = rs.labelAngle;
162153 _rstyle2.sourceLabelAngle = rs.sourceLabelAngle;
162154 _rstyle2.targetLabelAngle = rs.targetLabelAngle;
162155 }
162156 };
162157 var BRp$6 = {};
162158 BRp$6.updateCachedGrabbedEles = function() {
162159 var eles = this.cachedZSortedEles;
162160 if (!eles) {
162161 return;
162162 }
162163 eles.drag = [];
162164 eles.nondrag = [];
162165 var grabTargets = [];
162166 for (var i3 = 0; i3 < eles.length; i3++) {
162167 var ele = eles[i3];
162168 var rs = ele._private.rscratch;
162169 if (ele.grabbed() && !ele.isParent()) {
162170 grabTargets.push(ele);
162171 } else if (rs.inDragLayer) {
162172 eles.drag.push(ele);
162173 } else {
162174 eles.nondrag.push(ele);
162175 }
162176 }
162177 for (var i3 = 0; i3 < grabTargets.length; i3++) {
162178 var ele = grabTargets[i3];
162179 eles.drag.push(ele);
162180 }
162181 };
162182 BRp$6.invalidateCachedZSortedEles = function() {
162183 this.cachedZSortedEles = null;
162184 };
162185 BRp$6.getCachedZSortedEles = function(forceRecalc) {
162186 if (forceRecalc || !this.cachedZSortedEles) {
162187 var eles = this.cy.mutableElements().toArray();
162188 eles.sort(zIndexSort);
162189 eles.interactive = eles.filter(function(ele) {
162190 return ele.interactive();
162191 });
162192 this.cachedZSortedEles = eles;
162193 this.updateCachedGrabbedEles();
162194 } else {
162195 eles = this.cachedZSortedEles;
162196 }
162197 return eles;
162198 };
162199 var BRp$5 = {};
162200 [BRp$e, BRp$d, BRp$c, BRp$b, BRp$a, BRp$9, BRp$8, BRp$7, BRp$6].forEach(function(props) {
162201 extend2(BRp$5, props);
162202 });
162203 var BRp$4 = {};
162204 BRp$4.getCachedImage = function(url, crossOrigin, onLoad) {
162205 var r = this;
162206 var imageCache = r.imageCache = r.imageCache || {};
162207 var cache2 = imageCache[url];
162208 if (cache2) {
162209 if (!cache2.image.complete) {
162210 cache2.image.addEventListener("load", onLoad);
162211 }
162212 return cache2.image;
162213 } else {
162214 cache2 = imageCache[url] = imageCache[url] || {};
162215 var image = cache2.image = new Image();
162216 image.addEventListener("load", onLoad);
162217 image.addEventListener("error", function() {
162218 image.error = true;
162219 });
162220 var dataUriPrefix = "data:";
162221 var isDataUri = url.substring(0, dataUriPrefix.length).toLowerCase() === dataUriPrefix;
162222 if (!isDataUri) {
162223 image.crossOrigin = crossOrigin;
162224 }
162225 image.src = url;
162226 return image;
162227 }
162228 };
162229 var BRp$3 = {};
162230 BRp$3.registerBinding = function(target, event2, handler, useCapture) {
162231 var args = Array.prototype.slice.apply(arguments, [1]);
162232 var b = this.binder(target);
162233 return b.on.apply(b, args);
162234 };
162235 BRp$3.binder = function(tgt) {
162236 var r = this;
162237 var tgtIsDom = tgt === window || tgt === document || tgt === document.body || domElement(tgt);
162238 if (r.supportsPassiveEvents == null) {
162239 var supportsPassive = false;
162240 try {
162241 var opts = Object.defineProperty({}, "passive", {
162242 get: function get3() {
162243 supportsPassive = true;
162244 return true;
162245 }
162246 });
162247 window.addEventListener("test", null, opts);
162248 } catch (err) {
162249 }
162250 r.supportsPassiveEvents = supportsPassive;
162251 }
162252 var on = function on2(event2, handler, useCapture) {
162253 var args = Array.prototype.slice.call(arguments);
162254 if (tgtIsDom && r.supportsPassiveEvents) {
162255 args[2] = {
162256 capture: useCapture != null ? useCapture : false,
162257 passive: false,
162258 once: false
162259 };
162260 }
162261 r.bindings.push({
162262 target: tgt,
162263 args
162264 });
162265 (tgt.addEventListener || tgt.on).apply(tgt, args);
162266 return this;
162267 };
162268 return {
162269 on,
162270 addEventListener: on,
162271 addListener: on,
162272 bind: on
162273 };
162274 };
162275 BRp$3.nodeIsDraggable = function(node2) {
162276 return node2 && node2.isNode() && !node2.locked() && node2.grabbable();
162277 };
162278 BRp$3.nodeIsGrabbable = function(node2) {
162279 return this.nodeIsDraggable(node2) && node2.interactive();
162280 };
162281 BRp$3.load = function() {
162282 var r = this;
162283 var isSelected = function isSelected2(ele) {
162284 return ele.selected();
162285 };
162286 var triggerEvents = function triggerEvents2(target, names, e, position3) {
162287 if (target == null) {
162288 target = r.cy;
162289 }
162290 for (var i3 = 0; i3 < names.length; i3++) {
162291 var name2 = names[i3];
162292 target.emit({
162293 originalEvent: e,
162294 type: name2,
162295 position: position3
162296 });
162297 }
162298 };
162299 var isMultSelKeyDown = function isMultSelKeyDown2(e) {
162300 return e.shiftKey || e.metaKey || e.ctrlKey;
162301 };
162302 var allowPanningPassthrough = function allowPanningPassthrough2(down, downs) {
162303 var allowPassthrough = true;
162304 if (r.cy.hasCompoundNodes() && down && down.pannable()) {
162305 for (var i3 = 0; downs && i3 < downs.length; i3++) {
162306 var down = downs[i3];
162307 if (down.isNode() && down.isParent() && !down.pannable()) {
162308 allowPassthrough = false;
162309 break;
162310 }
162311 }
162312 } else {
162313 allowPassthrough = true;
162314 }
162315 return allowPassthrough;
162316 };
162317 var setGrabbed = function setGrabbed2(ele) {
162318 ele[0]._private.grabbed = true;
162319 };
162320 var setFreed = function setFreed2(ele) {
162321 ele[0]._private.grabbed = false;
162322 };
162323 var setInDragLayer = function setInDragLayer2(ele) {
162324 ele[0]._private.rscratch.inDragLayer = true;
162325 };
162326 var setOutDragLayer = function setOutDragLayer2(ele) {
162327 ele[0]._private.rscratch.inDragLayer = false;
162328 };
162329 var setGrabTarget = function setGrabTarget2(ele) {
162330 ele[0]._private.rscratch.isGrabTarget = true;
162331 };
162332 var removeGrabTarget = function removeGrabTarget2(ele) {
162333 ele[0]._private.rscratch.isGrabTarget = false;
162334 };
162335 var addToDragList = function addToDragList2(ele, opts) {
162336 var list2 = opts.addToList;
162337 var listHasEle = list2.has(ele);
162338 if (!listHasEle && ele.grabbable() && !ele.locked()) {
162339 list2.merge(ele);
162340 setGrabbed(ele);
162341 }
162342 };
162343 var addDescendantsToDrag = function addDescendantsToDrag2(node2, opts) {
162344 if (!node2.cy().hasCompoundNodes()) {
162345 return;
162346 }
162347 if (opts.inDragLayer == null && opts.addToList == null) {
162348 return;
162349 }
162350 var innerNodes = node2.descendants();
162351 if (opts.inDragLayer) {
162352 innerNodes.forEach(setInDragLayer);
162353 innerNodes.connectedEdges().forEach(setInDragLayer);
162354 }
162355 if (opts.addToList) {
162356 addToDragList(innerNodes, opts);
162357 }
162358 };
162359 var addNodesToDrag = function addNodesToDrag2(nodes2, opts) {
162360 opts = opts || {};
162361 var hasCompoundNodes = nodes2.cy().hasCompoundNodes();
162362 if (opts.inDragLayer) {
162363 nodes2.forEach(setInDragLayer);
162364 nodes2.neighborhood().stdFilter(function(ele) {
162365 return !hasCompoundNodes || ele.isEdge();
162366 }).forEach(setInDragLayer);
162367 }
162368 if (opts.addToList) {
162369 nodes2.forEach(function(ele) {
162370 addToDragList(ele, opts);
162371 });
162372 }
162373 addDescendantsToDrag(nodes2, opts);
162374 updateAncestorsInDragLayer(nodes2, {
162375 inDragLayer: opts.inDragLayer
162376 });
162377 r.updateCachedGrabbedEles();
162378 };
162379 var addNodeToDrag = addNodesToDrag;
162380 var freeDraggedElements = function freeDraggedElements2(grabbedEles) {
162381 if (!grabbedEles) {
162382 return;
162383 }
162384 r.getCachedZSortedEles().forEach(function(ele) {
162385 setFreed(ele);
162386 setOutDragLayer(ele);
162387 removeGrabTarget(ele);
162388 });
162389 r.updateCachedGrabbedEles();
162390 };
162391 var updateAncestorsInDragLayer = function updateAncestorsInDragLayer2(node2, opts) {
162392 if (opts.inDragLayer == null && opts.addToList == null) {
162393 return;
162394 }
162395 if (!node2.cy().hasCompoundNodes()) {
162396 return;
162397 }
162398 var parent = node2.ancestors().orphans();
162399 if (parent.same(node2)) {
162400 return;
162401 }
162402 var nodes2 = parent.descendants().spawnSelf().merge(parent).unmerge(node2).unmerge(node2.descendants());
162403 var edges2 = nodes2.connectedEdges();
162404 if (opts.inDragLayer) {
162405 edges2.forEach(setInDragLayer);
162406 nodes2.forEach(setInDragLayer);
162407 }
162408 if (opts.addToList) {
162409 nodes2.forEach(function(ele) {
162410 addToDragList(ele, opts);
162411 });
162412 }
162413 };
162414 var blurActiveDomElement = function blurActiveDomElement2() {
162415 if (document.activeElement != null && document.activeElement.blur != null) {
162416 document.activeElement.blur();
162417 }
162418 };
162419 var haveMutationsApi = typeof MutationObserver !== "undefined";
162420 var haveResizeObserverApi = typeof ResizeObserver !== "undefined";
162421 if (haveMutationsApi) {
162422 r.removeObserver = new MutationObserver(function(mutns) {
162423 for (var i3 = 0; i3 < mutns.length; i3++) {
162424 var mutn = mutns[i3];
162425 var rNodes = mutn.removedNodes;
162426 if (rNodes) {
162427 for (var j = 0; j < rNodes.length; j++) {
162428 var rNode = rNodes[j];
162429 if (rNode === r.container) {
162430 r.destroy();
162431 break;
162432 }
162433 }
162434 }
162435 }
162436 });
162437 if (r.container.parentNode) {
162438 r.removeObserver.observe(r.container.parentNode, {
162439 childList: true
162440 });
162441 }
162442 } else {
162443 r.registerBinding(r.container, "DOMNodeRemoved", function(e) {
162444 r.destroy();
162445 });
162446 }
162447 var onResize = debounce_1(function() {
162448 r.cy.resize();
162449 }, 100);
162450 if (haveMutationsApi) {
162451 r.styleObserver = new MutationObserver(onResize);
162452 r.styleObserver.observe(r.container, {
162453 attributes: true
162454 });
162455 }
162456 r.registerBinding(window, "resize", onResize);
162457 if (haveResizeObserverApi) {
162458 r.resizeObserver = new ResizeObserver(onResize);
162459 r.resizeObserver.observe(r.container);
162460 }
162461 var forEachUp = function forEachUp2(domEle, fn2) {
162462 while (domEle != null) {
162463 fn2(domEle);
162464 domEle = domEle.parentNode;
162465 }
162466 };
162467 var invalidateCoords = function invalidateCoords2() {
162468 r.invalidateContainerClientCoordsCache();
162469 };
162470 forEachUp(r.container, function(domEle) {
162471 r.registerBinding(domEle, "transitionend", invalidateCoords);
162472 r.registerBinding(domEle, "animationend", invalidateCoords);
162473 r.registerBinding(domEle, "scroll", invalidateCoords);
162474 });
162475 r.registerBinding(r.container, "contextmenu", function(e) {
162476 e.preventDefault();
162477 });
162478 var inBoxSelection = function inBoxSelection2() {
162479 return r.selection[4] !== 0;
162480 };
162481 var eventInContainer = function eventInContainer2(e) {
162482 var containerPageCoords = r.findContainerClientCoords();
162483 var x2 = containerPageCoords[0];
162484 var y2 = containerPageCoords[1];
162485 var width2 = containerPageCoords[2];
162486 var height2 = containerPageCoords[3];
162487 var positions = e.touches ? e.touches : [e];
162488 var atLeastOnePosInside = false;
162489 for (var i3 = 0; i3 < positions.length; i3++) {
162490 var p2 = positions[i3];
162491 if (x2 <= p2.clientX && p2.clientX <= x2 + width2 && y2 <= p2.clientY && p2.clientY <= y2 + height2) {
162492 atLeastOnePosInside = true;
162493 break;
162494 }
162495 }
162496 if (!atLeastOnePosInside) {
162497 return false;
162498 }
162499 var container = r.container;
162500 var target = e.target;
162501 var tParent = target.parentNode;
162502 var containerIsTarget = false;
162503 while (tParent) {
162504 if (tParent === container) {
162505 containerIsTarget = true;
162506 break;
162507 }
162508 tParent = tParent.parentNode;
162509 }
162510 if (!containerIsTarget) {
162511 return false;
162512 }
162513 return true;
162514 };
162515 r.registerBinding(r.container, "mousedown", function mousedownHandler(e) {
162516 if (!eventInContainer(e)) {
162517 return;
162518 }
162519 e.preventDefault();
162520 blurActiveDomElement();
162521 r.hoverData.capture = true;
162522 r.hoverData.which = e.which;
162523 var cy = r.cy;
162524 var gpos = [e.clientX, e.clientY];
162525 var pos = r.projectIntoViewport(gpos[0], gpos[1]);
162526 var select2 = r.selection;
162527 var nears = r.findNearestElements(pos[0], pos[1], true, false);
162528 var near = nears[0];
162529 var draggedElements = r.dragData.possibleDragElements;
162530 r.hoverData.mdownPos = pos;
162531 r.hoverData.mdownGPos = gpos;
162532 var checkForTaphold = function checkForTaphold2() {
162533 r.hoverData.tapholdCancelled = false;
162534 clearTimeout(r.hoverData.tapholdTimeout);
162535 r.hoverData.tapholdTimeout = setTimeout(function() {
162536 if (r.hoverData.tapholdCancelled) {
162537 return;
162538 } else {
162539 var ele = r.hoverData.down;
162540 if (ele) {
162541 ele.emit({
162542 originalEvent: e,
162543 type: "taphold",
162544 position: {
162545 x: pos[0],
162546 y: pos[1]
162547 }
162548 });
162549 } else {
162550 cy.emit({
162551 originalEvent: e,
162552 type: "taphold",
162553 position: {
162554 x: pos[0],
162555 y: pos[1]
162556 }
162557 });
162558 }
162559 }
162560 }, r.tapholdDuration);
162561 };
162562 if (e.which == 3) {
162563 r.hoverData.cxtStarted = true;
162564 var cxtEvt = {
162565 originalEvent: e,
162566 type: "cxttapstart",
162567 position: {
162568 x: pos[0],
162569 y: pos[1]
162570 }
162571 };
162572 if (near) {
162573 near.activate();
162574 near.emit(cxtEvt);
162575 r.hoverData.down = near;
162576 } else {
162577 cy.emit(cxtEvt);
162578 }
162579 r.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime();
162580 r.hoverData.cxtDragged = false;
162581 } else if (e.which == 1) {
162582 if (near) {
162583 near.activate();
162584 }
162585 {
162586 if (near != null) {
162587 if (r.nodeIsGrabbable(near)) {
162588 var makeEvent = function makeEvent2(type2) {
162589 return {
162590 originalEvent: e,
162591 type: type2,
162592 position: {
162593 x: pos[0],
162594 y: pos[1]
162595 }
162596 };
162597 };
162598 var triggerGrab = function triggerGrab2(ele) {
162599 ele.emit(makeEvent("grab"));
162600 };
162601 setGrabTarget(near);
162602 if (!near.selected()) {
162603 draggedElements = r.dragData.possibleDragElements = cy.collection();
162604 addNodeToDrag(near, {
162605 addToList: draggedElements
162606 });
162607 near.emit(makeEvent("grabon")).emit(makeEvent("grab"));
162608 } else {
162609 draggedElements = r.dragData.possibleDragElements = cy.collection();
162610 var selectedNodes = cy.$(function(ele) {
162611 return ele.isNode() && ele.selected() && r.nodeIsGrabbable(ele);
162612 });
162613 addNodesToDrag(selectedNodes, {
162614 addToList: draggedElements
162615 });
162616 near.emit(makeEvent("grabon"));
162617 selectedNodes.forEach(triggerGrab);
162618 }
162619 r.redrawHint("eles", true);
162620 r.redrawHint("drag", true);
162621 }
162622 }
162623 r.hoverData.down = near;
162624 r.hoverData.downs = nears;
162625 r.hoverData.downTime = (/* @__PURE__ */ new Date()).getTime();
162626 }
162627 triggerEvents(near, ["mousedown", "tapstart", "vmousedown"], e, {
162628 x: pos[0],
162629 y: pos[1]
162630 });
162631 if (near == null) {
162632 select2[4] = 1;
162633 r.data.bgActivePosistion = {
162634 x: pos[0],
162635 y: pos[1]
162636 };
162637 r.redrawHint("select", true);
162638 r.redraw();
162639 } else if (near.pannable()) {
162640 select2[4] = 1;
162641 }
162642 checkForTaphold();
162643 }
162644 select2[0] = select2[2] = pos[0];
162645 select2[1] = select2[3] = pos[1];
162646 }, false);
162647 r.registerBinding(window, "mousemove", function mousemoveHandler(e) {
162648 var capture = r.hoverData.capture;
162649 if (!capture && !eventInContainer(e)) {
162650 return;
162651 }
162652 var preventDefault = false;
162653 var cy = r.cy;
162654 var zoom = cy.zoom();
162655 var gpos = [e.clientX, e.clientY];
162656 var pos = r.projectIntoViewport(gpos[0], gpos[1]);
162657 var mdownPos = r.hoverData.mdownPos;
162658 var mdownGPos = r.hoverData.mdownGPos;
162659 var select2 = r.selection;
162660 var near = null;
162661 if (!r.hoverData.draggingEles && !r.hoverData.dragging && !r.hoverData.selecting) {
162662 near = r.findNearestElement(pos[0], pos[1], true, false);
162663 }
162664 var last2 = r.hoverData.last;
162665 var down = r.hoverData.down;
162666 var disp = [pos[0] - select2[2], pos[1] - select2[3]];
162667 var draggedElements = r.dragData.possibleDragElements;
162668 var isOverThresholdDrag;
162669 if (mdownGPos) {
162670 var dx = gpos[0] - mdownGPos[0];
162671 var dx2 = dx * dx;
162672 var dy = gpos[1] - mdownGPos[1];
162673 var dy2 = dy * dy;
162674 var dist22 = dx2 + dy2;
162675 r.hoverData.isOverThresholdDrag = isOverThresholdDrag = dist22 >= r.desktopTapThreshold2;
162676 }
162677 var multSelKeyDown = isMultSelKeyDown(e);
162678 if (isOverThresholdDrag) {
162679 r.hoverData.tapholdCancelled = true;
162680 }
162681 var updateDragDelta = function updateDragDelta2() {
162682 var dragDelta2 = r.hoverData.dragDelta = r.hoverData.dragDelta || [];
162683 if (dragDelta2.length === 0) {
162684 dragDelta2.push(disp[0]);
162685 dragDelta2.push(disp[1]);
162686 } else {
162687 dragDelta2[0] += disp[0];
162688 dragDelta2[1] += disp[1];
162689 }
162690 };
162691 preventDefault = true;
162692 triggerEvents(near, ["mousemove", "vmousemove", "tapdrag"], e, {
162693 x: pos[0],
162694 y: pos[1]
162695 });
162696 var goIntoBoxMode = function goIntoBoxMode2() {
162697 r.data.bgActivePosistion = void 0;
162698 if (!r.hoverData.selecting) {
162699 cy.emit({
162700 originalEvent: e,
162701 type: "boxstart",
162702 position: {
162703 x: pos[0],
162704 y: pos[1]
162705 }
162706 });
162707 }
162708 select2[4] = 1;
162709 r.hoverData.selecting = true;
162710 r.redrawHint("select", true);
162711 r.redraw();
162712 };
162713 if (r.hoverData.which === 3) {
162714 if (isOverThresholdDrag) {
162715 var cxtEvt = {
162716 originalEvent: e,
162717 type: "cxtdrag",
162718 position: {
162719 x: pos[0],
162720 y: pos[1]
162721 }
162722 };
162723 if (down) {
162724 down.emit(cxtEvt);
162725 } else {
162726 cy.emit(cxtEvt);
162727 }
162728 r.hoverData.cxtDragged = true;
162729 if (!r.hoverData.cxtOver || near !== r.hoverData.cxtOver) {
162730 if (r.hoverData.cxtOver) {
162731 r.hoverData.cxtOver.emit({
162732 originalEvent: e,
162733 type: "cxtdragout",
162734 position: {
162735 x: pos[0],
162736 y: pos[1]
162737 }
162738 });
162739 }
162740 r.hoverData.cxtOver = near;
162741 if (near) {
162742 near.emit({
162743 originalEvent: e,
162744 type: "cxtdragover",
162745 position: {
162746 x: pos[0],
162747 y: pos[1]
162748 }
162749 });
162750 }
162751 }
162752 }
162753 } else if (r.hoverData.dragging) {
162754 preventDefault = true;
162755 if (cy.panningEnabled() && cy.userPanningEnabled()) {
162756 var deltaP;
162757 if (r.hoverData.justStartedPan) {
162758 var mdPos = r.hoverData.mdownPos;
162759 deltaP = {
162760 x: (pos[0] - mdPos[0]) * zoom,
162761 y: (pos[1] - mdPos[1]) * zoom
162762 };
162763 r.hoverData.justStartedPan = false;
162764 } else {
162765 deltaP = {
162766 x: disp[0] * zoom,
162767 y: disp[1] * zoom
162768 };
162769 }
162770 cy.panBy(deltaP);
162771 cy.emit("dragpan");
162772 r.hoverData.dragged = true;
162773 }
162774 pos = r.projectIntoViewport(e.clientX, e.clientY);
162775 } else if (select2[4] == 1 && (down == null || down.pannable())) {
162776 if (isOverThresholdDrag) {
162777 if (!r.hoverData.dragging && cy.boxSelectionEnabled() && (multSelKeyDown || !cy.panningEnabled() || !cy.userPanningEnabled())) {
162778 goIntoBoxMode();
162779 } else if (!r.hoverData.selecting && cy.panningEnabled() && cy.userPanningEnabled()) {
162780 var allowPassthrough = allowPanningPassthrough(down, r.hoverData.downs);
162781 if (allowPassthrough) {
162782 r.hoverData.dragging = true;
162783 r.hoverData.justStartedPan = true;
162784 select2[4] = 0;
162785 r.data.bgActivePosistion = array2point(mdownPos);
162786 r.redrawHint("select", true);
162787 r.redraw();
162788 }
162789 }
162790 if (down && down.pannable() && down.active()) {
162791 down.unactivate();
162792 }
162793 }
162794 } else {
162795 if (down && down.pannable() && down.active()) {
162796 down.unactivate();
162797 }
162798 if ((!down || !down.grabbed()) && near != last2) {
162799 if (last2) {
162800 triggerEvents(last2, ["mouseout", "tapdragout"], e, {
162801 x: pos[0],
162802 y: pos[1]
162803 });
162804 }
162805 if (near) {
162806 triggerEvents(near, ["mouseover", "tapdragover"], e, {
162807 x: pos[0],
162808 y: pos[1]
162809 });
162810 }
162811 r.hoverData.last = near;
162812 }
162813 if (down) {
162814 if (isOverThresholdDrag) {
162815 if (cy.boxSelectionEnabled() && multSelKeyDown) {
162816 if (down && down.grabbed()) {
162817 freeDraggedElements(draggedElements);
162818 down.emit("freeon");
162819 draggedElements.emit("free");
162820 if (r.dragData.didDrag) {
162821 down.emit("dragfreeon");
162822 draggedElements.emit("dragfree");
162823 }
162824 }
162825 goIntoBoxMode();
162826 } else if (down && down.grabbed() && r.nodeIsDraggable(down)) {
162827 var justStartedDrag = !r.dragData.didDrag;
162828 if (justStartedDrag) {
162829 r.redrawHint("eles", true);
162830 }
162831 r.dragData.didDrag = true;
162832 if (!r.hoverData.draggingEles) {
162833 addNodesToDrag(draggedElements, {
162834 inDragLayer: true
162835 });
162836 }
162837 var totalShift = {
162838 x: 0,
162839 y: 0
162840 };
162841 if (number$12(disp[0]) && number$12(disp[1])) {
162842 totalShift.x += disp[0];
162843 totalShift.y += disp[1];
162844 if (justStartedDrag) {
162845 var dragDelta = r.hoverData.dragDelta;
162846 if (dragDelta && number$12(dragDelta[0]) && number$12(dragDelta[1])) {
162847 totalShift.x += dragDelta[0];
162848 totalShift.y += dragDelta[1];
162849 }
162850 }
162851 }
162852 r.hoverData.draggingEles = true;
162853 draggedElements.silentShift(totalShift).emit("position drag");
162854 r.redrawHint("drag", true);
162855 r.redraw();
162856 }
162857 } else {
162858 updateDragDelta();
162859 }
162860 }
162861 preventDefault = true;
162862 }
162863 select2[2] = pos[0];
162864 select2[3] = pos[1];
162865 if (preventDefault) {
162866 if (e.stopPropagation)
162867 e.stopPropagation();
162868 if (e.preventDefault)
162869 e.preventDefault();
162870 return false;
162871 }
162872 }, false);
162873 var clickTimeout, didDoubleClick, prevClickTimeStamp;
162874 r.registerBinding(window, "mouseup", function mouseupHandler(e) {
162875 var capture = r.hoverData.capture;
162876 if (!capture) {
162877 return;
162878 }
162879 r.hoverData.capture = false;
162880 var cy = r.cy;
162881 var pos = r.projectIntoViewport(e.clientX, e.clientY);
162882 var select2 = r.selection;
162883 var near = r.findNearestElement(pos[0], pos[1], true, false);
162884 var draggedElements = r.dragData.possibleDragElements;
162885 var down = r.hoverData.down;
162886 var multSelKeyDown = isMultSelKeyDown(e);
162887 if (r.data.bgActivePosistion) {
162888 r.redrawHint("select", true);
162889 r.redraw();
162890 }
162891 r.hoverData.tapholdCancelled = true;
162892 r.data.bgActivePosistion = void 0;
162893 if (down) {
162894 down.unactivate();
162895 }
162896 if (r.hoverData.which === 3) {
162897 var cxtEvt = {
162898 originalEvent: e,
162899 type: "cxttapend",
162900 position: {
162901 x: pos[0],
162902 y: pos[1]
162903 }
162904 };
162905 if (down) {
162906 down.emit(cxtEvt);
162907 } else {
162908 cy.emit(cxtEvt);
162909 }
162910 if (!r.hoverData.cxtDragged) {
162911 var cxtTap = {
162912 originalEvent: e,
162913 type: "cxttap",
162914 position: {
162915 x: pos[0],
162916 y: pos[1]
162917 }
162918 };
162919 if (down) {
162920 down.emit(cxtTap);
162921 } else {
162922 cy.emit(cxtTap);
162923 }
162924 }
162925 r.hoverData.cxtDragged = false;
162926 r.hoverData.which = null;
162927 } else if (r.hoverData.which === 1) {
162928 triggerEvents(near, ["mouseup", "tapend", "vmouseup"], e, {
162929 x: pos[0],
162930 y: pos[1]
162931 });
162932 if (!r.dragData.didDrag && // didn't move a node around
162933 !r.hoverData.dragged && // didn't pan
162934 !r.hoverData.selecting && // not box selection
162935 !r.hoverData.isOverThresholdDrag) {
162936 triggerEvents(down, ["click", "tap", "vclick"], e, {
162937 x: pos[0],
162938 y: pos[1]
162939 });
162940 didDoubleClick = false;
162941 if (e.timeStamp - prevClickTimeStamp <= cy.multiClickDebounceTime()) {
162942 clickTimeout && clearTimeout(clickTimeout);
162943 didDoubleClick = true;
162944 prevClickTimeStamp = null;
162945 triggerEvents(down, ["dblclick", "dbltap", "vdblclick"], e, {
162946 x: pos[0],
162947 y: pos[1]
162948 });
162949 } else {
162950 clickTimeout = setTimeout(function() {
162951 if (didDoubleClick)
162952 return;
162953 triggerEvents(down, ["oneclick", "onetap", "voneclick"], e, {
162954 x: pos[0],
162955 y: pos[1]
162956 });
162957 }, cy.multiClickDebounceTime());
162958 prevClickTimeStamp = e.timeStamp;
162959 }
162960 }
162961 if (down == null && !r.dragData.didDrag && !r.hoverData.selecting && !r.hoverData.dragged && !isMultSelKeyDown(e)) {
162962 cy.$(isSelected).unselect(["tapunselect"]);
162963 if (draggedElements.length > 0) {
162964 r.redrawHint("eles", true);
162965 }
162966 r.dragData.possibleDragElements = draggedElements = cy.collection();
162967 }
162968 if (near == down && !r.dragData.didDrag && !r.hoverData.selecting) {
162969 if (near != null && near._private.selectable) {
162970 if (r.hoverData.dragging)
162971 ;
162972 else if (cy.selectionType() === "additive" || multSelKeyDown) {
162973 if (near.selected()) {
162974 near.unselect(["tapunselect"]);
162975 } else {
162976 near.select(["tapselect"]);
162977 }
162978 } else {
162979 if (!multSelKeyDown) {
162980 cy.$(isSelected).unmerge(near).unselect(["tapunselect"]);
162981 near.select(["tapselect"]);
162982 }
162983 }
162984 r.redrawHint("eles", true);
162985 }
162986 }
162987 if (r.hoverData.selecting) {
162988 var box = cy.collection(r.getAllInBox(select2[0], select2[1], select2[2], select2[3]));
162989 r.redrawHint("select", true);
162990 if (box.length > 0) {
162991 r.redrawHint("eles", true);
162992 }
162993 cy.emit({
162994 type: "boxend",
162995 originalEvent: e,
162996 position: {
162997 x: pos[0],
162998 y: pos[1]
162999 }
163000 });
163001 var eleWouldBeSelected = function eleWouldBeSelected2(ele) {
163002 return ele.selectable() && !ele.selected();
163003 };
163004 if (cy.selectionType() === "additive") {
163005 box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect");
163006 } else {
163007 if (!multSelKeyDown) {
163008 cy.$(isSelected).unmerge(box).unselect();
163009 }
163010 box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect");
163011 }
163012 r.redraw();
163013 }
163014 if (r.hoverData.dragging) {
163015 r.hoverData.dragging = false;
163016 r.redrawHint("select", true);
163017 r.redrawHint("eles", true);
163018 r.redraw();
163019 }
163020 if (!select2[4]) {
163021 r.redrawHint("drag", true);
163022 r.redrawHint("eles", true);
163023 var downWasGrabbed = down && down.grabbed();
163024 freeDraggedElements(draggedElements);
163025 if (downWasGrabbed) {
163026 down.emit("freeon");
163027 draggedElements.emit("free");
163028 if (r.dragData.didDrag) {
163029 down.emit("dragfreeon");
163030 draggedElements.emit("dragfree");
163031 }
163032 }
163033 }
163034 }
163035 select2[4] = 0;
163036 r.hoverData.down = null;
163037 r.hoverData.cxtStarted = false;
163038 r.hoverData.draggingEles = false;
163039 r.hoverData.selecting = false;
163040 r.hoverData.isOverThresholdDrag = false;
163041 r.dragData.didDrag = false;
163042 r.hoverData.dragged = false;
163043 r.hoverData.dragDelta = [];
163044 r.hoverData.mdownPos = null;
163045 r.hoverData.mdownGPos = null;
163046 }, false);
163047 var wheelHandler = function wheelHandler2(e) {
163048 if (r.scrollingPage) {
163049 return;
163050 }
163051 var cy = r.cy;
163052 var zoom = cy.zoom();
163053 var pan = cy.pan();
163054 var pos = r.projectIntoViewport(e.clientX, e.clientY);
163055 var rpos = [pos[0] * zoom + pan.x, pos[1] * zoom + pan.y];
163056 if (r.hoverData.draggingEles || r.hoverData.dragging || r.hoverData.cxtStarted || inBoxSelection()) {
163057 e.preventDefault();
163058 return;
163059 }
163060 if (cy.panningEnabled() && cy.userPanningEnabled() && cy.zoomingEnabled() && cy.userZoomingEnabled()) {
163061 e.preventDefault();
163062 r.data.wheelZooming = true;
163063 clearTimeout(r.data.wheelTimeout);
163064 r.data.wheelTimeout = setTimeout(function() {
163065 r.data.wheelZooming = false;
163066 r.redrawHint("eles", true);
163067 r.redraw();
163068 }, 150);
163069 var diff;
163070 if (e.deltaY != null) {
163071 diff = e.deltaY / -250;
163072 } else if (e.wheelDeltaY != null) {
163073 diff = e.wheelDeltaY / 1e3;
163074 } else {
163075 diff = e.wheelDelta / 1e3;
163076 }
163077 diff = diff * r.wheelSensitivity;
163078 var needsWheelFix = e.deltaMode === 1;
163079 if (needsWheelFix) {
163080 diff *= 33;
163081 }
163082 var newZoom = cy.zoom() * Math.pow(10, diff);
163083 if (e.type === "gesturechange") {
163084 newZoom = r.gestureStartZoom * e.scale;
163085 }
163086 cy.zoom({
163087 level: newZoom,
163088 renderedPosition: {
163089 x: rpos[0],
163090 y: rpos[1]
163091 }
163092 });
163093 cy.emit(e.type === "gesturechange" ? "pinchzoom" : "scrollzoom");
163094 }
163095 };
163096 r.registerBinding(r.container, "wheel", wheelHandler, true);
163097 r.registerBinding(window, "scroll", function scrollHandler(e) {
163098 r.scrollingPage = true;
163099 clearTimeout(r.scrollingPageTimeout);
163100 r.scrollingPageTimeout = setTimeout(function() {
163101 r.scrollingPage = false;
163102 }, 250);
163103 }, true);
163104 r.registerBinding(r.container, "gesturestart", function gestureStartHandler(e) {
163105 r.gestureStartZoom = r.cy.zoom();
163106 if (!r.hasTouchStarted) {
163107 e.preventDefault();
163108 }
163109 }, true);
163110 r.registerBinding(r.container, "gesturechange", function(e) {
163111 if (!r.hasTouchStarted) {
163112 wheelHandler(e);
163113 }
163114 }, true);
163115 r.registerBinding(r.container, "mouseout", function mouseOutHandler(e) {
163116 var pos = r.projectIntoViewport(e.clientX, e.clientY);
163117 r.cy.emit({
163118 originalEvent: e,
163119 type: "mouseout",
163120 position: {
163121 x: pos[0],
163122 y: pos[1]
163123 }
163124 });
163125 }, false);
163126 r.registerBinding(r.container, "mouseover", function mouseOverHandler(e) {
163127 var pos = r.projectIntoViewport(e.clientX, e.clientY);
163128 r.cy.emit({
163129 originalEvent: e,
163130 type: "mouseover",
163131 position: {
163132 x: pos[0],
163133 y: pos[1]
163134 }
163135 });
163136 }, false);
163137 var f1x1, f1y1, f2x1, f2y1;
163138 var distance1, distance1Sq;
163139 var center1, modelCenter1;
163140 var offsetLeft, offsetTop;
163141 var containerWidth, containerHeight;
163142 var twoFingersStartInside;
163143 var distance2 = function distance3(x1, y1, x2, y2) {
163144 return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
163145 };
163146 var distanceSq = function distanceSq2(x1, y1, x2, y2) {
163147 return (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1);
163148 };
163149 var touchstartHandler;
163150 r.registerBinding(r.container, "touchstart", touchstartHandler = function touchstartHandler2(e) {
163151 r.hasTouchStarted = true;
163152 if (!eventInContainer(e)) {
163153 return;
163154 }
163155 blurActiveDomElement();
163156 r.touchData.capture = true;
163157 r.data.bgActivePosistion = void 0;
163158 var cy = r.cy;
163159 var now3 = r.touchData.now;
163160 var earlier = r.touchData.earlier;
163161 if (e.touches[0]) {
163162 var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
163163 now3[0] = pos[0];
163164 now3[1] = pos[1];
163165 }
163166 if (e.touches[1]) {
163167 var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);
163168 now3[2] = pos[0];
163169 now3[3] = pos[1];
163170 }
163171 if (e.touches[2]) {
163172 var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);
163173 now3[4] = pos[0];
163174 now3[5] = pos[1];
163175 }
163176 if (e.touches[1]) {
163177 r.touchData.singleTouchMoved = true;
163178 freeDraggedElements(r.dragData.touchDragEles);
163179 var offsets = r.findContainerClientCoords();
163180 offsetLeft = offsets[0];
163181 offsetTop = offsets[1];
163182 containerWidth = offsets[2];
163183 containerHeight = offsets[3];
163184 f1x1 = e.touches[0].clientX - offsetLeft;
163185 f1y1 = e.touches[0].clientY - offsetTop;
163186 f2x1 = e.touches[1].clientX - offsetLeft;
163187 f2y1 = e.touches[1].clientY - offsetTop;
163188 twoFingersStartInside = 0 <= f1x1 && f1x1 <= containerWidth && 0 <= f2x1 && f2x1 <= containerWidth && 0 <= f1y1 && f1y1 <= containerHeight && 0 <= f2y1 && f2y1 <= containerHeight;
163189 var pan = cy.pan();
163190 var zoom = cy.zoom();
163191 distance1 = distance2(f1x1, f1y1, f2x1, f2y1);
163192 distance1Sq = distanceSq(f1x1, f1y1, f2x1, f2y1);
163193 center1 = [(f1x1 + f2x1) / 2, (f1y1 + f2y1) / 2];
163194 modelCenter1 = [(center1[0] - pan.x) / zoom, (center1[1] - pan.y) / zoom];
163195 var cxtDistThreshold = 200;
163196 var cxtDistThresholdSq = cxtDistThreshold * cxtDistThreshold;
163197 if (distance1Sq < cxtDistThresholdSq && !e.touches[2]) {
163198 var near1 = r.findNearestElement(now3[0], now3[1], true, true);
163199 var near2 = r.findNearestElement(now3[2], now3[3], true, true);
163200 if (near1 && near1.isNode()) {
163201 near1.activate().emit({
163202 originalEvent: e,
163203 type: "cxttapstart",
163204 position: {
163205 x: now3[0],
163206 y: now3[1]
163207 }
163208 });
163209 r.touchData.start = near1;
163210 } else if (near2 && near2.isNode()) {
163211 near2.activate().emit({
163212 originalEvent: e,
163213 type: "cxttapstart",
163214 position: {
163215 x: now3[0],
163216 y: now3[1]
163217 }
163218 });
163219 r.touchData.start = near2;
163220 } else {
163221 cy.emit({
163222 originalEvent: e,
163223 type: "cxttapstart",
163224 position: {
163225 x: now3[0],
163226 y: now3[1]
163227 }
163228 });
163229 }
163230 if (r.touchData.start) {
163231 r.touchData.start._private.grabbed = false;
163232 }
163233 r.touchData.cxt = true;
163234 r.touchData.cxtDragged = false;
163235 r.data.bgActivePosistion = void 0;
163236 r.redraw();
163237 return;
163238 }
163239 }
163240 if (e.touches[2]) {
163241 if (cy.boxSelectionEnabled()) {
163242 e.preventDefault();
163243 }
163244 } else if (e.touches[1])
163245 ;
163246 else if (e.touches[0]) {
163247 var nears = r.findNearestElements(now3[0], now3[1], true, true);
163248 var near = nears[0];
163249 if (near != null) {
163250 near.activate();
163251 r.touchData.start = near;
163252 r.touchData.starts = nears;
163253 if (r.nodeIsGrabbable(near)) {
163254 var draggedEles = r.dragData.touchDragEles = cy.collection();
163255 var selectedNodes = null;
163256 r.redrawHint("eles", true);
163257 r.redrawHint("drag", true);
163258 if (near.selected()) {
163259 selectedNodes = cy.$(function(ele) {
163260 return ele.selected() && r.nodeIsGrabbable(ele);
163261 });
163262 addNodesToDrag(selectedNodes, {
163263 addToList: draggedEles
163264 });
163265 } else {
163266 addNodeToDrag(near, {
163267 addToList: draggedEles
163268 });
163269 }
163270 setGrabTarget(near);
163271 var makeEvent = function makeEvent2(type2) {
163272 return {
163273 originalEvent: e,
163274 type: type2,
163275 position: {
163276 x: now3[0],
163277 y: now3[1]
163278 }
163279 };
163280 };
163281 near.emit(makeEvent("grabon"));
163282 if (selectedNodes) {
163283 selectedNodes.forEach(function(n) {
163284 n.emit(makeEvent("grab"));
163285 });
163286 } else {
163287 near.emit(makeEvent("grab"));
163288 }
163289 }
163290 }
163291 triggerEvents(near, ["touchstart", "tapstart", "vmousedown"], e, {
163292 x: now3[0],
163293 y: now3[1]
163294 });
163295 if (near == null) {
163296 r.data.bgActivePosistion = {
163297 x: pos[0],
163298 y: pos[1]
163299 };
163300 r.redrawHint("select", true);
163301 r.redraw();
163302 }
163303 r.touchData.singleTouchMoved = false;
163304 r.touchData.singleTouchStartTime = +/* @__PURE__ */ new Date();
163305 clearTimeout(r.touchData.tapholdTimeout);
163306 r.touchData.tapholdTimeout = setTimeout(function() {
163307 if (r.touchData.singleTouchMoved === false && !r.pinching && !r.touchData.selecting) {
163308 triggerEvents(r.touchData.start, ["taphold"], e, {
163309 x: now3[0],
163310 y: now3[1]
163311 });
163312 }
163313 }, r.tapholdDuration);
163314 }
163315 if (e.touches.length >= 1) {
163316 var sPos = r.touchData.startPosition = [];
163317 for (var i3 = 0; i3 < now3.length; i3++) {
163318 sPos[i3] = earlier[i3] = now3[i3];
163319 }
163320 var touch0 = e.touches[0];
163321 r.touchData.startGPosition = [touch0.clientX, touch0.clientY];
163322 }
163323 }, false);
163324 var touchmoveHandler;
163325 r.registerBinding(window, "touchmove", touchmoveHandler = function touchmoveHandler2(e) {
163326 var capture = r.touchData.capture;
163327 if (!capture && !eventInContainer(e)) {
163328 return;
163329 }
163330 var select2 = r.selection;
163331 var cy = r.cy;
163332 var now3 = r.touchData.now;
163333 var earlier = r.touchData.earlier;
163334 var zoom = cy.zoom();
163335 if (e.touches[0]) {
163336 var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
163337 now3[0] = pos[0];
163338 now3[1] = pos[1];
163339 }
163340 if (e.touches[1]) {
163341 var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);
163342 now3[2] = pos[0];
163343 now3[3] = pos[1];
163344 }
163345 if (e.touches[2]) {
163346 var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);
163347 now3[4] = pos[0];
163348 now3[5] = pos[1];
163349 }
163350 var startGPos = r.touchData.startGPosition;
163351 var isOverThresholdDrag;
163352 if (capture && e.touches[0] && startGPos) {
163353 var disp = [];
163354 for (var j = 0; j < now3.length; j++) {
163355 disp[j] = now3[j] - earlier[j];
163356 }
163357 var dx = e.touches[0].clientX - startGPos[0];
163358 var dx2 = dx * dx;
163359 var dy = e.touches[0].clientY - startGPos[1];
163360 var dy2 = dy * dy;
163361 var dist22 = dx2 + dy2;
163362 isOverThresholdDrag = dist22 >= r.touchTapThreshold2;
163363 }
163364 if (capture && r.touchData.cxt) {
163365 e.preventDefault();
163366 var f1x2 = e.touches[0].clientX - offsetLeft, f1y2 = e.touches[0].clientY - offsetTop;
163367 var f2x2 = e.touches[1].clientX - offsetLeft, f2y2 = e.touches[1].clientY - offsetTop;
163368 var distance2Sq = distanceSq(f1x2, f1y2, f2x2, f2y2);
163369 var factorSq = distance2Sq / distance1Sq;
163370 var distThreshold = 150;
163371 var distThresholdSq = distThreshold * distThreshold;
163372 var factorThreshold = 1.5;
163373 var factorThresholdSq = factorThreshold * factorThreshold;
163374 if (factorSq >= factorThresholdSq || distance2Sq >= distThresholdSq) {
163375 r.touchData.cxt = false;
163376 r.data.bgActivePosistion = void 0;
163377 r.redrawHint("select", true);
163378 var cxtEvt = {
163379 originalEvent: e,
163380 type: "cxttapend",
163381 position: {
163382 x: now3[0],
163383 y: now3[1]
163384 }
163385 };
163386 if (r.touchData.start) {
163387 r.touchData.start.unactivate().emit(cxtEvt);
163388 r.touchData.start = null;
163389 } else {
163390 cy.emit(cxtEvt);
163391 }
163392 }
163393 }
163394 if (capture && r.touchData.cxt) {
163395 var cxtEvt = {
163396 originalEvent: e,
163397 type: "cxtdrag",
163398 position: {
163399 x: now3[0],
163400 y: now3[1]
163401 }
163402 };
163403 r.data.bgActivePosistion = void 0;
163404 r.redrawHint("select", true);
163405 if (r.touchData.start) {
163406 r.touchData.start.emit(cxtEvt);
163407 } else {
163408 cy.emit(cxtEvt);
163409 }
163410 if (r.touchData.start) {
163411 r.touchData.start._private.grabbed = false;
163412 }
163413 r.touchData.cxtDragged = true;
163414 var near = r.findNearestElement(now3[0], now3[1], true, true);
163415 if (!r.touchData.cxtOver || near !== r.touchData.cxtOver) {
163416 if (r.touchData.cxtOver) {
163417 r.touchData.cxtOver.emit({
163418 originalEvent: e,
163419 type: "cxtdragout",
163420 position: {
163421 x: now3[0],
163422 y: now3[1]
163423 }
163424 });
163425 }
163426 r.touchData.cxtOver = near;
163427 if (near) {
163428 near.emit({
163429 originalEvent: e,
163430 type: "cxtdragover",
163431 position: {
163432 x: now3[0],
163433 y: now3[1]
163434 }
163435 });
163436 }
163437 }
163438 } else if (capture && e.touches[2] && cy.boxSelectionEnabled()) {
163439 e.preventDefault();
163440 r.data.bgActivePosistion = void 0;
163441 this.lastThreeTouch = +/* @__PURE__ */ new Date();
163442 if (!r.touchData.selecting) {
163443 cy.emit({
163444 originalEvent: e,
163445 type: "boxstart",
163446 position: {
163447 x: now3[0],
163448 y: now3[1]
163449 }
163450 });
163451 }
163452 r.touchData.selecting = true;
163453 r.touchData.didSelect = true;
163454 select2[4] = 1;
163455 if (!select2 || select2.length === 0 || select2[0] === void 0) {
163456 select2[0] = (now3[0] + now3[2] + now3[4]) / 3;
163457 select2[1] = (now3[1] + now3[3] + now3[5]) / 3;
163458 select2[2] = (now3[0] + now3[2] + now3[4]) / 3 + 1;
163459 select2[3] = (now3[1] + now3[3] + now3[5]) / 3 + 1;
163460 } else {
163461 select2[2] = (now3[0] + now3[2] + now3[4]) / 3;
163462 select2[3] = (now3[1] + now3[3] + now3[5]) / 3;
163463 }
163464 r.redrawHint("select", true);
163465 r.redraw();
163466 } else if (capture && e.touches[1] && !r.touchData.didSelect && cy.zoomingEnabled() && cy.panningEnabled() && cy.userZoomingEnabled() && cy.userPanningEnabled()) {
163467 e.preventDefault();
163468 r.data.bgActivePosistion = void 0;
163469 r.redrawHint("select", true);
163470 var draggedEles = r.dragData.touchDragEles;
163471 if (draggedEles) {
163472 r.redrawHint("drag", true);
163473 for (var i3 = 0; i3 < draggedEles.length; i3++) {
163474 var de_p = draggedEles[i3]._private;
163475 de_p.grabbed = false;
163476 de_p.rscratch.inDragLayer = false;
163477 }
163478 }
163479 var _start = r.touchData.start;
163480 var f1x2 = e.touches[0].clientX - offsetLeft, f1y2 = e.touches[0].clientY - offsetTop;
163481 var f2x2 = e.touches[1].clientX - offsetLeft, f2y2 = e.touches[1].clientY - offsetTop;
163482 var distance22 = distance2(f1x2, f1y2, f2x2, f2y2);
163483 var factor = distance22 / distance1;
163484 if (twoFingersStartInside) {
163485 var df1x = f1x2 - f1x1;
163486 var df1y = f1y2 - f1y1;
163487 var df2x = f2x2 - f2x1;
163488 var df2y = f2y2 - f2y1;
163489 var tx = (df1x + df2x) / 2;
163490 var ty = (df1y + df2y) / 2;
163491 var zoom1 = cy.zoom();
163492 var zoom2 = zoom1 * factor;
163493 var pan1 = cy.pan();
163494 var ctrx = modelCenter1[0] * zoom1 + pan1.x;
163495 var ctry = modelCenter1[1] * zoom1 + pan1.y;
163496 var pan2 = {
163497 x: -zoom2 / zoom1 * (ctrx - pan1.x - tx) + ctrx,
163498 y: -zoom2 / zoom1 * (ctry - pan1.y - ty) + ctry
163499 };
163500 if (_start && _start.active()) {
163501 var draggedEles = r.dragData.touchDragEles;
163502 freeDraggedElements(draggedEles);
163503 r.redrawHint("drag", true);
163504 r.redrawHint("eles", true);
163505 _start.unactivate().emit("freeon");
163506 draggedEles.emit("free");
163507 if (r.dragData.didDrag) {
163508 _start.emit("dragfreeon");
163509 draggedEles.emit("dragfree");
163510 }
163511 }
163512 cy.viewport({
163513 zoom: zoom2,
163514 pan: pan2,
163515 cancelOnFailedZoom: true
163516 });
163517 cy.emit("pinchzoom");
163518 distance1 = distance22;
163519 f1x1 = f1x2;
163520 f1y1 = f1y2;
163521 f2x1 = f2x2;
163522 f2y1 = f2y2;
163523 r.pinching = true;
163524 }
163525 if (e.touches[0]) {
163526 var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
163527 now3[0] = pos[0];
163528 now3[1] = pos[1];
163529 }
163530 if (e.touches[1]) {
163531 var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);
163532 now3[2] = pos[0];
163533 now3[3] = pos[1];
163534 }
163535 if (e.touches[2]) {
163536 var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);
163537 now3[4] = pos[0];
163538 now3[5] = pos[1];
163539 }
163540 } else if (e.touches[0] && !r.touchData.didSelect) {
163541 var start2 = r.touchData.start;
163542 var last2 = r.touchData.last;
163543 var near;
163544 if (!r.hoverData.draggingEles && !r.swipePanning) {
163545 near = r.findNearestElement(now3[0], now3[1], true, true);
163546 }
163547 if (capture && start2 != null) {
163548 e.preventDefault();
163549 }
163550 if (capture && start2 != null && r.nodeIsDraggable(start2)) {
163551 if (isOverThresholdDrag) {
163552 var draggedEles = r.dragData.touchDragEles;
163553 var justStartedDrag = !r.dragData.didDrag;
163554 if (justStartedDrag) {
163555 addNodesToDrag(draggedEles, {
163556 inDragLayer: true
163557 });
163558 }
163559 r.dragData.didDrag = true;
163560 var totalShift = {
163561 x: 0,
163562 y: 0
163563 };
163564 if (number$12(disp[0]) && number$12(disp[1])) {
163565 totalShift.x += disp[0];
163566 totalShift.y += disp[1];
163567 if (justStartedDrag) {
163568 r.redrawHint("eles", true);
163569 var dragDelta = r.touchData.dragDelta;
163570 if (dragDelta && number$12(dragDelta[0]) && number$12(dragDelta[1])) {
163571 totalShift.x += dragDelta[0];
163572 totalShift.y += dragDelta[1];
163573 }
163574 }
163575 }
163576 r.hoverData.draggingEles = true;
163577 draggedEles.silentShift(totalShift).emit("position drag");
163578 r.redrawHint("drag", true);
163579 if (r.touchData.startPosition[0] == earlier[0] && r.touchData.startPosition[1] == earlier[1]) {
163580 r.redrawHint("eles", true);
163581 }
163582 r.redraw();
163583 } else {
163584 var dragDelta = r.touchData.dragDelta = r.touchData.dragDelta || [];
163585 if (dragDelta.length === 0) {
163586 dragDelta.push(disp[0]);
163587 dragDelta.push(disp[1]);
163588 } else {
163589 dragDelta[0] += disp[0];
163590 dragDelta[1] += disp[1];
163591 }
163592 }
163593 }
163594 {
163595 triggerEvents(start2 || near, ["touchmove", "tapdrag", "vmousemove"], e, {
163596 x: now3[0],
163597 y: now3[1]
163598 });
163599 if ((!start2 || !start2.grabbed()) && near != last2) {
163600 if (last2) {
163601 last2.emit({
163602 originalEvent: e,
163603 type: "tapdragout",
163604 position: {
163605 x: now3[0],
163606 y: now3[1]
163607 }
163608 });
163609 }
163610 if (near) {
163611 near.emit({
163612 originalEvent: e,
163613 type: "tapdragover",
163614 position: {
163615 x: now3[0],
163616 y: now3[1]
163617 }
163618 });
163619 }
163620 }
163621 r.touchData.last = near;
163622 }
163623 if (capture) {
163624 for (var i3 = 0; i3 < now3.length; i3++) {
163625 if (now3[i3] && r.touchData.startPosition[i3] && isOverThresholdDrag) {
163626 r.touchData.singleTouchMoved = true;
163627 }
163628 }
163629 }
163630 if (capture && (start2 == null || start2.pannable()) && cy.panningEnabled() && cy.userPanningEnabled()) {
163631 var allowPassthrough = allowPanningPassthrough(start2, r.touchData.starts);
163632 if (allowPassthrough) {
163633 e.preventDefault();
163634 if (!r.data.bgActivePosistion) {
163635 r.data.bgActivePosistion = array2point(r.touchData.startPosition);
163636 }
163637 if (r.swipePanning) {
163638 cy.panBy({
163639 x: disp[0] * zoom,
163640 y: disp[1] * zoom
163641 });
163642 cy.emit("dragpan");
163643 } else if (isOverThresholdDrag) {
163644 r.swipePanning = true;
163645 cy.panBy({
163646 x: dx * zoom,
163647 y: dy * zoom
163648 });
163649 cy.emit("dragpan");
163650 if (start2) {
163651 start2.unactivate();
163652 r.redrawHint("select", true);
163653 r.touchData.start = null;
163654 }
163655 }
163656 }
163657 var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
163658 now3[0] = pos[0];
163659 now3[1] = pos[1];
163660 }
163661 }
163662 for (var j = 0; j < now3.length; j++) {
163663 earlier[j] = now3[j];
163664 }
163665 if (capture && e.touches.length > 0 && !r.hoverData.draggingEles && !r.swipePanning && r.data.bgActivePosistion != null) {
163666 r.data.bgActivePosistion = void 0;
163667 r.redrawHint("select", true);
163668 r.redraw();
163669 }
163670 }, false);
163671 var touchcancelHandler;
163672 r.registerBinding(window, "touchcancel", touchcancelHandler = function touchcancelHandler2(e) {
163673 var start2 = r.touchData.start;
163674 r.touchData.capture = false;
163675 if (start2) {
163676 start2.unactivate();
163677 }
163678 });
163679 var touchendHandler, didDoubleTouch, touchTimeout, prevTouchTimeStamp;
163680 r.registerBinding(window, "touchend", touchendHandler = function touchendHandler2(e) {
163681 var start2 = r.touchData.start;
163682 var capture = r.touchData.capture;
163683 if (capture) {
163684 if (e.touches.length === 0) {
163685 r.touchData.capture = false;
163686 }
163687 e.preventDefault();
163688 } else {
163689 return;
163690 }
163691 var select2 = r.selection;
163692 r.swipePanning = false;
163693 r.hoverData.draggingEles = false;
163694 var cy = r.cy;
163695 var zoom = cy.zoom();
163696 var now3 = r.touchData.now;
163697 var earlier = r.touchData.earlier;
163698 if (e.touches[0]) {
163699 var pos = r.projectIntoViewport(e.touches[0].clientX, e.touches[0].clientY);
163700 now3[0] = pos[0];
163701 now3[1] = pos[1];
163702 }
163703 if (e.touches[1]) {
163704 var pos = r.projectIntoViewport(e.touches[1].clientX, e.touches[1].clientY);
163705 now3[2] = pos[0];
163706 now3[3] = pos[1];
163707 }
163708 if (e.touches[2]) {
163709 var pos = r.projectIntoViewport(e.touches[2].clientX, e.touches[2].clientY);
163710 now3[4] = pos[0];
163711 now3[5] = pos[1];
163712 }
163713 if (start2) {
163714 start2.unactivate();
163715 }
163716 var ctxTapend;
163717 if (r.touchData.cxt) {
163718 ctxTapend = {
163719 originalEvent: e,
163720 type: "cxttapend",
163721 position: {
163722 x: now3[0],
163723 y: now3[1]
163724 }
163725 };
163726 if (start2) {
163727 start2.emit(ctxTapend);
163728 } else {
163729 cy.emit(ctxTapend);
163730 }
163731 if (!r.touchData.cxtDragged) {
163732 var ctxTap = {
163733 originalEvent: e,
163734 type: "cxttap",
163735 position: {
163736 x: now3[0],
163737 y: now3[1]
163738 }
163739 };
163740 if (start2) {
163741 start2.emit(ctxTap);
163742 } else {
163743 cy.emit(ctxTap);
163744 }
163745 }
163746 if (r.touchData.start) {
163747 r.touchData.start._private.grabbed = false;
163748 }
163749 r.touchData.cxt = false;
163750 r.touchData.start = null;
163751 r.redraw();
163752 return;
163753 }
163754 if (!e.touches[2] && cy.boxSelectionEnabled() && r.touchData.selecting) {
163755 r.touchData.selecting = false;
163756 var box = cy.collection(r.getAllInBox(select2[0], select2[1], select2[2], select2[3]));
163757 select2[0] = void 0;
163758 select2[1] = void 0;
163759 select2[2] = void 0;
163760 select2[3] = void 0;
163761 select2[4] = 0;
163762 r.redrawHint("select", true);
163763 cy.emit({
163764 type: "boxend",
163765 originalEvent: e,
163766 position: {
163767 x: now3[0],
163768 y: now3[1]
163769 }
163770 });
163771 var eleWouldBeSelected = function eleWouldBeSelected2(ele) {
163772 return ele.selectable() && !ele.selected();
163773 };
163774 box.emit("box").stdFilter(eleWouldBeSelected).select().emit("boxselect");
163775 if (box.nonempty()) {
163776 r.redrawHint("eles", true);
163777 }
163778 r.redraw();
163779 }
163780 if (start2 != null) {
163781 start2.unactivate();
163782 }
163783 if (e.touches[2]) {
163784 r.data.bgActivePosistion = void 0;
163785 r.redrawHint("select", true);
163786 } else if (e.touches[1])
163787 ;
163788 else if (e.touches[0])
163789 ;
163790 else if (!e.touches[0]) {
163791 r.data.bgActivePosistion = void 0;
163792 r.redrawHint("select", true);
163793 var draggedEles = r.dragData.touchDragEles;
163794 if (start2 != null) {
163795 var startWasGrabbed = start2._private.grabbed;
163796 freeDraggedElements(draggedEles);
163797 r.redrawHint("drag", true);
163798 r.redrawHint("eles", true);
163799 if (startWasGrabbed) {
163800 start2.emit("freeon");
163801 draggedEles.emit("free");
163802 if (r.dragData.didDrag) {
163803 start2.emit("dragfreeon");
163804 draggedEles.emit("dragfree");
163805 }
163806 }
163807 triggerEvents(start2, ["touchend", "tapend", "vmouseup", "tapdragout"], e, {
163808 x: now3[0],
163809 y: now3[1]
163810 });
163811 start2.unactivate();
163812 r.touchData.start = null;
163813 } else {
163814 var near = r.findNearestElement(now3[0], now3[1], true, true);
163815 triggerEvents(near, ["touchend", "tapend", "vmouseup", "tapdragout"], e, {
163816 x: now3[0],
163817 y: now3[1]
163818 });
163819 }
163820 var dx = r.touchData.startPosition[0] - now3[0];
163821 var dx2 = dx * dx;
163822 var dy = r.touchData.startPosition[1] - now3[1];
163823 var dy2 = dy * dy;
163824 var dist22 = dx2 + dy2;
163825 var rdist2 = dist22 * zoom * zoom;
163826 if (!r.touchData.singleTouchMoved) {
163827 if (!start2) {
163828 cy.$(":selected").unselect(["tapunselect"]);
163829 }
163830 triggerEvents(start2, ["tap", "vclick"], e, {
163831 x: now3[0],
163832 y: now3[1]
163833 });
163834 didDoubleTouch = false;
163835 if (e.timeStamp - prevTouchTimeStamp <= cy.multiClickDebounceTime()) {
163836 touchTimeout && clearTimeout(touchTimeout);
163837 didDoubleTouch = true;
163838 prevTouchTimeStamp = null;
163839 triggerEvents(start2, ["dbltap", "vdblclick"], e, {
163840 x: now3[0],
163841 y: now3[1]
163842 });
163843 } else {
163844 touchTimeout = setTimeout(function() {
163845 if (didDoubleTouch)
163846 return;
163847 triggerEvents(start2, ["onetap", "voneclick"], e, {
163848 x: now3[0],
163849 y: now3[1]
163850 });
163851 }, cy.multiClickDebounceTime());
163852 prevTouchTimeStamp = e.timeStamp;
163853 }
163854 }
163855 if (start2 != null && !r.dragData.didDrag && start2._private.selectable && rdist2 < r.touchTapThreshold2 && !r.pinching) {
163856 if (cy.selectionType() === "single") {
163857 cy.$(isSelected).unmerge(start2).unselect(["tapunselect"]);
163858 start2.select(["tapselect"]);
163859 } else {
163860 if (start2.selected()) {
163861 start2.unselect(["tapunselect"]);
163862 } else {
163863 start2.select(["tapselect"]);
163864 }
163865 }
163866 r.redrawHint("eles", true);
163867 }
163868 r.touchData.singleTouchMoved = true;
163869 }
163870 for (var j = 0; j < now3.length; j++) {
163871 earlier[j] = now3[j];
163872 }
163873 r.dragData.didDrag = false;
163874 if (e.touches.length === 0) {
163875 r.touchData.dragDelta = [];
163876 r.touchData.startPosition = null;
163877 r.touchData.startGPosition = null;
163878 r.touchData.didSelect = false;
163879 }
163880 if (e.touches.length < 2) {
163881 if (e.touches.length === 1) {
163882 r.touchData.startGPosition = [e.touches[0].clientX, e.touches[0].clientY];
163883 }
163884 r.pinching = false;
163885 r.redrawHint("eles", true);
163886 r.redraw();
163887 }
163888 }, false);
163889 if (typeof TouchEvent === "undefined") {
163890 var pointers = [];
163891 var makeTouch = function makeTouch2(e) {
163892 return {
163893 clientX: e.clientX,
163894 clientY: e.clientY,
163895 force: 1,
163896 identifier: e.pointerId,
163897 pageX: e.pageX,
163898 pageY: e.pageY,
163899 radiusX: e.width / 2,
163900 radiusY: e.height / 2,
163901 screenX: e.screenX,
163902 screenY: e.screenY,
163903 target: e.target
163904 };
163905 };
163906 var makePointer = function makePointer2(e) {
163907 return {
163908 event: e,
163909 touch: makeTouch(e)
163910 };
163911 };
163912 var addPointer = function addPointer2(e) {
163913 pointers.push(makePointer(e));
163914 };
163915 var removePointer = function removePointer2(e) {
163916 for (var i3 = 0; i3 < pointers.length; i3++) {
163917 var p2 = pointers[i3];
163918 if (p2.event.pointerId === e.pointerId) {
163919 pointers.splice(i3, 1);
163920 return;
163921 }
163922 }
163923 };
163924 var updatePointer = function updatePointer2(e) {
163925 var p2 = pointers.filter(function(p3) {
163926 return p3.event.pointerId === e.pointerId;
163927 })[0];
163928 p2.event = e;
163929 p2.touch = makeTouch(e);
163930 };
163931 var addTouchesToEvent = function addTouchesToEvent2(e) {
163932 e.touches = pointers.map(function(p2) {
163933 return p2.touch;
163934 });
163935 };
163936 var pointerIsMouse = function pointerIsMouse2(e) {
163937 return e.pointerType === "mouse" || e.pointerType === 4;
163938 };
163939 r.registerBinding(r.container, "pointerdown", function(e) {
163940 if (pointerIsMouse(e)) {
163941 return;
163942 }
163943 e.preventDefault();
163944 addPointer(e);
163945 addTouchesToEvent(e);
163946 touchstartHandler(e);
163947 });
163948 r.registerBinding(r.container, "pointerup", function(e) {
163949 if (pointerIsMouse(e)) {
163950 return;
163951 }
163952 removePointer(e);
163953 addTouchesToEvent(e);
163954 touchendHandler(e);
163955 });
163956 r.registerBinding(r.container, "pointercancel", function(e) {
163957 if (pointerIsMouse(e)) {
163958 return;
163959 }
163960 removePointer(e);
163961 addTouchesToEvent(e);
163962 touchcancelHandler(e);
163963 });
163964 r.registerBinding(r.container, "pointermove", function(e) {
163965 if (pointerIsMouse(e)) {
163966 return;
163967 }
163968 e.preventDefault();
163969 updatePointer(e);
163970 addTouchesToEvent(e);
163971 touchmoveHandler(e);
163972 });
163973 }
163974 };
163975 var BRp$2 = {};
163976 BRp$2.generatePolygon = function(name2, points) {
163977 return this.nodeShapes[name2] = {
163978 renderer: this,
163979 name: name2,
163980 points,
163981 draw: function draw2(context, centerX, centerY, width2, height2) {
163982 this.renderer.nodeShapeImpl("polygon", context, centerX, centerY, width2, height2, this.points);
163983 },
163984 intersectLine: function intersectLine2(nodeX, nodeY, width2, height2, x2, y2, padding2) {
163985 return polygonIntersectLine(x2, y2, this.points, nodeX, nodeY, width2 / 2, height2 / 2, padding2);
163986 },
163987 checkPoint: function checkPoint(x2, y2, padding2, width2, height2, centerX, centerY) {
163988 return pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2, height2, [0, -1], padding2);
163989 }
163990 };
163991 };
163992 BRp$2.generateEllipse = function() {
163993 return this.nodeShapes["ellipse"] = {
163994 renderer: this,
163995 name: "ellipse",
163996 draw: function draw2(context, centerX, centerY, width2, height2) {
163997 this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width2, height2);
163998 },
163999 intersectLine: function intersectLine2(nodeX, nodeY, width2, height2, x2, y2, padding2) {
164000 return intersectLineEllipse(x2, y2, nodeX, nodeY, width2 / 2 + padding2, height2 / 2 + padding2);
164001 },
164002 checkPoint: function checkPoint(x2, y2, padding2, width2, height2, centerX, centerY) {
164003 return checkInEllipse(x2, y2, width2, height2, centerX, centerY, padding2);
164004 }
164005 };
164006 };
164007 BRp$2.generateRoundPolygon = function(name2, points) {
164008 var allPoints = new Array(points.length * 2);
164009 for (var i3 = 0; i3 < points.length / 2; i3++) {
164010 var sourceIndex = i3 * 2;
164011 var destIndex = void 0;
164012 if (i3 < points.length / 2 - 1) {
164013 destIndex = (i3 + 1) * 2;
164014 } else {
164015 destIndex = 0;
164016 }
164017 allPoints[i3 * 4] = points[sourceIndex];
164018 allPoints[i3 * 4 + 1] = points[sourceIndex + 1];
164019 var xDest = points[destIndex] - points[sourceIndex];
164020 var yDest = points[destIndex + 1] - points[sourceIndex + 1];
164021 var norm = Math.sqrt(xDest * xDest + yDest * yDest);
164022 allPoints[i3 * 4 + 2] = xDest / norm;
164023 allPoints[i3 * 4 + 3] = yDest / norm;
164024 }
164025 return this.nodeShapes[name2] = {
164026 renderer: this,
164027 name: name2,
164028 points: allPoints,
164029 draw: function draw2(context, centerX, centerY, width2, height2) {
164030 this.renderer.nodeShapeImpl("round-polygon", context, centerX, centerY, width2, height2, this.points);
164031 },
164032 intersectLine: function intersectLine2(nodeX, nodeY, width2, height2, x2, y2, padding2) {
164033 return roundPolygonIntersectLine(x2, y2, this.points, nodeX, nodeY, width2, height2);
164034 },
164035 checkPoint: function checkPoint(x2, y2, padding2, width2, height2, centerX, centerY) {
164036 return pointInsideRoundPolygon(x2, y2, this.points, centerX, centerY, width2, height2);
164037 }
164038 };
164039 };
164040 BRp$2.generateRoundRectangle = function() {
164041 return this.nodeShapes["round-rectangle"] = this.nodeShapes["roundrectangle"] = {
164042 renderer: this,
164043 name: "round-rectangle",
164044 points: generateUnitNgonPointsFitToSquare(4, 0),
164045 draw: function draw2(context, centerX, centerY, width2, height2) {
164046 this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width2, height2);
164047 },
164048 intersectLine: function intersectLine2(nodeX, nodeY, width2, height2, x2, y2, padding2) {
164049 return roundRectangleIntersectLine(x2, y2, nodeX, nodeY, width2, height2, padding2);
164050 },
164051 checkPoint: function checkPoint(x2, y2, padding2, width2, height2, centerX, centerY) {
164052 var cornerRadius = getRoundRectangleRadius(width2, height2);
164053 var diam = cornerRadius * 2;
164054 if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2, height2 - diam, [0, -1], padding2)) {
164055 return true;
164056 }
164057 if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2 - diam, height2, [0, -1], padding2)) {
164058 return true;
164059 }
164060 if (checkInEllipse(x2, y2, diam, diam, centerX - width2 / 2 + cornerRadius, centerY - height2 / 2 + cornerRadius, padding2)) {
164061 return true;
164062 }
164063 if (checkInEllipse(x2, y2, diam, diam, centerX + width2 / 2 - cornerRadius, centerY - height2 / 2 + cornerRadius, padding2)) {
164064 return true;
164065 }
164066 if (checkInEllipse(x2, y2, diam, diam, centerX + width2 / 2 - cornerRadius, centerY + height2 / 2 - cornerRadius, padding2)) {
164067 return true;
164068 }
164069 if (checkInEllipse(x2, y2, diam, diam, centerX - width2 / 2 + cornerRadius, centerY + height2 / 2 - cornerRadius, padding2)) {
164070 return true;
164071 }
164072 return false;
164073 }
164074 };
164075 };
164076 BRp$2.generateCutRectangle = function() {
164077 return this.nodeShapes["cut-rectangle"] = this.nodeShapes["cutrectangle"] = {
164078 renderer: this,
164079 name: "cut-rectangle",
164080 cornerLength: getCutRectangleCornerLength(),
164081 points: generateUnitNgonPointsFitToSquare(4, 0),
164082 draw: function draw2(context, centerX, centerY, width2, height2) {
164083 this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width2, height2);
164084 },
164085 generateCutTrianglePts: function generateCutTrianglePts(width2, height2, centerX, centerY) {
164086 var cl = this.cornerLength;
164087 var hh = height2 / 2;
164088 var hw = width2 / 2;
164089 var xBegin = centerX - hw;
164090 var xEnd = centerX + hw;
164091 var yBegin = centerY - hh;
164092 var yEnd = centerY + hh;
164093 return {
164094 topLeft: [xBegin, yBegin + cl, xBegin + cl, yBegin, xBegin + cl, yBegin + cl],
164095 topRight: [xEnd - cl, yBegin, xEnd, yBegin + cl, xEnd - cl, yBegin + cl],
164096 bottomRight: [xEnd, yEnd - cl, xEnd - cl, yEnd, xEnd - cl, yEnd - cl],
164097 bottomLeft: [xBegin + cl, yEnd, xBegin, yEnd - cl, xBegin + cl, yEnd - cl]
164098 };
164099 },
164100 intersectLine: function intersectLine2(nodeX, nodeY, width2, height2, x2, y2, padding2) {
164101 var cPts = this.generateCutTrianglePts(width2 + 2 * padding2, height2 + 2 * padding2, nodeX, nodeY);
164102 var pts2 = [].concat.apply([], [cPts.topLeft.splice(0, 4), cPts.topRight.splice(0, 4), cPts.bottomRight.splice(0, 4), cPts.bottomLeft.splice(0, 4)]);
164103 return polygonIntersectLine(x2, y2, pts2, nodeX, nodeY);
164104 },
164105 checkPoint: function checkPoint(x2, y2, padding2, width2, height2, centerX, centerY) {
164106 if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2, height2 - 2 * this.cornerLength, [0, -1], padding2)) {
164107 return true;
164108 }
164109 if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2 - 2 * this.cornerLength, height2, [0, -1], padding2)) {
164110 return true;
164111 }
164112 var cutTrianglePts = this.generateCutTrianglePts(width2, height2, centerX, centerY);
164113 return pointInsidePolygonPoints(x2, y2, cutTrianglePts.topLeft) || pointInsidePolygonPoints(x2, y2, cutTrianglePts.topRight) || pointInsidePolygonPoints(x2, y2, cutTrianglePts.bottomRight) || pointInsidePolygonPoints(x2, y2, cutTrianglePts.bottomLeft);
164114 }
164115 };
164116 };
164117 BRp$2.generateBarrel = function() {
164118 return this.nodeShapes["barrel"] = {
164119 renderer: this,
164120 name: "barrel",
164121 points: generateUnitNgonPointsFitToSquare(4, 0),
164122 draw: function draw2(context, centerX, centerY, width2, height2) {
164123 this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width2, height2);
164124 },
164125 intersectLine: function intersectLine2(nodeX, nodeY, width2, height2, x2, y2, padding2) {
164126 var t02 = 0.15;
164127 var t12 = 0.5;
164128 var t22 = 0.85;
164129 var bPts = this.generateBarrelBezierPts(width2 + 2 * padding2, height2 + 2 * padding2, nodeX, nodeY);
164130 var approximateBarrelCurvePts = function approximateBarrelCurvePts2(pts3) {
164131 var m0 = qbezierPtAt({
164132 x: pts3[0],
164133 y: pts3[1]
164134 }, {
164135 x: pts3[2],
164136 y: pts3[3]
164137 }, {
164138 x: pts3[4],
164139 y: pts3[5]
164140 }, t02);
164141 var m1 = qbezierPtAt({
164142 x: pts3[0],
164143 y: pts3[1]
164144 }, {
164145 x: pts3[2],
164146 y: pts3[3]
164147 }, {
164148 x: pts3[4],
164149 y: pts3[5]
164150 }, t12);
164151 var m2 = qbezierPtAt({
164152 x: pts3[0],
164153 y: pts3[1]
164154 }, {
164155 x: pts3[2],
164156 y: pts3[3]
164157 }, {
164158 x: pts3[4],
164159 y: pts3[5]
164160 }, t22);
164161 return [pts3[0], pts3[1], m0.x, m0.y, m1.x, m1.y, m2.x, m2.y, pts3[4], pts3[5]];
164162 };
164163 var pts2 = [].concat(approximateBarrelCurvePts(bPts.topLeft), approximateBarrelCurvePts(bPts.topRight), approximateBarrelCurvePts(bPts.bottomRight), approximateBarrelCurvePts(bPts.bottomLeft));
164164 return polygonIntersectLine(x2, y2, pts2, nodeX, nodeY);
164165 },
164166 generateBarrelBezierPts: function generateBarrelBezierPts(width2, height2, centerX, centerY) {
164167 var hh = height2 / 2;
164168 var hw = width2 / 2;
164169 var xBegin = centerX - hw;
164170 var xEnd = centerX + hw;
164171 var yBegin = centerY - hh;
164172 var yEnd = centerY + hh;
164173 var curveConstants = getBarrelCurveConstants(width2, height2);
164174 var hOffset = curveConstants.heightOffset;
164175 var wOffset = curveConstants.widthOffset;
164176 var ctrlPtXOffset = curveConstants.ctrlPtOffsetPct * width2;
164177 var pts2 = {
164178 topLeft: [xBegin, yBegin + hOffset, xBegin + ctrlPtXOffset, yBegin, xBegin + wOffset, yBegin],
164179 topRight: [xEnd - wOffset, yBegin, xEnd - ctrlPtXOffset, yBegin, xEnd, yBegin + hOffset],
164180 bottomRight: [xEnd, yEnd - hOffset, xEnd - ctrlPtXOffset, yEnd, xEnd - wOffset, yEnd],
164181 bottomLeft: [xBegin + wOffset, yEnd, xBegin + ctrlPtXOffset, yEnd, xBegin, yEnd - hOffset]
164182 };
164183 pts2.topLeft.isTop = true;
164184 pts2.topRight.isTop = true;
164185 pts2.bottomLeft.isBottom = true;
164186 pts2.bottomRight.isBottom = true;
164187 return pts2;
164188 },
164189 checkPoint: function checkPoint(x2, y2, padding2, width2, height2, centerX, centerY) {
164190 var curveConstants = getBarrelCurveConstants(width2, height2);
164191 var hOffset = curveConstants.heightOffset;
164192 var wOffset = curveConstants.widthOffset;
164193 if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2, height2 - 2 * hOffset, [0, -1], padding2)) {
164194 return true;
164195 }
164196 if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2 - 2 * wOffset, height2, [0, -1], padding2)) {
164197 return true;
164198 }
164199 var barrelCurvePts = this.generateBarrelBezierPts(width2, height2, centerX, centerY);
164200 var getCurveT = function getCurveT2(x3, y3, curvePts) {
164201 var x0 = curvePts[4];
164202 var x1 = curvePts[2];
164203 var x22 = curvePts[0];
164204 var y02 = curvePts[5];
164205 var y23 = curvePts[1];
164206 var xMin = Math.min(x0, x22);
164207 var xMax = Math.max(x0, x22);
164208 var yMin = Math.min(y02, y23);
164209 var yMax = Math.max(y02, y23);
164210 if (xMin <= x3 && x3 <= xMax && yMin <= y3 && y3 <= yMax) {
164211 var coeff = bezierPtsToQuadCoeff(x0, x1, x22);
164212 var roots = solveQuadratic(coeff[0], coeff[1], coeff[2], x3);
164213 var validRoots = roots.filter(function(r) {
164214 return 0 <= r && r <= 1;
164215 });
164216 if (validRoots.length > 0) {
164217 return validRoots[0];
164218 }
164219 }
164220 return null;
164221 };
164222 var curveRegions = Object.keys(barrelCurvePts);
164223 for (var i3 = 0; i3 < curveRegions.length; i3++) {
164224 var corner = curveRegions[i3];
164225 var cornerPts = barrelCurvePts[corner];
164226 var t4 = getCurveT(x2, y2, cornerPts);
164227 if (t4 == null) {
164228 continue;
164229 }
164230 var y0 = cornerPts[5];
164231 var y1 = cornerPts[3];
164232 var y22 = cornerPts[1];
164233 var bezY = qbezierAt(y0, y1, y22, t4);
164234 if (cornerPts.isTop && bezY <= y2) {
164235 return true;
164236 }
164237 if (cornerPts.isBottom && y2 <= bezY) {
164238 return true;
164239 }
164240 }
164241 return false;
164242 }
164243 };
164244 };
164245 BRp$2.generateBottomRoundrectangle = function() {
164246 return this.nodeShapes["bottom-round-rectangle"] = this.nodeShapes["bottomroundrectangle"] = {
164247 renderer: this,
164248 name: "bottom-round-rectangle",
164249 points: generateUnitNgonPointsFitToSquare(4, 0),
164250 draw: function draw2(context, centerX, centerY, width2, height2) {
164251 this.renderer.nodeShapeImpl(this.name, context, centerX, centerY, width2, height2);
164252 },
164253 intersectLine: function intersectLine2(nodeX, nodeY, width2, height2, x2, y2, padding2) {
164254 var topStartX = nodeX - (width2 / 2 + padding2);
164255 var topStartY = nodeY - (height2 / 2 + padding2);
164256 var topEndY = topStartY;
164257 var topEndX = nodeX + (width2 / 2 + padding2);
164258 var topIntersections = finiteLinesIntersect(x2, y2, nodeX, nodeY, topStartX, topStartY, topEndX, topEndY, false);
164259 if (topIntersections.length > 0) {
164260 return topIntersections;
164261 }
164262 return roundRectangleIntersectLine(x2, y2, nodeX, nodeY, width2, height2, padding2);
164263 },
164264 checkPoint: function checkPoint(x2, y2, padding2, width2, height2, centerX, centerY) {
164265 var cornerRadius = getRoundRectangleRadius(width2, height2);
164266 var diam = 2 * cornerRadius;
164267 if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2, height2 - diam, [0, -1], padding2)) {
164268 return true;
164269 }
164270 if (pointInsidePolygon(x2, y2, this.points, centerX, centerY, width2 - diam, height2, [0, -1], padding2)) {
164271 return true;
164272 }
164273 var outerWidth = width2 / 2 + 2 * padding2;
164274 var outerHeight = height2 / 2 + 2 * padding2;
164275 var points = [centerX - outerWidth, centerY - outerHeight, centerX - outerWidth, centerY, centerX + outerWidth, centerY, centerX + outerWidth, centerY - outerHeight];
164276 if (pointInsidePolygonPoints(x2, y2, points)) {
164277 return true;
164278 }
164279 if (checkInEllipse(x2, y2, diam, diam, centerX + width2 / 2 - cornerRadius, centerY + height2 / 2 - cornerRadius, padding2)) {
164280 return true;
164281 }
164282 if (checkInEllipse(x2, y2, diam, diam, centerX - width2 / 2 + cornerRadius, centerY + height2 / 2 - cornerRadius, padding2)) {
164283 return true;
164284 }
164285 return false;
164286 }
164287 };
164288 };
164289 BRp$2.registerNodeShapes = function() {
164290 var nodeShapes = this.nodeShapes = {};
164291 var renderer3 = this;
164292 this.generateEllipse();
164293 this.generatePolygon("triangle", generateUnitNgonPointsFitToSquare(3, 0));
164294 this.generateRoundPolygon("round-triangle", generateUnitNgonPointsFitToSquare(3, 0));
164295 this.generatePolygon("rectangle", generateUnitNgonPointsFitToSquare(4, 0));
164296 nodeShapes["square"] = nodeShapes["rectangle"];
164297 this.generateRoundRectangle();
164298 this.generateCutRectangle();
164299 this.generateBarrel();
164300 this.generateBottomRoundrectangle();
164301 {
164302 var diamondPoints = [0, 1, 1, 0, 0, -1, -1, 0];
164303 this.generatePolygon("diamond", diamondPoints);
164304 this.generateRoundPolygon("round-diamond", diamondPoints);
164305 }
164306 this.generatePolygon("pentagon", generateUnitNgonPointsFitToSquare(5, 0));
164307 this.generateRoundPolygon("round-pentagon", generateUnitNgonPointsFitToSquare(5, 0));
164308 this.generatePolygon("hexagon", generateUnitNgonPointsFitToSquare(6, 0));
164309 this.generateRoundPolygon("round-hexagon", generateUnitNgonPointsFitToSquare(6, 0));
164310 this.generatePolygon("heptagon", generateUnitNgonPointsFitToSquare(7, 0));
164311 this.generateRoundPolygon("round-heptagon", generateUnitNgonPointsFitToSquare(7, 0));
164312 this.generatePolygon("octagon", generateUnitNgonPointsFitToSquare(8, 0));
164313 this.generateRoundPolygon("round-octagon", generateUnitNgonPointsFitToSquare(8, 0));
164314 var star5Points = new Array(20);
164315 {
164316 var outerPoints = generateUnitNgonPoints(5, 0);
164317 var innerPoints = generateUnitNgonPoints(5, Math.PI / 5);
164318 var innerRadius = 0.5 * (3 - Math.sqrt(5));
164319 innerRadius *= 1.57;
164320 for (var i3 = 0; i3 < innerPoints.length / 2; i3++) {
164321 innerPoints[i3 * 2] *= innerRadius;
164322 innerPoints[i3 * 2 + 1] *= innerRadius;
164323 }
164324 for (var i3 = 0; i3 < 20 / 4; i3++) {
164325 star5Points[i3 * 4] = outerPoints[i3 * 2];
164326 star5Points[i3 * 4 + 1] = outerPoints[i3 * 2 + 1];
164327 star5Points[i3 * 4 + 2] = innerPoints[i3 * 2];
164328 star5Points[i3 * 4 + 3] = innerPoints[i3 * 2 + 1];
164329 }
164330 }
164331 star5Points = fitPolygonToSquare(star5Points);
164332 this.generatePolygon("star", star5Points);
164333 this.generatePolygon("vee", [-1, -1, 0, -0.333, 1, -1, 0, 1]);
164334 this.generatePolygon("rhomboid", [-1, -1, 0.333, -1, 1, 1, -0.333, 1]);
164335 this.nodeShapes["concavehexagon"] = this.generatePolygon("concave-hexagon", [-1, -0.95, -0.75, 0, -1, 0.95, 1, 0.95, 0.75, 0, 1, -0.95]);
164336 {
164337 var tagPoints = [-1, -1, 0.25, -1, 1, 0, 0.25, 1, -1, 1];
164338 this.generatePolygon("tag", tagPoints);
164339 this.generateRoundPolygon("round-tag", tagPoints);
164340 }
164341 nodeShapes.makePolygon = function(points) {
164342 var key = points.join("$");
164343 var name2 = "polygon-" + key;
164344 var shape;
164345 if (shape = this[name2]) {
164346 return shape;
164347 }
164348 return renderer3.generatePolygon(name2, points);
164349 };
164350 };
164351 var BRp$1 = {};
164352 BRp$1.timeToRender = function() {
164353 return this.redrawTotalTime / this.redrawCount;
164354 };
164355 BRp$1.redraw = function(options2) {
164356 options2 = options2 || staticEmptyObject();
164357 var r = this;
164358 if (r.averageRedrawTime === void 0) {
164359 r.averageRedrawTime = 0;
164360 }
164361 if (r.lastRedrawTime === void 0) {
164362 r.lastRedrawTime = 0;
164363 }
164364 if (r.lastDrawTime === void 0) {
164365 r.lastDrawTime = 0;
164366 }
164367 r.requestedFrame = true;
164368 r.renderOptions = options2;
164369 };
164370 BRp$1.beforeRender = function(fn2, priority) {
164371 if (this.destroyed) {
164372 return;
164373 }
164374 if (priority == null) {
164375 error("Priority is not optional for beforeRender");
164376 }
164377 var cbs = this.beforeRenderCallbacks;
164378 cbs.push({
164379 fn: fn2,
164380 priority
164381 });
164382 cbs.sort(function(a, b) {
164383 return b.priority - a.priority;
164384 });
164385 };
164386 var beforeRenderCallbacks = function beforeRenderCallbacks2(r, willDraw, startTime) {
164387 var cbs = r.beforeRenderCallbacks;
164388 for (var i3 = 0; i3 < cbs.length; i3++) {
164389 cbs[i3].fn(willDraw, startTime);
164390 }
164391 };
164392 BRp$1.startRenderLoop = function() {
164393 var r = this;
164394 var cy = r.cy;
164395 if (r.renderLoopStarted) {
164396 return;
164397 } else {
164398 r.renderLoopStarted = true;
164399 }
164400 var renderFn = function renderFn2(requestTime) {
164401 if (r.destroyed) {
164402 return;
164403 }
164404 if (cy.batching())
164405 ;
164406 else if (r.requestedFrame && !r.skipFrame) {
164407 beforeRenderCallbacks(r, true, requestTime);
164408 var startTime = performanceNow();
164409 r.render(r.renderOptions);
164410 var endTime = r.lastDrawTime = performanceNow();
164411 if (r.averageRedrawTime === void 0) {
164412 r.averageRedrawTime = endTime - startTime;
164413 }
164414 if (r.redrawCount === void 0) {
164415 r.redrawCount = 0;
164416 }
164417 r.redrawCount++;
164418 if (r.redrawTotalTime === void 0) {
164419 r.redrawTotalTime = 0;
164420 }
164421 var duration = endTime - startTime;
164422 r.redrawTotalTime += duration;
164423 r.lastRedrawTime = duration;
164424 r.averageRedrawTime = r.averageRedrawTime / 2 + duration / 2;
164425 r.requestedFrame = false;
164426 } else {
164427 beforeRenderCallbacks(r, false, requestTime);
164428 }
164429 r.skipFrame = false;
164430 requestAnimationFrame2(renderFn2);
164431 };
164432 requestAnimationFrame2(renderFn);
164433 };
164434 var BaseRenderer = function BaseRenderer2(options2) {
164435 this.init(options2);
164436 };
164437 var BR = BaseRenderer;
164438 var BRp = BR.prototype;
164439 BRp.clientFunctions = ["redrawHint", "render", "renderTo", "matchCanvasSize", "nodeShapeImpl", "arrowShapeImpl"];
164440 BRp.init = function(options2) {
164441 var r = this;
164442 r.options = options2;
164443 r.cy = options2.cy;
164444 var ctr = r.container = options2.cy.container();
164445 if (window$1) {
164446 var document2 = window$1.document;
164447 var head2 = document2.head;
164448 var stylesheetId = "__________cytoscape_stylesheet";
164449 var className = "__________cytoscape_container";
164450 var stylesheetAlreadyExists = document2.getElementById(stylesheetId) != null;
164451 if (ctr.className.indexOf(className) < 0) {
164452 ctr.className = (ctr.className || "") + " " + className;
164453 }
164454 if (!stylesheetAlreadyExists) {
164455 var stylesheet2 = document2.createElement("style");
164456 stylesheet2.id = stylesheetId;
164457 stylesheet2.innerHTML = "." + className + " { position: relative; }";
164458 head2.insertBefore(stylesheet2, head2.children[0]);
164459 }
164460 var computedStyle = window$1.getComputedStyle(ctr);
164461 var position3 = computedStyle.getPropertyValue("position");
164462 if (position3 === "static") {
164463 warn("A Cytoscape container has style position:static and so can not use UI extensions properly");
164464 }
164465 }
164466 r.selection = [void 0, void 0, void 0, void 0, 0];
164467 r.bezierProjPcts = [0.05, 0.225, 0.4, 0.5, 0.6, 0.775, 0.95];
164468 r.hoverData = {
164469 down: null,
164470 last: null,
164471 downTime: null,
164472 triggerMode: null,
164473 dragging: false,
164474 initialPan: [null, null],
164475 capture: false
164476 };
164477 r.dragData = {
164478 possibleDragElements: []
164479 };
164480 r.touchData = {
164481 start: null,
164482 capture: false,
164483 // These 3 fields related to tap, taphold events
164484 startPosition: [null, null, null, null, null, null],
164485 singleTouchStartTime: null,
164486 singleTouchMoved: true,
164487 now: [null, null, null, null, null, null],
164488 earlier: [null, null, null, null, null, null]
164489 };
164490 r.redraws = 0;
164491 r.showFps = options2.showFps;
164492 r.debug = options2.debug;
164493 r.hideEdgesOnViewport = options2.hideEdgesOnViewport;
164494 r.textureOnViewport = options2.textureOnViewport;
164495 r.wheelSensitivity = options2.wheelSensitivity;
164496 r.motionBlurEnabled = options2.motionBlur;
164497 r.forcedPixelRatio = number$12(options2.pixelRatio) ? options2.pixelRatio : null;
164498 r.motionBlur = options2.motionBlur;
164499 r.motionBlurOpacity = options2.motionBlurOpacity;
164500 r.motionBlurTransparency = 1 - r.motionBlurOpacity;
164501 r.motionBlurPxRatio = 1;
164502 r.mbPxRBlurry = 1;
164503 r.minMbLowQualFrames = 4;
164504 r.fullQualityMb = false;
164505 r.clearedForMotionBlur = [];
164506 r.desktopTapThreshold = options2.desktopTapThreshold;
164507 r.desktopTapThreshold2 = options2.desktopTapThreshold * options2.desktopTapThreshold;
164508 r.touchTapThreshold = options2.touchTapThreshold;
164509 r.touchTapThreshold2 = options2.touchTapThreshold * options2.touchTapThreshold;
164510 r.tapholdDuration = 500;
164511 r.bindings = [];
164512 r.beforeRenderCallbacks = [];
164513 r.beforeRenderPriorities = {
164514 // higher priority execs before lower one
164515 animations: 400,
164516 eleCalcs: 300,
164517 eleTxrDeq: 200,
164518 lyrTxrDeq: 150,
164519 lyrTxrSkip: 100
164520 };
164521 r.registerNodeShapes();
164522 r.registerArrowShapes();
164523 r.registerCalculationListeners();
164524 };
164525 BRp.notify = function(eventName, eles) {
164526 var r = this;
164527 var cy = r.cy;
164528 if (this.destroyed) {
164529 return;
164530 }
164531 if (eventName === "init") {
164532 r.load();
164533 return;
164534 }
164535 if (eventName === "destroy") {
164536 r.destroy();
164537 return;
164538 }
164539 if (eventName === "add" || eventName === "remove" || eventName === "move" && cy.hasCompoundNodes() || eventName === "load" || eventName === "zorder" || eventName === "mount") {
164540 r.invalidateCachedZSortedEles();
164541 }
164542 if (eventName === "viewport") {
164543 r.redrawHint("select", true);
164544 }
164545 if (eventName === "load" || eventName === "resize" || eventName === "mount") {
164546 r.invalidateContainerClientCoordsCache();
164547 r.matchCanvasSize(r.container);
164548 }
164549 r.redrawHint("eles", true);
164550 r.redrawHint("drag", true);
164551 this.startRenderLoop();
164552 this.redraw();
164553 };
164554 BRp.destroy = function() {
164555 var r = this;
164556 r.destroyed = true;
164557 r.cy.stopAnimationLoop();
164558 for (var i3 = 0; i3 < r.bindings.length; i3++) {
164559 var binding = r.bindings[i3];
164560 var b = binding;
164561 var tgt = b.target;
164562 (tgt.off || tgt.removeEventListener).apply(tgt, b.args);
164563 }
164564 r.bindings = [];
164565 r.beforeRenderCallbacks = [];
164566 r.onUpdateEleCalcsFns = [];
164567 if (r.removeObserver) {
164568 r.removeObserver.disconnect();
164569 }
164570 if (r.styleObserver) {
164571 r.styleObserver.disconnect();
164572 }
164573 if (r.resizeObserver) {
164574 r.resizeObserver.disconnect();
164575 }
164576 if (r.labelCalcDiv) {
164577 try {
164578 document.body.removeChild(r.labelCalcDiv);
164579 } catch (e) {
164580 }
164581 }
164582 };
164583 BRp.isHeadless = function() {
164584 return false;
164585 };
164586 [BRp$f, BRp$5, BRp$4, BRp$3, BRp$2, BRp$1].forEach(function(props) {
164587 extend2(BRp, props);
164588 });
164589 var fullFpsTime = 1e3 / 60;
164590 var defs = {
164591 setupDequeueing: function setupDequeueing(opts) {
164592 return function setupDequeueingImpl() {
164593 var self2 = this;
164594 var r = this.renderer;
164595 if (self2.dequeueingSetup) {
164596 return;
164597 } else {
164598 self2.dequeueingSetup = true;
164599 }
164600 var queueRedraw = debounce_1(function() {
164601 r.redrawHint("eles", true);
164602 r.redrawHint("drag", true);
164603 r.redraw();
164604 }, opts.deqRedrawThreshold);
164605 var dequeue = function dequeue2(willDraw, frameStartTime) {
164606 var startTime = performanceNow();
164607 var avgRenderTime = r.averageRedrawTime;
164608 var renderTime = r.lastRedrawTime;
164609 var deqd = [];
164610 var extent = r.cy.extent();
164611 var pixelRatio = r.getPixelRatio();
164612 if (!willDraw) {
164613 r.flushRenderedStyleQueue();
164614 }
164615 while (true) {
164616 var now3 = performanceNow();
164617 var duration = now3 - startTime;
164618 var frameDuration = now3 - frameStartTime;
164619 if (renderTime < fullFpsTime) {
164620 var timeAvailable = fullFpsTime - (willDraw ? avgRenderTime : 0);
164621 if (frameDuration >= opts.deqFastCost * timeAvailable) {
164622 break;
164623 }
164624 } else {
164625 if (willDraw) {
164626 if (duration >= opts.deqCost * renderTime || duration >= opts.deqAvgCost * avgRenderTime) {
164627 break;
164628 }
164629 } else if (frameDuration >= opts.deqNoDrawCost * fullFpsTime) {
164630 break;
164631 }
164632 }
164633 var thisDeqd = opts.deq(self2, pixelRatio, extent);
164634 if (thisDeqd.length > 0) {
164635 for (var i3 = 0; i3 < thisDeqd.length; i3++) {
164636 deqd.push(thisDeqd[i3]);
164637 }
164638 } else {
164639 break;
164640 }
164641 }
164642 if (deqd.length > 0) {
164643 opts.onDeqd(self2, deqd);
164644 if (!willDraw && opts.shouldRedraw(self2, deqd, pixelRatio, extent)) {
164645 queueRedraw();
164646 }
164647 }
164648 };
164649 var priority = opts.priority || noop$12;
164650 r.beforeRender(dequeue, priority(self2));
164651 };
164652 }
164653 };
164654 var ElementTextureCacheLookup = /* @__PURE__ */ function() {
164655 function ElementTextureCacheLookup2(getKey2) {
164656 var doesEleInvalidateKey = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : falsify;
164657 _classCallCheck(this, ElementTextureCacheLookup2);
164658 this.idsByKey = new Map$22();
164659 this.keyForId = new Map$22();
164660 this.cachesByLvl = new Map$22();
164661 this.lvls = [];
164662 this.getKey = getKey2;
164663 this.doesEleInvalidateKey = doesEleInvalidateKey;
164664 }
164665 _createClass(ElementTextureCacheLookup2, [{
164666 key: "getIdsFor",
164667 value: function getIdsFor(key) {
164668 if (key == null) {
164669 error("Can not get id list for null key");
164670 }
164671 var idsByKey = this.idsByKey;
164672 var ids = this.idsByKey.get(key);
164673 if (!ids) {
164674 ids = new Set$12();
164675 idsByKey.set(key, ids);
164676 }
164677 return ids;
164678 }
164679 }, {
164680 key: "addIdForKey",
164681 value: function addIdForKey(key, id2) {
164682 if (key != null) {
164683 this.getIdsFor(key).add(id2);
164684 }
164685 }
164686 }, {
164687 key: "deleteIdForKey",
164688 value: function deleteIdForKey(key, id2) {
164689 if (key != null) {
164690 this.getIdsFor(key)["delete"](id2);
164691 }
164692 }
164693 }, {
164694 key: "getNumberOfIdsForKey",
164695 value: function getNumberOfIdsForKey(key) {
164696 if (key == null) {
164697 return 0;
164698 } else {
164699 return this.getIdsFor(key).size;
164700 }
164701 }
164702 }, {
164703 key: "updateKeyMappingFor",
164704 value: function updateKeyMappingFor(ele) {
164705 var id2 = ele.id();
164706 var prevKey = this.keyForId.get(id2);
164707 var currKey = this.getKey(ele);
164708 this.deleteIdForKey(prevKey, id2);
164709 this.addIdForKey(currKey, id2);
164710 this.keyForId.set(id2, currKey);
164711 }
164712 }, {
164713 key: "deleteKeyMappingFor",
164714 value: function deleteKeyMappingFor(ele) {
164715 var id2 = ele.id();
164716 var prevKey = this.keyForId.get(id2);
164717 this.deleteIdForKey(prevKey, id2);
164718 this.keyForId["delete"](id2);
164719 }
164720 }, {
164721 key: "keyHasChangedFor",
164722 value: function keyHasChangedFor(ele) {
164723 var id2 = ele.id();
164724 var prevKey = this.keyForId.get(id2);
164725 var newKey = this.getKey(ele);
164726 return prevKey !== newKey;
164727 }
164728 }, {
164729 key: "isInvalid",
164730 value: function isInvalid(ele) {
164731 return this.keyHasChangedFor(ele) || this.doesEleInvalidateKey(ele);
164732 }
164733 }, {
164734 key: "getCachesAt",
164735 value: function getCachesAt(lvl) {
164736 var cachesByLvl = this.cachesByLvl, lvls = this.lvls;
164737 var caches = cachesByLvl.get(lvl);
164738 if (!caches) {
164739 caches = new Map$22();
164740 cachesByLvl.set(lvl, caches);
164741 lvls.push(lvl);
164742 }
164743 return caches;
164744 }
164745 }, {
164746 key: "getCache",
164747 value: function getCache(key, lvl) {
164748 return this.getCachesAt(lvl).get(key);
164749 }
164750 }, {
164751 key: "get",
164752 value: function get3(ele, lvl) {
164753 var key = this.getKey(ele);
164754 var cache2 = this.getCache(key, lvl);
164755 if (cache2 != null) {
164756 this.updateKeyMappingFor(ele);
164757 }
164758 return cache2;
164759 }
164760 }, {
164761 key: "getForCachedKey",
164762 value: function getForCachedKey(ele, lvl) {
164763 var key = this.keyForId.get(ele.id());
164764 var cache2 = this.getCache(key, lvl);
164765 return cache2;
164766 }
164767 }, {
164768 key: "hasCache",
164769 value: function hasCache(key, lvl) {
164770 return this.getCachesAt(lvl).has(key);
164771 }
164772 }, {
164773 key: "has",
164774 value: function has2(ele, lvl) {
164775 var key = this.getKey(ele);
164776 return this.hasCache(key, lvl);
164777 }
164778 }, {
164779 key: "setCache",
164780 value: function setCache(key, lvl, cache2) {
164781 cache2.key = key;
164782 this.getCachesAt(lvl).set(key, cache2);
164783 }
164784 }, {
164785 key: "set",
164786 value: function set3(ele, lvl, cache2) {
164787 var key = this.getKey(ele);
164788 this.setCache(key, lvl, cache2);
164789 this.updateKeyMappingFor(ele);
164790 }
164791 }, {
164792 key: "deleteCache",
164793 value: function deleteCache(key, lvl) {
164794 this.getCachesAt(lvl)["delete"](key);
164795 }
164796 }, {
164797 key: "delete",
164798 value: function _delete(ele, lvl) {
164799 var key = this.getKey(ele);
164800 this.deleteCache(key, lvl);
164801 }
164802 }, {
164803 key: "invalidateKey",
164804 value: function invalidateKey(key) {
164805 var _this = this;
164806 this.lvls.forEach(function(lvl) {
164807 return _this.deleteCache(key, lvl);
164808 });
164809 }
164810 // returns true if no other eles reference the invalidated cache (n.b. other eles may need the cache with the same key)
164811 }, {
164812 key: "invalidate",
164813 value: function invalidate(ele) {
164814 var id2 = ele.id();
164815 var key = this.keyForId.get(id2);
164816 this.deleteKeyMappingFor(ele);
164817 var entireKeyInvalidated = this.doesEleInvalidateKey(ele);
164818 if (entireKeyInvalidated) {
164819 this.invalidateKey(key);
164820 }
164821 return entireKeyInvalidated || this.getNumberOfIdsForKey(key) === 0;
164822 }
164823 }]);
164824 return ElementTextureCacheLookup2;
164825 }();
164826 var minTxrH = 25;
164827 var txrStepH = 50;
164828 var minLvl$1 = -4;
164829 var maxLvl$1 = 3;
164830 var maxZoom$1 = 7.99;
164831 var eleTxrSpacing = 8;
164832 var defTxrWidth = 1024;
164833 var maxTxrW = 1024;
164834 var maxTxrH = 1024;
164835 var minUtility = 0.2;
164836 var maxFullness = 0.8;
164837 var maxFullnessChecks = 10;
164838 var deqCost$1 = 0.15;
164839 var deqAvgCost$1 = 0.1;
164840 var deqNoDrawCost$1 = 0.9;
164841 var deqFastCost$1 = 0.9;
164842 var deqRedrawThreshold$1 = 100;
164843 var maxDeqSize$1 = 1;
164844 var getTxrReasons = {
164845 dequeue: "dequeue",
164846 downscale: "downscale",
164847 highQuality: "highQuality"
164848 };
164849 var initDefaults = defaults$g({
164850 getKey: null,
164851 doesEleInvalidateKey: falsify,
164852 drawElement: null,
164853 getBoundingBox: null,
164854 getRotationPoint: null,
164855 getRotationOffset: null,
164856 isVisible: trueify,
164857 allowEdgeTxrCaching: true,
164858 allowParentTxrCaching: true
164859 });
164860 var ElementTextureCache = function ElementTextureCache2(renderer3, initOptions) {
164861 var self2 = this;
164862 self2.renderer = renderer3;
164863 self2.onDequeues = [];
164864 var opts = initDefaults(initOptions);
164865 extend2(self2, opts);
164866 self2.lookup = new ElementTextureCacheLookup(opts.getKey, opts.doesEleInvalidateKey);
164867 self2.setupDequeueing();
164868 };
164869 var ETCp = ElementTextureCache.prototype;
164870 ETCp.reasons = getTxrReasons;
164871 ETCp.getTextureQueue = function(txrH) {
164872 var self2 = this;
164873 self2.eleImgCaches = self2.eleImgCaches || {};
164874 return self2.eleImgCaches[txrH] = self2.eleImgCaches[txrH] || [];
164875 };
164876 ETCp.getRetiredTextureQueue = function(txrH) {
164877 var self2 = this;
164878 var rtxtrQs = self2.eleImgCaches.retired = self2.eleImgCaches.retired || {};
164879 var rtxtrQ = rtxtrQs[txrH] = rtxtrQs[txrH] || [];
164880 return rtxtrQ;
164881 };
164882 ETCp.getElementQueue = function() {
164883 var self2 = this;
164884 var q = self2.eleCacheQueue = self2.eleCacheQueue || new heap(function(a, b) {
164885 return b.reqs - a.reqs;
164886 });
164887 return q;
164888 };
164889 ETCp.getElementKeyToQueue = function() {
164890 var self2 = this;
164891 var k2q = self2.eleKeyToCacheQueue = self2.eleKeyToCacheQueue || {};
164892 return k2q;
164893 };
164894 ETCp.getElement = function(ele, bb, pxRatio, lvl, reason) {
164895 var self2 = this;
164896 var r = this.renderer;
164897 var zoom = r.cy.zoom();
164898 var lookup2 = this.lookup;
164899 if (!bb || bb.w === 0 || bb.h === 0 || isNaN(bb.w) || isNaN(bb.h) || !ele.visible() || ele.removed()) {
164900 return null;
164901 }
164902 if (!self2.allowEdgeTxrCaching && ele.isEdge() || !self2.allowParentTxrCaching && ele.isParent()) {
164903 return null;
164904 }
164905 if (lvl == null) {
164906 lvl = Math.ceil(log2(zoom * pxRatio));
164907 }
164908 if (lvl < minLvl$1) {
164909 lvl = minLvl$1;
164910 } else if (zoom >= maxZoom$1 || lvl > maxLvl$1) {
164911 return null;
164912 }
164913 var scale = Math.pow(2, lvl);
164914 var eleScaledH = bb.h * scale;
164915 var eleScaledW = bb.w * scale;
164916 var scaledLabelShown = r.eleTextBiggerThanMin(ele, scale);
164917 if (!this.isVisible(ele, scaledLabelShown)) {
164918 return null;
164919 }
164920 var eleCache = lookup2.get(ele, lvl);
164921 if (eleCache && eleCache.invalidated) {
164922 eleCache.invalidated = false;
164923 eleCache.texture.invalidatedWidth -= eleCache.width;
164924 }
164925 if (eleCache) {
164926 return eleCache;
164927 }
164928 var txrH;
164929 if (eleScaledH <= minTxrH) {
164930 txrH = minTxrH;
164931 } else if (eleScaledH <= txrStepH) {
164932 txrH = txrStepH;
164933 } else {
164934 txrH = Math.ceil(eleScaledH / txrStepH) * txrStepH;
164935 }
164936 if (eleScaledH > maxTxrH || eleScaledW > maxTxrW) {
164937 return null;
164938 }
164939 var txrQ = self2.getTextureQueue(txrH);
164940 var txr = txrQ[txrQ.length - 2];
164941 var addNewTxr = function addNewTxr2() {
164942 return self2.recycleTexture(txrH, eleScaledW) || self2.addTexture(txrH, eleScaledW);
164943 };
164944 if (!txr) {
164945 txr = txrQ[txrQ.length - 1];
164946 }
164947 if (!txr) {
164948 txr = addNewTxr();
164949 }
164950 if (txr.width - txr.usedWidth < eleScaledW) {
164951 txr = addNewTxr();
164952 }
164953 var scalableFrom = function scalableFrom2(otherCache) {
164954 return otherCache && otherCache.scaledLabelShown === scaledLabelShown;
164955 };
164956 var deqing = reason && reason === getTxrReasons.dequeue;
164957 var highQualityReq = reason && reason === getTxrReasons.highQuality;
164958 var downscaleReq = reason && reason === getTxrReasons.downscale;
164959 var higherCache;
164960 for (var l = lvl + 1; l <= maxLvl$1; l++) {
164961 var c2 = lookup2.get(ele, l);
164962 if (c2) {
164963 higherCache = c2;
164964 break;
164965 }
164966 }
164967 var oneUpCache = higherCache && higherCache.level === lvl + 1 ? higherCache : null;
164968 var downscale = function downscale2() {
164969 txr.context.drawImage(oneUpCache.texture.canvas, oneUpCache.x, 0, oneUpCache.width, oneUpCache.height, txr.usedWidth, 0, eleScaledW, eleScaledH);
164970 };
164971 txr.context.setTransform(1, 0, 0, 1, 0, 0);
164972 txr.context.clearRect(txr.usedWidth, 0, eleScaledW, txrH);
164973 if (scalableFrom(oneUpCache)) {
164974 downscale();
164975 } else if (scalableFrom(higherCache)) {
164976 if (highQualityReq) {
164977 for (var _l = higherCache.level; _l > lvl; _l--) {
164978 oneUpCache = self2.getElement(ele, bb, pxRatio, _l, getTxrReasons.downscale);
164979 }
164980 downscale();
164981 } else {
164982 self2.queueElement(ele, higherCache.level - 1);
164983 return higherCache;
164984 }
164985 } else {
164986 var lowerCache;
164987 if (!deqing && !highQualityReq && !downscaleReq) {
164988 for (var _l2 = lvl - 1; _l2 >= minLvl$1; _l2--) {
164989 var _c = lookup2.get(ele, _l2);
164990 if (_c) {
164991 lowerCache = _c;
164992 break;
164993 }
164994 }
164995 }
164996 if (scalableFrom(lowerCache)) {
164997 self2.queueElement(ele, lvl);
164998 return lowerCache;
164999 }
165000 txr.context.translate(txr.usedWidth, 0);
165001 txr.context.scale(scale, scale);
165002 this.drawElement(txr.context, ele, bb, scaledLabelShown, false);
165003 txr.context.scale(1 / scale, 1 / scale);
165004 txr.context.translate(-txr.usedWidth, 0);
165005 }
165006 eleCache = {
165007 x: txr.usedWidth,
165008 texture: txr,
165009 level: lvl,
165010 scale,
165011 width: eleScaledW,
165012 height: eleScaledH,
165013 scaledLabelShown
165014 };
165015 txr.usedWidth += Math.ceil(eleScaledW + eleTxrSpacing);
165016 txr.eleCaches.push(eleCache);
165017 lookup2.set(ele, lvl, eleCache);
165018 self2.checkTextureFullness(txr);
165019 return eleCache;
165020 };
165021 ETCp.invalidateElements = function(eles) {
165022 for (var i3 = 0; i3 < eles.length; i3++) {
165023 this.invalidateElement(eles[i3]);
165024 }
165025 };
165026 ETCp.invalidateElement = function(ele) {
165027 var self2 = this;
165028 var lookup2 = self2.lookup;
165029 var caches = [];
165030 var invalid = lookup2.isInvalid(ele);
165031 if (!invalid) {
165032 return;
165033 }
165034 for (var lvl = minLvl$1; lvl <= maxLvl$1; lvl++) {
165035 var cache2 = lookup2.getForCachedKey(ele, lvl);
165036 if (cache2) {
165037 caches.push(cache2);
165038 }
165039 }
165040 var noOtherElesUseCache = lookup2.invalidate(ele);
165041 if (noOtherElesUseCache) {
165042 for (var i3 = 0; i3 < caches.length; i3++) {
165043 var _cache = caches[i3];
165044 var txr = _cache.texture;
165045 txr.invalidatedWidth += _cache.width;
165046 _cache.invalidated = true;
165047 self2.checkTextureUtility(txr);
165048 }
165049 }
165050 self2.removeFromQueue(ele);
165051 };
165052 ETCp.checkTextureUtility = function(txr) {
165053 if (txr.invalidatedWidth >= minUtility * txr.width) {
165054 this.retireTexture(txr);
165055 }
165056 };
165057 ETCp.checkTextureFullness = function(txr) {
165058 var self2 = this;
165059 var txrQ = self2.getTextureQueue(txr.height);
165060 if (txr.usedWidth / txr.width > maxFullness && txr.fullnessChecks >= maxFullnessChecks) {
165061 removeFromArray(txrQ, txr);
165062 } else {
165063 txr.fullnessChecks++;
165064 }
165065 };
165066 ETCp.retireTexture = function(txr) {
165067 var self2 = this;
165068 var txrH = txr.height;
165069 var txrQ = self2.getTextureQueue(txrH);
165070 var lookup2 = this.lookup;
165071 removeFromArray(txrQ, txr);
165072 txr.retired = true;
165073 var eleCaches = txr.eleCaches;
165074 for (var i3 = 0; i3 < eleCaches.length; i3++) {
165075 var eleCache = eleCaches[i3];
165076 lookup2.deleteCache(eleCache.key, eleCache.level);
165077 }
165078 clearArray(eleCaches);
165079 var rtxtrQ = self2.getRetiredTextureQueue(txrH);
165080 rtxtrQ.push(txr);
165081 };
165082 ETCp.addTexture = function(txrH, minW) {
165083 var self2 = this;
165084 var txrQ = self2.getTextureQueue(txrH);
165085 var txr = {};
165086 txrQ.push(txr);
165087 txr.eleCaches = [];
165088 txr.height = txrH;
165089 txr.width = Math.max(defTxrWidth, minW);
165090 txr.usedWidth = 0;
165091 txr.invalidatedWidth = 0;
165092 txr.fullnessChecks = 0;
165093 txr.canvas = self2.renderer.makeOffscreenCanvas(txr.width, txr.height);
165094 txr.context = txr.canvas.getContext("2d");
165095 return txr;
165096 };
165097 ETCp.recycleTexture = function(txrH, minW) {
165098 var self2 = this;
165099 var txrQ = self2.getTextureQueue(txrH);
165100 var rtxtrQ = self2.getRetiredTextureQueue(txrH);
165101 for (var i3 = 0; i3 < rtxtrQ.length; i3++) {
165102 var txr = rtxtrQ[i3];
165103 if (txr.width >= minW) {
165104 txr.retired = false;
165105 txr.usedWidth = 0;
165106 txr.invalidatedWidth = 0;
165107 txr.fullnessChecks = 0;
165108 clearArray(txr.eleCaches);
165109 txr.context.setTransform(1, 0, 0, 1, 0, 0);
165110 txr.context.clearRect(0, 0, txr.width, txr.height);
165111 removeFromArray(rtxtrQ, txr);
165112 txrQ.push(txr);
165113 return txr;
165114 }
165115 }
165116 };
165117 ETCp.queueElement = function(ele, lvl) {
165118 var self2 = this;
165119 var q = self2.getElementQueue();
165120 var k2q = self2.getElementKeyToQueue();
165121 var key = this.getKey(ele);
165122 var existingReq = k2q[key];
165123 if (existingReq) {
165124 existingReq.level = Math.max(existingReq.level, lvl);
165125 existingReq.eles.merge(ele);
165126 existingReq.reqs++;
165127 q.updateItem(existingReq);
165128 } else {
165129 var req = {
165130 eles: ele.spawn().merge(ele),
165131 level: lvl,
165132 reqs: 1,
165133 key
165134 };
165135 q.push(req);
165136 k2q[key] = req;
165137 }
165138 };
165139 ETCp.dequeue = function(pxRatio) {
165140 var self2 = this;
165141 var q = self2.getElementQueue();
165142 var k2q = self2.getElementKeyToQueue();
165143 var dequeued = [];
165144 var lookup2 = self2.lookup;
165145 for (var i3 = 0; i3 < maxDeqSize$1; i3++) {
165146 if (q.size() > 0) {
165147 var req = q.pop();
165148 var key = req.key;
165149 var ele = req.eles[0];
165150 var cacheExists = lookup2.hasCache(ele, req.level);
165151 k2q[key] = null;
165152 if (cacheExists) {
165153 continue;
165154 }
165155 dequeued.push(req);
165156 var bb = self2.getBoundingBox(ele);
165157 self2.getElement(ele, bb, pxRatio, req.level, getTxrReasons.dequeue);
165158 } else {
165159 break;
165160 }
165161 }
165162 return dequeued;
165163 };
165164 ETCp.removeFromQueue = function(ele) {
165165 var self2 = this;
165166 var q = self2.getElementQueue();
165167 var k2q = self2.getElementKeyToQueue();
165168 var key = this.getKey(ele);
165169 var req = k2q[key];
165170 if (req != null) {
165171 if (req.eles.length === 1) {
165172 req.reqs = MAX_INT$1;
165173 q.updateItem(req);
165174 q.pop();
165175 k2q[key] = null;
165176 } else {
165177 req.eles.unmerge(ele);
165178 }
165179 }
165180 };
165181 ETCp.onDequeue = function(fn2) {
165182 this.onDequeues.push(fn2);
165183 };
165184 ETCp.offDequeue = function(fn2) {
165185 removeFromArray(this.onDequeues, fn2);
165186 };
165187 ETCp.setupDequeueing = defs.setupDequeueing({
165188 deqRedrawThreshold: deqRedrawThreshold$1,
165189 deqCost: deqCost$1,
165190 deqAvgCost: deqAvgCost$1,
165191 deqNoDrawCost: deqNoDrawCost$1,
165192 deqFastCost: deqFastCost$1,
165193 deq: function deq(self2, pxRatio, extent) {
165194 return self2.dequeue(pxRatio, extent);
165195 },
165196 onDeqd: function onDeqd(self2, deqd) {
165197 for (var i3 = 0; i3 < self2.onDequeues.length; i3++) {
165198 var fn2 = self2.onDequeues[i3];
165199 fn2(deqd);
165200 }
165201 },
165202 shouldRedraw: function shouldRedraw(self2, deqd, pxRatio, extent) {
165203 for (var i3 = 0; i3 < deqd.length; i3++) {
165204 var eles = deqd[i3].eles;
165205 for (var j = 0; j < eles.length; j++) {
165206 var bb = eles[j].boundingBox();
165207 if (boundingBoxesIntersect(bb, extent)) {
165208 return true;
165209 }
165210 }
165211 }
165212 return false;
165213 },
165214 priority: function priority(self2) {
165215 return self2.renderer.beforeRenderPriorities.eleTxrDeq;
165216 }
165217 });
165218 var defNumLayers = 1;
165219 var minLvl = -4;
165220 var maxLvl = 2;
165221 var maxZoom = 3.99;
165222 var deqRedrawThreshold = 50;
165223 var refineEleDebounceTime = 50;
165224 var deqCost = 0.15;
165225 var deqAvgCost = 0.1;
165226 var deqNoDrawCost = 0.9;
165227 var deqFastCost = 0.9;
165228 var maxDeqSize = 1;
165229 var invalidThreshold = 250;
165230 var maxLayerArea = 4e3 * 4e3;
165231 var useHighQualityEleTxrReqs = true;
165232 var LayeredTextureCache = function LayeredTextureCache2(renderer3) {
165233 var self2 = this;
165234 var r = self2.renderer = renderer3;
165235 var cy = r.cy;
165236 self2.layersByLevel = {};
165237 self2.firstGet = true;
165238 self2.lastInvalidationTime = performanceNow() - 2 * invalidThreshold;
165239 self2.skipping = false;
165240 self2.eleTxrDeqs = cy.collection();
165241 self2.scheduleElementRefinement = debounce_1(function() {
165242 self2.refineElementTextures(self2.eleTxrDeqs);
165243 self2.eleTxrDeqs.unmerge(self2.eleTxrDeqs);
165244 }, refineEleDebounceTime);
165245 r.beforeRender(function(willDraw, now3) {
165246 if (now3 - self2.lastInvalidationTime <= invalidThreshold) {
165247 self2.skipping = true;
165248 } else {
165249 self2.skipping = false;
165250 }
165251 }, r.beforeRenderPriorities.lyrTxrSkip);
165252 var qSort = function qSort2(a, b) {
165253 return b.reqs - a.reqs;
165254 };
165255 self2.layersQueue = new heap(qSort);
165256 self2.setupDequeueing();
165257 };
165258 var LTCp = LayeredTextureCache.prototype;
165259 var layerIdPool = 0;
165260 var MAX_INT = Math.pow(2, 53) - 1;
165261 LTCp.makeLayer = function(bb, lvl) {
165262 var scale = Math.pow(2, lvl);
165263 var w2 = Math.ceil(bb.w * scale);
165264 var h = Math.ceil(bb.h * scale);
165265 var canvas = this.renderer.makeOffscreenCanvas(w2, h);
165266 var layer = {
165267 id: layerIdPool = ++layerIdPool % MAX_INT,
165268 bb,
165269 level: lvl,
165270 width: w2,
165271 height: h,
165272 canvas,
165273 context: canvas.getContext("2d"),
165274 eles: [],
165275 elesQueue: [],
165276 reqs: 0
165277 };
165278 var cxt = layer.context;
165279 var dx = -layer.bb.x1;
165280 var dy = -layer.bb.y1;
165281 cxt.scale(scale, scale);
165282 cxt.translate(dx, dy);
165283 return layer;
165284 };
165285 LTCp.getLayers = function(eles, pxRatio, lvl) {
165286 var self2 = this;
165287 var r = self2.renderer;
165288 var cy = r.cy;
165289 var zoom = cy.zoom();
165290 var firstGet = self2.firstGet;
165291 self2.firstGet = false;
165292 if (lvl == null) {
165293 lvl = Math.ceil(log2(zoom * pxRatio));
165294 if (lvl < minLvl) {
165295 lvl = minLvl;
165296 } else if (zoom >= maxZoom || lvl > maxLvl) {
165297 return null;
165298 }
165299 }
165300 self2.validateLayersElesOrdering(lvl, eles);
165301 var layersByLvl = self2.layersByLevel;
165302 var scale = Math.pow(2, lvl);
165303 var layers = layersByLvl[lvl] = layersByLvl[lvl] || [];
165304 var bb;
165305 var lvlComplete = self2.levelIsComplete(lvl, eles);
165306 var tmpLayers;
165307 var checkTempLevels = function checkTempLevels2() {
165308 var canUseAsTmpLvl = function canUseAsTmpLvl2(l) {
165309 self2.validateLayersElesOrdering(l, eles);
165310 if (self2.levelIsComplete(l, eles)) {
165311 tmpLayers = layersByLvl[l];
165312 return true;
165313 }
165314 };
165315 var checkLvls = function checkLvls2(dir) {
165316 if (tmpLayers) {
165317 return;
165318 }
165319 for (var l = lvl + dir; minLvl <= l && l <= maxLvl; l += dir) {
165320 if (canUseAsTmpLvl(l)) {
165321 break;
165322 }
165323 }
165324 };
165325 checkLvls(1);
165326 checkLvls(-1);
165327 for (var i4 = layers.length - 1; i4 >= 0; i4--) {
165328 var layer2 = layers[i4];
165329 if (layer2.invalid) {
165330 removeFromArray(layers, layer2);
165331 }
165332 }
165333 };
165334 if (!lvlComplete) {
165335 checkTempLevels();
165336 } else {
165337 return layers;
165338 }
165339 var getBb = function getBb2() {
165340 if (!bb) {
165341 bb = makeBoundingBox();
165342 for (var i4 = 0; i4 < eles.length; i4++) {
165343 updateBoundingBox(bb, eles[i4].boundingBox());
165344 }
165345 }
165346 return bb;
165347 };
165348 var makeLayer = function makeLayer2(opts) {
165349 opts = opts || {};
165350 var after = opts.after;
165351 getBb();
165352 var area = bb.w * scale * (bb.h * scale);
165353 if (area > maxLayerArea) {
165354 return null;
165355 }
165356 var layer2 = self2.makeLayer(bb, lvl);
165357 if (after != null) {
165358 var index2 = layers.indexOf(after) + 1;
165359 layers.splice(index2, 0, layer2);
165360 } else if (opts.insert === void 0 || opts.insert) {
165361 layers.unshift(layer2);
165362 }
165363 return layer2;
165364 };
165365 if (self2.skipping && !firstGet) {
165366 return null;
165367 }
165368 var layer = null;
165369 var maxElesPerLayer = eles.length / defNumLayers;
165370 var allowLazyQueueing = !firstGet;
165371 for (var i3 = 0; i3 < eles.length; i3++) {
165372 var ele = eles[i3];
165373 var rs = ele._private.rscratch;
165374 var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};
165375 var existingLayer = caches[lvl];
165376 if (existingLayer) {
165377 layer = existingLayer;
165378 continue;
165379 }
165380 if (!layer || layer.eles.length >= maxElesPerLayer || !boundingBoxInBoundingBox(layer.bb, ele.boundingBox())) {
165381 layer = makeLayer({
165382 insert: true,
165383 after: layer
165384 });
165385 if (!layer) {
165386 return null;
165387 }
165388 }
165389 if (tmpLayers || allowLazyQueueing) {
165390 self2.queueLayer(layer, ele);
165391 } else {
165392 self2.drawEleInLayer(layer, ele, lvl, pxRatio);
165393 }
165394 layer.eles.push(ele);
165395 caches[lvl] = layer;
165396 }
165397 if (tmpLayers) {
165398 return tmpLayers;
165399 }
165400 if (allowLazyQueueing) {
165401 return null;
165402 }
165403 return layers;
165404 };
165405 LTCp.getEleLevelForLayerLevel = function(lvl, pxRatio) {
165406 return lvl;
165407 };
165408 LTCp.drawEleInLayer = function(layer, ele, lvl, pxRatio) {
165409 var self2 = this;
165410 var r = this.renderer;
165411 var context = layer.context;
165412 var bb = ele.boundingBox();
165413 if (bb.w === 0 || bb.h === 0 || !ele.visible()) {
165414 return;
165415 }
165416 lvl = self2.getEleLevelForLayerLevel(lvl, pxRatio);
165417 {
165418 r.setImgSmoothing(context, false);
165419 }
165420 {
165421 r.drawCachedElement(context, ele, null, null, lvl, useHighQualityEleTxrReqs);
165422 }
165423 {
165424 r.setImgSmoothing(context, true);
165425 }
165426 };
165427 LTCp.levelIsComplete = function(lvl, eles) {
165428 var self2 = this;
165429 var layers = self2.layersByLevel[lvl];
165430 if (!layers || layers.length === 0) {
165431 return false;
165432 }
165433 var numElesInLayers = 0;
165434 for (var i3 = 0; i3 < layers.length; i3++) {
165435 var layer = layers[i3];
165436 if (layer.reqs > 0) {
165437 return false;
165438 }
165439 if (layer.invalid) {
165440 return false;
165441 }
165442 numElesInLayers += layer.eles.length;
165443 }
165444 if (numElesInLayers !== eles.length) {
165445 return false;
165446 }
165447 return true;
165448 };
165449 LTCp.validateLayersElesOrdering = function(lvl, eles) {
165450 var layers = this.layersByLevel[lvl];
165451 if (!layers) {
165452 return;
165453 }
165454 for (var i3 = 0; i3 < layers.length; i3++) {
165455 var layer = layers[i3];
165456 var offset = -1;
165457 for (var j = 0; j < eles.length; j++) {
165458 if (layer.eles[0] === eles[j]) {
165459 offset = j;
165460 break;
165461 }
165462 }
165463 if (offset < 0) {
165464 this.invalidateLayer(layer);
165465 continue;
165466 }
165467 var o = offset;
165468 for (var j = 0; j < layer.eles.length; j++) {
165469 if (layer.eles[j] !== eles[o + j]) {
165470 this.invalidateLayer(layer);
165471 break;
165472 }
165473 }
165474 }
165475 };
165476 LTCp.updateElementsInLayers = function(eles, update2) {
165477 var self2 = this;
165478 var isEles = element2(eles[0]);
165479 for (var i3 = 0; i3 < eles.length; i3++) {
165480 var req = isEles ? null : eles[i3];
165481 var ele = isEles ? eles[i3] : eles[i3].ele;
165482 var rs = ele._private.rscratch;
165483 var caches = rs.imgLayerCaches = rs.imgLayerCaches || {};
165484 for (var l = minLvl; l <= maxLvl; l++) {
165485 var layer = caches[l];
165486 if (!layer) {
165487 continue;
165488 }
165489 if (req && self2.getEleLevelForLayerLevel(layer.level) !== req.level) {
165490 continue;
165491 }
165492 update2(layer, ele, req);
165493 }
165494 }
165495 };
165496 LTCp.haveLayers = function() {
165497 var self2 = this;
165498 var haveLayers = false;
165499 for (var l = minLvl; l <= maxLvl; l++) {
165500 var layers = self2.layersByLevel[l];
165501 if (layers && layers.length > 0) {
165502 haveLayers = true;
165503 break;
165504 }
165505 }
165506 return haveLayers;
165507 };
165508 LTCp.invalidateElements = function(eles) {
165509 var self2 = this;
165510 if (eles.length === 0) {
165511 return;
165512 }
165513 self2.lastInvalidationTime = performanceNow();
165514 if (eles.length === 0 || !self2.haveLayers()) {
165515 return;
165516 }
165517 self2.updateElementsInLayers(eles, function invalAssocLayers(layer, ele, req) {
165518 self2.invalidateLayer(layer);
165519 });
165520 };
165521 LTCp.invalidateLayer = function(layer) {
165522 this.lastInvalidationTime = performanceNow();
165523 if (layer.invalid) {
165524 return;
165525 }
165526 var lvl = layer.level;
165527 var eles = layer.eles;
165528 var layers = this.layersByLevel[lvl];
165529 removeFromArray(layers, layer);
165530 layer.elesQueue = [];
165531 layer.invalid = true;
165532 if (layer.replacement) {
165533 layer.replacement.invalid = true;
165534 }
165535 for (var i3 = 0; i3 < eles.length; i3++) {
165536 var caches = eles[i3]._private.rscratch.imgLayerCaches;
165537 if (caches) {
165538 caches[lvl] = null;
165539 }
165540 }
165541 };
165542 LTCp.refineElementTextures = function(eles) {
165543 var self2 = this;
165544 self2.updateElementsInLayers(eles, function refineEachEle(layer, ele, req) {
165545 var rLyr = layer.replacement;
165546 if (!rLyr) {
165547 rLyr = layer.replacement = self2.makeLayer(layer.bb, layer.level);
165548 rLyr.replaces = layer;
165549 rLyr.eles = layer.eles;
165550 }
165551 if (!rLyr.reqs) {
165552 for (var i3 = 0; i3 < rLyr.eles.length; i3++) {
165553 self2.queueLayer(rLyr, rLyr.eles[i3]);
165554 }
165555 }
165556 });
165557 };
165558 LTCp.enqueueElementRefinement = function(ele) {
165559 this.eleTxrDeqs.merge(ele);
165560 this.scheduleElementRefinement();
165561 };
165562 LTCp.queueLayer = function(layer, ele) {
165563 var self2 = this;
165564 var q = self2.layersQueue;
165565 var elesQ = layer.elesQueue;
165566 var hasId = elesQ.hasId = elesQ.hasId || {};
165567 if (layer.replacement) {
165568 return;
165569 }
165570 if (ele) {
165571 if (hasId[ele.id()]) {
165572 return;
165573 }
165574 elesQ.push(ele);
165575 hasId[ele.id()] = true;
165576 }
165577 if (layer.reqs) {
165578 layer.reqs++;
165579 q.updateItem(layer);
165580 } else {
165581 layer.reqs = 1;
165582 q.push(layer);
165583 }
165584 };
165585 LTCp.dequeue = function(pxRatio) {
165586 var self2 = this;
165587 var q = self2.layersQueue;
165588 var deqd = [];
165589 var eleDeqs = 0;
165590 while (eleDeqs < maxDeqSize) {
165591 if (q.size() === 0) {
165592 break;
165593 }
165594 var layer = q.peek();
165595 if (layer.replacement) {
165596 q.pop();
165597 continue;
165598 }
165599 if (layer.replaces && layer !== layer.replaces.replacement) {
165600 q.pop();
165601 continue;
165602 }
165603 if (layer.invalid) {
165604 q.pop();
165605 continue;
165606 }
165607 var ele = layer.elesQueue.shift();
165608 if (ele) {
165609 self2.drawEleInLayer(layer, ele, layer.level, pxRatio);
165610 eleDeqs++;
165611 }
165612 if (deqd.length === 0) {
165613 deqd.push(true);
165614 }
165615 if (layer.elesQueue.length === 0) {
165616 q.pop();
165617 layer.reqs = 0;
165618 if (layer.replaces) {
165619 self2.applyLayerReplacement(layer);
165620 }
165621 self2.requestRedraw();
165622 }
165623 }
165624 return deqd;
165625 };
165626 LTCp.applyLayerReplacement = function(layer) {
165627 var self2 = this;
165628 var layersInLevel = self2.layersByLevel[layer.level];
165629 var replaced = layer.replaces;
165630 var index2 = layersInLevel.indexOf(replaced);
165631 if (index2 < 0 || replaced.invalid) {
165632 return;
165633 }
165634 layersInLevel[index2] = layer;
165635 for (var i3 = 0; i3 < layer.eles.length; i3++) {
165636 var _p = layer.eles[i3]._private;
165637 var cache2 = _p.imgLayerCaches = _p.imgLayerCaches || {};
165638 if (cache2) {
165639 cache2[layer.level] = layer;
165640 }
165641 }
165642 self2.requestRedraw();
165643 };
165644 LTCp.requestRedraw = debounce_1(function() {
165645 var r = this.renderer;
165646 r.redrawHint("eles", true);
165647 r.redrawHint("drag", true);
165648 r.redraw();
165649 }, 100);
165650 LTCp.setupDequeueing = defs.setupDequeueing({
165651 deqRedrawThreshold,
165652 deqCost,
165653 deqAvgCost,
165654 deqNoDrawCost,
165655 deqFastCost,
165656 deq: function deq(self2, pxRatio) {
165657 return self2.dequeue(pxRatio);
165658 },
165659 onDeqd: noop$12,
165660 shouldRedraw: trueify,
165661 priority: function priority(self2) {
165662 return self2.renderer.beforeRenderPriorities.lyrTxrDeq;
165663 }
165664 });
165665 var CRp$a = {};
165666 var impl;
165667 function polygon(context, points) {
165668 for (var i3 = 0; i3 < points.length; i3++) {
165669 var pt = points[i3];
165670 context.lineTo(pt.x, pt.y);
165671 }
165672 }
165673 function triangleBackcurve(context, points, controlPoint) {
165674 var firstPt;
165675 for (var i3 = 0; i3 < points.length; i3++) {
165676 var pt = points[i3];
165677 if (i3 === 0) {
165678 firstPt = pt;
165679 }
165680 context.lineTo(pt.x, pt.y);
165681 }
165682 context.quadraticCurveTo(controlPoint.x, controlPoint.y, firstPt.x, firstPt.y);
165683 }
165684 function triangleTee(context, trianglePoints, teePoints) {
165685 if (context.beginPath) {
165686 context.beginPath();
165687 }
165688 var triPts = trianglePoints;
165689 for (var i3 = 0; i3 < triPts.length; i3++) {
165690 var pt = triPts[i3];
165691 context.lineTo(pt.x, pt.y);
165692 }
165693 var teePts = teePoints;
165694 var firstTeePt = teePoints[0];
165695 context.moveTo(firstTeePt.x, firstTeePt.y);
165696 for (var i3 = 1; i3 < teePts.length; i3++) {
165697 var pt = teePts[i3];
165698 context.lineTo(pt.x, pt.y);
165699 }
165700 if (context.closePath) {
165701 context.closePath();
165702 }
165703 }
165704 function circleTriangle(context, trianglePoints, rx, ry, r) {
165705 if (context.beginPath) {
165706 context.beginPath();
165707 }
165708 context.arc(rx, ry, r, 0, Math.PI * 2, false);
165709 var triPts = trianglePoints;
165710 var firstTrPt = triPts[0];
165711 context.moveTo(firstTrPt.x, firstTrPt.y);
165712 for (var i3 = 0; i3 < triPts.length; i3++) {
165713 var pt = triPts[i3];
165714 context.lineTo(pt.x, pt.y);
165715 }
165716 if (context.closePath) {
165717 context.closePath();
165718 }
165719 }
165720 function circle2(context, rx, ry, r) {
165721 context.arc(rx, ry, r, 0, Math.PI * 2, false);
165722 }
165723 CRp$a.arrowShapeImpl = function(name2) {
165724 return (impl || (impl = {
165725 "polygon": polygon,
165726 "triangle-backcurve": triangleBackcurve,
165727 "triangle-tee": triangleTee,
165728 "circle-triangle": circleTriangle,
165729 "triangle-cross": triangleTee,
165730 "circle": circle2
165731 }))[name2];
165732 };
165733 var CRp$9 = {};
165734 CRp$9.drawElement = function(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity) {
165735 var r = this;
165736 if (ele.isNode()) {
165737 r.drawNode(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);
165738 } else {
165739 r.drawEdge(context, ele, shiftToOriginWithBb, showLabel, showOverlay, showOpacity);
165740 }
165741 };
165742 CRp$9.drawElementOverlay = function(context, ele) {
165743 var r = this;
165744 if (ele.isNode()) {
165745 r.drawNodeOverlay(context, ele);
165746 } else {
165747 r.drawEdgeOverlay(context, ele);
165748 }
165749 };
165750 CRp$9.drawElementUnderlay = function(context, ele) {
165751 var r = this;
165752 if (ele.isNode()) {
165753 r.drawNodeUnderlay(context, ele);
165754 } else {
165755 r.drawEdgeUnderlay(context, ele);
165756 }
165757 };
165758 CRp$9.drawCachedElementPortion = function(context, ele, eleTxrCache, pxRatio, lvl, reason, getRotation, getOpacity2) {
165759 var r = this;
165760 var bb = eleTxrCache.getBoundingBox(ele);
165761 if (bb.w === 0 || bb.h === 0) {
165762 return;
165763 }
165764 var eleCache = eleTxrCache.getElement(ele, bb, pxRatio, lvl, reason);
165765 if (eleCache != null) {
165766 var opacity = getOpacity2(r, ele);
165767 if (opacity === 0) {
165768 return;
165769 }
165770 var theta = getRotation(r, ele);
165771 var x1 = bb.x1, y1 = bb.y1, w2 = bb.w, h = bb.h;
165772 var x2, y2, sx, sy, smooth;
165773 if (theta !== 0) {
165774 var rotPt = eleTxrCache.getRotationPoint(ele);
165775 sx = rotPt.x;
165776 sy = rotPt.y;
165777 context.translate(sx, sy);
165778 context.rotate(theta);
165779 smooth = r.getImgSmoothing(context);
165780 if (!smooth) {
165781 r.setImgSmoothing(context, true);
165782 }
165783 var off = eleTxrCache.getRotationOffset(ele);
165784 x2 = off.x;
165785 y2 = off.y;
165786 } else {
165787 x2 = x1;
165788 y2 = y1;
165789 }
165790 var oldGlobalAlpha;
165791 if (opacity !== 1) {
165792 oldGlobalAlpha = context.globalAlpha;
165793 context.globalAlpha = oldGlobalAlpha * opacity;
165794 }
165795 context.drawImage(eleCache.texture.canvas, eleCache.x, 0, eleCache.width, eleCache.height, x2, y2, w2, h);
165796 if (opacity !== 1) {
165797 context.globalAlpha = oldGlobalAlpha;
165798 }
165799 if (theta !== 0) {
165800 context.rotate(-theta);
165801 context.translate(-sx, -sy);
165802 if (!smooth) {
165803 r.setImgSmoothing(context, false);
165804 }
165805 }
165806 } else {
165807 eleTxrCache.drawElement(context, ele);
165808 }
165809 };
165810 var getZeroRotation = function getZeroRotation2() {
165811 return 0;
165812 };
165813 var getLabelRotation = function getLabelRotation2(r, ele) {
165814 return r.getTextAngle(ele, null);
165815 };
165816 var getSourceLabelRotation = function getSourceLabelRotation2(r, ele) {
165817 return r.getTextAngle(ele, "source");
165818 };
165819 var getTargetLabelRotation = function getTargetLabelRotation2(r, ele) {
165820 return r.getTextAngle(ele, "target");
165821 };
165822 var getOpacity = function getOpacity2(r, ele) {
165823 return ele.effectiveOpacity();
165824 };
165825 var getTextOpacity = function getTextOpacity2(e, ele) {
165826 return ele.pstyle("text-opacity").pfValue * ele.effectiveOpacity();
165827 };
165828 CRp$9.drawCachedElement = function(context, ele, pxRatio, extent, lvl, requestHighQuality) {
165829 var r = this;
165830 var _r$data = r.data, eleTxrCache = _r$data.eleTxrCache, lblTxrCache = _r$data.lblTxrCache, slbTxrCache = _r$data.slbTxrCache, tlbTxrCache = _r$data.tlbTxrCache;
165831 var bb = ele.boundingBox();
165832 var reason = requestHighQuality === true ? eleTxrCache.reasons.highQuality : null;
165833 if (bb.w === 0 || bb.h === 0 || !ele.visible()) {
165834 return;
165835 }
165836 if (!extent || boundingBoxesIntersect(bb, extent)) {
165837 var isEdge = ele.isEdge();
165838 var badLine = ele.element()._private.rscratch.badLine;
165839 r.drawElementUnderlay(context, ele);
165840 r.drawCachedElementPortion(context, ele, eleTxrCache, pxRatio, lvl, reason, getZeroRotation, getOpacity);
165841 if (!isEdge || !badLine) {
165842 r.drawCachedElementPortion(context, ele, lblTxrCache, pxRatio, lvl, reason, getLabelRotation, getTextOpacity);
165843 }
165844 if (isEdge && !badLine) {
165845 r.drawCachedElementPortion(context, ele, slbTxrCache, pxRatio, lvl, reason, getSourceLabelRotation, getTextOpacity);
165846 r.drawCachedElementPortion(context, ele, tlbTxrCache, pxRatio, lvl, reason, getTargetLabelRotation, getTextOpacity);
165847 }
165848 r.drawElementOverlay(context, ele);
165849 }
165850 };
165851 CRp$9.drawElements = function(context, eles) {
165852 var r = this;
165853 for (var i3 = 0; i3 < eles.length; i3++) {
165854 var ele = eles[i3];
165855 r.drawElement(context, ele);
165856 }
165857 };
165858 CRp$9.drawCachedElements = function(context, eles, pxRatio, extent) {
165859 var r = this;
165860 for (var i3 = 0; i3 < eles.length; i3++) {
165861 var ele = eles[i3];
165862 r.drawCachedElement(context, ele, pxRatio, extent);
165863 }
165864 };
165865 CRp$9.drawCachedNodes = function(context, eles, pxRatio, extent) {
165866 var r = this;
165867 for (var i3 = 0; i3 < eles.length; i3++) {
165868 var ele = eles[i3];
165869 if (!ele.isNode()) {
165870 continue;
165871 }
165872 r.drawCachedElement(context, ele, pxRatio, extent);
165873 }
165874 };
165875 CRp$9.drawLayeredElements = function(context, eles, pxRatio, extent) {
165876 var r = this;
165877 var layers = r.data.lyrTxrCache.getLayers(eles, pxRatio);
165878 if (layers) {
165879 for (var i3 = 0; i3 < layers.length; i3++) {
165880 var layer = layers[i3];
165881 var bb = layer.bb;
165882 if (bb.w === 0 || bb.h === 0) {
165883 continue;
165884 }
165885 context.drawImage(layer.canvas, bb.x1, bb.y1, bb.w, bb.h);
165886 }
165887 } else {
165888 r.drawCachedElements(context, eles, pxRatio, extent);
165889 }
165890 };
165891 var CRp$8 = {};
165892 CRp$8.drawEdge = function(context, edge, shiftToOriginWithBb) {
165893 var drawLabel2 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
165894 var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
165895 var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
165896 var r = this;
165897 var rs = edge._private.rscratch;
165898 if (shouldDrawOpacity && !edge.visible()) {
165899 return;
165900 }
165901 if (rs.badLine || rs.allpts == null || isNaN(rs.allpts[0])) {
165902 return;
165903 }
165904 var bb;
165905 if (shiftToOriginWithBb) {
165906 bb = shiftToOriginWithBb;
165907 context.translate(-bb.x1, -bb.y1);
165908 }
165909 var opacity = shouldDrawOpacity ? edge.pstyle("opacity").value : 1;
165910 var lineOpacity = shouldDrawOpacity ? edge.pstyle("line-opacity").value : 1;
165911 var curveStyle = edge.pstyle("curve-style").value;
165912 var lineStyle = edge.pstyle("line-style").value;
165913 var edgeWidth = edge.pstyle("width").pfValue;
165914 var lineCap = edge.pstyle("line-cap").value;
165915 var effectiveLineOpacity = opacity * lineOpacity;
165916 var effectiveArrowOpacity = opacity * lineOpacity;
165917 var drawLine = function drawLine2() {
165918 var strokeOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : effectiveLineOpacity;
165919 if (curveStyle === "straight-triangle") {
165920 r.eleStrokeStyle(context, edge, strokeOpacity);
165921 r.drawEdgeTrianglePath(edge, context, rs.allpts);
165922 } else {
165923 context.lineWidth = edgeWidth;
165924 context.lineCap = lineCap;
165925 r.eleStrokeStyle(context, edge, strokeOpacity);
165926 r.drawEdgePath(edge, context, rs.allpts, lineStyle);
165927 context.lineCap = "butt";
165928 }
165929 };
165930 var drawOverlay = function drawOverlay2() {
165931 if (!shouldDrawOverlay) {
165932 return;
165933 }
165934 r.drawEdgeOverlay(context, edge);
165935 };
165936 var drawUnderlay = function drawUnderlay2() {
165937 if (!shouldDrawOverlay) {
165938 return;
165939 }
165940 r.drawEdgeUnderlay(context, edge);
165941 };
165942 var drawArrows2 = function drawArrows3() {
165943 var arrowOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : effectiveArrowOpacity;
165944 r.drawArrowheads(context, edge, arrowOpacity);
165945 };
165946 var drawText2 = function drawText3() {
165947 r.drawElementText(context, edge, null, drawLabel2);
165948 };
165949 context.lineJoin = "round";
165950 var ghost = edge.pstyle("ghost").value === "yes";
165951 if (ghost) {
165952 var gx = edge.pstyle("ghost-offset-x").pfValue;
165953 var gy = edge.pstyle("ghost-offset-y").pfValue;
165954 var ghostOpacity = edge.pstyle("ghost-opacity").value;
165955 var effectiveGhostOpacity = effectiveLineOpacity * ghostOpacity;
165956 context.translate(gx, gy);
165957 drawLine(effectiveGhostOpacity);
165958 drawArrows2(effectiveGhostOpacity);
165959 context.translate(-gx, -gy);
165960 }
165961 drawUnderlay();
165962 drawLine();
165963 drawArrows2();
165964 drawOverlay();
165965 drawText2();
165966 if (shiftToOriginWithBb) {
165967 context.translate(bb.x1, bb.y1);
165968 }
165969 };
165970 var drawEdgeOverlayUnderlay = function drawEdgeOverlayUnderlay2(overlayOrUnderlay) {
165971 if (!["overlay", "underlay"].includes(overlayOrUnderlay)) {
165972 throw new Error("Invalid state");
165973 }
165974 return function(context, edge) {
165975 if (!edge.visible()) {
165976 return;
165977 }
165978 var opacity = edge.pstyle("".concat(overlayOrUnderlay, "-opacity")).value;
165979 if (opacity === 0) {
165980 return;
165981 }
165982 var r = this;
165983 var usePaths = r.usePaths();
165984 var rs = edge._private.rscratch;
165985 var padding2 = edge.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue;
165986 var width2 = 2 * padding2;
165987 var color2 = edge.pstyle("".concat(overlayOrUnderlay, "-color")).value;
165988 context.lineWidth = width2;
165989 if (rs.edgeType === "self" && !usePaths) {
165990 context.lineCap = "butt";
165991 } else {
165992 context.lineCap = "round";
165993 }
165994 r.colorStrokeStyle(context, color2[0], color2[1], color2[2], opacity);
165995 r.drawEdgePath(edge, context, rs.allpts, "solid");
165996 };
165997 };
165998 CRp$8.drawEdgeOverlay = drawEdgeOverlayUnderlay("overlay");
165999 CRp$8.drawEdgeUnderlay = drawEdgeOverlayUnderlay("underlay");
166000 CRp$8.drawEdgePath = function(edge, context, pts2, type2) {
166001 var rs = edge._private.rscratch;
166002 var canvasCxt = context;
166003 var path2;
166004 var pathCacheHit = false;
166005 var usePaths = this.usePaths();
166006 var lineDashPattern = edge.pstyle("line-dash-pattern").pfValue;
166007 var lineDashOffset = edge.pstyle("line-dash-offset").pfValue;
166008 if (usePaths) {
166009 var pathCacheKey = pts2.join("$");
166010 var keyMatches = rs.pathCacheKey && rs.pathCacheKey === pathCacheKey;
166011 if (keyMatches) {
166012 path2 = context = rs.pathCache;
166013 pathCacheHit = true;
166014 } else {
166015 path2 = context = new Path2D();
166016 rs.pathCacheKey = pathCacheKey;
166017 rs.pathCache = path2;
166018 }
166019 }
166020 if (canvasCxt.setLineDash) {
166021 switch (type2) {
166022 case "dotted":
166023 canvasCxt.setLineDash([1, 1]);
166024 break;
166025 case "dashed":
166026 canvasCxt.setLineDash(lineDashPattern);
166027 canvasCxt.lineDashOffset = lineDashOffset;
166028 break;
166029 case "solid":
166030 canvasCxt.setLineDash([]);
166031 break;
166032 }
166033 }
166034 if (!pathCacheHit && !rs.badLine) {
166035 if (context.beginPath) {
166036 context.beginPath();
166037 }
166038 context.moveTo(pts2[0], pts2[1]);
166039 switch (rs.edgeType) {
166040 case "bezier":
166041 case "self":
166042 case "compound":
166043 case "multibezier":
166044 for (var i3 = 2; i3 + 3 < pts2.length; i3 += 4) {
166045 context.quadraticCurveTo(pts2[i3], pts2[i3 + 1], pts2[i3 + 2], pts2[i3 + 3]);
166046 }
166047 break;
166048 case "straight":
166049 case "segments":
166050 case "haystack":
166051 for (var _i = 2; _i + 1 < pts2.length; _i += 2) {
166052 context.lineTo(pts2[_i], pts2[_i + 1]);
166053 }
166054 break;
166055 }
166056 }
166057 context = canvasCxt;
166058 if (usePaths) {
166059 context.stroke(path2);
166060 } else {
166061 context.stroke();
166062 }
166063 if (context.setLineDash) {
166064 context.setLineDash([]);
166065 }
166066 };
166067 CRp$8.drawEdgeTrianglePath = function(edge, context, pts2) {
166068 context.fillStyle = context.strokeStyle;
166069 var edgeWidth = edge.pstyle("width").pfValue;
166070 for (var i3 = 0; i3 + 1 < pts2.length; i3 += 2) {
166071 var vector = [pts2[i3 + 2] - pts2[i3], pts2[i3 + 3] - pts2[i3 + 1]];
166072 var length2 = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]);
166073 var normal2 = [vector[1] / length2, -vector[0] / length2];
166074 var triangleHead = [normal2[0] * edgeWidth / 2, normal2[1] * edgeWidth / 2];
166075 context.beginPath();
166076 context.moveTo(pts2[i3] - triangleHead[0], pts2[i3 + 1] - triangleHead[1]);
166077 context.lineTo(pts2[i3] + triangleHead[0], pts2[i3 + 1] + triangleHead[1]);
166078 context.lineTo(pts2[i3 + 2], pts2[i3 + 3]);
166079 context.closePath();
166080 context.fill();
166081 }
166082 };
166083 CRp$8.drawArrowheads = function(context, edge, opacity) {
166084 var rs = edge._private.rscratch;
166085 var isHaystack = rs.edgeType === "haystack";
166086 if (!isHaystack) {
166087 this.drawArrowhead(context, edge, "source", rs.arrowStartX, rs.arrowStartY, rs.srcArrowAngle, opacity);
166088 }
166089 this.drawArrowhead(context, edge, "mid-target", rs.midX, rs.midY, rs.midtgtArrowAngle, opacity);
166090 this.drawArrowhead(context, edge, "mid-source", rs.midX, rs.midY, rs.midsrcArrowAngle, opacity);
166091 if (!isHaystack) {
166092 this.drawArrowhead(context, edge, "target", rs.arrowEndX, rs.arrowEndY, rs.tgtArrowAngle, opacity);
166093 }
166094 };
166095 CRp$8.drawArrowhead = function(context, edge, prefix, x2, y2, angle, opacity) {
166096 if (isNaN(x2) || x2 == null || isNaN(y2) || y2 == null || isNaN(angle) || angle == null) {
166097 return;
166098 }
166099 var self2 = this;
166100 var arrowShape = edge.pstyle(prefix + "-arrow-shape").value;
166101 if (arrowShape === "none") {
166102 return;
166103 }
166104 var arrowClearFill = edge.pstyle(prefix + "-arrow-fill").value === "hollow" ? "both" : "filled";
166105 var arrowFill = edge.pstyle(prefix + "-arrow-fill").value;
166106 var edgeWidth = edge.pstyle("width").pfValue;
166107 var edgeOpacity = edge.pstyle("opacity").value;
166108 if (opacity === void 0) {
166109 opacity = edgeOpacity;
166110 }
166111 var gco = context.globalCompositeOperation;
166112 if (opacity !== 1 || arrowFill === "hollow") {
166113 context.globalCompositeOperation = "destination-out";
166114 self2.colorFillStyle(context, 255, 255, 255, 1);
166115 self2.colorStrokeStyle(context, 255, 255, 255, 1);
166116 self2.drawArrowShape(edge, context, arrowClearFill, edgeWidth, arrowShape, x2, y2, angle);
166117 context.globalCompositeOperation = gco;
166118 }
166119 var color2 = edge.pstyle(prefix + "-arrow-color").value;
166120 self2.colorFillStyle(context, color2[0], color2[1], color2[2], opacity);
166121 self2.colorStrokeStyle(context, color2[0], color2[1], color2[2], opacity);
166122 self2.drawArrowShape(edge, context, arrowFill, edgeWidth, arrowShape, x2, y2, angle);
166123 };
166124 CRp$8.drawArrowShape = function(edge, context, fill, edgeWidth, shape, x2, y2, angle) {
166125 var r = this;
166126 var usePaths = this.usePaths() && shape !== "triangle-cross";
166127 var pathCacheHit = false;
166128 var path2;
166129 var canvasContext = context;
166130 var translation = {
166131 x: x2,
166132 y: y2
166133 };
166134 var scale = edge.pstyle("arrow-scale").value;
166135 var size2 = this.getArrowWidth(edgeWidth, scale);
166136 var shapeImpl = r.arrowShapes[shape];
166137 if (usePaths) {
166138 var cache2 = r.arrowPathCache = r.arrowPathCache || [];
166139 var key = hashString(shape);
166140 var cachedPath = cache2[key];
166141 if (cachedPath != null) {
166142 path2 = context = cachedPath;
166143 pathCacheHit = true;
166144 } else {
166145 path2 = context = new Path2D();
166146 cache2[key] = path2;
166147 }
166148 }
166149 if (!pathCacheHit) {
166150 if (context.beginPath) {
166151 context.beginPath();
166152 }
166153 if (usePaths) {
166154 shapeImpl.draw(context, 1, 0, {
166155 x: 0,
166156 y: 0
166157 }, 1);
166158 } else {
166159 shapeImpl.draw(context, size2, angle, translation, edgeWidth);
166160 }
166161 if (context.closePath) {
166162 context.closePath();
166163 }
166164 }
166165 context = canvasContext;
166166 if (usePaths) {
166167 context.translate(x2, y2);
166168 context.rotate(angle);
166169 context.scale(size2, size2);
166170 }
166171 if (fill === "filled" || fill === "both") {
166172 if (usePaths) {
166173 context.fill(path2);
166174 } else {
166175 context.fill();
166176 }
166177 }
166178 if (fill === "hollow" || fill === "both") {
166179 context.lineWidth = (shapeImpl.matchEdgeWidth ? edgeWidth : 1) / (usePaths ? size2 : 1);
166180 context.lineJoin = "miter";
166181 if (usePaths) {
166182 context.stroke(path2);
166183 } else {
166184 context.stroke();
166185 }
166186 }
166187 if (usePaths) {
166188 context.scale(1 / size2, 1 / size2);
166189 context.rotate(-angle);
166190 context.translate(-x2, -y2);
166191 }
166192 };
166193 var CRp$7 = {};
166194 CRp$7.safeDrawImage = function(context, img, ix, iy, iw, ih, x2, y2, w2, h) {
166195 if (iw <= 0 || ih <= 0 || w2 <= 0 || h <= 0) {
166196 return;
166197 }
166198 try {
166199 context.drawImage(img, ix, iy, iw, ih, x2, y2, w2, h);
166200 } catch (e) {
166201 warn(e);
166202 }
166203 };
166204 CRp$7.drawInscribedImage = function(context, img, node2, index2, nodeOpacity) {
166205 var r = this;
166206 var pos = node2.position();
166207 var nodeX = pos.x;
166208 var nodeY = pos.y;
166209 var styleObj = node2.cy().style();
166210 var getIndexedStyle = styleObj.getIndexedStyle.bind(styleObj);
166211 var fit = getIndexedStyle(node2, "background-fit", "value", index2);
166212 var repeat2 = getIndexedStyle(node2, "background-repeat", "value", index2);
166213 var nodeW = node2.width();
166214 var nodeH = node2.height();
166215 var paddingX2 = node2.padding() * 2;
166216 var nodeTW = nodeW + (getIndexedStyle(node2, "background-width-relative-to", "value", index2) === "inner" ? 0 : paddingX2);
166217 var nodeTH = nodeH + (getIndexedStyle(node2, "background-height-relative-to", "value", index2) === "inner" ? 0 : paddingX2);
166218 var rs = node2._private.rscratch;
166219 var clip = getIndexedStyle(node2, "background-clip", "value", index2);
166220 var shouldClip = clip === "node";
166221 var imgOpacity = getIndexedStyle(node2, "background-image-opacity", "value", index2) * nodeOpacity;
166222 var smooth = getIndexedStyle(node2, "background-image-smoothing", "value", index2);
166223 var imgW = img.width || img.cachedW;
166224 var imgH = img.height || img.cachedH;
166225 if (null == imgW || null == imgH) {
166226 document.body.appendChild(img);
166227 imgW = img.cachedW = img.width || img.offsetWidth;
166228 imgH = img.cachedH = img.height || img.offsetHeight;
166229 document.body.removeChild(img);
166230 }
166231 var w2 = imgW;
166232 var h = imgH;
166233 if (getIndexedStyle(node2, "background-width", "value", index2) !== "auto") {
166234 if (getIndexedStyle(node2, "background-width", "units", index2) === "%") {
166235 w2 = getIndexedStyle(node2, "background-width", "pfValue", index2) * nodeTW;
166236 } else {
166237 w2 = getIndexedStyle(node2, "background-width", "pfValue", index2);
166238 }
166239 }
166240 if (getIndexedStyle(node2, "background-height", "value", index2) !== "auto") {
166241 if (getIndexedStyle(node2, "background-height", "units", index2) === "%") {
166242 h = getIndexedStyle(node2, "background-height", "pfValue", index2) * nodeTH;
166243 } else {
166244 h = getIndexedStyle(node2, "background-height", "pfValue", index2);
166245 }
166246 }
166247 if (w2 === 0 || h === 0) {
166248 return;
166249 }
166250 if (fit === "contain") {
166251 var scale = Math.min(nodeTW / w2, nodeTH / h);
166252 w2 *= scale;
166253 h *= scale;
166254 } else if (fit === "cover") {
166255 var scale = Math.max(nodeTW / w2, nodeTH / h);
166256 w2 *= scale;
166257 h *= scale;
166258 }
166259 var x2 = nodeX - nodeTW / 2;
166260 var posXUnits = getIndexedStyle(node2, "background-position-x", "units", index2);
166261 var posXPfVal = getIndexedStyle(node2, "background-position-x", "pfValue", index2);
166262 if (posXUnits === "%") {
166263 x2 += (nodeTW - w2) * posXPfVal;
166264 } else {
166265 x2 += posXPfVal;
166266 }
166267 var offXUnits = getIndexedStyle(node2, "background-offset-x", "units", index2);
166268 var offXPfVal = getIndexedStyle(node2, "background-offset-x", "pfValue", index2);
166269 if (offXUnits === "%") {
166270 x2 += (nodeTW - w2) * offXPfVal;
166271 } else {
166272 x2 += offXPfVal;
166273 }
166274 var y2 = nodeY - nodeTH / 2;
166275 var posYUnits = getIndexedStyle(node2, "background-position-y", "units", index2);
166276 var posYPfVal = getIndexedStyle(node2, "background-position-y", "pfValue", index2);
166277 if (posYUnits === "%") {
166278 y2 += (nodeTH - h) * posYPfVal;
166279 } else {
166280 y2 += posYPfVal;
166281 }
166282 var offYUnits = getIndexedStyle(node2, "background-offset-y", "units", index2);
166283 var offYPfVal = getIndexedStyle(node2, "background-offset-y", "pfValue", index2);
166284 if (offYUnits === "%") {
166285 y2 += (nodeTH - h) * offYPfVal;
166286 } else {
166287 y2 += offYPfVal;
166288 }
166289 if (rs.pathCache) {
166290 x2 -= nodeX;
166291 y2 -= nodeY;
166292 nodeX = 0;
166293 nodeY = 0;
166294 }
166295 var gAlpha = context.globalAlpha;
166296 context.globalAlpha = imgOpacity;
166297 var smoothingEnabled = r.getImgSmoothing(context);
166298 var isSmoothingSwitched = false;
166299 if (smooth === "no" && smoothingEnabled) {
166300 r.setImgSmoothing(context, false);
166301 isSmoothingSwitched = true;
166302 } else if (smooth === "yes" && !smoothingEnabled) {
166303 r.setImgSmoothing(context, true);
166304 isSmoothingSwitched = true;
166305 }
166306 if (repeat2 === "no-repeat") {
166307 if (shouldClip) {
166308 context.save();
166309 if (rs.pathCache) {
166310 context.clip(rs.pathCache);
166311 } else {
166312 r.nodeShapes[r.getNodeShape(node2)].draw(context, nodeX, nodeY, nodeTW, nodeTH);
166313 context.clip();
166314 }
166315 }
166316 r.safeDrawImage(context, img, 0, 0, imgW, imgH, x2, y2, w2, h);
166317 if (shouldClip) {
166318 context.restore();
166319 }
166320 } else {
166321 var pattern = context.createPattern(img, repeat2);
166322 context.fillStyle = pattern;
166323 r.nodeShapes[r.getNodeShape(node2)].draw(context, nodeX, nodeY, nodeTW, nodeTH);
166324 context.translate(x2, y2);
166325 context.fill();
166326 context.translate(-x2, -y2);
166327 }
166328 context.globalAlpha = gAlpha;
166329 if (isSmoothingSwitched) {
166330 r.setImgSmoothing(context, smoothingEnabled);
166331 }
166332 };
166333 var CRp$6 = {};
166334 CRp$6.eleTextBiggerThanMin = function(ele, scale) {
166335 if (!scale) {
166336 var zoom = ele.cy().zoom();
166337 var pxRatio = this.getPixelRatio();
166338 var lvl = Math.ceil(log2(zoom * pxRatio));
166339 scale = Math.pow(2, lvl);
166340 }
166341 var computedSize = ele.pstyle("font-size").pfValue * scale;
166342 var minSize = ele.pstyle("min-zoomed-font-size").pfValue;
166343 if (computedSize < minSize) {
166344 return false;
166345 }
166346 return true;
166347 };
166348 CRp$6.drawElementText = function(context, ele, shiftToOriginWithBb, force, prefix) {
166349 var useEleOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
166350 var r = this;
166351 if (force == null) {
166352 if (useEleOpacity && !r.eleTextBiggerThanMin(ele)) {
166353 return;
166354 }
166355 } else if (force === false) {
166356 return;
166357 }
166358 if (ele.isNode()) {
166359 var label = ele.pstyle("label");
166360 if (!label || !label.value) {
166361 return;
166362 }
166363 var justification = r.getLabelJustification(ele);
166364 context.textAlign = justification;
166365 context.textBaseline = "bottom";
166366 } else {
166367 var badLine = ele.element()._private.rscratch.badLine;
166368 var _label = ele.pstyle("label");
166369 var srcLabel = ele.pstyle("source-label");
166370 var tgtLabel = ele.pstyle("target-label");
166371 if (badLine || (!_label || !_label.value) && (!srcLabel || !srcLabel.value) && (!tgtLabel || !tgtLabel.value)) {
166372 return;
166373 }
166374 context.textAlign = "center";
166375 context.textBaseline = "bottom";
166376 }
166377 var applyRotation = !shiftToOriginWithBb;
166378 var bb;
166379 if (shiftToOriginWithBb) {
166380 bb = shiftToOriginWithBb;
166381 context.translate(-bb.x1, -bb.y1);
166382 }
166383 if (prefix == null) {
166384 r.drawText(context, ele, null, applyRotation, useEleOpacity);
166385 if (ele.isEdge()) {
166386 r.drawText(context, ele, "source", applyRotation, useEleOpacity);
166387 r.drawText(context, ele, "target", applyRotation, useEleOpacity);
166388 }
166389 } else {
166390 r.drawText(context, ele, prefix, applyRotation, useEleOpacity);
166391 }
166392 if (shiftToOriginWithBb) {
166393 context.translate(bb.x1, bb.y1);
166394 }
166395 };
166396 CRp$6.getFontCache = function(context) {
166397 var cache2;
166398 this.fontCaches = this.fontCaches || [];
166399 for (var i3 = 0; i3 < this.fontCaches.length; i3++) {
166400 cache2 = this.fontCaches[i3];
166401 if (cache2.context === context) {
166402 return cache2;
166403 }
166404 }
166405 cache2 = {
166406 context
166407 };
166408 this.fontCaches.push(cache2);
166409 return cache2;
166410 };
166411 CRp$6.setupTextStyle = function(context, ele) {
166412 var useEleOpacity = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : true;
166413 var labelStyle = ele.pstyle("font-style").strValue;
166414 var labelSize = ele.pstyle("font-size").pfValue + "px";
166415 var labelFamily = ele.pstyle("font-family").strValue;
166416 var labelWeight = ele.pstyle("font-weight").strValue;
166417 var opacity = useEleOpacity ? ele.effectiveOpacity() * ele.pstyle("text-opacity").value : 1;
166418 var outlineOpacity = ele.pstyle("text-outline-opacity").value * opacity;
166419 var color2 = ele.pstyle("color").value;
166420 var outlineColor = ele.pstyle("text-outline-color").value;
166421 context.font = labelStyle + " " + labelWeight + " " + labelSize + " " + labelFamily;
166422 context.lineJoin = "round";
166423 this.colorFillStyle(context, color2[0], color2[1], color2[2], opacity);
166424 this.colorStrokeStyle(context, outlineColor[0], outlineColor[1], outlineColor[2], outlineOpacity);
166425 };
166426 function roundRect(ctx, x2, y2, width2, height2) {
166427 var radius = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : 5;
166428 ctx.beginPath();
166429 ctx.moveTo(x2 + radius, y2);
166430 ctx.lineTo(x2 + width2 - radius, y2);
166431 ctx.quadraticCurveTo(x2 + width2, y2, x2 + width2, y2 + radius);
166432 ctx.lineTo(x2 + width2, y2 + height2 - radius);
166433 ctx.quadraticCurveTo(x2 + width2, y2 + height2, x2 + width2 - radius, y2 + height2);
166434 ctx.lineTo(x2 + radius, y2 + height2);
166435 ctx.quadraticCurveTo(x2, y2 + height2, x2, y2 + height2 - radius);
166436 ctx.lineTo(x2, y2 + radius);
166437 ctx.quadraticCurveTo(x2, y2, x2 + radius, y2);
166438 ctx.closePath();
166439 ctx.fill();
166440 }
166441 CRp$6.getTextAngle = function(ele, prefix) {
166442 var theta;
166443 var _p = ele._private;
166444 var rscratch = _p.rscratch;
166445 var pdash = prefix ? prefix + "-" : "";
166446 var rotation = ele.pstyle(pdash + "text-rotation");
166447 var textAngle = getPrefixedProperty(rscratch, "labelAngle", prefix);
166448 if (rotation.strValue === "autorotate") {
166449 theta = ele.isEdge() ? textAngle : 0;
166450 } else if (rotation.strValue === "none") {
166451 theta = 0;
166452 } else {
166453 theta = rotation.pfValue;
166454 }
166455 return theta;
166456 };
166457 CRp$6.drawText = function(context, ele, prefix) {
166458 var applyRotation = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
166459 var useEleOpacity = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
166460 var _p = ele._private;
166461 var rscratch = _p.rscratch;
166462 var parentOpacity = useEleOpacity ? ele.effectiveOpacity() : 1;
166463 if (useEleOpacity && (parentOpacity === 0 || ele.pstyle("text-opacity").value === 0)) {
166464 return;
166465 }
166466 if (prefix === "main") {
166467 prefix = null;
166468 }
166469 var textX = getPrefixedProperty(rscratch, "labelX", prefix);
166470 var textY = getPrefixedProperty(rscratch, "labelY", prefix);
166471 var orgTextX, orgTextY;
166472 var text2 = this.getLabelText(ele, prefix);
166473 if (text2 != null && text2 !== "" && !isNaN(textX) && !isNaN(textY)) {
166474 this.setupTextStyle(context, ele, useEleOpacity);
166475 var pdash = prefix ? prefix + "-" : "";
166476 var textW = getPrefixedProperty(rscratch, "labelWidth", prefix);
166477 var textH = getPrefixedProperty(rscratch, "labelHeight", prefix);
166478 var marginX = ele.pstyle(pdash + "text-margin-x").pfValue;
166479 var marginY = ele.pstyle(pdash + "text-margin-y").pfValue;
166480 var isEdge = ele.isEdge();
166481 var halign = ele.pstyle("text-halign").value;
166482 var valign = ele.pstyle("text-valign").value;
166483 if (isEdge) {
166484 halign = "center";
166485 valign = "center";
166486 }
166487 textX += marginX;
166488 textY += marginY;
166489 var theta;
166490 if (!applyRotation) {
166491 theta = 0;
166492 } else {
166493 theta = this.getTextAngle(ele, prefix);
166494 }
166495 if (theta !== 0) {
166496 orgTextX = textX;
166497 orgTextY = textY;
166498 context.translate(orgTextX, orgTextY);
166499 context.rotate(theta);
166500 textX = 0;
166501 textY = 0;
166502 }
166503 switch (valign) {
166504 case "top":
166505 break;
166506 case "center":
166507 textY += textH / 2;
166508 break;
166509 case "bottom":
166510 textY += textH;
166511 break;
166512 }
166513 var backgroundOpacity = ele.pstyle("text-background-opacity").value;
166514 var borderOpacity = ele.pstyle("text-border-opacity").value;
166515 var textBorderWidth = ele.pstyle("text-border-width").pfValue;
166516 var backgroundPadding = ele.pstyle("text-background-padding").pfValue;
166517 if (backgroundOpacity > 0 || textBorderWidth > 0 && borderOpacity > 0) {
166518 var bgX = textX - backgroundPadding;
166519 switch (halign) {
166520 case "left":
166521 bgX -= textW;
166522 break;
166523 case "center":
166524 bgX -= textW / 2;
166525 break;
166526 }
166527 var bgY = textY - textH - backgroundPadding;
166528 var bgW = textW + 2 * backgroundPadding;
166529 var bgH = textH + 2 * backgroundPadding;
166530 if (backgroundOpacity > 0) {
166531 var textFill = context.fillStyle;
166532 var textBackgroundColor = ele.pstyle("text-background-color").value;
166533 context.fillStyle = "rgba(" + textBackgroundColor[0] + "," + textBackgroundColor[1] + "," + textBackgroundColor[2] + "," + backgroundOpacity * parentOpacity + ")";
166534 var styleShape = ele.pstyle("text-background-shape").strValue;
166535 if (styleShape.indexOf("round") === 0) {
166536 roundRect(context, bgX, bgY, bgW, bgH, 2);
166537 } else {
166538 context.fillRect(bgX, bgY, bgW, bgH);
166539 }
166540 context.fillStyle = textFill;
166541 }
166542 if (textBorderWidth > 0 && borderOpacity > 0) {
166543 var textStroke = context.strokeStyle;
166544 var textLineWidth = context.lineWidth;
166545 var textBorderColor = ele.pstyle("text-border-color").value;
166546 var textBorderStyle = ele.pstyle("text-border-style").value;
166547 context.strokeStyle = "rgba(" + textBorderColor[0] + "," + textBorderColor[1] + "," + textBorderColor[2] + "," + borderOpacity * parentOpacity + ")";
166548 context.lineWidth = textBorderWidth;
166549 if (context.setLineDash) {
166550 switch (textBorderStyle) {
166551 case "dotted":
166552 context.setLineDash([1, 1]);
166553 break;
166554 case "dashed":
166555 context.setLineDash([4, 2]);
166556 break;
166557 case "double":
166558 context.lineWidth = textBorderWidth / 4;
166559 context.setLineDash([]);
166560 break;
166561 case "solid":
166562 context.setLineDash([]);
166563 break;
166564 }
166565 }
166566 context.strokeRect(bgX, bgY, bgW, bgH);
166567 if (textBorderStyle === "double") {
166568 var whiteWidth = textBorderWidth / 2;
166569 context.strokeRect(bgX + whiteWidth, bgY + whiteWidth, bgW - whiteWidth * 2, bgH - whiteWidth * 2);
166570 }
166571 if (context.setLineDash) {
166572 context.setLineDash([]);
166573 }
166574 context.lineWidth = textLineWidth;
166575 context.strokeStyle = textStroke;
166576 }
166577 }
166578 var lineWidth = 2 * ele.pstyle("text-outline-width").pfValue;
166579 if (lineWidth > 0) {
166580 context.lineWidth = lineWidth;
166581 }
166582 if (ele.pstyle("text-wrap").value === "wrap") {
166583 var lines = getPrefixedProperty(rscratch, "labelWrapCachedLines", prefix);
166584 var lineHeight = getPrefixedProperty(rscratch, "labelLineHeight", prefix);
166585 var halfTextW = textW / 2;
166586 var justification = this.getLabelJustification(ele);
166587 if (justification === "auto")
166588 ;
166589 else if (halign === "left") {
166590 if (justification === "left") {
166591 textX += -textW;
166592 } else if (justification === "center") {
166593 textX += -halfTextW;
166594 }
166595 } else if (halign === "center") {
166596 if (justification === "left") {
166597 textX += -halfTextW;
166598 } else if (justification === "right") {
166599 textX += halfTextW;
166600 }
166601 } else if (halign === "right") {
166602 if (justification === "center") {
166603 textX += halfTextW;
166604 } else if (justification === "right") {
166605 textX += textW;
166606 }
166607 }
166608 switch (valign) {
166609 case "top":
166610 textY -= (lines.length - 1) * lineHeight;
166611 break;
166612 case "center":
166613 case "bottom":
166614 textY -= (lines.length - 1) * lineHeight;
166615 break;
166616 }
166617 for (var l = 0; l < lines.length; l++) {
166618 if (lineWidth > 0) {
166619 context.strokeText(lines[l], textX, textY);
166620 }
166621 context.fillText(lines[l], textX, textY);
166622 textY += lineHeight;
166623 }
166624 } else {
166625 if (lineWidth > 0) {
166626 context.strokeText(text2, textX, textY);
166627 }
166628 context.fillText(text2, textX, textY);
166629 }
166630 if (theta !== 0) {
166631 context.rotate(-theta);
166632 context.translate(-orgTextX, -orgTextY);
166633 }
166634 }
166635 };
166636 var CRp$5 = {};
166637 CRp$5.drawNode = function(context, node2, shiftToOriginWithBb) {
166638 var drawLabel2 = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : true;
166639 var shouldDrawOverlay = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : true;
166640 var shouldDrawOpacity = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : true;
166641 var r = this;
166642 var nodeWidth, nodeHeight;
166643 var _p = node2._private;
166644 var rs = _p.rscratch;
166645 var pos = node2.position();
166646 if (!number$12(pos.x) || !number$12(pos.y)) {
166647 return;
166648 }
166649 if (shouldDrawOpacity && !node2.visible()) {
166650 return;
166651 }
166652 var eleOpacity = shouldDrawOpacity ? node2.effectiveOpacity() : 1;
166653 var usePaths = r.usePaths();
166654 var path2;
166655 var pathCacheHit = false;
166656 var padding2 = node2.padding();
166657 nodeWidth = node2.width() + 2 * padding2;
166658 nodeHeight = node2.height() + 2 * padding2;
166659 var bb;
166660 if (shiftToOriginWithBb) {
166661 bb = shiftToOriginWithBb;
166662 context.translate(-bb.x1, -bb.y1);
166663 }
166664 var bgImgProp = node2.pstyle("background-image");
166665 var urls = bgImgProp.value;
166666 var urlDefined = new Array(urls.length);
166667 var image = new Array(urls.length);
166668 var numImages = 0;
166669 for (var i3 = 0; i3 < urls.length; i3++) {
166670 var url = urls[i3];
166671 var defd = urlDefined[i3] = url != null && url !== "none";
166672 if (defd) {
166673 var bgImgCrossOrigin = node2.cy().style().getIndexedStyle(node2, "background-image-crossorigin", "value", i3);
166674 numImages++;
166675 image[i3] = r.getCachedImage(url, bgImgCrossOrigin, function() {
166676 _p.backgroundTimestamp = Date.now();
166677 node2.emitAndNotify("background");
166678 });
166679 }
166680 }
166681 var darkness = node2.pstyle("background-blacken").value;
166682 var borderWidth = node2.pstyle("border-width").pfValue;
166683 var bgOpacity = node2.pstyle("background-opacity").value * eleOpacity;
166684 var borderColor = node2.pstyle("border-color").value;
166685 var borderStyle = node2.pstyle("border-style").value;
166686 var borderOpacity = node2.pstyle("border-opacity").value * eleOpacity;
166687 context.lineJoin = "miter";
166688 var setupShapeColor = function setupShapeColor2() {
166689 var bgOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : bgOpacity;
166690 r.eleFillStyle(context, node2, bgOpy);
166691 };
166692 var setupBorderColor = function setupBorderColor2() {
166693 var bdrOpy = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : borderOpacity;
166694 r.colorStrokeStyle(context, borderColor[0], borderColor[1], borderColor[2], bdrOpy);
166695 };
166696 var styleShape = node2.pstyle("shape").strValue;
166697 var shapePts = node2.pstyle("shape-polygon-points").pfValue;
166698 if (usePaths) {
166699 context.translate(pos.x, pos.y);
166700 var pathCache = r.nodePathCache = r.nodePathCache || [];
166701 var key = hashStrings(styleShape === "polygon" ? styleShape + "," + shapePts.join(",") : styleShape, "" + nodeHeight, "" + nodeWidth);
166702 var cachedPath = pathCache[key];
166703 if (cachedPath != null) {
166704 path2 = cachedPath;
166705 pathCacheHit = true;
166706 rs.pathCache = path2;
166707 } else {
166708 path2 = new Path2D();
166709 pathCache[key] = rs.pathCache = path2;
166710 }
166711 }
166712 var drawShape = function drawShape2() {
166713 if (!pathCacheHit) {
166714 var npos = pos;
166715 if (usePaths) {
166716 npos = {
166717 x: 0,
166718 y: 0
166719 };
166720 }
166721 r.nodeShapes[r.getNodeShape(node2)].draw(path2 || context, npos.x, npos.y, nodeWidth, nodeHeight);
166722 }
166723 if (usePaths) {
166724 context.fill(path2);
166725 } else {
166726 context.fill();
166727 }
166728 };
166729 var drawImages = function drawImages2() {
166730 var nodeOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : eleOpacity;
166731 var inside = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;
166732 var prevBging = _p.backgrounding;
166733 var totalCompleted = 0;
166734 for (var _i = 0; _i < image.length; _i++) {
166735 var bgContainment = node2.cy().style().getIndexedStyle(node2, "background-image-containment", "value", _i);
166736 if (inside && bgContainment === "over" || !inside && bgContainment === "inside") {
166737 totalCompleted++;
166738 continue;
166739 }
166740 if (urlDefined[_i] && image[_i].complete && !image[_i].error) {
166741 totalCompleted++;
166742 r.drawInscribedImage(context, image[_i], node2, _i, nodeOpacity);
166743 }
166744 }
166745 _p.backgrounding = !(totalCompleted === numImages);
166746 if (prevBging !== _p.backgrounding) {
166747 node2.updateStyle(false);
166748 }
166749 };
166750 var drawPie = function drawPie2() {
166751 var redrawShape = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : false;
166752 var pieOpacity = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : eleOpacity;
166753 if (r.hasPie(node2)) {
166754 r.drawPie(context, node2, pieOpacity);
166755 if (redrawShape) {
166756 if (!usePaths) {
166757 r.nodeShapes[r.getNodeShape(node2)].draw(context, pos.x, pos.y, nodeWidth, nodeHeight);
166758 }
166759 }
166760 }
166761 };
166762 var darken2 = function darken3() {
166763 var darkenOpacity = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : eleOpacity;
166764 var opacity = (darkness > 0 ? darkness : -darkness) * darkenOpacity;
166765 var c2 = darkness > 0 ? 0 : 255;
166766 if (darkness !== 0) {
166767 r.colorFillStyle(context, c2, c2, c2, opacity);
166768 if (usePaths) {
166769 context.fill(path2);
166770 } else {
166771 context.fill();
166772 }
166773 }
166774 };
166775 var drawBorder = function drawBorder2() {
166776 if (borderWidth > 0) {
166777 context.lineWidth = borderWidth;
166778 context.lineCap = "butt";
166779 if (context.setLineDash) {
166780 switch (borderStyle) {
166781 case "dotted":
166782 context.setLineDash([1, 1]);
166783 break;
166784 case "dashed":
166785 context.setLineDash([4, 2]);
166786 break;
166787 case "solid":
166788 case "double":
166789 context.setLineDash([]);
166790 break;
166791 }
166792 }
166793 if (usePaths) {
166794 context.stroke(path2);
166795 } else {
166796 context.stroke();
166797 }
166798 if (borderStyle === "double") {
166799 context.lineWidth = borderWidth / 3;
166800 var gco = context.globalCompositeOperation;
166801 context.globalCompositeOperation = "destination-out";
166802 if (usePaths) {
166803 context.stroke(path2);
166804 } else {
166805 context.stroke();
166806 }
166807 context.globalCompositeOperation = gco;
166808 }
166809 if (context.setLineDash) {
166810 context.setLineDash([]);
166811 }
166812 }
166813 };
166814 var drawOverlay = function drawOverlay2() {
166815 if (shouldDrawOverlay) {
166816 r.drawNodeOverlay(context, node2, pos, nodeWidth, nodeHeight);
166817 }
166818 };
166819 var drawUnderlay = function drawUnderlay2() {
166820 if (shouldDrawOverlay) {
166821 r.drawNodeUnderlay(context, node2, pos, nodeWidth, nodeHeight);
166822 }
166823 };
166824 var drawText2 = function drawText3() {
166825 r.drawElementText(context, node2, null, drawLabel2);
166826 };
166827 var ghost = node2.pstyle("ghost").value === "yes";
166828 if (ghost) {
166829 var gx = node2.pstyle("ghost-offset-x").pfValue;
166830 var gy = node2.pstyle("ghost-offset-y").pfValue;
166831 var ghostOpacity = node2.pstyle("ghost-opacity").value;
166832 var effGhostOpacity = ghostOpacity * eleOpacity;
166833 context.translate(gx, gy);
166834 setupShapeColor(ghostOpacity * bgOpacity);
166835 drawShape();
166836 drawImages(effGhostOpacity, true);
166837 setupBorderColor(ghostOpacity * borderOpacity);
166838 drawBorder();
166839 drawPie(darkness !== 0 || borderWidth !== 0);
166840 drawImages(effGhostOpacity, false);
166841 darken2(effGhostOpacity);
166842 context.translate(-gx, -gy);
166843 }
166844 if (usePaths) {
166845 context.translate(-pos.x, -pos.y);
166846 }
166847 drawUnderlay();
166848 if (usePaths) {
166849 context.translate(pos.x, pos.y);
166850 }
166851 setupShapeColor();
166852 drawShape();
166853 drawImages(eleOpacity, true);
166854 setupBorderColor();
166855 drawBorder();
166856 drawPie(darkness !== 0 || borderWidth !== 0);
166857 drawImages(eleOpacity, false);
166858 darken2();
166859 if (usePaths) {
166860 context.translate(-pos.x, -pos.y);
166861 }
166862 drawText2();
166863 drawOverlay();
166864 if (shiftToOriginWithBb) {
166865 context.translate(bb.x1, bb.y1);
166866 }
166867 };
166868 var drawNodeOverlayUnderlay = function drawNodeOverlayUnderlay2(overlayOrUnderlay) {
166869 if (!["overlay", "underlay"].includes(overlayOrUnderlay)) {
166870 throw new Error("Invalid state");
166871 }
166872 return function(context, node2, pos, nodeWidth, nodeHeight) {
166873 var r = this;
166874 if (!node2.visible()) {
166875 return;
166876 }
166877 var padding2 = node2.pstyle("".concat(overlayOrUnderlay, "-padding")).pfValue;
166878 var opacity = node2.pstyle("".concat(overlayOrUnderlay, "-opacity")).value;
166879 var color2 = node2.pstyle("".concat(overlayOrUnderlay, "-color")).value;
166880 var shape = node2.pstyle("".concat(overlayOrUnderlay, "-shape")).value;
166881 if (opacity > 0) {
166882 pos = pos || node2.position();
166883 if (nodeWidth == null || nodeHeight == null) {
166884 var _padding = node2.padding();
166885 nodeWidth = node2.width() + 2 * _padding;
166886 nodeHeight = node2.height() + 2 * _padding;
166887 }
166888 r.colorFillStyle(context, color2[0], color2[1], color2[2], opacity);
166889 r.nodeShapes[shape].draw(context, pos.x, pos.y, nodeWidth + padding2 * 2, nodeHeight + padding2 * 2);
166890 context.fill();
166891 }
166892 };
166893 };
166894 CRp$5.drawNodeOverlay = drawNodeOverlayUnderlay("overlay");
166895 CRp$5.drawNodeUnderlay = drawNodeOverlayUnderlay("underlay");
166896 CRp$5.hasPie = function(node2) {
166897 node2 = node2[0];
166898 return node2._private.hasPie;
166899 };
166900 CRp$5.drawPie = function(context, node2, nodeOpacity, pos) {
166901 node2 = node2[0];
166902 pos = pos || node2.position();
166903 var cyStyle = node2.cy().style();
166904 var pieSize = node2.pstyle("pie-size");
166905 var x2 = pos.x;
166906 var y2 = pos.y;
166907 var nodeW = node2.width();
166908 var nodeH = node2.height();
166909 var radius = Math.min(nodeW, nodeH) / 2;
166910 var lastPercent = 0;
166911 var usePaths = this.usePaths();
166912 if (usePaths) {
166913 x2 = 0;
166914 y2 = 0;
166915 }
166916 if (pieSize.units === "%") {
166917 radius = radius * pieSize.pfValue;
166918 } else if (pieSize.pfValue !== void 0) {
166919 radius = pieSize.pfValue / 2;
166920 }
166921 for (var i3 = 1; i3 <= cyStyle.pieBackgroundN; i3++) {
166922 var size2 = node2.pstyle("pie-" + i3 + "-background-size").value;
166923 var color2 = node2.pstyle("pie-" + i3 + "-background-color").value;
166924 var opacity = node2.pstyle("pie-" + i3 + "-background-opacity").value * nodeOpacity;
166925 var percent = size2 / 100;
166926 if (percent + lastPercent > 1) {
166927 percent = 1 - lastPercent;
166928 }
166929 var angleStart = 1.5 * Math.PI + 2 * Math.PI * lastPercent;
166930 var angleDelta = 2 * Math.PI * percent;
166931 var angleEnd = angleStart + angleDelta;
166932 if (size2 === 0 || lastPercent >= 1 || lastPercent + percent > 1) {
166933 continue;
166934 }
166935 context.beginPath();
166936 context.moveTo(x2, y2);
166937 context.arc(x2, y2, radius, angleStart, angleEnd);
166938 context.closePath();
166939 this.colorFillStyle(context, color2[0], color2[1], color2[2], opacity);
166940 context.fill();
166941 lastPercent += percent;
166942 }
166943 };
166944 var CRp$4 = {};
166945 var motionBlurDelay = 100;
166946 CRp$4.getPixelRatio = function() {
166947 var context = this.data.contexts[0];
166948 if (this.forcedPixelRatio != null) {
166949 return this.forcedPixelRatio;
166950 }
166951 var backingStore = context.backingStorePixelRatio || context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio || context.backingStorePixelRatio || 1;
166952 return (window.devicePixelRatio || 1) / backingStore;
166953 };
166954 CRp$4.paintCache = function(context) {
166955 var caches = this.paintCaches = this.paintCaches || [];
166956 var needToCreateCache = true;
166957 var cache2;
166958 for (var i3 = 0; i3 < caches.length; i3++) {
166959 cache2 = caches[i3];
166960 if (cache2.context === context) {
166961 needToCreateCache = false;
166962 break;
166963 }
166964 }
166965 if (needToCreateCache) {
166966 cache2 = {
166967 context
166968 };
166969 caches.push(cache2);
166970 }
166971 return cache2;
166972 };
166973 CRp$4.createGradientStyleFor = function(context, shapeStyleName, ele, fill, opacity) {
166974 var gradientStyle;
166975 var usePaths = this.usePaths();
166976 var colors2 = ele.pstyle(shapeStyleName + "-gradient-stop-colors").value, positions = ele.pstyle(shapeStyleName + "-gradient-stop-positions").pfValue;
166977 if (fill === "radial-gradient") {
166978 if (ele.isEdge()) {
166979 var start2 = ele.sourceEndpoint(), end2 = ele.targetEndpoint(), mid = ele.midpoint();
166980 var d1 = dist2(start2, mid);
166981 var d2 = dist2(end2, mid);
166982 gradientStyle = context.createRadialGradient(mid.x, mid.y, 0, mid.x, mid.y, Math.max(d1, d2));
166983 } else {
166984 var pos = usePaths ? {
166985 x: 0,
166986 y: 0
166987 } : ele.position(), width2 = ele.paddedWidth(), height2 = ele.paddedHeight();
166988 gradientStyle = context.createRadialGradient(pos.x, pos.y, 0, pos.x, pos.y, Math.max(width2, height2));
166989 }
166990 } else {
166991 if (ele.isEdge()) {
166992 var _start = ele.sourceEndpoint(), _end = ele.targetEndpoint();
166993 gradientStyle = context.createLinearGradient(_start.x, _start.y, _end.x, _end.y);
166994 } else {
166995 var _pos = usePaths ? {
166996 x: 0,
166997 y: 0
166998 } : ele.position(), _width = ele.paddedWidth(), _height = ele.paddedHeight(), halfWidth = _width / 2, halfHeight = _height / 2;
166999 var direction2 = ele.pstyle("background-gradient-direction").value;
167000 switch (direction2) {
167001 case "to-bottom":
167002 gradientStyle = context.createLinearGradient(_pos.x, _pos.y - halfHeight, _pos.x, _pos.y + halfHeight);
167003 break;
167004 case "to-top":
167005 gradientStyle = context.createLinearGradient(_pos.x, _pos.y + halfHeight, _pos.x, _pos.y - halfHeight);
167006 break;
167007 case "to-left":
167008 gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y, _pos.x - halfWidth, _pos.y);
167009 break;
167010 case "to-right":
167011 gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y, _pos.x + halfWidth, _pos.y);
167012 break;
167013 case "to-bottom-right":
167014 case "to-right-bottom":
167015 gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y - halfHeight, _pos.x + halfWidth, _pos.y + halfHeight);
167016 break;
167017 case "to-top-right":
167018 case "to-right-top":
167019 gradientStyle = context.createLinearGradient(_pos.x - halfWidth, _pos.y + halfHeight, _pos.x + halfWidth, _pos.y - halfHeight);
167020 break;
167021 case "to-bottom-left":
167022 case "to-left-bottom":
167023 gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y - halfHeight, _pos.x - halfWidth, _pos.y + halfHeight);
167024 break;
167025 case "to-top-left":
167026 case "to-left-top":
167027 gradientStyle = context.createLinearGradient(_pos.x + halfWidth, _pos.y + halfHeight, _pos.x - halfWidth, _pos.y - halfHeight);
167028 break;
167029 }
167030 }
167031 }
167032 if (!gradientStyle)
167033 return null;
167034 var hasPositions = positions.length === colors2.length;
167035 var length2 = colors2.length;
167036 for (var i3 = 0; i3 < length2; i3++) {
167037 gradientStyle.addColorStop(hasPositions ? positions[i3] : i3 / (length2 - 1), "rgba(" + colors2[i3][0] + "," + colors2[i3][1] + "," + colors2[i3][2] + "," + opacity + ")");
167038 }
167039 return gradientStyle;
167040 };
167041 CRp$4.gradientFillStyle = function(context, ele, fill, opacity) {
167042 var gradientStyle = this.createGradientStyleFor(context, "background", ele, fill, opacity);
167043 if (!gradientStyle)
167044 return null;
167045 context.fillStyle = gradientStyle;
167046 };
167047 CRp$4.colorFillStyle = function(context, r, g, b, a) {
167048 context.fillStyle = "rgba(" + r + "," + g + "," + b + "," + a + ")";
167049 };
167050 CRp$4.eleFillStyle = function(context, ele, opacity) {
167051 var backgroundFill = ele.pstyle("background-fill").value;
167052 if (backgroundFill === "linear-gradient" || backgroundFill === "radial-gradient") {
167053 this.gradientFillStyle(context, ele, backgroundFill, opacity);
167054 } else {
167055 var backgroundColor = ele.pstyle("background-color").value;
167056 this.colorFillStyle(context, backgroundColor[0], backgroundColor[1], backgroundColor[2], opacity);
167057 }
167058 };
167059 CRp$4.gradientStrokeStyle = function(context, ele, fill, opacity) {
167060 var gradientStyle = this.createGradientStyleFor(context, "line", ele, fill, opacity);
167061 if (!gradientStyle)
167062 return null;
167063 context.strokeStyle = gradientStyle;
167064 };
167065 CRp$4.colorStrokeStyle = function(context, r, g, b, a) {
167066 context.strokeStyle = "rgba(" + r + "," + g + "," + b + "," + a + ")";
167067 };
167068 CRp$4.eleStrokeStyle = function(context, ele, opacity) {
167069 var lineFill = ele.pstyle("line-fill").value;
167070 if (lineFill === "linear-gradient" || lineFill === "radial-gradient") {
167071 this.gradientStrokeStyle(context, ele, lineFill, opacity);
167072 } else {
167073 var lineColor = ele.pstyle("line-color").value;
167074 this.colorStrokeStyle(context, lineColor[0], lineColor[1], lineColor[2], opacity);
167075 }
167076 };
167077 CRp$4.matchCanvasSize = function(container) {
167078 var r = this;
167079 var data2 = r.data;
167080 var bb = r.findContainerClientCoords();
167081 var width2 = bb[2];
167082 var height2 = bb[3];
167083 var pixelRatio = r.getPixelRatio();
167084 var mbPxRatio = r.motionBlurPxRatio;
167085 if (container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE] || container === r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG]) {
167086 pixelRatio = mbPxRatio;
167087 }
167088 var canvasWidth = width2 * pixelRatio;
167089 var canvasHeight = height2 * pixelRatio;
167090 var canvas;
167091 if (canvasWidth === r.canvasWidth && canvasHeight === r.canvasHeight) {
167092 return;
167093 }
167094 r.fontCaches = null;
167095 var canvasContainer = data2.canvasContainer;
167096 canvasContainer.style.width = width2 + "px";
167097 canvasContainer.style.height = height2 + "px";
167098 for (var i3 = 0; i3 < r.CANVAS_LAYERS; i3++) {
167099 canvas = data2.canvases[i3];
167100 canvas.width = canvasWidth;
167101 canvas.height = canvasHeight;
167102 canvas.style.width = width2 + "px";
167103 canvas.style.height = height2 + "px";
167104 }
167105 for (var i3 = 0; i3 < r.BUFFER_COUNT; i3++) {
167106 canvas = data2.bufferCanvases[i3];
167107 canvas.width = canvasWidth;
167108 canvas.height = canvasHeight;
167109 canvas.style.width = width2 + "px";
167110 canvas.style.height = height2 + "px";
167111 }
167112 r.textureMult = 1;
167113 if (pixelRatio <= 1) {
167114 canvas = data2.bufferCanvases[r.TEXTURE_BUFFER];
167115 r.textureMult = 2;
167116 canvas.width = canvasWidth * r.textureMult;
167117 canvas.height = canvasHeight * r.textureMult;
167118 }
167119 r.canvasWidth = canvasWidth;
167120 r.canvasHeight = canvasHeight;
167121 };
167122 CRp$4.renderTo = function(cxt, zoom, pan, pxRatio) {
167123 this.render({
167124 forcedContext: cxt,
167125 forcedZoom: zoom,
167126 forcedPan: pan,
167127 drawAllLayers: true,
167128 forcedPxRatio: pxRatio
167129 });
167130 };
167131 CRp$4.render = function(options2) {
167132 options2 = options2 || staticEmptyObject();
167133 var forcedContext = options2.forcedContext;
167134 var drawAllLayers = options2.drawAllLayers;
167135 var drawOnlyNodeLayer = options2.drawOnlyNodeLayer;
167136 var forcedZoom = options2.forcedZoom;
167137 var forcedPan = options2.forcedPan;
167138 var r = this;
167139 var pixelRatio = options2.forcedPxRatio === void 0 ? this.getPixelRatio() : options2.forcedPxRatio;
167140 var cy = r.cy;
167141 var data2 = r.data;
167142 var needDraw = data2.canvasNeedsRedraw;
167143 var textureDraw = r.textureOnViewport && !forcedContext && (r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming);
167144 var motionBlur = options2.motionBlur !== void 0 ? options2.motionBlur : r.motionBlur;
167145 var mbPxRatio = r.motionBlurPxRatio;
167146 var hasCompoundNodes = cy.hasCompoundNodes();
167147 var inNodeDragGesture = r.hoverData.draggingEles;
167148 var inBoxSelection = r.hoverData.selecting || r.touchData.selecting ? true : false;
167149 motionBlur = motionBlur && !forcedContext && r.motionBlurEnabled && !inBoxSelection;
167150 var motionBlurFadeEffect = motionBlur;
167151 if (!forcedContext) {
167152 if (r.prevPxRatio !== pixelRatio) {
167153 r.invalidateContainerClientCoordsCache();
167154 r.matchCanvasSize(r.container);
167155 r.redrawHint("eles", true);
167156 r.redrawHint("drag", true);
167157 }
167158 r.prevPxRatio = pixelRatio;
167159 }
167160 if (!forcedContext && r.motionBlurTimeout) {
167161 clearTimeout(r.motionBlurTimeout);
167162 }
167163 if (motionBlur) {
167164 if (r.mbFrames == null) {
167165 r.mbFrames = 0;
167166 }
167167 r.mbFrames++;
167168 if (r.mbFrames < 3) {
167169 motionBlurFadeEffect = false;
167170 }
167171 if (r.mbFrames > r.minMbLowQualFrames) {
167172 r.motionBlurPxRatio = r.mbPxRBlurry;
167173 }
167174 }
167175 if (r.clearingMotionBlur) {
167176 r.motionBlurPxRatio = 1;
167177 }
167178 if (r.textureDrawLastFrame && !textureDraw) {
167179 needDraw[r.NODE] = true;
167180 needDraw[r.SELECT_BOX] = true;
167181 }
167182 var style = cy.style();
167183 var zoom = cy.zoom();
167184 var effectiveZoom = forcedZoom !== void 0 ? forcedZoom : zoom;
167185 var pan = cy.pan();
167186 var effectivePan = {
167187 x: pan.x,
167188 y: pan.y
167189 };
167190 var vp = {
167191 zoom,
167192 pan: {
167193 x: pan.x,
167194 y: pan.y
167195 }
167196 };
167197 var prevVp = r.prevViewport;
167198 var viewportIsDiff = prevVp === void 0 || vp.zoom !== prevVp.zoom || vp.pan.x !== prevVp.pan.x || vp.pan.y !== prevVp.pan.y;
167199 if (!viewportIsDiff && !(inNodeDragGesture && !hasCompoundNodes)) {
167200 r.motionBlurPxRatio = 1;
167201 }
167202 if (forcedPan) {
167203 effectivePan = forcedPan;
167204 }
167205 effectiveZoom *= pixelRatio;
167206 effectivePan.x *= pixelRatio;
167207 effectivePan.y *= pixelRatio;
167208 var eles = r.getCachedZSortedEles();
167209 function mbclear(context2, x2, y2, w2, h) {
167210 var gco = context2.globalCompositeOperation;
167211 context2.globalCompositeOperation = "destination-out";
167212 r.colorFillStyle(context2, 255, 255, 255, r.motionBlurTransparency);
167213 context2.fillRect(x2, y2, w2, h);
167214 context2.globalCompositeOperation = gco;
167215 }
167216 function setContextTransform(context2, clear3) {
167217 var ePan, eZoom, w2, h;
167218 if (!r.clearingMotionBlur && (context2 === data2.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] || context2 === data2.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG])) {
167219 ePan = {
167220 x: pan.x * mbPxRatio,
167221 y: pan.y * mbPxRatio
167222 };
167223 eZoom = zoom * mbPxRatio;
167224 w2 = r.canvasWidth * mbPxRatio;
167225 h = r.canvasHeight * mbPxRatio;
167226 } else {
167227 ePan = effectivePan;
167228 eZoom = effectiveZoom;
167229 w2 = r.canvasWidth;
167230 h = r.canvasHeight;
167231 }
167232 context2.setTransform(1, 0, 0, 1, 0, 0);
167233 if (clear3 === "motionBlur") {
167234 mbclear(context2, 0, 0, w2, h);
167235 } else if (!forcedContext && (clear3 === void 0 || clear3)) {
167236 context2.clearRect(0, 0, w2, h);
167237 }
167238 if (!drawAllLayers) {
167239 context2.translate(ePan.x, ePan.y);
167240 context2.scale(eZoom, eZoom);
167241 }
167242 if (forcedPan) {
167243 context2.translate(forcedPan.x, forcedPan.y);
167244 }
167245 if (forcedZoom) {
167246 context2.scale(forcedZoom, forcedZoom);
167247 }
167248 }
167249 if (!textureDraw) {
167250 r.textureDrawLastFrame = false;
167251 }
167252 if (textureDraw) {
167253 r.textureDrawLastFrame = true;
167254 if (!r.textureCache) {
167255 r.textureCache = {};
167256 r.textureCache.bb = cy.mutableElements().boundingBox();
167257 r.textureCache.texture = r.data.bufferCanvases[r.TEXTURE_BUFFER];
167258 var cxt = r.data.bufferContexts[r.TEXTURE_BUFFER];
167259 cxt.setTransform(1, 0, 0, 1, 0, 0);
167260 cxt.clearRect(0, 0, r.canvasWidth * r.textureMult, r.canvasHeight * r.textureMult);
167261 r.render({
167262 forcedContext: cxt,
167263 drawOnlyNodeLayer: true,
167264 forcedPxRatio: pixelRatio * r.textureMult
167265 });
167266 var vp = r.textureCache.viewport = {
167267 zoom: cy.zoom(),
167268 pan: cy.pan(),
167269 width: r.canvasWidth,
167270 height: r.canvasHeight
167271 };
167272 vp.mpan = {
167273 x: (0 - vp.pan.x) / vp.zoom,
167274 y: (0 - vp.pan.y) / vp.zoom
167275 };
167276 }
167277 needDraw[r.DRAG] = false;
167278 needDraw[r.NODE] = false;
167279 var context = data2.contexts[r.NODE];
167280 var texture = r.textureCache.texture;
167281 var vp = r.textureCache.viewport;
167282 context.setTransform(1, 0, 0, 1, 0, 0);
167283 if (motionBlur) {
167284 mbclear(context, 0, 0, vp.width, vp.height);
167285 } else {
167286 context.clearRect(0, 0, vp.width, vp.height);
167287 }
167288 var outsideBgColor = style.core("outside-texture-bg-color").value;
167289 var outsideBgOpacity = style.core("outside-texture-bg-opacity").value;
167290 r.colorFillStyle(context, outsideBgColor[0], outsideBgColor[1], outsideBgColor[2], outsideBgOpacity);
167291 context.fillRect(0, 0, vp.width, vp.height);
167292 var zoom = cy.zoom();
167293 setContextTransform(context, false);
167294 context.clearRect(vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);
167295 context.drawImage(texture, vp.mpan.x, vp.mpan.y, vp.width / vp.zoom / pixelRatio, vp.height / vp.zoom / pixelRatio);
167296 } else if (r.textureOnViewport && !forcedContext) {
167297 r.textureCache = null;
167298 }
167299 var extent = cy.extent();
167300 var vpManip = r.pinching || r.hoverData.dragging || r.swipePanning || r.data.wheelZooming || r.hoverData.draggingEles || r.cy.animated();
167301 var hideEdges = r.hideEdgesOnViewport && vpManip;
167302 var needMbClear = [];
167303 needMbClear[r.NODE] = !needDraw[r.NODE] && motionBlur && !r.clearedForMotionBlur[r.NODE] || r.clearingMotionBlur;
167304 if (needMbClear[r.NODE]) {
167305 r.clearedForMotionBlur[r.NODE] = true;
167306 }
167307 needMbClear[r.DRAG] = !needDraw[r.DRAG] && motionBlur && !r.clearedForMotionBlur[r.DRAG] || r.clearingMotionBlur;
167308 if (needMbClear[r.DRAG]) {
167309 r.clearedForMotionBlur[r.DRAG] = true;
167310 }
167311 if (needDraw[r.NODE] || drawAllLayers || drawOnlyNodeLayer || needMbClear[r.NODE]) {
167312 var useBuffer = motionBlur && !needMbClear[r.NODE] && mbPxRatio !== 1;
167313 var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_NODE] : data2.contexts[r.NODE]);
167314 var clear2 = motionBlur && !useBuffer ? "motionBlur" : void 0;
167315 setContextTransform(context, clear2);
167316 if (hideEdges) {
167317 r.drawCachedNodes(context, eles.nondrag, pixelRatio, extent);
167318 } else {
167319 r.drawLayeredElements(context, eles.nondrag, pixelRatio, extent);
167320 }
167321 if (r.debug) {
167322 r.drawDebugPoints(context, eles.nondrag);
167323 }
167324 if (!drawAllLayers && !motionBlur) {
167325 needDraw[r.NODE] = false;
167326 }
167327 }
167328 if (!drawOnlyNodeLayer && (needDraw[r.DRAG] || drawAllLayers || needMbClear[r.DRAG])) {
167329 var useBuffer = motionBlur && !needMbClear[r.DRAG] && mbPxRatio !== 1;
167330 var context = forcedContext || (useBuffer ? r.data.bufferContexts[r.MOTIONBLUR_BUFFER_DRAG] : data2.contexts[r.DRAG]);
167331 setContextTransform(context, motionBlur && !useBuffer ? "motionBlur" : void 0);
167332 if (hideEdges) {
167333 r.drawCachedNodes(context, eles.drag, pixelRatio, extent);
167334 } else {
167335 r.drawCachedElements(context, eles.drag, pixelRatio, extent);
167336 }
167337 if (r.debug) {
167338 r.drawDebugPoints(context, eles.drag);
167339 }
167340 if (!drawAllLayers && !motionBlur) {
167341 needDraw[r.DRAG] = false;
167342 }
167343 }
167344 if (r.showFps || !drawOnlyNodeLayer && needDraw[r.SELECT_BOX] && !drawAllLayers) {
167345 var context = forcedContext || data2.contexts[r.SELECT_BOX];
167346 setContextTransform(context);
167347 if (r.selection[4] == 1 && (r.hoverData.selecting || r.touchData.selecting)) {
167348 var zoom = r.cy.zoom();
167349 var borderWidth = style.core("selection-box-border-width").value / zoom;
167350 context.lineWidth = borderWidth;
167351 context.fillStyle = "rgba(" + style.core("selection-box-color").value[0] + "," + style.core("selection-box-color").value[1] + "," + style.core("selection-box-color").value[2] + "," + style.core("selection-box-opacity").value + ")";
167352 context.fillRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]);
167353 if (borderWidth > 0) {
167354 context.strokeStyle = "rgba(" + style.core("selection-box-border-color").value[0] + "," + style.core("selection-box-border-color").value[1] + "," + style.core("selection-box-border-color").value[2] + "," + style.core("selection-box-opacity").value + ")";
167355 context.strokeRect(r.selection[0], r.selection[1], r.selection[2] - r.selection[0], r.selection[3] - r.selection[1]);
167356 }
167357 }
167358 if (data2.bgActivePosistion && !r.hoverData.selecting) {
167359 var zoom = r.cy.zoom();
167360 var pos = data2.bgActivePosistion;
167361 context.fillStyle = "rgba(" + style.core("active-bg-color").value[0] + "," + style.core("active-bg-color").value[1] + "," + style.core("active-bg-color").value[2] + "," + style.core("active-bg-opacity").value + ")";
167362 context.beginPath();
167363 context.arc(pos.x, pos.y, style.core("active-bg-size").pfValue / zoom, 0, 2 * Math.PI);
167364 context.fill();
167365 }
167366 var timeToRender = r.lastRedrawTime;
167367 if (r.showFps && timeToRender) {
167368 timeToRender = Math.round(timeToRender);
167369 var fps = Math.round(1e3 / timeToRender);
167370 context.setTransform(1, 0, 0, 1, 0, 0);
167371 context.fillStyle = "rgba(255, 0, 0, 0.75)";
167372 context.strokeStyle = "rgba(255, 0, 0, 0.75)";
167373 context.lineWidth = 1;
167374 context.fillText("1 frame = " + timeToRender + " ms = " + fps + " fps", 0, 20);
167375 var maxFps = 60;
167376 context.strokeRect(0, 30, 250, 20);
167377 context.fillRect(0, 30, 250 * Math.min(fps / maxFps, 1), 20);
167378 }
167379 if (!drawAllLayers) {
167380 needDraw[r.SELECT_BOX] = false;
167381 }
167382 }
167383 if (motionBlur && mbPxRatio !== 1) {
167384 var cxtNode = data2.contexts[r.NODE];
167385 var txtNode = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_NODE];
167386 var cxtDrag = data2.contexts[r.DRAG];
167387 var txtDrag = r.data.bufferCanvases[r.MOTIONBLUR_BUFFER_DRAG];
167388 var drawMotionBlur = function drawMotionBlur2(cxt2, txt, needClear) {
167389 cxt2.setTransform(1, 0, 0, 1, 0, 0);
167390 if (needClear || !motionBlurFadeEffect) {
167391 cxt2.clearRect(0, 0, r.canvasWidth, r.canvasHeight);
167392 } else {
167393 mbclear(cxt2, 0, 0, r.canvasWidth, r.canvasHeight);
167394 }
167395 var pxr = mbPxRatio;
167396 cxt2.drawImage(
167397 txt,
167398 // img
167399 0,
167400 0,
167401 // sx, sy
167402 r.canvasWidth * pxr,
167403 r.canvasHeight * pxr,
167404 // sw, sh
167405 0,
167406 0,
167407 // x, y
167408 r.canvasWidth,
167409 r.canvasHeight
167410 // w, h
167411 );
167412 };
167413 if (needDraw[r.NODE] || needMbClear[r.NODE]) {
167414 drawMotionBlur(cxtNode, txtNode, needMbClear[r.NODE]);
167415 needDraw[r.NODE] = false;
167416 }
167417 if (needDraw[r.DRAG] || needMbClear[r.DRAG]) {
167418 drawMotionBlur(cxtDrag, txtDrag, needMbClear[r.DRAG]);
167419 needDraw[r.DRAG] = false;
167420 }
167421 }
167422 r.prevViewport = vp;
167423 if (r.clearingMotionBlur) {
167424 r.clearingMotionBlur = false;
167425 r.motionBlurCleared = true;
167426 r.motionBlur = true;
167427 }
167428 if (motionBlur) {
167429 r.motionBlurTimeout = setTimeout(function() {
167430 r.motionBlurTimeout = null;
167431 r.clearedForMotionBlur[r.NODE] = false;
167432 r.clearedForMotionBlur[r.DRAG] = false;
167433 r.motionBlur = false;
167434 r.clearingMotionBlur = !textureDraw;
167435 r.mbFrames = 0;
167436 needDraw[r.NODE] = true;
167437 needDraw[r.DRAG] = true;
167438 r.redraw();
167439 }, motionBlurDelay);
167440 }
167441 if (!forcedContext) {
167442 cy.emit("render");
167443 }
167444 };
167445 var CRp$3 = {};
167446 CRp$3.drawPolygonPath = function(context, x2, y2, width2, height2, points) {
167447 var halfW = width2 / 2;
167448 var halfH = height2 / 2;
167449 if (context.beginPath) {
167450 context.beginPath();
167451 }
167452 context.moveTo(x2 + halfW * points[0], y2 + halfH * points[1]);
167453 for (var i3 = 1; i3 < points.length / 2; i3++) {
167454 context.lineTo(x2 + halfW * points[i3 * 2], y2 + halfH * points[i3 * 2 + 1]);
167455 }
167456 context.closePath();
167457 };
167458 CRp$3.drawRoundPolygonPath = function(context, x2, y2, width2, height2, points) {
167459 var halfW = width2 / 2;
167460 var halfH = height2 / 2;
167461 var cornerRadius = getRoundPolygonRadius(width2, height2);
167462 if (context.beginPath) {
167463 context.beginPath();
167464 }
167465 for (var _i = 0; _i < points.length / 4; _i++) {
167466 var sourceUv = void 0, destUv = void 0;
167467 if (_i === 0) {
167468 sourceUv = points.length - 2;
167469 } else {
167470 sourceUv = _i * 4 - 2;
167471 }
167472 destUv = _i * 4 + 2;
167473 var px = x2 + halfW * points[_i * 4];
167474 var py = y2 + halfH * points[_i * 4 + 1];
167475 var cosTheta = -points[sourceUv] * points[destUv] - points[sourceUv + 1] * points[destUv + 1];
167476 var offset = cornerRadius / Math.tan(Math.acos(cosTheta) / 2);
167477 var cp0x = px - offset * points[sourceUv];
167478 var cp0y = py - offset * points[sourceUv + 1];
167479 var cp1x = px + offset * points[destUv];
167480 var cp1y = py + offset * points[destUv + 1];
167481 if (_i === 0) {
167482 context.moveTo(cp0x, cp0y);
167483 } else {
167484 context.lineTo(cp0x, cp0y);
167485 }
167486 context.arcTo(px, py, cp1x, cp1y, cornerRadius);
167487 }
167488 context.closePath();
167489 };
167490 CRp$3.drawRoundRectanglePath = function(context, x2, y2, width2, height2) {
167491 var halfWidth = width2 / 2;
167492 var halfHeight = height2 / 2;
167493 var cornerRadius = getRoundRectangleRadius(width2, height2);
167494 if (context.beginPath) {
167495 context.beginPath();
167496 }
167497 context.moveTo(x2, y2 - halfHeight);
167498 context.arcTo(x2 + halfWidth, y2 - halfHeight, x2 + halfWidth, y2, cornerRadius);
167499 context.arcTo(x2 + halfWidth, y2 + halfHeight, x2, y2 + halfHeight, cornerRadius);
167500 context.arcTo(x2 - halfWidth, y2 + halfHeight, x2 - halfWidth, y2, cornerRadius);
167501 context.arcTo(x2 - halfWidth, y2 - halfHeight, x2, y2 - halfHeight, cornerRadius);
167502 context.lineTo(x2, y2 - halfHeight);
167503 context.closePath();
167504 };
167505 CRp$3.drawBottomRoundRectanglePath = function(context, x2, y2, width2, height2) {
167506 var halfWidth = width2 / 2;
167507 var halfHeight = height2 / 2;
167508 var cornerRadius = getRoundRectangleRadius(width2, height2);
167509 if (context.beginPath) {
167510 context.beginPath();
167511 }
167512 context.moveTo(x2, y2 - halfHeight);
167513 context.lineTo(x2 + halfWidth, y2 - halfHeight);
167514 context.lineTo(x2 + halfWidth, y2);
167515 context.arcTo(x2 + halfWidth, y2 + halfHeight, x2, y2 + halfHeight, cornerRadius);
167516 context.arcTo(x2 - halfWidth, y2 + halfHeight, x2 - halfWidth, y2, cornerRadius);
167517 context.lineTo(x2 - halfWidth, y2 - halfHeight);
167518 context.lineTo(x2, y2 - halfHeight);
167519 context.closePath();
167520 };
167521 CRp$3.drawCutRectanglePath = function(context, x2, y2, width2, height2) {
167522 var halfWidth = width2 / 2;
167523 var halfHeight = height2 / 2;
167524 var cornerLength = getCutRectangleCornerLength();
167525 if (context.beginPath) {
167526 context.beginPath();
167527 }
167528 context.moveTo(x2 - halfWidth + cornerLength, y2 - halfHeight);
167529 context.lineTo(x2 + halfWidth - cornerLength, y2 - halfHeight);
167530 context.lineTo(x2 + halfWidth, y2 - halfHeight + cornerLength);
167531 context.lineTo(x2 + halfWidth, y2 + halfHeight - cornerLength);
167532 context.lineTo(x2 + halfWidth - cornerLength, y2 + halfHeight);
167533 context.lineTo(x2 - halfWidth + cornerLength, y2 + halfHeight);
167534 context.lineTo(x2 - halfWidth, y2 + halfHeight - cornerLength);
167535 context.lineTo(x2 - halfWidth, y2 - halfHeight + cornerLength);
167536 context.closePath();
167537 };
167538 CRp$3.drawBarrelPath = function(context, x2, y2, width2, height2) {
167539 var halfWidth = width2 / 2;
167540 var halfHeight = height2 / 2;
167541 var xBegin = x2 - halfWidth;
167542 var xEnd = x2 + halfWidth;
167543 var yBegin = y2 - halfHeight;
167544 var yEnd = y2 + halfHeight;
167545 var barrelCurveConstants = getBarrelCurveConstants(width2, height2);
167546 var wOffset = barrelCurveConstants.widthOffset;
167547 var hOffset = barrelCurveConstants.heightOffset;
167548 var ctrlPtXOffset = barrelCurveConstants.ctrlPtOffsetPct * wOffset;
167549 if (context.beginPath) {
167550 context.beginPath();
167551 }
167552 context.moveTo(xBegin, yBegin + hOffset);
167553 context.lineTo(xBegin, yEnd - hOffset);
167554 context.quadraticCurveTo(xBegin + ctrlPtXOffset, yEnd, xBegin + wOffset, yEnd);
167555 context.lineTo(xEnd - wOffset, yEnd);
167556 context.quadraticCurveTo(xEnd - ctrlPtXOffset, yEnd, xEnd, yEnd - hOffset);
167557 context.lineTo(xEnd, yBegin + hOffset);
167558 context.quadraticCurveTo(xEnd - ctrlPtXOffset, yBegin, xEnd - wOffset, yBegin);
167559 context.lineTo(xBegin + wOffset, yBegin);
167560 context.quadraticCurveTo(xBegin + ctrlPtXOffset, yBegin, xBegin, yBegin + hOffset);
167561 context.closePath();
167562 };
167563 var sin0 = Math.sin(0);
167564 var cos0 = Math.cos(0);
167565 var sin2 = {};
167566 var cos2 = {};
167567 var ellipseStepSize = Math.PI / 40;
167568 for (var i2 = 0 * Math.PI; i2 < 2 * Math.PI; i2 += ellipseStepSize) {
167569 sin2[i2] = Math.sin(i2);
167570 cos2[i2] = Math.cos(i2);
167571 }
167572 CRp$3.drawEllipsePath = function(context, centerX, centerY, width2, height2) {
167573 if (context.beginPath) {
167574 context.beginPath();
167575 }
167576 if (context.ellipse) {
167577 context.ellipse(centerX, centerY, width2 / 2, height2 / 2, 0, 0, 2 * Math.PI);
167578 } else {
167579 var xPos, yPos;
167580 var rw = width2 / 2;
167581 var rh = height2 / 2;
167582 for (var i3 = 0 * Math.PI; i3 < 2 * Math.PI; i3 += ellipseStepSize) {
167583 xPos = centerX - rw * sin2[i3] * sin0 + rw * cos2[i3] * cos0;
167584 yPos = centerY + rh * cos2[i3] * sin0 + rh * sin2[i3] * cos0;
167585 if (i3 === 0) {
167586 context.moveTo(xPos, yPos);
167587 } else {
167588 context.lineTo(xPos, yPos);
167589 }
167590 }
167591 }
167592 context.closePath();
167593 };
167594 var CRp$2 = {};
167595 CRp$2.createBuffer = function(w2, h) {
167596 var buffer = document.createElement("canvas");
167597 buffer.width = w2;
167598 buffer.height = h;
167599 return [buffer, buffer.getContext("2d")];
167600 };
167601 CRp$2.bufferCanvasImage = function(options2) {
167602 var cy = this.cy;
167603 var eles = cy.mutableElements();
167604 var bb = eles.boundingBox();
167605 var ctrRect = this.findContainerClientCoords();
167606 var width2 = options2.full ? Math.ceil(bb.w) : ctrRect[2];
167607 var height2 = options2.full ? Math.ceil(bb.h) : ctrRect[3];
167608 var specdMaxDims = number$12(options2.maxWidth) || number$12(options2.maxHeight);
167609 var pxRatio = this.getPixelRatio();
167610 var scale = 1;
167611 if (options2.scale !== void 0) {
167612 width2 *= options2.scale;
167613 height2 *= options2.scale;
167614 scale = options2.scale;
167615 } else if (specdMaxDims) {
167616 var maxScaleW = Infinity;
167617 var maxScaleH = Infinity;
167618 if (number$12(options2.maxWidth)) {
167619 maxScaleW = scale * options2.maxWidth / width2;
167620 }
167621 if (number$12(options2.maxHeight)) {
167622 maxScaleH = scale * options2.maxHeight / height2;
167623 }
167624 scale = Math.min(maxScaleW, maxScaleH);
167625 width2 *= scale;
167626 height2 *= scale;
167627 }
167628 if (!specdMaxDims) {
167629 width2 *= pxRatio;
167630 height2 *= pxRatio;
167631 scale *= pxRatio;
167632 }
167633 var buffCanvas = document.createElement("canvas");
167634 buffCanvas.width = width2;
167635 buffCanvas.height = height2;
167636 buffCanvas.style.width = width2 + "px";
167637 buffCanvas.style.height = height2 + "px";
167638 var buffCxt = buffCanvas.getContext("2d");
167639 if (width2 > 0 && height2 > 0) {
167640 buffCxt.clearRect(0, 0, width2, height2);
167641 buffCxt.globalCompositeOperation = "source-over";
167642 var zsortedEles = this.getCachedZSortedEles();
167643 if (options2.full) {
167644 buffCxt.translate(-bb.x1 * scale, -bb.y1 * scale);
167645 buffCxt.scale(scale, scale);
167646 this.drawElements(buffCxt, zsortedEles);
167647 buffCxt.scale(1 / scale, 1 / scale);
167648 buffCxt.translate(bb.x1 * scale, bb.y1 * scale);
167649 } else {
167650 var pan = cy.pan();
167651 var translation = {
167652 x: pan.x * scale,
167653 y: pan.y * scale
167654 };
167655 scale *= cy.zoom();
167656 buffCxt.translate(translation.x, translation.y);
167657 buffCxt.scale(scale, scale);
167658 this.drawElements(buffCxt, zsortedEles);
167659 buffCxt.scale(1 / scale, 1 / scale);
167660 buffCxt.translate(-translation.x, -translation.y);
167661 }
167662 if (options2.bg) {
167663 buffCxt.globalCompositeOperation = "destination-over";
167664 buffCxt.fillStyle = options2.bg;
167665 buffCxt.rect(0, 0, width2, height2);
167666 buffCxt.fill();
167667 }
167668 }
167669 return buffCanvas;
167670 };
167671 function b64ToBlob(b64, mimeType) {
167672 var bytes = atob(b64);
167673 var buff = new ArrayBuffer(bytes.length);
167674 var buffUint8 = new Uint8Array(buff);
167675 for (var i3 = 0; i3 < bytes.length; i3++) {
167676 buffUint8[i3] = bytes.charCodeAt(i3);
167677 }
167678 return new Blob([buff], {
167679 type: mimeType
167680 });
167681 }
167682 function b64UriToB64(b64uri) {
167683 var i3 = b64uri.indexOf(",");
167684 return b64uri.substr(i3 + 1);
167685 }
167686 function output(options2, canvas, mimeType) {
167687 var getB64Uri = function getB64Uri2() {
167688 return canvas.toDataURL(mimeType, options2.quality);
167689 };
167690 switch (options2.output) {
167691 case "blob-promise":
167692 return new Promise$12(function(resolve2, reject) {
167693 try {
167694 canvas.toBlob(function(blob) {
167695 if (blob != null) {
167696 resolve2(blob);
167697 } else {
167698 reject(new Error("`canvas.toBlob()` sent a null value in its callback"));
167699 }
167700 }, mimeType, options2.quality);
167701 } catch (err) {
167702 reject(err);
167703 }
167704 });
167705 case "blob":
167706 return b64ToBlob(b64UriToB64(getB64Uri()), mimeType);
167707 case "base64":
167708 return b64UriToB64(getB64Uri());
167709 case "base64uri":
167710 default:
167711 return getB64Uri();
167712 }
167713 }
167714 CRp$2.png = function(options2) {
167715 return output(options2, this.bufferCanvasImage(options2), "image/png");
167716 };
167717 CRp$2.jpg = function(options2) {
167718 return output(options2, this.bufferCanvasImage(options2), "image/jpeg");
167719 };
167720 var CRp$1 = {};
167721 CRp$1.nodeShapeImpl = function(name2, context, centerX, centerY, width2, height2, points) {
167722 switch (name2) {
167723 case "ellipse":
167724 return this.drawEllipsePath(context, centerX, centerY, width2, height2);
167725 case "polygon":
167726 return this.drawPolygonPath(context, centerX, centerY, width2, height2, points);
167727 case "round-polygon":
167728 return this.drawRoundPolygonPath(context, centerX, centerY, width2, height2, points);
167729 case "roundrectangle":
167730 case "round-rectangle":
167731 return this.drawRoundRectanglePath(context, centerX, centerY, width2, height2);
167732 case "cutrectangle":
167733 case "cut-rectangle":
167734 return this.drawCutRectanglePath(context, centerX, centerY, width2, height2);
167735 case "bottomroundrectangle":
167736 case "bottom-round-rectangle":
167737 return this.drawBottomRoundRectanglePath(context, centerX, centerY, width2, height2);
167738 case "barrel":
167739 return this.drawBarrelPath(context, centerX, centerY, width2, height2);
167740 }
167741 };
167742 var CR = CanvasRenderer;
167743 var CRp = CanvasRenderer.prototype;
167744 CRp.CANVAS_LAYERS = 3;
167745 CRp.SELECT_BOX = 0;
167746 CRp.DRAG = 1;
167747 CRp.NODE = 2;
167748 CRp.BUFFER_COUNT = 3;
167749 CRp.TEXTURE_BUFFER = 0;
167750 CRp.MOTIONBLUR_BUFFER_NODE = 1;
167751 CRp.MOTIONBLUR_BUFFER_DRAG = 2;
167752 function CanvasRenderer(options2) {
167753 var r = this;
167754 r.data = {
167755 canvases: new Array(CRp.CANVAS_LAYERS),
167756 contexts: new Array(CRp.CANVAS_LAYERS),
167757 canvasNeedsRedraw: new Array(CRp.CANVAS_LAYERS),
167758 bufferCanvases: new Array(CRp.BUFFER_COUNT),
167759 bufferContexts: new Array(CRp.CANVAS_LAYERS)
167760 };
167761 var tapHlOffAttr = "-webkit-tap-highlight-color";
167762 var tapHlOffStyle = "rgba(0,0,0,0)";
167763 r.data.canvasContainer = document.createElement("div");
167764 var containerStyle = r.data.canvasContainer.style;
167765 r.data.canvasContainer.style[tapHlOffAttr] = tapHlOffStyle;
167766 containerStyle.position = "relative";
167767 containerStyle.zIndex = "0";
167768 containerStyle.overflow = "hidden";
167769 var container = options2.cy.container();
167770 container.appendChild(r.data.canvasContainer);
167771 container.style[tapHlOffAttr] = tapHlOffStyle;
167772 var styleMap = {
167773 "-webkit-user-select": "none",
167774 "-moz-user-select": "-moz-none",
167775 "user-select": "none",
167776 "-webkit-tap-highlight-color": "rgba(0,0,0,0)",
167777 "outline-style": "none"
167778 };
167779 if (ms()) {
167780 styleMap["-ms-touch-action"] = "none";
167781 styleMap["touch-action"] = "none";
167782 }
167783 for (var i3 = 0; i3 < CRp.CANVAS_LAYERS; i3++) {
167784 var canvas = r.data.canvases[i3] = document.createElement("canvas");
167785 r.data.contexts[i3] = canvas.getContext("2d");
167786 Object.keys(styleMap).forEach(function(k) {
167787 canvas.style[k] = styleMap[k];
167788 });
167789 canvas.style.position = "absolute";
167790 canvas.setAttribute("data-id", "layer" + i3);
167791 canvas.style.zIndex = String(CRp.CANVAS_LAYERS - i3);
167792 r.data.canvasContainer.appendChild(canvas);
167793 r.data.canvasNeedsRedraw[i3] = false;
167794 }
167795 r.data.topCanvas = r.data.canvases[0];
167796 r.data.canvases[CRp.NODE].setAttribute("data-id", "layer" + CRp.NODE + "-node");
167797 r.data.canvases[CRp.SELECT_BOX].setAttribute("data-id", "layer" + CRp.SELECT_BOX + "-selectbox");
167798 r.data.canvases[CRp.DRAG].setAttribute("data-id", "layer" + CRp.DRAG + "-drag");
167799 for (var i3 = 0; i3 < CRp.BUFFER_COUNT; i3++) {
167800 r.data.bufferCanvases[i3] = document.createElement("canvas");
167801 r.data.bufferContexts[i3] = r.data.bufferCanvases[i3].getContext("2d");
167802 r.data.bufferCanvases[i3].style.position = "absolute";
167803 r.data.bufferCanvases[i3].setAttribute("data-id", "buffer" + i3);
167804 r.data.bufferCanvases[i3].style.zIndex = String(-i3 - 1);
167805 r.data.bufferCanvases[i3].style.visibility = "hidden";
167806 }
167807 r.pathsEnabled = true;
167808 var emptyBb = makeBoundingBox();
167809 var getBoxCenter = function getBoxCenter2(bb) {
167810 return {
167811 x: (bb.x1 + bb.x2) / 2,
167812 y: (bb.y1 + bb.y2) / 2
167813 };
167814 };
167815 var getCenterOffset = function getCenterOffset2(bb) {
167816 return {
167817 x: -bb.w / 2,
167818 y: -bb.h / 2
167819 };
167820 };
167821 var backgroundTimestampHasChanged = function backgroundTimestampHasChanged2(ele) {
167822 var _p = ele[0]._private;
167823 var same = _p.oldBackgroundTimestamp === _p.backgroundTimestamp;
167824 return !same;
167825 };
167826 var getStyleKey = function getStyleKey2(ele) {
167827 return ele[0]._private.nodeKey;
167828 };
167829 var getLabelKey = function getLabelKey2(ele) {
167830 return ele[0]._private.labelStyleKey;
167831 };
167832 var getSourceLabelKey = function getSourceLabelKey2(ele) {
167833 return ele[0]._private.sourceLabelStyleKey;
167834 };
167835 var getTargetLabelKey = function getTargetLabelKey2(ele) {
167836 return ele[0]._private.targetLabelStyleKey;
167837 };
167838 var drawElement = function drawElement2(context, ele, bb, scaledLabelShown, useEleOpacity) {
167839 return r.drawElement(context, ele, bb, false, false, useEleOpacity);
167840 };
167841 var drawLabel2 = function drawLabel3(context, ele, bb, scaledLabelShown, useEleOpacity) {
167842 return r.drawElementText(context, ele, bb, scaledLabelShown, "main", useEleOpacity);
167843 };
167844 var drawSourceLabel = function drawSourceLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) {
167845 return r.drawElementText(context, ele, bb, scaledLabelShown, "source", useEleOpacity);
167846 };
167847 var drawTargetLabel = function drawTargetLabel2(context, ele, bb, scaledLabelShown, useEleOpacity) {
167848 return r.drawElementText(context, ele, bb, scaledLabelShown, "target", useEleOpacity);
167849 };
167850 var getElementBox = function getElementBox2(ele) {
167851 ele.boundingBox();
167852 return ele[0]._private.bodyBounds;
167853 };
167854 var getLabelBox = function getLabelBox2(ele) {
167855 ele.boundingBox();
167856 return ele[0]._private.labelBounds.main || emptyBb;
167857 };
167858 var getSourceLabelBox = function getSourceLabelBox2(ele) {
167859 ele.boundingBox();
167860 return ele[0]._private.labelBounds.source || emptyBb;
167861 };
167862 var getTargetLabelBox = function getTargetLabelBox2(ele) {
167863 ele.boundingBox();
167864 return ele[0]._private.labelBounds.target || emptyBb;
167865 };
167866 var isLabelVisibleAtScale = function isLabelVisibleAtScale2(ele, scaledLabelShown) {
167867 return scaledLabelShown;
167868 };
167869 var getElementRotationPoint = function getElementRotationPoint2(ele) {
167870 return getBoxCenter(getElementBox(ele));
167871 };
167872 var addTextMargin = function addTextMargin2(prefix, pt, ele) {
167873 var pre = prefix ? prefix + "-" : "";
167874 return {
167875 x: pt.x + ele.pstyle(pre + "text-margin-x").pfValue,
167876 y: pt.y + ele.pstyle(pre + "text-margin-y").pfValue
167877 };
167878 };
167879 var getRsPt = function getRsPt2(ele, x2, y2) {
167880 var rs = ele[0]._private.rscratch;
167881 return {
167882 x: rs[x2],
167883 y: rs[y2]
167884 };
167885 };
167886 var getLabelRotationPoint = function getLabelRotationPoint2(ele) {
167887 return addTextMargin("", getRsPt(ele, "labelX", "labelY"), ele);
167888 };
167889 var getSourceLabelRotationPoint = function getSourceLabelRotationPoint2(ele) {
167890 return addTextMargin("source", getRsPt(ele, "sourceLabelX", "sourceLabelY"), ele);
167891 };
167892 var getTargetLabelRotationPoint = function getTargetLabelRotationPoint2(ele) {
167893 return addTextMargin("target", getRsPt(ele, "targetLabelX", "targetLabelY"), ele);
167894 };
167895 var getElementRotationOffset = function getElementRotationOffset2(ele) {
167896 return getCenterOffset(getElementBox(ele));
167897 };
167898 var getSourceLabelRotationOffset = function getSourceLabelRotationOffset2(ele) {
167899 return getCenterOffset(getSourceLabelBox(ele));
167900 };
167901 var getTargetLabelRotationOffset = function getTargetLabelRotationOffset2(ele) {
167902 return getCenterOffset(getTargetLabelBox(ele));
167903 };
167904 var getLabelRotationOffset = function getLabelRotationOffset2(ele) {
167905 var bb = getLabelBox(ele);
167906 var p2 = getCenterOffset(getLabelBox(ele));
167907 if (ele.isNode()) {
167908 switch (ele.pstyle("text-halign").value) {
167909 case "left":
167910 p2.x = -bb.w;
167911 break;
167912 case "right":
167913 p2.x = 0;
167914 break;
167915 }
167916 switch (ele.pstyle("text-valign").value) {
167917 case "top":
167918 p2.y = -bb.h;
167919 break;
167920 case "bottom":
167921 p2.y = 0;
167922 break;
167923 }
167924 }
167925 return p2;
167926 };
167927 var eleTxrCache = r.data.eleTxrCache = new ElementTextureCache(r, {
167928 getKey: getStyleKey,
167929 doesEleInvalidateKey: backgroundTimestampHasChanged,
167930 drawElement,
167931 getBoundingBox: getElementBox,
167932 getRotationPoint: getElementRotationPoint,
167933 getRotationOffset: getElementRotationOffset,
167934 allowEdgeTxrCaching: false,
167935 allowParentTxrCaching: false
167936 });
167937 var lblTxrCache = r.data.lblTxrCache = new ElementTextureCache(r, {
167938 getKey: getLabelKey,
167939 drawElement: drawLabel2,
167940 getBoundingBox: getLabelBox,
167941 getRotationPoint: getLabelRotationPoint,
167942 getRotationOffset: getLabelRotationOffset,
167943 isVisible: isLabelVisibleAtScale
167944 });
167945 var slbTxrCache = r.data.slbTxrCache = new ElementTextureCache(r, {
167946 getKey: getSourceLabelKey,
167947 drawElement: drawSourceLabel,
167948 getBoundingBox: getSourceLabelBox,
167949 getRotationPoint: getSourceLabelRotationPoint,
167950 getRotationOffset: getSourceLabelRotationOffset,
167951 isVisible: isLabelVisibleAtScale
167952 });
167953 var tlbTxrCache = r.data.tlbTxrCache = new ElementTextureCache(r, {
167954 getKey: getTargetLabelKey,
167955 drawElement: drawTargetLabel,
167956 getBoundingBox: getTargetLabelBox,
167957 getRotationPoint: getTargetLabelRotationPoint,
167958 getRotationOffset: getTargetLabelRotationOffset,
167959 isVisible: isLabelVisibleAtScale
167960 });
167961 var lyrTxrCache = r.data.lyrTxrCache = new LayeredTextureCache(r);
167962 r.onUpdateEleCalcs(function invalidateTextureCaches(willDraw, eles) {
167963 eleTxrCache.invalidateElements(eles);
167964 lblTxrCache.invalidateElements(eles);
167965 slbTxrCache.invalidateElements(eles);
167966 tlbTxrCache.invalidateElements(eles);
167967 lyrTxrCache.invalidateElements(eles);
167968 for (var _i = 0; _i < eles.length; _i++) {
167969 var _p = eles[_i]._private;
167970 _p.oldBackgroundTimestamp = _p.backgroundTimestamp;
167971 }
167972 });
167973 var refineInLayers = function refineInLayers2(reqs) {
167974 for (var i4 = 0; i4 < reqs.length; i4++) {
167975 lyrTxrCache.enqueueElementRefinement(reqs[i4].ele);
167976 }
167977 };
167978 eleTxrCache.onDequeue(refineInLayers);
167979 lblTxrCache.onDequeue(refineInLayers);
167980 slbTxrCache.onDequeue(refineInLayers);
167981 tlbTxrCache.onDequeue(refineInLayers);
167982 }
167983 CRp.redrawHint = function(group, bool2) {
167984 var r = this;
167985 switch (group) {
167986 case "eles":
167987 r.data.canvasNeedsRedraw[CRp.NODE] = bool2;
167988 break;
167989 case "drag":
167990 r.data.canvasNeedsRedraw[CRp.DRAG] = bool2;
167991 break;
167992 case "select":
167993 r.data.canvasNeedsRedraw[CRp.SELECT_BOX] = bool2;
167994 break;
167995 }
167996 };
167997 var pathsImpld = typeof Path2D !== "undefined";
167998 CRp.path2dEnabled = function(on) {
167999 if (on === void 0) {
168000 return this.pathsEnabled;
168001 }
168002 this.pathsEnabled = on ? true : false;
168003 };
168004 CRp.usePaths = function() {
168005 return pathsImpld && this.pathsEnabled;
168006 };
168007 CRp.setImgSmoothing = function(context, bool2) {
168008 if (context.imageSmoothingEnabled != null) {
168009 context.imageSmoothingEnabled = bool2;
168010 } else {
168011 context.webkitImageSmoothingEnabled = bool2;
168012 context.mozImageSmoothingEnabled = bool2;
168013 context.msImageSmoothingEnabled = bool2;
168014 }
168015 };
168016 CRp.getImgSmoothing = function(context) {
168017 if (context.imageSmoothingEnabled != null) {
168018 return context.imageSmoothingEnabled;
168019 } else {
168020 return context.webkitImageSmoothingEnabled || context.mozImageSmoothingEnabled || context.msImageSmoothingEnabled;
168021 }
168022 };
168023 CRp.makeOffscreenCanvas = function(width2, height2) {
168024 var canvas;
168025 if ((typeof OffscreenCanvas === "undefined" ? "undefined" : _typeof(OffscreenCanvas)) !== "undefined") {
168026 canvas = new OffscreenCanvas(width2, height2);
168027 } else {
168028 canvas = document.createElement("canvas");
168029 canvas.width = width2;
168030 canvas.height = height2;
168031 }
168032 return canvas;
168033 };
168034 [CRp$a, CRp$9, CRp$8, CRp$7, CRp$6, CRp$5, CRp$4, CRp$3, CRp$2, CRp$1].forEach(function(props) {
168035 extend2(CRp, props);
168036 });
168037 var renderer2 = [{
168038 name: "null",
168039 impl: NullRenderer
168040 }, {
168041 name: "base",
168042 impl: BR
168043 }, {
168044 name: "canvas",
168045 impl: CR
168046 }];
168047 var incExts = [{
168048 type: "layout",
168049 extensions: layout2
168050 }, {
168051 type: "renderer",
168052 extensions: renderer2
168053 }];
168054 var extensions = {};
168055 var modules = {};
168056 function setExtension(type2, name2, registrant) {
168057 var ext = registrant;
168058 var overrideErr = function overrideErr2(field) {
168059 warn("Can not register `" + name2 + "` for `" + type2 + "` since `" + field + "` already exists in the prototype and can not be overridden");
168060 };
168061 if (type2 === "core") {
168062 if (Core.prototype[name2]) {
168063 return overrideErr(name2);
168064 } else {
168065 Core.prototype[name2] = registrant;
168066 }
168067 } else if (type2 === "collection") {
168068 if (Collection.prototype[name2]) {
168069 return overrideErr(name2);
168070 } else {
168071 Collection.prototype[name2] = registrant;
168072 }
168073 } else if (type2 === "layout") {
168074 var Layout2 = function Layout3(options2) {
168075 this.options = options2;
168076 registrant.call(this, options2);
168077 if (!plainObject(this._private)) {
168078 this._private = {};
168079 }
168080 this._private.cy = options2.cy;
168081 this._private.listeners = [];
168082 this.createEmitter();
168083 };
168084 var layoutProto = Layout2.prototype = Object.create(registrant.prototype);
168085 var optLayoutFns = [];
168086 for (var i3 = 0; i3 < optLayoutFns.length; i3++) {
168087 var fnName = optLayoutFns[i3];
168088 layoutProto[fnName] = layoutProto[fnName] || function() {
168089 return this;
168090 };
168091 }
168092 if (layoutProto.start && !layoutProto.run) {
168093 layoutProto.run = function() {
168094 this.start();
168095 return this;
168096 };
168097 } else if (!layoutProto.start && layoutProto.run) {
168098 layoutProto.start = function() {
168099 this.run();
168100 return this;
168101 };
168102 }
168103 var regStop = registrant.prototype.stop;
168104 layoutProto.stop = function() {
168105 var opts = this.options;
168106 if (opts && opts.animate) {
168107 var anis = this.animations;
168108 if (anis) {
168109 for (var _i = 0; _i < anis.length; _i++) {
168110 anis[_i].stop();
168111 }
168112 }
168113 }
168114 if (regStop) {
168115 regStop.call(this);
168116 } else {
168117 this.emit("layoutstop");
168118 }
168119 return this;
168120 };
168121 if (!layoutProto.destroy) {
168122 layoutProto.destroy = function() {
168123 return this;
168124 };
168125 }
168126 layoutProto.cy = function() {
168127 return this._private.cy;
168128 };
168129 var getCy = function getCy2(layout3) {
168130 return layout3._private.cy;
168131 };
168132 var emitterOpts = {
168133 addEventFields: function addEventFields(layout3, evt) {
168134 evt.layout = layout3;
168135 evt.cy = getCy(layout3);
168136 evt.target = layout3;
168137 },
168138 bubble: function bubble() {
168139 return true;
168140 },
168141 parent: function parent(layout3) {
168142 return getCy(layout3);
168143 }
168144 };
168145 extend2(layoutProto, {
168146 createEmitter: function createEmitter() {
168147 this._private.emitter = new Emitter(emitterOpts, this);
168148 return this;
168149 },
168150 emitter: function emitter() {
168151 return this._private.emitter;
168152 },
168153 on: function on(evt, cb) {
168154 this.emitter().on(evt, cb);
168155 return this;
168156 },
168157 one: function one2(evt, cb) {
168158 this.emitter().one(evt, cb);
168159 return this;
168160 },
168161 once: function once(evt, cb) {
168162 this.emitter().one(evt, cb);
168163 return this;
168164 },
168165 removeListener: function removeListener(evt, cb) {
168166 this.emitter().removeListener(evt, cb);
168167 return this;
168168 },
168169 removeAllListeners: function removeAllListeners() {
168170 this.emitter().removeAllListeners();
168171 return this;
168172 },
168173 emit: function emit(evt, params) {
168174 this.emitter().emit(evt, params);
168175 return this;
168176 }
168177 });
168178 define3.eventAliasesOn(layoutProto);
168179 ext = Layout2;
168180 } else if (type2 === "renderer" && name2 !== "null" && name2 !== "base") {
168181 var BaseRenderer2 = getExtension("renderer", "base");
168182 var bProto = BaseRenderer2.prototype;
168183 var RegistrantRenderer = registrant;
168184 var rProto = registrant.prototype;
168185 var Renderer = function Renderer2() {
168186 BaseRenderer2.apply(this, arguments);
168187 RegistrantRenderer.apply(this, arguments);
168188 };
168189 var proto2 = Renderer.prototype;
168190 for (var pName in bProto) {
168191 var pVal = bProto[pName];
168192 var existsInR = rProto[pName] != null;
168193 if (existsInR) {
168194 return overrideErr(pName);
168195 }
168196 proto2[pName] = pVal;
168197 }
168198 for (var _pName in rProto) {
168199 proto2[_pName] = rProto[_pName];
168200 }
168201 bProto.clientFunctions.forEach(function(name3) {
168202 proto2[name3] = proto2[name3] || function() {
168203 error("Renderer does not implement `renderer." + name3 + "()` on its prototype");
168204 };
168205 });
168206 ext = Renderer;
168207 } else if (type2 === "__proto__" || type2 === "constructor" || type2 === "prototype") {
168208 return error(type2 + " is an illegal type to be registered, possibly lead to prototype pollutions");
168209 }
168210 return setMap({
168211 map: extensions,
168212 keys: [type2, name2],
168213 value: ext
168214 });
168215 }
168216 function getExtension(type2, name2) {
168217 return getMap({
168218 map: extensions,
168219 keys: [type2, name2]
168220 });
168221 }
168222 function setModule(type2, name2, moduleType, moduleName, registrant) {
168223 return setMap({
168224 map: modules,
168225 keys: [type2, name2, moduleType, moduleName],
168226 value: registrant
168227 });
168228 }
168229 function getModule(type2, name2, moduleType, moduleName) {
168230 return getMap({
168231 map: modules,
168232 keys: [type2, name2, moduleType, moduleName]
168233 });
168234 }
168235 var extension2 = function extension3() {
168236 if (arguments.length === 2) {
168237 return getExtension.apply(null, arguments);
168238 } else if (arguments.length === 3) {
168239 return setExtension.apply(null, arguments);
168240 } else if (arguments.length === 4) {
168241 return getModule.apply(null, arguments);
168242 } else if (arguments.length === 5) {
168243 return setModule.apply(null, arguments);
168244 } else {
168245 error("Invalid extension access syntax");
168246 }
168247 };
168248 Core.prototype.extension = extension2;
168249 incExts.forEach(function(group) {
168250 group.extensions.forEach(function(ext) {
168251 setExtension(group.type, ext.name, ext.impl);
168252 });
168253 });
168254 var Stylesheet = function Stylesheet2() {
168255 if (!(this instanceof Stylesheet2)) {
168256 return new Stylesheet2();
168257 }
168258 this.length = 0;
168259 };
168260 var sheetfn = Stylesheet.prototype;
168261 sheetfn.instanceString = function() {
168262 return "stylesheet";
168263 };
168264 sheetfn.selector = function(selector2) {
168265 var i3 = this.length++;
168266 this[i3] = {
168267 selector: selector2,
168268 properties: []
168269 };
168270 return this;
168271 };
168272 sheetfn.css = function(name2, value) {
168273 var i3 = this.length - 1;
168274 if (string2(name2)) {
168275 this[i3].properties.push({
168276 name: name2,
168277 value
168278 });
168279 } else if (plainObject(name2)) {
168280 var map2 = name2;
168281 var propNames = Object.keys(map2);
168282 for (var j = 0; j < propNames.length; j++) {
168283 var key = propNames[j];
168284 var mapVal = map2[key];
168285 if (mapVal == null) {
168286 continue;
168287 }
168288 var prop = Style.properties[key] || Style.properties[dash2camel(key)];
168289 if (prop == null) {
168290 continue;
168291 }
168292 var _name = prop.name;
168293 var _value = mapVal;
168294 this[i3].properties.push({
168295 name: _name,
168296 value: _value
168297 });
168298 }
168299 }
168300 return this;
168301 };
168302 sheetfn.style = sheetfn.css;
168303 sheetfn.generateStyle = function(cy) {
168304 var style = new Style(cy);
168305 return this.appendToStyle(style);
168306 };
168307 sheetfn.appendToStyle = function(style) {
168308 for (var i3 = 0; i3 < this.length; i3++) {
168309 var context = this[i3];
168310 var selector2 = context.selector;
168311 var props = context.properties;
168312 style.selector(selector2);
168313 for (var j = 0; j < props.length; j++) {
168314 var prop = props[j];
168315 style.css(prop.name, prop.value);
168316 }
168317 }
168318 return style;
168319 };
168320 var version2 = "3.23.0";
168321 var cytoscape2 = function cytoscape3(options2) {
168322 if (options2 === void 0) {
168323 options2 = {};
168324 }
168325 if (plainObject(options2)) {
168326 return new Core(options2);
168327 } else if (string2(options2)) {
168328 return extension2.apply(extension2, arguments);
168329 }
168330 };
168331 cytoscape2.use = function(ext) {
168332 var args = Array.prototype.slice.call(arguments, 1);
168333 args.unshift(cytoscape2);
168334 ext.apply(null, args);
168335 return this;
168336 };
168337 cytoscape2.warnings = function(bool2) {
168338 return warnings(bool2);
168339 };
168340 cytoscape2.version = version2;
168341 cytoscape2.stylesheet = cytoscape2.Stylesheet = Stylesheet;
168342 return cytoscape2;
168343 });
168344 })(cytoscape_umd);
168345 const cytoscape$1 = cytoscape_umdExports;
168346 var cytoscapeCoseBilkentExports = {};
168347 var cytoscapeCoseBilkent = {
168348 get exports() {
168349 return cytoscapeCoseBilkentExports;
168350 },
168351 set exports(v) {
168352 cytoscapeCoseBilkentExports = v;
168353 }
168354 };
168355 var coseBaseExports = {};
168356 var coseBase = {
168357 get exports() {
168358 return coseBaseExports;
168359 },
168360 set exports(v) {
168361 coseBaseExports = v;
168362 }
168363 };
168364 var layoutBaseExports = {};
168365 var layoutBase = {
168366 get exports() {
168367 return layoutBaseExports;
168368 },
168369 set exports(v) {
168370 layoutBaseExports = v;
168371 }
168372 };
168373 var hasRequiredLayoutBase;
168374 function requireLayoutBase() {
168375 if (hasRequiredLayoutBase)
168376 return layoutBaseExports;
168377 hasRequiredLayoutBase = 1;
168378 (function(module2, exports2) {
168379 (function webpackUniversalModuleDefinition(root2, factory) {
168380 module2.exports = factory();
168381 })(commonjsGlobal, function() {
168382 return (
168383 /******/
168384 function(modules) {
168385 var installedModules = {};
168386 function __webpack_require__(moduleId) {
168387 if (installedModules[moduleId]) {
168388 return installedModules[moduleId].exports;
168389 }
168390 var module3 = installedModules[moduleId] = {
168391 /******/
168392 i: moduleId,
168393 /******/
168394 l: false,
168395 /******/
168396 exports: {}
168397 /******/
168398 };
168399 modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__);
168400 module3.l = true;
168401 return module3.exports;
168402 }
168403 __webpack_require__.m = modules;
168404 __webpack_require__.c = installedModules;
168405 __webpack_require__.i = function(value) {
168406 return value;
168407 };
168408 __webpack_require__.d = function(exports3, name2, getter) {
168409 if (!__webpack_require__.o(exports3, name2)) {
168410 Object.defineProperty(exports3, name2, {
168411 /******/
168412 configurable: false,
168413 /******/
168414 enumerable: true,
168415 /******/
168416 get: getter
168417 /******/
168418 });
168419 }
168420 };
168421 __webpack_require__.n = function(module3) {
168422 var getter = module3 && module3.__esModule ? (
168423 /******/
168424 function getDefault() {
168425 return module3["default"];
168426 }
168427 ) : (
168428 /******/
168429 function getModuleExports() {
168430 return module3;
168431 }
168432 );
168433 __webpack_require__.d(getter, "a", getter);
168434 return getter;
168435 };
168436 __webpack_require__.o = function(object2, property2) {
168437 return Object.prototype.hasOwnProperty.call(object2, property2);
168438 };
168439 __webpack_require__.p = "";
168440 return __webpack_require__(__webpack_require__.s = 26);
168441 }([
168442 /* 0 */
168443 /***/
168444 function(module3, exports3, __webpack_require__) {
168445 function LayoutConstants() {
168446 }
168447 LayoutConstants.QUALITY = 1;
168448 LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED = false;
168449 LayoutConstants.DEFAULT_INCREMENTAL = false;
168450 LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT = true;
168451 LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT = false;
168452 LayoutConstants.DEFAULT_ANIMATION_PERIOD = 50;
168453 LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES = false;
168454 LayoutConstants.DEFAULT_GRAPH_MARGIN = 15;
168455 LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = false;
168456 LayoutConstants.SIMPLE_NODE_SIZE = 40;
168457 LayoutConstants.SIMPLE_NODE_HALF_SIZE = LayoutConstants.SIMPLE_NODE_SIZE / 2;
168458 LayoutConstants.EMPTY_COMPOUND_NODE_SIZE = 40;
168459 LayoutConstants.MIN_EDGE_LENGTH = 1;
168460 LayoutConstants.WORLD_BOUNDARY = 1e6;
168461 LayoutConstants.INITIAL_WORLD_BOUNDARY = LayoutConstants.WORLD_BOUNDARY / 1e3;
168462 LayoutConstants.WORLD_CENTER_X = 1200;
168463 LayoutConstants.WORLD_CENTER_Y = 900;
168464 module3.exports = LayoutConstants;
168465 },
168466 /* 1 */
168467 /***/
168468 function(module3, exports3, __webpack_require__) {
168469 var LGraphObject = __webpack_require__(2);
168470 var IGeometry = __webpack_require__(8);
168471 var IMath = __webpack_require__(9);
168472 function LEdge(source, target, vEdge) {
168473 LGraphObject.call(this, vEdge);
168474 this.isOverlapingSourceAndTarget = false;
168475 this.vGraphObject = vEdge;
168476 this.bendpoints = [];
168477 this.source = source;
168478 this.target = target;
168479 }
168480 LEdge.prototype = Object.create(LGraphObject.prototype);
168481 for (var prop in LGraphObject) {
168482 LEdge[prop] = LGraphObject[prop];
168483 }
168484 LEdge.prototype.getSource = function() {
168485 return this.source;
168486 };
168487 LEdge.prototype.getTarget = function() {
168488 return this.target;
168489 };
168490 LEdge.prototype.isInterGraph = function() {
168491 return this.isInterGraph;
168492 };
168493 LEdge.prototype.getLength = function() {
168494 return this.length;
168495 };
168496 LEdge.prototype.isOverlapingSourceAndTarget = function() {
168497 return this.isOverlapingSourceAndTarget;
168498 };
168499 LEdge.prototype.getBendpoints = function() {
168500 return this.bendpoints;
168501 };
168502 LEdge.prototype.getLca = function() {
168503 return this.lca;
168504 };
168505 LEdge.prototype.getSourceInLca = function() {
168506 return this.sourceInLca;
168507 };
168508 LEdge.prototype.getTargetInLca = function() {
168509 return this.targetInLca;
168510 };
168511 LEdge.prototype.getOtherEnd = function(node2) {
168512 if (this.source === node2) {
168513 return this.target;
168514 } else if (this.target === node2) {
168515 return this.source;
168516 } else {
168517 throw "Node is not incident with this edge";
168518 }
168519 };
168520 LEdge.prototype.getOtherEndInGraph = function(node2, graph) {
168521 var otherEnd = this.getOtherEnd(node2);
168522 var root2 = graph.getGraphManager().getRoot();
168523 while (true) {
168524 if (otherEnd.getOwner() == graph) {
168525 return otherEnd;
168526 }
168527 if (otherEnd.getOwner() == root2) {
168528 break;
168529 }
168530 otherEnd = otherEnd.getOwner().getParent();
168531 }
168532 return null;
168533 };
168534 LEdge.prototype.updateLength = function() {
168535 var clipPointCoordinates = new Array(4);
168536 this.isOverlapingSourceAndTarget = IGeometry.getIntersection(this.target.getRect(), this.source.getRect(), clipPointCoordinates);
168537 if (!this.isOverlapingSourceAndTarget) {
168538 this.lengthX = clipPointCoordinates[0] - clipPointCoordinates[2];
168539 this.lengthY = clipPointCoordinates[1] - clipPointCoordinates[3];
168540 if (Math.abs(this.lengthX) < 1) {
168541 this.lengthX = IMath.sign(this.lengthX);
168542 }
168543 if (Math.abs(this.lengthY) < 1) {
168544 this.lengthY = IMath.sign(this.lengthY);
168545 }
168546 this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);
168547 }
168548 };
168549 LEdge.prototype.updateLengthSimple = function() {
168550 this.lengthX = this.target.getCenterX() - this.source.getCenterX();
168551 this.lengthY = this.target.getCenterY() - this.source.getCenterY();
168552 if (Math.abs(this.lengthX) < 1) {
168553 this.lengthX = IMath.sign(this.lengthX);
168554 }
168555 if (Math.abs(this.lengthY) < 1) {
168556 this.lengthY = IMath.sign(this.lengthY);
168557 }
168558 this.length = Math.sqrt(this.lengthX * this.lengthX + this.lengthY * this.lengthY);
168559 };
168560 module3.exports = LEdge;
168561 },
168562 /* 2 */
168563 /***/
168564 function(module3, exports3, __webpack_require__) {
168565 function LGraphObject(vGraphObject) {
168566 this.vGraphObject = vGraphObject;
168567 }
168568 module3.exports = LGraphObject;
168569 },
168570 /* 3 */
168571 /***/
168572 function(module3, exports3, __webpack_require__) {
168573 var LGraphObject = __webpack_require__(2);
168574 var Integer = __webpack_require__(10);
168575 var RectangleD = __webpack_require__(13);
168576 var LayoutConstants = __webpack_require__(0);
168577 var RandomSeed = __webpack_require__(16);
168578 var PointD = __webpack_require__(4);
168579 function LNode(gm, loc, size2, vNode) {
168580 if (size2 == null && vNode == null) {
168581 vNode = loc;
168582 }
168583 LGraphObject.call(this, vNode);
168584 if (gm.graphManager != null)
168585 gm = gm.graphManager;
168586 this.estimatedSize = Integer.MIN_VALUE;
168587 this.inclusionTreeDepth = Integer.MAX_VALUE;
168588 this.vGraphObject = vNode;
168589 this.edges = [];
168590 this.graphManager = gm;
168591 if (size2 != null && loc != null)
168592 this.rect = new RectangleD(loc.x, loc.y, size2.width, size2.height);
168593 else
168594 this.rect = new RectangleD();
168595 }
168596 LNode.prototype = Object.create(LGraphObject.prototype);
168597 for (var prop in LGraphObject) {
168598 LNode[prop] = LGraphObject[prop];
168599 }
168600 LNode.prototype.getEdges = function() {
168601 return this.edges;
168602 };
168603 LNode.prototype.getChild = function() {
168604 return this.child;
168605 };
168606 LNode.prototype.getOwner = function() {
168607 return this.owner;
168608 };
168609 LNode.prototype.getWidth = function() {
168610 return this.rect.width;
168611 };
168612 LNode.prototype.setWidth = function(width2) {
168613 this.rect.width = width2;
168614 };
168615 LNode.prototype.getHeight = function() {
168616 return this.rect.height;
168617 };
168618 LNode.prototype.setHeight = function(height2) {
168619 this.rect.height = height2;
168620 };
168621 LNode.prototype.getCenterX = function() {
168622 return this.rect.x + this.rect.width / 2;
168623 };
168624 LNode.prototype.getCenterY = function() {
168625 return this.rect.y + this.rect.height / 2;
168626 };
168627 LNode.prototype.getCenter = function() {
168628 return new PointD(this.rect.x + this.rect.width / 2, this.rect.y + this.rect.height / 2);
168629 };
168630 LNode.prototype.getLocation = function() {
168631 return new PointD(this.rect.x, this.rect.y);
168632 };
168633 LNode.prototype.getRect = function() {
168634 return this.rect;
168635 };
168636 LNode.prototype.getDiagonal = function() {
168637 return Math.sqrt(this.rect.width * this.rect.width + this.rect.height * this.rect.height);
168638 };
168639 LNode.prototype.getHalfTheDiagonal = function() {
168640 return Math.sqrt(this.rect.height * this.rect.height + this.rect.width * this.rect.width) / 2;
168641 };
168642 LNode.prototype.setRect = function(upperLeft, dimension) {
168643 this.rect.x = upperLeft.x;
168644 this.rect.y = upperLeft.y;
168645 this.rect.width = dimension.width;
168646 this.rect.height = dimension.height;
168647 };
168648 LNode.prototype.setCenter = function(cx, cy) {
168649 this.rect.x = cx - this.rect.width / 2;
168650 this.rect.y = cy - this.rect.height / 2;
168651 };
168652 LNode.prototype.setLocation = function(x2, y2) {
168653 this.rect.x = x2;
168654 this.rect.y = y2;
168655 };
168656 LNode.prototype.moveBy = function(dx, dy) {
168657 this.rect.x += dx;
168658 this.rect.y += dy;
168659 };
168660 LNode.prototype.getEdgeListToNode = function(to) {
168661 var edgeList = [];
168662 var self2 = this;
168663 self2.edges.forEach(function(edge) {
168664 if (edge.target == to) {
168665 if (edge.source != self2)
168666 throw "Incorrect edge source!";
168667 edgeList.push(edge);
168668 }
168669 });
168670 return edgeList;
168671 };
168672 LNode.prototype.getEdgesBetween = function(other) {
168673 var edgeList = [];
168674 var self2 = this;
168675 self2.edges.forEach(function(edge) {
168676 if (!(edge.source == self2 || edge.target == self2))
168677 throw "Incorrect edge source and/or target";
168678 if (edge.target == other || edge.source == other) {
168679 edgeList.push(edge);
168680 }
168681 });
168682 return edgeList;
168683 };
168684 LNode.prototype.getNeighborsList = function() {
168685 var neighbors = /* @__PURE__ */ new Set();
168686 var self2 = this;
168687 self2.edges.forEach(function(edge) {
168688 if (edge.source == self2) {
168689 neighbors.add(edge.target);
168690 } else {
168691 if (edge.target != self2) {
168692 throw "Incorrect incidency!";
168693 }
168694 neighbors.add(edge.source);
168695 }
168696 });
168697 return neighbors;
168698 };
168699 LNode.prototype.withChildren = function() {
168700 var withNeighborsList = /* @__PURE__ */ new Set();
168701 var childNode;
168702 var children2;
168703 withNeighborsList.add(this);
168704 if (this.child != null) {
168705 var nodes2 = this.child.getNodes();
168706 for (var i2 = 0; i2 < nodes2.length; i2++) {
168707 childNode = nodes2[i2];
168708 children2 = childNode.withChildren();
168709 children2.forEach(function(node2) {
168710 withNeighborsList.add(node2);
168711 });
168712 }
168713 }
168714 return withNeighborsList;
168715 };
168716 LNode.prototype.getNoOfChildren = function() {
168717 var noOfChildren = 0;
168718 var childNode;
168719 if (this.child == null) {
168720 noOfChildren = 1;
168721 } else {
168722 var nodes2 = this.child.getNodes();
168723 for (var i2 = 0; i2 < nodes2.length; i2++) {
168724 childNode = nodes2[i2];
168725 noOfChildren += childNode.getNoOfChildren();
168726 }
168727 }
168728 if (noOfChildren == 0) {
168729 noOfChildren = 1;
168730 }
168731 return noOfChildren;
168732 };
168733 LNode.prototype.getEstimatedSize = function() {
168734 if (this.estimatedSize == Integer.MIN_VALUE) {
168735 throw "assert failed";
168736 }
168737 return this.estimatedSize;
168738 };
168739 LNode.prototype.calcEstimatedSize = function() {
168740 if (this.child == null) {
168741 return this.estimatedSize = (this.rect.width + this.rect.height) / 2;
168742 } else {
168743 this.estimatedSize = this.child.calcEstimatedSize();
168744 this.rect.width = this.estimatedSize;
168745 this.rect.height = this.estimatedSize;
168746 return this.estimatedSize;
168747 }
168748 };
168749 LNode.prototype.scatter = function() {
168750 var randomCenterX;
168751 var randomCenterY;
168752 var minX = -LayoutConstants.INITIAL_WORLD_BOUNDARY;
168753 var maxX = LayoutConstants.INITIAL_WORLD_BOUNDARY;
168754 randomCenterX = LayoutConstants.WORLD_CENTER_X + RandomSeed.nextDouble() * (maxX - minX) + minX;
168755 var minY = -LayoutConstants.INITIAL_WORLD_BOUNDARY;
168756 var maxY = LayoutConstants.INITIAL_WORLD_BOUNDARY;
168757 randomCenterY = LayoutConstants.WORLD_CENTER_Y + RandomSeed.nextDouble() * (maxY - minY) + minY;
168758 this.rect.x = randomCenterX;
168759 this.rect.y = randomCenterY;
168760 };
168761 LNode.prototype.updateBounds = function() {
168762 if (this.getChild() == null) {
168763 throw "assert failed";
168764 }
168765 if (this.getChild().getNodes().length != 0) {
168766 var childGraph = this.getChild();
168767 childGraph.updateBounds(true);
168768 this.rect.x = childGraph.getLeft();
168769 this.rect.y = childGraph.getTop();
168770 this.setWidth(childGraph.getRight() - childGraph.getLeft());
168771 this.setHeight(childGraph.getBottom() - childGraph.getTop());
168772 if (LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS) {
168773 var width2 = childGraph.getRight() - childGraph.getLeft();
168774 var height2 = childGraph.getBottom() - childGraph.getTop();
168775 if (this.labelWidth > width2) {
168776 this.rect.x -= (this.labelWidth - width2) / 2;
168777 this.setWidth(this.labelWidth);
168778 }
168779 if (this.labelHeight > height2) {
168780 if (this.labelPos == "center") {
168781 this.rect.y -= (this.labelHeight - height2) / 2;
168782 } else if (this.labelPos == "top") {
168783 this.rect.y -= this.labelHeight - height2;
168784 }
168785 this.setHeight(this.labelHeight);
168786 }
168787 }
168788 }
168789 };
168790 LNode.prototype.getInclusionTreeDepth = function() {
168791 if (this.inclusionTreeDepth == Integer.MAX_VALUE) {
168792 throw "assert failed";
168793 }
168794 return this.inclusionTreeDepth;
168795 };
168796 LNode.prototype.transform = function(trans) {
168797 var left2 = this.rect.x;
168798 if (left2 > LayoutConstants.WORLD_BOUNDARY) {
168799 left2 = LayoutConstants.WORLD_BOUNDARY;
168800 } else if (left2 < -LayoutConstants.WORLD_BOUNDARY) {
168801 left2 = -LayoutConstants.WORLD_BOUNDARY;
168802 }
168803 var top2 = this.rect.y;
168804 if (top2 > LayoutConstants.WORLD_BOUNDARY) {
168805 top2 = LayoutConstants.WORLD_BOUNDARY;
168806 } else if (top2 < -LayoutConstants.WORLD_BOUNDARY) {
168807 top2 = -LayoutConstants.WORLD_BOUNDARY;
168808 }
168809 var leftTop = new PointD(left2, top2);
168810 var vLeftTop = trans.inverseTransformPoint(leftTop);
168811 this.setLocation(vLeftTop.x, vLeftTop.y);
168812 };
168813 LNode.prototype.getLeft = function() {
168814 return this.rect.x;
168815 };
168816 LNode.prototype.getRight = function() {
168817 return this.rect.x + this.rect.width;
168818 };
168819 LNode.prototype.getTop = function() {
168820 return this.rect.y;
168821 };
168822 LNode.prototype.getBottom = function() {
168823 return this.rect.y + this.rect.height;
168824 };
168825 LNode.prototype.getParent = function() {
168826 if (this.owner == null) {
168827 return null;
168828 }
168829 return this.owner.getParent();
168830 };
168831 module3.exports = LNode;
168832 },
168833 /* 4 */
168834 /***/
168835 function(module3, exports3, __webpack_require__) {
168836 function PointD(x2, y2) {
168837 if (x2 == null && y2 == null) {
168838 this.x = 0;
168839 this.y = 0;
168840 } else {
168841 this.x = x2;
168842 this.y = y2;
168843 }
168844 }
168845 PointD.prototype.getX = function() {
168846 return this.x;
168847 };
168848 PointD.prototype.getY = function() {
168849 return this.y;
168850 };
168851 PointD.prototype.setX = function(x2) {
168852 this.x = x2;
168853 };
168854 PointD.prototype.setY = function(y2) {
168855 this.y = y2;
168856 };
168857 PointD.prototype.getDifference = function(pt) {
168858 return new DimensionD(this.x - pt.x, this.y - pt.y);
168859 };
168860 PointD.prototype.getCopy = function() {
168861 return new PointD(this.x, this.y);
168862 };
168863 PointD.prototype.translate = function(dim) {
168864 this.x += dim.width;
168865 this.y += dim.height;
168866 return this;
168867 };
168868 module3.exports = PointD;
168869 },
168870 /* 5 */
168871 /***/
168872 function(module3, exports3, __webpack_require__) {
168873 var LGraphObject = __webpack_require__(2);
168874 var Integer = __webpack_require__(10);
168875 var LayoutConstants = __webpack_require__(0);
168876 var LGraphManager = __webpack_require__(6);
168877 var LNode = __webpack_require__(3);
168878 var LEdge = __webpack_require__(1);
168879 var RectangleD = __webpack_require__(13);
168880 var Point2 = __webpack_require__(12);
168881 var LinkedList = __webpack_require__(11);
168882 function LGraph(parent, obj2, vGraph) {
168883 LGraphObject.call(this, vGraph);
168884 this.estimatedSize = Integer.MIN_VALUE;
168885 this.margin = LayoutConstants.DEFAULT_GRAPH_MARGIN;
168886 this.edges = [];
168887 this.nodes = [];
168888 this.isConnected = false;
168889 this.parent = parent;
168890 if (obj2 != null && obj2 instanceof LGraphManager) {
168891 this.graphManager = obj2;
168892 } else if (obj2 != null && obj2 instanceof Layout) {
168893 this.graphManager = obj2.graphManager;
168894 }
168895 }
168896 LGraph.prototype = Object.create(LGraphObject.prototype);
168897 for (var prop in LGraphObject) {
168898 LGraph[prop] = LGraphObject[prop];
168899 }
168900 LGraph.prototype.getNodes = function() {
168901 return this.nodes;
168902 };
168903 LGraph.prototype.getEdges = function() {
168904 return this.edges;
168905 };
168906 LGraph.prototype.getGraphManager = function() {
168907 return this.graphManager;
168908 };
168909 LGraph.prototype.getParent = function() {
168910 return this.parent;
168911 };
168912 LGraph.prototype.getLeft = function() {
168913 return this.left;
168914 };
168915 LGraph.prototype.getRight = function() {
168916 return this.right;
168917 };
168918 LGraph.prototype.getTop = function() {
168919 return this.top;
168920 };
168921 LGraph.prototype.getBottom = function() {
168922 return this.bottom;
168923 };
168924 LGraph.prototype.isConnected = function() {
168925 return this.isConnected;
168926 };
168927 LGraph.prototype.add = function(obj1, sourceNode, targetNode) {
168928 if (sourceNode == null && targetNode == null) {
168929 var newNode = obj1;
168930 if (this.graphManager == null) {
168931 throw "Graph has no graph mgr!";
168932 }
168933 if (this.getNodes().indexOf(newNode) > -1) {
168934 throw "Node already in graph!";
168935 }
168936 newNode.owner = this;
168937 this.getNodes().push(newNode);
168938 return newNode;
168939 } else {
168940 var newEdge = obj1;
168941 if (!(this.getNodes().indexOf(sourceNode) > -1 && this.getNodes().indexOf(targetNode) > -1)) {
168942 throw "Source or target not in graph!";
168943 }
168944 if (!(sourceNode.owner == targetNode.owner && sourceNode.owner == this)) {
168945 throw "Both owners must be this graph!";
168946 }
168947 if (sourceNode.owner != targetNode.owner) {
168948 return null;
168949 }
168950 newEdge.source = sourceNode;
168951 newEdge.target = targetNode;
168952 newEdge.isInterGraph = false;
168953 this.getEdges().push(newEdge);
168954 sourceNode.edges.push(newEdge);
168955 if (targetNode != sourceNode) {
168956 targetNode.edges.push(newEdge);
168957 }
168958 return newEdge;
168959 }
168960 };
168961 LGraph.prototype.remove = function(obj) {
168962 var node2 = obj;
168963 if (obj instanceof LNode) {
168964 if (node2 == null) {
168965 throw "Node is null!";
168966 }
168967 if (!(node2.owner != null && node2.owner == this)) {
168968 throw "Owner graph is invalid!";
168969 }
168970 if (this.graphManager == null) {
168971 throw "Owner graph manager is invalid!";
168972 }
168973 var edgesToBeRemoved = node2.edges.slice();
168974 var edge;
168975 var s = edgesToBeRemoved.length;
168976 for (var i2 = 0; i2 < s; i2++) {
168977 edge = edgesToBeRemoved[i2];
168978 if (edge.isInterGraph) {
168979 this.graphManager.remove(edge);
168980 } else {
168981 edge.source.owner.remove(edge);
168982 }
168983 }
168984 var index2 = this.nodes.indexOf(node2);
168985 if (index2 == -1) {
168986 throw "Node not in owner node list!";
168987 }
168988 this.nodes.splice(index2, 1);
168989 } else if (obj instanceof LEdge) {
168990 var edge = obj;
168991 if (edge == null) {
168992 throw "Edge is null!";
168993 }
168994 if (!(edge.source != null && edge.target != null)) {
168995 throw "Source and/or target is null!";
168996 }
168997 if (!(edge.source.owner != null && edge.target.owner != null && edge.source.owner == this && edge.target.owner == this)) {
168998 throw "Source and/or target owner is invalid!";
168999 }
169000 var sourceIndex = edge.source.edges.indexOf(edge);
169001 var targetIndex = edge.target.edges.indexOf(edge);
169002 if (!(sourceIndex > -1 && targetIndex > -1)) {
169003 throw "Source and/or target doesn't know this edge!";
169004 }
169005 edge.source.edges.splice(sourceIndex, 1);
169006 if (edge.target != edge.source) {
169007 edge.target.edges.splice(targetIndex, 1);
169008 }
169009 var index2 = edge.source.owner.getEdges().indexOf(edge);
169010 if (index2 == -1) {
169011 throw "Not in owner's edge list!";
169012 }
169013 edge.source.owner.getEdges().splice(index2, 1);
169014 }
169015 };
169016 LGraph.prototype.updateLeftTop = function() {
169017 var top2 = Integer.MAX_VALUE;
169018 var left2 = Integer.MAX_VALUE;
169019 var nodeTop;
169020 var nodeLeft;
169021 var margin;
169022 var nodes2 = this.getNodes();
169023 var s = nodes2.length;
169024 for (var i2 = 0; i2 < s; i2++) {
169025 var lNode = nodes2[i2];
169026 nodeTop = lNode.getTop();
169027 nodeLeft = lNode.getLeft();
169028 if (top2 > nodeTop) {
169029 top2 = nodeTop;
169030 }
169031 if (left2 > nodeLeft) {
169032 left2 = nodeLeft;
169033 }
169034 }
169035 if (top2 == Integer.MAX_VALUE) {
169036 return null;
169037 }
169038 if (nodes2[0].getParent().paddingLeft != void 0) {
169039 margin = nodes2[0].getParent().paddingLeft;
169040 } else {
169041 margin = this.margin;
169042 }
169043 this.left = left2 - margin;
169044 this.top = top2 - margin;
169045 return new Point2(this.left, this.top);
169046 };
169047 LGraph.prototype.updateBounds = function(recursive) {
169048 var left2 = Integer.MAX_VALUE;
169049 var right2 = -Integer.MAX_VALUE;
169050 var top2 = Integer.MAX_VALUE;
169051 var bottom2 = -Integer.MAX_VALUE;
169052 var nodeLeft;
169053 var nodeRight;
169054 var nodeTop;
169055 var nodeBottom;
169056 var margin;
169057 var nodes2 = this.nodes;
169058 var s = nodes2.length;
169059 for (var i2 = 0; i2 < s; i2++) {
169060 var lNode = nodes2[i2];
169061 if (recursive && lNode.child != null) {
169062 lNode.updateBounds();
169063 }
169064 nodeLeft = lNode.getLeft();
169065 nodeRight = lNode.getRight();
169066 nodeTop = lNode.getTop();
169067 nodeBottom = lNode.getBottom();
169068 if (left2 > nodeLeft) {
169069 left2 = nodeLeft;
169070 }
169071 if (right2 < nodeRight) {
169072 right2 = nodeRight;
169073 }
169074 if (top2 > nodeTop) {
169075 top2 = nodeTop;
169076 }
169077 if (bottom2 < nodeBottom) {
169078 bottom2 = nodeBottom;
169079 }
169080 }
169081 var boundingRect = new RectangleD(left2, top2, right2 - left2, bottom2 - top2);
169082 if (left2 == Integer.MAX_VALUE) {
169083 this.left = this.parent.getLeft();
169084 this.right = this.parent.getRight();
169085 this.top = this.parent.getTop();
169086 this.bottom = this.parent.getBottom();
169087 }
169088 if (nodes2[0].getParent().paddingLeft != void 0) {
169089 margin = nodes2[0].getParent().paddingLeft;
169090 } else {
169091 margin = this.margin;
169092 }
169093 this.left = boundingRect.x - margin;
169094 this.right = boundingRect.x + boundingRect.width + margin;
169095 this.top = boundingRect.y - margin;
169096 this.bottom = boundingRect.y + boundingRect.height + margin;
169097 };
169098 LGraph.calculateBounds = function(nodes2) {
169099 var left2 = Integer.MAX_VALUE;
169100 var right2 = -Integer.MAX_VALUE;
169101 var top2 = Integer.MAX_VALUE;
169102 var bottom2 = -Integer.MAX_VALUE;
169103 var nodeLeft;
169104 var nodeRight;
169105 var nodeTop;
169106 var nodeBottom;
169107 var s = nodes2.length;
169108 for (var i2 = 0; i2 < s; i2++) {
169109 var lNode = nodes2[i2];
169110 nodeLeft = lNode.getLeft();
169111 nodeRight = lNode.getRight();
169112 nodeTop = lNode.getTop();
169113 nodeBottom = lNode.getBottom();
169114 if (left2 > nodeLeft) {
169115 left2 = nodeLeft;
169116 }
169117 if (right2 < nodeRight) {
169118 right2 = nodeRight;
169119 }
169120 if (top2 > nodeTop) {
169121 top2 = nodeTop;
169122 }
169123 if (bottom2 < nodeBottom) {
169124 bottom2 = nodeBottom;
169125 }
169126 }
169127 var boundingRect = new RectangleD(left2, top2, right2 - left2, bottom2 - top2);
169128 return boundingRect;
169129 };
169130 LGraph.prototype.getInclusionTreeDepth = function() {
169131 if (this == this.graphManager.getRoot()) {
169132 return 1;
169133 } else {
169134 return this.parent.getInclusionTreeDepth();
169135 }
169136 };
169137 LGraph.prototype.getEstimatedSize = function() {
169138 if (this.estimatedSize == Integer.MIN_VALUE) {
169139 throw "assert failed";
169140 }
169141 return this.estimatedSize;
169142 };
169143 LGraph.prototype.calcEstimatedSize = function() {
169144 var size2 = 0;
169145 var nodes2 = this.nodes;
169146 var s = nodes2.length;
169147 for (var i2 = 0; i2 < s; i2++) {
169148 var lNode = nodes2[i2];
169149 size2 += lNode.calcEstimatedSize();
169150 }
169151 if (size2 == 0) {
169152 this.estimatedSize = LayoutConstants.EMPTY_COMPOUND_NODE_SIZE;
169153 } else {
169154 this.estimatedSize = size2 / Math.sqrt(this.nodes.length);
169155 }
169156 return this.estimatedSize;
169157 };
169158 LGraph.prototype.updateConnected = function() {
169159 var self2 = this;
169160 if (this.nodes.length == 0) {
169161 this.isConnected = true;
169162 return;
169163 }
169164 var queue = new LinkedList();
169165 var visited = /* @__PURE__ */ new Set();
169166 var currentNode = this.nodes[0];
169167 var neighborEdges;
169168 var currentNeighbor;
169169 var childrenOfNode = currentNode.withChildren();
169170 childrenOfNode.forEach(function(node2) {
169171 queue.push(node2);
169172 visited.add(node2);
169173 });
169174 while (queue.length !== 0) {
169175 currentNode = queue.shift();
169176 neighborEdges = currentNode.getEdges();
169177 var size2 = neighborEdges.length;
169178 for (var i2 = 0; i2 < size2; i2++) {
169179 var neighborEdge = neighborEdges[i2];
169180 currentNeighbor = neighborEdge.getOtherEndInGraph(currentNode, this);
169181 if (currentNeighbor != null && !visited.has(currentNeighbor)) {
169182 var childrenOfNeighbor = currentNeighbor.withChildren();
169183 childrenOfNeighbor.forEach(function(node2) {
169184 queue.push(node2);
169185 visited.add(node2);
169186 });
169187 }
169188 }
169189 }
169190 this.isConnected = false;
169191 if (visited.size >= this.nodes.length) {
169192 var noOfVisitedInThisGraph = 0;
169193 visited.forEach(function(visitedNode) {
169194 if (visitedNode.owner == self2) {
169195 noOfVisitedInThisGraph++;
169196 }
169197 });
169198 if (noOfVisitedInThisGraph == this.nodes.length) {
169199 this.isConnected = true;
169200 }
169201 }
169202 };
169203 module3.exports = LGraph;
169204 },
169205 /* 6 */
169206 /***/
169207 function(module3, exports3, __webpack_require__) {
169208 var LGraph;
169209 var LEdge = __webpack_require__(1);
169210 function LGraphManager(layout2) {
169211 LGraph = __webpack_require__(5);
169212 this.layout = layout2;
169213 this.graphs = [];
169214 this.edges = [];
169215 }
169216 LGraphManager.prototype.addRoot = function() {
169217 var ngraph = this.layout.newGraph();
169218 var nnode = this.layout.newNode(null);
169219 var root2 = this.add(ngraph, nnode);
169220 this.setRootGraph(root2);
169221 return this.rootGraph;
169222 };
169223 LGraphManager.prototype.add = function(newGraph, parentNode, newEdge, sourceNode, targetNode) {
169224 if (newEdge == null && sourceNode == null && targetNode == null) {
169225 if (newGraph == null) {
169226 throw "Graph is null!";
169227 }
169228 if (parentNode == null) {
169229 throw "Parent node is null!";
169230 }
169231 if (this.graphs.indexOf(newGraph) > -1) {
169232 throw "Graph already in this graph mgr!";
169233 }
169234 this.graphs.push(newGraph);
169235 if (newGraph.parent != null) {
169236 throw "Already has a parent!";
169237 }
169238 if (parentNode.child != null) {
169239 throw "Already has a child!";
169240 }
169241 newGraph.parent = parentNode;
169242 parentNode.child = newGraph;
169243 return newGraph;
169244 } else {
169245 targetNode = newEdge;
169246 sourceNode = parentNode;
169247 newEdge = newGraph;
169248 var sourceGraph = sourceNode.getOwner();
169249 var targetGraph = targetNode.getOwner();
169250 if (!(sourceGraph != null && sourceGraph.getGraphManager() == this)) {
169251 throw "Source not in this graph mgr!";
169252 }
169253 if (!(targetGraph != null && targetGraph.getGraphManager() == this)) {
169254 throw "Target not in this graph mgr!";
169255 }
169256 if (sourceGraph == targetGraph) {
169257 newEdge.isInterGraph = false;
169258 return sourceGraph.add(newEdge, sourceNode, targetNode);
169259 } else {
169260 newEdge.isInterGraph = true;
169261 newEdge.source = sourceNode;
169262 newEdge.target = targetNode;
169263 if (this.edges.indexOf(newEdge) > -1) {
169264 throw "Edge already in inter-graph edge list!";
169265 }
169266 this.edges.push(newEdge);
169267 if (!(newEdge.source != null && newEdge.target != null)) {
169268 throw "Edge source and/or target is null!";
169269 }
169270 if (!(newEdge.source.edges.indexOf(newEdge) == -1 && newEdge.target.edges.indexOf(newEdge) == -1)) {
169271 throw "Edge already in source and/or target incidency list!";
169272 }
169273 newEdge.source.edges.push(newEdge);
169274 newEdge.target.edges.push(newEdge);
169275 return newEdge;
169276 }
169277 }
169278 };
169279 LGraphManager.prototype.remove = function(lObj) {
169280 if (lObj instanceof LGraph) {
169281 var graph = lObj;
169282 if (graph.getGraphManager() != this) {
169283 throw "Graph not in this graph mgr";
169284 }
169285 if (!(graph == this.rootGraph || graph.parent != null && graph.parent.graphManager == this)) {
169286 throw "Invalid parent node!";
169287 }
169288 var edgesToBeRemoved = [];
169289 edgesToBeRemoved = edgesToBeRemoved.concat(graph.getEdges());
169290 var edge;
169291 var s = edgesToBeRemoved.length;
169292 for (var i2 = 0; i2 < s; i2++) {
169293 edge = edgesToBeRemoved[i2];
169294 graph.remove(edge);
169295 }
169296 var nodesToBeRemoved = [];
169297 nodesToBeRemoved = nodesToBeRemoved.concat(graph.getNodes());
169298 var node2;
169299 s = nodesToBeRemoved.length;
169300 for (var i2 = 0; i2 < s; i2++) {
169301 node2 = nodesToBeRemoved[i2];
169302 graph.remove(node2);
169303 }
169304 if (graph == this.rootGraph) {
169305 this.setRootGraph(null);
169306 }
169307 var index2 = this.graphs.indexOf(graph);
169308 this.graphs.splice(index2, 1);
169309 graph.parent = null;
169310 } else if (lObj instanceof LEdge) {
169311 edge = lObj;
169312 if (edge == null) {
169313 throw "Edge is null!";
169314 }
169315 if (!edge.isInterGraph) {
169316 throw "Not an inter-graph edge!";
169317 }
169318 if (!(edge.source != null && edge.target != null)) {
169319 throw "Source and/or target is null!";
169320 }
169321 if (!(edge.source.edges.indexOf(edge) != -1 && edge.target.edges.indexOf(edge) != -1)) {
169322 throw "Source and/or target doesn't know this edge!";
169323 }
169324 var index2 = edge.source.edges.indexOf(edge);
169325 edge.source.edges.splice(index2, 1);
169326 index2 = edge.target.edges.indexOf(edge);
169327 edge.target.edges.splice(index2, 1);
169328 if (!(edge.source.owner != null && edge.source.owner.getGraphManager() != null)) {
169329 throw "Edge owner graph or owner graph manager is null!";
169330 }
169331 if (edge.source.owner.getGraphManager().edges.indexOf(edge) == -1) {
169332 throw "Not in owner graph manager's edge list!";
169333 }
169334 var index2 = edge.source.owner.getGraphManager().edges.indexOf(edge);
169335 edge.source.owner.getGraphManager().edges.splice(index2, 1);
169336 }
169337 };
169338 LGraphManager.prototype.updateBounds = function() {
169339 this.rootGraph.updateBounds(true);
169340 };
169341 LGraphManager.prototype.getGraphs = function() {
169342 return this.graphs;
169343 };
169344 LGraphManager.prototype.getAllNodes = function() {
169345 if (this.allNodes == null) {
169346 var nodeList = [];
169347 var graphs = this.getGraphs();
169348 var s = graphs.length;
169349 for (var i2 = 0; i2 < s; i2++) {
169350 nodeList = nodeList.concat(graphs[i2].getNodes());
169351 }
169352 this.allNodes = nodeList;
169353 }
169354 return this.allNodes;
169355 };
169356 LGraphManager.prototype.resetAllNodes = function() {
169357 this.allNodes = null;
169358 };
169359 LGraphManager.prototype.resetAllEdges = function() {
169360 this.allEdges = null;
169361 };
169362 LGraphManager.prototype.resetAllNodesToApplyGravitation = function() {
169363 this.allNodesToApplyGravitation = null;
169364 };
169365 LGraphManager.prototype.getAllEdges = function() {
169366 if (this.allEdges == null) {
169367 var edgeList = [];
169368 var graphs = this.getGraphs();
169369 graphs.length;
169370 for (var i2 = 0; i2 < graphs.length; i2++) {
169371 edgeList = edgeList.concat(graphs[i2].getEdges());
169372 }
169373 edgeList = edgeList.concat(this.edges);
169374 this.allEdges = edgeList;
169375 }
169376 return this.allEdges;
169377 };
169378 LGraphManager.prototype.getAllNodesToApplyGravitation = function() {
169379 return this.allNodesToApplyGravitation;
169380 };
169381 LGraphManager.prototype.setAllNodesToApplyGravitation = function(nodeList) {
169382 if (this.allNodesToApplyGravitation != null) {
169383 throw "assert failed";
169384 }
169385 this.allNodesToApplyGravitation = nodeList;
169386 };
169387 LGraphManager.prototype.getRoot = function() {
169388 return this.rootGraph;
169389 };
169390 LGraphManager.prototype.setRootGraph = function(graph) {
169391 if (graph.getGraphManager() != this) {
169392 throw "Root not in this graph mgr!";
169393 }
169394 this.rootGraph = graph;
169395 if (graph.parent == null) {
169396 graph.parent = this.layout.newNode("Root node");
169397 }
169398 };
169399 LGraphManager.prototype.getLayout = function() {
169400 return this.layout;
169401 };
169402 LGraphManager.prototype.isOneAncestorOfOther = function(firstNode, secondNode) {
169403 if (!(firstNode != null && secondNode != null)) {
169404 throw "assert failed";
169405 }
169406 if (firstNode == secondNode) {
169407 return true;
169408 }
169409 var ownerGraph = firstNode.getOwner();
169410 var parentNode;
169411 do {
169412 parentNode = ownerGraph.getParent();
169413 if (parentNode == null) {
169414 break;
169415 }
169416 if (parentNode == secondNode) {
169417 return true;
169418 }
169419 ownerGraph = parentNode.getOwner();
169420 if (ownerGraph == null) {
169421 break;
169422 }
169423 } while (true);
169424 ownerGraph = secondNode.getOwner();
169425 do {
169426 parentNode = ownerGraph.getParent();
169427 if (parentNode == null) {
169428 break;
169429 }
169430 if (parentNode == firstNode) {
169431 return true;
169432 }
169433 ownerGraph = parentNode.getOwner();
169434 if (ownerGraph == null) {
169435 break;
169436 }
169437 } while (true);
169438 return false;
169439 };
169440 LGraphManager.prototype.calcLowestCommonAncestors = function() {
169441 var edge;
169442 var sourceNode;
169443 var targetNode;
169444 var sourceAncestorGraph;
169445 var targetAncestorGraph;
169446 var edges2 = this.getAllEdges();
169447 var s = edges2.length;
169448 for (var i2 = 0; i2 < s; i2++) {
169449 edge = edges2[i2];
169450 sourceNode = edge.source;
169451 targetNode = edge.target;
169452 edge.lca = null;
169453 edge.sourceInLca = sourceNode;
169454 edge.targetInLca = targetNode;
169455 if (sourceNode == targetNode) {
169456 edge.lca = sourceNode.getOwner();
169457 continue;
169458 }
169459 sourceAncestorGraph = sourceNode.getOwner();
169460 while (edge.lca == null) {
169461 edge.targetInLca = targetNode;
169462 targetAncestorGraph = targetNode.getOwner();
169463 while (edge.lca == null) {
169464 if (targetAncestorGraph == sourceAncestorGraph) {
169465 edge.lca = targetAncestorGraph;
169466 break;
169467 }
169468 if (targetAncestorGraph == this.rootGraph) {
169469 break;
169470 }
169471 if (edge.lca != null) {
169472 throw "assert failed";
169473 }
169474 edge.targetInLca = targetAncestorGraph.getParent();
169475 targetAncestorGraph = edge.targetInLca.getOwner();
169476 }
169477 if (sourceAncestorGraph == this.rootGraph) {
169478 break;
169479 }
169480 if (edge.lca == null) {
169481 edge.sourceInLca = sourceAncestorGraph.getParent();
169482 sourceAncestorGraph = edge.sourceInLca.getOwner();
169483 }
169484 }
169485 if (edge.lca == null) {
169486 throw "assert failed";
169487 }
169488 }
169489 };
169490 LGraphManager.prototype.calcLowestCommonAncestor = function(firstNode, secondNode) {
169491 if (firstNode == secondNode) {
169492 return firstNode.getOwner();
169493 }
169494 var firstOwnerGraph = firstNode.getOwner();
169495 do {
169496 if (firstOwnerGraph == null) {
169497 break;
169498 }
169499 var secondOwnerGraph = secondNode.getOwner();
169500 do {
169501 if (secondOwnerGraph == null) {
169502 break;
169503 }
169504 if (secondOwnerGraph == firstOwnerGraph) {
169505 return secondOwnerGraph;
169506 }
169507 secondOwnerGraph = secondOwnerGraph.getParent().getOwner();
169508 } while (true);
169509 firstOwnerGraph = firstOwnerGraph.getParent().getOwner();
169510 } while (true);
169511 return firstOwnerGraph;
169512 };
169513 LGraphManager.prototype.calcInclusionTreeDepths = function(graph, depth) {
169514 if (graph == null && depth == null) {
169515 graph = this.rootGraph;
169516 depth = 1;
169517 }
169518 var node2;
169519 var nodes2 = graph.getNodes();
169520 var s = nodes2.length;
169521 for (var i2 = 0; i2 < s; i2++) {
169522 node2 = nodes2[i2];
169523 node2.inclusionTreeDepth = depth;
169524 if (node2.child != null) {
169525 this.calcInclusionTreeDepths(node2.child, depth + 1);
169526 }
169527 }
169528 };
169529 LGraphManager.prototype.includesInvalidEdge = function() {
169530 var edge;
169531 var s = this.edges.length;
169532 for (var i2 = 0; i2 < s; i2++) {
169533 edge = this.edges[i2];
169534 if (this.isOneAncestorOfOther(edge.source, edge.target)) {
169535 return true;
169536 }
169537 }
169538 return false;
169539 };
169540 module3.exports = LGraphManager;
169541 },
169542 /* 7 */
169543 /***/
169544 function(module3, exports3, __webpack_require__) {
169545 var LayoutConstants = __webpack_require__(0);
169546 function FDLayoutConstants() {
169547 }
169548 for (var prop in LayoutConstants) {
169549 FDLayoutConstants[prop] = LayoutConstants[prop];
169550 }
169551 FDLayoutConstants.MAX_ITERATIONS = 2500;
169552 FDLayoutConstants.DEFAULT_EDGE_LENGTH = 50;
169553 FDLayoutConstants.DEFAULT_SPRING_STRENGTH = 0.45;
169554 FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = 4500;
169555 FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = 0.4;
169556 FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = 1;
169557 FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = 3.8;
169558 FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = 1.5;
169559 FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION = true;
169560 FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION = true;
169561 FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = 0.3;
169562 FDLayoutConstants.COOLING_ADAPTATION_FACTOR = 0.33;
169563 FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT = 1e3;
169564 FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT = 5e3;
169565 FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL = 100;
169566 FDLayoutConstants.MAX_NODE_DISPLACEMENT = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL * 3;
169567 FDLayoutConstants.MIN_REPULSION_DIST = FDLayoutConstants.DEFAULT_EDGE_LENGTH / 10;
169568 FDLayoutConstants.CONVERGENCE_CHECK_PERIOD = 100;
169569 FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = 0.1;
169570 FDLayoutConstants.MIN_EDGE_LENGTH = 1;
169571 FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD = 10;
169572 module3.exports = FDLayoutConstants;
169573 },
169574 /* 8 */
169575 /***/
169576 function(module3, exports3, __webpack_require__) {
169577 var Point2 = __webpack_require__(12);
169578 function IGeometry() {
169579 }
169580 IGeometry.calcSeparationAmount = function(rectA, rectB, overlapAmount, separationBuffer) {
169581 if (!rectA.intersects(rectB)) {
169582 throw "assert failed";
169583 }
169584 var directions = new Array(2);
169585 this.decideDirectionsForOverlappingNodes(rectA, rectB, directions);
169586 overlapAmount[0] = Math.min(rectA.getRight(), rectB.getRight()) - Math.max(rectA.x, rectB.x);
169587 overlapAmount[1] = Math.min(rectA.getBottom(), rectB.getBottom()) - Math.max(rectA.y, rectB.y);
169588 if (rectA.getX() <= rectB.getX() && rectA.getRight() >= rectB.getRight()) {
169589 overlapAmount[0] += Math.min(rectB.getX() - rectA.getX(), rectA.getRight() - rectB.getRight());
169590 } else if (rectB.getX() <= rectA.getX() && rectB.getRight() >= rectA.getRight()) {
169591 overlapAmount[0] += Math.min(rectA.getX() - rectB.getX(), rectB.getRight() - rectA.getRight());
169592 }
169593 if (rectA.getY() <= rectB.getY() && rectA.getBottom() >= rectB.getBottom()) {
169594 overlapAmount[1] += Math.min(rectB.getY() - rectA.getY(), rectA.getBottom() - rectB.getBottom());
169595 } else if (rectB.getY() <= rectA.getY() && rectB.getBottom() >= rectA.getBottom()) {
169596 overlapAmount[1] += Math.min(rectA.getY() - rectB.getY(), rectB.getBottom() - rectA.getBottom());
169597 }
169598 var slope = Math.abs((rectB.getCenterY() - rectA.getCenterY()) / (rectB.getCenterX() - rectA.getCenterX()));
169599 if (rectB.getCenterY() === rectA.getCenterY() && rectB.getCenterX() === rectA.getCenterX()) {
169600 slope = 1;
169601 }
169602 var moveByY = slope * overlapAmount[0];
169603 var moveByX = overlapAmount[1] / slope;
169604 if (overlapAmount[0] < moveByX) {
169605 moveByX = overlapAmount[0];
169606 } else {
169607 moveByY = overlapAmount[1];
169608 }
169609 overlapAmount[0] = -1 * directions[0] * (moveByX / 2 + separationBuffer);
169610 overlapAmount[1] = -1 * directions[1] * (moveByY / 2 + separationBuffer);
169611 };
169612 IGeometry.decideDirectionsForOverlappingNodes = function(rectA, rectB, directions) {
169613 if (rectA.getCenterX() < rectB.getCenterX()) {
169614 directions[0] = -1;
169615 } else {
169616 directions[0] = 1;
169617 }
169618 if (rectA.getCenterY() < rectB.getCenterY()) {
169619 directions[1] = -1;
169620 } else {
169621 directions[1] = 1;
169622 }
169623 };
169624 IGeometry.getIntersection2 = function(rectA, rectB, result) {
169625 var p1x = rectA.getCenterX();
169626 var p1y = rectA.getCenterY();
169627 var p2x = rectB.getCenterX();
169628 var p2y = rectB.getCenterY();
169629 if (rectA.intersects(rectB)) {
169630 result[0] = p1x;
169631 result[1] = p1y;
169632 result[2] = p2x;
169633 result[3] = p2y;
169634 return true;
169635 }
169636 var topLeftAx = rectA.getX();
169637 var topLeftAy = rectA.getY();
169638 var topRightAx = rectA.getRight();
169639 var bottomLeftAx = rectA.getX();
169640 var bottomLeftAy = rectA.getBottom();
169641 var bottomRightAx = rectA.getRight();
169642 var halfWidthA = rectA.getWidthHalf();
169643 var halfHeightA = rectA.getHeightHalf();
169644 var topLeftBx = rectB.getX();
169645 var topLeftBy = rectB.getY();
169646 var topRightBx = rectB.getRight();
169647 var bottomLeftBx = rectB.getX();
169648 var bottomLeftBy = rectB.getBottom();
169649 var bottomRightBx = rectB.getRight();
169650 var halfWidthB = rectB.getWidthHalf();
169651 var halfHeightB = rectB.getHeightHalf();
169652 var clipPointAFound = false;
169653 var clipPointBFound = false;
169654 if (p1x === p2x) {
169655 if (p1y > p2y) {
169656 result[0] = p1x;
169657 result[1] = topLeftAy;
169658 result[2] = p2x;
169659 result[3] = bottomLeftBy;
169660 return false;
169661 } else if (p1y < p2y) {
169662 result[0] = p1x;
169663 result[1] = bottomLeftAy;
169664 result[2] = p2x;
169665 result[3] = topLeftBy;
169666 return false;
169667 } else
169668 ;
169669 } else if (p1y === p2y) {
169670 if (p1x > p2x) {
169671 result[0] = topLeftAx;
169672 result[1] = p1y;
169673 result[2] = topRightBx;
169674 result[3] = p2y;
169675 return false;
169676 } else if (p1x < p2x) {
169677 result[0] = topRightAx;
169678 result[1] = p1y;
169679 result[2] = topLeftBx;
169680 result[3] = p2y;
169681 return false;
169682 } else
169683 ;
169684 } else {
169685 var slopeA = rectA.height / rectA.width;
169686 var slopeB = rectB.height / rectB.width;
169687 var slopePrime = (p2y - p1y) / (p2x - p1x);
169688 var cardinalDirectionA = void 0;
169689 var cardinalDirectionB = void 0;
169690 var tempPointAx = void 0;
169691 var tempPointAy = void 0;
169692 var tempPointBx = void 0;
169693 var tempPointBy = void 0;
169694 if (-slopeA === slopePrime) {
169695 if (p1x > p2x) {
169696 result[0] = bottomLeftAx;
169697 result[1] = bottomLeftAy;
169698 clipPointAFound = true;
169699 } else {
169700 result[0] = topRightAx;
169701 result[1] = topLeftAy;
169702 clipPointAFound = true;
169703 }
169704 } else if (slopeA === slopePrime) {
169705 if (p1x > p2x) {
169706 result[0] = topLeftAx;
169707 result[1] = topLeftAy;
169708 clipPointAFound = true;
169709 } else {
169710 result[0] = bottomRightAx;
169711 result[1] = bottomLeftAy;
169712 clipPointAFound = true;
169713 }
169714 }
169715 if (-slopeB === slopePrime) {
169716 if (p2x > p1x) {
169717 result[2] = bottomLeftBx;
169718 result[3] = bottomLeftBy;
169719 clipPointBFound = true;
169720 } else {
169721 result[2] = topRightBx;
169722 result[3] = topLeftBy;
169723 clipPointBFound = true;
169724 }
169725 } else if (slopeB === slopePrime) {
169726 if (p2x > p1x) {
169727 result[2] = topLeftBx;
169728 result[3] = topLeftBy;
169729 clipPointBFound = true;
169730 } else {
169731 result[2] = bottomRightBx;
169732 result[3] = bottomLeftBy;
169733 clipPointBFound = true;
169734 }
169735 }
169736 if (clipPointAFound && clipPointBFound) {
169737 return false;
169738 }
169739 if (p1x > p2x) {
169740 if (p1y > p2y) {
169741 cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 4);
169742 cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 2);
169743 } else {
169744 cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 3);
169745 cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 1);
169746 }
169747 } else {
169748 if (p1y > p2y) {
169749 cardinalDirectionA = this.getCardinalDirection(-slopeA, slopePrime, 1);
169750 cardinalDirectionB = this.getCardinalDirection(-slopeB, slopePrime, 3);
169751 } else {
169752 cardinalDirectionA = this.getCardinalDirection(slopeA, slopePrime, 2);
169753 cardinalDirectionB = this.getCardinalDirection(slopeB, slopePrime, 4);
169754 }
169755 }
169756 if (!clipPointAFound) {
169757 switch (cardinalDirectionA) {
169758 case 1:
169759 tempPointAy = topLeftAy;
169760 tempPointAx = p1x + -halfHeightA / slopePrime;
169761 result[0] = tempPointAx;
169762 result[1] = tempPointAy;
169763 break;
169764 case 2:
169765 tempPointAx = bottomRightAx;
169766 tempPointAy = p1y + halfWidthA * slopePrime;
169767 result[0] = tempPointAx;
169768 result[1] = tempPointAy;
169769 break;
169770 case 3:
169771 tempPointAy = bottomLeftAy;
169772 tempPointAx = p1x + halfHeightA / slopePrime;
169773 result[0] = tempPointAx;
169774 result[1] = tempPointAy;
169775 break;
169776 case 4:
169777 tempPointAx = bottomLeftAx;
169778 tempPointAy = p1y + -halfWidthA * slopePrime;
169779 result[0] = tempPointAx;
169780 result[1] = tempPointAy;
169781 break;
169782 }
169783 }
169784 if (!clipPointBFound) {
169785 switch (cardinalDirectionB) {
169786 case 1:
169787 tempPointBy = topLeftBy;
169788 tempPointBx = p2x + -halfHeightB / slopePrime;
169789 result[2] = tempPointBx;
169790 result[3] = tempPointBy;
169791 break;
169792 case 2:
169793 tempPointBx = bottomRightBx;
169794 tempPointBy = p2y + halfWidthB * slopePrime;
169795 result[2] = tempPointBx;
169796 result[3] = tempPointBy;
169797 break;
169798 case 3:
169799 tempPointBy = bottomLeftBy;
169800 tempPointBx = p2x + halfHeightB / slopePrime;
169801 result[2] = tempPointBx;
169802 result[3] = tempPointBy;
169803 break;
169804 case 4:
169805 tempPointBx = bottomLeftBx;
169806 tempPointBy = p2y + -halfWidthB * slopePrime;
169807 result[2] = tempPointBx;
169808 result[3] = tempPointBy;
169809 break;
169810 }
169811 }
169812 }
169813 return false;
169814 };
169815 IGeometry.getCardinalDirection = function(slope, slopePrime, line2) {
169816 if (slope > slopePrime) {
169817 return line2;
169818 } else {
169819 return 1 + line2 % 4;
169820 }
169821 };
169822 IGeometry.getIntersection = function(s1, s2, f1, f2) {
169823 if (f2 == null) {
169824 return this.getIntersection2(s1, s2, f1);
169825 }
169826 var x1 = s1.x;
169827 var y1 = s1.y;
169828 var x2 = s2.x;
169829 var y2 = s2.y;
169830 var x3 = f1.x;
169831 var y3 = f1.y;
169832 var x4 = f2.x;
169833 var y4 = f2.y;
169834 var x5 = void 0, y5 = void 0;
169835 var a1 = void 0, a2 = void 0, b1 = void 0, b2 = void 0, c1 = void 0, c2 = void 0;
169836 var denom = void 0;
169837 a1 = y2 - y1;
169838 b1 = x1 - x2;
169839 c1 = x2 * y1 - x1 * y2;
169840 a2 = y4 - y3;
169841 b2 = x3 - x4;
169842 c2 = x4 * y3 - x3 * y4;
169843 denom = a1 * b2 - a2 * b1;
169844 if (denom === 0) {
169845 return null;
169846 }
169847 x5 = (b1 * c2 - b2 * c1) / denom;
169848 y5 = (a2 * c1 - a1 * c2) / denom;
169849 return new Point2(x5, y5);
169850 };
169851 IGeometry.angleOfVector = function(Cx, Cy, Nx, Ny) {
169852 var C_angle = void 0;
169853 if (Cx !== Nx) {
169854 C_angle = Math.atan((Ny - Cy) / (Nx - Cx));
169855 if (Nx < Cx) {
169856 C_angle += Math.PI;
169857 } else if (Ny < Cy) {
169858 C_angle += this.TWO_PI;
169859 }
169860 } else if (Ny < Cy) {
169861 C_angle = this.ONE_AND_HALF_PI;
169862 } else {
169863 C_angle = this.HALF_PI;
169864 }
169865 return C_angle;
169866 };
169867 IGeometry.doIntersect = function(p1, p2, p3, p4) {
169868 var a = p1.x;
169869 var b = p1.y;
169870 var c2 = p2.x;
169871 var d = p2.y;
169872 var p = p3.x;
169873 var q = p3.y;
169874 var r = p4.x;
169875 var s = p4.y;
169876 var det = (c2 - a) * (s - q) - (r - p) * (d - b);
169877 if (det === 0) {
169878 return false;
169879 } else {
169880 var lambda = ((s - q) * (r - a) + (p - r) * (s - b)) / det;
169881 var gamma2 = ((b - d) * (r - a) + (c2 - a) * (s - b)) / det;
169882 return 0 < lambda && lambda < 1 && 0 < gamma2 && gamma2 < 1;
169883 }
169884 };
169885 IGeometry.HALF_PI = 0.5 * Math.PI;
169886 IGeometry.ONE_AND_HALF_PI = 1.5 * Math.PI;
169887 IGeometry.TWO_PI = 2 * Math.PI;
169888 IGeometry.THREE_PI = 3 * Math.PI;
169889 module3.exports = IGeometry;
169890 },
169891 /* 9 */
169892 /***/
169893 function(module3, exports3, __webpack_require__) {
169894 function IMath() {
169895 }
169896 IMath.sign = function(value) {
169897 if (value > 0) {
169898 return 1;
169899 } else if (value < 0) {
169900 return -1;
169901 } else {
169902 return 0;
169903 }
169904 };
169905 IMath.floor = function(value) {
169906 return value < 0 ? Math.ceil(value) : Math.floor(value);
169907 };
169908 IMath.ceil = function(value) {
169909 return value < 0 ? Math.floor(value) : Math.ceil(value);
169910 };
169911 module3.exports = IMath;
169912 },
169913 /* 10 */
169914 /***/
169915 function(module3, exports3, __webpack_require__) {
169916 function Integer() {
169917 }
169918 Integer.MAX_VALUE = 2147483647;
169919 Integer.MIN_VALUE = -2147483648;
169920 module3.exports = Integer;
169921 },
169922 /* 11 */
169923 /***/
169924 function(module3, exports3, __webpack_require__) {
169925 var _createClass = function() {
169926 function defineProperties(target, props) {
169927 for (var i2 = 0; i2 < props.length; i2++) {
169928 var descriptor = props[i2];
169929 descriptor.enumerable = descriptor.enumerable || false;
169930 descriptor.configurable = true;
169931 if ("value" in descriptor)
169932 descriptor.writable = true;
169933 Object.defineProperty(target, descriptor.key, descriptor);
169934 }
169935 }
169936 return function(Constructor, protoProps, staticProps) {
169937 if (protoProps)
169938 defineProperties(Constructor.prototype, protoProps);
169939 if (staticProps)
169940 defineProperties(Constructor, staticProps);
169941 return Constructor;
169942 };
169943 }();
169944 function _classCallCheck(instance2, Constructor) {
169945 if (!(instance2 instanceof Constructor)) {
169946 throw new TypeError("Cannot call a class as a function");
169947 }
169948 }
169949 var nodeFrom = function nodeFrom2(value) {
169950 return { value, next: null, prev: null };
169951 };
169952 var add = function add2(prev2, node2, next2, list2) {
169953 if (prev2 !== null) {
169954 prev2.next = node2;
169955 } else {
169956 list2.head = node2;
169957 }
169958 if (next2 !== null) {
169959 next2.prev = node2;
169960 } else {
169961 list2.tail = node2;
169962 }
169963 node2.prev = prev2;
169964 node2.next = next2;
169965 list2.length++;
169966 return node2;
169967 };
169968 var _remove = function _remove2(node2, list2) {
169969 var prev2 = node2.prev, next2 = node2.next;
169970 if (prev2 !== null) {
169971 prev2.next = next2;
169972 } else {
169973 list2.head = next2;
169974 }
169975 if (next2 !== null) {
169976 next2.prev = prev2;
169977 } else {
169978 list2.tail = prev2;
169979 }
169980 node2.prev = node2.next = null;
169981 list2.length--;
169982 return node2;
169983 };
169984 var LinkedList = function() {
169985 function LinkedList2(vals) {
169986 var _this = this;
169987 _classCallCheck(this, LinkedList2);
169988 this.length = 0;
169989 this.head = null;
169990 this.tail = null;
169991 if (vals != null) {
169992 vals.forEach(function(v) {
169993 return _this.push(v);
169994 });
169995 }
169996 }
169997 _createClass(LinkedList2, [{
169998 key: "size",
169999 value: function size2() {
170000 return this.length;
170001 }
170002 }, {
170003 key: "insertBefore",
170004 value: function insertBefore(val, otherNode) {
170005 return add(otherNode.prev, nodeFrom(val), otherNode, this);
170006 }
170007 }, {
170008 key: "insertAfter",
170009 value: function insertAfter(val, otherNode) {
170010 return add(otherNode, nodeFrom(val), otherNode.next, this);
170011 }
170012 }, {
170013 key: "insertNodeBefore",
170014 value: function insertNodeBefore(newNode, otherNode) {
170015 return add(otherNode.prev, newNode, otherNode, this);
170016 }
170017 }, {
170018 key: "insertNodeAfter",
170019 value: function insertNodeAfter(newNode, otherNode) {
170020 return add(otherNode, newNode, otherNode.next, this);
170021 }
170022 }, {
170023 key: "push",
170024 value: function push2(val) {
170025 return add(this.tail, nodeFrom(val), null, this);
170026 }
170027 }, {
170028 key: "unshift",
170029 value: function unshift(val) {
170030 return add(null, nodeFrom(val), this.head, this);
170031 }
170032 }, {
170033 key: "remove",
170034 value: function remove2(node2) {
170035 return _remove(node2, this);
170036 }
170037 }, {
170038 key: "pop",
170039 value: function pop() {
170040 return _remove(this.tail, this).value;
170041 }
170042 }, {
170043 key: "popNode",
170044 value: function popNode() {
170045 return _remove(this.tail, this);
170046 }
170047 }, {
170048 key: "shift",
170049 value: function shift() {
170050 return _remove(this.head, this).value;
170051 }
170052 }, {
170053 key: "shiftNode",
170054 value: function shiftNode() {
170055 return _remove(this.head, this);
170056 }
170057 }, {
170058 key: "get_object_at",
170059 value: function get_object_at(index2) {
170060 if (index2 <= this.length()) {
170061 var i2 = 1;
170062 var current = this.head;
170063 while (i2 < index2) {
170064 current = current.next;
170065 i2++;
170066 }
170067 return current.value;
170068 }
170069 }
170070 }, {
170071 key: "set_object_at",
170072 value: function set_object_at(index2, value) {
170073 if (index2 <= this.length()) {
170074 var i2 = 1;
170075 var current = this.head;
170076 while (i2 < index2) {
170077 current = current.next;
170078 i2++;
170079 }
170080 current.value = value;
170081 }
170082 }
170083 }]);
170084 return LinkedList2;
170085 }();
170086 module3.exports = LinkedList;
170087 },
170088 /* 12 */
170089 /***/
170090 function(module3, exports3, __webpack_require__) {
170091 function Point2(x2, y2, p) {
170092 this.x = null;
170093 this.y = null;
170094 if (x2 == null && y2 == null && p == null) {
170095 this.x = 0;
170096 this.y = 0;
170097 } else if (typeof x2 == "number" && typeof y2 == "number" && p == null) {
170098 this.x = x2;
170099 this.y = y2;
170100 } else if (x2.constructor.name == "Point" && y2 == null && p == null) {
170101 p = x2;
170102 this.x = p.x;
170103 this.y = p.y;
170104 }
170105 }
170106 Point2.prototype.getX = function() {
170107 return this.x;
170108 };
170109 Point2.prototype.getY = function() {
170110 return this.y;
170111 };
170112 Point2.prototype.getLocation = function() {
170113 return new Point2(this.x, this.y);
170114 };
170115 Point2.prototype.setLocation = function(x2, y2, p) {
170116 if (x2.constructor.name == "Point" && y2 == null && p == null) {
170117 p = x2;
170118 this.setLocation(p.x, p.y);
170119 } else if (typeof x2 == "number" && typeof y2 == "number" && p == null) {
170120 if (parseInt(x2) == x2 && parseInt(y2) == y2) {
170121 this.move(x2, y2);
170122 } else {
170123 this.x = Math.floor(x2 + 0.5);
170124 this.y = Math.floor(y2 + 0.5);
170125 }
170126 }
170127 };
170128 Point2.prototype.move = function(x2, y2) {
170129 this.x = x2;
170130 this.y = y2;
170131 };
170132 Point2.prototype.translate = function(dx, dy) {
170133 this.x += dx;
170134 this.y += dy;
170135 };
170136 Point2.prototype.equals = function(obj) {
170137 if (obj.constructor.name == "Point") {
170138 var pt = obj;
170139 return this.x == pt.x && this.y == pt.y;
170140 }
170141 return this == obj;
170142 };
170143 Point2.prototype.toString = function() {
170144 return new Point2().constructor.name + "[x=" + this.x + ",y=" + this.y + "]";
170145 };
170146 module3.exports = Point2;
170147 },
170148 /* 13 */
170149 /***/
170150 function(module3, exports3, __webpack_require__) {
170151 function RectangleD(x2, y2, width2, height2) {
170152 this.x = 0;
170153 this.y = 0;
170154 this.width = 0;
170155 this.height = 0;
170156 if (x2 != null && y2 != null && width2 != null && height2 != null) {
170157 this.x = x2;
170158 this.y = y2;
170159 this.width = width2;
170160 this.height = height2;
170161 }
170162 }
170163 RectangleD.prototype.getX = function() {
170164 return this.x;
170165 };
170166 RectangleD.prototype.setX = function(x2) {
170167 this.x = x2;
170168 };
170169 RectangleD.prototype.getY = function() {
170170 return this.y;
170171 };
170172 RectangleD.prototype.setY = function(y2) {
170173 this.y = y2;
170174 };
170175 RectangleD.prototype.getWidth = function() {
170176 return this.width;
170177 };
170178 RectangleD.prototype.setWidth = function(width2) {
170179 this.width = width2;
170180 };
170181 RectangleD.prototype.getHeight = function() {
170182 return this.height;
170183 };
170184 RectangleD.prototype.setHeight = function(height2) {
170185 this.height = height2;
170186 };
170187 RectangleD.prototype.getRight = function() {
170188 return this.x + this.width;
170189 };
170190 RectangleD.prototype.getBottom = function() {
170191 return this.y + this.height;
170192 };
170193 RectangleD.prototype.intersects = function(a) {
170194 if (this.getRight() < a.x) {
170195 return false;
170196 }
170197 if (this.getBottom() < a.y) {
170198 return false;
170199 }
170200 if (a.getRight() < this.x) {
170201 return false;
170202 }
170203 if (a.getBottom() < this.y) {
170204 return false;
170205 }
170206 return true;
170207 };
170208 RectangleD.prototype.getCenterX = function() {
170209 return this.x + this.width / 2;
170210 };
170211 RectangleD.prototype.getMinX = function() {
170212 return this.getX();
170213 };
170214 RectangleD.prototype.getMaxX = function() {
170215 return this.getX() + this.width;
170216 };
170217 RectangleD.prototype.getCenterY = function() {
170218 return this.y + this.height / 2;
170219 };
170220 RectangleD.prototype.getMinY = function() {
170221 return this.getY();
170222 };
170223 RectangleD.prototype.getMaxY = function() {
170224 return this.getY() + this.height;
170225 };
170226 RectangleD.prototype.getWidthHalf = function() {
170227 return this.width / 2;
170228 };
170229 RectangleD.prototype.getHeightHalf = function() {
170230 return this.height / 2;
170231 };
170232 module3.exports = RectangleD;
170233 },
170234 /* 14 */
170235 /***/
170236 function(module3, exports3, __webpack_require__) {
170237 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function(obj) {
170238 return typeof obj;
170239 } : function(obj) {
170240 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
170241 };
170242 function UniqueIDGeneretor() {
170243 }
170244 UniqueIDGeneretor.lastID = 0;
170245 UniqueIDGeneretor.createID = function(obj) {
170246 if (UniqueIDGeneretor.isPrimitive(obj)) {
170247 return obj;
170248 }
170249 if (obj.uniqueID != null) {
170250 return obj.uniqueID;
170251 }
170252 obj.uniqueID = UniqueIDGeneretor.getString();
170253 UniqueIDGeneretor.lastID++;
170254 return obj.uniqueID;
170255 };
170256 UniqueIDGeneretor.getString = function(id2) {
170257 if (id2 == null)
170258 id2 = UniqueIDGeneretor.lastID;
170259 return "Object#" + id2;
170260 };
170261 UniqueIDGeneretor.isPrimitive = function(arg) {
170262 var type2 = typeof arg === "undefined" ? "undefined" : _typeof(arg);
170263 return arg == null || type2 != "object" && type2 != "function";
170264 };
170265 module3.exports = UniqueIDGeneretor;
170266 },
170267 /* 15 */
170268 /***/
170269 function(module3, exports3, __webpack_require__) {
170270 function _toConsumableArray(arr) {
170271 if (Array.isArray(arr)) {
170272 for (var i2 = 0, arr2 = Array(arr.length); i2 < arr.length; i2++) {
170273 arr2[i2] = arr[i2];
170274 }
170275 return arr2;
170276 } else {
170277 return Array.from(arr);
170278 }
170279 }
170280 var LayoutConstants = __webpack_require__(0);
170281 var LGraphManager = __webpack_require__(6);
170282 var LNode = __webpack_require__(3);
170283 var LEdge = __webpack_require__(1);
170284 var LGraph = __webpack_require__(5);
170285 var PointD = __webpack_require__(4);
170286 var Transform2 = __webpack_require__(17);
170287 var Emitter = __webpack_require__(27);
170288 function Layout2(isRemoteUse) {
170289 Emitter.call(this);
170290 this.layoutQuality = LayoutConstants.QUALITY;
170291 this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;
170292 this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;
170293 this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;
170294 this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;
170295 this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;
170296 this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;
170297 this.edgeToDummyNodes = /* @__PURE__ */ new Map();
170298 this.graphManager = new LGraphManager(this);
170299 this.isLayoutFinished = false;
170300 this.isSubLayout = false;
170301 this.isRemoteUse = false;
170302 if (isRemoteUse != null) {
170303 this.isRemoteUse = isRemoteUse;
170304 }
170305 }
170306 Layout2.RANDOM_SEED = 1;
170307 Layout2.prototype = Object.create(Emitter.prototype);
170308 Layout2.prototype.getGraphManager = function() {
170309 return this.graphManager;
170310 };
170311 Layout2.prototype.getAllNodes = function() {
170312 return this.graphManager.getAllNodes();
170313 };
170314 Layout2.prototype.getAllEdges = function() {
170315 return this.graphManager.getAllEdges();
170316 };
170317 Layout2.prototype.getAllNodesToApplyGravitation = function() {
170318 return this.graphManager.getAllNodesToApplyGravitation();
170319 };
170320 Layout2.prototype.newGraphManager = function() {
170321 var gm = new LGraphManager(this);
170322 this.graphManager = gm;
170323 return gm;
170324 };
170325 Layout2.prototype.newGraph = function(vGraph) {
170326 return new LGraph(null, this.graphManager, vGraph);
170327 };
170328 Layout2.prototype.newNode = function(vNode) {
170329 return new LNode(this.graphManager, vNode);
170330 };
170331 Layout2.prototype.newEdge = function(vEdge) {
170332 return new LEdge(null, null, vEdge);
170333 };
170334 Layout2.prototype.checkLayoutSuccess = function() {
170335 return this.graphManager.getRoot() == null || this.graphManager.getRoot().getNodes().length == 0 || this.graphManager.includesInvalidEdge();
170336 };
170337 Layout2.prototype.runLayout = function() {
170338 this.isLayoutFinished = false;
170339 if (this.tilingPreLayout) {
170340 this.tilingPreLayout();
170341 }
170342 this.initParameters();
170343 var isLayoutSuccessfull;
170344 if (this.checkLayoutSuccess()) {
170345 isLayoutSuccessfull = false;
170346 } else {
170347 isLayoutSuccessfull = this.layout();
170348 }
170349 if (LayoutConstants.ANIMATE === "during") {
170350 return false;
170351 }
170352 if (isLayoutSuccessfull) {
170353 if (!this.isSubLayout) {
170354 this.doPostLayout();
170355 }
170356 }
170357 if (this.tilingPostLayout) {
170358 this.tilingPostLayout();
170359 }
170360 this.isLayoutFinished = true;
170361 return isLayoutSuccessfull;
170362 };
170363 Layout2.prototype.doPostLayout = function() {
170364 if (!this.incremental) {
170365 this.transform();
170366 }
170367 this.update();
170368 };
170369 Layout2.prototype.update2 = function() {
170370 if (this.createBendsAsNeeded) {
170371 this.createBendpointsFromDummyNodes();
170372 this.graphManager.resetAllEdges();
170373 }
170374 if (!this.isRemoteUse) {
170375 var allEdges = this.graphManager.getAllEdges();
170376 for (var i2 = 0; i2 < allEdges.length; i2++) {
170377 allEdges[i2];
170378 }
170379 var nodes2 = this.graphManager.getRoot().getNodes();
170380 for (var i2 = 0; i2 < nodes2.length; i2++) {
170381 nodes2[i2];
170382 }
170383 this.update(this.graphManager.getRoot());
170384 }
170385 };
170386 Layout2.prototype.update = function(obj) {
170387 if (obj == null) {
170388 this.update2();
170389 } else if (obj instanceof LNode) {
170390 var node2 = obj;
170391 if (node2.getChild() != null) {
170392 var nodes2 = node2.getChild().getNodes();
170393 for (var i2 = 0; i2 < nodes2.length; i2++) {
170394 update(nodes2[i2]);
170395 }
170396 }
170397 if (node2.vGraphObject != null) {
170398 var vNode = node2.vGraphObject;
170399 vNode.update(node2);
170400 }
170401 } else if (obj instanceof LEdge) {
170402 var edge = obj;
170403 if (edge.vGraphObject != null) {
170404 var vEdge = edge.vGraphObject;
170405 vEdge.update(edge);
170406 }
170407 } else if (obj instanceof LGraph) {
170408 var graph = obj;
170409 if (graph.vGraphObject != null) {
170410 var vGraph = graph.vGraphObject;
170411 vGraph.update(graph);
170412 }
170413 }
170414 };
170415 Layout2.prototype.initParameters = function() {
170416 if (!this.isSubLayout) {
170417 this.layoutQuality = LayoutConstants.QUALITY;
170418 this.animationDuringLayout = LayoutConstants.DEFAULT_ANIMATION_DURING_LAYOUT;
170419 this.animationPeriod = LayoutConstants.DEFAULT_ANIMATION_PERIOD;
170420 this.animationOnLayout = LayoutConstants.DEFAULT_ANIMATION_ON_LAYOUT;
170421 this.incremental = LayoutConstants.DEFAULT_INCREMENTAL;
170422 this.createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;
170423 this.uniformLeafNodeSizes = LayoutConstants.DEFAULT_UNIFORM_LEAF_NODE_SIZES;
170424 }
170425 if (this.animationDuringLayout) {
170426 this.animationOnLayout = false;
170427 }
170428 };
170429 Layout2.prototype.transform = function(newLeftTop) {
170430 if (newLeftTop == void 0) {
170431 this.transform(new PointD(0, 0));
170432 } else {
170433 var trans = new Transform2();
170434 var leftTop = this.graphManager.getRoot().updateLeftTop();
170435 if (leftTop != null) {
170436 trans.setWorldOrgX(newLeftTop.x);
170437 trans.setWorldOrgY(newLeftTop.y);
170438 trans.setDeviceOrgX(leftTop.x);
170439 trans.setDeviceOrgY(leftTop.y);
170440 var nodes2 = this.getAllNodes();
170441 var node2;
170442 for (var i2 = 0; i2 < nodes2.length; i2++) {
170443 node2 = nodes2[i2];
170444 node2.transform(trans);
170445 }
170446 }
170447 }
170448 };
170449 Layout2.prototype.positionNodesRandomly = function(graph) {
170450 if (graph == void 0) {
170451 this.positionNodesRandomly(this.getGraphManager().getRoot());
170452 this.getGraphManager().getRoot().updateBounds(true);
170453 } else {
170454 var lNode;
170455 var childGraph;
170456 var nodes2 = graph.getNodes();
170457 for (var i2 = 0; i2 < nodes2.length; i2++) {
170458 lNode = nodes2[i2];
170459 childGraph = lNode.getChild();
170460 if (childGraph == null) {
170461 lNode.scatter();
170462 } else if (childGraph.getNodes().length == 0) {
170463 lNode.scatter();
170464 } else {
170465 this.positionNodesRandomly(childGraph);
170466 lNode.updateBounds();
170467 }
170468 }
170469 }
170470 };
170471 Layout2.prototype.getFlatForest = function() {
170472 var flatForest = [];
170473 var isForest = true;
170474 var allNodes = this.graphManager.getRoot().getNodes();
170475 var isFlat = true;
170476 for (var i2 = 0; i2 < allNodes.length; i2++) {
170477 if (allNodes[i2].getChild() != null) {
170478 isFlat = false;
170479 }
170480 }
170481 if (!isFlat) {
170482 return flatForest;
170483 }
170484 var visited = /* @__PURE__ */ new Set();
170485 var toBeVisited = [];
170486 var parents2 = /* @__PURE__ */ new Map();
170487 var unProcessedNodes = [];
170488 unProcessedNodes = unProcessedNodes.concat(allNodes);
170489 while (unProcessedNodes.length > 0 && isForest) {
170490 toBeVisited.push(unProcessedNodes[0]);
170491 while (toBeVisited.length > 0 && isForest) {
170492 var currentNode = toBeVisited[0];
170493 toBeVisited.splice(0, 1);
170494 visited.add(currentNode);
170495 var neighborEdges = currentNode.getEdges();
170496 for (var i2 = 0; i2 < neighborEdges.length; i2++) {
170497 var currentNeighbor = neighborEdges[i2].getOtherEnd(currentNode);
170498 if (parents2.get(currentNode) != currentNeighbor) {
170499 if (!visited.has(currentNeighbor)) {
170500 toBeVisited.push(currentNeighbor);
170501 parents2.set(currentNeighbor, currentNode);
170502 } else {
170503 isForest = false;
170504 break;
170505 }
170506 }
170507 }
170508 }
170509 if (!isForest) {
170510 flatForest = [];
170511 } else {
170512 var temp = [].concat(_toConsumableArray(visited));
170513 flatForest.push(temp);
170514 for (var i2 = 0; i2 < temp.length; i2++) {
170515 var value = temp[i2];
170516 var index2 = unProcessedNodes.indexOf(value);
170517 if (index2 > -1) {
170518 unProcessedNodes.splice(index2, 1);
170519 }
170520 }
170521 visited = /* @__PURE__ */ new Set();
170522 parents2 = /* @__PURE__ */ new Map();
170523 }
170524 }
170525 return flatForest;
170526 };
170527 Layout2.prototype.createDummyNodesForBendpoints = function(edge) {
170528 var dummyNodes = [];
170529 var prev2 = edge.source;
170530 var graph = this.graphManager.calcLowestCommonAncestor(edge.source, edge.target);
170531 for (var i2 = 0; i2 < edge.bendpoints.length; i2++) {
170532 var dummyNode = this.newNode(null);
170533 dummyNode.setRect(new Point(0, 0), new Dimension(1, 1));
170534 graph.add(dummyNode);
170535 var dummyEdge = this.newEdge(null);
170536 this.graphManager.add(dummyEdge, prev2, dummyNode);
170537 dummyNodes.add(dummyNode);
170538 prev2 = dummyNode;
170539 }
170540 var dummyEdge = this.newEdge(null);
170541 this.graphManager.add(dummyEdge, prev2, edge.target);
170542 this.edgeToDummyNodes.set(edge, dummyNodes);
170543 if (edge.isInterGraph()) {
170544 this.graphManager.remove(edge);
170545 } else {
170546 graph.remove(edge);
170547 }
170548 return dummyNodes;
170549 };
170550 Layout2.prototype.createBendpointsFromDummyNodes = function() {
170551 var edges2 = [];
170552 edges2 = edges2.concat(this.graphManager.getAllEdges());
170553 edges2 = [].concat(_toConsumableArray(this.edgeToDummyNodes.keys())).concat(edges2);
170554 for (var k = 0; k < edges2.length; k++) {
170555 var lEdge = edges2[k];
170556 if (lEdge.bendpoints.length > 0) {
170557 var path2 = this.edgeToDummyNodes.get(lEdge);
170558 for (var i2 = 0; i2 < path2.length; i2++) {
170559 var dummyNode = path2[i2];
170560 var p = new PointD(dummyNode.getCenterX(), dummyNode.getCenterY());
170561 var ebp = lEdge.bendpoints.get(i2);
170562 ebp.x = p.x;
170563 ebp.y = p.y;
170564 dummyNode.getOwner().remove(dummyNode);
170565 }
170566 this.graphManager.add(lEdge, lEdge.source, lEdge.target);
170567 }
170568 }
170569 };
170570 Layout2.transform = function(sliderValue, defaultValue, minDiv, maxMul) {
170571 if (minDiv != void 0 && maxMul != void 0) {
170572 var value = defaultValue;
170573 if (sliderValue <= 50) {
170574 var minValue = defaultValue / minDiv;
170575 value -= (defaultValue - minValue) / 50 * (50 - sliderValue);
170576 } else {
170577 var maxValue = defaultValue * maxMul;
170578 value += (maxValue - defaultValue) / 50 * (sliderValue - 50);
170579 }
170580 return value;
170581 } else {
170582 var a, b;
170583 if (sliderValue <= 50) {
170584 a = 9 * defaultValue / 500;
170585 b = defaultValue / 10;
170586 } else {
170587 a = 9 * defaultValue / 50;
170588 b = -8 * defaultValue;
170589 }
170590 return a * sliderValue + b;
170591 }
170592 };
170593 Layout2.findCenterOfTree = function(nodes2) {
170594 var list2 = [];
170595 list2 = list2.concat(nodes2);
170596 var removedNodes = [];
170597 var remainingDegrees = /* @__PURE__ */ new Map();
170598 var foundCenter = false;
170599 var centerNode = null;
170600 if (list2.length == 1 || list2.length == 2) {
170601 foundCenter = true;
170602 centerNode = list2[0];
170603 }
170604 for (var i2 = 0; i2 < list2.length; i2++) {
170605 var node2 = list2[i2];
170606 var degree = node2.getNeighborsList().size;
170607 remainingDegrees.set(node2, node2.getNeighborsList().size);
170608 if (degree == 1) {
170609 removedNodes.push(node2);
170610 }
170611 }
170612 var tempList = [];
170613 tempList = tempList.concat(removedNodes);
170614 while (!foundCenter) {
170615 var tempList2 = [];
170616 tempList2 = tempList2.concat(tempList);
170617 tempList = [];
170618 for (var i2 = 0; i2 < list2.length; i2++) {
170619 var node2 = list2[i2];
170620 var index2 = list2.indexOf(node2);
170621 if (index2 >= 0) {
170622 list2.splice(index2, 1);
170623 }
170624 var neighbours = node2.getNeighborsList();
170625 neighbours.forEach(function(neighbour) {
170626 if (removedNodes.indexOf(neighbour) < 0) {
170627 var otherDegree = remainingDegrees.get(neighbour);
170628 var newDegree = otherDegree - 1;
170629 if (newDegree == 1) {
170630 tempList.push(neighbour);
170631 }
170632 remainingDegrees.set(neighbour, newDegree);
170633 }
170634 });
170635 }
170636 removedNodes = removedNodes.concat(tempList);
170637 if (list2.length == 1 || list2.length == 2) {
170638 foundCenter = true;
170639 centerNode = list2[0];
170640 }
170641 }
170642 return centerNode;
170643 };
170644 Layout2.prototype.setGraphManager = function(gm) {
170645 this.graphManager = gm;
170646 };
170647 module3.exports = Layout2;
170648 },
170649 /* 16 */
170650 /***/
170651 function(module3, exports3, __webpack_require__) {
170652 function RandomSeed() {
170653 }
170654 RandomSeed.seed = 1;
170655 RandomSeed.x = 0;
170656 RandomSeed.nextDouble = function() {
170657 RandomSeed.x = Math.sin(RandomSeed.seed++) * 1e4;
170658 return RandomSeed.x - Math.floor(RandomSeed.x);
170659 };
170660 module3.exports = RandomSeed;
170661 },
170662 /* 17 */
170663 /***/
170664 function(module3, exports3, __webpack_require__) {
170665 var PointD = __webpack_require__(4);
170666 function Transform2(x2, y2) {
170667 this.lworldOrgX = 0;
170668 this.lworldOrgY = 0;
170669 this.ldeviceOrgX = 0;
170670 this.ldeviceOrgY = 0;
170671 this.lworldExtX = 1;
170672 this.lworldExtY = 1;
170673 this.ldeviceExtX = 1;
170674 this.ldeviceExtY = 1;
170675 }
170676 Transform2.prototype.getWorldOrgX = function() {
170677 return this.lworldOrgX;
170678 };
170679 Transform2.prototype.setWorldOrgX = function(wox) {
170680 this.lworldOrgX = wox;
170681 };
170682 Transform2.prototype.getWorldOrgY = function() {
170683 return this.lworldOrgY;
170684 };
170685 Transform2.prototype.setWorldOrgY = function(woy) {
170686 this.lworldOrgY = woy;
170687 };
170688 Transform2.prototype.getWorldExtX = function() {
170689 return this.lworldExtX;
170690 };
170691 Transform2.prototype.setWorldExtX = function(wex) {
170692 this.lworldExtX = wex;
170693 };
170694 Transform2.prototype.getWorldExtY = function() {
170695 return this.lworldExtY;
170696 };
170697 Transform2.prototype.setWorldExtY = function(wey) {
170698 this.lworldExtY = wey;
170699 };
170700 Transform2.prototype.getDeviceOrgX = function() {
170701 return this.ldeviceOrgX;
170702 };
170703 Transform2.prototype.setDeviceOrgX = function(dox) {
170704 this.ldeviceOrgX = dox;
170705 };
170706 Transform2.prototype.getDeviceOrgY = function() {
170707 return this.ldeviceOrgY;
170708 };
170709 Transform2.prototype.setDeviceOrgY = function(doy) {
170710 this.ldeviceOrgY = doy;
170711 };
170712 Transform2.prototype.getDeviceExtX = function() {
170713 return this.ldeviceExtX;
170714 };
170715 Transform2.prototype.setDeviceExtX = function(dex) {
170716 this.ldeviceExtX = dex;
170717 };
170718 Transform2.prototype.getDeviceExtY = function() {
170719 return this.ldeviceExtY;
170720 };
170721 Transform2.prototype.setDeviceExtY = function(dey) {
170722 this.ldeviceExtY = dey;
170723 };
170724 Transform2.prototype.transformX = function(x2) {
170725 var xDevice = 0;
170726 var worldExtX = this.lworldExtX;
170727 if (worldExtX != 0) {
170728 xDevice = this.ldeviceOrgX + (x2 - this.lworldOrgX) * this.ldeviceExtX / worldExtX;
170729 }
170730 return xDevice;
170731 };
170732 Transform2.prototype.transformY = function(y2) {
170733 var yDevice = 0;
170734 var worldExtY = this.lworldExtY;
170735 if (worldExtY != 0) {
170736 yDevice = this.ldeviceOrgY + (y2 - this.lworldOrgY) * this.ldeviceExtY / worldExtY;
170737 }
170738 return yDevice;
170739 };
170740 Transform2.prototype.inverseTransformX = function(x2) {
170741 var xWorld = 0;
170742 var deviceExtX = this.ldeviceExtX;
170743 if (deviceExtX != 0) {
170744 xWorld = this.lworldOrgX + (x2 - this.ldeviceOrgX) * this.lworldExtX / deviceExtX;
170745 }
170746 return xWorld;
170747 };
170748 Transform2.prototype.inverseTransformY = function(y2) {
170749 var yWorld = 0;
170750 var deviceExtY = this.ldeviceExtY;
170751 if (deviceExtY != 0) {
170752 yWorld = this.lworldOrgY + (y2 - this.ldeviceOrgY) * this.lworldExtY / deviceExtY;
170753 }
170754 return yWorld;
170755 };
170756 Transform2.prototype.inverseTransformPoint = function(inPoint) {
170757 var outPoint = new PointD(this.inverseTransformX(inPoint.x), this.inverseTransformY(inPoint.y));
170758 return outPoint;
170759 };
170760 module3.exports = Transform2;
170761 },
170762 /* 18 */
170763 /***/
170764 function(module3, exports3, __webpack_require__) {
170765 function _toConsumableArray(arr) {
170766 if (Array.isArray(arr)) {
170767 for (var i2 = 0, arr2 = Array(arr.length); i2 < arr.length; i2++) {
170768 arr2[i2] = arr[i2];
170769 }
170770 return arr2;
170771 } else {
170772 return Array.from(arr);
170773 }
170774 }
170775 var Layout2 = __webpack_require__(15);
170776 var FDLayoutConstants = __webpack_require__(7);
170777 var LayoutConstants = __webpack_require__(0);
170778 var IGeometry = __webpack_require__(8);
170779 var IMath = __webpack_require__(9);
170780 function FDLayout() {
170781 Layout2.call(this);
170782 this.useSmartIdealEdgeLengthCalculation = FDLayoutConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;
170783 this.idealEdgeLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
170784 this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;
170785 this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;
170786 this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;
170787 this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;
170788 this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;
170789 this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;
170790 this.displacementThresholdPerNode = 3 * FDLayoutConstants.DEFAULT_EDGE_LENGTH / 100;
170791 this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;
170792 this.initialCoolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;
170793 this.totalDisplacement = 0;
170794 this.oldTotalDisplacement = 0;
170795 this.maxIterations = FDLayoutConstants.MAX_ITERATIONS;
170796 }
170797 FDLayout.prototype = Object.create(Layout2.prototype);
170798 for (var prop in Layout2) {
170799 FDLayout[prop] = Layout2[prop];
170800 }
170801 FDLayout.prototype.initParameters = function() {
170802 Layout2.prototype.initParameters.call(this, arguments);
170803 this.totalIterations = 0;
170804 this.notAnimatedIterations = 0;
170805 this.useFRGridVariant = FDLayoutConstants.DEFAULT_USE_SMART_REPULSION_RANGE_CALCULATION;
170806 this.grid = [];
170807 };
170808 FDLayout.prototype.calcIdealEdgeLengths = function() {
170809 var edge;
170810 var lcaDepth;
170811 var source;
170812 var target;
170813 var sizeOfSourceInLca;
170814 var sizeOfTargetInLca;
170815 var allEdges = this.getGraphManager().getAllEdges();
170816 for (var i2 = 0; i2 < allEdges.length; i2++) {
170817 edge = allEdges[i2];
170818 edge.idealLength = this.idealEdgeLength;
170819 if (edge.isInterGraph) {
170820 source = edge.getSource();
170821 target = edge.getTarget();
170822 sizeOfSourceInLca = edge.getSourceInLca().getEstimatedSize();
170823 sizeOfTargetInLca = edge.getTargetInLca().getEstimatedSize();
170824 if (this.useSmartIdealEdgeLengthCalculation) {
170825 edge.idealLength += sizeOfSourceInLca + sizeOfTargetInLca - 2 * LayoutConstants.SIMPLE_NODE_SIZE;
170826 }
170827 lcaDepth = edge.getLca().getInclusionTreeDepth();
170828 edge.idealLength += FDLayoutConstants.DEFAULT_EDGE_LENGTH * FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR * (source.getInclusionTreeDepth() + target.getInclusionTreeDepth() - 2 * lcaDepth);
170829 }
170830 }
170831 };
170832 FDLayout.prototype.initSpringEmbedder = function() {
170833 var s = this.getAllNodes().length;
170834 if (this.incremental) {
170835 if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {
170836 this.coolingFactor = Math.max(this.coolingFactor * FDLayoutConstants.COOLING_ADAPTATION_FACTOR, this.coolingFactor - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * this.coolingFactor * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));
170837 }
170838 this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT_INCREMENTAL;
170839 } else {
170840 if (s > FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) {
170841 this.coolingFactor = Math.max(FDLayoutConstants.COOLING_ADAPTATION_FACTOR, 1 - (s - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) / (FDLayoutConstants.ADAPTATION_UPPER_NODE_LIMIT - FDLayoutConstants.ADAPTATION_LOWER_NODE_LIMIT) * (1 - FDLayoutConstants.COOLING_ADAPTATION_FACTOR));
170842 } else {
170843 this.coolingFactor = 1;
170844 }
170845 this.initialCoolingFactor = this.coolingFactor;
170846 this.maxNodeDisplacement = FDLayoutConstants.MAX_NODE_DISPLACEMENT;
170847 }
170848 this.maxIterations = Math.max(this.getAllNodes().length * 5, this.maxIterations);
170849 this.totalDisplacementThreshold = this.displacementThresholdPerNode * this.getAllNodes().length;
170850 this.repulsionRange = this.calcRepulsionRange();
170851 };
170852 FDLayout.prototype.calcSpringForces = function() {
170853 var lEdges = this.getAllEdges();
170854 var edge;
170855 for (var i2 = 0; i2 < lEdges.length; i2++) {
170856 edge = lEdges[i2];
170857 this.calcSpringForce(edge, edge.idealLength);
170858 }
170859 };
170860 FDLayout.prototype.calcRepulsionForces = function() {
170861 var gridUpdateAllowed = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true;
170862 var forceToNodeSurroundingUpdate = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
170863 var i2, j;
170864 var nodeA, nodeB;
170865 var lNodes = this.getAllNodes();
170866 var processedNodeSet;
170867 if (this.useFRGridVariant) {
170868 if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed) {
170869 this.updateGrid();
170870 }
170871 processedNodeSet = /* @__PURE__ */ new Set();
170872 for (i2 = 0; i2 < lNodes.length; i2++) {
170873 nodeA = lNodes[i2];
170874 this.calculateRepulsionForceOfANode(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate);
170875 processedNodeSet.add(nodeA);
170876 }
170877 } else {
170878 for (i2 = 0; i2 < lNodes.length; i2++) {
170879 nodeA = lNodes[i2];
170880 for (j = i2 + 1; j < lNodes.length; j++) {
170881 nodeB = lNodes[j];
170882 if (nodeA.getOwner() != nodeB.getOwner()) {
170883 continue;
170884 }
170885 this.calcRepulsionForce(nodeA, nodeB);
170886 }
170887 }
170888 }
170889 };
170890 FDLayout.prototype.calcGravitationalForces = function() {
170891 var node2;
170892 var lNodes = this.getAllNodesToApplyGravitation();
170893 for (var i2 = 0; i2 < lNodes.length; i2++) {
170894 node2 = lNodes[i2];
170895 this.calcGravitationalForce(node2);
170896 }
170897 };
170898 FDLayout.prototype.moveNodes = function() {
170899 var lNodes = this.getAllNodes();
170900 var node2;
170901 for (var i2 = 0; i2 < lNodes.length; i2++) {
170902 node2 = lNodes[i2];
170903 node2.move();
170904 }
170905 };
170906 FDLayout.prototype.calcSpringForce = function(edge, idealLength) {
170907 var sourceNode = edge.getSource();
170908 var targetNode = edge.getTarget();
170909 var length2;
170910 var springForce;
170911 var springForceX;
170912 var springForceY;
170913 if (this.uniformLeafNodeSizes && sourceNode.getChild() == null && targetNode.getChild() == null) {
170914 edge.updateLengthSimple();
170915 } else {
170916 edge.updateLength();
170917 if (edge.isOverlapingSourceAndTarget) {
170918 return;
170919 }
170920 }
170921 length2 = edge.getLength();
170922 if (length2 == 0)
170923 return;
170924 springForce = this.springConstant * (length2 - idealLength);
170925 springForceX = springForce * (edge.lengthX / length2);
170926 springForceY = springForce * (edge.lengthY / length2);
170927 sourceNode.springForceX += springForceX;
170928 sourceNode.springForceY += springForceY;
170929 targetNode.springForceX -= springForceX;
170930 targetNode.springForceY -= springForceY;
170931 };
170932 FDLayout.prototype.calcRepulsionForce = function(nodeA, nodeB) {
170933 var rectA = nodeA.getRect();
170934 var rectB = nodeB.getRect();
170935 var overlapAmount = new Array(2);
170936 var clipPoints = new Array(4);
170937 var distanceX;
170938 var distanceY;
170939 var distanceSquared;
170940 var distance2;
170941 var repulsionForce;
170942 var repulsionForceX;
170943 var repulsionForceY;
170944 if (rectA.intersects(rectB)) {
170945 IGeometry.calcSeparationAmount(rectA, rectB, overlapAmount, FDLayoutConstants.DEFAULT_EDGE_LENGTH / 2);
170946 repulsionForceX = 2 * overlapAmount[0];
170947 repulsionForceY = 2 * overlapAmount[1];
170948 var childrenConstant = nodeA.noOfChildren * nodeB.noOfChildren / (nodeA.noOfChildren + nodeB.noOfChildren);
170949 nodeA.repulsionForceX -= childrenConstant * repulsionForceX;
170950 nodeA.repulsionForceY -= childrenConstant * repulsionForceY;
170951 nodeB.repulsionForceX += childrenConstant * repulsionForceX;
170952 nodeB.repulsionForceY += childrenConstant * repulsionForceY;
170953 } else {
170954 if (this.uniformLeafNodeSizes && nodeA.getChild() == null && nodeB.getChild() == null) {
170955 distanceX = rectB.getCenterX() - rectA.getCenterX();
170956 distanceY = rectB.getCenterY() - rectA.getCenterY();
170957 } else {
170958 IGeometry.getIntersection(rectA, rectB, clipPoints);
170959 distanceX = clipPoints[2] - clipPoints[0];
170960 distanceY = clipPoints[3] - clipPoints[1];
170961 }
170962 if (Math.abs(distanceX) < FDLayoutConstants.MIN_REPULSION_DIST) {
170963 distanceX = IMath.sign(distanceX) * FDLayoutConstants.MIN_REPULSION_DIST;
170964 }
170965 if (Math.abs(distanceY) < FDLayoutConstants.MIN_REPULSION_DIST) {
170966 distanceY = IMath.sign(distanceY) * FDLayoutConstants.MIN_REPULSION_DIST;
170967 }
170968 distanceSquared = distanceX * distanceX + distanceY * distanceY;
170969 distance2 = Math.sqrt(distanceSquared);
170970 repulsionForce = this.repulsionConstant * nodeA.noOfChildren * nodeB.noOfChildren / distanceSquared;
170971 repulsionForceX = repulsionForce * distanceX / distance2;
170972 repulsionForceY = repulsionForce * distanceY / distance2;
170973 nodeA.repulsionForceX -= repulsionForceX;
170974 nodeA.repulsionForceY -= repulsionForceY;
170975 nodeB.repulsionForceX += repulsionForceX;
170976 nodeB.repulsionForceY += repulsionForceY;
170977 }
170978 };
170979 FDLayout.prototype.calcGravitationalForce = function(node2) {
170980 var ownerGraph;
170981 var ownerCenterX;
170982 var ownerCenterY;
170983 var distanceX;
170984 var distanceY;
170985 var absDistanceX;
170986 var absDistanceY;
170987 var estimatedSize;
170988 ownerGraph = node2.getOwner();
170989 ownerCenterX = (ownerGraph.getRight() + ownerGraph.getLeft()) / 2;
170990 ownerCenterY = (ownerGraph.getTop() + ownerGraph.getBottom()) / 2;
170991 distanceX = node2.getCenterX() - ownerCenterX;
170992 distanceY = node2.getCenterY() - ownerCenterY;
170993 absDistanceX = Math.abs(distanceX) + node2.getWidth() / 2;
170994 absDistanceY = Math.abs(distanceY) + node2.getHeight() / 2;
170995 if (node2.getOwner() == this.graphManager.getRoot()) {
170996 estimatedSize = ownerGraph.getEstimatedSize() * this.gravityRangeFactor;
170997 if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {
170998 node2.gravitationForceX = -this.gravityConstant * distanceX;
170999 node2.gravitationForceY = -this.gravityConstant * distanceY;
171000 }
171001 } else {
171002 estimatedSize = ownerGraph.getEstimatedSize() * this.compoundGravityRangeFactor;
171003 if (absDistanceX > estimatedSize || absDistanceY > estimatedSize) {
171004 node2.gravitationForceX = -this.gravityConstant * distanceX * this.compoundGravityConstant;
171005 node2.gravitationForceY = -this.gravityConstant * distanceY * this.compoundGravityConstant;
171006 }
171007 }
171008 };
171009 FDLayout.prototype.isConverged = function() {
171010 var converged;
171011 var oscilating = false;
171012 if (this.totalIterations > this.maxIterations / 3) {
171013 oscilating = Math.abs(this.totalDisplacement - this.oldTotalDisplacement) < 2;
171014 }
171015 converged = this.totalDisplacement < this.totalDisplacementThreshold;
171016 this.oldTotalDisplacement = this.totalDisplacement;
171017 return converged || oscilating;
171018 };
171019 FDLayout.prototype.animate = function() {
171020 if (this.animationDuringLayout && !this.isSubLayout) {
171021 if (this.notAnimatedIterations == this.animationPeriod) {
171022 this.update();
171023 this.notAnimatedIterations = 0;
171024 } else {
171025 this.notAnimatedIterations++;
171026 }
171027 }
171028 };
171029 FDLayout.prototype.calcNoOfChildrenForAllNodes = function() {
171030 var node2;
171031 var allNodes = this.graphManager.getAllNodes();
171032 for (var i2 = 0; i2 < allNodes.length; i2++) {
171033 node2 = allNodes[i2];
171034 node2.noOfChildren = node2.getNoOfChildren();
171035 }
171036 };
171037 FDLayout.prototype.calcGrid = function(graph) {
171038 var sizeX = 0;
171039 var sizeY = 0;
171040 sizeX = parseInt(Math.ceil((graph.getRight() - graph.getLeft()) / this.repulsionRange));
171041 sizeY = parseInt(Math.ceil((graph.getBottom() - graph.getTop()) / this.repulsionRange));
171042 var grid = new Array(sizeX);
171043 for (var i2 = 0; i2 < sizeX; i2++) {
171044 grid[i2] = new Array(sizeY);
171045 }
171046 for (var i2 = 0; i2 < sizeX; i2++) {
171047 for (var j = 0; j < sizeY; j++) {
171048 grid[i2][j] = new Array();
171049 }
171050 }
171051 return grid;
171052 };
171053 FDLayout.prototype.addNodeToGrid = function(v, left2, top2) {
171054 var startX = 0;
171055 var finishX = 0;
171056 var startY = 0;
171057 var finishY = 0;
171058 startX = parseInt(Math.floor((v.getRect().x - left2) / this.repulsionRange));
171059 finishX = parseInt(Math.floor((v.getRect().width + v.getRect().x - left2) / this.repulsionRange));
171060 startY = parseInt(Math.floor((v.getRect().y - top2) / this.repulsionRange));
171061 finishY = parseInt(Math.floor((v.getRect().height + v.getRect().y - top2) / this.repulsionRange));
171062 for (var i2 = startX; i2 <= finishX; i2++) {
171063 for (var j = startY; j <= finishY; j++) {
171064 this.grid[i2][j].push(v);
171065 v.setGridCoordinates(startX, finishX, startY, finishY);
171066 }
171067 }
171068 };
171069 FDLayout.prototype.updateGrid = function() {
171070 var i2;
171071 var nodeA;
171072 var lNodes = this.getAllNodes();
171073 this.grid = this.calcGrid(this.graphManager.getRoot());
171074 for (i2 = 0; i2 < lNodes.length; i2++) {
171075 nodeA = lNodes[i2];
171076 this.addNodeToGrid(nodeA, this.graphManager.getRoot().getLeft(), this.graphManager.getRoot().getTop());
171077 }
171078 };
171079 FDLayout.prototype.calculateRepulsionForceOfANode = function(nodeA, processedNodeSet, gridUpdateAllowed, forceToNodeSurroundingUpdate) {
171080 if (this.totalIterations % FDLayoutConstants.GRID_CALCULATION_CHECK_PERIOD == 1 && gridUpdateAllowed || forceToNodeSurroundingUpdate) {
171081 var surrounding = /* @__PURE__ */ new Set();
171082 nodeA.surrounding = new Array();
171083 var nodeB;
171084 var grid = this.grid;
171085 for (var i2 = nodeA.startX - 1; i2 < nodeA.finishX + 2; i2++) {
171086 for (var j = nodeA.startY - 1; j < nodeA.finishY + 2; j++) {
171087 if (!(i2 < 0 || j < 0 || i2 >= grid.length || j >= grid[0].length)) {
171088 for (var k = 0; k < grid[i2][j].length; k++) {
171089 nodeB = grid[i2][j][k];
171090 if (nodeA.getOwner() != nodeB.getOwner() || nodeA == nodeB) {
171091 continue;
171092 }
171093 if (!processedNodeSet.has(nodeB) && !surrounding.has(nodeB)) {
171094 var distanceX = Math.abs(nodeA.getCenterX() - nodeB.getCenterX()) - (nodeA.getWidth() / 2 + nodeB.getWidth() / 2);
171095 var distanceY = Math.abs(nodeA.getCenterY() - nodeB.getCenterY()) - (nodeA.getHeight() / 2 + nodeB.getHeight() / 2);
171096 if (distanceX <= this.repulsionRange && distanceY <= this.repulsionRange) {
171097 surrounding.add(nodeB);
171098 }
171099 }
171100 }
171101 }
171102 }
171103 }
171104 nodeA.surrounding = [].concat(_toConsumableArray(surrounding));
171105 }
171106 for (i2 = 0; i2 < nodeA.surrounding.length; i2++) {
171107 this.calcRepulsionForce(nodeA, nodeA.surrounding[i2]);
171108 }
171109 };
171110 FDLayout.prototype.calcRepulsionRange = function() {
171111 return 0;
171112 };
171113 module3.exports = FDLayout;
171114 },
171115 /* 19 */
171116 /***/
171117 function(module3, exports3, __webpack_require__) {
171118 var LEdge = __webpack_require__(1);
171119 var FDLayoutConstants = __webpack_require__(7);
171120 function FDLayoutEdge(source, target, vEdge) {
171121 LEdge.call(this, source, target, vEdge);
171122 this.idealLength = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
171123 }
171124 FDLayoutEdge.prototype = Object.create(LEdge.prototype);
171125 for (var prop in LEdge) {
171126 FDLayoutEdge[prop] = LEdge[prop];
171127 }
171128 module3.exports = FDLayoutEdge;
171129 },
171130 /* 20 */
171131 /***/
171132 function(module3, exports3, __webpack_require__) {
171133 var LNode = __webpack_require__(3);
171134 function FDLayoutNode(gm, loc, size2, vNode) {
171135 LNode.call(this, gm, loc, size2, vNode);
171136 this.springForceX = 0;
171137 this.springForceY = 0;
171138 this.repulsionForceX = 0;
171139 this.repulsionForceY = 0;
171140 this.gravitationForceX = 0;
171141 this.gravitationForceY = 0;
171142 this.displacementX = 0;
171143 this.displacementY = 0;
171144 this.startX = 0;
171145 this.finishX = 0;
171146 this.startY = 0;
171147 this.finishY = 0;
171148 this.surrounding = [];
171149 }
171150 FDLayoutNode.prototype = Object.create(LNode.prototype);
171151 for (var prop in LNode) {
171152 FDLayoutNode[prop] = LNode[prop];
171153 }
171154 FDLayoutNode.prototype.setGridCoordinates = function(_startX, _finishX, _startY, _finishY) {
171155 this.startX = _startX;
171156 this.finishX = _finishX;
171157 this.startY = _startY;
171158 this.finishY = _finishY;
171159 };
171160 module3.exports = FDLayoutNode;
171161 },
171162 /* 21 */
171163 /***/
171164 function(module3, exports3, __webpack_require__) {
171165 function DimensionD2(width2, height2) {
171166 this.width = 0;
171167 this.height = 0;
171168 if (width2 !== null && height2 !== null) {
171169 this.height = height2;
171170 this.width = width2;
171171 }
171172 }
171173 DimensionD2.prototype.getWidth = function() {
171174 return this.width;
171175 };
171176 DimensionD2.prototype.setWidth = function(width2) {
171177 this.width = width2;
171178 };
171179 DimensionD2.prototype.getHeight = function() {
171180 return this.height;
171181 };
171182 DimensionD2.prototype.setHeight = function(height2) {
171183 this.height = height2;
171184 };
171185 module3.exports = DimensionD2;
171186 },
171187 /* 22 */
171188 /***/
171189 function(module3, exports3, __webpack_require__) {
171190 var UniqueIDGeneretor = __webpack_require__(14);
171191 function HashMap() {
171192 this.map = {};
171193 this.keys = [];
171194 }
171195 HashMap.prototype.put = function(key, value) {
171196 var theId = UniqueIDGeneretor.createID(key);
171197 if (!this.contains(theId)) {
171198 this.map[theId] = value;
171199 this.keys.push(key);
171200 }
171201 };
171202 HashMap.prototype.contains = function(key) {
171203 UniqueIDGeneretor.createID(key);
171204 return this.map[key] != null;
171205 };
171206 HashMap.prototype.get = function(key) {
171207 var theId = UniqueIDGeneretor.createID(key);
171208 return this.map[theId];
171209 };
171210 HashMap.prototype.keySet = function() {
171211 return this.keys;
171212 };
171213 module3.exports = HashMap;
171214 },
171215 /* 23 */
171216 /***/
171217 function(module3, exports3, __webpack_require__) {
171218 var UniqueIDGeneretor = __webpack_require__(14);
171219 function HashSet() {
171220 this.set = {};
171221 }
171222 HashSet.prototype.add = function(obj) {
171223 var theId = UniqueIDGeneretor.createID(obj);
171224 if (!this.contains(theId))
171225 this.set[theId] = obj;
171226 };
171227 HashSet.prototype.remove = function(obj) {
171228 delete this.set[UniqueIDGeneretor.createID(obj)];
171229 };
171230 HashSet.prototype.clear = function() {
171231 this.set = {};
171232 };
171233 HashSet.prototype.contains = function(obj) {
171234 return this.set[UniqueIDGeneretor.createID(obj)] == obj;
171235 };
171236 HashSet.prototype.isEmpty = function() {
171237 return this.size() === 0;
171238 };
171239 HashSet.prototype.size = function() {
171240 return Object.keys(this.set).length;
171241 };
171242 HashSet.prototype.addAllTo = function(list2) {
171243 var keys2 = Object.keys(this.set);
171244 var length2 = keys2.length;
171245 for (var i2 = 0; i2 < length2; i2++) {
171246 list2.push(this.set[keys2[i2]]);
171247 }
171248 };
171249 HashSet.prototype.size = function() {
171250 return Object.keys(this.set).length;
171251 };
171252 HashSet.prototype.addAll = function(list2) {
171253 var s = list2.length;
171254 for (var i2 = 0; i2 < s; i2++) {
171255 var v = list2[i2];
171256 this.add(v);
171257 }
171258 };
171259 module3.exports = HashSet;
171260 },
171261 /* 24 */
171262 /***/
171263 function(module3, exports3, __webpack_require__) {
171264 var _createClass = function() {
171265 function defineProperties(target, props) {
171266 for (var i2 = 0; i2 < props.length; i2++) {
171267 var descriptor = props[i2];
171268 descriptor.enumerable = descriptor.enumerable || false;
171269 descriptor.configurable = true;
171270 if ("value" in descriptor)
171271 descriptor.writable = true;
171272 Object.defineProperty(target, descriptor.key, descriptor);
171273 }
171274 }
171275 return function(Constructor, protoProps, staticProps) {
171276 if (protoProps)
171277 defineProperties(Constructor.prototype, protoProps);
171278 if (staticProps)
171279 defineProperties(Constructor, staticProps);
171280 return Constructor;
171281 };
171282 }();
171283 function _classCallCheck(instance2, Constructor) {
171284 if (!(instance2 instanceof Constructor)) {
171285 throw new TypeError("Cannot call a class as a function");
171286 }
171287 }
171288 var LinkedList = __webpack_require__(11);
171289 var Quicksort = function() {
171290 function Quicksort2(A, compareFunction) {
171291 _classCallCheck(this, Quicksort2);
171292 if (compareFunction !== null || compareFunction !== void 0)
171293 this.compareFunction = this._defaultCompareFunction;
171294 var length2 = void 0;
171295 if (A instanceof LinkedList)
171296 length2 = A.size();
171297 else
171298 length2 = A.length;
171299 this._quicksort(A, 0, length2 - 1);
171300 }
171301 _createClass(Quicksort2, [{
171302 key: "_quicksort",
171303 value: function _quicksort(A, p, r) {
171304 if (p < r) {
171305 var q = this._partition(A, p, r);
171306 this._quicksort(A, p, q);
171307 this._quicksort(A, q + 1, r);
171308 }
171309 }
171310 }, {
171311 key: "_partition",
171312 value: function _partition(A, p, r) {
171313 var x2 = this._get(A, p);
171314 var i2 = p;
171315 var j = r;
171316 while (true) {
171317 while (this.compareFunction(x2, this._get(A, j))) {
171318 j--;
171319 }
171320 while (this.compareFunction(this._get(A, i2), x2)) {
171321 i2++;
171322 }
171323 if (i2 < j) {
171324 this._swap(A, i2, j);
171325 i2++;
171326 j--;
171327 } else
171328 return j;
171329 }
171330 }
171331 }, {
171332 key: "_get",
171333 value: function _get(object2, index2) {
171334 if (object2 instanceof LinkedList)
171335 return object2.get_object_at(index2);
171336 else
171337 return object2[index2];
171338 }
171339 }, {
171340 key: "_set",
171341 value: function _set(object2, index2, value) {
171342 if (object2 instanceof LinkedList)
171343 object2.set_object_at(index2, value);
171344 else
171345 object2[index2] = value;
171346 }
171347 }, {
171348 key: "_swap",
171349 value: function _swap(A, i2, j) {
171350 var temp = this._get(A, i2);
171351 this._set(A, i2, this._get(A, j));
171352 this._set(A, j, temp);
171353 }
171354 }, {
171355 key: "_defaultCompareFunction",
171356 value: function _defaultCompareFunction(a, b) {
171357 return b > a;
171358 }
171359 }]);
171360 return Quicksort2;
171361 }();
171362 module3.exports = Quicksort;
171363 },
171364 /* 25 */
171365 /***/
171366 function(module3, exports3, __webpack_require__) {
171367 var _createClass = function() {
171368 function defineProperties(target, props) {
171369 for (var i2 = 0; i2 < props.length; i2++) {
171370 var descriptor = props[i2];
171371 descriptor.enumerable = descriptor.enumerable || false;
171372 descriptor.configurable = true;
171373 if ("value" in descriptor)
171374 descriptor.writable = true;
171375 Object.defineProperty(target, descriptor.key, descriptor);
171376 }
171377 }
171378 return function(Constructor, protoProps, staticProps) {
171379 if (protoProps)
171380 defineProperties(Constructor.prototype, protoProps);
171381 if (staticProps)
171382 defineProperties(Constructor, staticProps);
171383 return Constructor;
171384 };
171385 }();
171386 function _classCallCheck(instance2, Constructor) {
171387 if (!(instance2 instanceof Constructor)) {
171388 throw new TypeError("Cannot call a class as a function");
171389 }
171390 }
171391 var NeedlemanWunsch = function() {
171392 function NeedlemanWunsch2(sequence1, sequence2) {
171393 var match_score = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1;
171394 var mismatch_penalty = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : -1;
171395 var gap_penalty = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : -1;
171396 _classCallCheck(this, NeedlemanWunsch2);
171397 this.sequence1 = sequence1;
171398 this.sequence2 = sequence2;
171399 this.match_score = match_score;
171400 this.mismatch_penalty = mismatch_penalty;
171401 this.gap_penalty = gap_penalty;
171402 this.iMax = sequence1.length + 1;
171403 this.jMax = sequence2.length + 1;
171404 this.grid = new Array(this.iMax);
171405 for (var i2 = 0; i2 < this.iMax; i2++) {
171406 this.grid[i2] = new Array(this.jMax);
171407 for (var j = 0; j < this.jMax; j++) {
171408 this.grid[i2][j] = 0;
171409 }
171410 }
171411 this.tracebackGrid = new Array(this.iMax);
171412 for (var _i = 0; _i < this.iMax; _i++) {
171413 this.tracebackGrid[_i] = new Array(this.jMax);
171414 for (var _j = 0; _j < this.jMax; _j++) {
171415 this.tracebackGrid[_i][_j] = [null, null, null];
171416 }
171417 }
171418 this.alignments = [];
171419 this.score = -1;
171420 this.computeGrids();
171421 }
171422 _createClass(NeedlemanWunsch2, [{
171423 key: "getScore",
171424 value: function getScore() {
171425 return this.score;
171426 }
171427 }, {
171428 key: "getAlignments",
171429 value: function getAlignments() {
171430 return this.alignments;
171431 }
171432 // Main dynamic programming procedure
171433 }, {
171434 key: "computeGrids",
171435 value: function computeGrids() {
171436 for (var j = 1; j < this.jMax; j++) {
171437 this.grid[0][j] = this.grid[0][j - 1] + this.gap_penalty;
171438 this.tracebackGrid[0][j] = [false, false, true];
171439 }
171440 for (var i2 = 1; i2 < this.iMax; i2++) {
171441 this.grid[i2][0] = this.grid[i2 - 1][0] + this.gap_penalty;
171442 this.tracebackGrid[i2][0] = [false, true, false];
171443 }
171444 for (var _i2 = 1; _i2 < this.iMax; _i2++) {
171445 for (var _j2 = 1; _j2 < this.jMax; _j2++) {
171446 var diag = void 0;
171447 if (this.sequence1[_i2 - 1] === this.sequence2[_j2 - 1])
171448 diag = this.grid[_i2 - 1][_j2 - 1] + this.match_score;
171449 else
171450 diag = this.grid[_i2 - 1][_j2 - 1] + this.mismatch_penalty;
171451 var up = this.grid[_i2 - 1][_j2] + this.gap_penalty;
171452 var left2 = this.grid[_i2][_j2 - 1] + this.gap_penalty;
171453 var maxOf = [diag, up, left2];
171454 var indices = this.arrayAllMaxIndexes(maxOf);
171455 this.grid[_i2][_j2] = maxOf[indices[0]];
171456 this.tracebackGrid[_i2][_j2] = [indices.includes(0), indices.includes(1), indices.includes(2)];
171457 }
171458 }
171459 this.score = this.grid[this.iMax - 1][this.jMax - 1];
171460 }
171461 // Gets all possible valid sequence combinations
171462 }, {
171463 key: "alignmentTraceback",
171464 value: function alignmentTraceback() {
171465 var inProcessAlignments = [];
171466 inProcessAlignments.push({
171467 pos: [this.sequence1.length, this.sequence2.length],
171468 seq1: "",
171469 seq2: ""
171470 });
171471 while (inProcessAlignments[0]) {
171472 var current = inProcessAlignments[0];
171473 var directions = this.tracebackGrid[current.pos[0]][current.pos[1]];
171474 if (directions[0]) {
171475 inProcessAlignments.push({
171476 pos: [current.pos[0] - 1, current.pos[1] - 1],
171477 seq1: this.sequence1[current.pos[0] - 1] + current.seq1,
171478 seq2: this.sequence2[current.pos[1] - 1] + current.seq2
171479 });
171480 }
171481 if (directions[1]) {
171482 inProcessAlignments.push({
171483 pos: [current.pos[0] - 1, current.pos[1]],
171484 seq1: this.sequence1[current.pos[0] - 1] + current.seq1,
171485 seq2: "-" + current.seq2
171486 });
171487 }
171488 if (directions[2]) {
171489 inProcessAlignments.push({
171490 pos: [current.pos[0], current.pos[1] - 1],
171491 seq1: "-" + current.seq1,
171492 seq2: this.sequence2[current.pos[1] - 1] + current.seq2
171493 });
171494 }
171495 if (current.pos[0] === 0 && current.pos[1] === 0)
171496 this.alignments.push({
171497 sequence1: current.seq1,
171498 sequence2: current.seq2
171499 });
171500 inProcessAlignments.shift();
171501 }
171502 return this.alignments;
171503 }
171504 // Helper Functions
171505 }, {
171506 key: "getAllIndexes",
171507 value: function getAllIndexes(arr, val) {
171508 var indexes = [], i2 = -1;
171509 while ((i2 = arr.indexOf(val, i2 + 1)) !== -1) {
171510 indexes.push(i2);
171511 }
171512 return indexes;
171513 }
171514 }, {
171515 key: "arrayAllMaxIndexes",
171516 value: function arrayAllMaxIndexes(array2) {
171517 return this.getAllIndexes(array2, Math.max.apply(null, array2));
171518 }
171519 }]);
171520 return NeedlemanWunsch2;
171521 }();
171522 module3.exports = NeedlemanWunsch;
171523 },
171524 /* 26 */
171525 /***/
171526 function(module3, exports3, __webpack_require__) {
171527 var layoutBase2 = function layoutBase3() {
171528 return;
171529 };
171530 layoutBase2.FDLayout = __webpack_require__(18);
171531 layoutBase2.FDLayoutConstants = __webpack_require__(7);
171532 layoutBase2.FDLayoutEdge = __webpack_require__(19);
171533 layoutBase2.FDLayoutNode = __webpack_require__(20);
171534 layoutBase2.DimensionD = __webpack_require__(21);
171535 layoutBase2.HashMap = __webpack_require__(22);
171536 layoutBase2.HashSet = __webpack_require__(23);
171537 layoutBase2.IGeometry = __webpack_require__(8);
171538 layoutBase2.IMath = __webpack_require__(9);
171539 layoutBase2.Integer = __webpack_require__(10);
171540 layoutBase2.Point = __webpack_require__(12);
171541 layoutBase2.PointD = __webpack_require__(4);
171542 layoutBase2.RandomSeed = __webpack_require__(16);
171543 layoutBase2.RectangleD = __webpack_require__(13);
171544 layoutBase2.Transform = __webpack_require__(17);
171545 layoutBase2.UniqueIDGeneretor = __webpack_require__(14);
171546 layoutBase2.Quicksort = __webpack_require__(24);
171547 layoutBase2.LinkedList = __webpack_require__(11);
171548 layoutBase2.LGraphObject = __webpack_require__(2);
171549 layoutBase2.LGraph = __webpack_require__(5);
171550 layoutBase2.LEdge = __webpack_require__(1);
171551 layoutBase2.LGraphManager = __webpack_require__(6);
171552 layoutBase2.LNode = __webpack_require__(3);
171553 layoutBase2.Layout = __webpack_require__(15);
171554 layoutBase2.LayoutConstants = __webpack_require__(0);
171555 layoutBase2.NeedlemanWunsch = __webpack_require__(25);
171556 module3.exports = layoutBase2;
171557 },
171558 /* 27 */
171559 /***/
171560 function(module3, exports3, __webpack_require__) {
171561 function Emitter() {
171562 this.listeners = [];
171563 }
171564 var p = Emitter.prototype;
171565 p.addListener = function(event, callback) {
171566 this.listeners.push({
171567 event,
171568 callback
171569 });
171570 };
171571 p.removeListener = function(event, callback) {
171572 for (var i2 = this.listeners.length; i2 >= 0; i2--) {
171573 var l = this.listeners[i2];
171574 if (l.event === event && l.callback === callback) {
171575 this.listeners.splice(i2, 1);
171576 }
171577 }
171578 };
171579 p.emit = function(event, data) {
171580 for (var i2 = 0; i2 < this.listeners.length; i2++) {
171581 var l = this.listeners[i2];
171582 if (event === l.event) {
171583 l.callback(data);
171584 }
171585 }
171586 };
171587 module3.exports = Emitter;
171588 }
171589 /******/
171590 ])
171591 );
171592 });
171593 })(layoutBase);
171594 return layoutBaseExports;
171595 }
171596 var hasRequiredCoseBase;
171597 function requireCoseBase() {
171598 if (hasRequiredCoseBase)
171599 return coseBaseExports;
171600 hasRequiredCoseBase = 1;
171601 (function(module2, exports2) {
171602 (function webpackUniversalModuleDefinition(root2, factory) {
171603 module2.exports = factory(requireLayoutBase());
171604 })(commonjsGlobal, function(__WEBPACK_EXTERNAL_MODULE_0__) {
171605 return (
171606 /******/
171607 function(modules) {
171608 var installedModules = {};
171609 function __webpack_require__(moduleId) {
171610 if (installedModules[moduleId]) {
171611 return installedModules[moduleId].exports;
171612 }
171613 var module3 = installedModules[moduleId] = {
171614 /******/
171615 i: moduleId,
171616 /******/
171617 l: false,
171618 /******/
171619 exports: {}
171620 /******/
171621 };
171622 modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__);
171623 module3.l = true;
171624 return module3.exports;
171625 }
171626 __webpack_require__.m = modules;
171627 __webpack_require__.c = installedModules;
171628 __webpack_require__.i = function(value) {
171629 return value;
171630 };
171631 __webpack_require__.d = function(exports3, name2, getter) {
171632 if (!__webpack_require__.o(exports3, name2)) {
171633 Object.defineProperty(exports3, name2, {
171634 /******/
171635 configurable: false,
171636 /******/
171637 enumerable: true,
171638 /******/
171639 get: getter
171640 /******/
171641 });
171642 }
171643 };
171644 __webpack_require__.n = function(module3) {
171645 var getter = module3 && module3.__esModule ? (
171646 /******/
171647 function getDefault() {
171648 return module3["default"];
171649 }
171650 ) : (
171651 /******/
171652 function getModuleExports() {
171653 return module3;
171654 }
171655 );
171656 __webpack_require__.d(getter, "a", getter);
171657 return getter;
171658 };
171659 __webpack_require__.o = function(object2, property2) {
171660 return Object.prototype.hasOwnProperty.call(object2, property2);
171661 };
171662 __webpack_require__.p = "";
171663 return __webpack_require__(__webpack_require__.s = 7);
171664 }([
171665 /* 0 */
171666 /***/
171667 function(module3, exports3) {
171668 module3.exports = __WEBPACK_EXTERNAL_MODULE_0__;
171669 },
171670 /* 1 */
171671 /***/
171672 function(module3, exports3, __webpack_require__) {
171673 var FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;
171674 function CoSEConstants() {
171675 }
171676 for (var prop in FDLayoutConstants) {
171677 CoSEConstants[prop] = FDLayoutConstants[prop];
171678 }
171679 CoSEConstants.DEFAULT_USE_MULTI_LEVEL_SCALING = false;
171680 CoSEConstants.DEFAULT_RADIAL_SEPARATION = FDLayoutConstants.DEFAULT_EDGE_LENGTH;
171681 CoSEConstants.DEFAULT_COMPONENT_SEPERATION = 60;
171682 CoSEConstants.TILE = true;
171683 CoSEConstants.TILING_PADDING_VERTICAL = 10;
171684 CoSEConstants.TILING_PADDING_HORIZONTAL = 10;
171685 CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL = false;
171686 module3.exports = CoSEConstants;
171687 },
171688 /* 2 */
171689 /***/
171690 function(module3, exports3, __webpack_require__) {
171691 var FDLayoutEdge = __webpack_require__(0).FDLayoutEdge;
171692 function CoSEEdge(source, target, vEdge) {
171693 FDLayoutEdge.call(this, source, target, vEdge);
171694 }
171695 CoSEEdge.prototype = Object.create(FDLayoutEdge.prototype);
171696 for (var prop in FDLayoutEdge) {
171697 CoSEEdge[prop] = FDLayoutEdge[prop];
171698 }
171699 module3.exports = CoSEEdge;
171700 },
171701 /* 3 */
171702 /***/
171703 function(module3, exports3, __webpack_require__) {
171704 var LGraph = __webpack_require__(0).LGraph;
171705 function CoSEGraph(parent, graphMgr, vGraph) {
171706 LGraph.call(this, parent, graphMgr, vGraph);
171707 }
171708 CoSEGraph.prototype = Object.create(LGraph.prototype);
171709 for (var prop in LGraph) {
171710 CoSEGraph[prop] = LGraph[prop];
171711 }
171712 module3.exports = CoSEGraph;
171713 },
171714 /* 4 */
171715 /***/
171716 function(module3, exports3, __webpack_require__) {
171717 var LGraphManager = __webpack_require__(0).LGraphManager;
171718 function CoSEGraphManager(layout2) {
171719 LGraphManager.call(this, layout2);
171720 }
171721 CoSEGraphManager.prototype = Object.create(LGraphManager.prototype);
171722 for (var prop in LGraphManager) {
171723 CoSEGraphManager[prop] = LGraphManager[prop];
171724 }
171725 module3.exports = CoSEGraphManager;
171726 },
171727 /* 5 */
171728 /***/
171729 function(module3, exports3, __webpack_require__) {
171730 var FDLayoutNode = __webpack_require__(0).FDLayoutNode;
171731 var IMath = __webpack_require__(0).IMath;
171732 function CoSENode(gm, loc, size2, vNode) {
171733 FDLayoutNode.call(this, gm, loc, size2, vNode);
171734 }
171735 CoSENode.prototype = Object.create(FDLayoutNode.prototype);
171736 for (var prop in FDLayoutNode) {
171737 CoSENode[prop] = FDLayoutNode[prop];
171738 }
171739 CoSENode.prototype.move = function() {
171740 var layout2 = this.graphManager.getLayout();
171741 this.displacementX = layout2.coolingFactor * (this.springForceX + this.repulsionForceX + this.gravitationForceX) / this.noOfChildren;
171742 this.displacementY = layout2.coolingFactor * (this.springForceY + this.repulsionForceY + this.gravitationForceY) / this.noOfChildren;
171743 if (Math.abs(this.displacementX) > layout2.coolingFactor * layout2.maxNodeDisplacement) {
171744 this.displacementX = layout2.coolingFactor * layout2.maxNodeDisplacement * IMath.sign(this.displacementX);
171745 }
171746 if (Math.abs(this.displacementY) > layout2.coolingFactor * layout2.maxNodeDisplacement) {
171747 this.displacementY = layout2.coolingFactor * layout2.maxNodeDisplacement * IMath.sign(this.displacementY);
171748 }
171749 if (this.child == null) {
171750 this.moveBy(this.displacementX, this.displacementY);
171751 } else if (this.child.getNodes().length == 0) {
171752 this.moveBy(this.displacementX, this.displacementY);
171753 } else {
171754 this.propogateDisplacementToChildren(this.displacementX, this.displacementY);
171755 }
171756 layout2.totalDisplacement += Math.abs(this.displacementX) + Math.abs(this.displacementY);
171757 this.springForceX = 0;
171758 this.springForceY = 0;
171759 this.repulsionForceX = 0;
171760 this.repulsionForceY = 0;
171761 this.gravitationForceX = 0;
171762 this.gravitationForceY = 0;
171763 this.displacementX = 0;
171764 this.displacementY = 0;
171765 };
171766 CoSENode.prototype.propogateDisplacementToChildren = function(dX, dY) {
171767 var nodes2 = this.getChild().getNodes();
171768 var node2;
171769 for (var i2 = 0; i2 < nodes2.length; i2++) {
171770 node2 = nodes2[i2];
171771 if (node2.getChild() == null) {
171772 node2.moveBy(dX, dY);
171773 node2.displacementX += dX;
171774 node2.displacementY += dY;
171775 } else {
171776 node2.propogateDisplacementToChildren(dX, dY);
171777 }
171778 }
171779 };
171780 CoSENode.prototype.setPred1 = function(pred12) {
171781 this.pred1 = pred12;
171782 };
171783 CoSENode.prototype.getPred1 = function() {
171784 return pred1;
171785 };
171786 CoSENode.prototype.getPred2 = function() {
171787 return pred2;
171788 };
171789 CoSENode.prototype.setNext = function(next2) {
171790 this.next = next2;
171791 };
171792 CoSENode.prototype.getNext = function() {
171793 return next;
171794 };
171795 CoSENode.prototype.setProcessed = function(processed2) {
171796 this.processed = processed2;
171797 };
171798 CoSENode.prototype.isProcessed = function() {
171799 return processed;
171800 };
171801 module3.exports = CoSENode;
171802 },
171803 /* 6 */
171804 /***/
171805 function(module3, exports3, __webpack_require__) {
171806 var FDLayout = __webpack_require__(0).FDLayout;
171807 var CoSEGraphManager = __webpack_require__(4);
171808 var CoSEGraph = __webpack_require__(3);
171809 var CoSENode = __webpack_require__(5);
171810 var CoSEEdge = __webpack_require__(2);
171811 var CoSEConstants = __webpack_require__(1);
171812 var FDLayoutConstants = __webpack_require__(0).FDLayoutConstants;
171813 var LayoutConstants = __webpack_require__(0).LayoutConstants;
171814 var Point2 = __webpack_require__(0).Point;
171815 var PointD = __webpack_require__(0).PointD;
171816 var Layout2 = __webpack_require__(0).Layout;
171817 var Integer = __webpack_require__(0).Integer;
171818 var IGeometry = __webpack_require__(0).IGeometry;
171819 var LGraph = __webpack_require__(0).LGraph;
171820 var Transform2 = __webpack_require__(0).Transform;
171821 function CoSELayout() {
171822 FDLayout.call(this);
171823 this.toBeTiled = {};
171824 }
171825 CoSELayout.prototype = Object.create(FDLayout.prototype);
171826 for (var prop in FDLayout) {
171827 CoSELayout[prop] = FDLayout[prop];
171828 }
171829 CoSELayout.prototype.newGraphManager = function() {
171830 var gm = new CoSEGraphManager(this);
171831 this.graphManager = gm;
171832 return gm;
171833 };
171834 CoSELayout.prototype.newGraph = function(vGraph) {
171835 return new CoSEGraph(null, this.graphManager, vGraph);
171836 };
171837 CoSELayout.prototype.newNode = function(vNode) {
171838 return new CoSENode(this.graphManager, vNode);
171839 };
171840 CoSELayout.prototype.newEdge = function(vEdge) {
171841 return new CoSEEdge(null, null, vEdge);
171842 };
171843 CoSELayout.prototype.initParameters = function() {
171844 FDLayout.prototype.initParameters.call(this, arguments);
171845 if (!this.isSubLayout) {
171846 if (CoSEConstants.DEFAULT_EDGE_LENGTH < 10) {
171847 this.idealEdgeLength = 10;
171848 } else {
171849 this.idealEdgeLength = CoSEConstants.DEFAULT_EDGE_LENGTH;
171850 }
171851 this.useSmartIdealEdgeLengthCalculation = CoSEConstants.DEFAULT_USE_SMART_IDEAL_EDGE_LENGTH_CALCULATION;
171852 this.springConstant = FDLayoutConstants.DEFAULT_SPRING_STRENGTH;
171853 this.repulsionConstant = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH;
171854 this.gravityConstant = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH;
171855 this.compoundGravityConstant = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH;
171856 this.gravityRangeFactor = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR;
171857 this.compoundGravityRangeFactor = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR;
171858 this.prunedNodesAll = [];
171859 this.growTreeIterations = 0;
171860 this.afterGrowthIterations = 0;
171861 this.isTreeGrowing = false;
171862 this.isGrowthFinished = false;
171863 this.coolingCycle = 0;
171864 this.maxCoolingCycle = this.maxIterations / FDLayoutConstants.CONVERGENCE_CHECK_PERIOD;
171865 this.finalTemperature = FDLayoutConstants.CONVERGENCE_CHECK_PERIOD / this.maxIterations;
171866 this.coolingAdjuster = 1;
171867 }
171868 };
171869 CoSELayout.prototype.layout = function() {
171870 var createBendsAsNeeded = LayoutConstants.DEFAULT_CREATE_BENDS_AS_NEEDED;
171871 if (createBendsAsNeeded) {
171872 this.createBendpoints();
171873 this.graphManager.resetAllEdges();
171874 }
171875 this.level = 0;
171876 return this.classicLayout();
171877 };
171878 CoSELayout.prototype.classicLayout = function() {
171879 this.nodesWithGravity = this.calculateNodesToApplyGravitationTo();
171880 this.graphManager.setAllNodesToApplyGravitation(this.nodesWithGravity);
171881 this.calcNoOfChildrenForAllNodes();
171882 this.graphManager.calcLowestCommonAncestors();
171883 this.graphManager.calcInclusionTreeDepths();
171884 this.graphManager.getRoot().calcEstimatedSize();
171885 this.calcIdealEdgeLengths();
171886 if (!this.incremental) {
171887 var forest = this.getFlatForest();
171888 if (forest.length > 0) {
171889 this.positionNodesRadially(forest);
171890 } else {
171891 this.reduceTrees();
171892 this.graphManager.resetAllNodesToApplyGravitation();
171893 var allNodes = new Set(this.getAllNodes());
171894 var intersection2 = this.nodesWithGravity.filter(function(x2) {
171895 return allNodes.has(x2);
171896 });
171897 this.graphManager.setAllNodesToApplyGravitation(intersection2);
171898 this.positionNodesRandomly();
171899 }
171900 } else {
171901 if (CoSEConstants.TREE_REDUCTION_ON_INCREMENTAL) {
171902 this.reduceTrees();
171903 this.graphManager.resetAllNodesToApplyGravitation();
171904 var allNodes = new Set(this.getAllNodes());
171905 var intersection2 = this.nodesWithGravity.filter(function(x2) {
171906 return allNodes.has(x2);
171907 });
171908 this.graphManager.setAllNodesToApplyGravitation(intersection2);
171909 }
171910 }
171911 this.initSpringEmbedder();
171912 this.runSpringEmbedder();
171913 return true;
171914 };
171915 CoSELayout.prototype.tick = function() {
171916 this.totalIterations++;
171917 if (this.totalIterations === this.maxIterations && !this.isTreeGrowing && !this.isGrowthFinished) {
171918 if (this.prunedNodesAll.length > 0) {
171919 this.isTreeGrowing = true;
171920 } else {
171921 return true;
171922 }
171923 }
171924 if (this.totalIterations % FDLayoutConstants.CONVERGENCE_CHECK_PERIOD == 0 && !this.isTreeGrowing && !this.isGrowthFinished) {
171925 if (this.isConverged()) {
171926 if (this.prunedNodesAll.length > 0) {
171927 this.isTreeGrowing = true;
171928 } else {
171929 return true;
171930 }
171931 }
171932 this.coolingCycle++;
171933 if (this.layoutQuality == 0) {
171934 this.coolingAdjuster = this.coolingCycle;
171935 } else if (this.layoutQuality == 1) {
171936 this.coolingAdjuster = this.coolingCycle / 3;
171937 }
171938 this.coolingFactor = Math.max(this.initialCoolingFactor - Math.pow(this.coolingCycle, Math.log(100 * (this.initialCoolingFactor - this.finalTemperature)) / Math.log(this.maxCoolingCycle)) / 100 * this.coolingAdjuster, this.finalTemperature);
171939 this.animationPeriod = Math.ceil(this.initialAnimationPeriod * Math.sqrt(this.coolingFactor));
171940 }
171941 if (this.isTreeGrowing) {
171942 if (this.growTreeIterations % 10 == 0) {
171943 if (this.prunedNodesAll.length > 0) {
171944 this.graphManager.updateBounds();
171945 this.updateGrid();
171946 this.growTree(this.prunedNodesAll);
171947 this.graphManager.resetAllNodesToApplyGravitation();
171948 var allNodes = new Set(this.getAllNodes());
171949 var intersection2 = this.nodesWithGravity.filter(function(x2) {
171950 return allNodes.has(x2);
171951 });
171952 this.graphManager.setAllNodesToApplyGravitation(intersection2);
171953 this.graphManager.updateBounds();
171954 this.updateGrid();
171955 this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL;
171956 } else {
171957 this.isTreeGrowing = false;
171958 this.isGrowthFinished = true;
171959 }
171960 }
171961 this.growTreeIterations++;
171962 }
171963 if (this.isGrowthFinished) {
171964 if (this.isConverged()) {
171965 return true;
171966 }
171967 if (this.afterGrowthIterations % 10 == 0) {
171968 this.graphManager.updateBounds();
171969 this.updateGrid();
171970 }
171971 this.coolingFactor = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL * ((100 - this.afterGrowthIterations) / 100);
171972 this.afterGrowthIterations++;
171973 }
171974 var gridUpdateAllowed = !this.isTreeGrowing && !this.isGrowthFinished;
171975 var forceToNodeSurroundingUpdate = this.growTreeIterations % 10 == 1 && this.isTreeGrowing || this.afterGrowthIterations % 10 == 1 && this.isGrowthFinished;
171976 this.totalDisplacement = 0;
171977 this.graphManager.updateBounds();
171978 this.calcSpringForces();
171979 this.calcRepulsionForces(gridUpdateAllowed, forceToNodeSurroundingUpdate);
171980 this.calcGravitationalForces();
171981 this.moveNodes();
171982 this.animate();
171983 return false;
171984 };
171985 CoSELayout.prototype.getPositionsData = function() {
171986 var allNodes = this.graphManager.getAllNodes();
171987 var pData = {};
171988 for (var i2 = 0; i2 < allNodes.length; i2++) {
171989 var rect2 = allNodes[i2].rect;
171990 var id2 = allNodes[i2].id;
171991 pData[id2] = {
171992 id: id2,
171993 x: rect2.getCenterX(),
171994 y: rect2.getCenterY(),
171995 w: rect2.width,
171996 h: rect2.height
171997 };
171998 }
171999 return pData;
172000 };
172001 CoSELayout.prototype.runSpringEmbedder = function() {
172002 this.initialAnimationPeriod = 25;
172003 this.animationPeriod = this.initialAnimationPeriod;
172004 var layoutEnded = false;
172005 if (FDLayoutConstants.ANIMATE === "during") {
172006 this.emit("layoutstarted");
172007 } else {
172008 while (!layoutEnded) {
172009 layoutEnded = this.tick();
172010 }
172011 this.graphManager.updateBounds();
172012 }
172013 };
172014 CoSELayout.prototype.calculateNodesToApplyGravitationTo = function() {
172015 var nodeList = [];
172016 var graph;
172017 var graphs = this.graphManager.getGraphs();
172018 var size2 = graphs.length;
172019 var i2;
172020 for (i2 = 0; i2 < size2; i2++) {
172021 graph = graphs[i2];
172022 graph.updateConnected();
172023 if (!graph.isConnected) {
172024 nodeList = nodeList.concat(graph.getNodes());
172025 }
172026 }
172027 return nodeList;
172028 };
172029 CoSELayout.prototype.createBendpoints = function() {
172030 var edges2 = [];
172031 edges2 = edges2.concat(this.graphManager.getAllEdges());
172032 var visited = /* @__PURE__ */ new Set();
172033 var i2;
172034 for (i2 = 0; i2 < edges2.length; i2++) {
172035 var edge = edges2[i2];
172036 if (!visited.has(edge)) {
172037 var source = edge.getSource();
172038 var target = edge.getTarget();
172039 if (source == target) {
172040 edge.getBendpoints().push(new PointD());
172041 edge.getBendpoints().push(new PointD());
172042 this.createDummyNodesForBendpoints(edge);
172043 visited.add(edge);
172044 } else {
172045 var edgeList = [];
172046 edgeList = edgeList.concat(source.getEdgeListToNode(target));
172047 edgeList = edgeList.concat(target.getEdgeListToNode(source));
172048 if (!visited.has(edgeList[0])) {
172049 if (edgeList.length > 1) {
172050 var k;
172051 for (k = 0; k < edgeList.length; k++) {
172052 var multiEdge = edgeList[k];
172053 multiEdge.getBendpoints().push(new PointD());
172054 this.createDummyNodesForBendpoints(multiEdge);
172055 }
172056 }
172057 edgeList.forEach(function(edge2) {
172058 visited.add(edge2);
172059 });
172060 }
172061 }
172062 }
172063 if (visited.size == edges2.length) {
172064 break;
172065 }
172066 }
172067 };
172068 CoSELayout.prototype.positionNodesRadially = function(forest) {
172069 var currentStartingPoint = new Point2(0, 0);
172070 var numberOfColumns = Math.ceil(Math.sqrt(forest.length));
172071 var height2 = 0;
172072 var currentY = 0;
172073 var currentX = 0;
172074 var point2 = new PointD(0, 0);
172075 for (var i2 = 0; i2 < forest.length; i2++) {
172076 if (i2 % numberOfColumns == 0) {
172077 currentX = 0;
172078 currentY = height2;
172079 if (i2 != 0) {
172080 currentY += CoSEConstants.DEFAULT_COMPONENT_SEPERATION;
172081 }
172082 height2 = 0;
172083 }
172084 var tree = forest[i2];
172085 var centerNode = Layout2.findCenterOfTree(tree);
172086 currentStartingPoint.x = currentX;
172087 currentStartingPoint.y = currentY;
172088 point2 = CoSELayout.radialLayout(tree, centerNode, currentStartingPoint);
172089 if (point2.y > height2) {
172090 height2 = Math.floor(point2.y);
172091 }
172092 currentX = Math.floor(point2.x + CoSEConstants.DEFAULT_COMPONENT_SEPERATION);
172093 }
172094 this.transform(new PointD(LayoutConstants.WORLD_CENTER_X - point2.x / 2, LayoutConstants.WORLD_CENTER_Y - point2.y / 2));
172095 };
172096 CoSELayout.radialLayout = function(tree, centerNode, startingPoint) {
172097 var radialSep = Math.max(this.maxDiagonalInTree(tree), CoSEConstants.DEFAULT_RADIAL_SEPARATION);
172098 CoSELayout.branchRadialLayout(centerNode, null, 0, 359, 0, radialSep);
172099 var bounds2 = LGraph.calculateBounds(tree);
172100 var transform = new Transform2();
172101 transform.setDeviceOrgX(bounds2.getMinX());
172102 transform.setDeviceOrgY(bounds2.getMinY());
172103 transform.setWorldOrgX(startingPoint.x);
172104 transform.setWorldOrgY(startingPoint.y);
172105 for (var i2 = 0; i2 < tree.length; i2++) {
172106 var node2 = tree[i2];
172107 node2.transform(transform);
172108 }
172109 var bottomRight = new PointD(bounds2.getMaxX(), bounds2.getMaxY());
172110 return transform.inverseTransformPoint(bottomRight);
172111 };
172112 CoSELayout.branchRadialLayout = function(node2, parentOfNode, startAngle, endAngle, distance2, radialSeparation) {
172113 var halfInterval = (endAngle - startAngle + 1) / 2;
172114 if (halfInterval < 0) {
172115 halfInterval += 180;
172116 }
172117 var nodeAngle = (halfInterval + startAngle) % 360;
172118 var teta = nodeAngle * IGeometry.TWO_PI / 360;
172119 var x_ = distance2 * Math.cos(teta);
172120 var y_ = distance2 * Math.sin(teta);
172121 node2.setCenter(x_, y_);
172122 var neighborEdges = [];
172123 neighborEdges = neighborEdges.concat(node2.getEdges());
172124 var childCount = neighborEdges.length;
172125 if (parentOfNode != null) {
172126 childCount--;
172127 }
172128 var branchCount = 0;
172129 var incEdgesCount = neighborEdges.length;
172130 var startIndex;
172131 var edges2 = node2.getEdgesBetween(parentOfNode);
172132 while (edges2.length > 1) {
172133 var temp = edges2[0];
172134 edges2.splice(0, 1);
172135 var index2 = neighborEdges.indexOf(temp);
172136 if (index2 >= 0) {
172137 neighborEdges.splice(index2, 1);
172138 }
172139 incEdgesCount--;
172140 childCount--;
172141 }
172142 if (parentOfNode != null) {
172143 startIndex = (neighborEdges.indexOf(edges2[0]) + 1) % incEdgesCount;
172144 } else {
172145 startIndex = 0;
172146 }
172147 var stepAngle = Math.abs(endAngle - startAngle) / childCount;
172148 for (var i2 = startIndex; branchCount != childCount; i2 = ++i2 % incEdgesCount) {
172149 var currentNeighbor = neighborEdges[i2].getOtherEnd(node2);
172150 if (currentNeighbor == parentOfNode) {
172151 continue;
172152 }
172153 var childStartAngle = (startAngle + branchCount * stepAngle) % 360;
172154 var childEndAngle = (childStartAngle + stepAngle) % 360;
172155 CoSELayout.branchRadialLayout(currentNeighbor, node2, childStartAngle, childEndAngle, distance2 + radialSeparation, radialSeparation);
172156 branchCount++;
172157 }
172158 };
172159 CoSELayout.maxDiagonalInTree = function(tree) {
172160 var maxDiagonal = Integer.MIN_VALUE;
172161 for (var i2 = 0; i2 < tree.length; i2++) {
172162 var node2 = tree[i2];
172163 var diagonal = node2.getDiagonal();
172164 if (diagonal > maxDiagonal) {
172165 maxDiagonal = diagonal;
172166 }
172167 }
172168 return maxDiagonal;
172169 };
172170 CoSELayout.prototype.calcRepulsionRange = function() {
172171 return 2 * (this.level + 1) * this.idealEdgeLength;
172172 };
172173 CoSELayout.prototype.groupZeroDegreeMembers = function() {
172174 var self2 = this;
172175 var tempMemberGroups = {};
172176 this.memberGroups = {};
172177 this.idToDummyNode = {};
172178 var zeroDegree = [];
172179 var allNodes = this.graphManager.getAllNodes();
172180 for (var i2 = 0; i2 < allNodes.length; i2++) {
172181 var node2 = allNodes[i2];
172182 var parent = node2.getParent();
172183 if (this.getNodeDegreeWithChildren(node2) === 0 && (parent.id == void 0 || !this.getToBeTiled(parent))) {
172184 zeroDegree.push(node2);
172185 }
172186 }
172187 for (var i2 = 0; i2 < zeroDegree.length; i2++) {
172188 var node2 = zeroDegree[i2];
172189 var p_id = node2.getParent().id;
172190 if (typeof tempMemberGroups[p_id] === "undefined")
172191 tempMemberGroups[p_id] = [];
172192 tempMemberGroups[p_id] = tempMemberGroups[p_id].concat(node2);
172193 }
172194 Object.keys(tempMemberGroups).forEach(function(p_id2) {
172195 if (tempMemberGroups[p_id2].length > 1) {
172196 var dummyCompoundId = "DummyCompound_" + p_id2;
172197 self2.memberGroups[dummyCompoundId] = tempMemberGroups[p_id2];
172198 var parent2 = tempMemberGroups[p_id2][0].getParent();
172199 var dummyCompound = new CoSENode(self2.graphManager);
172200 dummyCompound.id = dummyCompoundId;
172201 dummyCompound.paddingLeft = parent2.paddingLeft || 0;
172202 dummyCompound.paddingRight = parent2.paddingRight || 0;
172203 dummyCompound.paddingBottom = parent2.paddingBottom || 0;
172204 dummyCompound.paddingTop = parent2.paddingTop || 0;
172205 self2.idToDummyNode[dummyCompoundId] = dummyCompound;
172206 var dummyParentGraph = self2.getGraphManager().add(self2.newGraph(), dummyCompound);
172207 var parentGraph = parent2.getChild();
172208 parentGraph.add(dummyCompound);
172209 for (var i3 = 0; i3 < tempMemberGroups[p_id2].length; i3++) {
172210 var node3 = tempMemberGroups[p_id2][i3];
172211 parentGraph.remove(node3);
172212 dummyParentGraph.add(node3);
172213 }
172214 }
172215 });
172216 };
172217 CoSELayout.prototype.clearCompounds = function() {
172218 var childGraphMap = {};
172219 var idToNode = {};
172220 this.performDFSOnCompounds();
172221 for (var i2 = 0; i2 < this.compoundOrder.length; i2++) {
172222 idToNode[this.compoundOrder[i2].id] = this.compoundOrder[i2];
172223 childGraphMap[this.compoundOrder[i2].id] = [].concat(this.compoundOrder[i2].getChild().getNodes());
172224 this.graphManager.remove(this.compoundOrder[i2].getChild());
172225 this.compoundOrder[i2].child = null;
172226 }
172227 this.graphManager.resetAllNodes();
172228 this.tileCompoundMembers(childGraphMap, idToNode);
172229 };
172230 CoSELayout.prototype.clearZeroDegreeMembers = function() {
172231 var self2 = this;
172232 var tiledZeroDegreePack = this.tiledZeroDegreePack = [];
172233 Object.keys(this.memberGroups).forEach(function(id2) {
172234 var compoundNode = self2.idToDummyNode[id2];
172235 tiledZeroDegreePack[id2] = self2.tileNodes(self2.memberGroups[id2], compoundNode.paddingLeft + compoundNode.paddingRight);
172236 compoundNode.rect.width = tiledZeroDegreePack[id2].width;
172237 compoundNode.rect.height = tiledZeroDegreePack[id2].height;
172238 });
172239 };
172240 CoSELayout.prototype.repopulateCompounds = function() {
172241 for (var i2 = this.compoundOrder.length - 1; i2 >= 0; i2--) {
172242 var lCompoundNode = this.compoundOrder[i2];
172243 var id2 = lCompoundNode.id;
172244 var horizontalMargin = lCompoundNode.paddingLeft;
172245 var verticalMargin = lCompoundNode.paddingTop;
172246 this.adjustLocations(this.tiledMemberPack[id2], lCompoundNode.rect.x, lCompoundNode.rect.y, horizontalMargin, verticalMargin);
172247 }
172248 };
172249 CoSELayout.prototype.repopulateZeroDegreeMembers = function() {
172250 var self2 = this;
172251 var tiledPack = this.tiledZeroDegreePack;
172252 Object.keys(tiledPack).forEach(function(id2) {
172253 var compoundNode = self2.idToDummyNode[id2];
172254 var horizontalMargin = compoundNode.paddingLeft;
172255 var verticalMargin = compoundNode.paddingTop;
172256 self2.adjustLocations(tiledPack[id2], compoundNode.rect.x, compoundNode.rect.y, horizontalMargin, verticalMargin);
172257 });
172258 };
172259 CoSELayout.prototype.getToBeTiled = function(node2) {
172260 var id2 = node2.id;
172261 if (this.toBeTiled[id2] != null) {
172262 return this.toBeTiled[id2];
172263 }
172264 var childGraph = node2.getChild();
172265 if (childGraph == null) {
172266 this.toBeTiled[id2] = false;
172267 return false;
172268 }
172269 var children2 = childGraph.getNodes();
172270 for (var i2 = 0; i2 < children2.length; i2++) {
172271 var theChild = children2[i2];
172272 if (this.getNodeDegree(theChild) > 0) {
172273 this.toBeTiled[id2] = false;
172274 return false;
172275 }
172276 if (theChild.getChild() == null) {
172277 this.toBeTiled[theChild.id] = false;
172278 continue;
172279 }
172280 if (!this.getToBeTiled(theChild)) {
172281 this.toBeTiled[id2] = false;
172282 return false;
172283 }
172284 }
172285 this.toBeTiled[id2] = true;
172286 return true;
172287 };
172288 CoSELayout.prototype.getNodeDegree = function(node2) {
172289 node2.id;
172290 var edges2 = node2.getEdges();
172291 var degree = 0;
172292 for (var i2 = 0; i2 < edges2.length; i2++) {
172293 var edge = edges2[i2];
172294 if (edge.getSource().id !== edge.getTarget().id) {
172295 degree = degree + 1;
172296 }
172297 }
172298 return degree;
172299 };
172300 CoSELayout.prototype.getNodeDegreeWithChildren = function(node2) {
172301 var degree = this.getNodeDegree(node2);
172302 if (node2.getChild() == null) {
172303 return degree;
172304 }
172305 var children2 = node2.getChild().getNodes();
172306 for (var i2 = 0; i2 < children2.length; i2++) {
172307 var child = children2[i2];
172308 degree += this.getNodeDegreeWithChildren(child);
172309 }
172310 return degree;
172311 };
172312 CoSELayout.prototype.performDFSOnCompounds = function() {
172313 this.compoundOrder = [];
172314 this.fillCompexOrderByDFS(this.graphManager.getRoot().getNodes());
172315 };
172316 CoSELayout.prototype.fillCompexOrderByDFS = function(children2) {
172317 for (var i2 = 0; i2 < children2.length; i2++) {
172318 var child = children2[i2];
172319 if (child.getChild() != null) {
172320 this.fillCompexOrderByDFS(child.getChild().getNodes());
172321 }
172322 if (this.getToBeTiled(child)) {
172323 this.compoundOrder.push(child);
172324 }
172325 }
172326 };
172327 CoSELayout.prototype.adjustLocations = function(organization, x2, y2, compoundHorizontalMargin, compoundVerticalMargin) {
172328 x2 += compoundHorizontalMargin;
172329 y2 += compoundVerticalMargin;
172330 var left2 = x2;
172331 for (var i2 = 0; i2 < organization.rows.length; i2++) {
172332 var row = organization.rows[i2];
172333 x2 = left2;
172334 var maxHeight = 0;
172335 for (var j = 0; j < row.length; j++) {
172336 var lnode = row[j];
172337 lnode.rect.x = x2;
172338 lnode.rect.y = y2;
172339 x2 += lnode.rect.width + organization.horizontalPadding;
172340 if (lnode.rect.height > maxHeight)
172341 maxHeight = lnode.rect.height;
172342 }
172343 y2 += maxHeight + organization.verticalPadding;
172344 }
172345 };
172346 CoSELayout.prototype.tileCompoundMembers = function(childGraphMap, idToNode) {
172347 var self2 = this;
172348 this.tiledMemberPack = [];
172349 Object.keys(childGraphMap).forEach(function(id2) {
172350 var compoundNode = idToNode[id2];
172351 self2.tiledMemberPack[id2] = self2.tileNodes(childGraphMap[id2], compoundNode.paddingLeft + compoundNode.paddingRight);
172352 compoundNode.rect.width = self2.tiledMemberPack[id2].width;
172353 compoundNode.rect.height = self2.tiledMemberPack[id2].height;
172354 });
172355 };
172356 CoSELayout.prototype.tileNodes = function(nodes2, minWidth) {
172357 var verticalPadding = CoSEConstants.TILING_PADDING_VERTICAL;
172358 var horizontalPadding = CoSEConstants.TILING_PADDING_HORIZONTAL;
172359 var organization = {
172360 rows: [],
172361 rowWidth: [],
172362 rowHeight: [],
172363 width: 0,
172364 height: minWidth,
172365 // assume minHeight equals to minWidth
172366 verticalPadding,
172367 horizontalPadding
172368 };
172369 nodes2.sort(function(n1, n2) {
172370 if (n1.rect.width * n1.rect.height > n2.rect.width * n2.rect.height)
172371 return -1;
172372 if (n1.rect.width * n1.rect.height < n2.rect.width * n2.rect.height)
172373 return 1;
172374 return 0;
172375 });
172376 for (var i2 = 0; i2 < nodes2.length; i2++) {
172377 var lNode = nodes2[i2];
172378 if (organization.rows.length == 0) {
172379 this.insertNodeToRow(organization, lNode, 0, minWidth);
172380 } else if (this.canAddHorizontal(organization, lNode.rect.width, lNode.rect.height)) {
172381 this.insertNodeToRow(organization, lNode, this.getShortestRowIndex(organization), minWidth);
172382 } else {
172383 this.insertNodeToRow(organization, lNode, organization.rows.length, minWidth);
172384 }
172385 this.shiftToLastRow(organization);
172386 }
172387 return organization;
172388 };
172389 CoSELayout.prototype.insertNodeToRow = function(organization, node2, rowIndex, minWidth) {
172390 var minCompoundSize = minWidth;
172391 if (rowIndex == organization.rows.length) {
172392 var secondDimension = [];
172393 organization.rows.push(secondDimension);
172394 organization.rowWidth.push(minCompoundSize);
172395 organization.rowHeight.push(0);
172396 }
172397 var w2 = organization.rowWidth[rowIndex] + node2.rect.width;
172398 if (organization.rows[rowIndex].length > 0) {
172399 w2 += organization.horizontalPadding;
172400 }
172401 organization.rowWidth[rowIndex] = w2;
172402 if (organization.width < w2) {
172403 organization.width = w2;
172404 }
172405 var h = node2.rect.height;
172406 if (rowIndex > 0)
172407 h += organization.verticalPadding;
172408 var extraHeight = 0;
172409 if (h > organization.rowHeight[rowIndex]) {
172410 extraHeight = organization.rowHeight[rowIndex];
172411 organization.rowHeight[rowIndex] = h;
172412 extraHeight = organization.rowHeight[rowIndex] - extraHeight;
172413 }
172414 organization.height += extraHeight;
172415 organization.rows[rowIndex].push(node2);
172416 };
172417 CoSELayout.prototype.getShortestRowIndex = function(organization) {
172418 var r = -1;
172419 var min2 = Number.MAX_VALUE;
172420 for (var i2 = 0; i2 < organization.rows.length; i2++) {
172421 if (organization.rowWidth[i2] < min2) {
172422 r = i2;
172423 min2 = organization.rowWidth[i2];
172424 }
172425 }
172426 return r;
172427 };
172428 CoSELayout.prototype.getLongestRowIndex = function(organization) {
172429 var r = -1;
172430 var max2 = Number.MIN_VALUE;
172431 for (var i2 = 0; i2 < organization.rows.length; i2++) {
172432 if (organization.rowWidth[i2] > max2) {
172433 r = i2;
172434 max2 = organization.rowWidth[i2];
172435 }
172436 }
172437 return r;
172438 };
172439 CoSELayout.prototype.canAddHorizontal = function(organization, extraWidth, extraHeight) {
172440 var sri = this.getShortestRowIndex(organization);
172441 if (sri < 0) {
172442 return true;
172443 }
172444 var min2 = organization.rowWidth[sri];
172445 if (min2 + organization.horizontalPadding + extraWidth <= organization.width)
172446 return true;
172447 var hDiff = 0;
172448 if (organization.rowHeight[sri] < extraHeight) {
172449 if (sri > 0)
172450 hDiff = extraHeight + organization.verticalPadding - organization.rowHeight[sri];
172451 }
172452 var add_to_row_ratio;
172453 if (organization.width - min2 >= extraWidth + organization.horizontalPadding) {
172454 add_to_row_ratio = (organization.height + hDiff) / (min2 + extraWidth + organization.horizontalPadding);
172455 } else {
172456 add_to_row_ratio = (organization.height + hDiff) / organization.width;
172457 }
172458 hDiff = extraHeight + organization.verticalPadding;
172459 var add_new_row_ratio;
172460 if (organization.width < extraWidth) {
172461 add_new_row_ratio = (organization.height + hDiff) / extraWidth;
172462 } else {
172463 add_new_row_ratio = (organization.height + hDiff) / organization.width;
172464 }
172465 if (add_new_row_ratio < 1)
172466 add_new_row_ratio = 1 / add_new_row_ratio;
172467 if (add_to_row_ratio < 1)
172468 add_to_row_ratio = 1 / add_to_row_ratio;
172469 return add_to_row_ratio < add_new_row_ratio;
172470 };
172471 CoSELayout.prototype.shiftToLastRow = function(organization) {
172472 var longest = this.getLongestRowIndex(organization);
172473 var last2 = organization.rowWidth.length - 1;
172474 var row = organization.rows[longest];
172475 var node2 = row[row.length - 1];
172476 var diff = node2.width + organization.horizontalPadding;
172477 if (organization.width - organization.rowWidth[last2] > diff && longest != last2) {
172478 row.splice(-1, 1);
172479 organization.rows[last2].push(node2);
172480 organization.rowWidth[longest] = organization.rowWidth[longest] - diff;
172481 organization.rowWidth[last2] = organization.rowWidth[last2] + diff;
172482 organization.width = organization.rowWidth[instance.getLongestRowIndex(organization)];
172483 var maxHeight = Number.MIN_VALUE;
172484 for (var i2 = 0; i2 < row.length; i2++) {
172485 if (row[i2].height > maxHeight)
172486 maxHeight = row[i2].height;
172487 }
172488 if (longest > 0)
172489 maxHeight += organization.verticalPadding;
172490 var prevTotal = organization.rowHeight[longest] + organization.rowHeight[last2];
172491 organization.rowHeight[longest] = maxHeight;
172492 if (organization.rowHeight[last2] < node2.height + organization.verticalPadding)
172493 organization.rowHeight[last2] = node2.height + organization.verticalPadding;
172494 var finalTotal = organization.rowHeight[longest] + organization.rowHeight[last2];
172495 organization.height += finalTotal - prevTotal;
172496 this.shiftToLastRow(organization);
172497 }
172498 };
172499 CoSELayout.prototype.tilingPreLayout = function() {
172500 if (CoSEConstants.TILE) {
172501 this.groupZeroDegreeMembers();
172502 this.clearCompounds();
172503 this.clearZeroDegreeMembers();
172504 }
172505 };
172506 CoSELayout.prototype.tilingPostLayout = function() {
172507 if (CoSEConstants.TILE) {
172508 this.repopulateZeroDegreeMembers();
172509 this.repopulateCompounds();
172510 }
172511 };
172512 CoSELayout.prototype.reduceTrees = function() {
172513 var prunedNodesAll = [];
172514 var containsLeaf = true;
172515 var node2;
172516 while (containsLeaf) {
172517 var allNodes = this.graphManager.getAllNodes();
172518 var prunedNodesInStepTemp = [];
172519 containsLeaf = false;
172520 for (var i2 = 0; i2 < allNodes.length; i2++) {
172521 node2 = allNodes[i2];
172522 if (node2.getEdges().length == 1 && !node2.getEdges()[0].isInterGraph && node2.getChild() == null) {
172523 prunedNodesInStepTemp.push([node2, node2.getEdges()[0], node2.getOwner()]);
172524 containsLeaf = true;
172525 }
172526 }
172527 if (containsLeaf == true) {
172528 var prunedNodesInStep = [];
172529 for (var j = 0; j < prunedNodesInStepTemp.length; j++) {
172530 if (prunedNodesInStepTemp[j][0].getEdges().length == 1) {
172531 prunedNodesInStep.push(prunedNodesInStepTemp[j]);
172532 prunedNodesInStepTemp[j][0].getOwner().remove(prunedNodesInStepTemp[j][0]);
172533 }
172534 }
172535 prunedNodesAll.push(prunedNodesInStep);
172536 this.graphManager.resetAllNodes();
172537 this.graphManager.resetAllEdges();
172538 }
172539 }
172540 this.prunedNodesAll = prunedNodesAll;
172541 };
172542 CoSELayout.prototype.growTree = function(prunedNodesAll) {
172543 var lengthOfPrunedNodesInStep = prunedNodesAll.length;
172544 var prunedNodesInStep = prunedNodesAll[lengthOfPrunedNodesInStep - 1];
172545 var nodeData;
172546 for (var i2 = 0; i2 < prunedNodesInStep.length; i2++) {
172547 nodeData = prunedNodesInStep[i2];
172548 this.findPlaceforPrunedNode(nodeData);
172549 nodeData[2].add(nodeData[0]);
172550 nodeData[2].add(nodeData[1], nodeData[1].source, nodeData[1].target);
172551 }
172552 prunedNodesAll.splice(prunedNodesAll.length - 1, 1);
172553 this.graphManager.resetAllNodes();
172554 this.graphManager.resetAllEdges();
172555 };
172556 CoSELayout.prototype.findPlaceforPrunedNode = function(nodeData) {
172557 var gridForPrunedNode;
172558 var nodeToConnect;
172559 var prunedNode = nodeData[0];
172560 if (prunedNode == nodeData[1].source) {
172561 nodeToConnect = nodeData[1].target;
172562 } else {
172563 nodeToConnect = nodeData[1].source;
172564 }
172565 var startGridX = nodeToConnect.startX;
172566 var finishGridX = nodeToConnect.finishX;
172567 var startGridY = nodeToConnect.startY;
172568 var finishGridY = nodeToConnect.finishY;
172569 var upNodeCount = 0;
172570 var downNodeCount = 0;
172571 var rightNodeCount = 0;
172572 var leftNodeCount = 0;
172573 var controlRegions = [upNodeCount, rightNodeCount, downNodeCount, leftNodeCount];
172574 if (startGridY > 0) {
172575 for (var i2 = startGridX; i2 <= finishGridX; i2++) {
172576 controlRegions[0] += this.grid[i2][startGridY - 1].length + this.grid[i2][startGridY].length - 1;
172577 }
172578 }
172579 if (finishGridX < this.grid.length - 1) {
172580 for (var i2 = startGridY; i2 <= finishGridY; i2++) {
172581 controlRegions[1] += this.grid[finishGridX + 1][i2].length + this.grid[finishGridX][i2].length - 1;
172582 }
172583 }
172584 if (finishGridY < this.grid[0].length - 1) {
172585 for (var i2 = startGridX; i2 <= finishGridX; i2++) {
172586 controlRegions[2] += this.grid[i2][finishGridY + 1].length + this.grid[i2][finishGridY].length - 1;
172587 }
172588 }
172589 if (startGridX > 0) {
172590 for (var i2 = startGridY; i2 <= finishGridY; i2++) {
172591 controlRegions[3] += this.grid[startGridX - 1][i2].length + this.grid[startGridX][i2].length - 1;
172592 }
172593 }
172594 var min2 = Integer.MAX_VALUE;
172595 var minCount;
172596 var minIndex;
172597 for (var j = 0; j < controlRegions.length; j++) {
172598 if (controlRegions[j] < min2) {
172599 min2 = controlRegions[j];
172600 minCount = 1;
172601 minIndex = j;
172602 } else if (controlRegions[j] == min2) {
172603 minCount++;
172604 }
172605 }
172606 if (minCount == 3 && min2 == 0) {
172607 if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[2] == 0) {
172608 gridForPrunedNode = 1;
172609 } else if (controlRegions[0] == 0 && controlRegions[1] == 0 && controlRegions[3] == 0) {
172610 gridForPrunedNode = 0;
172611 } else if (controlRegions[0] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {
172612 gridForPrunedNode = 3;
172613 } else if (controlRegions[1] == 0 && controlRegions[2] == 0 && controlRegions[3] == 0) {
172614 gridForPrunedNode = 2;
172615 }
172616 } else if (minCount == 2 && min2 == 0) {
172617 var random2 = Math.floor(Math.random() * 2);
172618 if (controlRegions[0] == 0 && controlRegions[1] == 0) {
172619 if (random2 == 0) {
172620 gridForPrunedNode = 0;
172621 } else {
172622 gridForPrunedNode = 1;
172623 }
172624 } else if (controlRegions[0] == 0 && controlRegions[2] == 0) {
172625 if (random2 == 0) {
172626 gridForPrunedNode = 0;
172627 } else {
172628 gridForPrunedNode = 2;
172629 }
172630 } else if (controlRegions[0] == 0 && controlRegions[3] == 0) {
172631 if (random2 == 0) {
172632 gridForPrunedNode = 0;
172633 } else {
172634 gridForPrunedNode = 3;
172635 }
172636 } else if (controlRegions[1] == 0 && controlRegions[2] == 0) {
172637 if (random2 == 0) {
172638 gridForPrunedNode = 1;
172639 } else {
172640 gridForPrunedNode = 2;
172641 }
172642 } else if (controlRegions[1] == 0 && controlRegions[3] == 0) {
172643 if (random2 == 0) {
172644 gridForPrunedNode = 1;
172645 } else {
172646 gridForPrunedNode = 3;
172647 }
172648 } else {
172649 if (random2 == 0) {
172650 gridForPrunedNode = 2;
172651 } else {
172652 gridForPrunedNode = 3;
172653 }
172654 }
172655 } else if (minCount == 4 && min2 == 0) {
172656 var random2 = Math.floor(Math.random() * 4);
172657 gridForPrunedNode = random2;
172658 } else {
172659 gridForPrunedNode = minIndex;
172660 }
172661 if (gridForPrunedNode == 0) {
172662 prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() - nodeToConnect.getHeight() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getHeight() / 2);
172663 } else if (gridForPrunedNode == 1) {
172664 prunedNode.setCenter(nodeToConnect.getCenterX() + nodeToConnect.getWidth() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getWidth() / 2, nodeToConnect.getCenterY());
172665 } else if (gridForPrunedNode == 2) {
172666 prunedNode.setCenter(nodeToConnect.getCenterX(), nodeToConnect.getCenterY() + nodeToConnect.getHeight() / 2 + FDLayoutConstants.DEFAULT_EDGE_LENGTH + prunedNode.getHeight() / 2);
172667 } else {
172668 prunedNode.setCenter(nodeToConnect.getCenterX() - nodeToConnect.getWidth() / 2 - FDLayoutConstants.DEFAULT_EDGE_LENGTH - prunedNode.getWidth() / 2, nodeToConnect.getCenterY());
172669 }
172670 };
172671 module3.exports = CoSELayout;
172672 },
172673 /* 7 */
172674 /***/
172675 function(module3, exports3, __webpack_require__) {
172676 var coseBase2 = {};
172677 coseBase2.layoutBase = __webpack_require__(0);
172678 coseBase2.CoSEConstants = __webpack_require__(1);
172679 coseBase2.CoSEEdge = __webpack_require__(2);
172680 coseBase2.CoSEGraph = __webpack_require__(3);
172681 coseBase2.CoSEGraphManager = __webpack_require__(4);
172682 coseBase2.CoSELayout = __webpack_require__(6);
172683 coseBase2.CoSENode = __webpack_require__(5);
172684 module3.exports = coseBase2;
172685 }
172686 /******/
172687 ])
172688 );
172689 });
172690 })(coseBase);
172691 return coseBaseExports;
172692 }
172693 (function(module2, exports2) {
172694 (function webpackUniversalModuleDefinition(root2, factory) {
172695 module2.exports = factory(requireCoseBase());
172696 })(commonjsGlobal, function(__WEBPACK_EXTERNAL_MODULE_0__) {
172697 return (
172698 /******/
172699 function(modules) {
172700 var installedModules = {};
172701 function __webpack_require__(moduleId) {
172702 if (installedModules[moduleId]) {
172703 return installedModules[moduleId].exports;
172704 }
172705 var module3 = installedModules[moduleId] = {
172706 /******/
172707 i: moduleId,
172708 /******/
172709 l: false,
172710 /******/
172711 exports: {}
172712 /******/
172713 };
172714 modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__);
172715 module3.l = true;
172716 return module3.exports;
172717 }
172718 __webpack_require__.m = modules;
172719 __webpack_require__.c = installedModules;
172720 __webpack_require__.i = function(value) {
172721 return value;
172722 };
172723 __webpack_require__.d = function(exports3, name2, getter) {
172724 if (!__webpack_require__.o(exports3, name2)) {
172725 Object.defineProperty(exports3, name2, {
172726 /******/
172727 configurable: false,
172728 /******/
172729 enumerable: true,
172730 /******/
172731 get: getter
172732 /******/
172733 });
172734 }
172735 };
172736 __webpack_require__.n = function(module3) {
172737 var getter = module3 && module3.__esModule ? (
172738 /******/
172739 function getDefault() {
172740 return module3["default"];
172741 }
172742 ) : (
172743 /******/
172744 function getModuleExports() {
172745 return module3;
172746 }
172747 );
172748 __webpack_require__.d(getter, "a", getter);
172749 return getter;
172750 };
172751 __webpack_require__.o = function(object2, property2) {
172752 return Object.prototype.hasOwnProperty.call(object2, property2);
172753 };
172754 __webpack_require__.p = "";
172755 return __webpack_require__(__webpack_require__.s = 1);
172756 }([
172757 /* 0 */
172758 /***/
172759 function(module3, exports3) {
172760 module3.exports = __WEBPACK_EXTERNAL_MODULE_0__;
172761 },
172762 /* 1 */
172763 /***/
172764 function(module3, exports3, __webpack_require__) {
172765 var LayoutConstants = __webpack_require__(0).layoutBase.LayoutConstants;
172766 var FDLayoutConstants = __webpack_require__(0).layoutBase.FDLayoutConstants;
172767 var CoSEConstants = __webpack_require__(0).CoSEConstants;
172768 var CoSELayout = __webpack_require__(0).CoSELayout;
172769 var CoSENode = __webpack_require__(0).CoSENode;
172770 var PointD = __webpack_require__(0).layoutBase.PointD;
172771 var DimensionD2 = __webpack_require__(0).layoutBase.DimensionD;
172772 var defaults2 = {
172773 // Called on `layoutready`
172774 ready: function ready() {
172775 },
172776 // Called on `layoutstop`
172777 stop: function stop() {
172778 },
172779 // 'draft', 'default' or 'proof"
172780 // - 'draft' fast cooling rate
172781 // - 'default' moderate cooling rate
172782 // - "proof" slow cooling rate
172783 quality: "default",
172784 // include labels in node dimensions
172785 nodeDimensionsIncludeLabels: false,
172786 // number of ticks per frame; higher is faster but more jerky
172787 refresh: 30,
172788 // Whether to fit the network view after when done
172789 fit: true,
172790 // Padding on fit
172791 padding: 10,
172792 // Whether to enable incremental mode
172793 randomize: true,
172794 // Node repulsion (non overlapping) multiplier
172795 nodeRepulsion: 4500,
172796 // Ideal edge (non nested) length
172797 idealEdgeLength: 50,
172798 // Divisor to compute edge forces
172799 edgeElasticity: 0.45,
172800 // Nesting factor (multiplier) to compute ideal edge length for nested edges
172801 nestingFactor: 0.1,
172802 // Gravity force (constant)
172803 gravity: 0.25,
172804 // Maximum number of iterations to perform
172805 numIter: 2500,
172806 // For enabling tiling
172807 tile: true,
172808 // Type of layout animation. The option set is {'during', 'end', false}
172809 animate: "end",
172810 // Duration for animate:end
172811 animationDuration: 500,
172812 // Represents the amount of the vertical space to put between the zero degree members during the tiling operation(can also be a function)
172813 tilingPaddingVertical: 10,
172814 // Represents the amount of the horizontal space to put between the zero degree members during the tiling operation(can also be a function)
172815 tilingPaddingHorizontal: 10,
172816 // Gravity range (constant) for compounds
172817 gravityRangeCompound: 1.5,
172818 // Gravity force (constant) for compounds
172819 gravityCompound: 1,
172820 // Gravity range (constant)
172821 gravityRange: 3.8,
172822 // Initial cooling factor for incremental layout
172823 initialEnergyOnIncremental: 0.5
172824 };
172825 function extend2(defaults3, options2) {
172826 var obj = {};
172827 for (var i2 in defaults3) {
172828 obj[i2] = defaults3[i2];
172829 }
172830 for (var i2 in options2) {
172831 obj[i2] = options2[i2];
172832 }
172833 return obj;
172834 }
172835 function _CoSELayout(_options) {
172836 this.options = extend2(defaults2, _options);
172837 getUserOptions(this.options);
172838 }
172839 var getUserOptions = function getUserOptions2(options2) {
172840 if (options2.nodeRepulsion != null)
172841 CoSEConstants.DEFAULT_REPULSION_STRENGTH = FDLayoutConstants.DEFAULT_REPULSION_STRENGTH = options2.nodeRepulsion;
172842 if (options2.idealEdgeLength != null)
172843 CoSEConstants.DEFAULT_EDGE_LENGTH = FDLayoutConstants.DEFAULT_EDGE_LENGTH = options2.idealEdgeLength;
172844 if (options2.edgeElasticity != null)
172845 CoSEConstants.DEFAULT_SPRING_STRENGTH = FDLayoutConstants.DEFAULT_SPRING_STRENGTH = options2.edgeElasticity;
172846 if (options2.nestingFactor != null)
172847 CoSEConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = FDLayoutConstants.PER_LEVEL_IDEAL_EDGE_LENGTH_FACTOR = options2.nestingFactor;
172848 if (options2.gravity != null)
172849 CoSEConstants.DEFAULT_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_GRAVITY_STRENGTH = options2.gravity;
172850 if (options2.numIter != null)
172851 CoSEConstants.MAX_ITERATIONS = FDLayoutConstants.MAX_ITERATIONS = options2.numIter;
172852 if (options2.gravityRange != null)
172853 CoSEConstants.DEFAULT_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_GRAVITY_RANGE_FACTOR = options2.gravityRange;
172854 if (options2.gravityCompound != null)
172855 CoSEConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_STRENGTH = options2.gravityCompound;
172856 if (options2.gravityRangeCompound != null)
172857 CoSEConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = FDLayoutConstants.DEFAULT_COMPOUND_GRAVITY_RANGE_FACTOR = options2.gravityRangeCompound;
172858 if (options2.initialEnergyOnIncremental != null)
172859 CoSEConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = FDLayoutConstants.DEFAULT_COOLING_FACTOR_INCREMENTAL = options2.initialEnergyOnIncremental;
172860 if (options2.quality == "draft")
172861 LayoutConstants.QUALITY = 0;
172862 else if (options2.quality == "proof")
172863 LayoutConstants.QUALITY = 2;
172864 else
172865 LayoutConstants.QUALITY = 1;
172866 CoSEConstants.NODE_DIMENSIONS_INCLUDE_LABELS = FDLayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = LayoutConstants.NODE_DIMENSIONS_INCLUDE_LABELS = options2.nodeDimensionsIncludeLabels;
172867 CoSEConstants.DEFAULT_INCREMENTAL = FDLayoutConstants.DEFAULT_INCREMENTAL = LayoutConstants.DEFAULT_INCREMENTAL = !options2.randomize;
172868 CoSEConstants.ANIMATE = FDLayoutConstants.ANIMATE = LayoutConstants.ANIMATE = options2.animate;
172869 CoSEConstants.TILE = options2.tile;
172870 CoSEConstants.TILING_PADDING_VERTICAL = typeof options2.tilingPaddingVertical === "function" ? options2.tilingPaddingVertical.call() : options2.tilingPaddingVertical;
172871 CoSEConstants.TILING_PADDING_HORIZONTAL = typeof options2.tilingPaddingHorizontal === "function" ? options2.tilingPaddingHorizontal.call() : options2.tilingPaddingHorizontal;
172872 };
172873 _CoSELayout.prototype.run = function() {
172874 var ready;
172875 var frameId;
172876 var options2 = this.options;
172877 this.idToLNode = {};
172878 var layout2 = this.layout = new CoSELayout();
172879 var self2 = this;
172880 self2.stopped = false;
172881 this.cy = this.options.cy;
172882 this.cy.trigger({ type: "layoutstart", layout: this });
172883 var gm = layout2.newGraphManager();
172884 this.gm = gm;
172885 var nodes2 = this.options.eles.nodes();
172886 var edges2 = this.options.eles.edges();
172887 this.root = gm.addRoot();
172888 this.processChildrenList(this.root, this.getTopMostNodes(nodes2), layout2);
172889 for (var i2 = 0; i2 < edges2.length; i2++) {
172890 var edge = edges2[i2];
172891 var sourceNode = this.idToLNode[edge.data("source")];
172892 var targetNode = this.idToLNode[edge.data("target")];
172893 if (sourceNode !== targetNode && sourceNode.getEdgesBetween(targetNode).length == 0) {
172894 var e1 = gm.add(layout2.newEdge(), sourceNode, targetNode);
172895 e1.id = edge.id();
172896 }
172897 }
172898 var getPositions = function getPositions2(ele, i3) {
172899 if (typeof ele === "number") {
172900 ele = i3;
172901 }
172902 var theId = ele.data("id");
172903 var lNode = self2.idToLNode[theId];
172904 return {
172905 x: lNode.getRect().getCenterX(),
172906 y: lNode.getRect().getCenterY()
172907 };
172908 };
172909 var iterateAnimated = function iterateAnimated2() {
172910 var afterReposition = function afterReposition2() {
172911 if (options2.fit) {
172912 options2.cy.fit(options2.eles, options2.padding);
172913 }
172914 if (!ready) {
172915 ready = true;
172916 self2.cy.one("layoutready", options2.ready);
172917 self2.cy.trigger({ type: "layoutready", layout: self2 });
172918 }
172919 };
172920 var ticksPerFrame = self2.options.refresh;
172921 var isDone;
172922 for (var i3 = 0; i3 < ticksPerFrame && !isDone; i3++) {
172923 isDone = self2.stopped || self2.layout.tick();
172924 }
172925 if (isDone) {
172926 if (layout2.checkLayoutSuccess() && !layout2.isSubLayout) {
172927 layout2.doPostLayout();
172928 }
172929 if (layout2.tilingPostLayout) {
172930 layout2.tilingPostLayout();
172931 }
172932 layout2.isLayoutFinished = true;
172933 self2.options.eles.nodes().positions(getPositions);
172934 afterReposition();
172935 self2.cy.one("layoutstop", self2.options.stop);
172936 self2.cy.trigger({ type: "layoutstop", layout: self2 });
172937 if (frameId) {
172938 cancelAnimationFrame(frameId);
172939 }
172940 ready = false;
172941 return;
172942 }
172943 var animationData = self2.layout.getPositionsData();
172944 options2.eles.nodes().positions(function(ele, i4) {
172945 if (typeof ele === "number") {
172946 ele = i4;
172947 }
172948 if (!ele.isParent()) {
172949 var theId = ele.id();
172950 var pNode = animationData[theId];
172951 var temp = ele;
172952 while (pNode == null) {
172953 pNode = animationData[temp.data("parent")] || animationData["DummyCompound_" + temp.data("parent")];
172954 animationData[theId] = pNode;
172955 temp = temp.parent()[0];
172956 if (temp == void 0) {
172957 break;
172958 }
172959 }
172960 if (pNode != null) {
172961 return {
172962 x: pNode.x,
172963 y: pNode.y
172964 };
172965 } else {
172966 return {
172967 x: ele.position("x"),
172968 y: ele.position("y")
172969 };
172970 }
172971 }
172972 });
172973 afterReposition();
172974 frameId = requestAnimationFrame(iterateAnimated2);
172975 };
172976 layout2.addListener("layoutstarted", function() {
172977 if (self2.options.animate === "during") {
172978 frameId = requestAnimationFrame(iterateAnimated);
172979 }
172980 });
172981 layout2.runLayout();
172982 if (this.options.animate !== "during") {
172983 self2.options.eles.nodes().not(":parent").layoutPositions(self2, self2.options, getPositions);
172984 ready = false;
172985 }
172986 return this;
172987 };
172988 _CoSELayout.prototype.getTopMostNodes = function(nodes2) {
172989 var nodesMap = {};
172990 for (var i2 = 0; i2 < nodes2.length; i2++) {
172991 nodesMap[nodes2[i2].id()] = true;
172992 }
172993 var roots = nodes2.filter(function(ele, i3) {
172994 if (typeof ele === "number") {
172995 ele = i3;
172996 }
172997 var parent = ele.parent()[0];
172998 while (parent != null) {
172999 if (nodesMap[parent.id()]) {
173000 return false;
173001 }
173002 parent = parent.parent()[0];
173003 }
173004 return true;
173005 });
173006 return roots;
173007 };
173008 _CoSELayout.prototype.processChildrenList = function(parent, children2, layout2) {
173009 var size2 = children2.length;
173010 for (var i2 = 0; i2 < size2; i2++) {
173011 var theChild = children2[i2];
173012 var children_of_children = theChild.children();
173013 var theNode;
173014 var dimensions = theChild.layoutDimensions({
173015 nodeDimensionsIncludeLabels: this.options.nodeDimensionsIncludeLabels
173016 });
173017 if (theChild.outerWidth() != null && theChild.outerHeight() != null) {
173018 theNode = parent.add(new CoSENode(layout2.graphManager, new PointD(theChild.position("x") - dimensions.w / 2, theChild.position("y") - dimensions.h / 2), new DimensionD2(parseFloat(dimensions.w), parseFloat(dimensions.h))));
173019 } else {
173020 theNode = parent.add(new CoSENode(this.graphManager));
173021 }
173022 theNode.id = theChild.data("id");
173023 theNode.paddingLeft = parseInt(theChild.css("padding"));
173024 theNode.paddingTop = parseInt(theChild.css("padding"));
173025 theNode.paddingRight = parseInt(theChild.css("padding"));
173026 theNode.paddingBottom = parseInt(theChild.css("padding"));
173027 if (this.options.nodeDimensionsIncludeLabels) {
173028 if (theChild.isParent()) {
173029 var labelWidth = theChild.boundingBox({ includeLabels: true, includeNodes: false }).w;
173030 var labelHeight = theChild.boundingBox({ includeLabels: true, includeNodes: false }).h;
173031 var labelPos = theChild.css("text-halign");
173032 theNode.labelWidth = labelWidth;
173033 theNode.labelHeight = labelHeight;
173034 theNode.labelPos = labelPos;
173035 }
173036 }
173037 this.idToLNode[theChild.data("id")] = theNode;
173038 if (isNaN(theNode.rect.x)) {
173039 theNode.rect.x = 0;
173040 }
173041 if (isNaN(theNode.rect.y)) {
173042 theNode.rect.y = 0;
173043 }
173044 if (children_of_children != null && children_of_children.length > 0) {
173045 var theNewGraph;
173046 theNewGraph = layout2.getGraphManager().add(layout2.newGraph(), theNode);
173047 this.processChildrenList(theNewGraph, children_of_children, layout2);
173048 }
173049 }
173050 };
173051 _CoSELayout.prototype.stop = function() {
173052 this.stopped = true;
173053 return this;
173054 };
173055 var register = function register2(cytoscape2) {
173056 cytoscape2("layout", "cose-bilkent", _CoSELayout);
173057 };
173058 if (typeof cytoscape !== "undefined") {
173059 register(cytoscape);
173060 }
173061 module3.exports = register;
173062 }
173063 /******/
173064 ])
173065 );
173066 });
173067 })(cytoscapeCoseBilkent);
173068 const coseBilkent = /* @__PURE__ */ getDefaultExportFromCjs(cytoscapeCoseBilkentExports);
173069 cytoscape$1.use(coseBilkent);
173070 function drawNodes(svg2, mindmap2, section, conf2) {
173071 svgDraw.drawNode(svg2, mindmap2, section, conf2);
173072 if (mindmap2.children) {
173073 mindmap2.children.forEach((child, index2) => {
173074 drawNodes(svg2, child, section < 0 ? index2 : section, conf2);
173075 });
173076 }
173077 }
173078 function drawEdges(edgesEl, cy) {
173079 cy.edges().map((edge, id2) => {
173080 const data = edge.data();
173081 if (edge[0]._private.bodyBounds) {
173082 const bounds2 = edge[0]._private.rscratch;
173083 log$1.trace("Edge: ", id2, data);
173084 edgesEl.insert("path").attr(
173085 "d",
173086 `M ${bounds2.startX},${bounds2.startY} L ${bounds2.midX},${bounds2.midY} L${bounds2.endX},${bounds2.endY} `
173087 ).attr("class", "edge section-edge-" + data.section + " edge-depth-" + data.depth);
173088 }
173089 });
173090 }
173091 function addNodes(mindmap2, cy, conf2, level) {
173092 cy.add({
173093 group: "nodes",
173094 data: {
173095 id: mindmap2.id,
173096 labelText: mindmap2.descr,
173097 height: mindmap2.height,
173098 width: mindmap2.width,
173099 level,
173100 nodeId: mindmap2.id,
173101 padding: mindmap2.padding,
173102 type: mindmap2.type
173103 },
173104 position: {
173105 x: mindmap2.x,
173106 y: mindmap2.y
173107 }
173108 });
173109 if (mindmap2.children) {
173110 mindmap2.children.forEach((child) => {
173111 addNodes(child, cy, conf2, level + 1);
173112 cy.add({
173113 group: "edges",
173114 data: {
173115 id: `${mindmap2.id}_${child.id}`,
173116 source: mindmap2.id,
173117 target: child.id,
173118 depth: level,
173119 section: child.section
173120 }
173121 });
173122 });
173123 }
173124 }
173125 function layoutMindmap(node2, conf2) {
173126 return new Promise((resolve) => {
173127 const renderEl = select("body").append("div").attr("id", "cy").attr("style", "display:none");
173128 const cy = cytoscape$1({
173129 container: document.getElementById("cy"),
173130 // container to render in
173131 style: [
173132 {
173133 selector: "edge",
173134 style: {
173135 "curve-style": "bezier"
173136 }
173137 }
173138 ]
173139 });
173140 renderEl.remove();
173141 addNodes(node2, cy, conf2, 0);
173142 cy.nodes().forEach(function(n) {
173143 n.layoutDimensions = () => {
173144 const data = n.data();
173145 return { w: data.width, h: data.height };
173146 };
173147 });
173148 cy.layout({
173149 name: "cose-bilkent",
173150 quality: "proof",
173151 // headless: true,
173152 styleEnabled: false,
173153 animate: false
173154 }).run();
173155 cy.ready((e) => {
173156 log$1.info("Ready", e);
173157 resolve(cy);
173158 });
173159 });
173160 }
173161 function positionNodes(cy) {
173162 cy.nodes().map((node2, id2) => {
173163 const data = node2.data();
173164 data.x = node2.position().x;
173165 data.y = node2.position().y;
173166 svgDraw.positionNode(data);
173167 const el = getElementById(data.nodeId);
173168 log$1.info("Id:", id2, "Position: (", node2.position().x, ", ", node2.position().y, ")", data);
173169 el.attr(
173170 "transform",
173171 `translate(${node2.position().x - data.width / 2}, ${node2.position().y - data.height / 2})`
173172 );
173173 el.attr("attr", `apa-${id2})`);
173174 });
173175 }
173176 const draw = async (text2, id2, version2, diagObj) => {
173177 const conf2 = getConfig$1();
173178 conf2.htmlLabels = false;
173179 diagObj.db.clear();
173180 diagObj.parser.parse(text2);
173181 log$1.debug("Rendering mindmap diagram\n" + text2, diagObj.parser);
173182 const securityLevel = getConfig$1().securityLevel;
173183 let sandboxElement;
173184 if (securityLevel === "sandbox") {
173185 sandboxElement = select("#i" + id2);
173186 }
173187 const root2 = securityLevel === "sandbox" ? select(sandboxElement.nodes()[0].contentDocument.body) : select("body");
173188 const svg2 = root2.select("#" + id2);
173189 svg2.append("g");
173190 const mm = diagObj.db.getMindmap();
173191 const edgesElem = svg2.append("g");
173192 edgesElem.attr("class", "mindmap-edges");
173193 const nodesElem = svg2.append("g");
173194 nodesElem.attr("class", "mindmap-nodes");
173195 drawNodes(nodesElem, mm, -1, conf2);
173196 const cy = await layoutMindmap(mm, conf2);
173197 drawEdges(edgesElem, cy);
173198 positionNodes(cy);
173199 setupGraphViewbox$1(void 0, svg2, conf2.mindmap.padding, conf2.mindmap.useMaxWidth);
173200 };
173201 const mindmapRenderer = {
173202 draw
173203 };
173204 const genSections = (options2) => {
173205 let sections2 = "";
173206 for (let i2 = 0; i2 < options2.THEME_COLOR_LIMIT; i2++) {
173207 options2["lineColor" + i2] = options2["lineColor" + i2] || options2["cScaleInv" + i2];
173208 if (isDark$1(options2["lineColor" + i2])) {
173209 options2["lineColor" + i2] = lighten$1(options2["lineColor" + i2], 20);
173210 } else {
173211 options2["lineColor" + i2] = darken$1(options2["lineColor" + i2], 20);
173212 }
173213 }
173214 for (let i2 = 0; i2 < options2.THEME_COLOR_LIMIT; i2++) {
173215 const sw = "" + (17 - 3 * i2);
173216 sections2 += `
173217 .section-${i2 - 1} rect, .section-${i2 - 1} path, .section-${i2 - 1} circle, .section-${i2 - 1} polygon, .section-${i2 - 1} path {
173218 fill: ${options2["cScale" + i2]};
173219 }
173220 .section-${i2 - 1} text {
173221 fill: ${options2["cScaleLabel" + i2]};
173222 }
173223 .node-icon-${i2 - 1} {
173224 font-size: 40px;
173225 color: ${options2["cScaleLabel" + i2]};
173226 }
173227 .section-edge-${i2 - 1}{
173228 stroke: ${options2["cScale" + i2]};
173229 }
173230 .edge-depth-${i2 - 1}{
173231 stroke-width: ${sw};
173232 }
173233 .section-${i2 - 1} line {
173234 stroke: ${options2["cScaleInv" + i2]} ;
173235 stroke-width: 3;
173236 }
173237
173238 .disabled, .disabled circle, .disabled text {
173239 fill: lightgray;
173240 }
173241 .disabled text {
173242 fill: #efefef;
173243 }
173244 `;
173245 }
173246 return sections2;
173247 };
173248 const getStyles = (options2) => `
173249 .edge {
173250 stroke-width: 3;
173251 }
173252 ${genSections(options2)}
173253 .section-root rect, .section-root path, .section-root circle, .section-root polygon {
173254 fill: ${options2.git0};
173255 }
173256 .section-root text {
173257 fill: ${options2.gitBranchLabel0};
173258 }
173259 .icon-container {
173260 height:100%;
173261 display: flex;
173262 justify-content: center;
173263 align-items: center;
173264 }
173265 .edge {
173266 fill: none;
173267 }
173268 .mindmap-node-label {
173269 dy: 1em;
173270 alignment-baseline: middle;
173271 text-anchor: middle;
173272 dominant-baseline: middle;
173273 text-align: center;
173274 }
173275`;
173276 const mindmapStyles = getStyles;
173277 const diagram = {
173278 db: mindmapDb,
173279 renderer: mindmapRenderer,
173280 parser: mindmapParser,
173281 styles: mindmapStyles
173282 };
173283 const mindmapDefinition = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
173284 __proto__: null,
173285 diagram
173286 }, Symbol.toStringTag, { value: "Module" }));
173287 return mermaid;
173288});