@rio-cloud/cdk-v2-constructs 7.14.0 → 8.0.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.
Files changed (111) hide show
  1. package/.jsii +43 -45
  2. package/lib/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.d.ts +2 -14
  3. package/lib/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.js +18 -32
  4. package/lib/contributions/team-transport-two/datadog-synthetics/datadog-synthetics-test-custom-resource/handler.cjs +344 -272
  5. package/lib/datadogv2/secret-locator-custom-resource/on-create.cjs +356 -284
  6. package/lib/datadogv2/service-catalog-custom-resource/on-create.cjs +344 -272
  7. package/lib/fargate/codedeploy-custom-resources/create-deployment-is-complete.cjs +344 -272
  8. package/lib/fargate/codedeploy-custom-resources/create-deployment-on-create.cjs +344 -272
  9. package/lib/fargate/codedeploy-custom-resources/run-monitoring-test-suite-runner.cjs +344 -272
  10. package/node_modules/@aws-sdk/client-cloudformation/package.json +12 -12
  11. package/node_modules/@aws-sdk/client-codedeploy/package.json +12 -12
  12. package/node_modules/@aws-sdk/client-ecs/package.json +12 -12
  13. package/node_modules/@aws-sdk/client-organizations/package.json +12 -12
  14. package/node_modules/@aws-sdk/client-secrets-manager/package.json +12 -12
  15. package/node_modules/@aws-sdk/client-ssm/package.json +12 -12
  16. package/node_modules/@aws-sdk/core/dist-cjs/index.js +54 -21
  17. package/node_modules/@aws-sdk/core/dist-cjs/submodules/protocols/index.js +54 -21
  18. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/ProtocolLib.js +24 -6
  19. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.js +6 -5
  20. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_0Protocol.js +2 -1
  21. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJson1_1Protocol.js +2 -1
  22. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsJsonRpcProtocol.js +6 -4
  23. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/json/AwsRestJsonProtocol.js +6 -4
  24. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/query/AwsQueryProtocol.js +4 -2
  25. package/node_modules/@aws-sdk/core/dist-es/submodules/protocols/xml/AwsRestXmlProtocol.js +9 -3
  26. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/ProtocolLib.d.ts +13 -0
  27. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.d.ts +3 -1
  28. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_0Protocol.d.ts +3 -1
  29. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJson1_1Protocol.d.ts +3 -1
  30. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +3 -1
  31. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/json/AwsRestJsonProtocol.d.ts +3 -1
  32. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/query/AwsEc2QueryProtocol.d.ts +3 -0
  33. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/query/AwsQueryProtocol.d.ts +3 -0
  34. package/node_modules/@aws-sdk/core/dist-types/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +2 -0
  35. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/ProtocolLib.d.ts +6 -0
  36. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/cbor/AwsSmithyRpcV2CborProtocol.d.ts +3 -0
  37. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_0Protocol.d.ts +3 -0
  38. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJson1_1Protocol.d.ts +3 -0
  39. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsJsonRpcProtocol.d.ts +3 -0
  40. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/json/AwsRestJsonProtocol.d.ts +8 -1
  41. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/AwsEc2QueryProtocol.d.ts +3 -0
  42. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/query/AwsQueryProtocol.d.ts +3 -0
  43. package/node_modules/@aws-sdk/core/dist-types/ts3.4/submodules/protocols/xml/AwsRestXmlProtocol.d.ts +6 -1
  44. package/node_modules/@aws-sdk/core/package.json +3 -3
  45. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  46. package/node_modules/@aws-sdk/credential-provider-http/package.json +3 -3
  47. package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
  48. package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
  49. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  50. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  51. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  52. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  53. package/node_modules/@aws-sdk/middleware-user-agent/package.json +2 -2
  54. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/CognitoIdentity.js +1 -1
  55. package/node_modules/@aws-sdk/nested-clients/dist-types/submodules/cognito-identity/CognitoIdentity.d.ts +2 -2
  56. package/node_modules/@aws-sdk/nested-clients/package.json +11 -11
  57. package/node_modules/@aws-sdk/region-config-resolver/package.json +2 -2
  58. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  59. package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
  60. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/XmlNode.d.ts +29 -49
  61. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/XmlText.d.ts +6 -11
  62. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/escape-attribute.d.ts +1 -6
  63. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/escape-element.d.ts +1 -6
  64. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/index.d.ts +3 -12
  65. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/stringable.d.ts +3 -6
  66. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-parser.browser.d.ts +1 -9
  67. package/node_modules/@aws-sdk/xml-builder/dist-types/ts3.4/xml-parser.d.ts +1 -4
  68. package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
  69. package/node_modules/@smithy/config-resolver/dist-cjs/index.js +12 -0
  70. package/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js +5 -0
  71. package/node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js +5 -0
  72. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/NodeUseDualstackEndpointConfigOptions.d.ts +6 -0
  73. package/node_modules/@smithy/config-resolver/dist-types/endpointsConfig/NodeUseFipsEndpointConfigOptions.d.ts +6 -0
  74. package/node_modules/@smithy/config-resolver/dist-types/ts3.4/endpointsConfig/NodeUseDualstackEndpointConfigOptions.d.ts +6 -0
  75. package/node_modules/@smithy/config-resolver/dist-types/ts3.4/endpointsConfig/NodeUseFipsEndpointConfigOptions.d.ts +6 -0
  76. package/node_modules/@smithy/config-resolver/package.json +1 -1
  77. package/node_modules/@smithy/middleware-endpoint/dist-types/resolveEndpointConfig.d.ts +2 -2
  78. package/node_modules/@smithy/middleware-endpoint/dist-types/ts3.4/resolveEndpointConfig.d.ts +2 -2
  79. package/node_modules/@smithy/middleware-endpoint/package.json +1 -1
  80. package/node_modules/@smithy/middleware-retry/package.json +2 -2
  81. package/node_modules/@smithy/smithy-client/package.json +2 -2
  82. package/node_modules/@smithy/util-defaults-mode-browser/package.json +2 -2
  83. package/node_modules/@smithy/util-defaults-mode-node/package.json +3 -3
  84. package/node_modules/fast-xml-parser/CHANGELOG.md +7 -0
  85. package/node_modules/fast-xml-parser/lib/fxbuilder.min.js +1 -1
  86. package/node_modules/fast-xml-parser/lib/fxbuilder.min.js.map +1 -1
  87. package/node_modules/fast-xml-parser/lib/fxp.cjs +1 -1
  88. package/node_modules/fast-xml-parser/lib/fxp.d.cts +20 -12
  89. package/node_modules/fast-xml-parser/lib/fxp.min.js +1 -1
  90. package/node_modules/fast-xml-parser/lib/fxp.min.js.map +1 -1
  91. package/node_modules/fast-xml-parser/lib/fxparser.min.js +1 -1
  92. package/node_modules/fast-xml-parser/lib/fxparser.min.js.map +1 -1
  93. package/node_modules/fast-xml-parser/lib/pem.d.cts +148 -0
  94. package/node_modules/fast-xml-parser/package.json +3 -3
  95. package/node_modules/fast-xml-parser/src/fxp.d.ts +13 -11
  96. package/node_modules/fast-xml-parser/src/pem.d.ts +135 -0
  97. package/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js +26 -17
  98. package/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js +6 -6
  99. package/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js +22 -16
  100. package/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js +2 -2
  101. package/node_modules/fast-xml-parser/src/xmlparser/node2json.js +10 -11
  102. package/node_modules/path-expression-matcher/README.md +98 -13
  103. package/node_modules/path-expression-matcher/lib/pem.cjs +1 -1
  104. package/node_modules/path-expression-matcher/lib/pem.d.cts +188 -0
  105. package/node_modules/path-expression-matcher/lib/pem.min.js +1 -1
  106. package/node_modules/path-expression-matcher/lib/pem.min.js.map +1 -1
  107. package/node_modules/path-expression-matcher/package.json +2 -2
  108. package/node_modules/path-expression-matcher/src/Matcher.js +84 -0
  109. package/node_modules/path-expression-matcher/src/index.d.ts +152 -0
  110. package/package.json +11 -7
  111. package/version.json +1 -1
package/.jsii CHANGED
@@ -9,12 +9,12 @@
9
9
  },
10
10
  "bundled": {
11
11
  "@aws-lambda-powertools/parameters": "^2.10.0",
12
- "@aws-sdk/client-cloudformation": "^3.1012.0",
13
- "@aws-sdk/client-codedeploy": "^3.1012.0",
14
- "@aws-sdk/client-ecs": "3.1012.0",
15
- "@aws-sdk/client-organizations": "^3.1012.0",
16
- "@aws-sdk/client-secrets-manager": "^3.1012.0",
17
- "@aws-sdk/client-ssm": "^3.1012.0",
12
+ "@aws-sdk/client-cloudformation": "^3.1015.0",
13
+ "@aws-sdk/client-codedeploy": "^3.1015.0",
14
+ "@aws-sdk/client-ecs": "3.1015.0",
15
+ "@aws-sdk/client-organizations": "^3.1015.0",
16
+ "@aws-sdk/client-secrets-manager": "^3.1015.0",
17
+ "@aws-sdk/client-ssm": "^3.1015.0",
18
18
  "@datadog/datadog-api-client": "^1.29.0",
19
19
  "@smithy/util-retry": "^3.0.8",
20
20
  "@types/aws-lambda": "^8.10.145",
@@ -10158,7 +10158,7 @@
10158
10158
  "kind": "interface",
10159
10159
  "locationInModule": {
10160
10160
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
10161
- "line": 94
10161
+ "line": 57
10162
10162
  },
10163
10163
  "name": "CspConfig",
10164
10164
  "properties": [
@@ -10171,7 +10171,7 @@
10171
10171
  "immutable": true,
10172
10172
  "locationInModule": {
10173
10173
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
10174
- "line": 108
10174
+ "line": 71
10175
10175
  },
10176
10176
  "name": "configCat",
10177
10177
  "optional": true,
@@ -10188,7 +10188,7 @@
10188
10188
  "immutable": true,
10189
10189
  "locationInModule": {
10190
10190
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
10191
- "line": 117
10191
+ "line": 83
10192
10192
  },
10193
10193
  "name": "customDirectives",
10194
10194
  "optional": true,
@@ -10205,7 +10205,7 @@
10205
10205
  "immutable": true,
10206
10206
  "locationInModule": {
10207
10207
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
10208
- "line": 105
10208
+ "line": 68
10209
10209
  },
10210
10210
  "name": "datadog",
10211
10211
  "optional": true,
@@ -10222,7 +10222,7 @@
10222
10222
  "immutable": true,
10223
10223
  "locationInModule": {
10224
10224
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
10225
- "line": 96
10225
+ "line": 59
10226
10226
  },
10227
10227
  "name": "googleAnalytics",
10228
10228
  "optional": true,
@@ -10239,7 +10239,7 @@
10239
10239
  "immutable": true,
10240
10240
  "locationInModule": {
10241
10241
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
10242
- "line": 111
10242
+ "line": 74
10243
10243
  },
10244
10244
  "name": "here",
10245
10245
  "optional": true,
@@ -10247,6 +10247,23 @@
10247
10247
  "primitive": "boolean"
10248
10248
  }
10249
10249
  },
10250
+ {
10251
+ "abstract": true,
10252
+ "docs": {
10253
+ "stability": "stable",
10254
+ "summary": "Include Intercom."
10255
+ },
10256
+ "immutable": true,
10257
+ "locationInModule": {
10258
+ "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
10259
+ "line": 77
10260
+ },
10261
+ "name": "intercom",
10262
+ "optional": true,
10263
+ "type": {
10264
+ "primitive": "boolean"
10265
+ }
10266
+ },
10250
10267
  {
10251
10268
  "abstract": true,
10252
10269
  "docs": {
@@ -10256,7 +10273,7 @@
10256
10273
  "immutable": true,
10257
10274
  "locationInModule": {
10258
10275
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
10259
- "line": 114
10276
+ "line": 80
10260
10277
  },
10261
10278
  "name": "logOutput",
10262
10279
  "optional": true,
@@ -10273,7 +10290,7 @@
10273
10290
  "immutable": true,
10274
10291
  "locationInModule": {
10275
10292
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
10276
- "line": 99
10293
+ "line": 62
10277
10294
  },
10278
10295
  "name": "sentry",
10279
10296
  "optional": true,
@@ -10290,7 +10307,7 @@
10290
10307
  "immutable": true,
10291
10308
  "locationInModule": {
10292
10309
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
10293
- "line": 102
10310
+ "line": 65
10294
10311
  },
10295
10312
  "name": "split",
10296
10313
  "optional": true,
@@ -15339,7 +15356,7 @@
15339
15356
  },
15340
15357
  "locationInModule": {
15341
15358
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
15342
- "line": 128
15359
+ "line": 94
15343
15360
  },
15344
15361
  "parameters": [
15345
15362
  {
@@ -15365,7 +15382,7 @@
15365
15382
  "kind": "class",
15366
15383
  "locationInModule": {
15367
15384
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
15368
- "line": 125
15385
+ "line": 91
15369
15386
  },
15370
15387
  "name": "RioCloudfrontDistribution",
15371
15388
  "properties": [
@@ -15376,7 +15393,7 @@
15376
15393
  "immutable": true,
15377
15394
  "locationInModule": {
15378
15395
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
15379
- "line": 126
15396
+ "line": 92
15380
15397
  },
15381
15398
  "name": "distribution",
15382
15399
  "type": {
@@ -15397,7 +15414,7 @@
15397
15414
  "kind": "interface",
15398
15415
  "locationInModule": {
15399
15416
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
15400
- "line": 41
15417
+ "line": 15
15401
15418
  },
15402
15419
  "name": "RioCloudfrontDistributionProps",
15403
15420
  "properties": [
@@ -15410,32 +15427,13 @@
15410
15427
  "immutable": true,
15411
15428
  "locationInModule": {
15412
15429
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
15413
- "line": 43
15430
+ "line": 17
15414
15431
  },
15415
15432
  "name": "contentBucketName",
15416
15433
  "type": {
15417
15434
  "primitive": "string"
15418
15435
  }
15419
15436
  },
15420
- {
15421
- "abstract": true,
15422
- "docs": {
15423
- "deprecated": "Please use the declarative CSP config instead. See {@link cspConfig }.",
15424
- "remarks": "If not set, a rio Default will be used. The default should cover connections to split.io, sentry and datadog, as\nwell as a hash to support google tagManger. The latter might need to be adapted if you change the minification of\nthe index.html, in which case you can provide your csp here.",
15425
- "stability": "deprecated",
15426
- "summary": "The content Security Policy to be sent as a header when delivering the bucket content."
15427
- },
15428
- "immutable": true,
15429
- "locationInModule": {
15430
- "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
15431
- "line": 69
15432
- },
15433
- "name": "contentSecurityPolicy",
15434
- "optional": true,
15435
- "type": {
15436
- "primitive": "string"
15437
- }
15438
- },
15439
15437
  {
15440
15438
  "abstract": true,
15441
15439
  "docs": {
@@ -15446,7 +15444,7 @@
15446
15444
  "immutable": true,
15447
15445
  "locationInModule": {
15448
15446
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
15449
- "line": 77
15447
+ "line": 40
15450
15448
  },
15451
15449
  "name": "cspConfig",
15452
15450
  "optional": true,
@@ -15464,7 +15462,7 @@
15464
15462
  "immutable": true,
15465
15463
  "locationInModule": {
15466
15464
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
15467
- "line": 91
15465
+ "line": 54
15468
15466
  },
15469
15467
  "name": "frameOptions",
15470
15468
  "optional": true,
@@ -15482,7 +15480,7 @@
15482
15480
  "immutable": true,
15483
15481
  "locationInModule": {
15484
15482
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
15485
- "line": 84
15483
+ "line": 47
15486
15484
  },
15487
15485
  "name": "functionAssociations",
15488
15486
  "optional": true,
@@ -15505,7 +15503,7 @@
15505
15503
  "immutable": true,
15506
15504
  "locationInModule": {
15507
15505
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
15508
- "line": 58
15506
+ "line": 32
15509
15507
  },
15510
15508
  "name": "hostedZone",
15511
15509
  "optional": true,
@@ -15523,7 +15521,7 @@
15523
15521
  "immutable": true,
15524
15522
  "locationInModule": {
15525
15523
  "filename": "src/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.ts",
15526
- "line": 51
15524
+ "line": 25
15527
15525
  },
15528
15526
  "name": "subDomain",
15529
15527
  "optional": true,
@@ -27793,5 +27791,5 @@
27793
27791
  }
27794
27792
  },
27795
27793
  "version": "0.0.0",
27796
- "fingerprint": "AyFFw8mfSztqXjHm/ynfiNa+NVWdf5+ybGqosJscq4Y="
27794
+ "fingerprint": "PATivDW0JNFghAwIIfXo7s+GqhSJCyvTDpxFnk3hGQI="
27797
27795
  }
@@ -2,10 +2,6 @@ import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
2
2
  import * as route53 from 'aws-cdk-lib/aws-route53';
3
3
  import { Construct } from 'constructs';
4
4
  import { CspDirectives } from './contentSecurityPolicy';
5
- /**
6
- * @deprecated Please switch to the declarative CSP config. This function will be removed in the future.
7
- */
8
- export declare const createRioDefaultCSP: (additionalScriptSources?: string) => string;
9
5
  /** Properties for defining a RioCloudfrontDistribution. */
10
6
  export interface RioCloudfrontDistributionProps {
11
7
  /** The reference to the S3 bucket containing the files to serve. */
@@ -23,16 +19,6 @@ export interface RioCloudfrontDistributionProps {
23
19
  * If not given, the default hosted Zone provided by RIO setup will be used.
24
20
  */
25
21
  readonly hostedZone?: route53.IHostedZone;
26
- /**
27
- * The content Security Policy to be sent as a header when delivering the bucket content.
28
- *
29
- * If not set, a rio Default will be used. The default should cover connections to split.io, sentry and datadog, as
30
- * well as a hash to support google tagManger. The latter might need to be adapted if you change the minification of
31
- * the index.html, in which case you can provide your csp here.
32
- *
33
- * @deprecated Please use the declarative CSP config instead. See {@link cspConfig}.
34
- */
35
- readonly contentSecurityPolicy?: string;
36
22
  /**
37
23
  * Allows declaratively defining your desired CSP.
38
24
  *
@@ -66,6 +52,8 @@ export interface CspConfig {
66
52
  readonly configCat?: boolean;
67
53
  /** Include Here Maps. */
68
54
  readonly here?: boolean;
55
+ /** Include Intercom. */
56
+ readonly intercom?: boolean;
69
57
  /** Prints the generated CSP to the console. */
70
58
  readonly logOutput?: boolean;
71
59
  /** You can define custom values for any CSP directive with this. */
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.createCspFromConfig = exports.RioCloudfrontDistribution = exports.createRioDefaultCSP = void 0;
4
+ exports.createCspFromConfig = exports.RioCloudfrontDistribution = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
6
  const path = require("path");
7
7
  const aws_cdk_lib_1 = require("aws-cdk-lib");
@@ -15,30 +15,6 @@ const constructs_1 = require("constructs");
15
15
  const contentSecurityPolicy_1 = require("./contentSecurityPolicy");
16
16
  const rio_claidometer_1 = require("../../../rio-claidometer");
17
17
  const rio_landing_zone_1 = require("../../../rio-landing-zone");
18
- // region Legacy CSP function
19
- const alwaysAllowedCSPSources = "'self' https://*.rio.cloud https://rio.cloud";
20
- // The hash in script src is for the google tagManager script included in the index.html
21
- /**
22
- * @deprecated Please switch to the declarative CSP config. This function will be removed in the future.
23
- */
24
- const createRioDefaultCSP = (additionalScriptSources) => `
25
- default-src ${alwaysAllowedCSPSources};
26
- connect-src ${alwaysAllowedCSPSources} https://*.sentry.io https://sentry.io https://sdk.split.io https://*.datadoghq.eu https://*.browser-intake-datadoghq.eu https://browser-intake-datadoghq.eu https://cdn-eu.configcat.com;
27
- font-src ${alwaysAllowedCSPSources} data:;
28
- img-src ${alwaysAllowedCSPSources} data: www.googletagmanager.com;
29
- object-src 'none';
30
- script-src ${alwaysAllowedCSPSources} https://www.googletagmanager.com
31
- 'sha256-HDWAgfTeMAguT8wFw7+92Y7i4Eo/6RUQQuA3TW9JxbA='
32
- ${additionalScriptSources ? ' ' + additionalScriptSources : ''};
33
- style-src ${alwaysAllowedCSPSources} 'unsafe-inline';
34
- base-uri 'self';
35
- form-action ${alwaysAllowedCSPSources};
36
- frame-ancestors ${alwaysAllowedCSPSources};
37
- frame-src ${alwaysAllowedCSPSources};
38
- `
39
- .replace(/[\r\n\s]+/g, ' ')
40
- .trim();
41
- exports.createRioDefaultCSP = createRioDefaultCSP;
42
18
  /**
43
19
  * A Construct which creates a default cloudfront distribution using a s3 bucket as origin.
44
20
  *
@@ -133,11 +109,7 @@ class RioCloudfrontDistribution extends constructs_1.Construct {
133
109
  version: '0.0.5',
134
110
  });
135
111
  }
136
- generateCsp({ cspConfig, contentSecurityPolicy }) {
137
- if (contentSecurityPolicy) {
138
- console.warn('[RioCloudFrontDistribution] You are using the deprecated "contentSecurityPolicy" property. Please update to the declarative "cspConfig". It will even save you a ton of code, trust me :)');
139
- return contentSecurityPolicy;
140
- }
112
+ generateCsp({ cspConfig }) {
141
113
  if (!cspConfig) {
142
114
  console.info('[RioCloudFrontDistribution] You did not provide a "cspConfig". The default CSP will be generated.');
143
115
  }
@@ -152,7 +124,7 @@ exports.RioCloudfrontDistribution = RioCloudfrontDistribution;
152
124
  _a = JSII_RTTI_SYMBOL_1;
153
125
  RioCloudfrontDistribution[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.RioCloudfrontDistribution", version: "0.0.0" };
154
126
  const createCspFromConfig = (cspConfig = DEFAULT_CSP_CONFIG) => {
155
- const { googleAnalytics, sentry, split, datadog, configCat, here, customDirectives } = cspConfig;
127
+ const { googleAnalytics, sentry, split, datadog, configCat, here, intercom, customDirectives } = cspConfig;
156
128
  const directiveObjects = [overallDefaults];
157
129
  googleAnalytics && directiveObjects.push(googleAnalyticsDirectives);
158
130
  sentry && directiveObjects.push(sentryDirectives);
@@ -160,6 +132,7 @@ const createCspFromConfig = (cspConfig = DEFAULT_CSP_CONFIG) => {
160
132
  datadog && directiveObjects.push(datadogDirectives);
161
133
  configCat && directiveObjects.push(configCatDirectives);
162
134
  here && directiveObjects.push(hereDirectives);
135
+ intercom && directiveObjects.push(intercomDirectives);
163
136
  customDirectives && directiveObjects.push(customDirectives);
164
137
  return (0, contentSecurityPolicy_1.createCspFromDirectiveObjects)(directiveObjects);
165
138
  };
@@ -223,4 +196,17 @@ const hereDirectives = {
223
196
  scriptSrc: ['https://*.hereapi.com https://*.api.here.com'],
224
197
  styleSrc: ['*.here.com'],
225
198
  };
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWNsb3VkZnJvbnQtZGlzdHJpYnV0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvY29wLWZyb250ZW5kL2Nsb3VkZnJvbnQvcmlvLWNsb3VkZnJvbnQtZGlzdHJpYnV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDZDQUFzRDtBQUN0RCwwREFBMEQ7QUFDMUQseURBQXlEO0FBQ3pELDhEQUE4RDtBQUM5RCxtREFBbUQ7QUFDbkQsMkRBQTJEO0FBQzNELHlDQUF5QztBQUN6QywyQ0FBdUM7QUFDdkMsbUVBQXVGO0FBQ3ZGLDhEQUEyRTtBQUMzRSxnRUFBMkQ7QUFFM0QsNkJBQTZCO0FBQzdCLE1BQU0sdUJBQXVCLEdBQUcsOENBQThDLENBQUM7QUFFL0Usd0ZBQXdGO0FBQ3hGOztHQUVHO0FBQ0ksTUFBTSxtQkFBbUIsR0FBRyxDQUFDLHVCQUFnQyxFQUFFLEVBQUUsQ0FBQztxQkFDcEQsdUJBQXVCO3FCQUN2Qix1QkFBdUI7a0JBQzFCLHVCQUF1QjtpQkFDeEIsdUJBQXVCOztvQkFFcEIsdUJBQXVCOztVQUVqQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxFQUFFO21CQUNuRCx1QkFBdUI7O3FCQUVyQix1QkFBdUI7eUJBQ25CLHVCQUF1QjttQkFDN0IsdUJBQXVCO1FBQ2xDO0tBQ0wsT0FBTyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUM7S0FDMUIsSUFBSSxFQUFFLENBQUM7QUFoQkcsUUFBQSxtQkFBbUIsdUJBZ0J0QjtBQW1GVjs7OztHQUlHO0FBQ0gsTUFBYSx5QkFBMEIsU0FBUSxzQkFBUztJQUd0RCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXFDO1FBQzdFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxVQUFVLEdBQUcsS0FB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QUFDO0NBQ3JDLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFrQjtJQUN2QyxVQUFVLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSx1Q0FBdUMsRUFBRSxxQ0FBcUMsQ0FBQztDQUN2SCxDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBa0I7SUFDekMsVUFBVSxFQUFFLENBQUMsOEJBQThCLENBQUM7Q0FDN0MsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUFrQjtJQUNwQyxVQUFVLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztJQUNqQyxVQUFVLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSx3QkFBd0IsQ0FBQztJQUMvRCxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztJQUNwQyxNQUFNLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzQixTQUFTLEVBQUUsQ0FBQyw4Q0FBOEMsQ0FBQztJQUMzRCxRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUM7Q0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBEdXJhdGlvbiwgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGFjbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJztcbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0ICogYXMgb3JpZ2lucyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC1vcmlnaW5zJztcbmltcG9ydCAqIGFzIHJvdXRlNTMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMnO1xuaW1wb3J0ICogYXMgdGFyZ2V0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IGNyZWF0ZUNzcEZyb21EaXJlY3RpdmVPYmplY3RzLCBDc3BEaXJlY3RpdmVzIH0gZnJvbSAnLi9jb250ZW50U2VjdXJpdHlQb2xpY3knO1xuaW1wb3J0IHsgQ2xhaWRvbWV0ZXIsIENsYWlkb21ldGVyUHJvZHVjdCB9IGZyb20gJy4uLy4uLy4uL3Jpby1jbGFpZG9tZXRlcic7XG5pbXBvcnQgeyBSaW9MYW5kaW5nWm9uZSB9IGZyb20gJy4uLy4uLy4uL3Jpby1sYW5kaW5nLXpvbmUnO1xuXG4vLyByZWdpb24gTGVnYWN5IENTUCBmdW5jdGlvblxuY29uc3QgYWx3YXlzQWxsb3dlZENTUFNvdXJjZXMgPSBcIidzZWxmJyBodHRwczovLyoucmlvLmNsb3VkIGh0dHBzOi8vcmlvLmNsb3VkXCI7XG5cbi8vIFRoZSBoYXNoIGluIHNjcmlwdCBzcmMgaXMgZm9yIHRoZSBnb29nbGUgdGFnTWFuYWdlciBzY3JpcHQgaW5jbHVkZWQgaW4gdGhlIGluZGV4Lmh0bWxcbi8qKlxuICogQGRlcHJlY2F0ZWQgUGxlYXNlIHN3aXRjaCB0byB0aGUgZGVjbGFyYXRpdmUgQ1NQIGNvbmZpZy4gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIGZ1dHVyZS5cbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVJpb0RlZmF1bHRDU1AgPSAoYWRkaXRpb25hbFNjcmlwdFNvdXJjZXM/OiBzdHJpbmcpID0+IGBcbiAgICAgICBkZWZhdWx0LXNyYyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfTtcbiAgICAgICBjb25uZWN0LXNyYyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfSBodHRwczovLyouc2VudHJ5LmlvIGh0dHBzOi8vc2VudHJ5LmlvIGh0dHBzOi8vc2RrLnNwbGl0LmlvIGh0dHBzOi8vKi5kYXRhZG9naHEuZXUgaHR0cHM6Ly8qLmJyb3dzZXItaW50YWtlLWRhdGFkb2docS5ldSBodHRwczovL2Jyb3dzZXItaW50YWtlLWRhdGFkb2docS5ldSBodHRwczovL2Nkbi1ldS5jb25maWdjYXQuY29tO1xuICAgICAgIGZvbnQtc3JjICR7YWx3YXlzQWxsb3dlZENTUFNvdXJjZXN9IGRhdGE6O1xuICAgICAgIGltZy1zcmMgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc30gZGF0YTogd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tO1xuICAgICAgIG9iamVjdC1zcmMgJ25vbmUnO1xuICAgICAgIHNjcmlwdC1zcmMgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc30gaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb21cbiAgICAgICAgJ3NoYTI1Ni1IRFdBZ2ZUZU1BZ3VUOHdGdzcrOTJZN2k0RW8vNlJVUVF1QTNUVzlKeGJBPSdcbiAgICAgICAgJHthZGRpdGlvbmFsU2NyaXB0U291cmNlcyA/ICcgJyArIGFkZGl0aW9uYWxTY3JpcHRTb3VyY2VzIDogJyd9O1xuICAgICAgIHN0eWxlLXNyYyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfSAndW5zYWZlLWlubGluZSc7XG4gICAgICAgYmFzZS11cmkgJ3NlbGYnO1xuICAgICAgIGZvcm0tYWN0aW9uICR7YWx3YXlzQWxsb3dlZENTUFNvdXJjZXN9O1xuICAgICAgIGZyYW1lLWFuY2VzdG9ycyAke2Fsd2F5c0FsbG93ZWRDU1BTb3VyY2VzfTtcbiAgICAgICBmcmFtZS1zcmMgJHthbHdheXNBbGxvd2VkQ1NQU291cmNlc307XG4gICAgICAgYFxuICAucmVwbGFjZSgvW1xcclxcblxcc10rL2csICcgJylcbiAgLnRyaW0oKTtcbi8vIGVuZHJlZ2lvblxuXG4vKiogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBSaW9DbG91ZGZyb250RGlzdHJpYnV0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBSaW9DbG91ZGZyb250RGlzdHJpYnV0aW9uUHJvcHMge1xuICAvKiogVGhlIHJlZmVyZW5jZSB0byB0aGUgUzMgYnVja2V0IGNvbnRhaW5pbmcgdGhlIGZpbGVzIHRvIHNlcnZlLiAqL1xuICByZWFkb25seSBjb250ZW50QnVja2V0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIFRoZSBzdWJkb21haW4gd2hlcmUgdGhlIGNvbnRlbnQgc2hvdWxkIGJlIHNlcnZlZC5cbiAgICAgKlxuICAgICAqIElmIG5vdCBnaXZlbiwgYW4gZW1wdHkgc3RyaW5nLCBpLmUuIG5vIHN1YkRvbWFpbiB3aWxsIGJlIHVzZWQuIEluc3RlYWQsIHRoZSBuYW1lIG9mIHRoZSBob3N0ZWQgem9uZSB3aWxsIGJlIHVzZWRcbiAgICAgKiBkaXJlY3RseS5cbiAgICAgKi9cbiAgcmVhZG9ubHkgc3ViRG9tYWluPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIFRoZSBob3N0ZWQgem9uZSBvZiB0aGUgZG9tYWluIHVuZGVyIHdoaWNoIHRoZSBjb250ZW50IHdpbGwgYmUgc2VydmVkLlxuICAgICAqXG4gICAgICogSWYgbm90IGdpdmVuLCB0aGUgZGVmYXVsdCBob3N0ZWQgWm9uZSBwcm92aWRlZCBieSBSSU8gc2V0dXAgd2lsbCBiZSB1c2VkLlxuICAgICAqL1xuICByZWFkb25seSBob3N0ZWRab25lPzogcm91dGU1My5JSG9zdGVkWm9uZTtcblxuICAvKipcbiAgICAgKiBUaGUgY29udGVudCBTZWN1cml0eSBQb2xpY3kgdG8gYmUgc2VudCBhcyBhIGhlYWRlciB3aGVuIGRlbGl2ZXJpbmcgdGhlIGJ1Y2tldCBjb250ZW50LlxuICAgICAqXG4gICAgICogSWYgbm90IHNldCwgYSByaW8gRGVmYXVsdCB3aWxsIGJlIHVzZWQuIFRoZSBkZWZhdWx0IHNob3VsZCBjb3ZlciBjb25uZWN0aW9ucyB0byBzcGxpdC5pbywgc2VudHJ5IGFuZCBkYXRhZG9nLCBhc1xuICAgICAqIHdlbGwgYXMgYSBoYXNoIHRvIHN1cHBvcnQgZ29vZ2xlIHRhZ01hbmdlci4gVGhlIGxhdHRlciBtaWdodCBuZWVkIHRvIGJlIGFkYXB0ZWQgaWYgeW91IGNoYW5nZSB0aGUgbWluaWZpY2F0aW9uIG9mXG4gICAgICogdGhlIGluZGV4Lmh0bWwsIGluIHdoaWNoIGNhc2UgeW91IGNhbiBwcm92aWRlIHlvdXIgY3NwIGhlcmUuXG4gICAgICpcbiAgICAgKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIHRoZSBkZWNsYXJhdGl2ZSBDU1AgY29uZmlnIGluc3RlYWQuIFNlZSB7QGxpbmsgY3NwQ29uZmlnfS5cbiAgICAgKi9cbiAgcmVhZG9ubHkgY29udGVudFNlY3VyaXR5UG9saWN5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgICAqIEFsbG93cyBkZWNsYXJhdGl2ZWx5IGRlZmluaW5nIHlvdXIgZGVzaXJlZCBDU1AuXG4gICAgICpcbiAgICAgKiBUaGUgUklPIGRlZmF1bHRzIGFyZSBhbHdheXMgaW5jbHVkZWQsIGFuZCB5b3UgY2FuIGNob29zZSB3aGljaCBzZXJ2aWNlcyB5b3Ugd2FudCB0byBpbmNsdWRlIChlLmcuIENvbmZpZ0NhdCkgb3JcbiAgICAgKiBub3QuIFlvdSBjYW4gYWxzbyBwcm92aWRlIGN1c3RvbSBkaXJlY3RpdmVzIC8gdmFsdWVzIHVzaW5nIHRoZSBcImN1c3RvbVwiIGtleS5cbiAgICAgKi9cbiAgcmVhZG9ubHkgY3NwQ29uZmlnPzogQ3NwQ29uZmlnO1xuXG4gIC8qKlxuICAgICAqIFRoZSBsaXN0IG9mIGZ1bmN0aW9ucyB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRlZmF1bHQgYmVoYXZpb3VyIG9mIHRoZSBkaXN0cmlidXRpb24uXG4gICAgICpcbiAgICAgKiBJZiBub3QgZ2l2ZW4sIG5vIGZ1bmN0aW9ucyB3aWxsIGJlIGFzc2lnbmVkLlxuICAgICAqL1xuICByZWFkb25seSBmdW5jdGlvbkFzc29jaWF0aW9ucz86IGNsb3VkZnJvbnQuRnVuY3Rpb25Bc3NvY2lhdGlvbltdO1xuXG4gIC8qKlxuICAgKiBUaGUgZnJhbWUgb3B0aW9ucyB0byBiZSB1c2VkIGluIHRoZSByZXNwb25zZSBoZWFkZXJzIHBvbGljeS5cbiAgICpcbiAgICogSWYgbm90IGdpdmVuLCB0aGUgZGVmYXVsdCB2YWx1ZSB3aWxsIGJlIGBERU5ZYCAmIG92ZXJyaWRlOiB0cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgZnJhbWVPcHRpb25zPzogY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNGcmFtZU9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3NwQ29uZmlnIHtcbiAgLyoqIEluY2x1ZGUgR29vZ2xlIEFuYWx5dGljcyAvIEdvb2dsZSBUYWcgbWFuYWdlci4gKi9cbiAgcmVhZG9ubHkgZ29vZ2xlQW5hbHl0aWNzPzogYm9vbGVhbjtcblxuICAvKiogSW5jbHVkZSBTZW50cnkuICovXG4gIHJlYWRvbmx5IHNlbnRyeT86IGJvb2xlYW47XG5cbiAgLyoqIEluY2x1ZGUgU3BsaXQuaW8uICovXG4gIHJlYWRvbmx5IHNwbGl0PzogYm9vbGVhbjtcblxuICAvKiogSW5jbHVkZSBEYXRhZG9nLiAqL1xuICByZWFkb25seSBkYXRhZG9nPzogYm9vbGVhbjtcblxuICAvKiogSW5jbHVkZSBDb25maWdDYXQuICovXG4gIHJlYWRvbmx5IGNvbmZpZ0NhdD86IGJvb2xlYW47XG5cbiAgLyoqIEluY2x1ZGUgSGVyZSBNYXBzLiAqL1xuICByZWFkb25seSBoZXJlPzogYm9vbGVhbjtcblxuICAvKiogUHJpbnRzIHRoZSBnZW5lcmF0ZWQgQ1NQIHRvIHRoZSBjb25zb2xlLiAqL1xuICByZWFkb25seSBsb2dPdXRwdXQ/OiBib29sZWFuO1xuXG4gIC8qKiBZb3UgY2FuIGRlZmluZSBjdXN0b20gdmFsdWVzIGZvciBhbnkgQ1NQIGRpcmVjdGl2ZSB3aXRoIHRoaXMuICovXG4gIHJlYWRvbmx5IGN1c3RvbURpcmVjdGl2ZXM/OiBDc3BEaXJlY3RpdmVzO1xufVxuXG4vKipcbiAqIEEgQ29uc3RydWN0IHdoaWNoIGNyZWF0ZXMgYSBkZWZhdWx0IGNsb3VkZnJvbnQgZGlzdHJpYnV0aW9uIHVzaW5nIGEgczMgYnVja2V0IGFzIG9yaWdpbi5cbiAqXG4gKiBJbnRlbmRlZCBmb3IgZGVsaXZlcnkgb2YgaHRtbCBkb2N1bWVudHMuIEl0IHNldHMgc29tZSBkZWZhdWx0cyBhIHJlY29tbWVuZGVkIGJ5IEFXUyBhbmQgcHJvdmlkZXMgQ1NQIHNldHRpbmdzLlxuICovXG5leHBvcnQgY2xhc3MgUmlvQ2xvdWRmcm9udERpc3RyaWJ1dGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbjogY2xvdWRmcm9udC5JRGlzdHJpYnV0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBSaW9DbG91ZGZyb250RGlzdHJpYnV0aW9uUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgaG9zdGVkWm9uZSA9IHByb3BzLmhvc3RlZFpvbmUgPz8gUmlvTGFuZGluZ1pvbmUuZ2V0RGVmYXVsdEhvc3RlZFpvbmUodGhpcyk7XG4gICAgY29uc3Qgc3ViRG9tYWluID0gcHJvcHMuc3ViRG9tYWluID8/ICcnO1xuICAgIGNvbnN0IGRvbWFpbk5hbWUgPSBwcm9wcy5zdWJEb21haW4gPT09IHVuZGVmaW5lZCA/IGhvc3RlZFpvbmUuem9uZU5hbWUgOiBzdWJEb21haW4gKyAnLicgKyBob3N0ZWRab25lLnpvbmVOYW1lO1xuICAgIGNvbnN0IGZyYW1lT3B0aW9ucyA9IHByb3BzLmZyYW1lT3B0aW9ucyA/PyB7XG4gICAgICBmcmFtZU9wdGlvbjogY2xvdWRmcm9udC5IZWFkZXJzRnJhbWVPcHRpb24uREVOWSxcbiAgICAgIG92ZXJyaWRlOiB0cnVlLFxuICAgIH07XG5cbiAgICBjb25zdCBjb250ZW50U2VjdXJpdHlQb2xpY3kgPSB0aGlzLmdlbmVyYXRlQ3NwKHByb3BzKTtcblxuICAgIGNvbnN0IGNlcnRpZmljYXRlID0gbmV3IGFjbS5EbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZSh0aGlzLCAnQ2xvdWRmcm9udERpc3RyaWJ1dGlvbkNlcnRpZmljYXRlJywge1xuICAgICAgZG9tYWluTmFtZTogZG9tYWluTmFtZSxcbiAgICAgIGhvc3RlZFpvbmU6IGhvc3RlZFpvbmUsXG4gICAgICByZWdpb246ICd1cy1lYXN0LTEnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnRnJvbnRFbmRCdWNrZXQnLCB7XG4gICAgICBidWNrZXROYW1lOiBwcm9wcy5jb250ZW50QnVja2V0TmFtZSxcbiAgICAgIGVuY3J5cHRpb246IHMzLkJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCxcbiAgICAgIHZlcnNpb25lZDogdHJ1ZSxcbiAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgbGlmZWN5Y2xlUnVsZXM6IFtcbiAgICAgICAgeyBpZDogJ0V4cGlyZXNPYmplY3RzJywgZXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cyg5MCksIG5vbmN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbjogRHVyYXRpb24uZGF5cygzMCkgfSxcbiAgICAgIF0sXG4gICAgICBlbmZvcmNlU1NMOiB0cnVlLFxuICAgICAgY29yczogW3sgYWxsb3dlZE1ldGhvZHM6IFtzMy5IdHRwTWV0aG9kcy5HRVRdLCBhbGxvd2VkT3JpZ2luczogWycqJ10sIGFsbG93ZWRIZWFkZXJzOiBbJyonXSB9XSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlSGVhZGVyc1BvbGljeSA9IG5ldyBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc1BvbGljeSh0aGlzLCAnUmVzcG9uc2VIZWFkZXJzUG9saWN5Jywge1xuICAgICAgY29tbWVudDogJ1BvbGljeSBmb3IgQ2xvdWRGcm9udCByZXNwb25zZXMnLFxuICAgICAgY29yc0JlaGF2aW9yOiB7XG4gICAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd0NyZWRlbnRpYWxzOiBmYWxzZSxcbiAgICAgICAgYWNjZXNzQ29udHJvbEFsbG93SGVhZGVyczogWycqJ10sXG4gICAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd01ldGhvZHM6IFsnR0VUJ10sXG4gICAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd09yaWdpbnM6IFtob3N0ZWRab25lLnpvbmVOYW1lXSxcbiAgICAgICAgYWNjZXNzQ29udHJvbE1heEFnZTogRHVyYXRpb24uc2Vjb25kcyg2MDApLFxuICAgICAgICBvcmlnaW5PdmVycmlkZTogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBzZWN1cml0eUhlYWRlcnNCZWhhdmlvcjoge1xuICAgICAgICBjb250ZW50U2VjdXJpdHlQb2xpY3k6IHsgY29udGVudFNlY3VyaXR5UG9saWN5OiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIG92ZXJyaWRlOiB0cnVlIH0sXG4gICAgICAgIGNvbnRlbnRUeXBlT3B0aW9uczogeyBvdmVycmlkZTogdHJ1ZSB9LFxuICAgICAgICBmcmFtZU9wdGlvbnM6IGZyYW1lT3B0aW9ucyxcbiAgICAgICAgcmVmZXJyZXJQb2xpY3k6IHtcbiAgICAgICAgICByZWZlcnJlclBvbGljeTogY2xvdWRmcm9udC5IZWFkZXJzUmVmZXJyZXJQb2xpY3kuU1RSSUNUX09SSUdJTl9XSEVOX0NST1NTX09SSUdJTixcbiAgICAgICAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgc3RyaWN0VHJhbnNwb3J0U2VjdXJpdHk6IHsgYWNjZXNzQ29udHJvbE1heEFnZTogRHVyYXRpb24uZGF5cygzNjUpLCBpbmNsdWRlU3ViZG9tYWluczogdHJ1ZSwgb3ZlcnJpZGU6IHRydWUgfSxcbiAgICAgICAgeHNzUHJvdGVjdGlvbjogeyBwcm90ZWN0aW9uOiB0cnVlLCBtb2RlQmxvY2s6IHRydWUsIG92ZXJyaWRlOiB0cnVlIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3Qgb3JpZ2luQWNjZXNzQ29udHJvbCA9IG5ldyBjbG91ZGZyb250LlMzT3JpZ2luQWNjZXNzQ29udHJvbCh0aGlzLCAnT3JpZ2luQWNjZXNzQ29udHJvbCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgQWNjZXNzIGNvbnRyb2wgZm9yICouJHtkb21haW5OYW1lfWAsXG4gICAgfSk7XG5cbiAgICB0aGlzLmRpc3RyaWJ1dGlvbiA9IG5ldyBjbG91ZGZyb250LkRpc3RyaWJ1dGlvbih0aGlzLCAnRGlzdHJpYnV0aW9uJywge1xuICAgICAgZGVmYXVsdEJlaGF2aW9yOiB7XG4gICAgICAgIG9yaWdpbjogb3JpZ2lucy5TM0J1Y2tldE9yaWdpbi53aXRoT3JpZ2luQWNjZXNzQ29udHJvbChidWNrZXQsIHtcbiAgICAgICAgICBvcmlnaW5BY2Nlc3NDb250cm9sOiBvcmlnaW5BY2Nlc3NDb250cm9sLFxuICAgICAgICB9KSxcbiAgICAgICAgb3JpZ2luUmVxdWVzdFBvbGljeTogY2xvdWRmcm9udC5PcmlnaW5SZXF1ZXN0UG9saWN5LkNPUlNfUzNfT1JJR0lOLFxuICAgICAgICB2aWV3ZXJQcm90b2NvbFBvbGljeTogY2xvdWRmcm9udC5WaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgICAgY2FjaGVQb2xpY3k6IGNsb3VkZnJvbnQuQ2FjaGVQb2xpY3kuQ0FDSElOR19PUFRJTUlaRUQsXG4gICAgICAgIHJlc3BvbnNlSGVhZGVyc1BvbGljeTogcmVzcG9uc2VIZWFkZXJzUG9saWN5LFxuICAgICAgICBjb21wcmVzczogdHJ1ZSxcbiAgICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IHByb3BzLmZ1bmN0aW9uQXNzb2NpYXRpb25zLFxuICAgICAgfSxcbiAgICAgIGRvbWFpbk5hbWVzOiBbZG9tYWluTmFtZV0sXG4gICAgICBwcmljZUNsYXNzOiBjbG91ZGZyb250LlByaWNlQ2xhc3MuUFJJQ0VfQ0xBU1NfMTAwLFxuICAgICAgY2VydGlmaWNhdGU6IGNlcnRpZmljYXRlLFxuICAgICAgZGVmYXVsdFJvb3RPYmplY3Q6ICdpbmRleC5odG1sJyxcbiAgICAgIG1pbmltdW1Qcm90b2NvbFZlcnNpb246IGNsb3VkZnJvbnQuU2VjdXJpdHlQb2xpY3lQcm90b2NvbC5UTFNfVjFfMl8yMDE4LFxuICAgICAgZXJyb3JSZXNwb25zZXM6IFtcbiAgICAgICAgeyBodHRwU3RhdHVzOiA0MDQsIHJlc3BvbnNlSHR0cFN0YXR1czogMjAwLCByZXNwb25zZVBhZ2VQYXRoOiAnL2luZGV4Lmh0bWwnLCB0dGw6IER1cmF0aW9uLm1pbnV0ZXMoNSkgfSxcbiAgICAgICAgeyBodHRwU3RhdHVzOiA0MDMsIHJlc3BvbnNlSHR0cFN0YXR1czogMjAwLCByZXNwb25zZVBhZ2VQYXRoOiAnL2luZGV4Lmh0bWwnLCB0dGw6IER1cmF0aW9uLm1pbnV0ZXMoNSkgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBuZXcgcm91dGU1My5SZWNvcmRTZXQodGhpcywgJ1JlY29yZFNldCcsIHtcbiAgICAgIHJlY29yZE5hbWU6IHN1YkRvbWFpbixcbiAgICAgIHRhcmdldDogcm91dGU1My5SZWNvcmRUYXJnZXQuZnJvbUFsaWFzKG5ldyB0YXJnZXRzLkNsb3VkRnJvbnRUYXJnZXQodGhpcy5kaXN0cmlidXRpb24pKSxcbiAgICAgIHpvbmU6IGhvc3RlZFpvbmUsXG4gICAgICByZWNvcmRUeXBlOiByb3V0ZTUzLlJlY29yZFR5cGUuQSxcbiAgICB9KTtcblxuICAgIGNvbnN0IFtmZWF0dXJlLCBwYWNrYWdlTmFtZV0gPSBfX2Rpcm5hbWUuc3BsaXQocGF0aC5zZXApLnJldmVyc2UoKTtcblxuICAgIG5ldyBDbGFpZG9tZXRlcih0aGlzLCAnQ2xhaWRvbWV0ZXInLCB7XG4gICAgICBwcm9kdWN0OiBDbGFpZG9tZXRlclByb2R1Y3QuQ0RLX0NPTlRSSUJVVElPTixcbiAgICAgIHBhY2thZ2VOYW1lLFxuICAgICAgZmVhdHVyZSxcbiAgICAgIHZlcnNpb246ICcwLjAuNScsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlQ3NwKHsgY3NwQ29uZmlnLCBjb250ZW50U2VjdXJpdHlQb2xpY3kgfTogUmlvQ2xvdWRmcm9udERpc3RyaWJ1dGlvblByb3BzKTogc3RyaW5nIHtcbiAgICBpZiAoY29udGVudFNlY3VyaXR5UG9saWN5KSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1tSaW9DbG91ZEZyb250RGlzdHJpYnV0aW9uXSBZb3UgYXJlIHVzaW5nIHRoZSBkZXByZWNhdGVkIFwiY29udGVudFNlY3VyaXR5UG9saWN5XCIgcHJvcGVydHkuIFBsZWFzZSB1cGRhdGUgdG8gdGhlIGRlY2xhcmF0aXZlIFwiY3NwQ29uZmlnXCIuIEl0IHdpbGwgZXZlbiBzYXZlIHlvdSBhIHRvbiBvZiBjb2RlLCB0cnVzdCBtZSA6KScpO1xuICAgICAgcmV0dXJuIGNvbnRlbnRTZWN1cml0eVBvbGljeTtcbiAgICB9XG5cbiAgICBpZiAoIWNzcENvbmZpZykge1xuICAgICAgY29uc29sZS5pbmZvKCdbUmlvQ2xvdWRGcm9udERpc3RyaWJ1dGlvbl0gWW91IGRpZCBub3QgcHJvdmlkZSBhIFwiY3NwQ29uZmlnXCIuIFRoZSBkZWZhdWx0IENTUCB3aWxsIGJlIGdlbmVyYXRlZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBnZW5lcmF0ZWRDb25maWcgPSBjcmVhdGVDc3BGcm9tQ29uZmlnKGNzcENvbmZpZyk7XG5cbiAgICBpZiAoY3NwQ29uZmlnPy5sb2dPdXRwdXQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBbUmlvQ2xvdWRGcm9udERpc3RyaWJ1dGlvbl0gR2VuZXJhdGVkIENTUDpcXG4ke2dlbmVyYXRlZENvbmZpZ31gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZ2VuZXJhdGVkQ29uZmlnO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVDc3BGcm9tQ29uZmlnID0gKGNzcENvbmZpZzogQ3NwQ29uZmlnID0gREVGQVVMVF9DU1BfQ09ORklHKTogc3RyaW5nID0+IHtcbiAgY29uc3QgeyBnb29nbGVBbmFseXRpY3MsIHNlbnRyeSwgc3BsaXQsIGRhdGFkb2csIGNvbmZpZ0NhdCwgaGVyZSwgY3VzdG9tRGlyZWN0aXZlcyB9ID0gY3NwQ29uZmlnO1xuICBjb25zdCBkaXJlY3RpdmVPYmplY3RzID0gW292ZXJhbGxEZWZhdWx0c107XG4gIGdvb2dsZUFuYWx5dGljcyAmJiBkaXJlY3RpdmVPYmplY3RzLnB1c2goZ29vZ2xlQW5hbHl0aWNzRGlyZWN0aXZlcyk7XG4gIHNlbnRyeSAmJiBkaXJlY3RpdmVPYmplY3RzLnB1c2goc2VudHJ5RGlyZWN0aXZlcyk7XG4gIHNwbGl0ICYmIGRpcmVjdGl2ZU9iamVjdHMucHVzaChzcGxpdERpcmVjdGl2ZXMpO1xuICBkYXRhZG9nICYmIGRpcmVjdGl2ZU9iamVjdHMucHVzaChkYXRhZG9nRGlyZWN0aXZlcyk7XG4gIGNvbmZpZ0NhdCAmJiBkaXJlY3RpdmVPYmplY3RzLnB1c2goY29uZmlnQ2F0RGlyZWN0aXZlcyk7XG4gIGhlcmUgJiYgZGlyZWN0aXZlT2JqZWN0cy5wdXNoKGhlcmVEaXJlY3RpdmVzKTtcbiAgY3VzdG9tRGlyZWN0aXZlcyAmJiBkaXJlY3RpdmVPYmplY3RzLnB1c2goY3VzdG9tRGlyZWN0aXZlcyk7XG4gIHJldHVybiBjcmVhdGVDc3BGcm9tRGlyZWN0aXZlT2JqZWN0cyhkaXJlY3RpdmVPYmplY3RzKTtcbn07XG5cbmNvbnN0IERFRkFVTFRfQ1NQX0NPTkZJRzogQ3NwQ29uZmlnID0ge1xuICBnb29nbGVBbmFseXRpY3M6IHRydWUsXG4gIHNlbnRyeTogdHJ1ZSxcbiAgc3BsaXQ6IHRydWUsXG4gIGRhdGFkb2c6IHRydWUsXG4gIGNvbmZpZ0NhdDogdHJ1ZSxcbiAgaGVyZTogZmFsc2UsXG59O1xuXG5jb25zdCBSSU9fQU5EX1NFTEYgPSBbXCInc2VsZidcIiwgJ2h0dHBzOi8vKi5yaW8uY2xvdWQnLCAnaHR0cHM6Ly9yaW8uY2xvdWQnXTtcblxuY29uc3Qgb3ZlcmFsbERlZmF1bHRzOiBDc3BEaXJlY3RpdmVzID0ge1xuICBkZWZhdWx0U3JjOiBSSU9fQU5EX1NFTEYsXG4gIGNvbm5lY3RTcmM6IFJJT19BTkRfU0VMRixcbiAgZm9udFNyYzogWy4uLlJJT19BTkRfU0VMRiwgJ2RhdGE6J10sXG4gIGltZ1NyYzogWy4uLlJJT19BTkRfU0VMRiwgJ2RhdGE6J10sXG4gIG9iamVjdFNyYzogW1wiJ25vbmUnXCJdLFxuICBzY3JpcHRTcmM6IFJJT19BTkRfU0VMRixcbiAgc3R5bGVTcmM6IFsuLi5SSU9fQU5EX1NFTEYsIFwiJ3Vuc2FmZS1pbmxpbmUnXCJdLFxuICBiYXNlVXJpOiBbXCInc2VsZidcIl0sXG4gIGZvcm1BY3Rpb246IFJJT19BTkRfU0VMRixcbiAgZnJhbWVBbmNlc3RvcnM6IFJJT19BTkRfU0VMRixcbiAgZnJhbWVTcmM6IFJJT19BTkRfU0VMRixcbn07XG5cbmNvbnN0IGdvb2dsZUFuYWx5dGljc0RpcmVjdGl2ZXM6IENzcERpcmVjdGl2ZXMgPSB7XG4gIGltZ1NyYzogWyd3d3cuZ29vZ2xldGFnbWFuYWdlci5jb20nXSxcbiAgc2NyaXB0U3JjOiBbXG4gICAgJ2h0dHBzOi8vKi5nb29nbGV0YWdtYW5hZ2VyLmNvbScsXG4gICAgLy8gZ29vZ2xlIGFuYXlseXRpY3Mgc2NyaXB0IGRlY2xhcmVkIGluIGluZGV4Lmh0bWxcbiAgICBcIidzaGEyNTYtSERXQWdmVGVNQWd1VDh3Rnc3KzkyWTdpNEVvLzZSVVFRdUEzVFc5SnhiQT0nXCIsXG4gICAgLy8gc2NyaXB0IGxvYWRlZCBieSBnb29nbGUgdGFnIG1hbmFnZXJcbiAgICBcIidzaGEyNTYtcGRtcXErMVE4eXdKR052MmhnQ2VSV3RSejFRZjdQNzlrenhyTGVIYm1XVT0nXCIsXG4gIF0sXG4gIGNvbm5lY3RTcmM6IFtcbiAgICAnaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbScsXG4gICAgJ2h0dHBzOi8vKi5nb29nbGUtYW5hbHl0aWNzLmNvbScsXG4gICAgJ2h0dHBzOi8vKi5hbmFseXRpY3MuZ29vZ2xlLmNvbScsXG4gICAgJ2h0dHBzOi8vKi5nb29nbGV0YWdtYW5hZ2VyLmNvbScsXG4gIF0sXG4gIGZyYW1lU3JjOiBbJ2h0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tJ10sXG59O1xuXG5jb25zdCBzZW50cnlEaXJlY3RpdmVzOiBDc3BEaXJlY3RpdmVzID0ge1xuICBjb25uZWN0U3JjOiBbJ2h0dHBzOi8vKi5zZW50cnkuaW8nLCAnaHR0cHM6Ly9zZW50cnkuaW8nXSxcbn07XG5cbmNvbnN0IHNwbGl0RGlyZWN0aXZlczogQ3NwRGlyZWN0aXZlcyA9IHtcbiAgY29ubmVjdFNyYzogWydodHRwczovL3Nkay5zcGxpdC5pbyddLFxufTtcblxuY29uc3QgZGF0YWRvZ0RpcmVjdGl2ZXM6IENzcERpcmVjdGl2ZXMgPSB7XG4gIGNvbm5lY3RTcmM6IFsnaHR0cHM6Ly8qLmRhdGFkb2docS5ldScsICdodHRwczovLyouYnJvd3Nlci1pbnRha2UtZGF0YWRvZ2hxLmV1JywgJ2h0dHBzOi8vYnJvd3Nlci1pbnRha2UtZGF0YWRvZ2hxLmV1J10sXG59O1xuXG5jb25zdCBjb25maWdDYXREaXJlY3RpdmVzOiBDc3BEaXJlY3RpdmVzID0ge1xuICBjb25uZWN0U3JjOiBbJ2h0dHBzOi8vY2RuLWV1LmNvbmZpZ2NhdC5jb20nXSxcbn07XG5cbmNvbnN0IGhlcmVEaXJlY3RpdmVzOiBDc3BEaXJlY3RpdmVzID0ge1xuICBkZWZhdWx0U3JjOiBbJyouanMuYXBpLmhlcmUuY29tJ10sXG4gIGNvbm5lY3RTcmM6IFsnaHR0cHM6Ly8qLmhlcmVhcGkuY29tJywgJ2h0dHBzOi8vKi5hcGkuaGVyZS5jb20nXSxcbiAgZm9udFNyYzogWydodHRwczovL2pzLmFwaS5oZXJlLmNvbSddLFxuICBpbWdTcmM6IFsnanMuYXBpLmhlcmUuY29tJ10sXG4gIHNjcmlwdFNyYzogWydodHRwczovLyouaGVyZWFwaS5jb20gaHR0cHM6Ly8qLmFwaS5oZXJlLmNvbSddLFxuICBzdHlsZVNyYzogWycqLmhlcmUuY29tJ10sXG59O1xuIl19
199
+ const intercomDirectives = {
200
+ connectSrc: [
201
+ 'https://api-iam.intercom.io',
202
+ 'https://internet-up-realtime.intercom-messenger.com',
203
+ 'wss://nexus-websocket-a.intercom.io',
204
+ 'wss://nexus-websocket-b.intercom.io',
205
+ 'wss://primary-realtime.intercom-messenger.com',
206
+ ],
207
+ fontSrc: ['https://fonts.intercomcdn.com'],
208
+ imgSrc: ['https://js.intercomcdn.com', 'https://static.intercomassets.com'],
209
+ scriptSrc: ["'unsafe-inline'", 'https://widget.intercom.io', 'https://js.intercomcdn.com'],
210
+ mediaSrc: ['https://js.intercomcdn.com'],
211
+ };
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlvLWNsb3VkZnJvbnQtZGlzdHJpYnV0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvY29wLWZyb250ZW5kL2Nsb3VkZnJvbnQvcmlvLWNsb3VkZnJvbnQtZGlzdHJpYnV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLDZDQUFzRDtBQUN0RCwwREFBMEQ7QUFDMUQseURBQXlEO0FBQ3pELDhEQUE4RDtBQUM5RCxtREFBbUQ7QUFDbkQsMkRBQTJEO0FBQzNELHlDQUF5QztBQUN6QywyQ0FBdUM7QUFDdkMsbUVBQXVGO0FBQ3ZGLDhEQUEyRTtBQUMzRSxnRUFBMkQ7QUEwRTNEOzs7O0dBSUc7QUFDSCxNQUFhLHlCQUEwQixTQUFRLHNCQUFTO0lBR3RELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxJQUFJLGlDQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakYsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFDeEMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxHQUFHLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUMvRyxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJO1lBQ3pDLFdBQVcsRUFBRSxVQUFVLENBQUMsa0JBQWtCLENBQUMsSUFBSTtZQUMvQyxRQUFRLEVBQUUsSUFBSTtTQUNmLENBQUM7UUFFRixNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFD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Q1YsNkJBQTZCO1FBQzdCLHFEQUFxRDtRQUNyRCxxQ0FBcUM7UUFDckMscUNBQXFDO1FBQ3JDLCtDQUErQztLQUNoRDtJQUNELE9BQU8sRUFBRSxDQUFDLCtCQUErQixDQUFDO0lBQzFDLE1BQU0sRUFBRSxDQUFDLDRCQUE0QixFQUFFLG1DQUFtQyxDQUFDO0lBQzNFLFNBQVMsRUFBRSxDQUFDLGlCQUFpQixFQUFFLDRCQUE0QixFQUFFLDRCQUE0QixDQUFDO0lBQzFGLFFBQVEsRUFBRSxDQUFDLDRCQUE0QixDQUFDO0NBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgRHVyYXRpb24sIFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBhY20gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNlcnRpZmljYXRlbWFuYWdlcic7XG5pbXBvcnQgKiBhcyBjbG91ZGZyb250IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jbG91ZGZyb250JztcbmltcG9ydCAqIGFzIG9yaWdpbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2lucyc7XG5pbXBvcnQgKiBhcyByb3V0ZTUzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1yb3V0ZTUzJztcbmltcG9ydCAqIGFzIHRhcmdldHMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMtdGFyZ2V0cyc7XG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBjcmVhdGVDc3BGcm9tRGlyZWN0aXZlT2JqZWN0cywgQ3NwRGlyZWN0aXZlcyB9IGZyb20gJy4vY29udGVudFNlY3VyaXR5UG9saWN5JztcbmltcG9ydCB7IENsYWlkb21ldGVyLCBDbGFpZG9tZXRlclByb2R1Y3QgfSBmcm9tICcuLi8uLi8uLi9yaW8tY2xhaWRvbWV0ZXInO1xuaW1wb3J0IHsgUmlvTGFuZGluZ1pvbmUgfSBmcm9tICcuLi8uLi8uLi9yaW8tbGFuZGluZy16b25lJztcblxuLyoqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgUmlvQ2xvdWRmcm9udERpc3RyaWJ1dGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmlvQ2xvdWRmcm9udERpc3RyaWJ1dGlvblByb3BzIHtcbiAgLyoqIFRoZSByZWZlcmVuY2UgdG8gdGhlIFMzIGJ1Y2tldCBjb250YWluaW5nIHRoZSBmaWxlcyB0byBzZXJ2ZS4gKi9cbiAgcmVhZG9ubHkgY29udGVudEJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICAgKiBUaGUgc3ViZG9tYWluIHdoZXJlIHRoZSBjb250ZW50IHNob3VsZCBiZSBzZXJ2ZWQuXG4gICAgICpcbiAgICAgKiBJZiBub3QgZ2l2ZW4sIGFuIGVtcHR5IHN0cmluZywgaS5lLiBubyBzdWJEb21haW4gd2lsbCBiZSB1c2VkLiBJbnN0ZWFkLCB0aGUgbmFtZSBvZiB0aGUgaG9zdGVkIHpvbmUgd2lsbCBiZSB1c2VkXG4gICAgICogZGlyZWN0bHkuXG4gICAgICovXG4gIHJlYWRvbmx5IHN1YkRvbWFpbj86IHN0cmluZztcblxuICAvKipcbiAgICAgKiBUaGUgaG9zdGVkIHpvbmUgb2YgdGhlIGRvbWFpbiB1bmRlciB3aGljaCB0aGUgY29udGVudCB3aWxsIGJlIHNlcnZlZC5cbiAgICAgKlxuICAgICAqIElmIG5vdCBnaXZlbiwgdGhlIGRlZmF1bHQgaG9zdGVkIFpvbmUgcHJvdmlkZWQgYnkgUklPIHNldHVwIHdpbGwgYmUgdXNlZC5cbiAgICAgKi9cbiAgcmVhZG9ubHkgaG9zdGVkWm9uZT86IHJvdXRlNTMuSUhvc3RlZFpvbmU7XG5cbiAgLyoqXG4gICAgICogQWxsb3dzIGRlY2xhcmF0aXZlbHkgZGVmaW5pbmcgeW91ciBkZXNpcmVkIENTUC5cbiAgICAgKlxuICAgICAqIFRoZSBSSU8gZGVmYXVsdHMgYXJlIGFsd2F5cyBpbmNsdWRlZCwgYW5kIHlvdSBjYW4gY2hvb3NlIHdoaWNoIHNlcnZpY2VzIHlvdSB3YW50IHRvIGluY2x1ZGUgKGUuZy4gQ29uZmlnQ2F0KSBvclxuICAgICAqIG5vdC4gWW91IGNhbiBhbHNvIHByb3ZpZGUgY3VzdG9tIGRpcmVjdGl2ZXMgLyB2YWx1ZXMgdXNpbmcgdGhlIFwiY3VzdG9tXCIga2V5LlxuICAgICAqL1xuICByZWFkb25seSBjc3BDb25maWc/OiBDc3BDb25maWc7XG5cbiAgLyoqXG4gICAgICogVGhlIGxpc3Qgb2YgZnVuY3Rpb25zIHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgb2YgdGhlIGRpc3RyaWJ1dGlvbi5cbiAgICAgKlxuICAgICAqIElmIG5vdCBnaXZlbiwgbm8gZnVuY3Rpb25zIHdpbGwgYmUgYXNzaWduZWQuXG4gICAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uQXNzb2NpYXRpb25zPzogY2xvdWRmcm9udC5GdW5jdGlvbkFzc29jaWF0aW9uW107XG5cbiAgLyoqXG4gICAqIFRoZSBmcmFtZSBvcHRpb25zIHRvIGJlIHVzZWQgaW4gdGhlIHJlc3BvbnNlIGhlYWRlcnMgcG9saWN5LlxuICAgKlxuICAgKiBJZiBub3QgZ2l2ZW4sIHRoZSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUgYERFTllgICYgb3ZlcnJpZGU6IHRydWUuXG4gICAqL1xuICByZWFkb25seSBmcmFtZU9wdGlvbnM/OiBjbG91ZGZyb250LlJlc3BvbnNlSGVhZGVyc0ZyYW1lT3B0aW9ucztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDc3BDb25maWcge1xuICAvKiogSW5jbHVkZSBHb29nbGUgQW5hbHl0aWNzIC8gR29vZ2xlIFRhZyBtYW5hZ2VyLiAqL1xuICByZWFkb25seSBnb29nbGVBbmFseXRpY3M/OiBib29sZWFuO1xuXG4gIC8qKiBJbmNsdWRlIFNlbnRyeS4gKi9cbiAgcmVhZG9ubHkgc2VudHJ5PzogYm9vbGVhbjtcblxuICAvKiogSW5jbHVkZSBTcGxpdC5pby4gKi9cbiAgcmVhZG9ubHkgc3BsaXQ/OiBib29sZWFuO1xuXG4gIC8qKiBJbmNsdWRlIERhdGFkb2cuICovXG4gIHJlYWRvbmx5IGRhdGFkb2c/OiBib29sZWFuO1xuXG4gIC8qKiBJbmNsdWRlIENvbmZpZ0NhdC4gKi9cbiAgcmVhZG9ubHkgY29uZmlnQ2F0PzogYm9vbGVhbjtcblxuICAvKiogSW5jbHVkZSBIZXJlIE1hcHMuICovXG4gIHJlYWRvbmx5IGhlcmU/OiBib29sZWFuO1xuXG4gIC8qKiBJbmNsdWRlIEludGVyY29tLiAqL1xuICByZWFkb25seSBpbnRlcmNvbT86IGJvb2xlYW47XG5cbiAgLyoqIFByaW50cyB0aGUgZ2VuZXJhdGVkIENTUCB0byB0aGUgY29uc29sZS4gKi9cbiAgcmVhZG9ubHkgbG9nT3V0cHV0PzogYm9vbGVhbjtcblxuICAvKiogWW91IGNhbiBkZWZpbmUgY3VzdG9tIHZhbHVlcyBmb3IgYW55IENTUCBkaXJlY3RpdmUgd2l0aCB0aGlzLiAqL1xuICByZWFkb25seSBjdXN0b21EaXJlY3RpdmVzPzogQ3NwRGlyZWN0aXZlcztcbn1cblxuLyoqXG4gKiBBIENvbnN0cnVjdCB3aGljaCBjcmVhdGVzIGEgZGVmYXVsdCBjbG91ZGZyb250IGRpc3RyaWJ1dGlvbiB1c2luZyBhIHMzIGJ1Y2tldCBhcyBvcmlnaW4uXG4gKlxuICogSW50ZW5kZWQgZm9yIGRlbGl2ZXJ5IG9mIGh0bWwgZG9jdW1lbnRzLiBJdCBzZXRzIHNvbWUgZGVmYXVsdHMgYSByZWNvbW1lbmRlZCBieSBBV1MgYW5kIHByb3ZpZGVzIENTUCBzZXR0aW5ncy5cbiAqL1xuZXhwb3J0IGNsYXNzIFJpb0Nsb3VkZnJvbnREaXN0cmlidXRpb24gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICByZWFkb25seSBkaXN0cmlidXRpb246IGNsb3VkZnJvbnQuSURpc3RyaWJ1dGlvbjtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUmlvQ2xvdWRmcm9udERpc3RyaWJ1dGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGhvc3RlZFpvbmUgPSBwcm9wcy5ob3N0ZWRab25lID8/IFJpb0xhbmRpbmdab25lLmdldERlZmF1bHRIb3N0ZWRab25lKHRoaXMpO1xuICAgIGNvbnN0IHN1YkRvbWFpbiA9IHByb3BzLnN1YkRvbWFpbiA/PyAnJztcbiAgICBjb25zdCBkb21haW5OYW1lID0gcHJvcHMuc3ViRG9tYWluID09PSB1bmRlZmluZWQgPyBob3N0ZWRab25lLnpvbmVOYW1lIDogc3ViRG9tYWluICsgJy4nICsgaG9zdGVkWm9uZS56b25lTmFtZTtcbiAgICBjb25zdCBmcmFtZU9wdGlvbnMgPSBwcm9wcy5mcmFtZU9wdGlvbnMgPz8ge1xuICAgICAgZnJhbWVPcHRpb246IGNsb3VkZnJvbnQuSGVhZGVyc0ZyYW1lT3B0aW9uLkRFTlksXG4gICAgICBvdmVycmlkZTogdHJ1ZSxcbiAgICB9O1xuXG4gICAgY29uc3QgY29udGVudFNlY3VyaXR5UG9saWN5ID0gdGhpcy5nZW5lcmF0ZUNzcChwcm9wcyk7XG5cbiAgICBjb25zdCBjZXJ0aWZpY2F0ZSA9IG5ldyBhY20uRG5zVmFsaWRhdGVkQ2VydGlmaWNhdGUodGhpcywgJ0Nsb3VkZnJvbnREaXN0cmlidXRpb25DZXJ0aWZpY2F0ZScsIHtcbiAgICAgIGRvbWFpbk5hbWU6IGRvbWFpbk5hbWUsXG4gICAgICBob3N0ZWRab25lOiBob3N0ZWRab25lLFxuICAgICAgcmVnaW9uOiAndXMtZWFzdC0xJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgJ0Zyb250RW5kQnVja2V0Jywge1xuICAgICAgYnVja2V0TmFtZTogcHJvcHMuY29udGVudEJ1Y2tldE5hbWUsXG4gICAgICBlbmNyeXB0aW9uOiBzMy5CdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgICB2ZXJzaW9uZWQ6IHRydWUsXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICAgIGxpZmVjeWNsZVJ1bGVzOiBbXG4gICAgICAgIHsgaWQ6ICdFeHBpcmVzT2JqZWN0cycsIGV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoOTApLCBub25jdXJyZW50VmVyc2lvbkV4cGlyYXRpb246IER1cmF0aW9uLmRheXMoMzApIH0sXG4gICAgICBdLFxuICAgICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICAgIGNvcnM6IFt7IGFsbG93ZWRNZXRob2RzOiBbczMuSHR0cE1ldGhvZHMuR0VUXSwgYWxsb3dlZE9yaWdpbnM6IFsnKiddLCBhbGxvd2VkSGVhZGVyczogWycqJ10gfV0sXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNwb25zZUhlYWRlcnNQb2xpY3kgPSBuZXcgY2xvdWRmcm9udC5SZXNwb25zZUhlYWRlcnNQb2xpY3kodGhpcywgJ1Jlc3BvbnNlSGVhZGVyc1BvbGljeScsIHtcbiAgICAgIGNvbW1lbnQ6ICdQb2xpY3kgZm9yIENsb3VkRnJvbnQgcmVzcG9uc2VzJyxcbiAgICAgIGNvcnNCZWhhdmlvcjoge1xuICAgICAgICBhY2Nlc3NDb250cm9sQWxsb3dDcmVkZW50aWFsczogZmFsc2UsXG4gICAgICAgIGFjY2Vzc0NvbnRyb2xBbGxvd0hlYWRlcnM6IFsnKiddLFxuICAgICAgICBhY2Nlc3NDb250cm9sQWxsb3dNZXRob2RzOiBbJ0dFVCddLFxuICAgICAgICBhY2Nlc3NDb250cm9sQWxsb3dPcmlnaW5zOiBbaG9zdGVkWm9uZS56b25lTmFtZV0sXG4gICAgICAgIGFjY2Vzc0NvbnRyb2xNYXhBZ2U6IER1cmF0aW9uLnNlY29uZHMoNjAwKSxcbiAgICAgICAgb3JpZ2luT3ZlcnJpZGU6IHRydWUsXG4gICAgICB9LFxuICAgICAgc2VjdXJpdHlIZWFkZXJzQmVoYXZpb3I6IHtcbiAgICAgICAgY29udGVudFNlY3VyaXR5UG9saWN5OiB7IGNvbnRlbnRTZWN1cml0eVBvbGljeTogY29udGVudFNlY3VyaXR5UG9saWN5LCBvdmVycmlkZTogdHJ1ZSB9LFxuICAgICAgICBjb250ZW50VHlwZU9wdGlvbnM6IHsgb3ZlcnJpZGU6IHRydWUgfSxcbiAgICAgICAgZnJhbWVPcHRpb25zOiBmcmFtZU9wdGlvbnMsXG4gICAgICAgIHJlZmVycmVyUG9saWN5OiB7XG4gICAgICAgICAgcmVmZXJyZXJQb2xpY3k6IGNsb3VkZnJvbnQuSGVhZGVyc1JlZmVycmVyUG9saWN5LlNUUklDVF9PUklHSU5fV0hFTl9DUk9TU19PUklHSU4sXG4gICAgICAgICAgb3ZlcnJpZGU6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHN0cmljdFRyYW5zcG9ydFNlY3VyaXR5OiB7IGFjY2Vzc0NvbnRyb2xNYXhBZ2U6IER1cmF0aW9uLmRheXMoMzY1KSwgaW5jbHVkZVN1YmRvbWFpbnM6IHRydWUsIG92ZXJyaWRlOiB0cnVlIH0sXG4gICAgICAgIHhzc1Byb3RlY3Rpb246IHsgcHJvdGVjdGlvbjogdHJ1ZSwgbW9kZUJsb2NrOiB0cnVlLCBvdmVycmlkZTogdHJ1ZSB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG9yaWdpbkFjY2Vzc0NvbnRyb2wgPSBuZXcgY2xvdWRmcm9udC5TM09yaWdpbkFjY2Vzc0NvbnRyb2wodGhpcywgJ09yaWdpbkFjY2Vzc0NvbnRyb2wnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogYEFjY2VzcyBjb250cm9sIGZvciAqLiR7ZG9tYWluTmFtZX1gLFxuICAgIH0pO1xuXG4gICAgdGhpcy5kaXN0cmlidXRpb24gPSBuZXcgY2xvdWRmcm9udC5EaXN0cmlidXRpb24odGhpcywgJ0Rpc3RyaWJ1dGlvbicsIHtcbiAgICAgIGRlZmF1bHRCZWhhdmlvcjoge1xuICAgICAgICBvcmlnaW46IG9yaWdpbnMuUzNCdWNrZXRPcmlnaW4ud2l0aE9yaWdpbkFjY2Vzc0NvbnRyb2woYnVja2V0LCB7XG4gICAgICAgICAgb3JpZ2luQWNjZXNzQ29udHJvbDogb3JpZ2luQWNjZXNzQ29udHJvbCxcbiAgICAgICAgfSksXG4gICAgICAgIG9yaWdpblJlcXVlc3RQb2xpY3k6IGNsb3VkZnJvbnQuT3JpZ2luUmVxdWVzdFBvbGljeS5DT1JTX1MzX09SSUdJTixcbiAgICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IGNsb3VkZnJvbnQuVmlld2VyUHJvdG9jb2xQb2xpY3kuUkVESVJFQ1RfVE9fSFRUUFMsXG4gICAgICAgIGNhY2hlUG9saWN5OiBjbG91ZGZyb250LkNhY2hlUG9saWN5LkNBQ0hJTkdfT1BUSU1JWkVELFxuICAgICAgICByZXNwb25zZUhlYWRlcnNQb2xpY3k6IHJlc3BvbnNlSGVhZGVyc1BvbGljeSxcbiAgICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICAgIGZ1bmN0aW9uQXNzb2NpYXRpb25zOiBwcm9wcy5mdW5jdGlvbkFzc29jaWF0aW9ucyxcbiAgICAgIH0sXG4gICAgICBkb21haW5OYW1lczogW2RvbWFpbk5hbWVdLFxuICAgICAgcHJpY2VDbGFzczogY2xvdWRmcm9udC5QcmljZUNsYXNzLlBSSUNFX0NMQVNTXzEwMCxcbiAgICAgIGNlcnRpZmljYXRlOiBjZXJ0aWZpY2F0ZSxcbiAgICAgIGRlZmF1bHRSb290T2JqZWN0OiAnaW5kZXguaHRtbCcsXG4gICAgICBtaW5pbXVtUHJvdG9jb2xWZXJzaW9uOiBjbG91ZGZyb250LlNlY3VyaXR5UG9saWN5UHJvdG9jb2wuVExTX1YxXzJfMjAxOCxcbiAgICAgIGVycm9yUmVzcG9uc2VzOiBbXG4gICAgICAgIHsgaHR0cFN0YXR1czogNDA0LCByZXNwb25zZUh0dHBTdGF0dXM6IDIwMCwgcmVzcG9uc2VQYWdlUGF0aDogJy9pbmRleC5odG1sJywgdHRsOiBEdXJhdGlvbi5taW51dGVzKDUpIH0sXG4gICAgICAgIHsgaHR0cFN0YXR1czogNDAzLCByZXNwb25zZUh0dHBTdGF0dXM6IDIwMCwgcmVzcG9uc2VQYWdlUGF0aDogJy9pbmRleC5odG1sJywgdHRsOiBEdXJhdGlvbi5taW51dGVzKDUpIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgbmV3IHJvdXRlNTMuUmVjb3JkU2V0KHRoaXMsICdSZWNvcmRTZXQnLCB7XG4gICAgICByZWNvcmROYW1lOiBzdWJEb21haW4sXG4gICAgICB0YXJnZXQ6IHJvdXRlNTMuUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgdGFyZ2V0cy5DbG91ZEZyb250VGFyZ2V0KHRoaXMuZGlzdHJpYnV0aW9uKSksXG4gICAgICB6b25lOiBob3N0ZWRab25lLFxuICAgICAgcmVjb3JkVHlwZTogcm91dGU1My5SZWNvcmRUeXBlLkEsXG4gICAgfSk7XG5cbiAgICBjb25zdCBbZmVhdHVyZSwgcGFja2FnZU5hbWVdID0gX19kaXJuYW1lLnNwbGl0KHBhdGguc2VwKS5yZXZlcnNlKCk7XG5cbiAgICBuZXcgQ2xhaWRvbWV0ZXIodGhpcywgJ0NsYWlkb21ldGVyJywge1xuICAgICAgcHJvZHVjdDogQ2xhaWRvbWV0ZXJQcm9kdWN0LkNES19DT05UUklCVVRJT04sXG4gICAgICBwYWNrYWdlTmFtZSxcbiAgICAgIGZlYXR1cmUsXG4gICAgICB2ZXJzaW9uOiAnMC4wLjUnLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZW5lcmF0ZUNzcCh7IGNzcENvbmZpZyB9OiBSaW9DbG91ZGZyb250RGlzdHJpYnV0aW9uUHJvcHMpOiBzdHJpbmcge1xuICAgIGlmICghY3NwQ29uZmlnKSB7XG4gICAgICBjb25zb2xlLmluZm8oJ1tSaW9DbG91ZEZyb250RGlzdHJpYnV0aW9uXSBZb3UgZGlkIG5vdCBwcm92aWRlIGEgXCJjc3BDb25maWdcIi4gVGhlIGRlZmF1bHQgQ1NQIHdpbGwgYmUgZ2VuZXJhdGVkLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGdlbmVyYXRlZENvbmZpZyA9IGNyZWF0ZUNzcEZyb21Db25maWcoY3NwQ29uZmlnKTtcblxuICAgIGlmIChjc3BDb25maWc/LmxvZ091dHB1dCkge1xuICAgICAgY29uc29sZS5sb2coYFtSaW9DbG91ZEZyb250RGlzdHJpYnV0aW9uXSBHZW5lcmF0ZWQgQ1NQOlxcbiR7Z2VuZXJhdGVkQ29uZmlnfWApO1xuICAgIH1cblxuICAgIHJldHVybiBnZW5lcmF0ZWRDb25maWc7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUNzcEZyb21Db25maWcgPSAoY3NwQ29uZmlnOiBDc3BDb25maWcgPSBERUZBVUxUX0NTUF9DT05GSUcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCB7IGdvb2dsZUFuYWx5dGljcywgc2VudHJ5LCBzcGxpdCwgZGF0YWRvZywgY29uZmlnQ2F0LCBoZXJlLCBpbnRlcmNvbSwgY3VzdG9tRGlyZWN0aXZlcyB9ID0gY3NwQ29uZmlnO1xuICBjb25zdCBkaXJlY3RpdmVPYmplY3RzID0gW292ZXJhbGxEZWZhdWx0c107XG4gIGdvb2dsZUFuYWx5dGljcyAmJiBkaXJlY3RpdmVPYmplY3RzLnB1c2goZ29vZ2xlQW5hbHl0aWNzRGlyZWN0aXZlcyk7XG4gIHNlbnRyeSAmJiBkaXJlY3RpdmVPYmplY3RzLnB1c2goc2VudHJ5RGlyZWN0aXZlcyk7XG4gIHNwbGl0ICYmIGRpcmVjdGl2ZU9iamVjdHMucHVzaChzcGxpdERpcmVjdGl2ZXMpO1xuICBkYXRhZG9nICYmIGRpcmVjdGl2ZU9iamVjdHMucHVzaChkYXRhZG9nRGlyZWN0aXZlcyk7XG4gIGNvbmZpZ0NhdCAmJiBkaXJlY3RpdmVPYmplY3RzLnB1c2goY29uZmlnQ2F0RGlyZWN0aXZlcyk7XG4gIGhlcmUgJiYgZGlyZWN0aXZlT2JqZWN0cy5wdXNoKGhlcmVEaXJlY3RpdmVzKTtcbiAgaW50ZXJjb20gJiYgZGlyZWN0aXZlT2JqZWN0cy5wdXNoKGludGVyY29tRGlyZWN0aXZlcyk7XG4gIGN1c3RvbURpcmVjdGl2ZXMgJiYgZGlyZWN0aXZlT2JqZWN0cy5wdXNoKGN1c3RvbURpcmVjdGl2ZXMpO1xuICByZXR1cm4gY3JlYXRlQ3NwRnJvbURpcmVjdGl2ZU9iamVjdHMoZGlyZWN0aXZlT2JqZWN0cyk7XG59O1xuXG5jb25zdCBERUZBVUxUX0NTUF9DT05GSUc6IENzcENvbmZpZyA9IHtcbiAgZ29vZ2xlQW5hbHl0aWNzOiB0cnVlLFxuICBzZW50cnk6IHRydWUsXG4gIHNwbGl0OiB0cnVlLFxuICBkYXRhZG9nOiB0cnVlLFxuICBjb25maWdDYXQ6IHRydWUsXG4gIGhlcmU6IGZhbHNlLFxufTtcblxuY29uc3QgUklPX0FORF9TRUxGID0gW1wiJ3NlbGYnXCIsICdodHRwczovLyoucmlvLmNsb3VkJywgJ2h0dHBzOi8vcmlvLmNsb3VkJ107XG5cbmNvbnN0IG92ZXJhbGxEZWZhdWx0czogQ3NwRGlyZWN0aXZlcyA9IHtcbiAgZGVmYXVsdFNyYzogUklPX0FORF9TRUxGLFxuICBjb25uZWN0U3JjOiBSSU9fQU5EX1NFTEYsXG4gIGZvbnRTcmM6IFsuLi5SSU9fQU5EX1NFTEYsICdkYXRhOiddLFxuICBpbWdTcmM6IFsuLi5SSU9fQU5EX1NFTEYsICdkYXRhOiddLFxuICBvYmplY3RTcmM6IFtcIidub25lJ1wiXSxcbiAgc2NyaXB0U3JjOiBSSU9fQU5EX1NFTEYsXG4gIHN0eWxlU3JjOiBbLi4uUklPX0FORF9TRUxGLCBcIid1bnNhZmUtaW5saW5lJ1wiXSxcbiAgYmFzZVVyaTogW1wiJ3NlbGYnXCJdLFxuICBmb3JtQWN0aW9uOiBSSU9fQU5EX1NFTEYsXG4gIGZyYW1lQW5jZXN0b3JzOiBSSU9fQU5EX1NFTEYsXG4gIGZyYW1lU3JjOiBSSU9fQU5EX1NFTEYsXG59O1xuXG5jb25zdCBnb29nbGVBbmFseXRpY3NEaXJlY3RpdmVzOiBDc3BEaXJlY3RpdmVzID0ge1xuICBpbWdTcmM6IFsnd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tJ10sXG4gIHNjcmlwdFNyYzogW1xuICAgICdodHRwczovLyouZ29vZ2xldGFnbWFuYWdlci5jb20nLFxuICAgIC8vIGdvb2dsZSBhbmF5bHl0aWNzIHNjcmlwdCBkZWNsYXJlZCBpbiBpbmRleC5odG1sXG4gICAgXCInc2hhMjU2LUhEV0FnZlRlTUFndVQ4d0Z3Nys5Mlk3aTRFby82UlVRUXVBM1RXOUp4YkE9J1wiLFxuICAgIC8vIHNjcmlwdCBsb2FkZWQgYnkgZ29vZ2xlIHRhZyBtYW5hZ2VyXG4gICAgXCInc2hhMjU2LXBkbXFxKzFROHl3SkdOdjJoZ0NlUld0UnoxUWY3UDc5a3p4ckxlSGJtV1U9J1wiLFxuICBdLFxuICBjb25uZWN0U3JjOiBbXG4gICAgJ2h0dHBzOi8vd3d3Lmdvb2dsZS5jb20nLFxuICAgICdodHRwczovLyouZ29vZ2xlLWFuYWx5dGljcy5jb20nLFxuICAgICdodHRwczovLyouYW5hbHl0aWNzLmdvb2dsZS5jb20nLFxuICAgICdodHRwczovLyouZ29vZ2xldGFnbWFuYWdlci5jb20nLFxuICBdLFxuICBmcmFtZVNyYzogWydodHRwczovL3d3dy5nb29nbGV0YWdtYW5hZ2VyLmNvbSddLFxufTtcblxuY29uc3Qgc2VudHJ5RGlyZWN0aXZlczogQ3NwRGlyZWN0aXZlcyA9IHtcbiAgY29ubmVjdFNyYzogWydodHRwczovLyouc2VudHJ5LmlvJywgJ2h0dHBzOi8vc2VudHJ5LmlvJ10sXG59O1xuXG5jb25zdCBzcGxpdERpcmVjdGl2ZXM6IENzcERpcmVjdGl2ZXMgPSB7XG4gIGNvbm5lY3RTcmM6IFsnaHR0cHM6Ly9zZGsuc3BsaXQuaW8nXSxcbn07XG5cbmNvbnN0IGRhdGFkb2dEaXJlY3RpdmVzOiBDc3BEaXJlY3RpdmVzID0ge1xuICBjb25uZWN0U3JjOiBbJ2h0dHBzOi8vKi5kYXRhZG9naHEuZXUnLCAnaHR0cHM6Ly8qLmJyb3dzZXItaW50YWtlLWRhdGFkb2docS5ldScsICdodHRwczovL2Jyb3dzZXItaW50YWtlLWRhdGFkb2docS5ldSddLFxufTtcblxuY29uc3QgY29uZmlnQ2F0RGlyZWN0aXZlczogQ3NwRGlyZWN0aXZlcyA9IHtcbiAgY29ubmVjdFNyYzogWydodHRwczovL2Nkbi1ldS5jb25maWdjYXQuY29tJ10sXG59O1xuXG5jb25zdCBoZXJlRGlyZWN0aXZlczogQ3NwRGlyZWN0aXZlcyA9IHtcbiAgZGVmYXVsdFNyYzogWycqLmpzLmFwaS5oZXJlLmNvbSddLFxuICBjb25uZWN0U3JjOiBbJ2h0dHBzOi8vKi5oZXJlYXBpLmNvbScsICdodHRwczovLyouYXBpLmhlcmUuY29tJ10sXG4gIGZvbnRTcmM6IFsnaHR0cHM6Ly9qcy5hcGkuaGVyZS5jb20nXSxcbiAgaW1nU3JjOiBbJ2pzLmFwaS5oZXJlLmNvbSddLFxuICBzY3JpcHRTcmM6IFsnaHR0cHM6Ly8qLmhlcmVhcGkuY29tIGh0dHBzOi8vKi5hcGkuaGVyZS5jb20nXSxcbiAgc3R5bGVTcmM6IFsnKi5oZXJlLmNvbSddLFxufTtcblxuY29uc3QgaW50ZXJjb21EaXJlY3RpdmVzOiBDc3BEaXJlY3RpdmVzID0ge1xuICBjb25uZWN0U3JjOiBbXG4gICAgJ2h0dHBzOi8vYXBpLWlhbS5pbnRlcmNvbS5pbycsXG4gICAgJ2h0dHBzOi8vaW50ZXJuZXQtdXAtcmVhbHRpbWUuaW50ZXJjb20tbWVzc2VuZ2VyLmNvbScsXG4gICAgJ3dzczovL25leHVzLXdlYnNvY2tldC1hLmludGVyY29tLmlvJyxcbiAgICAnd3NzOi8vbmV4dXMtd2Vic29ja2V0LWIuaW50ZXJjb20uaW8nLFxuICAgICd3c3M6Ly9wcmltYXJ5LXJlYWx0aW1lLmludGVyY29tLW1lc3Nlbmdlci5jb20nLFxuICBdLFxuICBmb250U3JjOiBbJ2h0dHBzOi8vZm9udHMuaW50ZXJjb21jZG4uY29tJ10sXG4gIGltZ1NyYzogWydodHRwczovL2pzLmludGVyY29tY2RuLmNvbScsICdodHRwczovL3N0YXRpYy5pbnRlcmNvbWFzc2V0cy5jb20nXSxcbiAgc2NyaXB0U3JjOiBbXCIndW5zYWZlLWlubGluZSdcIiwgJ2h0dHBzOi8vd2lkZ2V0LmludGVyY29tLmlvJywgJ2h0dHBzOi8vanMuaW50ZXJjb21jZG4uY29tJ10sXG4gIG1lZGlhU3JjOiBbJ2h0dHBzOi8vanMuaW50ZXJjb21jZG4uY29tJ10sXG59O1xuIl19