@spinajs/configuration 2.0.19 → 2.0.39
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/lib/configuration.d.ts +3 -3
- package/lib/configuration.js +10 -12
- package/lib/configuration.js.map +1 -1
- package/lib/decorators.d.ts +14 -1
- package/lib/decorators.js +60 -3
- package/lib/decorators.js.map +1 -1
- package/lib/exception.d.ts +2 -2
- package/lib/exception.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/package.json +6 -6
package/lib/configuration.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Class, Container } from '@spinajs/di';
|
|
2
|
-
import { ConfigurationSource,
|
|
2
|
+
import { ConfigurationSource, Configuration, ConfigurationOptions, IConfigurationSchema } from '@spinajs/configuration-common';
|
|
3
3
|
import Ajv from 'ajv';
|
|
4
4
|
import './sources';
|
|
5
5
|
export declare class FrameworkConfiguration extends Configuration {
|
|
@@ -50,14 +50,14 @@ export declare class FrameworkConfiguration extends Configuration {
|
|
|
50
50
|
* @param value - value to merge
|
|
51
51
|
*/
|
|
52
52
|
merge(path: string[] | string, value: unknown): void;
|
|
53
|
-
|
|
53
|
+
resolve(): Promise<void>;
|
|
54
54
|
mergeSource(sType: Class<ConfigurationSource>): Promise<void>;
|
|
55
55
|
/**
|
|
56
56
|
* Reloads configuration data
|
|
57
57
|
*/
|
|
58
58
|
reload(): Promise<void>;
|
|
59
59
|
protected loadSources(): void;
|
|
60
|
-
protected
|
|
60
|
+
protected validate(): void;
|
|
61
61
|
protected initValidator(): void;
|
|
62
62
|
protected dir(toJoin: string): string;
|
|
63
63
|
/**
|
package/lib/configuration.js
CHANGED
|
@@ -107,7 +107,7 @@ let FrameworkConfiguration = class FrameworkConfiguration extends configuration_
|
|
|
107
107
|
merge(path, value) {
|
|
108
108
|
_.mergeWith(this.get(path), value, util_1.mergeArrays);
|
|
109
109
|
}
|
|
110
|
-
async
|
|
110
|
+
async resolve() {
|
|
111
111
|
if (!this.Container.hasRegistered(configuration_common_1.ConfigurationSource)) {
|
|
112
112
|
throw new exceptions_1.InvalidOperation('No configuration sources configured. Please ensure that config module have any source to read from !');
|
|
113
113
|
}
|
|
@@ -131,6 +131,7 @@ let FrameworkConfiguration = class FrameworkConfiguration extends configuration_
|
|
|
131
131
|
*/
|
|
132
132
|
this.loadSources();
|
|
133
133
|
await this.reload();
|
|
134
|
+
this.validate();
|
|
134
135
|
/**
|
|
135
136
|
* Merge from DI container
|
|
136
137
|
* eg. when custom modules have config and dont want to use files
|
|
@@ -148,7 +149,7 @@ let FrameworkConfiguration = class FrameworkConfiguration extends configuration_
|
|
|
148
149
|
const sCfg = await source.Load(this);
|
|
149
150
|
this.Sources.push(source);
|
|
150
151
|
if (sCfg) {
|
|
151
|
-
|
|
152
|
+
_.mergeWith(sCfg, util_1.mergeArrays);
|
|
152
153
|
}
|
|
153
154
|
}
|
|
154
155
|
/**
|
|
@@ -159,7 +160,7 @@ let FrameworkConfiguration = class FrameworkConfiguration extends configuration_
|
|
|
159
160
|
for (const source of this.Sources) {
|
|
160
161
|
const rCfg = await source.Load(this);
|
|
161
162
|
if (rCfg) {
|
|
162
|
-
this.
|
|
163
|
+
_.mergeWith(this.Config, rCfg, util_1.mergeArrays);
|
|
163
164
|
}
|
|
164
165
|
}
|
|
165
166
|
}
|
|
@@ -174,17 +175,14 @@ let FrameworkConfiguration = class FrameworkConfiguration extends configuration_
|
|
|
174
175
|
return a.Order < b.Order ? -1 : a.Order > b.Order ? 1 : 0;
|
|
175
176
|
});
|
|
176
177
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
const
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
throw new exception_1.InvalidConfiguration('invalid configuration ! Check config files and restart app.', this.Validator.errors);
|
|
184
|
-
}
|
|
178
|
+
validate() {
|
|
179
|
+
this.ValidationSchemas.forEach((s) => {
|
|
180
|
+
const config = this.get(s.$configurationModule);
|
|
181
|
+
const result = this.Validator.validate(s, config);
|
|
182
|
+
if (!result) {
|
|
183
|
+
throw new exception_1.InvalidConfiguration('invalid configuration ! Check config files and restart app.', this.Validator.errors);
|
|
185
184
|
}
|
|
186
185
|
});
|
|
187
|
-
_.mergeWith(this.Config, rCfg, util_1.mergeArrays);
|
|
188
186
|
}
|
|
189
187
|
initValidator() {
|
|
190
188
|
this.Validator = new ajv_1.default({
|
package/lib/configuration.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAsC;AACtC,uDAAuD;AACvD,sDAAsD;AACtD,oCAAuE;AACvE,oDAAuD;AACvD,+BAAgD;AAChD,wEAOuC;AACvC,iCAAgD;AAChD,0CAA4B;AAC5B,8CAAsB;AACtB,2CAAmD;AACnD,8DAA0D;AAC1D,qBAAmB;AACnB,2EAA4C;AAG5C,IAAa,sBAAsB,GAAnC,MAAa,sBAAuB,SAAQ,oCAAa;IA+BvD;;;;;OAKG;IACH,YAAY,OAA8B;;QACxC,KAAK,EAAE,CAAC;QArCV;;WAEG;QACI,eAAU,GAAG,IAAI,CAAC;QAEzB;;WAEG;QACI,WAAM,GAAG,EAAE,CAAC;QAEnB;;WAEG;QACO,WAAM,GAA4B,EAAE,CAAC;QA0B7C,IAAI,CAAC,iBAAiB,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,mCAAI,EAAE,CAAC;QACvD,IAAI,CAAC,MAAM,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,GAAG,mCAAI,IAAA,gBAAS,EAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,GAAG,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,IAAA,gBAAS,EAAC,WAAW,CAAC,mCAAI,IAAA,WAAI,EAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACjG,CAAC;IAnBD,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAmBD;;;;;OAKG;IACI,GAAG,CAAI,IAAuB,EAAE,YAAgB;QACrD,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,YAAY,CAAM,CAAC;IACrD,CAAC;IAED;;;;;;OAMG;IACI,GAAG,CAAC,IAAuB,EAAE,KAAc;QAChD,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,IAAuB,EAAE,KAAc;QAClD,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAW,CAAC,CAAC;IAClD,CAAC;IAEM,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../src/configuration.ts"],"names":[],"mappings":"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"}
|
package/lib/decorators.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { IConfigEntryOptions } from '@spinajs/configuration-common';
|
|
2
|
+
import { Class } from '@spinajs/di';
|
|
1
3
|
/**
|
|
2
4
|
* Injects configuration value to given class property
|
|
3
5
|
*
|
|
@@ -5,4 +7,15 @@
|
|
|
5
7
|
* @param dafaultValue - default value if path not exists
|
|
6
8
|
* @returns
|
|
7
9
|
*/
|
|
8
|
-
export declare function Config(path: string,
|
|
10
|
+
export declare function Config(path: string, options?: IConfigEntryOptions): (target?: any, key?: string) => any;
|
|
11
|
+
/**
|
|
12
|
+
* Inject service based on configuration.
|
|
13
|
+
* Configuration could be object or string containing service
|
|
14
|
+
*
|
|
15
|
+
* If array is provided in configuration, service is resolved by name
|
|
16
|
+
* stored in 'service' property and returnes as Map\<serviceName, instance\>
|
|
17
|
+
*
|
|
18
|
+
* @param path - configuration path where service type is stored
|
|
19
|
+
* @param type - if type is provided, it will override type obtain from reflection. Use it specific with arrays and maps, becouse ts reflection module cannot extract array and map type data
|
|
20
|
+
*/
|
|
21
|
+
export declare function AutoinjectService(path: string, type?: Class<unknown>): any;
|
package/lib/decorators.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Config = void 0;
|
|
3
|
+
exports.AutoinjectService = exports.Config = void 0;
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
4
5
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
5
6
|
const configuration_common_1 = require("@spinajs/configuration-common");
|
|
6
7
|
const di_1 = require("@spinajs/di");
|
|
@@ -11,14 +12,18 @@ const di_1 = require("@spinajs/di");
|
|
|
11
12
|
* @param dafaultValue - default value if path not exists
|
|
12
13
|
* @returns
|
|
13
14
|
*/
|
|
14
|
-
function Config(path,
|
|
15
|
+
function Config(path, options) {
|
|
15
16
|
return (target, key) => {
|
|
16
17
|
let config = null;
|
|
17
18
|
const getter = () => {
|
|
19
|
+
var _a;
|
|
18
20
|
if (!config) {
|
|
19
21
|
config = di_1.DI.get(configuration_common_1.Configuration);
|
|
20
22
|
}
|
|
21
|
-
|
|
23
|
+
// register conf, so we can expose eg. in db if config is set
|
|
24
|
+
di_1.DI.register({ path, options }).asValue('__configuration_property__');
|
|
25
|
+
// try to return val
|
|
26
|
+
return config.get(path, options ? (_a = options.defaultValue) !== null && _a !== void 0 ? _a : undefined : undefined);
|
|
22
27
|
};
|
|
23
28
|
Object.defineProperty(target, key, {
|
|
24
29
|
get: getter,
|
|
@@ -28,4 +33,56 @@ function Config(path, dafaultValue) {
|
|
|
28
33
|
};
|
|
29
34
|
}
|
|
30
35
|
exports.Config = Config;
|
|
36
|
+
/**
|
|
37
|
+
* Inject service based on configuration.
|
|
38
|
+
* Configuration could be object or string containing service
|
|
39
|
+
*
|
|
40
|
+
* If array is provided in configuration, service is resolved by name
|
|
41
|
+
* stored in 'service' property and returnes as Map\<serviceName, instance\>
|
|
42
|
+
*
|
|
43
|
+
* @param path - configuration path where service type is stored
|
|
44
|
+
* @param type - if type is provided, it will override type obtain from reflection. Use it specific with arrays and maps, becouse ts reflection module cannot extract array and map type data
|
|
45
|
+
*/
|
|
46
|
+
function AutoinjectService(path, type) {
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
48
|
+
return (0, di_1.AddDependency)((descriptor, target, propertyKey) => {
|
|
49
|
+
const t = type !== null && type !== void 0 ? type : Reflect.getMetadata('design:type', target, propertyKey);
|
|
50
|
+
descriptor.inject.push({
|
|
51
|
+
autoinject: true,
|
|
52
|
+
autoinjectKey: propertyKey,
|
|
53
|
+
inject: t,
|
|
54
|
+
data: path,
|
|
55
|
+
serviceFunc: (path, container) => {
|
|
56
|
+
const cfg = container.get(configuration_common_1.Configuration);
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
58
|
+
const cfgVal = cfg.get(path);
|
|
59
|
+
if (!cfgVal) {
|
|
60
|
+
throw new Error(`Configuration value ${path} is empty`);
|
|
61
|
+
}
|
|
62
|
+
if ((0, lodash_1.isString)(cfgVal)) {
|
|
63
|
+
return {
|
|
64
|
+
service: cfgVal,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if ((0, lodash_1.isArray)(cfgVal)) {
|
|
68
|
+
return cfgVal.map((x) => {
|
|
69
|
+
return {
|
|
70
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
|
|
71
|
+
service: x.service,
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
73
|
+
options: x,
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
|
|
79
|
+
service: cfgVal.service,
|
|
80
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
81
|
+
options: cfgVal,
|
|
82
|
+
};
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
exports.AutoinjectService = AutoinjectService;
|
|
31
88
|
//# sourceMappingURL=decorators.js.map
|
package/lib/decorators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":";;;AAAA,mCAA2C;AAC3C,uDAAuD;AACvD,wEAAmF;AACnF,oCAAsF;AAEtF;;;;;;GAMG;AACH,SAAgB,MAAM,CAAC,IAAY,EAAE,OAA6B;IAChE,OAAO,CAAC,MAAY,EAAE,GAAY,EAAO,EAAE;QACzC,IAAI,MAAM,GAAkB,IAAI,CAAC;QAEjC,MAAM,MAAM,GAAG,GAAG,EAAE;;YAClB,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM,GAAG,OAAE,CAAC,GAAG,CAAC,oCAAa,CAAC,CAAC;aAChC;YAED,6DAA6D;YAC7D,OAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAErE,oBAAoB;YACpB,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,YAAY,mCAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACnF,CAAC,CAAC;QAEF,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;YACjC,GAAG,EAAE,MAAM;YACX,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAtBD,wBAsBC;AAED;;;;;;;;;GASG;AACH,SAAgB,iBAAiB,CAAC,IAAY,EAAE,IAAqB;IACnE,+DAA+D;IAC/D,OAAO,IAAA,kBAAa,EAAC,CAAC,UAAsC,EAAE,MAAsB,EAAE,WAAmB,EAAE,EAAE;QAC3G,MAAM,CAAC,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAK,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,CAAoB,CAAC;QAC9F,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC;YACrB,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,WAAW;YAC1B,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,CAAC,IAAY,EAAE,SAAqB,EAAE,EAAE;gBACnD,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,oCAAa,CAAC,CAAC;gBACzC,mEAAmE;gBACnE,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAM,IAAI,CAAC,CAAC;gBAElC,IAAI,CAAC,MAAM,EAAE;oBACX,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,WAAW,CAAC,CAAC;iBACzD;gBAED,IAAI,IAAA,iBAAQ,EAAC,MAAM,CAAC,EAAE;oBACpB,OAAO;wBACL,OAAO,EAAE,MAAM;qBAChB,CAAC;iBACH;gBAED,IAAI,IAAA,gBAAO,EAAC,MAAM,CAAC,EAAE;oBACnB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBACtB,OAAO;4BACL,+GAA+G;4BAC/G,OAAO,EAAE,CAAC,CAAC,OAAiB;4BAC5B,mEAAmE;4BACnE,OAAO,EAAE,CAAC;yBACX,CAAC;oBACJ,CAAC,CAAC,CAAC;iBACJ;gBAED,OAAO;oBACL,+GAA+G;oBAC/G,OAAO,EAAE,MAAM,CAAC,OAAiB;oBACjC,mEAAmE;oBACnE,OAAO,EAAE,MAAM;iBAChB,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AA5CD,8CA4CC"}
|
package/lib/exception.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ErrorObject } from 'ajv';
|
|
2
2
|
export declare class InvalidConfiguration extends Error {
|
|
3
|
-
validationExceptions
|
|
4
|
-
constructor(message: string, validationExceptions
|
|
3
|
+
validationExceptions?: ErrorObject[];
|
|
4
|
+
constructor(message: string, validationExceptions?: ErrorObject[]);
|
|
5
5
|
}
|
package/lib/exception.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exception.js","sourceRoot":"","sources":["../src/exception.ts"],"names":[],"mappings":";;;AAEA,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe,EAAS,
|
|
1
|
+
{"version":3,"file":"exception.js","sourceRoot":"","sources":["../src/exception.ts"],"names":[],"mappings":";;;AAEA,MAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAe,EAAS,oBAAoC;QACtE,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,yBAAoB,GAApB,oBAAoB,CAAgB;IAExE,CAAC;CACF;AAJD,oDAIC"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -22,4 +22,5 @@ __exportStar(require("@spinajs/configuration-common"), exports);
|
|
|
22
22
|
__exportStar(require("./sources"), exports);
|
|
23
23
|
__exportStar(require("./decorators"), exports);
|
|
24
24
|
__exportStar(require("./configuration"), exports);
|
|
25
|
+
__exportStar(require("./exception"), exports);
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;GAGG;AACH,gEAA8C;AAC9C,4CAA0B;AAC1B,+CAA6B;AAC7B,kDAAgC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;GAGG;AACH,gEAA8C;AAC9C,4CAA0B;AAC1B,+CAA6B;AAC7B,kDAAgC;AAChC,8CAA4B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spinajs/configuration",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.39",
|
|
4
4
|
"description": "framework configuration module",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"private": false,
|
|
@@ -40,10 +40,10 @@
|
|
|
40
40
|
},
|
|
41
41
|
"homepage": "https://github.com/spinajs/configuration#readme",
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@spinajs/configuration-common": "^2.0.
|
|
44
|
-
"@spinajs/di": "^2.0.
|
|
45
|
-
"@spinajs/exceptions": "^2.0.
|
|
46
|
-
"@spinajs/internal-logger": "^2.0.
|
|
43
|
+
"@spinajs/configuration-common": "^2.0.39",
|
|
44
|
+
"@spinajs/di": "^2.0.39",
|
|
45
|
+
"@spinajs/exceptions": "^2.0.39",
|
|
46
|
+
"@spinajs/internal-logger": "^2.0.39",
|
|
47
47
|
"ajv": "^8.11.0",
|
|
48
48
|
"ajv-formats": "^2.1.1",
|
|
49
49
|
"ajv-keywords": "^5.1.0",
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"glob": "^7.1.4",
|
|
52
52
|
"lodash": "^4.17.14"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "002dc553b0ffffd72193d0121ac425a4083bc9ee"
|
|
55
55
|
}
|