@math.gl/core 4.0.0-alpha.4 → 4.0.0
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/gl-matrix/mat3.d.ts +36 -44
- package/dist/gl-matrix/mat3.d.ts.map +1 -1
- package/dist/gl-matrix/mat3.js.map +1 -1
- package/dist/gl-matrix/mat4.d.ts +64 -91
- package/dist/gl-matrix/mat4.d.ts.map +1 -1
- package/dist/gl-matrix/mat4.js.map +1 -1
- package/dist/gl-matrix/quat.d.ts +1 -1
- package/dist/gl-matrix/quat.d.ts.map +1 -1
- package/dist/gl-matrix/vec2.d.ts +169 -179
- package/dist/gl-matrix/vec2.d.ts.map +1 -1
- package/dist/gl-matrix/vec2.js.map +1 -1
- package/dist/gl-matrix/vec3.d.ts +74 -84
- package/dist/gl-matrix/vec3.d.ts.map +1 -1
- package/dist/gl-matrix/vec3.js.map +1 -1
- package/dist/gl-matrix/vec4.d.ts +66 -76
- package/dist/gl-matrix/vec4.d.ts.map +1 -1
- package/dist/gl-matrix/vec4.js.map +1 -1
- package/dist/index.cjs +2215 -211
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/gl-matrix/{vec2.js → vec2.ts} +100 -99
- package/src/index.ts +13 -0
- package/src/lib/gl-matrix.d.ts +2 -0
- /package/src/gl-matrix/{mat3.js → mat3.ts} +0 -0
- /package/src/gl-matrix/{mat4.js → mat4.ts} +0 -0
- /package/src/gl-matrix/{vec3.js → vec3.ts} +0 -0
- /package/src/gl-matrix/{vec4.js → vec4.ts} +0 -0
package/dist/gl-matrix/mat3.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @returns {mat3} a new 3x3 matrix
|
|
9
9
|
*/
|
|
10
|
-
export function create():
|
|
10
|
+
export declare function create(): any[] | Float32Array;
|
|
11
11
|
/**
|
|
12
12
|
* Copies the upper-left 3x3 values into the given mat3.
|
|
13
13
|
*
|
|
@@ -15,14 +15,14 @@ export function create(): mat3;
|
|
|
15
15
|
* @param {ReadonlyMat4} a the source 4x4 matrix
|
|
16
16
|
* @returns {mat3} out
|
|
17
17
|
*/
|
|
18
|
-
export function fromMat4(out:
|
|
18
|
+
export declare function fromMat4(out: any, a: any): any;
|
|
19
19
|
/**
|
|
20
20
|
* Creates a new mat3 initialized with values from an existing matrix
|
|
21
21
|
*
|
|
22
22
|
* @param {ReadonlyMat3} a matrix to clone
|
|
23
23
|
* @returns {mat3} a new 3x3 matrix
|
|
24
24
|
*/
|
|
25
|
-
export function clone(a:
|
|
25
|
+
export declare function clone(a: any): any[] | Float32Array;
|
|
26
26
|
/**
|
|
27
27
|
* Copy the values from one mat3 to another
|
|
28
28
|
*
|
|
@@ -30,7 +30,7 @@ export function clone(a: ReadonlyMat3): mat3;
|
|
|
30
30
|
* @param {ReadonlyMat3} a the source matrix
|
|
31
31
|
* @returns {mat3} out
|
|
32
32
|
*/
|
|
33
|
-
export function copy(out:
|
|
33
|
+
export declare function copy(out: any, a: any): any;
|
|
34
34
|
/**
|
|
35
35
|
* Create a new mat3 with the given values
|
|
36
36
|
*
|
|
@@ -45,7 +45,7 @@ export function copy(out: mat3, a: ReadonlyMat3): mat3;
|
|
|
45
45
|
* @param {Number} m22 Component in column 2, row 2 position (index 8)
|
|
46
46
|
* @returns {mat3} A new mat3
|
|
47
47
|
*/
|
|
48
|
-
export function fromValues(m00:
|
|
48
|
+
export declare function fromValues(m00: any, m01: any, m02: any, m10: any, m11: any, m12: any, m20: any, m21: any, m22: any): any[] | Float32Array;
|
|
49
49
|
/**
|
|
50
50
|
* Set the components of a mat3 to the given values
|
|
51
51
|
*
|
|
@@ -61,14 +61,14 @@ export function fromValues(m00: number, m01: number, m02: number, m10: number, m
|
|
|
61
61
|
* @param {Number} m22 Component in column 2, row 2 position (index 8)
|
|
62
62
|
* @returns {mat3} out
|
|
63
63
|
*/
|
|
64
|
-
export function set(out:
|
|
64
|
+
export declare function set(out: any, m00: any, m01: any, m02: any, m10: any, m11: any, m12: any, m20: any, m21: any, m22: any): any;
|
|
65
65
|
/**
|
|
66
66
|
* Set a mat3 to the identity matrix
|
|
67
67
|
*
|
|
68
68
|
* @param {mat3} out the receiving matrix
|
|
69
69
|
* @returns {mat3} out
|
|
70
70
|
*/
|
|
71
|
-
export function identity(out:
|
|
71
|
+
export declare function identity(out: any): any;
|
|
72
72
|
/**
|
|
73
73
|
* Transpose the values of a mat3
|
|
74
74
|
*
|
|
@@ -76,7 +76,7 @@ export function identity(out: mat3): mat3;
|
|
|
76
76
|
* @param {ReadonlyMat3} a the source matrix
|
|
77
77
|
* @returns {mat3} out
|
|
78
78
|
*/
|
|
79
|
-
export function transpose(out:
|
|
79
|
+
export declare function transpose(out: any, a: any): any;
|
|
80
80
|
/**
|
|
81
81
|
* Inverts a mat3
|
|
82
82
|
*
|
|
@@ -84,7 +84,7 @@ export function transpose(out: mat3, a: ReadonlyMat3): mat3;
|
|
|
84
84
|
* @param {ReadonlyMat3} a the source matrix
|
|
85
85
|
* @returns {mat3} out
|
|
86
86
|
*/
|
|
87
|
-
export function invert(out:
|
|
87
|
+
export declare function invert(out: any, a: any): any;
|
|
88
88
|
/**
|
|
89
89
|
* Calculates the adjugate of a mat3
|
|
90
90
|
*
|
|
@@ -92,14 +92,14 @@ export function invert(out: mat3, a: ReadonlyMat3): mat3;
|
|
|
92
92
|
* @param {ReadonlyMat3} a the source matrix
|
|
93
93
|
* @returns {mat3} out
|
|
94
94
|
*/
|
|
95
|
-
export function adjoint(out:
|
|
95
|
+
export declare function adjoint(out: any, a: any): any;
|
|
96
96
|
/**
|
|
97
97
|
* Calculates the determinant of a mat3
|
|
98
98
|
*
|
|
99
99
|
* @param {ReadonlyMat3} a the source matrix
|
|
100
100
|
* @returns {Number} determinant of a
|
|
101
101
|
*/
|
|
102
|
-
export function determinant(a:
|
|
102
|
+
export declare function determinant(a: any): number;
|
|
103
103
|
/**
|
|
104
104
|
* Multiplies two mat3's
|
|
105
105
|
*
|
|
@@ -108,7 +108,7 @@ export function determinant(a: ReadonlyMat3): number;
|
|
|
108
108
|
* @param {ReadonlyMat3} b the second operand
|
|
109
109
|
* @returns {mat3} out
|
|
110
110
|
*/
|
|
111
|
-
export function multiply(out:
|
|
111
|
+
export declare function multiply(out: any, a: any, b: any): any;
|
|
112
112
|
/**
|
|
113
113
|
* Translate a mat3 by the given vector
|
|
114
114
|
*
|
|
@@ -117,7 +117,7 @@ export function multiply(out: mat3, a: ReadonlyMat3, b: ReadonlyMat3): mat3;
|
|
|
117
117
|
* @param {ReadonlyVec2} v vector to translate by
|
|
118
118
|
* @returns {mat3} out
|
|
119
119
|
*/
|
|
120
|
-
export function translate(out:
|
|
120
|
+
export declare function translate(out: any, a: any, v: any): any;
|
|
121
121
|
/**
|
|
122
122
|
* Rotates a mat3 by the given angle
|
|
123
123
|
*
|
|
@@ -126,7 +126,7 @@ export function translate(out: mat3, a: ReadonlyMat3, v: ReadonlyVec2): mat3;
|
|
|
126
126
|
* @param {Number} rad the angle to rotate the matrix by
|
|
127
127
|
* @returns {mat3} out
|
|
128
128
|
*/
|
|
129
|
-
export function rotate(out:
|
|
129
|
+
export declare function rotate(out: any, a: any, rad: any): any;
|
|
130
130
|
/**
|
|
131
131
|
* Scales the mat3 by the dimensions in the given vec2
|
|
132
132
|
*
|
|
@@ -135,7 +135,7 @@ export function rotate(out: mat3, a: ReadonlyMat3, rad: number): mat3;
|
|
|
135
135
|
* @param {ReadonlyVec2} v the vec2 to scale the matrix by
|
|
136
136
|
* @returns {mat3} out
|
|
137
137
|
**/
|
|
138
|
-
export function scale(out:
|
|
138
|
+
export declare function scale(out: any, a: any, v: any): any;
|
|
139
139
|
/**
|
|
140
140
|
* Creates a matrix from a vector translation
|
|
141
141
|
* This is equivalent to (but much faster than):
|
|
@@ -147,7 +147,7 @@ export function scale(out: mat3, a: ReadonlyMat3, v: ReadonlyVec2): mat3;
|
|
|
147
147
|
* @param {ReadonlyVec2} v Translation vector
|
|
148
148
|
* @returns {mat3} out
|
|
149
149
|
*/
|
|
150
|
-
export function fromTranslation(out:
|
|
150
|
+
export declare function fromTranslation(out: any, v: any): any;
|
|
151
151
|
/**
|
|
152
152
|
* Creates a matrix from a given angle
|
|
153
153
|
* This is equivalent to (but much faster than):
|
|
@@ -159,7 +159,7 @@ export function fromTranslation(out: mat3, v: ReadonlyVec2): mat3;
|
|
|
159
159
|
* @param {Number} rad the angle to rotate the matrix by
|
|
160
160
|
* @returns {mat3} out
|
|
161
161
|
*/
|
|
162
|
-
export function fromRotation(out:
|
|
162
|
+
export declare function fromRotation(out: any, rad: any): any;
|
|
163
163
|
/**
|
|
164
164
|
* Creates a matrix from a vector scaling
|
|
165
165
|
* This is equivalent to (but much faster than):
|
|
@@ -171,7 +171,7 @@ export function fromRotation(out: mat3, rad: number): mat3;
|
|
|
171
171
|
* @param {ReadonlyVec2} v Scaling vector
|
|
172
172
|
* @returns {mat3} out
|
|
173
173
|
*/
|
|
174
|
-
export function fromScaling(out:
|
|
174
|
+
export declare function fromScaling(out: any, v: any): any;
|
|
175
175
|
/**
|
|
176
176
|
* Copies the values from a mat2d into a mat3
|
|
177
177
|
*
|
|
@@ -179,7 +179,7 @@ export function fromScaling(out: mat3, v: ReadonlyVec2): mat3;
|
|
|
179
179
|
* @param {ReadonlyMat2d} a the matrix to copy
|
|
180
180
|
* @returns {mat3} out
|
|
181
181
|
**/
|
|
182
|
-
export function fromMat2d(out:
|
|
182
|
+
export declare function fromMat2d(out: any, a: any): any;
|
|
183
183
|
/**
|
|
184
184
|
* Calculates a 3x3 matrix from the given quaternion
|
|
185
185
|
*
|
|
@@ -188,7 +188,7 @@ export function fromMat2d(out: mat3, a: ReadonlyMat2d): mat3;
|
|
|
188
188
|
*
|
|
189
189
|
* @returns {mat3} out
|
|
190
190
|
*/
|
|
191
|
-
export function fromQuat(out:
|
|
191
|
+
export declare function fromQuat(out: any, q: any): any;
|
|
192
192
|
/**
|
|
193
193
|
* Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix
|
|
194
194
|
*
|
|
@@ -197,7 +197,7 @@ export function fromQuat(out: mat3, q: ReadonlyQuat): mat3;
|
|
|
197
197
|
*
|
|
198
198
|
* @returns {mat3} out
|
|
199
199
|
*/
|
|
200
|
-
export function normalFromMat4(out:
|
|
200
|
+
export declare function normalFromMat4(out: any, a: any): any;
|
|
201
201
|
/**
|
|
202
202
|
* Generates a 2D projection matrix with the given bounds
|
|
203
203
|
*
|
|
@@ -206,21 +206,21 @@ export function normalFromMat4(out: mat3, a: ReadonlyMat4): mat3;
|
|
|
206
206
|
* @param {number} height Height of gl context
|
|
207
207
|
* @returns {mat3} out
|
|
208
208
|
*/
|
|
209
|
-
export function projection(out:
|
|
209
|
+
export declare function projection(out: any, width: any, height: any): any;
|
|
210
210
|
/**
|
|
211
211
|
* Returns a string representation of a mat3
|
|
212
212
|
*
|
|
213
213
|
* @param {ReadonlyMat3} a matrix to represent as a string
|
|
214
214
|
* @returns {String} string representation of the matrix
|
|
215
215
|
*/
|
|
216
|
-
export function str(a:
|
|
216
|
+
export declare function str(a: any): string;
|
|
217
217
|
/**
|
|
218
218
|
* Returns Frobenius norm of a mat3
|
|
219
219
|
*
|
|
220
220
|
* @param {ReadonlyMat3} a the matrix to calculate Frobenius norm of
|
|
221
221
|
* @returns {Number} Frobenius norm
|
|
222
222
|
*/
|
|
223
|
-
export function frob(a:
|
|
223
|
+
export declare function frob(a: any): number;
|
|
224
224
|
/**
|
|
225
225
|
* Adds two mat3's
|
|
226
226
|
*
|
|
@@ -229,7 +229,7 @@ export function frob(a: ReadonlyMat3): number;
|
|
|
229
229
|
* @param {ReadonlyMat3} b the second operand
|
|
230
230
|
* @returns {mat3} out
|
|
231
231
|
*/
|
|
232
|
-
export function add(out:
|
|
232
|
+
export declare function add(out: any, a: any, b: any): any;
|
|
233
233
|
/**
|
|
234
234
|
* Subtracts matrix b from matrix a
|
|
235
235
|
*
|
|
@@ -238,7 +238,7 @@ export function add(out: mat3, a: ReadonlyMat3, b: ReadonlyMat3): mat3;
|
|
|
238
238
|
* @param {ReadonlyMat3} b the second operand
|
|
239
239
|
* @returns {mat3} out
|
|
240
240
|
*/
|
|
241
|
-
export function subtract(out:
|
|
241
|
+
export declare function subtract(out: any, a: any, b: any): any;
|
|
242
242
|
/**
|
|
243
243
|
* Multiply each element of the matrix by a scalar.
|
|
244
244
|
*
|
|
@@ -247,7 +247,7 @@ export function subtract(out: mat3, a: ReadonlyMat3, b: ReadonlyMat3): mat3;
|
|
|
247
247
|
* @param {Number} b amount to scale the matrix's elements by
|
|
248
248
|
* @returns {mat3} out
|
|
249
249
|
*/
|
|
250
|
-
export function multiplyScalar(out:
|
|
250
|
+
export declare function multiplyScalar(out: any, a: any, b: any): any;
|
|
251
251
|
/**
|
|
252
252
|
* Adds two mat3's after multiplying each element of the second operand by a scalar value.
|
|
253
253
|
*
|
|
@@ -257,7 +257,7 @@ export function multiplyScalar(out: mat3, a: ReadonlyMat3, b: number): mat3;
|
|
|
257
257
|
* @param {Number} scale the amount to scale b's elements by before adding
|
|
258
258
|
* @returns {mat3} out
|
|
259
259
|
*/
|
|
260
|
-
export function multiplyScalarAndAdd(out:
|
|
260
|
+
export declare function multiplyScalarAndAdd(out: any, a: any, b: any, scale: any): any;
|
|
261
261
|
/**
|
|
262
262
|
* Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)
|
|
263
263
|
*
|
|
@@ -265,7 +265,7 @@ export function multiplyScalarAndAdd(out: mat3, a: ReadonlyMat3, b: ReadonlyMat3
|
|
|
265
265
|
* @param {ReadonlyMat3} b The second matrix.
|
|
266
266
|
* @returns {Boolean} True if the matrices are equal, false otherwise.
|
|
267
267
|
*/
|
|
268
|
-
export function exactEquals(a:
|
|
268
|
+
export declare function exactEquals(a: any, b: any): boolean;
|
|
269
269
|
/**
|
|
270
270
|
* Returns whether or not the matrices have approximately the same elements in the same position.
|
|
271
271
|
*
|
|
@@ -273,23 +273,15 @@ export function exactEquals(a: ReadonlyMat3, b: ReadonlyMat3): boolean;
|
|
|
273
273
|
* @param {ReadonlyMat3} b The second matrix.
|
|
274
274
|
* @returns {Boolean} True if the matrices are equal, false otherwise.
|
|
275
275
|
*/
|
|
276
|
-
export function equals(a:
|
|
276
|
+
export declare function equals(a: any, b: any): boolean;
|
|
277
277
|
/**
|
|
278
|
-
*
|
|
279
|
-
*
|
|
280
|
-
* @param {mat3} out the receiving matrix
|
|
281
|
-
* @param {ReadonlyMat3} a the first operand
|
|
282
|
-
* @param {ReadonlyMat3} b the second operand
|
|
283
|
-
* @returns {mat3} out
|
|
278
|
+
* Alias for {@link mat3.multiply}
|
|
279
|
+
* @function
|
|
284
280
|
*/
|
|
285
|
-
export
|
|
281
|
+
export declare const mul: typeof multiply;
|
|
286
282
|
/**
|
|
287
|
-
*
|
|
288
|
-
*
|
|
289
|
-
* @param {mat3} out the receiving matrix
|
|
290
|
-
* @param {ReadonlyMat3} a the first operand
|
|
291
|
-
* @param {ReadonlyMat3} b the second operand
|
|
292
|
-
* @returns {mat3} out
|
|
283
|
+
* Alias for {@link mat3.subtract}
|
|
284
|
+
* @function
|
|
293
285
|
*/
|
|
294
|
-
export
|
|
286
|
+
export declare const sub: typeof subtract;
|
|
295
287
|
//# sourceMappingURL=mat3.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mat3.d.ts","sourceRoot":"","sources":["../../src/gl-matrix/mat3.
|
|
1
|
+
{"version":3,"file":"mat3.d.ts","sourceRoot":"","sources":["../../src/gl-matrix/mat3.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/gl-matrix/mat3.js"],"names":["glMatrix","create","out","ARRAY_TYPE","Float32Array","fromMat4","a","clone","copy","fromValues","m00","m01","m02","m10","m11","m12","m20","m21","m22","set","identity","transpose","a01","a02","a12","invert","a00","a10","a11","a20","a21","a22","b01","b11","b21","det","adjoint","determinant","multiply","b","b00","b02","b10","b12","b20","b22","translate","v","x","y","rotate","rad","s","Math","sin","c","cos","scale","fromTranslation","fromRotation","fromScaling","fromMat2d","fromQuat","q","z","w","x2","y2","z2","xx","yx","yy","zx","zy","zz","wx","wy","wz","normalFromMat4","a03","a13","a23","a30","a31","a32","a33","b03","b04","b05","b06","b07","b08","b09","projection","width","height","str","frob","sqrt","add","subtract","multiplyScalar","multiplyScalarAndAdd","exactEquals","equals","a0","a1","a2","a3","a4","a5","a6","a7","a8","b0","b1","b2","b3","b4","b5","b6","b7","b8","abs","EPSILON","max","mul","sub"],"mappings":"AAAA,OAAO,KAAKA,QAAZ,MAA0B,aAA1B;AAYA,OAAO,SAASC,MAAT,GAAkB;AACvB,QAAMC,GAAG,GAAG,IAAIF,QAAQ,CAACG,UAAb,CAAwB,CAAxB,CAAZ;;AACA,MAAIH,QAAQ,CAACG,UAAT,IAAuBC,YAA3B,EAAyC;AACvCF,IAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,IAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,IAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,IAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,IAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,IAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACD;;AACDA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACA,SAAOA,GAAP;AACD;AASD,OAAO,SAASG,QAAT,CAAkBH,GAAlB,EAAuBI,CAAvB,EAA0B;AAC/BJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,EAAD,CAAV;AACA,SAAOJ,GAAP;AACD;AAQD,OAAO,SAASK,KAAT,CAAeD,CAAf,EAAkB;AACvB,QAAMJ,GAAG,GAAG,IAAIF,QAAQ,CAACG,UAAb,CAAwB,CAAxB,CAAZ;AACAD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACA,SAAOJ,GAAP;AACD;AASD,OAAO,SAASM,IAAT,CAAcN,GAAd,EAAmBI,CAAnB,EAAsB;AAC3BJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACA,SAAOJ,GAAP;AACD;AAgBD,OAAO,SAASO,UAAT,CAAoBC,GAApB,EAAyBC,GAAzB,EAA8BC,GAA9B,EAAmCC,GAAnC,EAAwCC,GAAxC,EAA6CC,GAA7C,EAAkDC,GAAlD,EAAuDC,GAAvD,EAA4DC,GAA5D,EAAiE;AACtE,QAAMhB,GAAG,GAAG,IAAIF,QAAQ,CAACG,UAAb,CAAwB,CAAxB,CAAZ;AACAD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASQ,GAAT;AACAR,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASS,GAAT;AACAT,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASU,GAAT;AACAV,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASW,GAAT;AACAX,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASY,GAAT;AACAZ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASa,GAAT;AACAb,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASc,GAAT;AACAd,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASe,GAAT;AACAf,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASgB,GAAT;AACA,SAAOhB,GAAP;AACD;AAiBD,OAAO,SAASiB,GAAT,CAAajB,GAAb,EAAkBQ,GAAlB,EAAuBC,GAAvB,EAA4BC,GAA5B,EAAiCC,GAAjC,EAAsCC,GAAtC,EAA2CC,GAA3C,EAAgDC,GAAhD,EAAqDC,GAArD,EAA0DC,GAA1D,EAA+D;AACpEhB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASQ,GAAT;AACAR,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASS,GAAT;AACAT,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASU,GAAT;AACAV,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASW,GAAT;AACAX,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASY,GAAT;AACAZ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASa,GAAT;AACAb,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASc,GAAT;AACAd,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASe,GAAT;AACAf,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASgB,GAAT;AACA,SAAOhB,GAAP;AACD;AAQD,OAAO,SAASkB,QAAT,CAAkBlB,GAAlB,EAAuB;AAC5BA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACA,SAAOA,GAAP;AACD;AASD,OAAO,SAASmB,SAAT,CAAmBnB,GAAnB,EAAwBI,CAAxB,EAA2B;AAEhC,MAAIJ,GAAG,KAAKI,CAAZ,EAAe;AACb,UAAMgB,GAAG,GAAGhB,CAAC,CAAC,CAAD,CAAb;AACA,UAAMiB,GAAG,GAAGjB,CAAC,CAAC,CAAD,CAAb;AACA,UAAMkB,GAAG,GAAGlB,CAAC,CAAC,CAAD,CAAb;AACAJ,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASoB,GAAT;AACApB,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASqB,GAAT;AACArB,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASsB,GAAT;AACD,GAVD,MAUO;AACLtB,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,IAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACD;;AAED,SAAOJ,GAAP;AACD;AASD,OAAO,SAASuB,MAAT,CAAgBvB,GAAhB,EAAqBI,CAArB,EAAwB;AAC7B,QAAMoB,GAAG,GAAGpB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMgB,GAAG,GAAGhB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMiB,GAAG,GAAGjB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMqB,GAAG,GAAGrB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMsB,GAAG,GAAGtB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMkB,GAAG,GAAGlB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMuB,GAAG,GAAGvB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMwB,GAAG,GAAGxB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMyB,GAAG,GAAGzB,CAAC,CAAC,CAAD,CAAb;AAEA,QAAM0B,GAAG,GAAGD,GAAG,GAAGH,GAAN,GAAYJ,GAAG,GAAGM,GAA9B;AACA,QAAMG,GAAG,GAAG,CAACF,GAAD,GAAOJ,GAAP,GAAaH,GAAG,GAAGK,GAA/B;AACA,QAAMK,GAAG,GAAGJ,GAAG,GAAGH,GAAN,GAAYC,GAAG,GAAGC,GAA9B;AAGA,MAAIM,GAAG,GAAGT,GAAG,GAAGM,GAAN,GAAYV,GAAG,GAAGW,GAAlB,GAAwBV,GAAG,GAAGW,GAAxC;;AAEA,MAAI,CAACC,GAAL,EAAU;AACR,WAAO,IAAP;AACD;;AACDA,EAAAA,GAAG,GAAG,MAAMA,GAAZ;AAEAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS8B,GAAG,GAAGG,GAAf;AACAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAC,CAAC6B,GAAD,GAAOT,GAAP,GAAaC,GAAG,GAAGO,GAApB,IAA2BK,GAApC;AACAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAACsB,GAAG,GAAGF,GAAN,GAAYC,GAAG,GAAGK,GAAnB,IAA0BO,GAAnC;AACAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS+B,GAAG,GAAGE,GAAf;AACAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAC6B,GAAG,GAAGL,GAAN,GAAYH,GAAG,GAAGM,GAAnB,IAA0BM,GAAnC;AACAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAC,CAACsB,GAAD,GAAOE,GAAP,GAAaH,GAAG,GAAGI,GAApB,IAA2BQ,GAApC;AACAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASgC,GAAG,GAAGC,GAAf;AACAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAC,CAAC4B,GAAD,GAAOJ,GAAP,GAAaJ,GAAG,GAAGO,GAApB,IAA2BM,GAApC;AACAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAC0B,GAAG,GAAGF,GAAN,GAAYJ,GAAG,GAAGK,GAAnB,IAA0BQ,GAAnC;AACA,SAAOjC,GAAP;AACD;AASD,OAAO,SAASkC,OAAT,CAAiBlC,GAAjB,EAAsBI,CAAtB,EAAyB;AAC9B,QAAMoB,GAAG,GAAGpB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMgB,GAAG,GAAGhB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMiB,GAAG,GAAGjB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMqB,GAAG,GAAGrB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMsB,GAAG,GAAGtB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMkB,GAAG,GAAGlB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMuB,GAAG,GAAGvB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMwB,GAAG,GAAGxB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMyB,GAAG,GAAGzB,CAAC,CAAC,CAAD,CAAb;AAEAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS0B,GAAG,GAAGG,GAAN,GAAYP,GAAG,GAAGM,GAA3B;AACA5B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASqB,GAAG,GAAGO,GAAN,GAAYR,GAAG,GAAGS,GAA3B;AACA7B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASoB,GAAG,GAAGE,GAAN,GAAYD,GAAG,GAAGK,GAA3B;AACA1B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASsB,GAAG,GAAGK,GAAN,GAAYF,GAAG,GAAGI,GAA3B;AACA7B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASwB,GAAG,GAAGK,GAAN,GAAYR,GAAG,GAAGM,GAA3B;AACA3B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASqB,GAAG,GAAGI,GAAN,GAAYD,GAAG,GAAGF,GAA3B;AACAtB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASyB,GAAG,GAAGG,GAAN,GAAYF,GAAG,GAAGC,GAA3B;AACA3B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASoB,GAAG,GAAGO,GAAN,GAAYH,GAAG,GAAGI,GAA3B;AACA5B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASwB,GAAG,GAAGE,GAAN,GAAYN,GAAG,GAAGK,GAA3B;AACA,SAAOzB,GAAP;AACD;AAQD,OAAO,SAASmC,WAAT,CAAqB/B,CAArB,EAAwB;AAC7B,QAAMoB,GAAG,GAAGpB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMgB,GAAG,GAAGhB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMiB,GAAG,GAAGjB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMqB,GAAG,GAAGrB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMsB,GAAG,GAAGtB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMkB,GAAG,GAAGlB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMuB,GAAG,GAAGvB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMwB,GAAG,GAAGxB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMyB,GAAG,GAAGzB,CAAC,CAAC,CAAD,CAAb;AAEA,SACEoB,GAAG,IAAIK,GAAG,GAAGH,GAAN,GAAYJ,GAAG,GAAGM,GAAtB,CAAH,GAAgCR,GAAG,IAAI,CAACS,GAAD,GAAOJ,GAAP,GAAaH,GAAG,GAAGK,GAAvB,CAAnC,GAAiEN,GAAG,IAAIO,GAAG,GAAGH,GAAN,GAAYC,GAAG,GAAGC,GAAtB,CADtE;AAGD;AAUD,OAAO,SAASS,QAAT,CAAkBpC,GAAlB,EAAuBI,CAAvB,EAA0BiC,CAA1B,EAA6B;AAClC,QAAMb,GAAG,GAAGpB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMgB,GAAG,GAAGhB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMiB,GAAG,GAAGjB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMqB,GAAG,GAAGrB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMsB,GAAG,GAAGtB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMkB,GAAG,GAAGlB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMuB,GAAG,GAAGvB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMwB,GAAG,GAAGxB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMyB,GAAG,GAAGzB,CAAC,CAAC,CAAD,CAAb;AAEA,QAAMkC,GAAG,GAAGD,CAAC,CAAC,CAAD,CAAb;AACA,QAAMP,GAAG,GAAGO,CAAC,CAAC,CAAD,CAAb;AACA,QAAME,GAAG,GAAGF,CAAC,CAAC,CAAD,CAAb;AACA,QAAMG,GAAG,GAAGH,CAAC,CAAC,CAAD,CAAb;AACA,QAAMN,GAAG,GAAGM,CAAC,CAAC,CAAD,CAAb;AACA,QAAMI,GAAG,GAAGJ,CAAC,CAAC,CAAD,CAAb;AACA,QAAMK,GAAG,GAAGL,CAAC,CAAC,CAAD,CAAb;AACA,QAAML,GAAG,GAAGK,CAAC,CAAC,CAAD,CAAb;AACA,QAAMM,GAAG,GAAGN,CAAC,CAAC,CAAD,CAAb;AAEArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASsC,GAAG,GAAGd,GAAN,GAAYM,GAAG,GAAGL,GAAlB,GAAwBc,GAAG,GAAGZ,GAAvC;AACA3B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASsC,GAAG,GAAGlB,GAAN,GAAYU,GAAG,GAAGJ,GAAlB,GAAwBa,GAAG,GAAGX,GAAvC;AACA5B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASsC,GAAG,GAAGjB,GAAN,GAAYS,GAAG,GAAGR,GAAlB,GAAwBiB,GAAG,GAAGV,GAAvC;AAEA7B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASwC,GAAG,GAAGhB,GAAN,GAAYO,GAAG,GAAGN,GAAlB,GAAwBgB,GAAG,GAAGd,GAAvC;AACA3B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASwC,GAAG,GAAGpB,GAAN,GAAYW,GAAG,GAAGL,GAAlB,GAAwBe,GAAG,GAAGb,GAAvC;AACA5B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASwC,GAAG,GAAGnB,GAAN,GAAYU,GAAG,GAAGT,GAAlB,GAAwBmB,GAAG,GAAGZ,GAAvC;AAEA7B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS0C,GAAG,GAAGlB,GAAN,GAAYQ,GAAG,GAAGP,GAAlB,GAAwBkB,GAAG,GAAGhB,GAAvC;AACA3B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS0C,GAAG,GAAGtB,GAAN,GAAYY,GAAG,GAAGN,GAAlB,GAAwBiB,GAAG,GAAGf,GAAvC;AACA5B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS0C,GAAG,GAAGrB,GAAN,GAAYW,GAAG,GAAGV,GAAlB,GAAwBqB,GAAG,GAAGd,GAAvC;AACA,SAAO7B,GAAP;AACD;AAUD,OAAO,SAAS4C,SAAT,CAAmB5C,GAAnB,EAAwBI,CAAxB,EAA2ByC,CAA3B,EAA8B;AACnC,QAAMrB,GAAG,GAAGpB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMgB,GAAG,GAAGhB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMiB,GAAG,GAAGjB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMqB,GAAG,GAAGrB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMsB,GAAG,GAAGtB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMkB,GAAG,GAAGlB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMuB,GAAG,GAAGvB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMwB,GAAG,GAAGxB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMyB,GAAG,GAAGzB,CAAC,CAAC,CAAD,CAAb;AACA,QAAM0C,CAAC,GAAGD,CAAC,CAAC,CAAD,CAAX;AACA,QAAME,CAAC,GAAGF,CAAC,CAAC,CAAD,CAAX;AAEA7C,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASwB,GAAT;AACAxB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASoB,GAAT;AACApB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASqB,GAAT;AAEArB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASyB,GAAT;AACAzB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS0B,GAAT;AACA1B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASsB,GAAT;AAEAtB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS8C,CAAC,GAAGtB,GAAJ,GAAUuB,CAAC,GAAGtB,GAAd,GAAoBE,GAA7B;AACA3B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS8C,CAAC,GAAG1B,GAAJ,GAAU2B,CAAC,GAAGrB,GAAd,GAAoBE,GAA7B;AACA5B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS8C,CAAC,GAAGzB,GAAJ,GAAU0B,CAAC,GAAGzB,GAAd,GAAoBO,GAA7B;AACA,SAAO7B,GAAP;AACD;AAUD,OAAO,SAASgD,MAAT,CAAgBhD,GAAhB,EAAqBI,CAArB,EAAwB6C,GAAxB,EAA6B;AAClC,QAAMzB,GAAG,GAAGpB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMgB,GAAG,GAAGhB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMiB,GAAG,GAAGjB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMqB,GAAG,GAAGrB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMsB,GAAG,GAAGtB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMkB,GAAG,GAAGlB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMuB,GAAG,GAAGvB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMwB,GAAG,GAAGxB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMyB,GAAG,GAAGzB,CAAC,CAAC,CAAD,CAAb;AACA,QAAM8C,CAAC,GAAGC,IAAI,CAACC,GAAL,CAASH,GAAT,CAAV;AACA,QAAMI,CAAC,GAAGF,IAAI,CAACG,GAAL,CAASL,GAAT,CAAV;AAEAjD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASqD,CAAC,GAAG7B,GAAJ,GAAU0B,CAAC,GAAGzB,GAAvB;AACAzB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASqD,CAAC,GAAGjC,GAAJ,GAAU8B,CAAC,GAAGxB,GAAvB;AACA1B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASqD,CAAC,GAAGhC,GAAJ,GAAU6B,CAAC,GAAG5B,GAAvB;AAEAtB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASqD,CAAC,GAAG5B,GAAJ,GAAUyB,CAAC,GAAG1B,GAAvB;AACAxB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASqD,CAAC,GAAG3B,GAAJ,GAAUwB,CAAC,GAAG9B,GAAvB;AACApB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASqD,CAAC,GAAG/B,GAAJ,GAAU4B,CAAC,GAAG7B,GAAvB;AAEArB,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS2B,GAAT;AACA3B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS4B,GAAT;AACA5B,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS6B,GAAT;AACA,SAAO7B,GAAP;AACD;AAUD,OAAO,SAASuD,KAAT,CAAevD,GAAf,EAAoBI,CAApB,EAAuByC,CAAvB,EAA0B;AAC/B,QAAMC,CAAC,GAAGD,CAAC,CAAC,CAAD,CAAX;AACA,QAAME,CAAC,GAAGF,CAAC,CAAC,CAAD,CAAX;AAEA7C,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS8C,CAAC,GAAG1C,CAAC,CAAC,CAAD,CAAd;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS8C,CAAC,GAAG1C,CAAC,CAAC,CAAD,CAAd;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS8C,CAAC,GAAG1C,CAAC,CAAC,CAAD,CAAd;AAEAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS+C,CAAC,GAAG3C,CAAC,CAAC,CAAD,CAAd;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS+C,CAAC,GAAG3C,CAAC,CAAC,CAAD,CAAd;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS+C,CAAC,GAAG3C,CAAC,CAAC,CAAD,CAAd;AAEAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACA,SAAOJ,GAAP;AACD;AAaD,OAAO,SAASwD,eAAT,CAAyBxD,GAAzB,EAA8B6C,CAA9B,EAAiC;AACtC7C,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS6C,CAAC,CAAC,CAAD,CAAV;AACA7C,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS6C,CAAC,CAAC,CAAD,CAAV;AACA7C,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACA,SAAOA,GAAP;AACD;AAaD,OAAO,SAASyD,YAAT,CAAsBzD,GAAtB,EAA2BiD,GAA3B,EAAgC;AACrC,QAAMC,CAAC,GAAGC,IAAI,CAACC,GAAL,CAASH,GAAT,CAAV;AACA,QAAMI,CAAC,GAAGF,IAAI,CAACG,GAAL,CAASL,GAAT,CAAV;AAEAjD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASqD,CAAT;AACArD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASkD,CAAT;AACAlD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AAEAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAACkD,CAAV;AACAlD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASqD,CAAT;AACArD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AAEAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACA,SAAOA,GAAP;AACD;AAaD,OAAO,SAAS0D,WAAT,CAAqB1D,GAArB,EAA0B6C,CAA1B,EAA6B;AAClC7C,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS6C,CAAC,CAAC,CAAD,CAAV;AACA7C,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AAEAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS6C,CAAC,CAAC,CAAD,CAAV;AACA7C,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AAEAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACA,SAAOA,GAAP;AACD;AASD,OAAO,SAAS2D,SAAT,CAAmB3D,GAAnB,EAAwBI,CAAxB,EAA2B;AAChCJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AAEAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AAEAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAV;AACAJ,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACA,SAAOA,GAAP;AACD;AAUD,OAAO,SAAS4D,QAAT,CAAkB5D,GAAlB,EAAuB6D,CAAvB,EAA0B;AAC/B,QAAMf,CAAC,GAAGe,CAAC,CAAC,CAAD,CAAX;AACA,QAAMd,CAAC,GAAGc,CAAC,CAAC,CAAD,CAAX;AACA,QAAMC,CAAC,GAAGD,CAAC,CAAC,CAAD,CAAX;AACA,QAAME,CAAC,GAAGF,CAAC,CAAC,CAAD,CAAX;AACA,QAAMG,EAAE,GAAGlB,CAAC,GAAGA,CAAf;AACA,QAAMmB,EAAE,GAAGlB,CAAC,GAAGA,CAAf;AACA,QAAMmB,EAAE,GAAGJ,CAAC,GAAGA,CAAf;AAEA,QAAMK,EAAE,GAAGrB,CAAC,GAAGkB,EAAf;AACA,QAAMI,EAAE,GAAGrB,CAAC,GAAGiB,EAAf;AACA,QAAMK,EAAE,GAAGtB,CAAC,GAAGkB,EAAf;AACA,QAAMK,EAAE,GAAGR,CAAC,GAAGE,EAAf;AACA,QAAMO,EAAE,GAAGT,CAAC,GAAGG,EAAf;AACA,QAAMO,EAAE,GAAGV,CAAC,GAAGI,EAAf;AACA,QAAMO,EAAE,GAAGV,CAAC,GAAGC,EAAf;AACA,QAAMU,EAAE,GAAGX,CAAC,GAAGE,EAAf;AACA,QAAMU,EAAE,GAAGZ,CAAC,GAAGG,EAAf;AAEAlE,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,IAAIqE,EAAJ,GAASG,EAAlB;AACAxE,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASoE,EAAE,GAAGO,EAAd;AACA3E,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASsE,EAAE,GAAGI,EAAd;AAEA1E,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASoE,EAAE,GAAGO,EAAd;AACA3E,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,IAAImE,EAAJ,GAASK,EAAlB;AACAxE,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASuE,EAAE,GAAGE,EAAd;AAEAzE,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASsE,EAAE,GAAGI,EAAd;AACA1E,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASuE,EAAE,GAAGE,EAAd;AACAzE,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,IAAImE,EAAJ,GAASE,EAAlB;AAEA,SAAOrE,GAAP;AACD;AAUD,OAAO,SAAS4E,cAAT,CAAwB5E,GAAxB,EAA6BI,CAA7B,EAAgC;AACrC,QAAMoB,GAAG,GAAGpB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMgB,GAAG,GAAGhB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMiB,GAAG,GAAGjB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMyE,GAAG,GAAGzE,CAAC,CAAC,CAAD,CAAb;AACA,QAAMqB,GAAG,GAAGrB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMsB,GAAG,GAAGtB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMkB,GAAG,GAAGlB,CAAC,CAAC,CAAD,CAAb;AACA,QAAM0E,GAAG,GAAG1E,CAAC,CAAC,CAAD,CAAb;AACA,QAAMuB,GAAG,GAAGvB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMwB,GAAG,GAAGxB,CAAC,CAAC,CAAD,CAAb;AACA,QAAMyB,GAAG,GAAGzB,CAAC,CAAC,EAAD,CAAb;AACA,QAAM2E,GAAG,GAAG3E,CAAC,CAAC,EAAD,CAAb;AACA,QAAM4E,GAAG,GAAG5E,CAAC,CAAC,EAAD,CAAb;AACA,QAAM6E,GAAG,GAAG7E,CAAC,CAAC,EAAD,CAAb;AACA,QAAM8E,GAAG,GAAG9E,CAAC,CAAC,EAAD,CAAb;AACA,QAAM+E,GAAG,GAAG/E,CAAC,CAAC,EAAD,CAAb;AAEA,QAAMkC,GAAG,GAAGd,GAAG,GAAGE,GAAN,GAAYN,GAAG,GAAGK,GAA9B;AACA,QAAMK,GAAG,GAAGN,GAAG,GAAGF,GAAN,GAAYD,GAAG,GAAGI,GAA9B;AACA,QAAMc,GAAG,GAAGf,GAAG,GAAGsD,GAAN,GAAYD,GAAG,GAAGpD,GAA9B;AACA,QAAM2D,GAAG,GAAGhE,GAAG,GAAGE,GAAN,GAAYD,GAAG,GAAGK,GAA9B;AACA,QAAM2D,GAAG,GAAGjE,GAAG,GAAG0D,GAAN,GAAYD,GAAG,GAAGnD,GAA9B;AACA,QAAM4D,GAAG,GAAGjE,GAAG,GAAGyD,GAAN,GAAYD,GAAG,GAAGvD,GAA9B;AACA,QAAMiE,GAAG,GAAG5D,GAAG,GAAGsD,GAAN,GAAYrD,GAAG,GAAGoD,GAA9B;AACA,QAAMQ,GAAG,GAAG7D,GAAG,GAAGuD,GAAN,GAAYrD,GAAG,GAAGmD,GAA9B;AACA,QAAMS,GAAG,GAAG9D,GAAG,GAAGwD,GAAN,GAAYJ,GAAG,GAAGC,GAA9B;AACA,QAAMU,GAAG,GAAG9D,GAAG,GAAGsD,GAAN,GAAYrD,GAAG,GAAGoD,GAA9B;AACA,QAAMzC,GAAG,GAAGZ,GAAG,GAAGuD,GAAN,GAAYJ,GAAG,GAAGE,GAA9B;AACA,QAAMlD,GAAG,GAAGF,GAAG,GAAGsD,GAAN,GAAYJ,GAAG,GAAGG,GAA9B;AAGA,MAAIjD,GAAG,GAAGK,GAAG,GAAGP,GAAN,GAAYD,GAAG,GAAGU,GAAlB,GAAwBD,GAAG,GAAGmD,GAA9B,GAAoCN,GAAG,GAAGK,GAA1C,GAAgDJ,GAAG,GAAGG,GAAtD,GAA4DF,GAAG,GAAGC,GAA5E;;AAEA,MAAI,CAACtD,GAAL,EAAU;AACR,WAAO,IAAP;AACD;;AACDA,EAAAA,GAAG,GAAG,MAAMA,GAAZ;AAEAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAC0B,GAAG,GAAGK,GAAN,GAAYT,GAAG,GAAGkB,GAAlB,GAAwBsC,GAAG,GAAGY,GAA/B,IAAsCzD,GAA/C;AACAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAACsB,GAAG,GAAGmE,GAAN,GAAYhE,GAAG,GAAGM,GAAlB,GAAwB+C,GAAG,GAAGU,GAA/B,IAAsCvD,GAA/C;AACAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAACyB,GAAG,GAAGe,GAAN,GAAYd,GAAG,GAAG+D,GAAlB,GAAwBX,GAAG,GAAGS,GAA/B,IAAsCtD,GAA/C;AAEAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAACqB,GAAG,GAAGmB,GAAN,GAAYpB,GAAG,GAAGW,GAAlB,GAAwB8C,GAAG,GAAGa,GAA/B,IAAsCzD,GAA/C;AACAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAACwB,GAAG,GAAGO,GAAN,GAAYV,GAAG,GAAGoE,GAAlB,GAAwBZ,GAAG,GAAGW,GAA/B,IAAsCvD,GAA/C;AACAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAACoB,GAAG,GAAGqE,GAAN,GAAYjE,GAAG,GAAGgB,GAAlB,GAAwBqC,GAAG,GAAGU,GAA/B,IAAsCtD,GAA/C;AAEAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAACiF,GAAG,GAAGK,GAAN,GAAYJ,GAAG,GAAGG,GAAlB,GAAwBF,GAAG,GAAGC,GAA/B,IAAsCnD,GAA/C;AACAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAACkF,GAAG,GAAG3C,GAAN,GAAYyC,GAAG,GAAGM,GAAlB,GAAwBH,GAAG,GAAGrD,GAA/B,IAAsCG,GAA/C;AACAjC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAACgF,GAAG,GAAGK,GAAN,GAAYJ,GAAG,GAAG1C,GAAlB,GAAwB4C,GAAG,GAAG7C,GAA/B,IAAsCL,GAA/C;AAEA,SAAOjC,GAAP;AACD;AAUD,OAAO,SAAS2F,UAAT,CAAoB3F,GAApB,EAAyB4F,KAAzB,EAAgCC,MAAhC,EAAwC;AAC7C7F,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,IAAI4F,KAAb;AACA5F,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAC,CAAD,GAAK6F,MAAd;AACA7F,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAC,CAAV;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACAA,EAAAA,GAAG,CAAC,CAAD,CAAH,GAAS,CAAT;AACA,SAAOA,GAAP;AACD;AAQD,OAAO,SAAS8F,GAAT,CAAa1F,CAAb,EAAgB;AACrB,wBAAeA,CAAC,CAAC,CAAD,CAAhB,eAAwBA,CAAC,CAAC,CAAD,CAAzB,eAAiCA,CAAC,CAAC,CAAD,CAAlC,eAA0CA,CAAC,CAAC,CAAD,CAA3C,eAAmDA,CAAC,CAAC,CAAD,CAApD,eAA4DA,CAAC,CAAC,CAAD,CAA7D,eAAqEA,CAAC,CAAC,CAAD,CAAtE,eAA8EA,CAAC,CAAC,CAAD,CAA/E,eAAuFA,CAAC,CAAC,CAAD,CAAxF;AACD;AAQD,OAAO,SAAS2F,IAAT,CAAc3F,CAAd,EAAiB;AACtB,SAAO+C,IAAI,CAAC6C,IAAL,CACL5F,CAAC,CAAC,CAAD,CAAD,GAAOA,CAAC,CAAC,CAAD,CAAR,GACEA,CAAC,CAAC,CAAD,CAAD,GAAOA,CAAC,CAAC,CAAD,CADV,GAEEA,CAAC,CAAC,CAAD,CAAD,GAAOA,CAAC,CAAC,CAAD,CAFV,GAGEA,CAAC,CAAC,CAAD,CAAD,GAAOA,CAAC,CAAC,CAAD,CAHV,GAIEA,CAAC,CAAC,CAAD,CAAD,GAAOA,CAAC,CAAC,CAAD,CAJV,GAKEA,CAAC,CAAC,CAAD,CAAD,GAAOA,CAAC,CAAC,CAAD,CALV,GAMEA,CAAC,CAAC,CAAD,CAAD,GAAOA,CAAC,CAAC,CAAD,CANV,GAOEA,CAAC,CAAC,CAAD,CAAD,GAAOA,CAAC,CAAC,CAAD,CAPV,GAQEA,CAAC,CAAC,CAAD,CAAD,GAAOA,CAAC,CAAC,CAAD,CATL,CAAP;AAWD;AAUD,OAAO,SAAS6F,GAAT,CAAajG,GAAb,EAAkBI,CAAlB,EAAqBiC,CAArB,EAAwB;AAC7BrC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACA,SAAOrC,GAAP;AACD;AAUD,OAAO,SAASkG,QAAT,CAAkBlG,GAAlB,EAAuBI,CAAvB,EAA0BiC,CAA1B,EAA6B;AAClCrC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAjB;AACA,SAAOrC,GAAP;AACD;AAUD,OAAO,SAASmG,cAAT,CAAwBnG,GAAxB,EAA6BI,CAA7B,EAAgCiC,CAAhC,EAAmC;AACxCrC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAhB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAhB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAhB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAhB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAhB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAhB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAhB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAhB;AACArC,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAhB;AACA,SAAOrC,GAAP;AACD;AAWD,OAAO,SAASoG,oBAAT,CAA8BpG,GAA9B,EAAmCI,CAAnC,EAAsCiC,CAAtC,EAAyCkB,KAAzC,EAAgD;AACrDvD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAD,GAAOkB,KAAvB;AACAvD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAD,GAAOkB,KAAvB;AACAvD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAD,GAAOkB,KAAvB;AACAvD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAD,GAAOkB,KAAvB;AACAvD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAD,GAAOkB,KAAvB;AACAvD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAD,GAAOkB,KAAvB;AACAvD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAD,GAAOkB,KAAvB;AACAvD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAD,GAAOkB,KAAvB;AACAvD,EAAAA,GAAG,CAAC,CAAD,CAAH,GAASI,CAAC,CAAC,CAAD,CAAD,GAAOiC,CAAC,CAAC,CAAD,CAAD,GAAOkB,KAAvB;AACA,SAAOvD,GAAP;AACD;AASD,OAAO,SAASqG,WAAT,CAAqBjG,CAArB,EAAwBiC,CAAxB,EAA2B;AAChC,SACEjC,CAAC,CAAC,CAAD,CAAD,KAASiC,CAAC,CAAC,CAAD,CAAV,IACAjC,CAAC,CAAC,CAAD,CAAD,KAASiC,CAAC,CAAC,CAAD,CADV,IAEAjC,CAAC,CAAC,CAAD,CAAD,KAASiC,CAAC,CAAC,CAAD,CAFV,IAGAjC,CAAC,CAAC,CAAD,CAAD,KAASiC,CAAC,CAAC,CAAD,CAHV,IAIAjC,CAAC,CAAC,CAAD,CAAD,KAASiC,CAAC,CAAC,CAAD,CAJV,IAKAjC,CAAC,CAAC,CAAD,CAAD,KAASiC,CAAC,CAAC,CAAD,CALV,IAMAjC,CAAC,CAAC,CAAD,CAAD,KAASiC,CAAC,CAAC,CAAD,CANV,IAOAjC,CAAC,CAAC,CAAD,CAAD,KAASiC,CAAC,CAAC,CAAD,CAPV,IAQAjC,CAAC,CAAC,CAAD,CAAD,KAASiC,CAAC,CAAC,CAAD,CATZ;AAWD;AASD,OAAO,SAASiE,MAAT,CAAgBlG,CAAhB,EAAmBiC,CAAnB,EAAsB;AAC3B,QAAMkE,EAAE,GAAGnG,CAAC,CAAC,CAAD,CAAZ;AACA,QAAMoG,EAAE,GAAGpG,CAAC,CAAC,CAAD,CAAZ;AACA,QAAMqG,EAAE,GAAGrG,CAAC,CAAC,CAAD,CAAZ;AACA,QAAMsG,EAAE,GAAGtG,CAAC,CAAC,CAAD,CAAZ;AACA,QAAMuG,EAAE,GAAGvG,CAAC,CAAC,CAAD,CAAZ;AACA,QAAMwG,EAAE,GAAGxG,CAAC,CAAC,CAAD,CAAZ;AACA,QAAMyG,EAAE,GAAGzG,CAAC,CAAC,CAAD,CAAZ;AACA,QAAM0G,EAAE,GAAG1G,CAAC,CAAC,CAAD,CAAZ;AACA,QAAM2G,EAAE,GAAG3G,CAAC,CAAC,CAAD,CAAZ;AACA,QAAM4G,EAAE,GAAG3E,CAAC,CAAC,CAAD,CAAZ;AACA,QAAM4E,EAAE,GAAG5E,CAAC,CAAC,CAAD,CAAZ;AACA,QAAM6E,EAAE,GAAG7E,CAAC,CAAC,CAAD,CAAZ;AACA,QAAM8E,EAAE,GAAG9E,CAAC,CAAC,CAAD,CAAZ;AACA,QAAM+E,EAAE,GAAG/E,CAAC,CAAC,CAAD,CAAZ;AACA,QAAMgF,EAAE,GAAGhF,CAAC,CAAC,CAAD,CAAZ;AACA,QAAMiF,EAAE,GAAGjF,CAAC,CAAC,CAAD,CAAZ;AACA,QAAMkF,EAAE,GAAGlF,CAAC,CAAC,CAAD,CAAZ;AACA,QAAMmF,EAAE,GAAGnF,CAAC,CAAC,CAAD,CAAZ;AACA,SACEc,IAAI,CAACsE,GAAL,CAASlB,EAAE,GAAGS,EAAd,KAAqBlH,QAAQ,CAAC4H,OAAT,GAAmBvE,IAAI,CAACwE,GAAL,CAAS,GAAT,EAAcxE,IAAI,CAACsE,GAAL,CAASlB,EAAT,CAAd,EAA4BpD,IAAI,CAACsE,GAAL,CAAST,EAAT,CAA5B,CAAxC,IACA7D,IAAI,CAACsE,GAAL,CAASjB,EAAE,GAAGS,EAAd,KAAqBnH,QAAQ,CAAC4H,OAAT,GAAmBvE,IAAI,CAACwE,GAAL,CAAS,GAAT,EAAcxE,IAAI,CAACsE,GAAL,CAASjB,EAAT,CAAd,EAA4BrD,IAAI,CAACsE,GAAL,CAASR,EAAT,CAA5B,CADxC,IAEA9D,IAAI,CAACsE,GAAL,CAAShB,EAAE,GAAGS,EAAd,KAAqBpH,QAAQ,CAAC4H,OAAT,GAAmBvE,IAAI,CAACwE,GAAL,CAAS,GAAT,EAAcxE,IAAI,CAACsE,GAAL,CAAShB,EAAT,CAAd,EAA4BtD,IAAI,CAACsE,GAAL,CAASP,EAAT,CAA5B,CAFxC,IAGA/D,IAAI,CAACsE,GAAL,CAASf,EAAE,GAAGS,EAAd,KAAqBrH,QAAQ,CAAC4H,OAAT,GAAmBvE,IAAI,CAACwE,GAAL,CAAS,GAAT,EAAcxE,IAAI,CAACsE,GAAL,CAASf,EAAT,CAAd,EAA4BvD,IAAI,CAACsE,GAAL,CAASN,EAAT,CAA5B,CAHxC,IAIAhE,IAAI,CAACsE,GAAL,CAASd,EAAE,GAAGS,EAAd,KAAqBtH,QAAQ,CAAC4H,OAAT,GAAmBvE,IAAI,CAACwE,GAAL,CAAS,GAAT,EAAcxE,IAAI,CAACsE,GAAL,CAASd,EAAT,CAAd,EAA4BxD,IAAI,CAACsE,GAAL,CAASL,EAAT,CAA5B,CAJxC,IAKAjE,IAAI,CAACsE,GAAL,CAASb,EAAE,GAAGS,EAAd,KAAqBvH,QAAQ,CAAC4H,OAAT,GAAmBvE,IAAI,CAACwE,GAAL,CAAS,GAAT,EAAcxE,IAAI,CAACsE,GAAL,CAASb,EAAT,CAAd,EAA4BzD,IAAI,CAACsE,GAAL,CAASJ,EAAT,CAA5B,CALxC,IAMAlE,IAAI,CAACsE,GAAL,CAASZ,EAAE,GAAGS,EAAd,KAAqBxH,QAAQ,CAAC4H,OAAT,GAAmBvE,IAAI,CAACwE,GAAL,CAAS,GAAT,EAAcxE,IAAI,CAACsE,GAAL,CAASZ,EAAT,CAAd,EAA4B1D,IAAI,CAACsE,GAAL,CAASH,EAAT,CAA5B,CANxC,IAOAnE,IAAI,CAACsE,GAAL,CAASX,EAAE,GAAGS,EAAd,KAAqBzH,QAAQ,CAAC4H,OAAT,GAAmBvE,IAAI,CAACwE,GAAL,CAAS,GAAT,EAAcxE,IAAI,CAACsE,GAAL,CAASX,EAAT,CAAd,EAA4B3D,IAAI,CAACsE,GAAL,CAASF,EAAT,CAA5B,CAPxC,IAQApE,IAAI,CAACsE,GAAL,CAASV,EAAE,GAAGS,EAAd,KAAqB1H,QAAQ,CAAC4H,OAAT,GAAmBvE,IAAI,CAACwE,GAAL,CAAS,GAAT,EAAcxE,IAAI,CAACsE,GAAL,CAASV,EAAT,CAAd,EAA4B5D,IAAI,CAACsE,GAAL,CAASD,EAAT,CAA5B,CAT1C;AAWD;AAMD,OAAO,MAAMI,GAAG,GAAGxF,QAAZ;AAMP,OAAO,MAAMyF,GAAG,GAAG3B,QAAZ","sourcesContent":["import * as glMatrix from './common.js';\n\n/**\n * 3x3 Matrix\n * @module mat3\n */\n\n/**\n * Creates a new identity mat3\n *\n * @returns {mat3} a new 3x3 matrix\n */\nexport function create() {\n const out = new glMatrix.ARRAY_TYPE(9);\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n}\n\n/**\n * Copies the upper-left 3x3 values into the given mat3.\n *\n * @param {mat3} out the receiving 3x3 matrix\n * @param {ReadonlyMat4} a the source 4x4 matrix\n * @returns {mat3} out\n */\nexport function fromMat4(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[4];\n out[4] = a[5];\n out[5] = a[6];\n out[6] = a[8];\n out[7] = a[9];\n out[8] = a[10];\n return out;\n}\n\n/**\n * Creates a new mat3 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat3} a matrix to clone\n * @returns {mat3} a new 3x3 matrix\n */\nexport function clone(a) {\n const out = new glMatrix.ARRAY_TYPE(9);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n\n/**\n * Copy the values from one mat3 to another\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n\n/**\n * Create a new mat3 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} A new mat3\n */\nexport function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n const out = new glMatrix.ARRAY_TYPE(9);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n\n/**\n * Set the components of a mat3 to the given values\n *\n * @param {mat3} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} out\n */\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n\n/**\n * Transpose the values of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n const a01 = a[1];\n const a02 = a[2];\n const a12 = a[5];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a01;\n out[5] = a[7];\n out[6] = a02;\n out[7] = a12;\n } else {\n out[0] = a[0];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a[1];\n out[4] = a[4];\n out[5] = a[7];\n out[6] = a[2];\n out[7] = a[5];\n out[8] = a[8];\n }\n\n return out;\n}\n\n/**\n * Inverts a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function invert(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n const b01 = a22 * a11 - a12 * a21;\n const b11 = -a22 * a10 + a12 * a20;\n const b21 = a21 * a10 - a11 * a20;\n\n // Calculate the determinant\n let det = a00 * b01 + a01 * b11 + a02 * b21;\n\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n\n out[0] = b01 * det;\n out[1] = (-a22 * a01 + a02 * a21) * det;\n out[2] = (a12 * a01 - a02 * a11) * det;\n out[3] = b11 * det;\n out[4] = (a22 * a00 - a02 * a20) * det;\n out[5] = (-a12 * a00 + a02 * a10) * det;\n out[6] = b21 * det;\n out[7] = (-a21 * a00 + a01 * a20) * det;\n out[8] = (a11 * a00 - a01 * a10) * det;\n return out;\n}\n\n/**\n * Calculates the adjugate of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function adjoint(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n out[0] = a11 * a22 - a12 * a21;\n out[1] = a02 * a21 - a01 * a22;\n out[2] = a01 * a12 - a02 * a11;\n out[3] = a12 * a20 - a10 * a22;\n out[4] = a00 * a22 - a02 * a20;\n out[5] = a02 * a10 - a00 * a12;\n out[6] = a10 * a21 - a11 * a20;\n out[7] = a01 * a20 - a00 * a21;\n out[8] = a00 * a11 - a01 * a10;\n return out;\n}\n\n/**\n * Calculates the determinant of a mat3\n *\n * @param {ReadonlyMat3} a the source matrix\n * @returns {Number} determinant of a\n */\nexport function determinant(a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n return (\n a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20)\n );\n}\n\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\nexport function multiply(out, a, b) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n const b00 = b[0];\n const b01 = b[1];\n const b02 = b[2];\n const b10 = b[3];\n const b11 = b[4];\n const b12 = b[5];\n const b20 = b[6];\n const b21 = b[7];\n const b22 = b[8];\n\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\n\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to translate\n * @param {ReadonlyVec2} v vector to translate by\n * @returns {mat3} out\n */\nexport function translate(out, a, v) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n const x = v[0];\n const y = v[1];\n\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n\n out[3] = a10;\n out[4] = a11;\n out[5] = a12;\n\n out[6] = x * a00 + y * a10 + a20;\n out[7] = x * a01 + y * a11 + a21;\n out[8] = x * a02 + y * a12 + a22;\n return out;\n}\n\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\nexport function rotate(out, a, rad) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n const s = Math.sin(rad);\n const c = Math.cos(rad);\n\n out[0] = c * a00 + s * a10;\n out[1] = c * a01 + s * a11;\n out[2] = c * a02 + s * a12;\n\n out[3] = c * a10 - s * a00;\n out[4] = c * a11 - s * a01;\n out[5] = c * a12 - s * a02;\n\n out[6] = a20;\n out[7] = a21;\n out[8] = a22;\n return out;\n}\n\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/\nexport function scale(out, a, v) {\n const x = v[0];\n const y = v[1];\n\n out[0] = x * a[0];\n out[1] = x * a[1];\n out[2] = x * a[2];\n\n out[3] = y * a[3];\n out[4] = y * a[4];\n out[5] = y * a[5];\n\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.translate(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Translation vector\n * @returns {mat3} out\n */\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = v[0];\n out[7] = v[1];\n out[8] = 1;\n return out;\n}\n\n/**\n * Creates a matrix from a given angle\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.rotate(dest, dest, rad);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\nexport function fromRotation(out, rad) {\n const s = Math.sin(rad);\n const c = Math.cos(rad);\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.scale(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Scaling vector\n * @returns {mat3} out\n */\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n\n out[3] = 0;\n out[4] = v[1];\n out[5] = 0;\n\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n\n/**\n * Copies the values from a mat2d into a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to copy\n * @returns {mat3} out\n **/\nexport function fromMat2d(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = 0;\n\n out[3] = a[2];\n out[4] = a[3];\n out[5] = 0;\n\n out[6] = a[4];\n out[7] = a[5];\n out[8] = 1;\n return out;\n}\n\n/**\n * Calculates a 3x3 matrix from the given quaternion\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat3} out\n */\nexport function fromQuat(out, q) {\n const x = q[0];\n const y = q[1];\n const z = q[2];\n const w = q[3];\n const x2 = x + x;\n const y2 = y + y;\n const z2 = z + z;\n\n const xx = x * x2;\n const yx = y * x2;\n const yy = y * y2;\n const zx = z * x2;\n const zy = z * y2;\n const zz = z * z2;\n const wx = w * x2;\n const wy = w * y2;\n const wz = w * z2;\n\n out[0] = 1 - yy - zz;\n out[3] = yx - wz;\n out[6] = zx + wy;\n\n out[1] = yx + wz;\n out[4] = 1 - xx - zz;\n out[7] = zy - wx;\n\n out[2] = zx - wy;\n out[5] = zy + wx;\n out[8] = 1 - xx - yy;\n\n return out;\n}\n\n/**\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyMat4} a Mat4 to derive the normal matrix from\n *\n * @returns {mat3} out\n */\nexport function normalFromMat4(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a03 = a[3];\n const a10 = a[4];\n const a11 = a[5];\n const a12 = a[6];\n const a13 = a[7];\n const a20 = a[8];\n const a21 = a[9];\n const a22 = a[10];\n const a23 = a[11];\n const a30 = a[12];\n const a31 = a[13];\n const a32 = a[14];\n const a33 = a[15];\n\n const b00 = a00 * a11 - a01 * a10;\n const b01 = a00 * a12 - a02 * a10;\n const b02 = a00 * a13 - a03 * a10;\n const b03 = a01 * a12 - a02 * a11;\n const b04 = a01 * a13 - a03 * a11;\n const b05 = a02 * a13 - a03 * a12;\n const b06 = a20 * a31 - a21 * a30;\n const b07 = a20 * a32 - a22 * a30;\n const b08 = a20 * a33 - a23 * a30;\n const b09 = a21 * a32 - a22 * a31;\n const b10 = a21 * a33 - a23 * a31;\n const b11 = a22 * a33 - a23 * a32;\n\n // Calculate the determinant\n let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n\n out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n\n out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n\n return out;\n}\n\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */\nexport function projection(out, width, height) {\n out[0] = 2 / width;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = -2 / height;\n out[5] = 0;\n out[6] = -1;\n out[7] = 1;\n out[8] = 1;\n return out;\n}\n\n/**\n * Returns a string representation of a mat3\n *\n * @param {ReadonlyMat3} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\nexport function str(a) {\n return `mat3(${a[0]}, ${a[1]}, ${a[2]}, ${a[3]}, ${a[4]}, ${a[5]}, ${a[6]}, ${a[7]}, ${a[8]})`;\n}\n\n/**\n * Returns Frobenius norm of a mat3\n *\n * @param {ReadonlyMat3} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\nexport function frob(a) {\n return Math.sqrt(\n a[0] * a[0] +\n a[1] * a[1] +\n a[2] * a[2] +\n a[3] * a[3] +\n a[4] * a[4] +\n a[5] * a[5] +\n a[6] * a[6] +\n a[7] * a[7] +\n a[8] * a[8]\n );\n}\n\n/**\n * Adds two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n return out;\n}\n\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n return out;\n}\n\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat3} out\n */\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n return out;\n}\n\n/**\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat3} out the receiving vector\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat3} out\n */\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n return out;\n}\n\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n return (\n a[0] === b[0] &&\n a[1] === b[1] &&\n a[2] === b[2] &&\n a[3] === b[3] &&\n a[4] === b[4] &&\n a[5] === b[5] &&\n a[6] === b[6] &&\n a[7] === b[7] &&\n a[8] === b[8]\n );\n}\n\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function equals(a, b) {\n const a0 = a[0];\n const a1 = a[1];\n const a2 = a[2];\n const a3 = a[3];\n const a4 = a[4];\n const a5 = a[5];\n const a6 = a[6];\n const a7 = a[7];\n const a8 = a[8];\n const b0 = b[0];\n const b1 = b[1];\n const b2 = b[2];\n const b3 = b[3];\n const b4 = b[4];\n const b5 = b[5];\n const b6 = b[6];\n const b7 = b[7];\n const b8 = b[8];\n return (\n Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&\n Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&\n Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) &&\n Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) &&\n Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) &&\n Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) &&\n Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) &&\n Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) &&\n Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8))\n );\n}\n\n/**\n * Alias for {@link mat3.multiply}\n * @function\n */\nexport const mul = multiply;\n\n/**\n * Alias for {@link mat3.subtract}\n * @function\n */\nexport const sub = subtract;\n"],"file":"mat3.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/gl-matrix/mat3.ts"],"names":["glMatrix","create","out","ARRAY_TYPE","Float32Array","fromMat4","a","clone","copy","fromValues","m00","m01","m02","m10","m11","m12","m20","m21","m22","set","identity","transpose","a01","a02","a12","invert","a00","a10","a11","a20","a21","a22","b01","b11","b21","det","adjoint","determinant","multiply","b","b00","b02","b10","b12","b20","b22","translate","v","x","y","rotate","rad","s","Math","sin","c","cos","scale","fromTranslation","fromRotation","fromScaling","fromMat2d","fromQuat","q","z","w","x2","y2","z2","xx","yx","yy","zx","zy","zz","wx","wy","wz","normalFromMat4","a03","a13","a23","a30","a31","a32","a33","b03","b04","b05","b06","b07","b08","b09","projection","width","height","str","frob","sqrt","add","subtract","multiplyScalar","multiplyScalarAndAdd","exactEquals","equals","a0","a1","a2","a3","a4","a5","a6","a7","a8","b0","b1","b2","b3","b4","b5","b6","b7","b8","abs","EPSILON","max","mul","sub"],"mappings":"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","sourcesContent":["import * as glMatrix from './common.js';\n\n/**\n * 3x3 Matrix\n * @module mat3\n */\n\n/**\n * Creates a new identity mat3\n *\n * @returns {mat3} a new 3x3 matrix\n */\nexport function create() {\n const out = new glMatrix.ARRAY_TYPE(9);\n if (glMatrix.ARRAY_TYPE != Float32Array) {\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n }\n out[0] = 1;\n out[4] = 1;\n out[8] = 1;\n return out;\n}\n\n/**\n * Copies the upper-left 3x3 values into the given mat3.\n *\n * @param {mat3} out the receiving 3x3 matrix\n * @param {ReadonlyMat4} a the source 4x4 matrix\n * @returns {mat3} out\n */\nexport function fromMat4(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[4];\n out[4] = a[5];\n out[5] = a[6];\n out[6] = a[8];\n out[7] = a[9];\n out[8] = a[10];\n return out;\n}\n\n/**\n * Creates a new mat3 initialized with values from an existing matrix\n *\n * @param {ReadonlyMat3} a matrix to clone\n * @returns {mat3} a new 3x3 matrix\n */\nexport function clone(a) {\n const out = new glMatrix.ARRAY_TYPE(9);\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n\n/**\n * Copy the values from one mat3 to another\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function copy(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = a[2];\n out[3] = a[3];\n out[4] = a[4];\n out[5] = a[5];\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n\n/**\n * Create a new mat3 with the given values\n *\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} A new mat3\n */\nexport function fromValues(m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n const out = new glMatrix.ARRAY_TYPE(9);\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n\n/**\n * Set the components of a mat3 to the given values\n *\n * @param {mat3} out the receiving matrix\n * @param {Number} m00 Component in column 0, row 0 position (index 0)\n * @param {Number} m01 Component in column 0, row 1 position (index 1)\n * @param {Number} m02 Component in column 0, row 2 position (index 2)\n * @param {Number} m10 Component in column 1, row 0 position (index 3)\n * @param {Number} m11 Component in column 1, row 1 position (index 4)\n * @param {Number} m12 Component in column 1, row 2 position (index 5)\n * @param {Number} m20 Component in column 2, row 0 position (index 6)\n * @param {Number} m21 Component in column 2, row 1 position (index 7)\n * @param {Number} m22 Component in column 2, row 2 position (index 8)\n * @returns {mat3} out\n */\nexport function set(out, m00, m01, m02, m10, m11, m12, m20, m21, m22) {\n out[0] = m00;\n out[1] = m01;\n out[2] = m02;\n out[3] = m10;\n out[4] = m11;\n out[5] = m12;\n out[6] = m20;\n out[7] = m21;\n out[8] = m22;\n return out;\n}\n\n/**\n * Set a mat3 to the identity matrix\n *\n * @param {mat3} out the receiving matrix\n * @returns {mat3} out\n */\nexport function identity(out) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n\n/**\n * Transpose the values of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function transpose(out, a) {\n // If we are transposing ourselves we can skip a few steps but have to cache some values\n if (out === a) {\n const a01 = a[1];\n const a02 = a[2];\n const a12 = a[5];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a01;\n out[5] = a[7];\n out[6] = a02;\n out[7] = a12;\n } else {\n out[0] = a[0];\n out[1] = a[3];\n out[2] = a[6];\n out[3] = a[1];\n out[4] = a[4];\n out[5] = a[7];\n out[6] = a[2];\n out[7] = a[5];\n out[8] = a[8];\n }\n\n return out;\n}\n\n/**\n * Inverts a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function invert(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n const b01 = a22 * a11 - a12 * a21;\n const b11 = -a22 * a10 + a12 * a20;\n const b21 = a21 * a10 - a11 * a20;\n\n // Calculate the determinant\n let det = a00 * b01 + a01 * b11 + a02 * b21;\n\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n\n out[0] = b01 * det;\n out[1] = (-a22 * a01 + a02 * a21) * det;\n out[2] = (a12 * a01 - a02 * a11) * det;\n out[3] = b11 * det;\n out[4] = (a22 * a00 - a02 * a20) * det;\n out[5] = (-a12 * a00 + a02 * a10) * det;\n out[6] = b21 * det;\n out[7] = (-a21 * a00 + a01 * a20) * det;\n out[8] = (a11 * a00 - a01 * a10) * det;\n return out;\n}\n\n/**\n * Calculates the adjugate of a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the source matrix\n * @returns {mat3} out\n */\nexport function adjoint(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n out[0] = a11 * a22 - a12 * a21;\n out[1] = a02 * a21 - a01 * a22;\n out[2] = a01 * a12 - a02 * a11;\n out[3] = a12 * a20 - a10 * a22;\n out[4] = a00 * a22 - a02 * a20;\n out[5] = a02 * a10 - a00 * a12;\n out[6] = a10 * a21 - a11 * a20;\n out[7] = a01 * a20 - a00 * a21;\n out[8] = a00 * a11 - a01 * a10;\n return out;\n}\n\n/**\n * Calculates the determinant of a mat3\n *\n * @param {ReadonlyMat3} a the source matrix\n * @returns {Number} determinant of a\n */\nexport function determinant(a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n return (\n a00 * (a22 * a11 - a12 * a21) + a01 * (-a22 * a10 + a12 * a20) + a02 * (a21 * a10 - a11 * a20)\n );\n}\n\n/**\n * Multiplies two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\nexport function multiply(out, a, b) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n\n const b00 = b[0];\n const b01 = b[1];\n const b02 = b[2];\n const b10 = b[3];\n const b11 = b[4];\n const b12 = b[5];\n const b20 = b[6];\n const b21 = b[7];\n const b22 = b[8];\n\n out[0] = b00 * a00 + b01 * a10 + b02 * a20;\n out[1] = b00 * a01 + b01 * a11 + b02 * a21;\n out[2] = b00 * a02 + b01 * a12 + b02 * a22;\n\n out[3] = b10 * a00 + b11 * a10 + b12 * a20;\n out[4] = b10 * a01 + b11 * a11 + b12 * a21;\n out[5] = b10 * a02 + b11 * a12 + b12 * a22;\n\n out[6] = b20 * a00 + b21 * a10 + b22 * a20;\n out[7] = b20 * a01 + b21 * a11 + b22 * a21;\n out[8] = b20 * a02 + b21 * a12 + b22 * a22;\n return out;\n}\n\n/**\n * Translate a mat3 by the given vector\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to translate\n * @param {ReadonlyVec2} v vector to translate by\n * @returns {mat3} out\n */\nexport function translate(out, a, v) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n const x = v[0];\n const y = v[1];\n\n out[0] = a00;\n out[1] = a01;\n out[2] = a02;\n\n out[3] = a10;\n out[4] = a11;\n out[5] = a12;\n\n out[6] = x * a00 + y * a10 + a20;\n out[7] = x * a01 + y * a11 + a21;\n out[8] = x * a02 + y * a12 + a22;\n return out;\n}\n\n/**\n * Rotates a mat3 by the given angle\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to rotate\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\nexport function rotate(out, a, rad) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a10 = a[3];\n const a11 = a[4];\n const a12 = a[5];\n const a20 = a[6];\n const a21 = a[7];\n const a22 = a[8];\n const s = Math.sin(rad);\n const c = Math.cos(rad);\n\n out[0] = c * a00 + s * a10;\n out[1] = c * a01 + s * a11;\n out[2] = c * a02 + s * a12;\n\n out[3] = c * a10 - s * a00;\n out[4] = c * a11 - s * a01;\n out[5] = c * a12 - s * a02;\n\n out[6] = a20;\n out[7] = a21;\n out[8] = a22;\n return out;\n}\n\n/**\n * Scales the mat3 by the dimensions in the given vec2\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {ReadonlyVec2} v the vec2 to scale the matrix by\n * @returns {mat3} out\n **/\nexport function scale(out, a, v) {\n const x = v[0];\n const y = v[1];\n\n out[0] = x * a[0];\n out[1] = x * a[1];\n out[2] = x * a[2];\n\n out[3] = y * a[3];\n out[4] = y * a[4];\n out[5] = y * a[5];\n\n out[6] = a[6];\n out[7] = a[7];\n out[8] = a[8];\n return out;\n}\n\n/**\n * Creates a matrix from a vector translation\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.translate(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Translation vector\n * @returns {mat3} out\n */\nexport function fromTranslation(out, v) {\n out[0] = 1;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = 1;\n out[5] = 0;\n out[6] = v[0];\n out[7] = v[1];\n out[8] = 1;\n return out;\n}\n\n/**\n * Creates a matrix from a given angle\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.rotate(dest, dest, rad);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {Number} rad the angle to rotate the matrix by\n * @returns {mat3} out\n */\nexport function fromRotation(out, rad) {\n const s = Math.sin(rad);\n const c = Math.cos(rad);\n\n out[0] = c;\n out[1] = s;\n out[2] = 0;\n\n out[3] = -s;\n out[4] = c;\n out[5] = 0;\n\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n\n/**\n * Creates a matrix from a vector scaling\n * This is equivalent to (but much faster than):\n *\n * mat3.identity(dest);\n * mat3.scale(dest, dest, vec);\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyVec2} v Scaling vector\n * @returns {mat3} out\n */\nexport function fromScaling(out, v) {\n out[0] = v[0];\n out[1] = 0;\n out[2] = 0;\n\n out[3] = 0;\n out[4] = v[1];\n out[5] = 0;\n\n out[6] = 0;\n out[7] = 0;\n out[8] = 1;\n return out;\n}\n\n/**\n * Copies the values from a mat2d into a mat3\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat2d} a the matrix to copy\n * @returns {mat3} out\n **/\nexport function fromMat2d(out, a) {\n out[0] = a[0];\n out[1] = a[1];\n out[2] = 0;\n\n out[3] = a[2];\n out[4] = a[3];\n out[5] = 0;\n\n out[6] = a[4];\n out[7] = a[5];\n out[8] = 1;\n return out;\n}\n\n/**\n * Calculates a 3x3 matrix from the given quaternion\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyQuat} q Quaternion to create matrix from\n *\n * @returns {mat3} out\n */\nexport function fromQuat(out, q) {\n const x = q[0];\n const y = q[1];\n const z = q[2];\n const w = q[3];\n const x2 = x + x;\n const y2 = y + y;\n const z2 = z + z;\n\n const xx = x * x2;\n const yx = y * x2;\n const yy = y * y2;\n const zx = z * x2;\n const zy = z * y2;\n const zz = z * z2;\n const wx = w * x2;\n const wy = w * y2;\n const wz = w * z2;\n\n out[0] = 1 - yy - zz;\n out[3] = yx - wz;\n out[6] = zx + wy;\n\n out[1] = yx + wz;\n out[4] = 1 - xx - zz;\n out[7] = zy - wx;\n\n out[2] = zx - wy;\n out[5] = zy + wx;\n out[8] = 1 - xx - yy;\n\n return out;\n}\n\n/**\n * Calculates a 3x3 normal matrix (transpose inverse) from the 4x4 matrix\n *\n * @param {mat3} out mat3 receiving operation result\n * @param {ReadonlyMat4} a Mat4 to derive the normal matrix from\n *\n * @returns {mat3} out\n */\nexport function normalFromMat4(out, a) {\n const a00 = a[0];\n const a01 = a[1];\n const a02 = a[2];\n const a03 = a[3];\n const a10 = a[4];\n const a11 = a[5];\n const a12 = a[6];\n const a13 = a[7];\n const a20 = a[8];\n const a21 = a[9];\n const a22 = a[10];\n const a23 = a[11];\n const a30 = a[12];\n const a31 = a[13];\n const a32 = a[14];\n const a33 = a[15];\n\n const b00 = a00 * a11 - a01 * a10;\n const b01 = a00 * a12 - a02 * a10;\n const b02 = a00 * a13 - a03 * a10;\n const b03 = a01 * a12 - a02 * a11;\n const b04 = a01 * a13 - a03 * a11;\n const b05 = a02 * a13 - a03 * a12;\n const b06 = a20 * a31 - a21 * a30;\n const b07 = a20 * a32 - a22 * a30;\n const b08 = a20 * a33 - a23 * a30;\n const b09 = a21 * a32 - a22 * a31;\n const b10 = a21 * a33 - a23 * a31;\n const b11 = a22 * a33 - a23 * a32;\n\n // Calculate the determinant\n let det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;\n\n if (!det) {\n return null;\n }\n det = 1.0 / det;\n\n out[0] = (a11 * b11 - a12 * b10 + a13 * b09) * det;\n out[1] = (a12 * b08 - a10 * b11 - a13 * b07) * det;\n out[2] = (a10 * b10 - a11 * b08 + a13 * b06) * det;\n\n out[3] = (a02 * b10 - a01 * b11 - a03 * b09) * det;\n out[4] = (a00 * b11 - a02 * b08 + a03 * b07) * det;\n out[5] = (a01 * b08 - a00 * b10 - a03 * b06) * det;\n\n out[6] = (a31 * b05 - a32 * b04 + a33 * b03) * det;\n out[7] = (a32 * b02 - a30 * b05 - a33 * b01) * det;\n out[8] = (a30 * b04 - a31 * b02 + a33 * b00) * det;\n\n return out;\n}\n\n/**\n * Generates a 2D projection matrix with the given bounds\n *\n * @param {mat3} out mat3 frustum matrix will be written into\n * @param {number} width Width of your gl context\n * @param {number} height Height of gl context\n * @returns {mat3} out\n */\nexport function projection(out, width, height) {\n out[0] = 2 / width;\n out[1] = 0;\n out[2] = 0;\n out[3] = 0;\n out[4] = -2 / height;\n out[5] = 0;\n out[6] = -1;\n out[7] = 1;\n out[8] = 1;\n return out;\n}\n\n/**\n * Returns a string representation of a mat3\n *\n * @param {ReadonlyMat3} a matrix to represent as a string\n * @returns {String} string representation of the matrix\n */\nexport function str(a) {\n return `mat3(${a[0]}, ${a[1]}, ${a[2]}, ${a[3]}, ${a[4]}, ${a[5]}, ${a[6]}, ${a[7]}, ${a[8]})`;\n}\n\n/**\n * Returns Frobenius norm of a mat3\n *\n * @param {ReadonlyMat3} a the matrix to calculate Frobenius norm of\n * @returns {Number} Frobenius norm\n */\nexport function frob(a) {\n return Math.sqrt(\n a[0] * a[0] +\n a[1] * a[1] +\n a[2] * a[2] +\n a[3] * a[3] +\n a[4] * a[4] +\n a[5] * a[5] +\n a[6] * a[6] +\n a[7] * a[7] +\n a[8] * a[8]\n );\n}\n\n/**\n * Adds two mat3's\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\nexport function add(out, a, b) {\n out[0] = a[0] + b[0];\n out[1] = a[1] + b[1];\n out[2] = a[2] + b[2];\n out[3] = a[3] + b[3];\n out[4] = a[4] + b[4];\n out[5] = a[5] + b[5];\n out[6] = a[6] + b[6];\n out[7] = a[7] + b[7];\n out[8] = a[8] + b[8];\n return out;\n}\n\n/**\n * Subtracts matrix b from matrix a\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @returns {mat3} out\n */\nexport function subtract(out, a, b) {\n out[0] = a[0] - b[0];\n out[1] = a[1] - b[1];\n out[2] = a[2] - b[2];\n out[3] = a[3] - b[3];\n out[4] = a[4] - b[4];\n out[5] = a[5] - b[5];\n out[6] = a[6] - b[6];\n out[7] = a[7] - b[7];\n out[8] = a[8] - b[8];\n return out;\n}\n\n/**\n * Multiply each element of the matrix by a scalar.\n *\n * @param {mat3} out the receiving matrix\n * @param {ReadonlyMat3} a the matrix to scale\n * @param {Number} b amount to scale the matrix's elements by\n * @returns {mat3} out\n */\nexport function multiplyScalar(out, a, b) {\n out[0] = a[0] * b;\n out[1] = a[1] * b;\n out[2] = a[2] * b;\n out[3] = a[3] * b;\n out[4] = a[4] * b;\n out[5] = a[5] * b;\n out[6] = a[6] * b;\n out[7] = a[7] * b;\n out[8] = a[8] * b;\n return out;\n}\n\n/**\n * Adds two mat3's after multiplying each element of the second operand by a scalar value.\n *\n * @param {mat3} out the receiving vector\n * @param {ReadonlyMat3} a the first operand\n * @param {ReadonlyMat3} b the second operand\n * @param {Number} scale the amount to scale b's elements by before adding\n * @returns {mat3} out\n */\nexport function multiplyScalarAndAdd(out, a, b, scale) {\n out[0] = a[0] + b[0] * scale;\n out[1] = a[1] + b[1] * scale;\n out[2] = a[2] + b[2] * scale;\n out[3] = a[3] + b[3] * scale;\n out[4] = a[4] + b[4] * scale;\n out[5] = a[5] + b[5] * scale;\n out[6] = a[6] + b[6] * scale;\n out[7] = a[7] + b[7] * scale;\n out[8] = a[8] + b[8] * scale;\n return out;\n}\n\n/**\n * Returns whether or not the matrices have exactly the same elements in the same position (when compared with ===)\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function exactEquals(a, b) {\n return (\n a[0] === b[0] &&\n a[1] === b[1] &&\n a[2] === b[2] &&\n a[3] === b[3] &&\n a[4] === b[4] &&\n a[5] === b[5] &&\n a[6] === b[6] &&\n a[7] === b[7] &&\n a[8] === b[8]\n );\n}\n\n/**\n * Returns whether or not the matrices have approximately the same elements in the same position.\n *\n * @param {ReadonlyMat3} a The first matrix.\n * @param {ReadonlyMat3} b The second matrix.\n * @returns {Boolean} True if the matrices are equal, false otherwise.\n */\nexport function equals(a, b) {\n const a0 = a[0];\n const a1 = a[1];\n const a2 = a[2];\n const a3 = a[3];\n const a4 = a[4];\n const a5 = a[5];\n const a6 = a[6];\n const a7 = a[7];\n const a8 = a[8];\n const b0 = b[0];\n const b1 = b[1];\n const b2 = b[2];\n const b3 = b[3];\n const b4 = b[4];\n const b5 = b[5];\n const b6 = b[6];\n const b7 = b[7];\n const b8 = b[8];\n return (\n Math.abs(a0 - b0) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a0), Math.abs(b0)) &&\n Math.abs(a1 - b1) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a1), Math.abs(b1)) &&\n Math.abs(a2 - b2) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a2), Math.abs(b2)) &&\n Math.abs(a3 - b3) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a3), Math.abs(b3)) &&\n Math.abs(a4 - b4) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a4), Math.abs(b4)) &&\n Math.abs(a5 - b5) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a5), Math.abs(b5)) &&\n Math.abs(a6 - b6) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a6), Math.abs(b6)) &&\n Math.abs(a7 - b7) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a7), Math.abs(b7)) &&\n Math.abs(a8 - b8) <= glMatrix.EPSILON * Math.max(1.0, Math.abs(a8), Math.abs(b8))\n );\n}\n\n/**\n * Alias for {@link mat3.multiply}\n * @function\n */\nexport const mul = multiply;\n\n/**\n * Alias for {@link mat3.subtract}\n * @function\n */\nexport const sub = subtract;\n"],"file":"mat3.js"}
|