@aws-sdk/client-deadline 3.1068.0 → 3.1070.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cjs/auth/httpAuthSchemeProvider.js +9 -15
- package/dist-cjs/endpoint/bdd.js +2 -5
- package/dist-cjs/endpoint/endpointResolver.js +7 -11
- package/dist-cjs/index.js +537 -557
- package/dist-cjs/models/DeadlineServiceException.js +4 -8
- package/dist-cjs/models/errors.js +15 -25
- package/dist-cjs/runtimeConfig.browser.js +22 -26
- package/dist-cjs/runtimeConfig.js +30 -34
- package/dist-cjs/runtimeConfig.native.js +4 -7
- package/dist-cjs/runtimeConfig.shared.js +20 -24
- package/dist-cjs/schemas/schemas_0.js +1141 -730
- package/package.json +8 -8
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.DeadlineServiceException =
|
|
4
|
-
const client_1 = require("@smithy/core/client");
|
|
5
|
-
Object.defineProperty(exports, "__ServiceException", { enumerable: true, get: function () { return client_1.ServiceException; } });
|
|
6
|
-
class DeadlineServiceException extends client_1.ServiceException {
|
|
1
|
+
const { ServiceException: __ServiceException } = require("@smithy/core/client");
|
|
2
|
+
exports.__ServiceException = __ServiceException;
|
|
3
|
+
exports.DeadlineServiceException = class DeadlineServiceException extends __ServiceException {
|
|
7
4
|
constructor(options) {
|
|
8
5
|
super(options);
|
|
9
6
|
Object.setPrototypeOf(this, DeadlineServiceException.prototype);
|
|
10
7
|
}
|
|
11
|
-
}
|
|
12
|
-
exports.DeadlineServiceException = DeadlineServiceException;
|
|
8
|
+
};
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.ConflictException = exports.ValidationException = exports.ThrottlingException = exports.ServiceQuotaExceededException = exports.ResourceNotFoundException = exports.InternalServerErrorException = exports.AccessDeniedException = void 0;
|
|
4
|
-
const DeadlineServiceException_1 = require("./DeadlineServiceException");
|
|
5
|
-
class AccessDeniedException extends DeadlineServiceException_1.DeadlineServiceException {
|
|
1
|
+
const { DeadlineServiceException: __BaseException } = require("./DeadlineServiceException");
|
|
2
|
+
exports.AccessDeniedException = class AccessDeniedException extends __BaseException {
|
|
6
3
|
name = "AccessDeniedException";
|
|
7
4
|
$fault = "client";
|
|
8
5
|
context;
|
|
@@ -15,9 +12,8 @@ class AccessDeniedException extends DeadlineServiceException_1.DeadlineServiceEx
|
|
|
15
12
|
Object.setPrototypeOf(this, AccessDeniedException.prototype);
|
|
16
13
|
this.context = opts.context;
|
|
17
14
|
}
|
|
18
|
-
}
|
|
19
|
-
exports.
|
|
20
|
-
class InternalServerErrorException extends DeadlineServiceException_1.DeadlineServiceException {
|
|
15
|
+
};
|
|
16
|
+
exports.InternalServerErrorException = class InternalServerErrorException extends __BaseException {
|
|
21
17
|
name = "InternalServerErrorException";
|
|
22
18
|
$fault = "server";
|
|
23
19
|
$retryable = {};
|
|
@@ -31,9 +27,8 @@ class InternalServerErrorException extends DeadlineServiceException_1.DeadlineSe
|
|
|
31
27
|
Object.setPrototypeOf(this, InternalServerErrorException.prototype);
|
|
32
28
|
this.retryAfterSeconds = opts.retryAfterSeconds;
|
|
33
29
|
}
|
|
34
|
-
}
|
|
35
|
-
exports.
|
|
36
|
-
class ResourceNotFoundException extends DeadlineServiceException_1.DeadlineServiceException {
|
|
30
|
+
};
|
|
31
|
+
exports.ResourceNotFoundException = class ResourceNotFoundException extends __BaseException {
|
|
37
32
|
name = "ResourceNotFoundException";
|
|
38
33
|
$fault = "client";
|
|
39
34
|
resourceId;
|
|
@@ -50,9 +45,8 @@ class ResourceNotFoundException extends DeadlineServiceException_1.DeadlineServi
|
|
|
50
45
|
this.resourceType = opts.resourceType;
|
|
51
46
|
this.context = opts.context;
|
|
52
47
|
}
|
|
53
|
-
}
|
|
54
|
-
exports.
|
|
55
|
-
class ServiceQuotaExceededException extends DeadlineServiceException_1.DeadlineServiceException {
|
|
48
|
+
};
|
|
49
|
+
exports.ServiceQuotaExceededException = class ServiceQuotaExceededException extends __BaseException {
|
|
56
50
|
name = "ServiceQuotaExceededException";
|
|
57
51
|
$fault = "client";
|
|
58
52
|
reason;
|
|
@@ -75,9 +69,8 @@ class ServiceQuotaExceededException extends DeadlineServiceException_1.DeadlineS
|
|
|
75
69
|
this.resourceId = opts.resourceId;
|
|
76
70
|
this.context = opts.context;
|
|
77
71
|
}
|
|
78
|
-
}
|
|
79
|
-
exports.
|
|
80
|
-
class ThrottlingException extends DeadlineServiceException_1.DeadlineServiceException {
|
|
72
|
+
};
|
|
73
|
+
exports.ThrottlingException = class ThrottlingException extends __BaseException {
|
|
81
74
|
name = "ThrottlingException";
|
|
82
75
|
$fault = "client";
|
|
83
76
|
$retryable = {
|
|
@@ -99,9 +92,8 @@ class ThrottlingException extends DeadlineServiceException_1.DeadlineServiceExce
|
|
|
99
92
|
this.retryAfterSeconds = opts.retryAfterSeconds;
|
|
100
93
|
this.context = opts.context;
|
|
101
94
|
}
|
|
102
|
-
}
|
|
103
|
-
exports.
|
|
104
|
-
class ValidationException extends DeadlineServiceException_1.DeadlineServiceException {
|
|
95
|
+
};
|
|
96
|
+
exports.ValidationException = class ValidationException extends __BaseException {
|
|
105
97
|
name = "ValidationException";
|
|
106
98
|
$fault = "client";
|
|
107
99
|
reason;
|
|
@@ -118,9 +110,8 @@ class ValidationException extends DeadlineServiceException_1.DeadlineServiceExce
|
|
|
118
110
|
this.fieldList = opts.fieldList;
|
|
119
111
|
this.context = opts.context;
|
|
120
112
|
}
|
|
121
|
-
}
|
|
122
|
-
exports.
|
|
123
|
-
class ConflictException extends DeadlineServiceException_1.DeadlineServiceException {
|
|
113
|
+
};
|
|
114
|
+
exports.ConflictException = class ConflictException extends __BaseException {
|
|
124
115
|
name = "ConflictException";
|
|
125
116
|
$fault = "client";
|
|
126
117
|
reason;
|
|
@@ -139,5 +130,4 @@ class ConflictException extends DeadlineServiceException_1.DeadlineServiceExcept
|
|
|
139
130
|
this.resourceType = opts.resourceType;
|
|
140
131
|
this.context = opts.context;
|
|
141
132
|
}
|
|
142
|
-
}
|
|
143
|
-
exports.ConflictException = ConflictException;
|
|
133
|
+
};
|
|
@@ -1,36 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const retry_1 = require("@smithy/core/retry");
|
|
11
|
-
const serde_1 = require("@smithy/core/serde");
|
|
12
|
-
const fetch_http_handler_1 = require("@smithy/fetch-http-handler");
|
|
13
|
-
const runtimeConfig_shared_1 = require("./runtimeConfig.shared");
|
|
1
|
+
const packageInfo = require("../package.json");
|
|
2
|
+
const { Sha256 } = require("@aws-crypto/sha256-browser");
|
|
3
|
+
const { createDefaultUserAgentProvider } = require("@aws-sdk/core/client");
|
|
4
|
+
const { invalidProvider, loadConfigsForDefaultMode } = require("@smithy/core/client");
|
|
5
|
+
const { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT, resolveDefaultsModeConfig } = require("@smithy/core/config");
|
|
6
|
+
const { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } = require("@smithy/core/retry");
|
|
7
|
+
const { calculateBodyLength } = require("@smithy/core/serde");
|
|
8
|
+
const { FetchHttpHandler: RequestHandler, streamCollector } = require("@smithy/fetch-http-handler");
|
|
9
|
+
const { getRuntimeConfig: getSharedRuntimeConfig } = require("./runtimeConfig.shared");
|
|
14
10
|
const getRuntimeConfig = (config) => {
|
|
15
|
-
const defaultsMode =
|
|
16
|
-
const defaultConfigProvider = () => defaultsMode().then(
|
|
17
|
-
const clientSharedValues = (
|
|
11
|
+
const defaultsMode = resolveDefaultsModeConfig(config);
|
|
12
|
+
const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);
|
|
13
|
+
const clientSharedValues = getSharedRuntimeConfig(config);
|
|
18
14
|
return {
|
|
19
15
|
...clientSharedValues,
|
|
20
16
|
...config,
|
|
21
17
|
runtime: "browser",
|
|
22
18
|
defaultsMode,
|
|
23
|
-
bodyLengthChecker: config?.bodyLengthChecker ??
|
|
19
|
+
bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,
|
|
24
20
|
credentialDefaultProvider: config?.credentialDefaultProvider ?? ((_) => () => Promise.reject(new Error("Credential is missing"))),
|
|
25
|
-
defaultUserAgentProvider: config?.defaultUserAgentProvider ??
|
|
26
|
-
maxAttempts: config?.maxAttempts ??
|
|
27
|
-
region: config?.region ??
|
|
28
|
-
requestHandler:
|
|
29
|
-
retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode ||
|
|
30
|
-
sha256: config?.sha256 ??
|
|
31
|
-
streamCollector: config?.streamCollector ??
|
|
32
|
-
useDualstackEndpoint: config?.useDualstackEndpoint ?? (() => Promise.resolve(
|
|
33
|
-
useFipsEndpoint: config?.useFipsEndpoint ?? (() => Promise.resolve(
|
|
21
|
+
defaultUserAgentProvider: config?.defaultUserAgentProvider ?? createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),
|
|
22
|
+
maxAttempts: config?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS,
|
|
23
|
+
region: config?.region ?? invalidProvider("Region is missing"),
|
|
24
|
+
requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider),
|
|
25
|
+
retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE),
|
|
26
|
+
sha256: config?.sha256 ?? Sha256,
|
|
27
|
+
streamCollector: config?.streamCollector ?? streamCollector,
|
|
28
|
+
useDualstackEndpoint: config?.useDualstackEndpoint ?? (() => Promise.resolve(DEFAULT_USE_DUALSTACK_ENDPOINT)),
|
|
29
|
+
useFipsEndpoint: config?.useFipsEndpoint ?? (() => Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT)),
|
|
34
30
|
};
|
|
35
31
|
};
|
|
36
32
|
exports.getRuntimeConfig = getRuntimeConfig;
|
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const retry_1 = require("@smithy/core/retry");
|
|
12
|
-
const serde_1 = require("@smithy/core/serde");
|
|
13
|
-
const node_http_handler_1 = require("@smithy/node-http-handler");
|
|
14
|
-
const runtimeConfig_shared_1 = require("./runtimeConfig.shared");
|
|
1
|
+
const packageInfo = require("../package.json");
|
|
2
|
+
const { createDefaultUserAgentProvider, emitWarningIfUnsupportedVersion: awsCheckVersion, NODE_APP_ID_CONFIG_OPTIONS } = require("@aws-sdk/core/client");
|
|
3
|
+
const { NODE_AUTH_SCHEME_PREFERENCE_OPTIONS } = require("@aws-sdk/core/httpAuthSchemes");
|
|
4
|
+
const { defaultProvider: credentialDefaultProvider } = require("@aws-sdk/credential-provider-node");
|
|
5
|
+
const { emitWarningIfUnsupportedVersion, loadConfigsForDefaultMode } = require("@smithy/core/client");
|
|
6
|
+
const { loadConfig: loadNodeConfig, NODE_REGION_CONFIG_FILE_OPTIONS, NODE_REGION_CONFIG_OPTIONS, NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, resolveDefaultsModeConfig } = require("@smithy/core/config");
|
|
7
|
+
const { DEFAULT_RETRY_MODE, NODE_MAX_ATTEMPT_CONFIG_OPTIONS, NODE_RETRY_MODE_CONFIG_OPTIONS } = require("@smithy/core/retry");
|
|
8
|
+
const { calculateBodyLength, Hash } = require("@smithy/core/serde");
|
|
9
|
+
const { NodeHttpHandler: RequestHandler, streamCollector } = require("@smithy/node-http-handler");
|
|
10
|
+
const { getRuntimeConfig: getSharedRuntimeConfig } = require("./runtimeConfig.shared");
|
|
15
11
|
const getRuntimeConfig = (config) => {
|
|
16
|
-
|
|
17
|
-
const defaultsMode =
|
|
18
|
-
const defaultConfigProvider = () => defaultsMode().then(
|
|
19
|
-
const clientSharedValues = (
|
|
20
|
-
(
|
|
12
|
+
emitWarningIfUnsupportedVersion(process.version);
|
|
13
|
+
const defaultsMode = resolveDefaultsModeConfig(config);
|
|
14
|
+
const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);
|
|
15
|
+
const clientSharedValues = getSharedRuntimeConfig(config);
|
|
16
|
+
awsCheckVersion(process.version);
|
|
21
17
|
const loaderConfig = {
|
|
22
18
|
profile: config?.profile,
|
|
23
19
|
logger: clientSharedValues.logger,
|
|
@@ -27,23 +23,23 @@ const getRuntimeConfig = (config) => {
|
|
|
27
23
|
...config,
|
|
28
24
|
runtime: "node",
|
|
29
25
|
defaultsMode,
|
|
30
|
-
authSchemePreference: config?.authSchemePreference ?? (
|
|
31
|
-
bodyLengthChecker: config?.bodyLengthChecker ??
|
|
32
|
-
credentialDefaultProvider: config?.credentialDefaultProvider ??
|
|
33
|
-
defaultUserAgentProvider: config?.defaultUserAgentProvider ??
|
|
34
|
-
maxAttempts: config?.maxAttempts ?? (
|
|
35
|
-
region: config?.region ?? (
|
|
36
|
-
requestHandler:
|
|
26
|
+
authSchemePreference: config?.authSchemePreference ?? loadNodeConfig(NODE_AUTH_SCHEME_PREFERENCE_OPTIONS, loaderConfig),
|
|
27
|
+
bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,
|
|
28
|
+
credentialDefaultProvider: config?.credentialDefaultProvider ?? credentialDefaultProvider,
|
|
29
|
+
defaultUserAgentProvider: config?.defaultUserAgentProvider ?? createDefaultUserAgentProvider({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),
|
|
30
|
+
maxAttempts: config?.maxAttempts ?? loadNodeConfig(NODE_MAX_ATTEMPT_CONFIG_OPTIONS, config),
|
|
31
|
+
region: config?.region ?? loadNodeConfig(NODE_REGION_CONFIG_OPTIONS, { ...NODE_REGION_CONFIG_FILE_OPTIONS, ...loaderConfig }),
|
|
32
|
+
requestHandler: RequestHandler.create(config?.requestHandler ?? defaultConfigProvider),
|
|
37
33
|
retryMode: config?.retryMode ??
|
|
38
|
-
(
|
|
39
|
-
...
|
|
40
|
-
default: async () => (await defaultConfigProvider()).retryMode ||
|
|
34
|
+
loadNodeConfig({
|
|
35
|
+
...NODE_RETRY_MODE_CONFIG_OPTIONS,
|
|
36
|
+
default: async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE,
|
|
41
37
|
}, config),
|
|
42
|
-
sha256: config?.sha256 ??
|
|
43
|
-
streamCollector: config?.streamCollector ??
|
|
44
|
-
useDualstackEndpoint: config?.useDualstackEndpoint ?? (
|
|
45
|
-
useFipsEndpoint: config?.useFipsEndpoint ?? (
|
|
46
|
-
userAgentAppId: config?.userAgentAppId ?? (
|
|
38
|
+
sha256: config?.sha256 ?? Hash.bind(null, "sha256"),
|
|
39
|
+
streamCollector: config?.streamCollector ?? streamCollector,
|
|
40
|
+
useDualstackEndpoint: config?.useDualstackEndpoint ?? loadNodeConfig(NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS, loaderConfig),
|
|
41
|
+
useFipsEndpoint: config?.useFipsEndpoint ?? loadNodeConfig(NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS, loaderConfig),
|
|
42
|
+
userAgentAppId: config?.userAgentAppId ?? loadNodeConfig(NODE_APP_ID_CONFIG_OPTIONS, loaderConfig),
|
|
47
43
|
};
|
|
48
44
|
};
|
|
49
45
|
exports.getRuntimeConfig = getRuntimeConfig;
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getRuntimeConfig = void 0;
|
|
4
|
-
const sha256_js_1 = require("@aws-crypto/sha256-js");
|
|
5
|
-
const runtimeConfig_browser_1 = require("./runtimeConfig.browser");
|
|
1
|
+
const { Sha256 } = require("@aws-crypto/sha256-js");
|
|
2
|
+
const { getRuntimeConfig: getBrowserRuntimeConfig } = require("./runtimeConfig.browser");
|
|
6
3
|
const getRuntimeConfig = (config) => {
|
|
7
|
-
const browserDefaults = (
|
|
4
|
+
const browserDefaults = getBrowserRuntimeConfig(config);
|
|
8
5
|
return {
|
|
9
6
|
...browserDefaults,
|
|
10
7
|
...config,
|
|
11
8
|
runtime: "react-native",
|
|
12
|
-
sha256: config?.sha256 ??
|
|
9
|
+
sha256: config?.sha256 ?? Sha256,
|
|
13
10
|
};
|
|
14
11
|
};
|
|
15
12
|
exports.getRuntimeConfig = getRuntimeConfig;
|
|
@@ -1,42 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
const endpointResolver_1 = require("./endpoint/endpointResolver");
|
|
11
|
-
const schemas_0_1 = require("./schemas/schemas_0");
|
|
12
|
-
const getRuntimeConfig = (config) => {
|
|
1
|
+
const { AwsSdkSigV4Signer } = require("@aws-sdk/core/httpAuthSchemes");
|
|
2
|
+
const { AwsRestJsonProtocol } = require("@aws-sdk/core/protocols");
|
|
3
|
+
const { NoOpLogger } = require("@smithy/core/client");
|
|
4
|
+
const { parseUrl } = require("@smithy/core/protocols");
|
|
5
|
+
const { fromBase64, fromUtf8, toBase64, toUtf8 } = require("@smithy/core/serde");
|
|
6
|
+
const { defaultDeadlineHttpAuthSchemeProvider } = require("./auth/httpAuthSchemeProvider");
|
|
7
|
+
const { defaultEndpointResolver } = require("./endpoint/endpointResolver");
|
|
8
|
+
const { errorTypeRegistries } = require("./schemas/schemas_0");
|
|
9
|
+
exports.getRuntimeConfig = (config) => {
|
|
13
10
|
return {
|
|
14
11
|
apiVersion: "2023-10-12",
|
|
15
|
-
base64Decoder: config?.base64Decoder ??
|
|
16
|
-
base64Encoder: config?.base64Encoder ??
|
|
12
|
+
base64Decoder: config?.base64Decoder ?? fromBase64,
|
|
13
|
+
base64Encoder: config?.base64Encoder ?? toBase64,
|
|
17
14
|
disableHostPrefix: config?.disableHostPrefix ?? false,
|
|
18
|
-
endpointProvider: config?.endpointProvider ??
|
|
15
|
+
endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,
|
|
19
16
|
extensions: config?.extensions ?? [],
|
|
20
|
-
httpAuthSchemeProvider: config?.httpAuthSchemeProvider ??
|
|
17
|
+
httpAuthSchemeProvider: config?.httpAuthSchemeProvider ?? defaultDeadlineHttpAuthSchemeProvider,
|
|
21
18
|
httpAuthSchemes: config?.httpAuthSchemes ?? [
|
|
22
19
|
{
|
|
23
20
|
schemeId: "aws.auth#sigv4",
|
|
24
21
|
identityProvider: (ipc) => ipc.getIdentityProvider("aws.auth#sigv4"),
|
|
25
|
-
signer: new
|
|
22
|
+
signer: new AwsSdkSigV4Signer(),
|
|
26
23
|
},
|
|
27
24
|
],
|
|
28
|
-
logger: config?.logger ?? new
|
|
29
|
-
protocol: config?.protocol ??
|
|
25
|
+
logger: config?.logger ?? new NoOpLogger(),
|
|
26
|
+
protocol: config?.protocol ?? AwsRestJsonProtocol,
|
|
30
27
|
protocolSettings: config?.protocolSettings ?? {
|
|
31
28
|
defaultNamespace: "com.amazonaws.deadline",
|
|
32
|
-
errorTypeRegistries
|
|
29
|
+
errorTypeRegistries,
|
|
33
30
|
version: "2023-10-12",
|
|
34
31
|
serviceTarget: "Deadline",
|
|
35
32
|
},
|
|
36
33
|
serviceId: config?.serviceId ?? "deadline",
|
|
37
|
-
urlParser: config?.urlParser ??
|
|
38
|
-
utf8Decoder: config?.utf8Decoder ??
|
|
39
|
-
utf8Encoder: config?.utf8Encoder ??
|
|
34
|
+
urlParser: config?.urlParser ?? parseUrl,
|
|
35
|
+
utf8Decoder: config?.utf8Decoder ?? fromUtf8,
|
|
36
|
+
utf8Encoder: config?.utf8Encoder ?? toUtf8,
|
|
40
37
|
};
|
|
41
38
|
};
|
|
42
|
-
exports.getRuntimeConfig = getRuntimeConfig;
|