vasille 1.2.8 → 2.0.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.
Files changed (151) hide show
  1. package/.gitlab-ci.yml +20 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +160 -119
  4. package/cdn/es2015.js +3221 -0
  5. package/cdn/es5.js +3673 -0
  6. package/flow-typed/vasille.js +837 -0
  7. package/lib/binding/attribute.js +32 -0
  8. package/lib/binding/binding.js +39 -0
  9. package/lib/binding/class.js +51 -0
  10. package/lib/binding/style.js +29 -0
  11. package/lib/core/core.js +178 -0
  12. package/lib/core/destroyable.js +45 -0
  13. package/lib/core/errors.js +16 -0
  14. package/lib/core/executor.js +154 -0
  15. package/lib/core/ivalue.js +56 -0
  16. package/lib/core/signal.js +50 -0
  17. package/lib/core/slot.js +47 -0
  18. package/lib/index.js +27 -22
  19. package/lib/models/array-model.js +208 -0
  20. package/lib/models/listener.js +130 -0
  21. package/lib/models/map-model.js +66 -0
  22. package/lib/models/model.js +1 -0
  23. package/lib/models/object-model.js +78 -0
  24. package/lib/models/set-model.js +62 -0
  25. package/lib/node/app.js +38 -0
  26. package/lib/node/interceptor.js +83 -0
  27. package/lib/node/node.js +1202 -0
  28. package/lib/node/watch.js +27 -0
  29. package/lib/value/expression.js +83 -0
  30. package/lib/value/mirror.js +58 -0
  31. package/lib/value/pointer.js +26 -0
  32. package/lib/value/reference.js +55 -0
  33. package/lib/views/array-view.js +23 -0
  34. package/lib/views/base-view.js +49 -0
  35. package/lib/views/map-view.js +20 -0
  36. package/lib/views/object-view.js +20 -0
  37. package/lib/views/repeat-node.js +106 -0
  38. package/lib/views/repeater.js +63 -0
  39. package/lib/views/set-view.js +23 -0
  40. package/package.json +27 -19
  41. package/types/binding/attribute.d.ts +23 -0
  42. package/types/binding/binding.d.ts +30 -0
  43. package/types/binding/class.d.ts +23 -0
  44. package/types/binding/style.d.ts +23 -0
  45. package/types/core/core.d.ts +140 -0
  46. package/types/core/destroyable.d.ts +15 -0
  47. package/types/core/errors.d.ts +4 -0
  48. package/types/core/executor.d.ts +87 -0
  49. package/types/core/ivalue.d.ts +45 -0
  50. package/types/core/signal.d.ts +35 -0
  51. package/types/core/slot.d.ts +45 -0
  52. package/types/index.d.ts +27 -21
  53. package/types/models/array-model.d.ts +103 -0
  54. package/types/models/listener.d.ts +74 -0
  55. package/types/models/map-model.d.ts +35 -0
  56. package/types/models/model.d.ts +19 -0
  57. package/types/models/object-model.d.ts +36 -0
  58. package/types/models/set-model.d.ts +34 -0
  59. package/types/node/app.d.ts +37 -0
  60. package/types/node/interceptor.d.ts +50 -0
  61. package/types/node/node.d.ts +741 -0
  62. package/types/node/watch.d.ts +23 -0
  63. package/types/value/expression.d.ts +60 -0
  64. package/types/value/mirror.d.ts +35 -0
  65. package/types/value/pointer.d.ts +19 -0
  66. package/types/value/reference.d.ts +30 -0
  67. package/types/views/array-view.d.ts +13 -0
  68. package/types/views/base-view.d.ts +43 -0
  69. package/types/views/map-view.d.ts +11 -0
  70. package/types/views/object-view.d.ts +11 -0
  71. package/types/views/repeat-node.d.ts +35 -0
  72. package/types/views/repeater.d.ts +38 -0
  73. package/types/views/set-view.d.ts +11 -0
  74. package/CHANGELOG.md +0 -23
  75. package/img/favicon.svg +0 -441
  76. package/img/getLocus.svg +0 -18
  77. package/img/logo.png +0 -0
  78. package/img/logo.svg +0 -550
  79. package/img/scores-o-log.png +0 -0
  80. package/img/scores-o.png +0 -0
  81. package/img/scores-wo-log.png +0 -0
  82. package/img/scores-wo.png +0 -0
  83. package/img/x1-x32.png +0 -0
  84. package/lib/attribute.js +0 -71
  85. package/lib/attribute.js.map +0 -1
  86. package/lib/bind.js +0 -286
  87. package/lib/bind.js.map +0 -1
  88. package/lib/class.js +0 -97
  89. package/lib/class.js.map +0 -1
  90. package/lib/executor.js +0 -167
  91. package/lib/executor.js.map +0 -1
  92. package/lib/index.js.map +0 -1
  93. package/lib/interfaces/core.js +0 -247
  94. package/lib/interfaces/core.js.map +0 -1
  95. package/lib/interfaces/destroyable.js +0 -39
  96. package/lib/interfaces/destroyable.js.map +0 -1
  97. package/lib/interfaces/errors.js +0 -49
  98. package/lib/interfaces/errors.js.map +0 -1
  99. package/lib/interfaces/ibind.js +0 -31
  100. package/lib/interfaces/ibind.js.map +0 -1
  101. package/lib/interfaces/idefinition.js +0 -64
  102. package/lib/interfaces/idefinition.js.map +0 -1
  103. package/lib/interfaces/ivalue.js +0 -60
  104. package/lib/interfaces/ivalue.js.map +0 -1
  105. package/lib/models.js +0 -579
  106. package/lib/models.js.map +0 -1
  107. package/lib/node.js +0 -2155
  108. package/lib/node.js.map +0 -1
  109. package/lib/property.js +0 -38
  110. package/lib/property.js.map +0 -1
  111. package/lib/style.js +0 -66
  112. package/lib/style.js.map +0 -1
  113. package/lib/value.js +0 -203
  114. package/lib/value.js.map +0 -1
  115. package/lib/views.js +0 -688
  116. package/lib/views.js.map +0 -1
  117. package/src/attribute.js +0 -70
  118. package/src/bind.js +0 -285
  119. package/src/class.js +0 -96
  120. package/src/executor.js +0 -165
  121. package/src/index.js +0 -20
  122. package/src/interfaces/core.js +0 -248
  123. package/src/interfaces/destroyable.js +0 -37
  124. package/src/interfaces/errors.js +0 -47
  125. package/src/interfaces/ibind.js +0 -29
  126. package/src/interfaces/idefinition.js +0 -62
  127. package/src/interfaces/ivalue.js +0 -58
  128. package/src/models.js +0 -577
  129. package/src/node.js +0 -2162
  130. package/src/property.js +0 -36
  131. package/src/style.js +0 -65
  132. package/src/value.js +0 -201
  133. package/src/views.js +0 -686
  134. package/types/attribute.d.ts +0 -18
  135. package/types/bind.d.ts +0 -72
  136. package/types/class.d.ts +0 -19
  137. package/types/data.d.ts +0 -11
  138. package/types/event.d.ts +0 -10
  139. package/types/executor.d.ts +0 -57
  140. package/types/interfaces/core.d.ts +0 -129
  141. package/types/interfaces/destroyable.d.ts +0 -11
  142. package/types/interfaces/errors.d.ts +0 -24
  143. package/types/interfaces/ibind.d.ts +0 -19
  144. package/types/interfaces/idefinition.d.ts +0 -29
  145. package/types/interfaces/ivalue.d.ts +0 -40
  146. package/types/models.d.ts +0 -179
  147. package/types/node.d.ts +0 -906
  148. package/types/property.d.ts +0 -9
  149. package/types/style.d.ts +0 -28
  150. package/types/value.d.ts +0 -43
  151. package/types/views.d.ts +0 -135
package/lib/views.js DELETED
@@ -1,688 +0,0 @@
1
- //
2
- import { VasilleNode } from "./interfaces/core";
3
- import { IValue } from "./interfaces/ivalue.js";
4
- import { ArrayModel, MapModel, ObjectModel, SetModel } from "./models.js";
5
- import { App, INode, BaseNodePrivate, Extension, RepeatNodeItem } from "./node.js";
6
- import { Reference } from "./value.js";
7
-
8
-
9
-
10
- export class RepeatNodePrivate extends BaseNodePrivate {
11
- /**
12
- * Children node hash
13
- * @type {Map<*, Extension>}
14
- */
15
- nodes = new Map();
16
-
17
- /**
18
- * Call-back function to create a children pack
19
- * @type {function(RepeatNodeItem, ?*) : void}
20
- */
21
- cb;
22
-
23
- constructor () {
24
- super ();
25
- this.seal();
26
- }
27
- }
28
-
29
- /**
30
- * Repeat node repeats its children
31
- */
32
- export class RepeatNode extends Extension {
33
-
34
- constructor ($) {
35
- super($ || new RepeatNodePrivate);
36
- }
37
-
38
- /**
39
- * Sets call-back function
40
- * @param cb {function(RepeatNodeItem, ?*) : void}
41
- */
42
- setCallback (cb) {
43
- (this.$).cb = cb;
44
- }
45
-
46
- /**
47
- * Initialize the shadow node
48
- * @param app {App} App node
49
- * @param rt {INode} Root node
50
- * @param ts {INode} This node
51
- * @param before {VasilleNode} Node to paste content before it
52
- */
53
- $$preinitShadow (app, rt, ts, before) {
54
- let $ = this.$;
55
-
56
- super.$$preinitShadow(app, rt, ts, before);
57
- $.encapsulate($.el);
58
- }
59
-
60
- /**
61
- * Create a children pack
62
- * @param id {*} id of child pack
63
- * @param item {IValue<*>} value for children pack
64
- * @param before {VasilleNode} Node to insert before it
65
- */
66
- createChild (id, item, before) {
67
- let current = this.$.nodes.get(id);
68
- let node = new RepeatNodeItem(id);
69
- let $ = node.$;
70
-
71
- this.destroyChild(id, item);
72
-
73
- $.parent = this;
74
- if (current) {
75
- $.next = current.$.next;
76
- $.prev = current.$.prev;
77
- if ($.next) {
78
- $.next.$.prev = node;
79
- }
80
- if ($.prev) {
81
- $.prev.$.next = node;
82
- }
83
- this.$children.splice(this.$children.indexOf(current), 1, node);
84
- }
85
- else if (before) {
86
- $.next = before;
87
- $.prev = before.$.prev;
88
- before.$.prev = node;
89
- if ($.prev) {
90
- $.prev.$.next = node;
91
- }
92
- this.$children.splice(this.$children.indexOf(before) - 1, 0, node);
93
- }
94
- else {
95
- let lastChild = this.$children[this.$children.length - 1];
96
-
97
- if (lastChild) {
98
- lastChild.$.next = node;
99
- }
100
- $.prev = lastChild;
101
- this.$children.push(node);
102
- }
103
-
104
- node.$$preinitShadow(this.$.app, this.$.rt, this, before || (
105
- current ? current.$.next : null
106
- ));
107
-
108
- node.$init();
109
- this.$.app.$run.callCallback(() => {
110
- this.$.cb(node, item.$);
111
- node.$ready();
112
- });
113
-
114
- this.$.nodes.set(id, node);
115
- };
116
-
117
- /**
118
- * Destroy a old child
119
- * @param id {*} id of children pack
120
- * @param item {IValue<*>} value of children pack
121
- */
122
- destroyChild (id, item) {
123
- let child = this.$.nodes.get(id);
124
-
125
- if (child) {
126
- let $ = child.$;
127
-
128
- if ($.prev) {
129
- $.prev.$.next = $.next;
130
- }
131
- if ($.next) {
132
- $.next.$.prev = $.prev;
133
- }
134
- child.$destroy();
135
- this.$.nodes.delete(id);
136
- this.$children.splice(this.$children.indexOf(child), 1);
137
- }
138
- };
139
- }
140
-
141
- /**
142
- * Private part of repeater
143
- */
144
- export class RepeaterPrivate extends RepeatNodePrivate {
145
- /**
146
- * Handler to catch count updates
147
- * @type {Function}
148
- */
149
- updateHandler;
150
-
151
- /**
152
- * Current count of child nodes
153
- * @type {number}
154
- */
155
- currentCount = 0;
156
-
157
- /**
158
- * Order number is used like children pack value
159
- * @type {Array<IValue<number>>}
160
- */
161
- orderNumber = [];
162
-
163
- constructor () {
164
- super ();
165
- this.seal();
166
- }
167
- }
168
-
169
- /**
170
- * The simplest repeat $node interpretation, repeat children pack a several times
171
- */
172
- export class Repeater extends RepeatNode {
173
-
174
- /**
175
- * The count of children
176
- * @type {IValue<number>}
177
- */
178
- count = new Reference(0);
179
-
180
- constructor ($) {
181
- super($ || new RepeaterPrivate);
182
- this.seal();
183
- }
184
-
185
- /**
186
- * Changes the children count
187
- * @param number {number} The new children count
188
- */
189
- changeCount (number) {
190
- let $ = this.$;
191
-
192
- if (number > $.currentCount) {
193
- for (let i = $.currentCount; i < number; i++) {
194
- let item = new Reference(i);
195
- this.createChild(i, item);
196
- $.orderNumber.push(item);
197
- }
198
- }
199
- else {
200
- for (let i = $.currentCount - 1; i >= number; i--) {
201
- this.destroyChild(i, $.orderNumber[i]);
202
- }
203
- $.orderNumber.splice(number);
204
- }
205
- $.currentCount = number;
206
- }
207
-
208
-
209
-
210
- /**
211
- * Handles created event
212
- */
213
- $created () {
214
- let $ = this.$;
215
-
216
- super.$created();
217
-
218
- $.updateHandler = (value) => {
219
- this.changeCount(value);
220
- };
221
- this.count.on($.updateHandler);
222
- }
223
-
224
- /**
225
- * Handles ready event
226
- */
227
- $ready () {
228
- this.changeCount(this.count.$);
229
- }
230
-
231
- /**
232
- * Handles destroy event
233
- */
234
- $destroy () {
235
- let $ = this.$;
236
-
237
- super.$destroy();
238
- this.count.off($.updateHandler);
239
- }
240
- }
241
-
242
- /**
243
- * Private part of BaseView
244
- */
245
- export class BaseViewPrivate extends RepeatNodePrivate {
246
- /**
247
- * Handler to catch values addition
248
- * @type {Function}
249
- */
250
- addHandler;
251
-
252
- /**
253
- * Handler to catch values removes
254
- * @type {Function}
255
- */
256
- removeHandler;
257
-
258
- constructor () {
259
- super ();
260
- this.seal();
261
- }
262
- }
263
-
264
- /**
265
- * Base class of default views
266
- */
267
- export class BaseView extends RepeatNode {
268
-
269
- // props
270
- /**
271
- * Property which will contain a model
272
- * @type {IValue<*>}
273
- */
274
- model;
275
-
276
- /**
277
- * Sets up model and handlers
278
- */
279
- constructor ($1) {
280
- super($1 || new BaseViewPrivate);
281
-
282
- let $ = this.$;
283
- $.addHandler = (id, item) => {
284
- this.createChild(id, item);
285
- };
286
- $.removeHandler = (id, item) => {
287
- this.destroyChild(id, item);
288
- };
289
-
290
- this.seal();
291
- }
292
-
293
- /**
294
- * Creates a child when user adds new values
295
- * @param id {*} id of children pack
296
- * @param item {IValue<*>} Reference of children pack
297
- * @param before {VasilleNode} Node to paste before it
298
- * @return {handler} handler must be saved and unliked on value remove
299
- */
300
- createChild (id, item, before) {
301
- let handler = () => {
302
- this.createChild(id, item);
303
- };
304
- item.on(handler);
305
- super.createChild(id, item, before);
306
-
307
- return handler;
308
- }
309
-
310
-
311
-
312
- /**
313
- * Handle ready event
314
- */
315
- $ready () {
316
- let $ = this.$;
317
-
318
- this.model.$.listener.onAdd($.addHandler);
319
- this.model.$.listener.onRemove($.removeHandler);
320
- super.$ready();
321
- }
322
-
323
- /**
324
- * Handles destroy event
325
- */
326
- $destroy () {
327
- let $ = this.$;
328
-
329
- this.model.$.listener.offAdd($.addHandler);
330
- this.model.$.listener.offRemove($.removeHandler);
331
- super.$destroy();
332
- }
333
- }
334
-
335
- /**
336
- * Private part of array view
337
- */
338
- export class ArrayViewPrivate extends BaseViewPrivate {
339
- /**
340
- * Contains handlers of each child
341
- * @type {Map<IValue<*>, Function>}
342
- */
343
- handlers = new Map();
344
-
345
- /**
346
- * Contains buffered children
347
- * @type {Array<string>}
348
- */
349
- buffer = [];
350
-
351
- constructor () {
352
- super ();
353
- this.seal();
354
- }
355
- }
356
-
357
- /**
358
- * Represents a view of a array model
359
- */
360
- export class ArrayView extends BaseView {
361
-
362
- /**
363
- * model of view
364
- * @type {IValue<ArrayModel<*>>}
365
- */
366
- model;
367
-
368
- /**
369
- * Sets up model with a default value
370
- */
371
- constructor ($) {
372
- super($ || new ArrayViewPrivate);
373
-
374
- this.model = this.$prop(ArrayModel);
375
- this.seal();
376
- }
377
-
378
-
379
-
380
- /**
381
- * Overrides child created and generate random id for children
382
- */
383
- createChild (id, item, before) {
384
- let $ = this.$;
385
- let next = typeof id === "number" ? $.nodes.get($.buffer[id]) : null;
386
- let handler = super.createChild(item, item, before || next);
387
-
388
- $.handlers.set(item, handler);
389
- $.buffer.splice(id, 0, item);
390
- }
391
-
392
- /**
393
- * Removes a children pack
394
- */
395
- destroyChild (id, item) {
396
- let $ = this.$;
397
- let index = typeof id === "number" ? id : $.buffer.indexOf(item);
398
-
399
- if (index === -1) {
400
- return;
401
- }
402
-
403
- item.off($.handlers.get(item));
404
- $.handlers.delete(item);
405
- super.destroyChild(item, item);
406
- $.buffer.splice(index, 1);
407
- }
408
-
409
-
410
-
411
- /**
412
- * Handle ready event
413
- */
414
- $ready () {
415
- let $ = this.$;
416
- let arr = this.model.$;
417
-
418
- for (let i = 0; i < arr.length; i++) {
419
- $.app.$run.callCallback(() => {
420
- this.createChild(i, arr[i]);
421
- });
422
- }
423
-
424
- super.$ready();
425
- }
426
-
427
- /**
428
- * Handle destroy event
429
- */
430
- $destroy () {
431
- for (let it of (this.$).handlers) {
432
- it[0].off(it[1]);
433
- }
434
-
435
- super.$destroy();
436
- }
437
- }
438
-
439
- /**
440
- * private part of object view
441
- */
442
- class ObjectViewPrivate extends BaseViewPrivate {
443
- /**
444
- * Handler of property changes
445
- * @type {Object<string, function>}
446
- */
447
- handlers = {};
448
-
449
- constructor () {
450
- super ();
451
- this.seal();
452
- }
453
- }
454
-
455
- /**
456
- * Create a children pack for each object field
457
- */
458
- export class ObjectView extends BaseView {
459
- /**
460
- * Sets up model
461
- */
462
- constructor ($) {
463
- super($ || new ObjectViewPrivate);
464
- this.model = this.$prop(ObjectModel);
465
- }
466
-
467
-
468
-
469
- /**
470
- * Saves the child handler
471
- */
472
- createChild (id, item, before) {
473
- (this.$).handlers[id] = super.createChild(id, item, before);
474
- }
475
-
476
- /**
477
- * Disconnects the child handler
478
- */
479
- destroyChild (id, item) {
480
- let $ = this.$;
481
-
482
- item.off($.handlers[id]);
483
- delete $.handlers[id];
484
- super.destroyChild(id, item);
485
- }
486
-
487
-
488
-
489
- /**
490
- * Handler ready event
491
- */
492
- $ready () {
493
- let $ = this.$;
494
- let obj = this.model.$;
495
-
496
- for (let i in obj) {
497
- if (obj.hasOwnProperty(i) && obj.get(i) instanceof IValue) {
498
- $.app.$run.callCallback(() => {
499
- this.createChild(i, obj.get(i));
500
- });
501
- }
502
- }
503
-
504
- super.$ready();
505
- }
506
-
507
- /**
508
- * Handler destroy event
509
- */
510
- $destroy () {
511
- let $ = this.$;
512
- let obj = this.model.$;
513
-
514
- for (let i in obj) {
515
- if (obj.hasOwnProperty(i)) {
516
- obj.get(i).off($.handlers[i]);
517
- }
518
- }
519
-
520
- super.$destroy();
521
- }
522
- }
523
-
524
- /**
525
- * private part of map view
526
- */
527
- class MapViewPrivate extends BaseViewPrivate {
528
- /**
529
- * Contains update handler for each value
530
- * @type {Map<*, Function>}
531
- */
532
- handlers = new Map();
533
-
534
- constructor () {
535
- super ();
536
- this.seal();
537
- }
538
- }
539
-
540
- /**
541
- * Create a children pack for each map value
542
- */
543
- export class MapView extends BaseView {
544
-
545
- /**
546
- * Sets up model
547
- */
548
- constructor ($) {
549
- super($ || new MapViewPrivate);
550
- this.model = this.$prop(MapModel);
551
- }
552
-
553
-
554
-
555
- /**
556
- * Saves the child handler
557
- */
558
- createChild (id, item, before) {
559
- (this.$).handlers.set(id, super.createChild(id, item, before));
560
- }
561
-
562
- /**
563
- * Disconnects the child handler
564
- */
565
- destroyChild (id, item) {
566
- let $ = this.$;
567
-
568
- item.off($.handlers.get(id));
569
- $.handlers.delete(id);
570
- super.destroyChild(id, item);
571
- }
572
-
573
-
574
-
575
- /**
576
- * Handler ready event
577
- */
578
- $ready () {
579
- let $ = this.$;
580
- let map = this.model.$;
581
-
582
- for (let it of map) {
583
- $.app.$run.callCallback(() => {
584
- this.createChild(it[0], it[1]);
585
- });
586
- }
587
-
588
- super.$ready();
589
- }
590
-
591
- /**
592
- * Handler destroy event
593
- */
594
- $destroy () {
595
- let $ = this.$;
596
- let map = this.model.$;
597
-
598
- for (let it of map) {
599
- it[1].off($.handlers.get(it[0]));
600
- }
601
-
602
- super.$destroy();
603
- }
604
- }
605
-
606
- /**
607
- * private part of set view
608
- */
609
- class SetViewPrivate extends BaseViewPrivate {
610
- /**
611
- * Contains update handler for each value
612
- * @type {Map<IValue<*>, Function>}
613
- */
614
- handlers = new Map();
615
-
616
- constructor () {
617
- super ();
618
- this.seal();
619
- }
620
- }
621
-
622
- /**
623
- * Create a children pack for each set value
624
- */
625
- export class SetView extends BaseView {
626
-
627
- /**
628
- * Sets up model
629
- */
630
- constructor ($) {
631
- super($ || new SetViewPrivate);
632
- this.model = this.$prop(SetModel);
633
- }
634
-
635
-
636
-
637
- /**
638
- * Saves the child handler
639
- */
640
- createChild (id, item, before) {
641
- (this.$).handlers.set(item, super.createChild(id, item, before));
642
- }
643
-
644
- /**
645
- * Disconnects the child handler
646
- */
647
- destroyChild (id, item) {
648
- let $ = this.$;
649
-
650
- item.off($.handlers.get(item));
651
- $.handlers.delete(item);
652
- super.destroyChild(id, item);
653
- }
654
-
655
-
656
-
657
- /**
658
- * Handler ready event
659
- */
660
- $ready () {
661
- let $ = this.$;
662
- let set = this.model.$;
663
-
664
- for (let it of set) {
665
- $.app.$run.callCallback(() => {
666
- this.createChild(it, it);
667
- });
668
- }
669
-
670
- super.$ready();
671
- }
672
-
673
- /**
674
- * Handler destroy event
675
- */
676
- $destroy () {
677
- let $ = this.$;
678
- let set = this.model.$;
679
-
680
- for (let it of set) {
681
- it.off($.handlers.get(it));
682
- }
683
-
684
- super.$destroy();
685
- }
686
- }
687
-
688
- //# sourceMappingURL=views.js.map
package/lib/views.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/views.js"],"names":[],"mappings":"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"}