@winbit32/wallet-kit 0.1.0
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/LICENSE +21 -0
- package/README.md +117 -0
- package/dist/cosign/bytes.d.ts +10 -0
- package/dist/cosign/bytes.d.ts.map +1 -0
- package/dist/cosign/bytes.js +37 -0
- package/dist/cosign/bytes.js.map +1 -0
- package/dist/cosign/config.d.ts +58 -0
- package/dist/cosign/config.d.ts.map +1 -0
- package/dist/cosign/config.js +54 -0
- package/dist/cosign/config.js.map +1 -0
- package/dist/cosign/cosignSend.d.ts +104 -0
- package/dist/cosign/cosignSend.d.ts.map +1 -0
- package/dist/cosign/cosignSend.js +157 -0
- package/dist/cosign/cosignSend.js.map +1 -0
- package/dist/cosign/index.d.ts +33 -0
- package/dist/cosign/index.d.ts.map +1 -0
- package/dist/cosign/index.js +49 -0
- package/dist/cosign/index.js.map +1 -0
- package/dist/cosign/initiator.d.ts +121 -0
- package/dist/cosign/initiator.d.ts.map +1 -0
- package/dist/cosign/initiator.js +270 -0
- package/dist/cosign/initiator.js.map +1 -0
- package/dist/cosign/orchardFrost.d.ts +140 -0
- package/dist/cosign/orchardFrost.d.ts.map +1 -0
- package/dist/cosign/orchardFrost.js +227 -0
- package/dist/cosign/orchardFrost.js.map +1 -0
- package/dist/cosign/relay.d.ts +100 -0
- package/dist/cosign/relay.d.ts.map +1 -0
- package/dist/cosign/relay.js +359 -0
- package/dist/cosign/relay.js.map +1 -0
- package/dist/cosign/seed.d.ts +32 -0
- package/dist/cosign/seed.d.ts.map +1 -0
- package/dist/cosign/seed.js +69 -0
- package/dist/cosign/seed.js.map +1 -0
- package/dist/cosign/transports.d.ts +127 -0
- package/dist/cosign/transports.d.ts.map +1 -0
- package/dist/cosign/transports.js +426 -0
- package/dist/cosign/transports.js.map +1 -0
- package/dist/cosign/vaultShare.d.ts +65 -0
- package/dist/cosign/vaultShare.d.ts.map +1 -0
- package/dist/cosign/vaultShare.js +157 -0
- package/dist/cosign/vaultShare.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/monero/types.d.ts +75 -0
- package/dist/monero/types.d.ts.map +1 -0
- package/dist/monero/types.js +9 -0
- package/dist/monero/types.js.map +1 -0
- package/dist/scanner/baseUrl.d.ts +24 -0
- package/dist/scanner/baseUrl.d.ts.map +1 -0
- package/dist/scanner/baseUrl.js +35 -0
- package/dist/scanner/baseUrl.js.map +1 -0
- package/dist/scanner/moneroScannerClient.d.ts +97 -0
- package/dist/scanner/moneroScannerClient.d.ts.map +1 -0
- package/dist/scanner/moneroScannerClient.js +125 -0
- package/dist/scanner/moneroScannerClient.js.map +1 -0
- package/dist/scanner/zcashScannerClient.d.ts +116 -0
- package/dist/scanner/zcashScannerClient.d.ts.map +1 -0
- package/dist/scanner/zcashScannerClient.js +150 -0
- package/dist/scanner/zcashScannerClient.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wallet Scanner API Client (Orchard + UTXOs)
|
|
3
|
+
*
|
|
4
|
+
* Wraps the Winbit32 wallet-scanner service endpoints:
|
|
5
|
+
* - POST /wallet-scanner/orchard/export-ufvk
|
|
6
|
+
* - POST /wallet-scanner/orchard/scan-ufvk
|
|
7
|
+
* - POST /wallet-scanner/orchard/scan-ufvk/job
|
|
8
|
+
* - GET /wallet-scanner/orchard/scan-ufvk/job/{jobId}
|
|
9
|
+
* - DELETE /wallet-scanner/orchard/scan-ufvk/job/{jobId}
|
|
10
|
+
* - POST /wallet-scanner/utxos
|
|
11
|
+
*/
|
|
12
|
+
export interface WalletScannerClientConfig {
|
|
13
|
+
baseUrl?: string;
|
|
14
|
+
apiKey?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare const createWalletScannerClient: (config?: WalletScannerClientConfig) => {
|
|
17
|
+
exportUfvkRemote: (body: {
|
|
18
|
+
mnemonic: string;
|
|
19
|
+
purpose?: number;
|
|
20
|
+
coinType?: number;
|
|
21
|
+
account?: number;
|
|
22
|
+
change?: number;
|
|
23
|
+
addressIndex?: number;
|
|
24
|
+
}) => Promise<{
|
|
25
|
+
success: boolean;
|
|
26
|
+
data?: {
|
|
27
|
+
ufvk: string;
|
|
28
|
+
} | undefined;
|
|
29
|
+
error?: string | undefined;
|
|
30
|
+
}>;
|
|
31
|
+
scanUfvkImmediate: (body: {
|
|
32
|
+
ufvk: string;
|
|
33
|
+
birthdayHeight?: number;
|
|
34
|
+
}) => Promise<{
|
|
35
|
+
success: boolean;
|
|
36
|
+
data?: {
|
|
37
|
+
notes: Array<{
|
|
38
|
+
tx_hash: string;
|
|
39
|
+
block_height: number;
|
|
40
|
+
value: number;
|
|
41
|
+
nullifier: string;
|
|
42
|
+
commitment: string;
|
|
43
|
+
ephemeral_key: string;
|
|
44
|
+
}>;
|
|
45
|
+
} | undefined;
|
|
46
|
+
error?: string | undefined;
|
|
47
|
+
}>;
|
|
48
|
+
startOrchardScanJob: (body: {
|
|
49
|
+
ufvk: string;
|
|
50
|
+
birthdayHeight?: number;
|
|
51
|
+
endHeight?: number;
|
|
52
|
+
witness?: boolean;
|
|
53
|
+
autoDetect?: boolean;
|
|
54
|
+
forceRescan?: boolean;
|
|
55
|
+
}, opts?: {
|
|
56
|
+
apiKey?: string;
|
|
57
|
+
}) => Promise<{
|
|
58
|
+
success: boolean;
|
|
59
|
+
data?: {
|
|
60
|
+
jobId: string;
|
|
61
|
+
jobToken: string;
|
|
62
|
+
} | undefined;
|
|
63
|
+
error?: string | undefined;
|
|
64
|
+
}>;
|
|
65
|
+
getOrchardScanJob: (jobId: string, auth: {
|
|
66
|
+
apiKey?: string;
|
|
67
|
+
jobToken?: string;
|
|
68
|
+
}) => Promise<{
|
|
69
|
+
success: boolean;
|
|
70
|
+
data?: {
|
|
71
|
+
job: {
|
|
72
|
+
status: string;
|
|
73
|
+
progress?: any;
|
|
74
|
+
results?: {
|
|
75
|
+
notes: any[];
|
|
76
|
+
};
|
|
77
|
+
createdAt?: string;
|
|
78
|
+
startedAt?: string;
|
|
79
|
+
finishedAt?: string;
|
|
80
|
+
};
|
|
81
|
+
} | undefined;
|
|
82
|
+
}>;
|
|
83
|
+
cancelOrchardScanJob: (jobId: string, auth: {
|
|
84
|
+
apiKey?: string;
|
|
85
|
+
jobToken?: string;
|
|
86
|
+
}) => Promise<{
|
|
87
|
+
success: boolean;
|
|
88
|
+
data?: {
|
|
89
|
+
cancelled: boolean;
|
|
90
|
+
} | undefined;
|
|
91
|
+
}>;
|
|
92
|
+
getUtxos: (address: string) => Promise<{
|
|
93
|
+
success: boolean;
|
|
94
|
+
data?: {
|
|
95
|
+
address: string;
|
|
96
|
+
type: string;
|
|
97
|
+
source: string;
|
|
98
|
+
utxoCount: number;
|
|
99
|
+
utxos: any[];
|
|
100
|
+
durationMs: number;
|
|
101
|
+
currentBlockHeight?: number | undefined;
|
|
102
|
+
} | undefined;
|
|
103
|
+
}>;
|
|
104
|
+
broadcastRawTransaction: (body: {
|
|
105
|
+
rawTxHex: string;
|
|
106
|
+
allowHighFees?: boolean;
|
|
107
|
+
}) => Promise<{
|
|
108
|
+
success: boolean;
|
|
109
|
+
data?: {
|
|
110
|
+
txid: string;
|
|
111
|
+
} | undefined;
|
|
112
|
+
error?: string | undefined;
|
|
113
|
+
}>;
|
|
114
|
+
};
|
|
115
|
+
export type WalletScannerClientType = ReturnType<typeof createWalletScannerClient>;
|
|
116
|
+
//# sourceMappingURL=zcashScannerClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zcashScannerClient.d.ts","sourceRoot":"","sources":["../../src/scanner/zcashScannerClient.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,yBAAyB;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AA8BD,eAAO,MAAM,yBAAyB,YAAY,yBAAyB;6BAY1C;QAC9B,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,CAAC;KACtB;iBAMqC,OAAO;;kBAAiB,MAAM;;;;8BAIpC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE;iBAO9D,OAAO;;mBACA,MAAM;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAC;gBAAC,SAAS,EAAE,MAAM,CAAC;gBAAC,UAAU,EAAE,MAAM,CAAC;gBAAC,aAAa,EAAE,MAAM,CAAA;aAAE,CAAC;;;;gCAU7G;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,SAAS;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;iBAMrJ,OAAO;;mBAAkB,MAAM;sBAAY,MAAM;;;;+BAItD,MAAM,QAAQ;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;iBAS1E,OAAO;;iBACF;gBAAE,QAAQ,MAAM,CAAC;gBAAC,QAAQ,CAAC,EAAE,GAAG,CAAC;gBAAC,OAAO,CAAC,EAAE;oBAAE,KAAK,EAAE,GAAG,EAAE,CAAA;iBAAE,CAAC;gBAAC,SAAS,CAAC,EAAE,MAAM,CAAC;gBAAC,SAAS,CAAC,EAAE,MAAM,CAAC;gBAAC,UAAU,CAAC,EAAE,MAAM,CAAA;aAAE;;;kCAKvG,MAAM,QAAQ;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;iBAQlD,OAAO;;uBAAsB,OAAO;;;wBAIhD,MAAM;iBAOrB,OAAO;;qBACE,MAAM;kBAAQ,MAAM;oBAAU,MAAM;uBAAa,MAAM;mBAAS,GAAG,EAAE;wBAAc,MAAM;;;;oCAOvE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE;iBAgBvE,OAAO;;kBACD,MAAM;;;;CAazB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Wallet Scanner API Client (Orchard + UTXOs)
|
|
4
|
+
*
|
|
5
|
+
* Wraps the Winbit32 wallet-scanner service endpoints:
|
|
6
|
+
* - POST /wallet-scanner/orchard/export-ufvk
|
|
7
|
+
* - POST /wallet-scanner/orchard/scan-ufvk
|
|
8
|
+
* - POST /wallet-scanner/orchard/scan-ufvk/job
|
|
9
|
+
* - GET /wallet-scanner/orchard/scan-ufvk/job/{jobId}
|
|
10
|
+
* - DELETE /wallet-scanner/orchard/scan-ufvk/job/{jobId}
|
|
11
|
+
* - POST /wallet-scanner/utxos
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.createWalletScannerClient = void 0;
|
|
15
|
+
const DEFAULT_BASE_URL = 'https://api.zcash.winbit32.com/api';
|
|
16
|
+
const BROADCAST_TIMEOUT_MS = 120000;
|
|
17
|
+
/**
|
|
18
|
+
* Host apps (Winbit32) wrap window.fetch with a gRPC-web interceptor;
|
|
19
|
+
* broadcasts must bypass it. Embedders without an interceptor just get
|
|
20
|
+
* plain fetch.
|
|
21
|
+
*/
|
|
22
|
+
const getRawFetch = () => {
|
|
23
|
+
if (typeof window === 'undefined')
|
|
24
|
+
return fetch;
|
|
25
|
+
const windowAny = window;
|
|
26
|
+
return windowAny.__WB32_FETCH_ORIGINAL__ || windowAny.__WB32_NATIVE_FETCH__ || windowAny.fetch || fetch;
|
|
27
|
+
};
|
|
28
|
+
async function handleJsonResponse(res) {
|
|
29
|
+
let payload = null;
|
|
30
|
+
try {
|
|
31
|
+
payload = await res.json();
|
|
32
|
+
}
|
|
33
|
+
catch (e) {
|
|
34
|
+
throw new Error(`Invalid JSON response (status ${res.status})`);
|
|
35
|
+
}
|
|
36
|
+
if (!res.ok) {
|
|
37
|
+
const msg = payload?.error || payload?.message || `HTTP ${res.status}`;
|
|
38
|
+
throw new Error(msg);
|
|
39
|
+
}
|
|
40
|
+
return payload;
|
|
41
|
+
}
|
|
42
|
+
const createWalletScannerClient = (config = {}) => {
|
|
43
|
+
const baseUrl = (config.baseUrl || DEFAULT_BASE_URL).replace(/\/$/, '');
|
|
44
|
+
const withHeaders = (extra) => {
|
|
45
|
+
const headers = { 'Content-Type': 'application/json' };
|
|
46
|
+
if (config.apiKey)
|
|
47
|
+
headers['X-API-Key'] = config.apiKey;
|
|
48
|
+
if (extra)
|
|
49
|
+
Object.assign(headers, extra);
|
|
50
|
+
return headers;
|
|
51
|
+
};
|
|
52
|
+
return {
|
|
53
|
+
// Prefer local derivation; this remote export is here for completeness
|
|
54
|
+
exportUfvkRemote: async (body) => {
|
|
55
|
+
const res = await fetch(`${baseUrl}/wallet-scanner/orchard/export-ufvk`, {
|
|
56
|
+
method: 'POST',
|
|
57
|
+
headers: withHeaders(),
|
|
58
|
+
body: JSON.stringify(body)
|
|
59
|
+
});
|
|
60
|
+
return handleJsonResponse(res);
|
|
61
|
+
},
|
|
62
|
+
// Immediate scan (if supported). Returns decrypted note metadata.
|
|
63
|
+
scanUfvkImmediate: async (body) => {
|
|
64
|
+
const res = await fetch(`${baseUrl}/wallet-scanner/orchard/scan-ufvk`, {
|
|
65
|
+
method: 'POST',
|
|
66
|
+
headers: withHeaders(),
|
|
67
|
+
body: JSON.stringify(body)
|
|
68
|
+
});
|
|
69
|
+
return handleJsonResponse(res);
|
|
70
|
+
},
|
|
71
|
+
// Start async scan job. Returns jobId and per-job token.
|
|
72
|
+
// Non-blocking: the POST returns immediately even with autoDetect:true
|
|
73
|
+
// (the server resolves the birthday in the background, surfaced via
|
|
74
|
+
// progress.phase 'detecting-birthday'). Poll getOrchardScanJob until
|
|
75
|
+
// job.status === 'succeeded'.
|
|
76
|
+
startOrchardScanJob: async (body, opts) => {
|
|
77
|
+
const res = await fetch(`${baseUrl}/wallet-scanner/orchard/scan-ufvk/job`, {
|
|
78
|
+
method: 'POST',
|
|
79
|
+
headers: withHeaders(opts?.apiKey ? { 'X-API-Key': opts.apiKey } : undefined),
|
|
80
|
+
body: JSON.stringify(body)
|
|
81
|
+
});
|
|
82
|
+
return handleJsonResponse(res);
|
|
83
|
+
},
|
|
84
|
+
// Poll job status using API key or per-job token
|
|
85
|
+
getOrchardScanJob: async (jobId, auth) => {
|
|
86
|
+
const headers = withHeaders();
|
|
87
|
+
if (auth.jobToken)
|
|
88
|
+
headers['X-Job-Token'] = auth.jobToken;
|
|
89
|
+
if (auth.apiKey)
|
|
90
|
+
headers['X-API-Key'] = auth.apiKey;
|
|
91
|
+
const res = await fetch(`${baseUrl}/wallet-scanner/orchard/scan-ufvk/job/${jobId}`, {
|
|
92
|
+
method: 'GET',
|
|
93
|
+
headers
|
|
94
|
+
});
|
|
95
|
+
return handleJsonResponse(res);
|
|
96
|
+
},
|
|
97
|
+
// Cancel a running job
|
|
98
|
+
cancelOrchardScanJob: async (jobId, auth) => {
|
|
99
|
+
const headers = withHeaders();
|
|
100
|
+
if (auth.jobToken)
|
|
101
|
+
headers['X-Job-Token'] = auth.jobToken;
|
|
102
|
+
if (auth.apiKey)
|
|
103
|
+
headers['X-API-Key'] = auth.apiKey;
|
|
104
|
+
const res = await fetch(`${baseUrl}/wallet-scanner/orchard/scan-ufvk/job/${jobId}`, {
|
|
105
|
+
method: 'DELETE',
|
|
106
|
+
headers
|
|
107
|
+
});
|
|
108
|
+
return handleJsonResponse(res);
|
|
109
|
+
},
|
|
110
|
+
// Normalised UTXOs for provided address (transparent subset for unified)
|
|
111
|
+
getUtxos: async (address) => {
|
|
112
|
+
const res = await fetch(`${baseUrl}/wallet-scanner/utxos`, {
|
|
113
|
+
method: 'POST',
|
|
114
|
+
headers: withHeaders(),
|
|
115
|
+
body: JSON.stringify({ address })
|
|
116
|
+
});
|
|
117
|
+
return handleJsonResponse(res);
|
|
118
|
+
},
|
|
119
|
+
// Broadcast a signed transparent transaction hex blob.
|
|
120
|
+
// Uses native fetch directly to bypass any gRPC-web fetch interceptor,
|
|
121
|
+
// and an AbortController for proper timeout handling.
|
|
122
|
+
broadcastRawTransaction: async (body) => {
|
|
123
|
+
const url = `${baseUrl}/wallet-scanner/transactions/broadcast`;
|
|
124
|
+
const nativeFetch = getRawFetch();
|
|
125
|
+
const controller = new AbortController();
|
|
126
|
+
const timer = setTimeout(() => controller.abort(), BROADCAST_TIMEOUT_MS);
|
|
127
|
+
const init = {
|
|
128
|
+
method: 'POST',
|
|
129
|
+
headers: withHeaders(),
|
|
130
|
+
body: JSON.stringify(body),
|
|
131
|
+
signal: controller.signal
|
|
132
|
+
};
|
|
133
|
+
try {
|
|
134
|
+
const res = await nativeFetch(url, init);
|
|
135
|
+
return await handleJsonResponse(res);
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
if (error?.name === 'AbortError') {
|
|
139
|
+
throw new Error(`Broadcast request timed out after ${BROADCAST_TIMEOUT_MS / 1000}s`);
|
|
140
|
+
}
|
|
141
|
+
throw error;
|
|
142
|
+
}
|
|
143
|
+
finally {
|
|
144
|
+
clearTimeout(timer);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
exports.createWalletScannerClient = createWalletScannerClient;
|
|
150
|
+
//# sourceMappingURL=zcashScannerClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zcashScannerClient.js","sourceRoot":"","sources":["../../src/scanner/zcashScannerClient.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@winbit32/wallet-kit",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Embeddable Zcash + Monero wallet primitives extracted from Winbit32: scanner API clients and the WB32COSIGN FROST/Orchard cosign client with a headless initiator pipeline. Framework-agnostic, browser-first, Node >= 18.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Winbit32",
|
|
7
|
+
"homepage": "https://winbit32.com",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/FungeLLC/WINBIT32.git",
|
|
11
|
+
"directory": "packages/wallet-kit"
|
|
12
|
+
},
|
|
13
|
+
"type": "commonjs",
|
|
14
|
+
"main": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"default": "./dist/index.js"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist",
|
|
24
|
+
"README.md"
|
|
25
|
+
],
|
|
26
|
+
"sideEffects": false,
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "tsc -p tsconfig.json",
|
|
29
|
+
"clean": "rm -rf dist"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"typescript": "^5.0.0"
|
|
33
|
+
},
|
|
34
|
+
"publishConfig": {
|
|
35
|
+
"access": "public"
|
|
36
|
+
}
|
|
37
|
+
}
|