@fedify/fedify 1.3.0-dev.576 → 1.3.0-dev.578
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/CHANGES.md +11 -0
- package/esm/deno.js +2 -2
- package/esm/federation/handler.js +48 -152
- package/esm/federation/inbox.js +108 -0
- package/esm/federation/keycache.js +42 -0
- package/esm/federation/middleware.js +115 -1
- package/esm/sig/http.js +1 -1
- package/esm/sig/key.js +35 -1
- package/esm/testing/fixtures/example.com/create +6 -0
- package/esm/testing/fixtures/example.com/cross-origin-actor +6 -0
- package/esm/testing/fixtures/example.com/invite +7 -0
- package/esm/vocab/vocab.js +5342 -2713
- package/package.json +1 -1
- package/types/federation/context.d.ts +47 -0
- package/types/federation/context.d.ts.map +1 -1
- package/types/federation/handler.d.ts +1 -1
- package/types/federation/handler.d.ts.map +1 -1
- package/types/federation/inbox.d.ts +23 -1
- package/types/federation/inbox.d.ts.map +1 -1
- package/types/federation/keycache.d.ts +19 -0
- package/types/federation/keycache.d.ts.map +1 -0
- package/types/federation/middleware.d.ts +3 -1
- package/types/federation/middleware.d.ts.map +1 -1
- package/types/sig/key.d.ts +2 -2
- package/types/sig/key.d.ts.map +1 -1
- package/types/vocab/vocab.d.ts +18 -38
- package/types/vocab/vocab.d.ts.map +1 -1
package/types/vocab/vocab.d.ts
CHANGED
@@ -16,6 +16,8 @@ export declare class Object {
|
|
16
16
|
protected get _documentLoader(): DocumentLoader | undefined;
|
17
17
|
protected get _contextLoader(): DocumentLoader | undefined;
|
18
18
|
protected get _tracerProvider(): TracerProvider | undefined;
|
19
|
+
protected get _cachedJsonLd(): unknown | undefined;
|
20
|
+
protected set _cachedJsonLd(value: unknown | undefined);
|
19
21
|
/**
|
20
22
|
* The type URI of {@link Object}: `https://www.w3.org/ns/activitystreams#Object`.
|
21
23
|
*/
|
@@ -697,7 +699,6 @@ export declare class Object {
|
|
697
699
|
/** Represents a custom emoji.
|
698
700
|
*/
|
699
701
|
export declare class Emoji extends Object {
|
700
|
-
#private;
|
701
702
|
/**
|
702
703
|
* The type URI of {@link Emoji}: `http://joinmastodon.org/ns#Emoji`.
|
703
704
|
*/
|
@@ -1424,7 +1425,6 @@ export declare class Activity extends Object {
|
|
1424
1425
|
/** Represents an emoji reaction. See also [FEP-c0e0](https://w3id.org/fep/c0e0).
|
1425
1426
|
*/
|
1426
1427
|
export declare class EmojiReact extends Activity {
|
1427
|
-
#private;
|
1428
1428
|
/**
|
1429
1429
|
* The type URI of {@link EmojiReact}: `http://litepub.social/ns#EmojiReact`.
|
1430
1430
|
*/
|
@@ -1614,6 +1614,8 @@ export declare class PropertyValue {
|
|
1614
1614
|
protected get _documentLoader(): DocumentLoader | undefined;
|
1615
1615
|
protected get _contextLoader(): DocumentLoader | undefined;
|
1616
1616
|
protected get _tracerProvider(): TracerProvider | undefined;
|
1617
|
+
protected get _cachedJsonLd(): unknown | undefined;
|
1618
|
+
protected set _cachedJsonLd(value: unknown | undefined);
|
1617
1619
|
/**
|
1618
1620
|
* The type URI of {@link PropertyValue}: `http://schema.org#PropertyValue`.
|
1619
1621
|
*/
|
@@ -1702,6 +1704,8 @@ export declare class DidService {
|
|
1702
1704
|
protected get _documentLoader(): DocumentLoader | undefined;
|
1703
1705
|
protected get _contextLoader(): DocumentLoader | undefined;
|
1704
1706
|
protected get _tracerProvider(): TracerProvider | undefined;
|
1707
|
+
protected get _cachedJsonLd(): unknown | undefined;
|
1708
|
+
protected set _cachedJsonLd(value: unknown | undefined);
|
1705
1709
|
/**
|
1706
1710
|
* The type URI of {@link DidService}: `https://www.w3.org/ns/did#Service`.
|
1707
1711
|
*/
|
@@ -1784,7 +1788,6 @@ export declare class DidService {
|
|
1784
1788
|
/** "Export Actor" service.
|
1785
1789
|
*/
|
1786
1790
|
export declare class Export extends DidService {
|
1787
|
-
#private;
|
1788
1791
|
/**
|
1789
1792
|
* The type URI of {@link Export}: `https://w3id.org/fep/9091#Export`.
|
1790
1793
|
*/
|
@@ -1865,6 +1868,8 @@ export declare class DataIntegrityProof {
|
|
1865
1868
|
protected get _documentLoader(): DocumentLoader | undefined;
|
1866
1869
|
protected get _contextLoader(): DocumentLoader | undefined;
|
1867
1870
|
protected get _tracerProvider(): TracerProvider | undefined;
|
1871
|
+
protected get _cachedJsonLd(): unknown | undefined;
|
1872
|
+
protected set _cachedJsonLd(value: unknown | undefined);
|
1868
1873
|
/**
|
1869
1874
|
* The type URI of {@link DataIntegrityProof}: `https://w3id.org/security#DataIntegrityProof`.
|
1870
1875
|
*/
|
@@ -1985,6 +1990,8 @@ export declare class CryptographicKey {
|
|
1985
1990
|
protected get _documentLoader(): DocumentLoader | undefined;
|
1986
1991
|
protected get _contextLoader(): DocumentLoader | undefined;
|
1987
1992
|
protected get _tracerProvider(): TracerProvider | undefined;
|
1993
|
+
protected get _cachedJsonLd(): unknown | undefined;
|
1994
|
+
protected set _cachedJsonLd(value: unknown | undefined);
|
1988
1995
|
/**
|
1989
1996
|
* The type URI of {@link CryptographicKey}: `https://w3id.org/security#Key`.
|
1990
1997
|
*/
|
@@ -2084,6 +2091,8 @@ export declare class Multikey {
|
|
2084
2091
|
protected get _documentLoader(): DocumentLoader | undefined;
|
2085
2092
|
protected get _contextLoader(): DocumentLoader | undefined;
|
2086
2093
|
protected get _tracerProvider(): TracerProvider | undefined;
|
2094
|
+
protected get _cachedJsonLd(): unknown | undefined;
|
2095
|
+
protected set _cachedJsonLd(value: unknown | undefined);
|
2087
2096
|
/**
|
2088
2097
|
* The type URI of {@link Multikey}: `https://w3id.org/security#Multikey`.
|
2089
2098
|
*/
|
@@ -2180,7 +2189,6 @@ export declare class Multikey {
|
|
2180
2189
|
* has been accepted.
|
2181
2190
|
*/
|
2182
2191
|
export declare class Accept extends Activity {
|
2183
|
-
#private;
|
2184
2192
|
/**
|
2185
2193
|
* The type URI of {@link Accept}: `https://www.w3.org/ns/activitystreams#Accept`.
|
2186
2194
|
*/
|
@@ -2368,7 +2376,6 @@ export declare class Accept extends Activity {
|
|
2368
2376
|
* the context from which the `object` originated.
|
2369
2377
|
*/
|
2370
2378
|
export declare class Add extends Activity {
|
2371
|
-
#private;
|
2372
2379
|
/**
|
2373
2380
|
* The type URI of {@link Add}: `https://www.w3.org/ns/activitystreams#Add`.
|
2374
2381
|
*/
|
@@ -2555,7 +2562,6 @@ export declare class Add extends Activity {
|
|
2555
2562
|
* The `origin` typically has no defined meaning.
|
2556
2563
|
*/
|
2557
2564
|
export declare class Announce extends Activity {
|
2558
|
-
#private;
|
2559
2565
|
/**
|
2560
2566
|
* The type URI of {@link Announce}: `https://www.w3.org/ns/activitystreams#Announce`.
|
2561
2567
|
*/
|
@@ -3303,7 +3309,6 @@ export declare class Application extends Object {
|
|
3303
3309
|
* inappropriate for these activities.
|
3304
3310
|
*/
|
3305
3311
|
export declare class IntransitiveActivity extends Activity {
|
3306
|
-
#private;
|
3307
3312
|
/**
|
3308
3313
|
* The type URI of {@link IntransitiveActivity}: `https://www.w3.org/ns/activitystreams#IntransitiveActivity`.
|
3309
3314
|
*/
|
@@ -3490,7 +3495,6 @@ export declare class IntransitiveActivity extends Activity {
|
|
3490
3495
|
* The `target` typically has no defined meaning.
|
3491
3496
|
*/
|
3492
3497
|
export declare class Arrive extends IntransitiveActivity {
|
3493
|
-
#private;
|
3494
3498
|
/**
|
3495
3499
|
* The type URI of {@link Arrive}: `https://www.w3.org/ns/activitystreams#Arrive`.
|
3496
3500
|
*/
|
@@ -4023,7 +4027,6 @@ export declare class Document extends Object {
|
|
4023
4027
|
/** Represents an audio document of any kind.
|
4024
4028
|
*/
|
4025
4029
|
export declare class Audio extends Document {
|
4026
|
-
#private;
|
4027
4030
|
/**
|
4028
4031
|
* The type URI of {@link Audio}: `https://www.w3.org/ns/activitystreams#Audio`.
|
4029
4032
|
*/
|
@@ -4189,7 +4192,6 @@ export declare class Audio extends Document {
|
|
4189
4192
|
* `origin` typically have no defined meaning.
|
4190
4193
|
*/
|
4191
4194
|
export declare class Ignore extends Activity {
|
4192
|
-
#private;
|
4193
4195
|
/**
|
4194
4196
|
* The type URI of {@link Ignore}: `https://www.w3.org/ns/activitystreams#Ignore`.
|
4195
4197
|
*/
|
@@ -4377,7 +4379,6 @@ export declare class Ignore extends Activity {
|
|
4377
4379
|
* and `origin` typically have no defined meaning.
|
4378
4380
|
*/
|
4379
4381
|
export declare class Block extends Ignore {
|
4380
|
-
#private;
|
4381
4382
|
/**
|
4382
4383
|
* The type URI of {@link Block}: `https://www.w3.org/ns/activitystreams#Block`.
|
4383
4384
|
*/
|
@@ -5024,7 +5025,6 @@ export declare class CollectionPage extends Collection {
|
|
5024
5025
|
/** Indicates that the `actor` has created the `object`.
|
5025
5026
|
*/
|
5026
5027
|
export declare class Create extends Activity {
|
5027
|
-
#private;
|
5028
5028
|
/**
|
5029
5029
|
* The type URI of {@link Create}: `https://www.w3.org/ns/activitystreams#Create`.
|
5030
5030
|
*/
|
@@ -5210,7 +5210,6 @@ export declare class Create extends Activity {
|
|
5210
5210
|
* the `origin` indicates the context from which the `object` was deleted.
|
5211
5211
|
*/
|
5212
5212
|
export declare class Delete extends Activity {
|
5213
|
-
#private;
|
5214
5213
|
/**
|
5215
5214
|
* The type URI of {@link Delete}: `https://www.w3.org/ns/activitystreams#Delete`.
|
5216
5215
|
*/
|
@@ -5395,7 +5394,6 @@ export declare class Delete extends Activity {
|
|
5395
5394
|
/** Indicates that the `actor` dislikes the `object`.
|
5396
5395
|
*/
|
5397
5396
|
export declare class Dislike extends Activity {
|
5398
|
-
#private;
|
5399
5397
|
/**
|
5400
5398
|
* The type URI of {@link Dislike}: `https://www.w3.org/ns/activitystreams#Dislike`.
|
5401
5399
|
*/
|
@@ -5585,6 +5583,8 @@ export declare class Endpoints {
|
|
5585
5583
|
protected get _documentLoader(): DocumentLoader | undefined;
|
5586
5584
|
protected get _contextLoader(): DocumentLoader | undefined;
|
5587
5585
|
protected get _tracerProvider(): TracerProvider | undefined;
|
5586
|
+
protected get _cachedJsonLd(): unknown | undefined;
|
5587
|
+
protected set _cachedJsonLd(value: unknown | undefined);
|
5588
5588
|
/**
|
5589
5589
|
* The type URI of {@link Endpoints}: `https://www.w3.org/ns/activitystreams#Endpoints`.
|
5590
5590
|
*/
|
@@ -5708,7 +5708,6 @@ export declare class Endpoints {
|
|
5708
5708
|
/** Represents any kind of event.
|
5709
5709
|
*/
|
5710
5710
|
export declare class Event extends Object {
|
5711
|
-
#private;
|
5712
5711
|
/**
|
5713
5712
|
* The type URI of {@link Event}: `https://www.w3.org/ns/activitystreams#Event`.
|
5714
5713
|
*/
|
@@ -5871,7 +5870,6 @@ export declare class Event extends Object {
|
|
5871
5870
|
* inappropriate for any number of reasons.
|
5872
5871
|
*/
|
5873
5872
|
export declare class Flag extends Activity {
|
5874
|
-
#private;
|
5875
5873
|
/**
|
5876
5874
|
* The type URI of {@link Flag}: `https://www.w3.org/ns/activitystreams#Flag`.
|
5877
5875
|
*/
|
@@ -6059,7 +6057,6 @@ export declare class Flag extends Activity {
|
|
6059
6057
|
* `origin` typically have no defined meaning.
|
6060
6058
|
*/
|
6061
6059
|
export declare class Follow extends Activity {
|
6062
|
-
#private;
|
6063
6060
|
/**
|
6064
6061
|
* The type URI of {@link Follow}: `https://www.w3.org/ns/activitystreams#Follow`.
|
6065
6062
|
*/
|
@@ -6817,6 +6814,8 @@ export declare class Link {
|
|
6817
6814
|
protected get _documentLoader(): DocumentLoader | undefined;
|
6818
6815
|
protected get _contextLoader(): DocumentLoader | undefined;
|
6819
6816
|
protected get _tracerProvider(): TracerProvider | undefined;
|
6817
|
+
protected get _cachedJsonLd(): unknown | undefined;
|
6818
|
+
protected set _cachedJsonLd(value: unknown | undefined);
|
6820
6819
|
/**
|
6821
6820
|
* The type URI of {@link Link}: `https://www.w3.org/ns/activitystreams#Link`.
|
6822
6821
|
*/
|
@@ -6968,7 +6967,6 @@ export declare class Link {
|
|
6968
6967
|
* See also <https://swicg.github.io/miscellany/#Hashtag>.
|
6969
6968
|
*/
|
6970
6969
|
export declare class Hashtag extends Link {
|
6971
|
-
#private;
|
6972
6970
|
/**
|
6973
6971
|
* The type URI of {@link Hashtag}: `https://www.w3.org/ns/activitystreams#Hashtag`.
|
6974
6972
|
*/
|
@@ -7059,7 +7057,6 @@ export declare class Hashtag extends Link {
|
|
7059
7057
|
/** An image document of any kind.
|
7060
7058
|
*/
|
7061
7059
|
export declare class Image extends Document {
|
7062
|
-
#private;
|
7063
7060
|
/**
|
7064
7061
|
* The type URI of {@link Image}: `https://www.w3.org/ns/activitystreams#Image`.
|
7065
7062
|
*/
|
@@ -7226,7 +7223,6 @@ export declare class Image extends Document {
|
|
7226
7223
|
* the object is being offered.
|
7227
7224
|
*/
|
7228
7225
|
export declare class Offer extends Activity {
|
7229
|
-
#private;
|
7230
7226
|
/**
|
7231
7227
|
* The type URI of {@link Offer}: `https://www.w3.org/ns/activitystreams#Offer`.
|
7232
7228
|
*/
|
@@ -7412,7 +7408,6 @@ export declare class Offer extends Activity {
|
|
7412
7408
|
* for the `object` to the `target`.
|
7413
7409
|
*/
|
7414
7410
|
export declare class Invite extends Offer {
|
7415
|
-
#private;
|
7416
7411
|
/**
|
7417
7412
|
* The type URI of {@link Invite}: `https://www.w3.org/ns/activitystreams#Invite`.
|
7418
7413
|
*/
|
@@ -7598,7 +7593,6 @@ export declare class Invite extends Offer {
|
|
7598
7593
|
* The `target` and `origin` typically have no defined meaning.
|
7599
7594
|
*/
|
7600
7595
|
export declare class Join extends Activity {
|
7601
|
-
#private;
|
7602
7596
|
/**
|
7603
7597
|
* The type URI of {@link Join}: `https://www.w3.org/ns/activitystreams#Join`.
|
7604
7598
|
*/
|
@@ -7784,7 +7778,6 @@ export declare class Join extends Activity {
|
|
7784
7778
|
* The `target` and `origin` typically have no meaning.
|
7785
7779
|
*/
|
7786
7780
|
export declare class Leave extends Activity {
|
7787
|
-
#private;
|
7788
7781
|
/**
|
7789
7782
|
* The type URI of {@link Leave}: `https://www.w3.org/ns/activitystreams#Leave`.
|
7790
7783
|
*/
|
@@ -7970,7 +7963,6 @@ export declare class Leave extends Activity {
|
|
7970
7963
|
* The `target` and `origin` typically have no defined meaning.
|
7971
7964
|
*/
|
7972
7965
|
export declare class Like extends Activity {
|
7973
|
-
#private;
|
7974
7966
|
/**
|
7975
7967
|
* The type URI of {@link Like}: `https://www.w3.org/ns/activitystreams#Like`.
|
7976
7968
|
*/
|
@@ -8155,7 +8147,6 @@ export declare class Like extends Activity {
|
|
8155
8147
|
/** Indicates that the `actor` has listened to the `object`.
|
8156
8148
|
*/
|
8157
8149
|
export declare class Listen extends Activity {
|
8158
|
-
#private;
|
8159
8150
|
/**
|
8160
8151
|
* The type URI of {@link Listen}: `https://www.w3.org/ns/activitystreams#Listen`.
|
8161
8152
|
*/
|
@@ -8340,7 +8331,6 @@ export declare class Listen extends Activity {
|
|
8340
8331
|
/** A specialized {@link Link} that represents an @mention.
|
8341
8332
|
*/
|
8342
8333
|
export declare class Mention extends Link {
|
8343
|
-
#private;
|
8344
8334
|
/**
|
8345
8335
|
* The type URI of {@link Mention}: `https://www.w3.org/ns/activitystreams#Mention`.
|
8346
8336
|
*/
|
@@ -8433,7 +8423,6 @@ export declare class Mention extends Link {
|
|
8433
8423
|
* either can be determined by context.
|
8434
8424
|
*/
|
8435
8425
|
export declare class Move extends Activity {
|
8436
|
-
#private;
|
8437
8426
|
/**
|
8438
8427
|
* The type URI of {@link Move}: `https://www.w3.org/ns/activitystreams#Move`.
|
8439
8428
|
*/
|
@@ -9742,7 +9731,6 @@ export declare class Organization extends Object {
|
|
9742
9731
|
/** Represents a Web Page.
|
9743
9732
|
*/
|
9744
9733
|
export declare class Page extends Document {
|
9745
|
-
#private;
|
9746
9734
|
/**
|
9747
9735
|
* The type URI of {@link Page}: `https://www.w3.org/ns/activitystreams#Page`.
|
9748
9736
|
*/
|
@@ -11105,7 +11093,6 @@ export declare class Question extends IntransitiveActivity {
|
|
11105
11093
|
/** Indicates that the `actor` has read the `object`.
|
11106
11094
|
*/
|
11107
11095
|
export declare class Read extends Activity {
|
11108
|
-
#private;
|
11109
11096
|
/**
|
11110
11097
|
* The type URI of {@link Read}: `https://www.w3.org/ns/activitystreams#Read`.
|
11111
11098
|
*/
|
@@ -11291,7 +11278,6 @@ export declare class Read extends Activity {
|
|
11291
11278
|
* `origin` typically have no defined meaning.
|
11292
11279
|
*/
|
11293
11280
|
export declare class Reject extends Activity {
|
11294
|
-
#private;
|
11295
11281
|
/**
|
11296
11282
|
* The type URI of {@link Reject}: `https://www.w3.org/ns/activitystreams#Reject`.
|
11297
11283
|
*/
|
@@ -11731,7 +11717,6 @@ export declare class Relationship extends Object {
|
|
11731
11717
|
* the `origin` indicates the context from which the `object` is being removed.
|
11732
11718
|
*/
|
11733
11719
|
export declare class Remove extends Activity {
|
11734
|
-
#private;
|
11735
11720
|
/**
|
11736
11721
|
* The type URI of {@link Remove}: `https://www.w3.org/ns/activitystreams#Remove`.
|
11737
11722
|
*/
|
@@ -12482,6 +12467,8 @@ export declare class Source {
|
|
12482
12467
|
protected get _documentLoader(): DocumentLoader | undefined;
|
12483
12468
|
protected get _contextLoader(): DocumentLoader | undefined;
|
12484
12469
|
protected get _tracerProvider(): TracerProvider | undefined;
|
12470
|
+
protected get _cachedJsonLd(): unknown | undefined;
|
12471
|
+
protected set _cachedJsonLd(value: unknown | undefined);
|
12485
12472
|
/**
|
12486
12473
|
* The type URI of {@link Source}: `https://www.w3.org/ns/activitystreams#Source`.
|
12487
12474
|
*/
|
@@ -12568,7 +12555,6 @@ export declare class Source {
|
|
12568
12555
|
* the acceptance is tentative.
|
12569
12556
|
*/
|
12570
12557
|
export declare class TentativeAccept extends Accept {
|
12571
|
-
#private;
|
12572
12558
|
/**
|
12573
12559
|
* The type URI of {@link TentativeAccept}: `https://www.w3.org/ns/activitystreams#TentativeAccept`.
|
12574
12560
|
*/
|
@@ -12754,7 +12740,6 @@ export declare class TentativeAccept extends Accept {
|
|
12754
12740
|
* the rejection is considered tentative.
|
12755
12741
|
*/
|
12756
12742
|
export declare class TentativeReject extends Reject {
|
12757
|
-
#private;
|
12758
12743
|
/**
|
12759
12744
|
* The type URI of {@link TentativeReject}: `https://www.w3.org/ns/activitystreams#TentativeReject`.
|
12760
12745
|
*/
|
@@ -13111,7 +13096,6 @@ export declare class Tombstone extends Object {
|
|
13111
13096
|
* either can be determined by context.
|
13112
13097
|
*/
|
13113
13098
|
export declare class Travel extends IntransitiveActivity {
|
13114
|
-
#private;
|
13115
13099
|
/**
|
13116
13100
|
* The type URI of {@link Travel}: `https://www.w3.org/ns/activitystreams#Travel`.
|
13117
13101
|
*/
|
@@ -13302,7 +13286,6 @@ export declare class Travel extends IntransitiveActivity {
|
|
13302
13286
|
* The `target` and `origin` typically have no defined meaning.
|
13303
13287
|
*/
|
13304
13288
|
export declare class Undo extends Activity {
|
13305
|
-
#private;
|
13306
13289
|
/**
|
13307
13290
|
* The type URI of {@link Undo}: `https://www.w3.org/ns/activitystreams#Undo`.
|
13308
13291
|
*/
|
@@ -13491,7 +13474,6 @@ export declare class Undo extends Activity {
|
|
13491
13474
|
* The `target` and `origin` typically have no defined meaning.
|
13492
13475
|
*/
|
13493
13476
|
export declare class Update extends Activity {
|
13494
|
-
#private;
|
13495
13477
|
/**
|
13496
13478
|
* The type URI of {@link Update}: `https://www.w3.org/ns/activitystreams#Update`.
|
13497
13479
|
*/
|
@@ -13676,7 +13658,6 @@ export declare class Update extends Activity {
|
|
13676
13658
|
/** Represents a video document of any kind.
|
13677
13659
|
*/
|
13678
13660
|
export declare class Video extends Document {
|
13679
|
-
#private;
|
13680
13661
|
/**
|
13681
13662
|
* The type URI of {@link Video}: `https://www.w3.org/ns/activitystreams#Video`.
|
13682
13663
|
*/
|
@@ -13841,7 +13822,6 @@ export declare class Video extends Document {
|
|
13841
13822
|
/** Indicates that the `actor` has viewed the object.
|
13842
13823
|
*/
|
13843
13824
|
export declare class View extends Activity {
|
13844
|
-
#private;
|
13845
13825
|
/**
|
13846
13826
|
* The type URI of {@link View}: `https://www.w3.org/ns/activitystreams#View`.
|
13847
13827
|
*/
|