@smartico/public-api 0.0.356 → 0.0.358
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/README.md +33 -8
- package/dist/WSAPI/WSAPI.d.ts +50 -45
- package/dist/index.js +49 -44
- package/dist/index.js.map +1 -1
- package/dist/index.modern.mjs +49 -44
- package/dist/index.modern.mjs.map +1 -1
- package/docs/api/README.md +58 -3
- package/docs/api/classes/WSAPI.md +43 -41
- package/docs/api/enums/AchievementStatus.md +49 -0
- package/docs/api/enums/AchievementTaskType.md +13 -0
- package/docs/api/enums/AchievementType.md +13 -0
- package/docs/api/enums/ActivityTypeLimited.md +115 -0
- package/docs/api/enums/BadgesTimeLimitStates.md +49 -0
- package/docs/api/enums/InboxMessageType.md +55 -0
- package/docs/api/enums/InboxReadStatus.md +13 -0
- package/docs/api/enums/OpenLinksType.md +13 -0
- package/docs/api/enums/ScheduledMissionType.md +19 -0
- package/docs/api/enums/StoreItemPurchaseType.md +19 -0
- package/docs/api/enums/StoreItemType.md +37 -0
- package/docs/api/enums/StoreItemTypeName.md +43 -0
- package/docs/api/enums/TournamentInstanceStatus.md +43 -0
- package/docs/api/enums/TournamentRegistrationError.md +55 -0
- package/docs/api/enums/TournamentType.md +19 -0
- package/docs/api/interfaces/AchievementTaskPublicMeta.md +35 -0
- package/docs/api/interfaces/AffectsProgress.md +25 -0
- package/docs/api/interfaces/Bonus.md +2 -2
- package/docs/api/interfaces/BonusMetaMap-1.md +9 -0
- package/docs/api/interfaces/BonusMetaMap.md +0 -2
- package/docs/api/interfaces/BonusTemplateMetaMap-1.md +33 -0
- package/docs/api/interfaces/BonusTemplateMetaMap.md +0 -8
- package/docs/api/interfaces/GetCustomSectionsResponse.md +67 -0
- package/docs/api/interfaces/GetRelatedAchTourResponse.md +69 -0
- package/docs/api/interfaces/InboxMessageBody.md +2 -2
- package/docs/api/interfaces/StoreItem.md +2 -2
- package/docs/api/interfaces/StoreItemPublicMeta.md +127 -0
- package/docs/api/interfaces/TBonus.md +2 -2
- package/docs/api/interfaces/TMissionOrBadge.md +1 -1
- package/docs/api/interfaces/TTournamentRegistrationResult.md +1 -1
- package/docs/api/interfaces/Tournament.md +3 -3
- package/docs/api/interfaces/TournamentPrize.md +1 -1
- package/docs/api/interfaces/TournamentPublicMeta.md +115 -0
- package/docs/api/interfaces/UserAchievement.md +4 -4
- package/docs/api/interfaces/UserAchievementTask.md +3 -3
- package/package.json +1 -1
- package/src/SmarticoAPI.ts +1 -1
- package/src/WSAPI/WSAPI.ts +55 -49
- package/tsconfig.json +23 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Enumeration: InboxMessageType
|
|
2
|
+
|
|
3
|
+
## Enumeration Members
|
|
4
|
+
|
|
5
|
+
### Custom
|
|
6
|
+
|
|
7
|
+
• **Custom** = ``0``
|
|
8
|
+
|
|
9
|
+
___
|
|
10
|
+
|
|
11
|
+
### MissionCompleted
|
|
12
|
+
|
|
13
|
+
• **MissionCompleted** = ``1``
|
|
14
|
+
|
|
15
|
+
___
|
|
16
|
+
|
|
17
|
+
### MissionUnlocked
|
|
18
|
+
|
|
19
|
+
• **MissionUnlocked** = ``2``
|
|
20
|
+
|
|
21
|
+
___
|
|
22
|
+
|
|
23
|
+
### LeaderboardWon
|
|
24
|
+
|
|
25
|
+
• **LeaderboardWon** = ``3``
|
|
26
|
+
|
|
27
|
+
___
|
|
28
|
+
|
|
29
|
+
### LevelChanged
|
|
30
|
+
|
|
31
|
+
• **LevelChanged** = ``4``
|
|
32
|
+
|
|
33
|
+
___
|
|
34
|
+
|
|
35
|
+
### BonusGiven
|
|
36
|
+
|
|
37
|
+
• **BonusGiven** = ``5``
|
|
38
|
+
|
|
39
|
+
___
|
|
40
|
+
|
|
41
|
+
### PointsAdded
|
|
42
|
+
|
|
43
|
+
• **PointsAdded** = ``6``
|
|
44
|
+
|
|
45
|
+
___
|
|
46
|
+
|
|
47
|
+
### PointsUsed
|
|
48
|
+
|
|
49
|
+
• **PointsUsed** = ``7``
|
|
50
|
+
|
|
51
|
+
___
|
|
52
|
+
|
|
53
|
+
### PersonalMessage
|
|
54
|
+
|
|
55
|
+
• **PersonalMessage** = ``8``
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Enumeration: StoreItemType
|
|
2
|
+
|
|
3
|
+
## Enumeration Members
|
|
4
|
+
|
|
5
|
+
### Bonus
|
|
6
|
+
|
|
7
|
+
• **Bonus** = ``1``
|
|
8
|
+
|
|
9
|
+
___
|
|
10
|
+
|
|
11
|
+
### Tangible
|
|
12
|
+
|
|
13
|
+
• **Tangible** = ``2``
|
|
14
|
+
|
|
15
|
+
___
|
|
16
|
+
|
|
17
|
+
### MiniGameSpin
|
|
18
|
+
|
|
19
|
+
• **MiniGameSpin** = ``3``
|
|
20
|
+
|
|
21
|
+
___
|
|
22
|
+
|
|
23
|
+
### ChangeLevel
|
|
24
|
+
|
|
25
|
+
• **ChangeLevel** = ``4``
|
|
26
|
+
|
|
27
|
+
___
|
|
28
|
+
|
|
29
|
+
### PrizeDrop
|
|
30
|
+
|
|
31
|
+
• **PrizeDrop** = ``5``
|
|
32
|
+
|
|
33
|
+
___
|
|
34
|
+
|
|
35
|
+
### RaffleTicket
|
|
36
|
+
|
|
37
|
+
• **RaffleTicket** = ``6``
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Enumeration: StoreItemTypeName
|
|
2
|
+
|
|
3
|
+
## Enumeration Members
|
|
4
|
+
|
|
5
|
+
### Bonus
|
|
6
|
+
|
|
7
|
+
• **Bonus** = ``"bonus"``
|
|
8
|
+
|
|
9
|
+
___
|
|
10
|
+
|
|
11
|
+
### Tangible
|
|
12
|
+
|
|
13
|
+
• **Tangible** = ``"tangible"``
|
|
14
|
+
|
|
15
|
+
___
|
|
16
|
+
|
|
17
|
+
### MiniGameSpin
|
|
18
|
+
|
|
19
|
+
• **MiniGameSpin** = ``"minigamespin"``
|
|
20
|
+
|
|
21
|
+
___
|
|
22
|
+
|
|
23
|
+
### ChangeLevel
|
|
24
|
+
|
|
25
|
+
• **ChangeLevel** = ``"changelevel"``
|
|
26
|
+
|
|
27
|
+
___
|
|
28
|
+
|
|
29
|
+
### PrizeDrop
|
|
30
|
+
|
|
31
|
+
• **PrizeDrop** = ``"prizedrop"``
|
|
32
|
+
|
|
33
|
+
___
|
|
34
|
+
|
|
35
|
+
### RaffleTicket
|
|
36
|
+
|
|
37
|
+
• **RaffleTicket** = ``"raffleticket"``
|
|
38
|
+
|
|
39
|
+
___
|
|
40
|
+
|
|
41
|
+
### Unknown
|
|
42
|
+
|
|
43
|
+
• **Unknown** = ``"unknown"``
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Enumeration: TournamentInstanceStatus
|
|
2
|
+
|
|
3
|
+
## Enumeration Members
|
|
4
|
+
|
|
5
|
+
### PUBLISHED
|
|
6
|
+
|
|
7
|
+
• **PUBLISHED** = ``1``
|
|
8
|
+
|
|
9
|
+
___
|
|
10
|
+
|
|
11
|
+
### REGISTER
|
|
12
|
+
|
|
13
|
+
• **REGISTER** = ``2``
|
|
14
|
+
|
|
15
|
+
___
|
|
16
|
+
|
|
17
|
+
### STARTED
|
|
18
|
+
|
|
19
|
+
• **STARTED** = ``3``
|
|
20
|
+
|
|
21
|
+
___
|
|
22
|
+
|
|
23
|
+
### FINISHED
|
|
24
|
+
|
|
25
|
+
• **FINISHED** = ``4``
|
|
26
|
+
|
|
27
|
+
___
|
|
28
|
+
|
|
29
|
+
### CANCELLED
|
|
30
|
+
|
|
31
|
+
• **CANCELLED** = ``5``
|
|
32
|
+
|
|
33
|
+
___
|
|
34
|
+
|
|
35
|
+
### FAILED
|
|
36
|
+
|
|
37
|
+
• **FAILED** = ``6``
|
|
38
|
+
|
|
39
|
+
___
|
|
40
|
+
|
|
41
|
+
### FINALIZING
|
|
42
|
+
|
|
43
|
+
• **FINALIZING** = ``7``
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Enumeration: TournamentRegistrationError
|
|
2
|
+
|
|
3
|
+
## Enumeration Members
|
|
4
|
+
|
|
5
|
+
### NO\_ERROR
|
|
6
|
+
|
|
7
|
+
• **NO\_ERROR** = ``0``
|
|
8
|
+
|
|
9
|
+
___
|
|
10
|
+
|
|
11
|
+
### TOURNAMENT\_INSTANCE\_NOT\_FOUND
|
|
12
|
+
|
|
13
|
+
• **TOURNAMENT\_INSTANCE\_NOT\_FOUND** = ``30001``
|
|
14
|
+
|
|
15
|
+
___
|
|
16
|
+
|
|
17
|
+
### TOURNAMENT\_REGISTRATION\_NOT\_ENOUGH\_POINTS
|
|
18
|
+
|
|
19
|
+
• **TOURNAMENT\_REGISTRATION\_NOT\_ENOUGH\_POINTS** = ``30002``
|
|
20
|
+
|
|
21
|
+
___
|
|
22
|
+
|
|
23
|
+
### TOURNAMENT\_INSTANCE\_NOT\_IN\_STATE
|
|
24
|
+
|
|
25
|
+
• **TOURNAMENT\_INSTANCE\_NOT\_IN\_STATE** = ``30003``
|
|
26
|
+
|
|
27
|
+
___
|
|
28
|
+
|
|
29
|
+
### TOURNAMENT\_ALREADY\_REGISTERED
|
|
30
|
+
|
|
31
|
+
• **TOURNAMENT\_ALREADY\_REGISTERED** = ``30004``
|
|
32
|
+
|
|
33
|
+
___
|
|
34
|
+
|
|
35
|
+
### TOURNAMENT\_USER\_DONT\_MATCH\_CONDITIONS
|
|
36
|
+
|
|
37
|
+
• **TOURNAMENT\_USER\_DONT\_MATCH\_CONDITIONS** = ``30005``
|
|
38
|
+
|
|
39
|
+
___
|
|
40
|
+
|
|
41
|
+
### TOURNAMENT\_USER\_NOT\_REGISTERED
|
|
42
|
+
|
|
43
|
+
• **TOURNAMENT\_USER\_NOT\_REGISTERED** = ``30006``
|
|
44
|
+
|
|
45
|
+
___
|
|
46
|
+
|
|
47
|
+
### TOURNAMENT\_CANT\_CHANGE\_REGISTRATION\_STATUS
|
|
48
|
+
|
|
49
|
+
• **TOURNAMENT\_CANT\_CHANGE\_REGISTRATION\_STATUS** = ``30007``
|
|
50
|
+
|
|
51
|
+
___
|
|
52
|
+
|
|
53
|
+
### TOURNAMENT\_MAX\_REGISTRATIONS\_REACHED
|
|
54
|
+
|
|
55
|
+
• **TOURNAMENT\_MAX\_REGISTRATIONS\_REACHED** = ``30008``
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Interface: AchievementTaskPublicMeta
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
### name
|
|
6
|
+
|
|
7
|
+
• `Optional` **name**: `string`
|
|
8
|
+
|
|
9
|
+
___
|
|
10
|
+
|
|
11
|
+
### display\_progress\_as\_count
|
|
12
|
+
|
|
13
|
+
• `Optional` **display\_progress\_as\_count**: `boolean`
|
|
14
|
+
|
|
15
|
+
___
|
|
16
|
+
|
|
17
|
+
### stage\_image
|
|
18
|
+
|
|
19
|
+
• `Optional` **stage\_image**: `string`
|
|
20
|
+
|
|
21
|
+
___
|
|
22
|
+
|
|
23
|
+
### priority
|
|
24
|
+
|
|
25
|
+
• `Optional` **priority**: `number`
|
|
26
|
+
|
|
27
|
+
___
|
|
28
|
+
|
|
29
|
+
### user\_state\_operations
|
|
30
|
+
|
|
31
|
+
• `Optional` **user\_state\_operations**: `Object`
|
|
32
|
+
|
|
33
|
+
#### Index signature
|
|
34
|
+
|
|
35
|
+
▪ [key: `string`]: \{ `op`: `string` }
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Interface: AffectsProgress
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
### affects\_level
|
|
6
|
+
|
|
7
|
+
• **affects\_level**: `boolean`
|
|
8
|
+
|
|
9
|
+
___
|
|
10
|
+
|
|
11
|
+
### affects\_leaderboard
|
|
12
|
+
|
|
13
|
+
• **affects\_leaderboard**: `boolean`
|
|
14
|
+
|
|
15
|
+
___
|
|
16
|
+
|
|
17
|
+
### affects\_current\_balance
|
|
18
|
+
|
|
19
|
+
• **affects\_current\_balance**: `boolean`
|
|
20
|
+
|
|
21
|
+
___
|
|
22
|
+
|
|
23
|
+
### rewardPoints
|
|
24
|
+
|
|
25
|
+
• **rewardPoints**: `number`
|
|
@@ -70,10 +70,10 @@ ___
|
|
|
70
70
|
|
|
71
71
|
### labelBonusTemplateMetaMap
|
|
72
72
|
|
|
73
|
-
• `Optional` **labelBonusTemplateMetaMap**: `BonusTemplateMetaMap`
|
|
73
|
+
• `Optional` **labelBonusTemplateMetaMap**: [`BonusTemplateMetaMap`](BonusTemplateMetaMap.md)
|
|
74
74
|
|
|
75
75
|
___
|
|
76
76
|
|
|
77
77
|
### bonusMetaMap
|
|
78
78
|
|
|
79
|
-
• `Optional` **bonusMetaMap**: `BonusMetaMap`
|
|
79
|
+
• `Optional` **bonusMetaMap**: [`BonusMetaMap`](BonusMetaMap.md)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Interface: BonusTemplateMetaMap
|
|
2
|
+
|
|
3
|
+
## Properties
|
|
4
|
+
|
|
5
|
+
### description
|
|
6
|
+
|
|
7
|
+
• **description**: `string`
|
|
8
|
+
|
|
9
|
+
Description of the bonus template
|
|
10
|
+
|
|
11
|
+
___
|
|
12
|
+
|
|
13
|
+
### acknowledge
|
|
14
|
+
|
|
15
|
+
• **acknowledge**: `string`
|
|
16
|
+
|
|
17
|
+
Acknowledge message setup in the bonus template
|
|
18
|
+
|
|
19
|
+
___
|
|
20
|
+
|
|
21
|
+
### image\_url
|
|
22
|
+
|
|
23
|
+
• **image\_url**: `string`
|
|
24
|
+
|
|
25
|
+
Image URL of the bonus template, 1:1 aspect ratio
|
|
26
|
+
|
|
27
|
+
___
|
|
28
|
+
|
|
29
|
+
### redirect\_url
|
|
30
|
+
|
|
31
|
+
• `Optional` **redirect\_url**: `string`
|
|
32
|
+
|
|
33
|
+
Redirect URL of the bonus template
|
|
@@ -6,28 +6,20 @@
|
|
|
6
6
|
|
|
7
7
|
• **description**: `string`
|
|
8
8
|
|
|
9
|
-
Description of the bonus template
|
|
10
|
-
|
|
11
9
|
___
|
|
12
10
|
|
|
13
11
|
### acknowledge
|
|
14
12
|
|
|
15
13
|
• **acknowledge**: `string`
|
|
16
14
|
|
|
17
|
-
Acknowledge message setup in the bonus template
|
|
18
|
-
|
|
19
15
|
___
|
|
20
16
|
|
|
21
17
|
### image\_url
|
|
22
18
|
|
|
23
19
|
• **image\_url**: `string`
|
|
24
20
|
|
|
25
|
-
Image URL of the bonus template, 1:1 aspect ratio
|
|
26
|
-
|
|
27
21
|
___
|
|
28
22
|
|
|
29
23
|
### redirect\_url
|
|
30
24
|
|
|
31
25
|
• `Optional` **redirect\_url**: `string`
|
|
32
|
-
|
|
33
|
-
Redirect URL of the bonus template
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Interface: GetCustomSectionsResponse
|
|
2
|
+
|
|
3
|
+
## Hierarchy
|
|
4
|
+
|
|
5
|
+
- `ProtocolResponse`
|
|
6
|
+
|
|
7
|
+
↳ **`GetCustomSectionsResponse`**
|
|
8
|
+
|
|
9
|
+
## Properties
|
|
10
|
+
|
|
11
|
+
### cid
|
|
12
|
+
|
|
13
|
+
• **cid**: `number`
|
|
14
|
+
|
|
15
|
+
#### Inherited from
|
|
16
|
+
|
|
17
|
+
ProtocolResponse.cid
|
|
18
|
+
|
|
19
|
+
___
|
|
20
|
+
|
|
21
|
+
### ts
|
|
22
|
+
|
|
23
|
+
• `Optional` **ts**: `number`
|
|
24
|
+
|
|
25
|
+
#### Inherited from
|
|
26
|
+
|
|
27
|
+
ProtocolResponse.ts
|
|
28
|
+
|
|
29
|
+
___
|
|
30
|
+
|
|
31
|
+
### uuid
|
|
32
|
+
|
|
33
|
+
• `Optional` **uuid**: `string`
|
|
34
|
+
|
|
35
|
+
#### Inherited from
|
|
36
|
+
|
|
37
|
+
ProtocolResponse.uuid
|
|
38
|
+
|
|
39
|
+
___
|
|
40
|
+
|
|
41
|
+
### errCode
|
|
42
|
+
|
|
43
|
+
• `Optional` **errCode**: `number`
|
|
44
|
+
|
|
45
|
+
#### Inherited from
|
|
46
|
+
|
|
47
|
+
ProtocolResponse.errCode
|
|
48
|
+
|
|
49
|
+
___
|
|
50
|
+
|
|
51
|
+
### errMsg
|
|
52
|
+
|
|
53
|
+
• `Optional` **errMsg**: `string`
|
|
54
|
+
|
|
55
|
+
#### Inherited from
|
|
56
|
+
|
|
57
|
+
ProtocolResponse.errMsg
|
|
58
|
+
|
|
59
|
+
___
|
|
60
|
+
|
|
61
|
+
### customSections
|
|
62
|
+
|
|
63
|
+
• **customSections**: `Object`
|
|
64
|
+
|
|
65
|
+
#### Index signature
|
|
66
|
+
|
|
67
|
+
▪ [key: `string`]: [`UICustomSection`](UICustomSection.md)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Interface: GetRelatedAchTourResponse
|
|
2
|
+
|
|
3
|
+
## Hierarchy
|
|
4
|
+
|
|
5
|
+
- `ProtocolResponse`
|
|
6
|
+
|
|
7
|
+
↳ **`GetRelatedAchTourResponse`**
|
|
8
|
+
|
|
9
|
+
## Properties
|
|
10
|
+
|
|
11
|
+
### cid
|
|
12
|
+
|
|
13
|
+
• **cid**: `number`
|
|
14
|
+
|
|
15
|
+
#### Inherited from
|
|
16
|
+
|
|
17
|
+
ProtocolResponse.cid
|
|
18
|
+
|
|
19
|
+
___
|
|
20
|
+
|
|
21
|
+
### ts
|
|
22
|
+
|
|
23
|
+
• `Optional` **ts**: `number`
|
|
24
|
+
|
|
25
|
+
#### Inherited from
|
|
26
|
+
|
|
27
|
+
ProtocolResponse.ts
|
|
28
|
+
|
|
29
|
+
___
|
|
30
|
+
|
|
31
|
+
### uuid
|
|
32
|
+
|
|
33
|
+
• `Optional` **uuid**: `string`
|
|
34
|
+
|
|
35
|
+
#### Inherited from
|
|
36
|
+
|
|
37
|
+
ProtocolResponse.uuid
|
|
38
|
+
|
|
39
|
+
___
|
|
40
|
+
|
|
41
|
+
### errCode
|
|
42
|
+
|
|
43
|
+
• `Optional` **errCode**: `number`
|
|
44
|
+
|
|
45
|
+
#### Inherited from
|
|
46
|
+
|
|
47
|
+
ProtocolResponse.errCode
|
|
48
|
+
|
|
49
|
+
___
|
|
50
|
+
|
|
51
|
+
### errMsg
|
|
52
|
+
|
|
53
|
+
• `Optional` **errMsg**: `string`
|
|
54
|
+
|
|
55
|
+
#### Inherited from
|
|
56
|
+
|
|
57
|
+
ProtocolResponse.errMsg
|
|
58
|
+
|
|
59
|
+
___
|
|
60
|
+
|
|
61
|
+
### achievements
|
|
62
|
+
|
|
63
|
+
• **achievements**: [`UserAchievement`](UserAchievement.md)[]
|
|
64
|
+
|
|
65
|
+
___
|
|
66
|
+
|
|
67
|
+
### tournaments
|
|
68
|
+
|
|
69
|
+
• `Optional` **tournaments**: [`Tournament`](Tournament.md)[]
|
|
@@ -16,7 +16,7 @@ ___
|
|
|
16
16
|
|
|
17
17
|
### type
|
|
18
18
|
|
|
19
|
-
• **type**: `InboxMessageType`
|
|
19
|
+
• **type**: [`InboxMessageType`](../enums/InboxMessageType.md)
|
|
20
20
|
|
|
21
21
|
___
|
|
22
22
|
|
|
@@ -64,7 +64,7 @@ ___
|
|
|
64
64
|
|
|
65
65
|
### open\_links
|
|
66
66
|
|
|
67
|
-
• `Optional` **open\_links**: `OpenLinksType`
|
|
67
|
+
• `Optional` **open\_links**: [`OpenLinksType`](../enums/OpenLinksType.md)
|
|
68
68
|
|
|
69
69
|
___
|
|
70
70
|
|
|
@@ -10,13 +10,13 @@ ___
|
|
|
10
10
|
|
|
11
11
|
### itemTypeId
|
|
12
12
|
|
|
13
|
-
• **itemTypeId**: `StoreItemType`
|
|
13
|
+
• **itemTypeId**: [`StoreItemType`](../enums/StoreItemType.md)
|
|
14
14
|
|
|
15
15
|
___
|
|
16
16
|
|
|
17
17
|
### itemPublicMeta
|
|
18
18
|
|
|
19
|
-
• **itemPublicMeta**: `StoreItemPublicMeta`
|
|
19
|
+
• **itemPublicMeta**: [`StoreItemPublicMeta`](StoreItemPublicMeta.md)
|
|
20
20
|
|
|
21
21
|
___
|
|
22
22
|
|