textmode.js 0.2.0-beta.1 → 0.2.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
- var X = Object.defineProperty;
2
- var j = (E, A, t) => A in E ? X(E, A, { enumerable: !0, configurable: !0, writable: !0, value: t }) : E[A] = t;
3
- var n = (E, A, t) => j(E, typeof A != "symbol" ? A + "" : A, t);
1
+ var J = Object.defineProperty;
2
+ var X = (E, A, t) => A in E ? J(E, A, { enumerable: !0, configurable: !0, writable: !0, value: t }) : E[A] = t;
3
+ var n = (E, A, t) => X(E, typeof A != "symbol" ? A + "" : A, t);
4
4
  class f extends Error {
5
5
  constructor(A, t = {}) {
6
6
  super(f.A(A, t)), this.name = "TextmodeError";
@@ -33,13 +33,13 @@ class f extends Error {
33
33
  return A + "";
34
34
  }
35
35
  }
36
- var K = ((E) => (E[E.SILENT = 0] = "SILENT", E[E.WARNING = 1] = "WARNING", E[E.ERROR = 2] = "ERROR", E[E.THROW = 3] = "THROW", E))(K || {});
37
- const y = class y {
36
+ var j = ((E) => (E[E.SILENT = 0] = "SILENT", E[E.WARNING = 1] = "WARNING", E[E.ERROR = 2] = "ERROR", E[E.THROW = 3] = "THROW", E))(j || {});
37
+ const x = class x {
38
38
  constructor() {
39
39
  n(this, "h", { globalLevel: 3 });
40
40
  }
41
41
  static C() {
42
- return y.o || (y.o = new y()), y.o;
42
+ return x.o || (x.o = new x()), x.o;
43
43
  }
44
44
  D(A, t) {
45
45
  const e = "%c[textmode.js] Oops! (╯°□°)╯︵ Something went wrong in your code.", B = "color: #f44336; font-weight: bold; background: #ffebee; padding: 2px 6px; border-radius: 3px;";
@@ -61,16 +61,16 @@ const y = class y {
61
61
  this.h.globalLevel = A;
62
62
  }
63
63
  };
64
- n(y, "o", null);
65
- let S = y;
66
- const T = S.C(), J = /* @__PURE__ */ new WeakMap();
67
- function _(E, A) {
68
- J.set(E, A);
64
+ n(x, "o", null);
65
+ let S = x;
66
+ const T = S.C(), H = /* @__PURE__ */ new WeakMap();
67
+ function M(E, A) {
68
+ H.set(E, A);
69
69
  }
70
70
  function G(E) {
71
- return J.get(E);
71
+ return H.get(E);
72
72
  }
73
- class H {
73
+ class K {
74
74
  constructor(A, t, e = t, B = 1, r = {}) {
75
75
  n(this, "I");
76
76
  n(this, "u");
@@ -139,12 +139,12 @@ class H {
139
139
  const A = this.m;
140
140
  this.$ = { framebuffer: A.getParameter(A.FRAMEBUFFER_BINDING), viewport: A.getParameter(A.VIEWPORT) }, A.bindFramebuffer(A.FRAMEBUFFER, this._), this.M = Array(this.G).fill(null);
141
141
  for (let t = 0; t < this.G; t++) A.clearBufferfv(A.COLOR, t, new Float32Array([0, 0, 0, 0]));
142
- A.viewport(0, 0, this.I, this.u), _(A, [0, 0, this.I, this.u]);
142
+ A.viewport(0, 0, this.I, this.u), M(A, [0, 0, this.I, this.u]);
143
143
  }
144
144
  k() {
145
145
  if (!this.$) return;
146
146
  const A = this.m;
147
- A.bindFramebuffer(A.FRAMEBUFFER, this.$.framebuffer), A.viewport(...this.$.viewport), _(A, this.$.viewport), this.$ = null;
147
+ A.bindFramebuffer(A.FRAMEBUFFER, this.$.framebuffer), A.viewport(...this.$.viewport), M(A, this.$.viewport), this.$ = null;
148
148
  }
149
149
  W() {
150
150
  const A = this.m;
@@ -245,7 +245,7 @@ class Z {
245
245
  else if (t instanceof WebGLTexture) {
246
246
  const B = this.BA();
247
247
  this.m.uniform1i(e, B), this.m.activeTexture(this.m.TEXTURE0 + B), this.m.bindTexture(this.m.TEXTURE_2D, t);
248
- } else if (t instanceof H) {
248
+ } else if (t instanceof K) {
249
249
  const B = this.BA();
250
250
  this.m.uniform1i(e, B), this.m.activeTexture(this.m.TEXTURE0 + B), this.m.bindTexture(this.m.TEXTURE_2D, t.texture);
251
251
  } else if (typeof t == "object" && "texture" in t) {
@@ -273,89 +273,72 @@ class q {
273
273
  n(this, "gA", !1);
274
274
  n(this, "oA", !1);
275
275
  n(this, "aA", !1);
276
- n(this, "hA", [0, 0]);
277
- n(this, "cA", []);
278
- }
279
- CA() {
280
- this.cA.push({ lineWeight: this.sA, rotation: this.EA, charRotation: [...this.hA], flipHorizontally: this.gA, flipVertically: this.oA, invert: this.aA, character: [...this.iA], charColor: [...this.rA], cellColor: [...this.nA] });
276
+ n(this, "cA", [0, 0]);
277
+ n(this, "hA", [0, 0, 0, 1]);
278
+ n(this, "CA", []);
281
279
  }
282
280
  DA() {
283
- const A = this.cA.pop();
284
- A ? (this.sA = A.lineWeight, this.EA = A.rotation, this.hA = A.charRotation, this.gA = A.flipHorizontally, this.oA = A.flipVertically, this.aA = A.invert, this.iA = A.character, this.rA = A.charColor, this.nA = A.cellColor) : console.warn("pop() called without matching push()");
281
+ this.CA.push({ lineWeight: this.sA, rotation: this.EA, charRotation: [...this.cA], flipHorizontally: this.gA, flipVertically: this.oA, invert: this.aA, character: [...this.iA], charColor: [...this.rA], cellColor: [...this.nA] });
285
282
  }
286
283
  lA() {
287
- this.cA = [], this.EA = 0;
284
+ const A = this.CA.pop();
285
+ A ? (this.sA = A.lineWeight, this.EA = A.rotation, this.cA = A.charRotation, this.gA = A.flipHorizontally, this.oA = A.flipVertically, this.aA = A.invert, this.iA = A.character, this.rA = A.charColor, this.nA = A.cellColor) : console.warn("pop() called without matching push()");
286
+ }
287
+ PA() {
288
+ this.CA = [], this.EA = 0;
288
289
  }
289
- PA(A) {
290
- A.lineWeight = this.sA, A.rotation = this.EA, A.character[0] = this.iA[0], A.character[1] = this.iA[1], A.character[2] = this.iA[2], A.charColor[0] = this.rA[0], A.charColor[1] = this.rA[1], A.charColor[2] = this.rA[2], A.charColor[3] = this.rA[3], A.bgColor[0] = this.nA[0], A.bgColor[1] = this.nA[1], A.bgColor[2] = this.nA[2], A.bgColor[3] = this.nA[3], A.flipHorizontally = this.gA, A.flipVertically = this.oA, A.invert = this.aA, A.charRotation[0] = this.hA[0], A.charRotation[1] = this.hA[1];
290
+ IA(A) {
291
+ A.lineWeight = this.sA, A.rotation = this.EA, A.character[0] = this.iA[0], A.character[1] = this.iA[1], A.character[2] = this.iA[2], A.charColor[0] = this.rA[0], A.charColor[1] = this.rA[1], A.charColor[2] = this.rA[2], A.charColor[3] = this.rA[3], A.bgColor[0] = this.nA[0], A.bgColor[1] = this.nA[1], A.bgColor[2] = this.nA[2], A.bgColor[3] = this.nA[3], A.flipHorizontally = this.gA, A.flipVertically = this.oA, A.invert = this.aA, A.charRotation[0] = this.cA[0], A.charRotation[1] = this.cA[1];
291
292
  }
292
293
  get lineWeight() {
293
294
  return this.sA;
294
295
  }
295
- get rotation() {
296
- return this.EA;
297
- }
298
- get character() {
299
- return this.iA;
300
- }
301
- get charColor() {
302
- return this.rA;
303
- }
304
- get bgColor() {
305
- return this.nA;
306
- }
307
- get flipHorizontally() {
308
- return this.gA;
309
- }
310
- get flipVertically() {
311
- return this.oA;
312
- }
313
- get invert() {
314
- return this.aA;
315
- }
316
- get charRotation() {
296
+ get canvasBackgroundColor() {
317
297
  return this.hA;
318
298
  }
319
- IA(A) {
299
+ uA(A) {
320
300
  this.sA = Math.abs(A);
321
301
  }
322
- uA(A) {
302
+ wA(A) {
323
303
  this.EA = A;
324
304
  }
325
- wA(A) {
305
+ fA(A) {
326
306
  this.iA = A;
327
307
  }
328
- fA(A, t, e, B = 255) {
308
+ dA(A, t, e, B = 255) {
329
309
  this.rA = [A / 255, t / 255, e / 255, B / 255];
330
310
  }
331
- dA(A, t, e, B = 255) {
311
+ pA(A, t, e, B = 255) {
332
312
  this.nA = [A / 255, t / 255, e / 255, B / 255];
333
313
  }
334
- pA(A) {
314
+ mA(A) {
335
315
  this.gA = A;
336
316
  }
337
- mA(A) {
317
+ _A(A) {
338
318
  this.oA = A;
339
319
  }
340
- _A(A) {
320
+ vA(A) {
341
321
  this.aA = A;
342
322
  }
343
- vA(A) {
323
+ xA(A) {
344
324
  const t = 255 * A / 360, e = Math.floor(t) / 255, B = Math.round(t - Math.floor(t));
345
- this.hA = [e, B];
325
+ this.cA = [e, B];
326
+ }
327
+ yA(A, t, e, B) {
328
+ this.hA = [A / 255, t / 255, e / 255, B / 255];
346
329
  }
347
330
  }
348
331
  var D = ((E) => (E.RECTANGLE = "rectangle", E.LINE = "line", E.ELLIPSE = "ellipse", E.ARC = "arc", E.TRIANGLE = "triangle", E.BEZIER_CURVE = "bezier_curve", E.CUSTOM = "custom", E))(D || {});
349
332
  class AA {
350
333
  constructor(A) {
351
334
  n(this, "m");
352
- n(this, "xA", /* @__PURE__ */ new Map());
335
+ n(this, "bA", /* @__PURE__ */ new Map());
353
336
  this.m = A;
354
337
  }
355
- yA(A, t, e, B) {
338
+ GA(A, t, e, B) {
356
339
  const r = this.m;
357
- let i = this.xA.get(A);
358
- i || (i = /* @__PURE__ */ new Map(), this.xA.set(A, i));
340
+ let i = this.bA.get(A);
341
+ i || (i = /* @__PURE__ */ new Map(), this.bA.set(A, i));
359
342
  let s = i.get(t) || null;
360
343
  if (!s) {
361
344
  s = r.createVertexArray(), i.set(t, s), r.bindVertexArray(s), r.bindBuffer(r.ARRAY_BUFFER, B);
@@ -366,55 +349,55 @@ class AA {
366
349
  }
367
350
  r.bindVertexArray(s);
368
351
  }
369
- bA() {
352
+ $A() {
370
353
  this.m.bindVertexArray(null);
371
354
  }
372
355
  W() {
373
356
  const A = this.m;
374
- for (const [, t] of this.xA) for (const [, e] of t) e && A.deleteVertexArray(e);
375
- this.xA.clear();
357
+ for (const [, t] of this.bA) for (const [, e] of t) e && A.deleteVertexArray(e);
358
+ this.bA.clear();
376
359
  }
377
360
  }
378
361
  class tA {
379
362
  constructor(A) {
380
- n(this, "GA");
363
+ n(this, "MA");
381
364
  n(this, "m");
382
- this.m = A, this.GA = new AA(A);
365
+ this.m = A, this.MA = new AA(A);
383
366
  }
384
- $A(A, t, e) {
367
+ YA(A, t, e) {
385
368
  const { shader: B } = A, r = G(this.m) || this.m.getParameter(this.m.VIEWPORT);
386
369
  B.tA({ u_aspectRatio: r[2] / r[3], u_viewportSize: [r[2], r[3]] });
387
370
  const i = (o) => {
388
- if (!o || !o.MA()) return;
371
+ if (!o || !o.TA()) return;
389
372
  const g = o.unitGeometry, a = o.unitBuffer;
390
373
  try {
391
- this.GA.yA(B.QA, o.type + "", g, a), o.batch.YA(B), o.batch.TA(g.primitiveType, g.vertexCount);
374
+ this.MA.GA(B.QA, o.type + "", g, a), o.batch.zA(B), o.batch.FA(g.primitiveType, g.vertexCount);
392
375
  } finally {
393
- o.batch.zA(B), this.GA.bA(), o.FA();
376
+ o.batch.RA(B), this.MA.$A(), o.SA();
394
377
  }
395
378
  };
396
379
  let s = null, Q = null;
397
380
  for (const o of t) {
398
381
  s !== null && o.type !== s && (i(Q), s = null, Q = null);
399
382
  let g = Q;
400
- g && o.type === s || (g = e.get(o.type) || null, Q = g, s = o.type), g && g.RA(o.params, o.state);
383
+ g && o.type === s || (g = e.get(o.type) || null, Q = g, s = o.type), g && g.OA(o.params, o.state);
401
384
  }
402
385
  i(Q);
403
386
  }
404
387
  }
405
388
  class eA {
406
389
  constructor() {
407
- n(this, "SA", []);
408
- n(this, "OA", 1);
409
- n(this, "LA", 0);
410
- }
411
- UA(A) {
412
- if (this.LA >= this.SA.length) {
413
- const e = { id: this.OA++, type: A, params: {}, state: { lineWeight: 1, rotation: 0, character: [0, 0, 0], charColor: [1, 1, 1, 1], bgColor: [0, 0, 0, 1], flipHorizontally: !1, flipVertically: !1, invert: !1, charRotation: [0, 0] } };
414
- this.SA.push(e);
390
+ n(this, "LA", []);
391
+ n(this, "UA", 1);
392
+ n(this, "kA", 0);
393
+ }
394
+ WA(A) {
395
+ if (this.kA >= this.LA.length) {
396
+ const e = { id: this.UA++, type: A, params: {}, state: { lineWeight: 1, rotation: 0, character: [0, 0, 0], charColor: [1, 1, 1, 1], bgColor: [0, 0, 0, 1], flipHorizontally: !1, flipVertically: !1, invert: !1, charRotation: [0, 0] } };
397
+ this.LA.push(e);
415
398
  }
416
- const t = this.SA[this.LA];
417
- switch (t.id = this.OA++, t.type = A, A) {
399
+ const t = this.LA[this.kA];
400
+ switch (t.id = this.UA++, t.type = A, A) {
418
401
  case D.RECTANGLE:
419
402
  case D.ELLIPSE:
420
403
  t.params && "width" in t.params || (t.params = { x: 0, y: 0, width: 0, height: 0 });
@@ -434,196 +417,196 @@ class eA {
434
417
  default:
435
418
  t.params || (t.params = {});
436
419
  }
437
- return this.LA++, t;
420
+ return this.kA++, t;
438
421
  }
439
- kA(A, t, e, B, r) {
440
- const i = this.UA(D.RECTANGLE);
441
- return i.params.x = A, i.params.y = t, i.params.width = e, i.params.height = B, r.PA(i.state), i.id;
422
+ HA(A, t, e, B, r) {
423
+ const i = this.WA(D.RECTANGLE);
424
+ return i.params.x = A, i.params.y = t, i.params.width = e, i.params.height = B, r.IA(i.state), i.id;
442
425
  }
443
- WA(A, t, e, B, r, i) {
444
- const s = this.UA(D.LINE);
445
- return s.params.x1 = A, s.params.y1 = t, s.params.x2 = e, s.params.y2 = B, s.params.thickness = r, i.PA(s.state), s.id;
426
+ JA(A, t, e, B, r, i) {
427
+ const s = this.WA(D.LINE);
428
+ return s.params.x1 = A, s.params.y1 = t, s.params.x2 = e, s.params.y2 = B, s.params.thickness = r, i.IA(s.state), s.id;
446
429
  }
447
- HA(A, t, e, B, r) {
448
- const i = this.UA(D.ELLIPSE);
449
- return i.params.x = A, i.params.y = t, i.params.width = e, i.params.height = B, r.PA(i.state), i.id;
430
+ VA(A, t, e, B, r) {
431
+ const i = this.WA(D.ELLIPSE);
432
+ return i.params.x = A, i.params.y = t, i.params.width = e, i.params.height = B, r.IA(i.state), i.id;
450
433
  }
451
- JA(A, t, e, B, r, i, s) {
452
- const Q = this.UA(D.ARC);
453
- return Q.params.x = A, Q.params.y = t, Q.params.width = e, Q.params.height = B, Q.params.start = r, Q.params.stop = i, s.PA(Q.state), Q.id;
434
+ KA(A, t, e, B, r, i, s) {
435
+ const Q = this.WA(D.ARC);
436
+ return Q.params.x = A, Q.params.y = t, Q.params.width = e, Q.params.height = B, Q.params.start = r, Q.params.stop = i, s.IA(Q.state), Q.id;
454
437
  }
455
- VA(A, t, e, B, r, i, s) {
456
- const Q = this.UA(D.TRIANGLE);
457
- return Q.params.x1 = A, Q.params.y1 = t, Q.params.x2 = e, Q.params.y2 = B, Q.params.x3 = r, Q.params.y3 = i, s.PA(Q.state), Q.id;
438
+ jA(A, t, e, B, r, i, s) {
439
+ const Q = this.WA(D.TRIANGLE);
440
+ return Q.params.x1 = A, Q.params.y1 = t, Q.params.x2 = e, Q.params.y2 = B, Q.params.x3 = r, Q.params.y3 = i, s.IA(Q.state), Q.id;
458
441
  }
459
- KA(A, t, e, B, r, i, s, Q, o, g) {
460
- const a = this.UA(D.BEZIER_CURVE);
461
- return a.params.x1 = A, a.params.y1 = t, a.params.cp1x = e, a.params.cp1y = B, a.params.cp2x = r, a.params.cp2y = i, a.params.x2 = s, a.params.y2 = Q, a.params.thickness = o, g.PA(a.state), a.id;
442
+ ZA(A, t, e, B, r, i, s, Q, o, g) {
443
+ const a = this.WA(D.BEZIER_CURVE);
444
+ return a.params.x1 = A, a.params.y1 = t, a.params.cp1x = e, a.params.cp1y = B, a.params.cp2x = r, a.params.cp2y = i, a.params.x2 = s, a.params.y2 = Q, a.params.thickness = o, g.IA(a.state), a.id;
462
445
  }
463
446
  get length() {
464
- return this.LA;
447
+ return this.kA;
465
448
  }
466
449
  get isEmpty() {
467
- return this.LA === 0;
450
+ return this.kA === 0;
468
451
  }
469
- jA() {
470
- this.LA = 0;
452
+ NA() {
453
+ this.kA = 0;
471
454
  }
472
455
  [Symbol.iterator]() {
473
456
  let A = 0;
474
- const t = this.LA, e = this.SA;
457
+ const t = this.kA, e = this.LA;
475
458
  return { next: () => A < t ? { value: e[A++], done: !1 } : { value: void 0, done: !0 } };
476
459
  }
477
460
  }
478
- const x = class x {
479
- static ZA(A, t, e = 0) {
461
+ const y = class y {
462
+ static XA(A, t, e = 0) {
480
463
  var i, s, Q, o, g, a, h, l, c, C;
481
- const B = t || new Float32Array(x.FLOATS_PER_INSTANCE);
464
+ const B = t || new Float32Array(y.FLOATS_PER_INSTANCE);
482
465
  let r = e;
483
466
  return B[r++] = A.position[0], B[r++] = A.position[1], B[r++] = A.size[0], B[r++] = A.size[1], B[r++] = A.character[0], B[r++] = A.character[1], B[r++] = A.character[2], B[r++] = A.primaryColor[0], B[r++] = A.primaryColor[1], B[r++] = A.primaryColor[2], B[r++] = A.primaryColor[3], B[r++] = A.secondaryColor[0], B[r++] = A.secondaryColor[1], B[r++] = A.secondaryColor[2], B[r++] = A.secondaryColor[3], B[r++] = A.rotation[0], B[r++] = A.rotation[1], B[r++] = A.transform[0], B[r++] = A.transform[1], B[r++] = A.transform[2], B[r++] = A.globalRotation, B[r++] = A.rotationCenter[0], B[r++] = A.rotationCenter[1], B[r++] = ((i = A.arcAngles) == null ? void 0 : i[0]) || 0, B[r++] = ((s = A.arcAngles) == null ? void 0 : s[1]) || 0, B[r++] = ((Q = A.bezierControlPoint1) == null ? void 0 : Q[0]) || 0, B[r++] = ((o = A.bezierControlPoint1) == null ? void 0 : o[1]) || 0, B[r++] = ((g = A.bezierControlPoint2) == null ? void 0 : g[0]) || 0, B[r++] = ((a = A.bezierControlPoint2) == null ? void 0 : a[1]) || 0, B[r++] = ((h = A.bezierStartPoint) == null ? void 0 : h[0]) || 0, B[r++] = ((l = A.bezierStartPoint) == null ? void 0 : l[1]) || 0, B[r++] = ((c = A.bezierEndPoint) == null ? void 0 : c[0]) || 0, B[r++] = ((C = A.bezierEndPoint) == null ? void 0 : C[1]) || 0, B;
484
467
  }
485
- static NA(A) {
486
- const t = A.length * x.FLOATS_PER_INSTANCE, e = new Float32Array(t);
468
+ static qA(A) {
469
+ const t = A.length * y.FLOATS_PER_INSTANCE, e = new Float32Array(t);
487
470
  for (let B = 0; B < A.length; B++) {
488
- const r = B * x.FLOATS_PER_INSTANCE;
489
- x.ZA(A[B], e, r);
471
+ const r = B * y.FLOATS_PER_INSTANCE;
472
+ y.XA(A[B], e, r);
490
473
  }
491
474
  return e;
492
475
  }
493
476
  };
494
- n(x, "BYTES_PER_INSTANCE", 132), n(x, "FLOATS_PER_INSTANCE", 33);
495
- let v = x;
477
+ n(y, "BYTES_PER_INSTANCE", 132), n(y, "FLOATS_PER_INSTANCE", 33);
478
+ let v = y;
496
479
  const P = class P {
497
480
  };
498
481
  n(P, "STRIDE", v.BYTES_PER_INSTANCE), n(P, "ATTRIBUTES", { a_instancePosition: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 0, divisor: 1 }, a_instanceSize: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 8, divisor: 1 }, a_instanceCharacter: { location: -1, size: 3, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 16, divisor: 1 }, a_instancePrimaryColor: { location: -1, size: 4, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 28, divisor: 1 }, a_instanceSecondaryColor: { location: -1, size: 4, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 44, divisor: 1 }, a_instanceRotation: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 60, divisor: 1 }, a_instanceTransform: { location: -1, size: 3, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 68, divisor: 1 }, a_instanceGlobalRotation: { location: -1, size: 1, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 80, divisor: 1 }, a_instanceRotationCenter: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 84, divisor: 1 }, a_instanceArcAngles: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 92, divisor: 1 }, a_instanceBezierCP1: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 100, divisor: 1 }, a_instanceBezierCP2: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 108, divisor: 1 }, a_instanceBezierStart: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 116, divisor: 1 }, a_instanceBezierEnd: { location: -1, size: 2, type: WebGL2RenderingContext.FLOAT, normalized: !1, stride: P.STRIDE, offset: 124, divisor: 1 } });
499
- let M = P;
482
+ let _ = P;
500
483
  class BA {
501
484
  constructor(A, t = 1e3, e = 1.5) {
502
485
  n(this, "m");
503
- n(this, "XA", []);
504
- n(this, "qA");
505
- n(this, "At");
506
- n(this, "tt", null);
507
- n(this, "et", !0);
508
- n(this, "Bt", 0);
509
- n(this, "Qt", /* @__PURE__ */ new Map());
510
- n(this, "st", null);
511
- this.m = A, this.qA = t, this.At = e, this.Et();
512
- }
513
- RA(A) {
514
- const t = this.XA.length;
515
- return this.XA.push(A), this.et = !0, t;
486
+ n(this, "At", []);
487
+ n(this, "tt");
488
+ n(this, "et");
489
+ n(this, "Bt", null);
490
+ n(this, "Qt", !0);
491
+ n(this, "st", 0);
492
+ n(this, "Et", /* @__PURE__ */ new Map());
493
+ n(this, "it", null);
494
+ this.m = A, this.tt = t, this.et = e, this.rt();
495
+ }
496
+ OA(A) {
497
+ const t = this.At.length;
498
+ return this.At.push(A), this.Qt = !0, t;
516
499
  }
517
500
  get count() {
518
- return this.XA.length;
501
+ return this.At.length;
519
502
  }
520
503
  get isEmpty() {
521
- return this.XA.length === 0;
504
+ return this.At.length === 0;
522
505
  }
523
506
  clear() {
524
- this.XA.length = 0, this.et = !0;
525
- }
526
- it(A) {
527
- if (A <= this.qA) return;
528
- const t = Math.ceil(A * this.At);
529
- this.qA = t, this.Et(), console.log(`InstanceBatch: Grew buffer capacity to ${t} instances`);
507
+ this.At.length = 0, this.Qt = !0;
530
508
  }
531
- Et() {
532
- const A = this.m;
533
- if (this.tt && A.deleteBuffer(this.tt), this.tt = A.createBuffer(), !this.tt) throw Error("Failed to create instance buffer");
534
- const t = this.qA * v.BYTES_PER_INSTANCE;
535
- A.bindBuffer(A.ARRAY_BUFFER, this.tt), A.bufferData(A.ARRAY_BUFFER, t, A.DYNAMIC_DRAW), A.bindBuffer(A.ARRAY_BUFFER, null), this.et = !0, this.Bt = 0;
509
+ nt(A) {
510
+ if (A <= this.tt) return;
511
+ const t = Math.ceil(A * this.et);
512
+ this.tt = t, this.rt(), console.log(`InstanceBatch: Grew buffer capacity to ${t} instances`);
536
513
  }
537
514
  rt() {
538
- if (!this.et || this.XA.length === 0) return;
539
- const A = this.m, t = this.XA.length;
540
- this.it(t), (!this.st || this.st.length < t * v.FLOATS_PER_INSTANCE) && (this.st = new Float32Array(t * v.FLOATS_PER_INSTANCE));
541
- const e = v.NA(this.XA);
542
- A.bindBuffer(A.ARRAY_BUFFER, this.tt), t <= this.Bt ? A.bufferSubData(A.ARRAY_BUFFER, 0, e) : A.bufferData(A.ARRAY_BUFFER, e, A.DYNAMIC_DRAW), A.bindBuffer(A.ARRAY_BUFFER, null), this.et = !1, this.Bt = t;
543
- }
544
- nt(A) {
545
- let t = this.Qt.get(A);
515
+ const A = this.m;
516
+ if (this.Bt && A.deleteBuffer(this.Bt), this.Bt = A.createBuffer(), !this.Bt) throw Error("Failed to create instance buffer");
517
+ const t = this.tt * v.BYTES_PER_INSTANCE;
518
+ A.bindBuffer(A.ARRAY_BUFFER, this.Bt), A.bufferData(A.ARRAY_BUFFER, t, A.DYNAMIC_DRAW), A.bindBuffer(A.ARRAY_BUFFER, null), this.Qt = !0, this.st = 0;
519
+ }
520
+ gt() {
521
+ if (!this.Qt || this.At.length === 0) return;
522
+ const A = this.m, t = this.At.length;
523
+ this.nt(t), (!this.it || this.it.length < t * v.FLOATS_PER_INSTANCE) && (this.it = new Float32Array(t * v.FLOATS_PER_INSTANCE));
524
+ const e = v.qA(this.At);
525
+ A.bindBuffer(A.ARRAY_BUFFER, this.Bt), t <= this.st ? A.bufferSubData(A.ARRAY_BUFFER, 0, e) : A.bufferData(A.ARRAY_BUFFER, e, A.DYNAMIC_DRAW), A.bindBuffer(A.ARRAY_BUFFER, null), this.Qt = !1, this.st = t;
526
+ }
527
+ ot(A) {
528
+ let t = this.Et.get(A);
546
529
  if (!t) {
547
530
  t = /* @__PURE__ */ new Map();
548
531
  const e = this.m;
549
- for (const B in M.ATTRIBUTES) {
532
+ for (const B in _.ATTRIBUTES) {
550
533
  const r = e.getAttribLocation(A, B);
551
534
  r !== -1 && t.set(B, r);
552
535
  }
553
- this.Qt.set(A, t);
536
+ this.Et.set(A, t);
554
537
  }
555
538
  return t;
556
539
  }
557
- YA(A) {
558
- if (!this.tt || this.XA.length === 0) return;
540
+ zA(A) {
541
+ if (!this.Bt || this.At.length === 0) return;
559
542
  const t = this.m, e = A.QA;
560
543
  if (!e) return void console.warn("InstanceBatch: Cannot bind attributes - invalid shader program");
561
- this.rt();
562
- const B = this.nt(e);
563
- t.bindBuffer(t.ARRAY_BUFFER, this.tt);
544
+ this.gt();
545
+ const B = this.ot(e);
546
+ t.bindBuffer(t.ARRAY_BUFFER, this.Bt);
564
547
  for (const [r, i] of B) {
565
- const s = M.ATTRIBUTES[r];
548
+ const s = _.ATTRIBUTES[r];
566
549
  s && (t.enableVertexAttribArray(i), t.vertexAttribPointer(i, s.size, s.type, s.normalized, s.stride, s.offset), t.vertexAttribDivisor(i, s.divisor));
567
550
  }
568
551
  }
569
- zA(A) {
570
- const t = this.m, e = this.nt(A.QA);
552
+ RA(A) {
553
+ const t = this.m, e = this.ot(A.QA);
571
554
  for (const [, B] of e) t.disableVertexAttribArray(B), t.vertexAttribDivisor(B, 0);
572
555
  }
573
- TA(A, t) {
574
- this.XA.length !== 0 && this.m.drawArraysInstanced(A, 0, t, this.XA.length);
556
+ FA(A, t) {
557
+ this.At.length !== 0 && this.m.drawArraysInstanced(A, 0, t, this.At.length);
575
558
  }
576
559
  W() {
577
560
  const A = this.m;
578
- this.tt && (A.deleteBuffer(this.tt), this.tt = null), this.XA.length = 0, this.Qt.clear(), this.st = null;
561
+ this.Bt && (A.deleteBuffer(this.Bt), this.Bt = null), this.At.length = 0, this.Et.clear(), this.it = null;
579
562
  }
580
563
  }
581
564
  class b {
582
565
  constructor(A, t, e, B) {
583
566
  n(this, "m");
584
- n(this, "gt");
585
- n(this, "ot");
567
+ n(this, "ct");
586
568
  n(this, "ht");
587
- n(this, "ct", null);
588
- this.m = A, this.gt = t, this.ot = e, this.ht = B;
569
+ n(this, "Ct");
570
+ n(this, "Dt", null);
571
+ this.m = A, this.ct = t, this.ht = e, this.Ct = B;
589
572
  const r = this.m.createBuffer();
590
573
  if (!r) throw Error("Failed to create unit geometry buffer");
591
- this.m.bindBuffer(this.m.ARRAY_BUFFER, r), this.m.bufferData(this.m.ARRAY_BUFFER, this.ht.vertices, this.m.STATIC_DRAW), this.m.bindBuffer(this.m.ARRAY_BUFFER, null), this.ct = r;
574
+ this.m.bindBuffer(this.m.ARRAY_BUFFER, r), this.m.bufferData(this.m.ARRAY_BUFFER, this.Ct.vertices, this.m.STATIC_DRAW), this.m.bindBuffer(this.m.ARRAY_BUFFER, null), this.Dt = r;
592
575
  }
593
576
  get type() {
594
- return this.ot;
577
+ return this.ht;
595
578
  }
596
579
  get unitGeometry() {
597
- return this.ht;
580
+ return this.Ct;
598
581
  }
599
582
  get unitBuffer() {
600
- return this.ct;
583
+ return this.Dt;
601
584
  }
602
585
  get batch() {
603
- return this.gt;
586
+ return this.ct;
604
587
  }
605
- FA() {
606
- this.gt.clear();
588
+ SA() {
589
+ this.ct.clear();
607
590
  }
608
- MA() {
609
- return !this.gt.isEmpty;
591
+ TA() {
592
+ return !this.ct.isEmpty;
610
593
  }
611
594
  W() {
612
- this.gt.W(), this.ct && (this.m.deleteBuffer(this.ct), this.ct = null);
595
+ this.ct.W(), this.Dt && (this.m.deleteBuffer(this.Dt), this.Dt = null);
613
596
  }
614
- Ct(A, t, e, B, r) {
615
- const i = this.Dt(A, t, e, B, r.rotation || 0);
597
+ lt(A, t, e, B, r) {
598
+ const i = this.Pt(A, t, e, B, r.rotation || 0);
616
599
  return { position: [A, t], size: [e, B], character: r.character || [0, 0, 0], primaryColor: r.charColor || [1, 1, 1, 1], secondaryColor: r.bgColor || [0, 0, 0, 1], rotation: r.charRotation || [0, 0], transform: [r.invert ? 1 : 0, r.flipHorizontally ? 1 : 0, r.flipVertically ? 1 : 0], globalRotation: i.radians, rotationCenter: [i.centerX, i.centerY] };
617
600
  }
618
- lt(A, t) {
601
+ It(A, t) {
619
602
  const e = G(this.m) || [0, 0, this.m.canvas.width, this.m.canvas.height];
620
603
  return { nx: A / e[2] * 2 - 1, ny: 1 - t / e[3] * 2 };
621
604
  }
622
- Pt(A, t, e) {
623
- const B = this.lt(t, e);
605
+ ut(A, t, e) {
606
+ const B = this.It(t, e);
624
607
  A.rotationCenter = [B.nx, B.ny];
625
608
  }
626
- Dt(A, t, e, B, r) {
609
+ Pt(A, t, e, B, r) {
627
610
  const i = G(this.m) || [0, 0, this.m.canvas.width, this.m.canvas.height], s = i[2], Q = i[3];
628
611
  return { centerX: (A + e / 2) / s * 2 - 1, centerY: 1 - (t + B / 2) / Q * 2, radians: -r * Math.PI / 180, aspectRatio: s / Q };
629
612
  }
@@ -633,9 +616,9 @@ class iA extends b {
633
616
  constructor(A, t) {
634
617
  super(A, t, D.RECTANGLE, rA);
635
618
  }
636
- RA(A, t) {
637
- const e = this.Ct(A.x, A.y, A.width, A.height, t);
638
- return this.gt.RA(e);
619
+ OA(A, t) {
620
+ const e = this.lt(A.x, A.y, A.width, A.height, t);
621
+ return this.ct.OA(e);
639
622
  }
640
623
  }
641
624
  const sA = { vertices: new Float32Array([0, -0.5, 0, 0, 1, -0.5, 1, 0, 0, 0.5, 0, 1, 0, 0.5, 0, 1, 1, -0.5, 1, 0, 1, 0.5, 1, 1]), vertexCount: 6, primitiveType: WebGL2RenderingContext.TRIANGLES, stride: 16, attributes: { position: { size: 2, offset: 0 }, texCoord: { size: 2, offset: 8 } } };
@@ -643,9 +626,9 @@ class EA extends b {
643
626
  constructor(A, t) {
644
627
  super(A, t, D.LINE, sA);
645
628
  }
646
- RA(A, t) {
647
- const e = A.x2 - A.x1, B = A.y2 - A.y1, r = Math.hypot(e, B), i = Math.atan2(B, e), s = A.thickness || t.lineWeight || 1, Q = A.x1 + e / 2, o = A.y1 + B / 2, g = Q - r / 2, a = o, h = { character: t.character, charColor: t.charColor, bgColor: t.bgColor, charRotation: t.charRotation, flipHorizontally: t.flipHorizontally, flipVertically: t.flipVertically, invert: t.invert, rotation: (t.rotation || 0) + 180 * i / Math.PI, lineWeight: s }, l = this.Ct(g, a, r, s, h);
648
- return this.Pt(l, Q, o), this.gt.RA(l);
629
+ OA(A, t) {
630
+ const e = A.x2 - A.x1, B = A.y2 - A.y1, r = Math.hypot(e, B), i = Math.atan2(B, e), s = A.thickness || t.lineWeight || 1, Q = A.x1 + e / 2, o = A.y1 + B / 2, g = Q - r / 2, a = o, h = { character: t.character, charColor: t.charColor, bgColor: t.bgColor, charRotation: t.charRotation, flipHorizontally: t.flipHorizontally, flipVertically: t.flipVertically, invert: t.invert, rotation: (t.rotation || 0) + 180 * i / Math.PI, lineWeight: s }, l = this.lt(g, a, r, s, h);
631
+ return this.ut(l, Q, o), this.ct.OA(l);
649
632
  }
650
633
  }
651
634
  const QA = { vertices: function(E = 32) {
@@ -660,9 +643,9 @@ class nA extends b {
660
643
  constructor(A, t) {
661
644
  super(A, t, D.ELLIPSE, QA);
662
645
  }
663
- RA(A, t) {
664
- const e = this.Ct(A.x, A.y, A.width, A.height, t);
665
- return this.Pt(e, A.x, A.y), this.gt.RA(e);
646
+ OA(A, t) {
647
+ const e = this.lt(A.x, A.y, A.width, A.height, t);
648
+ return this.ut(e, A.x, A.y), this.ct.OA(e);
666
649
  }
667
650
  }
668
651
  let oA = { vertices: function(E) {
@@ -677,9 +660,9 @@ class gA extends b {
677
660
  constructor(A, t) {
678
661
  super(A, t, D.ARC, oA);
679
662
  }
680
- RA(A, t) {
681
- const e = A.x - A.width / 2, B = A.y - A.height / 2, r = A.start * Math.PI / 180, i = A.stop * Math.PI / 180, s = this.Ct(e, B, A.width, A.height, t);
682
- return this.Pt(s, A.x, A.y), s.arcAngles = [r, i], this.gt.RA(s);
663
+ OA(A, t) {
664
+ const e = A.x - A.width / 2, B = A.y - A.height / 2, r = A.start * Math.PI / 180, i = A.stop * Math.PI / 180, s = this.lt(e, B, A.width, A.height, t);
665
+ return this.ut(s, A.x, A.y), s.arcAngles = [r, i], this.ct.OA(s);
683
666
  }
684
667
  }
685
668
  const aA = { vertices: new Float32Array([0, 0, 0, 0, 1, 0, 1, 0, 0.5, 1, 0.5, 1]), vertexCount: 3, primitiveType: WebGL2RenderingContext.TRIANGLES, stride: 16, attributes: { position: { size: 2, offset: 0 }, texCoord: { size: 2, offset: 8 } } };
@@ -687,9 +670,9 @@ class hA extends b {
687
670
  constructor(A, t) {
688
671
  super(A, t, D.TRIANGLE, aA);
689
672
  }
690
- RA(A, t) {
691
- const e = Math.min(A.x1, A.x2, A.x3), B = Math.max(A.x1, A.x2, A.x3), r = Math.min(A.y1, A.y2, A.y3), i = B - e, s = Math.max(A.y1, A.y2, A.y3) - r, Q = this.Ct(e, r, i, s, t), o = e + 0.5 * i, g = r + s * (1 / 3);
692
- return this.Pt(Q, o, g), this.gt.RA(Q);
673
+ OA(A, t) {
674
+ const e = Math.min(A.x1, A.x2, A.x3), B = Math.max(A.x1, A.x2, A.x3), r = Math.min(A.y1, A.y2, A.y3), i = B - e, s = Math.max(A.y1, A.y2, A.y3) - r, Q = this.lt(e, r, i, s, t), o = e + 0.5 * i, g = r + s * (1 / 3);
675
+ return this.ut(Q, o, g), this.ct.OA(Q);
693
676
  }
694
677
  }
695
678
  function L(E, A, t, e, B) {
@@ -708,88 +691,88 @@ class lA extends b {
708
691
  constructor(A, t) {
709
692
  super(A, t, D.BEZIER_CURVE, cA);
710
693
  }
711
- RA(A, t) {
712
- const e = t.lineWeight || 1, B = L(0.5, A.x1, A.cp1x, A.cp2x, A.x2), r = L(0.5, A.y1, A.cp1y, A.cp2y, A.y2), i = { character: t.character, charColor: t.charColor, bgColor: t.bgColor, charRotation: t.charRotation, flipHorizontally: t.flipHorizontally, flipVertically: t.flipVertically, invert: t.invert, rotation: t.rotation || 0, lineWeight: e }, s = this.Ct(0, 0, 1, e, i);
713
- return this.Pt(s, B, r), s.bezierStartPoint = [A.x1, A.y1], s.bezierControlPoint1 = [A.cp1x, A.cp1y], s.bezierControlPoint2 = [A.cp2x, A.cp2y], s.bezierEndPoint = [A.x2, A.y2], this.gt.RA(s);
694
+ OA(A, t) {
695
+ const e = t.lineWeight || 1, B = L(0.5, A.x1, A.cp1x, A.cp2x, A.x2), r = L(0.5, A.y1, A.cp1y, A.cp2y, A.y2), i = { character: t.character, charColor: t.charColor, bgColor: t.bgColor, charRotation: t.charRotation, flipHorizontally: t.flipHorizontally, flipVertically: t.flipVertically, invert: t.invert, rotation: t.rotation || 0, lineWeight: e }, s = this.lt(0, 0, 1, e, i);
696
+ return this.ut(s, B, r), s.bezierStartPoint = [A.x1, A.y1], s.bezierControlPoint1 = [A.cp1x, A.cp1y], s.bezierControlPoint2 = [A.cp2x, A.cp2y], s.bezierEndPoint = [A.x2, A.y2], this.ct.OA(s);
714
697
  }
715
698
  }
716
699
  class CA {
717
700
  constructor(A) {
718
701
  n(this, "m");
719
- n(this, "It", null);
720
- n(this, "ut", null);
721
702
  n(this, "wt", null);
722
- n(this, "ft", /* @__PURE__ */ new Map());
723
- n(this, "dt");
724
- n(this, "_t");
703
+ n(this, "ft", null);
704
+ n(this, "dt", null);
705
+ n(this, "_t", /* @__PURE__ */ new Map());
725
706
  n(this, "vt");
726
- this.m = A, this.vt = new q(), this.dt = new tA(A), this._t = new eA(), this.ut = A.createBuffer(), A.bindBuffer(A.ARRAY_BUFFER, this.ut), A.bufferData(A.ARRAY_BUFFER, new Float32Array([-1, -1, 0, 0, 1, -1, 1, 0, -1, 1, 0, 1, 1, -1, 1, 0, 1, 1, 1, 1, -1, 1, 0, 1]), A.STATIC_DRAW), this.wt = A.createBuffer(), this.m.enable(this.m.BLEND), this.m.blendEquation(this.m.FUNC_ADD), this.m.blendFunc(this.m.ONE, this.m.ONE_MINUS_SRC_ALPHA), _(this.m, [0, 0, this.m.canvas.width, this.m.canvas.height]);
707
+ n(this, "xt");
708
+ n(this, "yt");
709
+ this.m = A, this.yt = new q(), this.vt = new tA(A), this.xt = new eA(), this.ft = A.createBuffer(), A.bindBuffer(A.ARRAY_BUFFER, this.ft), A.bufferData(A.ARRAY_BUFFER, new Float32Array([-1, -1, 0, 0, 1, -1, 1, 0, -1, 1, 0, 1, 1, -1, 1, 0, 1, 1, 1, 1, -1, 1, 0, 1]), A.STATIC_DRAW), this.dt = A.createBuffer(), M(this.m, [0, 0, this.m.canvas.width, this.m.canvas.height]);
727
710
  }
728
- xt(A) {
729
- let t = this.ft.get(A);
711
+ bt(A) {
712
+ let t = this._t.get(A);
730
713
  if (t) return t;
731
714
  const e = new BA(this.m);
732
- return t = (0, { [D.RECTANGLE]: () => new iA(this.m, e), [D.LINE]: () => new EA(this.m, e), [D.ELLIPSE]: () => new nA(this.m, e), [D.ARC]: () => new gA(this.m, e), [D.TRIANGLE]: () => new hA(this.m, e), [D.BEZIER_CURVE]: () => new lA(this.m, e) }[A])(), this.ft.set(A, t), t;
715
+ return t = (0, { [D.RECTANGLE]: () => new iA(this.m, e), [D.LINE]: () => new EA(this.m, e), [D.ELLIPSE]: () => new nA(this.m, e), [D.ARC]: () => new gA(this.m, e), [D.TRIANGLE]: () => new hA(this.m, e), [D.BEZIER_CURVE]: () => new lA(this.m, e) }[A])(), this._t.set(A, t), t;
733
716
  }
734
- yt(A) {
735
- this.It !== A && (this.It = A, A.q());
717
+ Gt(A) {
718
+ this.wt !== A && (this.wt = A, A.q());
736
719
  }
737
- bt(A, t) {
720
+ $t(A, t) {
738
721
  return new Z(this.m, A, t);
739
722
  }
740
- Gt(A, t, e, B) {
723
+ Mt(A, t, e, B) {
741
724
  var C;
742
725
  const r = this.m, i = r.canvas.width, s = r.canvas.height, Q = A / i * 2 - 1, o = (A + e) / i * 2 - 1, g = 1 - t / s * 2, a = 1 - (t + B) / s * 2, h = new Float32Array([Q, a, o, a, Q, g, o, a, o, g, Q, g]);
743
- r.bindBuffer(r.ARRAY_BUFFER, this.wt), r.bufferData(r.ARRAY_BUFFER, h, r.DYNAMIC_DRAW);
744
- const l = ((C = this.It) == null ? void 0 : C.QA) || r.getParameter(r.CURRENT_PROGRAM), c = l ? r.getAttribLocation(l, "a_position") : -1;
726
+ r.bindBuffer(r.ARRAY_BUFFER, this.dt), r.bufferData(r.ARRAY_BUFFER, h, r.DYNAMIC_DRAW);
727
+ const l = ((C = this.wt) == null ? void 0 : C.QA) || r.getParameter(r.CURRENT_PROGRAM), c = l ? r.getAttribLocation(l, "a_position") : -1;
745
728
  c !== -1 && (r.enableVertexAttribArray(c), r.vertexAttribPointer(c, 2, r.FLOAT, !1, 8, 0)), r.drawArrays(r.TRIANGLES, 0, 6), c !== -1 && r.disableVertexAttribArray(c);
746
729
  }
747
- $t(A, t, e, B) {
748
- this._t.kA(A, t, e, B, this.vt);
730
+ Yt(A, t, e, B) {
731
+ this.xt.HA(A, t, e, B, this.yt);
749
732
  }
750
- Mt(A, t, e, B) {
751
- this._t.WA(A, t, e, B, this.vt.lineWeight, this.vt);
733
+ Tt(A, t, e, B) {
734
+ this.xt.JA(A, t, e, B, this.yt.lineWeight, this.yt);
752
735
  }
753
- Yt(A, t, e, B) {
754
- this._t.HA(A, t, e, B, this.vt);
736
+ zt(A, t, e, B) {
737
+ this.xt.VA(A, t, e, B, this.yt);
755
738
  }
756
- Tt(A, t, e, B, r, i) {
757
- this._t.VA(A, t, e, B, r, i, this.vt);
739
+ Ft(A, t, e, B, r, i) {
740
+ this.xt.jA(A, t, e, B, r, i, this.yt);
758
741
  }
759
- zt(A, t, e, B, r, i, s, Q) {
760
- const o = this.vt.lineWeight;
761
- this._t.KA(A, t, e, B, r, i, s, Q, o, this.vt);
742
+ Rt(A, t, e, B, r, i, s, Q) {
743
+ const o = this.yt.lineWeight;
744
+ this.xt.ZA(A, t, e, B, r, i, s, Q, o, this.yt);
762
745
  }
763
- Ft(A, t, e = 1, B = {}) {
764
- return new H(this.m, A, t, e, B);
746
+ St(A, t, e = 1, B = {}) {
747
+ return new K(this.m, A, t, e, B);
765
748
  }
766
- Rt(A, t, e, B, r, i) {
767
- this._t.JA(A, t, e, B, r, i, this.vt);
749
+ Ot(A, t, e, B, r, i) {
750
+ this.xt.KA(A, t, e, B, r, i, this.yt);
768
751
  }
769
- St(A, t = A, e = A, B = 255) {
770
- this.jA(A / 255, t / 255, e / 255, B / 255);
752
+ Lt(A, t = A, e = A, B = 255) {
753
+ this.state.yA(A, t, e, B), this.NA(A / 255, t / 255, e / 255, B / 255);
771
754
  }
772
- jA(A = 0, t = 0, e = 0, B = 0) {
755
+ NA(A = 0, t = 0, e = 0, B = 0) {
773
756
  this.m.clearColor(A, t, e, B), this.m.clear(this.m.COLOR_BUFFER_BIT);
774
757
  }
775
- Ot() {
776
- this.m.viewport(0, 0, this.m.canvas.width, this.m.canvas.height), _(this.m, [0, 0, this.m.canvas.width, this.m.canvas.height]);
758
+ Ut() {
759
+ this.m.viewport(0, 0, this.m.canvas.width, this.m.canvas.height), M(this.m, [0, 0, this.m.canvas.width, this.m.canvas.height]);
777
760
  }
778
761
  get context() {
779
762
  return this.m;
780
763
  }
781
764
  get state() {
782
- return this.vt;
765
+ return this.yt;
783
766
  }
784
- Lt(A) {
767
+ kt(A) {
785
768
  const t = G(this.m) ?? this.m.getParameter(this.m.VIEWPORT), e = { shader: A, gl: this.m, viewport: t }, B = /* @__PURE__ */ new Set();
786
- for (const r of this._t) B.add(r.type);
787
- for (const r of B) this.xt(r);
788
- this.dt.$A(e, this._t, this.ft), this._t.jA();
769
+ for (const r of this.xt) B.add(r.type);
770
+ for (const r of B) this.bt(r);
771
+ this.vt.YA(e, this.xt, this._t), this.xt.NA();
789
772
  }
790
773
  W() {
791
- this.m.deleteBuffer(this.ut), this.m.deleteBuffer(this.wt), this._t.jA();
792
- for (const A of this.ft.values()) A.W();
774
+ this.m.deleteBuffer(this.ft), this.m.deleteBuffer(this.dt), this.xt.NA();
775
+ for (const A of this._t.values()) A.W();
793
776
  }
794
777
  }
795
778
  const u = { readShort: (E, A) => (u.t.uint16[0] = E[A] << 8 | E[A + 1], u.t.int16[0]), readUshort: (E, A) => E[A] << 8 | E[A + 1], readUshorts(E, A, t) {
@@ -883,10 +866,10 @@ const u = { readShort: (E, A) => (u.t.uint16[0] = E[A] << 8 | E[A + 1], u.t.int1
883
866
  const B = [], r = e.maxp.numGlyphs;
884
867
  for (let i = 0; i < r; i++) B.push(null);
885
868
  return B;
886
- }, Ut(E, A) {
887
- const t = u, e = E.kt, B = E.loca;
869
+ }, Wt(E, A) {
870
+ const t = u, e = E.Ht, B = E.loca;
888
871
  if (B[A] === B[A + 1]) return null;
889
- const r = p.findTable(e, "glyf", E.Wt);
872
+ const r = p.findTable(e, "glyf", E.Jt);
890
873
  if (!r) return null;
891
874
  let i = r[0] + B[A];
892
875
  const s = {};
@@ -922,7 +905,7 @@ const u = { readShort: (E, A) => (u.t.uint16[0] = E[A] << 8 | E[A + 1], u.t.int1
922
905
  } else s.parts = [], s.endPts = [], s.flags = [], s.xs = [], s.ys = [];
923
906
  return s;
924
907
  } } }, p = { parse: (E) => [((A, t, e, B) => {
925
- const r = z, i = { kt: A, Ht: t, Wt: e };
908
+ const r = z, i = { Ht: A, Vt: t, Jt: e };
926
909
  for (const s in r) {
927
910
  const Q = s, o = p.findTable(A, Q, e);
928
911
  if (o) {
@@ -946,37 +929,37 @@ const u = { readShort: (E, A) => (u.t.uint16[0] = E[A] << 8 | E[A + 1], u.t.int1
946
929
  }, T: z, B: u };
947
930
  class F {
948
931
  constructor() {
949
- n(this, "Jt", /* @__PURE__ */ new Map());
950
- n(this, "Vt", /* @__PURE__ */ new Map());
932
+ n(this, "Kt", /* @__PURE__ */ new Map());
933
+ n(this, "jt", /* @__PURE__ */ new Map());
951
934
  }
952
- Kt(A, t) {
953
- const e = `${this.jt(A)}_${t}`;
954
- if (this.Jt.has(e)) return this.Jt.get(e);
935
+ Zt(A, t) {
936
+ const e = `${this.Nt(A)}_${t}`;
937
+ if (this.Kt.has(e)) return this.Kt.get(e);
955
938
  const B = A.cmap;
956
- if (!B || !B.tables) return this.Jt.set(e, 0), 0;
939
+ if (!B || !B.tables) return this.Kt.set(e, 0), 0;
957
940
  let r = 0;
958
- for (const i of B.tables) if (i.format === 4 ? r = this.Zt(t, i) : i.format === 12 && (r = this.Nt(t, i)), r > 0) break;
959
- return this.Jt.set(e, r), r;
941
+ for (const i of B.tables) if (i.format === 4 ? r = this.Xt(t, i) : i.format === 12 && (r = this.qt(t, i)), r > 0) break;
942
+ return this.Kt.set(e, r), r;
960
943
  }
961
- Xt(A, t) {
944
+ Ae(A, t) {
962
945
  const e = t.codePointAt(0);
963
- return e === void 0 ? 0 : this.Kt(A, e);
946
+ return e === void 0 ? 0 : this.Zt(A, e);
964
947
  }
965
- qt(A, t) {
948
+ te(A, t) {
966
949
  const e = A.hmtx;
967
950
  return e && e.aWidth && e.aWidth.length !== 0 ? t < e.aWidth.length ? e.aWidth[t] : e.aWidth[e.aWidth.length - 1] : 0;
968
951
  }
969
- Ae(A, t) {
952
+ ee(A, t) {
970
953
  const e = t / A.head.unitsPerEm, B = A.hhea.ascender * e, r = A.hhea.descender * e, i = A.hhea.lineGap * e;
971
954
  return { ascender: B, descender: r, lineGap: i, lineHeight: B - r + i, unitsPerEm: A.head.unitsPerEm, scale: e };
972
955
  }
973
- te() {
974
- this.Jt.clear(), this.Vt.clear();
956
+ Be() {
957
+ this.Kt.clear(), this.jt.clear();
975
958
  }
976
- jt(A) {
977
- return `${A.Wt}_${A.kt.length}`;
959
+ Nt(A) {
960
+ return `${A.Jt}_${A.Ht.length}`;
978
961
  }
979
- Zt(A, t) {
962
+ Xt(A, t) {
980
963
  const e = t.endCount.length;
981
964
  let B = -1;
982
965
  for (let r = 0; r < e; r++) if (A <= t.endCount[r]) {
@@ -994,7 +977,7 @@ class F {
994
977
  }
995
978
  return 0;
996
979
  }
997
- Nt(A, t) {
980
+ qt(A, t) {
998
981
  const e = t.groups.length / 3;
999
982
  for (let B = 0; B < e; B++) {
1000
983
  const r = t.groups[3 * B], i = t.groups[3 * B + 1], s = t.groups[3 * B + 2];
@@ -1005,43 +988,43 @@ class F {
1005
988
  }
1006
989
  class fA {
1007
990
  constructor(A) {
1008
- n(this, "ee");
1009
- this.ee = A;
991
+ n(this, "Qe");
992
+ this.Qe = A;
1010
993
  }
1011
- Be(A) {
994
+ se(A) {
1012
995
  var e;
1013
996
  const t = [];
1014
997
  return (e = A.cmap) != null && e.tables ? (A.cmap.tables.forEach((B) => {
1015
998
  if (B.format === 4) {
1016
- const r = this.Qe(B);
999
+ const r = this.Ee(B);
1017
1000
  t.push(...r);
1018
1001
  } else if (B.format === 12) {
1019
- const r = this.se(B);
1002
+ const r = this.ie(B);
1020
1003
  t.push(...r);
1021
1004
  }
1022
1005
  }), [...new Set(t)]) : [];
1023
1006
  }
1024
- Ee(A, t) {
1025
- return this.ee.Xt(A, t) > 0;
1007
+ re(A, t) {
1008
+ return this.Qe.Ae(A, t) > 0;
1026
1009
  }
1027
- ie(A, t) {
1028
- for (const e of t) if (!this.Ee(A, e)) return !1;
1010
+ ne(A, t) {
1011
+ for (const e of t) if (!this.re(A, e)) return !1;
1029
1012
  return !0;
1030
1013
  }
1031
- re(A, t) {
1032
- return t.filter((e) => this.Ee(A, e));
1014
+ ge(A, t) {
1015
+ return t.filter((e) => this.re(A, e));
1033
1016
  }
1034
- ne(A) {
1035
- return A.filter((t) => this.ge(t));
1017
+ oe(A) {
1018
+ return A.filter((t) => this.ae(t));
1036
1019
  }
1037
- Qe(A) {
1020
+ Ee(A) {
1038
1021
  const t = [];
1039
1022
  if (!(A.startCount && A.endCount && A.idRangeOffset && A.idDelta)) return t;
1040
1023
  for (let e = 0; e < A.startCount.length; e++) {
1041
1024
  const B = A.startCount[e], r = A.endCount[e];
1042
1025
  if (B !== 65535 || r !== 65535) {
1043
1026
  for (let i = B; i <= r; i++)
1044
- if (this.oe(A, i, e) > 0) try {
1027
+ if (this.ce(A, i, e) > 0) try {
1045
1028
  const s = String.fromCodePoint(i);
1046
1029
  t.push(s);
1047
1030
  } catch {
@@ -1050,7 +1033,7 @@ class fA {
1050
1033
  }
1051
1034
  return t;
1052
1035
  }
1053
- se(A) {
1036
+ ie(A) {
1054
1037
  const t = [];
1055
1038
  if (!A.groups) return t;
1056
1039
  for (let e = 0; e < A.groups.length; e += 3) {
@@ -1064,7 +1047,7 @@ class fA {
1064
1047
  }
1065
1048
  return t;
1066
1049
  }
1067
- oe(A, t, e) {
1050
+ ce(A, t, e) {
1068
1051
  if (A.idRangeOffset[e] === 0) return t + A.idDelta[e] & 65535;
1069
1052
  {
1070
1053
  const B = A.idRangeOffset[e] / 2 + (t - A.startCount[e]) - (A.startCount.length - e);
@@ -1075,178 +1058,178 @@ class fA {
1075
1058
  }
1076
1059
  return 0;
1077
1060
  }
1078
- ge(A) {
1061
+ ae(A) {
1079
1062
  const t = A.codePointAt(0) || 0;
1080
1063
  return !(t >= 0 && t <= 31 && t !== 9 && t !== 10 && t !== 13 || t >= 127 && t <= 159);
1081
1064
  }
1082
1065
  }
1083
1066
  class dA {
1084
1067
  constructor() {
1085
- n(this, "ae");
1068
+ n(this, "he");
1086
1069
  const A = new F();
1087
- this.ae = new fA(A);
1070
+ this.he = new fA(A);
1088
1071
  }
1089
1072
  extractCharacters(A) {
1090
- return this.ae.Be(A);
1073
+ return this.he.se(A);
1091
1074
  }
1092
1075
  filterProblematicCharacters(A) {
1093
- return this.ae.ne(A);
1076
+ return this.he.oe(A);
1094
1077
  }
1095
1078
  characterExists(A, t) {
1096
- return this.ae.Ee(A, t);
1079
+ return this.he.re(A, t);
1097
1080
  }
1098
1081
  allCharactersExist(A, t) {
1099
- return this.ae.ie(A, t);
1082
+ return this.he.ne(A, t);
1100
1083
  }
1101
1084
  }
1102
1085
  class wA {
1103
1086
  constructor(A) {
1104
- n(this, "he");
1105
- n(this, "ce");
1106
1087
  n(this, "Ce");
1107
1088
  n(this, "De");
1108
- this.Ce = A, this.De = new F(), this.he = document.createElement("canvas"), this.ce = this.he.getContext("2d", { willReadFrequently: !0, alpha: !1 });
1089
+ n(this, "le");
1090
+ n(this, "Pe");
1091
+ this.le = A, this.Pe = new F(), this.Ce = document.createElement("canvas"), this.De = this.Ce.getContext("2d", { willReadFrequently: !0, alpha: !1 });
1109
1092
  }
1110
1093
  createTextureAtlas(A, t, e, B) {
1111
1094
  const r = A.length, i = Math.ceil(Math.sqrt(r)), s = Math.ceil(r / i), Q = t.width * i, o = t.height * s, g = typeof B == "object" ? B : null;
1112
- this.le(Q, o), this.Pe(A, t, i, e, g);
1113
- const a = this.Ce.Ft(Q, o, 1, { filter: "nearest" });
1114
- return a.R(this.he), { framebuffer: a, columns: i, rows: s };
1095
+ this.Ie(Q, o), this.ue(A, t, i, e, g);
1096
+ const a = this.le.St(Q, o, 1, { filter: "nearest" });
1097
+ return a.R(this.Ce), { framebuffer: a, columns: i, rows: s };
1115
1098
  }
1116
- le(A, t) {
1117
- this.he.width = A, this.he.height = t, this.he.style.width = A + "px", this.he.style.height = A + "px", this.ce.imageSmoothingEnabled = !1, this.he.style.imageRendering = "pixelated", this.ce.fillStyle = "black", this.ce.fillRect(0, 0, A, t), this.ce.textBaseline = "top", this.ce.textAlign = "left", this.ce.fillStyle = "white";
1099
+ Ie(A, t) {
1100
+ this.Ce.width = A, this.Ce.height = t, this.Ce.style.width = A + "px", this.Ce.style.height = A + "px", this.De.imageSmoothingEnabled = !1, this.Ce.style.imageRendering = "pixelated", this.De.fillStyle = "black", this.De.fillRect(0, 0, A, t), this.De.textBaseline = "top", this.De.textAlign = "left", this.De.fillStyle = "white";
1118
1101
  }
1119
- Pe(A, t, e, B, r) {
1102
+ ue(A, t, e, B, r) {
1120
1103
  const i = B / r.head.unitsPerEm;
1121
1104
  for (let s = 0; s < A.length; s++) {
1122
- const Q = s % e, o = Math.floor(s / e), g = A[s].character, a = this.Ie(r, g);
1105
+ const Q = s % e, o = Math.floor(s / e), g = A[s].character, a = this.we(r, g);
1123
1106
  if (!a) continue;
1124
- const h = g.codePointAt(0) || 0, l = this.De.Kt(r, h), c = this.ue(r, l) * i, C = Q * t.width, d = o * t.height, I = C + 0.5 * t.width, w = d + 0.5 * t.height, m = Math.round(I - 0.5 * t.width), R = Math.round(w - 0.5 * B), $ = m + 0.5 * (t.width - c), V = R + r.hhea.ascender * i;
1125
- this.we(a, $, V, i);
1107
+ const h = g.codePointAt(0) || 0, l = this.Pe.Zt(r, h), c = this.fe(r, l) * i, C = Q * t.width, d = o * t.height, I = C + 0.5 * t.width, w = d + 0.5 * t.height, m = Math.round(I - 0.5 * t.width), R = Math.round(w - 0.5 * B), $ = m + 0.5 * (t.width - c), V = R + r.hhea.ascender * i;
1108
+ this.de(a, $, V, i);
1126
1109
  }
1127
1110
  }
1128
- Ie(A, t) {
1129
- const e = t.codePointAt(0) || 0, B = this.De.Kt(A, e);
1111
+ we(A, t) {
1112
+ const e = t.codePointAt(0) || 0, B = this.Pe.Zt(A, e);
1130
1113
  if (B === 0) return null;
1131
1114
  if (A.glyf && A.glyf[B] !== null) return A.glyf[B];
1132
1115
  if (p && p.T && p.T.glyf) {
1133
- const r = p.T.glyf.Ut(A, B);
1116
+ const r = p.T.glyf.Wt(A, B);
1134
1117
  return A.glyf && r && (A.glyf[B] = r), r;
1135
1118
  }
1136
1119
  return null;
1137
1120
  }
1138
- ue(A, t) {
1121
+ fe(A, t) {
1139
1122
  const e = A.hmtx;
1140
1123
  return e && e.aWidth ? t < e.aWidth.length ? e.aWidth[t] : e.aWidth[e.aWidth.length - 1] : 0;
1141
1124
  }
1142
- we(A, t, e, B) {
1125
+ de(A, t, e, B) {
1143
1126
  if (!A || !A.xs || A.noc === 0) return;
1144
1127
  const { xs: r, ys: i, endPts: s, flags: Q } = A;
1145
1128
  if (!(r && i && s && Q)) return;
1146
- this.ce.beginPath();
1129
+ this.De.beginPath();
1147
1130
  let o = 0;
1148
1131
  for (let g = 0; g < s.length; g++) {
1149
1132
  const a = s[g];
1150
1133
  if (!(a < o)) {
1151
1134
  if (a >= o) {
1152
1135
  const h = t + r[o] * B, l = e - i[o] * B;
1153
- this.ce.moveTo(h, l);
1136
+ this.De.moveTo(h, l);
1154
1137
  let c = o + 1;
1155
1138
  for (; c <= a; )
1156
1139
  if (1 & Q[c]) {
1157
1140
  const C = t + r[c] * B, d = e - i[c] * B;
1158
- this.ce.lineTo(C, d), c++;
1141
+ this.De.lineTo(C, d), c++;
1159
1142
  } else {
1160
1143
  const C = t + r[c] * B, d = e - i[c] * B;
1161
1144
  let I = c + 1 > a ? o : c + 1;
1162
1145
  if (1 & Q[I]) {
1163
1146
  const w = t + r[I] * B, m = e - i[I] * B;
1164
- this.ce.quadraticCurveTo(C, d, w, m), c = I + 1;
1147
+ this.De.quadraticCurveTo(C, d, w, m), c = I + 1;
1165
1148
  } else {
1166
1149
  const w = (C + (t + r[I] * B)) / 2, m = (d + (e - i[I] * B)) / 2;
1167
- this.ce.quadraticCurveTo(C, d, w, m), c = I;
1150
+ this.De.quadraticCurveTo(C, d, w, m), c = I;
1168
1151
  }
1169
1152
  }
1170
- this.ce.closePath();
1153
+ this.De.closePath();
1171
1154
  }
1172
1155
  o = a + 1;
1173
1156
  }
1174
1157
  }
1175
- this.ce.fill();
1158
+ this.De.fill();
1176
1159
  }
1177
1160
  }
1178
1161
  class mA {
1179
1162
  constructor() {
1180
- n(this, "ee");
1181
- this.ee = new F();
1163
+ n(this, "Qe");
1164
+ this.Qe = new F();
1182
1165
  }
1183
1166
  calculateMaxGlyphDimensions(A, t, e) {
1184
1167
  let B = 0;
1185
- const r = this.ee.Ae(e, t), i = r.lineHeight;
1168
+ const r = this.Qe.ee(e, t), i = r.lineHeight;
1186
1169
  for (const s of A) {
1187
- const Q = this.ee.Xt(e, s);
1170
+ const Q = this.Qe.Ae(e, s);
1188
1171
  if (Q === 0) continue;
1189
- const o = this.ee.qt(e, Q) * r.scale;
1172
+ const o = this.Qe.te(e, Q) * r.scale;
1190
1173
  B = Math.max(B, o);
1191
1174
  }
1192
1175
  return { width: Math.ceil(B), height: Math.ceil(i) };
1193
1176
  }
1194
1177
  getCharacterAdvanceWidth(A, t, e) {
1195
- const B = this.ee.Ae(e, t), r = this.ee.Xt(e, A);
1196
- return this.ee.qt(e, r) * B.scale;
1178
+ const B = this.Qe.ee(e, t), r = this.Qe.Ae(e, A);
1179
+ return this.Qe.te(e, r) * B.scale;
1197
1180
  }
1198
1181
  getFontMetrics(A, t) {
1199
- return this.ee.Ae(t, A);
1182
+ return this.Qe.ee(t, A);
1200
1183
  }
1201
- te() {
1202
- this.ee.te();
1184
+ Be() {
1185
+ this.Qe.Be();
1203
1186
  }
1204
1187
  }
1205
1188
  class pA {
1206
1189
  constructor() {
1207
- n(this, "De");
1208
- this.De = new F();
1190
+ n(this, "Pe");
1191
+ this.Pe = new F();
1209
1192
  }
1210
1193
  createCharacterObjects(A, t) {
1211
1194
  return A.map((e, B) => {
1212
- const r = e.codePointAt(0) || 0, i = this.fe(B);
1195
+ const r = e.codePointAt(0) || 0, i = this.pe(B);
1213
1196
  let s = 0;
1214
1197
  if (t.hmtx && t.hmtx.aWidth) {
1215
- const Q = this.De.Kt(t, r);
1198
+ const Q = this.Pe.Zt(t, r);
1216
1199
  Q > 0 && t.hmtx.aWidth[Q] !== void 0 && (s = t.hmtx.aWidth[Q]);
1217
1200
  }
1218
1201
  return { character: e, unicode: r, color: i, advanceWidth: s };
1219
1202
  });
1220
1203
  }
1221
- fe(A) {
1204
+ pe(A) {
1222
1205
  return [A % 256 / 255, Math.floor(A / 256) % 256 / 255, Math.floor(A / 65536) % 256 / 255];
1223
1206
  }
1224
- de(A, t) {
1207
+ me(A, t) {
1225
1208
  if (!T.l(typeof A == "string", "Character must be a string.", { method: "getCharacterColor", providedValue: A })) return [0, 0, 0];
1226
1209
  const e = t.find((B) => B.character === A);
1227
1210
  return e ? e.color : [0, 0, 0];
1228
1211
  }
1229
- pe(A, t) {
1230
- return T.l(typeof A == "string" && A.length > 0, "Characters must be a string with at least one character.", { method: "getCharacterColors", providedValue: A }) ? Array.from(A).map((e) => this.de(e, t) || [0, 0, 0]) : [[0, 0, 0]];
1212
+ _e(A, t) {
1213
+ return T.l(typeof A == "string" && A.length > 0, "Characters must be a string with at least one character.", { method: "getCharacterColors", providedValue: A }) ? Array.from(A).map((e) => this.me(e, t) || [0, 0, 0]) : [[0, 0, 0]];
1231
1214
  }
1232
1215
  }
1233
- class xA {
1216
+ class yA {
1234
1217
  constructor(A, t = 16) {
1235
- n(this, "me");
1236
- n(this, "_e", []);
1237
1218
  n(this, "ve");
1238
- n(this, "xe", 16);
1239
- n(this, "ye", 0);
1240
- n(this, "be", 0);
1241
- n(this, "Ge", { width: 0, height: 0 });
1242
- n(this, "$e");
1243
- n(this, "Me");
1219
+ n(this, "xe", []);
1220
+ n(this, "ye");
1221
+ n(this, "be", 16);
1222
+ n(this, "Ge", 0);
1223
+ n(this, "$e", 0);
1224
+ n(this, "Me", { width: 0, height: 0 });
1244
1225
  n(this, "Ye");
1245
1226
  n(this, "Te");
1246
1227
  n(this, "ze");
1247
- this.xe = t, this.Me = new dA(), this.Ye = new wA(A), this.Te = new mA(), this.ze = new pA();
1228
+ n(this, "Fe");
1229
+ n(this, "Re");
1230
+ this.be = t, this.Te = new dA(), this.ze = new wA(A), this.Fe = new mA(), this.Re = new pA();
1248
1231
  }
1249
- async Fe(A) {
1232
+ async Se(A) {
1250
1233
  let t;
1251
1234
  if (A) {
1252
1235
  const e = await fetch(A);
@@ -1255,98 +1238,98 @@ class xA {
1255
1238
  } else
1256
1239
  t = await (await fetch(`data:font/truetype;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMs+QEyQAAAEoAAAAYGNtYXAg7yVJAAAFjAAACSBnbHlmuHLTdAAAErQAAGi0aGVhZFvXdUwAAACsAAAANmhoZWELAQUCAAAA5AAAACRobXR4BACDgAAAAYgAAAQEbG9jYQAy54AAAA6sAAAECG1heHABIgCCAAABCAAAACBuYW1lVs/OSgAAe2gAAAOicG9zdABpADQAAH8MAAAAIAABAAAAAQAAzOWHqV8PPPUAAAQAAAAAAHxiGCcAAAAAfGIYJwAAAAAEAAQAAAAACAACAAEAAAAAAAEAAAQAAAAAAAQAAAAAAAcAAAEAAAAAAAAAAAAAAAAAAAEBAAEAAAEBAIAAIAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAgQAAZAABQAEAgACAAAAAAACAAIAAAACAAAzAMwAAAAABAAAAAAAAACAAACLAABw4wAAAAAAAAAAWUFMLgBAACAmawQAAAAAAAQAAAAAAAFRAAAAAAMABAAAAAAgAAAEAAAABAAAAAQAAAAEAAGABAABAAQAAIAEAACABAAAgAQAAIAEAAGABAABAAQAAQAEAACABAABAAQAAIAEAACABAABAAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABAAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABAAQAAIAEAAEABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAAGABAAAgAQAAIAEAAGABAAAgAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAAAgAQAAIAEAACABAABgAQAAQAEAACABAAAAAQAAgAEAACABAAAgAQAAIAEAACABAACAAQAAAAEAAIABAABgAQAAgAEAACABAAAgAQAAAAEAACABAAAAAQAAAAEAAAABAAAAAQAAAAEAAIABAADAAQAAAAEAAAABAAAgAQAAYAEAAAABAAAAAQAAIAEAAAABAAAgAQAAIAEAACABAAAAAQAAIAEAAAABAAAAAQAAIAEAAGABAAAAAQAAAAEAAAABAAAAAQAAIAEAACABAAAAAQAAIAEAACABAAAAAQAAIAEAACABAAAgAQAAAAEAACABAAAAAQAAAAEAAEABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAACAAQAAIAEAAAABAAAAAQAAAAEAACABAABAAQAAQAEAAEABAABAAQAAIAEAACABAAAAAQAAAAEAAAABAABAAQAAAAEAACABAAAAAQAAAAEAAIABAAAgAQAAAAEAAAABAAAAAQAAAAEAAAABAABgAQAAAAEAAAABAABgAQAAAAEAAGABAABgAQAAYAEAAAABAAAAAQAAAAEAAAABAABgAQAAYAEAAAABAAAAAQAAAAEAAAABAABgAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAABgAQAAAAEAAGABAABgAQAAAAEAAAABAABgAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAYAEAAAABAAAAAQAAQAEAACABAAAAAQAAAAEAAAABAAAgAQAAIAEAACABAAAgAQAAIAEAAAABAABAAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAQAAIAEAACABAAAgAQAAIAEAAEABAAAgAAAAAIAAAADAAAAFAADAAEAAASaAAQEhgAAAJ4AgAAGAB4AfgCjAKUApwCsALIAtwC9AL8AxwDJANEA1gDcAOIA7wD0APcA/AD/AZIDkwOYA6MDpgOpA7EDtQPAA8QDxiAiIDwgfyCnIZUhqCIaIh8iKSJIImEiZSMCIxAjISUAJQIlDCUQJRQlGCUcJSQlLCU0JTwlbCWAJYQliCWMJZMloSWsJbIluiW8JcQlyyXZJjwmQCZCJmAmYyZmJmv//wAAACAAoQClAKcAqgCwALUAugC/AMQAyQDRANYA3ADfAOQA8QD2APkA/wGSA5MDmAOjA6YDqQOxA7QDwAPDA8YgIiA8IH8gpyGQIagiGSIeIikiSCJhImQjAiMQIyAlACUCJQwlECUUJRglHCUkJSwlNCU8JVAlgCWEJYgljCWQJaAlrCWyJbolvCXEJcsl2CY6JkAmQiZgJmMmZSZq////4v/A/7//vv+8/7n/t/+1/7T/sP+v/6j/pP+f/53/nP+b/5r/mf+X/wX9Bf0B/Pf89fzz/Oz86vzg/N783eCC4GngJ+AA3xjfBt6W3pPeit5s3lTeUt223andmtu827vbstuv26zbqdum25/bmNuR24rbd9tk22HbXttb21jbTNtC2z3bNts12y7bKNsc2rzaudq42pvamdqY2pUAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEhgAAAJ4AgAAGAB4AfgCjAKUApwCsALIAtwC9AL8AxwDJANEA1gDcAOIA7wD0APcA/AD/AZIDkwOYA6MDpgOpA7EDtQPAA8QDxiAiIDwgfyCnIZUhqCIaIh8iKSJIImEiZSMCIxAjISUAJQIlDCUQJRQlGCUcJSQlLCU0JTwlbCWAJYQliCWMJZMloSWsJbIluiW8JcQlyyXZJjwmQCZCJmAmYyZmJmv//wAAACAAoQClAKcAqgCwALUAugC/AMQAyQDRANYA3ADfAOQA8QD2APkA/wGSA5MDmAOjA6YDqQOxA7QDwAPDA8YgIiA8IH8gpyGQIagiGSIeIikiSCJhImQjAiMQIyAlACUCJQwlECUUJRglHCUkJSwlNCU8JVAlgCWEJYgljCWQJaAlrCWyJbolvCXEJcsl2CY6JkAmQiZgJmMmZSZq////4v/A/7//vv+8/7n/t/+1/7T/sP+v/6j/pP+f/53/nP+b/5r/mf+X/wX9Bf0B/Pf89fzz/Oz86vzg/N783eCC4GngJ+AA3xjfBt6W3pPeit5s3lTeUt223andmtu827vbstuv26zbqdum25/bmNuR24rbd9tk22HbXttb21jbTNtC2z3bNts12y7bKNsc2rzaudq42pvamdqY2pUAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAABwAAABIAAAAegAAALwAAADuAAAA9wAAARQAAAExAAABWgAAAW0AAAF7AAABhAAAAY0AAAGvAAAB0gAAAecAAAIOAAACNQAAAk8AAAJsAAACjgAAAqYAAALOAAAC5gAAAvQAAAMHAAADLgAAAzwAAANjAAADhQAAA6UAAAPCAAAD4AAAA/0AAAQaAAAEPAAABEwAAARrAAAEfgAABJEAAASpAAAE0AAABNsAAAT4AAAFFQAABS0AAAVDAAAFZQAABYcAAAWuAAAFvAAABc8AAAXnAAAGBAAABisAAAZDAAAGZQAABnMAAAaVAAAGowAABsUAAAbOAAAG3gAABvYAAAcMAAAHKQAABz8AAAdaAAAHbQAAB4oAAAedAAAHqwAAB8MAAAfgAAAH7gAACAsAAAgjAAAIOwAACFEAAAhsAAAIfAAACJkAAAi2AAAIzgAACOYAAAkDAAAJKgAACUIAAAlfAAAJfAAACYUAAAmiAAAJugAACdcAAAngAAAKBwAACi4AAApgAAAKeQAACokAAAq4AAAKwQAACs8AAArYAAAK8QAACw4AAAshAAALSAAAC1gAAAt1AAALjQAAC5sAAAu0AAALzQAAC9YAAAvhAAAL6gAAC/4AAAwRAAAMJAAADDQAAAxHAAAMUgAADGoAAAyCAAAMlwAADKUAAAy/AAAM0gAADN0AAAz8AAANDwAADSkAAA0yAAANTAAADVUAAA1jAAANfAAADYcAAA2VAAANqQAADcIAAA3mAAAN7wAADg4AAA4XAAAOQQAADloAAA5qAAAOcwAADoYAAA6PAAAOogAADrIAAA7FAAAPCwAADxsAAA8uAAAPRwAAD1AAAA+HAAAPoAAAD6kAAA/CAAAP3wAAD/wAABAZAAAQNgAAEE4AABBfAAAQlQAAEJ4AABCxAAAQugAAEOEAABEnAAARUwAAEWYAABF+AAARlgAAEbgAABJrAAASfgAAEpEAABKpAAASwQAAEswAABLcAAATCAAAExMAABMrAAATQwAAE1sAABNzAAATmgAAE8YAABPeAAAT5wAAE/AAABQSAAAUKgAAFEIAABRaAAAUYwAAFGwAABSOAAAUngAAFLsAABTYAAAU/wAAFSEAABVNAAAVZQAAFX0AABWVAAAVngAAFacAABXTAAAWBAAAFg0AABYvAAAWOgAAFkUAABZxAAAWhAAAFpIAABagAAAWrgAAFrwAABbVAAAW7QAAFxkAABd0AAAXzwAAF/wAABgUAAAYJQAAGC4AABhBAAAYXgAAGHEAABiYAAAYvAAAGOAAABkYAAAZPwAAGWYAABmNAAAZtAAAGdYAABn9AAAaEAAAGi0AAIBgACAAoAEAAADAAcAAAEBAQEBAQEBAYABAAAA/wAAAAEAAAD/AAQAAAD+AAAA/4AAAP8AAAAAAgEAAoADgAQAAAMABwAAAQEBAQEBAQEBAAEAAAD/AAGAAQAAAP8ABAAAAP6AAAABgAAA/oAAAAACAIAAgAQAA4AAGwAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQAAAACAAAABAAAAAIAAAP+AAAAAgAAA/4AAAP8AAAD/gAAA/wAAAP+AAAAAgAAA/4AAAACAAQAAAACAAAADgAAA/4AAAACAAAD/gAAA/4AAAP8AAAD/gAAA/4AAAACAAAD/gAAAAIAAAACAAAABAAAAAIAAAP+A/wAAAAEAAAMAgACABAAEAAAbAB8AIwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgAAgAAAAQAAAP8AAAABAAAAAIAAAP+AAAD/AAAA/4AAAP8AAAABAAAA/wAAAP+AAAAAgAAAAQD/gAAAAIAAAACAAAAAgAAABAAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAD/gP+AAAAAgP8A/4AAAACAAAAABQCAAIAEAAOAAAUAHQAjACkALwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAAA/4AAAP+AAgABAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACA/YAAgAAAAIAAAP8AAoABAAAA/4AAAP+A/4AAgAAAAIAAAP8AA4AAAP8AAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAP+AAAD/gAAAAAAAAP8AAAAAgAAAAAAAAP+AAAD/gAAAAAAAAwCAAIAEAAQAABcAHQAjAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAACAAAAAgAAA/4AAAACAAAD9AAAA/4AAAACAAAD/gAAAAIAAgAAAAIAAAACAAAD/AAAAAQAAAP+AAAAEAAAA/4AAAP8AAAD/gAAAAIAAAP8AAAD/gAAA/4AAAACAAAABAAAAAIAAAAEAAAAAAP+AAAD/gAAAAQD+gP8AAAAAgAAAAIAAAAABAYACgAKABAAAAwAAAQEBAQGAAQAAAP8ABAAAAP6AAAAAAAABAQAAgAMABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQECAAEAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP+AAAD/gAAAAIAAAACABAAAAP+AAAD/gAAA/oAAAP+AAAD/gAAAAIAAAACAAAABgAAAAIAAAAAAAAEBAACAAwAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEAAQAAAACAAAAAgAAA/4AAAP+AAAD/AAAAAIAAAACAAAD/gAAA/4AEAAAA/4AAAP+AAAD+gAAA/4AAAP+AAAAAgAAAAIAAAAGAAAAAgAAAAAAABQCAAYADgAQAAAMABwATABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAIAAAP+AAYAAgAAA/4D/AAEAAAABAAAA/wAAAP8AAAD/AAAAAQD/gACAAAD/gAGAAIAAAP+ABAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAAAIAAAP+AAAAAAAABAQAAgAOAAwAACwAAAQEBAQEBAQEBAQEBAgAAgAAAAQAAAP8AAAD/gAAA/wAAAAEAAwAAAP8AAAD/gAAA/wAAAAEAAAAAgAAAAAAAAQCAAAACAAGAAAcAAAEBAQEBAQEBAQABAAAA/4AAAP8AAAAAgAGAAAD/AAAA/4AAAACAAAAAAAABAIABgAOAAgAAAwAAAQEBAQCAAwAAAP0AAgAAAP+AAAAAAAABAQAAgAIAAYAAAwAAAQEBAQEAAQAAAP8AAYAAAP8AAAAAAAABAIAAgAQAA4AAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwABAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAA4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAwCAAIADgAQAAAsAEQAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAP4AAAD/gAAAAIAAgAAAAIAAAACAAAD/gAAA/4AAAAEAAAAEAAAA/4AAAP2AAAD/gAAAAIAAAAKAAAAAAP8AAAAAgAAAAID/AP+AAAD/AAAAAYAAAAABAIAAgAOABAAADQAAAQEBAQEBAQEBAQEBAQEBgAEAAAABAAAA/QAAAAEAAAD/AAAAAIAAAACABAAAAP0AAAD/gAAAAIAAAAGAAAAAgAAAAIAAAAABAIAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAA/4AAAP+AAAABgAAA/QAAAACAAAAAgAAAAIAAAACAAAD/AAAA/wAAAACABAAAAP+AAAD/AAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAABAAAA/wAAAAEAAAAAAAABAIAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAAAIAAAP+AAAD+AAAA/4AAAAEAAAABAAAA/wAAAAEAAAD/AAAA/wAAAACABAAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAACAAAD/gAAAAQAAAACAAAABAAAA/4AAAACAAAAAAAABAIAAgAOABAAAEQAAAQEBAQEBAQEBAQEBAQEBAQEBAYABAAAA/4AAAP+AAAABAAAAAQAAAP8AAAD+AAAAAIAAAACABAAAAP+AAAD/gAAA/wAAAAEAAAD9gAAAAQAAAAGAAAAAgAAAAAEAgACAA4AEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAwAAAP4AAAABgAAAAIAAAP+AAAD+AAAA/4AAAAEAAAABAAAA/gAEAAAA/4AAAP8AAAD/gAAA/wAAAP+AAAAAgAAAAIAAAP+AAAABAAAAAAAAAgCAAIADgAQAABMAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP8AAAD/AAAAAYAAAACAAAD/gAAA/gAAAP+AAAAAgACAAAABAAAABAAAAP+AAAD/gAAAAIAAAP8AAAD/gAAA/wAAAP+AAAAAgAAAAoAAAP6A/wAAAAEAAAEAgACAA4AEAAAPAAABAQEBAQEBAQEBAQEBAQEBAIADAAAA/4AAAP+AAAD/AAAAAIAAAACAAAD+gAAA/4AEAAAA/oAAAP+AAAD+gAAAAYAAAACAAAABAAAA/4AAAAAAAAMAgACAA4AEAAATABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAAAIAAAP+AAAD+AAAA/4AAAACAAAD/gAAAAIAAgAAAAQAAAP8AAAABAAAABAAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAgAAAAQAAAAAA/wAAAAEA/oD/AAAAAQAAAAACAIAAgAOABAAACwAPAAABAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP8AAAD+gAAA/4AAAACAAIAAAAEAAAAEAAAA/4AAAP0AAAABAAAAAIAAAAGAAAAAAP6AAAABgAACAQABAAIAA4AAAwAHAAABAQEBAQEBAQEAAQAAAP8AAAABAAAA/wADgAAA/wAAAP+AAAD/AAAAAAIAgACAAgADgAADAAsAAAEBAQEBAQEBAQEBAQEAAQAAAP8AAAABAAAA/4AAAP8AAAAAgAOAAAD/AAAA/4AAAP8AAAD/gAAAAIAAAAABAQAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQKAAQAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACABAAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAACAIABgAOAAwAAAwAHAAABAQEBAQEBAQCAAwAAAP0AAAADAAAA/QADAAAA/4AAAP+AAAD/gAAAAAEAgACAAwAEAAAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAIAAAACAAAAAgAAA/4AAAP+AAAD/gAAA/wAAAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AEAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAAAAAAIAgACAA4AEAAATABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAA/4AAAP8AAAAAgAAAAIAAAP8AAAD/AAAAAIAAgAEAAAD/AAQAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAA/4AAAACAAAD+AAAA/wAAAAACAIAAgAOABAAAEQAVAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP6AAAAAgAAA/wAAAAGAAAD+AAAA/4AAAACAAgAAgAAA/4AEAAAA/4AAAP6AAAABAAAAAIAAAP2AAAD/gAAAAIAAAAKAAAD+AAAA/4AAAAAAAAIAgACAA4AEAAAPABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAYABAAAAAIAAAACAAAD/AAAA/wAAAP8AAAAAgAAAAIAAAAAAAQAAAAQAAAD/gAAA/4AAAP2AAAABAAAA/wAAAAKAAAAAgAAA/4D/AAAAAQAAAwCAAIADgAQAAAsADwATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAoAAAACAAAD/gAAAAIAAAP+AAAD9gAEAAAABAAAA/wAAAAEAAAAEAAAA/4AAAP8AAAD/gAAA/wAAAP+AAAADAP8AAAABAP6A/wAAAAEAAAAAAQCAAIADgAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP8AAAD/AAAAAQAAAAEAAAD/gAAA/gAAAP+AAAAAgAQAAAD/gAAA/4AAAACAAAD9gAAAAIAAAP+AAAD/gAAAAIAAAAKAAAAAAAACAIAAgAOABAAACwATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAgAAAACAAAAAgAAA/4AAAP+AAAD+AAEAAAAAgAAAAIAAAP+AAAAEAAAA/4AAAP+AAAD+gAAA/4AAAP+AAAADAP2AAAAAgAAAAYAAAACAAAEAgACAA4AEAAAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABAAAA/wAAAAEAAAABAAAA/4AAAP4AAAD/gAAAAIAEAAAA/4AAAP+AAAAAgAAA/wAAAP+AAAD/AAAAAIAAAP+AAAD/gAAAAIAAAAKAAAAAAAABAIAAgAOABAAACQAAAQEBAQEBAQEBAQCAAwAAAP4AAAABAAAA/wAAAP8ABAAAAP+AAAD/AAAA/4AAAP6AAAAAAQCAAIADgAQAABUAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABAAAA/4AAAAGAAAD/gAAA/gAAAP+AAAAAgAQAAAD/gAAA/4AAAACAAAD9gAAAAQAAAACAAAD+gAAA/4AAAACAAAACgAAAAAEAgACAA4AEAAALAAABAQEBAQEBAQEBAQEAgAEAAAABAAAAAQAAAP8AAAD/AAAA/wAEAAAA/gAAAAIAAAD8gAAAAQAAAP8AAAAAAAABAIAAgAOABAAACwAAAQEBAQEBAQEBAQEBAIADAAAA/wAAAAEAAAD9AAAAAQAAAP8ABAAAAP+AAAD9gAAA/4AAAACAAAACgAAAAAAAAQCAAIAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEBAAMAAAD/gAAA/4AAAP4AAAD/gAAAAQAAAAEAAAD+gAQAAAD/gAAA/YAAAP+AAAAAgAAAAQAAAP8AAAACgAAAAAAAAQCAAIADgAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAIAAAAEAAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/AAQAAAD/AAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAD/AAAAAAAAAQCAAIADgAQAAAUAAAEBAQEBAQCAAQAAAAIAAAD9AAQAAAD9AAAA/4AAAAABAIAAgAQABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAIAAAACAAAABAAAA/wAAAP+AAAD/gAAA/4AAAP8ABAAAAP+AAAD/gAAAAIAAAACAAAD8gAAAAgAAAP+AAAAAgAAA/gAAAAAAAAEAgACABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAQAAAACAAAAAgAAAAIAAAAEAAAD/AAAA/4AAAP+AAAD/gAAA/wAEAAAA/4AAAP+AAAD/gAAAAYAAAPyAAAABAAAAAIAAAACAAAD+AAAAAAAAAgCAAIADgAQAAAsADwAAAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAD/gAAA/gAAAP+AAAAAgACAAAABAAAABAAAAP+AAAD9gAAA/4AAAACAAAACgAAAAAD9gAAAAoAAAgCAAIADgAQAAAkADQAAAQEBAQEBAQEBAQEBAQEAgAKAAAAAgAAA/4AAAP6AAAD/AAEAAAABAAAABAAAAP+AAAD+gAAA/4AAAP8AAAADAP6AAAABgAAAAAIAgACABAAEAAAPABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAAAgAAA/4AAAP+AAAD+AAAA/4AAAACAAIAAAAEAAAD/gAAAAIAAAAQAAAD/gAAA/gAAAP8AAAAAgAAA/4AAAACAAAACgAAAAAD9gAAAAIAAAACAAAABgAACAIAAgAOABAAAEwAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAKAAAAAgAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP8AAQAAAAEAAAAEAAAA/4AAAP8AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAD/AAAAAwD/AAAAAQAAAQCAAIADgAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABgAAAAIAAAP+AAAD+AAAA/4AAAAEAAAABAAAA/oAAAP+AAAAAgAQAAAD/gAAA/4AAAACAAAD/AAAA/4AAAP8AAAD/gAAAAIAAAACAAAD/gAAAAQAAAACAAAABAAAAAAAAAQCAAIADgAQAAAcAAAEBAQEBAQEBAIADAAAA/wAAAP8AAAD/AAQAAAD/gAAA/QAAAAMAAAAAAAABAIAAgAOABAAACwAAAQEBAQEBAQEBAQEBAIABAAAAAQAAAAEAAAD/gAAA/gAAAP+ABAAAAP0AAAADAAAA/QAAAP+AAAAAgAAAAAAAAQCAAIADgAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEAgAEAAAABAAAAAQAAAP+AAAD/gAAA/wAAAP+AAAD/gAQAAAD+AAAAAgAAAP4AAAD/AAAA/4AAAACAAAABAAAAAAAAAQCAAIAEAAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAIAAAACAAAAAgAAAAQAAAP8AAAD/gAAA/4AAAP+AAAD/AAQAAAD+AAAAAIAAAP+AAAACAAAA/IAAAACAAAAAgAAA/4AAAP+AAAAAAAABAIAAgAOABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQCAAQAAAAEAAAABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/AAAA/wAAAACAAAAAgAAA/4AAAP+ABAAAAP8AAAABAAAA/wAAAP+AAAD/gAAA/4AAAP8AAAABAAAA/wAAAAEAAAAAgAAAAIAAAACAAAAAAAABAIAAgAOABAAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAAEAAAABAAAA/4AAAP+AAAD/AAAA/4AAAP+ABAAAAP6AAAABgAAA/oAAAP+AAAD+gAAAAYAAAACAAAAAAAABAIAAgAOABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIADAAAA/4AAAP+AAAD/gAAA/4AAAAIAAAD9AAAAAIAAAACAAAAAgAAAAIAAAP4ABAAAAP8AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAAEAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADAAQAAAcAAAEBAQEBAQEBAQACAAAA/wAAAAEAAAD+AAQAAAD/gAAA/YAAAP+AAAAAAAABAIAAgAQAA4AAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAIAAAACAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AA4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADAAQAAAcAAAEBAQEBAQEBAQACAAAA/gAAAAEAAAD/AAQAAAD8gAAAAIAAAAKAAAAAAAABAIACAAQABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgAAgAAAAIAAAACAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACABAAAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAAAAQCAAIADgAEAAAMAAAEBAQEAgAMAAAD9AAEAAAD/gAAAAAAAAQEAAoACgAQAAAkAAAEBAQEBAQEBAQEBAAEAAAAAgAAA/4AAAP+AAAD/gAQAAAD/gAAA/wAAAACAAAAAgAAAAAEAgACAA4ADAAAPAAABAQEBAQEBAQEBAQEBAQEBAQACgAAA/4AAAP+AAAD/AAAAAQAAAP6AAAD/gAAAAIADAAAA/YAAAACAAAABgAAA/oAAAP+AAAAAgAAAAYAAAAAAAAIAgACAA4AEAAAJAA0AAAEBAQEBAQEBAQEBAQEBAIABAAAAAYAAAACAAAD/gAAA/YABAAAAAQAAAAQAAAD/AAAA/4AAAP6AAAD/gAAAAgD+gAAAAYAAAAABAIAAgAOAAwAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP8AAAABAAAAAQAAAP+AAAD+AAAA/4AAAACAAwAAAP+AAAD/gAAAAIAAAP6AAAAAgAAA/4AAAP+AAAAAgAAAAYAAAAAAAAIAgACAA4AEAAAJAA0AAAEBAQEBAQEBAQEBAQEBAoABAAAA/YAAAP+AAAAAgAAAAYD/AAAAAQAAAAQAAAD8gAAAAIAAAAGAAAAAgAAA/4D+gAAAAYAAAAACAIAAgAOAAwAADQARAAABAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/gAAAAGAAAD+AAAA/4AAAACAAIAAAAEAAAADAAAA/4AAAP8AAAD/gAAA/4AAAACAAAABgAAAAAD/gAAAAIAAAAABAQAAgAOAA4AACwAAAQEBAQEBAQEBAQEBAYACAAAA/oAAAAEAAAD/AAAA/wAAAACAA4AAAP+AAAD/AAAA/4AAAP8AAAACgAAAAAAAAgCAAIADgAOAAA8AEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAP4AAAABgAAA/oAAAP+AAAAAgACAAAABAAAAA4AAAP+AAAD+AAAA/4AAAACAAAAAgAAAAIAAAAEAAAAAAP8AAAABAAABAIAAgAOABAAACwAAAQEBAQEBAQEBAQEBAIABAAAAAYAAAACAAAD/AAAA/wAAAP8ABAAAAP8AAAD/gAAA/gAAAAIAAAD+AAAAAAAAAgGAAIACgAQAAAMABwAAAQEBAQEBAQEBgAEAAAD/AAAAAQAAAP8ABAAAAP+AAAD/gAAA/YAAAAACAIAAgAOABAAAAwAPAAABAQEBAQEBAQEBAQEBAQEBAoABAAAA/wAAAAEAAAD/gAAA/gAAAP+AAAABAAAAAQAEAAAA/4AAAP+AAAD+AAAA/4AAAACAAAABAAAA/wAAAAABAIAAgAOAA4AAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAQAAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP8AA4AAAP8AAAAAgAAA/4AAAP8AAAD/gAAA/4AAAACAAAAAgAAA/wAAAAAAAAEBgACAAwAEAAAHAAABAQEBAQEBAQGAAQAAAACAAAD/AAAA/4AEAAAA/QAAAP+AAAAAgAAAAAAAAQCAAIAEAAMAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAAAAIAAAAEAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAP8AAAAAgAMAAAD/gAAAAIAAAP+AAAD+AAAAAYAAAP+AAAAAgAAA/oAAAAIAAAAAAAABAIAAgAOAAwAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAACAAAABAAAAAIAAAP8AAAD/gAAA/4AAAP8AAwAAAP+AAAAAgAAA/4AAAP4AAAABgAAA/4AAAP8AAAAAAAACAIAAgAOAAwAACwAPAAABAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP+AAAD+AAAA/4AAAACAAIAAAAEAAAADAAAA/4AAAP6AAAD/gAAAAIAAAAGAAAAAAP6AAAABgAACAIAAgAOAAwAACQANAAABAQEBAQEBAQEBAQEBAQCAAoAAAACAAAD/gAAA/oAAAP8AAQAAAAEAAAADAAAA/4AAAP+AAAD/gAAA/wAAAAIA/4AAAACAAAAAAgCAAIAEAAMAAA0AEQAAAQEBAQEBAQEBAQEBAQEBAQEBAQACgAAAAIAAAP+AAAD/AAAA/oAAAP+AAAAAgACAAAABAAAAAwAAAP6AAAD/gAAA/4AAAAEAAAAAgAAAAIAAAAAA/4AAAACAAAAAAQEAAIADgAMAAAkAAAEBAQEBAQEBAQEBAAIAAAAAgAAA/wAAAP+AAAD/AAMAAAD/gAAA/wAAAAEAAAD+AAAAAAEAgACABAADAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEAAoAAAP6AAAABgAAAAIAAAP+AAAD9AAAAAgAAAP6AAAD/gAAAAIADAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAAAAAQCAAIADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAAAAQAAAP8AAAAAgAAAAQAAAP+AAAD+gAAA/4AAAP+AAAAAgAOAAAD/gAAA/4AAAP6AAAAAgAAA/4AAAP+AAAAAgAAAAYAAAACAAAAAAAABAIAAgAOAAwAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAACAAAAAgAAAAQAAAP+AAAD/gAAA/oAAAP+AAwAAAP4AAAAAgAAAAYAAAP2AAAAAgAAA/4AAAACAAAAAAAABAIAAgAOAAwAADwAAAQEBAQEBAQEBAQEBAQEBAQCAAQAAAAEAAAABAAAA/4AAAP+AAAD/AAAA/4AAAP+AAwAAAP6AAAABgAAA/oAAAP+AAAD/gAAAAIAAAACAAAAAAAABAIAAgAQAAwAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAAAgAAAAIAAAACAAAABAAAA/4AAAP8AAAD/gAAA/wAAAP+AAwAAAP6AAAAAgAAA/4AAAAGAAAD+AAAA/4AAAACAAAD/gAAAAIAAAAAAAAEAgACAA4ADAAAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIABAAAAAQAAAAEAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP8AAAD/AAAAAIAAAACAAAD/gAAA/4ADAAAA/4AAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAD/gAAAAIAAAACAAAAAgAAAAIAAAAAAAAEAgACAA4ADAAAPAAABAQEBAQEBAQEBAQEBAQEBAIABAAAAAQAAAAEAAAD/gAAA/gAAAAGAAAD+gAAA/4ADAAAA/wAAAAEAAAD+AAAA/4AAAACAAAAAgAAAAIAAAAAAAAEAgACAA4ADAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQCAAwAAAP+AAAD/gAAA/4AAAAGAAAD9AAAAAIAAAACAAAAAgAAA/oADAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAAAAAQCAAIADAAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAYABgAAA/wAAAP+AAAAAgAAAAQAAAP6AAAD/gAAA/4AAAACAAAAAgAQAAAD/gAAA/wAAAP+AAAD/AAAA/4AAAACAAAABAAAAAIAAAAEAAAAAAAABAYAAgAKABAAAAwAAAQEBAQGAAQAAAP8ABAAAAPyAAAAAAAABAQAAgAOABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAGAAAAAgAAAAIAAAP+AAAD/gAAA/oAAAAEAAAAAgAAA/4AAAP8ABAAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAgAAAAQAAAAAAAAEAgAGAA4ADAAAPAAABAQEBAQEBAQEBAQEBAQEBAQABAAAAAQAAAACAAAD/gAAA/wAAAP8AAAD/gAAAAIADAAAA/4AAAACAAAD/AAAA/4AAAACAAAD/gAAAAQAAAAAAAAEAAAAABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAYAAAAEAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/AAAA/wAEAAAA/4AAAP+AAAD/gAAA/wAAAP6AAAABAAAAAQAAAACAAAAAgAAAAAAAAQIAAAAEAAQAAAMAAAEBAQECAAIAAAD+AAQAAAD8AAAAAAAAAgCAAIADgAQAABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAYAAAP8AAAABAAAA/4AAAP+AAAABgAAA/QAAAACAAAAAgAAA/wAAAACAAAAAgAGAAIAAAP+ABAAAAP+AAAD/AAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAABAAAAAAAAAP+AAAAAAQCAAIADgAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAEAAAABAAAAAQAAAP+AAAAAgAAA/wAAAAEAAAD/AAAA/wAAAP8AAAABAAAA/wAAAACAAAD/gAQAAAD+gAAAAYAAAP8AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAABACAAIAEAAQAABcAGwAfACMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAoAAAP4AAAABgAAAAIAAAACAAAD/gAAA/YAAAAIAAAD+gAAA/4AAAP+AAAAAgAEAAAAAgAAAAQAAgAAA/4D9AACAAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAA/wAAAP+AAAAAgAAAAIAAAACAAAAAgAAAAQAAAP8A/4AAAACAAQAAAP+AAAD+gAAA/4AAAAAEAIAAgAQAA4AAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+AA4AAAP0AAAADAAAA/QAAAAMAAAD9AAAAAwAAAP0AAAAAAQIAAAAEAAQAAAkAAAEBAQEBAQEBAQEDgACAAAD+AAAAAIAAAACAAAAAgAQAAAD8AAAAAQAAAAEAAAABAAAAAAgAAAAABAAEAAADAAcACwAPABMAFwAbAB8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAABAAAA/wACAAEAAAD/AP8AAQAAAP8AAgABAAAA/wD9AAEAAAD/AAIAAQAAAP8A/wABAAAA/wACAAEAAAD/AAQAAAD/AAAAAQAAAP8AAAAAAAAA/wAAAAEAAAD/AAAAAAAAAP8AAAABAAAA/wAAAAAAAAD/AAAAAQAAAP8AAAAAAQIAAAADAAQAAAMAAAEBAQECAAEAAAD/AAQAAAD8AAAAAAAAAgGAAIACgAQAAAMABwAAAQEBAQEBAQEBgAEAAAD/AAAAAQAAAP8ABAAAAP6AAAD/gAAA/oAAAAABAgAAAAQAAgAAAwAAAQEBAQIAAgAAAP4AAgAAAP4AAAAAAAAEAIAAAAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+ABAAAAPwAAAAEAAAA/AAAAAQAAAD8AAAABAAAAPwAAAAAAQCAAIADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAoABAAAA/oAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAEAAAD/gAOAAAD+AAAA/wAAAACAAAAAgAAAAIAAAACAAAAAgAAA/wAAAAEAAAAAAAABAAAAAAQABAAACwAAAQEBAQEBAQEBAQEBAAAEAAAA/gAAAP+AAAD/gAAA/4AAAP+ABAAAAPwAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQCAAIAEAAOAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAOAAAD/gAAAAIAAAP8AAAABAAAA/oAAAAGAAAD9AAAAAIAAAP+AAAABAAAA/wAAAAGAAAD+gAAAAAAAAQAAAAACAAQAAAkAAAEBAQEBAQEBAQEAAACAAAAAgAAAAIAAAACAAAD+AAQAAAD/AAAA/wAAAP8AAAD/AAAAAAEAAAAABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQKAAYAAAP8AAAD/AAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAQAEAAAA/wAAAP+AAAD/gAAA/wAAAP8AAAABgAAAAQAAAACAAAAAgAAAAAAAAQAAAAAEAAIAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAAAgAAAAIAAAACAAAD8AAAAAIAAAACAAAAAgAIAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAAAAgAAAAAEAAQAAAMABwAAAQEBAQEBAQEAAAIAAAD+AAIAAgAAAP4ABAAAAP4AAAAAAAAA/gAAAAAEAAACAAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAP8AAgABAAAA/wD/AAEAAAD/AAIAAQAAAP8ABAAAAP8AAAABAAAA/wAAAAAAAAD/AAAAAQAAAP8AAAAABAIAAAAEAAQAAAMABwALAA8AAAEBAQEBAQEBAQEBAQEBAQECAAEAAAD/AAEAAQAAAP8A/wABAAAA/wABAAEAAAD/AAQAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAEDAAAABAAEAAADAAABAQEBAwABAAAA/wAEAAAA/AAAAAAAAAEAAAAABAAEAAAFAAABAQEBAQEAAAQAAAD9AAAA/wAEAAAA/wAAAP0AAAAAAQAAAAABAAQAAAMAAAEBAQEAAAEAAAD/AAQAAAD8AAAAAAAAAwCAAIADAAOAAAMABwALAAABAQEBAQEBAQEBAQEAgACAAAD/gAEAAIAAAP+AAQAAgAAA/4ADgAAA/QAAAAMAAAD9AAAAAwAAAP0AAAAAAAABAYABgAQABAAACwAAAQEBAQEBAQEBAQEBAYABAAAAAIAAAAEAAAD+gAAA/4AAAP+ABAAAAP8AAAD/gAAA/wAAAACAAAAAgAAAAAAAAQAAAYACgAQAAAsAAAEBAQEBAQEBAQEBAQGAAQAAAP+AAAD/gAAA/oAAAAEAAAAAgAQAAAD+gAAA/4AAAP+AAAABAAAAAIAAAAAAAAEAAAAABAAEAAAJAAABAQEBAQEBAQEBAwABAAAA/AAAAAEAAAABAAAAAQAEAAAA/AAAAAKAAAAAgAAAAIAAAAABAIAAgAMABAAACwAAAQEBAQEBAQEBAQEBAgABAAAA/4AAAP6AAAD/gAAAAIAAAAEABAAAAP0AAAD/gAAAAIAAAAEAAAAAgAAAAAAAAQAAAAAEAAQAAAUAAAEBAQEBAQAAAQAAAAMAAAD8AAQAAAD9AAAA/wAAAAACAIAAgAMAAoAACwAPAAABAQEBAQEBAQEBAQEBAQEBAQABgAAAAIAAAP+AAAD+gAAAAQAAAP8A/4AAgAAA/4ACgAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAAAAA/wAAAAACAIAAgAMABAAACwAPAAABAQEBAQEBAQEBAQEBAQEBAgABAAAA/4AAAP6AAAABAAAA/wAAAAEA/oAAgAAA/4AEAAAA/QAAAP+AAAAAgAAAAQAAAACAAAD/gAAA/wAAAAABAIAAgAQABAAADQAAAQEBAQEBAQEBAQEBAQECAAIAAAD/AAAA/4AAAP6AAAD/gAAAAIAAAAEABAAAAP+AAAD9gAAA/4AAAACAAAABAAAAAIAAAAACAAAAAAQABAAAAwAHAAABAQEBAQEBAQAABAAAAPwAAQAAAAIAAAAEAAAA/AAAAAMA/gAAAAIAAAEAgACABAAEAAARAAABAQEBAQEBAQEBAQEBAQEBAQECAAIAAAD/AAAAAQAAAP8AAAD/gAAA/oAAAP+AAAAAgAAAAQAEAAAA/4AAAP+AAAD/gAAA/oAAAP+AAAAAgAAAAQAAAACAAAAAAQAAAAACgAKAAAsAAAEBAQEBAQEBAQEBAQAAAYAAAACAAAAAgAAA/wAAAP+AAAD/AAKAAAD/gAAA/4AAAP6AAAABAAAAAIAAAAAAAAEAAAAABAAEAAAFAAABAQEBAQEAAAQAAAD/AAAA/QAEAAAA/AAAAAMAAAAAAQCAAIAEAAQAABUAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAAIAAAD/AAAAAQAAAP8AAAABAAAA/wAAAP+AAAD+gAAA/4AAAACAAAABAAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAAEAAAAAgAAAAAEBgAAABAACgAALAAABAQEBAQEBAQEBAQECgAGAAAD/AAAA/4AAAP8AAAAAgAAAAIACgAAA/wAAAP+AAAD/AAAAAYAAAACAAAAAAAABAAAAAAQABAAAEQAAAQEBAQEBAQEBAQEBAQEBAQEBAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAPwABAAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAAEAAAAABAABAAADAAABAQEBAAAEAAAA/AABAAAA/wAAAAAAAAEAAAAABAAEAAARAAABAQEBAQEBAQEBAQEBAQEBAQEDgACAAAD8AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAEAAAA/AAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAQAAAgAEAAQAAAMAAAEBAQEAAAQAAAD8AAQAAAD+AAAAAAAAAgCAAIACAAOAAAMABwAAAQEBAQEBAQEAgACAAAD/gAEAAIAAAP+AA4AAAP0AAAADAAAA/QAAAAAEAIAAgAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAA4AAAPyAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAABAAAAPyAAAADAP+AAAAAgP8A/4AAAACA/wD/gAAAAIAAAQAAAAAEAAQAAAUAAAEBAQEBAQMAAQAAAPwAAAADAAQAAAD8AAAAAQAAAAACAIAAgAQABAAAAwAHAAABAQEBAQEBAQCAA4AAAPyAAYAAAACAAAAEAAAA/IAAAAIA/4AAAACAAAMAgACABAAEAAADAAcACwAAAQEBAQEBAQEBAQEBAIADgAAA/IAAgAAAAIAAAAGAAAAAgAAABAAAAPyAAAADAP+AAAAAgP4A/4AAAACAAAAABAAAAIAEAAQAAAMABwALAA8AAAEBAQEBAQEBAQEBAQEBAQEAAAQAAAD8AAAABAAAAPwAAAAEAAAA/AAAAAQAAAD8AAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAAYAgACABAAEAAADAAcACwAPABMAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAIADgAAA/IAAgAAAAIAAAAGAAAAAgAAA/oAAAACAAAD+gAAAAIAAAAGAAAAAgAAABAAAAPyAAAADAP+AAAAAgAAA/4AAAACA/wD/gAAAAID/AP+AAAAAgAAA/4AAAACAAAEAgACAAQADgAADAAABAQEBAIAAgAAA/4ADgAAA/QAAAAAAAAUAgACABAAEAAADAAcACwAPABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAIADgAAA/IAAgAAAAIAAAAGAAAAAgAAA/YAAAACAAAABgAAAAIAAAAQAAAD8gAAAAwD/gAAAAIAAAP+AAAAAgP4A/4AAAACAAAD/gAAAAIAAAAABAAADAAQABAAAAwAAAQEBAQAABAAAAPwABAAAAP8AAAAAAAAHAIAAgAQABAAAAwAHAAsADwATABcAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQCAA4AAAPyAAIAAAACAAAABgAAAAIAAAP2AAAAAgAAAAYAAAACAAAD9gAAAAIAAAAGAAAAAgAAABAAAAPyAAAADAP+AAAAAgAAA/4AAAACA/wD/gAAAAIAAAP+AAAAAgP8A/4AAAACAAAD/gAAAAIAAAAAEAAAAAAQAAgAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAP8AAgABAAAA/wD/AAEAAAD/AAIAAQAAAP8AAgAAAP8AAAABAAAA/wAAAAAAAAD/AAAAAQAAAP8AAAAAAQAAAAAEAAQAAAkAAAEBAQEBAQEBAQEAAAEAAAABAAAAAQAAAAEAAAD8AAQAAAD/gAAA/4AAAP+AAAD9gAAAAAEBAAAAAgAEAAADAAABAQEBAQABAAAA/wAEAAAA/AAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQECgAGAAAD8AAAAAIAAAACAAAAAgAAAAQAEAAAA/AAAAAGAAAABAAAAAIAAAACAAAAAAAABAAABAAQAAgAAAwAAAQEBAQAABAAAAPwAAgAAAP8AAAAAAAABAAAAAAQABAAACwAAAQEBAQEBAQEBAQEBAgACAAAA/AAAAACAAAAAgAAAAIAAAACABAAAAPwAAAACAAAAAIAAAACAAAAAgAAAAAAAAQAAAAAEAAIAAAkAAAEBAQEBAQEBAQEDAAEAAAD8AAAAAQAAAAEAAAABAAIAAAD+AAAAAIAAAACAAAAAgAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAIAAAAAgAAAAIAAAACAAAAAgAAA/AAEAAAA/4AAAP+AAAD/gAAA/4AAAP4AAAAAAAADAAAAAAQABAAAGwAnADMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAEAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAIAAYAAAACAAAD/gAAA/4AAAP+AAAD/gP4AAIAAAACAAAAAgAAAAIAAAP6AAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAQAAAP+AAAD+gAAAAIAAAACAAAAAgAAA/oAAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAAAAAQAAAAAEAAIAAAkAAAEBAQEBAQEBAQEAAAEAAAABAAAAAQAAAAEAAAD8AAIAAAD/gAAA/4AAAP+AAAD/gAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAGAAAABAAAAAIAAAACAAAAAgAAA/AAEAAAA/4AAAP+AAAD/gAAA/wAAAP6AAAAAAAAEAAAAgAQABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQCAAYAAAP6AAgABgAAA/oD9gAGAAAD+gAIAAYAAAP6ABAAAAP6AAAABgAAA/oAAAP+AAAD+gAAAAYAAAP6AAAAAAQIAAgAEAAQAAAMAAAEBAQECAAIAAAD+AAQAAAD+AAAAAAAABACAAIAEAAQAAAMABwAjACcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAAD/AAGAAQAAAP8A/gAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4ABgACAAAD/gAQAAAD/gAAAAIAAAP+AAAAAAAAA/wAAAP+AAAD/gAAAAIAAAACAAAABAAAA/oAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAGAAAD/gAAAAAQAAAAABAAEAAADAAcACwAPAAABAQEBAQEBAQEBAQEBAQEBAAAAgAAA/4ADgACAAAD/gPyAAIAAAP+AA4AAgAAA/4AEAAAA/4AAAACAAAD/gAAA/QAAAP+AAAAAgAAA/4AAAAABAAAAAAIAAgAAAwAAAQEBAQAAAgAAAP4AAgAAAP4AAAAAAAAEAAAAAAIABAAAAwAHAAsADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAP8AAQABAAAA/wD/AAEAAAD/AAEAAQAAAP8ABAAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAQCAAQADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAYABAAAA/4AAAAGAAAD+gAAAAIAAAP8AAAD/gAAA/4AAAACAAAAAgAOAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAACAAAAAAAABAQABAAOABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACABAAAAP+AAAD/gAAA/wAAAACAAAD+gAAAAYAAAP+AAAABAAAAAIAAAAAAAAEBAAEABAADgAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQIAAQAAAACAAAAAgAAA/4AAAP+AAAD/AAAAAIAAAP6AAAABgAAA/4ADgAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADgAOAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAgAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAOAAAD+gAAAAIAAAP8AAAD/gAAA/4AAAACAAAAAgAAAAQAAAP+AAAAAAAABAQAAgAOABAAADwAAAQEBAQEBAQEBAQEBAQEBAQIAAIAAAACAAAAAgAAA/4AAAP6AAAD/gAAAAIAAAACABAAAAP8AAAD/AAAA/wAAAP+AAAAAgAAAAQAAAAEAAAAAAAACAIAAgAOAA4AAAwAJAAABAQEBAQEBAQEBAIADAAAA/QAAgAAAAgAAAP8AAAADgAAA/QAAAAKA/gAAAAEAAAABAAAAAAIAgACABAAEAAAbACcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAD/gAAAAIAAAACAAAAAgAAA/4AAAAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAA/4D/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAEAAAIABAADAAADAAABAQEBAAAEAAAA/AADAAAA/wAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAQAAAD/gAAA/4AAAP+AAAD/gAAA/gAEAAAA/gAAAP+AAAD/gAAA/4AAAP+AAAAAAAABAAACAAIABAAAAwAAAQEBAQAAAgAAAP4ABAAAAP4AAAAAAAACAQAAgAOAA4AAFwAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYABgAAAAIAAAP8AAAAAgAAAAIAAAP8AAAD/gAAA/wAAAACAAAAAgAAA/wAAAACAAIAAAACAAAADgAAA/wAAAP+AAAD/gAAA/4AAAP+AAAAAgAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgP+AAAAAgAADAAAAAAQABAAACwAnADMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAGAAAD/gAAA/4AAAP+AAAD/gAAAAIACgAEAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgACAAIAAAP+AAAD+gAAAAIAAAACAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAAAYAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAA/oAAAP6AAAD/gAAAAIAAAACAAAAAgAAAAAAAAgCAAIADgAQAAA8AHwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAEAAAABAAAAAIAAAP+AAAD/AAAA/wAAAP+AAAAAgAAAAQAAAAEAAAAAgAAA/4AAAP8AAAD/AAAA/4AAAACABAAAAP+AAAAAgAAA/wAAAP+AAAAAgAAA/4AAAAEAAAD+gAAA/4AAAACAAAD/AAAA/4AAAACAAAD/gAAAAQAAAAABAAAAAAQAA4AACwAAAQEBAQEBAQEBAQEBAQACAAAAAIAAAACAAAD8AAAAAIAAAACAA4AAAP+AAAD/gAAA/YAAAAKAAAAAgAAAAAAAAQAAAAACAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEAAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAAAAAAAAQIAAAAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDgACAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAQAAAD8AAAAAIAAAACAAAAAgAAAAQAAAACAAAAAgAAAAAAAAQCAAIAEAAQAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIAAIAAAACAAAAAgAAAAIAAAP+AAAD/AAAA/4AAAP8AAAD/gAAAAIAAAACAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAA/oAAAAEAAAD/AAAAAYAAAACAAAAAgAAAAIAAAAAAACAAAAAABAAEAAADAAcACwAPABMAFwAbAB8AIwAnACsALwAzADcAOwA/AEMARwBLAE8AUwBXAFsAXwBjAGcAawBvAHMAdwB7AH8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAgAAA/4ABAACAAAD/gAEAAIAAAP+AAQAAgAAA/4D9gACAAAD/gAEAAIAAAP+AAQAAgAAA/4ABAACAAAD/gPyAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+A/YAAgAAA/4ABAACAAAD/gAEAAIAAAP+AAQAAgAAA/4D8gACAAAD/gAEAAIAAAP+AAQAAgAAA/4ABAACAAAD/gP2AAIAAAP+AAQAAgAAA/4ABAACAAAD/gAEAAIAAAP+A/IAAgAAA/4ABAACAAAD/gAEAAIAAAP+AAQAAgAAA/4D9gACAAAD/gAEAAIAAAP+AAQAAgAAA/4ABAACAAAD/gAQAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAACAAAD/gAAAAIAAAP+AAAAAAQAAAAAEAAQAAAsAAAEBAQEBAQEBAQEBAQAABAAAAP6AAAD/AAAA/4AAAP+AAAD/gAQAAAD8AAAAAIAAAACAAAAAgAAAAQAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEAAAQAAAD/gAAA/4AAAP+AAAD/AAAA/oAEAAAA/oAAAP8AAAD/gAAA/4AAAP+AAAAAAAABAAABgAKABAAADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACAAAAAAAABAAAAAAKABAAADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAA/4AAAP2AAAACAAAAAIAAAACAAAAAAAABAYAAAAQAAoAABQAAAQEBAQEBAYACgAAA/oAAAP8AAoAAAP8AAAD+gAAAAAEAAAAABAAEAAAJAAABAQEBAQEBAQEBAAACgAAAAIAAAACAAAAAgAAA/AAEAAAA/wAAAP8AAAD/AAAA/wAAAAACAAAAAAQABAAAGwAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAQAAAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP8AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAAAAAEAAAAEAAAA/4AAAP+AAAD/gAAA/wAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAEAAAAAgAAAAIAAAP8A/wAAAAEAAAEBgAGABAAEAAAFAAABAQEBAQEBgAEAAAABgAAA/YAEAAAA/oAAAP8AAAAAAQAAAAACgAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAKAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQGAAAAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD+AAAAAoAAAACAAAAAgAAAAAAAAQGAAAAEAAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAKAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAAAAAQGAAYAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQAAAAAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAEAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQAAAAAEAAQAAB8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAABAAAAAIAAAAEAAAAAgAAAAQAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAP+AAAD/gAQAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAAEAAAAAgAAAAQAAAACAAAAAAAABAAABgAQABAAADwAAAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAgAAAP2AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACAAAAAAAABAAABgAQAAoAAAwAAAQEBAQAABAAAAPwAAoAAAP8AAAAAAAABAYAAAAKABAAAAwAAAQEBAQGAAQAAAP8ABAAAAPwAAAAAAAABAYAAAAQABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACABAAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAAAgAAAAQAAAACAAAAAgAAAAAAAAQAAAAAEAAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEAAAKAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD+AAKAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAAAAAQAAAYAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD9gAAAAgAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQAAAgAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEAAAQAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAAAAAQAAAYACgAKAAAMAAAEBAQEAAAKAAAD9gAKAAAD/AAAAAAAAAQGAAAACgAKAAAMAAAEBAQEBgAEAAAD/AAKAAAD9gAAAAAAAAQAAAYAEAAQAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAABAAAAAIAAAAEAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAQAAAD/gAAA/4AAAACAAAAAgAAA/wAAAP+AAAD/gAAA/4AAAACAAAAAgAAAAIAAAAAAAAEAAAAABAAEAAAJAAABAQEBAQEBAQEBAYACgAAA/AAAAACAAAAAgAAAAIAEAAAA/AAAAAEAAAABAAAAAQAAAAABAAAAAAQABAAAEwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/AAAA/oAAAAEAAAABAAAAAIAAAACABAAAAP6AAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAQAAAAAAAAEAAAAABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAQAAAAEAAAD+gAAA/wAAAP+AAAD/gAAA/4AEAAAA/wAAAP8AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAACAAAABAAAAAAAAAQAAAAAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEDAAEAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQAAAAACgAQAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAP+AAAD/gAAA/4AAAP8AAAAAgAAAAIAAAP+AAAD/gAQAAAD/gAAA/4AAAP+AAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAABAAAAAIAAAAAAAAEAAAAABAAEAAAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAQAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAD/gAAA/4AEAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+AAAABAAAAAIAAAAEAAAAAgAAAAAAAAQAAAAACgAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAQAAAD9gAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQGAAAAEAAQAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAEAAAAAgAAAAIAAAACAAAD/AAAA/4AAAP+AAAD/gAQAAAD+AAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAAAAAAAAQAAAAAEAAKAAA8AAAEBAQEBAQEBAQEBAQEBAQEBgAKAAAD+AAAA/4AAAP+AAAD/AAAAAIAAAACAAAAAgAKAAAD/AAAA/4AAAP+AAAD/gAAAAQAAAACAAAAAgAAAAAAAAQGAAYACgAQAAAMAAAEBAQEBgAEAAAD/AAQAAAD9gAAAAAAAAQGAAYAEAAKAAAMAAAEBAQEBgAKAAAD9gAKAAAD/AAAAAAAAAQAAAAAEAAQAAB8AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAQAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+AAAABAAAAAIAAAACAAAAAgAAAAIAAAACAAAAAAAABAAAAAAQABAAAIwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAABAAAAAIAAAAEAAAAAgAAAAQAAAP+AAAD/gAAAAIAAAACAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+ABAAAAP+AAAD/gAAAAIAAAACAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAA/4AAAP+AAAABAAAAAIAAAAEAAAAAgAAAAAAAAQGAAYACgAKAAAMAAAEBAQEBgAEAAAD/AAKAAAD/AAAAAAAAAQAAAAAEAAKAABcAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAQAAAACAAAAAgAAAAIAAAP8AAAD/gAAA/wAAAP+AAAD/AAAAAIAAAACAAAAAgAKAAAD/gAAA/4AAAP+AAAD/AAAAAIAAAACAAAD/gAAA/4AAAAEAAAAAgAAAAIAAAAAAAAEAAAGAAoAEAAAFAAABAQEBAQEBgAEAAAD9gAAAAYAEAAAA/YAAAAEAAAAAAQAAAAACgAKAAAUAAAEBAQEBAQAAAoAAAP8AAAD+gAKAAAD9gAAAAYAAAAABAAAAAAQABAAAHwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAEAAAAAgAAAAQAAAACAAAABAAAA/4AAAP+AAAAAgAAAAIAAAP8AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+ABAAAAP+AAAD/gAAAAIAAAACAAAD/AAAA/4AAAP8AAAD/gAAA/wAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAAAAAAEAAAAABAAEAAALAAABAQEBAQEBAQEBAQEBgAEAAAABgAAA/oAAAP8AAAD+gAAAAYAEAAAA/oAAAP8AAAD+gAAAAYAAAAEAAAAAAAABAAAAAAQAAoAABwAAAQEBAQEBAQEAAAQAAAD+gAAA/wAAAP6AAoAAAP8AAAD+gAAAAYAAAAAAAAEBgAAABAAEAAAHAAABAQEBAQEBAQGAAQAAAAGAAAD+gAAA/wAEAAAA/oAAAP8AAAD+gAAAAAAAAQAAAAACgAQAAAcAAAEBAQEBAQEBAYABAAAA/wAAAP6AAAABgAQAAAD8AAAAAYAAAAEAAAAAAAABAAABgAQABAAABwAAAQEBAQEBAQEBgAEAAAABgAAA/AAAAAGABAAAAP6AAAD/AAAAAQAAAAAAAAQBAAEAAwADAAADAAcACwAPAAABAQEBAQEBAQEBAQEBAQEBAYABAAAA/wD/gACAAAD/gAGAAIAAAP+A/wABAAAA/wADAAAA/4AAAAAAAAD/AAAAAQAAAP8AAAAAAAAA/4AAAAACAIAAgAOAA4AACwAPAAABAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAP+AAAD+AAAA/4AAAACAAIAAAAEAAAADgAAA/4AAAP4AAAD/gAAAAIAAAAIAAAD/gP8AAAABAAACAAAAAAQABAAAEwAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAgAAAACAAAAAgAAA/4AAAP+AAAD+AAAA/4AAAP+AAAAAgAAAAIAAgAAA/4AAAACAAAABAAAAAIAAAP+AAAAEAAAA/4AAAP+AAAD+AAAA/4AAAP+AAAAAgAAAAIAAAAIAAAAAgAAA/4D/gAAA/wAAAP+AAAAAgAAAAQAAAACAABAAAAAABAAEAAADAAcACwAPABMAFwAbAB8AIwAnACsALwAzADcAOwA/AAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYAAgAAA/4ACAACAAAD/gP2AAIAAAP+AAgAAgAAA/4D9gACAAAD/gAIAAIAAAP+A/YAAgAAA/4ACAACAAAD/gP+AAIAAAP+AAgAAgAAA/4D9gACAAAD/gAIAAIAAAP+A/YAAgAAA/4ACAACAAAD/gP2AAIAAAP+AAgAAgAAA/4AEAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAQAAAAAAQABAAAAwAHAAsADwATABcAGwAfACMAJwArAC8AMwA3ADsAPwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAAAIAAAP+AAgAAgAAA/4D+gACAAAD/gAIAAIAAAP+A/oAAgAAA/4ACAACAAAD/gP6AAIAAAP+AAgAAgAAA/4D8gACAAAD/gAIAAIAAAP+A/oAAgAAA/4ACAACAAAD/gP6AAIAAAP+AAgAAgAAA/4D+gACAAAD/gAIAAIAAAP+ABAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAAAA/4AAAACAAAD/gAAAAAAAAP+AAAAAgAAA/4AAAAAAAAD/gAAAAIAAAP+AAAAAAwCAAIADgAQAABcAGwAfAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIAAIAAAAEAAAD/AAAAAIAAAP+AAAABAAAA/wAAAP+AAAD/AAAA/4AAAACAAAABAP+AAAAAgAAA/4AAAACAAAAEAAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACAAAAAgAAAAYAAAACAAAD/gP+AAAAAgP8A/4AAAACAAAAAAQCAAIADgAOAAA8AAAEBAQEBAQEBAQEBAQEBAQEBAAIAAAAAgAAA/4AAAP+AAAD/AAAA/4AAAP+AAAAAgAOAAAD/gAAA/wAAAP+AAAD/AAAAAQAAAACAAAABAAAAAAAAAgCAAIADgAOAAAMACQAAAQEBAQEBAQEBAQCAAwAAAP0AAYAAAP8AAAACAAAAA4AAAP0AAAACgP8AAAD/AAAAAgAAAAABAIAAgAOAA4AAAwAAAQEBAQCAAwAAAP0AA4AAAP0AAAAAAAACAIAAgAOAA4AAAwALAAABAQEBAQEBAQEBAQEAgAMAAAD9AACAAAACAAAA/4AAAP8AAAADgAAA/QAAAAKA/gAAAAIAAAD/AAAAAQAAAQAAAAAEAAQAABMAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQACAAAAAIAAAACAAAD/gAAA/4AAAP4AAAD/gAAA/4AAAACAAAAAgAQAAAD/gAAA/4AAAP4AAAD/gAAA/4AAAACAAAAAgAAAAgAAAACAAAAAAAABAQABAAMAAwAACwAAAQEBAQEBAQEBAQEBAYABAAAAAIAAAP+AAAD/AAAA/4AAAACAAwAAAP+AAAD/AAAA/4AAAACAAAABAAAAAAAAAQCAAQAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAQAAAP+AAAD/gAAAAIAAAP8AAAD/gAAA/wAAAACAAAD/gAAA/4AAAAEAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAAAgAAA/4AAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAABgCAAIAEAAQAAAMABwALAA8AEwAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAOAAAD8gAEAAAAAgAAAAIAAAACAAAD+AAAAAIAAAAGAAAAAgAAA/gAAAAGAAAAEAAAA/IAAAAMA/wAAAAEAAAD/AAAAAQD+gP+AAAAAgAAA/4AAAACA/4D/gAAAAIAABgCAAIAEAAQAAAMABwALAA8AEwAXAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAgAOAAAD8gAEAAAAAgAAAAIAAAACAAAD+gAAAAYAAAP4AAAAAgAAAAYAAAACAAAAEAAAA/IAAAAMA/wAAAAEAAAD/AAAAAQD+gP+AAAAAgP+A/4AAAACAAAD/gAAAAIAABgCAAIAEAAQAABMAFwAbAB8AIwAnAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgAAgAAAAIAAAAEAAAD/AAAA/4AAAP+AAAD/gAAA/wAAAAEAAAAAgAAAAAAAgAAA/oAAgAAA/4ACAACAAAD/gP4AAIAAAP+AAgAAgAAA/4AEAAAA/wAAAP+AAAD/gAAA/4AAAP8AAAABAAAAAIAAAACAAAAAgAAA/4D/gAAAAIABAAAA/4AAAACAAAD/gAAA/oAAAP+AAAAAgAAA/4AAAAACAQAAgAOABAAAFwAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYABgAAAAIAAAP+AAAD/gAAAAIAAAP+AAAD/gAAA/4AAAACAAAD/gAAAAQAAAP8A/4AAgAAA/4AEAAAA/4AAAP8AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAIAAAAEAAAAAAAAA/wAAAAACAIAAgAQABAAAFwAbAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAYACgAAA/4AAAP+AAAD/gAAAAIAAAP+AAAD+gAAAAQAAAP8AAAABAAAAAIAAAP8A/wAAgAAA/4AEAAAA/gAAAAEAAAD/gAAA/4AAAP8AAAD/gAAAAIAAAAEAAAAAgAAAAIAAAACAAAD+gAAA/wAAAAABAIAAgAQABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQIAAIAAAACAAAAAgAAAAIAAAP8AAAD/gAAAAIAAAP6AAAAAgAAA/4AAAP8AAAAAgAAAAIAAAACABAAAAP+AAAD/gAAA/4AAAP8AAAAAgAAA/wAAAP+AAAAAgAAAAQAAAP+AAAABAAAAAIAAAACAAAAAAAABAIAAgAQABAAAGwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQGAAYAAAP+AAAAAgAAAAQAAAP8AAAD/gAAAAIAAAP6AAAAAgAAA/4AAAP8AAAABAAAAAIAAAP+ABAAAAP8AAAD/gAAAAIAAAP6AAAAAgAAA/wAAAP+AAAAAgAAAAQAAAP+AAAABgAAA/4AAAACAAAAAAAABAIAAgAQABAAAFwAAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQABAAAAAIAAAAEAAAAAgAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAA/4AAAACABAAAAP+AAAAAgAAA/4AAAP6AAAD/gAAA/4AAAP+AAAAAgAAAAIAAAACAAAABgAAAAAAAAQCAAIAEAAQAABsAAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAACAAAAAgAAAAIAAAACAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAQAAAD/gAAA/4AAAP+AAAD/gAAA/4AAAP+AAAD/gAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAAAAAQEAAIADgAQAAAsAAAEBAQEBAQEBAQEBAQIAAYAAAP8AAAD/gAAA/wAAAACAAAAAgAQAAAD/AAAA/gAAAP+AAAABAAAAAIAAAAAAAAEAgACABAAEAAATAAABAQEBAQEBAQEBAQEBAQEBAQEBAQGAAoAAAP+AAAD/AAAAAIAAAACAAAD+gAAA/4AAAP8AAAAAgAAAAIAEAAAA/QAAAP+AAAABAAAAAIAAAAEAAAD+AAAA/4AAAAEAAAAAgAAAAAAAAAAYASYAAQAAAAAAAAAIAAAAAQAAAAAAAQAIAAgAAQAAAAAAAgAHABAAAQAAAAAAAwAIABcAAQAAAAAABAAQAB8AAQAAAAAABQALAC8AAQAAAAAABgAIADoAAQAAAAAACQAJAEIAAQAAAAAACgA6AEsAAQAAAAAADQARAIUAAQAAAAAADgAyAJYAAQAAAAAAEwAMAMgAAwABBAkAAAAQANQAAwABBAkAAQAQAOQAAwABBAkAAgAOAPQAAwABBAkAAwAQAQIAAwABBAkABAAgARIAAwABBAkABQAWATIAAwABBAkABgAQAUgAAwABBAkACQASAVgAAwABBAkACgB0AWoAAwABBAkADQAiAd4AAwABBAkADgBkAgAAAwABBAkAEwAYAmQoYykgMjAyMlVyc2FGb250UmVndWxhclVyc2FGb250VXJzYUZvbnQgUmVndWxhclZlcnNpb24gMS4wVXJzYUZvbnRVcnNhRnJhbmtBbiBvcGVuIGxpY2VuY2UgZ2VuZXJhbCBwdXJwb3NlIHRleHRtb2RlIGZvbnQgYnkgVXJzYUZyYW5rQ0MwIDEuMCBVbml2ZXJzYWxodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvcHVibGljZG9tYWluL3plcm8vMS4wL0hlbGxvIFdvcmxkIQAoAGMAKQAgADIAMAAyADIAVQByAHMAYQBGAG8AbgB0AFIAZQBnAHUAbABhAHIAVQByAHMAYQBGAG8AbgB0AFUAcgBzAGEARgBvAG4AdAAgAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwAFUAcgBzAGEARgBvAG4AdABVAHIAcwBhAEYAcgBhAG4AawBBAG4AIABvAHAAZQBuACAAbABpAGMAZQBuAGMAZQAgAGcAZQBuAGUAcgBhAGwAIABwAHUAcgBwAG8AcwBlACAAdABlAHgAdABtAG8AZABlACAAZgBvAG4AdAAgAGIAeQAgAFUAcgBzAGEARgByAGEAbgBrAEMAQwAwACAAMQAuADAAIABVAG4AaQB2AGUAcgBzAGEAbABoAHQAdABwAHMAOgAvAC8AYwByAGUAYQB0AGkAdgBlAGMAbwBtAG0AbwBuAHMALgBvAHIAZwAvAHAAdQBiAGwAaQBjAGQAbwBtAGEAaQBuAC8AegBlAHIAbwAvADEALgAwAC8ASABlAGwAbABvACAAVwBvAHIAbABkACEAAAADAAAAAAAAAGYAMwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==\r
1257
1240
  `)).arrayBuffer();
1258
- await this.Re(t), this.me = p.parse(t)[0], await this.Se();
1241
+ await this.Oe(t), this.ve = p.parse(t)[0], await this.Le();
1259
1242
  }
1260
- Oe(A) {
1261
- if (A === void 0) return this.xe;
1262
- this.xe = A, this.Ge = this.Te.calculateMaxGlyphDimensions(this._e.map((e) => e.character), this.xe, this.me);
1263
- const t = this.Ye.createTextureAtlas(this._e, this.Ge, this.xe, this.me);
1264
- this.ve = t.framebuffer, this.ye = t.columns, this.be = t.rows;
1243
+ Ue(A) {
1244
+ if (A === void 0) return this.be;
1245
+ this.be = A, this.Me = this.Fe.calculateMaxGlyphDimensions(this.xe.map((e) => e.character), this.be, this.ve);
1246
+ const t = this.ze.createTextureAtlas(this.xe, this.Me, this.be, this.ve);
1247
+ this.ye = t.framebuffer, this.Ge = t.columns, this.$e = t.rows;
1265
1248
  }
1266
- async Le(A) {
1249
+ async ke(A) {
1267
1250
  try {
1268
1251
  const t = await fetch(A);
1269
1252
  if (!t.ok) throw new f(`Failed to load font file: ${t.status} ${t.statusText}`);
1270
1253
  const e = await t.arrayBuffer();
1271
- await this.Re(e);
1254
+ await this.Oe(e);
1272
1255
  const B = p.parse(e);
1273
1256
  if (!B || B.length === 0) throw Error("Failed to parse font file");
1274
- this.me = B[0], await this.Se();
1257
+ this.ve = B[0], await this.Le();
1275
1258
  } catch (t) {
1276
1259
  throw new f("Failed to load font: " + (t instanceof Error ? t.message : "Unknown error"), t);
1277
1260
  }
1278
1261
  }
1279
- async Re(A) {
1262
+ async Oe(A) {
1280
1263
  const t = Date.now();
1281
- this.$e = new FontFace("CustomFont_" + t, A), await this.$e.load(), document.fonts.add(this.$e);
1264
+ this.Ye = new FontFace("CustomFont_" + t, A), await this.Ye.load(), document.fonts.add(this.Ye);
1282
1265
  }
1283
- async Se() {
1284
- const A = this.Me.extractCharacters(this.me), t = this.Me.filterProblematicCharacters(A);
1285
- this._e = this.ze.createCharacterObjects(t, this.me), this.Ge = this.Te.calculateMaxGlyphDimensions(t, this.xe, this.me);
1286
- const e = this.Ye.createTextureAtlas(this._e, this.Ge, this.xe, this.me);
1287
- this.ve = e.framebuffer, this.ye = e.columns, this.be = e.rows;
1266
+ async Le() {
1267
+ const A = this.Te.extractCharacters(this.ve), t = this.Te.filterProblematicCharacters(A);
1268
+ this.xe = this.Re.createCharacterObjects(t, this.ve), this.Me = this.Fe.calculateMaxGlyphDimensions(t, this.be, this.ve);
1269
+ const e = this.ze.createTextureAtlas(this.xe, this.Me, this.be, this.ve);
1270
+ this.ye = e.framebuffer, this.Ge = e.columns, this.$e = e.rows;
1288
1271
  }
1289
- de(A) {
1290
- return this.ze.de(A, this._e);
1272
+ me(A) {
1273
+ return this.Re.me(A, this.xe);
1291
1274
  }
1292
- pe(A) {
1293
- return this.ze.pe(A, this._e);
1275
+ _e(A) {
1276
+ return this.Re._e(A, this.xe);
1294
1277
  }
1295
1278
  W() {
1296
- this.ve.W(), document.fonts.delete(this.$e);
1279
+ this.ye.W(), document.fonts.delete(this.Ye);
1297
1280
  }
1298
1281
  get fontFramebuffer() {
1299
- return this.ve;
1282
+ return this.ye;
1300
1283
  }
1301
1284
  get characters() {
1302
- return this._e;
1285
+ return this.xe;
1303
1286
  }
1304
1287
  get textureColumns() {
1305
- return this.ye;
1288
+ return this.Ge;
1306
1289
  }
1307
1290
  get textureRows() {
1308
- return this.be;
1291
+ return this.$e;
1309
1292
  }
1310
1293
  get maxGlyphDimensions() {
1311
- return this.Ge;
1294
+ return this.Me;
1312
1295
  }
1313
1296
  get fontSize() {
1314
- return this.xe;
1297
+ return this.be;
1315
1298
  }
1316
1299
  get font() {
1317
- return this.me;
1300
+ return this.ve;
1318
1301
  }
1319
1302
  }
1320
- class yA {
1303
+ class xA {
1321
1304
  constructor(A, t, e) {
1322
- n(this, "Ue");
1323
- n(this, "ke");
1324
- n(this, "I");
1325
- n(this, "u");
1326
1305
  n(this, "We");
1327
1306
  n(this, "He");
1307
+ n(this, "I");
1308
+ n(this, "u");
1328
1309
  n(this, "Je");
1329
1310
  n(this, "Ve");
1330
1311
  n(this, "Ke");
1331
- this.Je = A, this.Ve = t, this.Ke = e, this.lA();
1312
+ n(this, "je");
1313
+ n(this, "Ze");
1314
+ this.Ke = A, this.je = t, this.Ze = e, this.PA();
1332
1315
  }
1333
- lA() {
1334
- this.Ue = Math.floor(this.Je.width / this.Ve), this.ke = Math.floor(this.Je.height / this.Ke), this.I = this.Ue * this.Ve, this.u = this.ke * this.Ke, this.We = Math.floor((this.Je.width - this.I) / 2), this.He = Math.floor((this.Je.height - this.u) / 2);
1316
+ PA() {
1317
+ this.We = Math.floor(this.Ke.width / this.je), this.He = Math.floor(this.Ke.height / this.Ze), this.I = this.We * this.je, this.u = this.He * this.Ze, this.Je = Math.floor((this.Ke.width - this.I) / 2), this.Ve = Math.floor((this.Ke.height - this.u) / 2);
1335
1318
  }
1336
- je(A, t) {
1337
- this.Ve = A, this.Ke = t, this.lA();
1319
+ Ne(A, t) {
1320
+ this.je = A, this.Ze = t, this.PA();
1338
1321
  }
1339
1322
  get cellWidth() {
1340
- return this.Ve;
1323
+ return this.je;
1341
1324
  }
1342
1325
  get cellHeight() {
1343
- return this.Ke;
1326
+ return this.Ze;
1344
1327
  }
1345
1328
  get cols() {
1346
- return this.Ue;
1329
+ return this.We;
1347
1330
  }
1348
1331
  get rows() {
1349
- return this.ke;
1332
+ return this.He;
1350
1333
  }
1351
1334
  get width() {
1352
1335
  return this.I;
@@ -1355,243 +1338,243 @@ class yA {
1355
1338
  return this.u;
1356
1339
  }
1357
1340
  get offsetX() {
1358
- return this.We;
1341
+ return this.Je;
1359
1342
  }
1360
1343
  get offsetY() {
1361
- return this.He;
1344
+ return this.Ve;
1362
1345
  }
1363
1346
  }
1364
1347
  class vA {
1365
1348
  constructor(A = {}) {
1366
- n(this, "Je");
1367
- n(this, "Ze");
1368
- n(this, "Ne");
1369
- A.canvas ? (this.Je = A.canvas, this.Ne = !1) : (this.Je = this.Xe(A.width, A.height), this.Ne = !0), this.Je.style.imageRendering = "pixelated";
1349
+ n(this, "Ke");
1350
+ n(this, "Xe");
1351
+ n(this, "qe");
1352
+ A.canvas ? (this.Ke = A.canvas, this.qe = !1) : (this.Ke = this.AB(A.width, A.height), this.qe = !0), this.Ke.style.imageRendering = "pixelated";
1370
1353
  }
1371
- Xe(A, t) {
1354
+ AB(A, t) {
1372
1355
  const e = document.createElement("canvas");
1373
1356
  return e.className = "textmodeCanvas", e.style.imageRendering = "pixelated", e.width = A || 800, e.height = t || 600, document.body.appendChild(e), e;
1374
1357
  }
1375
1358
  S(A, t) {
1376
- this.Je.width = A ?? this.Je.width, this.Je.height = t ?? this.Je.height;
1359
+ this.Ke.width = A ?? this.Ke.width, this.Ke.height = t ?? this.Ke.height;
1377
1360
  }
1378
- qe() {
1379
- const A = this.Je.getContext("webgl2", { alpha: !1, premultipliedAlpha: !1, preserveDrawingBuffer: !0, antialias: !1, depth: !1, stencil: !1, powerPreference: "high-performance" });
1361
+ tB() {
1362
+ const A = this.Ke.getContext("webgl2", { alpha: !0, premultipliedAlpha: !1, preserveDrawingBuffer: !0, antialias: !1, depth: !1, stencil: !1, powerPreference: "high-performance" });
1380
1363
  if (!A) throw new f("`textmode.js` requires WebGL2 support.");
1381
1364
  return A;
1382
1365
  }
1383
1366
  W() {
1384
- this.Ze && this.Ze.disconnect();
1385
- const A = this.Je.getContext("webgl") || this.Je.getContext("webgl2");
1367
+ this.Xe && this.Xe.disconnect();
1368
+ const A = this.Ke.getContext("webgl") || this.Ke.getContext("webgl2");
1386
1369
  if (A) {
1387
1370
  const t = A.getExtension("WEBGL_lose_context");
1388
1371
  t && t.loseContext();
1389
1372
  }
1390
- this.Ne && this.Je.parentNode && this.Je.parentNode.removeChild(this.Je);
1373
+ this.qe && this.Ke.parentNode && this.Ke.parentNode.removeChild(this.Ke);
1391
1374
  }
1392
1375
  get canvas() {
1393
- return this.Je;
1376
+ return this.Ke;
1394
1377
  }
1395
1378
  get width() {
1396
- return this.Je.width;
1379
+ return this.Ke.width;
1397
1380
  }
1398
1381
  get height() {
1399
- return this.Je.height;
1382
+ return this.Ke.height;
1400
1383
  }
1401
1384
  }
1402
1385
  class bA {
1403
1386
  constructor(A = 60) {
1404
- n(this, "AB");
1405
- n(this, "tB");
1406
- n(this, "eB", null);
1407
- n(this, "BB", 0);
1408
- n(this, "QB", !0);
1387
+ n(this, "eB");
1388
+ n(this, "BB");
1389
+ n(this, "QB", null);
1409
1390
  n(this, "sB", 0);
1410
- n(this, "EB", 0);
1411
- n(this, "iB", []);
1412
- n(this, "rB", 10);
1413
- n(this, "nB", 0);
1414
- this.AB = A, this.tB = 1e3 / A;
1391
+ n(this, "EB", !0);
1392
+ n(this, "iB", 0);
1393
+ n(this, "rB", 0);
1394
+ n(this, "nB", []);
1395
+ n(this, "gB", 10);
1396
+ n(this, "oB", 0);
1397
+ this.eB = A, this.BB = 1e3 / A;
1415
1398
  }
1416
1399
  start(A) {
1417
- if (!this.QB) return;
1418
- this.BB = performance.now();
1400
+ if (!this.EB) return;
1401
+ this.sB = performance.now();
1419
1402
  const t = (e) => {
1420
- if (!this.QB) return void (this.eB = null);
1421
- const B = e - this.BB;
1422
- B >= this.tB && (A(), this.BB = e - B % this.tB), this.QB && (this.eB = requestAnimationFrame(t));
1403
+ if (!this.EB) return void (this.QB = null);
1404
+ const B = e - this.sB;
1405
+ B >= this.BB && (A(), this.sB = e - B % this.BB), this.EB && (this.QB = requestAnimationFrame(t));
1423
1406
  };
1424
- this.eB = requestAnimationFrame(t);
1407
+ this.QB = requestAnimationFrame(t);
1425
1408
  }
1426
1409
  stop() {
1427
- this.eB && (cancelAnimationFrame(this.eB), this.eB = null);
1410
+ this.QB && (cancelAnimationFrame(this.QB), this.QB = null);
1428
1411
  }
1429
1412
  pause() {
1430
- this.QB && (this.QB = !1, this.stop());
1413
+ this.EB && (this.EB = !1, this.stop());
1431
1414
  }
1432
1415
  resume(A) {
1433
- this.QB || (this.QB = !0, this.start(A));
1416
+ this.EB || (this.EB = !0, this.start(A));
1434
1417
  }
1435
1418
  frameRate(A, t) {
1436
- if (A === void 0) return this.sB;
1437
- this.AB = A, this.tB = 1e3 / A, this.QB && t && (this.stop(), this.start(t));
1419
+ if (A === void 0) return this.iB;
1420
+ this.eB = A, this.BB = 1e3 / A, this.EB && t && (this.stop(), this.start(t));
1438
1421
  }
1439
1422
  measureFrameRate() {
1440
1423
  const A = performance.now();
1441
- if (this.EB > 0) {
1442
- const t = A - this.EB;
1443
- this.iB.push(t), this.iB.length > this.rB && this.iB.shift();
1444
- const e = this.iB.reduce((B, r) => B + r, 0) / this.iB.length;
1445
- this.sB = 1e3 / e;
1424
+ if (this.rB > 0) {
1425
+ const t = A - this.rB;
1426
+ this.nB.push(t), this.nB.length > this.gB && this.nB.shift();
1427
+ const e = this.nB.reduce((B, r) => B + r, 0) / this.nB.length;
1428
+ this.iB = 1e3 / e;
1446
1429
  }
1447
- this.EB = A;
1430
+ this.rB = A;
1448
1431
  }
1449
1432
  get isLooping() {
1450
- return this.QB;
1433
+ return this.EB;
1451
1434
  }
1452
1435
  get frameRateLimit() {
1453
- return this.AB;
1436
+ return this.eB;
1454
1437
  }
1455
1438
  get currentFrameRate() {
1456
- return this.sB;
1439
+ return this.iB;
1457
1440
  }
1458
1441
  get frameCount() {
1459
- return this.nB;
1442
+ return this.oB;
1460
1443
  }
1461
1444
  set frameCount(A) {
1462
- this.nB = A;
1445
+ this.oB = A;
1463
1446
  }
1464
1447
  incrementFrame() {
1465
- this.nB++;
1448
+ this.oB++;
1466
1449
  }
1467
1450
  resetFrameCount() {
1468
- this.nB = 0;
1451
+ this.oB = 0;
1469
1452
  }
1470
1453
  }
1471
1454
  const RA = (E) => class extends E {
1472
1455
  rotate(A) {
1473
- this.Ce.state.uA(A);
1456
+ this.le.state.wA(A);
1474
1457
  }
1475
1458
  push() {
1476
- this.Ce.state.CA();
1459
+ this.le.state.DA();
1477
1460
  }
1478
1461
  pop() {
1479
- this.Ce.state.DA();
1462
+ this.le.state.lA();
1480
1463
  }
1481
1464
  rect(A, t, e = 1, B = 1) {
1482
- this.Ce.$t(A, t, e, B);
1465
+ this.le.Yt(A, t, e, B);
1483
1466
  }
1484
1467
  line(A, t, e, B) {
1485
- this.Ce.Mt(A, t, e, B);
1468
+ this.le.Tt(A, t, e, B);
1486
1469
  }
1487
1470
  lineWeight(A) {
1488
- this.Ce.state.IA(A);
1471
+ this.le.state.uA(A);
1489
1472
  }
1490
1473
  background(A, t = A, e = A, B = 255) {
1491
- this.Ce.St(A, t, e, B);
1474
+ this.le.Lt(A, t, e, B);
1492
1475
  }
1493
1476
  char(A) {
1494
- this.Ce.state.wA(this.me.de(A));
1477
+ this.le.state.fA(this.ve.me(A));
1495
1478
  }
1496
- charColor(A, t, e, B) {
1497
- this.Ce.state.fA(A, t, e, B);
1479
+ charColor(A, t, e) {
1480
+ this.le.state.dA(A, t, e);
1498
1481
  }
1499
- cellColor(A, t, e, B) {
1500
- this.Ce.state.dA(A, t, e, B);
1482
+ cellColor(A, t, e) {
1483
+ this.le.state.pA(A, t, e);
1501
1484
  }
1502
1485
  flipHorizontally(A) {
1503
- this.Ce.state.pA(A);
1486
+ this.le.state.mA(A);
1504
1487
  }
1505
1488
  flipVertically(A) {
1506
- this.Ce.state.mA(A);
1489
+ this.le.state._A(A);
1507
1490
  }
1508
1491
  charRotation(A) {
1509
- this.Ce.state.vA(A);
1492
+ this.le.state.xA(A);
1510
1493
  }
1511
1494
  invert(A) {
1512
- this.Ce.state._A(A);
1495
+ this.le.state.vA(A);
1513
1496
  }
1514
1497
  clear() {
1515
- this.Ce.jA();
1498
+ this.le.Lt(0, 0, 0, 0);
1516
1499
  }
1517
1500
  ellipse(A, t, e, B) {
1518
- this.Ce.Yt(A, t, e / 2, B / 2);
1501
+ this.le.zt(A, t, e / 2, B / 2);
1519
1502
  }
1520
1503
  triangle(A, t, e, B, r, i) {
1521
- this.Ce.Tt(A, t, e, B, r, i);
1504
+ this.le.Ft(A, t, e, B, r, i);
1522
1505
  }
1523
1506
  bezierCurve(A, t, e, B, r, i, s, Q) {
1524
- this.Ce.zt(A, t, e, B, r, i, s, Q);
1507
+ this.le.Rt(A, t, e, B, r, i, s, Q);
1525
1508
  }
1526
1509
  arc(A, t, e, B, r, i) {
1527
- this.Ce.Rt(A, t, e, B, r, i);
1510
+ this.le.Ot(A, t, e, B, r, i);
1528
1511
  }
1529
1512
  };
1530
1513
  class U {
1531
- gB(A) {
1514
+ aB(A) {
1532
1515
  const t = A.O(0), e = A.O(1), B = A.O(2), r = A.O(3);
1533
1516
  return { characterPixels: t, primaryColorPixels: e, secondaryColorPixels: B, transformPixels: A.O(4), rotationPixels: r };
1534
1517
  }
1535
- oB(A, t) {
1518
+ cB(A, t) {
1536
1519
  return A[t] + (A[t + 1] << 8);
1537
1520
  }
1538
- aB(A, t) {
1521
+ hB(A, t) {
1539
1522
  return { r: A[t], g: A[t + 1], b: A[t + 2], a: A[t + 3] };
1540
1523
  }
1541
1524
  }
1542
1525
  class Y {
1543
- hB(A, t) {
1526
+ CB(A, t) {
1544
1527
  return new Blob([A], { type: t });
1545
1528
  }
1546
- cB(A, t, e) {
1529
+ DB(A, t, e) {
1547
1530
  try {
1548
- const B = this.hB(A, e), r = URL.createObjectURL(B), i = document.createElement("a");
1531
+ const B = this.CB(A, e), r = URL.createObjectURL(B), i = document.createElement("a");
1549
1532
  i.href = r, i.download = t, i.style.display = "none", i.rel = "noopener", document.body.appendChild(i), i.click(), document.body.removeChild(i), URL.revokeObjectURL(r);
1550
1533
  } catch (B) {
1551
1534
  throw console.error("Failed to download file:", B), Error("File download failed: " + (B instanceof Error ? B.message : "Unknown error"));
1552
1535
  }
1553
1536
  }
1554
- CB() {
1537
+ lB() {
1555
1538
  return (/* @__PURE__ */ new Date()).toISOString().slice(0, 19).replace(/:/g, "-");
1556
1539
  }
1557
- DB() {
1540
+ PB() {
1558
1541
  const A = /* @__PURE__ */ new Date();
1559
1542
  return { date: A.toISOString().split("T")[0], time: A.toTimeString().split(" ")[0].replace(/:/g, "-") };
1560
1543
  }
1561
- lB(A) {
1544
+ IB(A) {
1562
1545
  return A.replace(/[<>:"/\\|?*]/g, "_").replace(/\s+/g, "_").replace(/_{2,}/g, "_").replace(/^_+|_+$/g, "").substring(0, 255);
1563
1546
  }
1564
- PB() {
1565
- return "'textmode-export'-" + this.CB();
1547
+ uB() {
1548
+ return "'textmode-export'-" + this.lB();
1566
1549
  }
1567
1550
  }
1568
1551
  class TA extends U {
1569
- IB(A, t, e) {
1552
+ wB(A, t, e) {
1570
1553
  const B = A[e] === 255, r = A[e + 1] === 255, i = A[e + 2] === 255, s = t[e], Q = t[e + 1];
1571
1554
  return { isInverted: B, flipHorizontal: r, flipVertical: i, rotation: Math.round(360 * (s + Q / 255) / 255 * 100) / 100 };
1572
1555
  }
1573
- uB(A, t, e) {
1556
+ fB(A, t, e) {
1574
1557
  return { x: A, y: t, cellX: A * e.cellWidth, cellY: t * e.cellHeight };
1575
1558
  }
1576
- wB(A, t) {
1559
+ dB(A, t) {
1577
1560
  const e = [];
1578
1561
  let B = 0;
1579
1562
  for (let r = 0; r < t.rows; r++) for (let i = 0; i < t.cols; i++) {
1580
- const s = 4 * B, Q = this.oB(A.characterPixels, s);
1581
- let o = this.aB(A.primaryColorPixels, s), g = this.aB(A.secondaryColorPixels, s);
1582
- const a = this.IB(A.transformPixels, A.rotationPixels, s);
1563
+ const s = 4 * B, Q = this.cB(A.characterPixels, s);
1564
+ let o = this.hB(A.primaryColorPixels, s), g = this.hB(A.secondaryColorPixels, s);
1565
+ const a = this.wB(A.transformPixels, A.rotationPixels, s);
1583
1566
  if (a.isInverted) {
1584
1567
  const l = o;
1585
1568
  o = g, g = l;
1586
1569
  }
1587
- const h = this.uB(i, r, t);
1570
+ const h = this.fB(i, r, t);
1588
1571
  e.push({ charIndex: Q, primaryColor: o, secondaryColor: g, transform: a, position: h }), B++;
1589
1572
  }
1590
1573
  return e;
1591
1574
  }
1592
1575
  }
1593
- class _A {
1594
- fB(A, t) {
1576
+ class MA {
1577
+ pB(A, t) {
1595
1578
  const e = A.cmap;
1596
1579
  for (const B of e.tables) if (B.format === 4) {
1597
1580
  const r = B;
@@ -1614,11 +1597,11 @@ class _A {
1614
1597
  }
1615
1598
  return 0;
1616
1599
  }
1617
- dB(A, t, e, B, r) {
1600
+ mB(A, t, e, B, r) {
1618
1601
  const i = r / A.head.unitsPerEm;
1619
- return { getBoundingBox: () => ({ x1: e + t.xMin * i, y1: B + -t.yMax * i, x2: e + t.xMax * i, y2: B + -t.yMin * i }), toSVG: () => this.pB(t, e, B, i) };
1602
+ return { getBoundingBox: () => ({ x1: e + t.xMin * i, y1: B + -t.yMax * i, x2: e + t.xMax * i, y2: B + -t.yMin * i }), toSVG: () => this._B(t, e, B, i) };
1620
1603
  }
1621
- pB(A, t, e, B) {
1604
+ _B(A, t, e, B) {
1622
1605
  if (!A || !A.xs) return "";
1623
1606
  const { xs: r, ys: i, endPts: s, flags: Q } = A;
1624
1607
  if (!(r && i && s && Q)) return "";
@@ -1652,22 +1635,22 @@ class _A {
1652
1635
  }
1653
1636
  return o;
1654
1637
  }
1655
- mB(A, t, e, B, r) {
1656
- const i = A.codePointAt(0) || 0, s = this.fB(t, i);
1638
+ vB(A, t, e, B, r) {
1639
+ const i = A.codePointAt(0) || 0, s = this.pB(t, i);
1657
1640
  let Q = null;
1658
- return t.glyf && t.glyf[s] !== null ? Q = t.glyf[s] : (Q = p.T.glyf.Ut(t, s), t.glyf[s] = Q), this.dB(t, Q, e, B, r);
1641
+ return t.glyf && t.glyf[s] !== null ? Q = t.glyf[s] : (Q = p.T.glyf.Wt(t, s), t.glyf[s] = Q), this.mB(t, Q, e, B, r);
1659
1642
  }
1660
- _B(A, t, e, B, r, i, s, Q) {
1643
+ xB(A, t, e, B, r, i, s, Q) {
1661
1644
  const o = e + (r - Q * (s / t.head.unitsPerEm)) / 2, g = B + (i + 0.7 * s) / 2;
1662
- return this.mB(A, t, o, g, s).toSVG() || null;
1645
+ return this.vB(A, t, o, g, s).toSVG() || null;
1663
1646
  }
1664
1647
  }
1665
1648
  class GA {
1666
1649
  constructor() {
1667
- n(this, "vB");
1668
- this.vB = new _A();
1650
+ n(this, "yB");
1651
+ this.yB = new MA();
1669
1652
  }
1670
- xB(A) {
1653
+ bB(A) {
1671
1654
  return `<?xml version="1.0" encoding="UTF-8" standalone="no"?>
1672
1655
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
1673
1656
  <svg width="${A.width}" height="${A.height}" viewBox="0 0 ${A.width} ${A.height}"
@@ -1675,21 +1658,21 @@ class GA {
1675
1658
  <title>textmode art generated via textmode.js</title>
1676
1659
  <desc>textmode art visualization generated by textmode.js library</desc>`;
1677
1660
  }
1678
- yB() {
1661
+ GB() {
1679
1662
  return `
1680
1663
  </g>
1681
1664
  </svg>`;
1682
1665
  }
1683
- bB(A, t) {
1666
+ $B(A, t) {
1684
1667
  if (!t.includeBackgroundRectangles) return "";
1685
1668
  const e = t.backgroundColor, B = `rgba(${e[0]},${e[1]},${e[2]},${e[3] / 255})`;
1686
1669
  return `
1687
1670
  <rect width="${A.width}" height="${A.height}" fill="${B}" />`;
1688
1671
  }
1689
- GB(A) {
1672
+ MB(A) {
1690
1673
  return `rgba(${A.r},${A.g},${A.b},${A.a / 255})`;
1691
1674
  }
1692
- $B(A, t) {
1675
+ YB(A, t) {
1693
1676
  const { transform: e, position: B } = A, r = B.cellX + t.cellWidth / 2, i = B.cellY + t.cellHeight / 2, s = [];
1694
1677
  if (e.flipHorizontal || e.flipVertical) {
1695
1678
  const Q = e.flipHorizontal ? -1 : 1, o = e.flipVertical ? -1 : 1;
@@ -1697,81 +1680,81 @@ class GA {
1697
1680
  }
1698
1681
  return e.rotation && s.push(`rotate(${e.rotation} ${r} ${i})`), s.length ? ` transform="${s.join(" ")}"` : "";
1699
1682
  }
1700
- MB(A, t, e) {
1683
+ TB(A, t, e) {
1701
1684
  if (!e.includeBackgroundRectangles || A.secondaryColor.a === 0) return "";
1702
- const { position: B } = A, r = this.GB(A.secondaryColor);
1685
+ const { position: B } = A, r = this.MB(A.secondaryColor);
1703
1686
  return e.drawMode === "stroke" ? `
1704
1687
  <rect x="${B.cellX}" y="${B.cellY}" width="${t.cellWidth}" height="${t.cellHeight}" stroke="${r}" fill="none" stroke-width="${e.strokeWidth}" />` : `
1705
1688
  <rect x="${B.cellX}" y="${B.cellY}" width="${t.cellWidth}" height="${t.cellHeight}" fill="${r}" />`;
1706
1689
  }
1707
- mB(A, t, e, B) {
1690
+ vB(A, t, e, B) {
1708
1691
  const r = e.characters[A.charIndex];
1709
1692
  if (!r) return "";
1710
- const i = this.vB._B(r.character, e.font, A.position.cellX, A.position.cellY, t.cellWidth, t.cellHeight, e.fontSize, r.advanceWidth);
1693
+ const i = this.yB.xB(r.character, e.font, A.position.cellX, A.position.cellY, t.cellWidth, t.cellHeight, e.fontSize, r.advanceWidth);
1711
1694
  if (!i) return "";
1712
- const s = this.GB(A.primaryColor);
1695
+ const s = this.MB(A.primaryColor);
1713
1696
  return B.drawMode === "stroke" ? `
1714
1697
  <path id="${`path-${A.charIndex}-${A.position.cellX}-${A.position.cellY}`.replace(/\./g, "-")}" d="${i}" stroke="${s}" stroke-width="${B.strokeWidth}" fill="none" />` : `
1715
1698
  <path d="${i}" fill="${s}" />`;
1716
1699
  }
1717
- YB(A, t, e, B) {
1700
+ zB(A, t, e, B) {
1718
1701
  let r = "";
1719
- r += this.MB(A, t, B);
1720
- const i = this.$B(A, t), s = this.mB(A, t, e, B);
1702
+ r += this.TB(A, t, B);
1703
+ const i = this.YB(A, t), s = this.vB(A, t, e, B);
1721
1704
  return s && (i ? (r += `
1722
1705
  <g${i}>`, r += s, r += `
1723
1706
  </g>`) : r += s), r;
1724
1707
  }
1725
- TB(A, t, e, B) {
1726
- let r = this.xB(t);
1727
- r += this.bB(t, B), r += `
1708
+ FB(A, t, e, B) {
1709
+ let r = this.bB(t);
1710
+ r += this.$B(t, B), r += `
1728
1711
  <g id="ascii-cells">`;
1729
- for (const i of A) r += this.YB(i, t, e, B);
1730
- return r += this.yB(), r;
1712
+ for (const i of A) r += this.zB(i, t, e, B);
1713
+ return r += this.GB(), r;
1731
1714
  }
1732
- zB(A) {
1715
+ RB(A) {
1733
1716
  return A.replace(/<path[^>]*d=""[^>]*\/>/g, "").replace(/\n\s*\n/g, `
1734
1717
  `).replace(/[ \t]+$/gm, "");
1735
1718
  }
1736
1719
  }
1737
- class MA extends Y {
1738
- FB(A) {
1739
- return this.hB(A, "image/svg+xml;charset=utf-8");
1720
+ class _A extends Y {
1721
+ SB(A) {
1722
+ return this.CB(A, "image/svg+xml;charset=utf-8");
1740
1723
  }
1741
- RB(A, t) {
1742
- this.cB(A, this.lB(t) + ".svg", "image/svg+xml;charset=utf-8");
1724
+ OB(A, t) {
1725
+ this.DB(A, this.IB(t) + ".svg", "image/svg+xml;charset=utf-8");
1743
1726
  }
1744
- SB(A, t) {
1745
- this.RB(A, t || this.PB());
1727
+ LB(A, t) {
1728
+ this.OB(A, t || this.uB());
1746
1729
  }
1747
1730
  }
1748
1731
  class W {
1749
1732
  constructor() {
1750
- n(this, "OB");
1751
- n(this, "LB");
1752
1733
  n(this, "UB");
1753
- this.OB = new TA(), this.LB = new GA(), this.UB = new MA();
1734
+ n(this, "kB");
1735
+ n(this, "WB");
1736
+ this.UB = new TA(), this.kB = new GA(), this.WB = new _A();
1754
1737
  }
1755
- kB(A) {
1756
- return { includeBackgroundRectangles: A.includeBackgroundRectangles ?? !0, drawMode: A.drawMode ?? "fill", strokeWidth: A.strokeWidth ?? 1, backgroundColor: A.backgroundColor ?? [0, 0, 0, 0], filename: A.filename || this.UB.PB() };
1738
+ HB(A) {
1739
+ return { includeBackgroundRectangles: A.includeBackgroundRectangles ?? !0, drawMode: A.drawMode ?? "fill", strokeWidth: A.strokeWidth ?? 1, backgroundColor: A.backgroundColor ?? [0, 0, 0, 0], filename: A.filename || this.WB.uB() };
1757
1740
  }
1758
- WB(A, t = {}) {
1759
- const e = this.OB.wB(this.OB.gB(A.pipeline), A.grid), B = this.LB.TB(e, A.grid, A.font, this.kB(t));
1760
- return this.LB.zB(B);
1741
+ JB(A, t = {}) {
1742
+ const e = this.UB.dB(this.UB.aB(A.pipeline), A.grid), B = this.kB.FB(e, A.grid, A.font, this.HB(t));
1743
+ return this.kB.RB(B);
1761
1744
  }
1762
- SB(A, t = {}) {
1763
- this.UB.SB(this.WB(A, t), t.filename);
1745
+ LB(A, t = {}) {
1746
+ this.WB.LB(this.JB(A, t), t.filename);
1764
1747
  }
1765
1748
  }
1766
1749
  class FA extends U {
1767
- HB(A, t, e, B = " ") {
1750
+ VB(A, t, e, B = " ") {
1768
1751
  var s;
1769
1752
  const r = [];
1770
1753
  let i = 0;
1771
1754
  for (let Q = 0; Q < t.rows; Q++) {
1772
1755
  const o = [];
1773
1756
  for (let g = 0; g < t.cols; g++) {
1774
- const a = 4 * i, h = this.oB(A.characterPixels, a), l = ((s = e.characters[h]) == null ? void 0 : s.character) || B;
1757
+ const a = 4 * i, h = this.cB(A.characterPixels, a), l = ((s = e.characters[h]) == null ? void 0 : s.character) || B;
1775
1758
  o.push(l), i++;
1776
1759
  }
1777
1760
  r.push(o);
@@ -1780,7 +1763,7 @@ class FA extends U {
1780
1763
  }
1781
1764
  }
1782
1765
  class SA {
1783
- JB(A, t) {
1766
+ KB(A, t) {
1784
1767
  const e = [];
1785
1768
  for (const r of A) {
1786
1769
  let i = r.join("");
@@ -1793,35 +1776,35 @@ class SA {
1793
1776
  }
1794
1777
  }
1795
1778
  class UA extends Y {
1796
- VB(A, t) {
1797
- const e = this.KB(t);
1798
- this.cB(A, e, "text/plain;charset=utf-8");
1779
+ jB(A, t) {
1780
+ const e = this.ZB(t);
1781
+ this.DB(A, e, "text/plain;charset=utf-8");
1799
1782
  }
1800
- KB(A) {
1801
- let t = this.lB(A);
1802
- return t === ".txt" || t.length <= 4 ? this.PB() : t;
1783
+ ZB(A) {
1784
+ let t = this.IB(A);
1785
+ return t === ".txt" || t.length <= 4 ? this.uB() : t;
1803
1786
  }
1804
1787
  }
1805
- class N {
1788
+ class k {
1806
1789
  constructor() {
1807
- n(this, "OB");
1808
- n(this, "LB");
1809
1790
  n(this, "UB");
1810
- this.OB = new FA(), this.LB = new SA(), this.UB = new UA();
1791
+ n(this, "kB");
1792
+ n(this, "WB");
1793
+ this.UB = new FA(), this.kB = new SA(), this.WB = new UA();
1811
1794
  }
1812
- kB(A) {
1813
- return { preserveTrailingSpaces: A.preserveTrailingSpaces ?? !1, lineEnding: A.lineEnding ?? "lf", emptyCharacter: A.emptyCharacter ?? " ", filename: A.filename || this.UB.PB() };
1795
+ HB(A) {
1796
+ return { preserveTrailingSpaces: A.preserveTrailingSpaces ?? !1, lineEnding: A.lineEnding ?? "lf", emptyCharacter: A.emptyCharacter ?? " ", filename: A.filename || this.WB.uB() };
1814
1797
  }
1815
- jB(A, t = {}) {
1816
- const e = this.kB(t), B = this.OB.HB(this.OB.gB(A.pipeline), A.grid, A.font, e.emptyCharacter);
1817
- return this.LB.JB(B, e);
1798
+ NB(A, t = {}) {
1799
+ const e = this.HB(t), B = this.UB.VB(this.UB.aB(A.pipeline), A.grid, A.font, e.emptyCharacter);
1800
+ return this.kB.KB(B, e);
1818
1801
  }
1819
- VB(A, t = {}) {
1820
- this.UB.VB(this.jB(A, t), t.filename);
1802
+ jB(A, t = {}) {
1803
+ this.WB.jB(this.NB(A, t), t.filename);
1821
1804
  }
1822
1805
  }
1823
1806
  class YA extends U {
1824
- ZB(A, t = 1, e = "transparent") {
1807
+ XB(A, t = 1, e = "transparent") {
1825
1808
  const B = A.canvas;
1826
1809
  if (t === 1 && e === "transparent") return B;
1827
1810
  const r = document.createElement("canvas"), i = r.getContext("2d"), s = Math.round(B.width * t), Q = Math.round(B.height * t);
@@ -1829,19 +1812,19 @@ class YA extends U {
1829
1812
  }
1830
1813
  }
1831
1814
  class OA {
1832
- NB(A, t) {
1833
- const e = this.XB(t.format);
1815
+ qB(A, t) {
1816
+ const e = this.AQ(t.format);
1834
1817
  return t.format === "png" ? A.toDataURL(e) : A.toDataURL(e, t.quality);
1835
1818
  }
1836
- async qB(A, t) {
1819
+ async tQ(A, t) {
1837
1820
  return new Promise((e, B) => {
1838
- const r = this.XB(t.format), i = (s) => {
1821
+ const r = this.AQ(t.format), i = (s) => {
1839
1822
  s ? e(s) : B(Error(`Failed to generate ${t.format.toUpperCase()} blob`));
1840
1823
  };
1841
1824
  t.format === "png" ? A.toBlob(i, r) : A.toBlob(i, r, t.quality);
1842
1825
  });
1843
1826
  }
1844
- XB(A) {
1827
+ AQ(A) {
1845
1828
  switch (A) {
1846
1829
  case "png":
1847
1830
  return "image/png";
@@ -1854,12 +1837,12 @@ class OA {
1854
1837
  }
1855
1838
  }
1856
1839
  }
1857
- const LA = { png: "image/png", jpg: "image/jpeg", webp: "image/webp" }, k = { png: ".png", jpg: ".jpg", webp: ".webp" };
1840
+ const LA = { png: "image/png", jpg: "image/jpeg", webp: "image/webp" }, N = { png: ".png", jpg: ".jpg", webp: ".webp" };
1858
1841
  class zA extends Y {
1859
- AQ(A, t, e) {
1860
- this.tQ(A, this.lB(t) + k[e]);
1842
+ eQ(A, t, e) {
1843
+ this.BQ(A, this.IB(t) + N[e]);
1861
1844
  }
1862
- tQ(A, t) {
1845
+ BQ(A, t) {
1863
1846
  const e = URL.createObjectURL(A);
1864
1847
  try {
1865
1848
  const B = document.createElement("a");
@@ -1868,168 +1851,171 @@ class zA extends Y {
1868
1851
  URL.revokeObjectURL(e);
1869
1852
  }
1870
1853
  }
1871
- eQ(A) {
1872
- return A in LA && A in k;
1854
+ QQ(A) {
1855
+ return A in LA && A in N;
1873
1856
  }
1874
1857
  }
1875
1858
  class WA {
1876
1859
  constructor() {
1877
- n(this, "OB");
1878
- n(this, "LB");
1879
1860
  n(this, "UB");
1880
- this.OB = new YA(), this.LB = new OA(), this.UB = new zA();
1861
+ n(this, "kB");
1862
+ n(this, "WB");
1863
+ this.UB = new YA(), this.kB = new OA(), this.WB = new zA();
1881
1864
  }
1882
- kB(A) {
1883
- return { format: A.format ?? "png", quality: A.quality ?? 1, scale: A.scale ?? 1, backgroundColor: A.backgroundColor ?? "transparent", filename: A.filename || this.UB.PB() };
1865
+ HB(A) {
1866
+ return { format: A.format ?? "png", quality: A.quality ?? 1, scale: A.scale ?? 1, backgroundColor: A.backgroundColor ?? "transparent", filename: A.filename || this.WB.uB() };
1884
1867
  }
1885
- BQ(A) {
1886
- if (!this.UB.eQ(A.format)) throw Error(`Saving '${A.format}' files is not supported`);
1868
+ sQ(A) {
1869
+ if (!this.WB.QQ(A.format)) throw Error(`Saving '${A.format}' files is not supported`);
1887
1870
  if (A.quality < 0 || A.quality > 1) throw Error("Image quality must be between 0.0 and 1.0");
1888
1871
  if (A.scale <= 0) throw Error("Scale factor must be greater than 0");
1889
1872
  A.format === "jpg" && A.backgroundColor === "transparent" && (A.backgroundColor = "black");
1890
1873
  }
1891
- async qB(A, t) {
1892
- if (t.scale === 1 && t.backgroundColor === "transparent") return await this.LB.qB(A.canvas, t);
1893
- const e = this.OB.ZB(A, t.scale, t.backgroundColor);
1894
- return await this.LB.qB(e, t);
1874
+ async tQ(A, t) {
1875
+ if (t.scale === 1 && t.backgroundColor === "transparent") return await this.kB.tQ(A.canvas, t);
1876
+ const e = this.UB.XB(A, t.scale, t.backgroundColor);
1877
+ return await this.kB.tQ(e, t);
1895
1878
  }
1896
- async AQ(A, t = {}) {
1897
- const e = this.kB(t);
1898
- this.BQ(e);
1899
- const B = await this.qB(A, e);
1900
- this.UB.AQ(B, e.filename, e.format);
1879
+ async eQ(A, t = {}) {
1880
+ const e = this.HB(t);
1881
+ this.sQ(e);
1882
+ const B = await this.tQ(A, e);
1883
+ this.WB.eQ(B, e.filename, e.format);
1901
1884
  }
1902
1885
  }
1903
- const NA = (E) => class extends E {
1904
- QQ() {
1905
- this.Ce.Lt(this.sQ);
1886
+ const kA = (E) => class extends E {
1887
+ EQ() {
1888
+ this.le.kt(this.iQ);
1906
1889
  }
1907
1890
  toString(A = {}) {
1908
- return this.QQ(), new N().jB({ pipeline: this.EQ, grid: this.iQ, font: this.me }, A);
1891
+ return this.EQ(), new k().NB({ pipeline: this.rQ, grid: this.nQ, font: this.ve }, A);
1909
1892
  }
1910
1893
  saveStrings(A = {}) {
1911
- this.QQ(), new N().VB({ pipeline: this.EQ, grid: this.iQ, font: this.me }, A);
1894
+ this.EQ(), new k().jB({ pipeline: this.rQ, grid: this.nQ, font: this.ve }, A);
1912
1895
  }
1913
1896
  toSVG(A = {}) {
1914
- return this.QQ(), new W().WB(this, A);
1897
+ return this.EQ(), new W().JB(this, A);
1915
1898
  }
1916
1899
  saveSVG(A = {}) {
1917
- this.QQ(), new W().SB(this, A);
1900
+ this.EQ(), new W().LB(this, A);
1918
1901
  }
1919
1902
  async saveCanvas(A = {}) {
1920
- await new WA().AQ(this.Je, A);
1903
+ await new WA().eQ(this.Ke, A);
1921
1904
  }
1922
- }, kA = (E) => class extends E {
1905
+ }, NA = (E) => class extends E {
1923
1906
  async loadFont(A) {
1924
- return this.me.Le(A).then(() => {
1925
- const t = this.me.maxGlyphDimensions;
1926
- this.iQ.je(t.width, t.height), this.Ce.Ot();
1907
+ return this.ve.ke(A).then(() => {
1908
+ const t = this.ve.maxGlyphDimensions;
1909
+ this.nQ.Ne(t.width, t.height), this.le.Ut();
1927
1910
  });
1928
1911
  }
1929
1912
  fontSize(A) {
1930
- if (!T.l(typeof A == "number" && A > 0, "Font size must be a positive number greater than 0.", { method: "fontSize", providedValue: A }) || this.me.fontSize === A) return;
1931
- this.me.Oe(A);
1932
- const t = this.me.maxGlyphDimensions;
1933
- this.iQ.je(t.width, t.height), this.Ce.Ot();
1913
+ if (!T.l(typeof A == "number" && A > 0, "Font size must be a positive number greater than 0.", { method: "fontSize", providedValue: A }) || this.ve.fontSize === A) return;
1914
+ this.ve.Ue(A);
1915
+ const t = this.ve.maxGlyphDimensions;
1916
+ this.nQ.Ne(t.width, t.height), this.le.Ut();
1934
1917
  }
1935
- }, JA = (E) => class extends E {
1918
+ }, HA = (E) => class extends E {
1936
1919
  get frameCount() {
1937
- return this.rQ.frameCount;
1920
+ return this.gQ.frameCount;
1938
1921
  }
1939
1922
  set frameCount(A) {
1940
- this.rQ.frameCount = A;
1923
+ this.gQ.frameCount = A;
1941
1924
  }
1942
1925
  frameRate(A) {
1943
- return A === void 0 ? this.rQ.currentFrameRate : this.rQ.frameRate(A, () => this.nQ());
1926
+ return A === void 0 ? this.gQ.currentFrameRate : this.gQ.frameRate(A, () => this.oQ());
1944
1927
  }
1945
1928
  noLoop() {
1946
- this.rQ.pause();
1929
+ this.gQ.pause();
1947
1930
  }
1948
1931
  loop() {
1949
- this.rQ.resume(() => this.nQ());
1932
+ this.gQ.resume(() => this.oQ());
1950
1933
  }
1951
1934
  redraw(A = 1) {
1952
- if (T.l(typeof A == "number" && A > 0 && Number.isInteger(A), "Redraw count must be a positive integer.", { method: "redraw", providedValue: A })) for (let t = 0; t < A; t++) this.nQ();
1935
+ if (T.l(typeof A == "number" && A > 0 && Number.isInteger(A), "Redraw count must be a positive integer.", { method: "redraw", providedValue: A })) for (let t = 0; t < A; t++) this.oQ();
1953
1936
  }
1954
1937
  isLooping() {
1955
- return this.rQ.isLooping;
1938
+ return this.gQ.isLooping;
1956
1939
  }
1957
1940
  };
1958
- class HA {
1941
+ class KA {
1959
1942
  constructor() {
1960
- n(this, "Ce");
1961
- n(this, "me");
1962
- n(this, "Je");
1943
+ n(this, "le");
1944
+ n(this, "ve");
1945
+ n(this, "Ke");
1946
+ n(this, "nQ");
1947
+ n(this, "gQ");
1963
1948
  n(this, "iQ");
1964
1949
  n(this, "rQ");
1965
- n(this, "sQ");
1966
- n(this, "EQ");
1967
- n(this, "gQ");
1950
+ n(this, "aQ");
1968
1951
  }
1969
- nQ() {
1952
+ oQ() {
1970
1953
  }
1971
1954
  }
1972
1955
  class $A extends function(t, ...e) {
1973
1956
  return e.reduce((B, r) => r(B), t);
1974
- }(HA, RA, NA, kA, JA) {
1957
+ }(KA, RA, kA, NA, HA) {
1975
1958
  constructor(t = {}) {
1976
1959
  super();
1977
- n(this, "oQ", !1);
1978
- n(this, "aQ", () => {
1979
- });
1960
+ n(this, "cQ", !1);
1980
1961
  n(this, "hQ", () => {
1981
1962
  });
1982
- n(this, "cQ");
1983
- this.Je = new vA(t), this.Ce = new CA(this.Je.qe()), this.me = new xA(this.Ce, t.fontSize ?? 16), this.rQ = new bA(t.frameRate ?? 60), this.sQ = this.Ce.bt(`#version 300 es
1963
+ n(this, "CQ", () => {
1964
+ });
1965
+ n(this, "DQ");
1966
+ this.Ke = new vA(t), this.le = new CA(this.Ke.tB()), this.ve = new yA(this.le, t.fontSize ?? 16), this.gQ = new bA(t.frameRate ?? 60), this.iQ = this.le.$t(`#version 300 es
1984
1967
  in vec2 a_position;in vec2 a_texCoord;in vec2 a_instancePosition;in vec2 a_instanceSize;in vec3 a_instanceCharacter;in vec4 a_instancePrimaryColor;in vec4 a_instanceSecondaryColor;in vec2 a_instanceRotation;in vec3 a_instanceTransform;in float a_instanceGlobalRotation;in vec2 a_instanceRotationCenter;in vec2 a_instanceBezierCP1;in vec2 a_instanceBezierCP2;in vec2 a_instanceBezierStart;in vec2 a_instanceBezierEnd;in vec2 a_instanceArcAngles;uniform float u_aspectRatio;uniform vec2 u_viewportSize;out vec2 v_uv;out vec3 v_character;out vec4 v_primaryColor;out vec4 v_secondaryColor;out vec2 v_rotation;out vec3 v_transform;mat2 rotate2D(float angle){float s=sin(angle);float c=cos(angle);return mat2(c,-s,s,c);}vec2 evaluateBezier(float t,vec2 p0,vec2 p1,vec2 p2,vec2 p3){float oneMinusT=1.0-t;float oneMinusT2=oneMinusT*oneMinusT;float oneMinusT3=oneMinusT2*oneMinusT;float t2=t*t;float t3=t2*t;return oneMinusT3*p0+3.0*oneMinusT2*t*p1+3.0*oneMinusT*t2*p2+t3*p3;}vec2 evaluateBezierDerivative(float t,vec2 p0,vec2 p1,vec2 p2,vec2 p3){float oneMinusT=1.0-t;float oneMinusT2=oneMinusT*oneMinusT;float t2=t*t;return-3.0*oneMinusT2*p0+3.0*oneMinusT2*p1-6.0*oneMinusT*t*p1+6.0*oneMinusT*t*p2-3.0*t2*p2+3.0*t2*p3;}void main(){v_uv=a_texCoord;v_character=a_instanceCharacter;v_primaryColor=a_instancePrimaryColor;v_secondaryColor=a_instanceSecondaryColor;v_rotation=a_instanceRotation;v_transform=a_instanceTransform;vec2 worldPosition;bool isBezierCurve=length(a_instanceBezierCP1)>0.0||length(a_instanceBezierCP2)>0.0||length(a_instanceBezierStart)>0.0||length(a_instanceBezierEnd)>0.0;bool isArc=a_instanceArcAngles.x!=0.0||a_instanceArcAngles.y!=0.0;if(isBezierCurve){float t=a_position.x;float thicknessOffset=a_position.y;vec2 curvePoint=evaluateBezier(t,a_instanceBezierStart,a_instanceBezierCP1,a_instanceBezierCP2,a_instanceBezierEnd);vec2 tangent=evaluateBezierDerivative(t,a_instanceBezierStart,a_instanceBezierCP1,a_instanceBezierCP2,a_instanceBezierEnd);float tangentLength=length(tangent);if(tangentLength>0.0){tangent=tangent/tangentLength;}else{tangent=vec2(1.0,0.0);}vec2 normal=vec2(-tangent.y,tangent.x);float thickness=a_instanceSize.y;vec2 thicknessVector=normal*thicknessOffset*thickness;worldPosition=curvePoint+thicknessVector;}else if(isArc){float startA=a_instanceArcAngles.x;float stopA=a_instanceArcAngles.y;float TWO_PI=6.28318530718;startA=mod(startA,TWO_PI);if(startA<0.0)startA+=TWO_PI;stopA=mod(stopA,TWO_PI);if(stopA<0.0)stopA+=TWO_PI;float cwDelta=startA-stopA;if(cwDelta<=0.0)cwDelta+=TWO_PI;float angle=startA-a_position.x*cwDelta;float r=a_position.y;vec2 local=vec2(cos(angle),sin(angle))*r;vec2 scaledPosition=local*a_instanceSize*0.5+vec2(a_instanceSize.x*0.5,a_instanceSize.y*0.5);worldPosition=scaledPosition+a_instancePosition;}else{vec2 scaledPosition=a_position*a_instanceSize;worldPosition=scaledPosition+a_instancePosition;}vec2 ndc=(worldPosition/u_viewportSize)*2.0-1.0;ndc.y=-ndc.y;if(a_instanceGlobalRotation!=0.0){ndc-=a_instanceRotationCenter;ndc.x*=u_aspectRatio;ndc=rotate2D(-a_instanceGlobalRotation)*ndc;ndc.x/=u_aspectRatio;ndc+=a_instanceRotationCenter;}gl_Position=vec4(ndc,0.0,1.0);}`, `#version 300 es
1985
- precision highp float;in vec2 v_uv;in vec3 v_character;in vec4 v_primaryColor;in vec4 v_secondaryColor;in vec2 v_rotation;in vec3 v_transform;layout(location=0)out vec4 o_character;layout(location=1)out vec4 o_primaryColor;layout(location=2)out vec4 o_secondaryColor;layout(location=3)out vec4 o_rotation;layout(location=4)out vec4 o_transform;void main(){o_character=vec4(v_character,1.0);o_primaryColor=v_primaryColor;o_secondaryColor=v_secondaryColor;o_rotation=vec4(v_rotation,0.0,1.0);o_transform=vec4(v_transform,1.0);}`), this.gQ = this.Ce.bt("attribute vec2 a_position;attribute vec2 a_texCoord;varying vec2 v_uv;void main(){v_uv=a_texCoord;gl_Position=vec4(a_position,0.0,1.0);}", "precision mediump float;uniform sampler2D u_characterTexture;uniform vec2 u_charsetDimensions;uniform sampler2D u_primaryColorTexture;uniform sampler2D u_secondaryColorTexture;uniform sampler2D u_transformTexture;uniform sampler2D u_asciiCharacterTexture;uniform sampler2D u_rotationTexture;uniform vec2 u_gridCellDimensions;uniform vec2 u_gridPixelDimensions;uniform vec2 u_gridOffsetPixels;mat2 rotate2D(float angle){float s=sin(angle);float c=cos(angle);return mat2(c,-s,s,c);}void main(){vec2 adjustedCoord=(gl_FragCoord.xy-u_gridOffsetPixels)/u_gridPixelDimensions;vec2 gridCoord=adjustedCoord*u_gridCellDimensions;vec2 cellCoord=floor(gridCoord);vec2 charIndexTexCoord=(cellCoord+0.5)/u_gridCellDimensions;vec4 primaryColor=texture2D(u_primaryColorTexture,charIndexTexCoord);vec4 secondaryColor=texture2D(u_secondaryColorTexture,charIndexTexCoord);vec4 transformColor=texture2D(u_transformTexture,charIndexTexCoord);bool isInverted=transformColor.r>0.5;bool flipHorizontal=transformColor.g>0.5;bool flipVertical=transformColor.b>0.5;vec4 encodedIndexVec=texture2D(u_asciiCharacterTexture,charIndexTexCoord);int charIndex=int(encodedIndexVec.r*255.0+0.5)+int(encodedIndexVec.g*255.0+0.5)*256;int charCol=int(mod(float(charIndex),u_charsetDimensions.x));int charRow=charIndex/int(u_charsetDimensions.x);float flippedRow=(u_charsetDimensions.y-1.0)-float(charRow);vec2 charCoord=vec2(float(charCol),flippedRow)/u_charsetDimensions;vec4 rotationColor=texture2D(u_rotationTexture,charIndexTexCoord);float scaledAngle=rotationColor.r*255.0+rotationColor.g;float rotationAngle=-(scaledAngle*360.0/255.0)*0.017453292;vec2 fractionalPart=fract(gridCoord)-0.5;if(flipHorizontal)fractionalPart.x=-fractionalPart.x;if(flipVertical)fractionalPart.y=-fractionalPart.y;fractionalPart=rotate2D(rotationAngle)*fractionalPart+0.5;vec2 cellSize=1.0/u_charsetDimensions;vec2 texCoord=charCoord+fractionalPart*cellSize;vec2 cellMax=charCoord+cellSize;if(any(lessThan(texCoord,charCoord))||any(greaterThan(texCoord,cellMax))){gl_FragColor=isInverted ? primaryColor : secondaryColor;return;}vec4 charTexel=texture2D(u_characterTexture,texCoord);if(isInverted)charTexel.rgb=1.0-charTexel.rgb;gl_FragColor=mix(secondaryColor,primaryColor,charTexel);}");
1968
+ precision highp float;in vec2 v_uv;in vec3 v_character;in vec4 v_primaryColor;in vec4 v_secondaryColor;in vec2 v_rotation;in vec3 v_transform;layout(location=0)out vec4 o_character;layout(location=1)out vec4 o_primaryColor;layout(location=2)out vec4 o_secondaryColor;layout(location=3)out vec4 o_rotation;layout(location=4)out vec4 o_transform;void main(){o_character=vec4(v_character,1.0);o_primaryColor=v_primaryColor;o_secondaryColor=v_secondaryColor;o_rotation=vec4(v_rotation,0.0,1.0);o_transform=vec4(v_transform,1.0);}`), this.aQ = this.le.$t("attribute vec2 a_position;attribute vec2 a_texCoord;varying vec2 v_uv;void main(){v_uv=a_texCoord;gl_Position=vec4(a_position,0.0,1.0);}", "precision mediump float;uniform sampler2D u_characterTexture;uniform vec2 u_charsetDimensions;uniform sampler2D u_primaryColorTexture;uniform sampler2D u_secondaryColorTexture;uniform sampler2D u_transformTexture;uniform sampler2D u_asciiCharacterTexture;uniform sampler2D u_rotationTexture;uniform vec2 u_gridCellDimensions;uniform vec2 u_gridPixelDimensions;uniform vec2 u_gridOffsetPixels;mat2 rotate2D(float angle){float s=sin(angle);float c=cos(angle);return mat2(c,-s,s,c);}void main(){vec2 adjustedCoord=(gl_FragCoord.xy-u_gridOffsetPixels)/u_gridPixelDimensions;vec2 gridCoord=adjustedCoord*u_gridCellDimensions;vec2 cellCoord=floor(gridCoord);vec2 charIndexTexCoord=(cellCoord+0.5)/u_gridCellDimensions;vec4 primaryColor=texture2D(u_primaryColorTexture,charIndexTexCoord);vec4 secondaryColor=texture2D(u_secondaryColorTexture,charIndexTexCoord);vec4 transformColor=texture2D(u_transformTexture,charIndexTexCoord);bool isInverted=transformColor.r>0.5;bool flipHorizontal=transformColor.g>0.5;bool flipVertical=transformColor.b>0.5;vec4 encodedIndexVec=texture2D(u_asciiCharacterTexture,charIndexTexCoord);int charIndex=int(encodedIndexVec.r*255.0+0.5)+int(encodedIndexVec.g*255.0+0.5)*256;int charCol=int(mod(float(charIndex),u_charsetDimensions.x));int charRow=charIndex/int(u_charsetDimensions.x);float flippedRow=(u_charsetDimensions.y-1.0)-float(charRow);vec2 charCoord=vec2(float(charCol),flippedRow)/u_charsetDimensions;vec4 rotationColor=texture2D(u_rotationTexture,charIndexTexCoord);float scaledAngle=rotationColor.r*255.0+rotationColor.g;float rotationAngle=-(scaledAngle*360.0/255.0)*0.017453292;vec2 fractionalPart=fract(gridCoord)-0.5;if(flipHorizontal)fractionalPart.x=-fractionalPart.x;if(flipVertical)fractionalPart.y=-fractionalPart.y;fractionalPart=rotate2D(rotationAngle)*fractionalPart+0.5;vec2 cellSize=1.0/u_charsetDimensions;vec2 texCoord=charCoord+fractionalPart*cellSize;vec2 cellMax=charCoord+cellSize;if(any(lessThan(texCoord,charCoord))||any(greaterThan(texCoord,cellMax))){gl_FragColor=isInverted ? primaryColor : secondaryColor;return;}vec4 charTexel=texture2D(u_characterTexture,texCoord);if(isInverted)charTexel.rgb=1.0-charTexel.rgb;gl_FragColor=mix(secondaryColor,primaryColor,charTexel);}");
1986
1969
  }
1987
1970
  static async create(t = {}) {
1988
1971
  const e = new this(t);
1989
- await e.me.Fe(t.fontSource);
1990
- const B = e.me.maxGlyphDimensions;
1991
- return e.iQ = new yA(e.Je.canvas, B.width, B.height), e.EQ = e.Ce.Ft(e.iQ.cols, e.iQ.rows, 5), e.CQ(), e.rQ.start(() => e.nQ()), e;
1972
+ await e.ve.Se(t.fontSource);
1973
+ const B = e.ve.maxGlyphDimensions;
1974
+ return e.nQ = new xA(e.Ke.canvas, B.width, B.height), e.rQ = e.le.St(e.nQ.cols, e.nQ.rows, 5), e.lQ(), e.gQ.start(() => e.oQ()), e;
1992
1975
  }
1993
- CQ() {
1994
- this.cQ = () => {
1995
- this.hQ();
1996
- }, window.addEventListener("resize", this.cQ);
1976
+ lQ() {
1977
+ this.DQ = () => {
1978
+ this.CQ();
1979
+ }, window.addEventListener("resize", this.DQ);
1997
1980
  }
1998
- nQ() {
1999
- this.rQ.measureFrameRate(), this.rQ.incrementFrame(), this.oQ || (this.EQ.U(), this.Ce.yt(this.sQ), this.aQ(), this.Ce.Lt(this.sQ), this.EQ.k(), this.Ce.St(0), this.Ce.yt(this.gQ), this.gQ.tA({ u_characterTexture: this.me.fontFramebuffer, u_charsetDimensions: [this.me.textureColumns, this.me.textureRows], u_asciiCharacterTexture: this.EQ.textures[0], u_primaryColorTexture: this.EQ.textures[1], u_secondaryColorTexture: this.EQ.textures[2], u_transformTexture: this.EQ.textures[4], u_rotationTexture: this.EQ.textures[3], u_gridCellDimensions: [this.iQ.cols, this.iQ.rows], u_gridPixelDimensions: [this.iQ.width, this.iQ.height], u_gridOffsetPixels: [this.iQ.offsetX, this.iQ.offsetY], u_aspectRatio: this.iQ.width / this.iQ.height }), this.Ce.Gt(this.iQ.offsetX, this.iQ.offsetY, this.iQ.width, this.iQ.height));
1981
+ oQ() {
1982
+ if (this.gQ.measureFrameRate(), this.gQ.incrementFrame(), this.cQ) return;
1983
+ this.rQ.U(), this.le.Gt(this.iQ), this.hQ(), this.le.kt(this.iQ), this.rQ.k();
1984
+ const t = this.le.state.canvasBackgroundColor;
1985
+ this.le.NA(t[0], t[1], t[2], t[3]), this.le.Gt(this.aQ), this.aQ.tA({ u_characterTexture: this.ve.fontFramebuffer, u_charsetDimensions: [this.ve.textureColumns, this.ve.textureRows], u_asciiCharacterTexture: this.rQ.textures[0], u_primaryColorTexture: this.rQ.textures[1], u_secondaryColorTexture: this.rQ.textures[2], u_transformTexture: this.rQ.textures[4], u_rotationTexture: this.rQ.textures[3], u_gridCellDimensions: [this.nQ.cols, this.nQ.rows], u_gridPixelDimensions: [this.nQ.width, this.nQ.height], u_gridOffsetPixels: [this.nQ.offsetX, this.nQ.offsetY], u_aspectRatio: this.nQ.width / this.nQ.height }), this.le.Mt(this.nQ.offsetX, this.nQ.offsetY, this.nQ.width, this.nQ.height);
2000
1986
  }
2001
1987
  draw(t) {
2002
- this.aQ = t;
1988
+ this.hQ = t;
2003
1989
  }
2004
1990
  windowResized(t) {
2005
- this.hQ = t;
1991
+ this.CQ = t;
2006
1992
  }
2007
1993
  resizeCanvas(t, e) {
2008
- this.Je.S(t, e), this.iQ.lA(), this.EQ.S(this.iQ.cols, this.iQ.rows), this.Ce.Ot(), this.nQ();
1994
+ this.Ke.S(t, e), this.nQ.PA(), this.rQ.S(this.nQ.cols, this.nQ.rows), this.le.Ut(), this.oQ();
2009
1995
  }
2010
1996
  destroy() {
2011
- this.oQ || (this.rQ.stop(), window.removeEventListener("resize", this.cQ), this.me.W(), this.Ce.W(), this.oQ = !0);
1997
+ this.cQ || (this.gQ.stop(), window.removeEventListener("resize", this.DQ), this.ve.W(), this.le.W(), this.cQ = !0);
2012
1998
  }
2013
1999
  get grid() {
2014
- return this.iQ;
2000
+ return this.nQ;
2015
2001
  }
2016
2002
  get font() {
2017
- return this.me;
2003
+ return this.ve;
2018
2004
  }
2019
2005
  get width() {
2020
- return this.Je.width;
2006
+ return this.Ke.width;
2021
2007
  }
2022
2008
  get height() {
2023
- return this.Je.height;
2009
+ return this.Ke.height;
2024
2010
  }
2025
2011
  get canvas() {
2026
- return this.Je.canvas;
2012
+ return this.Ke.canvas;
2027
2013
  }
2028
2014
  get isDisposed() {
2029
- return this.oQ;
2015
+ return this.cQ;
2030
2016
  }
2031
2017
  get drawFramebuffer() {
2032
- return this.EQ;
2018
+ return this.rQ;
2033
2019
  }
2034
2020
  }
2035
2021
  class O {
@@ -2043,19 +2029,19 @@ class O {
2043
2029
  T.P(A);
2044
2030
  }
2045
2031
  static get version() {
2046
- return "0.2.0-beta.1";
2032
+ return "0.2.0-beta.2";
2047
2033
  }
2048
2034
  }
2049
- const XA = Object.freeze(Object.defineProperty({ __proto__: null }, Symbol.toStringTag, { value: "Module" })), jA = O.create, KA = O.setErrorLevel, ZA = O.version;
2035
+ const JA = Object.freeze(Object.defineProperty({ __proto__: null }, Symbol.toStringTag, { value: "Module" })), XA = O.create, jA = O.setErrorLevel, ZA = O.version;
2050
2036
  export {
2051
2037
  vA as TextmodeCanvas,
2052
- K as TextmodeErrorLevel,
2053
- xA as TextmodeFont,
2054
- yA as TextmodeGrid,
2038
+ j as TextmodeErrorLevel,
2039
+ yA as TextmodeFont,
2040
+ xA as TextmodeGrid,
2055
2041
  $A as Textmodifier,
2056
- jA as create,
2057
- XA as export,
2058
- KA as setErrorLevel,
2042
+ XA as create,
2043
+ JA as export,
2044
+ jA as setErrorLevel,
2059
2045
  O as textmode,
2060
2046
  ZA as version
2061
2047
  };