@serverless-devs/s 2.0.92 → 2.0.93-beta.4
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/CONTRIBUTORS.md +2 -0
- package/bin/s-component +2 -0
- package/bin/s-set-workspace +2 -0
- package/docs/readme.md +94 -0
- package/docs/zh/awesome.md +296 -0
- package/docs/zh/cicd.md +200 -0
- package/docs/zh/cli_design.md +100 -0
- package/docs/zh/command/clean.md +63 -0
- package/docs/zh/command/cli.md +92 -0
- package/docs/zh/command/component.md +76 -0
- package/docs/zh/command/config.md +278 -0
- package/docs/zh/command/custom.md +73 -0
- package/docs/zh/command/init.md +148 -0
- package/docs/zh/command/readme.md +76 -0
- package/docs/zh/command/set.md +195 -0
- package/docs/zh/default_provider_config/alibabacloud.md +82 -0
- package/docs/zh/default_provider_config/aws.md +12 -0
- package/docs/zh/default_provider_config/azure.md +9 -0
- package/docs/zh/default_provider_config/baiducloud.md +8 -0
- package/docs/zh/default_provider_config/gcp.md +21 -0
- package/docs/zh/default_provider_config/huaweicloud.md +52 -0
- package/docs/zh/default_provider_config/readme.md +9 -0
- package/docs/zh/default_provider_config/tencentcloud.md +41 -0
- package/docs/zh/install.md +52 -0
- package/docs/zh/package_dev.md +142 -0
- package/docs/zh/quick_start.md +297 -0
- package/docs/zh/readme.md +90 -0
- package/docs/zh/tool.md +80 -0
- package/docs/zh/yaml.md +203 -0
- package/docs/zh/yaml_and_cli.md +67 -0
- package/lib/clean/index.js +43 -35
- package/lib/cli/cli-manager.js +33 -22
- package/lib/cli/index.js +60 -62
- package/lib/component/index.d.ts +1 -0
- package/lib/component/index.js +161 -0
- package/lib/config/add/index.js +39 -39
- package/lib/config/delete/index.js +49 -59
- package/lib/config/get/index.d.ts +0 -1
- package/lib/config/get/index.js +46 -51
- package/lib/config/index.js +36 -35
- package/lib/constants/index.d.ts +0 -1
- package/lib/constants/index.js +1 -5
- package/lib/core/command/command-manager.js +36 -43
- package/lib/core/component/index.d.ts +14 -7
- package/lib/core/component/index.js +78 -52
- package/lib/core/plugin/index.js +4 -3
- package/lib/daemon/template.js +2 -4
- package/lib/error/human-error.d.ts +12 -2
- package/lib/error/human-error.js +63 -28
- package/lib/error/human-warning.d.ts +8 -0
- package/lib/error/human-warning.js +19 -0
- package/lib/error/index.d.ts +10 -1
- package/lib/error/index.js +74 -27
- package/lib/index.js +89 -94
- package/lib/init/index.js +76 -79
- package/lib/init/init-config.js +3 -5
- package/lib/init/init-manager.js +3 -4
- package/lib/init/update-template.js +3 -5
- package/lib/onboarding/index.js +5 -5
- package/lib/set/analysis/index.js +41 -37
- package/lib/set/index.js +34 -33
- package/lib/set/locale/index.js +54 -53
- package/lib/set/registry/index.js +52 -52
- package/lib/set/workspace/index.d.ts +1 -0
- package/lib/set/workspace/index.js +61 -0
- package/lib/specification/parse.js +9 -6
- package/lib/update-notifier/index.js +10 -10
- package/lib/utils/command-util.d.ts +0 -2
- package/lib/utils/command-util.js +2 -42
- package/lib/utils/common.d.ts +1 -0
- package/lib/utils/common.js +100 -20
- package/lib/utils/core.js +3 -3
- package/lib/utils/handler-set-config.d.ts +1 -1
- package/lib/utils/handler-set-config.js +6 -7
- package/lib/utils/i18n/en.js +4 -4
- package/lib/utils/i18n/index.js +3 -3
- package/lib/utils/i18n/zh.js +3 -3
- package/lib/utils/storage.js +3 -4
- package/package.json +2 -2
- package/readme.md +64 -38
- package/shell/postbuild.sh +2 -0
- package/spec/readme.md +59 -0
- package/spec/zh/0.0.1/readme.md +47 -0
- package/spec/zh/0.0.1/serverless_pacakge_model/1.purpose_and_goals.md +3 -0
- package/spec/zh/0.0.1/serverless_pacakge_model/2.overview_and_terminology.md +14 -0
- package/spec/zh/0.0.1/serverless_pacakge_model/3.package_model.md +434 -0
- package/spec/zh/0.0.1/serverless_pacakge_model/4.application_scopes.md +3 -0
- package/spec/zh/0.0.1/serverless_pacakge_model/5.design_principles.md +3 -0
- package/spec/zh/0.0.1/serverless_pacakge_model/readme.md +12 -0
- package/spec/zh/0.0.1/serverless_registry_model/1.purpose_and_goals.md +18 -0
- package/spec/zh/0.0.1/serverless_registry_model/2.overview_and_terminology.md +18 -0
- package/spec/zh/0.0.1/serverless_registry_model/3.registry_model.md +61 -0
- package/spec/zh/0.0.1/serverless_registry_model/4.application_scopes.md +6 -0
- package/spec/zh/0.0.1/serverless_registry_model/5.design_principles.md +3 -0
- package/spec/zh/0.0.1/serverless_registry_model/readme.md +12 -0
- package/spec/zh/0.0.1/serverless_user_model/1.purpose_and_goals.md +3 -0
- package/spec/zh/0.0.1/serverless_user_model/2.overview_and_terminology.md +16 -0
- package/spec/zh/0.0.1/serverless_user_model/3.user_model.md +218 -0
- package/spec/zh/0.0.1/serverless_user_model/4.application_scopes.md +4 -0
- package/spec/zh/0.0.1/serverless_user_model/5.design_principles.md +3 -0
- package/spec/zh/0.0.1/serverless_user_model/readme.md +12 -0
- package/bin/s-set-locale +0 -2
- package/readme_zh.md +0 -72
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.HumanWarning = void 0;
|
|
7
|
+
var core_1 = __importDefault(require("../utils/core"));
|
|
8
|
+
var colors = core_1.default.colors;
|
|
9
|
+
var HumanWarning = /** @class */ (function () {
|
|
10
|
+
function HumanWarning(configs) {
|
|
11
|
+
var warningMessage = configs.warningMessage, tips = configs.tips;
|
|
12
|
+
console.log("\n" + colors.hex('#000').bgYellow('WARNING:'));
|
|
13
|
+
console.log(warningMessage + "\n");
|
|
14
|
+
tips && console.log(colors.gray(tips) + "\n");
|
|
15
|
+
}
|
|
16
|
+
return HumanWarning;
|
|
17
|
+
}());
|
|
18
|
+
exports.HumanWarning = HumanWarning;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHVtYW4td2FybmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvci9odW1hbi13YXJuaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHVEQUFpQztBQUV6QixJQUFBLE1BQU0sR0FBSyxjQUFJLE9BQVQsQ0FBVTtBQU94QjtJQUNFLHNCQUFZLE9BQWlCO1FBQ25CLElBQUEsY0FBYyxHQUFXLE9BQU8sZUFBbEIsRUFBRSxJQUFJLEdBQUssT0FBTyxLQUFaLENBQWE7UUFDekMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFLLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBRyxDQUFDLENBQUM7UUFDNUQsT0FBTyxDQUFDLEdBQUcsQ0FBSSxjQUFjLE9BQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDSCxtQkFBQztBQUFELENBQUMsQUFQRCxJQU9DO0FBUFksb0NBQVkifQ==
|
package/lib/error/index.d.ts
CHANGED
|
@@ -5,4 +5,13 @@ export { ConfigGetError } from './config-get-error';
|
|
|
5
5
|
export { InitError } from './init-error';
|
|
6
6
|
export { ServerlessError } from './serverless-error';
|
|
7
7
|
export { HumanError } from './human-error';
|
|
8
|
-
export
|
|
8
|
+
export { HumanWarning } from './human-warning';
|
|
9
|
+
interface IConfigs {
|
|
10
|
+
error: Error;
|
|
11
|
+
prefix?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare class HandleError {
|
|
14
|
+
private traceId;
|
|
15
|
+
constructor(configs: IConfigs);
|
|
16
|
+
report(error: Error): Promise<void>;
|
|
17
|
+
}
|
package/lib/error/index.js
CHANGED
|
@@ -1,9 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
2
38
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
40
|
};
|
|
5
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
42
|
+
exports.HandleError = exports.HumanWarning = exports.HumanError = exports.ServerlessError = exports.InitError = exports.ConfigGetError = exports.ConfigError = exports.ConfigDeleteError = exports.CommandError = void 0;
|
|
7
43
|
/** @format */
|
|
8
44
|
var common_1 = require("../utils/common");
|
|
9
45
|
var handler_set_config_1 = require("../utils/handler-set-config");
|
|
@@ -23,34 +59,45 @@ var serverless_error_1 = require("./serverless-error");
|
|
|
23
59
|
Object.defineProperty(exports, "ServerlessError", { enumerable: true, get: function () { return serverless_error_1.ServerlessError; } });
|
|
24
60
|
var human_error_1 = require("./human-error");
|
|
25
61
|
Object.defineProperty(exports, "HumanError", { enumerable: true, get: function () { return human_error_1.HumanError; } });
|
|
62
|
+
var human_warning_1 = require("./human-warning");
|
|
63
|
+
Object.defineProperty(exports, "HumanWarning", { enumerable: true, get: function () { return human_warning_1.HumanWarning; } });
|
|
26
64
|
var pid = getMAC().replace(/:/g, '');
|
|
27
65
|
function underline(prefix, link) {
|
|
28
66
|
return "" + colors.gray(prefix) + colors.gray.underline(link);
|
|
29
67
|
}
|
|
30
|
-
function
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
68
|
+
var HandleError = /** @class */ (function () {
|
|
69
|
+
function HandleError(configs) {
|
|
70
|
+
var error = configs.error, _a = configs.prefix, prefix = _a === void 0 ? 'Message:' : _a;
|
|
71
|
+
this.traceId = "" + pid + Date.now();
|
|
72
|
+
console.log((0, common_1.red)("\u2716 " + prefix + "\n"));
|
|
73
|
+
var analysis = (0, handler_set_config_1.getConfig)('analysis');
|
|
74
|
+
if (analysis !== 'disable') {
|
|
75
|
+
console.log(colors.gray("TraceId: " + this.traceId));
|
|
76
|
+
}
|
|
77
|
+
console.log(colors.gray("Environment: " + (0, common_1.getVersion)()));
|
|
78
|
+
console.log(underline('Documents: ', 'https://www.serverless-devs.com'));
|
|
79
|
+
console.log(underline('Discussions: ', 'https://github.com/Serverless-Devs/Serverless-Devs/discussions'));
|
|
80
|
+
console.log(underline('Issues: ', 'https://github.com/Serverless-Devs/Serverless-Devs/issues\n'));
|
|
81
|
+
console.log((0, common_1.bgRed)('ERROR:') + "\n" + error + "\n");
|
|
82
|
+
if (analysis !== 'disable') {
|
|
83
|
+
console.log(colors.gray("Please copy traceId: " + this.traceId + " and join Dingding group: 33947367 for consultation."));
|
|
84
|
+
}
|
|
85
|
+
console.log(colors.gray("You can run 's clean --cache' to prune Serverless devs."));
|
|
86
|
+
console.log(colors.gray("And run again with the '--debug' option or 's -h' to get more logs.\n"));
|
|
38
87
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
exports.handleError = handleError;
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsY0FBYztBQUNkLDBDQUF5RDtBQUN6RCxrRUFBd0Q7QUFDeEQsdURBQWlDO0FBQ3pCLElBQUEsTUFBTSxHQUFxQixjQUFJLE9BQXpCLEVBQUUsTUFBTSxHQUFhLGNBQUksT0FBakIsRUFBRSxNQUFNLEdBQUssY0FBSSxPQUFULENBQVU7QUFDeEMsaURBQStDO0FBQXRDLDZHQUFBLFlBQVksT0FBQTtBQUNyQiw2REFBMEQ7QUFBakQsd0hBQUEsaUJBQWlCLE9BQUE7QUFDMUIsK0NBQTZDO0FBQXBDLDJHQUFBLFdBQVcsT0FBQTtBQUNwQix1REFBb0Q7QUFBM0Msa0hBQUEsY0FBYyxPQUFBO0FBQ3ZCLDJDQUF5QztBQUFoQyx1R0FBQSxTQUFTLE9BQUE7QUFDbEIsdURBQXFEO0FBQTVDLG1IQUFBLGVBQWUsT0FBQTtBQUN4Qiw2Q0FBMkM7QUFBbEMseUdBQUEsVUFBVSxPQUFBO0FBRW5CLElBQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFdkMsU0FBUyxTQUFTLENBQUMsTUFBYyxFQUFFLElBQVk7SUFDN0MsT0FBTyxLQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFHLENBQUM7QUFDaEUsQ0FBQztBQUNELFNBQWdCLFdBQVcsQ0FBQyxLQUFZLEVBQUUsTUFBbUIsRUFBRSxJQUFXO0lBQWhDLHVCQUFBLEVBQUEsbUJBQW1CO0lBQUUscUJBQUEsRUFBQSxXQUFXO0lBQ3hFLElBQU0sT0FBTyxHQUFHLEtBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUksQ0FBQztJQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUEsWUFBRyxFQUFDLFlBQUssTUFBTSxPQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLElBQU0sUUFBUSxHQUFHLElBQUEsOEJBQVMsRUFBQyxVQUFVLENBQUMsQ0FBQztJQUN2QyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7UUFDMUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFnQixPQUFTLENBQUMsQ0FBQyxDQUFDO0tBQ3JEO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFnQixJQUFBLG1CQUFVLEdBQUksQ0FBQyxDQUFDLENBQUM7SUFDekQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLGlDQUFpQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsZ0VBQWdFLENBQUMsQ0FBQyxDQUFDO0lBQzFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSw2REFBNkQsQ0FBQyxDQUFDLENBQUM7SUFDdkcsT0FBTyxDQUFDLEdBQUcsQ0FBSSxJQUFBLGNBQUssRUFBQyxRQUFRLENBQUMsVUFBSyxLQUFLLE9BQUksQ0FBQyxDQUFDO0lBQzlDLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtRQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQXdCLE9BQU8seURBQXNELENBQUMsQ0FBQyxDQUFDO0tBQ2pIO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHlEQUF5RCxDQUFDLENBQUMsQ0FBQztJQUNwRixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUVBQXVFLENBQUMsQ0FBQyxDQUFDO0lBQ2xHLE1BQU0sQ0FBQztRQUNMLElBQUksRUFBRSxTQUFTO1FBQ2YsT0FBTyxFQUFFLEtBQUssQ0FBQyxLQUFLO1FBQ3BCLE9BQU8sU0FBQTtLQUNSLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBTSxPQUFBLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUF2QixDQUF1QixDQUFDLENBQUM7QUFDekMsQ0FBQztBQXRCRCxrQ0FzQkMifQ==
|
|
88
|
+
HandleError.prototype.report = function (error) {
|
|
89
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
90
|
+
return __generator(this, function (_a) {
|
|
91
|
+
report({
|
|
92
|
+
type: 'jsError',
|
|
93
|
+
content: error.message + "||" + error.stack,
|
|
94
|
+
traceId: this.traceId,
|
|
95
|
+
});
|
|
96
|
+
return [2 /*return*/];
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
return HandleError;
|
|
101
|
+
}());
|
|
102
|
+
exports.HandleError = HandleError;
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXJyb3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsY0FBYztBQUNkLDBDQUF5RDtBQUN6RCxrRUFBd0Q7QUFDeEQsdURBQWlDO0FBQ3pCLElBQUEsTUFBTSxHQUFxQixjQUFJLE9BQXpCLEVBQUUsTUFBTSxHQUFhLGNBQUksT0FBakIsRUFBRSxNQUFNLEdBQUssY0FBSSxPQUFULENBQVU7QUFDeEMsaURBQStDO0FBQXRDLDZHQUFBLFlBQVksT0FBQTtBQUNyQiw2REFBMEQ7QUFBakQsd0hBQUEsaUJBQWlCLE9BQUE7QUFDMUIsK0NBQTZDO0FBQXBDLDJHQUFBLFdBQVcsT0FBQTtBQUNwQix1REFBb0Q7QUFBM0Msa0hBQUEsY0FBYyxPQUFBO0FBQ3ZCLDJDQUF5QztBQUFoQyx1R0FBQSxTQUFTLE9BQUE7QUFDbEIsdURBQXFEO0FBQTVDLG1IQUFBLGVBQWUsT0FBQTtBQUN4Qiw2Q0FBMkM7QUFBbEMseUdBQUEsVUFBVSxPQUFBO0FBQ25CLGlEQUErQztBQUF0Qyw2R0FBQSxZQUFZLE9BQUE7QUFFckIsSUFBTSxHQUFHLEdBQUcsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztBQUV2QyxTQUFTLFNBQVMsQ0FBQyxNQUFjLEVBQUUsSUFBWTtJQUM3QyxPQUFPLEtBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUcsQ0FBQztBQUNoRSxDQUFDO0FBS0Q7SUFFRSxxQkFBWSxPQUFpQjtRQUNuQixJQUFBLEtBQUssR0FBMEIsT0FBTyxNQUFqQyxFQUFFLEtBQXdCLE9BQU8sT0FBWixFQUFuQixNQUFNLG1CQUFHLFVBQVUsS0FBQSxDQUFhO1FBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBSSxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSxZQUFHLEVBQUMsWUFBSyxNQUFNLE9BQUksQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBTSxRQUFRLEdBQUcsSUFBQSw4QkFBUyxFQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWdCLElBQUksQ0FBQyxPQUFTLENBQUMsQ0FBQyxDQUFDO1NBQzFEO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFnQixJQUFBLG1CQUFVLEdBQUksQ0FBQyxDQUFDLENBQUM7UUFDekQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLGlDQUFpQyxDQUFDLENBQUMsQ0FBQztRQUMzRSxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsZ0VBQWdFLENBQUMsQ0FBQyxDQUFDO1FBQzFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSw2REFBNkQsQ0FBQyxDQUFDLENBQUM7UUFDdkcsT0FBTyxDQUFDLEdBQUcsQ0FBSSxJQUFBLGNBQUssRUFBQyxRQUFRLENBQUMsVUFBSyxLQUFLLE9BQUksQ0FBQyxDQUFDO1FBQzlDLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMxQixPQUFPLENBQUMsR0FBRyxDQUNULE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQXdCLElBQUksQ0FBQyxPQUFPLHlEQUFzRCxDQUFDLENBQ3hHLENBQUM7U0FDSDtRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx5REFBeUQsQ0FBQyxDQUFDLENBQUM7UUFDcEYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHVFQUF1RSxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBQ0ssNEJBQU0sR0FBWixVQUFhLEtBQVk7OztnQkFDdkIsTUFBTSxDQUFDO29CQUNMLElBQUksRUFBRSxTQUFTO29CQUNmLE9BQU8sRUFBSyxLQUFLLENBQUMsT0FBTyxVQUFLLEtBQUssQ0FBQyxLQUFPO29CQUMzQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87aUJBQ3RCLENBQUMsQ0FBQzs7OztLQUNKO0lBQ0gsa0JBQUM7QUFBRCxDQUFDLEFBOUJELElBOEJDO0FBOUJZLGtDQUFXIn0=
|