rtmlib-ts 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +1 -0
- package/README.md +202 -0
- package/dist/core/base.d.ts +20 -0
- package/dist/core/base.d.ts.map +1 -0
- package/dist/core/base.js +40 -0
- package/dist/core/file.d.ts +11 -0
- package/dist/core/file.d.ts.map +1 -0
- package/dist/core/file.js +111 -0
- package/dist/core/modelCache.d.ts +35 -0
- package/dist/core/modelCache.d.ts.map +1 -0
- package/dist/core/modelCache.js +161 -0
- package/dist/core/posePostprocessing.d.ts +12 -0
- package/dist/core/posePostprocessing.d.ts.map +1 -0
- package/dist/core/posePostprocessing.js +76 -0
- package/dist/core/postprocessing.d.ts +10 -0
- package/dist/core/postprocessing.d.ts.map +1 -0
- package/dist/core/postprocessing.js +70 -0
- package/dist/core/preprocessing.d.ts +14 -0
- package/dist/core/preprocessing.d.ts.map +1 -0
- package/dist/core/preprocessing.js +79 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +31 -0
- package/dist/models/rtmpose.d.ts +25 -0
- package/dist/models/rtmpose.d.ts.map +1 -0
- package/dist/models/rtmpose.js +185 -0
- package/dist/models/rtmpose3d.d.ts +28 -0
- package/dist/models/rtmpose3d.d.ts.map +1 -0
- package/dist/models/rtmpose3d.js +184 -0
- package/dist/models/yolo12.d.ts +23 -0
- package/dist/models/yolo12.d.ts.map +1 -0
- package/dist/models/yolo12.js +165 -0
- package/dist/models/yolox.d.ts +18 -0
- package/dist/models/yolox.d.ts.map +1 -0
- package/dist/models/yolox.js +167 -0
- package/dist/solution/animalDetector.d.ts +229 -0
- package/dist/solution/animalDetector.d.ts.map +1 -0
- package/dist/solution/animalDetector.js +663 -0
- package/dist/solution/body.d.ts +16 -0
- package/dist/solution/body.d.ts.map +1 -0
- package/dist/solution/body.js +52 -0
- package/dist/solution/bodyWithFeet.d.ts +16 -0
- package/dist/solution/bodyWithFeet.d.ts.map +1 -0
- package/dist/solution/bodyWithFeet.js +52 -0
- package/dist/solution/customDetector.d.ts +137 -0
- package/dist/solution/customDetector.d.ts.map +1 -0
- package/dist/solution/customDetector.js +342 -0
- package/dist/solution/hand.d.ts +14 -0
- package/dist/solution/hand.d.ts.map +1 -0
- package/dist/solution/hand.js +20 -0
- package/dist/solution/index.d.ts +10 -0
- package/dist/solution/index.d.ts.map +1 -0
- package/dist/solution/index.js +9 -0
- package/dist/solution/objectDetector.d.ts +172 -0
- package/dist/solution/objectDetector.d.ts.map +1 -0
- package/dist/solution/objectDetector.js +606 -0
- package/dist/solution/pose3dDetector.d.ts +145 -0
- package/dist/solution/pose3dDetector.d.ts.map +1 -0
- package/dist/solution/pose3dDetector.js +611 -0
- package/dist/solution/poseDetector.d.ts +198 -0
- package/dist/solution/poseDetector.d.ts.map +1 -0
- package/dist/solution/poseDetector.js +622 -0
- package/dist/solution/poseTracker.d.ts +22 -0
- package/dist/solution/poseTracker.d.ts.map +1 -0
- package/dist/solution/poseTracker.js +106 -0
- package/dist/solution/wholebody.d.ts +19 -0
- package/dist/solution/wholebody.d.ts.map +1 -0
- package/dist/solution/wholebody.js +82 -0
- package/dist/solution/wholebody3d.d.ts +22 -0
- package/dist/solution/wholebody3d.d.ts.map +1 -0
- package/dist/solution/wholebody3d.js +75 -0
- package/dist/types/index.d.ts +52 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/visualization/draw.d.ts +57 -0
- package/dist/visualization/draw.d.ts.map +1 -0
- package/dist/visualization/draw.js +400 -0
- package/dist/visualization/skeleton/coco133.d.ts +350 -0
- package/dist/visualization/skeleton/coco133.d.ts.map +1 -0
- package/dist/visualization/skeleton/coco133.js +120 -0
- package/dist/visualization/skeleton/coco17.d.ts +180 -0
- package/dist/visualization/skeleton/coco17.d.ts.map +1 -0
- package/dist/visualization/skeleton/coco17.js +48 -0
- package/dist/visualization/skeleton/halpe26.d.ts +278 -0
- package/dist/visualization/skeleton/halpe26.d.ts.map +1 -0
- package/dist/visualization/skeleton/halpe26.js +70 -0
- package/dist/visualization/skeleton/hand21.d.ts +196 -0
- package/dist/visualization/skeleton/hand21.d.ts.map +1 -0
- package/dist/visualization/skeleton/hand21.js +51 -0
- package/dist/visualization/skeleton/index.d.ts +10 -0
- package/dist/visualization/skeleton/index.d.ts.map +1 -0
- package/dist/visualization/skeleton/index.js +9 -0
- package/dist/visualization/skeleton/openpose134.d.ts +357 -0
- package/dist/visualization/skeleton/openpose134.d.ts.map +1 -0
- package/dist/visualization/skeleton/openpose134.js +116 -0
- package/dist/visualization/skeleton/openpose18.d.ts +177 -0
- package/dist/visualization/skeleton/openpose18.d.ts.map +1 -0
- package/dist/visualization/skeleton/openpose18.js +47 -0
- package/docs/ANIMAL_DETECTOR.md +450 -0
- package/docs/CUSTOM_DETECTOR.md +568 -0
- package/docs/OBJECT_DETECTOR.md +373 -0
- package/docs/POSE3D_DETECTOR.md +458 -0
- package/docs/POSE_DETECTOR.md +442 -0
- package/examples/README.md +119 -0
- package/examples/index.html +746 -0
- package/package.json +51 -0
- package/playground/README.md +114 -0
- package/playground/app/favicon.ico +0 -0
- package/playground/app/globals.css +17 -0
- package/playground/app/layout.tsx +19 -0
- package/playground/app/page.tsx +1338 -0
- package/playground/eslint.config.mjs +18 -0
- package/playground/next.config.ts +34 -0
- package/playground/package-lock.json +6723 -0
- package/playground/package.json +27 -0
- package/playground/postcss.config.mjs +7 -0
- package/playground/tsconfig.json +34 -0
- package/src/core/base.ts +66 -0
- package/src/core/file.ts +141 -0
- package/src/core/modelCache.ts +189 -0
- package/src/core/posePostprocessing.ts +91 -0
- package/src/core/postprocessing.ts +93 -0
- package/src/core/preprocessing.ts +127 -0
- package/src/index.ts +69 -0
- package/src/models/rtmpose.ts +265 -0
- package/src/models/rtmpose3d.ts +289 -0
- package/src/models/yolo12.ts +220 -0
- package/src/models/yolox.ts +214 -0
- package/src/solution/animalDetector.ts +955 -0
- package/src/solution/body.ts +89 -0
- package/src/solution/bodyWithFeet.ts +89 -0
- package/src/solution/customDetector.ts +474 -0
- package/src/solution/hand.ts +52 -0
- package/src/solution/index.ts +10 -0
- package/src/solution/objectDetector.ts +816 -0
- package/src/solution/pose3dDetector.ts +890 -0
- package/src/solution/poseDetector.ts +892 -0
- package/src/solution/poseTracker.ts +172 -0
- package/src/solution/wholebody.ts +130 -0
- package/src/solution/wholebody3d.ts +125 -0
- package/src/types/index.ts +62 -0
- package/src/visualization/draw.ts +543 -0
- package/src/visualization/skeleton/coco133.ts +131 -0
- package/src/visualization/skeleton/coco17.ts +49 -0
- package/src/visualization/skeleton/halpe26.ts +71 -0
- package/src/visualization/skeleton/hand21.ts +52 -0
- package/src/visualization/skeleton/index.ts +10 -0
- package/src/visualization/skeleton/openpose134.ts +125 -0
- package/src/visualization/skeleton/openpose18.ts +48 -0
- package/tsconfig.json +32 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* COCO133 skeleton configuration
|
|
3
|
+
* 133 keypoints for wholebody pose estimation (body + hands + face)
|
|
4
|
+
*/
|
|
5
|
+
export declare const coco133: {
|
|
6
|
+
readonly keypoint_info: {
|
|
7
|
+
readonly 131: {
|
|
8
|
+
readonly name: "right_foot_0";
|
|
9
|
+
readonly id: 131;
|
|
10
|
+
readonly color: readonly [128, 0, 255];
|
|
11
|
+
};
|
|
12
|
+
readonly 132: {
|
|
13
|
+
readonly name: "right_foot_1";
|
|
14
|
+
readonly id: 132;
|
|
15
|
+
readonly color: readonly [128, 0, 255];
|
|
16
|
+
};
|
|
17
|
+
readonly 0: {
|
|
18
|
+
readonly name: "nose";
|
|
19
|
+
readonly id: 0;
|
|
20
|
+
readonly color: readonly [51, 255, 255];
|
|
21
|
+
};
|
|
22
|
+
readonly 1: {
|
|
23
|
+
readonly name: "left_eye";
|
|
24
|
+
readonly id: 1;
|
|
25
|
+
readonly color: readonly [51, 255, 255];
|
|
26
|
+
};
|
|
27
|
+
readonly 2: {
|
|
28
|
+
readonly name: "right_eye";
|
|
29
|
+
readonly id: 2;
|
|
30
|
+
readonly color: readonly [51, 255, 255];
|
|
31
|
+
};
|
|
32
|
+
readonly 3: {
|
|
33
|
+
readonly name: "left_ear";
|
|
34
|
+
readonly id: 3;
|
|
35
|
+
readonly color: readonly [51, 255, 255];
|
|
36
|
+
};
|
|
37
|
+
readonly 4: {
|
|
38
|
+
readonly name: "right_ear";
|
|
39
|
+
readonly id: 4;
|
|
40
|
+
readonly color: readonly [51, 255, 255];
|
|
41
|
+
};
|
|
42
|
+
readonly 5: {
|
|
43
|
+
readonly name: "left_shoulder";
|
|
44
|
+
readonly id: 5;
|
|
45
|
+
readonly color: readonly [255, 51, 255];
|
|
46
|
+
};
|
|
47
|
+
readonly 6: {
|
|
48
|
+
readonly name: "right_shoulder";
|
|
49
|
+
readonly id: 6;
|
|
50
|
+
readonly color: readonly [255, 51, 255];
|
|
51
|
+
};
|
|
52
|
+
readonly 7: {
|
|
53
|
+
readonly name: "left_elbow";
|
|
54
|
+
readonly id: 7;
|
|
55
|
+
readonly color: readonly [255, 51, 255];
|
|
56
|
+
};
|
|
57
|
+
readonly 8: {
|
|
58
|
+
readonly name: "right_elbow";
|
|
59
|
+
readonly id: 8;
|
|
60
|
+
readonly color: readonly [255, 51, 255];
|
|
61
|
+
};
|
|
62
|
+
readonly 9: {
|
|
63
|
+
readonly name: "left_wrist";
|
|
64
|
+
readonly id: 9;
|
|
65
|
+
readonly color: readonly [255, 51, 255];
|
|
66
|
+
};
|
|
67
|
+
readonly 10: {
|
|
68
|
+
readonly name: "right_wrist";
|
|
69
|
+
readonly id: 10;
|
|
70
|
+
readonly color: readonly [255, 51, 255];
|
|
71
|
+
};
|
|
72
|
+
readonly 11: {
|
|
73
|
+
readonly name: "left_hip";
|
|
74
|
+
readonly id: 11;
|
|
75
|
+
readonly color: readonly [255, 255, 51];
|
|
76
|
+
};
|
|
77
|
+
readonly 12: {
|
|
78
|
+
readonly name: "right_hip";
|
|
79
|
+
readonly id: 12;
|
|
80
|
+
readonly color: readonly [255, 255, 51];
|
|
81
|
+
};
|
|
82
|
+
readonly 13: {
|
|
83
|
+
readonly name: "left_knee";
|
|
84
|
+
readonly id: 13;
|
|
85
|
+
readonly color: readonly [255, 255, 51];
|
|
86
|
+
};
|
|
87
|
+
readonly 14: {
|
|
88
|
+
readonly name: "right_knee";
|
|
89
|
+
readonly id: 14;
|
|
90
|
+
readonly color: readonly [255, 255, 51];
|
|
91
|
+
};
|
|
92
|
+
readonly 15: {
|
|
93
|
+
readonly name: "left_ankle";
|
|
94
|
+
readonly id: 15;
|
|
95
|
+
readonly color: readonly [255, 255, 51];
|
|
96
|
+
};
|
|
97
|
+
readonly 16: {
|
|
98
|
+
readonly name: "right_ankle";
|
|
99
|
+
readonly id: 16;
|
|
100
|
+
readonly color: readonly [255, 255, 51];
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
readonly skeleton_info: {
|
|
104
|
+
readonly 38: {
|
|
105
|
+
readonly link: readonly ["left_hand_0", "left_hand_1"];
|
|
106
|
+
readonly color: readonly [255, 128, 0];
|
|
107
|
+
};
|
|
108
|
+
readonly 39: {
|
|
109
|
+
readonly link: readonly ["left_hand_1", "left_hand_2"];
|
|
110
|
+
readonly color: readonly [255, 128, 0];
|
|
111
|
+
};
|
|
112
|
+
readonly 40: {
|
|
113
|
+
readonly link: readonly ["left_hand_2", "left_hand_3"];
|
|
114
|
+
readonly color: readonly [255, 128, 0];
|
|
115
|
+
};
|
|
116
|
+
readonly 41: {
|
|
117
|
+
readonly link: readonly ["left_hand_3", "left_hand_4"];
|
|
118
|
+
readonly color: readonly [255, 128, 0];
|
|
119
|
+
};
|
|
120
|
+
readonly 42: {
|
|
121
|
+
readonly link: readonly ["left_hand_0", "left_hand_5"];
|
|
122
|
+
readonly color: readonly [255, 128, 0];
|
|
123
|
+
};
|
|
124
|
+
readonly 43: {
|
|
125
|
+
readonly link: readonly ["left_hand_5", "left_hand_6"];
|
|
126
|
+
readonly color: readonly [255, 128, 0];
|
|
127
|
+
};
|
|
128
|
+
readonly 44: {
|
|
129
|
+
readonly link: readonly ["left_hand_6", "left_hand_7"];
|
|
130
|
+
readonly color: readonly [255, 128, 0];
|
|
131
|
+
};
|
|
132
|
+
readonly 45: {
|
|
133
|
+
readonly link: readonly ["left_hand_7", "left_hand_8"];
|
|
134
|
+
readonly color: readonly [255, 128, 0];
|
|
135
|
+
};
|
|
136
|
+
readonly 46: {
|
|
137
|
+
readonly link: readonly ["left_hand_0", "left_hand_9"];
|
|
138
|
+
readonly color: readonly [255, 128, 0];
|
|
139
|
+
};
|
|
140
|
+
readonly 47: {
|
|
141
|
+
readonly link: readonly ["left_hand_9", "left_hand_10"];
|
|
142
|
+
readonly color: readonly [255, 128, 0];
|
|
143
|
+
};
|
|
144
|
+
readonly 48: {
|
|
145
|
+
readonly link: readonly ["left_hand_10", "left_hand_11"];
|
|
146
|
+
readonly color: readonly [255, 128, 0];
|
|
147
|
+
};
|
|
148
|
+
readonly 49: {
|
|
149
|
+
readonly link: readonly ["left_hand_11", "left_hand_12"];
|
|
150
|
+
readonly color: readonly [255, 128, 0];
|
|
151
|
+
};
|
|
152
|
+
readonly 50: {
|
|
153
|
+
readonly link: readonly ["left_hand_0", "left_hand_13"];
|
|
154
|
+
readonly color: readonly [255, 128, 0];
|
|
155
|
+
};
|
|
156
|
+
readonly 51: {
|
|
157
|
+
readonly link: readonly ["left_hand_13", "left_hand_14"];
|
|
158
|
+
readonly color: readonly [255, 128, 0];
|
|
159
|
+
};
|
|
160
|
+
readonly 52: {
|
|
161
|
+
readonly link: readonly ["left_hand_14", "left_hand_15"];
|
|
162
|
+
readonly color: readonly [255, 128, 0];
|
|
163
|
+
};
|
|
164
|
+
readonly 53: {
|
|
165
|
+
readonly link: readonly ["left_hand_15", "left_hand_16"];
|
|
166
|
+
readonly color: readonly [255, 128, 0];
|
|
167
|
+
};
|
|
168
|
+
readonly 54: {
|
|
169
|
+
readonly link: readonly ["left_hand_0", "left_hand_17"];
|
|
170
|
+
readonly color: readonly [255, 128, 0];
|
|
171
|
+
};
|
|
172
|
+
readonly 55: {
|
|
173
|
+
readonly link: readonly ["left_hand_17", "left_hand_18"];
|
|
174
|
+
readonly color: readonly [255, 128, 0];
|
|
175
|
+
};
|
|
176
|
+
readonly 56: {
|
|
177
|
+
readonly link: readonly ["left_hand_18", "left_hand_19"];
|
|
178
|
+
readonly color: readonly [255, 128, 0];
|
|
179
|
+
};
|
|
180
|
+
readonly 57: {
|
|
181
|
+
readonly link: readonly ["left_hand_19", "left_hand_20"];
|
|
182
|
+
readonly color: readonly [255, 128, 0];
|
|
183
|
+
};
|
|
184
|
+
readonly 58: {
|
|
185
|
+
readonly link: readonly ["right_hand_0", "right_hand_1"];
|
|
186
|
+
readonly color: readonly [0, 128, 255];
|
|
187
|
+
};
|
|
188
|
+
readonly 59: {
|
|
189
|
+
readonly link: readonly ["right_hand_1", "right_hand_2"];
|
|
190
|
+
readonly color: readonly [0, 128, 255];
|
|
191
|
+
};
|
|
192
|
+
readonly 60: {
|
|
193
|
+
readonly link: readonly ["right_hand_2", "right_hand_3"];
|
|
194
|
+
readonly color: readonly [0, 128, 255];
|
|
195
|
+
};
|
|
196
|
+
readonly 61: {
|
|
197
|
+
readonly link: readonly ["right_hand_3", "right_hand_4"];
|
|
198
|
+
readonly color: readonly [0, 128, 255];
|
|
199
|
+
};
|
|
200
|
+
readonly 62: {
|
|
201
|
+
readonly link: readonly ["right_hand_0", "right_hand_5"];
|
|
202
|
+
readonly color: readonly [0, 128, 255];
|
|
203
|
+
};
|
|
204
|
+
readonly 63: {
|
|
205
|
+
readonly link: readonly ["right_hand_5", "right_hand_6"];
|
|
206
|
+
readonly color: readonly [0, 128, 255];
|
|
207
|
+
};
|
|
208
|
+
readonly 64: {
|
|
209
|
+
readonly link: readonly ["right_hand_6", "right_hand_7"];
|
|
210
|
+
readonly color: readonly [0, 128, 255];
|
|
211
|
+
};
|
|
212
|
+
readonly 65: {
|
|
213
|
+
readonly link: readonly ["right_hand_7", "right_hand_8"];
|
|
214
|
+
readonly color: readonly [0, 128, 255];
|
|
215
|
+
};
|
|
216
|
+
readonly 66: {
|
|
217
|
+
readonly link: readonly ["right_hand_0", "right_hand_9"];
|
|
218
|
+
readonly color: readonly [0, 128, 255];
|
|
219
|
+
};
|
|
220
|
+
readonly 67: {
|
|
221
|
+
readonly link: readonly ["right_hand_9", "right_hand_10"];
|
|
222
|
+
readonly color: readonly [0, 128, 255];
|
|
223
|
+
};
|
|
224
|
+
readonly 68: {
|
|
225
|
+
readonly link: readonly ["right_hand_10", "right_hand_11"];
|
|
226
|
+
readonly color: readonly [0, 128, 255];
|
|
227
|
+
};
|
|
228
|
+
readonly 69: {
|
|
229
|
+
readonly link: readonly ["right_hand_11", "right_hand_12"];
|
|
230
|
+
readonly color: readonly [0, 128, 255];
|
|
231
|
+
};
|
|
232
|
+
readonly 70: {
|
|
233
|
+
readonly link: readonly ["right_hand_0", "right_hand_13"];
|
|
234
|
+
readonly color: readonly [0, 128, 255];
|
|
235
|
+
};
|
|
236
|
+
readonly 71: {
|
|
237
|
+
readonly link: readonly ["right_hand_13", "right_hand_14"];
|
|
238
|
+
readonly color: readonly [0, 128, 255];
|
|
239
|
+
};
|
|
240
|
+
readonly 72: {
|
|
241
|
+
readonly link: readonly ["right_hand_14", "right_hand_15"];
|
|
242
|
+
readonly color: readonly [0, 128, 255];
|
|
243
|
+
};
|
|
244
|
+
readonly 73: {
|
|
245
|
+
readonly link: readonly ["right_hand_15", "right_hand_16"];
|
|
246
|
+
readonly color: readonly [0, 128, 255];
|
|
247
|
+
};
|
|
248
|
+
readonly 74: {
|
|
249
|
+
readonly link: readonly ["right_hand_0", "right_hand_17"];
|
|
250
|
+
readonly color: readonly [0, 128, 255];
|
|
251
|
+
};
|
|
252
|
+
readonly 75: {
|
|
253
|
+
readonly link: readonly ["right_hand_17", "right_hand_18"];
|
|
254
|
+
readonly color: readonly [0, 128, 255];
|
|
255
|
+
};
|
|
256
|
+
readonly 76: {
|
|
257
|
+
readonly link: readonly ["right_hand_18", "right_hand_19"];
|
|
258
|
+
readonly color: readonly [0, 128, 255];
|
|
259
|
+
};
|
|
260
|
+
readonly 77: {
|
|
261
|
+
readonly link: readonly ["right_hand_19", "right_hand_20"];
|
|
262
|
+
readonly color: readonly [0, 128, 255];
|
|
263
|
+
};
|
|
264
|
+
readonly 0: {
|
|
265
|
+
readonly link: readonly ["left_ankle", "left_knee"];
|
|
266
|
+
readonly color: readonly [255, 51, 255];
|
|
267
|
+
};
|
|
268
|
+
readonly 1: {
|
|
269
|
+
readonly link: readonly ["left_knee", "left_hip"];
|
|
270
|
+
readonly color: readonly [255, 51, 255];
|
|
271
|
+
};
|
|
272
|
+
readonly 2: {
|
|
273
|
+
readonly link: readonly ["left_hip", "right_hip"];
|
|
274
|
+
readonly color: readonly [255, 255, 51];
|
|
275
|
+
};
|
|
276
|
+
readonly 3: {
|
|
277
|
+
readonly link: readonly ["right_hip", "right_knee"];
|
|
278
|
+
readonly color: readonly [255, 51, 255];
|
|
279
|
+
};
|
|
280
|
+
readonly 4: {
|
|
281
|
+
readonly link: readonly ["right_knee", "right_ankle"];
|
|
282
|
+
readonly color: readonly [255, 51, 255];
|
|
283
|
+
};
|
|
284
|
+
readonly 5: {
|
|
285
|
+
readonly link: readonly ["left_hip", "left_shoulder"];
|
|
286
|
+
readonly color: readonly [255, 255, 51];
|
|
287
|
+
};
|
|
288
|
+
readonly 6: {
|
|
289
|
+
readonly link: readonly ["left_shoulder", "left_elbow"];
|
|
290
|
+
readonly color: readonly [255, 255, 51];
|
|
291
|
+
};
|
|
292
|
+
readonly 7: {
|
|
293
|
+
readonly link: readonly ["left_elbow", "left_wrist"];
|
|
294
|
+
readonly color: readonly [255, 255, 51];
|
|
295
|
+
};
|
|
296
|
+
readonly 8: {
|
|
297
|
+
readonly link: readonly ["right_hip", "right_shoulder"];
|
|
298
|
+
readonly color: readonly [255, 255, 51];
|
|
299
|
+
};
|
|
300
|
+
readonly 9: {
|
|
301
|
+
readonly link: readonly ["right_shoulder", "right_elbow"];
|
|
302
|
+
readonly color: readonly [255, 255, 51];
|
|
303
|
+
};
|
|
304
|
+
readonly 10: {
|
|
305
|
+
readonly link: readonly ["right_elbow", "right_wrist"];
|
|
306
|
+
readonly color: readonly [255, 255, 51];
|
|
307
|
+
};
|
|
308
|
+
readonly 11: {
|
|
309
|
+
readonly link: readonly ["left_shoulder", "right_shoulder"];
|
|
310
|
+
readonly color: readonly [255, 255, 51];
|
|
311
|
+
};
|
|
312
|
+
readonly 12: {
|
|
313
|
+
readonly link: readonly ["nose", "left_shoulder"];
|
|
314
|
+
readonly color: readonly [255, 255, 51];
|
|
315
|
+
};
|
|
316
|
+
readonly 13: {
|
|
317
|
+
readonly link: readonly ["nose", "right_shoulder"];
|
|
318
|
+
readonly color: readonly [255, 255, 51];
|
|
319
|
+
};
|
|
320
|
+
readonly 14: {
|
|
321
|
+
readonly link: readonly ["nose", "left_eye"];
|
|
322
|
+
readonly color: readonly [255, 255, 51];
|
|
323
|
+
};
|
|
324
|
+
readonly 15: {
|
|
325
|
+
readonly link: readonly ["left_eye", "right_eye"];
|
|
326
|
+
readonly color: readonly [255, 255, 51];
|
|
327
|
+
};
|
|
328
|
+
readonly 16: {
|
|
329
|
+
readonly link: readonly ["right_eye", "nose"];
|
|
330
|
+
readonly color: readonly [255, 255, 51];
|
|
331
|
+
};
|
|
332
|
+
readonly 17: {
|
|
333
|
+
readonly link: readonly ["left_eye", "left_ear"];
|
|
334
|
+
readonly color: readonly [255, 255, 51];
|
|
335
|
+
};
|
|
336
|
+
readonly 18: {
|
|
337
|
+
readonly link: readonly ["right_eye", "right_ear"];
|
|
338
|
+
readonly color: readonly [255, 255, 51];
|
|
339
|
+
};
|
|
340
|
+
readonly 19: {
|
|
341
|
+
readonly link: readonly ["left_ear", "left_shoulder"];
|
|
342
|
+
readonly color: readonly [255, 255, 51];
|
|
343
|
+
};
|
|
344
|
+
readonly 20: {
|
|
345
|
+
readonly link: readonly ["right_ear", "right_shoulder"];
|
|
346
|
+
readonly color: readonly [255, 255, 51];
|
|
347
|
+
};
|
|
348
|
+
};
|
|
349
|
+
};
|
|
350
|
+
//# sourceMappingURL=coco133.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coco133.d.ts","sourceRoot":"","sources":["../../../src/visualization/skeleton/coco133.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6HV,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* COCO133 skeleton configuration
|
|
3
|
+
* 133 keypoints for wholebody pose estimation (body + hands + face)
|
|
4
|
+
*/
|
|
5
|
+
export const coco133 = {
|
|
6
|
+
keypoint_info: {
|
|
7
|
+
// Body (0-16)
|
|
8
|
+
0: { name: 'nose', id: 0, color: [51, 255, 255] },
|
|
9
|
+
1: { name: 'left_eye', id: 1, color: [51, 255, 255] },
|
|
10
|
+
2: { name: 'right_eye', id: 2, color: [51, 255, 255] },
|
|
11
|
+
3: { name: 'left_ear', id: 3, color: [51, 255, 255] },
|
|
12
|
+
4: { name: 'right_ear', id: 4, color: [51, 255, 255] },
|
|
13
|
+
5: { name: 'left_shoulder', id: 5, color: [255, 51, 255] },
|
|
14
|
+
6: { name: 'right_shoulder', id: 6, color: [255, 51, 255] },
|
|
15
|
+
7: { name: 'left_elbow', id: 7, color: [255, 51, 255] },
|
|
16
|
+
8: { name: 'right_elbow', id: 8, color: [255, 51, 255] },
|
|
17
|
+
9: { name: 'left_wrist', id: 9, color: [255, 51, 255] },
|
|
18
|
+
10: { name: 'right_wrist', id: 10, color: [255, 51, 255] },
|
|
19
|
+
11: { name: 'left_hip', id: 11, color: [255, 255, 51] },
|
|
20
|
+
12: { name: 'right_hip', id: 12, color: [255, 255, 51] },
|
|
21
|
+
13: { name: 'left_knee', id: 13, color: [255, 255, 51] },
|
|
22
|
+
14: { name: 'right_knee', id: 14, color: [255, 255, 51] },
|
|
23
|
+
15: { name: 'left_ankle', id: 15, color: [255, 255, 51] },
|
|
24
|
+
16: { name: 'right_ankle', id: 16, color: [255, 255, 51] },
|
|
25
|
+
// Face (17-84) - 68 points
|
|
26
|
+
...Object.fromEntries(Array.from({ length: 68 }, (_, i) => [
|
|
27
|
+
i + 17,
|
|
28
|
+
{ name: `face_${i}`, id: i + 17, color: [255, 255, 255] }
|
|
29
|
+
])),
|
|
30
|
+
// Left hand (85-105) - 21 points
|
|
31
|
+
...Object.fromEntries(Array.from({ length: 21 }, (_, i) => [
|
|
32
|
+
i + 85,
|
|
33
|
+
{ name: `left_hand_${i}`, id: i + 85, color: [255, 128, 0] }
|
|
34
|
+
])),
|
|
35
|
+
// Right hand (106-126) - 21 points
|
|
36
|
+
...Object.fromEntries(Array.from({ length: 21 }, (_, i) => [
|
|
37
|
+
i + 106,
|
|
38
|
+
{ name: `right_hand_${i}`, id: i + 106, color: [0, 128, 255] }
|
|
39
|
+
])),
|
|
40
|
+
// Left foot (127-130) - 4 points
|
|
41
|
+
...Object.fromEntries(Array.from({ length: 4 }, (_, i) => [
|
|
42
|
+
i + 127,
|
|
43
|
+
{ name: `left_foot_${i}`, id: i + 127, color: [0, 255, 128] }
|
|
44
|
+
])),
|
|
45
|
+
// Right foot (131-132) - 2 points
|
|
46
|
+
131: { name: 'right_foot_0', id: 131, color: [128, 0, 255] },
|
|
47
|
+
132: { name: 'right_foot_1', id: 132, color: [128, 0, 255] },
|
|
48
|
+
},
|
|
49
|
+
skeleton_info: {
|
|
50
|
+
// Body skeleton
|
|
51
|
+
0: { link: ['left_ankle', 'left_knee'], color: [255, 51, 255] },
|
|
52
|
+
1: { link: ['left_knee', 'left_hip'], color: [255, 51, 255] },
|
|
53
|
+
2: { link: ['left_hip', 'right_hip'], color: [255, 255, 51] },
|
|
54
|
+
3: { link: ['right_hip', 'right_knee'], color: [255, 51, 255] },
|
|
55
|
+
4: { link: ['right_knee', 'right_ankle'], color: [255, 51, 255] },
|
|
56
|
+
5: { link: ['left_hip', 'left_shoulder'], color: [255, 255, 51] },
|
|
57
|
+
6: { link: ['left_shoulder', 'left_elbow'], color: [255, 255, 51] },
|
|
58
|
+
7: { link: ['left_elbow', 'left_wrist'], color: [255, 255, 51] },
|
|
59
|
+
8: { link: ['right_hip', 'right_shoulder'], color: [255, 255, 51] },
|
|
60
|
+
9: { link: ['right_shoulder', 'right_elbow'], color: [255, 255, 51] },
|
|
61
|
+
10: { link: ['right_elbow', 'right_wrist'], color: [255, 255, 51] },
|
|
62
|
+
11: { link: ['left_shoulder', 'right_shoulder'], color: [255, 255, 51] },
|
|
63
|
+
12: { link: ['nose', 'left_shoulder'], color: [255, 255, 51] },
|
|
64
|
+
13: { link: ['nose', 'right_shoulder'], color: [255, 255, 51] },
|
|
65
|
+
14: { link: ['nose', 'left_eye'], color: [255, 255, 51] },
|
|
66
|
+
15: { link: ['left_eye', 'right_eye'], color: [255, 255, 51] },
|
|
67
|
+
16: { link: ['right_eye', 'nose'], color: [255, 255, 51] },
|
|
68
|
+
17: { link: ['left_eye', 'left_ear'], color: [255, 255, 51] },
|
|
69
|
+
18: { link: ['right_eye', 'right_ear'], color: [255, 255, 51] },
|
|
70
|
+
19: { link: ['left_ear', 'left_shoulder'], color: [255, 255, 51] },
|
|
71
|
+
20: { link: ['right_ear', 'right_shoulder'], color: [255, 255, 51] },
|
|
72
|
+
// Face skeleton (simplified)
|
|
73
|
+
...Object.fromEntries(Array.from({ length: 17 }, (_, i) => [
|
|
74
|
+
i + 21,
|
|
75
|
+
{ link: [`face_${i}`, `face_${(i + 1) % 17}`], color: [255, 255, 255] }
|
|
76
|
+
])),
|
|
77
|
+
// Left hand skeleton
|
|
78
|
+
38: { link: ['left_hand_0', 'left_hand_1'], color: [255, 128, 0] },
|
|
79
|
+
39: { link: ['left_hand_1', 'left_hand_2'], color: [255, 128, 0] },
|
|
80
|
+
40: { link: ['left_hand_2', 'left_hand_3'], color: [255, 128, 0] },
|
|
81
|
+
41: { link: ['left_hand_3', 'left_hand_4'], color: [255, 128, 0] },
|
|
82
|
+
42: { link: ['left_hand_0', 'left_hand_5'], color: [255, 128, 0] },
|
|
83
|
+
43: { link: ['left_hand_5', 'left_hand_6'], color: [255, 128, 0] },
|
|
84
|
+
44: { link: ['left_hand_6', 'left_hand_7'], color: [255, 128, 0] },
|
|
85
|
+
45: { link: ['left_hand_7', 'left_hand_8'], color: [255, 128, 0] },
|
|
86
|
+
46: { link: ['left_hand_0', 'left_hand_9'], color: [255, 128, 0] },
|
|
87
|
+
47: { link: ['left_hand_9', 'left_hand_10'], color: [255, 128, 0] },
|
|
88
|
+
48: { link: ['left_hand_10', 'left_hand_11'], color: [255, 128, 0] },
|
|
89
|
+
49: { link: ['left_hand_11', 'left_hand_12'], color: [255, 128, 0] },
|
|
90
|
+
50: { link: ['left_hand_0', 'left_hand_13'], color: [255, 128, 0] },
|
|
91
|
+
51: { link: ['left_hand_13', 'left_hand_14'], color: [255, 128, 0] },
|
|
92
|
+
52: { link: ['left_hand_14', 'left_hand_15'], color: [255, 128, 0] },
|
|
93
|
+
53: { link: ['left_hand_15', 'left_hand_16'], color: [255, 128, 0] },
|
|
94
|
+
54: { link: ['left_hand_0', 'left_hand_17'], color: [255, 128, 0] },
|
|
95
|
+
55: { link: ['left_hand_17', 'left_hand_18'], color: [255, 128, 0] },
|
|
96
|
+
56: { link: ['left_hand_18', 'left_hand_19'], color: [255, 128, 0] },
|
|
97
|
+
57: { link: ['left_hand_19', 'left_hand_20'], color: [255, 128, 0] },
|
|
98
|
+
// Right hand skeleton
|
|
99
|
+
58: { link: ['right_hand_0', 'right_hand_1'], color: [0, 128, 255] },
|
|
100
|
+
59: { link: ['right_hand_1', 'right_hand_2'], color: [0, 128, 255] },
|
|
101
|
+
60: { link: ['right_hand_2', 'right_hand_3'], color: [0, 128, 255] },
|
|
102
|
+
61: { link: ['right_hand_3', 'right_hand_4'], color: [0, 128, 255] },
|
|
103
|
+
62: { link: ['right_hand_0', 'right_hand_5'], color: [0, 128, 255] },
|
|
104
|
+
63: { link: ['right_hand_5', 'right_hand_6'], color: [0, 128, 255] },
|
|
105
|
+
64: { link: ['right_hand_6', 'right_hand_7'], color: [0, 128, 255] },
|
|
106
|
+
65: { link: ['right_hand_7', 'right_hand_8'], color: [0, 128, 255] },
|
|
107
|
+
66: { link: ['right_hand_0', 'right_hand_9'], color: [0, 128, 255] },
|
|
108
|
+
67: { link: ['right_hand_9', 'right_hand_10'], color: [0, 128, 255] },
|
|
109
|
+
68: { link: ['right_hand_10', 'right_hand_11'], color: [0, 128, 255] },
|
|
110
|
+
69: { link: ['right_hand_11', 'right_hand_12'], color: [0, 128, 255] },
|
|
111
|
+
70: { link: ['right_hand_0', 'right_hand_13'], color: [0, 128, 255] },
|
|
112
|
+
71: { link: ['right_hand_13', 'right_hand_14'], color: [0, 128, 255] },
|
|
113
|
+
72: { link: ['right_hand_14', 'right_hand_15'], color: [0, 128, 255] },
|
|
114
|
+
73: { link: ['right_hand_15', 'right_hand_16'], color: [0, 128, 255] },
|
|
115
|
+
74: { link: ['right_hand_0', 'right_hand_17'], color: [0, 128, 255] },
|
|
116
|
+
75: { link: ['right_hand_17', 'right_hand_18'], color: [0, 128, 255] },
|
|
117
|
+
76: { link: ['right_hand_18', 'right_hand_19'], color: [0, 128, 255] },
|
|
118
|
+
77: { link: ['right_hand_19', 'right_hand_20'], color: [0, 128, 255] },
|
|
119
|
+
},
|
|
120
|
+
};
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* COCO17 skeleton configuration
|
|
3
|
+
* 17 keypoints for body pose estimation
|
|
4
|
+
*/
|
|
5
|
+
export declare const coco17: {
|
|
6
|
+
readonly keypoint_info: {
|
|
7
|
+
readonly 0: {
|
|
8
|
+
readonly name: "nose";
|
|
9
|
+
readonly id: 0;
|
|
10
|
+
readonly color: readonly [51, 255, 255];
|
|
11
|
+
};
|
|
12
|
+
readonly 1: {
|
|
13
|
+
readonly name: "left_eye";
|
|
14
|
+
readonly id: 1;
|
|
15
|
+
readonly color: readonly [51, 255, 255];
|
|
16
|
+
};
|
|
17
|
+
readonly 2: {
|
|
18
|
+
readonly name: "right_eye";
|
|
19
|
+
readonly id: 2;
|
|
20
|
+
readonly color: readonly [51, 255, 255];
|
|
21
|
+
};
|
|
22
|
+
readonly 3: {
|
|
23
|
+
readonly name: "left_ear";
|
|
24
|
+
readonly id: 3;
|
|
25
|
+
readonly color: readonly [51, 255, 255];
|
|
26
|
+
};
|
|
27
|
+
readonly 4: {
|
|
28
|
+
readonly name: "right_ear";
|
|
29
|
+
readonly id: 4;
|
|
30
|
+
readonly color: readonly [51, 255, 255];
|
|
31
|
+
};
|
|
32
|
+
readonly 5: {
|
|
33
|
+
readonly name: "left_shoulder";
|
|
34
|
+
readonly id: 5;
|
|
35
|
+
readonly color: readonly [255, 51, 255];
|
|
36
|
+
};
|
|
37
|
+
readonly 6: {
|
|
38
|
+
readonly name: "right_shoulder";
|
|
39
|
+
readonly id: 6;
|
|
40
|
+
readonly color: readonly [255, 51, 255];
|
|
41
|
+
};
|
|
42
|
+
readonly 7: {
|
|
43
|
+
readonly name: "left_elbow";
|
|
44
|
+
readonly id: 7;
|
|
45
|
+
readonly color: readonly [255, 51, 255];
|
|
46
|
+
};
|
|
47
|
+
readonly 8: {
|
|
48
|
+
readonly name: "right_elbow";
|
|
49
|
+
readonly id: 8;
|
|
50
|
+
readonly color: readonly [255, 51, 255];
|
|
51
|
+
};
|
|
52
|
+
readonly 9: {
|
|
53
|
+
readonly name: "left_wrist";
|
|
54
|
+
readonly id: 9;
|
|
55
|
+
readonly color: readonly [255, 51, 255];
|
|
56
|
+
};
|
|
57
|
+
readonly 10: {
|
|
58
|
+
readonly name: "right_wrist";
|
|
59
|
+
readonly id: 10;
|
|
60
|
+
readonly color: readonly [255, 51, 255];
|
|
61
|
+
};
|
|
62
|
+
readonly 11: {
|
|
63
|
+
readonly name: "left_hip";
|
|
64
|
+
readonly id: 11;
|
|
65
|
+
readonly color: readonly [255, 255, 51];
|
|
66
|
+
};
|
|
67
|
+
readonly 12: {
|
|
68
|
+
readonly name: "right_hip";
|
|
69
|
+
readonly id: 12;
|
|
70
|
+
readonly color: readonly [255, 255, 51];
|
|
71
|
+
};
|
|
72
|
+
readonly 13: {
|
|
73
|
+
readonly name: "left_knee";
|
|
74
|
+
readonly id: 13;
|
|
75
|
+
readonly color: readonly [255, 255, 51];
|
|
76
|
+
};
|
|
77
|
+
readonly 14: {
|
|
78
|
+
readonly name: "right_knee";
|
|
79
|
+
readonly id: 14;
|
|
80
|
+
readonly color: readonly [255, 255, 51];
|
|
81
|
+
};
|
|
82
|
+
readonly 15: {
|
|
83
|
+
readonly name: "left_ankle";
|
|
84
|
+
readonly id: 15;
|
|
85
|
+
readonly color: readonly [255, 255, 51];
|
|
86
|
+
};
|
|
87
|
+
readonly 16: {
|
|
88
|
+
readonly name: "right_ankle";
|
|
89
|
+
readonly id: 16;
|
|
90
|
+
readonly color: readonly [255, 255, 51];
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
readonly skeleton_info: {
|
|
94
|
+
readonly 0: {
|
|
95
|
+
readonly link: readonly ["left_ankle", "left_knee"];
|
|
96
|
+
readonly color: readonly [255, 51, 255];
|
|
97
|
+
};
|
|
98
|
+
readonly 1: {
|
|
99
|
+
readonly link: readonly ["left_knee", "left_hip"];
|
|
100
|
+
readonly color: readonly [255, 51, 255];
|
|
101
|
+
};
|
|
102
|
+
readonly 2: {
|
|
103
|
+
readonly link: readonly ["left_hip", "right_hip"];
|
|
104
|
+
readonly color: readonly [255, 255, 51];
|
|
105
|
+
};
|
|
106
|
+
readonly 3: {
|
|
107
|
+
readonly link: readonly ["right_hip", "right_knee"];
|
|
108
|
+
readonly color: readonly [255, 51, 255];
|
|
109
|
+
};
|
|
110
|
+
readonly 4: {
|
|
111
|
+
readonly link: readonly ["right_knee", "right_ankle"];
|
|
112
|
+
readonly color: readonly [255, 51, 255];
|
|
113
|
+
};
|
|
114
|
+
readonly 5: {
|
|
115
|
+
readonly link: readonly ["left_hip", "left_shoulder"];
|
|
116
|
+
readonly color: readonly [255, 255, 51];
|
|
117
|
+
};
|
|
118
|
+
readonly 6: {
|
|
119
|
+
readonly link: readonly ["left_shoulder", "left_elbow"];
|
|
120
|
+
readonly color: readonly [255, 255, 51];
|
|
121
|
+
};
|
|
122
|
+
readonly 7: {
|
|
123
|
+
readonly link: readonly ["left_elbow", "left_wrist"];
|
|
124
|
+
readonly color: readonly [255, 255, 51];
|
|
125
|
+
};
|
|
126
|
+
readonly 8: {
|
|
127
|
+
readonly link: readonly ["left_hip", "right_shoulder"];
|
|
128
|
+
readonly color: readonly [255, 255, 51];
|
|
129
|
+
};
|
|
130
|
+
readonly 9: {
|
|
131
|
+
readonly link: readonly ["right_shoulder", "right_elbow"];
|
|
132
|
+
readonly color: readonly [255, 255, 51];
|
|
133
|
+
};
|
|
134
|
+
readonly 10: {
|
|
135
|
+
readonly link: readonly ["right_elbow", "right_wrist"];
|
|
136
|
+
readonly color: readonly [255, 255, 51];
|
|
137
|
+
};
|
|
138
|
+
readonly 11: {
|
|
139
|
+
readonly link: readonly ["left_shoulder", "right_shoulder"];
|
|
140
|
+
readonly color: readonly [255, 255, 51];
|
|
141
|
+
};
|
|
142
|
+
readonly 12: {
|
|
143
|
+
readonly link: readonly ["nose", "left_shoulder"];
|
|
144
|
+
readonly color: readonly [255, 255, 51];
|
|
145
|
+
};
|
|
146
|
+
readonly 13: {
|
|
147
|
+
readonly link: readonly ["nose", "right_shoulder"];
|
|
148
|
+
readonly color: readonly [255, 255, 51];
|
|
149
|
+
};
|
|
150
|
+
readonly 14: {
|
|
151
|
+
readonly link: readonly ["nose", "left_eye"];
|
|
152
|
+
readonly color: readonly [255, 255, 51];
|
|
153
|
+
};
|
|
154
|
+
readonly 15: {
|
|
155
|
+
readonly link: readonly ["left_eye", "right_eye"];
|
|
156
|
+
readonly color: readonly [255, 255, 51];
|
|
157
|
+
};
|
|
158
|
+
readonly 16: {
|
|
159
|
+
readonly link: readonly ["right_eye", "nose"];
|
|
160
|
+
readonly color: readonly [255, 255, 51];
|
|
161
|
+
};
|
|
162
|
+
readonly 17: {
|
|
163
|
+
readonly link: readonly ["left_eye", "left_ear"];
|
|
164
|
+
readonly color: readonly [255, 255, 51];
|
|
165
|
+
};
|
|
166
|
+
readonly 18: {
|
|
167
|
+
readonly link: readonly ["right_eye", "right_ear"];
|
|
168
|
+
readonly color: readonly [255, 255, 51];
|
|
169
|
+
};
|
|
170
|
+
readonly 19: {
|
|
171
|
+
readonly link: readonly ["left_ear", "left_shoulder"];
|
|
172
|
+
readonly color: readonly [255, 255, 51];
|
|
173
|
+
};
|
|
174
|
+
readonly 20: {
|
|
175
|
+
readonly link: readonly ["right_ear", "right_shoulder"];
|
|
176
|
+
readonly color: readonly [255, 255, 51];
|
|
177
|
+
};
|
|
178
|
+
};
|
|
179
|
+
};
|
|
180
|
+
//# sourceMappingURL=coco17.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coco17.d.ts","sourceRoot":"","sources":["../../../src/visualization/skeleton/coco17.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2CT,CAAC"}
|