@marleena/trb-proto 1.0.52 → 1.0.54
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/gen/js-ts/historiccandle/HistoriccandleServiceClientPb.ts +129 -0
- package/gen/js-ts/{clickhouse/clickhouse_pb.d.ts → historiccandle/historiccandle_pb.d.ts} +35 -160
- package/gen/js-ts/historiccandle/historiccandle_pb.js +2330 -0
- package/gen/js-ts/instruments/InstrumentsServiceClientPb.ts +216 -0
- package/gen/js-ts/instruments/instruments_pb.d.ts +275 -0
- package/gen/js-ts/instruments/instruments_pb.js +2309 -0
- package/package.json +1 -1
- package/gen/js-ts/clickhouse/ClickhouseServiceClientPb.ts +0 -259
- package/gen/js-ts/clickhouse/clickhouse_pb.js +0 -3409
- package/gen/js-ts/test/TestServiceClientPb.ts +0 -86
- package/gen/js-ts/test/test_pb.d.ts +0 -40
- package/gen/js-ts/test/test_pb.js +0 -324
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview gRPC-Web generated client stub for trb.historiccandle.v1
|
|
3
|
+
* @enhanceable
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Code generated by protoc-gen-grpc-web. DO NOT EDIT.
|
|
8
|
+
// versions:
|
|
9
|
+
// protoc-gen-grpc-web v1.5.0
|
|
10
|
+
// protoc v7.34.1
|
|
11
|
+
// source: historiccandle/historiccandle.proto
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
/* eslint-disable */
|
|
15
|
+
// @ts-nocheck
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
import * as grpcWeb from 'grpc-web';
|
|
19
|
+
|
|
20
|
+
import * as historiccandle_historiccandle_pb from '../historiccandle/historiccandle_pb'; // proto import: "historiccandle/historiccandle.proto"
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
export class HistoricCandleClient {
|
|
24
|
+
client_: grpcWeb.AbstractClientBase;
|
|
25
|
+
hostname_: string;
|
|
26
|
+
credentials_: null | { [index: string]: string; };
|
|
27
|
+
options_: null | { [index: string]: any; };
|
|
28
|
+
|
|
29
|
+
constructor (hostname: string,
|
|
30
|
+
credentials?: null | { [index: string]: string; },
|
|
31
|
+
options?: null | { [index: string]: any; }) {
|
|
32
|
+
if (!options) options = {};
|
|
33
|
+
if (!credentials) credentials = {};
|
|
34
|
+
options['format'] = 'binary';
|
|
35
|
+
|
|
36
|
+
this.client_ = new grpcWeb.GrpcWebClientBase(options);
|
|
37
|
+
this.hostname_ = hostname.replace(/\/+$/, '');
|
|
38
|
+
this.credentials_ = credentials;
|
|
39
|
+
this.options_ = options;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
methodDescriptorListLastDownloads = new grpcWeb.MethodDescriptor(
|
|
43
|
+
'/trb.historiccandle.v1.HistoricCandle/ListLastDownloads',
|
|
44
|
+
grpcWeb.MethodType.UNARY,
|
|
45
|
+
historiccandle_historiccandle_pb.ListLastDownloadsRequest,
|
|
46
|
+
historiccandle_historiccandle_pb.ListLastDownloadsResponse,
|
|
47
|
+
(request: historiccandle_historiccandle_pb.ListLastDownloadsRequest) => {
|
|
48
|
+
return request.serializeBinary();
|
|
49
|
+
},
|
|
50
|
+
historiccandle_historiccandle_pb.ListLastDownloadsResponse.deserializeBinary
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
listLastDownloads(
|
|
54
|
+
request: historiccandle_historiccandle_pb.ListLastDownloadsRequest,
|
|
55
|
+
metadata?: grpcWeb.Metadata | null): Promise<historiccandle_historiccandle_pb.ListLastDownloadsResponse>;
|
|
56
|
+
|
|
57
|
+
listLastDownloads(
|
|
58
|
+
request: historiccandle_historiccandle_pb.ListLastDownloadsRequest,
|
|
59
|
+
metadata: grpcWeb.Metadata | null,
|
|
60
|
+
callback: (err: grpcWeb.RpcError,
|
|
61
|
+
response: historiccandle_historiccandle_pb.ListLastDownloadsResponse) => void): grpcWeb.ClientReadableStream<historiccandle_historiccandle_pb.ListLastDownloadsResponse>;
|
|
62
|
+
|
|
63
|
+
listLastDownloads(
|
|
64
|
+
request: historiccandle_historiccandle_pb.ListLastDownloadsRequest,
|
|
65
|
+
metadata?: grpcWeb.Metadata | null,
|
|
66
|
+
callback?: (err: grpcWeb.RpcError,
|
|
67
|
+
response: historiccandle_historiccandle_pb.ListLastDownloadsResponse) => void) {
|
|
68
|
+
if (callback !== undefined) {
|
|
69
|
+
return this.client_.rpcCall(
|
|
70
|
+
this.hostname_ +
|
|
71
|
+
'/trb.historiccandle.v1.HistoricCandle/ListLastDownloads',
|
|
72
|
+
request,
|
|
73
|
+
metadata || {},
|
|
74
|
+
this.methodDescriptorListLastDownloads,
|
|
75
|
+
callback);
|
|
76
|
+
}
|
|
77
|
+
return this.client_.unaryCall(
|
|
78
|
+
this.hostname_ +
|
|
79
|
+
'/trb.historiccandle.v1.HistoricCandle/ListLastDownloads',
|
|
80
|
+
request,
|
|
81
|
+
metadata || {},
|
|
82
|
+
this.methodDescriptorListLastDownloads);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
methodDescriptorListCandles = new grpcWeb.MethodDescriptor(
|
|
86
|
+
'/trb.historiccandle.v1.HistoricCandle/ListCandles',
|
|
87
|
+
grpcWeb.MethodType.UNARY,
|
|
88
|
+
historiccandle_historiccandle_pb.ListCandlesRequest,
|
|
89
|
+
historiccandle_historiccandle_pb.ListCandlesResponse,
|
|
90
|
+
(request: historiccandle_historiccandle_pb.ListCandlesRequest) => {
|
|
91
|
+
return request.serializeBinary();
|
|
92
|
+
},
|
|
93
|
+
historiccandle_historiccandle_pb.ListCandlesResponse.deserializeBinary
|
|
94
|
+
);
|
|
95
|
+
|
|
96
|
+
listCandles(
|
|
97
|
+
request: historiccandle_historiccandle_pb.ListCandlesRequest,
|
|
98
|
+
metadata?: grpcWeb.Metadata | null): Promise<historiccandle_historiccandle_pb.ListCandlesResponse>;
|
|
99
|
+
|
|
100
|
+
listCandles(
|
|
101
|
+
request: historiccandle_historiccandle_pb.ListCandlesRequest,
|
|
102
|
+
metadata: grpcWeb.Metadata | null,
|
|
103
|
+
callback: (err: grpcWeb.RpcError,
|
|
104
|
+
response: historiccandle_historiccandle_pb.ListCandlesResponse) => void): grpcWeb.ClientReadableStream<historiccandle_historiccandle_pb.ListCandlesResponse>;
|
|
105
|
+
|
|
106
|
+
listCandles(
|
|
107
|
+
request: historiccandle_historiccandle_pb.ListCandlesRequest,
|
|
108
|
+
metadata?: grpcWeb.Metadata | null,
|
|
109
|
+
callback?: (err: grpcWeb.RpcError,
|
|
110
|
+
response: historiccandle_historiccandle_pb.ListCandlesResponse) => void) {
|
|
111
|
+
if (callback !== undefined) {
|
|
112
|
+
return this.client_.rpcCall(
|
|
113
|
+
this.hostname_ +
|
|
114
|
+
'/trb.historiccandle.v1.HistoricCandle/ListCandles',
|
|
115
|
+
request,
|
|
116
|
+
metadata || {},
|
|
117
|
+
this.methodDescriptorListCandles,
|
|
118
|
+
callback);
|
|
119
|
+
}
|
|
120
|
+
return this.client_.unaryCall(
|
|
121
|
+
this.hostname_ +
|
|
122
|
+
'/trb.historiccandle.v1.HistoricCandle/ListCandles',
|
|
123
|
+
request,
|
|
124
|
+
metadata || {},
|
|
125
|
+
this.methodDescriptorListCandles);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
}
|
|
129
|
+
|
|
@@ -2,7 +2,6 @@ import * as jspb from 'google-protobuf'
|
|
|
2
2
|
|
|
3
3
|
import * as google_api_annotations_pb from '../google/api/annotations_pb'; // proto import: "google/api/annotations.proto"
|
|
4
4
|
import * as google_protobuf_timestamp_pb from 'google-protobuf/google/protobuf/timestamp_pb'; // proto import: "google/protobuf/timestamp.proto"
|
|
5
|
-
import * as api_tinvest_instruments_pb from '../api/tinvest/instruments_pb'; // proto import: "api/tinvest/instruments.proto"
|
|
6
5
|
|
|
7
6
|
|
|
8
7
|
export class ListFilter extends jspb.Message {
|
|
@@ -15,6 +14,20 @@ export class ListFilter extends jspb.Message {
|
|
|
15
14
|
getOffset(): number;
|
|
16
15
|
setOffset(value: number): ListFilter;
|
|
17
16
|
|
|
17
|
+
getSortBy(): string;
|
|
18
|
+
setSortBy(value: string): ListFilter;
|
|
19
|
+
|
|
20
|
+
getSortDesc(): boolean;
|
|
21
|
+
setSortDesc(value: boolean): ListFilter;
|
|
22
|
+
|
|
23
|
+
getFieldFiltersList(): Array<FieldFilter>;
|
|
24
|
+
setFieldFiltersList(value: Array<FieldFilter>): ListFilter;
|
|
25
|
+
clearFieldFiltersList(): ListFilter;
|
|
26
|
+
addFieldFilters(value?: FieldFilter, index?: number): FieldFilter;
|
|
27
|
+
|
|
28
|
+
getIntervalFilter(): number;
|
|
29
|
+
setIntervalFilter(value: number): ListFilter;
|
|
30
|
+
|
|
18
31
|
serializeBinary(): Uint8Array;
|
|
19
32
|
toObject(includeInstance?: boolean): ListFilter.AsObject;
|
|
20
33
|
static toObject(includeInstance: boolean, msg: ListFilter): ListFilter.AsObject;
|
|
@@ -28,174 +41,32 @@ export namespace ListFilter {
|
|
|
28
41
|
q: string,
|
|
29
42
|
limit: number,
|
|
30
43
|
offset: number,
|
|
44
|
+
sortBy: string,
|
|
45
|
+
sortDesc: boolean,
|
|
46
|
+
fieldFiltersList: Array<FieldFilter.AsObject>,
|
|
47
|
+
intervalFilter: number,
|
|
31
48
|
}
|
|
32
49
|
}
|
|
33
50
|
|
|
34
|
-
export class
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
hasFilter(): boolean;
|
|
38
|
-
clearFilter(): ListInstrumentsRequest;
|
|
39
|
-
|
|
40
|
-
getLite(): boolean;
|
|
41
|
-
setLite(value: boolean): ListInstrumentsRequest;
|
|
42
|
-
|
|
43
|
-
serializeBinary(): Uint8Array;
|
|
44
|
-
toObject(includeInstance?: boolean): ListInstrumentsRequest.AsObject;
|
|
45
|
-
static toObject(includeInstance: boolean, msg: ListInstrumentsRequest): ListInstrumentsRequest.AsObject;
|
|
46
|
-
static serializeBinaryToWriter(message: ListInstrumentsRequest, writer: jspb.BinaryWriter): void;
|
|
47
|
-
static deserializeBinary(bytes: Uint8Array): ListInstrumentsRequest;
|
|
48
|
-
static deserializeBinaryFromReader(message: ListInstrumentsRequest, reader: jspb.BinaryReader): ListInstrumentsRequest;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export namespace ListInstrumentsRequest {
|
|
52
|
-
export type AsObject = {
|
|
53
|
-
filter?: ListFilter.AsObject,
|
|
54
|
-
lite: boolean,
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export class InstrumentListItem extends jspb.Message {
|
|
59
|
-
getShare(): api_tinvest_instruments_pb.Share | undefined;
|
|
60
|
-
setShare(value?: api_tinvest_instruments_pb.Share): InstrumentListItem;
|
|
61
|
-
hasShare(): boolean;
|
|
62
|
-
clearShare(): InstrumentListItem;
|
|
63
|
-
|
|
64
|
-
getVersion(): google_protobuf_timestamp_pb.Timestamp | undefined;
|
|
65
|
-
setVersion(value?: google_protobuf_timestamp_pb.Timestamp): InstrumentListItem;
|
|
66
|
-
hasVersion(): boolean;
|
|
67
|
-
clearVersion(): InstrumentListItem;
|
|
68
|
-
|
|
69
|
-
getVersionCount(): number;
|
|
70
|
-
setVersionCount(value: number): InstrumentListItem;
|
|
71
|
-
|
|
72
|
-
serializeBinary(): Uint8Array;
|
|
73
|
-
toObject(includeInstance?: boolean): InstrumentListItem.AsObject;
|
|
74
|
-
static toObject(includeInstance: boolean, msg: InstrumentListItem): InstrumentListItem.AsObject;
|
|
75
|
-
static serializeBinaryToWriter(message: InstrumentListItem, writer: jspb.BinaryWriter): void;
|
|
76
|
-
static deserializeBinary(bytes: Uint8Array): InstrumentListItem;
|
|
77
|
-
static deserializeBinaryFromReader(message: InstrumentListItem, reader: jspb.BinaryReader): InstrumentListItem;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
export namespace InstrumentListItem {
|
|
81
|
-
export type AsObject = {
|
|
82
|
-
share?: api_tinvest_instruments_pb.Share.AsObject,
|
|
83
|
-
version?: google_protobuf_timestamp_pb.Timestamp.AsObject,
|
|
84
|
-
versionCount: number,
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export class ListInstrumentsResponse extends jspb.Message {
|
|
89
|
-
getItemsList(): Array<InstrumentListItem>;
|
|
90
|
-
setItemsList(value: Array<InstrumentListItem>): ListInstrumentsResponse;
|
|
91
|
-
clearItemsList(): ListInstrumentsResponse;
|
|
92
|
-
addItems(value?: InstrumentListItem, index?: number): InstrumentListItem;
|
|
93
|
-
|
|
94
|
-
serializeBinary(): Uint8Array;
|
|
95
|
-
toObject(includeInstance?: boolean): ListInstrumentsResponse.AsObject;
|
|
96
|
-
static toObject(includeInstance: boolean, msg: ListInstrumentsResponse): ListInstrumentsResponse.AsObject;
|
|
97
|
-
static serializeBinaryToWriter(message: ListInstrumentsResponse, writer: jspb.BinaryWriter): void;
|
|
98
|
-
static deserializeBinary(bytes: Uint8Array): ListInstrumentsResponse;
|
|
99
|
-
static deserializeBinaryFromReader(message: ListInstrumentsResponse, reader: jspb.BinaryReader): ListInstrumentsResponse;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
export namespace ListInstrumentsResponse {
|
|
103
|
-
export type AsObject = {
|
|
104
|
-
itemsList: Array<InstrumentListItem.AsObject>,
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export class ListInstrumentVersionsRequest extends jspb.Message {
|
|
109
|
-
getUid(): string;
|
|
110
|
-
setUid(value: string): ListInstrumentVersionsRequest;
|
|
111
|
-
|
|
112
|
-
serializeBinary(): Uint8Array;
|
|
113
|
-
toObject(includeInstance?: boolean): ListInstrumentVersionsRequest.AsObject;
|
|
114
|
-
static toObject(includeInstance: boolean, msg: ListInstrumentVersionsRequest): ListInstrumentVersionsRequest.AsObject;
|
|
115
|
-
static serializeBinaryToWriter(message: ListInstrumentVersionsRequest, writer: jspb.BinaryWriter): void;
|
|
116
|
-
static deserializeBinary(bytes: Uint8Array): ListInstrumentVersionsRequest;
|
|
117
|
-
static deserializeBinaryFromReader(message: ListInstrumentVersionsRequest, reader: jspb.BinaryReader): ListInstrumentVersionsRequest;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
export namespace ListInstrumentVersionsRequest {
|
|
121
|
-
export type AsObject = {
|
|
122
|
-
uid: string,
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
export class InstrumentVersion extends jspb.Message {
|
|
127
|
-
getShare(): api_tinvest_instruments_pb.Share | undefined;
|
|
128
|
-
setShare(value?: api_tinvest_instruments_pb.Share): InstrumentVersion;
|
|
129
|
-
hasShare(): boolean;
|
|
130
|
-
clearShare(): InstrumentVersion;
|
|
131
|
-
|
|
132
|
-
getVersion(): google_protobuf_timestamp_pb.Timestamp | undefined;
|
|
133
|
-
setVersion(value?: google_protobuf_timestamp_pb.Timestamp): InstrumentVersion;
|
|
134
|
-
hasVersion(): boolean;
|
|
135
|
-
clearVersion(): InstrumentVersion;
|
|
136
|
-
|
|
137
|
-
serializeBinary(): Uint8Array;
|
|
138
|
-
toObject(includeInstance?: boolean): InstrumentVersion.AsObject;
|
|
139
|
-
static toObject(includeInstance: boolean, msg: InstrumentVersion): InstrumentVersion.AsObject;
|
|
140
|
-
static serializeBinaryToWriter(message: InstrumentVersion, writer: jspb.BinaryWriter): void;
|
|
141
|
-
static deserializeBinary(bytes: Uint8Array): InstrumentVersion;
|
|
142
|
-
static deserializeBinaryFromReader(message: InstrumentVersion, reader: jspb.BinaryReader): InstrumentVersion;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
export namespace InstrumentVersion {
|
|
146
|
-
export type AsObject = {
|
|
147
|
-
share?: api_tinvest_instruments_pb.Share.AsObject,
|
|
148
|
-
version?: google_protobuf_timestamp_pb.Timestamp.AsObject,
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
export class ListInstrumentVersionsResponse extends jspb.Message {
|
|
153
|
-
getItemsList(): Array<InstrumentVersion>;
|
|
154
|
-
setItemsList(value: Array<InstrumentVersion>): ListInstrumentVersionsResponse;
|
|
155
|
-
clearItemsList(): ListInstrumentVersionsResponse;
|
|
156
|
-
addItems(value?: InstrumentVersion, index?: number): InstrumentVersion;
|
|
157
|
-
|
|
158
|
-
serializeBinary(): Uint8Array;
|
|
159
|
-
toObject(includeInstance?: boolean): ListInstrumentVersionsResponse.AsObject;
|
|
160
|
-
static toObject(includeInstance: boolean, msg: ListInstrumentVersionsResponse): ListInstrumentVersionsResponse.AsObject;
|
|
161
|
-
static serializeBinaryToWriter(message: ListInstrumentVersionsResponse, writer: jspb.BinaryWriter): void;
|
|
162
|
-
static deserializeBinary(bytes: Uint8Array): ListInstrumentVersionsResponse;
|
|
163
|
-
static deserializeBinaryFromReader(message: ListInstrumentVersionsResponse, reader: jspb.BinaryReader): ListInstrumentVersionsResponse;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
export namespace ListInstrumentVersionsResponse {
|
|
167
|
-
export type AsObject = {
|
|
168
|
-
itemsList: Array<InstrumentVersion.AsObject>,
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
export class UpsertInstrumentsResponse extends jspb.Message {
|
|
173
|
-
getFetched(): number;
|
|
174
|
-
setFetched(value: number): UpsertInstrumentsResponse;
|
|
175
|
-
|
|
176
|
-
getInserted(): number;
|
|
177
|
-
setInserted(value: number): UpsertInstrumentsResponse;
|
|
51
|
+
export class FieldFilter extends jspb.Message {
|
|
52
|
+
getField(): string;
|
|
53
|
+
setField(value: string): FieldFilter;
|
|
178
54
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
getUnchanged(): number;
|
|
183
|
-
setUnchanged(value: number): UpsertInstrumentsResponse;
|
|
55
|
+
getValue(): string;
|
|
56
|
+
setValue(value: string): FieldFilter;
|
|
184
57
|
|
|
185
58
|
serializeBinary(): Uint8Array;
|
|
186
|
-
toObject(includeInstance?: boolean):
|
|
187
|
-
static toObject(includeInstance: boolean, msg:
|
|
188
|
-
static serializeBinaryToWriter(message:
|
|
189
|
-
static deserializeBinary(bytes: Uint8Array):
|
|
190
|
-
static deserializeBinaryFromReader(message:
|
|
59
|
+
toObject(includeInstance?: boolean): FieldFilter.AsObject;
|
|
60
|
+
static toObject(includeInstance: boolean, msg: FieldFilter): FieldFilter.AsObject;
|
|
61
|
+
static serializeBinaryToWriter(message: FieldFilter, writer: jspb.BinaryWriter): void;
|
|
62
|
+
static deserializeBinary(bytes: Uint8Array): FieldFilter;
|
|
63
|
+
static deserializeBinaryFromReader(message: FieldFilter, reader: jspb.BinaryReader): FieldFilter;
|
|
191
64
|
}
|
|
192
65
|
|
|
193
|
-
export namespace
|
|
66
|
+
export namespace FieldFilter {
|
|
194
67
|
export type AsObject = {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
updated: number,
|
|
198
|
-
unchanged: number,
|
|
68
|
+
field: string,
|
|
69
|
+
value: string,
|
|
199
70
|
}
|
|
200
71
|
}
|
|
201
72
|
|
|
@@ -225,6 +96,9 @@ export class ListLastDownloadsResponse extends jspb.Message {
|
|
|
225
96
|
clearItemsList(): ListLastDownloadsResponse;
|
|
226
97
|
addItems(value?: LastDownload, index?: number): LastDownload;
|
|
227
98
|
|
|
99
|
+
getTotal(): number;
|
|
100
|
+
setTotal(value: number): ListLastDownloadsResponse;
|
|
101
|
+
|
|
228
102
|
serializeBinary(): Uint8Array;
|
|
229
103
|
toObject(includeInstance?: boolean): ListLastDownloadsResponse.AsObject;
|
|
230
104
|
static toObject(includeInstance: boolean, msg: ListLastDownloadsResponse): ListLastDownloadsResponse.AsObject;
|
|
@@ -236,6 +110,7 @@ export class ListLastDownloadsResponse extends jspb.Message {
|
|
|
236
110
|
export namespace ListLastDownloadsResponse {
|
|
237
111
|
export type AsObject = {
|
|
238
112
|
itemsList: Array<LastDownload.AsObject>,
|
|
113
|
+
total: number,
|
|
239
114
|
}
|
|
240
115
|
}
|
|
241
116
|
|