@effect-aws/client-sns 0.6.0 → 1.0.1

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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # @effect-aws/client-sns
2
2
 
3
+ ## 1.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#29](https://github.com/floydspace/effect-aws/pull/29) [`4b6c521`](https://github.com/floydspace/effect-aws/commit/4b6c521206c8ff76ff878938f6b90ee474cc8da2) Thanks [@godu](https://github.com/godu)! - improve tree shaking by using sideEffects flag
8
+
9
+ ## 1.0.0
10
+
11
+ ### Major Changes
12
+
13
+ - [`3e5d0b3`](https://github.com/floydspace/effect-aws/commit/3e5d0b3b3882e0aa6d07bc06432990551316ac30) Thanks [@floydspace](https://github.com/floydspace)! - Upgrade to effect v2 and release stable version
14
+
3
15
  ## 0.6.0
4
16
 
5
17
  ### Minor Changes
package/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2023 Victor Korzunin
1
+ Copyright (c) 2024 Victor Korzunin
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy
4
4
  of this software and associated documentation files (the "Software"), to deal
package/docgen.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "$schema": "node_modules/@effect/docgen/schema.json",
3
+ "exclude": [
4
+ "src/index.ts",
5
+ "src/Errors.ts"
6
+ ],
7
+ "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
8
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import { SNSClient } from "@aws-sdk/client-sns";
5
+ import * as Context from "effect/Context";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Layer from "effect/Layer";
8
+ import { SNSClientInstanceConfig } from "./SNSClientInstanceConfig";
9
+ /**
10
+ * @since 1.0.0
11
+ * @category tags
12
+ */
13
+ export interface SNSClientInstance {
14
+ readonly _: unique symbol;
15
+ }
16
+ /**
17
+ * @since 1.0.0
18
+ * @category tags
19
+ */
20
+ export declare const SNSClientInstance: Context.Tag<SNSClientInstance, SNSClient>;
21
+ /**
22
+ * @since 1.0.0
23
+ * @category constructors
24
+ */
25
+ export declare const makeSNSClientInstance: Effect.Effect<SNSClientInstanceConfig, never, SNSClient>;
26
+ /**
27
+ * @since 1.0.0
28
+ * @category layers
29
+ */
30
+ export declare const SNSClientInstanceLayer: Layer.Layer<SNSClientInstanceConfig, never, SNSClientInstance>;
31
+ /**
32
+ * @since 1.0.0
33
+ * @category layers
34
+ */
35
+ export declare const DefaultSNSClientInstanceLayer: Layer.Layer<never, never, SNSClientInstance>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.DefaultSNSClientInstanceLayer = exports.SNSClientInstanceLayer = exports.makeSNSClientInstance = exports.SNSClientInstance = void 0;
27
+ /**
28
+ * @since 1.0.0
29
+ */
30
+ const client_sns_1 = require("@aws-sdk/client-sns");
31
+ const Context = __importStar(require("effect/Context"));
32
+ const Effect = __importStar(require("effect/Effect"));
33
+ const Layer = __importStar(require("effect/Layer"));
34
+ const SNSClientInstanceConfig_1 = require("./SNSClientInstanceConfig");
35
+ /**
36
+ * @since 1.0.0
37
+ * @category tags
38
+ */
39
+ exports.SNSClientInstance = Context.Tag(Symbol.for("@effect-aws/client-sns/SNSClientInstance"));
40
+ /**
41
+ * @since 1.0.0
42
+ * @category constructors
43
+ */
44
+ exports.makeSNSClientInstance = Effect.map(SNSClientInstanceConfig_1.SNSClientInstanceConfig, (config) => new client_sns_1.SNSClient(config));
45
+ /**
46
+ * @since 1.0.0
47
+ * @category layers
48
+ */
49
+ exports.SNSClientInstanceLayer = Layer.effect(exports.SNSClientInstance, exports.makeSNSClientInstance);
50
+ /**
51
+ * @since 1.0.0
52
+ * @category layers
53
+ */
54
+ exports.DefaultSNSClientInstanceLayer = exports.SNSClientInstanceLayer.pipe(Layer.provide(SNSClientInstanceConfig_1.DefaultSNSClientConfigLayer));
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU05TQ2xpZW50SW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU05TQ2xpZW50SW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7R0FFRztBQUNILG9EQUFnRDtBQUNoRCx3REFBMEM7QUFDMUMsc0RBQXdDO0FBQ3hDLG9EQUFzQztBQUN0Qyx1RUFHbUM7QUFVbkM7OztHQUdHO0FBQ1UsUUFBQSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUMxQyxNQUFNLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQ3ZELENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQzdDLGlEQUF1QixFQUN2QixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxzQkFBUyxDQUFDLE1BQU0sQ0FBQyxDQUNsQyxDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNoRCx5QkFBaUIsRUFDakIsNkJBQXFCLENBQ3RCLENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLDZCQUE2QixHQUFHLDhCQUFzQixDQUFDLElBQUksQ0FDdEUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxxREFBMkIsQ0FBQyxDQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHsgU05TQ2xpZW50IH0gZnJvbSBcIkBhd3Mtc2RrL2NsaWVudC1zbnNcIjtcbmltcG9ydCAqIGFzIENvbnRleHQgZnJvbSBcImVmZmVjdC9Db250ZXh0XCI7XG5pbXBvcnQgKiBhcyBFZmZlY3QgZnJvbSBcImVmZmVjdC9FZmZlY3RcIjtcbmltcG9ydCAqIGFzIExheWVyIGZyb20gXCJlZmZlY3QvTGF5ZXJcIjtcbmltcG9ydCB7XG4gIERlZmF1bHRTTlNDbGllbnRDb25maWdMYXllcixcbiAgU05TQ2xpZW50SW5zdGFuY2VDb25maWcsXG59IGZyb20gXCIuL1NOU0NsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFNOU0NsaWVudEluc3RhbmNlIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcbn1cblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSB0YWdzXG4gKi9cbmV4cG9ydCBjb25zdCBTTlNDbGllbnRJbnN0YW5jZSA9IENvbnRleHQuVGFnPFNOU0NsaWVudEluc3RhbmNlLCBTTlNDbGllbnQ+KFxuICBTeW1ib2wuZm9yKFwiQGVmZmVjdC1hd3MvY2xpZW50LXNucy9TTlNDbGllbnRJbnN0YW5jZVwiKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlU05TQ2xpZW50SW5zdGFuY2UgPSBFZmZlY3QubWFwKFxuICBTTlNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgKGNvbmZpZykgPT4gbmV3IFNOU0NsaWVudChjb25maWcpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IFNOU0NsaWVudEluc3RhbmNlTGF5ZXIgPSBMYXllci5lZmZlY3QoXG4gIFNOU0NsaWVudEluc3RhbmNlLFxuICBtYWtlU05TQ2xpZW50SW5zdGFuY2UsXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdFNOU0NsaWVudEluc3RhbmNlTGF5ZXIgPSBTTlNDbGllbnRJbnN0YW5jZUxheWVyLnBpcGUoXG4gIExheWVyLnByb3ZpZGUoRGVmYXVsdFNOU0NsaWVudENvbmZpZ0xheWVyKSxcbik7XG4iXX0=
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import type { SNSClientConfig } from "@aws-sdk/client-sns";
5
+ import * as Context from "effect/Context";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Layer from "effect/Layer";
8
+ /**
9
+ * @since 1.0.0
10
+ * @category tags
11
+ */
12
+ export interface SNSClientInstanceConfig {
13
+ readonly _: unique symbol;
14
+ }
15
+ /**
16
+ * @since 1.0.0
17
+ * @category tags
18
+ */
19
+ export declare const SNSClientInstanceConfig: Context.Tag<SNSClientInstanceConfig, SNSClientConfig>;
20
+ /**
21
+ * @since 1.0.0
22
+ * @category constructors
23
+ */
24
+ export declare const makeDefaultSNSClientInstanceConfig: Effect.Effect<never, never, SNSClientConfig>;
25
+ /**
26
+ * @since 1.0.0
27
+ * @category layers
28
+ */
29
+ export declare const DefaultSNSClientConfigLayer: Layer.Layer<never, never, SNSClientInstanceConfig>;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.DefaultSNSClientConfigLayer = exports.makeDefaultSNSClientInstanceConfig = exports.SNSClientInstanceConfig = void 0;
27
+ const Context = __importStar(require("effect/Context"));
28
+ const Effect = __importStar(require("effect/Effect"));
29
+ const Layer = __importStar(require("effect/Layer"));
30
+ const Runtime = __importStar(require("effect/Runtime"));
31
+ /**
32
+ * @since 1.0.0
33
+ * @category tags
34
+ */
35
+ exports.SNSClientInstanceConfig = Context.Tag(Symbol.for("@effect-aws/client-sns/SNSClientInstanceConfig"));
36
+ /**
37
+ * @since 1.0.0
38
+ * @category constructors
39
+ */
40
+ exports.makeDefaultSNSClientInstanceConfig = Effect.gen(function* (_) {
41
+ const runtime = yield* _(Effect.runtime());
42
+ const runSync = Runtime.runSync(runtime);
43
+ return {
44
+ logger: {
45
+ info: (m) => Effect.logInfo(m).pipe(runSync),
46
+ warn: (m) => Effect.logWarning(m).pipe(runSync),
47
+ error: (m) => Effect.logError(m).pipe(runSync),
48
+ debug: (m) => Effect.logDebug(m).pipe(runSync),
49
+ trace: (m) => Effect.logTrace(m).pipe(runSync),
50
+ },
51
+ };
52
+ });
53
+ /**
54
+ * @since 1.0.0
55
+ * @category layers
56
+ */
57
+ exports.DefaultSNSClientConfigLayer = Layer.effect(exports.SNSClientInstanceConfig, exports.makeDefaultSNSClientInstanceConfig);
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU05TQ2xpZW50SW5zdGFuY2VDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvU05TQ2xpZW50SW5zdGFuY2VDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQSx3REFBMEM7QUFDMUMsc0RBQXdDO0FBQ3hDLG9EQUFzQztBQUN0Qyx3REFBMEM7QUFVMUM7OztHQUdHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUdoRCxNQUFNLENBQUMsR0FBRyxDQUFDLGdEQUFnRCxDQUFDLENBQUMsQ0FBQztBQUVoRTs7O0dBR0c7QUFDVSxRQUFBLGtDQUFrQyxHQUkzQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDekIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQVMsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekMsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzVDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQy9DLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzlDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzlDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQy9DO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ1UsUUFBQSwyQkFBMkIsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNyRCwrQkFBdUIsRUFDdkIsMENBQWtDLENBQ25DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQgdHlwZSB7IFNOU0NsaWVudENvbmZpZyB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtc25zXCI7XG5pbXBvcnQgKiBhcyBDb250ZXh0IGZyb20gXCJlZmZlY3QvQ29udGV4dFwiO1xuaW1wb3J0ICogYXMgRWZmZWN0IGZyb20gXCJlZmZlY3QvRWZmZWN0XCI7XG5pbXBvcnQgKiBhcyBMYXllciBmcm9tIFwiZWZmZWN0L0xheWVyXCI7XG5pbXBvcnQgKiBhcyBSdW50aW1lIGZyb20gXCJlZmZlY3QvUnVudGltZVwiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTTlNDbGllbnRJbnN0YW5jZUNvbmZpZyB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY29uc3QgU05TQ2xpZW50SW5zdGFuY2VDb25maWcgPSBDb250ZXh0LlRhZzxcbiAgU05TQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIFNOU0NsaWVudENvbmZpZ1xuPihTeW1ib2wuZm9yKFwiQGVmZmVjdC1hd3MvY2xpZW50LXNucy9TTlNDbGllbnRJbnN0YW5jZUNvbmZpZ1wiKSk7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlRGVmYXVsdFNOU0NsaWVudEluc3RhbmNlQ29uZmlnOiBFZmZlY3QuRWZmZWN0PFxuICBuZXZlcixcbiAgbmV2ZXIsXG4gIFNOU0NsaWVudENvbmZpZ1xuPiA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IHJ1bnRpbWUgPSB5aWVsZCogXyhFZmZlY3QucnVudGltZTxuZXZlcj4oKSk7XG4gIGNvbnN0IHJ1blN5bmMgPSBSdW50aW1lLnJ1blN5bmMocnVudGltZSk7XG5cbiAgcmV0dXJuIHtcbiAgICBsb2dnZXI6IHtcbiAgICAgIGluZm86IChtKSA9PiBFZmZlY3QubG9nSW5mbyhtKS5waXBlKHJ1blN5bmMpLFxuICAgICAgd2FybjogKG0pID0+IEVmZmVjdC5sb2dXYXJuaW5nKG0pLnBpcGUocnVuU3luYyksXG4gICAgICBlcnJvcjogKG0pID0+IEVmZmVjdC5sb2dFcnJvcihtKS5waXBlKHJ1blN5bmMpLFxuICAgICAgZGVidWc6IChtKSA9PiBFZmZlY3QubG9nRGVidWcobSkucGlwZShydW5TeW5jKSxcbiAgICAgIHRyYWNlOiAobSkgPT4gRWZmZWN0LmxvZ1RyYWNlKG0pLnBpcGUocnVuU3luYyksXG4gICAgfSxcbiAgfTtcbn0pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdFNOU0NsaWVudENvbmZpZ0xheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBTTlNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbiAgbWFrZURlZmF1bHRTTlNDbGllbnRJbnN0YW5jZUNvbmZpZyxcbik7XG4iXX0=
@@ -1,8 +1,17 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
1
4
  import { AddPermissionCommandInput, AddPermissionCommandOutput, CheckIfPhoneNumberIsOptedOutCommandInput, CheckIfPhoneNumberIsOptedOutCommandOutput, ConfirmSubscriptionCommandInput, ConfirmSubscriptionCommandOutput, CreatePlatformApplicationCommandInput, CreatePlatformApplicationCommandOutput, CreatePlatformEndpointCommandInput, CreatePlatformEndpointCommandOutput, CreateSMSSandboxPhoneNumberCommandInput, CreateSMSSandboxPhoneNumberCommandOutput, CreateTopicCommandInput, CreateTopicCommandOutput, DeleteEndpointCommandInput, DeleteEndpointCommandOutput, DeletePlatformApplicationCommandInput, DeletePlatformApplicationCommandOutput, DeleteSMSSandboxPhoneNumberCommandInput, DeleteSMSSandboxPhoneNumberCommandOutput, DeleteTopicCommandInput, DeleteTopicCommandOutput, GetDataProtectionPolicyCommandInput, GetDataProtectionPolicyCommandOutput, GetEndpointAttributesCommandInput, GetEndpointAttributesCommandOutput, GetPlatformApplicationAttributesCommandInput, GetPlatformApplicationAttributesCommandOutput, GetSMSAttributesCommandInput, GetSMSAttributesCommandOutput, GetSMSSandboxAccountStatusCommandInput, GetSMSSandboxAccountStatusCommandOutput, GetSubscriptionAttributesCommandInput, GetSubscriptionAttributesCommandOutput, GetTopicAttributesCommandInput, GetTopicAttributesCommandOutput, ListEndpointsByPlatformApplicationCommandInput, ListEndpointsByPlatformApplicationCommandOutput, ListOriginationNumbersCommandInput, ListOriginationNumbersCommandOutput, ListPhoneNumbersOptedOutCommandInput, ListPhoneNumbersOptedOutCommandOutput, ListPlatformApplicationsCommandInput, ListPlatformApplicationsCommandOutput, ListSMSSandboxPhoneNumbersCommandInput, ListSMSSandboxPhoneNumbersCommandOutput, ListSubscriptionsByTopicCommandInput, ListSubscriptionsByTopicCommandOutput, ListSubscriptionsCommandInput, ListSubscriptionsCommandOutput, ListTagsForResourceCommandInput, ListTagsForResourceCommandOutput, ListTopicsCommandInput, ListTopicsCommandOutput, OptInPhoneNumberCommandInput, OptInPhoneNumberCommandOutput, PublishBatchCommandInput, PublishBatchCommandOutput, PublishCommandInput, PublishCommandOutput, PutDataProtectionPolicyCommandInput, PutDataProtectionPolicyCommandOutput, RemovePermissionCommandInput, RemovePermissionCommandOutput, SetEndpointAttributesCommandInput, SetEndpointAttributesCommandOutput, SetPlatformApplicationAttributesCommandInput, SetPlatformApplicationAttributesCommandOutput, SetSMSAttributesCommandInput, SetSMSAttributesCommandOutput, SetSubscriptionAttributesCommandInput, SetSubscriptionAttributesCommandOutput, SetTopicAttributesCommandInput, SetTopicAttributesCommandOutput, SubscribeCommandInput, SubscribeCommandOutput, TagResourceCommandInput, TagResourceCommandOutput, UnsubscribeCommandInput, UnsubscribeCommandOutput, UntagResourceCommandInput, UntagResourceCommandOutput, VerifySMSSandboxPhoneNumberCommandInput, VerifySMSSandboxPhoneNumberCommandOutput } from "@aws-sdk/client-sns";
2
5
  import { HttpHandlerOptions as __HttpHandlerOptions } from "@aws-sdk/types";
3
- import * as Effect from "effect/Effect";
6
+ import { Context, Effect, Layer } from "effect";
4
7
  import { AuthorizationError, BatchEntryIdsNotDistinctError, BatchRequestTooLongError, ConcurrentAccessError, EmptyBatchRequestError, EndpointDisabledError, FilterPolicyLimitExceededError, InternalError, InvalidBatchEntryIdError, InvalidParameterError, InvalidParameterValueError, InvalidSecurityError, KMSAccessDeniedError, KMSDisabledError, KMSInvalidStateError, KMSNotFoundError, KMSOptInRequiredError, KMSThrottlingError, NotFoundError, OptedOutError, PlatformApplicationDisabledError, ResourceNotFoundError, SdkError, StaleTagError, SubscriptionLimitExceededError, TagLimitExceededError, TagPolicyError, ThrottledError, TooManyEntriesInBatchRequestError, TopicLimitExceededError, UserError, ValidationError, VerificationError } from "./Errors";
8
+ import { SNSClientInstance } from "./SNSClientInstance";
9
+ /**
10
+ * @since 1.0.0
11
+ * @category models
12
+ */
5
13
  export interface SNSService {
14
+ readonly _: unique symbol;
6
15
  /**
7
16
  * @see {@link AddPermissionCommand}
8
17
  */
@@ -172,6 +181,43 @@ export interface SNSService {
172
181
  */
173
182
  verifySMSSandboxPhoneNumber(args: VerifySMSSandboxPhoneNumberCommandInput, options?: __HttpHandlerOptions): Effect.Effect<never, SdkError | AuthorizationError | InternalError | InvalidParameterError | ResourceNotFoundError | ThrottledError | VerificationError, VerifySMSSandboxPhoneNumberCommandOutput>;
174
183
  }
175
- export declare const BaseSNSServiceEffect: Effect.Effect<import("@aws-sdk/client-sns").SNSClient, never, SNSService>;
176
- export declare const SNSServiceEffect: Effect.Effect<import("./Context").SNSClientOptions, never, SNSService>;
184
+ /**
185
+ * @since 1.0.0
186
+ * @category tags
187
+ */
188
+ export declare const SNSService: Context.Tag<SNSService, SNSService>;
189
+ /**
190
+ * @since 1.0.0
191
+ * @category constructors
192
+ */
193
+ export declare const makeSNSService: Effect.Effect<SNSClientInstance, never, SNSService>;
194
+ /**
195
+ * @since 1.0.0
196
+ * @category layers
197
+ */
198
+ export declare const BaseSNSServiceLayer: Layer.Layer<SNSClientInstance, never, SNSService>;
199
+ /**
200
+ * @since 1.0.0
201
+ * @category layers
202
+ */
203
+ export declare const SNSServiceLayer: Layer.Layer<import("./SNSClientInstanceConfig").SNSClientInstanceConfig, never, SNSService>;
204
+ /**
205
+ * @since 1.0.0
206
+ * @category layers
207
+ */
208
+ export declare const DefaultSNSServiceLayer: Layer.Layer<never, never, SNSService>;
209
+ /**
210
+ * @since 0.1.0
211
+ * @deprecated
212
+ */
213
+ export declare const BaseSNSServiceEffect: Effect.Effect<SNSClientInstance, never, SNSService>;
214
+ /**
215
+ * @since 0.1.0
216
+ * @deprecated
217
+ */
218
+ export declare const SNSServiceEffect: Effect.Effect<import("./SNSClientInstanceConfig").SNSClientInstanceConfig, never, SNSService>;
219
+ /**
220
+ * @since 0.1.0
221
+ * @deprecated
222
+ */
177
223
  export declare const DefaultSNSServiceEffect: Effect.Effect<never, never, SNSService>;
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultSNSServiceEffect = exports.SNSServiceEffect = exports.BaseSNSServiceEffect = exports.DefaultSNSServiceLayer = exports.SNSServiceLayer = exports.BaseSNSServiceLayer = exports.makeSNSService = exports.SNSService = void 0;
4
+ /**
5
+ * @since 1.0.0
6
+ */
7
+ const client_sns_1 = require("@aws-sdk/client-sns");
8
+ const effect_1 = require("effect");
9
+ const Errors_1 = require("./Errors");
10
+ const SNSClientInstance_1 = require("./SNSClientInstance");
11
+ const SNSClientInstanceConfig_1 = require("./SNSClientInstanceConfig");
12
+ const commands = {
13
+ AddPermissionCommand: client_sns_1.AddPermissionCommand,
14
+ CheckIfPhoneNumberIsOptedOutCommand: client_sns_1.CheckIfPhoneNumberIsOptedOutCommand,
15
+ ConfirmSubscriptionCommand: client_sns_1.ConfirmSubscriptionCommand,
16
+ CreatePlatformApplicationCommand: client_sns_1.CreatePlatformApplicationCommand,
17
+ CreatePlatformEndpointCommand: client_sns_1.CreatePlatformEndpointCommand,
18
+ CreateSMSSandboxPhoneNumberCommand: client_sns_1.CreateSMSSandboxPhoneNumberCommand,
19
+ CreateTopicCommand: client_sns_1.CreateTopicCommand,
20
+ DeleteEndpointCommand: client_sns_1.DeleteEndpointCommand,
21
+ DeletePlatformApplicationCommand: client_sns_1.DeletePlatformApplicationCommand,
22
+ DeleteSMSSandboxPhoneNumberCommand: client_sns_1.DeleteSMSSandboxPhoneNumberCommand,
23
+ DeleteTopicCommand: client_sns_1.DeleteTopicCommand,
24
+ GetDataProtectionPolicyCommand: client_sns_1.GetDataProtectionPolicyCommand,
25
+ GetEndpointAttributesCommand: client_sns_1.GetEndpointAttributesCommand,
26
+ GetPlatformApplicationAttributesCommand: client_sns_1.GetPlatformApplicationAttributesCommand,
27
+ GetSMSAttributesCommand: client_sns_1.GetSMSAttributesCommand,
28
+ GetSMSSandboxAccountStatusCommand: client_sns_1.GetSMSSandboxAccountStatusCommand,
29
+ GetSubscriptionAttributesCommand: client_sns_1.GetSubscriptionAttributesCommand,
30
+ GetTopicAttributesCommand: client_sns_1.GetTopicAttributesCommand,
31
+ ListEndpointsByPlatformApplicationCommand: client_sns_1.ListEndpointsByPlatformApplicationCommand,
32
+ ListOriginationNumbersCommand: client_sns_1.ListOriginationNumbersCommand,
33
+ ListPhoneNumbersOptedOutCommand: client_sns_1.ListPhoneNumbersOptedOutCommand,
34
+ ListPlatformApplicationsCommand: client_sns_1.ListPlatformApplicationsCommand,
35
+ ListSMSSandboxPhoneNumbersCommand: client_sns_1.ListSMSSandboxPhoneNumbersCommand,
36
+ ListSubscriptionsCommand: client_sns_1.ListSubscriptionsCommand,
37
+ ListSubscriptionsByTopicCommand: client_sns_1.ListSubscriptionsByTopicCommand,
38
+ ListTagsForResourceCommand: client_sns_1.ListTagsForResourceCommand,
39
+ ListTopicsCommand: client_sns_1.ListTopicsCommand,
40
+ OptInPhoneNumberCommand: client_sns_1.OptInPhoneNumberCommand,
41
+ PublishCommand: client_sns_1.PublishCommand,
42
+ PublishBatchCommand: client_sns_1.PublishBatchCommand,
43
+ PutDataProtectionPolicyCommand: client_sns_1.PutDataProtectionPolicyCommand,
44
+ RemovePermissionCommand: client_sns_1.RemovePermissionCommand,
45
+ SetEndpointAttributesCommand: client_sns_1.SetEndpointAttributesCommand,
46
+ SetPlatformApplicationAttributesCommand: client_sns_1.SetPlatformApplicationAttributesCommand,
47
+ SetSMSAttributesCommand: client_sns_1.SetSMSAttributesCommand,
48
+ SetSubscriptionAttributesCommand: client_sns_1.SetSubscriptionAttributesCommand,
49
+ SetTopicAttributesCommand: client_sns_1.SetTopicAttributesCommand,
50
+ SubscribeCommand: client_sns_1.SubscribeCommand,
51
+ TagResourceCommand: client_sns_1.TagResourceCommand,
52
+ UnsubscribeCommand: client_sns_1.UnsubscribeCommand,
53
+ UntagResourceCommand: client_sns_1.UntagResourceCommand,
54
+ VerifySMSSandboxPhoneNumberCommand: client_sns_1.VerifySMSSandboxPhoneNumberCommand,
55
+ };
56
+ /**
57
+ * @since 1.0.0
58
+ * @category tags
59
+ */
60
+ exports.SNSService = effect_1.Context.Tag(Symbol.for("@effect-aws/client-sns/SNSService"));
61
+ /**
62
+ * @since 1.0.0
63
+ * @category constructors
64
+ */
65
+ exports.makeSNSService = effect_1.Effect.gen(function* (_) {
66
+ const client = yield* _(SNSClientInstance_1.SNSClientInstance);
67
+ return effect_1.ReadonlyRecord.toEntries(commands).reduce((acc, [command]) => {
68
+ const CommandCtor = commands[command];
69
+ const methodImpl = (args, options) => effect_1.Effect.tryPromise({
70
+ try: () => client.send(new CommandCtor(args), options !== null && options !== void 0 ? options : {}),
71
+ catch: (e) => {
72
+ if (e instanceof client_sns_1.SNSServiceException) {
73
+ const ServiceException = effect_1.Data.tagged(e.name);
74
+ return ServiceException({
75
+ ...e,
76
+ message: e.message,
77
+ stack: e.stack,
78
+ });
79
+ }
80
+ if (e instanceof Error) {
81
+ return (0, Errors_1.SdkError)({
82
+ ...e,
83
+ name: "SdkError",
84
+ message: e.message,
85
+ stack: e.stack,
86
+ });
87
+ }
88
+ throw e;
89
+ },
90
+ });
91
+ const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, "");
92
+ return { ...acc, [methodName]: methodImpl };
93
+ }, {});
94
+ });
95
+ /**
96
+ * @since 1.0.0
97
+ * @category layers
98
+ */
99
+ exports.BaseSNSServiceLayer = effect_1.Layer.effect(exports.SNSService, exports.makeSNSService);
100
+ /**
101
+ * @since 1.0.0
102
+ * @category layers
103
+ */
104
+ exports.SNSServiceLayer = exports.BaseSNSServiceLayer.pipe(effect_1.Layer.provide(SNSClientInstance_1.SNSClientInstanceLayer));
105
+ /**
106
+ * @since 1.0.0
107
+ * @category layers
108
+ */
109
+ exports.DefaultSNSServiceLayer = exports.SNSServiceLayer.pipe(effect_1.Layer.provide(SNSClientInstanceConfig_1.DefaultSNSClientConfigLayer));
110
+ // -------------------- Danger Zone --------------------
111
+ /**
112
+ * @since 0.1.0
113
+ * @deprecated
114
+ */
115
+ exports.BaseSNSServiceEffect = exports.makeSNSService;
116
+ /**
117
+ * @since 0.1.0
118
+ * @deprecated
119
+ */
120
+ exports.SNSServiceEffect = exports.BaseSNSServiceEffect.pipe(effect_1.Effect.provide(SNSClientInstance_1.SNSClientInstanceLayer));
121
+ /**
122
+ * @since 0.1.0
123
+ * @deprecated
124
+ */
125
+ exports.DefaultSNSServiceEffect = exports.BaseSNSServiceEffect.pipe(effect_1.Effect.provide(SNSClientInstance_1.DefaultSNSClientInstanceLayer));
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU05TU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9TTlNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ0gsb0RBZ0k2QjtBQUU3QixtQ0FBc0U7QUFDdEUscUNBbUNrQjtBQUNsQiwyREFJNkI7QUFDN0IsdUVBQXdFO0FBRXhFLE1BQU0sUUFBUSxHQUFHO0lBQ2Ysb0JBQW9CLEVBQXBCLGlDQUFvQjtJQUNwQixtQ0FBbUMsRUFBbkMsZ0RBQW1DO0lBQ25DLDBCQUEwQixFQUExQix1Q0FBMEI7SUFDMUIsZ0NBQWdDLEVBQWhDLDZDQUFnQztJQUNoQyw2QkFBNkIsRUFBN0IsMENBQTZCO0lBQzdCLGtDQUFrQyxFQUFsQywrQ0FBa0M7SUFDbEMsa0JBQWtCLEVBQWxCLCtCQUFrQjtJQUNsQixxQkFBcUIsRUFBckIsa0NBQXFCO0lBQ3JCLGdDQUFnQyxFQUFoQyw2Q0FBZ0M7SUFDaEMsa0NBQWtDLEVBQWxDLCtDQUFrQztJQUNsQyxrQkFBa0IsRUFBbEIsK0JBQWtCO0lBQ2xCLDhCQUE4QixFQUE5QiwyQ0FBOEI7SUFDOUIsNEJBQTRCLEVBQTVCLHlDQUE0QjtJQUM1Qix1Q0FBdUMsRUFBdkMsb0RBQXVDO0lBQ3ZDLHVCQUF1QixFQUF2QixvQ0FBdUI7SUFDdkIsaUNBQWlDLEVBQWpDLDhDQUFpQztJQUNqQyxnQ0FBZ0MsRUFBaEMsNkNBQWdDO0lBQ2hDLHlCQUF5QixFQUF6QixzQ0FBeUI7SUFDekIseUNBQXlDLEVBQXpDLHNEQUF5QztJQUN6Qyw2QkFBNkIsRUFBN0IsMENBQTZCO0lBQzdCLCtCQUErQixFQUEvQiw0Q0FBK0I7SUFDL0IsK0JBQStCLEVBQS9CLDRDQUErQjtJQUMvQixpQ0FBaUMsRUFBakMsOENBQWlDO0lBQ2pDLHdCQUF3QixFQUF4QixxQ0FBd0I7SUFDeEIsK0JBQStCLEVBQS9CLDRDQUErQjtJQUMvQiwwQkFBMEIsRUFBMUIsdUNBQTBCO0lBQzFCLGlCQUFpQixFQUFqQiw4QkFBaUI7SUFDakIsdUJBQXVCLEVBQXZCLG9DQUF1QjtJQUN2QixjQUFjLEVBQWQsMkJBQWM7SUFDZCxtQkFBbUIsRUFBbkIsZ0NBQW1CO0lBQ25CLDhCQUE4QixFQUE5QiwyQ0FBOEI7SUFDOUIsdUJBQXVCLEVBQXZCLG9DQUF1QjtJQUN2Qiw0QkFBNEIsRUFBNUIseUNBQTRCO0lBQzVCLHVDQUF1QyxFQUF2QyxvREFBdUM7SUFDdkMsdUJBQXVCLEVBQXZCLG9DQUF1QjtJQUN2QixnQ0FBZ0MsRUFBaEMsNkNBQWdDO0lBQ2hDLHlCQUF5QixFQUF6QixzQ0FBeUI7SUFDekIsZ0JBQWdCLEVBQWhCLDZCQUFnQjtJQUNoQixrQkFBa0IsRUFBbEIsK0JBQWtCO0lBQ2xCLGtCQUFrQixFQUFsQiwrQkFBa0I7SUFDbEIsb0JBQW9CLEVBQXBCLGlDQUFvQjtJQUNwQixrQ0FBa0MsRUFBbEMsK0NBQWtDO0NBQ25DLENBQUM7QUEyc0JGOzs7R0FHRztBQUNVLFFBQUEsVUFBVSxHQUFHLGdCQUFPLENBQUMsR0FBRyxDQUNuQyxNQUFNLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLENBQ2hELENBQUM7QUFFRjs7O0dBR0c7QUFDVSxRQUFBLGNBQWMsR0FBRyxlQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDbkQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFDQUFpQixDQUFDLENBQUM7SUFFM0MsT0FBTyx1QkFBYyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1FBQ2xFLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQVEsQ0FBQztRQUM3QyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVMsRUFBRSxPQUFZLEVBQUUsRUFBRSxDQUM3QyxlQUFNLENBQUMsVUFBVSxDQUFDO1lBQ2hCLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sYUFBUCxPQUFPLGNBQVAsT0FBTyxHQUFJLEVBQUUsQ0FBQztZQUM1RCxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDWCxJQUFJLENBQUMsWUFBWSxnQ0FBbUIsRUFBRTtvQkFDcEMsTUFBTSxnQkFBZ0IsR0FBRyxhQUFJLENBQUMsTUFBTSxDQUVsQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBRVYsT0FBTyxnQkFBZ0IsQ0FBQzt3QkFDdEIsR0FBRyxDQUFDO3dCQUNKLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO3FCQUNmLENBQUMsQ0FBQztpQkFDSjtnQkFDRCxJQUFJLENBQUMsWUFBWSxLQUFLLEVBQUU7b0JBQ3RCLE9BQU8sSUFBQSxpQkFBUSxFQUFDO3dCQUNkLEdBQUcsQ0FBQzt3QkFDSixJQUFJLEVBQUUsVUFBVTt3QkFDaEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO3dCQUNsQixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7cUJBQ2YsQ0FBQyxDQUFDO2lCQUNKO2dCQUNELE1BQU0sQ0FBQyxDQUFDO1lBQ1YsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUNMLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ3RFLFVBQVUsRUFDVixFQUFFLENBQ0gsQ0FBQztRQUNGLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQzlDLENBQUMsRUFBRSxFQUFFLENBQWUsQ0FBQztBQUN2QixDQUFDLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUNVLFFBQUEsbUJBQW1CLEdBQUcsY0FBSyxDQUFDLE1BQU0sQ0FBQyxrQkFBVSxFQUFFLHNCQUFjLENBQUMsQ0FBQztBQUU1RTs7O0dBR0c7QUFDVSxRQUFBLGVBQWUsR0FBRywyQkFBbUIsQ0FBQyxJQUFJLENBQ3JELGNBQUssQ0FBQyxPQUFPLENBQUMsMENBQXNCLENBQUMsQ0FDdEMsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsc0JBQXNCLEdBQUcsdUJBQWUsQ0FBQyxJQUFJLENBQ3hELGNBQUssQ0FBQyxPQUFPLENBQUMscURBQTJCLENBQUMsQ0FDM0MsQ0FBQztBQUVGLHdEQUF3RDtBQUV4RDs7O0dBR0c7QUFDVSxRQUFBLG9CQUFvQixHQUFHLHNCQUFjLENBQUM7QUFFbkQ7OztHQUdHO0FBQ1UsUUFBQSxnQkFBZ0IsR0FBRyw0QkFBb0IsQ0FBQyxJQUFJLENBQ3ZELGVBQU0sQ0FBQyxPQUFPLENBQUMsMENBQXNCLENBQUMsQ0FDdkMsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsdUJBQXVCLEdBQUcsNEJBQW9CLENBQUMsSUFBSSxDQUM5RCxlQUFNLENBQUMsT0FBTyxDQUFDLGlEQUE2QixDQUFDLENBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBzaW5jZSAxLjAuMFxuICovXG5pbXBvcnQge1xuICBBZGRQZXJtaXNzaW9uQ29tbWFuZCxcbiAgQWRkUGVybWlzc2lvbkNvbW1hbmRJbnB1dCxcbiAgQWRkUGVybWlzc2lvbkNvbW1hbmRPdXRwdXQsXG4gIENoZWNrSWZQaG9uZU51bWJlcklzT3B0ZWRPdXRDb21tYW5kLFxuICBDaGVja0lmUGhvbmVOdW1iZXJJc09wdGVkT3V0Q29tbWFuZElucHV0LFxuICBDaGVja0lmUGhvbmVOdW1iZXJJc09wdGVkT3V0Q29tbWFuZE91dHB1dCxcbiAgQ29uZmlybVN1YnNjcmlwdGlvbkNvbW1hbmQsXG4gIENvbmZpcm1TdWJzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gIENvbmZpcm1TdWJzY3JpcHRpb25Db21tYW5kT3V0cHV0LFxuICBDcmVhdGVQbGF0Zm9ybUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlUGxhdGZvcm1BcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgQ3JlYXRlUGxhdGZvcm1BcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIENyZWF0ZVBsYXRmb3JtRW5kcG9pbnRDb21tYW5kLFxuICBDcmVhdGVQbGF0Zm9ybUVuZHBvaW50Q29tbWFuZElucHV0LFxuICBDcmVhdGVQbGF0Zm9ybUVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgQ3JlYXRlU01TU2FuZGJveFBob25lTnVtYmVyQ29tbWFuZCxcbiAgQ3JlYXRlU01TU2FuZGJveFBob25lTnVtYmVyQ29tbWFuZElucHV0LFxuICBDcmVhdGVTTVNTYW5kYm94UGhvbmVOdW1iZXJDb21tYW5kT3V0cHV0LFxuICBDcmVhdGVUb3BpY0NvbW1hbmQsXG4gIENyZWF0ZVRvcGljQ29tbWFuZElucHV0LFxuICBDcmVhdGVUb3BpY0NvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZUVuZHBvaW50Q29tbWFuZCxcbiAgRGVsZXRlRW5kcG9pbnRDb21tYW5kSW5wdXQsXG4gIERlbGV0ZUVuZHBvaW50Q29tbWFuZE91dHB1dCxcbiAgRGVsZXRlUGxhdGZvcm1BcHBsaWNhdGlvbkNvbW1hbmQsXG4gIERlbGV0ZVBsYXRmb3JtQXBwbGljYXRpb25Db21tYW5kSW5wdXQsXG4gIERlbGV0ZVBsYXRmb3JtQXBwbGljYXRpb25Db21tYW5kT3V0cHV0LFxuICBEZWxldGVTTVNTYW5kYm94UGhvbmVOdW1iZXJDb21tYW5kLFxuICBEZWxldGVTTVNTYW5kYm94UGhvbmVOdW1iZXJDb21tYW5kSW5wdXQsXG4gIERlbGV0ZVNNU1NhbmRib3hQaG9uZU51bWJlckNvbW1hbmRPdXRwdXQsXG4gIERlbGV0ZVRvcGljQ29tbWFuZCxcbiAgRGVsZXRlVG9waWNDb21tYW5kSW5wdXQsXG4gIERlbGV0ZVRvcGljQ29tbWFuZE91dHB1dCxcbiAgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kLFxuICBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgR2V0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kT3V0cHV0LFxuICBHZXRFbmRwb2ludEF0dHJpYnV0ZXNDb21tYW5kLFxuICBHZXRFbmRwb2ludEF0dHJpYnV0ZXNDb21tYW5kSW5wdXQsXG4gIEdldEVuZHBvaW50QXR0cmlidXRlc0NvbW1hbmRPdXRwdXQsXG4gIEdldFBsYXRmb3JtQXBwbGljYXRpb25BdHRyaWJ1dGVzQ29tbWFuZCxcbiAgR2V0UGxhdGZvcm1BcHBsaWNhdGlvbkF0dHJpYnV0ZXNDb21tYW5kSW5wdXQsXG4gIEdldFBsYXRmb3JtQXBwbGljYXRpb25BdHRyaWJ1dGVzQ29tbWFuZE91dHB1dCxcbiAgR2V0U01TQXR0cmlidXRlc0NvbW1hbmQsXG4gIEdldFNNU0F0dHJpYnV0ZXNDb21tYW5kSW5wdXQsXG4gIEdldFNNU0F0dHJpYnV0ZXNDb21tYW5kT3V0cHV0LFxuICBHZXRTTVNTYW5kYm94QWNjb3VudFN0YXR1c0NvbW1hbmQsXG4gIEdldFNNU1NhbmRib3hBY2NvdW50U3RhdHVzQ29tbWFuZElucHV0LFxuICBHZXRTTVNTYW5kYm94QWNjb3VudFN0YXR1c0NvbW1hbmRPdXRwdXQsXG4gIEdldFN1YnNjcmlwdGlvbkF0dHJpYnV0ZXNDb21tYW5kLFxuICBHZXRTdWJzY3JpcHRpb25BdHRyaWJ1dGVzQ29tbWFuZElucHV0LFxuICBHZXRTdWJzY3JpcHRpb25BdHRyaWJ1dGVzQ29tbWFuZE91dHB1dCxcbiAgR2V0VG9waWNBdHRyaWJ1dGVzQ29tbWFuZCxcbiAgR2V0VG9waWNBdHRyaWJ1dGVzQ29tbWFuZElucHV0LFxuICBHZXRUb3BpY0F0dHJpYnV0ZXNDb21tYW5kT3V0cHV0LFxuICBMaXN0RW5kcG9pbnRzQnlQbGF0Zm9ybUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgTGlzdEVuZHBvaW50c0J5UGxhdGZvcm1BcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgTGlzdEVuZHBvaW50c0J5UGxhdGZvcm1BcHBsaWNhdGlvbkNvbW1hbmRPdXRwdXQsXG4gIExpc3RPcmlnaW5hdGlvbk51bWJlcnNDb21tYW5kLFxuICBMaXN0T3JpZ2luYXRpb25OdW1iZXJzQ29tbWFuZElucHV0LFxuICBMaXN0T3JpZ2luYXRpb25OdW1iZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFBob25lTnVtYmVyc09wdGVkT3V0Q29tbWFuZCxcbiAgTGlzdFBob25lTnVtYmVyc09wdGVkT3V0Q29tbWFuZElucHV0LFxuICBMaXN0UGhvbmVOdW1iZXJzT3B0ZWRPdXRDb21tYW5kT3V0cHV0LFxuICBMaXN0UGxhdGZvcm1BcHBsaWNhdGlvbnNDb21tYW5kLFxuICBMaXN0UGxhdGZvcm1BcHBsaWNhdGlvbnNDb21tYW5kSW5wdXQsXG4gIExpc3RQbGF0Zm9ybUFwcGxpY2F0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RTTVNTYW5kYm94UGhvbmVOdW1iZXJzQ29tbWFuZCxcbiAgTGlzdFNNU1NhbmRib3hQaG9uZU51bWJlcnNDb21tYW5kSW5wdXQsXG4gIExpc3RTTVNTYW5kYm94UGhvbmVOdW1iZXJzQ29tbWFuZE91dHB1dCxcbiAgTGlzdFN1YnNjcmlwdGlvbnNCeVRvcGljQ29tbWFuZCxcbiAgTGlzdFN1YnNjcmlwdGlvbnNCeVRvcGljQ29tbWFuZElucHV0LFxuICBMaXN0U3Vic2NyaXB0aW9uc0J5VG9waWNDb21tYW5kT3V0cHV0LFxuICBMaXN0U3Vic2NyaXB0aW9uc0NvbW1hbmQsXG4gIExpc3RTdWJzY3JpcHRpb25zQ29tbWFuZElucHV0LFxuICBMaXN0U3Vic2NyaXB0aW9uc0NvbW1hbmRPdXRwdXQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgTGlzdFRvcGljc0NvbW1hbmQsXG4gIExpc3RUb3BpY3NDb21tYW5kSW5wdXQsXG4gIExpc3RUb3BpY3NDb21tYW5kT3V0cHV0LFxuICBPcHRJblBob25lTnVtYmVyQ29tbWFuZCxcbiAgT3B0SW5QaG9uZU51bWJlckNvbW1hbmRJbnB1dCxcbiAgT3B0SW5QaG9uZU51bWJlckNvbW1hbmRPdXRwdXQsXG4gIFB1Ymxpc2hCYXRjaENvbW1hbmQsXG4gIFB1Ymxpc2hCYXRjaENvbW1hbmRJbnB1dCxcbiAgUHVibGlzaEJhdGNoQ29tbWFuZE91dHB1dCxcbiAgUHVibGlzaENvbW1hbmQsXG4gIFB1Ymxpc2hDb21tYW5kSW5wdXQsXG4gIFB1Ymxpc2hDb21tYW5kT3V0cHV0LFxuICBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIFB1dERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZElucHV0LFxuICBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXQsXG4gIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kLFxuICBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZElucHV0LFxuICBSZW1vdmVQZXJtaXNzaW9uQ29tbWFuZE91dHB1dCxcbiAgU05TU2VydmljZUV4Y2VwdGlvbixcbiAgU2V0RW5kcG9pbnRBdHRyaWJ1dGVzQ29tbWFuZCxcbiAgU2V0RW5kcG9pbnRBdHRyaWJ1dGVzQ29tbWFuZElucHV0LFxuICBTZXRFbmRwb2ludEF0dHJpYnV0ZXNDb21tYW5kT3V0cHV0LFxuICBTZXRQbGF0Zm9ybUFwcGxpY2F0aW9uQXR0cmlidXRlc0NvbW1hbmQsXG4gIFNldFBsYXRmb3JtQXBwbGljYXRpb25BdHRyaWJ1dGVzQ29tbWFuZElucHV0LFxuICBTZXRQbGF0Zm9ybUFwcGxpY2F0aW9uQXR0cmlidXRlc0NvbW1hbmRPdXRwdXQsXG4gIFNldFNNU0F0dHJpYnV0ZXNDb21tYW5kLFxuICBTZXRTTVNBdHRyaWJ1dGVzQ29tbWFuZElucHV0LFxuICBTZXRTTVNBdHRyaWJ1dGVzQ29tbWFuZE91dHB1dCxcbiAgU2V0U3Vic2NyaXB0aW9uQXR0cmlidXRlc0NvbW1hbmQsXG4gIFNldFN1YnNjcmlwdGlvbkF0dHJpYnV0ZXNDb21tYW5kSW5wdXQsXG4gIFNldFN1YnNjcmlwdGlvbkF0dHJpYnV0ZXNDb21tYW5kT3V0cHV0LFxuICBTZXRUb3BpY0F0dHJpYnV0ZXNDb21tYW5kLFxuICBTZXRUb3BpY0F0dHJpYnV0ZXNDb21tYW5kSW5wdXQsXG4gIFNldFRvcGljQXR0cmlidXRlc0NvbW1hbmRPdXRwdXQsXG4gIFN1YnNjcmliZUNvbW1hbmQsXG4gIFN1YnNjcmliZUNvbW1hbmRJbnB1dCxcbiAgU3Vic2NyaWJlQ29tbWFuZE91dHB1dCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0LFxuICBVbnN1YnNjcmliZUNvbW1hbmQsXG4gIFVuc3Vic2NyaWJlQ29tbWFuZElucHV0LFxuICBVbnN1YnNjcmliZUNvbW1hbmRPdXRwdXQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZElucHV0LFxuICBVbnRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dCxcbiAgVmVyaWZ5U01TU2FuZGJveFBob25lTnVtYmVyQ29tbWFuZCxcbiAgVmVyaWZ5U01TU2FuZGJveFBob25lTnVtYmVyQ29tbWFuZElucHV0LFxuICBWZXJpZnlTTVNTYW5kYm94UGhvbmVOdW1iZXJDb21tYW5kT3V0cHV0LFxufSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXNuc1wiO1xuaW1wb3J0IHsgSHR0cEhhbmRsZXJPcHRpb25zIGFzIF9fSHR0cEhhbmRsZXJPcHRpb25zIH0gZnJvbSBcIkBhd3Mtc2RrL3R5cGVzXCI7XG5pbXBvcnQgeyBDb250ZXh0LCBEYXRhLCBFZmZlY3QsIExheWVyLCBSZWFkb25seVJlY29yZCB9IGZyb20gXCJlZmZlY3RcIjtcbmltcG9ydCB7XG4gIEF1dGhvcml6YXRpb25FcnJvcixcbiAgQmF0Y2hFbnRyeUlkc05vdERpc3RpbmN0RXJyb3IsXG4gIEJhdGNoUmVxdWVzdFRvb0xvbmdFcnJvcixcbiAgQ29uY3VycmVudEFjY2Vzc0Vycm9yLFxuICBFbXB0eUJhdGNoUmVxdWVzdEVycm9yLFxuICBFbmRwb2ludERpc2FibGVkRXJyb3IsXG4gIEZpbHRlclBvbGljeUxpbWl0RXhjZWVkZWRFcnJvcixcbiAgSW50ZXJuYWxFcnJvcixcbiAgSW52YWxpZEJhdGNoRW50cnlJZEVycm9yLFxuICBJbnZhbGlkUGFyYW1ldGVyRXJyb3IsXG4gIEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yLFxuICBJbnZhbGlkU2VjdXJpdHlFcnJvcixcbiAgS01TQWNjZXNzRGVuaWVkRXJyb3IsXG4gIEtNU0Rpc2FibGVkRXJyb3IsXG4gIEtNU0ludmFsaWRTdGF0ZUVycm9yLFxuICBLTVNOb3RGb3VuZEVycm9yLFxuICBLTVNPcHRJblJlcXVpcmVkRXJyb3IsXG4gIEtNU1Rocm90dGxpbmdFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbiAgT3B0ZWRPdXRFcnJvcixcbiAgUGxhdGZvcm1BcHBsaWNhdGlvbkRpc2FibGVkRXJyb3IsXG4gIFJlc291cmNlTm90Rm91bmRFcnJvcixcbiAgU2RrRXJyb3IsXG4gIFN0YWxlVGFnRXJyb3IsXG4gIFN1YnNjcmlwdGlvbkxpbWl0RXhjZWVkZWRFcnJvcixcbiAgVGFnTGltaXRFeGNlZWRlZEVycm9yLFxuICBUYWdQb2xpY3lFcnJvcixcbiAgVGFnZ2VkRXhjZXB0aW9uLFxuICBUaHJvdHRsZWRFcnJvcixcbiAgVG9vTWFueUVudHJpZXNJbkJhdGNoUmVxdWVzdEVycm9yLFxuICBUb3BpY0xpbWl0RXhjZWVkZWRFcnJvcixcbiAgVXNlckVycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG4gIFZlcmlmaWNhdGlvbkVycm9yLFxufSBmcm9tIFwiLi9FcnJvcnNcIjtcbmltcG9ydCB7XG4gIERlZmF1bHRTTlNDbGllbnRJbnN0YW5jZUxheWVyLFxuICBTTlNDbGllbnRJbnN0YW5jZSxcbiAgU05TQ2xpZW50SW5zdGFuY2VMYXllcixcbn0gZnJvbSBcIi4vU05TQ2xpZW50SW5zdGFuY2VcIjtcbmltcG9ydCB7IERlZmF1bHRTTlNDbGllbnRDb25maWdMYXllciB9IGZyb20gXCIuL1NOU0NsaWVudEluc3RhbmNlQ29uZmlnXCI7XG5cbmNvbnN0IGNvbW1hbmRzID0ge1xuICBBZGRQZXJtaXNzaW9uQ29tbWFuZCxcbiAgQ2hlY2tJZlBob25lTnVtYmVySXNPcHRlZE91dENvbW1hbmQsXG4gIENvbmZpcm1TdWJzY3JpcHRpb25Db21tYW5kLFxuICBDcmVhdGVQbGF0Zm9ybUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlUGxhdGZvcm1FbmRwb2ludENvbW1hbmQsXG4gIENyZWF0ZVNNU1NhbmRib3hQaG9uZU51bWJlckNvbW1hbmQsXG4gIENyZWF0ZVRvcGljQ29tbWFuZCxcbiAgRGVsZXRlRW5kcG9pbnRDb21tYW5kLFxuICBEZWxldGVQbGF0Zm9ybUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgRGVsZXRlU01TU2FuZGJveFBob25lTnVtYmVyQ29tbWFuZCxcbiAgRGVsZXRlVG9waWNDb21tYW5kLFxuICBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIEdldEVuZHBvaW50QXR0cmlidXRlc0NvbW1hbmQsXG4gIEdldFBsYXRmb3JtQXBwbGljYXRpb25BdHRyaWJ1dGVzQ29tbWFuZCxcbiAgR2V0U01TQXR0cmlidXRlc0NvbW1hbmQsXG4gIEdldFNNU1NhbmRib3hBY2NvdW50U3RhdHVzQ29tbWFuZCxcbiAgR2V0U3Vic2NyaXB0aW9uQXR0cmlidXRlc0NvbW1hbmQsXG4gIEdldFRvcGljQXR0cmlidXRlc0NvbW1hbmQsXG4gIExpc3RFbmRwb2ludHNCeVBsYXRmb3JtQXBwbGljYXRpb25Db21tYW5kLFxuICBMaXN0T3JpZ2luYXRpb25OdW1iZXJzQ29tbWFuZCxcbiAgTGlzdFBob25lTnVtYmVyc09wdGVkT3V0Q29tbWFuZCxcbiAgTGlzdFBsYXRmb3JtQXBwbGljYXRpb25zQ29tbWFuZCxcbiAgTGlzdFNNU1NhbmRib3hQaG9uZU51bWJlcnNDb21tYW5kLFxuICBMaXN0U3Vic2NyaXB0aW9uc0NvbW1hbmQsXG4gIExpc3RTdWJzY3JpcHRpb25zQnlUb3BpY0NvbW1hbmQsXG4gIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kLFxuICBMaXN0VG9waWNzQ29tbWFuZCxcbiAgT3B0SW5QaG9uZU51bWJlckNvbW1hbmQsXG4gIFB1Ymxpc2hDb21tYW5kLFxuICBQdWJsaXNoQmF0Y2hDb21tYW5kLFxuICBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmQsXG4gIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kLFxuICBTZXRFbmRwb2ludEF0dHJpYnV0ZXNDb21tYW5kLFxuICBTZXRQbGF0Zm9ybUFwcGxpY2F0aW9uQXR0cmlidXRlc0NvbW1hbmQsXG4gIFNldFNNU0F0dHJpYnV0ZXNDb21tYW5kLFxuICBTZXRTdWJzY3JpcHRpb25BdHRyaWJ1dGVzQ29tbWFuZCxcbiAgU2V0VG9waWNBdHRyaWJ1dGVzQ29tbWFuZCxcbiAgU3Vic2NyaWJlQ29tbWFuZCxcbiAgVGFnUmVzb3VyY2VDb21tYW5kLFxuICBVbnN1YnNjcmliZUNvbW1hbmQsXG4gIFVudGFnUmVzb3VyY2VDb21tYW5kLFxuICBWZXJpZnlTTVNTYW5kYm94UGhvbmVOdW1iZXJDb21tYW5kLFxufTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBtb2RlbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTTlNTZXJ2aWNlIHtcbiAgcmVhZG9ubHkgXzogdW5pcXVlIHN5bWJvbDtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQWRkUGVybWlzc2lvbkNvbW1hbmR9XG4gICAqL1xuICBhZGRQZXJtaXNzaW9uKFxuICAgIGFyZ3M6IEFkZFBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yLFxuICAgIEFkZFBlcm1pc3Npb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENoZWNrSWZQaG9uZU51bWJlcklzT3B0ZWRPdXRDb21tYW5kfVxuICAgKi9cbiAgY2hlY2tJZlBob25lTnVtYmVySXNPcHRlZE91dChcbiAgICBhcmdzOiBDaGVja0lmUGhvbmVOdW1iZXJJc09wdGVkT3V0Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgVGhyb3R0bGVkRXJyb3IsXG4gICAgQ2hlY2tJZlBob25lTnVtYmVySXNPcHRlZE91dENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgQ29uZmlybVN1YnNjcmlwdGlvbkNvbW1hbmR9XG4gICAqL1xuICBjb25maXJtU3Vic2NyaXB0aW9uKFxuICAgIGFyZ3M6IENvbmZpcm1TdWJzY3JpcHRpb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25FcnJvclxuICAgIHwgRmlsdGVyUG9saWN5TGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgICB8IFN1YnNjcmlwdGlvbkxpbWl0RXhjZWVkZWRFcnJvcixcbiAgICBDb25maXJtU3Vic2NyaXB0aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVQbGF0Zm9ybUFwcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIGNyZWF0ZVBsYXRmb3JtQXBwbGljYXRpb24oXG4gICAgYXJnczogQ3JlYXRlUGxhdGZvcm1BcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBBdXRob3JpemF0aW9uRXJyb3IgfCBJbnRlcm5hbEVycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yLFxuICAgIENyZWF0ZVBsYXRmb3JtQXBwbGljYXRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIENyZWF0ZVBsYXRmb3JtRW5kcG9pbnRDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlUGxhdGZvcm1FbmRwb2ludChcbiAgICBhcmdzOiBDcmVhdGVQbGF0Zm9ybUVuZHBvaW50Q29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvcixcbiAgICBDcmVhdGVQbGF0Zm9ybUVuZHBvaW50Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVTTVNTYW5kYm94UGhvbmVOdW1iZXJDb21tYW5kfVxuICAgKi9cbiAgY3JlYXRlU01TU2FuZGJveFBob25lTnVtYmVyKFxuICAgIGFyZ3M6IENyZWF0ZVNNU1NhbmRib3hQaG9uZU51bWJlckNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE9wdGVkT3V0RXJyb3JcbiAgICB8IFRocm90dGxlZEVycm9yXG4gICAgfCBVc2VyRXJyb3IsXG4gICAgQ3JlYXRlU01TU2FuZGJveFBob25lTnVtYmVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBDcmVhdGVUb3BpY0NvbW1hbmR9XG4gICAqL1xuICBjcmVhdGVUb3BpYyhcbiAgICBhcmdzOiBDcmVhdGVUb3BpY0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkVycm9yXG4gICAgfCBDb25jdXJyZW50QWNjZXNzRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFNlY3VyaXR5RXJyb3JcbiAgICB8IFN0YWxlVGFnRXJyb3JcbiAgICB8IFRhZ0xpbWl0RXhjZWVkZWRFcnJvclxuICAgIHwgVGFnUG9saWN5RXJyb3JcbiAgICB8IFRvcGljTGltaXRFeGNlZWRlZEVycm9yLFxuICAgIENyZWF0ZVRvcGljQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVFbmRwb2ludENvbW1hbmR9XG4gICAqL1xuICBkZWxldGVFbmRwb2ludChcbiAgICBhcmdzOiBEZWxldGVFbmRwb2ludENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBBdXRob3JpemF0aW9uRXJyb3IgfCBJbnRlcm5hbEVycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yLFxuICAgIERlbGV0ZUVuZHBvaW50Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBEZWxldGVQbGF0Zm9ybUFwcGxpY2F0aW9uQ29tbWFuZH1cbiAgICovXG4gIGRlbGV0ZVBsYXRmb3JtQXBwbGljYXRpb24oXG4gICAgYXJnczogRGVsZXRlUGxhdGZvcm1BcHBsaWNhdGlvbkNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgU2RrRXJyb3IgfCBBdXRob3JpemF0aW9uRXJyb3IgfCBJbnRlcm5hbEVycm9yIHwgSW52YWxpZFBhcmFtZXRlckVycm9yLFxuICAgIERlbGV0ZVBsYXRmb3JtQXBwbGljYXRpb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIERlbGV0ZVNNU1NhbmRib3hQaG9uZU51bWJlckNvbW1hbmR9XG4gICAqL1xuICBkZWxldGVTTVNTYW5kYm94UGhvbmVOdW1iZXIoXG4gICAgYXJnczogRGVsZXRlU01TU2FuZGJveFBob25lTnVtYmVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsZWRFcnJvclxuICAgIHwgVXNlckVycm9yLFxuICAgIERlbGV0ZVNNU1NhbmRib3hQaG9uZU51bWJlckNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgRGVsZXRlVG9waWNDb21tYW5kfVxuICAgKi9cbiAgZGVsZXRlVG9waWMoXG4gICAgYXJnczogRGVsZXRlVG9waWNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25FcnJvclxuICAgIHwgQ29uY3VycmVudEFjY2Vzc0Vycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgICB8IFN0YWxlVGFnRXJyb3JcbiAgICB8IFRhZ1BvbGljeUVycm9yLFxuICAgIERlbGV0ZVRvcGljQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmR9XG4gICAqL1xuICBnZXREYXRhUHJvdGVjdGlvblBvbGljeShcbiAgICBhcmdzOiBHZXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTZWN1cml0eUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yLFxuICAgIEdldERhdGFQcm90ZWN0aW9uUG9saWN5Q29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRFbmRwb2ludEF0dHJpYnV0ZXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0RW5kcG9pbnRBdHRyaWJ1dGVzKFxuICAgIGFyZ3M6IEdldEVuZHBvaW50QXR0cmlidXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3IsXG4gICAgR2V0RW5kcG9pbnRBdHRyaWJ1dGVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRQbGF0Zm9ybUFwcGxpY2F0aW9uQXR0cmlidXRlc0NvbW1hbmR9XG4gICAqL1xuICBnZXRQbGF0Zm9ybUFwcGxpY2F0aW9uQXR0cmlidXRlcyhcbiAgICBhcmdzOiBHZXRQbGF0Zm9ybUFwcGxpY2F0aW9uQXR0cmlidXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3IsXG4gICAgR2V0UGxhdGZvcm1BcHBsaWNhdGlvbkF0dHJpYnV0ZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIEdldFNNU0F0dHJpYnV0ZXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0U01TQXR0cmlidXRlcyhcbiAgICBhcmdzOiBHZXRTTVNBdHRyaWJ1dGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgVGhyb3R0bGVkRXJyb3IsXG4gICAgR2V0U01TQXR0cmlidXRlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0U01TU2FuZGJveEFjY291bnRTdGF0dXNDb21tYW5kfVxuICAgKi9cbiAgZ2V0U01TU2FuZGJveEFjY291bnRTdGF0dXMoXG4gICAgYXJnczogR2V0U01TU2FuZGJveEFjY291bnRTdGF0dXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIFNka0Vycm9yIHwgQXV0aG9yaXphdGlvbkVycm9yIHwgSW50ZXJuYWxFcnJvciB8IFRocm90dGxlZEVycm9yLFxuICAgIEdldFNNU1NhbmRib3hBY2NvdW50U3RhdHVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBHZXRTdWJzY3JpcHRpb25BdHRyaWJ1dGVzQ29tbWFuZH1cbiAgICovXG4gIGdldFN1YnNjcmlwdGlvbkF0dHJpYnV0ZXMoXG4gICAgYXJnczogR2V0U3Vic2NyaXB0aW9uQXR0cmlidXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3IsXG4gICAgR2V0U3Vic2NyaXB0aW9uQXR0cmlidXRlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgR2V0VG9waWNBdHRyaWJ1dGVzQ29tbWFuZH1cbiAgICovXG4gIGdldFRvcGljQXR0cmlidXRlcyhcbiAgICBhcmdzOiBHZXRUb3BpY0F0dHJpYnV0ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkU2VjdXJpdHlFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvcixcbiAgICBHZXRUb3BpY0F0dHJpYnV0ZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RFbmRwb2ludHNCeVBsYXRmb3JtQXBwbGljYXRpb25Db21tYW5kfVxuICAgKi9cbiAgbGlzdEVuZHBvaW50c0J5UGxhdGZvcm1BcHBsaWNhdGlvbihcbiAgICBhcmdzOiBMaXN0RW5kcG9pbnRzQnlQbGF0Zm9ybUFwcGxpY2F0aW9uQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvcixcbiAgICBMaXN0RW5kcG9pbnRzQnlQbGF0Zm9ybUFwcGxpY2F0aW9uQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0T3JpZ2luYXRpb25OdW1iZXJzQ29tbWFuZH1cbiAgICovXG4gIGxpc3RPcmlnaW5hdGlvbk51bWJlcnMoXG4gICAgYXJnczogTGlzdE9yaWdpbmF0aW9uTnVtYmVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFRocm90dGxlZEVycm9yXG4gICAgfCBWYWxpZGF0aW9uRXJyb3IsXG4gICAgTGlzdE9yaWdpbmF0aW9uTnVtYmVyc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgTGlzdFBob25lTnVtYmVyc09wdGVkT3V0Q29tbWFuZH1cbiAgICovXG4gIGxpc3RQaG9uZU51bWJlcnNPcHRlZE91dChcbiAgICBhcmdzOiBMaXN0UGhvbmVOdW1iZXJzT3B0ZWRPdXRDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBUaHJvdHRsZWRFcnJvcixcbiAgICBMaXN0UGhvbmVOdW1iZXJzT3B0ZWRPdXRDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RQbGF0Zm9ybUFwcGxpY2F0aW9uc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0UGxhdGZvcm1BcHBsaWNhdGlvbnMoXG4gICAgYXJnczogTGlzdFBsYXRmb3JtQXBwbGljYXRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IEF1dGhvcml6YXRpb25FcnJvciB8IEludGVybmFsRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IsXG4gICAgTGlzdFBsYXRmb3JtQXBwbGljYXRpb25zQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBMaXN0U01TU2FuZGJveFBob25lTnVtYmVyc0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U01TU2FuZGJveFBob25lTnVtYmVycyhcbiAgICBhcmdzOiBMaXN0U01TU2FuZGJveFBob25lTnVtYmVyc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IFJlc291cmNlTm90Rm91bmRFcnJvclxuICAgIHwgVGhyb3R0bGVkRXJyb3IsXG4gICAgTGlzdFNNU1NhbmRib3hQaG9uZU51bWJlcnNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTdWJzY3JpcHRpb25zQ29tbWFuZH1cbiAgICovXG4gIGxpc3RTdWJzY3JpcHRpb25zKFxuICAgIGFyZ3M6IExpc3RTdWJzY3JpcHRpb25zQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IEF1dGhvcml6YXRpb25FcnJvciB8IEludGVybmFsRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IsXG4gICAgTGlzdFN1YnNjcmlwdGlvbnNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RTdWJzY3JpcHRpb25zQnlUb3BpY0NvbW1hbmR9XG4gICAqL1xuICBsaXN0U3Vic2NyaXB0aW9uc0J5VG9waWMoXG4gICAgYXJnczogTGlzdFN1YnNjcmlwdGlvbnNCeVRvcGljQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvcixcbiAgICBMaXN0U3Vic2NyaXB0aW9uc0J5VG9waWNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRhZ3NGb3JSZXNvdXJjZShcbiAgICBhcmdzOiBMaXN0VGFnc0ZvclJlc291cmNlQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uRXJyb3JcbiAgICB8IENvbmN1cnJlbnRBY2Nlc3NFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBSZXNvdXJjZU5vdEZvdW5kRXJyb3JcbiAgICB8IFRhZ1BvbGljeUVycm9yLFxuICAgIExpc3RUYWdzRm9yUmVzb3VyY2VDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIExpc3RUb3BpY3NDb21tYW5kfVxuICAgKi9cbiAgbGlzdFRvcGljcyhcbiAgICBhcmdzOiBMaXN0VG9waWNzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICBTZGtFcnJvciB8IEF1dGhvcml6YXRpb25FcnJvciB8IEludGVybmFsRXJyb3IgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3IsXG4gICAgTGlzdFRvcGljc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgT3B0SW5QaG9uZU51bWJlckNvbW1hbmR9XG4gICAqL1xuICBvcHRJblBob25lTnVtYmVyKFxuICAgIGFyZ3M6IE9wdEluUGhvbmVOdW1iZXJDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBUaHJvdHRsZWRFcnJvcixcbiAgICBPcHRJblBob25lTnVtYmVyQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBQdWJsaXNoQ29tbWFuZH1cbiAgICovXG4gIHB1Ymxpc2goXG4gICAgYXJnczogUHVibGlzaENvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkVycm9yXG4gICAgfCBFbmRwb2ludERpc2FibGVkRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgSW52YWxpZFNlY3VyaXR5RXJyb3JcbiAgICB8IEtNU0FjY2Vzc0RlbmllZEVycm9yXG4gICAgfCBLTVNEaXNhYmxlZEVycm9yXG4gICAgfCBLTVNJbnZhbGlkU3RhdGVFcnJvclxuICAgIHwgS01TTm90Rm91bmRFcnJvclxuICAgIHwgS01TT3B0SW5SZXF1aXJlZEVycm9yXG4gICAgfCBLTVNUaHJvdHRsaW5nRXJyb3JcbiAgICB8IE5vdEZvdW5kRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJWYWx1ZUVycm9yXG4gICAgfCBQbGF0Zm9ybUFwcGxpY2F0aW9uRGlzYWJsZWRFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yLFxuICAgIFB1Ymxpc2hDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFB1Ymxpc2hCYXRjaENvbW1hbmR9XG4gICAqL1xuICBwdWJsaXNoQmF0Y2goXG4gICAgYXJnczogUHVibGlzaEJhdGNoQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uRXJyb3JcbiAgICB8IEJhdGNoRW50cnlJZHNOb3REaXN0aW5jdEVycm9yXG4gICAgfCBCYXRjaFJlcXVlc3RUb29Mb25nRXJyb3JcbiAgICB8IEVtcHR5QmF0Y2hSZXF1ZXN0RXJyb3JcbiAgICB8IEVuZHBvaW50RGlzYWJsZWRFcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZEJhdGNoRW50cnlJZEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTZWN1cml0eUVycm9yXG4gICAgfCBLTVNBY2Nlc3NEZW5pZWRFcnJvclxuICAgIHwgS01TRGlzYWJsZWRFcnJvclxuICAgIHwgS01TSW52YWxpZFN0YXRlRXJyb3JcbiAgICB8IEtNU05vdEZvdW5kRXJyb3JcbiAgICB8IEtNU09wdEluUmVxdWlyZWRFcnJvclxuICAgIHwgS01TVGhyb3R0bGluZ0Vycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyVmFsdWVFcnJvclxuICAgIHwgUGxhdGZvcm1BcHBsaWNhdGlvbkRpc2FibGVkRXJyb3JcbiAgICB8IFRvb01hbnlFbnRyaWVzSW5CYXRjaFJlcXVlc3RFcnJvclxuICAgIHwgVmFsaWRhdGlvbkVycm9yLFxuICAgIFB1Ymxpc2hCYXRjaENvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kfVxuICAgKi9cbiAgcHV0RGF0YVByb3RlY3Rpb25Qb2xpY3koXG4gICAgYXJnczogUHV0RGF0YVByb3RlY3Rpb25Qb2xpY3lDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBJbnZhbGlkU2VjdXJpdHlFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvcixcbiAgICBQdXREYXRhUHJvdGVjdGlvblBvbGljeUNvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgUmVtb3ZlUGVybWlzc2lvbkNvbW1hbmR9XG4gICAqL1xuICByZW1vdmVQZXJtaXNzaW9uKFxuICAgIGFyZ3M6IFJlbW92ZVBlcm1pc3Npb25Db21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yLFxuICAgIFJlbW92ZVBlcm1pc3Npb25Db21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNldEVuZHBvaW50QXR0cmlidXRlc0NvbW1hbmR9XG4gICAqL1xuICBzZXRFbmRwb2ludEF0dHJpYnV0ZXMoXG4gICAgYXJnczogU2V0RW5kcG9pbnRBdHRyaWJ1dGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvcixcbiAgICBTZXRFbmRwb2ludEF0dHJpYnV0ZXNDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFNldFBsYXRmb3JtQXBwbGljYXRpb25BdHRyaWJ1dGVzQ29tbWFuZH1cbiAgICovXG4gIHNldFBsYXRmb3JtQXBwbGljYXRpb25BdHRyaWJ1dGVzKFxuICAgIGFyZ3M6IFNldFBsYXRmb3JtQXBwbGljYXRpb25BdHRyaWJ1dGVzQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvcixcbiAgICBTZXRQbGF0Zm9ybUFwcGxpY2F0aW9uQXR0cmlidXRlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU2V0U01TQXR0cmlidXRlc0NvbW1hbmR9XG4gICAqL1xuICBzZXRTTVNBdHRyaWJ1dGVzKFxuICAgIGFyZ3M6IFNldFNNU0F0dHJpYnV0ZXNDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25FcnJvclxuICAgIHwgSW50ZXJuYWxFcnJvclxuICAgIHwgSW52YWxpZFBhcmFtZXRlckVycm9yXG4gICAgfCBUaHJvdHRsZWRFcnJvcixcbiAgICBTZXRTTVNBdHRyaWJ1dGVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTZXRTdWJzY3JpcHRpb25BdHRyaWJ1dGVzQ29tbWFuZH1cbiAgICovXG4gIHNldFN1YnNjcmlwdGlvbkF0dHJpYnV0ZXMoXG4gICAgYXJnczogU2V0U3Vic2NyaXB0aW9uQXR0cmlidXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkVycm9yXG4gICAgfCBGaWx0ZXJQb2xpY3lMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgTm90Rm91bmRFcnJvcixcbiAgICBTZXRTdWJzY3JpcHRpb25BdHRyaWJ1dGVzQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBTZXRUb3BpY0F0dHJpYnV0ZXNDb21tYW5kfVxuICAgKi9cbiAgc2V0VG9waWNBdHRyaWJ1dGVzKFxuICAgIGFyZ3M6IFNldFRvcGljQXR0cmlidXRlc0NvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTZWN1cml0eUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yLFxuICAgIFNldFRvcGljQXR0cmlidXRlc0NvbW1hbmRPdXRwdXRcbiAgPjtcblxuICAvKipcbiAgICogQHNlZSB7QGxpbmsgU3Vic2NyaWJlQ29tbWFuZH1cbiAgICovXG4gIHN1YnNjcmliZShcbiAgICBhcmdzOiBTdWJzY3JpYmVDb21tYW5kSW5wdXQsXG4gICAgb3B0aW9ucz86IF9fSHR0cEhhbmRsZXJPcHRpb25zLFxuICApOiBFZmZlY3QuRWZmZWN0PFxuICAgIG5ldmVyLFxuICAgIHwgU2RrRXJyb3JcbiAgICB8IEF1dGhvcml6YXRpb25FcnJvclxuICAgIHwgRmlsdGVyUG9saWN5TGltaXRFeGNlZWRlZEVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTZWN1cml0eUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yXG4gICAgfCBTdWJzY3JpcHRpb25MaW1pdEV4Y2VlZGVkRXJyb3IsXG4gICAgU3Vic2NyaWJlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBUYWdSZXNvdXJjZUNvbW1hbmR9XG4gICAqL1xuICB0YWdSZXNvdXJjZShcbiAgICBhcmdzOiBUYWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkVycm9yXG4gICAgfCBDb25jdXJyZW50QWNjZXNzRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTdGFsZVRhZ0Vycm9yXG4gICAgfCBUYWdMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRhZ1BvbGljeUVycm9yLFxuICAgIFRhZ1Jlc291cmNlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnN1YnNjcmliZUNvbW1hbmR9XG4gICAqL1xuICB1bnN1YnNjcmliZShcbiAgICBhcmdzOiBVbnN1YnNjcmliZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkVycm9yXG4gICAgfCBJbnRlcm5hbEVycm9yXG4gICAgfCBJbnZhbGlkUGFyYW1ldGVyRXJyb3JcbiAgICB8IEludmFsaWRTZWN1cml0eUVycm9yXG4gICAgfCBOb3RGb3VuZEVycm9yLFxuICAgIFVuc3Vic2NyaWJlQ29tbWFuZE91dHB1dFxuICA+O1xuXG4gIC8qKlxuICAgKiBAc2VlIHtAbGluayBVbnRhZ1Jlc291cmNlQ29tbWFuZH1cbiAgICovXG4gIHVudGFnUmVzb3VyY2UoXG4gICAgYXJnczogVW50YWdSZXNvdXJjZUNvbW1hbmRJbnB1dCxcbiAgICBvcHRpb25zPzogX19IdHRwSGFuZGxlck9wdGlvbnMsXG4gICk6IEVmZmVjdC5FZmZlY3Q8XG4gICAgbmV2ZXIsXG4gICAgfCBTZGtFcnJvclxuICAgIHwgQXV0aG9yaXphdGlvbkVycm9yXG4gICAgfCBDb25jdXJyZW50QWNjZXNzRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBTdGFsZVRhZ0Vycm9yXG4gICAgfCBUYWdMaW1pdEV4Y2VlZGVkRXJyb3JcbiAgICB8IFRhZ1BvbGljeUVycm9yLFxuICAgIFVudGFnUmVzb3VyY2VDb21tYW5kT3V0cHV0XG4gID47XG5cbiAgLyoqXG4gICAqIEBzZWUge0BsaW5rIFZlcmlmeVNNU1NhbmRib3hQaG9uZU51bWJlckNvbW1hbmR9XG4gICAqL1xuICB2ZXJpZnlTTVNTYW5kYm94UGhvbmVOdW1iZXIoXG4gICAgYXJnczogVmVyaWZ5U01TU2FuZGJveFBob25lTnVtYmVyQ29tbWFuZElucHV0LFxuICAgIG9wdGlvbnM/OiBfX0h0dHBIYW5kbGVyT3B0aW9ucyxcbiAgKTogRWZmZWN0LkVmZmVjdDxcbiAgICBuZXZlcixcbiAgICB8IFNka0Vycm9yXG4gICAgfCBBdXRob3JpemF0aW9uRXJyb3JcbiAgICB8IEludGVybmFsRXJyb3JcbiAgICB8IEludmFsaWRQYXJhbWV0ZXJFcnJvclxuICAgIHwgUmVzb3VyY2VOb3RGb3VuZEVycm9yXG4gICAgfCBUaHJvdHRsZWRFcnJvclxuICAgIHwgVmVyaWZpY2F0aW9uRXJyb3IsXG4gICAgVmVyaWZ5U01TU2FuZGJveFBob25lTnVtYmVyQ29tbWFuZE91dHB1dFxuICA+O1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGNvbnN0IFNOU1NlcnZpY2UgPSBDb250ZXh0LlRhZzxTTlNTZXJ2aWNlPihcbiAgU3ltYm9sLmZvcihcIkBlZmZlY3QtYXdzL2NsaWVudC1zbnMvU05TU2VydmljZVwiKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgY29uc3RydWN0b3JzXG4gKi9cbmV4cG9ydCBjb25zdCBtYWtlU05TU2VydmljZSA9IEVmZmVjdC5nZW4oZnVuY3Rpb24qIChfKSB7XG4gIGNvbnN0IGNsaWVudCA9IHlpZWxkKiBfKFNOU0NsaWVudEluc3RhbmNlKTtcblxuICByZXR1cm4gUmVhZG9ubHlSZWNvcmQudG9FbnRyaWVzKGNvbW1hbmRzKS5yZWR1Y2UoKGFjYywgW2NvbW1hbmRdKSA9PiB7XG4gICAgY29uc3QgQ29tbWFuZEN0b3IgPSBjb21tYW5kc1tjb21tYW5kXSBhcyBhbnk7XG4gICAgY29uc3QgbWV0aG9kSW1wbCA9IChhcmdzOiBhbnksIG9wdGlvbnM6IGFueSkgPT5cbiAgICAgIEVmZmVjdC50cnlQcm9taXNlKHtcbiAgICAgICAgdHJ5OiAoKSA9PiBjbGllbnQuc2VuZChuZXcgQ29tbWFuZEN0b3IoYXJncyksIG9wdGlvbnMgPz8ge30pLFxuICAgICAgICBjYXRjaDogKGUpID0+IHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFNOU1NlcnZpY2VFeGNlcHRpb24pIHtcbiAgICAgICAgICAgIGNvbnN0IFNlcnZpY2VFeGNlcHRpb24gPSBEYXRhLnRhZ2dlZDxcbiAgICAgICAgICAgICAgVGFnZ2VkRXhjZXB0aW9uPFNOU1NlcnZpY2VFeGNlcHRpb24+XG4gICAgICAgICAgICA+KGUubmFtZSk7XG5cbiAgICAgICAgICAgIHJldHVybiBTZXJ2aWNlRXhjZXB0aW9uKHtcbiAgICAgICAgICAgICAgLi4uZSxcbiAgICAgICAgICAgICAgbWVzc2FnZTogZS5tZXNzYWdlLFxuICAgICAgICAgICAgICBzdGFjazogZS5zdGFjayxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gU2RrRXJyb3Ioe1xuICAgICAgICAgICAgICAuLi5lLFxuICAgICAgICAgICAgICBuYW1lOiBcIlNka0Vycm9yXCIsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IGUubWVzc2FnZSxcbiAgICAgICAgICAgICAgc3RhY2s6IGUuc3RhY2ssXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIGNvbnN0IG1ldGhvZE5hbWUgPSAoY29tbWFuZFswXS50b0xvd2VyQ2FzZSgpICsgY29tbWFuZC5zbGljZSgxKSkucmVwbGFjZShcbiAgICAgIC9Db21tYW5kJC8sXG4gICAgICBcIlwiLFxuICAgICk7XG4gICAgcmV0dXJuIHsgLi4uYWNjLCBbbWV0aG9kTmFtZV06IG1ldGhvZEltcGwgfTtcbiAgfSwge30pIGFzIFNOU1NlcnZpY2U7XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IEJhc2VTTlNTZXJ2aWNlTGF5ZXIgPSBMYXllci5lZmZlY3QoU05TU2VydmljZSwgbWFrZVNOU1NlcnZpY2UpO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGxheWVyc1xuICovXG5leHBvcnQgY29uc3QgU05TU2VydmljZUxheWVyID0gQmFzZVNOU1NlcnZpY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKFNOU0NsaWVudEluc3RhbmNlTGF5ZXIpLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRTTlNTZXJ2aWNlTGF5ZXIgPSBTTlNTZXJ2aWNlTGF5ZXIucGlwZShcbiAgTGF5ZXIucHJvdmlkZShEZWZhdWx0U05TQ2xpZW50Q29uZmlnTGF5ZXIpLFxuKTtcblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGFuZ2VyIFpvbmUgLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLyoqXG4gKiBAc2luY2UgMC4xLjBcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBjb25zdCBCYXNlU05TU2VydmljZUVmZmVjdCA9IG1ha2VTTlNTZXJ2aWNlO1xuXG4vKipcbiAqIEBzaW5jZSAwLjEuMFxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGNvbnN0IFNOU1NlcnZpY2VFZmZlY3QgPSBCYXNlU05TU2VydmljZUVmZmVjdC5waXBlKFxuICBFZmZlY3QucHJvdmlkZShTTlNDbGllbnRJbnN0YW5jZUxheWVyKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDAuMS4wXG4gKiBAZGVwcmVjYXRlZFxuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdFNOU1NlcnZpY2VFZmZlY3QgPSBCYXNlU05TU2VydmljZUVmZmVjdC5waXBlKFxuICBFZmZlY3QucHJvdmlkZShEZWZhdWx0U05TQ2xpZW50SW5zdGFuY2VMYXllciksXG4pO1xuIl19
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import { SNSClient } from "@aws-sdk/client-sns";
5
+ import * as Context from "effect/Context";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Layer from "effect/Layer";
8
+ import { DefaultSNSClientConfigLayer, SNSClientInstanceConfig, } from "./SNSClientInstanceConfig";
9
+ /**
10
+ * @since 1.0.0
11
+ * @category tags
12
+ */
13
+ export const SNSClientInstance = Context.Tag(Symbol.for("@effect-aws/client-sns/SNSClientInstance"));
14
+ /**
15
+ * @since 1.0.0
16
+ * @category constructors
17
+ */
18
+ export const makeSNSClientInstance = Effect.map(SNSClientInstanceConfig, (config) => new SNSClient(config));
19
+ /**
20
+ * @since 1.0.0
21
+ * @category layers
22
+ */
23
+ export const SNSClientInstanceLayer = Layer.effect(SNSClientInstance, makeSNSClientInstance);
24
+ /**
25
+ * @since 1.0.0
26
+ * @category layers
27
+ */
28
+ export const DefaultSNSClientInstanceLayer = SNSClientInstanceLayer.pipe(Layer.provide(DefaultSNSClientConfigLayer));
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU05TQ2xpZW50SW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU05TQ2xpZW50SW5zdGFuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEVBQ0wsMkJBQTJCLEVBQzNCLHVCQUF1QixHQUN4QixNQUFNLDJCQUEyQixDQUFDO0FBVW5DOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQzFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsMENBQTBDLENBQUMsQ0FDdkQsQ0FBQztBQUVGOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQzdDLHVCQUF1QixFQUN2QixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLENBQ2xDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUNoRCxpQkFBaUIsRUFDakIscUJBQXFCLENBQ3RCLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQ3RFLEtBQUssQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKi9cbmltcG9ydCB7IFNOU0NsaWVudCB9IGZyb20gXCJAYXdzLXNkay9jbGllbnQtc25zXCI7XG5pbXBvcnQgKiBhcyBDb250ZXh0IGZyb20gXCJlZmZlY3QvQ29udGV4dFwiO1xuaW1wb3J0ICogYXMgRWZmZWN0IGZyb20gXCJlZmZlY3QvRWZmZWN0XCI7XG5pbXBvcnQgKiBhcyBMYXllciBmcm9tIFwiZWZmZWN0L0xheWVyXCI7XG5pbXBvcnQge1xuICBEZWZhdWx0U05TQ2xpZW50Q29uZmlnTGF5ZXIsXG4gIFNOU0NsaWVudEluc3RhbmNlQ29uZmlnLFxufSBmcm9tIFwiLi9TTlNDbGllbnRJbnN0YW5jZUNvbmZpZ1wiO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTTlNDbGllbnRJbnN0YW5jZSB7XG4gIHJlYWRvbmx5IF86IHVuaXF1ZSBzeW1ib2w7XG59XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgdGFnc1xuICovXG5leHBvcnQgY29uc3QgU05TQ2xpZW50SW5zdGFuY2UgPSBDb250ZXh0LlRhZzxTTlNDbGllbnRJbnN0YW5jZSwgU05TQ2xpZW50PihcbiAgU3ltYm9sLmZvcihcIkBlZmZlY3QtYXdzL2NsaWVudC1zbnMvU05TQ2xpZW50SW5zdGFuY2VcIiksXG4pO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZVNOU0NsaWVudEluc3RhbmNlID0gRWZmZWN0Lm1hcChcbiAgU05TQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIChjb25maWcpID0+IG5ldyBTTlNDbGllbnQoY29uZmlnKSxcbik7XG5cbi8qKlxuICogQHNpbmNlIDEuMC4wXG4gKiBAY2F0ZWdvcnkgbGF5ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBTTlNDbGllbnRJbnN0YW5jZUxheWVyID0gTGF5ZXIuZWZmZWN0KFxuICBTTlNDbGllbnRJbnN0YW5jZSxcbiAgbWFrZVNOU0NsaWVudEluc3RhbmNlLFxuKTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRTTlNDbGllbnRJbnN0YW5jZUxheWVyID0gU05TQ2xpZW50SW5zdGFuY2VMYXllci5waXBlKFxuICBMYXllci5wcm92aWRlKERlZmF1bHRTTlNDbGllbnRDb25maWdMYXllciksXG4pO1xuIl19
@@ -0,0 +1,32 @@
1
+ import * as Context from "effect/Context";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import * as Runtime from "effect/Runtime";
5
+ /**
6
+ * @since 1.0.0
7
+ * @category tags
8
+ */
9
+ export const SNSClientInstanceConfig = Context.Tag(Symbol.for("@effect-aws/client-sns/SNSClientInstanceConfig"));
10
+ /**
11
+ * @since 1.0.0
12
+ * @category constructors
13
+ */
14
+ export const makeDefaultSNSClientInstanceConfig = Effect.gen(function* (_) {
15
+ const runtime = yield* _(Effect.runtime());
16
+ const runSync = Runtime.runSync(runtime);
17
+ return {
18
+ logger: {
19
+ info: (m) => Effect.logInfo(m).pipe(runSync),
20
+ warn: (m) => Effect.logWarning(m).pipe(runSync),
21
+ error: (m) => Effect.logError(m).pipe(runSync),
22
+ debug: (m) => Effect.logDebug(m).pipe(runSync),
23
+ trace: (m) => Effect.logTrace(m).pipe(runSync),
24
+ },
25
+ };
26
+ });
27
+ /**
28
+ * @since 1.0.0
29
+ * @category layers
30
+ */
31
+ export const DefaultSNSClientConfigLayer = Layer.effect(SNSClientInstanceConfig, makeDefaultSNSClientInstanceConfig);
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU05TQ2xpZW50SW5zdGFuY2VDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvU05TQ2xpZW50SW5zdGFuY2VDb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQUssS0FBSyxNQUFNLGNBQWMsQ0FBQztBQUN0QyxPQUFPLEtBQUssT0FBTyxNQUFNLGdCQUFnQixDQUFDO0FBVTFDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBR2hELE1BQU0sQ0FBQyxHQUFHLENBQUMsZ0RBQWdELENBQUMsQ0FBQyxDQUFDO0FBRWhFOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUkzQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7SUFDekIsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQVMsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFekMsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzVDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQy9DLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzlDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBQzlDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1NBQy9DO0tBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FDckQsdUJBQXVCLEVBQ3ZCLGtDQUFrQyxDQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqL1xuaW1wb3J0IHR5cGUgeyBTTlNDbGllbnRDb25maWcgfSBmcm9tIFwiQGF3cy1zZGsvY2xpZW50LXNuc1wiO1xuaW1wb3J0ICogYXMgQ29udGV4dCBmcm9tIFwiZWZmZWN0L0NvbnRleHRcIjtcbmltcG9ydCAqIGFzIEVmZmVjdCBmcm9tIFwiZWZmZWN0L0VmZmVjdFwiO1xuaW1wb3J0ICogYXMgTGF5ZXIgZnJvbSBcImVmZmVjdC9MYXllclwiO1xuaW1wb3J0ICogYXMgUnVudGltZSBmcm9tIFwiZWZmZWN0L1J1bnRpbWVcIjtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSB0YWdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU05TQ2xpZW50SW5zdGFuY2VDb25maWcge1xuICByZWFkb25seSBfOiB1bmlxdWUgc3ltYm9sO1xufVxuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IHRhZ3NcbiAqL1xuZXhwb3J0IGNvbnN0IFNOU0NsaWVudEluc3RhbmNlQ29uZmlnID0gQ29udGV4dC5UYWc8XG4gIFNOU0NsaWVudEluc3RhbmNlQ29uZmlnLFxuICBTTlNDbGllbnRDb25maWdcbj4oU3ltYm9sLmZvcihcIkBlZmZlY3QtYXdzL2NsaWVudC1zbnMvU05TQ2xpZW50SW5zdGFuY2VDb25maWdcIikpO1xuXG4vKipcbiAqIEBzaW5jZSAxLjAuMFxuICogQGNhdGVnb3J5IGNvbnN0cnVjdG9yc1xuICovXG5leHBvcnQgY29uc3QgbWFrZURlZmF1bHRTTlNDbGllbnRJbnN0YW5jZUNvbmZpZzogRWZmZWN0LkVmZmVjdDxcbiAgbmV2ZXIsXG4gIG5ldmVyLFxuICBTTlNDbGllbnRDb25maWdcbj4gPSBFZmZlY3QuZ2VuKGZ1bmN0aW9uKiAoXykge1xuICBjb25zdCBydW50aW1lID0geWllbGQqIF8oRWZmZWN0LnJ1bnRpbWU8bmV2ZXI+KCkpO1xuICBjb25zdCBydW5TeW5jID0gUnVudGltZS5ydW5TeW5jKHJ1bnRpbWUpO1xuXG4gIHJldHVybiB7XG4gICAgbG9nZ2VyOiB7XG4gICAgICBpbmZvOiAobSkgPT4gRWZmZWN0LmxvZ0luZm8obSkucGlwZShydW5TeW5jKSxcbiAgICAgIHdhcm46IChtKSA9PiBFZmZlY3QubG9nV2FybmluZyhtKS5waXBlKHJ1blN5bmMpLFxuICAgICAgZXJyb3I6IChtKSA9PiBFZmZlY3QubG9nRXJyb3IobSkucGlwZShydW5TeW5jKSxcbiAgICAgIGRlYnVnOiAobSkgPT4gRWZmZWN0LmxvZ0RlYnVnKG0pLnBpcGUocnVuU3luYyksXG4gICAgICB0cmFjZTogKG0pID0+IEVmZmVjdC5sb2dUcmFjZShtKS5waXBlKHJ1blN5bmMpLFxuICAgIH0sXG4gIH07XG59KTtcblxuLyoqXG4gKiBAc2luY2UgMS4wLjBcbiAqIEBjYXRlZ29yeSBsYXllcnNcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRTTlNDbGllbnRDb25maWdMYXllciA9IExheWVyLmVmZmVjdChcbiAgU05TQ2xpZW50SW5zdGFuY2VDb25maWcsXG4gIG1ha2VEZWZhdWx0U05TQ2xpZW50SW5zdGFuY2VDb25maWcsXG4pO1xuIl19