@esotericsoftware/spine-core 4.0.7 → 4.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Animation.js +577 -710
- package/dist/AnimationState.js +239 -259
- package/dist/AnimationStateData.js +15 -17
- package/dist/AssetManagerBase.d.ts +3 -0
- package/dist/AssetManagerBase.js +168 -147
- package/dist/AtlasAttachmentLoader.js +20 -22
- package/dist/Bone.js +89 -91
- package/dist/BoneData.js +4 -6
- package/dist/ConstraintData.js +4 -6
- package/dist/Event.js +4 -6
- package/dist/EventData.js +4 -6
- package/dist/IkConstraint.js +48 -50
- package/dist/IkConstraintData.js +12 -31
- package/dist/PathConstraint.js +116 -118
- package/dist/PathConstraintData.js +9 -28
- package/dist/Skeleton.d.ts +0 -4
- package/dist/Skeleton.js +190 -213
- package/dist/SkeletonBinary.js +352 -363
- package/dist/SkeletonBounds.js +79 -81
- package/dist/SkeletonClipping.js +86 -88
- package/dist/SkeletonData.d.ts +0 -2
- package/dist/SkeletonData.js +46 -66
- package/dist/SkeletonJson.js +307 -307
- package/dist/Skin.js +65 -69
- package/dist/Slot.js +16 -18
- package/dist/SlotData.js +4 -6
- package/dist/Texture.js +14 -39
- package/dist/TextureAtlas.js +56 -85
- package/dist/TransformConstraint.js +77 -79
- package/dist/TransformConstraintData.js +20 -39
- package/dist/Triangulator.js +71 -73
- package/dist/Updatable.js +1 -1
- package/dist/Utils.js +183 -245
- package/dist/VertexEffect.js +1 -1
- package/dist/attachments/Attachment.js +41 -62
- package/dist/attachments/AttachmentLoader.js +1 -1
- package/dist/attachments/BoundingBoxAttachment.js +9 -28
- package/dist/attachments/ClippingAttachment.js +9 -28
- package/dist/attachments/MeshAttachment.js +29 -48
- package/dist/attachments/PathAttachment.js +11 -30
- package/dist/attachments/PointAttachment.js +16 -35
- package/dist/attachments/RegionAttachment.js +82 -101
- package/dist/attachments/index.js +1 -1
- package/dist/iife/spine-core.js +89 -85
- package/dist/iife/spine-core.js.map +2 -2
- package/dist/iife/spine-core.min.js +2 -2
- package/dist/index.js +1 -1
- package/dist/polyfills.js +2 -2
- package/dist/vertexeffects/JitterEffect.js +10 -12
- package/dist/vertexeffects/SwirlEffect.js +18 -20
- package/package.json +1 -1
- package/dist/Animation.js.map +0 -1
- package/dist/AnimationState.js.map +0 -1
- package/dist/AnimationStateData.js.map +0 -1
- package/dist/AssetManagerBase.js.map +0 -1
- package/dist/AtlasAttachmentLoader.js.map +0 -1
- package/dist/Bone.js.map +0 -1
- package/dist/BoneData.js.map +0 -1
- package/dist/ConstraintData.js.map +0 -1
- package/dist/Event.js.map +0 -1
- package/dist/EventData.js.map +0 -1
- package/dist/IkConstraint.js.map +0 -1
- package/dist/IkConstraintData.js.map +0 -1
- package/dist/PathConstraint.js.map +0 -1
- package/dist/PathConstraintData.js.map +0 -1
- package/dist/Skeleton.js.map +0 -1
- package/dist/SkeletonBinary.js.map +0 -1
- package/dist/SkeletonBounds.js.map +0 -1
- package/dist/SkeletonClipping.js.map +0 -1
- package/dist/SkeletonData.js.map +0 -1
- package/dist/SkeletonJson.js.map +0 -1
- package/dist/Skin.js.map +0 -1
- package/dist/Slot.js.map +0 -1
- package/dist/SlotData.js.map +0 -1
- package/dist/Texture.js.map +0 -1
- package/dist/TextureAtlas.js.map +0 -1
- package/dist/TransformConstraint.js.map +0 -1
- package/dist/TransformConstraintData.js.map +0 -1
- package/dist/Triangulator.js.map +0 -1
- package/dist/Updatable.js.map +0 -1
- package/dist/Utils.js.map +0 -1
- package/dist/VertexEffect.js.map +0 -1
- package/dist/attachments/Attachment.js.map +0 -1
- package/dist/attachments/AttachmentLoader.js.map +0 -1
- package/dist/attachments/BoundingBoxAttachment.js.map +0 -1
- package/dist/attachments/ClippingAttachment.js.map +0 -1
- package/dist/attachments/MeshAttachment.js.map +0 -1
- package/dist/attachments/PathAttachment.js.map +0 -1
- package/dist/attachments/PointAttachment.js.map +0 -1
- package/dist/attachments/RegionAttachment.js.map +0 -1
- package/dist/attachments/index.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/polyfills.js.map +0 -1
- package/dist/vertexeffects/JitterEffect.js.map +0 -1
- package/dist/vertexeffects/SwirlEffect.js.map +0 -1
package/dist/Updatable.js
CHANGED
|
@@ -27,4 +27,4 @@
|
|
|
27
27
|
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
29
|
export {};
|
|
30
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXBkYXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1VwZGF0YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OytFQTJCK0UifQ==
|
package/dist/Utils.js
CHANGED
|
@@ -26,113 +26,90 @@
|
|
|
26
26
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
|
|
27
27
|
* THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
28
|
*****************************************************************************/
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
extendStatics = Object.setPrototypeOf ||
|
|
32
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
33
|
-
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
34
|
-
return extendStatics(d, b);
|
|
35
|
-
};
|
|
36
|
-
return function (d, b) {
|
|
37
|
-
if (typeof b !== "function" && b !== null)
|
|
38
|
-
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
39
|
-
extendStatics(d, b);
|
|
40
|
-
function __() { this.constructor = d; }
|
|
41
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
42
|
-
};
|
|
43
|
-
})();
|
|
44
|
-
var IntSet = /** @class */ (function () {
|
|
45
|
-
function IntSet() {
|
|
29
|
+
export class IntSet {
|
|
30
|
+
constructor() {
|
|
46
31
|
this.array = new Array();
|
|
47
32
|
}
|
|
48
|
-
|
|
49
|
-
|
|
33
|
+
add(value) {
|
|
34
|
+
let contains = this.contains(value);
|
|
50
35
|
this.array[value | 0] = value | 0;
|
|
51
36
|
return !contains;
|
|
52
|
-
}
|
|
53
|
-
|
|
37
|
+
}
|
|
38
|
+
contains(value) {
|
|
54
39
|
return this.array[value | 0] != undefined;
|
|
55
|
-
}
|
|
56
|
-
|
|
40
|
+
}
|
|
41
|
+
remove(value) {
|
|
57
42
|
this.array[value | 0] = undefined;
|
|
58
|
-
}
|
|
59
|
-
|
|
43
|
+
}
|
|
44
|
+
clear() {
|
|
60
45
|
this.array.length = 0;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
var StringSet = /** @class */ (function () {
|
|
66
|
-
function StringSet() {
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
export class StringSet {
|
|
49
|
+
constructor() {
|
|
67
50
|
this.entries = {};
|
|
68
51
|
this.size = 0;
|
|
69
52
|
}
|
|
70
|
-
|
|
71
|
-
|
|
53
|
+
add(value) {
|
|
54
|
+
let contains = this.entries[value];
|
|
72
55
|
this.entries[value] = true;
|
|
73
56
|
if (!contains) {
|
|
74
57
|
this.size++;
|
|
75
58
|
return true;
|
|
76
59
|
}
|
|
77
60
|
return false;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
61
|
+
}
|
|
62
|
+
addAll(values) {
|
|
63
|
+
let oldSize = this.size;
|
|
81
64
|
for (var i = 0, n = values.length; i < n; i++)
|
|
82
65
|
this.add(values[i]);
|
|
83
66
|
return oldSize != this.size;
|
|
84
|
-
}
|
|
85
|
-
|
|
67
|
+
}
|
|
68
|
+
contains(value) {
|
|
86
69
|
return this.entries[value];
|
|
87
|
-
}
|
|
88
|
-
|
|
70
|
+
}
|
|
71
|
+
clear() {
|
|
89
72
|
this.entries = {};
|
|
90
73
|
this.size = 0;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
var Color = /** @class */ (function () {
|
|
96
|
-
function Color(r, g, b, a) {
|
|
97
|
-
if (r === void 0) { r = 0; }
|
|
98
|
-
if (g === void 0) { g = 0; }
|
|
99
|
-
if (b === void 0) { b = 0; }
|
|
100
|
-
if (a === void 0) { a = 0; }
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
export class Color {
|
|
77
|
+
constructor(r = 0, g = 0, b = 0, a = 0) {
|
|
101
78
|
this.r = r;
|
|
102
79
|
this.g = g;
|
|
103
80
|
this.b = b;
|
|
104
81
|
this.a = a;
|
|
105
82
|
}
|
|
106
|
-
|
|
83
|
+
set(r, g, b, a) {
|
|
107
84
|
this.r = r;
|
|
108
85
|
this.g = g;
|
|
109
86
|
this.b = b;
|
|
110
87
|
this.a = a;
|
|
111
88
|
return this.clamp();
|
|
112
|
-
}
|
|
113
|
-
|
|
89
|
+
}
|
|
90
|
+
setFromColor(c) {
|
|
114
91
|
this.r = c.r;
|
|
115
92
|
this.g = c.g;
|
|
116
93
|
this.b = c.b;
|
|
117
94
|
this.a = c.a;
|
|
118
95
|
return this;
|
|
119
|
-
}
|
|
120
|
-
|
|
96
|
+
}
|
|
97
|
+
setFromString(hex) {
|
|
121
98
|
hex = hex.charAt(0) == '#' ? hex.substr(1) : hex;
|
|
122
99
|
this.r = parseInt(hex.substr(0, 2), 16) / 255;
|
|
123
100
|
this.g = parseInt(hex.substr(2, 2), 16) / 255;
|
|
124
101
|
this.b = parseInt(hex.substr(4, 2), 16) / 255;
|
|
125
102
|
this.a = hex.length != 8 ? 1 : parseInt(hex.substr(6, 2), 16) / 255;
|
|
126
103
|
return this;
|
|
127
|
-
}
|
|
128
|
-
|
|
104
|
+
}
|
|
105
|
+
add(r, g, b, a) {
|
|
129
106
|
this.r += r;
|
|
130
107
|
this.g += g;
|
|
131
108
|
this.b += b;
|
|
132
109
|
this.a += a;
|
|
133
110
|
return this.clamp();
|
|
134
|
-
}
|
|
135
|
-
|
|
111
|
+
}
|
|
112
|
+
clamp() {
|
|
136
113
|
if (this.r < 0)
|
|
137
114
|
this.r = 0;
|
|
138
115
|
else if (this.r > 1)
|
|
@@ -150,257 +127,223 @@ var Color = /** @class */ (function () {
|
|
|
150
127
|
else if (this.a > 1)
|
|
151
128
|
this.a = 1;
|
|
152
129
|
return this;
|
|
153
|
-
}
|
|
154
|
-
|
|
130
|
+
}
|
|
131
|
+
static rgba8888ToColor(color, value) {
|
|
155
132
|
color.r = ((value & 0xff000000) >>> 24) / 255;
|
|
156
133
|
color.g = ((value & 0x00ff0000) >>> 16) / 255;
|
|
157
134
|
color.b = ((value & 0x0000ff00) >>> 8) / 255;
|
|
158
135
|
color.a = ((value & 0x000000ff)) / 255;
|
|
159
|
-
}
|
|
160
|
-
|
|
136
|
+
}
|
|
137
|
+
static rgb888ToColor(color, value) {
|
|
161
138
|
color.r = ((value & 0x00ff0000) >>> 16) / 255;
|
|
162
139
|
color.g = ((value & 0x0000ff00) >>> 8) / 255;
|
|
163
140
|
color.b = ((value & 0x000000ff)) / 255;
|
|
164
|
-
}
|
|
165
|
-
|
|
141
|
+
}
|
|
142
|
+
static fromString(hex) {
|
|
166
143
|
return new Color().setFromString(hex);
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
var MathUtils = /** @class */ (function () {
|
|
177
|
-
function MathUtils() {
|
|
178
|
-
}
|
|
179
|
-
MathUtils.clamp = function (value, min, max) {
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
Color.WHITE = new Color(1, 1, 1, 1);
|
|
147
|
+
Color.RED = new Color(1, 0, 0, 1);
|
|
148
|
+
Color.GREEN = new Color(0, 1, 0, 1);
|
|
149
|
+
Color.BLUE = new Color(0, 0, 1, 1);
|
|
150
|
+
Color.MAGENTA = new Color(1, 0, 1, 1);
|
|
151
|
+
export class MathUtils {
|
|
152
|
+
static clamp(value, min, max) {
|
|
180
153
|
if (value < min)
|
|
181
154
|
return min;
|
|
182
155
|
if (value > max)
|
|
183
156
|
return max;
|
|
184
157
|
return value;
|
|
185
|
-
}
|
|
186
|
-
|
|
158
|
+
}
|
|
159
|
+
static cosDeg(degrees) {
|
|
187
160
|
return Math.cos(degrees * MathUtils.degRad);
|
|
188
|
-
}
|
|
189
|
-
|
|
161
|
+
}
|
|
162
|
+
static sinDeg(degrees) {
|
|
190
163
|
return Math.sin(degrees * MathUtils.degRad);
|
|
191
|
-
}
|
|
192
|
-
|
|
164
|
+
}
|
|
165
|
+
static signum(value) {
|
|
193
166
|
return value > 0 ? 1 : value < 0 ? -1 : 0;
|
|
194
|
-
}
|
|
195
|
-
|
|
167
|
+
}
|
|
168
|
+
static toInt(x) {
|
|
196
169
|
return x > 0 ? Math.floor(x) : Math.ceil(x);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
|
|
170
|
+
}
|
|
171
|
+
static cbrt(x) {
|
|
172
|
+
let y = Math.pow(Math.abs(x), 1 / 3);
|
|
200
173
|
return x < 0 ? -y : y;
|
|
201
|
-
}
|
|
202
|
-
|
|
174
|
+
}
|
|
175
|
+
static randomTriangular(min, max) {
|
|
203
176
|
return MathUtils.randomTriangularWith(min, max, (min + max) * 0.5);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
177
|
+
}
|
|
178
|
+
static randomTriangularWith(min, max, mode) {
|
|
179
|
+
let u = Math.random();
|
|
180
|
+
let d = max - min;
|
|
208
181
|
if (u <= (mode - min) / d)
|
|
209
182
|
return min + Math.sqrt(u * d * (mode - min));
|
|
210
183
|
return max - Math.sqrt((1 - u) * d * (max - mode));
|
|
211
|
-
}
|
|
212
|
-
|
|
184
|
+
}
|
|
185
|
+
static isPowerOfTwo(value) {
|
|
213
186
|
return value && (value & (value - 1)) === 0;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
var Interpolation = /** @class */ (function () {
|
|
225
|
-
function Interpolation() {
|
|
226
|
-
}
|
|
227
|
-
Interpolation.prototype.apply = function (start, end, a) {
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
MathUtils.PI = 3.1415927;
|
|
190
|
+
MathUtils.PI2 = MathUtils.PI * 2;
|
|
191
|
+
MathUtils.radiansToDegrees = 180 / MathUtils.PI;
|
|
192
|
+
MathUtils.radDeg = MathUtils.radiansToDegrees;
|
|
193
|
+
MathUtils.degreesToRadians = MathUtils.PI / 180;
|
|
194
|
+
MathUtils.degRad = MathUtils.degreesToRadians;
|
|
195
|
+
export class Interpolation {
|
|
196
|
+
apply(start, end, a) {
|
|
228
197
|
return start + (end - start) * this.applyInternal(a);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
_this.power = power;
|
|
239
|
-
return _this;
|
|
240
|
-
}
|
|
241
|
-
Pow.prototype.applyInternal = function (a) {
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
export class Pow extends Interpolation {
|
|
201
|
+
constructor(power) {
|
|
202
|
+
super();
|
|
203
|
+
this.power = 2;
|
|
204
|
+
this.power = power;
|
|
205
|
+
}
|
|
206
|
+
applyInternal(a) {
|
|
242
207
|
if (a <= 0.5)
|
|
243
208
|
return Math.pow(a * 2, this.power) / 2;
|
|
244
209
|
return Math.pow((a - 1) * 2, this.power) / (this.power % 2 == 0 ? -2 : 2) + 1;
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
return _super.call(this, power) || this;
|
|
253
|
-
}
|
|
254
|
-
PowOut.prototype.applyInternal = function (a) {
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
export class PowOut extends Pow {
|
|
213
|
+
constructor(power) {
|
|
214
|
+
super(power);
|
|
215
|
+
}
|
|
216
|
+
applyInternal(a) {
|
|
255
217
|
return Math.pow(a - 1, this.power) * (this.power % 2 == 0 ? -1 : 1) + 1;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
function Utils() {
|
|
262
|
-
}
|
|
263
|
-
Utils.arrayCopy = function (source, sourceStart, dest, destStart, numElements) {
|
|
264
|
-
for (var i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) {
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
export class Utils {
|
|
221
|
+
static arrayCopy(source, sourceStart, dest, destStart, numElements) {
|
|
222
|
+
for (let i = sourceStart, j = destStart; i < sourceStart + numElements; i++, j++) {
|
|
265
223
|
dest[j] = source[i];
|
|
266
224
|
}
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
for (
|
|
225
|
+
}
|
|
226
|
+
static arrayFill(array, fromIndex, toIndex, value) {
|
|
227
|
+
for (let i = fromIndex; i < toIndex; i++)
|
|
270
228
|
array[i] = value;
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
var oldSize = array.length;
|
|
229
|
+
}
|
|
230
|
+
static setArraySize(array, size, value = 0) {
|
|
231
|
+
let oldSize = array.length;
|
|
275
232
|
if (oldSize == size)
|
|
276
233
|
return array;
|
|
277
234
|
array.length = size;
|
|
278
235
|
if (oldSize < size) {
|
|
279
|
-
for (
|
|
236
|
+
for (let i = oldSize; i < size; i++)
|
|
280
237
|
array[i] = value;
|
|
281
238
|
}
|
|
282
239
|
return array;
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
if (value === void 0) { value = 0; }
|
|
240
|
+
}
|
|
241
|
+
static ensureArrayCapacity(array, size, value = 0) {
|
|
286
242
|
if (array.length >= size)
|
|
287
243
|
return array;
|
|
288
244
|
return Utils.setArraySize(array, size, value);
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
for (
|
|
245
|
+
}
|
|
246
|
+
static newArray(size, defaultValue) {
|
|
247
|
+
let array = new Array(size);
|
|
248
|
+
for (let i = 0; i < size; i++)
|
|
293
249
|
array[i] = defaultValue;
|
|
294
250
|
return array;
|
|
295
|
-
}
|
|
296
|
-
|
|
251
|
+
}
|
|
252
|
+
static newFloatArray(size) {
|
|
297
253
|
if (Utils.SUPPORTS_TYPED_ARRAYS)
|
|
298
254
|
return new Float32Array(size);
|
|
299
255
|
else {
|
|
300
|
-
|
|
301
|
-
for (
|
|
256
|
+
let array = new Array(size);
|
|
257
|
+
for (let i = 0; i < array.length; i++)
|
|
302
258
|
array[i] = 0;
|
|
303
259
|
return array;
|
|
304
260
|
}
|
|
305
|
-
}
|
|
306
|
-
|
|
261
|
+
}
|
|
262
|
+
static newShortArray(size) {
|
|
307
263
|
if (Utils.SUPPORTS_TYPED_ARRAYS)
|
|
308
264
|
return new Int16Array(size);
|
|
309
265
|
else {
|
|
310
|
-
|
|
311
|
-
for (
|
|
266
|
+
let array = new Array(size);
|
|
267
|
+
for (let i = 0; i < array.length; i++)
|
|
312
268
|
array[i] = 0;
|
|
313
269
|
return array;
|
|
314
270
|
}
|
|
315
|
-
}
|
|
316
|
-
|
|
271
|
+
}
|
|
272
|
+
static toFloatArray(array) {
|
|
317
273
|
return Utils.SUPPORTS_TYPED_ARRAYS ? new Float32Array(array) : array;
|
|
318
|
-
}
|
|
319
|
-
|
|
274
|
+
}
|
|
275
|
+
static toSinglePrecision(value) {
|
|
320
276
|
return Utils.SUPPORTS_TYPED_ARRAYS ? Math.fround(value) : value;
|
|
321
|
-
}
|
|
277
|
+
}
|
|
322
278
|
// This function is used to fix WebKit 602 specific issue described at http://esotericsoftware.com/forum/iOS-10-disappearing-graphics-10109
|
|
323
|
-
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
if (identity === void 0) { identity = true; }
|
|
279
|
+
static webkit602BugfixHelper(alpha, blend) {
|
|
280
|
+
}
|
|
281
|
+
static contains(array, element, identity = true) {
|
|
327
282
|
for (var i = 0; i < array.length; i++)
|
|
328
283
|
if (array[i] == element)
|
|
329
284
|
return true;
|
|
330
285
|
return false;
|
|
331
|
-
}
|
|
332
|
-
|
|
286
|
+
}
|
|
287
|
+
static enumValue(type, name) {
|
|
333
288
|
return type[name[0].toUpperCase() + name.slice(1)];
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
}
|
|
342
|
-
DebugUtils.logBones = function (skeleton) {
|
|
343
|
-
for (var i = 0; i < skeleton.bones.length; i++) {
|
|
344
|
-
var bone = skeleton.bones[i];
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
Utils.SUPPORTS_TYPED_ARRAYS = typeof (Float32Array) !== "undefined";
|
|
292
|
+
export class DebugUtils {
|
|
293
|
+
static logBones(skeleton) {
|
|
294
|
+
for (let i = 0; i < skeleton.bones.length; i++) {
|
|
295
|
+
let bone = skeleton.bones[i];
|
|
345
296
|
console.log(bone.data.name + ", " + bone.a + ", " + bone.b + ", " + bone.c + ", " + bone.d + ", " + bone.worldX + ", " + bone.worldY);
|
|
346
297
|
}
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
var Pool = /** @class */ (function () {
|
|
352
|
-
function Pool(instantiator) {
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
export class Pool {
|
|
301
|
+
constructor(instantiator) {
|
|
353
302
|
this.items = new Array();
|
|
354
303
|
this.instantiator = instantiator;
|
|
355
304
|
}
|
|
356
|
-
|
|
305
|
+
obtain() {
|
|
357
306
|
return this.items.length > 0 ? this.items.pop() : this.instantiator();
|
|
358
|
-
}
|
|
359
|
-
|
|
307
|
+
}
|
|
308
|
+
free(item) {
|
|
360
309
|
if (item.reset)
|
|
361
310
|
item.reset();
|
|
362
311
|
this.items.push(item);
|
|
363
|
-
}
|
|
364
|
-
|
|
365
|
-
for (
|
|
312
|
+
}
|
|
313
|
+
freeAll(items) {
|
|
314
|
+
for (let i = 0; i < items.length; i++)
|
|
366
315
|
this.free(items[i]);
|
|
367
|
-
}
|
|
368
|
-
|
|
316
|
+
}
|
|
317
|
+
clear() {
|
|
369
318
|
this.items.length = 0;
|
|
370
|
-
}
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
var Vector2 = /** @class */ (function () {
|
|
375
|
-
function Vector2(x, y) {
|
|
376
|
-
if (x === void 0) { x = 0; }
|
|
377
|
-
if (y === void 0) { y = 0; }
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
export class Vector2 {
|
|
322
|
+
constructor(x = 0, y = 0) {
|
|
378
323
|
this.x = x;
|
|
379
324
|
this.y = y;
|
|
380
325
|
}
|
|
381
|
-
|
|
326
|
+
set(x, y) {
|
|
382
327
|
this.x = x;
|
|
383
328
|
this.y = y;
|
|
384
329
|
return this;
|
|
385
|
-
}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
330
|
+
}
|
|
331
|
+
length() {
|
|
332
|
+
let x = this.x;
|
|
333
|
+
let y = this.y;
|
|
389
334
|
return Math.sqrt(x * x + y * y);
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
|
|
335
|
+
}
|
|
336
|
+
normalize() {
|
|
337
|
+
let len = this.length();
|
|
393
338
|
if (len != 0) {
|
|
394
339
|
this.x /= len;
|
|
395
340
|
this.y /= len;
|
|
396
341
|
}
|
|
397
342
|
return this;
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
var TimeKeeper = /** @class */ (function () {
|
|
403
|
-
function TimeKeeper() {
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
export class TimeKeeper {
|
|
346
|
+
constructor() {
|
|
404
347
|
this.maxDelta = 0.064;
|
|
405
348
|
this.framesPerSecond = 0;
|
|
406
349
|
this.delta = 0;
|
|
@@ -409,8 +352,8 @@ var TimeKeeper = /** @class */ (function () {
|
|
|
409
352
|
this.frameCount = 0;
|
|
410
353
|
this.frameTime = 0;
|
|
411
354
|
}
|
|
412
|
-
|
|
413
|
-
|
|
355
|
+
update() {
|
|
356
|
+
let now = Date.now() / 1000;
|
|
414
357
|
this.delta = now - this.lastTime;
|
|
415
358
|
this.frameTime += this.delta;
|
|
416
359
|
this.totalTime += this.delta;
|
|
@@ -423,35 +366,32 @@ var TimeKeeper = /** @class */ (function () {
|
|
|
423
366
|
this.frameTime = 0;
|
|
424
367
|
this.frameCount = 0;
|
|
425
368
|
}
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
var WindowedMean = /** @class */ (function () {
|
|
431
|
-
function WindowedMean(windowSize) {
|
|
432
|
-
if (windowSize === void 0) { windowSize = 32; }
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
export class WindowedMean {
|
|
372
|
+
constructor(windowSize = 32) {
|
|
433
373
|
this.addedValues = 0;
|
|
434
374
|
this.lastValue = 0;
|
|
435
375
|
this.mean = 0;
|
|
436
376
|
this.dirty = true;
|
|
437
377
|
this.values = new Array(windowSize);
|
|
438
378
|
}
|
|
439
|
-
|
|
379
|
+
hasEnoughData() {
|
|
440
380
|
return this.addedValues >= this.values.length;
|
|
441
|
-
}
|
|
442
|
-
|
|
381
|
+
}
|
|
382
|
+
addValue(value) {
|
|
443
383
|
if (this.addedValues < this.values.length)
|
|
444
384
|
this.addedValues++;
|
|
445
385
|
this.values[this.lastValue++] = value;
|
|
446
386
|
if (this.lastValue > this.values.length - 1)
|
|
447
387
|
this.lastValue = 0;
|
|
448
388
|
this.dirty = true;
|
|
449
|
-
}
|
|
450
|
-
|
|
389
|
+
}
|
|
390
|
+
getMean() {
|
|
451
391
|
if (this.hasEnoughData()) {
|
|
452
392
|
if (this.dirty) {
|
|
453
|
-
|
|
454
|
-
for (
|
|
393
|
+
let mean = 0;
|
|
394
|
+
for (let i = 0; i < this.values.length; i++)
|
|
455
395
|
mean += this.values[i];
|
|
456
396
|
this.mean = mean / this.values.length;
|
|
457
397
|
this.dirty = false;
|
|
@@ -459,8 +399,6 @@ var WindowedMean = /** @class */ (function () {
|
|
|
459
399
|
return this.mean;
|
|
460
400
|
}
|
|
461
401
|
return 0;
|
|
462
|
-
}
|
|
463
|
-
|
|
464
|
-
}());
|
|
465
|
-
export { WindowedMean };
|
|
466
|
-
//# sourceMappingURL=Utils.js.map
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsrRUEyQitFO0FBUy9FLE1BQU0sT0FBTyxNQUFNO0lBQW5CO1FBQ0MsVUFBSyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7SUFtQjdCLENBQUM7SUFqQkEsR0FBRyxDQUFFLEtBQWE7UUFDakIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLE9BQU8sQ0FBQyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVEsQ0FBRSxLQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksU0FBUyxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLENBQUUsS0FBYTtRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDbkMsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztDQUNEO0FBRUQsTUFBTSxPQUFPLFNBQVM7SUFBdEI7UUFDQyxZQUFPLEdBQXVCLEVBQUUsQ0FBQztRQUNqQyxTQUFJLEdBQUcsQ0FBQyxDQUFDO0lBMkJWLENBQUM7SUF6QkEsR0FBRyxDQUFFLEtBQWE7UUFDakIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osT0FBTyxJQUFJLENBQUM7U0FDWjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBRSxNQUFnQjtRQUN2QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckIsT0FBTyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUSxDQUFFLEtBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxLQUFLO1FBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7SUFDZixDQUFDO0NBQ0Q7QUFlRCxNQUFNLE9BQU8sS0FBSztJQU9qQixZQUFvQixJQUFZLENBQUMsRUFBUyxJQUFZLENBQUMsRUFBUyxJQUFZLENBQUMsRUFBUyxJQUFZLENBQUM7UUFBL0UsTUFBQyxHQUFELENBQUMsQ0FBWTtRQUFTLE1BQUMsR0FBRCxDQUFDLENBQVk7UUFBUyxNQUFDLEdBQUQsQ0FBQyxDQUFZO1FBQVMsTUFBQyxHQUFELENBQUMsQ0FBWTtJQUNuRyxDQUFDO0lBRUQsR0FBRyxDQUFFLENBQVMsRUFBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVM7UUFDOUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNYLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsWUFBWSxDQUFFLENBQVE7UUFDckIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2IsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2IsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQsYUFBYSxDQUFFLEdBQVc7UUFDekIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDakQsSUFBSSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzlDLElBQUksQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUM5QyxJQUFJLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDOUMsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3BFLE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztJQUVELEdBQUcsQ0FBRSxDQUFTLEVBQUUsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTO1FBQzlDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ1osSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNaLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ1osT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELEtBQUs7UUFDSixJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3RCLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN0QixJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWhDLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDdEIsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVoQyxJQUFJLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3RCLElBQUksSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTSxDQUFDLGVBQWUsQ0FBRSxLQUFZLEVBQUUsS0FBYTtRQUNsRCxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzlDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDOUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUM3QyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDeEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUUsS0FBWSxFQUFFLEtBQWE7UUFDaEQsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUM5QyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzdDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBRSxHQUFXO1FBQzdCLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQzs7QUF4RWEsV0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzlCLFNBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUM1QixXQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDOUIsVUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdCLGFBQU8sR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQXVFL0MsTUFBTSxPQUFPLFNBQVM7SUFRckIsTUFBTSxDQUFDLEtBQUssQ0FBRSxLQUFhLEVBQUUsR0FBVyxFQUFFLEdBQVc7UUFDcEQsSUFBSSxLQUFLLEdBQUcsR0FBRztZQUFFLE9BQU8sR0FBRyxDQUFDO1FBQzVCLElBQUksS0FBSyxHQUFHLEdBQUc7WUFBRSxPQUFPLEdBQUcsQ0FBQztRQUM1QixPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFFLE9BQWU7UUFDN0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUUsT0FBZTtRQUM3QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBRSxLQUFhO1FBQzNCLE9BQU8sS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFFLENBQVM7UUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFFLENBQVM7UUFDckIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBRSxHQUFXLEVBQUUsR0FBVztRQUNoRCxPQUFPLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxNQUFNLENBQUMsb0JBQW9CLENBQUUsR0FBVyxFQUFFLEdBQVcsRUFBRSxJQUFZO1FBQ2xFLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUM7WUFBRSxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4RSxPQUFPLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxNQUFNLENBQUMsWUFBWSxDQUFFLEtBQWE7UUFDakMsT0FBTyxLQUFLLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQzs7QUEvQ00sWUFBRSxHQUFHLFNBQVMsQ0FBQztBQUNmLGFBQUcsR0FBRyxTQUFTLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUN2QiwwQkFBZ0IsR0FBRyxHQUFHLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztBQUN0QyxnQkFBTSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztBQUNwQywwQkFBZ0IsR0FBRyxTQUFTLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQztBQUN0QyxnQkFBTSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztBQTZDNUMsTUFBTSxPQUFnQixhQUFhO0lBRWxDLEtBQUssQ0FBRSxLQUFhLEVBQUUsR0FBVyxFQUFFLENBQVM7UUFDM0MsT0FBTyxLQUFLLEdBQUcsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0Q7QUFFRCxNQUFNLE9BQU8sR0FBSSxTQUFRLGFBQWE7SUFHckMsWUFBYSxLQUFhO1FBQ3pCLEtBQUssRUFBRSxDQUFDO1FBSEMsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUluQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsYUFBYSxDQUFFLENBQVM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRztZQUFFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0UsQ0FBQztDQUNEO0FBRUQsTUFBTSxPQUFPLE1BQU8sU0FBUSxHQUFHO0lBQzlCLFlBQWEsS0FBYTtRQUN6QixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRUQsYUFBYSxDQUFFLENBQVM7UUFDdkIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7Q0FDRDtBQUVELE1BQU0sT0FBTyxLQUFLO0lBR2pCLE1BQU0sQ0FBQyxTQUFTLENBQUssTUFBb0IsRUFBRSxXQUFtQixFQUFFLElBQWtCLEVBQUUsU0FBaUIsRUFBRSxXQUFtQjtRQUN6SCxLQUFLLElBQUksQ0FBQyxHQUFHLFdBQVcsRUFBRSxDQUFDLEdBQUcsU0FBUyxFQUFFLENBQUMsR0FBRyxXQUFXLEdBQUcsV0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pGLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDcEI7SUFDRixDQUFDO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBSyxLQUFtQixFQUFFLFNBQWlCLEVBQUUsT0FBZSxFQUFFLEtBQVE7UUFDckYsS0FBSyxJQUFJLENBQUMsR0FBRyxTQUFTLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxDQUFDLEVBQUU7WUFDdkMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBSyxLQUFlLEVBQUUsSUFBWSxFQUFFLFFBQWEsQ0FBQztRQUNwRSxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksT0FBTyxJQUFJLElBQUk7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUNsQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLE9BQU8sR0FBRyxJQUFJLEVBQUU7WUFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxPQUFPLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLEVBQUU7Z0JBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUN0RDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxtQkFBbUIsQ0FBSyxLQUFlLEVBQUUsSUFBWSxFQUFFLFFBQWEsQ0FBQztRQUMzRSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksSUFBSTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFLLElBQVksRUFBRSxZQUFlO1FBQ2hELElBQUksS0FBSyxHQUFHLElBQUksS0FBSyxDQUFJLElBQUksQ0FBQyxDQUFDO1FBQy9CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksQ0FBQztRQUN2RCxPQUFPLEtBQUssQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFFLElBQVk7UUFDakMsSUFBSSxLQUFLLENBQUMscUJBQXFCO1lBQzlCLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUE7YUFDekI7WUFDSixJQUFJLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBUyxJQUFJLENBQUMsQ0FBQztZQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUU7Z0JBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwRCxPQUFPLEtBQUssQ0FBQztTQUNiO0lBQ0YsQ0FBQztJQUVELE1BQU0sQ0FBQyxhQUFhLENBQUUsSUFBWTtRQUNqQyxJQUFJLEtBQUssQ0FBQyxxQkFBcUI7WUFDOUIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQTthQUN2QjtZQUNKLElBQUksS0FBSyxHQUFHLElBQUksS0FBSyxDQUFTLElBQUksQ0FBQyxDQUFDO1lBQ3BDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtnQkFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sS0FBSyxDQUFDO1NBQ2I7SUFDRixDQUFDO0lBRUQsTUFBTSxDQUFDLFlBQVksQ0FBRSxLQUFvQjtRQUN4QyxPQUFPLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN0RSxDQUFDO0lBRUQsTUFBTSxDQUFDLGlCQUFpQixDQUFFLEtBQWE7UUFDdEMsT0FBTyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUNqRSxDQUFDO0lBRUQsMklBQTJJO0lBQzNJLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBRSxLQUFhLEVBQUUsS0FBZTtJQUM1RCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBSyxLQUFlLEVBQUUsT0FBVSxFQUFFLFFBQVEsR0FBRyxJQUFJO1FBQy9ELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtZQUNwQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3RDLE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUUsSUFBUyxFQUFFLElBQVk7UUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDOztBQTFFTSwyQkFBcUIsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssV0FBVyxDQUFDO0FBNkV0RSxNQUFNLE9BQU8sVUFBVTtJQUN0QixNQUFNLENBQUMsUUFBUSxDQUFFLFFBQWtCO1FBQ2xDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMvQyxJQUFJLElBQUksR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN0STtJQUNGLENBQUM7Q0FDRDtBQUVELE1BQU0sT0FBTyxJQUFJO0lBSWhCLFlBQWEsWUFBcUI7UUFIMUIsVUFBSyxHQUFHLElBQUksS0FBSyxFQUFLLENBQUM7UUFJOUIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbEMsQ0FBQztJQUVELE1BQU07UUFDTCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFJLENBQUUsSUFBTztRQUNaLElBQUssSUFBWSxDQUFDLEtBQUs7WUFBRyxJQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELE9BQU8sQ0FBRSxLQUFtQjtRQUMzQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUU7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsS0FBSztRQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDO0NBQ0Q7QUFFRCxNQUFNLE9BQU8sT0FBTztJQUNuQixZQUFvQixJQUFJLENBQUMsRUFBUyxJQUFJLENBQUM7UUFBbkIsTUFBQyxHQUFELENBQUMsQ0FBSTtRQUFTLE1BQUMsR0FBRCxDQUFDLENBQUk7SUFDdkMsQ0FBQztJQUVELEdBQUcsQ0FBRSxDQUFTLEVBQUUsQ0FBUztRQUN4QixJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNYLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsT0FBTyxJQUFJLENBQUM7SUFDYixDQUFDO0lBRUQsTUFBTTtRQUNMLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDZixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxTQUFTO1FBQ1IsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRTtZQUNiLElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDO1lBQ2QsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUM7U0FDZDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2IsQ0FBQztDQUNEO0FBRUQsTUFBTSxPQUFPLFVBQVU7SUFBdkI7UUFDQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBRU4sYUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDN0IsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGNBQVMsR0FBRyxDQUFDLENBQUM7SUFpQnZCLENBQUM7SUFmQSxNQUFNO1FBQ0wsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztRQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzNELElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBRXBCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ3hELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1NBQ3BCO0lBQ0YsQ0FBQztDQUNEO0FBT0QsTUFBTSxPQUFPLFlBQVk7SUFPeEIsWUFBYSxhQUFxQixFQUFFO1FBTHBDLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxTQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ1QsVUFBSyxHQUFHLElBQUksQ0FBQztRQUdaLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQVMsVUFBVSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGFBQWE7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDL0MsQ0FBQztJQUVELFFBQVEsQ0FBRSxLQUFhO1FBQ3RCLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDdEMsSUFBSSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUM7WUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTztRQUNOLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDZixJQUFJLElBQUksR0FBRyxDQUFDLENBQUM7Z0JBQ2IsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRTtvQkFDMUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2dCQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzthQUNuQjtZQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztTQUNqQjtRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ1YsQ0FBQztDQUNEIn0=
|