@breadstone-tools/localizator-core 0.0.70 → 0.0.72
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/CHANGELOG.md +27 -0
- package/Resources/Models/TypeScriptResourceInfo.d.ts.map +1 -1
- package/Resources/Models/TypeScriptResourceInfo.js +6 -0
- package/Resources/Models/TypeScriptResourceInfo.js.map +1 -1
- package/Resources/Readers/Adapter/JsonResourceReaderAdapter.js +15 -15
- package/Resources/Readers/Adapter/JsonResourceReaderAdapter.js.map +1 -1
- package/Resources/Readers/Adapter/ResxResourceReaderAdapter.js +15 -15
- package/Resources/Readers/Adapter/ResxResourceReaderAdapter.js.map +1 -1
- package/Resources/ResourceFactory.js +7 -7
- package/Resources/ResourceFactory.js.map +1 -1
- package/Resources/Sorting/ResourceSorter.js +1 -1
- package/Resources/Sorting/ResourceSorter.js.map +1 -1
- package/Services/LocalizationProcessor.js +3 -3
- package/Services/LocalizationProcessor.js.map +1 -1
- package/package.json +2 -2
- package/Resources/Scanners/Adapter/Interfaces/IResourceReaderAdapter.d.ts +0 -26
- package/Resources/Scanners/Adapter/Interfaces/IResourceReaderAdapter.d.ts.map +0 -1
- package/Resources/Scanners/Adapter/Interfaces/IResourceReaderAdapter.js +0 -4
- package/Resources/Scanners/Adapter/Interfaces/IResourceReaderAdapter.js.map +0 -1
- package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.d.ts +0 -17
- package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.d.ts.map +0 -1
- package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.js +0 -4
- package/Resources/Scanners/Adapter/Interfaces/IScannerAdapter.js.map +0 -1
- package/Resources/Scanners/Adapter/JsonResourceReaderAdapter.d.ts +0 -44
- package/Resources/Scanners/Adapter/JsonResourceReaderAdapter.d.ts.map +0 -1
- package/Resources/Scanners/Adapter/JsonResourceReaderAdapter.js +0 -120
- package/Resources/Scanners/Adapter/JsonResourceReaderAdapter.js.map +0 -1
- package/Resources/Scanners/Adapter/JsonScannerAdapter.d.ts +0 -32
- package/Resources/Scanners/Adapter/JsonScannerAdapter.d.ts.map +0 -1
- package/Resources/Scanners/Adapter/JsonScannerAdapter.js +0 -80
- package/Resources/Scanners/Adapter/JsonScannerAdapter.js.map +0 -1
- package/Resources/Scanners/Adapter/ResxResourceReaderAdapter.d.ts +0 -44
- package/Resources/Scanners/Adapter/ResxResourceReaderAdapter.d.ts.map +0 -1
- package/Resources/Scanners/Adapter/ResxResourceReaderAdapter.js +0 -120
- package/Resources/Scanners/Adapter/ResxResourceReaderAdapter.js.map +0 -1
- package/Resources/Scanners/Adapter/ResxScannerAdapter.d.ts +0 -32
- package/Resources/Scanners/Adapter/ResxScannerAdapter.d.ts.map +0 -1
- package/Resources/Scanners/Adapter/ResxScannerAdapter.js +0 -80
- package/Resources/Scanners/Adapter/ResxScannerAdapter.js.map +0 -1
- package/Resources/Scanners/ResourceReader.d.ts +0 -41
- package/Resources/Scanners/ResourceReader.d.ts.map +0 -1
- package/Resources/Scanners/ResourceReader.js +0 -77
- package/Resources/Scanners/ResourceReader.js.map +0 -1
- package/Resources/Scanners/ResourceScanner.d.ts +0 -41
- package/Resources/Scanners/ResourceScanner.d.ts.map +0 -1
- package/Resources/Scanners/ResourceScanner.js +0 -77
- package/Resources/Scanners/ResourceScanner.js.map +0 -1
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// #region Imports
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.ResourceReader = void 0;
|
|
5
|
-
const JsonResourceReaderAdapter_1 = require("./Adapter/JsonResourceReaderAdapter");
|
|
6
|
-
const ResourceMode_1 = require("../ResourceMode");
|
|
7
|
-
const ResxResourceReaderAdapter_1 = require("./Adapter/ResxResourceReaderAdapter");
|
|
8
|
-
const utilities_1 = require("@breadstone-infrastructure/utilities");
|
|
9
|
-
// #endregion
|
|
10
|
-
/**
|
|
11
|
-
* The `ResourceReader` class is responsible for processing resources.
|
|
12
|
-
* It can be resolves json or resx files.
|
|
13
|
-
*
|
|
14
|
-
* @public
|
|
15
|
-
*/
|
|
16
|
-
class ResourceReader {
|
|
17
|
-
// #region Fields
|
|
18
|
-
_fileSystem;
|
|
19
|
-
_logger;
|
|
20
|
-
_adapters;
|
|
21
|
-
// #endregion
|
|
22
|
-
// #region Ctor
|
|
23
|
-
/**
|
|
24
|
-
* Creates a new instance of `ResourceReader`.
|
|
25
|
-
*
|
|
26
|
-
* @public
|
|
27
|
-
* @param logger - The logger interface.
|
|
28
|
-
* @param fileSystem - The file system interface.
|
|
29
|
-
*/
|
|
30
|
-
constructor(logger, fileSystem) {
|
|
31
|
-
this._fileSystem = fileSystem;
|
|
32
|
-
this._logger = logger;
|
|
33
|
-
this._adapters = new Map()
|
|
34
|
-
.set(ResourceMode_1.ResourceMode.Json, new JsonResourceReaderAdapter_1.JsonResourceReaderAdapter(this._fileSystem, this._logger))
|
|
35
|
-
.set(ResourceMode_1.ResourceMode.Resx, new ResxResourceReaderAdapter_1.ResxResourceReaderAdapter(this._fileSystem, this._logger));
|
|
36
|
-
}
|
|
37
|
-
// #endregion
|
|
38
|
-
// #region Methods
|
|
39
|
-
/**
|
|
40
|
-
* Scans a directory for resources of the given type.
|
|
41
|
-
*
|
|
42
|
-
* @public
|
|
43
|
-
* @param path - The path to scan.
|
|
44
|
-
* @param type - The type of resource to scan for.
|
|
45
|
-
* @returns An array of resource information found in the directory.
|
|
46
|
-
*/
|
|
47
|
-
scanDirectory(path, type) {
|
|
48
|
-
this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)(`Scanning for ${(0, utilities_1.bold)(type)} resources...`)}`);
|
|
49
|
-
const adapter = this._adapters.get(type);
|
|
50
|
-
if (!adapter) {
|
|
51
|
-
throw new Error('No adapter found for the specified mode.');
|
|
52
|
-
}
|
|
53
|
-
const result = adapter.scanDirectory(path);
|
|
54
|
-
this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)(`Scanning complete.${result.length === 0 ? (0, utilities_1.yellow)(' No resources found.') : ''}`)}`);
|
|
55
|
-
return result;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Scans a specific file for resources of the given type.
|
|
59
|
-
*
|
|
60
|
-
* @public
|
|
61
|
-
* @param path - The path to the file to scan.
|
|
62
|
-
* @param type - The type of resource to scan for.
|
|
63
|
-
* @returns The resource information or null if the file is not a valid resource.
|
|
64
|
-
*/
|
|
65
|
-
scanFile(path, type) {
|
|
66
|
-
this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)(`Scanning for ${(0, utilities_1.bold)(type)} resource in file...`)}`);
|
|
67
|
-
const adapter = this._adapters.get(type);
|
|
68
|
-
if (!adapter) {
|
|
69
|
-
throw new Error('No adapter found for the specified mode.');
|
|
70
|
-
}
|
|
71
|
-
const result = adapter.scanFile(path);
|
|
72
|
-
this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)(`Scanning complete.${result ? '' : (0, utilities_1.yellow)(' No resource found.')}`)}`);
|
|
73
|
-
return result;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
exports.ResourceReader = ResourceReader;
|
|
77
|
-
//# sourceMappingURL=ResourceReader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceReader.js","sourceRoot":"","sources":["../../../src/Resources/Scanners/ResourceReader.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAGlB,mFAAgF;AAEhF,kDAA+C;AAC/C,mFAAgF;AAChF,oEAAgH;AAEhH,aAAa;AAEb;;;;;GAKG;AACH,MAAa,cAAc;IAEvB,iBAAiB;IAEA,WAAW,CAAc;IACzB,OAAO,CAAU;IACjB,SAAS,CAA4C;IAEtE,aAAa;IAEb,eAAe;IAEf;;;;;;OAMG;IACH,YAAmB,MAAe,EAAE,UAAuB;QACvD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAwC;aAC3D,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,qDAAyB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACrF,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,qDAAyB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,aAAa;IAEb,kBAAkB;IAElB;;;;;;;OAOG;IACI,aAAa,CAAC,IAAY,EAAE,IAAkB;QACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,gBAAgB,IAAA,gBAAI,EAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAE3E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,qBAAqB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,kBAAM,EAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAElH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACI,QAAQ,CAAC,IAAY,EAAE,IAAkB;QAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,gBAAgB,IAAA,gBAAI,EAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAElF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,qBAAqB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAA,kBAAM,EAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAEpG,OAAO,MAAM,CAAC;IAClB,CAAC;CAIJ;AAjFD,wCAiFC"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import type { IResourceInfo } from './../Models/Interfaces/IResourceInfo';
|
|
2
|
-
import { ResourceMode } from './../ResourceMode';
|
|
3
|
-
import { type IFileSystem, type ILogger } from '@breadstone-infrastructure/utilities';
|
|
4
|
-
/**
|
|
5
|
-
* The `ResourceReader` class is responsible for processing resources.
|
|
6
|
-
* It can be resolves json or resx files.
|
|
7
|
-
*
|
|
8
|
-
* @public
|
|
9
|
-
*/
|
|
10
|
-
export declare class ResourceReader {
|
|
11
|
-
private readonly _fileSystem;
|
|
12
|
-
private readonly _logger;
|
|
13
|
-
private readonly _adapters;
|
|
14
|
-
/**
|
|
15
|
-
* Creates a new instance of `ResourceReader`.
|
|
16
|
-
*
|
|
17
|
-
* @public
|
|
18
|
-
* @param logger - The logger interface.
|
|
19
|
-
* @param fileSystem - The file system interface.
|
|
20
|
-
*/
|
|
21
|
-
constructor(logger: ILogger, fileSystem: IFileSystem);
|
|
22
|
-
/**
|
|
23
|
-
* Scans a directory for resources of the given type.
|
|
24
|
-
*
|
|
25
|
-
* @public
|
|
26
|
-
* @param path - The path to scan.
|
|
27
|
-
* @param type - The type of resource to scan for.
|
|
28
|
-
* @returns An array of resource information found in the directory.
|
|
29
|
-
*/
|
|
30
|
-
scanDirectory(path: string, type: ResourceMode): Array<IResourceInfo>;
|
|
31
|
-
/**
|
|
32
|
-
* Scans a specific file for resources of the given type.
|
|
33
|
-
*
|
|
34
|
-
* @public
|
|
35
|
-
* @param path - The path to the file to scan.
|
|
36
|
-
* @param type - The type of resource to scan for.
|
|
37
|
-
* @returns The resource information or null if the file is not a valid resource.
|
|
38
|
-
*/
|
|
39
|
-
scanFile(path: string, type: ResourceMode): IResourceInfo | null;
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=ResourceScanner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceScanner.d.ts","sourceRoot":"","sources":["../../../src/Resources/Scanners/ResourceScanner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,EAAQ,KAAK,WAAW,EAAE,KAAK,OAAO,EAAsB,MAAM,sCAAsC,CAAC;AAIhH;;;;;GAKG;AACH,qBAAa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4C;IAMtE;;;;;;OAMG;gBACgB,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW;IAY3D;;;;;;;OAOG;IACI,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC;IAgB5E;;;;;;;OAOG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,aAAa,GAAG,IAAI;CAkB1E"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// #region Imports
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.ResourceReader = void 0;
|
|
5
|
-
const JsonResourceReaderAdapter_1 = require("./Adapter/JsonResourceReaderAdapter");
|
|
6
|
-
const ResourceMode_1 = require("./../ResourceMode");
|
|
7
|
-
const ResxResourceReaderAdapter_1 = require("./Adapter/ResxResourceReaderAdapter");
|
|
8
|
-
const utilities_1 = require("@breadstone-infrastructure/utilities");
|
|
9
|
-
// #endregion
|
|
10
|
-
/**
|
|
11
|
-
* The `ResourceReader` class is responsible for processing resources.
|
|
12
|
-
* It can be resolves json or resx files.
|
|
13
|
-
*
|
|
14
|
-
* @public
|
|
15
|
-
*/
|
|
16
|
-
class ResourceReader {
|
|
17
|
-
// #region Fields
|
|
18
|
-
_fileSystem;
|
|
19
|
-
_logger;
|
|
20
|
-
_adapters;
|
|
21
|
-
// #endregion
|
|
22
|
-
// #region Ctor
|
|
23
|
-
/**
|
|
24
|
-
* Creates a new instance of `ResourceReader`.
|
|
25
|
-
*
|
|
26
|
-
* @public
|
|
27
|
-
* @param logger - The logger interface.
|
|
28
|
-
* @param fileSystem - The file system interface.
|
|
29
|
-
*/
|
|
30
|
-
constructor(logger, fileSystem) {
|
|
31
|
-
this._fileSystem = fileSystem;
|
|
32
|
-
this._logger = logger;
|
|
33
|
-
this._adapters = new Map()
|
|
34
|
-
.set(ResourceMode_1.ResourceMode.Json, new JsonResourceReaderAdapter_1.JsonResourceReaderAdapter(this._fileSystem, this._logger))
|
|
35
|
-
.set(ResourceMode_1.ResourceMode.Resx, new ResxResourceReaderAdapter_1.ResxResourceReaderAdapter(this._fileSystem, this._logger));
|
|
36
|
-
}
|
|
37
|
-
// #endregion
|
|
38
|
-
// #region Methods
|
|
39
|
-
/**
|
|
40
|
-
* Scans a directory for resources of the given type.
|
|
41
|
-
*
|
|
42
|
-
* @public
|
|
43
|
-
* @param path - The path to scan.
|
|
44
|
-
* @param type - The type of resource to scan for.
|
|
45
|
-
* @returns An array of resource information found in the directory.
|
|
46
|
-
*/
|
|
47
|
-
scanDirectory(path, type) {
|
|
48
|
-
this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)(`Scanning for ${(0, utilities_1.bold)(type)} resources...`)}`);
|
|
49
|
-
const adapter = this._adapters.get(type);
|
|
50
|
-
if (!adapter) {
|
|
51
|
-
throw new Error('No adapter found for the specified mode.');
|
|
52
|
-
}
|
|
53
|
-
const result = adapter.scanDirectory(path);
|
|
54
|
-
this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)(`Scanning complete.${result.length === 0 ? (0, utilities_1.yellow)(' No resources found.') : ''}`)}`);
|
|
55
|
-
return result;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Scans a specific file for resources of the given type.
|
|
59
|
-
*
|
|
60
|
-
* @public
|
|
61
|
-
* @param path - The path to the file to scan.
|
|
62
|
-
* @param type - The type of resource to scan for.
|
|
63
|
-
* @returns The resource information or null if the file is not a valid resource.
|
|
64
|
-
*/
|
|
65
|
-
scanFile(path, type) {
|
|
66
|
-
this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)(`Scanning for ${(0, utilities_1.bold)(type)} resource in file...`)}`);
|
|
67
|
-
const adapter = this._adapters.get(type);
|
|
68
|
-
if (!adapter) {
|
|
69
|
-
throw new Error('No adapter found for the specified mode.');
|
|
70
|
-
}
|
|
71
|
-
const result = adapter.scanFile(path);
|
|
72
|
-
this._logger.log((0, utilities_1.t) `${(0, utilities_1.magenta)(`Scanning complete.${result ? '' : (0, utilities_1.yellow)(' No resource found.')}`)}`);
|
|
73
|
-
return result;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
exports.ResourceReader = ResourceReader;
|
|
77
|
-
//# sourceMappingURL=ResourceScanner.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ResourceScanner.js","sourceRoot":"","sources":["../../../src/Resources/Scanners/ResourceScanner.ts"],"names":[],"mappings":";AAAA,kBAAkB;;;AAGlB,mFAAgF;AAEhF,oDAAiD;AACjD,mFAAgF;AAChF,oEAAgH;AAEhH,aAAa;AAEb;;;;;GAKG;AACH,MAAa,cAAc;IAEvB,iBAAiB;IAEA,WAAW,CAAc;IACzB,OAAO,CAAU;IACjB,SAAS,CAA4C;IAEtE,aAAa;IAEb,eAAe;IAEf;;;;;;OAMG;IACH,YAAmB,MAAe,EAAE,UAAuB;QACvD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAwC;aAC3D,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,qDAAyB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;aACrF,GAAG,CAAC,2BAAY,CAAC,IAAI,EAAE,IAAI,qDAAyB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,aAAa;IAEb,kBAAkB;IAElB;;;;;;;OAOG;IACI,aAAa,CAAC,IAAY,EAAE,IAAkB;QACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,gBAAgB,IAAA,gBAAI,EAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAE3E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAE3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,qBAAqB,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,kBAAM,EAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAElH,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACI,QAAQ,CAAC,IAAY,EAAE,IAAkB;QAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,gBAAgB,IAAA,gBAAI,EAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;QAElF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEtC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,aAAC,EAAA,GAAG,IAAA,mBAAO,EAAC,qBAAqB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAA,kBAAM,EAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAEpG,OAAO,MAAM,CAAC;IAClB,CAAC;CAIJ;AAjFD,wCAiFC"}
|