@react-three/drei 9.73.4 → 9.74.1

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/core/Facemesh.js CHANGED
@@ -5,23 +5,63 @@ import { Line } from './Line.js';
5
5
 
6
6
  /* eslint react-hooks/exhaustive-deps: 1 */
7
7
  const defaultLookAt = new THREE.Vector3(0, 0, -1);
8
+
9
+ const normal = function () {
10
+ const a = new THREE.Vector3();
11
+ const b = new THREE.Vector3();
12
+ const c = new THREE.Vector3();
13
+ const ab = new THREE.Vector3();
14
+ const ac = new THREE.Vector3();
15
+ return function (v1, v2, v3, v) {
16
+ a.copy(v1);
17
+ b.copy(v2);
18
+ c.copy(v3);
19
+ ab.copy(b).sub(a);
20
+ ac.copy(c).sub(a);
21
+ return v.crossVectors(ac, ab).normalize();
22
+ };
23
+ }();
24
+
25
+ function mean(v1, v2) {
26
+ return v1.clone().add(v2).multiplyScalar(0.5);
27
+ }
28
+
8
29
  const Facemesh = /*#__PURE__*/React.forwardRef(({
9
- face = FacemeshDatas.SAMPLE_FACE,
30
+ points = FacemeshDatas.SAMPLE_FACELANDMARKER_RESULT.faceLandmarks[0],
31
+ face,
32
+ facialTransformationMatrix,
33
+ faceBlendshapes,
34
+ offset,
35
+ offsetScalar = 80,
10
36
  width,
11
37
  height,
12
38
  depth = 1,
13
- verticalTri = [159, 386, 200],
39
+ verticalTri = [159, 386, 152],
14
40
  origin,
41
+ eyes = true,
42
+ eyesAsOrigin = false,
15
43
  debug = false,
16
44
  children,
17
45
  ...props
18
46
  }, fref) => {
19
- var _meshRef$current3, _meshRef$current3$geo, _meshRef$current4;
47
+ var _meshRef$current3;
48
+
49
+ if (face) {
50
+ points = face.keypoints;
51
+ console.warn('Facemesh `face` prop is deprecated: use `points` instead');
52
+ }
20
53
 
54
+ const offsetRef = React.useRef(null);
55
+ const scaleRef = React.useRef(null);
56
+ const originRef = React.useRef(null);
21
57
  const outerRef = React.useRef(null);
22
58
  const meshRef = React.useRef(null);
59
+ const eyeRightRef = React.useRef(null);
60
+ const eyeLeftRef = React.useRef(null);
23
61
  const [sightDir] = React.useState(() => new THREE.Vector3());
62
+ const [transform] = React.useState(() => new THREE.Object3D());
24
63
  const [sightDirQuaternion] = React.useState(() => new THREE.Quaternion());
64
+ const [_origin] = React.useState(() => new THREE.Vector3());
25
65
  const {
26
66
  invalidate
27
67
  } = useThree();
@@ -30,79 +70,279 @@ const Facemesh = /*#__PURE__*/React.forwardRef(({
30
70
 
31
71
  (_meshRef$current = meshRef.current) == null ? void 0 : _meshRef$current.geometry.setIndex(FacemeshDatas.TRIANGULATION);
32
72
  }, []);
33
- const [a] = React.useState(() => new THREE.Vector3());
34
- const [b] = React.useState(() => new THREE.Vector3());
35
- const [c] = React.useState(() => new THREE.Vector3());
36
- const [ab] = React.useState(() => new THREE.Vector3());
37
- const [ac] = React.useState(() => new THREE.Vector3());
38
73
  const [bboxSize] = React.useState(() => new THREE.Vector3());
39
74
  React.useEffect(() => {
40
- var _meshRef$current2, _outerRef$current, _geometry$boundingBox;
75
+ var _meshRef$current2, _outerRef$current;
41
76
 
42
- const geometry = (_meshRef$current2 = meshRef.current) == null ? void 0 : _meshRef$current2.geometry;
43
- if (!geometry) return;
44
- geometry.setFromPoints(face.keypoints); //
45
- // A. compute sightDir vector (normal to verticalTri)
77
+ const faceGeometry = (_meshRef$current2 = meshRef.current) == null ? void 0 : _meshRef$current2.geometry;
78
+ if (!faceGeometry) return;
79
+ faceGeometry.setFromPoints(points);
80
+ faceGeometry.setDrawRange(0, FacemeshDatas.TRIANGULATION.length); //
81
+ // A. compute sightDir vector
82
+ //
83
+ // - either from `facialTransformationMatrix` if available
84
+ // - or from `verticalTri`
46
85
  //
47
86
 
48
- a.copy(face.keypoints[verticalTri[0]]);
49
- b.copy(face.keypoints[verticalTri[1]]);
50
- c.copy(face.keypoints[verticalTri[2]]);
51
- ab.copy(b).sub(a);
52
- ac.copy(c).sub(a);
53
- sightDir.crossVectors(ac, ab).normalize();
54
- sightDirQuaternion.setFromUnitVectors(defaultLookAt, sightDir);
87
+ if (facialTransformationMatrix) {
88
+ // from facialTransformationMatrix
89
+ transform.matrix.fromArray(facialTransformationMatrix.data);
90
+ transform.matrix.decompose(transform.position, transform.quaternion, transform.scale); // Rotation: y and z axes are inverted
91
+
92
+ transform.rotation.y *= -1;
93
+ transform.rotation.z *= -1;
94
+ sightDirQuaternion.setFromEuler(transform.rotation); // Offset: y and z axes are inverted
95
+
96
+ if (offset) {
97
+ var _offsetRef$current;
98
+
99
+ transform.position.y *= -1;
100
+ transform.position.z *= -1;
101
+ (_offsetRef$current = offsetRef.current) == null ? void 0 : _offsetRef$current.position.copy(transform.position.divideScalar(offsetScalar));
102
+ } else {
103
+ var _offsetRef$current2;
104
+
105
+ (_offsetRef$current2 = offsetRef.current) == null ? void 0 : _offsetRef$current2.position.set(0, 0, 0); // reset
106
+ }
107
+ } else {
108
+ // normal to verticalTri
109
+ normal(points[verticalTri[0]], points[verticalTri[1]], points[verticalTri[2]], sightDir);
110
+ sightDirQuaternion.setFromUnitVectors(defaultLookAt, sightDir);
111
+ }
112
+
55
113
  const sightDirQuaternionInverse = sightDirQuaternion.clone().invert(); //
56
114
  // B. geometry (straightened)
57
115
  //
58
116
  // 1. center (before rotate back)
59
117
 
60
- geometry.computeBoundingBox();
118
+ faceGeometry.computeBoundingBox();
61
119
  if (debug) invalidate(); // invalidate to force re-render for box3Helper (after .computeBoundingBox())
62
120
 
63
- geometry.center(); // 2. rotate back + rotate outerRef (once 1.)
121
+ faceGeometry.center(); // 2. rotate back + rotate outerRef (once 1.)
122
+
123
+ faceGeometry.applyQuaternion(sightDirQuaternionInverse);
124
+ (_outerRef$current = outerRef.current) == null ? void 0 : _outerRef$current.setRotationFromQuaternion(sightDirQuaternion); // 3. 👀 eyes
64
125
 
65
- geometry.applyQuaternion(sightDirQuaternionInverse);
66
- (_outerRef$current = outerRef.current) == null ? void 0 : _outerRef$current.setRotationFromQuaternion(sightDirQuaternion); // 3. origin: substract the geometry to that landmark coords (once 1.)
126
+ if (eyes) {
127
+ if (!faceBlendshapes) {
128
+ console.warn('Facemesh `eyes` option only works if `faceBlendshapes` is provided: skipping.');
129
+ } else {
130
+ if (eyeRightRef.current && eyeLeftRef.current && originRef.current) {
131
+ if (eyesAsOrigin) {
132
+ // compute the middle of the 2 eyes as the `origin`
133
+ const eyeRightSphere = eyeRightRef.current._computeSphere(faceGeometry);
67
134
 
68
- if (origin) {
69
- const position = geometry.getAttribute('position');
70
- geometry.translate(-position.getX(origin), -position.getY(origin), -position.getZ(origin));
135
+ const eyeLeftSphere = eyeLeftRef.current._computeSphere(faceGeometry);
136
+
137
+ const eyesCenter = mean(eyeRightSphere.center, eyeLeftSphere.center);
138
+ origin = eyesCenter.negate(); // eslint-disable-line react-hooks/exhaustive-deps
139
+
140
+ eyeRightRef.current._update(faceGeometry, faceBlendshapes, eyeRightSphere);
141
+
142
+ eyeLeftRef.current._update(faceGeometry, faceBlendshapes, eyeLeftSphere);
143
+ } else {
144
+ eyeRightRef.current._update(faceGeometry, faceBlendshapes);
145
+
146
+ eyeLeftRef.current._update(faceGeometry, faceBlendshapes);
147
+ }
148
+ }
149
+ }
150
+ } // 3. origin
151
+
152
+
153
+ if (originRef.current) {
154
+ if (origin !== undefined) {
155
+ if (typeof origin === 'number') {
156
+ const position = faceGeometry.getAttribute('position');
157
+
158
+ _origin.set(-position.getX(origin), -position.getY(origin), -position.getZ(origin));
159
+ } else if (origin.isVector3) {
160
+ _origin.copy(origin);
161
+ }
162
+ } else {
163
+ _origin.setScalar(0);
164
+ }
165
+
166
+ originRef.current.position.copy(_origin);
71
167
  } // 4. re-scale
72
168
 
73
169
 
74
- (_geometry$boundingBox = geometry.boundingBox) == null ? void 0 : _geometry$boundingBox.getSize(bboxSize);
75
- let scale = 1;
76
- if (width) scale = width / bboxSize.x; // fit in width
170
+ if (scaleRef.current) {
171
+ let scale = 1;
77
172
 
78
- if (height) scale = height / bboxSize.y; // fit in height
173
+ if (width || height || depth) {
174
+ faceGeometry.boundingBox.getSize(bboxSize);
175
+ if (width) scale = width / bboxSize.x; // fit in width
79
176
 
80
- if (depth) scale = depth / bboxSize.z; // fit in depth
177
+ if (height) scale = height / bboxSize.y; // fit in height
81
178
 
82
- if (scale !== 1) geometry.scale(scale, scale, scale);
83
- geometry.computeVertexNormals();
84
- geometry.attributes.position.needsUpdate = true;
85
- }, [face, width, height, depth, verticalTri, origin, debug, invalidate, sightDir, sightDirQuaternion, a, b, c, ab, ac, bboxSize]); //
179
+ if (depth) scale = depth / bboxSize.z; // fit in depth
180
+ }
181
+
182
+ scaleRef.current.scale.setScalar(scale !== 1 ? scale : 1);
183
+ }
184
+
185
+ faceGeometry.computeVertexNormals();
186
+ faceGeometry.attributes.position.needsUpdate = true;
187
+ }, [points, facialTransformationMatrix, faceBlendshapes, transform, offset, offsetScalar, width, height, depth, verticalTri, origin, eyes, debug, invalidate, sightDir, sightDirQuaternion, bboxSize, _origin]); //
86
188
  // API
87
189
  //
88
190
 
89
191
  const api = React.useMemo(() => ({
192
+ outerRef,
90
193
  meshRef,
91
- outerRef
194
+ eyeRightRef,
195
+ eyeLeftRef
92
196
  }), []);
93
197
  React.useImperativeHandle(fref, () => api, [api]);
198
+ const [meshBboxSize] = React.useState(() => new THREE.Vector3());
199
+ const bbox = (_meshRef$current3 = meshRef.current) == null ? void 0 : _meshRef$current3.geometry.boundingBox;
200
+ const one = (bbox == null ? void 0 : bbox.getSize(meshBboxSize).z) || 1;
94
201
  return /*#__PURE__*/React.createElement("group", props, /*#__PURE__*/React.createElement("group", {
202
+ ref: offsetRef
203
+ }, /*#__PURE__*/React.createElement("group", {
95
204
  ref: outerRef
96
- }, /*#__PURE__*/React.createElement("mesh", {
97
- ref: meshRef
98
- }, children, debug ? /*#__PURE__*/React.createElement(React.Fragment, null, ((_meshRef$current3 = meshRef.current) == null ? void 0 : (_meshRef$current3$geo = _meshRef$current3.geometry) == null ? void 0 : _meshRef$current3$geo.boundingBox) && /*#__PURE__*/React.createElement("box3Helper", {
99
- args: [(_meshRef$current4 = meshRef.current) == null ? void 0 : _meshRef$current4.geometry.boundingBox]
205
+ }, /*#__PURE__*/React.createElement("group", {
206
+ ref: scaleRef
207
+ }, debug ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("axesHelper", {
208
+ args: [one]
100
209
  }), /*#__PURE__*/React.createElement(Line, {
101
- points: [[0, 0, 0], defaultLookAt],
210
+ points: [[0, 0, 0], [0, 0, -one]],
102
211
  color: 0x00ffff
103
- })) : null)));
104
- });
212
+ })) : null, /*#__PURE__*/React.createElement("group", {
213
+ ref: originRef
214
+ }, eyes && faceBlendshapes && /*#__PURE__*/React.createElement("group", {
215
+ name: "eyes"
216
+ }, /*#__PURE__*/React.createElement(FacemeshEye, {
217
+ side: "left",
218
+ ref: eyeRightRef,
219
+ debug: debug
220
+ }), /*#__PURE__*/React.createElement(FacemeshEye, {
221
+ side: "right",
222
+ ref: eyeLeftRef,
223
+ debug: debug
224
+ })), /*#__PURE__*/React.createElement("mesh", {
225
+ ref: meshRef,
226
+ name: "face"
227
+ }, children, debug ? /*#__PURE__*/React.createElement(React.Fragment, null, bbox && /*#__PURE__*/React.createElement("box3Helper", {
228
+ args: [bbox]
229
+ })) : null))))));
230
+ }); //
231
+ // 👁️ FacemeshEye
232
+ //
233
+
234
+ const FacemeshEyeDefaults = {
235
+ contourLandmarks: {
236
+ right: [33, 133, 159, 145, 153],
237
+ left: [263, 362, 386, 374, 380]
238
+ },
239
+ blendshapes: {
240
+ right: [14, 16, 18, 12],
241
+ // lookIn,lookOut, lookUp,lookDown
242
+ left: [13, 15, 17, 11] // lookIn,lookOut, lookUp,lookDown
243
+
244
+ },
245
+ color: {
246
+ right: 'red',
247
+ left: '#00ff00'
248
+ },
249
+ fov: {
250
+ horizontal: 100,
251
+ vertical: 90
252
+ }
253
+ };
254
+ const FacemeshEye = /*#__PURE__*/React.forwardRef(({
255
+ side,
256
+ debug = true
257
+ }, fref) => {
258
+ const eyeMeshRef = React.useRef(null);
259
+ const irisDirRef = React.useRef(null); //
260
+ // _computeSphere()
261
+ //
262
+ // Compute eye's sphere .position and .radius
263
+ //
264
+
265
+ const [sphere] = React.useState(() => new THREE.Sphere());
266
+
267
+ const _computeSphere = React.useCallback(faceGeometry => {
268
+ const position = faceGeometry.getAttribute('position'); // get some eye contour landmarks points (from geometry)
269
+
270
+ const eyeContourLandmarks = FacemeshEyeDefaults.contourLandmarks[side];
271
+ const eyeContourPoints = eyeContourLandmarks.map(i => new THREE.Vector3(position.getX(i), position.getY(i), position.getZ(i))); // prettier-ignore
272
+ // compute center (centroid from eyeContourPoints)
273
+
274
+ sphere.center.set(0, 0, 0);
275
+ eyeContourPoints.forEach(v => sphere.center.add(v));
276
+ sphere.center.divideScalar(eyeContourPoints.length); // radius (eye half-width)
277
+
278
+ sphere.radius = eyeContourPoints[0].sub(eyeContourPoints[1]).length() / 2;
279
+ return sphere;
280
+ }, [sphere, side]); //
281
+ // _update()
282
+ //
283
+ // Update:
284
+ // - A. eye's mesh (according to sphere)
285
+ // - B. iris direction (according to "look*" blendshapes)
286
+ //
287
+
288
+
289
+ const [rotation] = React.useState(() => new THREE.Euler());
290
+
291
+ const _update = React.useCallback((faceGeometry, faceBlendshapes, sphere) => {
292
+ // A.
293
+ if (eyeMeshRef.current) {
294
+ var _sphere;
295
+
296
+ (_sphere = sphere) !== null && _sphere !== void 0 ? _sphere : sphere = _computeSphere(faceGeometry); // compute sphere dims (if not passed)
297
+
298
+ eyeMeshRef.current.position.copy(sphere.center);
299
+ eyeMeshRef.current.scale.setScalar(sphere.radius);
300
+ } // B.
301
+
302
+
303
+ if (faceBlendshapes && irisDirRef.current) {
304
+ const blendshapes = FacemeshEyeDefaults.blendshapes[side];
305
+ const lookIn = faceBlendshapes.categories[blendshapes[0]].score;
306
+ const lookOut = faceBlendshapes.categories[blendshapes[1]].score;
307
+ const lookUp = faceBlendshapes.categories[blendshapes[2]].score;
308
+ const lookDown = faceBlendshapes.categories[blendshapes[3]].score;
309
+ const hfov = FacemeshEyeDefaults.fov.horizontal * THREE.MathUtils.DEG2RAD;
310
+ const vfov = FacemeshEyeDefaults.fov.vertical * THREE.MathUtils.DEG2RAD;
311
+ const rx = hfov * 0.5 * (lookDown - lookUp);
312
+ const ry = vfov * 0.5 * (lookIn - lookOut) * (side === 'left' ? 1 : -1);
313
+ rotation.set(rx, ry, 0);
314
+ irisDirRef.current.setRotationFromEuler(rotation);
315
+ }
316
+ }, [_computeSphere, side, rotation]); //
317
+ // API
318
+ //
319
+
320
+
321
+ const api = React.useMemo(() => ({
322
+ eyeMeshRef: eyeMeshRef,
323
+ irisDirRef: irisDirRef,
324
+ _computeSphere,
325
+ _update
326
+ }), [_computeSphere, _update]);
327
+ React.useImperativeHandle(fref, () => api, [api]);
328
+ const color = FacemeshEyeDefaults.color[side];
329
+ return /*#__PURE__*/React.createElement("group", null, /*#__PURE__*/React.createElement("group", {
330
+ ref: eyeMeshRef
331
+ }, debug && /*#__PURE__*/React.createElement("axesHelper", null), /*#__PURE__*/React.createElement("group", {
332
+ ref: irisDirRef
333
+ }, /*#__PURE__*/React.createElement(React.Fragment, null, debug && /*#__PURE__*/React.createElement(Line, {
334
+ points: [[0, 0, 0], [0, 0, -2]],
335
+ lineWidth: 1,
336
+ color: color
337
+ })))));
338
+ }); //
339
+ // Sample datas
340
+ //
341
+
105
342
  const FacemeshDatas = {
343
+ // Extracted from: https://github.com/tensorflow/tfjs-models/blob/a8f500809f5afe38feea27870c77e7ba03a6ece4/face-landmarks-detection/demos/shared/triangulation.js
344
+ // prettier-ignore
345
+ TRIANGULATION: [127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9, 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56, 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91, 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117, 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211, 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173, 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28, 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49, 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89, 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122, 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110, 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246, 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162, 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13, 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214, 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61, 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59, 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56, 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213, 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228, 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347, 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313, 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320, 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258, 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256, 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467, 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436, 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424, 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432, 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330, 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419, 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445, 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355, 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368, 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461, 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391, 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314, 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309, 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254, 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259, 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453, 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133, 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60, 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155, 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17, 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83, 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196, 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47, 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95, 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43, 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203, 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96, 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22, 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38, 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111, 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145, 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70, 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32, 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212, 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2, 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221, 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245, 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267, 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337, 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260, 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406, 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8, 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283, 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325, 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329, 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345, 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299, 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279, 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310, 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337, 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285, 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387, 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330, 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315, 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264, 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339, 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257, 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357, 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255],
106
346
  // My face as default (captured with a 640x480 webcam)
107
347
  // prettier-ignore
108
348
  SAMPLE_FACE: {
@@ -2113,9 +2353,2193 @@ const FacemeshDatas = {
2113
2353
  "height": 191.0607147216797
2114
2354
  }
2115
2355
  },
2116
- // Extracted from: https://github.com/tensorflow/tfjs-models/blob/a8f500809f5afe38feea27870c77e7ba03a6ece4/face-landmarks-detection/demos/shared/triangulation.js
2356
+ // Tasks-vision: https://developers.google.com/mediapipe/solutions/vision/face_landmarker/web_js
2117
2357
  // prettier-ignore
2118
- TRIANGULATION: [127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9, 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56, 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91, 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117, 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211, 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173, 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28, 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49, 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89, 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122, 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110, 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246, 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162, 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13, 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214, 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61, 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59, 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56, 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213, 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228, 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347, 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313, 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320, 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258, 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256, 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467, 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436, 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424, 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432, 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330, 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419, 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445, 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355, 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368, 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461, 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391, 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314, 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309, 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254, 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259, 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453, 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133, 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60, 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155, 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17, 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83, 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196, 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47, 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95, 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43, 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203, 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96, 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22, 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38, 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111, 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145, 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70, 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32, 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212, 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2, 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221, 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245, 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267, 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337, 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260, 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406, 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8, 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283, 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325, 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329, 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345, 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299, 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279, 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310, 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337, 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285, 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387, 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330, 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315, 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264, 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339, 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257, 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357, 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255]
2358
+ SAMPLE_FACELANDMARKER_RESULT: {
2359
+ "faceLandmarks": [[{
2360
+ "x": 0.5760777592658997,
2361
+ "y": 0.8639070391654968,
2362
+ "z": -0.030997956171631813
2363
+ }, {
2364
+ "x": 0.572094738483429,
2365
+ "y": 0.7886289358139038,
2366
+ "z": -0.07189624011516571
2367
+ }, {
2368
+ "x": 0.5723551511764526,
2369
+ "y": 0.8075382709503174,
2370
+ "z": -0.03578168898820877
2371
+ }, {
2372
+ "x": 0.5548420548439026,
2373
+ "y": 0.7188365459442139,
2374
+ "z": -0.057787876576185226
2375
+ }, {
2376
+ "x": 0.5706077814102173,
2377
+ "y": 0.7674974799156189,
2378
+ "z": -0.07740399986505508
2379
+ }, {
2380
+ "x": 0.5681378245353699,
2381
+ "y": 0.7387768030166626,
2382
+ "z": -0.07356284558773041
2383
+ }, {
2384
+ "x": 0.5621535181999207,
2385
+ "y": 0.6681165099143982,
2386
+ "z": -0.04189874976873398
2387
+ }, {
2388
+ "x": 0.46613582968711853,
2389
+ "y": 0.6679812073707581,
2390
+ "z": 0.011289681307971478
2391
+ }, {
2392
+ "x": 0.5579932928085327,
2393
+ "y": 0.6174106597900391,
2394
+ "z": -0.03502821549773216
2395
+ }, {
2396
+ "x": 0.5563451647758484,
2397
+ "y": 0.5905600190162659,
2398
+ "z": -0.03928658738732338
2399
+ }, {
2400
+ "x": 0.5487832427024841,
2401
+ "y": 0.4900572597980499,
2402
+ "z": -0.029898937791585922
2403
+ }, {
2404
+ "x": 0.5765544176101685,
2405
+ "y": 0.8692144751548767,
2406
+ "z": -0.02831427752971649
2407
+ }, {
2408
+ "x": 0.5771114230155945,
2409
+ "y": 0.873644232749939,
2410
+ "z": -0.02345779910683632
2411
+ }, {
2412
+ "x": 0.5771905779838562,
2413
+ "y": 0.877016007900238,
2414
+ "z": -0.016658689826726913
2415
+ }, {
2416
+ "x": 0.5778058767318726,
2417
+ "y": 0.8770116567611694,
2418
+ "z": -0.014505492523312569
2419
+ }, {
2420
+ "x": 0.5783766508102417,
2421
+ "y": 0.8835000991821289,
2422
+ "z": -0.015996402129530907
2423
+ }, {
2424
+ "x": 0.5792440176010132,
2425
+ "y": 0.8913810849189758,
2426
+ "z": -0.01924579218029976
2427
+ }, {
2428
+ "x": 0.5796768069267273,
2429
+ "y": 0.8996334671974182,
2430
+ "z": -0.018261712044477463
2431
+ }, {
2432
+ "x": 0.5817288160324097,
2433
+ "y": 0.9255813956260681,
2434
+ "z": -0.007126849144697189
2435
+ }, {
2436
+ "x": 0.5726592540740967,
2437
+ "y": 0.7992473244667053,
2438
+ "z": -0.0643521398305893
2439
+ }, {
2440
+ "x": 0.5579419136047363,
2441
+ "y": 0.7996989488601685,
2442
+ "z": -0.04566684365272522
2443
+ }, {
2444
+ "x": 0.4216199815273285,
2445
+ "y": 0.5958762764930725,
2446
+ "z": 0.06776496022939682
2447
+ }, {
2448
+ "x": 0.5052269697189331,
2449
+ "y": 0.6796539425849915,
2450
+ "z": -0.0010737782577052712
2451
+ }, {
2452
+ "x": 0.49243026971817017,
2453
+ "y": 0.6838865876197815,
2454
+ "z": -0.0005227324436418712
2455
+ }, {
2456
+ "x": 0.4796970784664154,
2457
+ "y": 0.6856290102005005,
2458
+ "z": 0.002684245817363262
2459
+ }, {
2460
+ "x": 0.4618356227874756,
2461
+ "y": 0.6764569878578186,
2462
+ "z": 0.013439622707664967
2463
+ }, {
2464
+ "x": 0.5160380601882935,
2465
+ "y": 0.6737282276153564,
2466
+ "z": -0.000017607348127057776
2467
+ }, {
2468
+ "x": 0.48070961236953735,
2469
+ "y": 0.6255870461463928,
2470
+ "z": -0.008339674212038517
2471
+ }, {
2472
+ "x": 0.49719780683517456,
2473
+ "y": 0.6256808042526245,
2474
+ "z": -0.008027955889701843
2475
+ }, {
2476
+ "x": 0.46674346923828125,
2477
+ "y": 0.6317623853683472,
2478
+ "z": -0.004460199736058712
2479
+ }, {
2480
+ "x": 0.4582492709159851,
2481
+ "y": 0.641118049621582,
2482
+ "z": 0.0011905613355338573
2483
+ }, {
2484
+ "x": 0.45408669114112854,
2485
+ "y": 0.6911458969116211,
2486
+ "z": 0.020514748990535736
2487
+ }, {
2488
+ "x": 0.535312294960022,
2489
+ "y": 0.9619986414909363,
2490
+ "z": 0.012499462813138962
2491
+ }, {
2492
+ "x": 0.4608460068702698,
2493
+ "y": 0.6628725528717041,
2494
+ "z": 0.01517564244568348
2495
+ }, {
2496
+ "x": 0.4206731915473938,
2497
+ "y": 0.6828458309173584,
2498
+ "z": 0.07848648726940155
2499
+ }, {
2500
+ "x": 0.4390624463558197,
2501
+ "y": 0.6796106696128845,
2502
+ "z": 0.03283142298460007
2503
+ }, {
2504
+ "x": 0.5029968619346619,
2505
+ "y": 0.7701570391654968,
2506
+ "z": -0.009734481573104858
2507
+ }, {
2508
+ "x": 0.5595027208328247,
2509
+ "y": 0.8607323169708252,
2510
+ "z": -0.030043255537748337
2511
+ }, {
2512
+ "x": 0.5621269941329956,
2513
+ "y": 0.8738374710083008,
2514
+ "z": -0.021709579974412918
2515
+ }, {
2516
+ "x": 0.5451499819755554,
2517
+ "y": 0.865527331829071,
2518
+ "z": -0.022014077752828598
2519
+ }, {
2520
+ "x": 0.5351184010505676,
2521
+ "y": 0.8705098032951355,
2522
+ "z": -0.011602800339460373
2523
+ }, {
2524
+ "x": 0.5495014190673828,
2525
+ "y": 0.8744956254959106,
2526
+ "z": -0.016490943729877472
2527
+ }, {
2528
+ "x": 0.5395170450210571,
2529
+ "y": 0.8759440779685974,
2530
+ "z": -0.007333362940698862
2531
+ }, {
2532
+ "x": 0.5183624029159546,
2533
+ "y": 0.8959754705429077,
2534
+ "z": 0.010520773939788342
2535
+ }, {
2536
+ "x": 0.5604349374771118,
2537
+ "y": 0.7895449995994568,
2538
+ "z": -0.07082037627696991
2539
+ }, {
2540
+ "x": 0.557381272315979,
2541
+ "y": 0.7687489986419678,
2542
+ "z": -0.07590588927268982
2543
+ }, {
2544
+ "x": 0.4432901442050934,
2545
+ "y": 0.6308897733688354,
2546
+ "z": 0.0027153254486620426
2547
+ }, {
2548
+ "x": 0.5258325338363647,
2549
+ "y": 0.7151225805282593,
2550
+ "z": -0.014676518738269806
2551
+ }, {
2552
+ "x": 0.5271827578544617,
2553
+ "y": 0.7833116054534912,
2554
+ "z": -0.037643320858478546
2555
+ }, {
2556
+ "x": 0.5257382988929749,
2557
+ "y": 0.7717816233634949,
2558
+ "z": -0.03401920944452286
2559
+ }, {
2560
+ "x": 0.46516409516334534,
2561
+ "y": 0.7705106735229492,
2562
+ "z": 0.0065747760236263275
2563
+ }, {
2564
+ "x": 0.5558893084526062,
2565
+ "y": 0.7420997619628906,
2566
+ "z": -0.0694495290517807
2567
+ }, {
2568
+ "x": 0.4720408320426941,
2569
+ "y": 0.6066038608551025,
2570
+ "z": -0.021204356104135513
2571
+ }, {
2572
+ "x": 0.45432573556900024,
2573
+ "y": 0.6158540844917297,
2574
+ "z": -0.011054684408009052
2575
+ }, {
2576
+ "x": 0.4305151402950287,
2577
+ "y": 0.5608053803443909,
2578
+ "z": 0.0396830290555954
2579
+ }, {
2580
+ "x": 0.5310865640640259,
2581
+ "y": 0.6157484650611877,
2582
+ "z": -0.03081176057457924
2583
+ }, {
2584
+ "x": 0.5114666223526001,
2585
+ "y": 0.6329749226570129,
2586
+ "z": -0.00335998204536736
2587
+ }, {
2588
+ "x": 0.506435751914978,
2589
+ "y": 0.8786543607711792,
2590
+ "z": 0.012980876490473747
2591
+ }, {
2592
+ "x": 0.4480472207069397,
2593
+ "y": 0.8640613555908203,
2594
+ "z": 0.12569651007652283
2595
+ }, {
2596
+ "x": 0.5372058153152466,
2597
+ "y": 0.7942581176757812,
2598
+ "z": -0.03168361634016037
2599
+ }, {
2600
+ "x": 0.5488379597663879,
2601
+ "y": 0.8001630306243896,
2602
+ "z": -0.03280917927622795
2603
+ }, {
2604
+ "x": 0.5213388204574585,
2605
+ "y": 0.8794381618499756,
2606
+ "z": 0.011892606504261494
2607
+ }, {
2608
+ "x": 0.5242055654525757,
2609
+ "y": 0.8789222240447998,
2610
+ "z": 0.008370225317776203
2611
+ }, {
2612
+ "x": 0.4477175176143646,
2613
+ "y": 0.6039950251579285,
2614
+ "z": -0.0050799972377717495
2615
+ }, {
2616
+ "x": 0.526964008808136,
2617
+ "y": 0.7916748523712158,
2618
+ "z": -0.02968614175915718
2619
+ }, {
2620
+ "x": 0.4971255660057068,
2621
+ "y": 0.6050706505775452,
2622
+ "z": -0.028175678104162216
2623
+ }, {
2624
+ "x": 0.4938119053840637,
2625
+ "y": 0.5882453918457031,
2626
+ "z": -0.03210941329598427
2627
+ }, {
2628
+ "x": 0.4757143557071686,
2629
+ "y": 0.5094879865646362,
2630
+ "z": -0.01300730835646391
2631
+ }, {
2632
+ "x": 0.43947282433509827,
2633
+ "y": 0.5816648006439209,
2634
+ "z": 0.01415177434682846
2635
+ }, {
2636
+ "x": 0.485664039850235,
2637
+ "y": 0.5477864146232605,
2638
+ "z": -0.023685332387685776
2639
+ }, {
2640
+ "x": 0.43635931611061096,
2641
+ "y": 0.6226438283920288,
2642
+ "z": 0.013606148771941662
2643
+ }, {
2644
+ "x": 0.42910251021385193,
2645
+ "y": 0.6102726459503174,
2646
+ "z": 0.03926564007997513
2647
+ }, {
2648
+ "x": 0.5605402588844299,
2649
+ "y": 0.8680099248886108,
2650
+ "z": -0.027318159118294716
2651
+ }, {
2652
+ "x": 0.5474816560745239,
2653
+ "y": 0.8702861070632935,
2654
+ "z": -0.019686367362737656
2655
+ }, {
2656
+ "x": 0.5373021364212036,
2657
+ "y": 0.8728838562965393,
2658
+ "z": -0.010484928265213966
2659
+ }, {
2660
+ "x": 0.540735125541687,
2661
+ "y": 0.7979167103767395,
2662
+ "z": -0.029073253273963928
2663
+ }, {
2664
+ "x": 0.5228585004806519,
2665
+ "y": 0.87913578748703,
2666
+ "z": 0.009915109723806381
2667
+ }, {
2668
+ "x": 0.530497670173645,
2669
+ "y": 0.8815253973007202,
2670
+ "z": 0.0020524784922599792
2671
+ }, {
2672
+ "x": 0.5259912610054016,
2673
+ "y": 0.8790552616119385,
2674
+ "z": 0.007895970717072487
2675
+ }, {
2676
+ "x": 0.5433906316757202,
2677
+ "y": 0.7882310748100281,
2678
+ "z": -0.05121905356645584
2679
+ }, {
2680
+ "x": 0.541388213634491,
2681
+ "y": 0.8777219653129578,
2682
+ "z": -0.00466804439201951
2683
+ }, {
2684
+ "x": 0.5515822172164917,
2685
+ "y": 0.8767023086547852,
2686
+ "z": -0.010475946590304375
2687
+ }, {
2688
+ "x": 0.5637003779411316,
2689
+ "y": 0.877059817314148,
2690
+ "z": -0.015273625031113625
2691
+ }, {
2692
+ "x": 0.5640299320220947,
2693
+ "y": 0.9263423085212708,
2694
+ "z": -0.00658724969252944
2695
+ }, {
2696
+ "x": 0.5642300248146057,
2697
+ "y": 0.8993074893951416,
2698
+ "z": -0.017653480172157288
2699
+ }, {
2700
+ "x": 0.5637336373329163,
2701
+ "y": 0.8910360932350159,
2702
+ "z": -0.01852807030081749
2703
+ }, {
2704
+ "x": 0.5637134313583374,
2705
+ "y": 0.8837276697158813,
2706
+ "z": -0.01482592523097992
2707
+ }, {
2708
+ "x": 0.564205527305603,
2709
+ "y": 0.8768964409828186,
2710
+ "z": -0.01331155002117157
2711
+ }, {
2712
+ "x": 0.5419867634773254,
2713
+ "y": 0.8778373599052429,
2714
+ "z": -0.0037720394320786
2715
+ }, {
2716
+ "x": 0.5404468774795532,
2717
+ "y": 0.880696177482605,
2718
+ "z": -0.005610354244709015
2719
+ }, {
2720
+ "x": 0.5392338633537292,
2721
+ "y": 0.8845721483230591,
2722
+ "z": -0.007352025713771582
2723
+ }, {
2724
+ "x": 0.538469672203064,
2725
+ "y": 0.8891173601150513,
2726
+ "z": -0.005154991988092661
2727
+ }, {
2728
+ "x": 0.5189250111579895,
2729
+ "y": 0.8452741503715515,
2730
+ "z": -0.009755070321261883
2731
+ }, {
2732
+ "x": 0.4258975088596344,
2733
+ "y": 0.7662280797958374,
2734
+ "z": 0.1387351155281067
2735
+ }, {
2736
+ "x": 0.5725725293159485,
2737
+ "y": 0.8041572570800781,
2738
+ "z": -0.04583907872438431
2739
+ }, {
2740
+ "x": 0.5342061519622803,
2741
+ "y": 0.8785833120346069,
2742
+ "z": 0.002659974154084921
2743
+ }, {
2744
+ "x": 0.5324031114578247,
2745
+ "y": 0.8804071545600891,
2746
+ "z": 0.0017832003068178892
2747
+ }, {
2748
+ "x": 0.5538818836212158,
2749
+ "y": 0.8078407645225525,
2750
+ "z": -0.03254539892077446
2751
+ }, {
2752
+ "x": 0.5325431823730469,
2753
+ "y": 0.8026832938194275,
2754
+ "z": -0.019140373915433884
2755
+ }, {
2756
+ "x": 0.5514076948165894,
2757
+ "y": 0.8043903112411499,
2758
+ "z": -0.03313535451889038
2759
+ }, {
2760
+ "x": 0.5131856203079224,
2761
+ "y": 0.7284771800041199,
2762
+ "z": -0.009399853646755219
2763
+ }, {
2764
+ "x": 0.49331504106521606,
2765
+ "y": 0.7443980574607849,
2766
+ "z": -0.005225230939686298
2767
+ }, {
2768
+ "x": 0.5239617824554443,
2769
+ "y": 0.7807451486587524,
2770
+ "z": -0.025881027802824974
2771
+ }, {
2772
+ "x": 0.4473606050014496,
2773
+ "y": 0.5315827131271362,
2774
+ "z": 0.011164786294102669
2775
+ }, {
2776
+ "x": 0.45718759298324585,
2777
+ "y": 0.5604941248893738,
2778
+ "z": -0.005943301599472761
2779
+ }, {
2780
+ "x": 0.4670005738735199,
2781
+ "y": 0.5909327268600464,
2782
+ "z": -0.019681761041283607
2783
+ }, {
2784
+ "x": 0.5311570167541504,
2785
+ "y": 0.9076261520385742,
2786
+ "z": 0.00389476353302598
2787
+ }, {
2788
+ "x": 0.5249923467636108,
2789
+ "y": 0.5893563628196716,
2790
+ "z": -0.037981919944286346
2791
+ }, {
2792
+ "x": 0.5166932344436646,
2793
+ "y": 0.5429551005363464,
2794
+ "z": -0.03319704160094261
2795
+ }, {
2796
+ "x": 0.5085030198097229,
2797
+ "y": 0.49676206707954407,
2798
+ "z": -0.02691275253891945
2799
+ }, {
2800
+ "x": 0.4687720239162445,
2801
+ "y": 0.6834565997123718,
2802
+ "z": 0.008113506250083447
2803
+ }, {
2804
+ "x": 0.4426414966583252,
2805
+ "y": 0.7069531679153442,
2806
+ "z": 0.028577271848917007
2807
+ }, {
2808
+ "x": 0.5230373740196228,
2809
+ "y": 0.6675713658332825,
2810
+ "z": 0.001773772411979735
2811
+ }, {
2812
+ "x": 0.4481240212917328,
2813
+ "y": 0.6527872085571289,
2814
+ "z": 0.012414850294589996
2815
+ }, {
2816
+ "x": 0.5339856743812561,
2817
+ "y": 0.7012367844581604,
2818
+ "z": -0.020220188423991203
2819
+ }, {
2820
+ "x": 0.5347223281860352,
2821
+ "y": 0.7761190533638,
2822
+ "z": -0.05141595005989075
2823
+ }, {
2824
+ "x": 0.4315067231655121,
2825
+ "y": 0.7211957573890686,
2826
+ "z": 0.04381405934691429
2827
+ }, {
2828
+ "x": 0.45203351974487305,
2829
+ "y": 0.7206180095672607,
2830
+ "z": 0.017288070172071457
2831
+ }, {
2832
+ "x": 0.46892452239990234,
2833
+ "y": 0.7265436053276062,
2834
+ "z": 0.005602988880127668
2835
+ }, {
2836
+ "x": 0.49314674735069275,
2837
+ "y": 0.7202282547950745,
2838
+ "z": -0.0006408205372281373
2839
+ }, {
2840
+ "x": 0.5104925632476807,
2841
+ "y": 0.7091827392578125,
2842
+ "z": -0.00362918758764863
2843
+ }, {
2844
+ "x": 0.5232142210006714,
2845
+ "y": 0.698553740978241,
2846
+ "z": -0.00787867046892643
2847
+ }, {
2848
+ "x": 0.5497883558273315,
2849
+ "y": 0.6743605136871338,
2850
+ "z": -0.036349106580019
2851
+ }, {
2852
+ "x": 0.43658503890037537,
2853
+ "y": 0.7627100348472595,
2854
+ "z": 0.042555369436740875
2855
+ }, {
2856
+ "x": 0.4397648870944977,
2857
+ "y": 0.6528646349906921,
2858
+ "z": 0.017956094816327095
2859
+ }, {
2860
+ "x": 0.5653332471847534,
2861
+ "y": 0.7992802858352661,
2862
+ "z": -0.06365057826042175
2863
+ }, {
2864
+ "x": 0.5285563468933105,
2865
+ "y": 0.736810564994812,
2866
+ "z": -0.018836988136172295
2867
+ }, {
2868
+ "x": 0.4180678725242615,
2869
+ "y": 0.6792560815811157,
2870
+ "z": 0.12284679710865021
2871
+ }, {
2872
+ "x": 0.5328429937362671,
2873
+ "y": 0.6865872144699097,
2874
+ "z": -0.010484723374247551
2875
+ }, {
2876
+ "x": 0.5230283141136169,
2877
+ "y": 0.7809416055679321,
2878
+ "z": -0.011922398582100868
2879
+ }, {
2880
+ "x": 0.4551771283149719,
2881
+ "y": 0.6650775074958801,
2882
+ "z": 0.01774493046104908
2883
+ }, {
2884
+ "x": 0.5337203741073608,
2885
+ "y": 0.7618928551673889,
2886
+ "z": -0.04697106033563614
2887
+ }, {
2888
+ "x": 0.43463975191116333,
2889
+ "y": 0.8133478164672852,
2890
+ "z": 0.1354849934577942
2891
+ }, {
2892
+ "x": 0.5225707292556763,
2893
+ "y": 0.6605283617973328,
2894
+ "z": 0.004980515688657761
2895
+ }, {
2896
+ "x": 0.5441933870315552,
2897
+ "y": 0.7497199773788452,
2898
+ "z": -0.06091512367129326
2899
+ }, {
2900
+ "x": 0.4774007797241211,
2901
+ "y": 0.9159183502197266,
2902
+ "z": 0.059622734785079956
2903
+ }, {
2904
+ "x": 0.48068761825561523,
2905
+ "y": 0.9364941716194153,
2906
+ "z": 0.08404944837093353
2907
+ }, {
2908
+ "x": 0.4268292486667633,
2909
+ "y": 0.7657528519630432,
2910
+ "z": 0.09051097184419632
2911
+ }, {
2912
+ "x": 0.46051913499832153,
2913
+ "y": 0.8880485892295837,
2914
+ "z": 0.0738474428653717
2915
+ }, {
2916
+ "x": 0.4243420660495758,
2917
+ "y": 0.6434382200241089,
2918
+ "z": 0.06230505183339119
2919
+ }, {
2920
+ "x": 0.5342157483100891,
2921
+ "y": 0.9835634231567383,
2922
+ "z": 0.021662971004843712
2923
+ }, {
2924
+ "x": 0.5668109655380249,
2925
+ "y": 0.8042187094688416,
2926
+ "z": -0.044937074184417725
2927
+ }, {
2928
+ "x": 0.5176341533660889,
2929
+ "y": 0.7530587315559387,
2930
+ "z": -0.012967454269528389
2931
+ }, {
2932
+ "x": 0.430206298828125,
2933
+ "y": 0.6835605502128601,
2934
+ "z": 0.04612284153699875
2935
+ }, {
2936
+ "x": 0.4794231951236725,
2937
+ "y": 0.6732114553451538,
2938
+ "z": 0.003970044665038586
2939
+ }, {
2940
+ "x": 0.49073347449302673,
2941
+ "y": 0.6722435355186462,
2942
+ "z": 0.0008692514384165406
2943
+ }, {
2944
+ "x": 0.5294116139411926,
2945
+ "y": 0.884677529335022,
2946
+ "z": 0.004413890186697245
2947
+ }, {
2948
+ "x": 0.4430122375488281,
2949
+ "y": 0.80235356092453,
2950
+ "z": 0.04987282305955887
2951
+ }, {
2952
+ "x": 0.5603825449943542,
2953
+ "y": 1.0092442035675049,
2954
+ "z": 0.026417359709739685
2955
+ }, {
2956
+ "x": 0.5186598300933838,
2957
+ "y": 0.9828659892082214,
2958
+ "z": 0.0513598807156086
2959
+ }, {
2960
+ "x": 0.5010536909103394,
2961
+ "y": 0.9640932679176331,
2962
+ "z": 0.06591596454381943
2963
+ }, {
2964
+ "x": 0.5524769425392151,
2965
+ "y": 0.539441704750061,
2966
+ "z": -0.035816047340631485
2967
+ }, {
2968
+ "x": 0.5879997611045837,
2969
+ "y": 1.0091472864151,
2970
+ "z": 0.02285068854689598
2971
+ }, {
2972
+ "x": 0.5016193985939026,
2973
+ "y": 0.6684437990188599,
2974
+ "z": 0.00028415941051207483
2975
+ }, {
2976
+ "x": 0.511952817440033,
2977
+ "y": 0.6642197370529175,
2978
+ "z": 0.0021144719794392586
2979
+ }, {
2980
+ "x": 0.5194343328475952,
2981
+ "y": 0.6623469591140747,
2982
+ "z": 0.004674181342124939
2983
+ }, {
2984
+ "x": 0.4321230351924896,
2985
+ "y": 0.6496355533599854,
2986
+ "z": 0.03124697133898735
2987
+ }, {
2988
+ "x": 0.508686363697052,
2989
+ "y": 0.6479565501213074,
2990
+ "z": -0.00044765998609364033
2991
+ }, {
2992
+ "x": 0.4963986277580261,
2993
+ "y": 0.6431032419204712,
2994
+ "z": -0.0032507688738405704
2995
+ }, {
2996
+ "x": 0.4845542013645172,
2997
+ "y": 0.6430778503417969,
2998
+ "z": -0.002903624437749386
2999
+ }, {
3000
+ "x": 0.4733612537384033,
3001
+ "y": 0.647506833076477,
3002
+ "z": 0.00023347247042693198
3003
+ }, {
3004
+ "x": 0.4668654501438141,
3005
+ "y": 0.653346598148346,
3006
+ "z": 0.004762572236359119
3007
+ }, {
3008
+ "x": 0.41815051436424255,
3009
+ "y": 0.633708119392395,
3010
+ "z": 0.09809435904026031
3011
+ }, {
3012
+ "x": 0.47159942984580994,
3013
+ "y": 0.6711485385894775,
3014
+ "z": 0.007849935442209244
3015
+ }, {
3016
+ "x": 0.5734396576881409,
3017
+ "y": 0.8256140351295471,
3018
+ "z": -0.03155219927430153
3019
+ }, {
3020
+ "x": 0.5306524038314819,
3021
+ "y": 0.8337990641593933,
3022
+ "z": -0.018351426348090172
3023
+ }, {
3024
+ "x": 0.5371729135513306,
3025
+ "y": 0.7910830974578857,
3026
+ "z": -0.037286680191755295
3027
+ }, {
3028
+ "x": 0.5549534559249878,
3029
+ "y": 0.8275275826454163,
3030
+ "z": -0.030664825811982155
3031
+ }, {
3032
+ "x": 0.5597432255744934,
3033
+ "y": 0.6418541669845581,
3034
+ "z": -0.03318847343325615
3035
+ }, {
3036
+ "x": 0.4958484172821045,
3037
+ "y": 0.9429569244384766,
3038
+ "z": 0.048340678215026855
3039
+ }, {
3040
+ "x": 0.5140507817268372,
3041
+ "y": 0.9634028077125549,
3042
+ "z": 0.03589847311377525
3043
+ }, {
3044
+ "x": 0.5587693452835083,
3045
+ "y": 0.9951097369194031,
3046
+ "z": 0.00908728688955307
3047
+ }, {
3048
+ "x": 0.46411189436912537,
3049
+ "y": 0.9051855206489563,
3050
+ "z": 0.10601935535669327
3051
+ }, {
3052
+ "x": 0.5181609392166138,
3053
+ "y": 0.6554316878318787,
3054
+ "z": 0.002546071307733655
3055
+ }, {
3056
+ "x": 0.5436590909957886,
3057
+ "y": 0.7085841298103333,
3058
+ "z": -0.03844436630606651
3059
+ }, {
3060
+ "x": 0.5872187614440918,
3061
+ "y": 0.9960382580757141,
3062
+ "z": 0.0063423276878893375
3063
+ }, {
3064
+ "x": 0.5379653573036194,
3065
+ "y": 0.9989125728607178,
3066
+ "z": 0.03636329993605614
3067
+ }, {
3068
+ "x": 0.4350326955318451,
3069
+ "y": 0.8088565468788147,
3070
+ "z": 0.09147704392671585
3071
+ }, {
3072
+ "x": 0.5523084998130798,
3073
+ "y": 0.8773422837257385,
3074
+ "z": -0.009068487212061882
3075
+ }, {
3076
+ "x": 0.5510149598121643,
3077
+ "y": 0.8816931843757629,
3078
+ "z": -0.011043853126466274
3079
+ }, {
3080
+ "x": 0.5503793954849243,
3081
+ "y": 0.88776695728302,
3082
+ "z": -0.01348799467086792
3083
+ }, {
3084
+ "x": 0.5501549243927002,
3085
+ "y": 0.8954370617866516,
3086
+ "z": -0.012142189778387547
3087
+ }, {
3088
+ "x": 0.546072781085968,
3089
+ "y": 0.9192524552345276,
3090
+ "z": -0.003157563041895628
3091
+ }, {
3092
+ "x": 0.5314661860466003,
3093
+ "y": 0.8771666884422302,
3094
+ "z": 0.0005075141089037061
3095
+ }, {
3096
+ "x": 0.5293324589729309,
3097
+ "y": 0.8762547969818115,
3098
+ "z": 0.00039177737198770046
3099
+ }, {
3100
+ "x": 0.5275698900222778,
3101
+ "y": 0.8750609755516052,
3102
+ "z": 0.000047732755774632096
3103
+ }, {
3104
+ "x": 0.5104271173477173,
3105
+ "y": 0.8607332110404968,
3106
+ "z": 0.0012934643309563398
3107
+ }, {
3108
+ "x": 0.45938700437545776,
3109
+ "y": 0.8134918212890625,
3110
+ "z": 0.023569690063595772
3111
+ }, {
3112
+ "x": 0.5418947339057922,
3113
+ "y": 0.6864100694656372,
3114
+ "z": -0.027333909645676613
3115
+ }, {
3116
+ "x": 0.531914234161377,
3117
+ "y": 0.6456130743026733,
3118
+ "z": -0.005434140563011169
3119
+ }, {
3120
+ "x": 0.523697018623352,
3121
+ "y": 0.647885262966156,
3122
+ "z": -0.0002466466394253075
3123
+ }, {
3124
+ "x": 0.5338191390037537,
3125
+ "y": 0.8783687353134155,
3126
+ "z": 0.002268768846988678
3127
+ }, {
3128
+ "x": 0.46226605772972107,
3129
+ "y": 0.8610277771949768,
3130
+ "z": 0.04718952998518944
3131
+ }, {
3132
+ "x": 0.5434442758560181,
3133
+ "y": 0.6456181406974792,
3134
+ "z": -0.02327350154519081
3135
+ }, {
3136
+ "x": 0.5399754643440247,
3137
+ "y": 0.940219521522522,
3138
+ "z": 0.005075343884527683
3139
+ }, {
3140
+ "x": 0.5661457777023315,
3141
+ "y": 0.71457839012146,
3142
+ "z": -0.06242101639509201
3143
+ }, {
3144
+ "x": 0.5523148775100708,
3145
+ "y": 0.6974870562553406,
3146
+ "z": -0.04863070324063301
3147
+ }, {
3148
+ "x": 0.5639959573745728,
3149
+ "y": 0.6923378109931946,
3150
+ "z": -0.05180761218070984
3151
+ }, {
3152
+ "x": 0.5367592573165894,
3153
+ "y": 0.7423217296600342,
3154
+ "z": -0.03623027727007866
3155
+ }, {
3156
+ "x": 0.5853689908981323,
3157
+ "y": 0.9752064943313599,
3158
+ "z": -0.002361974213272333
3159
+ }, {
3160
+ "x": 0.5835235118865967,
3161
+ "y": 0.9493685960769653,
3162
+ "z": -0.003941743168979883
3163
+ }, {
3164
+ "x": 0.5615018606185913,
3165
+ "y": 0.949194610118866,
3166
+ "z": -0.0015953965485095978
3167
+ }, {
3168
+ "x": 0.5068561434745789,
3169
+ "y": 0.9048219323158264,
3170
+ "z": 0.01862684078514576
3171
+ }, {
3172
+ "x": 0.5134067535400391,
3173
+ "y": 0.7971825003623962,
3174
+ "z": -0.008485661819577217
3175
+ }, {
3176
+ "x": 0.5223897099494934,
3177
+ "y": 0.925589919090271,
3178
+ "z": 0.01249657291918993
3179
+ }, {
3180
+ "x": 0.48500555753707886,
3181
+ "y": 0.7959478497505188,
3182
+ "z": -0.0032065745908766985
3183
+ }, {
3184
+ "x": 0.5037734508514404,
3185
+ "y": 0.8184596300125122,
3186
+ "z": -0.004932103678584099
3187
+ }, {
3188
+ "x": 0.4766361117362976,
3189
+ "y": 0.828806459903717,
3190
+ "z": 0.01027688942849636
3191
+ }, {
3192
+ "x": 0.5589827299118042,
3193
+ "y": 0.974656343460083,
3194
+ "z": 0.0009666886180639267
3195
+ }, {
3196
+ "x": 0.5294582843780518,
3197
+ "y": 0.7541216611862183,
3198
+ "z": -0.025603046640753746
3199
+ }, {
3200
+ "x": 0.4973002076148987,
3201
+ "y": 0.9208990931510925,
3202
+ "z": 0.031931452453136444
3203
+ }, {
3204
+ "x": 0.5163551568984985,
3205
+ "y": 0.9432790875434875,
3206
+ "z": 0.024321340024471283
3207
+ }, {
3208
+ "x": 0.49399662017822266,
3209
+ "y": 0.8814862370491028,
3210
+ "z": 0.018687399104237556
3211
+ }, {
3212
+ "x": 0.44948166608810425,
3213
+ "y": 0.836137592792511,
3214
+ "z": 0.05702034756541252
3215
+ }, {
3216
+ "x": 0.47898444533348083,
3217
+ "y": 0.8836610913276672,
3218
+ "z": 0.03150695189833641
3219
+ }, {
3220
+ "x": 0.4454479217529297,
3221
+ "y": 0.8499438166618347,
3222
+ "z": 0.08868525922298431
3223
+ }, {
3224
+ "x": 0.49572959542274475,
3225
+ "y": 0.8452823758125305,
3226
+ "z": 0.0036111653316766024
3227
+ }, {
3228
+ "x": 0.5362502336502075,
3229
+ "y": 0.7222585678100586,
3230
+ "z": -0.027912352234125137
3231
+ }, {
3232
+ "x": 0.5393770337104797,
3233
+ "y": 0.7850722074508667,
3234
+ "z": -0.05415399745106697
3235
+ }, {
3236
+ "x": 0.531399667263031,
3237
+ "y": 0.7898418307304382,
3238
+ "z": -0.03883346915245056
3239
+ }, {
3240
+ "x": 0.5451627373695374,
3241
+ "y": 0.7717036604881287,
3242
+ "z": -0.06480253487825394
3243
+ }, {
3244
+ "x": 0.5206395983695984,
3245
+ "y": 0.6287745833396912,
3246
+ "z": -0.010521138086915016
3247
+ }, {
3248
+ "x": 0.4974782466888428,
3249
+ "y": 0.6191938519477844,
3250
+ "z": -0.014098240062594414
3251
+ }, {
3252
+ "x": 0.4774145185947418,
3253
+ "y": 0.6193130612373352,
3254
+ "z": -0.013643337413668633
3255
+ }, {
3256
+ "x": 0.4616098403930664,
3257
+ "y": 0.6259890198707581,
3258
+ "z": -0.008448202162981033
3259
+ }, {
3260
+ "x": 0.4516478478908539,
3261
+ "y": 0.6368461847305298,
3262
+ "z": 0.00009050309745362028
3263
+ }, {
3264
+ "x": 0.4485096037387848,
3265
+ "y": 0.6719120740890503,
3266
+ "z": 0.022984720766544342
3267
+ }, {
3268
+ "x": 0.42177659273147583,
3269
+ "y": 0.7240667343139648,
3270
+ "z": 0.08511673659086227
3271
+ }, {
3272
+ "x": 0.4616215229034424,
3273
+ "y": 0.6988231539726257,
3274
+ "z": 0.014238474890589714
3275
+ }, {
3276
+ "x": 0.4755798876285553,
3277
+ "y": 0.7034608721733093,
3278
+ "z": 0.00625590980052948
3279
+ }, {
3280
+ "x": 0.4924992024898529,
3281
+ "y": 0.7005885243415833,
3282
+ "z": 0.0009391739731654525
3283
+ }, {
3284
+ "x": 0.5082254409790039,
3285
+ "y": 0.693384051322937,
3286
+ "z": -0.0009464038303121924
3287
+ }, {
3288
+ "x": 0.5203112959861755,
3289
+ "y": 0.6849707961082458,
3290
+ "z": -0.0022114769089967012
3291
+ }, {
3292
+ "x": 0.52867591381073,
3293
+ "y": 0.6779075860977173,
3294
+ "z": -0.002962538506835699
3295
+ }, {
3296
+ "x": 0.4213953912258148,
3297
+ "y": 0.7219811677932739,
3298
+ "z": 0.1350894570350647
3299
+ }, {
3300
+ "x": 0.5320829749107361,
3301
+ "y": 0.794858992099762,
3302
+ "z": -0.03181503340601921
3303
+ }, {
3304
+ "x": 0.5452795028686523,
3305
+ "y": 0.7286570072174072,
3306
+ "z": -0.04771539941430092
3307
+ }, {
3308
+ "x": 0.5496407747268677,
3309
+ "y": 0.7866933345794678,
3310
+ "z": -0.06452003121376038
3311
+ }, {
3312
+ "x": 0.557040274143219,
3313
+ "y": 0.7962084412574768,
3314
+ "z": -0.05837344378232956
3315
+ }, {
3316
+ "x": 0.549176812171936,
3317
+ "y": 0.7895247936248779,
3318
+ "z": -0.057761140167713165
3319
+ }, {
3320
+ "x": 0.5362890362739563,
3321
+ "y": 0.8005836606025696,
3322
+ "z": -0.026903774589300156
3323
+ }, {
3324
+ "x": 0.560200035572052,
3325
+ "y": 0.7983731031417847,
3326
+ "z": -0.06172555685043335
3327
+ }, {
3328
+ "x": 0.5616944432258606,
3329
+ "y": 0.8022753596305847,
3330
+ "z": -0.045200999826192856
3331
+ }, {
3332
+ "x": 0.5273328423500061,
3333
+ "y": 0.6611284017562866,
3334
+ "z": 0.0029021520167589188
3335
+ }, {
3336
+ "x": 0.534850537776947,
3337
+ "y": 0.6660012006759644,
3338
+ "z": -0.005215510260313749
3339
+ }, {
3340
+ "x": 0.5394860506057739,
3341
+ "y": 0.6701375246047974,
3342
+ "z": -0.014931917190551758
3343
+ }, {
3344
+ "x": 0.4634307324886322,
3345
+ "y": 0.658291757106781,
3346
+ "z": 0.009295716881752014
3347
+ }, {
3348
+ "x": 0.4538393020629883,
3349
+ "y": 0.6519932150840759,
3350
+ "z": 0.00930330716073513
3351
+ }, {
3352
+ "x": 0.5776031613349915,
3353
+ "y": 0.7159298658370972,
3354
+ "z": -0.057365912944078445
3355
+ }, {
3356
+ "x": 0.6504855155944824,
3357
+ "y": 0.6461779475212097,
3358
+ "z": 0.014184834435582161
3359
+ }, {
3360
+ "x": 0.5860154032707214,
3361
+ "y": 0.7962266206741333,
3362
+ "z": -0.04522843658924103
3363
+ }, {
3364
+ "x": 0.6842049360275269,
3365
+ "y": 0.5631637573242188,
3366
+ "z": 0.07207967340946198
3367
+ }, {
3368
+ "x": 0.6152560710906982,
3369
+ "y": 0.6674962639808655,
3370
+ "z": 0.0007529259892180562
3371
+ }, {
3372
+ "x": 0.6280948519706726,
3373
+ "y": 0.6684326529502869,
3374
+ "z": 0.0016892586136236787
3375
+ }, {
3376
+ "x": 0.6408625245094299,
3377
+ "y": 0.6663892269134521,
3378
+ "z": 0.005331226624548435
3379
+ }, {
3380
+ "x": 0.6557814478874207,
3381
+ "y": 0.6534678936004639,
3382
+ "z": 0.01646413467824459
3383
+ }, {
3384
+ "x": 0.6035663485527039,
3385
+ "y": 0.6639701724052429,
3386
+ "z": 0.0013799630105495453
3387
+ }, {
3388
+ "x": 0.6329053044319153,
3389
+ "y": 0.608010470867157,
3390
+ "z": -0.006195899099111557
3391
+ }, {
3392
+ "x": 0.6167260408401489,
3393
+ "y": 0.6117533445358276,
3394
+ "z": -0.006319951266050339
3395
+ }, {
3396
+ "x": 0.6471013426780701,
3397
+ "y": 0.6112449765205383,
3398
+ "z": -0.0017843559617176652
3399
+ }, {
3400
+ "x": 0.6560901999473572,
3401
+ "y": 0.6185776591300964,
3402
+ "z": 0.004047257360070944
3403
+ }, {
3404
+ "x": 0.6666946411132812,
3405
+ "y": 0.6651176810264587,
3406
+ "z": 0.023647578433156013
3407
+ }, {
3408
+ "x": 0.6311345100402832,
3409
+ "y": 0.9495396018028259,
3410
+ "z": 0.014004078693687916
3411
+ }, {
3412
+ "x": 0.6544655561447144,
3413
+ "y": 0.6397901773452759,
3414
+ "z": 0.01809609681367874
3415
+ }, {
3416
+ "x": 0.6965808868408203,
3417
+ "y": 0.6482675075531006,
3418
+ "z": 0.08304904401302338
3419
+ }, {
3420
+ "x": 0.679817259311676,
3421
+ "y": 0.650188148021698,
3422
+ "z": 0.03632688894867897
3423
+ }, {
3424
+ "x": 0.6336516737937927,
3425
+ "y": 0.7541458010673523,
3426
+ "z": -0.007742783520370722
3427
+ }, {
3428
+ "x": 0.5921701192855835,
3429
+ "y": 0.8567668199539185,
3430
+ "z": -0.029399123042821884
3431
+ }, {
3432
+ "x": 0.591663658618927,
3433
+ "y": 0.870215654373169,
3434
+ "z": -0.02103729173541069
3435
+ }, {
3436
+ "x": 0.6068367958068848,
3437
+ "y": 0.8584195375442505,
3438
+ "z": -0.020668085664510727
3439
+ }, {
3440
+ "x": 0.6176617741584778,
3441
+ "y": 0.860965371131897,
3442
+ "z": -0.009790095500648022
3443
+ }, {
3444
+ "x": 0.6040634512901306,
3445
+ "y": 0.8686612844467163,
3446
+ "z": -0.015289564616978168
3447
+ }, {
3448
+ "x": 0.6143736839294434,
3449
+ "y": 0.8671170473098755,
3450
+ "z": -0.005712216719985008
3451
+ }, {
3452
+ "x": 0.6373105049133301,
3453
+ "y": 0.8815656900405884,
3454
+ "z": 0.012672550976276398
3455
+ }, {
3456
+ "x": 0.5832505822181702,
3457
+ "y": 0.7866312861442566,
3458
+ "z": -0.07051534950733185
3459
+ }, {
3460
+ "x": 0.5836675763130188,
3461
+ "y": 0.7658692598342896,
3462
+ "z": -0.07566110789775848
3463
+ }, {
3464
+ "x": 0.6709531545639038,
3465
+ "y": 0.604898989200592,
3466
+ "z": 0.005951565690338612
3467
+ }, {
3468
+ "x": 0.6029891967773438,
3469
+ "y": 0.705652117729187,
3470
+ "z": -0.013388276100158691
3471
+ }, {
3472
+ "x": 0.6131622195243835,
3473
+ "y": 0.7728396058082581,
3474
+ "z": -0.036248479038476944
3475
+ }, {
3476
+ "x": 0.6123163104057312,
3477
+ "y": 0.7612020373344421,
3478
+ "z": -0.03264721855521202
3479
+ }, {
3480
+ "x": 0.6696187853813171,
3481
+ "y": 0.744706928730011,
3482
+ "z": 0.009673702530562878
3483
+ }, {
3484
+ "x": 0.5803102254867554,
3485
+ "y": 0.7385968565940857,
3486
+ "z": -0.0689152330160141
3487
+ }, {
3488
+ "x": 0.6404349207878113,
3489
+ "y": 0.5877999663352966,
3490
+ "z": -0.01929756999015808
3491
+ }, {
3492
+ "x": 0.6588467955589294,
3493
+ "y": 0.5929454565048218,
3494
+ "z": -0.008487257175147533
3495
+ }, {
3496
+ "x": 0.6720337867736816,
3497
+ "y": 0.530631422996521,
3498
+ "z": 0.043437421321868896
3499
+ }, {
3500
+ "x": 0.584305465221405,
3501
+ "y": 0.6099005341529846,
3502
+ "z": -0.030301367864012718
3503
+ }, {
3504
+ "x": 0.6034283638000488,
3505
+ "y": 0.6217452883720398,
3506
+ "z": -0.001970183802768588
3507
+ }, {
3508
+ "x": 0.6460927724838257,
3509
+ "y": 0.8608663082122803,
3510
+ "z": 0.015541625209152699
3511
+ }, {
3512
+ "x": 0.6957815289497375,
3513
+ "y": 0.8326103091239929,
3514
+ "z": 0.13015234470367432
3515
+ }, {
3516
+ "x": 0.6043362617492676,
3517
+ "y": 0.7861682772636414,
3518
+ "z": -0.030476901680231094
3519
+ }, {
3520
+ "x": 0.594293475151062,
3521
+ "y": 0.7942103147506714,
3522
+ "z": -0.032218821346759796
3523
+ }, {
3524
+ "x": 0.6324057579040527,
3525
+ "y": 0.8665139675140381,
3526
+ "z": 0.014255806803703308
3527
+ }, {
3528
+ "x": 0.6296147704124451,
3529
+ "y": 0.8667733669281006,
3530
+ "z": 0.010388285852968693
3531
+ }, {
3532
+ "x": 0.663644552230835,
3533
+ "y": 0.5798642635345459,
3534
+ "z": -0.0022301070857793093
3535
+ }, {
3536
+ "x": 0.6140630841255188,
3537
+ "y": 0.7809288501739502,
3538
+ "z": -0.02835679054260254
3539
+ }, {
3540
+ "x": 0.615908145904541,
3541
+ "y": 0.5921698212623596,
3542
+ "z": -0.026804860681295395
3543
+ }, {
3544
+ "x": 0.617181122303009,
3545
+ "y": 0.5748661756515503,
3546
+ "z": -0.03060605563223362
3547
+ }, {
3548
+ "x": 0.6222207546234131,
3549
+ "y": 0.49137672781944275,
3550
+ "z": -0.011151673272252083
3551
+ }, {
3552
+ "x": 0.6669357419013977,
3553
+ "y": 0.5541607141494751,
3554
+ "z": 0.017466170713305473
3555
+ }, {
3556
+ "x": 0.6182981729507446,
3557
+ "y": 0.5320425629615784,
3558
+ "z": -0.021793590858578682
3559
+ }, {
3560
+ "x": 0.6760554313659668,
3561
+ "y": 0.595052182674408,
3562
+ "z": 0.017115700989961624
3563
+ }, {
3564
+ "x": 0.6801463961601257,
3565
+ "y": 0.5800720453262329,
3566
+ "z": 0.043127160519361496
3567
+ }, {
3568
+ "x": 0.5922210812568665,
3569
+ "y": 0.8644017577171326,
3570
+ "z": -0.02662893570959568
3571
+ }, {
3572
+ "x": 0.6054555177688599,
3573
+ "y": 0.8637874722480774,
3574
+ "z": -0.018363753333687782
3575
+ }, {
3576
+ "x": 0.6161889433860779,
3577
+ "y": 0.8641164898872375,
3578
+ "z": -0.008808949030935764
3579
+ }, {
3580
+ "x": 0.6017249822616577,
3581
+ "y": 0.7901403307914734,
3582
+ "z": -0.028126630932092667
3583
+ }, {
3584
+ "x": 0.631446123123169,
3585
+ "y": 0.8664817810058594,
3586
+ "z": 0.012112865224480629
3587
+ }, {
3588
+ "x": 0.6249198913574219,
3589
+ "y": 0.8716511130332947,
3590
+ "z": 0.003882825840264559
3591
+ }, {
3592
+ "x": 0.6281915903091431,
3593
+ "y": 0.867301881313324,
3594
+ "z": 0.009891441091895103
3595
+ }, {
3596
+ "x": 0.5986843109130859,
3597
+ "y": 0.7813931703567505,
3598
+ "z": -0.050227612257003784
3599
+ }, {
3600
+ "x": 0.6126407384872437,
3601
+ "y": 0.869275689125061,
3602
+ "z": -0.0031255714129656553
3603
+ }, {
3604
+ "x": 0.6027271151542664,
3605
+ "y": 0.8711842894554138,
3606
+ "z": -0.009324162267148495
3607
+ }, {
3608
+ "x": 0.59088134765625,
3609
+ "y": 0.8742044568061829,
3610
+ "z": -0.014608660712838173
3611
+ }, {
3612
+ "x": 0.5984604358673096,
3613
+ "y": 0.9216185212135315,
3614
+ "z": -0.005981989670544863
3615
+ }, {
3616
+ "x": 0.5950398445129395,
3617
+ "y": 0.8964707255363464,
3618
+ "z": -0.01703473925590515
3619
+ }, {
3620
+ "x": 0.5941568613052368,
3621
+ "y": 0.8882410526275635,
3622
+ "z": -0.017784785479307175
3623
+ }, {
3624
+ "x": 0.5928806662559509,
3625
+ "y": 0.8803883194923401,
3626
+ "z": -0.014153128489851952
3627
+ }, {
3628
+ "x": 0.5909661054611206,
3629
+ "y": 0.8748103976249695,
3630
+ "z": -0.012609979137778282
3631
+ }, {
3632
+ "x": 0.6128016710281372,
3633
+ "y": 0.8702545762062073,
3634
+ "z": -0.0022550546564161777
3635
+ }, {
3636
+ "x": 0.6150846481323242,
3637
+ "y": 0.8726804256439209,
3638
+ "z": -0.00414019962772727
3639
+ }, {
3640
+ "x": 0.6173093914985657,
3641
+ "y": 0.8770190477371216,
3642
+ "z": -0.005970994010567665
3643
+ }, {
3644
+ "x": 0.619335412979126,
3645
+ "y": 0.8814800977706909,
3646
+ "z": -0.0036864024586975574
3647
+ }, {
3648
+ "x": 0.6292637586593628,
3649
+ "y": 0.8314558267593384,
3650
+ "z": -0.007714875973761082
3651
+ }, {
3652
+ "x": 0.702275276184082,
3653
+ "y": 0.7320667505264282,
3654
+ "z": 0.1433621346950531
3655
+ }, {
3656
+ "x": 0.6204835176467896,
3657
+ "y": 0.8689177632331848,
3658
+ "z": 0.0044869170524179935
3659
+ }, {
3660
+ "x": 0.6223508715629578,
3661
+ "y": 0.8704851269721985,
3662
+ "z": 0.00352082890458405
3663
+ }, {
3664
+ "x": 0.590448260307312,
3665
+ "y": 0.8029727935791016,
3666
+ "z": -0.03200828656554222
3667
+ }, {
3668
+ "x": 0.6097423434257507,
3669
+ "y": 0.7933741211891174,
3670
+ "z": -0.018042555078864098
3671
+ }, {
3672
+ "x": 0.59229576587677,
3673
+ "y": 0.7993767261505127,
3674
+ "z": -0.032564569264650345
3675
+ }, {
3676
+ "x": 0.6171364188194275,
3677
+ "y": 0.7153720259666443,
3678
+ "z": -0.007672437466681004
3679
+ }, {
3680
+ "x": 0.6389747858047485,
3681
+ "y": 0.726390540599823,
3682
+ "z": -0.002999067772179842
3683
+ }, {
3684
+ "x": 0.6151940226554871,
3685
+ "y": 0.769412100315094,
3686
+ "z": -0.024427521973848343
3687
+ }, {
3688
+ "x": 0.6526776552200317,
3689
+ "y": 0.505868136882782,
3690
+ "z": 0.01412637997418642
3691
+ }, {
3692
+ "x": 0.6475822329521179,
3693
+ "y": 0.5375454425811768,
3694
+ "z": -0.0033899128902703524
3695
+ }, {
3696
+ "x": 0.6433356404304504,
3697
+ "y": 0.5714520215988159,
3698
+ "z": -0.017428796738386154
3699
+ }, {
3700
+ "x": 0.626949667930603,
3701
+ "y": 0.8962116837501526,
3702
+ "z": 0.005602736957371235
3703
+ }, {
3704
+ "x": 0.5868416428565979,
3705
+ "y": 0.5829002261161804,
3706
+ "z": -0.03727729618549347
3707
+ }, {
3708
+ "x": 0.5877229571342468,
3709
+ "y": 0.5345035791397095,
3710
+ "z": -0.032396964728832245
3711
+ }, {
3712
+ "x": 0.5887066125869751,
3713
+ "y": 0.48655083775520325,
3714
+ "z": -0.025856535881757736
3715
+ }, {
3716
+ "x": 0.6507197618484497,
3717
+ "y": 0.6612282991409302,
3718
+ "z": 0.011114613153040409
3719
+ }, {
3720
+ "x": 0.6803066730499268,
3721
+ "y": 0.677992045879364,
3722
+ "z": 0.032125361263751984
3723
+ }, {
3724
+ "x": 0.5963194370269775,
3725
+ "y": 0.6598632335662842,
3726
+ "z": 0.002976928371936083
3727
+ }, {
3728
+ "x": 0.667536199092865,
3729
+ "y": 0.6274255514144897,
3730
+ "z": 0.015618261881172657
3731
+ }, {
3732
+ "x": 0.5930740833282471,
3733
+ "y": 0.6940041780471802,
3734
+ "z": -0.019217798486351967
3735
+ }, {
3736
+ "x": 0.6053346395492554,
3737
+ "y": 0.7676517963409424,
3738
+ "z": -0.050308309495449066
3739
+ }, {
3740
+ "x": 0.6934473514556885,
3741
+ "y": 0.6884298920631409,
3742
+ "z": 0.04794462397694588
3743
+ }, {
3744
+ "x": 0.6738007664680481,
3745
+ "y": 0.6934011578559875,
3746
+ "z": 0.020697161555290222
3747
+ }, {
3748
+ "x": 0.6588084697723389,
3749
+ "y": 0.7033141851425171,
3750
+ "z": 0.008462334051728249
3751
+ }, {
3752
+ "x": 0.6346072554588318,
3753
+ "y": 0.7029502391815186,
3754
+ "z": 0.001542167621664703
3755
+ }, {
3756
+ "x": 0.6157816648483276,
3757
+ "y": 0.6966525912284851,
3758
+ "z": -0.002009218093007803
3759
+ }, {
3760
+ "x": 0.6015574336051941,
3761
+ "y": 0.688928484916687,
3762
+ "z": -0.006588225718587637
3763
+ }, {
3764
+ "x": 0.5746836066246033,
3765
+ "y": 0.6711069345474243,
3766
+ "z": -0.03597589209675789
3767
+ }, {
3768
+ "x": 0.6947521567344666,
3769
+ "y": 0.7309479117393494,
3770
+ "z": 0.046707939356565475
3771
+ }, {
3772
+ "x": 0.6759101152420044,
3773
+ "y": 0.6249120831489563,
3774
+ "z": 0.021654341369867325
3775
+ }, {
3776
+ "x": 0.5794773101806641,
3777
+ "y": 0.7971615195274353,
3778
+ "z": -0.06339326500892639
3779
+ }, {
3780
+ "x": 0.6041849851608276,
3781
+ "y": 0.727514922618866,
3782
+ "z": -0.017512541264295578
3783
+ }, {
3784
+ "x": 0.6968844532966614,
3785
+ "y": 0.6440950036048889,
3786
+ "z": 0.12727996706962585
3787
+ }, {
3788
+ "x": 0.5910853147506714,
3789
+ "y": 0.679325520992279,
3790
+ "z": -0.009497715160250664
3791
+ }, {
3792
+ "x": 0.6157375574111938,
3793
+ "y": 0.7695677280426025,
3794
+ "z": -0.010624290443956852
3795
+ }, {
3796
+ "x": 0.6606494784355164,
3797
+ "y": 0.6410489678382874,
3798
+ "z": 0.0208158977329731
3799
+ }, {
3800
+ "x": 0.6040687561035156,
3801
+ "y": 0.7531470656394958,
3802
+ "z": -0.045887019485235214
3803
+ }, {
3804
+ "x": 0.7012156248092651,
3805
+ "y": 0.780247151851654,
3806
+ "z": 0.14028730988502502
3807
+ }, {
3808
+ "x": 0.595149576663971,
3809
+ "y": 0.6527782678604126,
3810
+ "z": 0.006308757700026035
3811
+ }, {
3812
+ "x": 0.5925500392913818,
3813
+ "y": 0.7436665892601013,
3814
+ "z": -0.060151755809783936
3815
+ }, {
3816
+ "x": 0.6780198812484741,
3817
+ "y": 0.8905693888664246,
3818
+ "z": 0.0626060739159584
3819
+ }, {
3820
+ "x": 0.676746666431427,
3821
+ "y": 0.9113880395889282,
3822
+ "z": 0.08726003766059875
3823
+ }, {
3824
+ "x": 0.7030686140060425,
3825
+ "y": 0.7312687635421753,
3826
+ "z": 0.09529774636030197
3827
+ }, {
3828
+ "x": 0.688987135887146,
3829
+ "y": 0.8588417172431946,
3830
+ "z": 0.07752864807844162
3831
+ }, {
3832
+ "x": 0.6883691549301147,
3833
+ "y": 0.6109960675239563,
3834
+ "z": 0.06669612973928452
3835
+ }, {
3836
+ "x": 0.6358906030654907,
3837
+ "y": 0.9702065587043762,
3838
+ "z": 0.023120900616049767
3839
+ }, {
3840
+ "x": 0.5781539678573608,
3841
+ "y": 0.8023634552955627,
3842
+ "z": -0.044763918966054916
3843
+ }, {
3844
+ "x": 0.6170316934585571,
3845
+ "y": 0.7408350706100464,
3846
+ "z": -0.011375460773706436
3847
+ }, {
3848
+ "x": 0.688542366027832,
3849
+ "y": 0.6516284346580505,
3850
+ "z": 0.050206027925014496
3851
+ }, {
3852
+ "x": 0.6385149359703064,
3853
+ "y": 0.6540714502334595,
3854
+ "z": 0.006462941411882639
3855
+ }, {
3856
+ "x": 0.6279382109642029,
3857
+ "y": 0.6563615798950195,
3858
+ "z": 0.003062846139073372
3859
+ }, {
3860
+ "x": 0.6268895268440247,
3861
+ "y": 0.8736732006072998,
3862
+ "z": 0.00627936702221632
3863
+ }, {
3864
+ "x": 0.6944946050643921,
3865
+ "y": 0.7709181308746338,
3866
+ "z": 0.053824134171009064
3867
+ }, {
3868
+ "x": 0.614617109298706,
3869
+ "y": 1.0022112131118774,
3870
+ "z": 0.02719894051551819
3871
+ }, {
3872
+ "x": 0.6493719220161438,
3873
+ "y": 0.9665167927742004,
3874
+ "z": 0.053563784807920456
3875
+ }, {
3876
+ "x": 0.6624587178230286,
3877
+ "y": 0.943530797958374,
3878
+ "z": 0.068605437874794
3879
+ }, {
3880
+ "x": 0.6162528991699219,
3881
+ "y": 0.6558693051338196,
3882
+ "z": 0.002187855076044798
3883
+ }, {
3884
+ "x": 0.6058168411254883,
3885
+ "y": 0.654328465461731,
3886
+ "z": 0.0036193584091961384
3887
+ }, {
3888
+ "x": 0.5987918972969055,
3889
+ "y": 0.6536934971809387,
3890
+ "z": 0.006134530063718557
3891
+ }, {
3892
+ "x": 0.6831037402153015,
3893
+ "y": 0.6195642948150635,
3894
+ "z": 0.03511790186166763
3895
+ }, {
3896
+ "x": 0.6062582731246948,
3897
+ "y": 0.6356398463249207,
3898
+ "z": 0.001280312892049551
3899
+ }, {
3900
+ "x": 0.6174948811531067,
3901
+ "y": 0.62776118516922,
3902
+ "z": -0.0013642468256875873
3903
+ }, {
3904
+ "x": 0.6297246217727661,
3905
+ "y": 0.6253792643547058,
3906
+ "z": -0.0007034156005829573
3907
+ }, {
3908
+ "x": 0.6407091617584229,
3909
+ "y": 0.627578616142273,
3910
+ "z": 0.0028144705574959517
3911
+ }, {
3912
+ "x": 0.6479622721672058,
3913
+ "y": 0.6322650909423828,
3914
+ "z": 0.00750273372977972
3915
+ }, {
3916
+ "x": 0.6915091276168823,
3917
+ "y": 0.5990704298019409,
3918
+ "z": 0.10270945727825165
3919
+ }, {
3920
+ "x": 0.6457163095474243,
3921
+ "y": 0.6504453420639038,
3922
+ "z": 0.010696077719330788
3923
+ }, {
3924
+ "x": 0.6164222955703735,
3925
+ "y": 0.8231936097145081,
3926
+ "z": -0.016772059723734856
3927
+ }, {
3928
+ "x": 0.6042401194572449,
3929
+ "y": 0.7830976843833923,
3930
+ "z": -0.03630910441279411
3931
+ }, {
3932
+ "x": 0.5922216773033142,
3933
+ "y": 0.8228387236595154,
3934
+ "z": -0.029992375522851944
3935
+ }, {
3936
+ "x": 0.6646111011505127,
3937
+ "y": 0.92097008228302,
3938
+ "z": 0.050967294722795486
3939
+ }, {
3940
+ "x": 0.651232898235321,
3941
+ "y": 0.9460107088088989,
3942
+ "z": 0.038000158965587616
3943
+ }, {
3944
+ "x": 0.6140977144241333,
3945
+ "y": 0.9882472157478333,
3946
+ "z": 0.009882091544568539
3947
+ }, {
3948
+ "x": 0.6870781183242798,
3949
+ "y": 0.8768675327301025,
3950
+ "z": 0.10980932414531708
3951
+ }, {
3952
+ "x": 0.5986856818199158,
3953
+ "y": 0.6456438899040222,
3954
+ "z": 0.003999010659754276
3955
+ }, {
3956
+ "x": 0.585981547832489,
3957
+ "y": 0.7034481763839722,
3958
+ "z": -0.0377722829580307
3959
+ }, {
3960
+ "x": 0.6342031359672546,
3961
+ "y": 0.9867448806762695,
3962
+ "z": 0.03786521404981613
3963
+ }, {
3964
+ "x": 0.7013950943946838,
3965
+ "y": 0.776049017906189,
3966
+ "z": 0.09598205983638763
3967
+ }, {
3968
+ "x": 0.6030206680297852,
3969
+ "y": 0.8719133138656616,
3970
+ "z": -0.007931148633360863
3971
+ }, {
3972
+ "x": 0.6050592064857483,
3973
+ "y": 0.8767156004905701,
3974
+ "z": -0.009791925549507141
3975
+ }, {
3976
+ "x": 0.6073468923568726,
3977
+ "y": 0.8831382393836975,
3978
+ "z": -0.012361008673906326
3979
+ }, {
3980
+ "x": 0.6087977290153503,
3981
+ "y": 0.890143632888794,
3982
+ "z": -0.01098148338496685
3983
+ }, {
3984
+ "x": 0.6147705316543579,
3985
+ "y": 0.9110084772109985,
3986
+ "z": -0.0018823575228452682
3987
+ }, {
3988
+ "x": 0.622577965259552,
3989
+ "y": 0.8670604825019836,
3990
+ "z": 0.002609190298244357
3991
+ }, {
3992
+ "x": 0.6241236329078674,
3993
+ "y": 0.8651344180107117,
3994
+ "z": 0.0025534380692988634
3995
+ }, {
3996
+ "x": 0.6257084608078003,
3997
+ "y": 0.8638408184051514,
3998
+ "z": 0.0023300074972212315
3999
+ }, {
4000
+ "x": 0.639931321144104,
4001
+ "y": 0.8449671268463135,
4002
+ "z": 0.0038123116828501225
4003
+ }, {
4004
+ "x": 0.6810906529426575,
4005
+ "y": 0.7856625318527222,
4006
+ "z": 0.02717764675617218
4007
+ }, {
4008
+ "x": 0.583532452583313,
4009
+ "y": 0.6811994910240173,
4010
+ "z": -0.026588857173919678
4011
+ }, {
4012
+ "x": 0.5855660438537598,
4013
+ "y": 0.6393819451332092,
4014
+ "z": -0.004512844607234001
4015
+ }, {
4016
+ "x": 0.5932201743125916,
4017
+ "y": 0.6398029327392578,
4018
+ "z": 0.0008020466193556786
4019
+ }, {
4020
+ "x": 0.6200879812240601,
4021
+ "y": 0.8683351874351501,
4022
+ "z": 0.00417016725987196
4023
+ }, {
4024
+ "x": 0.6842559576034546,
4025
+ "y": 0.8330534100532532,
4026
+ "z": 0.050836317241191864
4027
+ }, {
4028
+ "x": 0.5754412412643433,
4029
+ "y": 0.6418221592903137,
4030
+ "z": -0.022838059812784195
4031
+ }, {
4032
+ "x": 0.6232790350914001,
4033
+ "y": 0.9295297265052795,
4034
+ "z": 0.006339520215988159
4035
+ }, {
4036
+ "x": 0.5764067769050598,
4037
+ "y": 0.694546639919281,
4038
+ "z": -0.04825803264975548
4039
+ }, {
4040
+ "x": 0.59778892993927,
4041
+ "y": 0.7343927621841431,
4042
+ "z": -0.035004377365112305
4043
+ }, {
4044
+ "x": 0.6042810678482056,
4045
+ "y": 0.9441440105438232,
4046
+ "z": -0.0010970570147037506
4047
+ }, {
4048
+ "x": 0.6496372222900391,
4049
+ "y": 0.8869078159332275,
4050
+ "z": 0.021036235615611076
4051
+ }, {
4052
+ "x": 0.6274012327194214,
4053
+ "y": 0.7830310463905334,
4054
+ "z": -0.006658440921455622
4055
+ }, {
4056
+ "x": 0.637792706489563,
4057
+ "y": 0.9104999899864197,
4058
+ "z": 0.014290250837802887
4059
+ }, {
4060
+ "x": 0.6549934148788452,
4061
+ "y": 0.7748609185218811,
4062
+ "z": -0.0006672973395325243
4063
+ }, {
4064
+ "x": 0.6404005289077759,
4065
+ "y": 0.801220715045929,
4066
+ "z": -0.0026642554439604282
4067
+ }, {
4068
+ "x": 0.6671456694602966,
4069
+ "y": 0.8045546412467957,
4070
+ "z": 0.013180811889469624
4071
+ }, {
4072
+ "x": 0.6107483506202698,
4073
+ "y": 0.9680658578872681,
4074
+ "z": 0.001778992242179811
4075
+ }, {
4076
+ "x": 0.6060343980789185,
4077
+ "y": 0.744587242603302,
4078
+ "z": -0.024382334202528
4079
+ }, {
4080
+ "x": 0.6602751612663269,
4081
+ "y": 0.8998945355415344,
4082
+ "z": 0.0344940721988678
4083
+ }, {
4084
+ "x": 0.6463775038719177,
4085
+ "y": 0.9262562394142151,
4086
+ "z": 0.02617623284459114
4087
+ }, {
4088
+ "x": 0.6579852104187012,
4089
+ "y": 0.8602304458618164,
4090
+ "z": 0.021586716175079346
4091
+ }, {
4092
+ "x": 0.6926165223121643,
4093
+ "y": 0.8053340315818787,
4094
+ "z": 0.061075080186128616
4095
+ }, {
4096
+ "x": 0.6724731922149658,
4097
+ "y": 0.8594399690628052,
4098
+ "z": 0.03457934781908989
4099
+ }, {
4100
+ "x": 0.6975721716880798,
4101
+ "y": 0.8183245062828064,
4102
+ "z": 0.09300774335861206
4103
+ }, {
4104
+ "x": 0.6512877941131592,
4105
+ "y": 0.8258221745491028,
4106
+ "z": 0.006324059329926968
4107
+ }, {
4108
+ "x": 0.594887375831604,
4109
+ "y": 0.7148372530937195,
4110
+ "z": -0.026898479089140892
4111
+ }, {
4112
+ "x": 0.6017440557479858,
4113
+ "y": 0.7773507833480835,
4114
+ "z": -0.05312420800328255
4115
+ }, {
4116
+ "x": 0.6096571683883667,
4117
+ "y": 0.7806998491287231,
4118
+ "z": -0.037646256387233734
4119
+ }, {
4120
+ "x": 0.5952993035316467,
4121
+ "y": 0.7654367685317993,
4122
+ "z": -0.06398405134677887
4123
+ }, {
4124
+ "x": 0.5950021147727966,
4125
+ "y": 0.6201304793357849,
4126
+ "z": -0.009297547861933708
4127
+ }, {
4128
+ "x": 0.6165438890457153,
4129
+ "y": 0.6052900552749634,
4130
+ "z": -0.012455573305487633
4131
+ }, {
4132
+ "x": 0.6362661719322205,
4133
+ "y": 0.6015968918800354,
4134
+ "z": -0.011649220250546932
4135
+ }, {
4136
+ "x": 0.6522727608680725,
4137
+ "y": 0.6046400666236877,
4138
+ "z": -0.005903332494199276
4139
+ }, {
4140
+ "x": 0.6625409722328186,
4141
+ "y": 0.6128141283988953,
4142
+ "z": 0.0030042496509850025
4143
+ }, {
4144
+ "x": 0.6688099503517151,
4145
+ "y": 0.6457712054252625,
4146
+ "z": 0.026322703808546066
4147
+ }, {
4148
+ "x": 0.7013440728187561,
4149
+ "y": 0.6893666386604309,
4150
+ "z": 0.08984331786632538
4151
+ }, {
4152
+ "x": 0.6608623266220093,
4153
+ "y": 0.6749406456947327,
4154
+ "z": 0.0172116681933403
4155
+ }, {
4156
+ "x": 0.6482325196266174,
4157
+ "y": 0.6823726296424866,
4158
+ "z": 0.008881398476660252
4159
+ }, {
4160
+ "x": 0.6313265562057495,
4161
+ "y": 0.6842025518417358,
4162
+ "z": 0.0031308617908507586
4163
+ }, {
4164
+ "x": 0.6147016286849976,
4165
+ "y": 0.6809731721878052,
4166
+ "z": 0.0007630771724507213
4167
+ }, {
4168
+ "x": 0.6018834114074707,
4169
+ "y": 0.6755372285842896,
4170
+ "z": -0.0008834321051836014
4171
+ }, {
4172
+ "x": 0.5925027132034302,
4173
+ "y": 0.670681357383728,
4174
+ "z": -0.001968748401850462
4175
+ }, {
4176
+ "x": 0.700127363204956,
4177
+ "y": 0.6871103644371033,
4178
+ "z": 0.13980500400066376
4179
+ }, {
4180
+ "x": 0.6095665693283081,
4181
+ "y": 0.7853189706802368,
4182
+ "z": -0.03074747882783413
4183
+ }, {
4184
+ "x": 0.5880423784255981,
4185
+ "y": 0.7229287028312683,
4186
+ "z": -0.04691500961780548
4187
+ }, {
4188
+ "x": 0.5930182337760925,
4189
+ "y": 0.7811514139175415,
4190
+ "z": -0.06398335844278336
4191
+ }, {
4192
+ "x": 0.5867722034454346,
4193
+ "y": 0.7922660112380981,
4194
+ "z": -0.05794971063733101
4195
+ }, {
4196
+ "x": 0.5933279991149902,
4197
+ "y": 0.7842848896980286,
4198
+ "z": -0.05714067071676254
4199
+ }, {
4200
+ "x": 0.6063535809516907,
4201
+ "y": 0.7920218706130981,
4202
+ "z": -0.02590685710310936
4203
+ }, {
4204
+ "x": 0.5839452743530273,
4205
+ "y": 0.794978141784668,
4206
+ "z": -0.0615212507545948
4207
+ }, {
4208
+ "x": 0.5828126072883606,
4209
+ "y": 0.8000800013542175,
4210
+ "z": -0.0449722595512867
4211
+ }, {
4212
+ "x": 0.5909603834152222,
4213
+ "y": 0.6541213393211365,
4214
+ "z": 0.003991890233010054
4215
+ }, {
4216
+ "x": 0.5852181911468506,
4217
+ "y": 0.6602938771247864,
4218
+ "z": -0.004428438376635313
4219
+ }, {
4220
+ "x": 0.5825737714767456,
4221
+ "y": 0.6651063561439514,
4222
+ "z": -0.014345290139317513
4223
+ }, {
4224
+ "x": 0.6517343521118164,
4225
+ "y": 0.6362385153770447,
4226
+ "z": 0.012151890434324741
4227
+ }, {
4228
+ "x": 0.6615052819252014,
4229
+ "y": 0.6281577944755554,
4230
+ "z": 0.0123682152479887
4231
+ }, {
4232
+ "x": 0.4856873154640198,
4233
+ "y": 0.6568945646286011,
4234
+ "z": 0.000720038078725338
4235
+ }, {
4236
+ "x": 0.49988406896591187,
4237
+ "y": 0.6547410488128662,
4238
+ "z": 0.0006949726957827806
4239
+ }, {
4240
+ "x": 0.48438939452171326,
4241
+ "y": 0.6392973065376282,
4242
+ "z": 0.000705525919329375
4243
+ }, {
4244
+ "x": 0.47143134474754333,
4245
+ "y": 0.6589511632919312,
4246
+ "z": 0.0006980331381782889
4247
+ }, {
4248
+ "x": 0.48704618215560913,
4249
+ "y": 0.6752797961235046,
4250
+ "z": 0.0006921177846379578
4251
+ }, {
4252
+ "x": 0.6243702173233032,
4253
+ "y": 0.640461802482605,
4254
+ "z": -0.00006592126737814397
4255
+ }, {
4256
+ "x": 0.6390967965126038,
4257
+ "y": 0.6385173797607422,
4258
+ "z": -0.00016105435497593135
4259
+ }, {
4260
+ "x": 0.6230536699295044,
4261
+ "y": 0.6224825382232666,
4262
+ "z": -0.00016136496560648084
4263
+ }, {
4264
+ "x": 0.6095397472381592,
4265
+ "y": 0.641917884349823,
4266
+ "z": -0.0001803556369850412
4267
+ }, {
4268
+ "x": 0.6250996589660645,
4269
+ "y": 0.6586247682571411,
4270
+ "z": -0.0001785515050869435
4271
+ }]],
4272
+ "faceBlendshapes": [{
4273
+ "categories": [{
4274
+ "index": 0,
4275
+ "score": 0.000005187174338061595,
4276
+ "categoryName": "_neutral",
4277
+ "displayName": ""
4278
+ }, {
4279
+ "index": 1,
4280
+ "score": 0.24521504342556,
4281
+ "categoryName": "browDownLeft",
4282
+ "displayName": ""
4283
+ }, {
4284
+ "index": 2,
4285
+ "score": 0.1987743377685547,
4286
+ "categoryName": "browDownRight",
4287
+ "displayName": ""
4288
+ }, {
4289
+ "index": 3,
4290
+ "score": 0.013400448486208916,
4291
+ "categoryName": "browInnerUp",
4292
+ "displayName": ""
4293
+ }, {
4294
+ "index": 4,
4295
+ "score": 0.012361560948193073,
4296
+ "categoryName": "browOuterUpLeft",
4297
+ "displayName": ""
4298
+ }, {
4299
+ "index": 5,
4300
+ "score": 0.019305096939206123,
4301
+ "categoryName": "browOuterUpRight",
4302
+ "displayName": ""
4303
+ }, {
4304
+ "index": 6,
4305
+ "score": 0.000028426356948330067,
4306
+ "categoryName": "cheekPuff",
4307
+ "displayName": ""
4308
+ }, {
4309
+ "index": 7,
4310
+ "score": 3.4500112633395474e-7,
4311
+ "categoryName": "cheekSquintLeft",
4312
+ "displayName": ""
4313
+ }, {
4314
+ "index": 8,
4315
+ "score": 4.83789051486383e-7,
4316
+ "categoryName": "cheekSquintRight",
4317
+ "displayName": ""
4318
+ }, {
4319
+ "index": 9,
4320
+ "score": 0.07650448381900787,
4321
+ "categoryName": "eyeBlinkLeft",
4322
+ "displayName": ""
4323
+ }, {
4324
+ "index": 10,
4325
+ "score": 0.05070012807846069,
4326
+ "categoryName": "eyeBlinkRight",
4327
+ "displayName": ""
4328
+ }, {
4329
+ "index": 11,
4330
+ "score": 0.13978900015354156,
4331
+ "categoryName": "eyeLookDownLeft",
4332
+ "displayName": ""
4333
+ }, {
4334
+ "index": 12,
4335
+ "score": 0.14198613166809082,
4336
+ "categoryName": "eyeLookDownRight",
4337
+ "displayName": ""
4338
+ }, {
4339
+ "index": 13,
4340
+ "score": 0.2177766114473343,
4341
+ "categoryName": "eyeLookInLeft",
4342
+ "displayName": ""
4343
+ }, {
4344
+ "index": 14,
4345
+ "score": 0.014739357866346836,
4346
+ "categoryName": "eyeLookInRight",
4347
+ "displayName": ""
4348
+ }, {
4349
+ "index": 15,
4350
+ "score": 0.02361512929201126,
4351
+ "categoryName": "eyeLookOutLeft",
4352
+ "displayName": ""
4353
+ }, {
4354
+ "index": 16,
4355
+ "score": 0.19679604470729828,
4356
+ "categoryName": "eyeLookOutRight",
4357
+ "displayName": ""
4358
+ }, {
4359
+ "index": 17,
4360
+ "score": 0.04874616861343384,
4361
+ "categoryName": "eyeLookUpLeft",
4362
+ "displayName": ""
4363
+ }, {
4364
+ "index": 18,
4365
+ "score": 0.049392376095056534,
4366
+ "categoryName": "eyeLookUpRight",
4367
+ "displayName": ""
4368
+ }, {
4369
+ "index": 19,
4370
+ "score": 0.34944331645965576,
4371
+ "categoryName": "eyeSquintLeft",
4372
+ "displayName": ""
4373
+ }, {
4374
+ "index": 20,
4375
+ "score": 0.2939716875553131,
4376
+ "categoryName": "eyeSquintRight",
4377
+ "displayName": ""
4378
+ }, {
4379
+ "index": 21,
4380
+ "score": 0.005955042317509651,
4381
+ "categoryName": "eyeWideLeft",
4382
+ "displayName": ""
4383
+ }, {
4384
+ "index": 22,
4385
+ "score": 0.006776117719709873,
4386
+ "categoryName": "eyeWideRight",
4387
+ "displayName": ""
4388
+ }, {
4389
+ "index": 23,
4390
+ "score": 0.000016942436559475027,
4391
+ "categoryName": "jawForward",
4392
+ "displayName": ""
4393
+ }, {
4394
+ "index": 24,
4395
+ "score": 0.0045165494084358215,
4396
+ "categoryName": "jawLeft",
4397
+ "displayName": ""
4398
+ }, {
4399
+ "index": 25,
4400
+ "score": 0.07803940027952194,
4401
+ "categoryName": "jawOpen",
4402
+ "displayName": ""
4403
+ }, {
4404
+ "index": 26,
4405
+ "score": 0.00002090057751047425,
4406
+ "categoryName": "jawRight",
4407
+ "displayName": ""
4408
+ }, {
4409
+ "index": 27,
4410
+ "score": 0.06032035872340202,
4411
+ "categoryName": "mouthClose",
4412
+ "displayName": ""
4413
+ }, {
4414
+ "index": 28,
4415
+ "score": 0.00228882092051208,
4416
+ "categoryName": "mouthDimpleLeft",
4417
+ "displayName": ""
4418
+ }, {
4419
+ "index": 29,
4420
+ "score": 0.00781762320548296,
4421
+ "categoryName": "mouthDimpleRight",
4422
+ "displayName": ""
4423
+ }, {
4424
+ "index": 30,
4425
+ "score": 0.0017093931091949344,
4426
+ "categoryName": "mouthFrownLeft",
4427
+ "displayName": ""
4428
+ }, {
4429
+ "index": 31,
4430
+ "score": 0.0019319106359034777,
4431
+ "categoryName": "mouthFrownRight",
4432
+ "displayName": ""
4433
+ }, {
4434
+ "index": 32,
4435
+ "score": 0.00008485237776767462,
4436
+ "categoryName": "mouthFunnel",
4437
+ "displayName": ""
4438
+ }, {
4439
+ "index": 33,
4440
+ "score": 0.0009051355300471187,
4441
+ "categoryName": "mouthLeft",
4442
+ "displayName": ""
4443
+ }, {
4444
+ "index": 34,
4445
+ "score": 0.0003630454302765429,
4446
+ "categoryName": "mouthLowerDownLeft",
4447
+ "displayName": ""
4448
+ }, {
4449
+ "index": 35,
4450
+ "score": 0.00017601238505449146,
4451
+ "categoryName": "mouthLowerDownRight",
4452
+ "displayName": ""
4453
+ }, {
4454
+ "index": 36,
4455
+ "score": 0.12865161895751953,
4456
+ "categoryName": "mouthPressLeft",
4457
+ "displayName": ""
4458
+ }, {
4459
+ "index": 37,
4460
+ "score": 0.20137207210063934,
4461
+ "categoryName": "mouthPressRight",
4462
+ "displayName": ""
4463
+ }, {
4464
+ "index": 38,
4465
+ "score": 0.0022203284315764904,
4466
+ "categoryName": "mouthPucker",
4467
+ "displayName": ""
4468
+ }, {
4469
+ "index": 39,
4470
+ "score": 0.0009096377179957926,
4471
+ "categoryName": "mouthRight",
4472
+ "displayName": ""
4473
+ }, {
4474
+ "index": 40,
4475
+ "score": 0.34189721941947937,
4476
+ "categoryName": "mouthRollLower",
4477
+ "displayName": ""
4478
+ }, {
4479
+ "index": 41,
4480
+ "score": 0.11409689486026764,
4481
+ "categoryName": "mouthRollUpper",
4482
+ "displayName": ""
4483
+ }, {
4484
+ "index": 42,
4485
+ "score": 0.17172536253929138,
4486
+ "categoryName": "mouthShrugLower",
4487
+ "displayName": ""
4488
+ }, {
4489
+ "index": 43,
4490
+ "score": 0.004038424696773291,
4491
+ "categoryName": "mouthShrugUpper",
4492
+ "displayName": ""
4493
+ }, {
4494
+ "index": 44,
4495
+ "score": 0.00023205230536404997,
4496
+ "categoryName": "mouthSmileLeft",
4497
+ "displayName": ""
4498
+ }, {
4499
+ "index": 45,
4500
+ "score": 0.00019313619122840464,
4501
+ "categoryName": "mouthSmileRight",
4502
+ "displayName": ""
4503
+ }, {
4504
+ "index": 46,
4505
+ "score": 0.0018571305554360151,
4506
+ "categoryName": "mouthStretchLeft",
4507
+ "displayName": ""
4508
+ }, {
4509
+ "index": 47,
4510
+ "score": 0.0023813238367438316,
4511
+ "categoryName": "mouthStretchRight",
4512
+ "displayName": ""
4513
+ }, {
4514
+ "index": 48,
4515
+ "score": 0.000024323100660694763,
4516
+ "categoryName": "mouthUpperUpLeft",
4517
+ "displayName": ""
4518
+ }, {
4519
+ "index": 49,
4520
+ "score": 0.00003161552012898028,
4521
+ "categoryName": "mouthUpperUpRight",
4522
+ "displayName": ""
4523
+ }, {
4524
+ "index": 50,
4525
+ "score": 1.08198406678639e-7,
4526
+ "categoryName": "noseSneerLeft",
4527
+ "displayName": ""
4528
+ }, {
4529
+ "index": 51,
4530
+ "score": 0.0000012652527630052646,
4531
+ "categoryName": "noseSneerRight",
4532
+ "displayName": ""
4533
+ }],
4534
+ "headIndex": -1,
4535
+ "headName": ""
4536
+ }],
4537
+ "facialTransformationMatrixes": [{
4538
+ "rows": 4,
4539
+ "columns": 4,
4540
+ "data": [0.9947517514228821, 0.10230544209480286, 0.0013679931871592999, 0, -0.10230997204780579, 0.9947447776794434, 0.003816320328041911, 0, -0.000970348424743861, -0.0039362297393381596, 0.9999914169311523, 0, 2.8888821601867676, -7.808934211730957, -30.52109146118164, 1]
4541
+ }]
4542
+ }
2119
4543
  };
2120
4544
 
2121
- export { Facemesh, FacemeshDatas };
4545
+ export { Facemesh, FacemeshDatas, FacemeshEye, FacemeshEyeDefaults };