cdklabs-projen-project-types 0.3.3 → 0.3.5

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/.jsii CHANGED
@@ -10921,7 +10921,7 @@
10921
10921
  },
10922
10922
  "locationInModule": {
10923
10923
  "filename": "src/yarn/monorepo-release.ts",
10924
- "line": 40
10924
+ "line": 41
10925
10925
  },
10926
10926
  "parameters": [
10927
10927
  {
@@ -10942,7 +10942,7 @@
10942
10942
  "kind": "class",
10943
10943
  "locationInModule": {
10944
10944
  "filename": "src/yarn/monorepo-release.ts",
10945
- "line": 13
10945
+ "line": 14
10946
10946
  },
10947
10947
  "methods": [
10948
10948
  {
@@ -10952,7 +10952,7 @@
10952
10952
  },
10953
10953
  "locationInModule": {
10954
10954
  "filename": "src/yarn/monorepo-release.ts",
10955
- "line": 18
10955
+ "line": 19
10956
10956
  },
10957
10957
  "name": "of",
10958
10958
  "parameters": [
@@ -10977,7 +10977,7 @@
10977
10977
  },
10978
10978
  "locationInModule": {
10979
10979
  "filename": "src/yarn/monorepo-release.ts",
10980
- "line": 61
10980
+ "line": 62
10981
10981
  },
10982
10982
  "name": "addWorkspace",
10983
10983
  "parameters": [
@@ -11002,7 +11002,7 @@
11002
11002
  },
11003
11003
  "locationInModule": {
11004
11004
  "filename": "src/yarn/monorepo-release.ts",
11005
- "line": 94
11005
+ "line": 96
11006
11006
  },
11007
11007
  "name": "preSynthesize",
11008
11008
  "overrides": "projen.Component"
@@ -11013,7 +11013,7 @@
11013
11013
  },
11014
11014
  "locationInModule": {
11015
11015
  "filename": "src/yarn/monorepo-release.ts",
11016
- "line": 53
11016
+ "line": 54
11017
11017
  },
11018
11018
  "name": "workspaceRelease",
11019
11019
  "parameters": [
@@ -11463,7 +11463,7 @@
11463
11463
  "kind": "interface",
11464
11464
  "locationInModule": {
11465
11465
  "filename": "src/yarn/typescript-workspace.ts",
11466
- "line": 317
11466
+ "line": 319
11467
11467
  },
11468
11468
  "name": "ReferenceOptions",
11469
11469
  "namespace": "yarn",
@@ -11479,7 +11479,7 @@
11479
11479
  "immutable": true,
11480
11480
  "locationInModule": {
11481
11481
  "filename": "src/yarn/typescript-workspace.ts",
11482
- "line": 328
11482
+ "line": 330
11483
11483
  },
11484
11484
  "name": "versionType",
11485
11485
  "optional": true,
@@ -11532,7 +11532,7 @@
11532
11532
  },
11533
11533
  "locationInModule": {
11534
11534
  "filename": "src/yarn/typescript-workspace.ts",
11535
- "line": 277
11535
+ "line": 279
11536
11536
  },
11537
11537
  "name": "addEslintRcFix",
11538
11538
  "protected": true
@@ -11544,7 +11544,7 @@
11544
11544
  },
11545
11545
  "locationInModule": {
11546
11546
  "filename": "src/yarn/typescript-workspace.ts",
11547
- "line": 263
11547
+ "line": 265
11548
11548
  },
11549
11549
  "name": "addTsconfigDevFix",
11550
11550
  "protected": true
@@ -11556,7 +11556,7 @@
11556
11556
  },
11557
11557
  "locationInModule": {
11558
11558
  "filename": "src/yarn/typescript-workspace.ts",
11559
- "line": 304
11559
+ "line": 306
11560
11560
  },
11561
11561
  "name": "customizeReference",
11562
11562
  "parameters": [
@@ -11582,7 +11582,7 @@
11582
11582
  },
11583
11583
  "locationInModule": {
11584
11584
  "filename": "src/yarn/typescript-workspace.ts",
11585
- "line": 295
11585
+ "line": 297
11586
11586
  },
11587
11587
  "name": "workspaceDependencies",
11588
11588
  "parameters": [
@@ -14613,7 +14613,7 @@
14613
14613
  },
14614
14614
  "locationInModule": {
14615
14615
  "filename": "src/yarn/typescript-workspace-release.ts",
14616
- "line": 28
14616
+ "line": 30
14617
14617
  },
14618
14618
  "parameters": [
14619
14619
  {
@@ -14633,7 +14633,7 @@
14633
14633
  "kind": "class",
14634
14634
  "locationInModule": {
14635
14635
  "filename": "src/yarn/typescript-workspace-release.ts",
14636
- "line": 23
14636
+ "line": 25
14637
14637
  },
14638
14638
  "name": "WorkspaceRelease",
14639
14639
  "namespace": "yarn",
@@ -14645,7 +14645,7 @@
14645
14645
  "immutable": true,
14646
14646
  "locationInModule": {
14647
14647
  "filename": "src/yarn/typescript-workspace-release.ts",
14648
- "line": 26
14648
+ "line": 28
14649
14649
  },
14650
14650
  "name": "workspace",
14651
14651
  "type": {
@@ -14659,7 +14659,7 @@
14659
14659
  "immutable": true,
14660
14660
  "locationInModule": {
14661
14661
  "filename": "src/yarn/typescript-workspace-release.ts",
14662
- "line": 24
14662
+ "line": 26
14663
14663
  },
14664
14664
  "name": "publisher",
14665
14665
  "optional": true,
@@ -14674,7 +14674,7 @@
14674
14674
  "immutable": true,
14675
14675
  "locationInModule": {
14676
14676
  "filename": "src/yarn/typescript-workspace-release.ts",
14677
- "line": 25
14677
+ "line": 27
14678
14678
  },
14679
14679
  "name": "version",
14680
14680
  "optional": true,
@@ -14723,13 +14723,29 @@
14723
14723
  "immutable": true,
14724
14724
  "locationInModule": {
14725
14725
  "filename": "src/yarn/typescript-workspace-release.ts",
14726
- "line": 15
14726
+ "line": 17
14727
14727
  },
14728
14728
  "name": "versionBranchOptions",
14729
14729
  "type": {
14730
14730
  "fqn": "projen.VersionBranchOptions"
14731
14731
  }
14732
14732
  },
14733
+ {
14734
+ "abstract": true,
14735
+ "docs": {
14736
+ "stability": "stable"
14737
+ },
14738
+ "immutable": true,
14739
+ "locationInModule": {
14740
+ "filename": "src/yarn/typescript-workspace-release.ts",
14741
+ "line": 16
14742
+ },
14743
+ "name": "environment",
14744
+ "optional": true,
14745
+ "type": {
14746
+ "primitive": "string"
14747
+ }
14748
+ },
14733
14749
  {
14734
14750
  "abstract": true,
14735
14751
  "docs": {
@@ -14762,6 +14778,22 @@
14762
14778
  "primitive": "string"
14763
14779
  }
14764
14780
  },
14781
+ {
14782
+ "abstract": true,
14783
+ "docs": {
14784
+ "stability": "stable"
14785
+ },
14786
+ "immutable": true,
14787
+ "locationInModule": {
14788
+ "filename": "src/yarn/typescript-workspace-release.ts",
14789
+ "line": 15
14790
+ },
14791
+ "name": "npmTrustedPublishing",
14792
+ "optional": true,
14793
+ "type": {
14794
+ "primitive": "boolean"
14795
+ }
14796
+ },
14765
14797
  {
14766
14798
  "abstract": true,
14767
14799
  "docs": {
@@ -14803,7 +14835,7 @@
14803
14835
  "immutable": true,
14804
14836
  "locationInModule": {
14805
14837
  "filename": "src/yarn/typescript-workspace-release.ts",
14806
- "line": 20
14838
+ "line": 22
14807
14839
  },
14808
14840
  "name": "repoRuntimeDependencies",
14809
14841
  "optional": true,
@@ -14837,6 +14869,6 @@
14837
14869
  "symbolId": "src/yarn/typescript-workspace-release:WorkspaceReleaseOptions"
14838
14870
  }
14839
14871
  },
14840
- "version": "0.3.3",
14841
- "fingerprint": "wrAgDhsaoGRyvI3LrANKYkXO8vuZE7sIzZOckt3hACM="
14872
+ "version": "0.3.5",
14873
+ "fingerprint": "PeC1t0vPeDMdr07lQf0cfiETl9m9lfM5LxpVtwnt5H4="
14842
14874
  }
package/API.md CHANGED
@@ -38550,8 +38550,10 @@ const workspaceReleaseOptions: yarn.WorkspaceReleaseOptions = { ... }
38550
38550
  | --- | --- | --- |
38551
38551
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.private">private</a></code> | <code>boolean</code> | *No description.* |
38552
38552
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.versionBranchOptions">versionBranchOptions</a></code> | <code>projen.VersionBranchOptions</code> | *No description.* |
38553
+ | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.environment">environment</a></code> | <code>string</code> | *No description.* |
38553
38554
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.nextVersionCommand">nextVersionCommand</a></code> | <code>string</code> | *No description.* |
38554
38555
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.npmDistTag">npmDistTag</a></code> | <code>string</code> | *No description.* |
38556
+ | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.npmTrustedPublishing">npmTrustedPublishing</a></code> | <code>boolean</code> | *No description.* |
38555
38557
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.publishToNpm">publishToNpm</a></code> | <code>boolean</code> | *No description.* |
38556
38558
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.releasableCommits">releasableCommits</a></code> | <code>projen.ReleasableCommits</code> | *No description.* |
38557
38559
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.repoRuntimeDependencies">repoRuntimeDependencies</a></code> | <code>{[ key: string ]: string}</code> | For runtime and peer dependencies, the type of dependency we take on each package. |
@@ -38579,6 +38581,16 @@ public readonly versionBranchOptions: VersionBranchOptions;
38579
38581
 
38580
38582
  ---
38581
38583
 
38584
+ ##### `environment`<sup>Optional</sup> <a name="environment" id="cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.environment"></a>
38585
+
38586
+ ```typescript
38587
+ public readonly environment: string;
38588
+ ```
38589
+
38590
+ - *Type:* string
38591
+
38592
+ ---
38593
+
38582
38594
  ##### `nextVersionCommand`<sup>Optional</sup> <a name="nextVersionCommand" id="cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.nextVersionCommand"></a>
38583
38595
 
38584
38596
  ```typescript
@@ -38599,6 +38611,16 @@ public readonly npmDistTag: string;
38599
38611
 
38600
38612
  ---
38601
38613
 
38614
+ ##### `npmTrustedPublishing`<sup>Optional</sup> <a name="npmTrustedPublishing" id="cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.npmTrustedPublishing"></a>
38615
+
38616
+ ```typescript
38617
+ public readonly npmTrustedPublishing: boolean;
38618
+ ```
38619
+
38620
+ - *Type:* boolean
38621
+
38622
+ ---
38623
+
38602
38624
  ##### `publishToNpm`<sup>Optional</sup> <a name="publishToNpm" id="cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.publishToNpm"></a>
38603
38625
 
38604
38626
  ```typescript
package/lib/cdk.js CHANGED
@@ -55,7 +55,7 @@ class CdkConstructLibrary extends projen_1.awscdk.AwsCdkConstructLibrary {
55
55
  }
56
56
  exports.CdkConstructLibrary = CdkConstructLibrary;
57
57
  _a = JSII_RTTI_SYMBOL_1;
58
- CdkConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdkConstructLibrary", version: "0.3.3" };
58
+ CdkConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdkConstructLibrary", version: "0.3.5" };
59
59
  /**
60
60
  * Create a Cdk TypeScript Project
61
61
  *
@@ -71,5 +71,5 @@ class CdkTypeScriptProject extends projen_1.typescript.TypeScriptProject {
71
71
  }
72
72
  exports.CdkTypeScriptProject = CdkTypeScriptProject;
73
73
  _b = JSII_RTTI_SYMBOL_1;
74
- CdkTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdkTypeScriptProject", version: "0.3.3" };
74
+ CdkTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdkTypeScriptProject", version: "0.3.5" };
75
75
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nkay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFpRDtBQUdqRCxxREFBd0Y7QUFDeEYsaURBQTZDO0FBQzdDLHVDQUFvQztBQUdwQzs7OztHQUlHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxlQUFNLENBQUMsc0JBQXNCO0lBQzVELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxPQUFtQztRQUN0RSxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLCtEQUErRCxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsOERBQThELENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFJRCxZQUFZLE9BQW1DO1FBQzdDLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxZQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQy9DLE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xFLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvRkFBb0YsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0gsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFBLDBDQUF5QixFQUFDO1lBQ3JDLEdBQUcsT0FBTztZQUNWLGtEQUFrRDtZQUNsRCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsYUFBYTtTQUN4RCxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUM7WUFDSixTQUFTLEVBQUUsWUFBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZO1lBQ3JDLHNEQUFzRDtZQUN0RCxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDOUIsR0FBRyxJQUFJO1NBQ1IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRTVCLElBQUksaUJBQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLElBQUksMEJBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFBLDBDQUF5QixFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDOztBQTdDSCxrREE4Q0M7OztBQUlEOzs7O0dBSUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLG1CQUFVLENBQUMsaUJBQWlCO0lBR3BFLFlBQVksT0FBb0M7UUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBQSwwQ0FBeUIsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFNUIsSUFBQSwwQ0FBeUIsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7QUFUSCxvREFVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c2NkaywgY2RrLCB0eXBlc2NyaXB0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IENka0NvbW1vbk9wdGlvbnMgfSBmcm9tICcuL2Nkay1jb21tb24tb3B0aW9ucyc7XG5pbXBvcnQgeyBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gJy4vY2RrLWNvbnN0cnVjdC1saWJyYXJ5LW9wdGlvbnMnO1xuaW1wb3J0IHsgY29uZmlndXJlQ29tbW9uQ29tcG9uZW50cywgd2l0aENvbW1vbk9wdGlvbnNEZWZhdWx0cyB9IGZyb20gJy4vY29tbW9uLW9wdGlvbnMnO1xuaW1wb3J0IHsgSW50ZWdSdW5uZXIgfSBmcm9tICcuL2ludGVnLXJ1bm5lcic7XG5pbXBvcnQgeyBSb3NldHRhIH0gZnJvbSAnLi9yb3NldHRhJztcblxuXG4vKipcbiAqIENyZWF0ZSBhIENkayBDb25zdHJ1Y3QgTGlicmFyeSBQcm9qZWN0XG4gKlxuICogQHBqaWQgY2RrLWNvbnN0cnVjdC1saWJcbiAqL1xuZXhwb3J0IGNsYXNzIENka0NvbnN0cnVjdExpYnJhcnkgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrQ29uc3RydWN0TGlicmFyeSB7XG4gIHByaXZhdGUgc3RhdGljIHN0YWJpbGl0eVJlcXVpcmVtZW50cyhvcHRpb25zOiBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKCFvcHRpb25zLnB1Ymxpc2hUb1B5cGkpIHtcbiAgICAgIGVycm9ycy5wdXNoKCdQdWJsaXNoaW5nIEVycm9yOiBwcm9qZWN0IG5vdCBjb25maWd1cmVkIHRvIHB1Ymxpc2ggdG8gUHl0aG9uJyk7XG4gICAgfVxuICAgIGlmICghb3B0aW9ucy5wdWJsaXNoVG9NYXZlbikge1xuICAgICAgZXJyb3JzLnB1c2goJ1B1Ymxpc2hpbmcgRXJyb3I6IHByb2plY3Qgbm90IGNvbmZpZ3VyZWQgdG8gcHVibGlzaCB0byBNYXZlbicpO1xuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMucHVibGlzaFRvTnVnZXQpIHtcbiAgICAgIGVycm9ycy5wdXNoKCdQdWJsaXNoaW5nIEVycm9yOiBwcm9qZWN0IG5vdCBjb25maWd1cmVkIHRvIHB1Ymxpc2ggdG8gTnVnZXQnKTtcbiAgICB9XG4gICAgaWYgKCFvcHRpb25zLnB1Ymxpc2hUb0dvKSB7XG4gICAgICBlcnJvcnMucHVzaCgnUHVibGlzaGluZyBFcnJvcjogcHJvamVjdCBub3QgY29uZmlndXJlZCB0byBwdWJsaXNoIHRvIEdvJyk7XG4gICAgfVxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcHJpdmF0ZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLnN0YWJpbGl0eSA9PT0gY2RrLlN0YWJpbGl0eS5TVEFCTEUpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IENka0NvbnN0cnVjdExpYnJhcnkuc3RhYmlsaXR5UmVxdWlyZW1lbnRzKG9wdGlvbnMpO1xuICAgICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHByb2plY3QgZG9lcyBub3QgcGFzcyBzdGFiaWxpdHkgcmVxdWlyZW1lbnRzIGR1ZSB0byB0aGUgZm9sbG93aW5nIGVycm9yczpcXG4gICR7ZXJyb3JzLmpvaW4oJ1xcbiAgJyl9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0cyA9IHdpdGhDb21tb25PcHRpb25zRGVmYXVsdHMoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIC8vIGFsc28gYWNjZXB0IHRoZSBkZXByZWNhdGVkIHJlcG9zaXRvcnlVcmwgb3B0aW9uXG4gICAgICByZXBvc2l0b3J5OiBvcHRpb25zLnJlcG9zaXRvcnkgPz8gb3B0aW9ucy5yZXBvc2l0b3J5VXJsLFxuICAgIH0pO1xuXG4gICAgc3VwZXIoe1xuICAgICAgc3RhYmlsaXR5OiBjZGsuU3RhYmlsaXR5LkVYUEVSSU1FTlRBTCxcbiAgICAgIC8vIHVwc3RyZWFtIEpzaWlQcm9qZWN0IHVzZXMgYSBkaWZmZXJlbnQgbmFtZSBmb3IgdGhpc1xuICAgICAgcmVwb3NpdG9yeVVybDogb3B0cy5yZXBvc2l0b3J5LFxuICAgICAgLi4ub3B0cyxcbiAgICB9KTtcbiAgICB0aGlzLnByaXZhdGUgPSBvcHRzLnByaXZhdGU7XG5cbiAgICBuZXcgUm9zZXR0YSh0aGlzLCBvcHRpb25zLnJvc2V0dGFPcHRpb25zKTtcbiAgICBuZXcgSW50ZWdSdW5uZXIodGhpcyk7XG4gICAgY29uZmlndXJlQ29tbW9uQ29tcG9uZW50cyh0aGlzLCBvcHRzKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka1R5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3RPcHRpb25zLCBDZGtDb21tb25PcHRpb25zIHsgfVxuXG4vKipcbiAqIENyZWF0ZSBhIENkayBUeXBlU2NyaXB0IFByb2plY3RcbiAqXG4gKiBAcGppZCBjZGstdHMtcHJvalxuICovXG5leHBvcnQgY2xhc3MgQ2RrVHlwZVNjcmlwdFByb2plY3QgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHByaXZhdGU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrVHlwZVNjcmlwdFByb2plY3RPcHRpb25zKSB7XG4gICAgY29uc3Qgb3B0cyA9IHdpdGhDb21tb25PcHRpb25zRGVmYXVsdHMob3B0aW9ucyk7XG4gICAgc3VwZXIob3B0cyk7XG4gICAgdGhpcy5wcml2YXRlID0gb3B0cy5wcml2YXRlO1xuXG4gICAgY29uZmlndXJlQ29tbW9uQ29tcG9uZW50cyh0aGlzLCBvcHRzKTtcbiAgfVxufVxuIl19
package/lib/cdklabs.js CHANGED
@@ -120,7 +120,7 @@ class CdklabsConstructLibrary extends cdk_1.CdkConstructLibrary {
120
120
  }
121
121
  exports.CdklabsConstructLibrary = CdklabsConstructLibrary;
122
122
  _a = JSII_RTTI_SYMBOL_1;
123
- CdklabsConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdklabsConstructLibrary", version: "0.3.3" };
123
+ CdklabsConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdklabsConstructLibrary", version: "0.3.5" };
124
124
  /**
125
125
  * Create a Cdklabs TypeScript Project
126
126
  *
@@ -140,7 +140,7 @@ class CdklabsTypeScriptProject extends cdk_1.CdkTypeScriptProject {
140
140
  }
141
141
  exports.CdklabsTypeScriptProject = CdklabsTypeScriptProject;
142
142
  _b = JSII_RTTI_SYMBOL_1;
143
- CdklabsTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdklabsTypeScriptProject", version: "0.3.3" };
143
+ CdklabsTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdklabsTypeScriptProject", version: "0.3.5" };
144
144
  /**
145
145
  * Create a Cdklabs Jsii Project
146
146
  *
@@ -163,5 +163,5 @@ class CdklabsJsiiProject extends jsii_1.CdkJsiiProject {
163
163
  }
164
164
  exports.CdklabsJsiiProject = CdklabsJsiiProject;
165
165
  _c = JSII_RTTI_SYMBOL_1;
166
- CdklabsJsiiProject[_c] = { fqn: "cdklabs-projen-project-types.CdklabsJsiiProject", version: "0.3.3" };
166
+ CdklabsJsiiProject[_c] = { fqn: "cdklabs-projen-project-types.CdklabsJsiiProject", version: "0.3.5" };
167
167
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrbGFicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jZGtsYWJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQWdDO0FBQ2hDLHNEQUF1RDtBQUN2RCwwQ0FBNEM7QUFFNUMsSUFBWSxZQUtYO0FBTEQsV0FBWSxZQUFZO0lBQ3RCLG1EQUFNLENBQUE7SUFDTiwrQ0FBSSxDQUFBO0lBQ0osbURBQU0sQ0FBQTtJQUNOLDJDQUFFLENBQUE7QUFDSixDQUFDLEVBTFcsWUFBWSw0QkFBWixZQUFZLFFBS3ZCO0FBQUEsQ0FBQztBQUVGLCtCQUllO0FBR2YsaUNBQXdDO0FBQ3hDLHdDQUF3QztBQUN4QyxtQ0FBMkM7QUFFM0Msd0VBQXdFO0FBQ3hFLE1BQU0sa0JBQWtCLEdBQUc7SUFDekIsTUFBTSxFQUFFLHFCQUFxQjtJQUM3QixVQUFVLEVBQUUscUJBQXFCO0lBQ2pDLGFBQWEsRUFBRSx3QkFBd0I7SUFDdkMsV0FBVyxFQUFFLHdCQUF3QjtJQUNyQyxrQkFBa0IsRUFBRSxJQUFJO0NBQ3pCLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUE0QztJQUNuRSxtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLG1CQUFtQixFQUFFLE9BQU87SUFDNUIsV0FBVyxFQUFFO1FBQ1gsY0FBYyxFQUFFLDJCQUFjLENBQUMsTUFBTTtLQUN0QztJQUNELG9CQUFvQixFQUFFLE1BQU07SUFDNUIsbUZBQW1GO0lBQ25GLHdGQUF3RjtJQUN4RixvREFBb0Q7SUFDcEQsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsZ0JBQWdCLEVBQUU7SUFDdkQsV0FBVyxFQUFFLE1BQU07Q0FDcEIsQ0FBQztBQUVGLFNBQVMsK0JBQStCLENBQUMsY0FBc0IsRUFBRSxLQUFzQjtJQUNyRixNQUFNLGVBQWUsR0FBRyxJQUFBLGVBQVEsRUFBQyxjQUFjLENBQUMsQ0FBQztJQUVqRCxPQUFPLHdCQUF3QixDQUFDLFNBQVMsRUFB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LGFBQWEsR0FBRyxJQUFBLGdCQUFTLEVBQUM7WUFDOUIsRUFBRTtZQUNGLG1CQUFtQjtZQUNuQiw2QkFBNkI7WUFDN0IsT0FBTztZQUNQLGtCQUFrQjtTQUNuQixDQUE4QixDQUFDO1FBRWhDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2QixDQUFDOztBQWRILGdEQWVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFzZW5hbWUgfSBmcm9tICdwYXRoJztcbmltcG9ydCB7IFVwZGF0ZVNuYXBzaG90IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IGRlZXBNZXJnZSB9IGZyb20gJ3Byb2plbi9saWIvdXRpbCc7XG5cbmV4cG9ydCBlbnVtIEpzaWlMYW5ndWFnZSB7XG4gIFBZVEhPTixcbiAgSkFWQSxcbiAgRE9UTkVULFxuICBHTyxcbn07XG5cbmltcG9ydCB7XG4gIENka0NvbnN0cnVjdExpYnJhcnksXG4gIENka1R5cGVTY3JpcHRQcm9qZWN0LFxuICBDZGtUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMsXG59IGZyb20gJy4vY2RrJztcbmltcG9ydCB7IENka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zIH0gZnJvbSAnLi9jZGstY29uc3RydWN0LWxpYnJhcnktb3B0aW9ucyc7XG5pbXBvcnQgeyBDZGtKc2lpUHJvamVjdE9wdGlvbnMgfSBmcm9tICcuL2Nkay1qc2lpLW9wdGlvbnMnO1xuaW1wb3J0IHsgQ2RrSnNpaVByb2plY3QgfSBmcm9tICcuL2pzaWknO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGltcG9ydC9vcmRlclxuaW1wb3J0IHsgUmVsZWFzYWJsZUNvbW1pdHMgfSBmcm9tICdwcm9qZW4nO1xuXG4vLyBvdmVycmlkZSB0aGVzZSBwcm9wZXJ0aWVzIG5vIG1hdHRlciB3aGF0IHZhbHVlcyBhcmUgZ2l2ZW4gY2xpZW50LXNpZGVcbmNvbnN0IGNka2xhYnNGb3JjZWRQcm9wcyA9IHtcbiAgYXV0aG9yOiAnQW1hem9uIFdlYiBTZXJ2aWNlcycsXG4gIGF1dGhvck5hbWU6ICdBbWF6b24gV2ViIFNlcnZpY2VzJyxcbiAgYXV0aG9yQWRkcmVzczogJ2F3cy1jZGstZGV2QGFtYXpvbi5jb20nLFxuICBhdXRob3JFbWFpbDogJ2F3cy1jZGstZGV2QGFtYXpvbi5jb20nLFxuICBhdXRob3JPcmdhbml6YXRpb246IHRydWUsXG59O1xuXG5jb25zdCBjZGtsYWJzRGVmYXVsdFByb3BzOiBQYXJ0aWFsPENka2xhYnNDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucz4gPSB7XG4gIGF1dG9BcHByb3ZlVXBncmFkZXM6IHRydWUsXG4gIG1pbk5vZGVWZXJzaW9uOiAnMTguMTIuMCcsXG4gIHdvcmtmbG93Tm9kZVZlcnNpb246ICdsdHMvKicsXG4gIGplc3RPcHRpb25zOiB7XG4gICAgdXBkYXRlU25hcHNob3Q6IFVwZGF0ZVNuYXBzaG90LkFMV0FZUyxcbiAgfSxcbiAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6ICdtYWluJyxcbiAgLy8gRGVmYXVsdCBpcyB0byByZWxlYXNlIG9ubHkgZmVhdHVyZXMgYW5kIGZpeGVzLiBJZiB3ZSBkb24ndCBkbyB0aGlzLCBldmVyeSBwcm9qZW5cbiAgLy8gcHJvamVjdCB3aWxsIGJhc2ljYWxseSByZWxlYXNlIGV2ZXJ5IGRheSwgYmVjYXVzZSBpdCB3aWxsIHNlZSBkZXZEZXBlbmRlbmNpZXMgdXBkYXRlc1xuICAvLyBldmVyeSBkYXksIGV2ZW4gdGhvdWdoIHRob3NlIGFyZSBub3QgaW50ZXJlc3RpbmcuXG4gIHJlbGVhc2FibGVDb21taXRzOiBSZWxlYXNhYmxlQ29tbWl0cy5mZWF0dXJlc0FuZEZpeGVzKCksXG4gIGpzaWlWZXJzaW9uOiAnfjUuNycsXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVDZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzKG5wbVBhY2thZ2VOYW1lOiBzdHJpbmcsIGxhbmdzPzogSnNpaUxhbmd1YWdlW10pIHtcbiAgY29uc3QgcGFja2FnZUJhc2VuYW1lID0gYmFzZW5hbWUobnBtUGFja2FnZU5hbWUpO1xuXG4gIHJldHVybiBjcmVhdGVQdWJsaXNoaW5nRGVmYXVsdHMoJ2Nka2xhYnMnLCBwYWNrYWdlQmFzZW5hbWUsIEJvb2xlYW4ocGFja2FnZUJhc2VuYW1lICE9PSBucG1QYWNrYWdlTmFtZSksIGxhbmdzKTtcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZVB1Ymxpc2hpbmdEZWZhdWx0cyhuYW1lc3BhY2U6IHN0cmluZywgcGFja2FnZUJhc2VuYW1lOiBzdHJpbmcsIGFsd2F5c1VzZU5hbWVzcGFjZSA9IHRydWUsIGxhbmdzPzogSnNpaUxhbmd1YWdlW10pIHtcbiAgY29uc3QgcGlQeVByZWZpeCA9IGFsd2F5c1VzZU5hbWVzcGFjZSA/IGAke25hbWVzcGFjZX0uYCA6ICcnO1xuICBjb25zdCBudWdldFByZWZpeCA9IGFsd2F5c1VzZU5hbWVzcGFjZSA/IGAke3VwcGVyQ2FzZU5hbWUobmFtZXNwYWNlKX0uYCA6IGAke3VwcGVyQ2FzZU5hbWUobmFtZXNwYWNlKX1gO1xuXG4gIHJldHVybiB7XG4gICAgLi4ucHVibGlzaExhbmd1YWdlV3JhcHBlcihKc2lpTGFuZ3VhZ2UuUFlUSE9OLCB7XG4gICAgICBwdWJsaXNoVG9QeXBpOiB7XG4gICAgICAgIGRpc3ROYW1lOiBgJHtwaVB5UHJlZml4fSR7cGFja2FnZUJhc2VuYW1lfWAsXG4gICAgICAgIG1vZHVsZTogYCR7cGlQeVByZWZpeH0ke2NoYW5nZURlbGltaXRlcihwYWNrYWdlQmFzZW5hbWUsICdfJyl9YCxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4ucHVibGlzaExhbmd1YWdlV3JhcHBlcihKc2lpTGFuZ3VhZ2UuSkFWQSwge1xuICAgICAgcHVibGlzaFRvTWF2ZW46IHtcbiAgICAgICAgamF2YVBhY2thZ2U6IGBpby5naXRodWIuJHtuYW1lc3BhY2V9LiR7Y2hhbmdlRGVsaW1pdGVyKHBhY2thZ2VCYXNlbmFtZSwgJy4nKX1gLFxuICAgICAgICBtYXZlbkdyb3VwSWQ6IGBpby5naXRodWIuJHtuYW1lc3BhY2V9YCxcbiAgICAgICAgbWF2ZW5BcnRpZmFjdElkOiBwYWNrYWdlQmFzZW5hbWUsXG4gICAgICAgIG1hdmVuU2VydmVySWQ6ICdjZW50cmFsLW9zc3JoJyxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4ucHVibGlzaExhbmd1YWdlV3JhcHBlcihKc2lpTGFuZ3VhZ2UuRE9UTkVULCB7XG4gICAgICBwdWJsaXNoVG9OdWdldDoge1xuICAgICAgICBkb3ROZXROYW1lc3BhY2U6IGAke251Z2V0UHJlZml4fSR7dXBwZXJDYXNlTmFtZShwYWNrYWdlQmFzZW5hbWUpfWAsXG4gICAgICAgIHBhY2thZ2VJZDogYCR7bnVnZXRQcmVmaXh9JHt1cHBlckNhc2VOYW1lKHBhY2thZ2VCYXNlbmFtZSl9YCxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgLi4ucHVibGlzaExhbmd1YWdlV3JhcHBlcihKc2lpTGFuZ3VhZ2UuR08sIHtcbiAgICAgIHB1Ymxpc2hUb0dvOiB7XG4gICAgICAgIG1vZHVsZU5hbWU6IGBnaXRodWIuY29tLyR7bmFtZXNwYWNlfS8ke3BhY2thZ2VCYXNlbmFtZX0tZ29gLFxuICAgICAgfSxcbiAgICB9KSxcbiAgfTtcblxuICBmdW5jdGlvbiBwdWJsaXNoTGFuZ3VhZ2VXcmFwcGVyKGxhbmc6IEpzaWlMYW5ndWFnZSwgb2JqOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgcmV0dXJuIHB1Ymxpc2hMYW5ndWFnZShsYW5nKSA/IG9iaiA6IHt9O1xuICB9XG5cbiAgZnVuY3Rpb24gcHVibGlzaExhbmd1YWdlKGxhbmc6IEpzaWlMYW5ndWFnZSk6IGJvb2xlYW4ge1xuICAgIC8vIGxhbmdzIG5vdCBzcGVjaWZpZWQgPT09IGFsbCBsYW5ndWFnZXMgcHVibGlzaGVkXG4gICAgaWYgKCFsYW5ncykgeyByZXR1cm4gdHJ1ZTsgfVxuICAgIGlmIChsYW5ncy5pbmNsdWRlcyhsYW5nKSkgeyByZXR1cm4gdHJ1ZTsgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHVwcGVyQ2FzZU5hbWUoc3RyOiBzdHJpbmcpIHtcbiAgICBsZXQgd29yZHMgPSBzdHIuc3BsaXQoJy0nKTtcbiAgICB3b3JkcyA9IHdvcmRzLm1hcCgodykgPT4gd1swXS50b1VwcGVyQ2FzZSgpICsgdy5zdWJzdHJpbmcoMSkpO1xuICAgIHJldHVybiB3b3Jkcy5qb2luKCcnKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNoYW5nZURlbGltaXRlcihzdHI6IHN0cmluZywgZGVsaW06IHN0cmluZykge1xuICAgIHJldHVybiBzdHIuc3BsaXQoJy0nKS5qb2luKGRlbGltKTtcbiAgfVxufTtcblxuZXhwb3J0IGludGVyZmFjZSBDZGtsYWJzUHVibGlzaGluZ1Byb2plY3RPcHRpb25zIHtcbiAgLyoqXG4gICAqIFNldCBkZWZhdWx0IHB1Ymxpc2hpbmcgcHJvcGVydGllcy4gU2V0dGluZyB0aGlzIHByb3BlcnR5IGd1YXJhbnRlZXNcbiAgICogdGhhdCB5b3VyIHByb2plY3Qgd2lsbCBoYXZlIHJlYXNvbmFibGUgcHVibGlzaGluZyBuYW1lcy4gWW91IGNhbiBjaG9vc2VcbiAgICogdG8gbW9kaWZ5IHRoZW0gaG93ZXZlciB5b3Ugd2lzaCB3aXRoIHRoZSB0cmFkaXRpb25hbCBgcHVibGlzaFRvUHlwaWAsXG4gICAqIGBwdWJsaXNoVG9NYXZlbmAsIGBwdWJsaXNoVG9OdWdldGAsIGFuZCBgcHVibGlzaFRvR29gIHByb3BlcnRpZXMsIGFuZFxuICAgKiB5b3VyIGNvbmZpZ3VyYXRpb24gd2lsbCBiZSByZXNwZWN0ZWQuXG4gICAqXG4gICAqIFRoaXMgc2hvdWxkIGJlIHNldCB0byBmYWxzZSBvbmx5IGlmIHlvdSBkbyBub3QgcGxhbiBvbiByZWxlYXNpbmcgdGhlIHBhY2thZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdHM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IHNwZWNpZmljIGxhbmd1YWdlcyB0byBwdWJsaXNoIHRvLiBUaGlzIGNhbiBiZSB1c2VkIHdoZW4gdGhlIGxpYnJhcnlcbiAgICogaXMgZXhwZXJpbWVudGFsIG9ubHksIGJlY2F1c2Ugc3RhYmxlIGxpYnJhcmllcyBtdXN0IHB1Ymxpc2ggdG8gYWxsIGpzaWkgbGFuZ3VhZ2VzLlxuICAgKiBUaGlzIHNob3VsZCBiZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggYGNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdHM6IHRydWVgOyBvdGhlcndpc2VcbiAgICogaXQgaXMgYSBuby1vcC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwganNpaSB0YXJnZXQgbGFuZ3VhZ2VzXG4gICAqL1xuICByZWFkb25seSBqc2lpVGFyZ2V0TGFuZ3VhZ2VzPzogSnNpaUxhbmd1YWdlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrbGFic0NvbnN0cnVjdExpYnJhcnlPcHRpb25zIGV4dGVuZHMgQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMsIENka2xhYnNQdWJsaXNoaW5nUHJvamVjdE9wdGlvbnMgeyB9XG5cbi8qKlxuICogQ3JlYXRlIGEgQ2RrbGFicyBDb25zdHJ1Y3QgTGlicmFyeSBQcm9qZWN0XG4gKlxuICogQHBqaWQgY2RrbGFicy1jb25zdHJ1Y3QtbGliXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGtsYWJzQ29uc3RydWN0TGlicmFyeSBleHRlbmRzIENka0NvbnN0cnVjdExpYnJhcnkge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtsYWJzQ29uc3RydWN0TGlicmFyeU9wdGlvbnMpIHtcbiAgICBjb25zdCBjZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRQcm9wczogUmVjb3JkPHN0cmluZywgYW55PiA9IChvcHRpb25zLmNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdHMgPz8gdHJ1ZSkgP1xuICAgICAgY3JlYXRlQ2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0cyhvcHRpb25zLm5hbWUsIG9wdGlvbnMuanNpaVRhcmdldExhbmd1YWdlcykgOiB7fTtcblxuICAgIC8vIHRoZSBsZWZ0bW9zdCBvYmplY3QgaXMgbXV0YXRlZCBhbmQgcmV0dXJuZWQgYnkgZGVlcE1lcmdlXG4gICAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IGRlZXBNZXJnZShbXG4gICAgICB7fSxcbiAgICAgIGNka2xhYnNEZWZhdWx0UHJvcHMsXG4gICAgICBjZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRQcm9wcyxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjZGtsYWJzRm9yY2VkUHJvcHMsXG4gICAgXSkgYXMgQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnM7XG5cbiAgICBzdXBlcihtZXJnZWRPcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka2xhYnNUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBDZGtUeXBlU2NyaXB0UHJvamVjdE9wdGlvbnMgeyB9XG5cbi8qKlxuICogQ3JlYXRlIGEgQ2RrbGFicyBUeXBlU2NyaXB0IFByb2plY3RcbiAqXG4gKiBAcGppZCBjZGtsYWJzLXRzLXByb2pcbiAqL1xuZXhwb3J0IGNsYXNzIENka2xhYnNUeXBlU2NyaXB0UHJvamVjdCBleHRlbmRzIENka1R5cGVTY3JpcHRQcm9qZWN0IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrbGFic1R5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucykge1xuICAgIC8vIHRoZSBsZWZ0bW9zdCBvYmplY3QgaXMgbXV0YXRlZCBhbmQgcmV0dXJuZWQgYnkgZGVlcE1lcmdlXG4gICAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IGRlZXBNZXJnZShbXG4gICAgICB7fSxcbiAgICAgIGNka2xhYnNEZWZhdWx0UHJvcHMsXG4gICAgICBvcHRpb25zLFxuICAgICAgY2RrbGFic0ZvcmNlZFByb3BzLFxuICAgIF0pIGFzIENka0NvbnN0cnVjdExpYnJhcnlPcHRpb25zO1xuXG4gICAgc3VwZXIobWVyZ2VkT3B0aW9ucyk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtsYWJzSnNpaVByb2plY3RPcHRpb25zIGV4dGVuZHMgQ2RrSnNpaVByb2plY3RPcHRpb25zLCBDZGtsYWJzUHVibGlzaGluZ1Byb2plY3RPcHRpb25zIHsgfVxuXG4vKipcbiAqIENyZWF0ZSBhIENka2xhYnMgSnNpaSBQcm9qZWN0XG4gKlxuICogQHBqaWQgY2RrbGFicy1qc2lpLXByb2pcbiAqL1xuZXhwb3J0IGNsYXNzIENka2xhYnNKc2lpUHJvamVjdCBleHRlbmRzIENka0pzaWlQcm9qZWN0IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrbGFic0pzaWlQcm9qZWN0T3B0aW9ucykge1xuICAgIGNvbnN0IGNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdFByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gKG9wdGlvbnMuY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0cyA/PyB0cnVlKSA/XG4gICAgICBjcmVhdGVDZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzKG9wdGlvbnMubmFtZSwgb3B0aW9ucy5qc2lpVGFyZ2V0TGFuZ3VhZ2VzKSA6IHt9O1xuICAgIC8vIHRoZSBsZWZ0bW9zdCBvYmplY3QgaXMgbXV0YXRlZCBhbmQgcmV0dXJuZWQgYnkgZGVlcE1lcmdlXG4gICAgY29uc3QgbWVyZ2VkT3B0aW9ucyA9IGRlZXBNZXJnZShbXG4gICAgICB7fSxcbiAgICAgIGNka2xhYnNEZWZhdWx0UHJvcHMsXG4gICAgICBjZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRQcm9wcyxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjZGtsYWJzRm9yY2VkUHJvcHMsXG4gICAgXSkgYXMgQ2RrbGFic0pzaWlQcm9qZWN0T3B0aW9ucztcblxuICAgIHN1cGVyKG1lcmdlZE9wdGlvbnMpO1xuICB9XG59XG4iXX0=
package/lib/jsii.js CHANGED
@@ -28,5 +28,5 @@ class CdkJsiiProject extends projen_1.cdk.JsiiProject {
28
28
  }
29
29
  exports.CdkJsiiProject = CdkJsiiProject;
30
30
  _a = JSII_RTTI_SYMBOL_1;
31
- CdkJsiiProject[_a] = { fqn: "cdklabs-projen-project-types.CdkJsiiProject", version: "0.3.3" };
31
+ CdkJsiiProject[_a] = { fqn: "cdklabs-projen-project-types.CdkJsiiProject", version: "0.3.5" };
32
32
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9qc2lpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQTZCO0FBRTdCLHFEQUF3RjtBQUV4Rjs7OztHQUlHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsWUFBRyxDQUFDLFdBQVc7SUFHakQsWUFBWSxPQUE4QjtRQUN4QyxNQUFNLElBQUksR0FBRyxJQUFBLDBDQUF5QixFQUFDO1lBQ3JDLEdBQUcsT0FBTztZQUNWLGtEQUFrRDtZQUNsRCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsYUFBYTtTQUN4RCxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUM7WUFDSixHQUFHLElBQUk7WUFDUCxzREFBc0Q7WUFDdEQsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQy9CLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUU1QixJQUFBLDBDQUF5QixFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDOztBQWpCSCx3Q0FrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjZGsgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQ2RrSnNpaVByb2plY3RPcHRpb25zIH0gZnJvbSAnLi9jZGstanNpaS1vcHRpb25zJztcbmltcG9ydCB7IGNvbmZpZ3VyZUNvbW1vbkNvbXBvbmVudHMsIHdpdGhDb21tb25PcHRpb25zRGVmYXVsdHMgfSBmcm9tICcuL2NvbW1vbi1vcHRpb25zJztcblxuLyoqXG4gKiBDcmVhdGUgYSBDZGsgSnNpaSBKc2lpIHByb2plY3RcbiAqXG4gKiBAcGppZCBjZGstanNpaS1wcm9qXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGtKc2lpUHJvamVjdCBleHRlbmRzIGNkay5Kc2lpUHJvamVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBwcml2YXRlOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka0pzaWlQcm9qZWN0T3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSB3aXRoQ29tbW9uT3B0aW9uc0RlZmF1bHRzKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAvLyBhbHNvIGFjY2VwdCB0aGUgZGVwcmVjYXRlZCByZXBvc2l0b3J5VXJsIG9wdGlvblxuICAgICAgcmVwb3NpdG9yeTogb3B0aW9ucy5yZXBvc2l0b3J5ID8/IG9wdGlvbnMucmVwb3NpdG9yeVVybCxcbiAgICB9KTtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRzLFxuICAgICAgLy8gdXBzdHJlYW0gSnNpaVByb2plY3QgdXNlcyBhIGRpZmZlcmVudCBuYW1lIGZvciB0aGlzXG4gICAgICByZXBvc2l0b3J5VXJsOiBvcHRzLnJlcG9zaXRvcnksXG4gICAgfSk7XG4gICAgdGhpcy5wcml2YXRlID0gb3B0cy5wcml2YXRlO1xuXG4gICAgY29uZmlndXJlQ29tbW9uQ29tcG9uZW50cyh0aGlzLCBvcHRzKTtcbiAgfVxufVxuIl19
package/lib/rosetta.js CHANGED
@@ -48,5 +48,5 @@ class Rosetta extends projen_1.Component {
48
48
  }
49
49
  exports.Rosetta = Rosetta;
50
50
  _a = JSII_RTTI_SYMBOL_1;
51
- Rosetta[_a] = { fqn: "cdklabs-projen-project-types.Rosetta", version: "0.3.3" };
51
+ Rosetta[_a] = { fqn: "cdklabs-projen-project-types.Rosetta", version: "0.3.5" };
52
52
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9zZXR0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yb3NldHRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW9EO0FBa0JwRDs7Ozs7R0FLRztBQUNILE1BQWEsT0FBUSxTQUFRLGtCQUFTO0lBQ3BDLFlBQVksT0FBd0IsRUFBRSxVQUEwQixFQUFFO1FBQ2hFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1FBRXRDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHVHQUF1RyxDQUFDLENBQUM7UUFDL0gsQ0FBQztRQUVELGFBQWE7UUFDYixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFDeEYsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvQixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1lBQ3JELFdBQVcsRUFBRSxzQkFBc0I7WUFDbkMsSUFBSSxFQUFFLHNDQUFzQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFO1NBQzlFLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4QyxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFO1lBQ3BELFFBQVEsRUFBRTtnQkFDUixxREFBcUQ7Z0JBQ3JELHlDQUF5QztnQkFDekMsVUFBVTtnQkFDVixVQUFVO2dCQUNWLHVCQUF1QjtnQkFDdkIsRUFBRTtnQkFDRiwrQkFBK0I7Z0JBQy9CLCtDQUErQztnQkFDL0MsdUJBQXVCO2dCQUN2QixFQUFFO2dCQUNGLGNBQWM7Z0JBQ2QsS0FBSztnQkFDTCxHQUFHO2FBQ0osQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2IsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLFlBQVksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O0FBdENILDBCQXVDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgU2FtcGxlRmlsZSwgY2RrIH0gZnJvbSAncHJvamVuJztcblxuZXhwb3J0IGludGVyZmFjZSBSb3NldHRhT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzdHJpY3QgbW9kZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyaWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0IGFuIGV4cGxpY2l0IHZlcnNpb24gb2Ygcm9zZXR0YS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyB2ZXJzaW9uIGlzIHNldCwgdXNlIGF1dG9tYXRpYyBkZXRlY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIFJvc2V0dGEgY29tcG9uZW50IGFkZHMgYnVpbHRpbiByb3NldHRhIHN1cHBvcnRcbiAqIGZvciBhIGNvbnN0cnVjdCBsaWJyYXJ5LiBTaW5jZSBDb25zdHJ1Y3RIdWIgd2lsbCBydW5cbiAqIHJvc2V0dGEgZm9yIHJlYWwsIHRoaXMganVzdCBhZGRzIGEgY2hlY2sgdG8gdGhlIGJ1aWxkIHRvXG4gKiBlbnN1cmUgdGhhdCByb3NldHRhIHdpbGwgcnVuIHN1Y2Nlc3NmdWxseVxuICovXG5leHBvcnQgY2xhc3MgUm9zZXR0YSBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IGNkay5Kc2lpUHJvamVjdCwgb3B0aW9uczogUm9zZXR0YU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgY29uc3Qgc3RyaWN0ID0gb3B0aW9ucy5zdHJpY3QgPz8gdHJ1ZTtcblxuICAgIGlmICghc3RyaWN0KSB7XG4gICAgICBwcm9qZWN0LmxvZ2dlci53YXJuKCdSb3NldHRhIGlzIE5PVCBvcGVyYXRpbmcgaW4gc3RyaWN0IG1vZGUuIFdlIGFyZSBnb2luZyB0byBlbmZvcmNlIHRoaXMgc29vbi5cXG5QbGVhc2UgZml4IGFueSBleGFtcGxlcy4nKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgRGV2RGVwXG4gICAgY29uc3Qgcm9zZXR0YURlcCA9IG9wdGlvbnMudmVyc2lvbiA/IGBqc2lpLXJvc2V0dGFAJHtvcHRpb25zLnZlcnNpb259YCA6ICdqc2lpLXJvc2V0dGEnO1xuICAgIHByb2plY3QuYWRkRGV2RGVwcyhyb3NldHRhRGVwKTtcblxuICAgIGNvbnN0IHJvc2V0dGFUYXNrID0gcHJvamVjdC5hZGRUYXNrKCdyb3NldHRhOmV4dHJhY3QnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1Rlc3Qgcm9zZXR0YSBleHRyYWN0JyxcbiAgICAgIGV4ZWM6IGB5YXJuIC0tc2lsZW50IGpzaWktcm9zZXR0YSBleHRyYWN0ICR7c3RyaWN0ID8gJy0tc3RyaWN0JyA6ICcnfWAudHJpbSgpLFxuICAgIH0pO1xuICAgIHByb2plY3QucG9zdENvbXBpbGVUYXNrLnNwYXduKHJvc2V0dGFUYXNrKTtcbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZSgnLmpzaWkudGFibC5qc29uJyk7XG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgJ3Jvc2V0dGEvZGVmYXVsdC50cy1maXh0dXJlJywge1xuICAgICAgY29udGVudHM6IFtcbiAgICAgICAgJy8vIEZpeHR1cmUgd2l0aCBwYWNrYWdlcyBpbXBvcnRlZCwgYnV0IG5vdGhpbmcgZWxzZScsXG4gICAgICAgIFwiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XCIsXG4gICAgICAgICdpbXBvcnQgeycsXG4gICAgICAgICcgIFN0YWNrLCcsXG4gICAgICAgIFwifSBmcm9tICdhd3MtY2RrLWxpYic7XCIsXG4gICAgICAgICcnLFxuICAgICAgICAnY2xhc3MgRml4dHVyZSBleHRlbmRzIFN0YWNrIHsnLFxuICAgICAgICAnICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7JyxcbiAgICAgICAgJyAgICBzdXBlcihzY29wZSwgaWQpOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIC8vLyBoZXJlJyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICd9JyxcbiAgICAgIF0uam9pbignXFxuJyksXG4gICAgfSk7XG4gICAgcHJvamVjdC5hZGRHaXRJZ25vcmUoJyEvcm9zZXR0YS9kZWZhdWx0LnRzLWZpeHR1cmUnKTtcbiAgfVxufVxuIl19
@@ -64,6 +64,7 @@ class MonorepoRelease extends projen_1.Component {
64
64
  minMajorVersion: options.versionBranchOptions.minMajorVersion ?? this.options.minMajorVersion,
65
65
  prerelease: options.versionBranchOptions.prerelease ?? this.options.prerelease,
66
66
  npmDistTag: options.npmDistTag ?? this.options.npmDistTag,
67
+ environment: options.environment,
67
68
  },
68
69
  },
69
70
  });
@@ -121,10 +122,21 @@ class MonorepoRelease extends projen_1.Component {
121
122
  // ... and possibly on individual publish jobs that are prefixed
122
123
  return `${prefix}_${dep}`;
123
124
  });
125
+ // we build the tools object so that we can modify it with our
126
+ // own custom properties.
127
+ const toolsRebuilt = {
128
+ ...job.tools,
129
+ node: {
130
+ ...job.tools?.node ?? {},
131
+ // use the node version specified on the mono repo.
132
+ version: this.options.nodeVersion ?? job.tools?.node?.version ?? 'lts/*',
133
+ },
134
+ };
124
135
  return [
125
136
  `${prefix}_${key}`,
126
137
  {
127
138
  ...job,
139
+ tools: toolsRebuilt,
128
140
  needs,
129
141
  if: `\${{ needs.release.outputs.latest_commit == github.sha && needs.release.outputs.${publishProjectOutputId(release.workspace)} == 'true' }}`,
130
142
  name: `${release.workspace.name}: ${job.name}`,
@@ -271,7 +283,7 @@ class MonorepoRelease extends projen_1.Component {
271
283
  }
272
284
  exports.MonorepoRelease = MonorepoRelease;
273
285
  _a = JSII_RTTI_SYMBOL_1;
274
- MonorepoRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.MonorepoRelease", version: "0.3.3" };
286
+ MonorepoRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.MonorepoRelease", version: "0.3.5" };
275
287
  function slugify(x) {
276
288
  return x.replace(/[^a-zA-Z0-9_-]/g, '-').replace(/^[0-9-]+/, '');
277
289
  }
@@ -284,4 +296,4 @@ function publishProjectOutputId(project) {
284
296
  function shouldPublishProjectStepId(project) {
285
297
  return `check-${publishProjectOutputId(project)}`;
286
298
  }
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8tcmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy95YXJuL21vbm9yZXBvLXJlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsbUNBQW9GO0FBQ3BGLDJEQUEwRjtBQUcxRixpRkFBMkY7QUFFM0YsZ0NBQWdDO0FBQ2hDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUNoQyxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQztBQUN2QyxNQUFNLG9CQUFvQixHQUFHLGVBQWUsQ0FBQztBQUU3QyxNQUFhLGVBQWdCLFNBQVEsa0JBQVM7SUFDNUM7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFnQjtRQUMvQixNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBWSxFQUF3QixFQUFFLENBQUMsQ0FBQyxZQUFZLGVBQWUsQ0FBQztRQUN2RyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQW1CRCxZQUFZLE9BQWdCLEVBQW1CLFVBQWtDLEVBQUU7UUFDakYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRDhCLFlBQU8sR0FBUCxPQUFPLENBQTZCO1FBYmxFLHNCQUFpQixHQUFHLElBQUksS0FBSyxFQU8xQyxDQUFDO1FBSVksc0JBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQXlDLENBQUM7UUFLcEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztRQUMvQyxNQUFNLEVBQUUsR0FBRyxlQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJ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LEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzNHLEdBQUcsRUFBRTtnQkFDSCxFQUFFLEVBQUUsTUFBTTthQUNYO1lBQ0QsV0FBVyxFQUFFO2dCQUNYLFFBQVEsRUFBRSxPQUFjO2FBQ3pCO1lBQ0QsWUFBWSxFQUFFO2dCQUNaLHlEQUF5RDtnQkFDekQscUNBQXFDO2dCQUNyQyxVQUFVLEVBQUUsQ0FBQzthQUNkO1lBQ0QsYUFBYTtZQUNiLElBQUksRUFBRSxJQUFJLENBQUMsV0FBWTtZQUN2QixjQUFjO1lBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYztTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXZUSCwwQ0F3VEM7OztBQUVELFNBQVMsT0FBTyxDQUFDLENBQVM7SUFDeEIsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbkUsQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQUMsT0FBZ0I7SUFDekMsT0FBTyxPQUFPLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLCtCQUFtQixFQUFFLENBQUMsQ0FBQztBQUMzRCxDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxPQUFnQjtJQUM5QyxPQUFPLFdBQVcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0FBQzVDLENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUFDLE9BQWdCO0lBQ2xELE9BQU8sU0FBUyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgZ2l0aHViLCByZWxlYXNlIGFzIHByb2plblJlbGVhc2UsIENvbXBvbmVudCwgUHJvamVjdCwgVGFzayB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBCVUlMRF9BUlRJRkFDVF9OQU1FLCBQRVJNSVNTSU9OX0JBQ0tVUF9GSUxFIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvY29uc3RhbnRzJztcbmltcG9ydCB7IE1vbm9yZXBvUmVsZWFzZU9wdGlvbnMgfSBmcm9tICcuL21vbm9yZXBvLXJlbGVhc2Utb3B0aW9ucyc7XG5pbXBvcnQgeyBUeXBlU2NyaXB0V29ya3NwYWNlIH0gZnJvbSAnLi90eXBlc2NyaXB0LXdvcmtzcGFjZSc7XG5pbXBvcnQgeyBXb3Jrc3BhY2VSZWxlYXNlLCBXb3Jrc3BhY2VSZWxlYXNlT3B0aW9ucyB9IGZyb20gJy4vdHlwZXNjcmlwdC13b3Jrc3BhY2UtcmVsZWFzZSc7XG5cbi8vIGNvcGllZCBmcm9tIHByb2plbi9yZWxlYXNlLnRzXG5jb25zdCBSRUxFQVNFX0pPQklEID0gJ3JlbGVhc2UnO1xuY29uc3QgR0lUX1JFTU9URV9TVEVQSUQgPSAnZ2l0X3JlbW90ZSc7XG5jb25zdCBMQVRFU1RfQ09NTUlUX09VVFBVVCA9ICdsYXRlc3RfY29tbWl0JztcblxuZXhwb3J0IGNsYXNzIE1vbm9yZXBvUmVsZWFzZSBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBgTW9ub3JlcG9SZWxlYXNlV29ya2Zsb3dgIGNvbXBvbmVudCBvZiBhIHByb2plY3Qgb3IgYHVuZGVmaW5lZGAgaWYgdGhlIHByb2plY3RcbiAgICogZG9lcyBub3QgaGF2ZSBhIE1vbm9yZXBvUmVsZWFzZVdvcmtmbG93IGNvbXBvbmVudC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2YocHJvamVjdDogUHJvamVjdCk6IE1vbm9yZXBvUmVsZWFzZSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNNb25vcmVwb1JlbGVhc2VXb3JrZmxvdyA9IChjOiBDb21wb25lbnQpOiBjIGlzIE1vbm9yZXBvUmVsZWFzZSA9PiBjIGluc3RhbmNlb2YgTW9ub3JlcG9SZWxlYXNlO1xuICAgIHJldHVybiBwcm9qZWN0LmNvbXBvbmVudHMuZmluZChpc01vbm9yZXBvUmVsZWFzZVdvcmtmbG93KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgYnJhbmNoTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGdpdGh1YjogZ2l0aHViLkdpdEh1YjtcbiAgcHJpdmF0ZSByZWFkb25seSByZWxlYXNlVHJpZ2dlcjogcHJvamVuUmVsZWFzZS5SZWxlYXNlVHJpZ2dlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBidWlsZFdpdGhOeDogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBwYWNrYWdlc1RvUmVsZWFzZSA9IG5ldyBBcnJheTx7XG4gICAgcmVhZG9ubHkgd29ya3NwYWNlRGlyZWN0b3J5OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgcmVsZWFzZToge1xuICAgICAgcmVhZG9ubHkgd29ya3NwYWNlOiBUeXBlU2NyaXB0V29ya3NwYWNlO1xuICAgICAgcmVhZG9ubHkgcHVibGlzaGVyOiBwcm9qZW5SZWxlYXNlLlB1Ymxpc2hlcjtcbiAgICAgIHJlYWRvbmx5IG9wdGlvbnM6IFBhcnRpYWw8cHJvamVuUmVsZWFzZS5CcmFuY2hPcHRpb25zPjtcbiAgICB9O1xuICB9PigpO1xuXG4gIHByaXZhdGUgd29ya2Zsb3c/OiBnaXRodWIuVGFza1dvcmtmbG93O1xuICBwcml2YXRlIHJlbGVhc2VUYXNrPzogVGFzaztcbiAgcHJpdmF0ZSByZWFkb25seSB3b3Jrc3BhY2VSZWxlYXNlcyA9IG5ldyBNYXA8VHlwZVNjcmlwdFdvcmtzcGFjZSwgV29ya3NwYWNlUmVsZWFzZT4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IE1vbm9yZXBvUmVsZWFzZU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgdGhpcy5icmFuY2hOYW1lID0gb3B0aW9ucy5icmFuY2hOYW1lID8/ICdtYWluJztcbiAgICBjb25zdCBnaCA9IGdpdGh1Yi5HaXRIdWIub2YocHJvamVjdCk7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm9qZWN0IGlzIG5vdCBhIEdpdEh1YiBwcm9qZWN0OiAke3Byb2plY3R9YCk7XG4gICAgfVxuICAgIHRoaXMuZ2l0aHViID0gZ2g7XG4gICAgdGhpcy5yZWxlYXNlVHJpZ2dlciA9IG9wdGlvbnMucmVsZWFzZVRyaWdnZXIgPz8gcHJvamVuUmVsZWFzZS5SZWxlYXNlVHJpZ2dlci5jb250aW51b3VzKCk7XG4gICAgdGhpcy5idWlsZFdpdGhOeCA9IG9wdGlvbnMuYnVpbGRXaXRoTnggPz8gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgd29ya3NwYWNlUmVsZWFzZShwcm9qZWN0OiBUeXBlU2NyaXB0V29ya3NwYWNlKSB7XG4gICAgY29uc3QgcmV0ID0gdGhpcy53b3Jrc3BhY2VSZWxlYXNlcy5nZXQocHJvamVjdCk7XG4gICAgaWYgKCFyZXQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gcmVsZWFzZSBmb3IgcHJvamVjdCAke3Byb2plY3QubmFtZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRXb3Jrc3BhY2UocHJvamVjdDogVHlwZVNjcmlwdFdvcmtzcGFjZSwgb3B0aW9uczogV29ya3NwYWNlUmVsZWFzZU9wdGlvbnMpIHtcbiAgICBjb25zdCB3b3Jrc3BhY2VSZWxlYXNlID0gbmV3IFdvcmtzcGFjZVJlbGVhc2UocHJvamVjdCwge1xuICAgICAgcHVibGlzaFRvTnBtOiB0aGlzLm9wdGlvbnMucHVibGlzaFRvTnBtLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcblxuICAgIC8vIE1ha2UgdGhlc2UgcHVibGljbHkgYWNjZXNzaWJsZVxuICAgIHRoaXMud29ya3NwYWNlUmVsZWFzZXMuc2V0KHByb2plY3QsIHdvcmtzcGFjZVJlbGVhc2UpO1xuXG4gICAgaWYgKCFvcHRpb25zLnByaXZhdGUgJiYgd29ya3NwYWNlUmVsZWFzZS5wdWJsaXNoZXIpIHtcbiAgICAgIHRoaXMub2J0YWluUmVsZWFzZVRhc2soKTtcblxuICAgICAgdGhpcy5wYWNrYWdlc1RvUmVsZWFzZS5wdXNoKHtcbiAgICAgICAgd29ya3NwYWNlRGlyZWN0b3J5OiBwcm9qZWN0LndvcmtzcGFjZURpcmVjdG9yeSxcbiAgICAgICAgcmVsZWFzZToge1xuICAgICAgICAgIHdvcmtzcGFjZTogd29ya3NwYWNlUmVsZWFzZS53b3Jrc3BhY2UsXG4gICAgICAgICAgcHVibGlzaGVyOiB3b3Jrc3BhY2VSZWxlYXNlLnB1Ymxpc2hlcixcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAvLyBlbmZvcmNlZCBvcHRpb25zXG4gICAgICAgICAgICB3b3JrZmxvd05hbWU6IHRoaXMub3B0aW9ucy5yZWxlYXNlV29ya2Zsb3dOYW1lLFxuICAgICAgICAgICAgdGFnUHJlZml4OiBgJHtwcm9qZWN0Lm5hbWV9QGAsXG5cbiAgICAgICAgICAgIC8vIG9wdGlvbnMgdGhhdCBtYXkgYmUgb3ZlcnJpZGUgbG9jYWxseVxuICAgICAgICAgICAgbWFqb3JWZXJzaW9uOiBvcHRpb25zLnZlcnNpb25CcmFuY2hPcHRpb25zLm1ham9yVmVyc2lvbiA/PyB0aGlzLm9wdGlvbnMubWFqb3JWZXJzaW9uLFxuICAgICAgICAgICAgbWluTWFqb3JWZXJzaW9uOiBvcHRpb25zLnZlcnNpb25CcmFuY2hPcHRpb25zLm1pbk1ham9yVmVyc2lvbiA/PyB0aGlzLm9wdGlvbnMubWluTWFqb3JWZXJzaW9uLFxuICAgICAgICAgICAgcHJlcmVsZWFzZTogb3B0aW9ucy52ZXJzaW9uQnJhbmNoT3B0aW9ucy5wcmVyZWxlYXNlID8/IHRoaXMub3B0aW9ucy5wcmVyZWxlYXNlLFxuICAgICAgICAgICAgbnBtRGlzdFRhZzogb3B0aW9ucy5ucG1EaXN0VGFnID8/IHRoaXMub3B0aW9ucy5ucG1EaXN0VGFnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICBpZiAoIXRoaXMucmVsZWFzZVRhc2spIHtcbiAgICAgIC8vIFdlIGRpZG4ndCBlbmQgdXAgYWRkaW5nIGFueSBwYWNrYWdlc1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY3JlYXRlUHVibGlzaGluZ01lY2hhbmlzbSgpO1xuICAgIHRoaXMucmVuZGVyUGFja2FnZVVwbG9hZHMoKTtcbiAgICB0aGlzLnJlbmRlclB1Ymxpc2hKb2JzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclBhY2thZ2VVcGxvYWRzKCkge1xuICAgIGNvbnN0IG5vTmV3Q29tbWl0cyA9IGBcXCR7eyBzdGVwcy4ke0dJVF9SRU1PVEVfU1RFUElEfS5vdXRwdXRzLiR7TEFURVNUX0NPTU1JVF9PVVRQVVR9ID09IGdpdGh1Yi5zaGEgfX1gO1xuXG4gICAgZm9yIChjb25zdCB7IHdvcmtzcGFjZURpcmVjdG9yeSwgcmVsZWFzZSB9IG9mIHRoaXMucGFja2FnZXNUb1JlbGVhc2UpIHtcbiAgICAgIGNvbnN0IGpvYiA9IHRoaXMud29ya2Zsb3c/LmdldEpvYihSRUxFQVNFX0pPQklEKSBhcyBnaXRodWIud29ya2Zsb3dzLkpvYiB8IHVuZGVmaW5lZDtcbiAgICAgIGpvYj8uc3RlcHMucHVzaChcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IGAke3JlbGVhc2Uud29ya3NwYWNlLm5hbWV9OiBCYWNrdXAgYXJ0aWZhY3QgcGVybWlzc2lvbnNgLFxuICAgICAgICAgIGlmOiBub05ld0NvbW1pdHMsXG4gICAgICAgICAgY29udGludWVPbkVycm9yOiB0cnVlLFxuICAgICAgICAgIHJ1bjogYGNkICR7cmVsZWFzZS53b3Jrc3BhY2UuYXJ0aWZhY3RzRGlyZWN0b3J5fSAmJiBnZXRmYWNsIC1SIC4gPiAke1BFUk1JU1NJT05fQkFDS1VQX0ZJTEV9YCxcbiAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3Jrc3BhY2VEaXJlY3RvcnksXG4gICAgICAgIH0sXG4gICAgICAgIGdpdGh1Yi5Xb3JrZmxvd1N0ZXBzLnVwbG9hZEFydGlmYWN0KHtcbiAgICAgICAgICBuYW1lOiBgJHtyZWxlYXNlLndvcmtzcGFjZS5uYW1lfTogVXBsb2FkIGFydGlmYWN0YCxcbiAgICAgICAgICBpZjogbm9OZXdDb21taXRzLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgIC8vIEV2ZXJ5IGFydGlmYWN0IG11c3QgaGF2ZSBhIHVuaXF1ZSBuYW1lXG4gICAgICAgICAgICBuYW1lOiBidWlsZEFydGlmYWN0TmFtZShyZWxlYXNlLndvcmtzcGFjZSksXG4gICAgICAgICAgICBwYXRoOiBwYXRoLmpvaW4od29ya3NwYWNlRGlyZWN0b3J5LCByZWxlYXNlLndvcmtzcGFjZS5hcnRpZmFjdHNEaXJlY3RvcnkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclB1Ymxpc2hKb2JzKCkge1xuICAgIGZvciAoY29uc3QgeyByZWxlYXNlIH0gb2YgdGhpcy5wYWNrYWdlc1RvUmVsZWFzZSkge1xuICAgICAgY29uc3QgcGFja2FnZVB1Ymxpc2hKb2JzID0gcmVsZWFzZS5wdWJsaXNoZXIuX3JlbmRlckpvYnNGb3JCcmFuY2godGhpcy5icmFuY2hOYW1lLCByZWxlYXNlLm9wdGlvbnMpO1xuXG4gICAgICBmb3IgKGNvbnN0IGpvYiBvZiBPYmplY3QudmFsdWVzKHBhY2thZ2VQdWJsaXNoSm9icykpIHtcbiAgICAgICAgLy8gRmluZCB0aGUgJ2Rvd25sb2FkLWFydGlmYWN0JyBqb2IgYW5kIHJlcGxhY2UgdGhlIGJ1aWxkIGFydGlmYWN0IG5hbWUgd2l0aCB0aGUgdW5pcXVlIHBlci1wcm9qZWN0IG9uZVxuICAgICAgICBjb25zdCBkb3dubG9hZFN0ZXAgPSBqb2Iuc3RlcHMuZmluZCgoaikgPT4gai51c2VzPy5zdGFydHNXaXRoKCdhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0QCcpKTtcbiAgICAgICAgaWYgKCFkb3dubG9hZFN0ZXApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIGRvd25sb2FkU3RlcCBhbW9uZyBzdGVwczogJHtKU09OLnN0cmluZ2lmeShqb2Iuc3RlcHMsIHVuZGVmaW5lZCwgMil9YCk7XG4gICAgICAgIH1cbiAgICAgICAgKGRvd25sb2FkU3RlcC53aXRoID8/IHt9KS5uYW1lID0gYnVpbGRBcnRpZmFjdE5hbWUocmVsZWFzZS53b3Jrc3BhY2UpO1xuICAgICAgfVxuXG4gICAgICAvLyBNYWtlIHRoZSBqb2IgbmFtZXMgdW5pcXVlXG4gICAgICB0aGlzLndvcmtmbG93Py5hZGRKb2JzKFxuICAgICAgICBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMocGFja2FnZVB1Ymxpc2hKb2JzKS5tYXAoKFtrZXksIGpvYl0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByZWZpeCA9IHNsdWdpZnkoYCR7cmVsZWFzZS53b3Jrc3BhY2UubmFtZX1gKTtcbiAgICAgICAgICAgIGNvbnN0IG5lZWRzID0gKGpvYi5uZWVkcyA/PyBbXSkubWFwKGRlcCA9PiB7XG4gICAgICAgICAgICAgIC8vIEFsbCBwdWJsaXNoIGpvYnMgZGVwZW5kIG9uIHRoZSBtYWluIHJlbGVhc2Ugam9iXG4gICAgICAgICAgICAgIGlmIChkZXAgPT09ICdyZWxlYXNlJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXA7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyAuLi4gYW5kIHBvc3NpYmx5IG9uIGluZGl2aWR1YWwgcHVibGlzaCBqb2JzIHRoYXQgYXJlIHByZWZpeGVkXG4gICAgICAgICAgICAgIHJldHVybiBgJHtwcmVmaXh9XyR7ZGVwfWA7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgYCR7cHJlZml4fV8ke2tleX1gLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4uam9iLFxuICAgICAgICAgICAgICAgIG5lZWRzLFxuICAgICAgICAgICAgICAgIGlmOiBgXFwke3sgbmVlZHMucmVsZWFzZS5vdXRwdXRzLmxhdGVzdF9jb21taXQgPT0gZ2l0aHViLnNoYSAmJiBuZWVkcy5yZWxlYXNlLm91dHB1dHMuJHtwdWJsaXNoUHJvamVjdE91dHB1dElkKFxuICAgICAgICAgICAgICAgICAgcmVsZWFzZS53b3Jrc3BhY2UsXG4gICAgICAgICAgICAgICAgKX0gPT0gJ3RydWUnIH19YCxcbiAgICAgICAgICAgICAgICBuYW1lOiBgJHtyZWxlYXNlLndvcmtzcGFjZS5uYW1lfTogJHtqb2IubmFtZX1gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvYnRhaW5SZWxlYXNlVGFzaygpOiBUYXNrIHtcbiAgICBpZiAodGhpcy5yZWxlYXNlVGFzaykge1xuICAgICAgcmV0dXJuIHRoaXMucmVsZWFzZVRhc2s7XG4gICAgfVxuXG4gICAgY29uc3QgZW52OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgICAgUkVMRUFTRTogJ3RydWUnLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLm1ham9yVmVyc2lvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBlbnYuTUFKT1IgPSB0aGlzLm9wdGlvbnMubWFqb3JWZXJzaW9uLnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5taW5NYWpvclZlcnNpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMub3B0aW9ucy5tYWpvclZlcnNpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ21pbk1ham9yVmVyc2lvbiBhbmQgbWFqb3JWZXJzaW9uIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyLicpO1xuICAgICAgfVxuXG4gICAgICBlbnYuTUlOX01BSk9SID0gdGhpcy5vcHRpb25zLm1pbk1ham9yVmVyc2lvbi50b1N0cmluZygpO1xuICAgIH1cblxuICAgIHRoaXMucmVsZWFzZVRhc2sgPSB0aGlzLnByb2plY3QuYWRkVGFzaygncmVsZWFzZScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnUHJlcGFyZSBhIHJlbGVhc2UgZnJvbSBhbGwgbW9ub3JlcG8gcGFja2FnZXMnLFxuICAgICAgZW52LFxuICAgIH0pO1xuICAgIC8vIFVucm9sbCBvdXQgdGhlICdyZWxlYXNlJyB0YXNrLCBhbmQgZG8gYWxsIHRoZSBwaGFzZXMgZm9yIGVhY2ggaW5kaXZpZHVhbCBwYWNrYWdlLiBXZSBuZWVkIHRvICdidW1wJyBhdCB0aGUgc2FtZVxuICAgIC8vIHRpbWUgc28gdGhhdCB0aGUgZGVwZW5kZW5jeSB2ZXJzaW9ucyBpbiBhbGwgJ3BhY2thZ2UuanNvbidzIGFyZSBjb3JyZWN0LlxuICAgIHRoaXMucmVsZWFzZVRhc2suZXhlYygneWFybiB3b3Jrc3BhY2VzIHJ1biBzaHggcm0gLXJmIGRpc3QnKTtcbiAgICB0aGlzLnJlbGVhc2VUYXNrLmV4ZWMoJ3lhcm4gd29ya3NwYWNlcyBydW4gYnVtcCcpO1xuICAgIGlmICh0aGlzLmJ1aWxkV2l0aE54KSB7XG4gICAgICB0aGlzLnJlbGVhc2VUYXNrLmV4ZWMoJ254IHJ1bi1tYW55IC10IGJ1aWxkJyk7XG4gICAgICB0aGlzLnJlbGVhc2VUYXNrLmVudignTlhfU0tJUF9OWF9DQUNIRScsICd0cnVlJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVsZWFzZVRhc2suZXhlYygneWFybiB3b3Jrc3BhY2VzIHJ1biBidWlsZCcpO1xuICAgIH1cbiAgICB0aGlzLnJlbGVhc2VUYXNrLmV4ZWMoJ3lhcm4gd29ya3NwYWNlcyBydW4gdW5idW1wJyk7XG4gICAgLy8gYW50aS10YW1wZXIgY2hlY2sgKGZhaWxzIGlmIHRoZXJlIHdlcmUgY2hhbmdlcyB0byBjb21taXR0ZWQgZmlsZXMpXG4gICAgLy8gdGhpcyB3aWxsIGlkZW50aWZ5IGFueSBub24tY29tbWl0dGVkIGZpbGVzIGdlbmVyYXRlZCBkdXJpbmcgYnVpbGQgKGUuZy4gdGVzdCBzbmFwc2hvdHMpXG4gICAgdGhpcy5yZWxlYXNlVGFzay5leGVjKHByb2plblJlbGVhc2UuUmVsZWFzZS5BTlRJX1RBTVBFUl9DTUQpO1xuXG4gICAgcmV0dXJuIHRoaXMucmVsZWFzZVRhc2s7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVB1Ymxpc2hpbmdNZWNoYW5pc20oKSB7XG4gICAgaWYgKHRoaXMucmVsZWFzZVRyaWdnZXIuaXNNYW51YWwpIHtcbiAgICAgIHRoaXMuY3JlYXRlUHVibGlzaFRhc2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jcmVhdGVQdWJsaXNoV29ya2Zsb3coKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVB1Ymxpc2hUYXNrKCkge1xuICAgIHRocm93IG5ldyBFcnJvcignTWFudWFsIHB1Ymxpc2hpbmcgaXMgbm90IHN1cHBvcnRlZCByaWdodCBub3cnKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHVibGlzaFdvcmtmbG93KCkge1xuICAgIGNvbnN0IHdvcmtmbG93TmFtZSA9XG4gICAgICB0aGlzLm9wdGlvbnMucmVsZWFzZVdvcmtmbG93TmFtZSA/P1xuICAgICAgKFsnbWFzdGVyJywgJ21haW4nXS5pbmNsdWRlcyh0aGlzLmJyYW5jaE5hbWUpID8gJ3JlbGVhc2UnIDogYHJlbGVhc2UtJHt0aGlzLmJyYW5jaE5hbWV9YCk7XG5cbiAgICAvLyBUaGUgYXJyYXlzIGFyZSBiZWluZyBjbG9uZWQgdG8gYXZvaWQgYWNjdW11bGF0aW5nIHZhbHVlcyBmcm9tIHByZXZpb3VzIGJyYW5jaGVzXG4gICAgY29uc3QgcHJlQnVpbGRTdGVwcyA9IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ1NldHVwIE5vZGUuanMnLFxuICAgICAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1ub2RlQHY0JyxcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgICdub2RlLXZlcnNpb24nOiAodGhpcy5wcm9qZWN0IGFzIGFueSkubm9kZVZlcnNpb24gPz8gJ2x0cy8qJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdJbnN0YWxsIGRlcGVuZGVuY2llcycsXG4gICAgICAgIHJ1bjogJ3lhcm4gaW5zdGFsbCAtLWNoZWNrLWZpbGVzIC0tZnJvemVuLWxvY2tmaWxlJyxcbiAgICAgIH0sXG4gICAgICAuLi4odGhpcy5vcHRpb25zLnJlbGVhc2VXb3JrZmxvd1NldHVwU3RlcHMgPz8gW10pLFxuICAgIF07XG4gICAgY29uc3QgcG9zdEJ1aWxkU3RlcHMgPSBbLi4uKHRoaXMub3B0aW9ucy5wb3N0QnVpbGRTdGVwcyA/PyBbXSldO1xuXG4gICAgLy8gQWRkIGFuIG91dHB1dCB0byB0aGUgam9iIHRvIGluZGljYXRlIGlmIGEgY2VydGFpbiBwYWNrYWdlIG5lZWRzIHB1Ymxpc2hpbmdcbiAgICBjb25zdCBzaG91bGRQdWJsaXNoT3V0cHV0cyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIHRoaXMucGFja2FnZXNUb1JlbGVhc2UubWFwKCh7IHJlbGVhc2UgfSkgPT4ge1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIHB1Ymxpc2hQcm9qZWN0T3V0cHV0SWQocmVsZWFzZS53b3Jrc3BhY2UpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHN0ZXBJZDogc2hvdWxkUHVibGlzaFByb2plY3RTdGVwSWQocmVsZWFzZS53b3Jrc3BhY2UpLFxuICAgICAgICAgICAgb3V0cHV0TmFtZTogJ3B1Ymxpc2gnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhlIHByb3Bvc2VkIHJlbGVhc2UgdGFnIGFscmVhZHkgZXhpc3RzXG4gICAgLy8gT25seSBpZiBpdCBkb2Vzbid0IGV4aXN0IHlldCBzaG91bGQgd2UgcHVibGlzaFxuICAgIGZvciAoY29uc3QgeyB3b3Jrc3BhY2VEaXJlY3RvcnksIHJlbGVhc2UgfSBvZiB0aGlzLnBhY2thZ2VzVG9SZWxlYXNlKSB7XG4gICAgICBwb3N0QnVpbGRTdGVwcy5wdXNoKHtcbiAgICAgICAgaWQ6IHNob3VsZFB1Ymxpc2hQcm9qZWN0U3RlcElkKHJlbGVhc2Uud29ya3NwYWNlKSxcbiAgICAgICAgd29ya2luZ0RpcmVjdG9yeTogd29ya3NwYWNlRGlyZWN0b3J5LFxuICAgICAgICBydW46ICcoZ2l0IGxzLXJlbW90ZSAtcSAtLWV4aXQtY29kZSAtLXRhZ3Mgb3JpZ2luICQoY2F0IGRpc3QvcmVsZWFzZXRhZy50eHQpICYmIChlY2hvIFwicHVibGlzaD1mYWxzZVwiID4+ICRHSVRIVUJfT1VUUFVUKSkgfHwgZWNobyBcInB1Ymxpc2g9dHJ1ZVwiID4+ICRHSVRIVUJfT1VUUFVUJyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIGNoZWNrIGlmIG5ldyBjb21taXRzIHdlcmUgcHVzaGVkIHRvIHRoZSByZXBvIHdoaWxlIHdlIHdlcmUgYnVpbGRpbmcuXG4gICAgLy8gaWYgbmV3IGNvbW1pdHMgaGF2ZSBiZWVuIHB1c2hlZCwgd2Ugd2lsbCBjYW5jZWwgdGhpcyByZWxlYXNlXG4gICAgaWYgKHRoaXMub3B0aW9ucy5yZWxlYXNlVHJpZ2dlcj8uaXNDb250aW51b3VzID8/IHRydWUpIHtcbiAgICAgIHBvc3RCdWlsZFN0ZXBzLnB1c2goe1xuICAgICAgICBuYW1lOiAnQ2hlY2sgZm9yIG5ldyBjb21taXRzJyxcbiAgICAgICAgaWQ6IEdJVF9SRU1PVEVfU1RFUElELFxuICAgICAgICBydW46IGBlY2hvIFwiJHtMQVRFU1RfQ09NTUlUX09VVFBVVH09JChnaXQgbHMtcmVtb3RlIG9yaWdpbiAtaCBcXCR7eyBnaXRodWIucmVmIH19IHwgY3V0IC1mMSlcIiA+PiAkR0lUSFVCX09VVFBVVGAsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRm9yIG5vbi1jb250aW51b3VzIGJ1aWxkcyB3ZSdsbCBqdXN0IHB1dCB0aGUgdmFsdWUgdGhlcmUgdGhhdCBkb3duc3RyZWFtIHN0ZXBzIGFyZSBnb2luZyB0byBjb21wYXJlIGFnYWluc3RcbiAgICAgIHBvc3RCdWlsZFN0ZXBzLnB1c2goe1xuICAgICAgICBuYW1lOiAnT3V0cHV0IHRoZSBzaGEgdmFsdWUgdGhhdCBkb3duc3RyZWFtIGNoZWNrcyBleHBlY3QnLFxuICAgICAgICBpZDogR0lUX1JFTU9URV9TVEVQSUQsXG4gICAgICAgIHJ1bjogYGVjaG8gXCIke0xBVEVTVF9DT01NSVRfT1VUUFVUfT1cXCR7eyBnaXRodWIuc2hhIH19XCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy53b3JrZmxvdyA9IG5ldyBnaXRodWIuVGFza1dvcmtmbG93KHRoaXMuZ2l0aHViLCB7XG4gICAgICBuYW1lOiB3b3JrZmxvd05hbWUsXG4gICAgICBqb2JJZDogUkVMRUFTRV9KT0JJRCxcbiAgICAgIG91dHB1dHM6IHtcbiAgICAgICAgbGF0ZXN0X2NvbW1pdDoge1xuICAgICAgICAgIHN0ZXBJZDogR0lUX1JFTU9URV9TVEVQSUQsXG4gICAgICAgICAgb3V0cHV0TmFtZTogTEFURVNUX0NPTU1JVF9PVVRQVVQsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnNob3VsZFB1Ymxpc2hPdXRwdXRzLFxuICAgICAgfSxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIHNjaGVkdWxlOiB0aGlzLnJlbGVhc2VUcmlnZ2VyLnNjaGVkdWxlID8gW3sgY3JvbjogdGhpcy5yZWxlYXNlVHJpZ2dlci5zY2hlZHVsZSB9XSA6IHVuZGVmaW5lZCxcbiAgICAgICAgcHVzaDogdGhpcy5yZWxlYXNlVHJpZ2dlci5pc0NvbnRpbnVvdXMgPyB7IGJyYW5jaGVzOiBbdGhpcy5icmFuY2hOYW1lXSB9IDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIGNvbnRhaW5lcjogdGhpcy5vcHRpb25zLndvcmtmbG93Q29udGFpbmVySW1hZ2UgPyB7IGltYWdlOiB0aGlzLm9wdGlvbnMud29ya2Zsb3dDb250YWluZXJJbWFnZSB9IDogdW5kZWZpbmVkLFxuICAgICAgZW52OiB7XG4gICAgICAgIENJOiAndHJ1ZScsXG4gICAgICB9LFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgY29udGVudHM6ICd3cml0ZScgYXMgYW55LFxuICAgICAgfSxcbiAgICAgIGNoZWNrb3V0V2l0aDoge1xuICAgICAgICAvLyB3ZSBtdXN0IHVzZSAnZmV0Y2gtZGVwdGg9MCcgaW4gb3JkZXIgdG8gZmV0Y2ggYWxsIHRhZ3NcbiAgICAgICAgLy8gb3RoZXJ3aXNlIHRhZ3MgYXJlIG5vdCBjaGVja2VkIG91dFxuICAgICAgICBmZXRjaERlcHRoOiAwLFxuICAgICAgfSxcbiAgICAgIHByZUJ1aWxkU3RlcHMsXG4gICAgICB0YXNrOiB0aGlzLnJlbGVhc2VUYXNrISxcbiAgICAgIHBvc3RCdWlsZFN0ZXBzLFxuICAgICAgcnVuc09uOiB0aGlzLm9wdGlvbnMud29ya2Zsb3dSdW5zT24sXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2x1Z2lmeSh4OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4geC5yZXBsYWNlKC9bXmEtekEtWjAtOV8tXS9nLCAnLScpLnJlcGxhY2UoL15bMC05LV0rLywgJycpO1xufVxuXG5mdW5jdGlvbiBidWlsZEFydGlmYWN0TmFtZShwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIHJldHVybiBzbHVnaWZ5KGAke3Byb2plY3QubmFtZX1fJHtCVUlMRF9BUlRJRkFDVF9OQU1FfWApO1xufVxuXG5mdW5jdGlvbiBwdWJsaXNoUHJvamVjdE91dHB1dElkKHByb2plY3Q6IFByb2plY3QpIHtcbiAgcmV0dXJuIGBwdWJsaXNoLSR7c2x1Z2lmeShwcm9qZWN0Lm5hbWUpfWA7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFB1Ymxpc2hQcm9qZWN0U3RlcElkKHByb2plY3Q6IFByb2plY3QpIHtcbiAgcmV0dXJuIGBjaGVjay0ke3B1Ymxpc2hQcm9qZWN0T3V0cHV0SWQocHJvamVjdCl9YDtcbn1cbiJdfQ==
299
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8tcmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy95YXJuL21vbm9yZXBvLXJlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2QkFBNkI7QUFDN0IsbUNBQW9GO0FBQ3BGLDJEQUEwRjtBQUkxRixpRkFBMkY7QUFFM0YsZ0NBQWdDO0FBQ2hDLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQztBQUNoQyxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQztBQUN2QyxNQUFNLG9CQUFvQixHQUFHLGVBQWUsQ0FBQztBQUU3QyxNQUFhLGVBQWdCLFNBQVEsa0JBQVM7SUFDNUM7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFnQjtRQUMvQixNQUFNLHlCQUF5QixHQUFHLENBQUMsQ0FBWSxFQUF3QixFQUFFLENBQUMsQ0FBQyxZQUFZLGVBQWUsQ0FBQztRQUN2RyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQW1CRCxZQUFZLE9BQWdCLEVBQW1CLFVBQWtDLEVBQUU7UUFDakYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRDhCLFlBQU8sR0FBUCxPQUFPLENBQTZCO1FBYmxFLHNCQUFpQixHQUFHLElBQUksS0FBSyxFQU8xQyxDQUFDO1FBSVksc0JBQWlCLEdBQUcsSUFBSSxHQUFHLEVBQXlDLENBQUM7UUFLcEYsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQztRQUMvQyxNQUFNLEVBQUUsR0FBRyxlQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLElBQUksZ0JBQWEsQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDMUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQztJQUNsRCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsT0FBNEI7UUFDbEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0sWUFBWSxDQUFDLE9BQTRCLEVBQUUsT0FBZ0M7UUFDaEYsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLCtDQUFnQixDQUFDLE9BQU8sRUFBRTtZQUNyRCxZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO1lBQ3ZDLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQztRQUVILGlDQUFpQztRQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXRELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBRXpCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7Z0JBQzlDLE9BQU8sRUFBRTtvQkFDUCxTQUFTLEVBQUUsZ0JBQWdCLENBQUMsU0FBUztvQkFDckMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVM7b0JBQ3JDLE9BQU8sRUFBRTt3QkFDUCxtQkFBbUI7d0JBQ25CLFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQjt3QkFDOUMsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksR0FBRzt3QkFFN0IsdUNBQXVDO3dCQUN2QyxZQUFZLEVBQUUsT0FBTyxDQUFDLG9CQUFvQixDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVk7d0JBQ3BGLGVBQWUsRUFBRSxPQUFPLENBQUMsb0JBQW9CLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZTt3QkFDN0YsVUFBVSxFQUFFLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVO3dCQUM5RSxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVU7d0JBQ3pELFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztxQkFDakM7aUJBQ0Y7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN0Qix1Q0FBdUM7WUFDdkMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLE1BQU0sWUFBWSxHQUFHLGNBQWMsaUJBQWlCLFlBQVksb0JBQW9CLG1CQUFtQixDQUFDO1FBRXhHLEtBQUssTUFBTSxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBcUMsQ0FBQztZQUNyRixHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FDYjtnQkFDRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksK0JBQStCO2dCQUM5RCxFQUFFLEVBQUUsWUFBWTtnQkFDaEIsZUFBZSxFQUFFLElBQUk7Z0JBQ3JCLEdBQUcsRUFBRSxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsa0JBQWtCLHNCQUFzQixrQ0FBc0IsRUFBRTtnQkFDN0YsZ0JBQWdCLEVBQUUsa0JBQWtCO2FBQ3JDLEVBQ0QsZUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUM7Z0JBQ2xDLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxtQkFBbUI7Z0JBQ2xELEVBQUUsRUFBRSxZQUFZO2dCQUNoQixJQUFJLEVBQUU7b0JBQ0oseUNBQXlDO29CQUN6QyxJQUFJLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztvQkFDMUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDMUU7YUFDRixDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLEtBQUssTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ2pELE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVwRyxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO2dCQUNwRCx1R0FBdUc7Z0JBQ3ZHLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUM7Z0JBQzdGLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3pHLENBQUM7Z0JBQ0QsQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDeEUsQ0FBQztZQUVELDRCQUE0QjtZQUM1QixJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FDcEIsTUFBTSxDQUFDLFdBQVcsQ0FDaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDcEQsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDeEMsa0RBQWtEO29CQUNsRCxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQzt3QkFDdEIsT0FBTyxHQUFHLENBQUM7b0JBQ2IsQ0FBQztvQkFFRCxnRUFBZ0U7b0JBQ2hFLE9BQU8sR0FBRyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQzVCLENBQUMsQ0FBQyxDQUFDO2dCQUVILDhEQUE4RDtnQkFDOUQseUJBQXlCO2dCQUN6QixNQUFNLFlBQVksR0FBVTtvQkFDMUIsR0FBRyxHQUFHLENBQUMsS0FBSztvQkFDWixJQUFJLEVBQUU7d0JBQ0osR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFFO3dCQUN4QixtREFBbUQ7d0JBQ25ELE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLElBQUksT0FBTztxQkFDekU7aUJBQ0YsQ0FBQztnQkFFRixPQUFPO29CQUNMLEdBQUcsTUFBTSxJQUFJLEdBQUcsRUFBRTtvQkFDbEI7d0JBQ0UsR0FBRyxHQUFHO3dCQUNOLEtBQUssRUFBRSxZQUFZO3dCQUNuQixLQUFLO3dCQUNMLEVBQUUsRUFBRSxtRkFBbUYsc0JBQXNCLENBQzNHLE9BQU8sQ0FBQyxTQUFTLENBQ2xCLGVBQWU7d0JBQ2hCLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxJQUFJLEVBQUU7cUJBQy9DO2lCQUNGLENBQUM7WUFDSixDQUFDLENBQUMsQ0FDSCxDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDMUIsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUEyQjtZQUNsQyxPQUFPLEVBQUUsTUFBTTtTQUNoQixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QyxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ25ELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQy9DLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzVDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztZQUMvRSxDQUFDO1lBRUQsR0FBRyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMxRCxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDakQsV0FBVyxFQUFFLDhDQUE4QztZQUMzRCxHQUFHO1NBQ0osQ0FBQyxDQUFDO1FBQ0gsa0hBQWtIO1FBQ2xILDJFQUEyRTtRQUMzRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDbEQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuRCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDcEQscUVBQXFFO1FBQ3JFLDBGQUEwRjtRQUMxRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBYSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU3RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVPLHlCQUF5QjtRQUMvQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLHFCQUFxQjtRQUMzQixNQUFNLFlBQVksR0FDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUI7WUFDaEMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFFNUYsa0ZBQWtGO1FBQ2xGLE1BQU0sYUFBYSxHQUFHO1lBQ3BCO2dCQUNFLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsdUJBQXVCO2dCQUM3QixJQUFJLEVBQUU7b0JBQ0osY0FBYyxFQUFHLElBQUksQ0FBQyxPQUFlLENBQUMsV0FBVyxJQUFJLE9BQU87aUJBQzdEO2FBQ0Y7WUFDRDtnQkFDRSxJQUFJLEVBQUUsc0JBQXNCO2dCQUM1QixHQUFHLEVBQUUsOENBQThDO2FBQ3BEO1lBQ0QsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMseUJBQXlCLElBQUksRUFBRSxDQUFDO1NBQ2xELENBQUM7UUFDRixNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhFLDZFQUE2RTtRQUM3RSxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQzdDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7WUFDekMsT0FBTztnQkFDTCxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO2dCQUN6QztvQkFDRSxNQUFNLEVBQUUsMEJBQTBCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQztvQkFDckQsVUFBVSxFQUFFLFNBQVM7aUJBQ3RCO2FBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixtREFBbUQ7UUFDbkQsaURBQWlEO1FBQ2pELEtBQUssTUFBTSxFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JFLGNBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xCLEVBQUUsRUFBRSwwQkFBMEIsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO2dCQUNqRCxnQkFBZ0IsRUFBRSxrQkFBa0I7Z0JBQ3BDLEdBQUcsRUFBRSw4SkFBOEo7YUFDcEssQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELHVFQUF1RTtRQUN2RSwrREFBK0Q7UUFDL0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxZQUFZLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdEQsY0FBYyxDQUFDLElBQUksQ0FBQztnQkFDbEIsSUFBSSxFQUFFLHVCQUF1QjtnQkFDN0IsRUFBRSxFQUFFLGlCQUFpQjtnQkFDckIsR0FBRyxFQUFFLFNBQVMsb0JBQW9CLDZFQUE2RTthQUNoSCxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLDhHQUE4RztZQUM5RyxjQUFjLENBQUMsSUFBSSxDQUFDO2dCQUNsQixJQUFJLEVBQUUsb0RBQW9EO2dCQUMxRCxFQUFFLEVBQUUsaUJBQWlCO2dCQUNyQixHQUFHLEVBQUUsU0FBUyxvQkFBb0Isd0NBQXdDO2FBQzNFLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ25ELElBQUksRUFBRSxZQUFZO1lBQ2xCLEtBQUssRUFBRSxhQUFhO1lBQ3BCLE9BQU8sRUFBRTtnQkFDUCxhQUFhLEVBQUU7b0JBQ2IsTUFBTSxFQUFFLGlCQUFpQjtvQkFDekIsVUFBVSxFQUFFLG9CQUFvQjtpQkFDakM7Z0JBQ0QsR0FBRyxvQkFBb0I7YUFDeEI7WUFDRCxRQUFRLEVBQUU7Z0JBQ1IsUUFBUSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztnQkFDN0YsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO2FBQ3JGO1lBQ0QsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUMzRyxHQUFHLEVBQUU7Z0JBQ0gsRUFBRSxFQUFFLE1BQU07YUFDWDtZQUNELFdBQVcsRUFBRTtnQkFDWCxRQUFRLEVBQUUsT0FBYzthQUN6QjtZQUNELFlBQVksRUFBRTtnQkFDWix5REFBeUQ7Z0JBQ3pELHFDQUFxQztnQkFDckMsVUFBVSxFQUFFLENBQUM7YUFDZDtZQUNELGFBQWE7WUFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVk7WUFDdkIsY0FBYztZQUNkLE1BQU0sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWM7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFwVUgsMENBcVVDOzs7QUFFRCxTQUFTLE9BQU8sQ0FBQyxDQUFTO0lBQ3hCLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ25FLENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLE9BQWdCO0lBQ3pDLE9BQU8sT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSwrQkFBbUIsRUFBRSxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsT0FBZ0I7SUFDOUMsT0FBTyxXQUFXLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztBQUM1QyxDQUFDO0FBRUQsU0FBUywwQkFBMEIsQ0FBQyxPQUFnQjtJQUNsRCxPQUFPLFNBQVMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztBQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGdpdGh1YiwgcmVsZWFzZSBhcyBwcm9qZW5SZWxlYXNlLCBDb21wb25lbnQsIFByb2plY3QsIFRhc2sgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQlVJTERfQVJUSUZBQ1RfTkFNRSwgUEVSTUlTU0lPTl9CQUNLVVBfRklMRSB9IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUb29scyB9IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbCc7XG5pbXBvcnQgeyBNb25vcmVwb1JlbGVhc2VPcHRpb25zIH0gZnJvbSAnLi9tb25vcmVwby1yZWxlYXNlLW9wdGlvbnMnO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFdvcmtzcGFjZSB9IGZyb20gJy4vdHlwZXNjcmlwdC13b3Jrc3BhY2UnO1xuaW1wb3J0IHsgV29ya3NwYWNlUmVsZWFzZSwgV29ya3NwYWNlUmVsZWFzZU9wdGlvbnMgfSBmcm9tICcuL3R5cGVzY3JpcHQtd29ya3NwYWNlLXJlbGVhc2UnO1xuXG4vLyBjb3BpZWQgZnJvbSBwcm9qZW4vcmVsZWFzZS50c1xuY29uc3QgUkVMRUFTRV9KT0JJRCA9ICdyZWxlYXNlJztcbmNvbnN0IEdJVF9SRU1PVEVfU1RFUElEID0gJ2dpdF9yZW1vdGUnO1xuY29uc3QgTEFURVNUX0NPTU1JVF9PVVRQVVQgPSAnbGF0ZXN0X2NvbW1pdCc7XG5cbmV4cG9ydCBjbGFzcyBNb25vcmVwb1JlbGVhc2UgZXh0ZW5kcyBDb21wb25lbnQge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYE1vbm9yZXBvUmVsZWFzZVdvcmtmbG93YCBjb21wb25lbnQgb2YgYSBwcm9qZWN0IG9yIGB1bmRlZmluZWRgIGlmIHRoZSBwcm9qZWN0XG4gICAqIGRvZXMgbm90IGhhdmUgYSBNb25vcmVwb1JlbGVhc2VXb3JrZmxvdyBjb21wb25lbnQuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9mKHByb2plY3Q6IFByb2plY3QpOiBNb25vcmVwb1JlbGVhc2UgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzTW9ub3JlcG9SZWxlYXNlV29ya2Zsb3cgPSAoYzogQ29tcG9uZW50KTogYyBpcyBNb25vcmVwb1JlbGVhc2UgPT4gYyBpbnN0YW5jZW9mIE1vbm9yZXBvUmVsZWFzZTtcbiAgICByZXR1cm4gcHJvamVjdC5jb21wb25lbnRzLmZpbmQoaXNNb25vcmVwb1JlbGVhc2VXb3JrZmxvdyk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGJyYW5jaE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBnaXRodWI6IGdpdGh1Yi5HaXRIdWI7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVsZWFzZVRyaWdnZXI6IHByb2plblJlbGVhc2UuUmVsZWFzZVRyaWdnZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgYnVpbGRXaXRoTng6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgcGFja2FnZXNUb1JlbGVhc2UgPSBuZXcgQXJyYXk8e1xuICAgIHJlYWRvbmx5IHdvcmtzcGFjZURpcmVjdG9yeTogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHJlbGVhc2U6IHtcbiAgICAgIHJlYWRvbmx5IHdvcmtzcGFjZTogVHlwZVNjcmlwdFdvcmtzcGFjZTtcbiAgICAgIHJlYWRvbmx5IHB1Ymxpc2hlcjogcHJvamVuUmVsZWFzZS5QdWJsaXNoZXI7XG4gICAgICByZWFkb25seSBvcHRpb25zOiBQYXJ0aWFsPHByb2plblJlbGVhc2UuQnJhbmNoT3B0aW9ucz47XG4gICAgfTtcbiAgfT4oKTtcblxuICBwcml2YXRlIHdvcmtmbG93PzogZ2l0aHViLlRhc2tXb3JrZmxvdztcbiAgcHJpdmF0ZSByZWxlYXNlVGFzaz86IFRhc2s7XG4gIHByaXZhdGUgcmVhZG9ubHkgd29ya3NwYWNlUmVsZWFzZXMgPSBuZXcgTWFwPFR5cGVTY3JpcHRXb3Jrc3BhY2UsIFdvcmtzcGFjZVJlbGVhc2U+KCk7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBNb25vcmVwb1JlbGVhc2VPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIHRoaXMuYnJhbmNoTmFtZSA9IG9wdGlvbnMuYnJhbmNoTmFtZSA/PyAnbWFpbic7XG4gICAgY29uc3QgZ2ggPSBnaXRodWIuR2l0SHViLm9mKHByb2plY3QpO1xuICAgIGlmICghZ2gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgUHJvamVjdCBpcyBub3QgYSBHaXRIdWIgcHJvamVjdDogJHtwcm9qZWN0fWApO1xuICAgIH1cbiAgICB0aGlzLmdpdGh1YiA9IGdoO1xuICAgIHRoaXMucmVsZWFzZVRyaWdnZXIgPSBvcHRpb25zLnJlbGVhc2VUcmlnZ2VyID8/IHByb2plblJlbGVhc2UuUmVsZWFzZVRyaWdnZXIuY29udGludW91cygpO1xuICAgIHRoaXMuYnVpbGRXaXRoTnggPSBvcHRpb25zLmJ1aWxkV2l0aE54ID8/IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHdvcmtzcGFjZVJlbGVhc2UocHJvamVjdDogVHlwZVNjcmlwdFdvcmtzcGFjZSkge1xuICAgIGNvbnN0IHJldCA9IHRoaXMud29ya3NwYWNlUmVsZWFzZXMuZ2V0KHByb2plY3QpO1xuICAgIGlmICghcmV0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIHJlbGVhc2UgZm9yIHByb2plY3QgJHtwcm9qZWN0Lm5hbWV9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwdWJsaWMgYWRkV29ya3NwYWNlKHByb2plY3Q6IFR5cGVTY3JpcHRXb3Jrc3BhY2UsIG9wdGlvbnM6IFdvcmtzcGFjZVJlbGVhc2VPcHRpb25zKSB7XG4gICAgY29uc3Qgd29ya3NwYWNlUmVsZWFzZSA9IG5ldyBXb3Jrc3BhY2VSZWxlYXNlKHByb2plY3QsIHtcbiAgICAgIHB1Ymxpc2hUb05wbTogdGhpcy5vcHRpb25zLnB1Ymxpc2hUb05wbSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG5cbiAgICAvLyBNYWtlIHRoZXNlIHB1YmxpY2x5IGFjY2Vzc2libGVcbiAgICB0aGlzLndvcmtzcGFjZVJlbGVhc2VzLnNldChwcm9qZWN0LCB3b3Jrc3BhY2VSZWxlYXNlKTtcblxuICAgIGlmICghb3B0aW9ucy5wcml2YXRlICYmIHdvcmtzcGFjZVJlbGVhc2UucHVibGlzaGVyKSB7XG4gICAgICB0aGlzLm9idGFpblJlbGVhc2VUYXNrKCk7XG5cbiAgICAgIHRoaXMucGFja2FnZXNUb1JlbGVhc2UucHVzaCh7XG4gICAgICAgIHdvcmtzcGFjZURpcmVjdG9yeTogcHJvamVjdC53b3Jrc3BhY2VEaXJlY3RvcnksXG4gICAgICAgIHJlbGVhc2U6IHtcbiAgICAgICAgICB3b3Jrc3BhY2U6IHdvcmtzcGFjZVJlbGVhc2Uud29ya3NwYWNlLFxuICAgICAgICAgIHB1Ymxpc2hlcjogd29ya3NwYWNlUmVsZWFzZS5wdWJsaXNoZXIsXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgLy8gZW5mb3JjZWQgb3B0aW9uc1xuICAgICAgICAgICAgd29ya2Zsb3dOYW1lOiB0aGlzLm9wdGlvbnMucmVsZWFzZVdvcmtmbG93TmFtZSxcbiAgICAgICAgICAgIHRhZ1ByZWZpeDogYCR7cHJvamVjdC5uYW1lfUBgLFxuXG4gICAgICAgICAgICAvLyBvcHRpb25zIHRoYXQgbWF5IGJlIG92ZXJyaWRlIGxvY2FsbHlcbiAgICAgICAgICAgIG1ham9yVmVyc2lvbjogb3B0aW9ucy52ZXJzaW9uQnJhbmNoT3B0aW9ucy5tYWpvclZlcnNpb24gPz8gdGhpcy5vcHRpb25zLm1ham9yVmVyc2lvbixcbiAgICAgICAgICAgIG1pbk1ham9yVmVyc2lvbjogb3B0aW9ucy52ZXJzaW9uQnJhbmNoT3B0aW9ucy5taW5NYWpvclZlcnNpb24gPz8gdGhpcy5vcHRpb25zLm1pbk1ham9yVmVyc2lvbixcbiAgICAgICAgICAgIHByZXJlbGVhc2U6IG9wdGlvbnMudmVyc2lvbkJyYW5jaE9wdGlvbnMucHJlcmVsZWFzZSA/PyB0aGlzLm9wdGlvbnMucHJlcmVsZWFzZSxcbiAgICAgICAgICAgIG5wbURpc3RUYWc6IG9wdGlvbnMubnBtRGlzdFRhZyA/PyB0aGlzLm9wdGlvbnMubnBtRGlzdFRhZyxcbiAgICAgICAgICAgIGVudmlyb25tZW50OiBvcHRpb25zLmVudmlyb25tZW50LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJlU3ludGhlc2l6ZSgpIHtcbiAgICBpZiAoIXRoaXMucmVsZWFzZVRhc2spIHtcbiAgICAgIC8vIFdlIGRpZG4ndCBlbmQgdXAgYWRkaW5nIGFueSBwYWNrYWdlc1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY3JlYXRlUHVibGlzaGluZ01lY2hhbmlzbSgpO1xuICAgIHRoaXMucmVuZGVyUGFja2FnZVVwbG9hZHMoKTtcbiAgICB0aGlzLnJlbmRlclB1Ymxpc2hKb2JzKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclBhY2thZ2VVcGxvYWRzKCkge1xuICAgIGNvbnN0IG5vTmV3Q29tbWl0cyA9IGBcXCR7eyBzdGVwcy4ke0dJVF9SRU1PVEVfU1RFUElEfS5vdXRwdXRzLiR7TEFURVNUX0NPTU1JVF9PVVRQVVR9ID09IGdpdGh1Yi5zaGEgfX1gO1xuXG4gICAgZm9yIChjb25zdCB7IHdvcmtzcGFjZURpcmVjdG9yeSwgcmVsZWFzZSB9IG9mIHRoaXMucGFja2FnZXNUb1JlbGVhc2UpIHtcbiAgICAgIGNvbnN0IGpvYiA9IHRoaXMud29ya2Zsb3c/LmdldEpvYihSRUxFQVNFX0pPQklEKSBhcyBnaXRodWIud29ya2Zsb3dzLkpvYiB8IHVuZGVmaW5lZDtcbiAgICAgIGpvYj8uc3RlcHMucHVzaChcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IGAke3JlbGVhc2Uud29ya3NwYWNlLm5hbWV9OiBCYWNrdXAgYXJ0aWZhY3QgcGVybWlzc2lvbnNgLFxuICAgICAgICAgIGlmOiBub05ld0NvbW1pdHMsXG4gICAgICAgICAgY29udGludWVPbkVycm9yOiB0cnVlLFxuICAgICAgICAgIHJ1bjogYGNkICR7cmVsZWFzZS53b3Jrc3BhY2UuYXJ0aWZhY3RzRGlyZWN0b3J5fSAmJiBnZXRmYWNsIC1SIC4gPiAke1BFUk1JU1NJT05fQkFDS1VQX0ZJTEV9YCxcbiAgICAgICAgICB3b3JraW5nRGlyZWN0b3J5OiB3b3Jrc3BhY2VEaXJlY3RvcnksXG4gICAgICAgIH0sXG4gICAgICAgIGdpdGh1Yi5Xb3JrZmxvd1N0ZXBzLnVwbG9hZEFydGlmYWN0KHtcbiAgICAgICAgICBuYW1lOiBgJHtyZWxlYXNlLndvcmtzcGFjZS5uYW1lfTogVXBsb2FkIGFydGlmYWN0YCxcbiAgICAgICAgICBpZjogbm9OZXdDb21taXRzLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgIC8vIEV2ZXJ5IGFydGlmYWN0IG11c3QgaGF2ZSBhIHVuaXF1ZSBuYW1lXG4gICAgICAgICAgICBuYW1lOiBidWlsZEFydGlmYWN0TmFtZShyZWxlYXNlLndvcmtzcGFjZSksXG4gICAgICAgICAgICBwYXRoOiBwYXRoLmpvaW4od29ya3NwYWNlRGlyZWN0b3J5LCByZWxlYXNlLndvcmtzcGFjZS5hcnRpZmFjdHNEaXJlY3RvcnkpLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclB1Ymxpc2hKb2JzKCkge1xuICAgIGZvciAoY29uc3QgeyByZWxlYXNlIH0gb2YgdGhpcy5wYWNrYWdlc1RvUmVsZWFzZSkge1xuICAgICAgY29uc3QgcGFja2FnZVB1Ymxpc2hKb2JzID0gcmVsZWFzZS5wdWJsaXNoZXIuX3JlbmRlckpvYnNGb3JCcmFuY2godGhpcy5icmFuY2hOYW1lLCByZWxlYXNlLm9wdGlvbnMpO1xuXG4gICAgICBmb3IgKGNvbnN0IGpvYiBvZiBPYmplY3QudmFsdWVzKHBhY2thZ2VQdWJsaXNoSm9icykpIHtcbiAgICAgICAgLy8gRmluZCB0aGUgJ2Rvd25sb2FkLWFydGlmYWN0JyBqb2IgYW5kIHJlcGxhY2UgdGhlIGJ1aWxkIGFydGlmYWN0IG5hbWUgd2l0aCB0aGUgdW5pcXVlIHBlci1wcm9qZWN0IG9uZVxuICAgICAgICBjb25zdCBkb3dubG9hZFN0ZXAgPSBqb2Iuc3RlcHMuZmluZCgoaikgPT4gai51c2VzPy5zdGFydHNXaXRoKCdhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0QCcpKTtcbiAgICAgICAgaWYgKCFkb3dubG9hZFN0ZXApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBmaW5kIGRvd25sb2FkU3RlcCBhbW9uZyBzdGVwczogJHtKU09OLnN0cmluZ2lmeShqb2Iuc3RlcHMsIHVuZGVmaW5lZCwgMil9YCk7XG4gICAgICAgIH1cbiAgICAgICAgKGRvd25sb2FkU3RlcC53aXRoID8/IHt9KS5uYW1lID0gYnVpbGRBcnRpZmFjdE5hbWUocmVsZWFzZS53b3Jrc3BhY2UpO1xuICAgICAgfVxuXG4gICAgICAvLyBNYWtlIHRoZSBqb2IgbmFtZXMgdW5pcXVlXG4gICAgICB0aGlzLndvcmtmbG93Py5hZGRKb2JzKFxuICAgICAgICBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgT2JqZWN0LmVudHJpZXMocGFja2FnZVB1Ymxpc2hKb2JzKS5tYXAoKFtrZXksIGpvYl0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByZWZpeCA9IHNsdWdpZnkoYCR7cmVsZWFzZS53b3Jrc3BhY2UubmFtZX1gKTtcbiAgICAgICAgICAgIGNvbnN0IG5lZWRzID0gKGpvYi5uZWVkcyA/PyBbXSkubWFwKGRlcCA9PiB7XG4gICAgICAgICAgICAgIC8vIEFsbCBwdWJsaXNoIGpvYnMgZGVwZW5kIG9uIHRoZSBtYWluIHJlbGVhc2Ugam9iXG4gICAgICAgICAgICAgIGlmIChkZXAgPT09ICdyZWxlYXNlJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZXA7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyAuLi4gYW5kIHBvc3NpYmx5IG9uIGluZGl2aWR1YWwgcHVibGlzaCBqb2JzIHRoYXQgYXJlIHByZWZpeGVkXG4gICAgICAgICAgICAgIHJldHVybiBgJHtwcmVmaXh9XyR7ZGVwfWA7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gd2UgYnVpbGQgdGhlIHRvb2xzIG9iamVjdCBzbyB0aGF0IHdlIGNhbiBtb2RpZnkgaXQgd2l0aCBvdXJcbiAgICAgICAgICAgIC8vIG93biBjdXN0b20gcHJvcGVydGllcy5cbiAgICAgICAgICAgIGNvbnN0IHRvb2xzUmVidWlsdDogVG9vbHMgPSB7XG4gICAgICAgICAgICAgIC4uLmpvYi50b29scyxcbiAgICAgICAgICAgICAgbm9kZToge1xuICAgICAgICAgICAgICAgIC4uLmpvYi50b29scz8ubm9kZSA/PyB7fSxcbiAgICAgICAgICAgICAgICAvLyB1c2UgdGhlIG5vZGUgdmVyc2lvbiBzcGVjaWZpZWQgb24gdGhlIG1vbm8gcmVwby5cbiAgICAgICAgICAgICAgICB2ZXJzaW9uOiB0aGlzLm9wdGlvbnMubm9kZVZlcnNpb24gPz8gam9iLnRvb2xzPy5ub2RlPy52ZXJzaW9uID8/ICdsdHMvKicsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICBgJHtwcmVmaXh9XyR7a2V5fWAsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5qb2IsXG4gICAgICAgICAgICAgICAgdG9vbHM6IHRvb2xzUmVidWlsdCxcbiAgICAgICAgICAgICAgICBuZWVkcyxcbiAgICAgICAgICAgICAgICBpZjogYFxcJHt7IG5lZWRzLnJlbGVhc2Uub3V0cHV0cy5sYXRlc3RfY29tbWl0ID09IGdpdGh1Yi5zaGEgJiYgbmVlZHMucmVsZWFzZS5vdXRwdXRzLiR7cHVibGlzaFByb2plY3RPdXRwdXRJZChcbiAgICAgICAgICAgICAgICAgIHJlbGVhc2Uud29ya3NwYWNlLFxuICAgICAgICAgICAgICAgICl9ID09ICd0cnVlJyB9fWAsXG4gICAgICAgICAgICAgICAgbmFtZTogYCR7cmVsZWFzZS53b3Jrc3BhY2UubmFtZX06ICR7am9iLm5hbWV9YCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb2J0YWluUmVsZWFzZVRhc2soKTogVGFzayB7XG4gICAgaWYgKHRoaXMucmVsZWFzZVRhc2spIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbGVhc2VUYXNrO1xuICAgIH1cblxuICAgIGNvbnN0IGVudjogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFJFTEVBU0U6ICd0cnVlJyxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5tYWpvclZlcnNpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgZW52Lk1BSk9SID0gdGhpcy5vcHRpb25zLm1ham9yVmVyc2lvbi50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMubWluTWFqb3JWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMubWFqb3JWZXJzaW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdtaW5NYWpvclZlcnNpb24gYW5kIG1ham9yVmVyc2lvbiBjYW5ub3QgYmUgdXNlZCB0b2dldGhlci4nKTtcbiAgICAgIH1cblxuICAgICAgZW52Lk1JTl9NQUpPUiA9IHRoaXMub3B0aW9ucy5taW5NYWpvclZlcnNpb24udG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlbGVhc2VUYXNrID0gdGhpcy5wcm9qZWN0LmFkZFRhc2soJ3JlbGVhc2UnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1ByZXBhcmUgYSByZWxlYXNlIGZyb20gYWxsIG1vbm9yZXBvIHBhY2thZ2VzJyxcbiAgICAgIGVudixcbiAgICB9KTtcbiAgICAvLyBVbnJvbGwgb3V0IHRoZSAncmVsZWFzZScgdGFzaywgYW5kIGRvIGFsbCB0aGUgcGhhc2VzIGZvciBlYWNoIGluZGl2aWR1YWwgcGFja2FnZS4gV2UgbmVlZCB0byAnYnVtcCcgYXQgdGhlIHNhbWVcbiAgICAvLyB0aW1lIHNvIHRoYXQgdGhlIGRlcGVuZGVuY3kgdmVyc2lvbnMgaW4gYWxsICdwYWNrYWdlLmpzb24ncyBhcmUgY29ycmVjdC5cbiAgICB0aGlzLnJlbGVhc2VUYXNrLmV4ZWMoJ3lhcm4gd29ya3NwYWNlcyBydW4gc2h4IHJtIC1yZiBkaXN0Jyk7XG4gICAgdGhpcy5yZWxlYXNlVGFzay5leGVjKCd5YXJuIHdvcmtzcGFjZXMgcnVuIGJ1bXAnKTtcbiAgICBpZiAodGhpcy5idWlsZFdpdGhOeCkge1xuICAgICAgdGhpcy5yZWxlYXNlVGFzay5leGVjKCdueCBydW4tbWFueSAtdCBidWlsZCcpO1xuICAgICAgdGhpcy5yZWxlYXNlVGFzay5lbnYoJ05YX1NLSVBfTlhfQ0FDSEUnLCAndHJ1ZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbGVhc2VUYXNrLmV4ZWMoJ3lhcm4gd29ya3NwYWNlcyBydW4gYnVpbGQnKTtcbiAgICB9XG4gICAgdGhpcy5yZWxlYXNlVGFzay5leGVjKCd5YXJuIHdvcmtzcGFjZXMgcnVuIHVuYnVtcCcpO1xuICAgIC8vIGFudGktdGFtcGVyIGNoZWNrIChmYWlscyBpZiB0aGVyZSB3ZXJlIGNoYW5nZXMgdG8gY29tbWl0dGVkIGZpbGVzKVxuICAgIC8vIHRoaXMgd2lsbCBpZGVudGlmeSBhbnkgbm9uLWNvbW1pdHRlZCBmaWxlcyBnZW5lcmF0ZWQgZHVyaW5nIGJ1aWxkIChlLmcuIHRlc3Qgc25hcHNob3RzKVxuICAgIHRoaXMucmVsZWFzZVRhc2suZXhlYyhwcm9qZW5SZWxlYXNlLlJlbGVhc2UuQU5USV9UQU1QRVJfQ01EKTtcblxuICAgIHJldHVybiB0aGlzLnJlbGVhc2VUYXNrO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQdWJsaXNoaW5nTWVjaGFuaXNtKCkge1xuICAgIGlmICh0aGlzLnJlbGVhc2VUcmlnZ2VyLmlzTWFudWFsKSB7XG4gICAgICB0aGlzLmNyZWF0ZVB1Ymxpc2hUYXNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY3JlYXRlUHVibGlzaFdvcmtmbG93KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQdWJsaXNoVGFzaygpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01hbnVhbCBwdWJsaXNoaW5nIGlzIG5vdCBzdXBwb3J0ZWQgcmlnaHQgbm93Jyk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVB1Ymxpc2hXb3JrZmxvdygpIHtcbiAgICBjb25zdCB3b3JrZmxvd05hbWUgPVxuICAgICAgdGhpcy5vcHRpb25zLnJlbGVhc2VXb3JrZmxvd05hbWUgPz9cbiAgICAgIChbJ21hc3RlcicsICdtYWluJ10uaW5jbHVkZXModGhpcy5icmFuY2hOYW1lKSA/ICdyZWxlYXNlJyA6IGByZWxlYXNlLSR7dGhpcy5icmFuY2hOYW1lfWApO1xuXG4gICAgLy8gVGhlIGFycmF5cyBhcmUgYmVpbmcgY2xvbmVkIHRvIGF2b2lkIGFjY3VtdWxhdGluZyB2YWx1ZXMgZnJvbSBwcmV2aW91cyBicmFuY2hlc1xuICAgIGNvbnN0IHByZUJ1aWxkU3RlcHMgPSBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdTZXR1cCBOb2RlLmpzJyxcbiAgICAgICAgdXNlczogJ2FjdGlvbnMvc2V0dXAtbm9kZUB2NCcsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAnbm9kZS12ZXJzaW9uJzogKHRoaXMucHJvamVjdCBhcyBhbnkpLm5vZGVWZXJzaW9uID8/ICdsdHMvKicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnSW5zdGFsbCBkZXBlbmRlbmNpZXMnLFxuICAgICAgICBydW46ICd5YXJuIGluc3RhbGwgLS1jaGVjay1maWxlcyAtLWZyb3plbi1sb2NrZmlsZScsXG4gICAgICB9LFxuICAgICAgLi4uKHRoaXMub3B0aW9ucy5yZWxlYXNlV29ya2Zsb3dTZXR1cFN0ZXBzID8/IFtdKSxcbiAgICBdO1xuICAgIGNvbnN0IHBvc3RCdWlsZFN0ZXBzID0gWy4uLih0aGlzLm9wdGlvbnMucG9zdEJ1aWxkU3RlcHMgPz8gW10pXTtcblxuICAgIC8vIEFkZCBhbiBvdXRwdXQgdG8gdGhlIGpvYiB0byBpbmRpY2F0ZSBpZiBhIGNlcnRhaW4gcGFja2FnZSBuZWVkcyBwdWJsaXNoaW5nXG4gICAgY29uc3Qgc2hvdWxkUHVibGlzaE91dHB1dHMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICB0aGlzLnBhY2thZ2VzVG9SZWxlYXNlLm1hcCgoeyByZWxlYXNlIH0pID0+IHtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICBwdWJsaXNoUHJvamVjdE91dHB1dElkKHJlbGVhc2Uud29ya3NwYWNlKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBzdGVwSWQ6IHNob3VsZFB1Ymxpc2hQcm9qZWN0U3RlcElkKHJlbGVhc2Uud29ya3NwYWNlKSxcbiAgICAgICAgICAgIG91dHB1dE5hbWU6ICdwdWJsaXNoJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSksXG4gICAgKTtcblxuICAgIC8vIENoZWNrIGlmIHRoZSBwcm9wb3NlZCByZWxlYXNlIHRhZyBhbHJlYWR5IGV4aXN0c1xuICAgIC8vIE9ubHkgaWYgaXQgZG9lc24ndCBleGlzdCB5ZXQgc2hvdWxkIHdlIHB1Ymxpc2hcbiAgICBmb3IgKGNvbnN0IHsgd29ya3NwYWNlRGlyZWN0b3J5LCByZWxlYXNlIH0gb2YgdGhpcy5wYWNrYWdlc1RvUmVsZWFzZSkge1xuICAgICAgcG9zdEJ1aWxkU3RlcHMucHVzaCh7XG4gICAgICAgIGlkOiBzaG91bGRQdWJsaXNoUHJvamVjdFN0ZXBJZChyZWxlYXNlLndvcmtzcGFjZSksXG4gICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHdvcmtzcGFjZURpcmVjdG9yeSxcbiAgICAgICAgcnVuOiAnKGdpdCBscy1yZW1vdGUgLXEgLS1leGl0LWNvZGUgLS10YWdzIG9yaWdpbiAkKGNhdCBkaXN0L3JlbGVhc2V0YWcudHh0KSAmJiAoZWNobyBcInB1Ymxpc2g9ZmFsc2VcIiA+PiAkR0lUSFVCX09VVFBVVCkpIHx8IGVjaG8gXCJwdWJsaXNoPXRydWVcIiA+PiAkR0lUSFVCX09VVFBVVCcsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBjaGVjayBpZiBuZXcgY29tbWl0cyB3ZXJlIHB1c2hlZCB0byB0aGUgcmVwbyB3aGlsZSB3ZSB3ZXJlIGJ1aWxkaW5nLlxuICAgIC8vIGlmIG5ldyBjb21taXRzIGhhdmUgYmVlbiBwdXNoZWQsIHdlIHdpbGwgY2FuY2VsIHRoaXMgcmVsZWFzZVxuICAgIGlmICh0aGlzLm9wdGlvbnMucmVsZWFzZVRyaWdnZXI/LmlzQ29udGludW91cyA/PyB0cnVlKSB7XG4gICAgICBwb3N0QnVpbGRTdGVwcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ0NoZWNrIGZvciBuZXcgY29tbWl0cycsXG4gICAgICAgIGlkOiBHSVRfUkVNT1RFX1NURVBJRCxcbiAgICAgICAgcnVuOiBgZWNobyBcIiR7TEFURVNUX0NPTU1JVF9PVVRQVVR9PSQoZ2l0IGxzLXJlbW90ZSBvcmlnaW4gLWggXFwke3sgZ2l0aHViLnJlZiB9fSB8IGN1dCAtZjEpXCIgPj4gJEdJVEhVQl9PVVRQVVRgLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEZvciBub24tY29udGludW91cyBidWlsZHMgd2UnbGwganVzdCBwdXQgdGhlIHZhbHVlIHRoZXJlIHRoYXQgZG93bnN0cmVhbSBzdGVwcyBhcmUgZ29pbmcgdG8gY29tcGFyZSBhZ2FpbnN0XG4gICAgICBwb3N0QnVpbGRTdGVwcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ091dHB1dCB0aGUgc2hhIHZhbHVlIHRoYXQgZG93bnN0cmVhbSBjaGVja3MgZXhwZWN0JyxcbiAgICAgICAgaWQ6IEdJVF9SRU1PVEVfU1RFUElELFxuICAgICAgICBydW46IGBlY2hvIFwiJHtMQVRFU1RfQ09NTUlUX09VVFBVVH09XFwke3sgZ2l0aHViLnNoYSB9fVwiID4+ICRHSVRIVUJfT1VUUFVUYCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMud29ya2Zsb3cgPSBuZXcgZ2l0aHViLlRhc2tXb3JrZmxvdyh0aGlzLmdpdGh1Yiwge1xuICAgICAgbmFtZTogd29ya2Zsb3dOYW1lLFxuICAgICAgam9iSWQ6IFJFTEVBU0VfSk9CSUQsXG4gICAgICBvdXRwdXRzOiB7XG4gICAgICAgIGxhdGVzdF9jb21taXQ6IHtcbiAgICAgICAgICBzdGVwSWQ6IEdJVF9SRU1PVEVfU1RFUElELFxuICAgICAgICAgIG91dHB1dE5hbWU6IExBVEVTVF9DT01NSVRfT1VUUFVULFxuICAgICAgICB9LFxuICAgICAgICAuLi5zaG91bGRQdWJsaXNoT3V0cHV0cyxcbiAgICAgIH0sXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBzY2hlZHVsZTogdGhpcy5yZWxlYXNlVHJpZ2dlci5zY2hlZHVsZSA/IFt7IGNyb246IHRoaXMucmVsZWFzZVRyaWdnZXIuc2NoZWR1bGUgfV0gOiB1bmRlZmluZWQsXG4gICAgICAgIHB1c2g6IHRoaXMucmVsZWFzZVRyaWdnZXIuaXNDb250aW51b3VzID8geyBicmFuY2hlczogW3RoaXMuYnJhbmNoTmFtZV0gfSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBjb250YWluZXI6IHRoaXMub3B0aW9ucy53b3JrZmxvd0NvbnRhaW5lckltYWdlID8geyBpbWFnZTogdGhpcy5vcHRpb25zLndvcmtmbG93Q29udGFpbmVySW1hZ2UgfSA6IHVuZGVmaW5lZCxcbiAgICAgIGVudjoge1xuICAgICAgICBDSTogJ3RydWUnLFxuICAgICAgfSxcbiAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgIGNvbnRlbnRzOiAnd3JpdGUnIGFzIGFueSxcbiAgICAgIH0sXG4gICAgICBjaGVja291dFdpdGg6IHtcbiAgICAgICAgLy8gd2UgbXVzdCB1c2UgJ2ZldGNoLWRlcHRoPTAnIGluIG9yZGVyIHRvIGZldGNoIGFsbCB0YWdzXG4gICAgICAgIC8vIG90aGVyd2lzZSB0YWdzIGFyZSBub3QgY2hlY2tlZCBvdXRcbiAgICAgICAgZmV0Y2hEZXB0aDogMCxcbiAgICAgIH0sXG4gICAgICBwcmVCdWlsZFN0ZXBzLFxuICAgICAgdGFzazogdGhpcy5yZWxlYXNlVGFzayEsXG4gICAgICBwb3N0QnVpbGRTdGVwcyxcbiAgICAgIHJ1bnNPbjogdGhpcy5vcHRpb25zLndvcmtmbG93UnVuc09uLFxuICAgIH0pO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNsdWdpZnkoeDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHgucmVwbGFjZSgvW15hLXpBLVowLTlfLV0vZywgJy0nKS5yZXBsYWNlKC9eWzAtOS1dKy8sICcnKTtcbn1cblxuZnVuY3Rpb24gYnVpbGRBcnRpZmFjdE5hbWUocHJvamVjdDogUHJvamVjdCkge1xuICByZXR1cm4gc2x1Z2lmeShgJHtwcm9qZWN0Lm5hbWV9XyR7QlVJTERfQVJUSUZBQ1RfTkFNRX1gKTtcbn1cblxuZnVuY3Rpb24gcHVibGlzaFByb2plY3RPdXRwdXRJZChwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIHJldHVybiBgcHVibGlzaC0ke3NsdWdpZnkocHJvamVjdC5uYW1lKX1gO1xufVxuXG5mdW5jdGlvbiBzaG91bGRQdWJsaXNoUHJvamVjdFN0ZXBJZChwcm9qZWN0OiBQcm9qZWN0KSB7XG4gIHJldHVybiBgY2hlY2stJHtwdWJsaXNoUHJvamVjdE91dHB1dElkKHByb2plY3QpfWA7XG59XG4iXX0=
@@ -222,7 +222,7 @@ class Monorepo extends projen_1.typescript.TypeScriptProject {
222
222
  }
223
223
  exports.Monorepo = Monorepo;
224
224
  _a = JSII_RTTI_SYMBOL_1;
225
- Monorepo[_a] = { fqn: "cdklabs-projen-project-types.yarn.Monorepo", version: "0.3.3" };
225
+ Monorepo[_a] = { fqn: "cdklabs-projen-project-types.yarn.Monorepo", version: "0.3.5" };
226
226
  function getObjFromFile(project, file) {
227
227
  return project.tryFindObjectFile(file)?.obj;
228
228
  }
@@ -257,5 +257,5 @@ class CdkLabsMonorepo extends Monorepo {
257
257
  }
258
258
  exports.CdkLabsMonorepo = CdkLabsMonorepo;
259
259
  _b = JSII_RTTI_SYMBOL_1;
260
- CdkLabsMonorepo[_b] = { fqn: "cdklabs-projen-project-types.yarn.CdkLabsMonorepo", version: "0.3.3" };
260
+ CdkLabsMonorepo[_b] = { fqn: "cdklabs-projen-project-types.yarn.CdkLabsMonorepo", version: "0.3.5" };
261
261
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveWFybi9tb25vcmVwby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE2QztBQUM3QyxtQ0FBc0c7QUFFdEcseURBQXFEO0FBQ3JELDZCQUEwQjtBQUcxQixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7QUFFOUU7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxtQkFBVSxDQUFDLGlCQUFpQjtJQUNqRCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQVU7UUFDakMsT0FBTyxPQUFPLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQWVELFlBQVksT0FBd0I7UUFDbEMsS0FBSyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1YsY0FBYyxFQUFFLG1CQUFVLENBQUMsa0JBQWtCLENBQUMsWUFBWTtZQUMxRCxVQUFVLEVBQUUsS0FBSztZQUNqQixJQUFJLEVBQUUsS0FBSztZQUNYLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFYRyxhQUFRLEdBQUcsSUFBSSxLQUFLLEVBQXVCLENBQUM7UUFDNUMsNEJBQXVCLEdBQUcsSUFBSSxLQUFLLEVBQWlCLENBQUM7UUFZM0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3hDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUvRDs7V0FFRztRQUNILElBQUksT0FBTyxDQUFDLFFB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K0I7UUFDekMsS0FBSyxDQUFDO1lBQ0osVUFBVSxFQUFFLElBQUk7WUFFaEIsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixrQkFBa0IsRUFBRTtnQkFDbEIsZ0JBQWdCLEVBQUUsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUM7Z0JBQ3pFLE1BQU0sRUFBRSxjQUFjO2FBQ3ZCO1lBQ0QsR0FBRyxPQUFPO1lBQ1YsYUFBYSxFQUFFO2dCQUNiLEdBQUcsT0FBTyxDQUFDLGFBQWE7Z0JBQ3hCLE9BQU8sRUFBRSxLQUFLO2FBQ2Y7WUFDRCw2R0FBNkc7WUFDN0csK0ZBQStGO1lBQy9GLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxPQUFPO1NBQzVELENBQUMsQ0FBQztRQUVILElBQUksZUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDMUIsZ0JBQWdCLEVBQUU7Z0JBQ2hCLGlCQUFpQixFQUFFLGVBQU0sQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxDQUFDO2FBQ3ZHO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF6QkgsMENBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aFBvc2l4IGZyb20gJ25vZGU6cGF0aC9wb3NpeCc7XG5pbXBvcnQgeyBKc29uRmlsZSwgUHJvamVjdCwgamF2YXNjcmlwdCwgdHlwZXNjcmlwdCwgZ2l0aHViLCBEZXBlbmRlbmN5VHlwZSwgSnNvblBhdGNoIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IE1vbm9yZXBvT3B0aW9ucyB9IGZyb20gJy4vbW9ub3JlcG8tb3B0aW9ucyc7XG5pbXBvcnQgeyBNb25vcmVwb1JlbGVhc2UgfSBmcm9tICcuL21vbm9yZXBvLXJlbGVhc2UnO1xuaW1wb3J0IHsgTnggfSBmcm9tICcuL254JztcbmltcG9ydCB7IFR5cGVTY3JpcHRXb3Jrc3BhY2UgfSBmcm9tICcuL3R5cGVzY3JpcHQtd29ya3NwYWNlJztcblxuY29uc3QgTU9OT1JFUE9fU1lNID0gU3ltYm9sLmZvcignY2RrbGFicy1wcm9qZW4tcHJvamVjdC10eXBlcy55YXJuLk1vbm9yZXBvJyk7XG5cbi8qKlxuICogQSBtb25vcmVwbyB1c2luZyB5YXJuIHdvcmtzcGFjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb25vcmVwbyBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3Qge1xuICBwdWJsaWMgc3RhdGljIGlzTW9ub3JlcG8oeDogUHJvamVjdCk6IHggaXMgTW9ub3JlcG8ge1xuICAgIHJldHVybiBCb29sZWFuKHggJiYgdHlwZW9mIHggPT09ICdvYmplY3QnICYmIE1PTk9SRVBPX1NZTSBpbiB4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgTW9ub3JlcG8gUmVsZWFzZSBjb21wb25lbnRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtb25vcmVwb1JlbGVhc2U/OiBNb25vcmVwb1JlbGVhc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgd2hlcmUgdGhlIGFjdHVhbCBjb2RlIGZvciB0aGUgcGFja2FnZSBsaXZlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXBvc2l0b3J5VXJsPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgcHJvamVjdHMgPSBuZXcgQXJyYXk8VHlwZVNjcmlwdFdvcmtzcGFjZT4oKTtcbiAgcHJpdmF0ZSBwb3N0SW5zdGFsbERlcGVuZGVuY2llcyA9IG5ldyBBcnJheTwoKSA9PiBib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE1vbm9yZXBvT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBwYWNrYWdlTWFuYWdlcjogamF2YXNjcmlwdC5Ob2RlUGFja2FnZU1hbmFnZXIuWUFSTl9DTEFTU0lDLFxuICAgICAgc2FtcGxlQ29kZTogZmFsc2UsXG4gICAgICBqZXN0OiBmYWxzZSxcbiAgICAgIGVzbGludDogZmFsc2UsXG4gICAgICByZWxlYXNlOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBNT05PUkVQT19TWU0sIHsgdmFsdWU6IHRydWUgfSk7XG5cbiAgICB0aGlzLnJlcG9zaXRvcnlVcmwgPSBvcHRpb25zLnJlcG9zaXRvcnk7XG4gICAgY29uc3QgYnVpbGRXaXRoTnggPSBCb29sZWFuKG9wdGlvbnMubnggJiYgb3B0aW9ucy5idWlsZFdpdGhOeCk7XG5cbiAgICAvKipcbiAgICAgKiBQcmV0dGllciBmb3JtYXR0aW5nXG4gICAgICovXG4gICAgaWYgKG9wdGlvbnMucHJldHRpZXIpIHtcbiAgICAgIHRoaXMuYWRkRGV2RGVwcygnZXNsaW50LWNvbmZpZy1wcmV0dGllcicsICdlc2xpbnQtcGx1Z2luLXByZXR0aWVyJyk7XG4gICAgICBuZXcgSnNvbkZpbGUodGhpcywgJy5lc2xpbnRyYy5qc29uJywge1xuICAgICAgICBhbGxvd0NvbW1lbnRzOiB0cnVlLFxuICAgICAgICBvYmo6IHtcbiAgICAgICAgICBwbHVnaW5zOiBbJ0B0eXBlc2NyaXB0LWVzbGludCcsICdwcmV0dGllciddLFxuICAgICAgICAgIHBhcnNlcjogJ0B0eXBlc2NyaXB0LWVzbGludC9wYXJzZXInLFxuICAgICAgICAgIHBhcnNlck9wdGlvbnM6IHtcbiAgICAgICAgICAgIGVjbWFWZXJzaW9uOiAyMDE4LFxuICAgICAgICAgICAgc291cmNlVHlwZTogJ21vZHVsZScsXG4gICAgICAgICAgICBwcm9qZWN0OiAnLi90c2NvbmZpZy5kZXYuanNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpZ25vcmVQYXR0ZXJuczogWychLnByb2plbnJjLnRzJ10sXG4gICAgICAgICAgZXh0ZW5kczogWydwbHVnaW46cHJldHRpZXIvcmVjb21tZW5kZWQnXSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy50YXNrcy5hZGRUYXNrKCdmbXQnLCB7IGV4ZWM6ICdlc2xpbnQgLS1leHQgLnRzIC0tZml4IC0tbm8tZXJyb3Itb24tdW5tYXRjaGVkLXBhdHRlcm4gcHJvamVucmMgLnByb2plbnJjLnRzJyB9KTtcblxuICAgICAgdGhpcy52c2NvZGU/LmV4dGVuc2lvbnMuYWRkUmVjb21tZW5kYXRpb25zKCdlc2JlbnAucHJldHRpZXItdnNjb2RlJywgJ2RiYWV1bWVyLnZzY29kZS1lc2xpbnQnKTtcbiAgICAgIHRoaXMudnNjb2RlPy5zZXR0aW5ncy5hZGRTZXR0aW5nKCdlZGl0b3IuZGVmYXVsdEZvcm1hdHRlcicsICdlc2JlbnAucHJldHRpZXItdnNjb2RlJyk7XG4gICAgICB0aGlzLnZzY29kZT8uc2V0dGluZ3MuYWRkU2V0dGluZygnZXNsaW50LmZvcm1hdC5lbmFibGUnLCB0cnVlKTtcbiAgICAgIHRoaXMudnNjb2RlPy5zZXR0aW5ncy5hZGRTZXR0aW5ncyh7ICdlZGl0b3IuZGVmYXVsdEZvcm1hdHRlcic6ICdkYmFldW1lci52c2NvZGUtZXNsaW50JyB9LCBbXG4gICAgICAgICdqYXZhc2NyaXB0JyxcbiAgICAgICAgJ3R5cGVzY3JpcHQnLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgVlNDb2RlIFdvcmtzcGFjZVxuICAgICAqL1xuICAgIGlmIChvcHRpb25zLnZzY29kZVdvcmtzcGFjZSkge1xuICAgICAgY29uc3Qgd29ya3NwYWNlRmlsZSA9IGAke3RoaXMubmFtZX0uY29kZS13b3Jrc3BhY2VgO1xuICAgICAgbmV3IEpzb25GaWxlKHRoaXMsIHdvcmtzcGFjZUZpbGUsIHtcbiAgICAgICAgYWxsb3dDb21tZW50czogdHJ1ZSxcbiAgICAgICAgb2JqOiAoKSA9PiAoe1xuICAgICAgICAgIGZvbGRlcnM6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvbGRlcnM6IEFycmF5PHtcbiAgICAgICAgICAgICAgcGF0aDogc3RyaW5nO1xuICAgICAgICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgfT4gPSB0aGlzLnByb2plY3RzXG4gICAgICAgICAgICAgIC5zb3J0KChwMSwgcDIpID0+IHAxLm5hbWUubG9jYWxlQ29tcGFyZShwMi5uYW1lKSlcbiAgICAgICAgICAgICAgLm1hcCgocCkgPT4gKHsgcGF0aDogcC53b3Jrc3BhY2VEaXJlY3RvcnkgfSkpO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy52c2NvZGVXb3Jrc3BhY2VPcHRpb25zPy5pbmNsdWRlUm9vdFdvcmtzcGFjZSkge1xuICAgICAgICAgICAgICBmb2xkZXJzLnVuc2hpZnQoeyBwYXRoOiAnLicsIG5hbWU6IG9wdGlvbnMudnNjb2RlV29ya3NwYWNlT3B0aW9ucz8ucm9vdFdvcmtzcGFjZU5hbWUgPz8gJzxyb290PicgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmb2xkZXJzO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc2V0dGluZ3M6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNldHRpbmdzID0gKGdldE9iakZyb21GaWxlKHRoaXMsICcudnNjb2RlL3NldHRpbmdzLmpzb24nKSA/PyB7fSkgYXMgYW55O1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMudnNjb2RlV29ya3NwYWNlT3B0aW9ucz8uaW5jbHVkZVJvb3RXb3Jrc3BhY2UgJiYgdGhpcy5wcm9qZWN0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgc2V0dGluZ3NbJ2ZpbGVzLmV4Y2x1ZGUnXSA9IHRoaXMucHJvamVjdHMucmVkdWNlKChleGNsdWRlcywgcCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAuLi5leGNsdWRlcyxcbiAgICAgICAgICAgICAgICAgIFtwLndvcmtzcGFjZURpcmVjdG9yeS5zcGxpdChwYXRoUG9zaXguc2VwKVswXV06IHRydWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSwgc2V0dGluZ3NbJ2ZpbGVzLmV4Y2x1ZGUnXSA/PyB7fSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc2V0dGluZ3M7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleHRlbnNpb25zOiAoKSA9PiBnZXRPYmpGcm9tRmlsZSh0aGlzLCAnLnZzY29kZS9leHRlbnNpb25zLmpzb24nKSxcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUYXNrc1xuICAgICAqL1xuICAgIC8vIGJ1aWxkIHRhc2tcbiAgICB0aGlzLnRhc2tzLnJlbW92ZVRhc2soJ2J1aWxkJyk7XG4gICAgY29uc3QgZm10VGFzayA9IHRoaXMudGFza3MudHJ5RmluZCgnZm10Jyk7XG4gICAgY29uc3QgYnVpbGRUYXNrID0gdGhpcy50YXNrcy5hZGRUYXNrKCdidWlsZCcpO1xuICAgIGlmICh0aGlzLmRlZmF1bHRUYXNrKSB7XG4gICAgICBidWlsZFRhc2suc3Bhd24odGhpcy5kZWZhdWx0VGFzayk7XG4gICAgfVxuICAgIGlmIChmbXRUYXNrKSB7XG4gICAgICBidWlsZFRhc2suc3Bhd24oZm10VGFzayk7XG4gICAgfVxuICAgIGlmIChidWlsZFdpdGhOeCkge1xuICAgICAgYnVpbGRUYXNrLmV4ZWMoJ254IHJ1bi1tYW55IC10IGJ1aWxkJyk7XG4gICAgICB0aGlzLmdpdGh1Yj8udHJ5RmluZFdvcmtmbG93KCdidWlsZCcpPy5maWxlPy5wYXRjaChcbiAgICAgICAgSnNvblBhdGNoLmFkZCgnL2pvYnMvYnVpbGQvZW52L05YX1NLSVBfTlhfQ0FDSEUnLCAndHJ1ZScpLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVpbGRUYXNrLmV4ZWMoJ3lhcm4gd29ya3NwYWNlcyBydW4gYnVpbGQnKTtcbiAgICB9XG5cbiAgICAvLyBSdW4gaW4gYWxsIHdvcmtzcGFjZXMgdGFza3NcbiAgICB0aGlzLnRhc2tzLnRyeUZpbmQoJ2NvbXBpbGUnKT8ucmVzZXQoJ3lhcm4gd29ya3NwYWNlcyBydW4gY29tcGlsZScpO1xuICAgIHRoaXMudGFza3MudHJ5RmluZCgncGFja2FnZScpPy5yZXNldCgneWFybiB3b3Jrc3BhY2VzIHJ1biBwYWNrYWdlJyk7XG4gICAgdGhpcy50YXNrcy50cnlGaW5kKCd0ZXN0Jyk/LnJlc2V0KCd5YXJuIHdvcmtzcGFjZXMgcnVuIHRlc3QnKTtcbiAgICB0aGlzLmFkZFRhc2soJ3J1bicsIHtcbiAgICAgIGV4ZWM6ICd5YXJuIHdvcmtzcGFjZXMgcnVuJyxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gVXBncmFkZSBhbGwgcGFja2FnZXNcbiAgICB0aGlzLnRhc2tzLnJlbW92ZVRhc2soJ3VwZ3JhZGUnKTtcbiAgICB0aGlzLnRhc2tzLmFkZFRhc2soJ3VwZ3JhZGUnLCB7XG4gICAgICBlbnY6IHsgQ0k6ICcwJyB9LFxuICAgICAgZGVzY3JpcHRpb246ICdVcGdyYWRlIGRlcGVuZGVuY2llcyBpbiBhbGwgd29ya3NwYWNlcycsXG4gICAgICBzdGVwczogW1xuICAgICAgICAvLyBJdCBpcyBub3Qgc2FmZSBhbnltb3JlIHRvIGhhdmUgJ25wbS1jaGVjay11cGRhdGVzJyBpbiBhIFlhcm4gMSBkZXBlbmRlbmN5IHRyZWUsIHNvIHJ1biBpdCBpbiBhIHNlcGFyYXRlXG4gICAgICAgIC8vIHRyZWUgYnkgdXNpbmcgbnB4LlxuICAgICAgICB7IGV4ZWM6ICducHggbnBtLWNoZWNrLXVwZGF0ZXNAMTYgLS1kZXA9ZGV2LG9wdGlvbmFsLHBlZXIscHJvZCxidW5kbGUgLS11cGdyYWRlIC0tdGFyZ2V0PW1pbm9yJyB9LFxuICAgICAgICB7IGV4ZWM6ICd5YXJuIHdvcmtzcGFjZXMgcnVuIGNoZWNrLWZvci11cGRhdGVzJyB9LFxuICAgICAgICB7IGV4ZWM6ICd5YXJuIGluc3RhbGwgLS1jaGVjay1maWxlcycgfSxcbiAgICAgICAgeyBleGVjOiAneWFybiB1cGdyYWRlJyB9LFxuICAgICAgICB7IHNwYXduOiAnZGVmYXVsdCcgfSxcbiAgICAgICAgeyBzcGF3bjogJ3Bvc3QtdXBncmFkZScgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyBDbGVhbiB1cCB0YXNrcyBub3QgcmVxdWlyZWQgYXQgdG9wLWxldmVsXG4gICAgdGhpcy50YXNrcy5yZW1vdmVUYXNrKCdlamVjdCcpO1xuICAgIHRoaXMudGFza3MucmVtb3ZlVGFzaygnd2F0Y2gnKTtcbiAgICB0aGlzLnRhc2tzLnJlbW92ZVRhc2soJ3ByZS1jb21waWxlJyk7XG4gICAgdGhpcy50YXNrcy5yZW1vdmVUYXNrKCdwb3N0LWNvbXBpbGUnKTtcblxuICAgIC8vIE54XG4gICAgaWYgKG9wdGlvbnMubngpIHtcbiAgICAgIG5ldyBOeCh0aGlzLCB7XG4gICAgICAgIGRlZmF1bHRCYXNlOiBvcHRpb25zLmRlZmF1bHRSZWxlYXNlQnJhbmNoLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gUmVsZWFzZSBXb3JrZmxvd1xuICAgIGlmIChvcHRpb25zLnJlbGVhc2UpIHtcbiAgICAgIHRoaXMubW9ub3JlcG9SZWxlYXNlID0gbmV3IE1vbm9yZXBvUmVsZWFzZSh0aGlzLCB7XG4gICAgICAgIHdvcmtmbG93UnVuc09uOiBvcHRpb25zLndvcmtmbG93UnVuc09uLFxuICAgICAgICBidWlsZFdpdGhOeCxcbiAgICAgICAgLi4ub3B0aW9ucy5yZWxlYXNlT3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlcihwcm9qZWN0OiBUeXBlU2NyaXB0V29ya3NwYWNlKSB7XG4gICAgdGhpcy5wcm9qZWN0cy5wdXNoKHByb2plY3QpO1xuICB9XG5cbiAgcHVibGljIHN5bnRoKCkge1xuICAgIHRoaXMuZmluYWxFc2NhcGVIYXRjaGVzKCk7XG4gICAgc3VwZXIuc3ludGgoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgYSBzdWIgcHJvamVjdCB0byByZXF1ZXN0IGluc3RhbGxhdGlvbiBvZiBkZXBlbmRlbmN5IGF0IHRoZSBNb25vcmVwbyByb290XG4gICAqIFRoZXkgbXVzdCBwcm92aWRlIGEgZnVuY3Rpb24gdGhhdCBpcyBleGVjdXRlZCBhZnRlciBkZXBlbmRlbmNpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZFxuICAgKiBJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSwgdGhlIGluc3RhbGwgY29tbWFuZCBpcyBydW4gZm9yIGEgc2Vjb25kIHRpbWUgYWZ0ZXIgYWxsIHN1YiBwcm9qZWN0IHJlcXVlc3RzIGhhdmUgcnVuLlxuICAgKiBUaGlzIGlzIHVzZWQgdG8gcmVzb2x2ZSBkZXBlbmRlbmN5IHZlcnNpb25zIGZyb20gYCpgIHRvIGEgY29uY3JldGUgdmVyc2lvbiBjb25zdHJhaW50LlxuICAgKi9cbiAgcHVibGljIHJlcXVlc3RJbnN0YWxsRGVwZW5kZW5jaWVzKHJlc29sdmVyOiBJRGVwZW5kZW5jeVJlc29sdmVyKSB7XG4gICAgdGhpcy5wb3N0SW5zdGFsbERlcGVuZGVuY2llcy5wdXNoKHJlc29sdmVyLnJlc29sdmVEZXBzQW5kV3JpdGVQYWNrYWdlSnNvbik7XG4gIH1cblxuICAvKipcbiAgICogQ29kZSB0aGF0IG5lZWRzIHRvIHJ1biBqdXN0IGJlZm9yZSBzeW50aCwgYnV0IGFmdGVyIGFsbCBvdGhlciBjb2RlXG4gICAqL1xuICBwcml2YXRlIGZpbmFsRXNjYXBlSGF0Y2hlcygpIHtcbiAgICAvLyBHZXQgdGhlIE9iamVjdEZpbGVcbiAgICB0aGlzLnBhY2thZ2UuYWRkRmllbGQoJ3ByaXZhdGUnLCB0cnVlKTtcbiAgICB0aGlzLnBhY2thZ2UuYWRkRmllbGQoJ3dvcmtzcGFjZXMnLCB7XG4gICAgICBwYWNrYWdlczogdGhpcy5wcm9qZWN0cy5tYXAoKHApID0+IHAud29ya3NwYWNlRGlyZWN0b3J5KSxcbiAgICAgIC4uLnRoaXMucmVuZGVyTm9Ib2lzdCgpLFxuICAgIH0pO1xuXG4gICAgdGhpcy50c2NvbmZpZz8uZmlsZS5hZGRPdmVycmlkZSgnaW5jbHVkZScsIFtdKTtcbiAgICB0aGlzLnRzY29uZmlnRGV2Py5maWxlLmFkZE92ZXJyaWRlKCdpbmNsdWRlJywgWycucHJvamVucmMudHMnLCAncHJvamVucmMvKiovKi50cyddKTtcbiAgICBmb3IgKGNvbnN0IHRzY29uZmlnIG9mIFt0aGlzLnRzY29uZmlnLCB0aGlzLnRzY29uZmlnRGV2XSkge1xuICAgICAgdHNjb25maWc/LmZpbGUuYWRkT3ZlcnJpZGUoXG4gICAgICAgICdyZWZlcmVuY2VzJyxcbiAgICAgICAgdGhpcy5wcm9qZWN0cy5tYXAoKHApID0+ICh7IHBhdGg6IHAud29ya3NwYWNlRGlyZWN0b3J5IH0pKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5wYWNrYWdlLmFkZEZpZWxkKCdqZXN0Jywge1xuICAgICAgcHJvamVjdHM6IHRoaXMucHJvamVjdHMubWFwKChwKSA9PiBgPHJvb3REaXI+LyR7cC53b3Jrc3BhY2VEaXJlY3Rvcnl9YCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSAnbm9ob2lzdCcgZGlyZWN0aXZlXG4gICAqXG4gICAqIEJ1bmRsZWQgZGVwZW5kZW5jaWVzIG11c3QgYmUgbm9ob2lzdCdlZCwgb3RoZXJ3aXNlIE5QTSBzaWxlbnRseSB3b24ndCBidW5kbGUgdGhlbS5cbiAgICpcbiAgICogUmVuZGVycyBhbiBvYmplY3QgdGhhdCBzaG91bGQgYmUgbWl4ZWQgaW50byB0aGUgYHdvcmtzcGFjZXNgIG9iamVjdC5cbiAgICovXG4gIHByaXZhdGUgcmVuZGVyTm9Ib2lzdCgpOiBhbnkge1xuICAgIGNvbnN0IG5vaG9pc3QgPSB0aGlzLnByb2plY3RzLmZsYXRNYXAoKHApID0+XG4gICAgICBwLmRlcHMuYWxsXG4gICAgICAgIC5maWx0ZXIoKGRlcCkgPT4gZGVwLnR5cGUgPT09IERlcGVuZGVuY3lUeXBlLkJVTkRMRUQpXG4gICAgICAgIC5mbGF0TWFwKChkZXApID0+IFtcbiAgICAgICAgICBgJHtwLm5hbWV9LyR7ZGVwLm5hbWV9YCxcbiAgICAgICAgICBgJHtwLm5hbWV9LyR7ZGVwLm5hbWV9LyoqYCxcbiAgICAgICAgXSksXG4gICAgKTtcbiAgICByZXR1cm4gbm9ob2lzdC5sZW5ndGggPiAwID8geyBub2hvaXN0IH0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogSG9va3MgaW50byB0aGUgaW5zdGFsbCBkZXBlbmRlbmNpZXMgY3ljbGVcbiAgICovXG4gIHB1YmxpYyBwb3N0U3ludGhlc2l6ZSgpIHtcbiAgICBpZiAodGhpcy5wb3N0SW5zdGFsbERlcGVuZGVuY2llcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG5vZGVQa2c6IGFueSA9IHRoaXMucGFja2FnZTtcbiAgICAgIG5vZGVQa2cuaW5zdGFsbERlcGVuZGVuY2llcygpO1xuXG4gICAgICBjb25zdCBjb21wbGV0ZWRSZXF1ZXN0cyA9IHRoaXMucG9zdEluc3RhbGxEZXBlbmRlbmNpZXMubWFwKChyZXF1ZXN0KSA9PiByZXF1ZXN0KCkpO1xuICAgICAgaWYgKGNvbXBsZXRlZFJlcXVlc3RzLnNvbWUoQm9vbGVhbikpIHtcbiAgICAgICAgbm9kZVBrZy5pbnN0YWxsRGVwZW5kZW5jaWVzKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucG9zdEluc3RhbGxEZXBlbmRlbmNpZXMgPSBbXTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGVwZW5kZW5jeVJlc29sdmVyIHtcbiAgcmVzb2x2ZURlcHNBbmRXcml0ZVBhY2thZ2VKc29uKCk6IGJvb2xlYW47XG59XG5cbmZ1bmN0aW9uIGdldE9iakZyb21GaWxlKHByb2plY3Q6IFByb2plY3QsIGZpbGU6IHN0cmluZyk6IG9iamVjdCB7XG4gIHJldHVybiAocHJvamVjdC50cnlGaW5kT2JqZWN0RmlsZShmaWxlKSBhcyBhbnkpPy5vYmo7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgQ2RrTGFic01vbm9yZXBvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrTGFic01vbm9yZXBvT3B0aW9ucyBleHRlbmRzIE1vbm9yZXBvT3B0aW9ucyB7fVxuXG4vKipcbiAqIE9waW5pb25hdGVkIGltcGxlbWVudGF0aW9uIG9mIHlhcm4uTW9ub3JlcG9cbiAqIEBwamlkIGNka2xhYnMteWFybi1tb25vcmVwb1xuICovXG5leHBvcnQgY2xhc3MgQ2RrTGFic01vbm9yZXBvIGV4dGVuZHMgTW9ub3JlcG8ge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtMYWJzTW9ub3JlcG9PcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgcHJvamVucmNUczogdHJ1ZSxcblxuICAgICAgYXV0b0FwcHJvdmVVcGdyYWRlczogdHJ1ZSxcbiAgICAgIGF1dG9BcHByb3ZlT3B0aW9uczoge1xuICAgICAgICBhbGxvd2VkVXNlcm5hbWVzOiBbJ2dpdGh1Yi1ib3QnLCAnY2RrbGFicy1hdXRvbWF0aW9uJywgJ2RlcGVuZGFib3RbYm90XSddLFxuICAgICAgICBzZWNyZXQ6ICdHSVRIVUJfVE9LRU4nLFxuICAgICAgfSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBnaXRodWJPcHRpb25zOiB7XG4gICAgICAgIC4uLm9wdGlvbnMuZ2l0aHViT3B0aW9ucyxcbiAgICAgICAgbWVyZ2lmeTogZmFsc2UsXG4gICAgICB9LFxuICAgICAgLy8gRGV2aWF0aW9uIGZyb20gdXBzdHJlYW0gcHJvamVuOiB1cHN0cmVhbSBwcm9qZW4gZGVmYXVsdHMgdG8gbWluTm9kZVZlcnNpb24sIGJ1dCB3ZSBoYXZlIHRvbyBtYW55IHdvcmtmbG93c1xuICAgICAgLy8gdGhhdCB1c2UgdG9vbHMgdGhhdCB3YW50IGEgcmVjZW50IE5vZGUgdmVyc2lvbiwgc28gZGVmYXVsdCB0byBhIHJlYXNvbmFibGUgZmxvYXRpbmcgdmVyc2lvbi5cbiAgICAgIHdvcmtmbG93Tm9kZVZlcnNpb246IG9wdGlvbnMud29ya2Zsb3dOb2RlVmVyc2lvbiA/PyAnbHRzLyonLFxuICAgIH0pO1xuXG4gICAgbmV3IGdpdGh1Yi5NZXJnZVF1ZXVlKHRoaXMsIHtcbiAgICAgIGF1dG9RdWV1ZU9wdGlvbnM6IHtcbiAgICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbih7IHNlY3JldDogJ1BST0pFTl9HSVRIVUJfVE9LRU4nIH0pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -9,6 +9,8 @@ export interface WorkspaceReleaseOptions {
9
9
  readonly npmDistTag?: string;
10
10
  readonly releasableCommits?: ReleasableCommits;
11
11
  readonly nextVersionCommand?: string;
12
+ readonly npmTrustedPublishing?: boolean;
13
+ readonly environment?: string;
12
14
  readonly versionBranchOptions: VersionBranchOptions;
13
15
  /**
14
16
  * For runtime and peer dependencies, the type of dependency we take on each package
@@ -46,6 +46,7 @@ class WorkspaceRelease extends projen_1.Component {
46
46
  registry: project.package.npmRegistry,
47
47
  npmTokenSecret: project.package.npmTokenSecret,
48
48
  npmProvenance: project.package.npmProvenance,
49
+ trustedPublishing: options.npmTrustedPublishing,
49
50
  });
50
51
  }
51
52
  }
@@ -115,5 +116,5 @@ class WorkspaceRelease extends projen_1.Component {
115
116
  }
116
117
  exports.WorkspaceRelease = WorkspaceRelease;
117
118
  _a = JSII_RTTI_SYMBOL_1;
118
- WorkspaceRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.WorkspaceRelease", version: "0.3.3" };
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC13b3Jrc3BhY2UtcmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy95YXJuL3R5cGVzY3JpcHQtd29ya3NwYWNlLXJlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrQ0FBa0M7QUFDbEMsbUNBQW9HO0FBQ3BHLGlFQUErRTtBQW9CL0UsTUFBYSxnQkFBaUIsU0FBUSxrQkFBUztJQUs3QyxZQUFtQixPQUE0QixFQUFFLE9BQWdDO1FBQy9FLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBRXpCLCtEQUErRDtRQUMvRCxtRUFBbUU7UUFDbkUsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDekMsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLDRDQUE0QztnQkFDOUUsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQjtnQkFDOUMsZ0JBQWdCLEVBQUU7b0JBQ2hCLElBQUksRUFBRSxHQUFHLEVBQUUsMEZBQTBGO2lCQUN0RztnQkFDRCxpREFBaUQ7Z0JBQ2pELG9EQUFvRDtnQkFDcEQsdURBQXVEO2dCQUN2RCxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHO2dCQUU3QixrRUFBa0U7Z0JBQ2xFLHlFQUF5RTtnQkFDekUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixJQUFJLDBCQUFpQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7Z0JBRWxGLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7YUFDL0MsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGdCQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVB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TyxDQUFDLE1BQU0sRUFBRTtnQkFDN0IsV0FBVyxFQUFFLHNDQUFzQzthQUNwRCxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxnQkFBZ0I7UUFDdEIsT0FBTyxDQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUMvQixXQUFXLEVBQUUsZ0RBQWdEO2FBQzlELENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7QUE3SEgsNENBOEhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBSZWxlYXNhYmxlQ29tbWl0cywgVGFzaywgVmVyc2lvbiwgVmVyc2lvbkJyYW5jaE9wdGlvbnMsIHJlbGVhc2UgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgR2F0aGVyVmVyc2lvbnMsIEdhdGhlclZlcnNpb25zT3B0aW9ucyB9IGZyb20gJy4vZ2F0aGVyLXZlcnNpb25zLnRhc2snO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFdvcmtzcGFjZSB9IGZyb20gJy4vdHlwZXNjcmlwdC13b3Jrc3BhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZVJlbGVhc2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgcHJpdmF0ZTogYm9vbGVhbjtcblxuICAvKiogQGRlZmF1bHQgJ2x0cy8qJyAqL1xuICByZWFkb25seSB3b3JrZmxvd05vZGVWZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSBwdWJsaXNoVG9OcG0/OiBib29sZWFuO1xuICByZWFkb25seSBucG1EaXN0VGFnPzogc3RyaW5nO1xuICByZWFkb25seSByZWxlYXNhYmxlQ29tbWl0cz86IFJlbGVhc2FibGVDb21taXRzO1xuICByZWFkb25seSBuZXh0VmVyc2lvbkNvbW1hbmQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb25CcmFuY2hPcHRpb25zOiBWZXJzaW9uQnJhbmNoT3B0aW9ucztcblxuICAvKipcbiAgICogRm9yIHJ1bnRpbWUgYW5kIHBlZXIgZGVwZW5kZW5jaWVzLCB0aGUgdHlwZSBvZiBkZXBlbmRlbmN5IHdlIHRha2Ugb24gZWFjaCBwYWNrYWdlXG4gICAqL1xuICByZWFkb25seSByZXBvUnVudGltZURlcGVuZGVuY2llcz86IEdhdGhlclZlcnNpb25zT3B0aW9uc1sncmVwb1J1bnRpbWVEZXBlbmRlbmNpZXMnXTtcbn1cblxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZVJlbGVhc2UgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgcHVibGlzaGVyPzogcmVsZWFzZS5QdWJsaXNoZXI7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uPzogVmVyc2lvbjtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZTogVHlwZVNjcmlwdFdvcmtzcGFjZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJvamVjdDogVHlwZVNjcmlwdFdvcmtzcGFjZSwgb3B0aW9uczogV29ya3NwYWNlUmVsZWFzZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgICB0aGlzLndvcmtzcGFjZSA9IHByb2plY3Q7XG5cbiAgICAvLyBUaGUgcm9vdCBwYWNrYWdlIGlzIHJlbGVhc2UtYXdhcmUuIEVpdGhlciB3ZSBjcmVhdGUgYSBwcm9wZXJcbiAgICAvLyAneWFybiByZWxlYXNlJyB0YXNrIGhlcmUsIG9yIHdlIGNyZWF0ZSBhIGZha2Ugb25lIHRoYXQganVzdCBkb2VzXG4gICAgLy8gYSAnYnVpbGQnICh3aWxsIGJlIHJ1biBpbiBkZXBlbmRlbmN5IG9yZGVyIGJ5IHRoZSBwYXJlbnQgcmVsZWFzZSB0YXNrKS5cbiAgICBpZiAoIW9wdGlvbnMucHJpdmF0ZSkge1xuICAgICAgdGhpcy52ZXJzaW9uID0gbmV3IFZlcnNpb24odGhpcy53b3Jrc3BhY2UsIHtcbiAgICAgICAgdmVyc2lvbklucHV0RmlsZTogJ3BhY2thZ2UuanNvbicsIC8vIHRoaXMgaXMgd2hlcmUgXCJ2ZXJzaW9uXCIgaXMgc2V0IGFmdGVyIGJ1bXBcbiAgICAgICAgYXJ0aWZhY3RzRGlyZWN0b3J5OiBwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgICAgdmVyc2lvbnJjT3B0aW9uczoge1xuICAgICAgICAgIHBhdGg6ICcuJywgLy8gSW4gYSBtb25vcmVwbywgd2Ugd2FudCBzdGFuZGFyZC12ZXJzaW9uIHRvIG9ubHkgY29uc2lkZXIgdGhlIGRpcmVjdG9yeSBvZiB0aGUgd29ya3NwYWNlXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFRoaXMgbWl4ZXMgdGhlIHBhY2thZ2UgbmFtZSBpbnRvIHRoZSB0YWcgbmFtZSxcbiAgICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gZ2l2ZSBwYWNrYWdlcyBpbmRpdmlkdWFsIHZlcnNpb25zLlxuICAgICAgICAvLyBUYWdzIGVuZCB1cCBsb29raW5nIGxpa2UgdGhpczogQHNjb3BlL3BhY2thZ2VAdjEuMi4zXG4gICAgICAgIHRhZ1ByZWZpeDogYCR7cHJvamVjdC5uYW1lfUBgLFxuXG4gICAgICAgIC8vIEluIGEgbW9ub3JlcG8sIG9ubHkgY29uc2lkZXIgY2hhbmdlcyByZWxldmFudCB0byB0aGUgc3VicHJvamVjdFxuICAgICAgICAvLyBQYXRoIGlzIHJlbGF0aXZlIHRvIHRoZSBzdWJwcm9qZWN0IG91dGRpciwgc28gJy4nIGlzIHdoYXQgd2Ugd2FudCBoZXJlXG4gICAgICAgIHJlbGVhc2FibGVDb21taXRzOiBvcHRpb25zLnJlbGVhc2FibGVDb21taXRzID8/IFJlbGVhc2FibGVDb21taXRzLmV2ZXJ5Q29tbWl0KCcuJyksXG5cbiAgICAgICAgbmV4dFZlcnNpb25Db21tYW5kOiBvcHRpb25zLm5leHRWZXJzaW9uQ29tbWFuZCxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnB1Ymxpc2hlciA9IG5ldyByZWxlYXNlLlB1Ymxpc2hlcih0aGlzLndvcmtzcGFjZSwge1xuICAgICAgICBhcnRpZmFjdE5hbWU6IHByb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgICBjb25kaXRpb246ICduZWVkcy5yZWxlYXNlLm91dHB1dHMubGF0ZXN0X2NvbW1pdCA9PSBnaXRodWIuc2hhJyxcbiAgICAgICAgYnVpbGRKb2JJZDogJ3JlbGVhc2UnLFxuICAgICAgICB3b3JrZmxvd05vZGVWZXJzaW9uOiBvcHRpb25zLndvcmtmbG93Tm9kZVZlcnNpb24gPz8gJ2x0cy8qJyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnB1Ymxpc2hlci5wdWJsaXNoVG9HaXRIdWJSZWxlYXNlcyh7XG4gICAgICAgIGNoYW5nZWxvZ0ZpbGU6IHBhdGgucG9zaXguam9pbihwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSwgdGhpcy52ZXJzaW9uLmNoYW5nZWxvZ0ZpbGVOYW1lKSxcbiAgICAgICAgdmVyc2lvbkZpbGU6IHBhdGgucG9zaXguam9pbihwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSwgdGhpcy52ZXJzaW9uLnZlcnNpb25GaWxlTmFtZSksXG4gICAgICAgIHJlbGVhc2VUYWdGaWxlOiBwYXRoLnBvc2l4LmpvaW4ocHJvamVjdC5hcnRpZmFjdHNEaXJlY3RvcnksIHRoaXMudmVyc2lvbi5yZWxlYXNlVGFnRmlsZU5hbWUpLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEdpdEh1YiBSZWxlYXNlcyBjb21lcyBmb3IgZnJlZSB3aXRoIGEgYFJlbGVhc2VgIGNvbXBvbmVudCwgTlBNIG11c3QgYmUgYWRkZWQgZXhwbGljaXRseVxuICAgICAgaWYgKG9wdGlvbnMucHVibGlzaFRvTnBtID8/IHRydWUpIHtcbiAgICAgICAgdGhpcy5wdWJsaXNoZXIucHVibGlzaFRvTnBtKHtcbiAgICAgICAgICByZWdpc3RyeTogcHJvamVjdC5wYWNrYWdlLm5wbVJlZ2lzdHJ5LFxuICAgICAgICAgIG5wbVRva2VuU2VjcmV0OiBwcm9qZWN0LnBhY2thZ2UubnBtVG9rZW5TZWNyZXQsXG4gICAgICAgICAgbnBtUHJvdmVuYW5jZTogcHJvamVjdC5wYWNrYWdlLm5wbVByb3ZlbmFuY2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgdGFza3Mgc2V0cyBhbGwgbG9jYWwgZGVwZW5kZW5jaWVzIHRvIHRoZWlyIGN1cnJlbnQgdmVyc2lvblxuICAgIC8vIEluIHRoZSBtb25vcmVwbyB3ZSBjYWxsIHRoaXMgdGFzayBpbiB0b3BvbG9naWNhbCBvcmRlci5cbiAgICAvLyBUaGVyZWZvciBpdCBpcyBndWFyYW50ZWVkIHRoYXQgYW55IGxvY2FsIHBhY2thZ2VzIGEgcGFja2FnZSBkZXBlbmRzIG9uLFxuICAgIC8vIGFscmVhZHkgaGF2ZSBiZWVuIGJ1bXBlZC5cbiAgICBjb25zdCBnYXRoZXJWZXJzaW9ucyA9IHByb2plY3QuYWRkVGFzaygnZ2F0aGVyLXZlcnNpb25zJywge1xuICAgICAgc3RlcHM6IFtuZXcgR2F0aGVyVmVyc2lvbnMocHJvamVjdCwge1xuICAgICAgICByZXBvUnVudGltZURlcGVuZGVuY2llczogb3B0aW9ucy5yZXBvUnVudGltZURlcGVuZGVuY2llcyA/PyB7fSxcbiAgICAgIH0pXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJ1bXBUYXNrID0gdGhpcy5vYnRhaW5CdW1wVGFzaygpO1xuICAgIGJ1bXBUYXNrLnByZXBlbmRTcGF3bihnYXRoZXJWZXJzaW9ucyk7XG4gICAgLy8gVGhlIGJ1bXBUYXNrIG5lZWRzIHRvIGJlIGV4ZWN1dGVkIHdpdGggZW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgY29udHJvbFxuICAgIC8vIHZlcnNpb24gaW5mb3JtYXRpb24uIFRoZXNlIGFyZSBub3QgcGFydCBvZiB0aGUgdXBzdHJlYW0gdGFzayBpdHNlbGYgeWV0LFxuICAgIC8vIHNpbmNlIHRoZXkgYXJlIHBhcnQgb2YgdGhlIGludm9jYXRpb24gdGhlcmUuIFdlIGFsc28gbmVlZCB0byBtYWtlIHRoZW0gcGFydFxuICAgIC8vIG9mIHRoZSBpbnZvY2F0aW9uIGhlcmUuXG4gICAgaWYgKHRoaXMudmVyc2lvbikge1xuICAgICAgaWYgKG9wdGlvbnMudmVyc2lvbkJyYW5jaE9wdGlvbnM/LnRhZ1ByZWZpeCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RvIG5vdCBzZXQgdmVyc2lvbkJyYW5jaE9wdGlvbnMudGFnUHJlZml4OyBpdCBpcyBjb25maWd1cmVkIGFub3RoZXIgd2F5Jyk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnZlcnNpb24uZW52Rm9yQnJhbmNoKHtcbiAgICAgICAgLi4ub3B0aW9ucy52ZXJzaW9uQnJhbmNoT3B0aW9ucyxcbiAgICAgIH0pKSkge1xuICAgICAgICBidW1wVGFzay5lbnYoa2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICAvLyBBZnRlciB3ZSBoYXZlIHVuYnVtcGVkIHBhY2thZ2UgdmVyc2lvbnMgYmFjayB0byBeMC4wLjAsXG4gICAgLy8gd2UgY2FuIHJ1biB0aGUgZ2F0aGVyLXZlcnNpb25zIHRhc2sgYWdhaW4gd2hpY2ggd2lsbCBub3cgcmVwbGFjZSB0aGUgdG8tYmUtcmVsZWFzZSB2ZXJzaW9ucyB3aXRoIF4wLjAuMFxuICAgIC8vXG4gICAgLy8gV2UgbmVlZCB0byBzZXQgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gZ2V0IGBnYXRoZXJWZXJzaW9uc2AgdG8gYmVoYXZlIGRpZmZlcmVudGx5IGluIHRoZSB1bmJ1bXBcbiAgICAvLyBpbnZvY2F0aW9uIChpbiB0aGUgYnVtcCBpbnZvY2F0aW9uLCBpdCBtYXkgY2hhbmdlIHRoZSBwYWNrYWdlLmpzb24gZGVwZW5kZW5jeSByYW5nZSBmcm9tIGBeMC4wLjBgIHRvIGAxLjIuM2A7XG4gICAgLy8gdXNpbmcgYSBkaWZmZXJlbnQgcmFuZ2Ugc3ltYm9sKSwgYnV0IHdoZW4gdW5idW1waW5nIGl0IG11c3QgYWx3YXlzIHJlc2V0IGJhY2sgdG8gdGhlIGBeMC4wLjBgIHZlcnNpb24uXG4gICAgdGhpcy5vYnRhaW5VbmJ1bXBUYXNrKCkuc3Bhd24oZ2F0aGVyVmVyc2lvbnMsIHtcbiAgICAgIGVudjoge1xuICAgICAgICBSRVNFVF9WRVJTSU9OUzogJ3RydWUnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGJ1bXAgdmVyc2lvbiB0YXNrXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYSBwcml2YXRlIHBhY2thZ2UsIGl0IHdvbid0IGhhdmUgYSBidW1wIHRhc2sgeWV0LlxuICAgKiBTbyBpbnN0ZWFkIHdlIGNyZWF0ZSBhbiBlbXB0eSBvbmUgdGhhdCBjYW4gYmUgY2FsbGVkIGZyb20gdGhlIG1vbm9yZXBvIHJvb3RcbiAgICogYW5kIHNlcnZlIGFzIGEgY29udGFpbmVyIGZvciBvdGhlciBzdGVwcyB0aGF0IG5lZWQgdG8gb2NjdXIgYXMgcGFydCBvZiB0aGUgcmVsZWFzZVxuICAgKi9cbiAgcHJpdmF0ZSBvYnRhaW5CdW1wVGFzaygpOiBUYXNrIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy53b3Jrc3BhY2UudGFza3MudHJ5RmluZCgnYnVtcCcpID8/XG4gICAgICB0aGlzLndvcmtzcGFjZS5hZGRUYXNrKCdidW1wJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ0J1bXBzIHZlcnNpb25zIG9mIGxvY2FsIGRlcGVuZGVuY2llcycsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB1bmJ1bXAgdmVyc2lvbiB0YXNrXG4gICAqLlxuICAgKiBJZiB0aGlzIGlzIGEgcHJpdmF0ZSBwYWNrYWdlLCBpdCB3b24ndCBoYXZlIGEgYnVtcCB0YXNrIHlldFxuICAgKiBTbyBpbnN0ZWFkIHdlIGNyZWF0ZSBhbiBlbXB0eSBvbmUgdGhhdCBjYW4gYmUgY2FsbGVkIGZyb20gdGhlIG1vbm9yZXBvIHJvb3RcbiAgICogYW5kIHNlcnZlIGFzIGEgY29udGFpbmVyIGZvciBvdGhlciBzdGVwcyB0aGF0IG5lZWQgdG8gb2NjdXIgYXMgcGFydCBvZiB0aGUgcmVsZWFzZVxuICAgKi9cbiAgcHJpdmF0ZSBvYnRhaW5VbmJ1bXBUYXNrKCk6IFRhc2sge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLndvcmtzcGFjZS50YXNrcy50cnlGaW5kKCd1bmJ1bXAnKSA/P1xuICAgICAgdGhpcy53b3Jrc3BhY2UuYWRkVGFzaygndW5idW1wJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1Jlc2V0cyB2ZXJzaW9ucyBvZiBsb2NhbCBkZXBlbmRlbmNpZXMgdG8gMC4wLjAnLFxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
119
+ WorkspaceRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.WorkspaceRelease", version: "0.3.5" };
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC13b3Jrc3BhY2UtcmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy95YXJuL3R5cGVzY3JpcHQtd29ya3NwYWNlLXJlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrQ0FBa0M7QUFDbEMsbUNBQW9HO0FBQ3BHLGlFQUErRTtBQXNCL0UsTUFBYSxnQkFBaUIsU0FBUSxrQkFBUztJQUs3QyxZQUFtQixPQUE0QixFQUFFLE9BQWdDO1FBQy9FLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBRXpCLCtEQUErRDtRQUMvRCxtRUFBbUU7UUFDbkUsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDekMsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLDRDQUE0QztnQkFDOUUsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQjtnQkFDOUMsZ0JBQWdCLEVBQUU7b0JBQ2hCLElBQUksRUFBRSxHQUFHLEVBQUUsMEZBQTBGO2lCQUN0RztnQkFDRCxpREFBaUQ7Z0JBQ2pELG9EQUFvRDtnQkFDcEQsdURBQXVEO2dCQUN2RCxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHO2dCQUU3QixrRUFBa0U7Z0JBQ2xFLHlFQUF5RTtnQkFDekUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixJQUFJLDBCQUFpQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7Z0JBRWxGLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7YUFDL0MsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGdCQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVB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TSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDN0IsV0FBVyxFQUFFLHNDQUFzQzthQUNwRCxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxnQkFBZ0I7UUFDdEIsT0FBTyxDQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUMvQixXQUFXLEVBQUUsZ0RBQWdEO2FBQzlELENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7QUE5SEgsNENBK0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBSZWxlYXNhYmxlQ29tbWl0cywgVGFzaywgVmVyc2lvbiwgVmVyc2lvbkJyYW5jaE9wdGlvbnMsIHJlbGVhc2UgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgR2F0aGVyVmVyc2lvbnMsIEdhdGhlclZlcnNpb25zT3B0aW9ucyB9IGZyb20gJy4vZ2F0aGVyLXZlcnNpb25zLnRhc2snO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFdvcmtzcGFjZSB9IGZyb20gJy4vdHlwZXNjcmlwdC13b3Jrc3BhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZVJlbGVhc2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgcHJpdmF0ZTogYm9vbGVhbjtcblxuICAvKiogQGRlZmF1bHQgJ2x0cy8qJyAqL1xuICByZWFkb25seSB3b3JrZmxvd05vZGVWZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSBwdWJsaXNoVG9OcG0/OiBib29sZWFuO1xuICByZWFkb25seSBucG1EaXN0VGFnPzogc3RyaW5nO1xuICByZWFkb25seSByZWxlYXNhYmxlQ29tbWl0cz86IFJlbGVhc2FibGVDb21taXRzO1xuICByZWFkb25seSBuZXh0VmVyc2lvbkNvbW1hbmQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5wbVRydXN0ZWRQdWJsaXNoaW5nPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb25CcmFuY2hPcHRpb25zOiBWZXJzaW9uQnJhbmNoT3B0aW9ucztcblxuICAvKipcbiAgICogRm9yIHJ1bnRpbWUgYW5kIHBlZXIgZGVwZW5kZW5jaWVzLCB0aGUgdHlwZSBvZiBkZXBlbmRlbmN5IHdlIHRha2Ugb24gZWFjaCBwYWNrYWdlXG4gICAqL1xuICByZWFkb25seSByZXBvUnVudGltZURlcGVuZGVuY2llcz86IEdhdGhlclZlcnNpb25zT3B0aW9uc1sncmVwb1J1bnRpbWVEZXBlbmRlbmNpZXMnXTtcbn1cblxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZVJlbGVhc2UgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgcHVibGlzaGVyPzogcmVsZWFzZS5QdWJsaXNoZXI7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uPzogVmVyc2lvbjtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZTogVHlwZVNjcmlwdFdvcmtzcGFjZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJvamVjdDogVHlwZVNjcmlwdFdvcmtzcGFjZSwgb3B0aW9uczogV29ya3NwYWNlUmVsZWFzZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgICB0aGlzLndvcmtzcGFjZSA9IHByb2plY3Q7XG5cbiAgICAvLyBUaGUgcm9vdCBwYWNrYWdlIGlzIHJlbGVhc2UtYXdhcmUuIEVpdGhlciB3ZSBjcmVhdGUgYSBwcm9wZXJcbiAgICAvLyAneWFybiByZWxlYXNlJyB0YXNrIGhlcmUsIG9yIHdlIGNyZWF0ZSBhIGZha2Ugb25lIHRoYXQganVzdCBkb2VzXG4gICAgLy8gYSAnYnVpbGQnICh3aWxsIGJlIHJ1biBpbiBkZXBlbmRlbmN5IG9yZGVyIGJ5IHRoZSBwYXJlbnQgcmVsZWFzZSB0YXNrKS5cbiAgICBpZiAoIW9wdGlvbnMucHJpdmF0ZSkge1xuICAgICAgdGhpcy52ZXJzaW9uID0gbmV3IFZlcnNpb24odGhpcy53b3Jrc3BhY2UsIHtcbiAgICAgICAgdmVyc2lvbklucHV0RmlsZTogJ3BhY2thZ2UuanNvbicsIC8vIHRoaXMgaXMgd2hlcmUgXCJ2ZXJzaW9uXCIgaXMgc2V0IGFmdGVyIGJ1bXBcbiAgICAgICAgYXJ0aWZhY3RzRGlyZWN0b3J5OiBwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgICAgdmVyc2lvbnJjT3B0aW9uczoge1xuICAgICAgICAgIHBhdGg6ICcuJywgLy8gSW4gYSBtb25vcmVwbywgd2Ugd2FudCBzdGFuZGFyZC12ZXJzaW9uIHRvIG9ubHkgY29uc2lkZXIgdGhlIGRpcmVjdG9yeSBvZiB0aGUgd29ya3NwYWNlXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFRoaXMgbWl4ZXMgdGhlIHBhY2thZ2UgbmFtZSBpbnRvIHRoZSB0YWcgbmFtZSxcbiAgICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gZ2l2ZSBwYWNrYWdlcyBpbmRpdmlkdWFsIHZlcnNpb25zLlxuICAgICAgICAvLyBUYWdzIGVuZCB1cCBsb29raW5nIGxpa2UgdGhpczogQHNjb3BlL3BhY2thZ2VAdjEuMi4zXG4gICAgICAgIHRhZ1ByZWZpeDogYCR7cHJvamVjdC5uYW1lfUBgLFxuXG4gICAgICAgIC8vIEluIGEgbW9ub3JlcG8sIG9ubHkgY29uc2lkZXIgY2hhbmdlcyByZWxldmFudCB0byB0aGUgc3VicHJvamVjdFxuICAgICAgICAvLyBQYXRoIGlzIHJlbGF0aXZlIHRvIHRoZSBzdWJwcm9qZWN0IG91dGRpciwgc28gJy4nIGlzIHdoYXQgd2Ugd2FudCBoZXJlXG4gICAgICAgIHJlbGVhc2FibGVDb21taXRzOiBvcHRpb25zLnJlbGVhc2FibGVDb21taXRzID8/IFJlbGVhc2FibGVDb21taXRzLmV2ZXJ5Q29tbWl0KCcuJyksXG5cbiAgICAgICAgbmV4dFZlcnNpb25Db21tYW5kOiBvcHRpb25zLm5leHRWZXJzaW9uQ29tbWFuZCxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnB1Ymxpc2hlciA9IG5ldyByZWxlYXNlLlB1Ymxpc2hlcih0aGlzLndvcmtzcGFjZSwge1xuICAgICAgICBhcnRpZmFjdE5hbWU6IHByb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgICBjb25kaXRpb246ICduZWVkcy5yZWxlYXNlLm91dHB1dHMubGF0ZXN0X2NvbW1pdCA9PSBnaXRodWIuc2hhJyxcbiAgICAgICAgYnVpbGRKb2JJZDogJ3JlbGVhc2UnLFxuICAgICAgICB3b3JrZmxvd05vZGVWZXJzaW9uOiBvcHRpb25zLndvcmtmbG93Tm9kZVZlcnNpb24gPz8gJ2x0cy8qJyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnB1Ymxpc2hlci5wdWJsaXNoVG9HaXRIdWJSZWxlYXNlcyh7XG4gICAgICAgIGNoYW5nZWxvZ0ZpbGU6IHBhdGgucG9zaXguam9pbihwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSwgdGhpcy52ZXJzaW9uLmNoYW5nZWxvZ0ZpbGVOYW1lKSxcbiAgICAgICAgdmVyc2lvbkZpbGU6IHBhdGgucG9zaXguam9pbihwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSwgdGhpcy52ZXJzaW9uLnZlcnNpb25GaWxlTmFtZSksXG4gICAgICAgIHJlbGVhc2VUYWdGaWxlOiBwYXRoLnBvc2l4LmpvaW4ocHJvamVjdC5hcnRpZmFjdHNEaXJlY3RvcnksIHRoaXMudmVyc2lvbi5yZWxlYXNlVGFnRmlsZU5hbWUpLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEdpdEh1YiBSZWxlYXNlcyBjb21lcyBmb3IgZnJlZSB3aXRoIGEgYFJlbGVhc2VgIGNvbXBvbmVudCwgTlBNIG11c3QgYmUgYWRkZWQgZXhwbGljaXRseVxuICAgICAgaWYgKG9wdGlvbnMucHVibGlzaFRvTnBtID8/IHRydWUpIHtcbiAgICAgICAgdGhpcy5wdWJsaXNoZXIucHVibGlzaFRvTnBtKHtcbiAgICAgICAgICByZWdpc3RyeTogcHJvamVjdC5wYWNrYWdlLm5wbVJlZ2lzdHJ5LFxuICAgICAgICAgIG5wbVRva2VuU2VjcmV0OiBwcm9qZWN0LnBhY2thZ2UubnBtVG9rZW5TZWNyZXQsXG4gICAgICAgICAgbnBtUHJvdmVuYW5jZTogcHJvamVjdC5wYWNrYWdlLm5wbVByb3ZlbmFuY2UsXG4gICAgICAgICAgdHJ1c3RlZFB1Ymxpc2hpbmc6IG9wdGlvbnMubnBtVHJ1c3RlZFB1Ymxpc2hpbmcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgdGFza3Mgc2V0cyBhbGwgbG9jYWwgZGVwZW5kZW5jaWVzIHRvIHRoZWlyIGN1cnJlbnQgdmVyc2lvblxuICAgIC8vIEluIHRoZSBtb25vcmVwbyB3ZSBjYWxsIHRoaXMgdGFzayBpbiB0b3BvbG9naWNhbCBvcmRlci5cbiAgICAvLyBUaGVyZWZvciBpdCBpcyBndWFyYW50ZWVkIHRoYXQgYW55IGxvY2FsIHBhY2thZ2VzIGEgcGFja2FnZSBkZXBlbmRzIG9uLFxuICAgIC8vIGFscmVhZHkgaGF2ZSBiZWVuIGJ1bXBlZC5cbiAgICBjb25zdCBnYXRoZXJWZXJzaW9ucyA9IHByb2plY3QuYWRkVGFzaygnZ2F0aGVyLXZlcnNpb25zJywge1xuICAgICAgc3RlcHM6IFtuZXcgR2F0aGVyVmVyc2lvbnMocHJvamVjdCwge1xuICAgICAgICByZXBvUnVudGltZURlcGVuZGVuY2llczogb3B0aW9ucy5yZXBvUnVudGltZURlcGVuZGVuY2llcyA/PyB7fSxcbiAgICAgIH0pXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJ1bXBUYXNrID0gdGhpcy5vYnRhaW5CdW1wVGFzaygpO1xuICAgIGJ1bXBUYXNrLnByZXBlbmRTcGF3bihnYXRoZXJWZXJzaW9ucyk7XG4gICAgLy8gVGhlIGJ1bXBUYXNrIG5lZWRzIHRvIGJlIGV4ZWN1dGVkIHdpdGggZW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgY29udHJvbFxuICAgIC8vIHZlcnNpb24gaW5mb3JtYXRpb24uIFRoZXNlIGFyZSBub3QgcGFydCBvZiB0aGUgdXBzdHJlYW0gdGFzayBpdHNlbGYgeWV0LFxuICAgIC8vIHNpbmNlIHRoZXkgYXJlIHBhcnQgb2YgdGhlIGludm9jYXRpb24gdGhlcmUuIFdlIGFsc28gbmVlZCB0byBtYWtlIHRoZW0gcGFydFxuICAgIC8vIG9mIHRoZSBpbnZvY2F0aW9uIGhlcmUuXG4gICAgaWYgKHRoaXMudmVyc2lvbikge1xuICAgICAgaWYgKG9wdGlvbnMudmVyc2lvbkJyYW5jaE9wdGlvbnM/LnRhZ1ByZWZpeCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RvIG5vdCBzZXQgdmVyc2lvbkJyYW5jaE9wdGlvbnMudGFnUHJlZml4OyBpdCBpcyBjb25maWd1cmVkIGFub3RoZXIgd2F5Jyk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnZlcnNpb24uZW52Rm9yQnJhbmNoKHtcbiAgICAgICAgLi4ub3B0aW9ucy52ZXJzaW9uQnJhbmNoT3B0aW9ucyxcbiAgICAgIH0pKSkge1xuICAgICAgICBidW1wVGFzay5lbnYoa2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICAvLyBBZnRlciB3ZSBoYXZlIHVuYnVtcGVkIHBhY2thZ2UgdmVyc2lvbnMgYmFjayB0byBeMC4wLjAsXG4gICAgLy8gd2UgY2FuIHJ1biB0aGUgZ2F0aGVyLXZlcnNpb25zIHRhc2sgYWdhaW4gd2hpY2ggd2lsbCBub3cgcmVwbGFjZSB0aGUgdG8tYmUtcmVsZWFzZSB2ZXJzaW9ucyB3aXRoIF4wLjAuMFxuICAgIC8vXG4gICAgLy8gV2UgbmVlZCB0byBzZXQgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gZ2V0IGBnYXRoZXJWZXJzaW9uc2AgdG8gYmVoYXZlIGRpZmZlcmVudGx5IGluIHRoZSB1bmJ1bXBcbiAgICAvLyBpbnZvY2F0aW9uIChpbiB0aGUgYnVtcCBpbnZvY2F0aW9uLCBpdCBtYXkgY2hhbmdlIHRoZSBwYWNrYWdlLmpzb24gZGVwZW5kZW5jeSByYW5nZSBmcm9tIGBeMC4wLjBgIHRvIGAxLjIuM2A7XG4gICAgLy8gdXNpbmcgYSBkaWZmZXJlbnQgcmFuZ2Ugc3ltYm9sKSwgYnV0IHdoZW4gdW5idW1waW5nIGl0IG11c3QgYWx3YXlzIHJlc2V0IGJhY2sgdG8gdGhlIGBeMC4wLjBgIHZlcnNpb24uXG4gICAgdGhpcy5vYnRhaW5VbmJ1bXBUYXNrKCkuc3Bhd24oZ2F0aGVyVmVyc2lvbnMsIHtcbiAgICAgIGVudjoge1xuICAgICAgICBSRVNFVF9WRVJTSU9OUzogJ3RydWUnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGJ1bXAgdmVyc2lvbiB0YXNrXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYSBwcml2YXRlIHBhY2thZ2UsIGl0IHdvbid0IGhhdmUgYSBidW1wIHRhc2sgeWV0LlxuICAgKiBTbyBpbnN0ZWFkIHdlIGNyZWF0ZSBhbiBlbXB0eSBvbmUgdGhhdCBjYW4gYmUgY2FsbGVkIGZyb20gdGhlIG1vbm9yZXBvIHJvb3RcbiAgICogYW5kIHNlcnZlIGFzIGEgY29udGFpbmVyIGZvciBvdGhlciBzdGVwcyB0aGF0IG5lZWQgdG8gb2NjdXIgYXMgcGFydCBvZiB0aGUgcmVsZWFzZVxuICAgKi9cbiAgcHJpdmF0ZSBvYnRhaW5CdW1wVGFzaygpOiBUYXNrIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy53b3Jrc3BhY2UudGFza3MudHJ5RmluZCgnYnVtcCcpID8/XG4gICAgICB0aGlzLndvcmtzcGFjZS5hZGRUYXNrKCdidW1wJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ0J1bXBzIHZlcnNpb25zIG9mIGxvY2FsIGRlcGVuZGVuY2llcycsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB1bmJ1bXAgdmVyc2lvbiB0YXNrXG4gICAqLlxuICAgKiBJZiB0aGlzIGlzIGEgcHJpdmF0ZSBwYWNrYWdlLCBpdCB3b24ndCBoYXZlIGEgYnVtcCB0YXNrIHlldFxuICAgKiBTbyBpbnN0ZWFkIHdlIGNyZWF0ZSBhbiBlbXB0eSBvbmUgdGhhdCBjYW4gYmUgY2FsbGVkIGZyb20gdGhlIG1vbm9yZXBvIHJvb3RcbiAgICogYW5kIHNlcnZlIGFzIGEgY29udGFpbmVyIGZvciBvdGhlciBzdGVwcyB0aGF0IG5lZWQgdG8gb2NjdXIgYXMgcGFydCBvZiB0aGUgcmVsZWFzZVxuICAgKi9cbiAgcHJpdmF0ZSBvYnRhaW5VbmJ1bXBUYXNrKCk6IFRhc2sge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLndvcmtzcGFjZS50YXNrcy50cnlGaW5kKCd1bmJ1bXAnKSA/P1xuICAgICAgdGhpcy53b3Jrc3BhY2UuYWRkVGFzaygndW5idW1wJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1Jlc2V0cyB2ZXJzaW9ucyBvZiBsb2NhbCBkZXBlbmRlbmNpZXMgdG8gMC4wLjAnLFxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -88,6 +88,8 @@ class TypeScriptWorkspace extends projen_1.typescript.TypeScriptProject {
88
88
  private: this.isPrivatePackage,
89
89
  workflowNodeVersion: this.nodeVersion,
90
90
  npmDistTag: options.npmDistTag,
91
+ npmTrustedPublishing: options.npmTrustedPublishing,
92
+ environment: options.releaseEnvironment,
91
93
  releasableCommits: options.releasableCommits,
92
94
  nextVersionCommand: options.nextVersionCommand,
93
95
  versionBranchOptions: {
@@ -211,7 +213,7 @@ class TypeScriptWorkspace extends projen_1.typescript.TypeScriptProject {
211
213
  }
212
214
  exports.TypeScriptWorkspace = TypeScriptWorkspace;
213
215
  _a = JSII_RTTI_SYMBOL_1;
214
- TypeScriptWorkspace[_a] = { fqn: "cdklabs-projen-project-types.yarn.TypeScriptWorkspace", version: "0.3.3" };
216
+ TypeScriptWorkspace[_a] = { fqn: "cdklabs-projen-project-types.yarn.TypeScriptWorkspace", version: "0.3.5" };
215
217
  function packageNames(xs) {
216
218
  if (!xs) {
217
219
  return undefined;
@@ -228,4 +230,4 @@ function without(x, ...ks) {
228
230
  function isWorkspaceReference(x) {
229
231
  return typeof x === 'object' && !!x && ['isPrivatePackage', 'versionType', 'name', 'outdir'].every(k => x[k] !== undefined);
230
232
  }
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveWFybi90eXBlc2NyaXB0LXdvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLCtCQUFnQztBQUNoQyxtQ0FBMEc7QUFtRDFHOztHQUVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxtQkFBVSxDQUFDLGlCQUFpQjtJQVFuRSxZQUFZLE9BQW1DO1FBQzdDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FDdkIsT0FBTyxFQUNQLFFBQVEsRUFDUixNQUFNLEVBQ04sYUFBYSxFQUNiLE1BQU0sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULHdCQUF3QixFQUN4QixZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLGtCQUFrQixDQUNuQixDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7UUFDM0MsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUM7UUFFL0MsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLGNBQWMsSUFBSSxVQUFVLENBQUM7UUFDdkQsTUFBTSxrQkFBa0IsR0FBRSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFdkQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxtQkFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUUvRyxLQUFLLENBQUM7WUFDSixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUNoQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMs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J3BhdGgnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBqYXZhc2NyaXB0LCB0eXBlc2NyaXB0LCBUYXNrU3RlcCwgU291cmNlQ29kZSwgRGVwZW5kZW5jeVR5cGUsIFByb2plY3QgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgTW9ub3JlcG8gfSBmcm9tICcuL21vbm9yZXBvJztcbmltcG9ydCB7IFR5cGVTY3JpcHRXb3Jrc3BhY2VPcHRpb25zIH0gZnJvbSAnLi90eXBlc2NyaXB0LXdvcmtzcGFjZS1vcHRpb25zJztcblxuLyoqXG4gKiBXaGF0IGtpbmQgb2Ygc2VtdmVyIGRlcGVuZGVuY3kgdG8gdGFrZVxuICpcbiAqIC0gJ2FueS1taW5vcicgY29ycmVzcG9uZHMgdG8gJ14xJ1xuICogLSAnZnV0dXJlLW1pbm9yJyBjb3JyZXNwb25kcyB0byAnXjEuMi4zJ1xuICogLSAnYW55LXBhdGNoJyB0byAnfjEuMidcbiAqIC0gJ2Z1dHVyZS1wYXRjaCcgY29ycmVzcG9uZHMgdG8gJ34xLjIuMydcbiAqIC0gJ2V4YWN0JyBjb3JyZXNwb25kcyB0byAnMS4yLjMnXG4gKiAtICdhbnktZnV0dXJlJyBjb3JyZXNwb25kcyB0byAnPj0xLjIuMydcbiAqIC0gJ2FueScgY29ycmVzcG9uZHMgdG8gJyonXG4gKi9cbmV4cG9ydCB0eXBlIFZlcnNpb25UeXBlID0gJ2FueS1taW5vcicgfCAnZnV0dXJlLW1pbm9yJyB8ICdhbnktcGF0Y2gnIHwgJ2Z1dHVyZS1wYXRjaCcgfCAnZXhhY3QnIHwgJ2FueS1mdXR1cmUnIHwgJ2FueSc7XG5cbi8qKlxuICogQSByZWZlcmVuY2UgdG8gYSB3b3Jrc3BhY2UgaW4gdGhlIHNhbWUgbW9ub3JlcG9cbiAqXG4gKiBUaGlzIGNhbiBiZSB1c2VkIHRvIHJlZmVyZW5jZSBwYWNrYWdlcyBpbiB0aGUgc2FtZSBtb25vcmVwbyB3aGVuIGRlY2xhcmluZ1xuICogYGRlcHNgIGFuZCBgZGV2RGVwc2AuXG4gKlxuICogQnkgZGVmYXVsdCwgYWxsIGBUeXBlU2NyaXB0V29ya3NwYWNlYHMgaW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlLCByZXByZXNlbnRpbmcgdGhlbXNlbHZlc1xuICogd2l0aCBhIGBeYCBkZXBlbmRlbmN5IGFuZCBhIHJlc3RyaWN0aW9uIHRoYXQgcHVibGljIHBhY2thZ2VzIG11c3QgaGF2ZSBwdWJsaWMgZGVwZW5kZW5jaWVzLlxuICpcbiAqIFRoZSBtZXRob2QgYC5jdXN0b21pemVSZWZlcmVuY2UoeyAuLi4gfSlgIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIHdvcmtzcGFjZSByZWZlcmVuY2Ugd2l0aFxuICogZGlmZmVyZW50IGJlaGF2aW9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElXb3Jrc3BhY2VSZWZlcmVuY2Uge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcmVmZXJlbmNlZCB3b3Jrc3BhY2UgcGFja2FnZSBpcyBwcml2YXRlXG4gICAqL1xuICByZWFkb25seSBpc1ByaXZhdGVQYWNrYWdlOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVwZW5kZW5jeSBuYW1lIG9mIHRoZSBwYWNrYWdlXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBzZW12ZXIgcmFuZ2UgdGhhdCBzaG91bGQgYmUgdXNlZCB0byByZWZlcmVuY2UgdGhpcyBwYWNrYWdlIHdoZW4gaXQgaXMgcmVsZWFzZWRcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25UeXBlOiBWZXJzaW9uVHlwZTtcblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB0aGF0IGhvbGRzIHRoaXMgcGFja2FnZSBpbiB0aGUgbW9ub3JlcG9cbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgVHlwZVNjcmlwdCB3b3Jrc3BhY2UgaW4gYSBgeWFybi5Nb25vcmVwb2BcbiAqL1xuZXhwb3J0IGNsYXNzIFR5cGVTY3JpcHRXb3Jrc3BhY2UgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0IGltcGxlbWVudHMgSVdvcmtzcGFjZVJlZmVyZW5jZSB7XG4gIHB1YmxpYyByZWFkb25seSB3b3Jrc3BhY2VEaXJlY3Rvcnk6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGJ1bmRsZWREZXBzOiBzdHJpbmdbXSA9IFtdO1xuICBwdWJsaWMgcmVhZG9ubHkgaXNQcml2YXRlUGFja2FnZTogYm9vbGVhbjtcbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb25UeXBlID0gJ2Z1dHVyZS1taW5vcic7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBtb25vcmVwbzogTW9ub3JlcG87XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogVHlwZVNjcmlwdFdvcmtzcGFjZU9wdGlvbnMpIHtcbiAgICBjb25zdCByZW1haW5kZXIgPSB3aXRob3V0KFxuICAgICAgb3B0aW9ucyxcbiAgICAgICdwYXJlbnQnLFxuICAgICAgJ25hbWUnLFxuICAgICAgJ2Rlc2NyaXB0aW9uJyxcbiAgICAgICdkZXBzJyxcbiAgICAgICdwZWVyRGVwcycsXG4gICAgICAnZGV2RGVwcycsXG4gICAgICAnZXhjbHVkZURlcHNGcm9tVXBncmFkZScsXG4gICAgICAncmVwb3NpdG9yeScsXG4gICAgICAnd29ya2Zsb3dOb2RlVmVyc2lvbicsXG4gICAgICAnYWxsb3dQcml2YXRlRGVwcycsXG4gICAgKTtcblxuICAgIGNvbnN0IHVzZUVzbGludCA9IHJlbWFpbmRlci5lc2xpbnQgPz8gdHJ1ZTtcbiAgICBjb25zdCB1c2VQcmV0dGllciA9IHJlbWFpbmRlci5wcmV0dGllciA/PyB0cnVlO1xuXG4gICAgY29uc3Qgd3NTY29wZSA9IHJlbWFpbmRlci53b3Jrc3BhY2VTY29wZSA/PyAncGFja2FnZXMnO1xuICAgIGNvbnN0IHdvcmtzcGFjZURpcmVjdG9yeSA9YCR7d3NTY29wZX0vJHtvcHRpb25zLm5hbWV9YDtcblxuICAgIGNvbnN0IG5wbUFjY2VzcyA9IG9wdGlvbnMucGFyZW50Lm1vbm9yZXBvUmVsZWFzZSAmJiAhb3B0aW9ucy5wcml2YXRlID8gamF2YXNjcmlwdC5OcG1BY2Nlc3MuUFVCTElDIDogdW5kZWZpbmVkO1xuXG4gICAgc3VwZXIoe1xuICAgICAgcGFyZW50OiBvcHRpb25zLnBhcmVudCxcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zLmRlc2NyaXB0aW9uLFxuICAgICAgcmVwb3NpdG9yeTogb3B0aW9ucy5yZXBvc2l0b3J5ID8/IG9wdGlvbnMucGFyZW50LnJlcG9zaXRvcnlVcmwsXG4gICAgICByZXBvc2l0b3J5RGlyZWN0b3J5OiB3b3Jrc3BhY2VEaXJlY3RvcnksXG4gICAgICBvdXRkaXI6IHdvcmtzcGFjZURpcmVjdG9yeSxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnUkVRVUlSRUQtQlVULVNIT1VMRC1OT1QtQkUnLFxuICAgICAgcmVsZWFzZTogZmFsc2UsXG4gICAgICBwYWNrYWdlOiAhb3B0aW9ucy5wcml2YXRlLFxuICAgICAgZXNsaW50OiB1c2VFc2xpbnQsXG4gICAgICBwcmV0dGllcjogdXNlUHJldHRpZXIsXG4gICAgICBwcmV0dGllck9wdGlvbnM6IHVzZVByZXR0aWVyXG4gICAgICAgID8ge1xuICAgICAgICAgIG92ZXJyaWRlczogb3B0aW9ucy5wYXJlbnQucHJldHRpZXI/Lm92ZXJyaWRlcyxcbiAgICAgICAgICBzZXR0aW5nczogb3B0aW9ucy5wYXJlbnQucHJldHRpZXI/LnNldHRpbmdzLFxuICAgICAgICAgIC4uLnJlbWFpbmRlci5wcmV0dGllck9wdGlvbnMsXG4gICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBlc2xpbnRPcHRpb25zOiB1c2VFc2xpbnRcbiAgICAgICAgPyB7XG4gICAgICAgICAgZGlyczogW3JlbWFpbmRlci5zcmNkaXIgPz8gJ3NyYyddLFxuICAgICAgICAgIGRldmRpcnM6IFtyZW1haW5kZXIudGVzdGRpciA/PyAndGVzdCcsICdidWlsZC10b29scyddLFxuICAgICAgICAgIC4uLnJlbWFpbmRlci5lc2xpbnRPcHRpb25zLFxuICAgICAgICAgIHByZXR0aWVyOiB1c2VQcmV0dGllcixcbiAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuXG4gICAgICBkZXBzOiBwYWNrYWdlTmFtZXMob3B0aW9ucy5kZXBzKSxcbiAgICAgIHBlZXJEZXBzOiBwYWNrYWdlTmFtZXMob3B0aW9ucy5wZWVyRGVwcyksXG4gICAgICBkZXZEZXBzOiBwYWNrYWdlTmFtZXMob3B0aW9ucy5kZXZEZXBzKSxcbiAgICAgIHByb2plbkRldkRlcGVuZGVuY3k6IHRydWUsXG5cbiAgICAgIGRlcHNVcGdyYWRlT3B0aW9uczoge1xuICAgICAgICBleGNsdWRlOiBbXG4gICAgICAgICAgLi4uKG9wdGlvbnMuZXhjbHVkZURlcHNGcm9tVXBncmFkZSA/PyBbXSksXG4gICAgICAgICAgLi4uKHBhY2thZ2VOYW1lcyhvcHRpb25zLmRlcHM/LmZpbHRlcihpc1dvcmtzcGFjZVJlZmVyZW5jZSkpID8/IFtdKSxcbiAgICAgICAgICAuLi4ocGFja2FnZU5hbWVzKG9wdGlvbnMucGVlckRlcHM/LmZpbHRlcihpc1dvcmtzcGFjZVJlZmVyZW5jZSkpID8/IFtdKSxcbiAgICAgICAgICAuLi4ocGFja2FnZU5hbWVzKG9wdGlvbnMuZGV2RGVwcz8uZmlsdGVyKGlzV29ya3NwYWNlUmVmZXJlbmNlKSkgPz8gW10pLFxuICAgICAgICBdLFxuICAgICAgfSxcblxuICAgICAgbnBtQWNjZXNzLFxuXG4gICAgICAvLyBEZXZpYXRpb24gZnJvbSB1cHN0cmVhbSBwcm9qZW46IHVwc3RyZWFtIHByb2plbiBkZWZhdWx0cyB0byBtaW5Ob2RlVmVyc2lvbiwgYnV0IHdlIGhhdmUgdG9vIG1hbnkgd29ya2Zsb3dzXG4gICAgICAvLyB0aGF0IHVzZSB0b29scyB0aGF0IHdhbnQgYSByZWNlbnQgTm9kZSB2ZXJzaW9uLCBzbyBkZWZhdWx0IHRvIGEgcmVhc29uYWJsZSBmbG9hdGluZyB2ZXJzaW9uLlxuICAgICAgd29ya2Zsb3dOb2RlVmVyc2lvbjogb3B0aW9ucy53b3JrZmxvd05vZGVWZXJzaW9uID8/ICdsdHMvKicsXG5cbiAgICAgIC4uLnJlbWFpbmRlcixcbiAgICB9KTtcblxuICAgIHRoaXMubW9ub3JlcG8gPSBvcHRpb25zLnBhcmVudDtcbiAgICB0aGlzLmlzUHJpdmF0ZVBhY2thZ2UgPSBvcHRpb25zLnByaXZhdGUgPz8gZmFsc2U7XG4gICAgdGhpcy53b3Jrc3BhY2VEaXJlY3RvcnkgPSB3b3Jrc3BhY2VEaXJlY3Rvcnk7XG5cbiAgICAvLyBJZiB0aGUgcGFja2FnZSBpcyBwdWJsaWMsIGFsbCBsb2NhbCBkZXBzIGFuZCBwZWVyIGRlcHMgbXVzdCBhbHNvIGJlIHB1YmxpYyBhbmQgb3RoZXIgVHlwZVNjcmlwdFdvcmtzcGFjZXNcbiAgICBpZiAoIXRoaXMuaXNQcml2YXRlUGFja2FnZSkge1xuICAgICAgY29uc3QgaWxsZWdhbERlcHMgPSBbXG4gICAgICAgIC8vIE92ZXJyaWRhYmxlIGZvciBkZXBzIGJlY2F1c2UgdGhpcyBtaWdodCBtYWtlIHNlbnNlIGlmIHdlIGJ1bmRsZSB0aGUgcGFja2FnZS5cbiAgICAgICAgLi4ub3B0aW9ucy5kZXBzPy5maWx0ZXIoaXNXb3Jrc3BhY2VSZWZlcmVuY2UpLmZpbHRlcih3ID0+IHcuaXNQcml2YXRlUGFja2FnZSAmJiAhb3B0aW9ucy5hbGxvd1ByaXZhdGVEZXBzKSA/PyBbXSxcbiAgICAgICAgLy8gQnV0IG5vdCBmb3IgcGVlckRlcHMsIHRoZXkgbXVzdCBhbHdheXMgYmUgaW5zdGFsbGVkIGJ5IHRoZSB1c2VyLlxuICAgICAgICAuLi5vcHRpb25zLnBlZXJEZXBzPy5maWx0ZXIoaXNXb3Jrc3BhY2VSZWZlcmVuY2UpLmZpbHRlcih3ID0+IHcuaXNQcml2YXRlUGFja2FnZSkgPz8gW10sXG4gICAgICAgIC8vIGRldkRlcHMgY2FuIGJlIHByaXZhdGUsIHdlIGRvbid0IGNhcmUuXG4gICAgICBdO1xuXG4gICAgICBpZiAoaWxsZWdhbERlcHMubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihbXG4gICAgICAgICAgYCR7dGhpcy5uYW1lfSBpcyBwdWJsaWMgYW5kIGNhbm5vdCBkZXBlbmQgb24gYW55IHByaXZhdGUgcGFja2FnZXMgZnJvbSB0aGUgd29ya3NwYWNlLmAsXG4gICAgICAgICAgYFBsZWFzZSBmaXggdGhlc2UgZGVwZW5kZW5jaWVzOlxcbiAgICAtICR7aWxsZWdhbERlcHMubWFwKChwKSA9PiBwLm5hbWUpLmpvaW4oJ1xcbiAgICAtICcpfWAsXG4gICAgICAgIF0uam9pbignXFxuJykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlZ2lzdGVyIHdpdGggcmVsZWFzZSB3b3JrZmxvd1xuICAgIHRoaXMubW9ub3JlcG8ubW9ub3JlcG9SZWxlYXNlPy5hZGRXb3Jrc3BhY2UodGhpcywge1xuICAgICAgcHJpdmF0ZTogdGhpcy5pc1ByaXZhdGVQYWNrYWdlLFxuICAgICAgd29ya2Zsb3dOb2RlVmVyc2lvbjogdGhpcy5ub2RlVmVyc2lvbixcbiAgICAgIG5wbURpc3RUYWc6IG9wdGlvbnMubnBtRGlzdFRhZyxcbiAgICAgIHJlbGVhc2FibGVDb21taXRzOiBvcHRpb25zLnJlbGVhc2FibGVDb21taXRzLFxuICAgICAgbmV4dFZlcnNpb25Db21tYW5kOiBvcHRpb25zLm5leHRWZXJzaW9uQ29tbWFuZCxcbiAgICAgIHZlcnNpb25CcmFuY2hPcHRpb25zOiB7XG4gICAgICAgIG1ham9yVmVyc2lvbjogb3B0aW9ucy5tYWpvclZlcnNpb24sXG4gICAgICAgIG1pbk1ham9yVmVyc2lvbjogb3B0aW9ucy5taW5NYWpvclZlcnNpb24sXG4gICAgICAgIHByZXJlbGVhc2U6IG9wdGlvbnMucHJlcmVsZWFzZSxcbiAgICAgIH0sXG4gICAgICByZXBvUnVudGltZURlcGVuZGVuY2llczogT2JqZWN0LmZyb21FbnRyaWVzKFtcbiAgICAgICAgLi4ub3B0aW9ucy5kZXBzID8/IFtdLFxuICAgICAgICAuLi5vcHRpb25zLnBlZXJEZXBzID8/IFtdLFxuICAgICAgXS5maWx0ZXIoaXNXb3Jrc3BhY2VSZWZlcmVuY2UpLm1hcCh3ID0+IFt3Lm5hbWUsIHcudmVyc2lvblR5cGVdKSksXG4gICAgfSk7XG5cbiAgICAvLyBqZXN0IGNvbmZpZ1xuICAgIGlmICh0aGlzLmplc3Q/LmNvbmZpZyAmJiB0aGlzLmplc3QuY29uZmlnLnByZXNldCA9PT0gJ3RzLWplc3QnKSB7XG4gICAgICBkZWxldGUgdGhpcy5qZXN0LmNvbmZpZy5nbG9iYWxzPy5bJ3RzLWplc3QnXTtcbiAgICAgIHRoaXMuamVzdC5jb25maWcudHJhbnNmb3JtID0ge1xuICAgICAgICAnXi4rXFxcXC50c3g/JCc6IFtcbiAgICAgICAgICAndHMtamVzdCcsXG4gICAgICAgICAge1xuICAgICAgICAgICAgdHNjb25maWc6IHRoaXMudHNjb25maWdEZXYuZmlsZU5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gVGFza3NcbiAgICB0aGlzLnRhc2tzLnRyeUZpbmQoJ2RlZmF1bHQnKT8ucmVzZXQoYGNkICR7cmVsYXRpdmUodGhpcy5vdXRkaXIsIG9wdGlvbnMucGFyZW50Lm91dGRpcil9ICYmIG5weCBwcm9qZW4gZGVmYXVsdGApO1xuICAgIHRoaXMudGFza3MucmVtb3ZlVGFzaygnY2xvYmJlcicpO1xuICAgIHRoaXMudGFza3MucmVtb3ZlVGFzaygnZWplY3QnKTtcblxuICAgIGNvbnN0IHVwZ3JhZGVzOiBhbnkgPSB0aGlzLmNvbXBvbmVudHMuZmluZChcbiAgICAgIChjOiBDb21wb25lbnQpOiBjIGlzIGphdmFzY3JpcHQuVXBncmFkZURlcGVuZGVuY2llcyA9PiBjIGluc3RhbmNlb2YgamF2YXNjcmlwdC5VcGdyYWRlRGVwZW5kZW5jaWVzLFxuICAgICk7XG4gICAgdGhpcy50YXNrcy5yZW1vdmVUYXNrKCd1cGdyYWRlJyk7XG4gICAgdGhpcy50YXNrcy5yZW1vdmVUYXNrKCdwb3N0LXVwZ3JhZGUnKTtcbiAgICB0aGlzLnRhc2tzLmFkZFRhc2soJ2NoZWNrLWZvci11cGRhdGVzJywge1xuICAgICAgZW52OiB7IENJOiAnMCcgfSxcbiAgICAgIHN0ZXBzOiB7XG4gICAgICAgIHRvSlNPTjogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHN0ZXBzID0gdXBncmFkZXMucmVuZGVyVGFza1N0ZXBzKCkgYXMgVGFza1N0ZXBbXTtcbiAgICAgICAgICByZXR1cm4gc3RlcHMuZmlsdGVyKFxuICAgICAgICAgICAgKHN0ZXApID0+IHN0ZXAuZXhlYyAmJiB0eXBlb2Ygc3RlcC5leGVjID09PSAnc3RyaW5nJyAmJiBzdGVwLmV4ZWM/LnN0YXJ0c1dpdGgoJ25weCBucG0tY2hlY2stdXBkYXRlcycpLFxuICAgICAgICAgICk7XG4gICAgICAgIH0sXG4gICAgICB9IGFzIGFueSxcbiAgICB9KTtcblxuICAgIC8vIENvbXBvc2l0ZSBwcm9qZWN0IGFuZCByZWZlcmVuY2VzXG4gICAgY29uc3QgYWxsRGVwcyA9IFsuLi4ob3B0aW9ucy5kZXBzID8/IFtdKSwgLi4uKG9wdGlvbnMucGVlckRlcHMgPz8gW10pLCAuLi4ob3B0aW9ucy5kZXZEZXBzID8/IFtdKV07XG5cbiAgICBmb3IgKGNvbnN0IHRzY29uZmlnIG9mIFt0aGlzLnRzY29uZmlnLCB0aGlzLnRzY29uZmlnRGV2XSkge1xuICAgICAgdHNjb25maWc/LmZpbGUuYWRkT3ZlcnJpZGUoJ2NvbXBpbGVyT3B0aW9ucy5jb21wb3NpdGUnLCB0cnVlKTtcbiAgICAgIHRzY29uZmlnPy5maWxlLmFkZE92ZXJyaWRlKFxuICAgICAgICAncmVmZXJlbmNlcycsXG4gICAgICAgIGFsbERlcHMuZmlsdGVyKGlzV29ya3NwYWNlUmVmZXJlbmNlKS5tYXAoKHApID0+ICh7IHBhdGg6IHJlbGF0aXZlKHRoaXMub3V0ZGlyLCBwLm91dGRpcikgfSkpLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBBbGxvdyBwYXNzaW5nIGFkZGl0aW9uYWwgYXJncyBsaWtlIGAtLWZvcmNlYCB0byB0aGUgY29tcGlsZSB0YXNrXG4gICAgLy8gTmVlZGVkIGJlY2F1c2Ugd2UgdXNlIGNvbXBvc2l0ZSBwcm9qZWN0cyB0aGF0IG9mdGVuIG5lZWQgYSB0c2MgLS1idWlsZCAtLWZvcmNlXG4gICAgdGhpcy50YXNrcy50cnlGaW5kKCdjb21waWxlJyk/LnJlc2V0KCd0c2MgLS1idWlsZCcsIHtcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gSW5zdGFsbCBkZXBlbmRlbmNpZXMgdmlhIHRoZSBwYXJlbnQgcHJvamVjdFxuICAgIC8qIEB0cy1pZ25vcmUgYWNjZXNzIHByaXZhdGUgbWV0aG9kICovXG4gICAgY29uc3Qgb3JpZ2luYWxSZXNvbHZlID0gdGhpcy5wYWNrYWdlLnJlc29sdmVEZXBzQW5kV3JpdGVQYWNrYWdlSnNvbjtcbiAgICAvKiBAdHMtaWdub3JlIGFjY2VzcyBwcml2YXRlIG1ldGhvZCAqL1xuICAgIHRoaXMucGFja2FnZS5pbnN0YWxsRGVwZW5kZW5jaWVzID0gKCkgPT4ge1xuICAgICAgb3B0aW9ucy5wYXJlbnQucmVxdWVzdEluc3RhbGxEZXBlbmRlbmNpZXMoeyByZXNvbHZlRGVwc0FuZFdyaXRlUGFja2FnZUpzb246ICgpID0+IG9yaWdpbmFsUmVzb2x2ZS5hcHBseSh0aGlzLnBhY2thZ2UpIH0pO1xuICAgIH07XG4gICAgLyogQHRzLWlnbm9yZSBhY2Nlc3MgcHJpdmF0ZSBtZXRob2QgKi9cbiAgICB0aGlzLnBhY2thZ2UucmVzb2x2ZURlcHNBbmRXcml0ZVBhY2thZ2VKc29uID0gKCkgPT4ge307XG5cbiAgICAvLyBQcml2YXRlIHBhY2thZ2VcbiAgICBpZiAob3B0aW9ucy5wcml2YXRlKSB7XG4gICAgICB0aGlzLnBhY2thZ2UuYWRkRmllbGQoJ3ByaXZhdGUnLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBGaXhlc1xuICAgIHRoaXMuYWRkVHNjb25maWdEZXZGaXgoKTtcbiAgICB0aGlzLmFkZEVzbGludFJjRml4KCk7XG5cbiAgICB0aGlzLmJ1bmRsZWREZXBzLnB1c2goLi4ub3B0aW9ucy5idW5kbGVkRGVwcyA/PyBbXSk7XG5cbiAgICAvLyBJbmRpdmlkdWFsIHdvcmtzcGFjZSBwYWNrYWdlcyBzaG91bGRuJ3QgZGVwZW5kIG9uIFwicHJvamVuXCIsIGl0IGdldHMgYnJvdWdodCBpbiBhdCB0aGUgbW9ub3JlcG8gcm9vdFxuICAgIHRoaXMuZGVwcy5yZW1vdmVEZXBlbmRlbmN5KCdwcm9qZW4nKTtcblxuICAgIG9wdGlvbnMucGFyZW50LnJlZ2lzdGVyKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEkgZG9uJ3Qga25vdyB3aHkgYHRzY29uZmlnLmRldi5qc29uYCBkb2Vzbid0IGhhdmUgYW4gb3V0ZGlyLCBvciB3aGVyZSBpdCdzIHVzZWQsXG4gICAqIGJ1dCBpdCdzIGNhdXNpbmcgaW4tcGxhY2UgYC5qc2AgZmlsZXMgdG8gYXBwZWFyLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFkZFRzY29uZmlnRGV2Rml4ICgpIHtcbiAgICB0aGlzLnRzY29uZmlnRGV2LmZpbGUuYWRkT3ZlcnJpZGUoJ2NvbXBpbGVyT3B0aW9ucy5vdXREaXInLCAnbGliJyk7XG4gIH1cblxuICAvKipcbiAgICogTmVlZCB0byBoYWNrIEVTTGludCBjb25maWdcbiAgICpcbiAgICogLmVzbGludHJjLmpzIHdpbGwgdGFrZSBwcmVjZWRlbmNlIG92ZXIgdGhlIEpTT04gZmlsZSwgaXQgd2lsbCBsb2FkIHRoZVxuICAgKiBKU09OIGZpbGUgYW5kIHBhdGNoIGl0IHdpdGggYSBkeW5hbWljIGRpcmVjdG9yeSBuYW1lIHRoYXQgY2Fubm90IGJlIHJlcHJlc2VudGVkIGluXG4gICAqIHBsYWluIEpTT04gKHNlZSBodHRwczovL2dpdGh1Yi5jb20vcHJvamVuL3Byb2plbi9pc3N1ZXMvMjQwNSkuXG4gICAqXG4gICAqIFNpbmNlIGVzbGludCBjb25maWcgaXMgbG9hZGVkIHdpdGggZGlmZmVyZW50IGN3ZCdzIGRlcGVuZGluZyBvbiB3aGV0aGVyIGl0J3NcbiAgICogZnJvbSB0aGUgVlNDb2RlIHBsdWdpbiBvciBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIHVzZSBhYnNvbHV0ZSBwYXRocyBldmVyeXdoZXJlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFkZEVzbGludFJjRml4KCkge1xuICAgIGNvbnN0IGVzbGludFJjID0gbmV3IFNvdXJjZUNvZGUodGhpcywgJy5lc2xpbnRyYy5qcycpO1xuICAgIGVzbGludFJjLmxpbmUoJ3ZhciBwYXRoID0gcmVxdWlyZShcXCdwYXRoXFwnKTsnKTtcbiAgICBlc2xpbnRSYy5saW5lKCd2YXIgZnMgPSByZXF1aXJlKFxcJ2ZzXFwnKTsnKTtcbiAgICBlc2xpbnRSYy5saW5lKCd2YXIgY29udGVudHMgPSBmcy5yZWFkRmlsZVN5bmMoYCR7X19kaXJuYW1lfS8uZXNsaW50cmMuanNvbmAsIHsgZW5jb2Rpbmc6IFxcJ3V0Zi04XFwnIH0pOycpO1xuICAgIGVzbGludFJjLmxpbmUoJy8vIFN0cmlwIGNvbW1lbnRzLCBKU09OLnBhcnNlKCkgZG9lc25cXCd0IGxpa2UgdGhvc2UnKTtcbiAgICBlc2xpbnRSYy5saW5lKCdjb250ZW50cyA9IGNvbnRlbnRzLnJlcGxhY2UoL15cXFxcL1xcXFwvLiokL20sIFxcJ1xcJyk7Jyk7XG4gICAgZXNsaW50UmMubGluZSgndmFyIGpzb24gPSBKU09OLnBhcnNlKGNvbnRlbnRzKTsnKTtcbiAgICBlc2xpbnRSYy5saW5lKCcvLyBQYXRjaCB0aGUgLmpzb24gY29uZmlnIHdpdGggc29tZXRoaW5nIHRoYXQgY2FuIG9ubHkgYmUgcmVwcmVzZW50ZWQgaW4gSlMnKTtcbiAgICBlc2xpbnRSYy5saW5lKCdqc29uLnBhcnNlck9wdGlvbnMudHNjb25maWdSb290RGlyID0gX19kaXJuYW1lOycpO1xuICAgIGVzbGludFJjLmxpbmUoJ21vZHVsZS5leHBvcnRzID0ganNvbjsnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIFByb2plY3RzIGluIHRoZSB3b3Jrc3BhY2UgdGhhdCBhcmUgYWxzbyBkZXBlbmRlbmNpZXMuXG4gICAqXG4gICAqIE9wdGlvbmFsbHkgZmlsdGVyIGJ5IGRlcGVuZGVuY3kgdHlwZS5cbiAgICovXG4gIHB1YmxpYyB3b3Jrc3BhY2VEZXBlbmRlbmNpZXModHlwZXM/OiBEZXBlbmRlbmN5VHlwZVtdKTogUHJvamVjdFtdIHtcbiAgICByZXR1cm4gdGhpcy5tb25vcmVwby5zdWJwcm9qZWN0cy5maWx0ZXIoKHNpYmxpbmcpID0+XG4gICAgICB0aGlzLmRlcHMuYWxsLnNvbWUoKGQpID0+IGQubmFtZSA9PT0gc2libGluZy5uYW1lICYmICghdHlwZXMgfHwgdHlwZXMuaW5jbHVkZXMoZC50eXBlKSkpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgc3BlY2lhbGl6ZWQgcmVmZXJlbmNlIHRvIHRoaXMgd29ya3NwYWNlXG4gICAqL1xuICBwdWJsaWMgY3VzdG9taXplUmVmZXJlbmNlKHJlZk9wdHM/OiBSZWZlcmVuY2VPcHRpb25zKTogSVdvcmtzcGFjZVJlZmVyZW5jZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgIG91dGRpcjogdGhpcy5vdXRkaXIsXG4gICAgICBpc1ByaXZhdGVQYWNrYWdlOiB0aGlzLmlzUHJpdmF0ZVBhY2thZ2UsXG4gICAgICB2ZXJzaW9uVHlwZTogcmVmT3B0cz8udmVyc2lvblR5cGUgPz8gdGhpcy52ZXJzaW9uVHlwZSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGB3b3Jrc3BhY2UuY3VzdG9taXplUmVmZXJlbmNlKClgIG1ldGhvZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZmVyZW5jZU9wdGlvbnMge1xuICAvKipcbiAgICogV2hhdCB0eXBlIG9mIGRlcGVuZGVuY3kgdG8gdGFrZSBvbiB0aGlzIHBhY2thZ2VcbiAgICpcbiAgICogQnkgZGVmYXVsdCwgZGVwZW5kZW5jaWVzIHdpbGwgYmUgcmVmZXJlbmNlZCB3aXRoIGEgYF5gLCB3aGljaCBtZWFucyB0aGF0XG4gICAqIGNvbWUgaW5zdGFsbCB0aW1lIGEgbmV3ZXIgdmVyc2lvbiBtYXkgYmUgaW5zdGFsbGVkLlxuICAgKlxuICAgKiBDaG9vc2UgYSBkaWZmZXJlbnQgcmFuZ2UgdHlwZSB0byB0YWtlLCBmb3IgZXhhbXBsZSwgYW4gYGV4YWN0YCBkZXBlbmRlbmN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnZnV0dXJlLW1pbm9yJ1xuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvblR5cGU/OiBWZXJzaW9uVHlwZTtcbn1cblxuZnVuY3Rpb24gcGFja2FnZU5hbWVzKHhzPzogQXJyYXk8c3RyaW5nIHwgSVdvcmtzcGFjZVJlZmVyZW5jZT4pOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gIGlmICgheHMpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiB4cy5tYXAoKHgpID0+ICh0eXBlb2YgeCA9PT0gJ3N0cmluZycgPyB4IDogeC5uYW1lKSk7XG59XG5cbmZ1bmN0aW9uIHdpdGhvdXQ8QSBleHRlbmRzIG9iamVjdCwgSyBleHRlbmRzIGtleW9mIEE+KHg6IEEsIC4uLmtzOiBLW10pOiBPbWl0PEEsIEs+IHtcbiAgY29uc3QgcmV0ID0geyAuLi54IH07XG4gIGZvciAoY29uc3QgayBvZiBrcykge1xuICAgIGRlbGV0ZSByZXRba107XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gaXNXb3Jrc3BhY2VSZWZlcmVuY2UoeDogdW5rbm93bik6IHggaXMgSVdvcmtzcGFjZVJlZmVyZW5jZSB7XG4gIHJldHVybiB0eXBlb2YgeCA9PT0gJ29iamVjdCcgJiYgISF4ICYmIChbJ2lzUHJpdmF0ZVBhY2thZ2UnLCAndmVyc2lvblR5cGUnLCAnbmFtZScsICdvdXRkaXInXSBzYXRpc2ZpZXMgQXJyYXk8a2V5b2YgSVdvcmtzcGFjZVJlZmVyZW5jZT4pLmV2ZXJ5KGsgPT4gKHggYXMgYW55KVtrXSAhPT0gdW5kZWZpbmVkKTtcbn1cbiJdfQ==
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveWFybi90eXBlc2NyaXB0LXdvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLCtCQUFnQztBQUNoQyxtQ0FBMEc7QUFtRDFHOztHQUVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxtQkFBVSxDQUFDLGlCQUFpQjtJQVFuRSxZQUFZLE9BQW1DO1FBQzdDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FDdkIsT0FBTyxFQUNQLFFBQVEsRUFDUixNQUFNLEVBQ04sYUFBYSxFQUNiLE1BQU0sRUFDTixVQUFVLEVBQ1YsU0FBUyxFQUNULHdCQUF3QixFQUN4QixZQUFZLEVBQ1oscUJBQXFCLEVBQ3JCLGtCQUFrQixDQUNuQixDQUFDO1FBRUYsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUM7UUFDM0MsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUM7UUFFL0MsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLGNBQWMsSUFBSSxVQUFVLENBQUM7UUFDdkQsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFeEQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxlQUFlLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxtQkFBVSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUUvRyxLQUFLLENBQUM7WUFDSixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07WUFDdEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztZQUNoQyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMs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Q0FBQyxDQUFDO0FBQ3BMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IHJlbGF0aXZlIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIGphdmFzY3JpcHQsIHR5cGVzY3JpcHQsIFRhc2tTdGVwLCBTb3VyY2VDb2RlLCBEZXBlbmRlbmN5VHlwZSwgUHJvamVjdCB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBNb25vcmVwbyB9IGZyb20gJy4vbW9ub3JlcG8nO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFdvcmtzcGFjZU9wdGlvbnMgfSBmcm9tICcuL3R5cGVzY3JpcHQtd29ya3NwYWNlLW9wdGlvbnMnO1xuXG4vKipcbiAqIFdoYXQga2luZCBvZiBzZW12ZXIgZGVwZW5kZW5jeSB0byB0YWtlXG4gKlxuICogLSAnYW55LW1pbm9yJyBjb3JyZXNwb25kcyB0byAnXjEnXG4gKiAtICdmdXR1cmUtbWlub3InIGNvcnJlc3BvbmRzIHRvICdeMS4yLjMnXG4gKiAtICdhbnktcGF0Y2gnIHRvICd+MS4yJ1xuICogLSAnZnV0dXJlLXBhdGNoJyBjb3JyZXNwb25kcyB0byAnfjEuMi4zJ1xuICogLSAnZXhhY3QnIGNvcnJlc3BvbmRzIHRvICcxLjIuMydcbiAqIC0gJ2FueS1mdXR1cmUnIGNvcnJlc3BvbmRzIHRvICc+PTEuMi4zJ1xuICogLSAnYW55JyBjb3JyZXNwb25kcyB0byAnKidcbiAqL1xuZXhwb3J0IHR5cGUgVmVyc2lvblR5cGUgPSAnYW55LW1pbm9yJyB8ICdmdXR1cmUtbWlub3InIHwgJ2FueS1wYXRjaCcgfCAnZnV0dXJlLXBhdGNoJyB8ICdleGFjdCcgfCAnYW55LWZ1dHVyZScgfCAnYW55JztcblxuLyoqXG4gKiBBIHJlZmVyZW5jZSB0byBhIHdvcmtzcGFjZSBpbiB0aGUgc2FtZSBtb25vcmVwb1xuICpcbiAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gcmVmZXJlbmNlIHBhY2thZ2VzIGluIHRoZSBzYW1lIG1vbm9yZXBvIHdoZW4gZGVjbGFyaW5nXG4gKiBgZGVwc2AgYW5kIGBkZXZEZXBzYC5cbiAqXG4gKiBCeSBkZWZhdWx0LCBhbGwgYFR5cGVTY3JpcHRXb3Jrc3BhY2VgcyBpbXBsZW1lbnQgdGhpcyBpbnRlcmZhY2UsIHJlcHJlc2VudGluZyB0aGVtc2VsdmVzXG4gKiB3aXRoIGEgYF5gIGRlcGVuZGVuY3kgYW5kIGEgcmVzdHJpY3Rpb24gdGhhdCBwdWJsaWMgcGFja2FnZXMgbXVzdCBoYXZlIHB1YmxpYyBkZXBlbmRlbmNpZXMuXG4gKlxuICogVGhlIG1ldGhvZCBgLmN1c3RvbWl6ZVJlZmVyZW5jZSh7IC4uLiB9KWAgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgd29ya3NwYWNlIHJlZmVyZW5jZSB3aXRoXG4gKiBkaWZmZXJlbnQgYmVoYXZpb3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVdvcmtzcGFjZVJlZmVyZW5jZSB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSByZWZlcmVuY2VkIHdvcmtzcGFjZSBwYWNrYWdlIGlzIHByaXZhdGVcbiAgICovXG4gIHJlYWRvbmx5IGlzUHJpdmF0ZVBhY2thZ2U6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBkZXBlbmRlbmN5IG5hbWUgb2YgdGhlIHBhY2thZ2VcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNlbXZlciByYW5nZSB0aGF0IHNob3VsZCBiZSB1c2VkIHRvIHJlZmVyZW5jZSB0aGlzIHBhY2thZ2Ugd2hlbiBpdCBpcyByZWxlYXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgdmVyc2lvblR5cGU6IFZlcnNpb25UeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHRoYXQgaG9sZHMgdGhpcyBwYWNrYWdlIGluIHRoZSBtb25vcmVwb1xuICAgKi9cbiAgcmVhZG9ubHkgb3V0ZGlyOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBUeXBlU2NyaXB0IHdvcmtzcGFjZSBpbiBhIGB5YXJuLk1vbm9yZXBvYFxuICovXG5leHBvcnQgY2xhc3MgVHlwZVNjcmlwdFdvcmtzcGFjZSBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3QgaW1wbGVtZW50cyBJV29ya3NwYWNlUmVmZXJlbmNlIHtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZURpcmVjdG9yeTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgYnVuZGxlZERlcHM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyByZWFkb25seSBpc1ByaXZhdGVQYWNrYWdlOiBib29sZWFuO1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvblR5cGUgPSAnZnV0dXJlLW1pbm9yJztcblxuICBwcml2YXRlIHJlYWRvbmx5IG1vbm9yZXBvOiBNb25vcmVwbztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBUeXBlU2NyaXB0V29ya3NwYWNlT3B0aW9ucykge1xuICAgIGNvbnN0IHJlbWFpbmRlciA9IHdpdGhvdXQoXG4gICAgICBvcHRpb25zLFxuICAgICAgJ3BhcmVudCcsXG4gICAgICAnbmFtZScsXG4gICAgICAnZGVzY3JpcHRpb24nLFxuICAgICAgJ2RlcHMnLFxuICAgICAgJ3BlZXJEZXBzJyxcbiAgICAgICdkZXZEZXBzJyxcbiAgICAgICdleGNsdWRlRGVwc0Zyb21VcGdyYWRlJyxcbiAgICAgICdyZXBvc2l0b3J5JyxcbiAgICAgICd3b3JrZmxvd05vZGVWZXJzaW9uJyxcbiAgICAgICdhbGxvd1ByaXZhdGVEZXBzJyxcbiAgICApO1xuXG4gICAgY29uc3QgdXNlRXNsaW50ID0gcmVtYWluZGVyLmVzbGludCA/PyB0cnVlO1xuICAgIGNvbnN0IHVzZVByZXR0aWVyID0gcmVtYWluZGVyLnByZXR0aWVyID8/IHRydWU7XG5cbiAgICBjb25zdCB3c1Njb3BlID0gcmVtYWluZGVyLndvcmtzcGFjZVNjb3BlID8/ICdwYWNrYWdlcyc7XG4gICAgY29uc3Qgd29ya3NwYWNlRGlyZWN0b3J5ID0gYCR7d3NTY29wZX0vJHtvcHRpb25zLm5hbWV9YDtcblxuICAgIGNvbnN0IG5wbUFjY2VzcyA9IG9wdGlvbnMucGFyZW50Lm1vbm9yZXBvUmVsZWFzZSAmJiAhb3B0aW9ucy5wcml2YXRlID8gamF2YXNjcmlwdC5OcG1BY2Nlc3MuUFVCTElDIDogdW5kZWZpbmVkO1xuXG4gICAgc3VwZXIoe1xuICAgICAgcGFyZW50OiBvcHRpb25zLnBhcmVudCxcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zLmRlc2NyaXB0aW9uLFxuICAgICAgcmVwb3NpdG9yeTogb3B0aW9ucy5yZXBvc2l0b3J5ID8/IG9wdGlvbnMucGFyZW50LnJlcG9zaXRvcnlVcmwsXG4gICAgICByZXBvc2l0b3J5RGlyZWN0b3J5OiB3b3Jrc3BhY2VEaXJlY3RvcnksXG4gICAgICBvdXRkaXI6IHdvcmtzcGFjZURpcmVjdG9yeSxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnUkVRVUlSRUQtQlVULVNIT1VMRC1OT1QtQkUnLFxuICAgICAgcmVsZWFzZTogZmFsc2UsXG4gICAgICBwYWNrYWdlOiAhb3B0aW9ucy5wcml2YXRlLFxuICAgICAgZXNsaW50OiB1c2VFc2xpbnQsXG4gICAgICBwcmV0dGllcjogdXNlUHJldHRpZXIsXG4gICAgICBwcmV0dGllck9wdGlvbnM6IHVzZVByZXR0aWVyXG4gICAgICAgID8ge1xuICAgICAgICAgIG92ZXJyaWRlczogb3B0aW9ucy5wYXJlbnQucHJldHRpZXI/Lm92ZXJyaWRlcyxcbiAgICAgICAgICBzZXR0aW5nczogb3B0aW9ucy5wYXJlbnQucHJldHRpZXI/LnNldHRpbmdzLFxuICAgICAgICAgIC4uLnJlbWFpbmRlci5wcmV0dGllck9wdGlvbnMsXG4gICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBlc2xpbnRPcHRpb25zOiB1c2VFc2xpbnRcbiAgICAgICAgPyB7XG4gICAgICAgICAgZGlyczogW3JlbWFpbmRlci5zcmNkaXIgPz8gJ3NyYyddLFxuICAgICAgICAgIGRldmRpcnM6IFtyZW1haW5kZXIudGVzdGRpciA/PyAndGVzdCcsICdidWlsZC10b29scyddLFxuICAgICAgICAgIC4uLnJlbWFpbmRlci5lc2xpbnRPcHRpb25zLFxuICAgICAgICAgIHByZXR0aWVyOiB1c2VQcmV0dGllcixcbiAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHNhbXBsZUNvZGU6IGZhbHNlLFxuXG4gICAgICBkZXBzOiBwYWNrYWdlTmFtZXMob3B0aW9ucy5kZXBzKSxcbiAgICAgIHBlZXJEZXBzOiBwYWNrYWdlTmFtZXMob3B0aW9ucy5wZWVyRGVwcyksXG4gICAgICBkZXZEZXBzOiBwYWNrYWdlTmFtZXMob3B0aW9ucy5kZXZEZXBzKSxcbiAgICAgIHByb2plbkRldkRlcGVuZGVuY3k6IHRydWUsXG5cbiAgICAgIGRlcHNVcGdyYWRlT3B0aW9uczoge1xuICAgICAgICBleGNsdWRlOiBbXG4gICAgICAgICAgLi4uKG9wdGlvbnMuZXhjbHVkZURlcHNGcm9tVXBncmFkZSA/PyBbXSksXG4gICAgICAgICAgLi4uKHBhY2thZ2VOYW1lcyhvcHRpb25zLmRlcHM/LmZpbHRlcihpc1dvcmtzcGFjZVJlZmVyZW5jZSkpID8/IFtdKSxcbiAgICAgICAgICAuLi4ocGFja2FnZU5hbWVzKG9wdGlvbnMucGVlckRlcHM/LmZpbHRlcihpc1dvcmtzcGFjZVJlZmVyZW5jZSkpID8/IFtdKSxcbiAgICAgICAgICAuLi4ocGFja2FnZU5hbWVzKG9wdGlvbnMuZGV2RGVwcz8uZmlsdGVyKGlzV29ya3NwYWNlUmVmZXJlbmNlKSkgPz8gW10pLFxuICAgICAgICBdLFxuICAgICAgfSxcblxuICAgICAgbnBtQWNjZXNzLFxuXG4gICAgICAvLyBEZXZpYXRpb24gZnJvbSB1cHN0cmVhbSBwcm9qZW46IHVwc3RyZWFtIHByb2plbiBkZWZhdWx0cyB0byBtaW5Ob2RlVmVyc2lvbiwgYnV0IHdlIGhhdmUgdG9vIG1hbnkgd29ya2Zsb3dzXG4gICAgICAvLyB0aGF0IHVzZSB0b29scyB0aGF0IHdhbnQgYSByZWNlbnQgTm9kZSB2ZXJzaW9uLCBzbyBkZWZhdWx0IHRvIGEgcmVhc29uYWJsZSBmbG9hdGluZyB2ZXJzaW9uLlxuICAgICAgd29ya2Zsb3dOb2RlVmVyc2lvbjogb3B0aW9ucy53b3JrZmxvd05vZGVWZXJzaW9uID8/ICdsdHMvKicsXG5cbiAgICAgIC4uLnJlbWFpbmRlcixcbiAgICB9KTtcblxuICAgIHRoaXMubW9ub3JlcG8gPSBvcHRpb25zLnBhcmVudDtcbiAgICB0aGlzLmlzUHJpdmF0ZVBhY2thZ2UgPSBvcHRpb25zLnByaXZhdGUgPz8gZmFsc2U7XG4gICAgdGhpcy53b3Jrc3BhY2VEaXJlY3RvcnkgPSB3b3Jrc3BhY2VEaXJlY3Rvcnk7XG5cbiAgICAvLyBJZiB0aGUgcGFja2FnZSBpcyBwdWJsaWMsIGFsbCBsb2NhbCBkZXBzIGFuZCBwZWVyIGRlcHMgbXVzdCBhbHNvIGJlIHB1YmxpYyBhbmQgb3RoZXIgVHlwZVNjcmlwdFdvcmtzcGFjZXNcbiAgICBpZiAoIXRoaXMuaXNQcml2YXRlUGFja2FnZSkge1xuICAgICAgY29uc3QgaWxsZWdhbERlcHMgPSBbXG4gICAgICAgIC8vIE92ZXJyaWRhYmxlIGZvciBkZXBzIGJlY2F1c2UgdGhpcyBtaWdodCBtYWtlIHNlbnNlIGlmIHdlIGJ1bmRsZSB0aGUgcGFja2FnZS5cbiAgICAgICAgLi4ub3B0aW9ucy5kZXBzPy5maWx0ZXIoaXNXb3Jrc3BhY2VSZWZlcmVuY2UpLmZpbHRlcih3ID0+IHcuaXNQcml2YXRlUGFja2FnZSAmJiAhb3B0aW9ucy5hbGxvd1ByaXZhdGVEZXBzKSA/PyBbXSxcbiAgICAgICAgLy8gQnV0IG5vdCBmb3IgcGVlckRlcHMsIHRoZXkgbXVzdCBhbHdheXMgYmUgaW5zdGFsbGVkIGJ5IHRoZSB1c2VyLlxuICAgICAgICAuLi5vcHRpb25zLnBlZXJEZXBzPy5maWx0ZXIoaXNXb3Jrc3BhY2VSZWZlcmVuY2UpLmZpbHRlcih3ID0+IHcuaXNQcml2YXRlUGFja2FnZSkgPz8gW10sXG4gICAgICAgIC8vIGRldkRlcHMgY2FuIGJlIHByaXZhdGUsIHdlIGRvbid0IGNhcmUuXG4gICAgICBdO1xuXG4gICAgICBpZiAoaWxsZWdhbERlcHMubGVuZ3RoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihbXG4gICAgICAgICAgYCR7dGhpcy5uYW1lfSBpcyBwdWJsaWMgYW5kIGNhbm5vdCBkZXBlbmQgb24gYW55IHByaXZhdGUgcGFja2FnZXMgZnJvbSB0aGUgd29ya3NwYWNlLmAsXG4gICAgICAgICAgYFBsZWFzZSBmaXggdGhlc2UgZGVwZW5kZW5jaWVzOlxcbiAgICAtICR7aWxsZWdhbERlcHMubWFwKChwKSA9PiBwLm5hbWUpLmpvaW4oJ1xcbiAgICAtICcpfWAsXG4gICAgICAgIF0uam9pbignXFxuJykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlZ2lzdGVyIHdpdGggcmVsZWFzZSB3b3JrZmxvd1xuICAgIHRoaXMubW9ub3JlcG8ubW9ub3JlcG9SZWxlYXNlPy5hZGRXb3Jrc3BhY2UodGhpcywge1xuICAgICAgcHJpdmF0ZTogdGhpcy5pc1ByaXZhdGVQYWNrYWdlLFxuICAgICAgd29ya2Zsb3dOb2RlVmVyc2lvbjogdGhpcy5ub2RlVmVyc2lvbixcbiAgICAgIG5wbURpc3RUYWc6IG9wdGlvbnMubnBtRGlzdFRhZyxcbiAgICAgIG5wbVRydXN0ZWRQdWJsaXNoaW5nOiBvcHRpb25zLm5wbVRydXN0ZWRQdWJsaXNoaW5nLFxuICAgICAgZW52aXJvbm1lbnQ6IG9wdGlvbnMucmVsZWFzZUVudmlyb25tZW50LFxuICAgICAgcmVsZWFzYWJsZUNvbW1pdHM6IG9wdGlvbnMucmVsZWFzYWJsZUNvbW1pdHMsXG4gICAgICBuZXh0VmVyc2lvbkNvbW1hbmQ6IG9wdGlvbnMubmV4dFZlcnNpb25Db21tYW5kLFxuICAgICAgdmVyc2lvbkJyYW5jaE9wdGlvbnM6IHtcbiAgICAgICAgbWFqb3JWZXJzaW9uOiBvcHRpb25zLm1ham9yVmVyc2lvbixcbiAgICAgICAgbWluTWFqb3JWZXJzaW9uOiBvcHRpb25zLm1pbk1ham9yVmVyc2lvbixcbiAgICAgICAgcHJlcmVsZWFzZTogb3B0aW9ucy5wcmVyZWxlYXNlLFxuICAgICAgfSxcbiAgICAgIHJlcG9SdW50aW1lRGVwZW5kZW5jaWVzOiBPYmplY3QuZnJvbUVudHJpZXMoW1xuICAgICAgICAuLi5vcHRpb25zLmRlcHMgPz8gW10sXG4gICAgICAgIC4uLm9wdGlvbnMucGVlckRlcHMgPz8gW10sXG4gICAgICBdLmZpbHRlcihpc1dvcmtzcGFjZVJlZmVyZW5jZSkubWFwKHcgPT4gW3cubmFtZSwgdy52ZXJzaW9uVHlwZV0pKSxcbiAgICB9KTtcblxuICAgIC8vIGplc3QgY29uZmlnXG4gICAgaWYgKHRoaXMuamVzdD8uY29uZmlnICYmIHRoaXMuamVzdC5jb25maWcucHJlc2V0ID09PSAndHMtamVzdCcpIHtcbiAgICAgIGRlbGV0ZSB0aGlzLmplc3QuY29uZmlnLmdsb2JhbHM/LlsndHMtamVzdCddO1xuICAgICAgdGhpcy5qZXN0LmNvbmZpZy50cmFuc2Zvcm0gPSB7XG4gICAgICAgICdeLitcXFxcLnRzeD8kJzogW1xuICAgICAgICAgICd0cy1qZXN0JyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0c2NvbmZpZzogdGhpcy50c2NvbmZpZ0Rldi5maWxlTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBUYXNrc1xuICAgIHRoaXMudGFza3MudHJ5RmluZCgnZGVmYXVsdCcpPy5yZXNldChgY2QgJHtyZWxhdGl2ZSh0aGlzLm91dGRpciwgb3B0aW9ucy5wYXJlbnQub3V0ZGlyKX0gJiYgbnB4IHByb2plbiBkZWZhdWx0YCk7XG4gICAgdGhpcy50YXNrcy5yZW1vdmVUYXNrKCdjbG9iYmVyJyk7XG4gICAgdGhpcy50YXNrcy5yZW1vdmVUYXNrKCdlamVjdCcpO1xuXG4gICAgY29uc3QgdXBncmFkZXM6IGFueSA9IHRoaXMuY29tcG9uZW50cy5maW5kKFxuICAgICAgKGM6IENvbXBvbmVudCk6IGMgaXMgamF2YXNjcmlwdC5VcGdyYWRlRGVwZW5kZW5jaWVzID0+IGMgaW5zdGFuY2VvZiBqYXZhc2NyaXB0LlVwZ3JhZGVEZXBlbmRlbmNpZXMsXG4gICAgKTtcbiAgICB0aGlzLnRhc2tzLnJlbW92ZVRhc2soJ3VwZ3JhZGUnKTtcbiAgICB0aGlzLnRhc2tzLnJlbW92ZVRhc2soJ3Bvc3QtdXBncmFkZScpO1xuICAgIHRoaXMudGFza3MuYWRkVGFzaygnY2hlY2stZm9yLXVwZGF0ZXMnLCB7XG4gICAgICBlbnY6IHsgQ0k6ICcwJyB9LFxuICAgICAgc3RlcHM6IHtcbiAgICAgICAgdG9KU09OOiAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3RlcHMgPSB1cGdyYWRlcy5yZW5kZXJUYXNrU3RlcHMoKSBhcyBUYXNrU3RlcFtdO1xuICAgICAgICAgIHJldHVybiBzdGVwcy5maWx0ZXIoXG4gICAgICAgICAgICAoc3RlcCkgPT4gc3RlcC5leGVjICYmIHR5cGVvZiBzdGVwLmV4ZWMgPT09ICdzdHJpbmcnICYmIHN0ZXAuZXhlYz8uc3RhcnRzV2l0aCgnbnB4IG5wbS1jaGVjay11cGRhdGVzJyksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgYW55LFxuICAgIH0pO1xuXG4gICAgLy8gQ29tcG9zaXRlIHByb2plY3QgYW5kIHJlZmVyZW5jZXNcbiAgICBjb25zdCBhbGxEZXBzID0gWy4uLihvcHRpb25zLmRlcHMgPz8gW10pLCAuLi4ob3B0aW9ucy5wZWVyRGVwcyA/PyBbXSksIC4uLihvcHRpb25zLmRldkRlcHMgPz8gW10pXTtcblxuICAgIGZvciAoY29uc3QgdHNjb25maWcgb2YgW3RoaXMudHNjb25maWcsIHRoaXMudHNjb25maWdEZXZdKSB7XG4gICAgICB0c2NvbmZpZz8uZmlsZS5hZGRPdmVycmlkZSgnY29tcGlsZXJPcHRpb25zLmNvbXBvc2l0ZScsIHRydWUpO1xuICAgICAgdHNjb25maWc/LmZpbGUuYWRkT3ZlcnJpZGUoXG4gICAgICAgICdyZWZlcmVuY2VzJyxcbiAgICAgICAgYWxsRGVwcy5maWx0ZXIoaXNXb3Jrc3BhY2VSZWZlcmVuY2UpLm1hcCgocCkgPT4gKHsgcGF0aDogcmVsYXRpdmUodGhpcy5vdXRkaXIsIHAub3V0ZGlyKSB9KSksXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIEFsbG93IHBhc3NpbmcgYWRkaXRpb25hbCBhcmdzIGxpa2UgYC0tZm9yY2VgIHRvIHRoZSBjb21waWxlIHRhc2tcbiAgICAvLyBOZWVkZWQgYmVjYXVzZSB3ZSB1c2UgY29tcG9zaXRlIHByb2plY3RzIHRoYXQgb2Z0ZW4gbmVlZCBhIHRzYyAtLWJ1aWxkIC0tZm9yY2VcbiAgICB0aGlzLnRhc2tzLnRyeUZpbmQoJ2NvbXBpbGUnKT8ucmVzZXQoJ3RzYyAtLWJ1aWxkJywge1xuICAgICAgcmVjZWl2ZUFyZ3M6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBJbnN0YWxsIGRlcGVuZGVuY2llcyB2aWEgdGhlIHBhcmVudCBwcm9qZWN0XG4gICAgLyogQHRzLWlnbm9yZSBhY2Nlc3MgcHJpdmF0ZSBtZXRob2QgKi9cbiAgICBjb25zdCBvcmlnaW5hbFJlc29sdmUgPSB0aGlzLnBhY2thZ2UucmVzb2x2ZURlcHNBbmRXcml0ZVBhY2thZ2VKc29uO1xuICAgIC8qIEB0cy1pZ25vcmUgYWNjZXNzIHByaXZhdGUgbWV0aG9kICovXG4gICAgdGhpcy5wYWNrYWdlLmluc3RhbGxEZXBlbmRlbmNpZXMgPSAoKSA9PiB7XG4gICAgICBvcHRpb25zLnBhcmVudC5yZXF1ZXN0SW5zdGFsbERlcGVuZGVuY2llcyh7IHJlc29sdmVEZXBzQW5kV3JpdGVQYWNrYWdlSnNvbjogKCkgPT4gb3JpZ2luYWxSZXNvbHZlLmFwcGx5KHRoaXMucGFja2FnZSkgfSk7XG4gICAgfTtcbiAgICAvKiBAdHMtaWdub3JlIGFjY2VzcyBwcml2YXRlIG1ldGhvZCAqL1xuICAgIHRoaXMucGFja2FnZS5yZXNvbHZlRGVwc0FuZFdyaXRlUGFja2FnZUpzb24gPSAoKSA9PiB7IH07XG5cbiAgICAvLyBQcml2YXRlIHBhY2thZ2VcbiAgICBpZiAob3B0aW9ucy5wcml2YXRlKSB7XG4gICAgICB0aGlzLnBhY2thZ2UuYWRkRmllbGQoJ3ByaXZhdGUnLCB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBGaXhlc1xuICAgIHRoaXMuYWRkVHNjb25maWdEZXZGaXgoKTtcbiAgICB0aGlzLmFkZEVzbGludFJjRml4KCk7XG5cbiAgICB0aGlzLmJ1bmRsZWREZXBzLnB1c2goLi4ub3B0aW9ucy5idW5kbGVkRGVwcyA/PyBbXSk7XG5cbiAgICAvLyBJbmRpdmlkdWFsIHdvcmtzcGFjZSBwYWNrYWdlcyBzaG91bGRuJ3QgZGVwZW5kIG9uIFwicHJvamVuXCIsIGl0IGdldHMgYnJvdWdodCBpbiBhdCB0aGUgbW9ub3JlcG8gcm9vdFxuICAgIHRoaXMuZGVwcy5yZW1vdmVEZXBlbmRlbmN5KCdwcm9qZW4nKTtcblxuICAgIG9wdGlvbnMucGFyZW50LnJlZ2lzdGVyKHRoaXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEkgZG9uJ3Qga25vdyB3aHkgYHRzY29uZmlnLmRldi5qc29uYCBkb2Vzbid0IGhhdmUgYW4gb3V0ZGlyLCBvciB3aGVyZSBpdCdzIHVzZWQsXG4gICAqIGJ1dCBpdCdzIGNhdXNpbmcgaW4tcGxhY2UgYC5qc2AgZmlsZXMgdG8gYXBwZWFyLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFkZFRzY29uZmlnRGV2Rml4KCkge1xuICAgIHRoaXMudHNjb25maWdEZXYuZmlsZS5hZGRPdmVycmlkZSgnY29tcGlsZXJPcHRpb25zLm91dERpcicsICdsaWInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOZWVkIHRvIGhhY2sgRVNMaW50IGNvbmZpZ1xuICAgKlxuICAgKiAuZXNsaW50cmMuanMgd2lsbCB0YWtlIHByZWNlZGVuY2Ugb3ZlciB0aGUgSlNPTiBmaWxlLCBpdCB3aWxsIGxvYWQgdGhlXG4gICAqIEpTT04gZmlsZSBhbmQgcGF0Y2ggaXQgd2l0aCBhIGR5bmFtaWMgZGlyZWN0b3J5IG5hbWUgdGhhdCBjYW5ub3QgYmUgcmVwcmVzZW50ZWQgaW5cbiAgICogcGxhaW4gSlNPTiAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9wcm9qZW4vcHJvamVuL2lzc3Vlcy8yNDA1KS5cbiAgICpcbiAgICogU2luY2UgZXNsaW50IGNvbmZpZyBpcyBsb2FkZWQgd2l0aCBkaWZmZXJlbnQgY3dkJ3MgZGVwZW5kaW5nIG9uIHdoZXRoZXIgaXQnc1xuICAgKiBmcm9tIHRoZSBWU0NvZGUgcGx1Z2luIG9yIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgdXNlIGFic29sdXRlIHBhdGhzIGV2ZXJ5d2hlcmUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWRkRXNsaW50UmNGaXgoKSB7XG4gICAgY29uc3QgZXNsaW50UmMgPSBuZXcgU291cmNlQ29kZSh0aGlzLCAnLmVzbGludHJjLmpzJyk7XG4gICAgZXNsaW50UmMubGluZSgndmFyIHBhdGggPSByZXF1aXJlKFxcJ3BhdGhcXCcpOycpO1xuICAgIGVzbGludFJjLmxpbmUoJ3ZhciBmcyA9IHJlcXVpcmUoXFwnZnNcXCcpOycpO1xuICAgIGVzbGludFJjLmxpbmUoJ3ZhciBjb250ZW50cyA9IGZzLnJlYWRGaWxlU3luYyhgJHtfX2Rpcm5hbWV9Ly5lc2xpbnRyYy5qc29uYCwgeyBlbmNvZGluZzogXFwndXRmLThcXCcgfSk7Jyk7XG4gICAgZXNsaW50UmMubGluZSgnLy8gU3RyaXAgY29tbWVudHMsIEpTT04ucGFyc2UoKSBkb2VzblxcJ3QgbGlrZSB0aG9zZScpO1xuICAgIGVzbGludFJjLmxpbmUoJ2NvbnRlbnRzID0gY29udGVudHMucmVwbGFjZSgvXlxcXFwvXFxcXC8uKiQvbSwgXFwnXFwnKTsnKTtcbiAgICBlc2xpbnRSYy5saW5lKCd2YXIganNvbiA9IEpTT04ucGFyc2UoY29udGVudHMpOycpO1xuICAgIGVzbGludFJjLmxpbmUoJy8vIFBhdGNoIHRoZSAuanNvbiBjb25maWcgd2l0aCBzb21ldGhpbmcgdGhhdCBjYW4gb25seSBiZSByZXByZXNlbnRlZCBpbiBKUycpO1xuICAgIGVzbGludFJjLmxpbmUoJ2pzb24ucGFyc2VyT3B0aW9ucy50c2NvbmZpZ1Jvb3REaXIgPSBfX2Rpcm5hbWU7Jyk7XG4gICAgZXNsaW50UmMubGluZSgnbW9kdWxlLmV4cG9ydHMgPSBqc29uOycpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgUHJvamVjdHMgaW4gdGhlIHdvcmtzcGFjZSB0aGF0IGFyZSBhbHNvIGRlcGVuZGVuY2llcy5cbiAgICpcbiAgICogT3B0aW9uYWxseSBmaWx0ZXIgYnkgZGVwZW5kZW5jeSB0eXBlLlxuICAgKi9cbiAgcHVibGljIHdvcmtzcGFjZURlcGVuZGVuY2llcyh0eXBlcz86IERlcGVuZGVuY3lUeXBlW10pOiBQcm9qZWN0W10ge1xuICAgIHJldHVybiB0aGlzLm1vbm9yZXBvLnN1YnByb2plY3RzLmZpbHRlcigoc2libGluZykgPT5cbiAgICAgIHRoaXMuZGVwcy5hbGwuc29tZSgoZCkgPT4gZC5uYW1lID09PSBzaWJsaW5nLm5hbWUgJiYgKCF0eXBlcyB8fCB0eXBlcy5pbmNsdWRlcyhkLnR5cGUpKSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBzcGVjaWFsaXplZCByZWZlcmVuY2UgdG8gdGhpcyB3b3Jrc3BhY2VcbiAgICovXG4gIHB1YmxpYyBjdXN0b21pemVSZWZlcmVuY2UocmVmT3B0cz86IFJlZmVyZW5jZU9wdGlvbnMpOiBJV29ya3NwYWNlUmVmZXJlbmNlIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgb3V0ZGlyOiB0aGlzLm91dGRpcixcbiAgICAgIGlzUHJpdmF0ZVBhY2thZ2U6IHRoaXMuaXNQcml2YXRlUGFja2FnZSxcbiAgICAgIHZlcnNpb25UeXBlOiByZWZPcHRzPy52ZXJzaW9uVHlwZSA/PyB0aGlzLnZlcnNpb25UeXBlLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHdvcmtzcGFjZS5jdXN0b21pemVSZWZlcmVuY2UoKWAgbWV0aG9kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVmZXJlbmNlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGF0IHR5cGUgb2YgZGVwZW5kZW5jeSB0byB0YWtlIG9uIHRoaXMgcGFja2FnZVxuICAgKlxuICAgKiBCeSBkZWZhdWx0LCBkZXBlbmRlbmNpZXMgd2lsbCBiZSByZWZlcmVuY2VkIHdpdGggYSBgXmAsIHdoaWNoIG1lYW5zIHRoYXRcbiAgICogY29tZSBpbnN0YWxsIHRpbWUgYSBuZXdlciB2ZXJzaW9uIG1heSBiZSBpbnN0YWxsZWQuXG4gICAqXG4gICAqIENob29zZSBhIGRpZmZlcmVudCByYW5nZSB0eXBlIHRvIHRha2UsIGZvciBleGFtcGxlLCBhbiBgZXhhY3RgIGRlcGVuZGVuY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdmdXR1cmUtbWlub3InXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uVHlwZT86IFZlcnNpb25UeXBlO1xufVxuXG5mdW5jdGlvbiBwYWNrYWdlTmFtZXMoeHM/OiBBcnJheTxzdHJpbmcgfCBJV29ya3NwYWNlUmVmZXJlbmNlPik6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgaWYgKCF4cykge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgcmV0dXJuIHhzLm1hcCgoeCkgPT4gKHR5cGVvZiB4ID09PSAnc3RyaW5nJyA/IHggOiB4Lm5hbWUpKTtcbn1cblxuZnVuY3Rpb24gd2l0aG91dDxBIGV4dGVuZHMgb2JqZWN0LCBLIGV4dGVuZHMga2V5b2YgQT4oeDogQSwgLi4ua3M6IEtbXSk6IE9taXQ8QSwgSz4ge1xuICBjb25zdCByZXQgPSB7IC4uLnggfTtcbiAgZm9yIChjb25zdCBrIG9mIGtzKSB7XG4gICAgZGVsZXRlIHJldFtrXTtcbiAgfVxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBpc1dvcmtzcGFjZVJlZmVyZW5jZSh4OiB1bmtub3duKTogeCBpcyBJV29ya3NwYWNlUmVmZXJlbmNlIHtcbiAgcmV0dXJuIHR5cGVvZiB4ID09PSAnb2JqZWN0JyAmJiAhIXggJiYgKFsnaXNQcml2YXRlUGFja2FnZScsICd2ZXJzaW9uVHlwZScsICduYW1lJywgJ291dGRpciddIHNhdGlzZmllcyBBcnJheTxrZXlvZiBJV29ya3NwYWNlUmVmZXJlbmNlPikuZXZlcnkoayA9PiAoeCBhcyBhbnkpW2tdICE9PSB1bmRlZmluZWQpO1xufVxuIl19
package/package.json CHANGED
@@ -74,7 +74,7 @@
74
74
  "publishConfig": {
75
75
  "access": "public"
76
76
  },
77
- "version": "0.3.3",
77
+ "version": "0.3.5",
78
78
  "jest": {
79
79
  "coverageProvider": "v8",
80
80
  "testMatch": [