@discordeno/bot 21.0.0 → 21.0.1-next.068ecf8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/commandOptionsParser.cjs +1 -1
  3. package/dist/cjs/constants.cjs +7 -7
  4. package/dist/cjs/desiredProperties.cjs +111 -4
  5. package/dist/cjs/handlers/channels/THREAD_MEMBER_UPDATE.cjs +4 -2
  6. package/dist/cjs/helpers.cjs +46 -29
  7. package/dist/cjs/transformers/activity.cjs +5 -5
  8. package/dist/cjs/transformers/application.cjs +2 -1
  9. package/dist/cjs/transformers/automodActionExecution.cjs +3 -3
  10. package/dist/cjs/transformers/channel.cjs +7 -7
  11. package/dist/cjs/transformers/component.cjs +184 -64
  12. package/dist/cjs/transformers/emoji.cjs +5 -5
  13. package/dist/cjs/transformers/entitlement.cjs +2 -2
  14. package/dist/cjs/transformers/guild.cjs +5 -4
  15. package/dist/cjs/transformers/incidentsData.cjs +21 -0
  16. package/dist/cjs/transformers/index.cjs +5 -3
  17. package/dist/cjs/transformers/interaction.cjs +15 -10
  18. package/dist/cjs/transformers/invite.cjs +2 -1
  19. package/dist/cjs/transformers/lobby.cjs +41 -0
  20. package/dist/cjs/transformers/member.cjs +4 -4
  21. package/dist/cjs/transformers/message.cjs +22 -8
  22. package/dist/cjs/transformers/onboarding.cjs +5 -5
  23. package/dist/cjs/transformers/poll.cjs +4 -4
  24. package/dist/cjs/transformers/reverse/component.cjs +100 -11
  25. package/dist/cjs/transformers/reverse/member.cjs +5 -5
  26. package/dist/cjs/transformers/reverse/presence.cjs +4 -4
  27. package/dist/cjs/transformers/role.cjs +17 -5
  28. package/dist/cjs/transformers/scheduledEvent.cjs +4 -4
  29. package/dist/cjs/transformers/sticker.cjs +4 -4
  30. package/dist/cjs/transformers/subscription.cjs +2 -2
  31. package/dist/cjs/transformers/threadMember.cjs +6 -5
  32. package/dist/cjs/transformers/toggles/Permissions.cjs +1 -1
  33. package/dist/cjs/transformers/toggles/ToggleBitfield.cjs +4 -4
  34. package/dist/cjs/transformers/toggles/channel.cjs +4 -4
  35. package/dist/cjs/transformers/toggles/emoji.cjs +4 -4
  36. package/dist/cjs/transformers/toggles/guild.cjs +24 -7
  37. package/dist/cjs/transformers/toggles/member.cjs +11 -5
  38. package/dist/cjs/transformers/toggles/role.cjs +4 -4
  39. package/dist/cjs/transformers/toggles/user.cjs +4 -4
  40. package/dist/cjs/transformers/toggles/voice.cjs +4 -4
  41. package/dist/cjs/transformers/user.cjs +39 -4
  42. package/dist/cjs/transformers.cjs +22 -1
  43. package/dist/cjs/utils.cjs +9 -9
  44. package/dist/esm/commandOptionsParser.js +1 -1
  45. package/dist/esm/constants.js +2 -2
  46. package/dist/esm/desiredProperties.js +108 -1
  47. package/dist/esm/events.js +1 -1
  48. package/dist/esm/handlers/channels/THREAD_MEMBER_UPDATE.js +4 -2
  49. package/dist/esm/helpers.js +46 -29
  50. package/dist/esm/transformers/application.js +2 -1
  51. package/dist/esm/transformers/automodActionExecution.js +3 -3
  52. package/dist/esm/transformers/component.js +170 -61
  53. package/dist/esm/transformers/entitlement.js +2 -2
  54. package/dist/esm/transformers/guild.js +2 -1
  55. package/dist/esm/transformers/incidentsData.js +11 -0
  56. package/dist/esm/transformers/index.js +6 -4
  57. package/dist/esm/transformers/interaction.js +7 -2
  58. package/dist/esm/transformers/invite.js +3 -2
  59. package/dist/esm/transformers/lobby.js +23 -0
  60. package/dist/esm/transformers/message.js +13 -2
  61. package/dist/esm/transformers/reverse/component.js +86 -8
  62. package/dist/esm/transformers/reverse/member.js +2 -2
  63. package/dist/esm/transformers/role.js +11 -2
  64. package/dist/esm/transformers/subscription.js +2 -2
  65. package/dist/esm/transformers/threadMember.js +3 -2
  66. package/dist/esm/transformers/toggles/Permissions.js +1 -1
  67. package/dist/esm/transformers/toggles/ToggleBitfield.js +1 -1
  68. package/dist/esm/transformers/toggles/channel.js +1 -1
  69. package/dist/esm/transformers/toggles/emoji.js +1 -1
  70. package/dist/esm/transformers/toggles/guild.js +21 -4
  71. package/dist/esm/transformers/toggles/member.js +8 -2
  72. package/dist/esm/transformers/toggles/role.js +1 -1
  73. package/dist/esm/transformers/toggles/user.js +1 -1
  74. package/dist/esm/transformers/toggles/voice.js +1 -1
  75. package/dist/esm/transformers/types.js +2 -2
  76. package/dist/esm/transformers/user.js +27 -1
  77. package/dist/esm/transformers.js +24 -3
  78. package/dist/esm/utils.js +5 -5
  79. package/dist/types/commandOptionsParser.d.ts +11 -2
  80. package/dist/types/commandOptionsParser.d.ts.map +1 -1
  81. package/dist/types/constants.d.ts.map +1 -1
  82. package/dist/types/desiredProperties.d.ts +20 -5
  83. package/dist/types/desiredProperties.d.ts.map +1 -1
  84. package/dist/types/events.d.ts +2 -0
  85. package/dist/types/events.d.ts.map +1 -1
  86. package/dist/types/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +1 -1
  87. package/dist/types/helpers.d.ts +25 -17
  88. package/dist/types/helpers.d.ts.map +1 -1
  89. package/dist/types/transformers/application.d.ts.map +1 -1
  90. package/dist/types/transformers/automodActionExecution.d.ts.map +1 -1
  91. package/dist/types/transformers/component.d.ts +3 -1
  92. package/dist/types/transformers/component.d.ts.map +1 -1
  93. package/dist/types/transformers/guild.d.ts.map +1 -1
  94. package/dist/types/transformers/incidentsData.d.ts +4 -0
  95. package/dist/types/transformers/incidentsData.d.ts.map +1 -0
  96. package/dist/types/transformers/index.d.ts +5 -3
  97. package/dist/types/transformers/index.d.ts.map +1 -1
  98. package/dist/types/transformers/interaction.d.ts.map +1 -1
  99. package/dist/types/transformers/invite.d.ts.map +1 -1
  100. package/dist/types/transformers/lobby.d.ts +5 -0
  101. package/dist/types/transformers/lobby.d.ts.map +1 -0
  102. package/dist/types/transformers/message.d.ts +3 -2
  103. package/dist/types/transformers/message.d.ts.map +1 -1
  104. package/dist/types/transformers/reverse/component.d.ts +3 -1
  105. package/dist/types/transformers/reverse/component.d.ts.map +1 -1
  106. package/dist/types/transformers/role.d.ts +3 -2
  107. package/dist/types/transformers/role.d.ts.map +1 -1
  108. package/dist/types/transformers/threadMember.d.ts.map +1 -1
  109. package/dist/types/transformers/toggles/guild.d.ts +13 -1
  110. package/dist/types/transformers/toggles/guild.d.ts.map +1 -1
  111. package/dist/types/transformers/toggles/member.d.ts +4 -0
  112. package/dist/types/transformers/toggles/member.d.ts.map +1 -1
  113. package/dist/types/transformers/types.d.ts +165 -12
  114. package/dist/types/transformers/types.d.ts.map +1 -1
  115. package/dist/types/transformers/user.d.ts +5 -2
  116. package/dist/types/transformers/user.d.ts.map +1 -1
  117. package/dist/types/transformers.d.ts +25 -3
  118. package/dist/types/transformers.d.ts.map +1 -1
  119. package/dist/types/utils.d.ts +1 -1
  120. package/dist/types/utils.d.ts.map +1 -1
  121. package/package.json +26 -21
@@ -28,7 +28,10 @@ const featureNames = [
28
28
  'vanityUrl',
29
29
  'verified',
30
30
  'vipRegions',
31
- 'welcomeScreenEnabled'
31
+ 'welcomeScreenEnabled',
32
+ 'guestsEnabled',
33
+ 'guildTags',
34
+ 'enhancedRoleColors'
32
35
  ];
33
36
  export const GuildToggle = {
34
37
  /** Whether the bot is the owner of the guild */ owner: 1n << 0n,
@@ -37,7 +40,6 @@ export const GuildToggle = {
37
40
  /** Whether this guild is unavailable due to an outage */ unavailable: 1n << 3n,
38
41
  /** Whether the guild has the boost progress bar enabled */ premiumProgressBarEnabled: 1n << 4n,
39
42
  // GUILD FEATURES ARE BELOW THIS
40
- // MISSING VALUES IN THE BITFIELD: 26, 35+
41
43
  /** Whether the guild has access to set an animated guild banner image */ animatedBanner: 1n << 11n,
42
44
  /** Whether the guild has access to set an animated guild icon */ animatedIcon: 1n << 16n,
43
45
  /** Whether the guild is using the old permissions configuration behavior */ applicationCommandPermissionsV2: 1n << 14n,
@@ -66,7 +68,10 @@ export const GuildToggle = {
66
68
  /** Whether the guild has access to set a vanity URL */ vanityUrl: 1n << 7n,
67
69
  /** Whether the guild is verified */ verified: 1n << 8n,
68
70
  /** Whether the guild has access to set 384 kbps bitrate in voice (previously VIP voice servers) */ vipRegions: 1n << 6n,
69
- /** Whether the guild has enabled the welcome screen */ welcomeScreenEnabled: 1n << 18n
71
+ /** Whether the guild has enabled the welcome screen */ welcomeScreenEnabled: 1n << 18n,
72
+ /** Whether the guild has access to guest invites */ guestsEnabled: 1n << 26n,
73
+ /** Whether the guild has access to set guild tags */ guildTags: 1n << 36n,
74
+ /** Whether the guild is able to set gradient colors to roles */ enhancedRoleColors: 1n << 35n
70
75
  };
71
76
  export class GuildToggles extends ToggleBitfieldBigint {
72
77
  constructor(guildOrTogglesBigint){
@@ -110,6 +115,9 @@ export class GuildToggles extends ToggleBitfieldBigint {
110
115
  if (guild.features.includes(GuildFeatures.Verified)) this.add(GuildToggle.verified);
111
116
  if (guild.features.includes(GuildFeatures.VipRegions)) this.add(GuildToggle.vipRegions);
112
117
  if (guild.features.includes(GuildFeatures.WelcomeScreenEnabled)) this.add(GuildToggle.welcomeScreenEnabled);
118
+ if (guild.features.includes(GuildFeatures.GuestsEnabled)) this.add(GuildToggle.guestsEnabled);
119
+ if (guild.features.includes(GuildFeatures.GuildTags)) this.add(GuildToggle.guildTags);
120
+ if (guild.features.includes(GuildFeatures.EnhancedRoleColors)) this.add(GuildToggle.enhancedRoleColors);
113
121
  }
114
122
  }
115
123
  get features() {
@@ -223,6 +231,15 @@ export class GuildToggles extends ToggleBitfieldBigint {
223
231
  /** Whether the guild has created soundboard sounds. */ get soundboard() {
224
232
  return this.has('soundboard');
225
233
  }
234
+ /** Whether the guild has access to guest invites */ get guestsEnabled() {
235
+ return this.has('guestsEnabled');
236
+ }
237
+ /** Whether the guild has access to set guild tags */ get guildTags() {
238
+ return this.has('guildTags');
239
+ }
240
+ /** Whether the guild is able to set gradient colors to roles */ get enhancedRoleColors() {
241
+ return this.has('enhancedRoleColors');
242
+ }
226
243
  /** Checks whether or not the permissions exist in this */ has(permissions) {
227
244
  if (!Array.isArray(permissions)) return super.contains(GuildToggle[permissions]);
228
245
  return super.contains(permissions.reduce((a, b)=>a |= GuildToggle[b], 0n));
@@ -236,4 +253,4 @@ export class GuildToggles extends ToggleBitfieldBigint {
236
253
  }
237
254
  }
238
255
 
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy9ndWlsZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERpc2NvcmRHdWlsZCwgR3VpbGRGZWF0dXJlcyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGRCaWdpbnQgfSBmcm9tICcuL1RvZ2dsZUJpdGZpZWxkLmpzJ1xuXG5jb25zdCBmZWF0dXJlTmFtZXMgPSBbXG4gICdhbmltYXRlZEJhbm5lcicsXG4gICdhbmltYXRlZEljb24nLFxuICAnYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnNWMicsXG4gICdhdXRvTW9kZXJhdGlvbicsXG4gICdiYW5uZXInLFxuICAnY29tbXVuaXR5JyxcbiAgJ2NyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsJyxcbiAgJ2NyZWF0b3JTdG9yZVBhZ2UnLFxuICAnZGV2ZWxvcGVyU3VwcG9ydFNlcnZlcicsXG4gICdkaXNjb3ZlcmFibGUnLFxuICAnZmVhdHVyYWJsZScsXG4gICdpbnZpdGVzRGlzYWJsZWQnLFxuICAnaW52aXRlU3BsYXNoJyxcbiAgJ21lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkJyxcbiAgJ21vcmVTb3VuZGJvYXJkJyxcbiAgJ21vcmVTdGlja2VycycsXG4gICduZXdzJyxcbiAgJ3BhcnRuZXJlZCcsXG4gICdwcmV2aWV3RW5hYmxlZCcsXG4gICdyYWlkQWxlcnRzRGlzYWJsZWQnLFxuICAncm9sZUljb25zJyxcbiAgJ3JvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2UnLFxuICAncm9sZVN1YnNjcmlwdGlvbnNFbmFibGVkJyxcbiAgJ3RpY2tldGVkRXZlbnRzRW5hYmxlZCcsXG4gICd2YW5pdHlVcmwnLFxuICAndmVyaWZpZWQnLFxuICAndmlwUmVnaW9ucycsXG4gICd3ZWxjb21lU2NyZWVuRW5hYmxlZCcsXG5dIGFzIGNvbnN0XG5cbmV4cG9ydCBjb25zdCBHdWlsZFRvZ2dsZSA9IHtcbiAgLyoqIFdoZXRoZXIgdGhlIGJvdCBpcyB0aGUgb3duZXIgb2YgdGhlIGd1aWxkICovXG4gIG93bmVyOiAxbiA8PCAwbixcbiAgLyoqIFdoZXRoZXIgdGhlIHNlcnZlciB3aWRnZXQgaXMgZW5hYmxlZCAqL1xuICB3aWRnZXRFbmFibGVkOiAxbiA8PCAxbixcbiAgLyoqIFdoZXRoZXIgdGhpcyBpcyBjb25zaWRlcmVkIGEgbGFyZ2UgZ3VpbGQgKi9cbiAgbGFyZ2U6IDFuIDw8IDJuLFxuICAvKiogV2hldGhlciB0aGlzIGd1aWxkIGlzIHVuYXZhaWxhYmxlIGR1ZSB0byBhbiBvdXRhZ2UgKi9cbiAgdW5hdmFpbGFibGU6IDFuIDw8IDNuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIHRoZSBib29zdCBwcm9ncmVzcyBiYXIgZW5hYmxlZCAqL1xuICBwcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkOiAxbiA8PCA0bixcblxuICAvLyBHVUlMRCBGRUFUVVJFUyBBUkUgQkVMT1cgVEhJU1xuICAvLyBNSVNTSU5HIFZBTFVFUyBJTiBUSEUgQklURklFTEQ6IDI2LCAzNStcblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBzZXQgYW4gYW5pbWF0ZWQgZ3VpbGQgYmFubmVyIGltYWdlICovXG4gIGFuaW1hdGVkQmFubmVyOiAxbiA8PCAxMW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhbiBhbmltYXRlZCBndWlsZCBpY29uICovXG4gIGFuaW1hdGVkSWNvbjogMW4gPDwgMTZuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaXMgdXNpbmcgdGhlIG9sZCBwZXJtaXNzaW9ucyBjb25maWd1cmF0aW9uIGJlaGF2aW9yICovXG4gIGFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zVjI6IDFuIDw8IDE0bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBzZXQgdXAgYXV0byBtb2RlcmF0aW9uIHJ1bGVzICovXG4gIGF1dG9Nb2RlcmF0aW9uOiAxbiA8PCAyOG4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhIGd1aWxkIGJhbm5lciBpbWFnZSAqL1xuICBiYW5uZXI6IDFuIDw8IDE3bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGNhbiBlbmFibGUgd2VsY29tZSBzY3JlZW4sIE1lbWJlcnNoaXAgU2NyZWVuaW5nLCBzdGFnZSBjaGFubmVscyBhbmQgZGlzY292ZXJ5LCBhbmQgcmVjZWl2ZXMgY29tbXVuaXR5IHVwZGF0ZXMgKi9cbiAgY29tbXVuaXR5OiAxbiA8PCAxMG4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCBtb25ldGl6YXRpb24uICovXG4gIGNyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsOiAxbiA8PCAzMW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCB0aGUgcm9sZSBzdWJzY3JpcHRpb24gcHJvbW8gcGFnZS4gKi9cbiAgY3JlYXRvclN0b3JlUGFnZTogMW4gPDwgMzJuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGJlZW4gc2V0IGFzIGEgc3VwcG9ydCBzZXJ2ZXIgb24gdGhlIEFwcCBEaXJlY3RvcnkgKi9cbiAgZGV2ZWxvcGVyU3VwcG9ydFNlcnZlcjogMW4gPDwgMzBuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaXMgYWJsZSB0byBiZSBkaXNjb3ZlcmVkIGluIHRoZSBkaXJlY3RvcnkgKi9cbiAgZGlzY292ZXJhYmxlOiAxbiA8PCAxM24sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyBhYmxlIHRvIGJlIGZlYXR1cmVkIGluIHRoZSBkaXJlY3RvcnkgKi9cbiAgZmVhdHVyYWJsZTogMW4gPDwgMTVuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIHBhdXNlZCBpbnZpdGVzLCBwcmV2ZW50aW5nIG5ldyB1c2VycyBmcm9tIGpvaW5pbmcgKi9cbiAgaW52aXRlc0Rpc2FibGVkOiAxbiA8PCAyOW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhbiBpbnZpdGUgc3BsYXNoIGJhY2tncm91bmQgKi9cbiAgaW52aXRlU3BsYXNoOiAxbiA8PCA1bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBlbmFibGVkIFtNZW1iZXJzaGlwIFNjcmVlbmluZ10oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvcmVzb3VyY2VzL2d1aWxkI21lbWJlcnNoaXAtc2NyZWVuaW5nLW9iamVjdCkgKi9cbiAgbWVtYmVyVmVyaWZpY2F0aW9uR2F0ZUVuYWJsZWQ6IDFuIDw8IDE5bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBtb3JlIHNvdW5kYm9hcmQgc291bmQgc2xvdCAqL1xuICBtb3JlU291bmRib2FyZDogMW4gPDwgMjRuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGluY3JlYXNlZCBjdXN0b20gc3RpY2tlciBzbG90cyAqL1xuICBtb3JlU3RpY2tlcnM6IDFuIDw8IDIzbixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gY3JlYXRlIG5ld3MgY2hhbm5lbHMgKi9cbiAgbmV3czogMW4gPDwgMTJuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaXMgcGFydG5lcmVkICovXG4gIHBhcnRuZXJlZDogMW4gPDwgOW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBjYW4gYmUgcHJldmlld2VkIGJlZm9yZSBqb2luaW5nIHZpYSBNZW1iZXJzaGlwIFNjcmVlbmluZyBvciB0aGUgZGlyZWN0b3J5ICovXG4gIHByZXZpZXdFbmFibGVkOiAxbiA8PCAyMG4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZGlzYWJsZWQgYWxlcnRzIGZvciBqb2luIHJhaWRzIGluIHRoZSBjb25maWd1cmVkIHNhZmV0eSBhbGVydHMgY2hhbm5lbCAqL1xuICByYWlkQWxlcnRzRGlzYWJsZWQ6IDFuIDw8IDIybixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIGFibGUgdG8gc2V0IHJvbGUgaWNvbnMgKi9cbiAgcm9sZUljb25zOiAxbiA8PCAyN24sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgcm9sZSBzdWJzY3JpcHRpb25zIHRoYXQgY2FuIGJlIHB1cmNoYXNlZC4gKi9cbiAgcm9sZVN1YnNjcmlwdGlvbnNBdmFpbGFibGVGb3JQdXJjaGFzZTogMW4gPDwgMzNuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGVuYWJsZWQgcm9sZSBzdWJzY3JpcHRpb25zLiAqL1xuICByb2xlU3Vic2NyaXB0aW9uc0VuYWJsZWQ6IDFuIDw8IDM0bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBjcmVhdGVkIHNvdW5kYm9hcmQgc291bmRzLiAqL1xuICBzb3VuZGJvYXJkOiAxbiA8PCAyNW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCB0aWNrZXRlZCBldmVudHMgKi9cbiAgdGlja2V0ZWRFdmVudHNFbmFibGVkOiAxbiA8PCAyMW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhIHZhbml0eSBVUkwgKi9cbiAgdmFuaXR5VXJsOiAxbiA8PCA3bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIHZlcmlmaWVkICovXG4gIHZlcmlmaWVkOiAxbiA8PCA4bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IDM4NCBrYnBzIGJpdHJhdGUgaW4gdm9pY2UgKHByZXZpb3VzbHkgVklQIHZvaWNlIHNlcnZlcnMpICovXG4gIHZpcFJlZ2lvbnM6IDFuIDw8IDZuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGVuYWJsZWQgdGhlIHdlbGNvbWUgc2NyZWVuICovXG4gIHdlbGNvbWVTY3JlZW5FbmFibGVkOiAxbiA8PCAxOG4sXG59XG5cbmV4cG9ydCBjbGFzcyBHdWlsZFRvZ2dsZXMgZXh0ZW5kcyBUb2dnbGVCaXRmaWVsZEJpZ2ludCB7XG4gIGNvbnN0cnVjdG9yKGd1aWxkT3JUb2dnbGVzQmlnaW50OiBEaXNjb3JkR3VpbGQgfCBiaWdpbnQpIHtcbiAgICBzdXBlcigpXG5cbiAgICBpZiAodHlwZW9mIGd1aWxkT3JUb2dnbGVzQmlnaW50ID09PSAnYmlnaW50JykgdGhpcy5iaXRmaWVsZCA9IGd1aWxkT3JUb2dnbGVzQmlnaW50XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBndWlsZCA9IGd1aWxkT3JUb2dnbGVzQmlnaW50XG4gICAgICAvLyBDYXVzZSBkaXNjb3JkIGJlIHNtYXJ0IGxpa2UgdGhhdFxuICAgICAgaWYgKCFndWlsZC5mZWF0dXJlcykgZ3VpbGQuZmVhdHVyZXMgPSBbXVxuXG4gICAgICBpZiAoZ3VpbGQub3duZXIpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLm93bmVyKVxuICAgICAgaWYgKGd1aWxkLndpZGdldF9lbmFibGVkKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS53aWRnZXRFbmFibGVkKVxuICAgICAgaWYgKGd1aWxkLmxhcmdlKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5sYXJnZSlcbiAgICAgIGlmIChndWlsZC51bmF2YWlsYWJsZSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUudW5hdmFpbGFibGUpXG4gICAgICBpZiAoZ3VpbGQucHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZCkgdGhpcy5hZGQoR3VpbGRUb2dnbGUucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZClcblxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuQW5pbWF0ZWRCYW5uZXIpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5hbmltYXRlZEJhbm5lcilcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkFuaW1hdGVkSWNvbikpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmFuaW1hdGVkSWNvbilcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zVjIpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5hcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1YyKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuQXV0b01vZGVyYXRpb24pKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5hdXRvTW9kZXJhdGlvbilcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkJhbm5lcikpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmJhbm5lcilcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkNvbW11bml0eSkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmNvbW11bml0eSlcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkNyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuY3JlYXRvck1vbmV0aXphYmxlUHJvdmlzaW9uYWwpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5DcmVhdG9yU3RvcmVQYWdlKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuY3JlYXRvclN0b3JlUGFnZSlcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkRldmVsb3BlclN1cHBvcnRTZXJ2ZXIpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5kZXZlbG9wZXJTdXBwb3J0U2VydmVyKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuRGlzY292ZXJhYmxlKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuZGlzY292ZXJhYmxlKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuRmVhdHVyYWJsZSkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmZlYXR1cmFibGUpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5JbnZpdGVzRGlzYWJsZWQpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5pbnZpdGVzRGlzYWJsZWQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5JbnZpdGVTcGxhc2gpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5pbnZpdGVTcGxhc2gpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5NZW1iZXJWZXJpZmljYXRpb25HYXRlRW5hYmxlZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLm1lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuTW9yZVNvdW5kYm9hcmQpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5tb3JlU291bmRib2FyZClcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLk1vcmVTdGlja2VycykpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLm1vcmVTdGlja2VycylcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLk5ld3MpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5uZXdzKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuUGFydG5lcmVkKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUucGFydG5lcmVkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuUHJldmlld0VuYWJsZWQpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5wcmV2aWV3RW5hYmxlZClcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLlJhaWRBbGVydHNEaXNhYmxlZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnJhaWRBbGVydHNEaXNhYmxlZClcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLlJvbGVJY29ucykpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnJvbGVJY29ucylcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLlJvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2UpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5yb2xlU3Vic2NyaXB0aW9uc0F2YWlsYWJsZUZvclB1cmNoYXNlKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuUm9sZVN1YnNjcmlwdGlvbnNFbmFibGVkKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUucm9sZVN1YnNjcmlwdGlvbnNFbmFibGVkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuU291bmRib2FyZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnNvdW5kYm9hcmQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5UaWNrZXRlZEV2ZW50c0VuYWJsZWQpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS50aWNrZXRlZEV2ZW50c0VuYWJsZWQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5WYW5pdHlVcmwpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS52YW5pdHlVcmwpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5WZXJpZmllZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnZlcmlmaWVkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuVmlwUmVnaW9ucykpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnZpcFJlZ2lvbnMpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5XZWxjb21lU2NyZWVuRW5hYmxlZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLndlbGNvbWVTY3JlZW5FbmFibGVkKVxuICAgIH1cbiAgfVxuXG4gIGdldCBmZWF0dXJlcygpOiBHdWlsZEZlYXR1cmVLZXlzW10ge1xuICAgIGNvbnN0IGZlYXR1cmVzOiBHdWlsZEZlYXR1cmVLZXlzW10gPSBbXVxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKEd1aWxkVG9nZ2xlKSkge1xuICAgICAgaWYgKCFmZWF0dXJlTmFtZXMuaW5jbHVkZXMoa2V5IGFzIEd1aWxkRmVhdHVyZUtleXMpKSBjb250aW51ZVxuICAgICAgaWYgKCFzdXBlci5jb250YWlucyhHdWlsZFRvZ2dsZVtrZXkgYXMgR3VpbGRUb2dnbGVLZXlzXSkpIGNvbnRpbnVlXG5cbiAgICAgIGZlYXR1cmVzLnB1c2goa2V5IGFzIEd1aWxkRmVhdHVyZUtleXMpXG4gICAgfVxuXG4gICAgcmV0dXJuIGZlYXR1cmVzXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgYm90IGlzIHRoZSBvd25lciBvZiB0aGUgZ3VpbGQgKi9cbiAgZ2V0IG93bmVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnb3duZXInKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHNlcnZlciB3aWRnZXQgaXMgZW5hYmxlZCAqL1xuICBnZXQgd2lkZ2V0RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3dpZGdldEVuYWJsZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBpcyBjb25zaWRlcmVkIGEgbGFyZ2UgZ3VpbGQgKi9cbiAgZ2V0IGxhcmdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnbGFyZ2UnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBndWlsZCBpcyB1bmF2YWlsYWJsZSBkdWUgdG8gYW4gb3V0YWdlICovXG4gIGdldCB1bmF2YWlsYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3VuYXZhaWxhYmxlJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgdGhlIGJvb3N0IHByb2dyZXNzIGJhciBlbmFibGVkICovXG4gIGdldCBwcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygncHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBzZXQgYW4gaW52aXRlIHNwbGFzaCBiYWNrZ3JvdW5kICovXG4gIGdldCBpbnZpdGVTcGxhc2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdpbnZpdGVTcGxhc2gnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IDM4NCBrYnBzIGJpdHJhdGUgaW4gdm9pY2UgKHByZXZpb3VzbHkgVklQIHZvaWNlIHNlcnZlcnMpICovXG4gIGdldCB2aXBSZWdpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygndmlwUmVnaW9ucycpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBzZXQgYSB2YW5pdHkgVVJMICovXG4gIGdldCB2YW5pdHlVcmwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCd2YW5pdHlVcmwnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIHZlcmlmaWVkICovXG4gIGdldCB2ZXJpZmllZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3ZlcmlmaWVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyBwYXJ0bmVyZWQgKi9cbiAgZ2V0IHBhcnRuZXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3BhcnRuZXJlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgY2FuIGVuYWJsZSB3ZWxjb21lIHNjcmVlbiwgTWVtYmVyc2hpcCBTY3JlZW5pbmcsIHN0YWdlIGNoYW5uZWxzIGFuZCBkaXNjb3ZlcnksIGFuZCByZWNlaXZlcyBjb21tdW5pdHkgdXBkYXRlcyAqL1xuICBnZXQgY29tbXVuaXR5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnY29tbXVuaXR5JylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBHdWlsZCBoYXMgYmVlbiBzZXQgYXMgYSBzdXBwb3J0IHNlcnZlciBvbiB0aGUgQXBwIERpcmVjdG9yeSAqL1xuICBnZXQgZGV2ZWxvcGVyU3VwcG9ydFNlcnZlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2RldmVsb3BlclN1cHBvcnRTZXJ2ZXInKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IGFuIGFuaW1hdGVkIGd1aWxkIGJhbm5lciBpbWFnZSAqL1xuICBnZXQgYW5pbWF0ZWRCYW5uZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdhbmltYXRlZEJhbm5lcicpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBjcmVhdGUgbmV3cyBjaGFubmVscyAqL1xuICBnZXQgbmV3cygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ25ld3MnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIGFibGUgdG8gYmUgZGlzY292ZXJlZCBpbiB0aGUgZGlyZWN0b3J5ICovXG4gIGdldCBkaXNjb3ZlcmFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdkaXNjb3ZlcmFibGUnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIGFibGUgdG8gYmUgZmVhdHVyZWQgaW4gdGhlIGRpcmVjdG9yeSAqL1xuICBnZXQgZmVhdHVyYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2ZlYXR1cmFibGUnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IGFuIGFuaW1hdGVkIGd1aWxkIGljb24gKi9cbiAgZ2V0IGFuaW1hdGVkSWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2FuaW1hdGVkSWNvbicpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBzZXQgYSBndWlsZCBiYW5uZXIgaW1hZ2UgKi9cbiAgZ2V0IGJhbm5lcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2Jhbm5lcicpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGVuYWJsZWQgdGhlIHdlbGNvbWUgc2NyZWVuICovXG4gIGdldCB3ZWxjb21lU2NyZWVuRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3dlbGNvbWVTY3JlZW5FbmFibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCBbTWVtYmVyc2hpcCBTY3JlZW5pbmddKGh0dHBzOi8vZGlzY29yZC5jb20vZGV2ZWxvcGVycy9kb2NzL3Jlc291cmNlcy9ndWlsZCNtZW1iZXJzaGlwLXNjcmVlbmluZy1vYmplY3QpICovXG4gIGdldCBtZW1iZXJWZXJpZmljYXRpb25HYXRlRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ21lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgbW9yZSBzb3VuZGJvYXJkIHNvdW5kIHNsb3QgKi9cbiAgZ2V0IG1vcmVTb3VuZGJvYXJkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnbW9yZVNvdW5kYm9hcmQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGNhbiBiZSBwcmV2aWV3ZWQgYmVmb3JlIGpvaW5pbmcgdmlhIE1lbWJlcnNoaXAgU2NyZWVuaW5nIG9yIHRoZSBkaXJlY3RvcnkgKi9cbiAgZ2V0IHByZXZpZXdFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygncHJldmlld0VuYWJsZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBlbmFibGVkIHRpY2tldGVkIGV2ZW50cyAqL1xuICBnZXQgdGlja2V0ZWRFdmVudHNFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygndGlja2V0ZWRFdmVudHNFbmFibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgaW5jcmVhc2VkIGN1c3RvbSBzdGlja2VyIHNsb3RzICovXG4gIGdldCBtb3JlU3RpY2tlcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdtb3JlU3RpY2tlcnMnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIGFibGUgdG8gc2V0IHJvbGUgaWNvbnMgKi9cbiAgZ2V0IHJvbGVJY29ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3JvbGVJY29ucycpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIHNldCB1cCBhdXRvIG1vZGVyYXRpb24gcnVsZXMgKi9cbiAgZ2V0IGF1dG9Nb2RlcmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnYXV0b01vZGVyYXRpb24nKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBwYXVzZWQgaW52aXRlcywgcHJldmVudGluZyBuZXcgdXNlcnMgZnJvbSBqb2luaW5nICovXG4gIGdldCBpbnZpdGVzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdpbnZpdGVzRGlzYWJsZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIHVzaW5nIHRoZSBvbGQgcGVybWlzc2lvbnMgY29uZmlndXJhdGlvbiBiZWhhdmlvciAqL1xuICBnZXQgYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnNWMigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2FwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zVjInKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBlbmFibGVkIG1vbmV0aXphdGlvbi4gKi9cbiAgZ2V0IGNyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnY3JlYXRvck1vbmV0aXphYmxlUHJvdmlzaW9uYWwnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBlbmFibGVkIHRoZSByb2xlIHN1YnNjcmlwdGlvbiBwcm9tbyBwYWdlLiAqL1xuICBnZXQgY3JlYXRvclN0b3JlUGFnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2NyZWF0b3JTdG9yZVBhZ2UnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBkaXNhYmxlZCBhbGVydHMgZm9yIGpvaW4gcmFpZHMgaW4gdGhlIGNvbmZpZ3VyZWQgc2FmZXR5IGFsZXJ0cyBjaGFubmVsICovXG4gIGdldCByYWlkQWxlcnRzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdyYWlkQWxlcnRzRGlzYWJsZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyByb2xlIHN1YnNjcmlwdGlvbnMgdGhhdCBjYW4gYmUgcHVyY2hhc2VkLiAqL1xuICBnZXQgcm9sZVN1YnNjcmlwdGlvbnNBdmFpbGFibGVGb3JQdXJjaGFzZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3JvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2UnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBlbmFibGVkIHJvbGUgc3Vic2NyaXB0aW9ucy4gKi9cbiAgZ2V0IHJvbGVTdWJzY3JpcHRpb25zRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3JvbGVTdWJzY3JpcHRpb25zRW5hYmxlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGNyZWF0ZWQgc291bmRib2FyZCBzb3VuZHMuICovXG4gIGdldCBzb3VuZGJvYXJkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnc291bmRib2FyZCcpXG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IHRoZSBwZXJtaXNzaW9ucyBleGlzdCBpbiB0aGlzICovXG4gIGhhcyhwZXJtaXNzaW9uczogR3VpbGRUb2dnbGVLZXlzIHwgR3VpbGRUb2dnbGVLZXlzW10pOiBib29sZWFuIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocGVybWlzc2lvbnMpKSByZXR1cm4gc3VwZXIuY29udGFpbnMoR3VpbGRUb2dnbGVbcGVybWlzc2lvbnNdKVxuXG4gICAgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKHBlcm1pc3Npb25zLnJlZHVjZSgoYSwgYikgPT4gKGEgfD0gR3VpbGRUb2dnbGVbYl0pLCAwbikpXG4gIH1cblxuICAvKiogTGlzdHMgYWxsIHRoZSB0b2dnbGVzIGZvciB0aGUgcm9sZSBhbmQgd2hldGhlciBvciBub3QgZWFjaCBpcyB0cnVlIG9yIGZhbHNlLiAqL1xuICBsaXN0KCk6IFJlY29yZDxHdWlsZFRvZ2dsZUtleXMsIGJvb2xlYW4+IHtcbiAgICBjb25zdCBqc29uOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoR3VpbGRUb2dnbGUpKSB7XG4gICAgICBqc29uW2tleV0gPSBzdXBlci5jb250YWlucyh2YWx1ZSlcbiAgICB9XG5cbiAgICByZXR1cm4ganNvbiBhcyBSZWNvcmQ8R3VpbGRUb2dnbGVLZXlzLCBib29sZWFuPlxuICB9XG59XG5cbmV4cG9ydCB0eXBlIEd1aWxkVG9nZ2xlS2V5cyA9IGtleW9mIHR5cGVvZiBHdWlsZFRvZ2dsZVxuXG5leHBvcnQgdHlwZSBHdWlsZEZlYXR1cmVLZXlzID0gKHR5cGVvZiBmZWF0dXJlTmFtZXMpW251bWJlcl1cbiJdLCJuYW1lcyI6WyJHdWlsZEZlYXR1cmVzIiwiVG9nZ2xlQml0ZmllbGRCaWdpbnQiLCJmZWF0dXJlTmFtZXMiLCJHdWlsZFRvZ2dsZSIsIm93bmVyIiwid2lkZ2V0RW5hYmxlZCIsImxhcmdlIiwidW5hdmFpbGFibGUiLCJwcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkIiwiYW5pbWF0ZWRCYW5uZXIiLCJhbmltYXRlZEljb24iLCJhcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1YyIiwiYXV0b01vZGVyYXRpb24iLCJiYW5uZXIiLCJjb21tdW5pdHkiLCJjcmVhdG9yTW9uZXRpemFibGVQcm92aXNpb25hbCIsImNyZWF0b3JTdG9yZVBhZ2UiLCJkZXZlbG9wZXJTdXBwb3J0U2VydmVyIiwiZGlzY292ZXJhYmxlIiwiZmVhdHVyYWJsZSIsImludml0ZXNEaXNhYmxlZCIsImludml0ZVNwbGFzaCIsIm1lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkIiwibW9yZVNvdW5kYm9hcmQiLCJtb3JlU3RpY2tlcnMiLCJuZXdzIiwicGFydG5lcmVkIiwicHJldmlld0VuYWJsZWQiLCJyYWlkQWxlcnRzRGlzYWJsZWQiLCJyb2xlSWNvbnMiLCJyb2xlU3Vic2NyaXB0aW9uc0F2YWlsYWJsZUZvclB1cmNoYXNlIiwicm9sZVN1YnNjcmlwdGlvbnNFbmFibGVkIiwic291bmRib2FyZCIsInRpY2tldGVkRXZlbnRzRW5hYmxlZCIsInZhbml0eVVybCIsInZlcmlmaWVkIiwidmlwUmVnaW9ucyIsIndlbGNvbWVTY3JlZW5FbmFibGVkIiwiR3VpbGRUb2dnbGVzIiwiY29uc3RydWN0b3IiLCJndWlsZE9yVG9nZ2xlc0JpZ2ludCIsImJpdGZpZWxkIiwiZ3VpbGQiLCJmZWF0dXJlcyIsImFkZCIsIndpZGdldF9lbmFibGVkIiwicHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZCIsImluY2x1ZGVzIiwiQW5pbWF0ZWRCYW5uZXIiLCJBbmltYXRlZEljb24iLCJBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1YyIiwiQXV0b01vZGVyYXRpb24iLCJCYW5uZXIiLCJDb21tdW5pdHkiLCJDcmVhdG9yTW9uZXRpemFibGVQcm92aXNpb25hbCIsIkNyZWF0b3JTdG9yZVBhZ2UiLCJEZXZlbG9wZXJTdXBwb3J0U2VydmVyIiwiRGlzY292ZXJhYmxlIiwiRmVhdHVyYWJsZSIsIkludml0ZXNEaXNhYmxlZCIsIkludml0ZVNwbGFzaCIsIk1lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkIiwiTW9yZVNvdW5kYm9hcmQiLCJNb3JlU3RpY2tlcnMiLCJOZXdzIiwiUGFydG5lcmVkIiwiUHJldmlld0VuYWJsZWQiLCJSYWlkQWxlcnRzRGlzYWJsZWQiLCJSb2xlSWNvbnMiLCJSb2xlU3Vic2NyaXB0aW9uc0F2YWlsYWJsZUZvclB1cmNoYXNlIiwiUm9sZVN1YnNjcmlwdGlvbnNFbmFibGVkIiwiU291bmRib2FyZCIsIlRpY2tldGVkRXZlbnRzRW5hYmxlZCIsIlZhbml0eVVybCIsIlZlcmlmaWVkIiwiVmlwUmVnaW9ucyIsIldlbGNvbWVTY3JlZW5FbmFibGVkIiwia2V5IiwiT2JqZWN0Iiwia2V5cyIsImNvbnRhaW5zIiwicHVzaCIsImhhcyIsInBlcm1pc3Npb25zIiwiQXJyYXkiLCJpc0FycmF5IiwicmVkdWNlIiwiYSIsImIiLCJsaXN0IiwianNvbiIsInZhbHVlIiwiZW50cmllcyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBNEJBLGFBQWEsUUFBUSxvQkFBbUI7QUFDcEUsU0FBU0Msb0JB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
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy9ndWlsZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIERpc2NvcmRHdWlsZCwgR3VpbGRGZWF0dXJlcyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGRCaWdpbnQgfSBmcm9tICcuL1RvZ2dsZUJpdGZpZWxkLmpzJ1xuXG5jb25zdCBmZWF0dXJlTmFtZXMgPSBbXG4gICdhbmltYXRlZEJhbm5lcicsXG4gICdhbmltYXRlZEljb24nLFxuICAnYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnNWMicsXG4gICdhdXRvTW9kZXJhdGlvbicsXG4gICdiYW5uZXInLFxuICAnY29tbXVuaXR5JyxcbiAgJ2NyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsJyxcbiAgJ2NyZWF0b3JTdG9yZVBhZ2UnLFxuICAnZGV2ZWxvcGVyU3VwcG9ydFNlcnZlcicsXG4gICdkaXNjb3ZlcmFibGUnLFxuICAnZmVhdHVyYWJsZScsXG4gICdpbnZpdGVzRGlzYWJsZWQnLFxuICAnaW52aXRlU3BsYXNoJyxcbiAgJ21lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkJyxcbiAgJ21vcmVTb3VuZGJvYXJkJyxcbiAgJ21vcmVTdGlja2VycycsXG4gICduZXdzJyxcbiAgJ3BhcnRuZXJlZCcsXG4gICdwcmV2aWV3RW5hYmxlZCcsXG4gICdyYWlkQWxlcnRzRGlzYWJsZWQnLFxuICAncm9sZUljb25zJyxcbiAgJ3JvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2UnLFxuICAncm9sZVN1YnNjcmlwdGlvbnNFbmFibGVkJyxcbiAgJ3RpY2tldGVkRXZlbnRzRW5hYmxlZCcsXG4gICd2YW5pdHlVcmwnLFxuICAndmVyaWZpZWQnLFxuICAndmlwUmVnaW9ucycsXG4gICd3ZWxjb21lU2NyZWVuRW5hYmxlZCcsXG4gICdndWVzdHNFbmFibGVkJyxcbiAgJ2d1aWxkVGFncycsXG4gICdlbmhhbmNlZFJvbGVDb2xvcnMnLFxuXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgR3VpbGRUb2dnbGUgPSB7XG4gIC8qKiBXaGV0aGVyIHRoZSBib3QgaXMgdGhlIG93bmVyIG9mIHRoZSBndWlsZCAqL1xuICBvd25lcjogMW4gPDwgMG4sXG4gIC8qKiBXaGV0aGVyIHRoZSBzZXJ2ZXIgd2lkZ2V0IGlzIGVuYWJsZWQgKi9cbiAgd2lkZ2V0RW5hYmxlZDogMW4gPDwgMW4sXG4gIC8qKiBXaGV0aGVyIHRoaXMgaXMgY29uc2lkZXJlZCBhIGxhcmdlIGd1aWxkICovXG4gIGxhcmdlOiAxbiA8PCAybixcbiAgLyoqIFdoZXRoZXIgdGhpcyBndWlsZCBpcyB1bmF2YWlsYWJsZSBkdWUgdG8gYW4gb3V0YWdlICovXG4gIHVuYXZhaWxhYmxlOiAxbiA8PCAzbixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyB0aGUgYm9vc3QgcHJvZ3Jlc3MgYmFyIGVuYWJsZWQgKi9cbiAgcHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZDogMW4gPDwgNG4sXG5cbiAgLy8gR1VJTEQgRkVBVFVSRVMgQVJFIEJFTE9XIFRISVNcblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBzZXQgYW4gYW5pbWF0ZWQgZ3VpbGQgYmFubmVyIGltYWdlICovXG4gIGFuaW1hdGVkQmFubmVyOiAxbiA8PCAxMW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhbiBhbmltYXRlZCBndWlsZCBpY29uICovXG4gIGFuaW1hdGVkSWNvbjogMW4gPDwgMTZuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaXMgdXNpbmcgdGhlIG9sZCBwZXJtaXNzaW9ucyBjb25maWd1cmF0aW9uIGJlaGF2aW9yICovXG4gIGFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zVjI6IDFuIDw8IDE0bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBzZXQgdXAgYXV0byBtb2RlcmF0aW9uIHJ1bGVzICovXG4gIGF1dG9Nb2RlcmF0aW9uOiAxbiA8PCAyOG4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhIGd1aWxkIGJhbm5lciBpbWFnZSAqL1xuICBiYW5uZXI6IDFuIDw8IDE3bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGNhbiBlbmFibGUgd2VsY29tZSBzY3JlZW4sIE1lbWJlcnNoaXAgU2NyZWVuaW5nLCBzdGFnZSBjaGFubmVscyBhbmQgZGlzY292ZXJ5LCBhbmQgcmVjZWl2ZXMgY29tbXVuaXR5IHVwZGF0ZXMgKi9cbiAgY29tbXVuaXR5OiAxbiA8PCAxMG4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCBtb25ldGl6YXRpb24uICovXG4gIGNyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsOiAxbiA8PCAzMW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCB0aGUgcm9sZSBzdWJzY3JpcHRpb24gcHJvbW8gcGFnZS4gKi9cbiAgY3JlYXRvclN0b3JlUGFnZTogMW4gPDwgMzJuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGJlZW4gc2V0IGFzIGEgc3VwcG9ydCBzZXJ2ZXIgb24gdGhlIEFwcCBEaXJlY3RvcnkgKi9cbiAgZGV2ZWxvcGVyU3VwcG9ydFNlcnZlcjogMW4gPDwgMzBuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaXMgYWJsZSB0byBiZSBkaXNjb3ZlcmVkIGluIHRoZSBkaXJlY3RvcnkgKi9cbiAgZGlzY292ZXJhYmxlOiAxbiA8PCAxM24sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyBhYmxlIHRvIGJlIGZlYXR1cmVkIGluIHRoZSBkaXJlY3RvcnkgKi9cbiAgZmVhdHVyYWJsZTogMW4gPDwgMTVuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIHBhdXNlZCBpbnZpdGVzLCBwcmV2ZW50aW5nIG5ldyB1c2VycyBmcm9tIGpvaW5pbmcgKi9cbiAgaW52aXRlc0Rpc2FibGVkOiAxbiA8PCAyOW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhbiBpbnZpdGUgc3BsYXNoIGJhY2tncm91bmQgKi9cbiAgaW52aXRlU3BsYXNoOiAxbiA8PCA1bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBlbmFibGVkIFtNZW1iZXJzaGlwIFNjcmVlbmluZ10oaHR0cHM6Ly9kaXNjb3JkLmNvbS9kZXZlbG9wZXJzL2RvY3MvcmVzb3VyY2VzL2d1aWxkI21lbWJlcnNoaXAtc2NyZWVuaW5nLW9iamVjdCkgKi9cbiAgbWVtYmVyVmVyaWZpY2F0aW9uR2F0ZUVuYWJsZWQ6IDFuIDw8IDE5bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBtb3JlIHNvdW5kYm9hcmQgc291bmQgc2xvdCAqL1xuICBtb3JlU291bmRib2FyZDogMW4gPDwgMjRuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGluY3JlYXNlZCBjdXN0b20gc3RpY2tlciBzbG90cyAqL1xuICBtb3JlU3RpY2tlcnM6IDFuIDw8IDIzbixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gY3JlYXRlIG5ld3MgY2hhbm5lbHMgKi9cbiAgbmV3czogMW4gPDwgMTJuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaXMgcGFydG5lcmVkICovXG4gIHBhcnRuZXJlZDogMW4gPDwgOW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBjYW4gYmUgcHJldmlld2VkIGJlZm9yZSBqb2luaW5nIHZpYSBNZW1iZXJzaGlwIFNjcmVlbmluZyBvciB0aGUgZGlyZWN0b3J5ICovXG4gIHByZXZpZXdFbmFibGVkOiAxbiA8PCAyMG4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZGlzYWJsZWQgYWxlcnRzIGZvciBqb2luIHJhaWRzIGluIHRoZSBjb25maWd1cmVkIHNhZmV0eSBhbGVydHMgY2hhbm5lbCAqL1xuICByYWlkQWxlcnRzRGlzYWJsZWQ6IDFuIDw8IDIybixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIGFibGUgdG8gc2V0IHJvbGUgaWNvbnMgKi9cbiAgcm9sZUljb25zOiAxbiA8PCAyN24sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgcm9sZSBzdWJzY3JpcHRpb25zIHRoYXQgY2FuIGJlIHB1cmNoYXNlZC4gKi9cbiAgcm9sZVN1YnNjcmlwdGlvbnNBdmFpbGFibGVGb3JQdXJjaGFzZTogMW4gPDwgMzNuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGVuYWJsZWQgcm9sZSBzdWJzY3JpcHRpb25zLiAqL1xuICByb2xlU3Vic2NyaXB0aW9uc0VuYWJsZWQ6IDFuIDw8IDM0bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBjcmVhdGVkIHNvdW5kYm9hcmQgc291bmRzLiAqL1xuICBzb3VuZGJvYXJkOiAxbiA8PCAyNW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCB0aWNrZXRlZCBldmVudHMgKi9cbiAgdGlja2V0ZWRFdmVudHNFbmFibGVkOiAxbiA8PCAyMW4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhIHZhbml0eSBVUkwgKi9cbiAgdmFuaXR5VXJsOiAxbiA8PCA3bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIHZlcmlmaWVkICovXG4gIHZlcmlmaWVkOiAxbiA8PCA4bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IDM4NCBrYnBzIGJpdHJhdGUgaW4gdm9pY2UgKHByZXZpb3VzbHkgVklQIHZvaWNlIHNlcnZlcnMpICovXG4gIHZpcFJlZ2lvbnM6IDFuIDw8IDZuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGVuYWJsZWQgdGhlIHdlbGNvbWUgc2NyZWVuICovXG4gIHdlbGNvbWVTY3JlZW5FbmFibGVkOiAxbiA8PCAxOG4sXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIGd1ZXN0IGludml0ZXMgKi9cbiAgZ3Vlc3RzRW5hYmxlZDogMW4gPDwgMjZuLFxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGFjY2VzcyB0byBzZXQgZ3VpbGQgdGFncyAqL1xuICBndWlsZFRhZ3M6IDFuIDw8IDM2bixcbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGlzIGFibGUgdG8gc2V0IGdyYWRpZW50IGNvbG9ycyB0byByb2xlcyAqL1xuICBlbmhhbmNlZFJvbGVDb2xvcnM6IDFuIDw8IDM1bixcbn1cblxuZXhwb3J0IGNsYXNzIEd1aWxkVG9nZ2xlcyBleHRlbmRzIFRvZ2dsZUJpdGZpZWxkQmlnaW50IHtcbiAgY29uc3RydWN0b3IoZ3VpbGRPclRvZ2dsZXNCaWdpbnQ6IERpc2NvcmRHdWlsZCB8IGJpZ2ludCkge1xuICAgIHN1cGVyKClcblxuICAgIGlmICh0eXBlb2YgZ3VpbGRPclRvZ2dsZXNCaWdpbnQgPT09ICdiaWdpbnQnKSB0aGlzLmJpdGZpZWxkID0gZ3VpbGRPclRvZ2dsZXNCaWdpbnRcbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IGd1aWxkID0gZ3VpbGRPclRvZ2dsZXNCaWdpbnRcbiAgICAgIC8vIENhdXNlIGRpc2NvcmQgYmUgc21hcnQgbGlrZSB0aGF0XG4gICAgICBpZiAoIWd1aWxkLmZlYXR1cmVzKSBndWlsZC5mZWF0dXJlcyA9IFtdXG5cbiAgICAgIGlmIChndWlsZC5vd25lcikgdGhpcy5hZGQoR3VpbGRUb2dnbGUub3duZXIpXG4gICAgICBpZiAoZ3VpbGQud2lkZ2V0X2VuYWJsZWQpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLndpZGdldEVuYWJsZWQpXG4gICAgICBpZiAoZ3VpbGQubGFyZ2UpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmxhcmdlKVxuICAgICAgaWYgKGd1aWxkLnVuYXZhaWxhYmxlKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS51bmF2YWlsYWJsZSlcbiAgICAgIGlmIChndWlsZC5wcmVtaXVtX3Byb2dyZXNzX2Jhcl9lbmFibGVkKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5wcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkKVxuXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5BbmltYXRlZEJhbm5lcikpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmFuaW1hdGVkQmFubmVyKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuQW5pbWF0ZWRJY29uKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuYW5pbWF0ZWRJY29uKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnNWMikpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zVjIpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5BdXRvTW9kZXJhdGlvbikpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmF1dG9Nb2RlcmF0aW9uKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuQmFubmVyKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuYmFubmVyKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuQ29tbXVuaXR5KSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuY29tbXVuaXR5KVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuQ3JlYXRvck1vbmV0aXphYmxlUHJvdmlzaW9uYWwpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5jcmVhdG9yTW9uZXRpemFibGVQcm92aXNpb25hbClcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkNyZWF0b3JTdG9yZVBhZ2UpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5jcmVhdG9yU3RvcmVQYWdlKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuRGV2ZWxvcGVyU3VwcG9ydFNlcnZlcikpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmRldmVsb3BlclN1cHBvcnRTZXJ2ZXIpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5EaXNjb3ZlcmFibGUpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5kaXNjb3ZlcmFibGUpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5GZWF0dXJhYmxlKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuZmVhdHVyYWJsZSlcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkludml0ZXNEaXNhYmxlZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmludml0ZXNEaXNhYmxlZClcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkludml0ZVNwbGFzaCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmludml0ZVNwbGFzaClcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLk1lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUubWVtYmVyVmVyaWZpY2F0aW9uR2F0ZUVuYWJsZWQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5Nb3JlU291bmRib2FyZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLm1vcmVTb3VuZGJvYXJkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuTW9yZVN0aWNrZXJzKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUubW9yZVN0aWNrZXJzKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuTmV3cykpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLm5ld3MpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5QYXJ0bmVyZWQpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5wYXJ0bmVyZWQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5QcmV2aWV3RW5hYmxlZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnByZXZpZXdFbmFibGVkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuUmFpZEFsZXJ0c0Rpc2FibGVkKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUucmFpZEFsZXJ0c0Rpc2FibGVkKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuUm9sZUljb25zKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUucm9sZUljb25zKVxuICAgICAgaWYgKGd1aWxkLmZlYXR1cmVzLmluY2x1ZGVzKEd1aWxkRmVhdHVyZXMuUm9sZVN1YnNjcmlwdGlvbnNBdmFpbGFibGVGb3JQdXJjaGFzZSkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnJvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2UpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5Sb2xlU3Vic2NyaXB0aW9uc0VuYWJsZWQpKSB0aGlzLmFkZChHdWlsZFRvZ2dsZS5yb2xlU3Vic2NyaXB0aW9uc0VuYWJsZWQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5Tb3VuZGJvYXJkKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuc291bmRib2FyZClcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLlRpY2tldGVkRXZlbnRzRW5hYmxlZCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnRpY2tldGVkRXZlbnRzRW5hYmxlZClcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLlZhbml0eVVybCkpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLnZhbml0eVVybClcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLlZlcmlmaWVkKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUudmVyaWZpZWQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5WaXBSZWdpb25zKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUudmlwUmVnaW9ucylcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLldlbGNvbWVTY3JlZW5FbmFibGVkKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUud2VsY29tZVNjcmVlbkVuYWJsZWQpXG4gICAgICBpZiAoZ3VpbGQuZmVhdHVyZXMuaW5jbHVkZXMoR3VpbGRGZWF0dXJlcy5HdWVzdHNFbmFibGVkKSkgdGhpcy5hZGQoR3VpbGRUb2dnbGUuZ3Vlc3RzRW5hYmxlZClcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkd1aWxkVGFncykpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmd1aWxkVGFncylcbiAgICAgIGlmIChndWlsZC5mZWF0dXJlcy5pbmNsdWRlcyhHdWlsZEZlYXR1cmVzLkVuaGFuY2VkUm9sZUNvbG9ycykpIHRoaXMuYWRkKEd1aWxkVG9nZ2xlLmVuaGFuY2VkUm9sZUNvbG9ycylcbiAgICB9XG4gIH1cblxuICBnZXQgZmVhdHVyZXMoKTogR3VpbGRGZWF0dXJlS2V5c1tdIHtcbiAgICBjb25zdCBmZWF0dXJlczogR3VpbGRGZWF0dXJlS2V5c1tdID0gW11cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhHdWlsZFRvZ2dsZSkpIHtcbiAgICAgIGlmICghZmVhdHVyZU5hbWVzLmluY2x1ZGVzKGtleSBhcyBHdWlsZEZlYXR1cmVLZXlzKSkgY29udGludWVcbiAgICAgIGlmICghc3VwZXIuY29udGFpbnMoR3VpbGRUb2dnbGVba2V5IGFzIEd1aWxkVG9nZ2xlS2V5c10pKSBjb250aW51ZVxuXG4gICAgICBmZWF0dXJlcy5wdXNoKGtleSBhcyBHdWlsZEZlYXR1cmVLZXlzKVxuICAgIH1cblxuICAgIHJldHVybiBmZWF0dXJlc1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGJvdCBpcyB0aGUgb3duZXIgb2YgdGhlIGd1aWxkICovXG4gIGdldCBvd25lcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ293bmVyJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBzZXJ2ZXIgd2lkZ2V0IGlzIGVuYWJsZWQgKi9cbiAgZ2V0IHdpZGdldEVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCd3aWRnZXRFbmFibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoaXMgaXMgY29uc2lkZXJlZCBhIGxhcmdlIGd1aWxkICovXG4gIGdldCBsYXJnZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2xhcmdlJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoaXMgZ3VpbGQgaXMgdW5hdmFpbGFibGUgZHVlIHRvIGFuIG91dGFnZSAqL1xuICBnZXQgdW5hdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCd1bmF2YWlsYWJsZScpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIHRoZSBib29zdCBwcm9ncmVzcyBiYXIgZW5hYmxlZCAqL1xuICBnZXQgcHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3ByZW1pdW1Qcm9ncmVzc0JhckVuYWJsZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IGFuIGludml0ZSBzcGxhc2ggYmFja2dyb3VuZCAqL1xuICBnZXQgaW52aXRlU3BsYXNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnaW52aXRlU3BsYXNoJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCAzODQga2JwcyBiaXRyYXRlIGluIHZvaWNlIChwcmV2aW91c2x5IFZJUCB2b2ljZSBzZXJ2ZXJzKSAqL1xuICBnZXQgdmlwUmVnaW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3ZpcFJlZ2lvbnMnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IGEgdmFuaXR5IFVSTCAqL1xuICBnZXQgdmFuaXR5VXJsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygndmFuaXR5VXJsJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyB2ZXJpZmllZCAqL1xuICBnZXQgdmVyaWZpZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCd2ZXJpZmllZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaXMgcGFydG5lcmVkICovXG4gIGdldCBwYXJ0bmVyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdwYXJ0bmVyZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGNhbiBlbmFibGUgd2VsY29tZSBzY3JlZW4sIE1lbWJlcnNoaXAgU2NyZWVuaW5nLCBzdGFnZSBjaGFubmVscyBhbmQgZGlzY292ZXJ5LCBhbmQgcmVjZWl2ZXMgY29tbXVuaXR5IHVwZGF0ZXMgKi9cbiAgZ2V0IGNvbW11bml0eSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2NvbW11bml0eScpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgR3VpbGQgaGFzIGJlZW4gc2V0IGFzIGEgc3VwcG9ydCBzZXJ2ZXIgb24gdGhlIEFwcCBEaXJlY3RvcnkgKi9cbiAgZ2V0IGRldmVsb3BlclN1cHBvcnRTZXJ2ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdkZXZlbG9wZXJTdXBwb3J0U2VydmVyJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhbiBhbmltYXRlZCBndWlsZCBiYW5uZXIgaW1hZ2UgKi9cbiAgZ2V0IGFuaW1hdGVkQmFubmVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnYW5pbWF0ZWRCYW5uZXInKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gY3JlYXRlIG5ld3MgY2hhbm5lbHMgKi9cbiAgZ2V0IG5ld3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCduZXdzJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyBhYmxlIHRvIGJlIGRpc2NvdmVyZWQgaW4gdGhlIGRpcmVjdG9yeSAqL1xuICBnZXQgZGlzY292ZXJhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnZGlzY292ZXJhYmxlJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyBhYmxlIHRvIGJlIGZlYXR1cmVkIGluIHRoZSBkaXJlY3RvcnkgKi9cbiAgZ2V0IGZlYXR1cmFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdmZWF0dXJhYmxlJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgYWNjZXNzIHRvIHNldCBhbiBhbmltYXRlZCBndWlsZCBpY29uICovXG4gIGdldCBhbmltYXRlZEljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdhbmltYXRlZEljb24nKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IGEgZ3VpbGQgYmFubmVyIGltYWdlICovXG4gIGdldCBiYW5uZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdiYW5uZXInKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBlbmFibGVkIHRoZSB3ZWxjb21lIHNjcmVlbiAqL1xuICBnZXQgd2VsY29tZVNjcmVlbkVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCd3ZWxjb21lU2NyZWVuRW5hYmxlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGVuYWJsZWQgW01lbWJlcnNoaXAgU2NyZWVuaW5nXShodHRwczovL2Rpc2NvcmQuY29tL2RldmVsb3BlcnMvZG9jcy9yZXNvdXJjZXMvZ3VpbGQjbWVtYmVyc2hpcC1zY3JlZW5pbmctb2JqZWN0KSAqL1xuICBnZXQgbWVtYmVyVmVyaWZpY2F0aW9uR2F0ZUVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdtZW1iZXJWZXJpZmljYXRpb25HYXRlRW5hYmxlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIG1vcmUgc291bmRib2FyZCBzb3VuZCBzbG90ICovXG4gIGdldCBtb3JlU291bmRib2FyZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ21vcmVTb3VuZGJvYXJkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBjYW4gYmUgcHJldmlld2VkIGJlZm9yZSBqb2luaW5nIHZpYSBNZW1iZXJzaGlwIFNjcmVlbmluZyBvciB0aGUgZGlyZWN0b3J5ICovXG4gIGdldCBwcmV2aWV3RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3ByZXZpZXdFbmFibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCB0aWNrZXRlZCBldmVudHMgKi9cbiAgZ2V0IHRpY2tldGVkRXZlbnRzRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3RpY2tldGVkRXZlbnRzRW5hYmxlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaGFzIGluY3JlYXNlZCBjdXN0b20gc3RpY2tlciBzbG90cyAqL1xuICBnZXQgbW9yZVN0aWNrZXJzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnbW9yZVN0aWNrZXJzJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyBhYmxlIHRvIHNldCByb2xlIGljb25zICovXG4gIGdldCByb2xlSWNvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdyb2xlSWNvbnMnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBzZXQgdXAgYXV0byBtb2RlcmF0aW9uIHJ1bGVzICovXG4gIGdldCBhdXRvTW9kZXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2F1dG9Nb2RlcmF0aW9uJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgcGF1c2VkIGludml0ZXMsIHByZXZlbnRpbmcgbmV3IHVzZXJzIGZyb20gam9pbmluZyAqL1xuICBnZXQgaW52aXRlc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnaW52aXRlc0Rpc2FibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBpcyB1c2luZyB0aGUgb2xkIHBlcm1pc3Npb25zIGNvbmZpZ3VyYXRpb24gYmVoYXZpb3IgKi9cbiAgZ2V0IGFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zVjIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdhcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1YyJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCBtb25ldGl6YXRpb24uICovXG4gIGdldCBjcmVhdG9yTW9uZXRpemFibGVQcm92aXNpb25hbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2NyZWF0b3JNb25ldGl6YWJsZVByb3Zpc2lvbmFsJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCB0aGUgcm9sZSBzdWJzY3JpcHRpb24gcHJvbW8gcGFnZS4gKi9cbiAgZ2V0IGNyZWF0b3JTdG9yZVBhZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdjcmVhdG9yU3RvcmVQYWdlJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZGlzYWJsZWQgYWxlcnRzIGZvciBqb2luIHJhaWRzIGluIHRoZSBjb25maWd1cmVkIHNhZmV0eSBhbGVydHMgY2hhbm5lbCAqL1xuICBnZXQgcmFpZEFsZXJ0c0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygncmFpZEFsZXJ0c0Rpc2FibGVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgcm9sZSBzdWJzY3JpcHRpb25zIHRoYXQgY2FuIGJlIHB1cmNoYXNlZC4gKi9cbiAgZ2V0IHJvbGVTdWJzY3JpcHRpb25zQXZhaWxhYmxlRm9yUHVyY2hhc2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdyb2xlU3Vic2NyaXB0aW9uc0F2YWlsYWJsZUZvclB1cmNoYXNlJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBndWlsZCBoYXMgZW5hYmxlZCByb2xlIHN1YnNjcmlwdGlvbnMuICovXG4gIGdldCByb2xlU3Vic2NyaXB0aW9uc0VuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdyb2xlU3Vic2NyaXB0aW9uc0VuYWJsZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBjcmVhdGVkIHNvdW5kYm9hcmQgc291bmRzLiAqL1xuICBnZXQgc291bmRib2FyZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3NvdW5kYm9hcmQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gZ3Vlc3QgaW52aXRlcyAqL1xuICBnZXQgZ3Vlc3RzRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2d1ZXN0c0VuYWJsZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGd1aWxkIGhhcyBhY2Nlc3MgdG8gc2V0IGd1aWxkIHRhZ3MgKi9cbiAgZ2V0IGd1aWxkVGFncygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2d1aWxkVGFncycpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZ3VpbGQgaXMgYWJsZSB0byBzZXQgZ3JhZGllbnQgY29sb3JzIHRvIHJvbGVzICovXG4gIGdldCBlbmhhbmNlZFJvbGVDb2xvcnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdlbmhhbmNlZFJvbGVDb2xvcnMnKVxuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGUgcGVybWlzc2lvbnMgZXhpc3QgaW4gdGhpcyAqL1xuICBoYXMocGVybWlzc2lvbnM6IEd1aWxkVG9nZ2xlS2V5cyB8IEd1aWxkVG9nZ2xlS2V5c1tdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBlcm1pc3Npb25zKSkgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKEd1aWxkVG9nZ2xlW3Blcm1pc3Npb25zXSlcblxuICAgIHJldHVybiBzdXBlci5jb250YWlucyhwZXJtaXNzaW9ucy5yZWR1Y2UoKGEsIGIpID0+IChhIHw9IEd1aWxkVG9nZ2xlW2JdKSwgMG4pKVxuICB9XG5cbiAgLyoqIExpc3RzIGFsbCB0aGUgdG9nZ2xlcyBmb3IgdGhlIHJvbGUgYW5kIHdoZXRoZXIgb3Igbm90IGVhY2ggaXMgdHJ1ZSBvciBmYWxzZS4gKi9cbiAgbGlzdCgpOiBSZWNvcmQ8R3VpbGRUb2dnbGVLZXlzLCBib29sZWFuPiB7XG4gICAgY29uc3QganNvbjogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fVxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKEd1aWxkVG9nZ2xlKSkge1xuICAgICAganNvbltrZXldID0gc3VwZXIuY29udGFpbnModmFsdWUpXG4gICAgfVxuXG4gICAgcmV0dXJuIGpzb24gYXMgUmVjb3JkPEd1aWxkVG9nZ2xlS2V5cywgYm9vbGVhbj5cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBHdWlsZFRvZ2dsZUtleXMgPSBrZXlvZiB0eXBlb2YgR3VpbGRUb2dnbGVcblxuZXhwb3J0IHR5cGUgR3VpbGRGZWF0dXJlS2V5cyA9ICh0eXBlb2YgZmVhdHVyZU5hbWVzKVtudW1iZXJdXG4iXSwibmFtZXMiOlsiR3VpbGRGZWF0dXJlcyIsIlRvZ2dsZUJpdGZpZWxkQmlnaW50IiwiZmVhdHVyZU5hbWVzIiwiR3VpbGRUb2dnbGUiLCJvd25lciIsIndpZGdldEVuYWJsZWQiLCJsYXJnZSIsInVuYXZhaWxhYmxlIiwicHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCIsImFuaW1hdGVkQmFubmVyIiwiYW5pbWF0ZWRJY29uIiwiYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnNWMiIsImF1dG9Nb2RlcmF0aW9uIiwiYmFubmVyIiwiY29tbXVuaXR5IiwiY3JlYXRvck1vbmV0aXphYmxlUHJvdmlzaW9uYWwiLCJjcmVhdG9yU3RvcmVQYWdlIiwiZGV2ZWxvcGVyU3VwcG9ydFNlcnZlciIsImRpc2NvdmVyYWJsZSIsImZlYXR1cmFibGUiLCJpbnZpdGVzRGlzYWJsZWQiLCJpbnZpdGVTcGxhc2giLCJtZW1iZXJWZXJpZmljYXRpb25HYXRlRW5hYmxlZCIsIm1vcmVTb3VuZGJvYXJkIiwibW9yZVN0aWNrZXJzIiwibmV3cyIsInBhcnRuZXJlZCIsInByZXZpZXdFbmFibGVkIiwicmFpZEFsZXJ0c0Rpc2FibGVkIiwicm9sZUljb25zIiwicm9sZVN1YnNjcmlwdGlvbnNBdmFpbGFibGVGb3JQdXJjaGFzZSIsInJvbGVTdWJzY3JpcHRpb25zRW5hYmxlZCIsInNvdW5kYm9hcmQiLCJ0aWNrZXRlZEV2ZW50c0VuYWJsZWQiLCJ2YW5pdHlVcmwiLCJ2ZXJpZmllZCIsInZpcFJlZ2lvbnMiLCJ3ZWxjb21lU2NyZWVuRW5hYmxlZCIsImd1ZXN0c0VuYWJsZWQiLCJndWlsZFRhZ3MiLCJlbmhhbmNlZFJvbGVDb2xvcnMiLCJHdWlsZFRvZ2dsZXMiLCJndWlsZE9yVG9nZ2xlc0JpZ2ludCIsImJpdGZpZWxkIiwiZ3VpbGQiLCJmZWF0dXJlcyIsImFkZCIsIndpZGdldF9lbmFibGVkIiwicHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZCIsImluY2x1ZGVzIiwiQW5pbWF0ZWRCYW5uZXIiLCJBbmltYXRlZEljb24iLCJBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1YyIiwiQXV0b01vZGVyYXRpb24iLCJCYW5uZXIiLCJDb21tdW5pdHkiLCJDcmVhdG9yTW9uZXRpemFibGVQcm92aXNpb25hbCIsIkNyZWF0b3JTdG9yZVBhZ2UiLCJEZXZlbG9wZXJTdXBwb3J0U2VydmVyIiwiRGlzY292ZXJhYmxlIiwiRmVhdHVyYWJsZSIsIkludml0ZXNEaXNhYmxlZCIsIkludml0ZVNwbGFzaCIsIk1lbWJlclZlcmlmaWNhdGlvbkdhdGVFbmFibGVkIiwiTW9yZVNvdW5kYm9hcmQiLCJNb3JlU3RpY2tlcnMiLCJOZXdzIiwiUGFydG5lcmVkIiwiUHJldmlld0VuYWJsZWQiLCJSYWlkQWxlcnRzRGlzYWJsZWQiLCJSb2xlSWNvbnMiLCJSb2xlU3Vic2NyaXB0aW9uc0F2YWlsYWJsZUZvclB1cmNoYXNlIiwiUm9sZVN1YnNjcmlwdGlvbnNFbmFibGVkIiwiU291bmRib2FyZCIsIlRpY2tldGVkRXZlbnRzRW5hYmxlZCIsIlZhbml0eVVybCIsIlZlcmlmaWVkIiwiVmlwUmVnaW9ucyIsIldlbGNvbWVTY3JlZW5FbmFibGVkIiwiR3Vlc3RzRW5hYmxlZCIsIkd1aWxkVGFncyIsIkVuaGFuY2VkUm9sZUNvbG9ycyIsImtleSIsIk9iamVjdCIsImtleXMiLCJjb250YWlucyIsInB1c2giLCJoYXMiLCJwZXJtaXNzaW9ucyIsIkFycmF5IiwiaXNBcnJheSIsInJlZHVjZSIsImEiLCJiIiwibGlzdCIsImpzb24iLCJ2YWx1ZSIsImVudHJpZXMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQTRCQSxhQUFhLFFBQVEsb0JBQW1CO0FBQ3BFLFNBQVNDLG9CQUFvQixRQUFRLHNCQUFxQjtBQUUxRCxNQUFNQyxlQUFlO0lBQ25CO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFFRCxPQUFPLE1BQU1DLGNBQWM7SUFDekIsOENBQThDLEdBQzlDQyxPQUFPLEVBQUUsSUFBSSxFQUFFO0lBQ2YseUNBQXlDLEdBQ3pDQyxlQUFlLEVBQUUsSUFBSSxFQUFFO0lBQ3ZCLDZDQUE2QyxHQUM3Q0MsT0FBTyxFQUFFLElBQUksRUFBRTtJQUNmLHVEQUF1RCxHQUN2REMsYUFBYSxFQUFFLElBQUksRUFBRTtJQUNyQix5REFBeUQsR0FDekRDLDJCQUEyQixFQUFFLElBQUksRUFBRTtJQUVuQyxnQ0FBZ0M7SUFFaEMsdUVBQXVFLEdBQ3ZFQyxnQkFBZ0IsRUFBRSxJQUFJLEdBQUc7SUFDekIsK0RBQStELEdBQy9EQyxjQUFjLEVBQUUsSUFBSSxHQUFHO0lBQ3ZCLDBFQUEwRSxHQUMxRUMsaUNBQWlDLEVBQUUsSUFBSSxHQUFHO0lBQzFDLHVEQUF1RCxHQUN2REMsZ0JBQWdCLEVBQUUsSUFBSSxHQUFHO0lBQ3pCLDZEQUE2RCxHQUM3REMsUUFBUSxFQUFFLElBQUksR0FBRztJQUNqQixvSUFBb0ksR0FDcElDLFdBQVcsRUFBRSxJQUFJLEdBQUc7SUFDcEIsZ0RBQWdELEdBQ2hEQywrQkFBK0IsRUFBRSxJ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
@@ -19,7 +19,8 @@ export const MemberToggle = {
19
19
  /** Member has started Server Guide new member actions */ startedHomeActions: 1 << 8,
20
20
  /** Member has completed Server Guide new member actions */ completedHomeActions: 1 << 9,
21
21
  /** Member's username, display name, or nickname is blocked by AutoMod */ automodQuarantinedUsername: 1 << 10,
22
- /** Member has dismissed the DM settings upsell */ dmSettingsUpsellAcknowledged: 1 << 11
22
+ /** Member has dismissed the DM settings upsell */ dmSettingsUpsellAcknowledged: 1 << 11,
23
+ /** Member's guild tag is blocked by AutoMod */ automodQuarantinedGuildTag: 1 << 12
23
24
  };
24
25
  export class MemberToggles extends ToggleBitfield {
25
26
  constructor(memberOrTogglesInt){
@@ -40,6 +41,7 @@ export class MemberToggles extends ToggleBitfield {
40
41
  if (member.flags & MemberFlags.CompletedHomeActions) this.add(MemberToggle.completedHomeActions);
41
42
  if (member.flags & MemberFlags.AutomodQuarantinedUsername) this.add(MemberToggle.automodQuarantinedUsername);
42
43
  if (member.flags & MemberFlags.DmSettingsUpsellAcknowledged) this.add(MemberToggle.dmSettingsUpsellAcknowledged);
44
+ if (member.flags & MemberFlags.AutomodQuarantinedGuildTag) this.add(MemberToggle.automodQuarantinedGuildTag);
43
45
  }
44
46
  }
45
47
  }
@@ -54,6 +56,7 @@ export class MemberToggles extends ToggleBitfield {
54
56
  if (this.completedHomeActions) flags |= MemberFlags.CompletedHomeActions;
55
57
  if (this.automodQuarantinedUsername) flags |= MemberFlags.AutomodQuarantinedUsername;
56
58
  if (this.dmSettingsUpsellAcknowledged) flags |= MemberFlags.DmSettingsUpsellAcknowledged;
59
+ if (this.automodQuarantinedGuildTag) flags |= MemberFlags.AutomodQuarantinedGuildTag;
57
60
  return flags;
58
61
  }
59
62
  /** Whether the user belongs to an OAuth2 application */ get deaf() {
@@ -92,6 +95,9 @@ export class MemberToggles extends ToggleBitfield {
92
95
  /** Member has dismissed the DM settings upsell */ get dmSettingsUpsellAcknowledged() {
93
96
  return this.has('dmSettingsUpsellAcknowledged');
94
97
  }
98
+ /** Member's guild tag is blocked by AutoMod */ get automodQuarantinedGuildTag() {
99
+ return this.has('automodQuarantinedGuildTag');
100
+ }
95
101
  /** Checks whether or not the permissions exist in this */ has(permissions) {
96
102
  if (!Array.isArray(permissions)) return super.contains(MemberToggle[permissions]);
97
103
  return super.contains(permissions.reduce((a, b)=>a |= MemberToggle[b], 0));
@@ -105,4 +111,4 @@ export class MemberToggles extends ToggleBitfield {
105
111
  }
106
112
  }
107
113
 
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy9tZW1iZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEaXNjb3JkTWVtYmVyLCBNZW1iZXJGbGFncyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL1RvZ2dsZUJpdGZpZWxkLmpzJ1xuXG5jb25zdCBtZW1iZXJGbGFncyA9IFsnZGlkUmVqb2luJywgJ3N0YXJ0ZWRPbmJvYXJkaW5nJywgJ2J5cGFzc2VzVmVyaWZpY2F0aW9uJywgJ2NvbXBsZXRlZE9uYm9hcmRpbmcnXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgTWVtYmVyVG9nZ2xlID0ge1xuICAvKiogV2hldGhlciB0aGUgdXNlciBpcyBkZWFmZW5lZCBpbiB2b2ljZSBjaGFubmVscyAqL1xuICBkZWFmOiAxIDw8IDAsXG4gIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGlzIG11dGVkIGluIHZvaWNlIGNoYW5uZWxzICovXG4gIG11dGU6IDEgPDwgMSxcbiAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgaGFzIG5vdCB5ZXQgcGFzc2VkIHRoZSBndWlsZCdzIE1lbWJlcnNoaXAgU2NyZWVuaW5nIHJlcXVpcmVtZW50cyAqL1xuICBwZW5kaW5nOiAxIDw8IDIsXG5cbiAgLy8gTWVtYmVyIGZsYWdzXG5cbiAgLyoqIE1lbWJlciBoYXMgbGVmdCBhbmQgcmVqb2luZWQgdGhlIGd1aWxkICovXG4gIGRpZFJlam9pbjogMSA8PCAzLFxuICAvKiogTWVtYmVyIGhhcyBjb21wbGV0ZWQgb25ib2FyZGluZyAqL1xuICBzdGFydGVkT25ib2FyZGluZzogMSA8PCA0LFxuICAvKiogTWVtYmVyIGlzIGV4ZW1wdCBmcm9tIGd1aWxkIHZlcmlmaWNhdGlvbiByZXF1aXJlbWVudHMgKi9cbiAgYnlwYXNzZXNWZXJpZmljYXRpb246IDEgPDwgNSxcbiAgLyoqIE1lbWJlciBoYXMgc3RhcnRlZCBvbmJvYXJkaW5nICovXG4gIGNvbXBsZXRlZE9uYm9hcmRpbmc6IDEgPDwgNixcbiAgLyoqIE1lbWJlciBpcyBhIGd1ZXN0IGFuZCBjYW4gb25seSBhY2Nlc3MgdGhlIHZvaWNlIGNoYW5uZWwgdGhleSB3ZXJlIGludml0ZWQgdG8gKi9cbiAgaXNHdWVzdDogMSA8PCA3LFxuICAvKiogTWVtYmVyIGhhcyBzdGFydGVkIFNlcnZlciBHdWlkZSBuZXcgbWVtYmVyIGFjdGlvbnMgKi9cbiAgc3RhcnRlZEhvbWVBY3Rpb25zOiAxIDw8IDgsXG4gIC8qKiBNZW1iZXIgaGFzIGNvbXBsZXRlZCBTZXJ2ZXIgR3VpZGUgbmV3IG1lbWJlciBhY3Rpb25zICovXG4gIGNvbXBsZXRlZEhvbWVBY3Rpb25zOiAxIDw8IDksXG4gIC8qKiBNZW1iZXIncyB1c2VybmFtZSwgZGlzcGxheSBuYW1lLCBvciBuaWNrbmFtZSBpcyBibG9ja2VkIGJ5IEF1dG9Nb2QgKi9cbiAgYXV0b21vZFF1YXJhbnRpbmVkVXNlcm5hbWU6IDEgPDwgMTAsXG4gIC8qKiBNZW1iZXIgaGFzIGRpc21pc3NlZCB0aGUgRE0gc2V0dGluZ3MgdXBzZWxsICovXG4gIGRtU2V0dGluZ3NVcHNlbGxBY2tub3dsZWRnZWQ6IDEgPDwgMTEsXG59XG5cbmV4cG9ydCBjbGFzcyBNZW1iZXJUb2dnbGVzIGV4dGVuZHMgVG9nZ2xlQml0ZmllbGQge1xuICBjb25zdHJ1Y3RvcihtZW1iZXJPclRvZ2dsZXNJbnQ6IFBhcnRpYWw8RGlzY29yZE1lbWJlcj4gfCBudW1iZXIpIHtcbiAgICBzdXBlcigpXG5cbiAgICBpZiAodHlwZW9mIG1lbWJlck9yVG9nZ2xlc0ludCA9PT0gJ251bWJlcicpIHRoaXMuYml0ZmllbGQgPSBtZW1iZXJPclRvZ2dsZXNJbnRcbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IG1lbWJlciA9IG1lbWJlck9yVG9nZ2xlc0ludFxuXG4gICAgICBpZiAobWVtYmVyLmRlYWYpIHRoaXMuYWRkKE1lbWJlclRvZ2dsZS5kZWFmKVxuICAgICAgaWYgKG1lbWJlci5tdXRlKSB0aGlzLmFkZChNZW1iZXJUb2dnbGUubXV0ZSlcbiAgICAgIGlmIChtZW1iZXIucGVuZGluZykgdGhpcy5hZGQoTWVtYmVyVG9nZ2xlLnBlbmRpbmcpXG5cbiAgICAgIGlmIChtZW1iZXIuZmxhZ3MpIHtcbiAgICAgICAgaWYgKG1lbWJlci5mbGFncyAmIE1lbWJlckZsYWdzLkRpZFJlam9pbikgdGhpcy5hZGQoTWVtYmVyVG9nZ2xlLmRpZFJlam9pbilcbiAgICAgICAgaWYgKG1lbWJlci5mbGFncyAmIE1lbWJlckZsYWdzLlN0YXJ0ZWRPbmJvYXJkaW5nKSB0aGlzLmFkZChNZW1iZXJUb2dnbGUuc3RhcnRlZE9uYm9hcmRpbmcpXG4gICAgICAgIGlmIChtZW1iZXIuZmxhZ3MgJiBNZW1iZXJGbGFncy5CeXBhc3Nlc1ZlcmlmaWNhdGlvbikgdGhpcy5hZGQoTWVtYmVyVG9nZ2xlLmJ5cGFzc2VzVmVyaWZpY2F0aW9uKVxuICAgICAgICBpZiAobWVtYmVyLmZsYWdzICYgTWVtYmVyRmxhZ3MuQ29tcGxldGVkT25ib2FyZGluZykgdGhpcy5hZGQoTWVtYmVyVG9nZ2xlLmNvbXBsZXRlZE9uYm9hcmRpbmcpXG4gICAgICAgIGlmIChtZW1iZXIuZmxhZ3MgJiBNZW1iZXJGbGFncy5Jc0d1ZXN0KSB0aGlzLmFkZChNZW1iZXJUb2dnbGUuaXNHdWVzdClcbiAgICAgICAgaWYgKG1lbWJlci5mbGFncyAmIE1lbWJlckZsYWdzLlN0YXJ0ZWRIb21lQWN0aW9ucykgdGhpcy5hZGQoTWVtYmVyVG9nZ2xlLnN0YXJ0ZWRIb21lQWN0aW9ucylcbiAgICAgICAgaWYgKG1lbWJlci5mbGFncyAmIE1lbWJlckZsYWdzLkNvbXBsZXRlZEhvbWVBY3Rpb25zKSB0aGlzLmFkZChNZW1iZXJUb2dnbGUuY29tcGxldGVkSG9tZUFjdGlvbnMpXG4gICAgICAgIGlmIChtZW1iZXIuZmxhZ3MgJiBNZW1iZXJGbGFncy5BdXRvbW9kUXVhcmFudGluZWRVc2VybmFtZSkgdGhpcy5hZGQoTWVtYmVyVG9nZ2xlLmF1dG9tb2RRdWFyYW50aW5lZFVzZXJuYW1lKVxuICAgICAgICBpZiAobWVtYmVyLmZsYWdzICYgTWVtYmVyRmxhZ3MuRG1TZXR0aW5nc1Vwc2VsbEFja25vd2xlZGdlZCkgdGhpcy5hZGQoTWVtYmVyVG9nZ2xlLmRtU2V0dGluZ3NVcHNlbGxBY2tub3dsZWRnZWQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGZsYWdzKCk6IG51bWJlciB7XG4gICAgbGV0IGZsYWdzID0gMFxuXG4gICAgaWYgKHRoaXMuZGlkUmVqb2luKSBmbGFncyB8PSBNZW1iZXJGbGFncy5EaWRSZWpvaW5cbiAgICBpZiAodGhpcy5zdGFydGVkT25ib2FyZGluZykgZmxhZ3MgfD0gTWVtYmVyRmxhZ3MuU3RhcnRlZE9uYm9hcmRpbmdcbiAgICBpZiAodGhpcy5ieXBhc3Nlc1ZlcmlmaWNhdGlvbikgZmxhZ3MgfD0gTWVtYmVyRmxhZ3MuQnlwYXNzZXNWZXJpZmljYXRpb25cbiAgICBpZiAodGhpcy5jb21wbGV0ZWRPbmJvYXJkaW5nKSBmbGFncyB8PSBNZW1iZXJGbGFncy5Db21wbGV0ZWRPbmJvYXJkaW5nXG4gICAgaWYgKHRoaXMuaXNHdWVzdCkgZmxhZ3MgfD0gTWVtYmVyRmxhZ3MuSXNHdWVzdFxuICAgIGlmICh0aGlzLnN0YXJ0ZWRIb21lQWN0aW9ucykgZmxhZ3MgfD0gTWVtYmVyRmxhZ3MuU3RhcnRlZEhvbWVBY3Rpb25zXG4gICAgaWYgKHRoaXMuY29tcGxldGVkSG9tZUFjdGlvbnMpIGZsYWdzIHw9IE1lbWJlckZsYWdzLkNvbXBsZXRlZEhvbWVBY3Rpb25zXG4gICAgaWYgKHRoaXMuYXV0b21vZFF1YXJhbnRpbmVkVXNlcm5hbWUpIGZsYWdzIHw9IE1lbWJlckZsYWdzLkF1dG9tb2RRdWFyYW50aW5lZFVzZXJuYW1lXG4gICAgaWYgKHRoaXMuZG1TZXR0aW5nc1Vwc2VsbEFja25vd2xlZGdlZCkgZmxhZ3MgfD0gTWVtYmVyRmxhZ3MuRG1TZXR0aW5nc1Vwc2VsbEFja25vd2xlZGdlZFxuXG4gICAgcmV0dXJuIGZsYWdzXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgdXNlciBiZWxvbmdzIHRvIGFuIE9BdXRoMiBhcHBsaWNhdGlvbiAqL1xuICBnZXQgZGVhZigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2RlYWYnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgaXMgbXV0ZWQgaW4gdm9pY2UgY2hhbm5lbHMgKi9cbiAgZ2V0IG11dGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdtdXRlJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGhhcyBub3QgeWV0IHBhc3NlZCB0aGUgZ3VpbGQncyBNZW1iZXJzaGlwIFNjcmVlbmluZyByZXF1aXJlbWVudHMgKi9cbiAgZ2V0IHBlbmRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdwZW5kaW5nJylcbiAgfVxuXG4gIC8qKiBNZW1iZXIgaGFzIGxlZnQgYW5kIHJlam9pbmVkIHRoZSBndWlsZCAqL1xuICBnZXQgZGlkUmVqb2luKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnZGlkUmVqb2luJylcbiAgfVxuXG4gIC8qKiBNZW1iZXIgaGFzIGNvbXBsZXRlZCBvbmJvYXJkaW5nICovXG4gIGdldCBzdGFydGVkT25ib2FyZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3N0YXJ0ZWRPbmJvYXJkaW5nJylcbiAgfVxuXG4gIC8qKiBNZW1iZXIgaXMgZXhlbXB0IGZyb20gZ3VpbGQgdmVyaWZpY2F0aW9uIHJlcXVpcmVtZW50cyAqL1xuICBnZXQgYnlwYXNzZXNWZXJpZmljYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdieXBhc3Nlc1ZlcmlmaWNhdGlvbicpXG4gIH1cblxuICAvKiogTWVtYmVyIGhhcyBzdGFydGVkIG9uYm9hcmRpbmcgKi9cbiAgZ2V0IGNvbXBsZXRlZE9uYm9hcmRpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdjb21wbGV0ZWRPbmJvYXJkaW5nJylcbiAgfVxuXG4gIC8qKiBNZW1iZXIgaXMgYSBndWVzdCBhbmQgY2FuIG9ubHkgYWNjZXNzIHRoZSB2b2ljZSBjaGFubmVsIHRoZXkgd2VyZSBpbnZpdGVkIHRvICovXG4gIGdldCBpc0d1ZXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnaXNHdWVzdCcpXG4gIH1cblxuICAvKiogTWVtYmVyIGhhcyBzdGFydGVkIFNlcnZlciBHdWlkZSBuZXcgbWVtYmVyIGFjdGlvbnMgKi9cbiAgZ2V0IHN0YXJ0ZWRIb21lQWN0aW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3N0YXJ0ZWRIb21lQWN0aW9ucycpXG4gIH1cblxuICAvKiogTWVtYmVyIGhhcyBjb21wbGV0ZWQgU2VydmVyIEd1aWRlIG5ldyBtZW1iZXIgYWN0aW9ucyAqL1xuICBnZXQgY29tcGxldGVkSG9tZUFjdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdjb21wbGV0ZWRIb21lQWN0aW9ucycpXG4gIH1cblxuICAvKiogTWVtYmVyJ3MgdXNlcm5hbWUsIGRpc3BsYXkgbmFtZSwgb3Igbmlja25hbWUgaXMgYmxvY2tlZCBieSBBdXRvTW9kICovXG4gIGdldCBhdXRvbW9kUXVhcmFudGluZWRVc2VybmFtZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2F1dG9tb2RRdWFyYW50aW5lZFVzZXJuYW1lJylcbiAgfVxuXG4gIC8qKiBNZW1iZXIgaGFzIGRpc21pc3NlZCB0aGUgRE0gc2V0dGluZ3MgdXBzZWxsICovXG4gIGdldCBkbVNldHRpbmdzVXBzZWxsQWNrbm93bGVkZ2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnZG1TZXR0aW5nc1Vwc2VsbEFja25vd2xlZGdlZCcpXG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IHRoZSBwZXJtaXNzaW9ucyBleGlzdCBpbiB0aGlzICovXG4gIGhhcyhwZXJtaXNzaW9uczogTWVtYmVyVG9nZ2xlS2V5cyB8IE1lbWJlclRvZ2dsZUtleXNbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShwZXJtaXNzaW9ucykpIHJldHVybiBzdXBlci5jb250YWlucyhNZW1iZXJUb2dnbGVbcGVybWlzc2lvbnNdKVxuXG4gICAgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKHBlcm1pc3Npb25zLnJlZHVjZSgoYSwgYikgPT4gKGEgfD0gTWVtYmVyVG9nZ2xlW2JdKSwgMCkpXG4gIH1cblxuICAvKiogTGlzdHMgYWxsIHRoZSB0b2dnbGVzIGZvciB0aGUgcm9sZSBhbmQgd2hldGhlciBvciBub3QgZWFjaCBpcyB0cnVlIG9yIGZhbHNlLiAqL1xuICBsaXN0KCk6IFJlY29yZDxNZW1iZXJUb2dnbGVLZXlzLCBib29sZWFuPiB7XG4gICAgY29uc3QganNvbjogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fVxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKE1lbWJlclRvZ2dsZSkpIHtcbiAgICAgIGpzb25ba2V5XSA9IHN1cGVyLmNvbnRhaW5zKHZhbHVlKVxuICAgIH1cblxuICAgIHJldHVybiBqc29uIGFzIFJlY29yZDxNZW1iZXJUb2dnbGVLZXlzLCBib29sZWFuPlxuICB9XG59XG5cbmV4cG9ydCB0eXBlIE1lbWJlclRvZ2dsZUtleXMgPSBrZXlvZiB0eXBlb2YgTWVtYmVyVG9nZ2xlXG5cbmV4cG9ydCB0eXBlIE1lbWJlckZsYWdzS2V5cyA9ICh0eXBlb2YgbWVtYmVyRmxhZ3MpW251bWJlcl1cbiJdLCJuYW1lcyI6WyJNZW1iZXJGbGFncyIsIlRvZ2dsZUJpdGZpZWxkIiwibWVtYmVyRmxhZ3MiLCJNZW1iZXJUb2dnbGUiLCJkZWFmIiwibXV0ZSIsInBlbmRpbmciLCJkaWRSZWpvaW4iLCJzdGFydGVkT25ib2FyZGluZyIsImJ5cGFzc2VzVmVyaWZpY2F0aW9uIiwiY29tcGxldGVkT25ib2FyZGluZyIsImlzR3Vlc3QiLCJzdGFydGVkSG9tZUFjdGlvbnMiLCJjb21wbGV0ZWRIb21lQWN0aW9ucyIsImF1dG9tb2RRdWFyYW50aW5lZFVzZXJuYW1lIiwiZG1TZXR0aW5nc1Vwc2VsbEFja25vd2xlZGdlZCIsIk1lbWJlclRvZ2dsZXMiLCJjb25zdHJ1Y3RvciIsIm1lbWJlck9yVG9nZ2xlc0ludCIsImJpdGZpZWxkIiwibWVtYmVyIiwiYWRkIiwiZmxhZ3MiLCJEaWRSZWpvaW4iLCJTdGFydGVkT25ib2FyZGluZyIsIkJ5cGFzc2VzVmVyaWZpY2F0aW9uIiwiQ29tcGxldGVkT25ib2FyZGluZyIsIklzR3Vlc3QiLCJTdGFydGVkSG9tZUFjdGlvbnMiLCJDb21wbGV0ZWRIb21lQWN0aW9ucyIsIkF1dG9tb2RRdWFyYW50aW5lZFVzZXJuYW1lIiwiRG1TZXR0aW5nc1Vwc2VsbEFja25vd2xlZGdlZCIsImhhcyIsInBlcm1pc3Npb25zIiwiQXJyYXkiLCJpc0FycmF5IiwiY29udGFpbnMiLCJyZWR1Y2UiLCJhIiwiYiIsImxpc3QiLCJqc29uIiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJlbnRyaWVzIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUE2QkEsV0FBVyxRQUFRLG9CQUFtQjtBQUNuRSxTQUFTQyxjQUFjLFFBQVEsc0JBQXFCO0FBRXBELE1BQU1DLGNBQWM7SUFBQztJQUFhO0lBQXFCO0lBQXdCO0NBQXNCO0FBRXJHLE9BQU8sTUFBTUMsZUFBZTtJQUMxQixtREFBbUQsR0FDbkRDLE1BQU0sS0FBSztJQUNYLGdEQUFnRCxHQUNoREMsTUFBTSxLQUFLO0lBQ1gsc0ZBQXNGLEdBQ3RGQyxTQUFTLEtBQUs7SUFFZCxlQUFlO0lBRWYsMkNBQTJDLEdBQzNDQyxXQUFXLEtBQUs7SUFDaEIsb0NBQW9DLEdBQ3BDQyxtQkFBbUIsS0FBSztJQUN4QiwwREFBMEQsR0FDMURDLHNCQUFzQixLQUFLO0lBQzNCLGtDQUFrQyxHQUNsQ0MscUJBQXFCLEtBQUs7SUFDMUIsaUZBQWlG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
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy9tZW1iZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEaXNjb3JkTWVtYmVyLCBNZW1iZXJGbGFncyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL1RvZ2dsZUJpdGZpZWxkLmpzJ1xuXG5jb25zdCBtZW1iZXJGbGFncyA9IFsnZGlkUmVqb2luJywgJ3N0YXJ0ZWRPbmJvYXJkaW5nJywgJ2J5cGFzc2VzVmVyaWZpY2F0aW9uJywgJ2NvbXBsZXRlZE9uYm9hcmRpbmcnXSBhcyBjb25zdFxuXG5leHBvcnQgY29uc3QgTWVtYmVyVG9nZ2xlID0ge1xuICAvKiogV2hldGhlciB0aGUgdXNlciBpcyBkZWFmZW5lZCBpbiB2b2ljZSBjaGFubmVscyAqL1xuICBkZWFmOiAxIDw8IDAsXG4gIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGlzIG11dGVkIGluIHZvaWNlIGNoYW5uZWxzICovXG4gIG11dGU6IDEgPDwgMSxcbiAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgaGFzIG5vdCB5ZXQgcGFzc2VkIHRoZSBndWlsZCdzIE1lbWJlcnNoaXAgU2NyZWVuaW5nIHJlcXVpcmVtZW50cyAqL1xuICBwZW5kaW5nOiAxIDw8IDIsXG5cbiAgLy8gTWVtYmVyIGZsYWdzXG5cbiAgLyoqIE1lbWJlciBoYXMgbGVmdCBhbmQgcmVqb2luZWQgdGhlIGd1aWxkICovXG4gIGRpZFJlam9pbjogMSA8PCAzLFxuICAvKiogTWVtYmVyIGhhcyBjb21wbGV0ZWQgb25ib2FyZGluZyAqL1xuICBzdGFydGVkT25ib2FyZGluZzogMSA8PCA0LFxuICAvKiogTWVtYmVyIGlzIGV4ZW1wdCBmcm9tIGd1aWxkIHZlcmlmaWNhdGlvbiByZXF1aXJlbWVudHMgKi9cbiAgYnlwYXNzZXNWZXJpZmljYXRpb246IDEgPDwgNSxcbiAgLyoqIE1lbWJlciBoYXMgc3RhcnRlZCBvbmJvYXJkaW5nICovXG4gIGNvbXBsZXRlZE9uYm9hcmRpbmc6IDEgPDwgNixcbiAgLyoqIE1lbWJlciBpcyBhIGd1ZXN0IGFuZCBjYW4gb25seSBhY2Nlc3MgdGhlIHZvaWNlIGNoYW5uZWwgdGhleSB3ZXJlIGludml0ZWQgdG8gKi9cbiAgaXNHdWVzdDogMSA8PCA3LFxuICAvKiogTWVtYmVyIGhhcyBzdGFydGVkIFNlcnZlciBHdWlkZSBuZXcgbWVtYmVyIGFjdGlvbnMgKi9cbiAgc3RhcnRlZEhvbWVBY3Rpb25zOiAxIDw8IDgsXG4gIC8qKiBNZW1iZXIgaGFzIGNvbXBsZXRlZCBTZXJ2ZXIgR3VpZGUgbmV3IG1lbWJlciBhY3Rpb25zICovXG4gIGNvbXBsZXRlZEhvbWVBY3Rpb25zOiAxIDw8IDksXG4gIC8qKiBNZW1iZXIncyB1c2VybmFtZSwgZGlzcGxheSBuYW1lLCBvciBuaWNrbmFtZSBpcyBibG9ja2VkIGJ5IEF1dG9Nb2QgKi9cbiAgYXV0b21vZFF1YXJhbnRpbmVkVXNlcm5hbWU6IDEgPDwgMTAsXG4gIC8qKiBNZW1iZXIgaGFzIGRpc21pc3NlZCB0aGUgRE0gc2V0dGluZ3MgdXBzZWxsICovXG4gIGRtU2V0dGluZ3NVcHNlbGxBY2tub3dsZWRnZWQ6IDEgPDwgMTEsXG4gIC8qKiBNZW1iZXIncyBndWlsZCB0YWcgaXMgYmxvY2tlZCBieSBBdXRvTW9kICovXG4gIGF1dG9tb2RRdWFyYW50aW5lZEd1aWxkVGFnOiAxIDw8IDEyLFxufVxuXG5leHBvcnQgY2xhc3MgTWVtYmVyVG9nZ2xlcyBleHRlbmRzIFRvZ2dsZUJpdGZpZWxkIHtcbiAgY29uc3RydWN0b3IobWVtYmVyT3JUb2dnbGVzSW50OiBQYXJ0aWFsPERpc2NvcmRNZW1iZXI+IHwgbnVtYmVyKSB7XG4gICAgc3VwZXIoKVxuXG4gICAgaWYgKHR5cGVvZiBtZW1iZXJPclRvZ2dsZXNJbnQgPT09ICdudW1iZXInKSB0aGlzLmJpdGZpZWxkID0gbWVtYmVyT3JUb2dnbGVzSW50XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBtZW1iZXIgPSBtZW1iZXJPclRvZ2dsZXNJbnRcblxuICAgICAgaWYgKG1lbWJlci5kZWFmKSB0aGlzLmFkZChNZW1iZXJUb2dnbGUuZGVhZilcbiAgICAgIGlmIChtZW1iZXIubXV0ZSkgdGhpcy5hZGQoTWVtYmVyVG9nZ2xlLm11dGUpXG4gICAgICBpZiAobWVtYmVyLnBlbmRpbmcpIHRoaXMuYWRkKE1lbWJlclRvZ2dsZS5wZW5kaW5nKVxuXG4gICAgICBpZiAobWVtYmVyLmZsYWdzKSB7XG4gICAgICAgIGlmIChtZW1iZXIuZmxhZ3MgJiBNZW1iZXJGbGFncy5EaWRSZWpvaW4pIHRoaXMuYWRkKE1lbWJlclRvZ2dsZS5kaWRSZWpvaW4pXG4gICAgICAgIGlmIChtZW1iZXIuZmxhZ3MgJiBNZW1iZXJGbGFncy5TdGFydGVkT25ib2FyZGluZykgdGhpcy5hZGQoTWVtYmVyVG9nZ2xlLnN0YXJ0ZWRPbmJvYXJkaW5nKVxuICAgICAgICBpZiAobWVtYmVyLmZsYWdzICYgTWVtYmVyRmxhZ3MuQnlwYXNzZXNWZXJpZmljYXRpb24pIHRoaXMuYWRkKE1lbWJlclRvZ2dsZS5ieXBhc3Nlc1ZlcmlmaWNhdGlvbilcbiAgICAgICAgaWYgKG1lbWJlci5mbGFncyAmIE1lbWJlckZsYWdzLkNvbXBsZXRlZE9uYm9hcmRpbmcpIHRoaXMuYWRkKE1lbWJlclRvZ2dsZS5jb21wbGV0ZWRPbmJvYXJkaW5nKVxuICAgICAgICBpZiAobWVtYmVyLmZsYWdzICYgTWVtYmVyRmxhZ3MuSXNHdWVzdCkgdGhpcy5hZGQoTWVtYmVyVG9nZ2xlLmlzR3Vlc3QpXG4gICAgICAgIGlmIChtZW1iZXIuZmxhZ3MgJiBNZW1iZXJGbGFncy5TdGFydGVkSG9tZUFjdGlvbnMpIHRoaXMuYWRkKE1lbWJlclRvZ2dsZS5zdGFydGVkSG9tZUFjdGlvbnMpXG4gICAgICAgIGlmIChtZW1iZXIuZmxhZ3MgJiBNZW1iZXJGbGFncy5Db21wbGV0ZWRIb21lQWN0aW9ucykgdGhpcy5hZGQoTWVtYmVyVG9nZ2xlLmNvbXBsZXRlZEhvbWVBY3Rpb25zKVxuICAgICAgICBpZiAobWVtYmVyLmZsYWdzICYgTWVtYmVyRmxhZ3MuQXV0b21vZFF1YXJhbnRpbmVkVXNlcm5hbWUpIHRoaXMuYWRkKE1lbWJlclRvZ2dsZS5hdXRvbW9kUXVhcmFudGluZWRVc2VybmFtZSlcbiAgICAgICAgaWYgKG1lbWJlci5mbGFncyAmIE1lbWJlckZsYWdzLkRtU2V0dGluZ3NVcHNlbGxBY2tub3dsZWRnZWQpIHRoaXMuYWRkKE1lbWJlclRvZ2dsZS5kbVNldHRpbmdzVXBzZWxsQWNrbm93bGVkZ2VkKVxuICAgICAgICBpZiAobWVtYmVyLmZsYWdzICYgTWVtYmVyRmxhZ3MuQXV0b21vZFF1YXJhbnRpbmVkR3VpbGRUYWcpIHRoaXMuYWRkKE1lbWJlclRvZ2dsZS5hdXRvbW9kUXVhcmFudGluZWRHdWlsZFRhZylcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgZmxhZ3MoKTogbnVtYmVyIHtcbiAgICBsZXQgZmxhZ3MgPSAwXG5cbiAgICBpZiAodGhpcy5kaWRSZWpvaW4pIGZsYWdzIHw9IE1lbWJlckZsYWdzLkRpZFJlam9pblxuICAgIGlmICh0aGlzLnN0YXJ0ZWRPbmJvYXJkaW5nKSBmbGFncyB8PSBNZW1iZXJGbGFncy5TdGFydGVkT25ib2FyZGluZ1xuICAgIGlmICh0aGlzLmJ5cGFzc2VzVmVyaWZpY2F0aW9uKSBmbGFncyB8PSBNZW1iZXJGbGFncy5CeXBhc3Nlc1ZlcmlmaWNhdGlvblxuICAgIGlmICh0aGlzLmNvbXBsZXRlZE9uYm9hcmRpbmcpIGZsYWdzIHw9IE1lbWJlckZsYWdzLkNvbXBsZXRlZE9uYm9hcmRpbmdcbiAgICBpZiAodGhpcy5pc0d1ZXN0KSBmbGFncyB8PSBNZW1iZXJGbGFncy5Jc0d1ZXN0XG4gICAgaWYgKHRoaXMuc3RhcnRlZEhvbWVBY3Rpb25zKSBmbGFncyB8PSBNZW1iZXJGbGFncy5TdGFydGVkSG9tZUFjdGlvbnNcbiAgICBpZiAodGhpcy5jb21wbGV0ZWRIb21lQWN0aW9ucykgZmxhZ3MgfD0gTWVtYmVyRmxhZ3MuQ29tcGxldGVkSG9tZUFjdGlvbnNcbiAgICBpZiAodGhpcy5hdXRvbW9kUXVhcmFudGluZWRVc2VybmFtZSkgZmxhZ3MgfD0gTWVtYmVyRmxhZ3MuQXV0b21vZFF1YXJhbnRpbmVkVXNlcm5hbWVcbiAgICBpZiAodGhpcy5kbVNldHRpbmdzVXBzZWxsQWNrbm93bGVkZ2VkKSBmbGFncyB8PSBNZW1iZXJGbGFncy5EbVNldHRpbmdzVXBzZWxsQWNrbm93bGVkZ2VkXG4gICAgaWYgKHRoaXMuYXV0b21vZFF1YXJhbnRpbmVkR3VpbGRUYWcpIGZsYWdzIHw9IE1lbWJlckZsYWdzLkF1dG9tb2RRdWFyYW50aW5lZEd1aWxkVGFnXG5cbiAgICByZXR1cm4gZmxhZ3NcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGJlbG9uZ3MgdG8gYW4gT0F1dGgyIGFwcGxpY2F0aW9uICovXG4gIGdldCBkZWFmKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnZGVhZicpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgdXNlciBpcyBtdXRlZCBpbiB2b2ljZSBjaGFubmVscyAqL1xuICBnZXQgbXV0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ211dGUnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgaGFzIG5vdCB5ZXQgcGFzc2VkIHRoZSBndWlsZCdzIE1lbWJlcnNoaXAgU2NyZWVuaW5nIHJlcXVpcmVtZW50cyAqL1xuICBnZXQgcGVuZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3BlbmRpbmcnKVxuICB9XG5cbiAgLyoqIE1lbWJlciBoYXMgbGVmdCBhbmQgcmVqb2luZWQgdGhlIGd1aWxkICovXG4gIGdldCBkaWRSZWpvaW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdkaWRSZWpvaW4nKVxuICB9XG5cbiAgLyoqIE1lbWJlciBoYXMgY29tcGxldGVkIG9uYm9hcmRpbmcgKi9cbiAgZ2V0IHN0YXJ0ZWRPbmJvYXJkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnc3RhcnRlZE9uYm9hcmRpbmcnKVxuICB9XG5cbiAgLyoqIE1lbWJlciBpcyBleGVtcHQgZnJvbSBndWlsZCB2ZXJpZmljYXRpb24gcmVxdWlyZW1lbnRzICovXG4gIGdldCBieXBhc3Nlc1ZlcmlmaWNhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2J5cGFzc2VzVmVyaWZpY2F0aW9uJylcbiAgfVxuXG4gIC8qKiBNZW1iZXIgaGFzIHN0YXJ0ZWQgb25ib2FyZGluZyAqL1xuICBnZXQgY29tcGxldGVkT25ib2FyZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2NvbXBsZXRlZE9uYm9hcmRpbmcnKVxuICB9XG5cbiAgLyoqIE1lbWJlciBpcyBhIGd1ZXN0IGFuZCBjYW4gb25seSBhY2Nlc3MgdGhlIHZvaWNlIGNoYW5uZWwgdGhleSB3ZXJlIGludml0ZWQgdG8gKi9cbiAgZ2V0IGlzR3Vlc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdpc0d1ZXN0JylcbiAgfVxuXG4gIC8qKiBNZW1iZXIgaGFzIHN0YXJ0ZWQgU2VydmVyIEd1aWRlIG5ldyBtZW1iZXIgYWN0aW9ucyAqL1xuICBnZXQgc3RhcnRlZEhvbWVBY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnc3RhcnRlZEhvbWVBY3Rpb25zJylcbiAgfVxuXG4gIC8qKiBNZW1iZXIgaGFzIGNvbXBsZXRlZCBTZXJ2ZXIgR3VpZGUgbmV3IG1lbWJlciBhY3Rpb25zICovXG4gIGdldCBjb21wbGV0ZWRIb21lQWN0aW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2NvbXBsZXRlZEhvbWVBY3Rpb25zJylcbiAgfVxuXG4gIC8qKiBNZW1iZXIncyB1c2VybmFtZSwgZGlzcGxheSBuYW1lLCBvciBuaWNrbmFtZSBpcyBibG9ja2VkIGJ5IEF1dG9Nb2QgKi9cbiAgZ2V0IGF1dG9tb2RRdWFyYW50aW5lZFVzZXJuYW1lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnYXV0b21vZFF1YXJhbnRpbmVkVXNlcm5hbWUnKVxuICB9XG5cbiAgLyoqIE1lbWJlciBoYXMgZGlzbWlzc2VkIHRoZSBETSBzZXR0aW5ncyB1cHNlbGwgKi9cbiAgZ2V0IGRtU2V0dGluZ3NVcHNlbGxBY2tub3dsZWRnZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdkbVNldHRpbmdzVXBzZWxsQWNrbm93bGVkZ2VkJylcbiAgfVxuXG4gIC8qKiBNZW1iZXIncyBndWlsZCB0YWcgaXMgYmxvY2tlZCBieSBBdXRvTW9kICovXG4gIGdldCBhdXRvbW9kUXVhcmFudGluZWRHdWlsZFRhZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2F1dG9tb2RRdWFyYW50aW5lZEd1aWxkVGFnJylcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciBvciBub3QgdGhlIHBlcm1pc3Npb25zIGV4aXN0IGluIHRoaXMgKi9cbiAgaGFzKHBlcm1pc3Npb25zOiBNZW1iZXJUb2dnbGVLZXlzIHwgTWVtYmVyVG9nZ2xlS2V5c1tdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBlcm1pc3Npb25zKSkgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKE1lbWJlclRvZ2dsZVtwZXJtaXNzaW9uc10pXG5cbiAgICByZXR1cm4gc3VwZXIuY29udGFpbnMocGVybWlzc2lvbnMucmVkdWNlKChhLCBiKSA9PiAoYSB8PSBNZW1iZXJUb2dnbGVbYl0pLCAwKSlcbiAgfVxuXG4gIC8qKiBMaXN0cyBhbGwgdGhlIHRvZ2dsZXMgZm9yIHRoZSByb2xlIGFuZCB3aGV0aGVyIG9yIG5vdCBlYWNoIGlzIHRydWUgb3IgZmFsc2UuICovXG4gIGxpc3QoKTogUmVjb3JkPE1lbWJlclRvZ2dsZUtleXMsIGJvb2xlYW4+IHtcbiAgICBjb25zdCBqc29uOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoTWVtYmVyVG9nZ2xlKSkge1xuICAgICAganNvbltrZXldID0gc3VwZXIuY29udGFpbnModmFsdWUpXG4gICAgfVxuXG4gICAgcmV0dXJuIGpzb24gYXMgUmVjb3JkPE1lbWJlclRvZ2dsZUtleXMsIGJvb2xlYW4+XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgTWVtYmVyVG9nZ2xlS2V5cyA9IGtleW9mIHR5cGVvZiBNZW1iZXJUb2dnbGVcblxuZXhwb3J0IHR5cGUgTWVtYmVyRmxhZ3NLZXlzID0gKHR5cGVvZiBtZW1iZXJGbGFncylbbnVtYmVyXVxuIl0sIm5hbWVzIjpbIk1lbWJlckZsYWdzIiwiVG9nZ2xlQml0ZmllbGQiLCJtZW1iZXJGbGFncyIsIk1lbWJlclRvZ2dsZSIsImRlYWYiLCJtdXRlIiwicGVuZGluZyIsImRpZFJlam9pbiIsInN0YXJ0ZWRPbmJvYXJkaW5nIiwiYnlwYXNzZXNWZXJpZmljYXRpb24iLCJjb21wbGV0ZWRPbmJvYXJkaW5nIiwiaXNHdWVzdCIsInN0YXJ0ZWRIb21lQWN0aW9ucyIsImNvbXBsZXRlZEhvbWVBY3Rpb25zIiwiYXV0b21vZFF1YXJhbnRpbmVkVXNlcm5hbWUiLCJkbVNldHRpbmdzVXBzZWxsQWNrbm93bGVkZ2VkIiwiYXV0b21vZFF1YXJhbnRpbmVkR3VpbGRUYWciLCJNZW1iZXJUb2dnbGVzIiwibWVtYmVyT3JUb2dnbGVzSW50IiwiYml0ZmllbGQiLCJtZW1iZXIiLCJhZGQiLCJmbGFncyIsIkRpZFJlam9pbiIsIlN0YXJ0ZWRPbmJvYXJkaW5nIiwiQnlwYXNzZXNWZXJpZmljYXRpb24iLCJDb21wbGV0ZWRPbmJvYXJkaW5nIiwiSXNHdWVzdCIsIlN0YXJ0ZWRIb21lQWN0aW9ucyIsIkNvbXBsZXRlZEhvbWVBY3Rpb25zIiwiQXV0b21vZFF1YXJhbnRpbmVkVXNlcm5hbWUiLCJEbVNldHRpbmdzVXBzZWxsQWNrbm93bGVkZ2VkIiwiQXV0b21vZFF1YXJhbnRpbmVkR3VpbGRUYWciLCJoYXMiLCJwZXJtaXNzaW9ucyIsIkFycmF5IiwiaXNBcnJheSIsImNvbnRhaW5zIiwicmVkdWNlIiwiYSIsImIiLCJsaXN0IiwianNvbiIsImtleSIsInZhbHVlIiwiT2JqZWN0IiwiZW50cmllcyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBNkJBLFdBQVcsUUFBUSxvQkFBbUI7QUFDbkUsU0FBU0MsY0FBYyxRQUFRLHNCQUFxQjtBQUVwRCxNQUFNQyxjQUFjO0lBQUM7SUFBYTtJQUFxQjtJQUF3QjtDQUFzQjtBQUVyRyxPQUFPLE1BQU1DLGVBQWU7SUFDMUIsbURBQW1ELEdBQ25EQyxNQUFNLEtBQUs7SUFDWCxnREFBZ0QsR0FDaERDLE1BQU0sS0FBSztJQUNYLHNGQUFzRixHQUN0RkMsU0FBUyxLQUFLO0lBRWQsZUFBZTtJQUVmLDJDQUEyQyxHQUMzQ0MsV0FBVyxLQUFLO0lBQ2hCLG9DQUFvQyxHQUNwQ0MsbUJBQW1CLEtBQUs7SUFDeEIsMERBQTBELEdBQzFEQyxzQkFBc0IsS0FBSztJQUMzQixrQ0FBa0MsR0FDbENDLHFCQUFxQixLQUFLO0lBQzFCLGlGQUFpRixHQUNqRkMsU0FBUyxLQUFLO0lBQ2QsdURBQXVELEdBQ3ZEQyxvQkFBb0IsS0FBSztJQUN6Qix5REFBeUQsR0FDekRDLHNCQUFzQixLQUFLO0lBQzNCLHVFQUF1RSxHQUN2RUMsNEJBQTRCLEtBQUs7SUFDakMsZ0RBQWdELEdBQ2hEQyw4QkFBOEIsS0FBSztJQUNuQyw2Q0FBNkMsR0FDN0NDLDRCQUE0QixLQUFLO0FBQ25DLEVBQUM7QUFFRCxPQUFPLE1BQU1DLHNCQUFzQmhCO0lBQ2pDLFlBQVlpQixrQkFBbUQsQ0FBRTtRQUMvRCxLQUFLO1FBRUwsSUFBSSxPQUFPQSx1QkFBdUIsVUFBVSxJQUFJLENBQUNDLFFBQVEsR0FBR0Q7YUFDdkQ7WUFDSCxNQUFNRSxTQUFTRjtZQUVmLElBQUlFLE9BQU9oQixJQUFJLEVBQUUsSUFBSSxDQUFDaUIsR0FBRyxDQUFDbEIsYUFBYUMsSUFBSTtZQUMzQyxJQUFJZ0IsT0FB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
@@ -52,4 +52,4 @@ export class RoleToggles extends ToggleBitfield {
52
52
  }
53
53
  }
54
54
 
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy9yb2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZFJvbGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IFRvZ2dsZUJpdGZpZWxkIH0gZnJvbSAnLi9Ub2dnbGVCaXRmaWVsZC5qcydcblxuZXhwb3J0IGNvbnN0IFJvbGVUb2dnbGUgPSB7XG4gIC8qKiBJZiB0aGlzIHJvbGUgaXMgc2hvd2VkIHNlcGFyYXRlbHkgaW4gdGhlIHVzZXIgbGlzdGluZyAqL1xuICBob2lzdDogMSA8PCAwLFxuICAvKiogV2hldGhlciB0aGlzIHJvbGUgaXMgbWFuYWdlZCBieSBhbiBpbnRlZ3JhdGlvbiAqL1xuICBtYW5hZ2VkOiAxIDw8IDEsXG4gIC8qKiBXaGV0aGVyIHRoaXMgcm9sZSBpcyBtZW50aW9uYWJsZSAqL1xuICBtZW50aW9uYWJsZTogMSA8PCAyLFxuICAvKiogV2hldGhlciB0aGlzIGlzIHRoZSBndWlsZHMgcHJlbWl1bSBzdWJzY3JpYmVyIHJvbGUgKi9cbiAgcHJlbWl1bVN1YnNjcmliZXI6IDEgPDwgMyxcbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIGF2YWlsYWJsZSBmb3IgcHVyY2hhc2UuICovXG4gIGF2YWlsYWJsZUZvclB1cmNoYXNlOiAxIDw8IDQsXG4gIC8qKiBXaGV0aGVyIHRoaXMgcm9sZSBpcyBhdmFpbGFibGUgZm9yIGd1aWxkIGNvbm5lY3Rpb25zLiAqL1xuICBndWlsZENvbm5lY3Rpb25zOiAxIDw8IDUsXG59XG5cbmV4cG9ydCBjbGFzcyBSb2xlVG9nZ2xlcyBleHRlbmRzIFRvZ2dsZUJpdGZpZWxkIHtcbiAgY29uc3RydWN0b3Iocm9sZU9yVG9nZ2xlc0ludDogRGlzY29yZFJvbGUgfCBudW1iZXIpIHtcbiAgICBzdXBlcigpXG5cbiAgICBpZiAodHlwZW9mIHJvbGVPclRvZ2dsZXNJbnQgPT09ICdudW1iZXInKSB0aGlzLmJpdGZpZWxkID0gcm9sZU9yVG9nZ2xlc0ludFxuICAgIGVsc2Uge1xuICAgICAgY29uc3Qgcm9sZSA9IHJvbGVPclRvZ2dsZXNJbnRcblxuICAgICAgaWYgKHJvbGUuaG9pc3QpIHRoaXMuYWRkKFJvbGVUb2dnbGUuaG9pc3QpXG4gICAgICBpZiAocm9sZS5tYW5hZ2VkKSB0aGlzLmFkZChSb2xlVG9nZ2xlLm1hbmFnZWQpXG4gICAgICBpZiAocm9sZS5tZW50aW9uYWJsZSkgdGhpcy5hZGQoUm9sZVRvZ2dsZS5tZW50aW9uYWJsZSlcbiAgICAgIGlmIChyb2xlLnRhZ3M/LnByZW1pdW1fc3Vic2NyaWJlciA9PT0gbnVsbCkgdGhpcy5hZGQoUm9sZVRvZ2dsZS5wcmVtaXVtU3Vic2NyaWJlcilcbiAgICAgIGlmIChyb2xlLnRhZ3M/LmF2YWlsYWJsZV9mb3JfcHVyY2hhc2UgPT09IG51bGwpIHRoaXMuYWRkKFJvbGVUb2dnbGUuYXZhaWxhYmxlRm9yUHVyY2hhc2UpXG4gICAgICBpZiAocm9sZS50YWdzPy5ndWlsZF9jb25uZWN0aW9ucyA9PT0gbnVsbCkgdGhpcy5hZGQoUm9sZVRvZ2dsZS5ndWlsZENvbm5lY3Rpb25zKVxuICAgIH1cbiAgfVxuXG4gIC8qKiBJZiB0aGlzIHJvbGUgaXMgc2hvd2VkIHNlcGFyYXRlbHkgaW4gdGhlIHVzZXIgbGlzdGluZyAqL1xuICBnZXQgaG9pc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdob2lzdCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGlzIHJvbGUgaXMgbWFuYWdlZCBieSBhbiBpbnRlZ3JhdGlvbiAqL1xuICBnZXQgbWFuYWdlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ21hbmFnZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIG1lbnRpb25hYmxlICovXG4gIGdldCBtZW50aW9uYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ21lbnRpb25hYmxlJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoaXMgaXMgdGhlIGd1aWxkcyBwcmVtaXVtIHN1YnNjcmliZXIgcm9sZSAqL1xuICBnZXQgcHJlbWl1bVN1YnNjcmliZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdwcmVtaXVtU3Vic2NyaWJlcicpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGlzIHJvbGUgaXMgYXZhaWxhYmxlIGZvciBwdXJjaGFzZS4gKi9cbiAgZ2V0IGF2YWlsYWJsZUZvclB1cmNoYXNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnYXZhaWxhYmxlRm9yUHVyY2hhc2UnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBpcyBhIGd1aWxkJ3MgbGlua2VkIHJvbGUuICovXG4gIGdldCBndWlsZENvbm5lY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnZ3VpbGRDb25uZWN0aW9ucycpXG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IHRoZSBwZXJtaXNzaW9ucyBleGlzdCBpbiB0aGlzICovXG4gIGhhcyhwZXJtaXNzaW9uczogUm9sZVRvZ2dsZUtleXMgfCBSb2xlVG9nZ2xlS2V5c1tdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBlcm1pc3Npb25zKSkgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKFJvbGVUb2dnbGVbcGVybWlzc2lvbnNdKVxuXG4gICAgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKHBlcm1pc3Npb25zLnJlZHVjZSgoYSwgYikgPT4gKGEgfD0gUm9sZVRvZ2dsZVtiXSksIDApKVxuICB9XG5cbiAgLyoqIExpc3RzIGFsbCB0aGUgdG9nZ2xlcyBmb3IgdGhlIHJvbGUgYW5kIHdoZXRoZXIgb3Igbm90IGVhY2ggaXMgdHJ1ZSBvciBmYWxzZS4gKi9cbiAgbGlzdCgpOiBSZWNvcmQ8Um9sZVRvZ2dsZUtleXMsIGJvb2xlYW4+IHtcbiAgICBjb25zdCBqc29uOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoUm9sZVRvZ2dsZSkpIHtcbiAgICAgIGpzb25ba2V5XSA9IHN1cGVyLmNvbnRhaW5zKHZhbHVlKVxuICAgIH1cblxuICAgIHJldHVybiBqc29uIGFzIFJlY29yZDxSb2xlVG9nZ2xlS2V5cywgYm9vbGVhbj5cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBSb2xlVG9nZ2xlS2V5cyA9IGtleW9mIHR5cGVvZiBSb2xlVG9nZ2xlXG4iXSwibmFtZXMiOlsiVG9nZ2xlQml0ZmllbGQiLCJSb2xlVG9nZ2xlIiwiaG9pc3QiLCJtYW5hZ2VkIiwibWVudGlvbmFibGUiLCJwcmVtaXVtU3Vic2NyaWJlciIsImF2YWlsYWJsZUZvclB1cmNoYXNlIiwiZ3VpbGRDb25uZWN0aW9ucyIsIlJvbGVUb2dnbGVzIiwiY29uc3RydWN0b3IiLCJyb2xlT3JUb2dnbGVzSW50IiwiYml0ZmllbGQiLCJyb2xlIiwiYWRkIiwidGFncyIsInByZW1pdW1fc3Vic2NyaWJlciIsImF2YWlsYWJsZV9mb3JfcHVyY2hhc2UiLCJndWlsZF9jb25uZWN0aW9ucyIsImhhcyIsInBlcm1pc3Npb25zIiwiQXJyYXkiLCJpc0FycmF5IiwiY29udGFpbnMiLCJyZWR1Y2UiLCJhIiwiYiIsImxpc3QiLCJqc29uIiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJlbnRyaWVzIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxjQUFjLFFBQVEsc0JBQXFCO0FBRXBELE9BQU8sTUFBTUMsYUFBYTtJQUN4QiwwREFBMEQsR0FDMURDLE9BQU8sS0FBSztJQUNaLG1EQUFtRCxHQUNuREMsU0FBUyxLQUFLO0lBQ2QscUNBQXFDLEdBQ3JDQyxhQUFhLEtBQUs7SUFDbEIsdURBQXVELEdBQ3ZEQyxtQkFBbUIsS0FBSztJQUN4QixpREFBaUQsR0FDakRDLHNCQUFzQixLQUFLO0lBQzNCLDBEQUEwRCxHQUMxREMsa0JBQWtCLEtBQUs7QUFDekIsRUFBQztBQUVELE9BQU8sTUFBTUMsb0JBQW9CUjtJQUMvQlMsWUFBWUMsZ0JBQXNDLENBQUU7UUFDbEQsS0FBSztRQUVMLElBQUksT0FBT0EscUJBQXFCLFVBQVUsSUFBSSxDQUFDQyxRQUFRLEdBQUdEO2FBQ3JEO1lBQ0gsTUFBTUUsT0FBT0Y7WUFFYixJQUFJRSxLQUFLVixLQUFLLEVBQUUsSUFBSSxDQUFDVyxHQUFHLENBQUNaLFdBQVdDLEtBQUs7WUFDekMsSUFBSVUsS0FBS1QsT0FBTyxFQUFFLElBQUksQ0FBQ1UsR0FBRyxDQUFDWixXQUFXRSxPQUFPO1lBQzdDLElBQUlTLEtBQUtSLFdBQVcsRUFBRSxJQUFJLENBQUNTLEdBQUcsQ0FBQ1osV0FBV0csV0FBVztZQUNyRCxJQUFJUSxLQUFLRSxJQUFJLEVBQUVDLHVCQUF1QixNQUFNLElBQUksQ0FBQ0YsR0FBRyxDQUFDWixXQUFXSSxpQkFBaUI7WUFDakYsSUFBSU8sS0FBS0UsSUFBSSxFQUFFRSwyQkFBMkIsTUFBTSxJQUFJLENBQUNILEdBQUcsQ0FBQ1osV0FBV0ssb0JBQW9CO1lBQ3hGLElBQUlNLEtBQUtFLElBQUksRUFBRUcsc0JBQXNCLE1BQU0sSUFBSSxDQUFDSixHQUFHLENBQUNaLFdBQVdNLGdCQUFnQjtRQUNqRjtJQUNGO0lBRUEsMERBQTBELEdBQzFELElBQUlMLFFBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDZ0IsR0FBRyxDQUFDO0lBQ2xCO0lBRUEsbURBQW1ELEdBQ25ELElBQUlmLFVBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDZSxHQUFHLENBQUM7SUFDbEI7SUFFQSxxQ0FBcUMsR0FDckMsSUFBSWQsY0FBdUI7UUFDekIsT0FBTyxJQUFJLENBQUNjLEdBQUcsQ0FBQztJQUNsQjtJQUVBLHVEQUF1RCxHQUN2RCxJQUFJYixvQkFBNkI7UUFDL0IsT0FBTyxJQUFJLENBQUNhLEdBQUcsQ0FBQztJQUNsQjtJQUVBLGlEQUFpRCxHQUNqRCxJQUFJWix1QkFBZ0M7UUFDbEMsT0FBTyxJQUFJLENBQUNZLEdBQUcsQ0FBQztJQUNsQjtJQUVBLDJDQUEyQyxHQUMzQyxJQUFJWCxtQkFBNEI7UUFDOUIsT0FBTyxJQUFJLENBQUNXLEdBQUcsQ0FBQztJQUNsQjtJQUVBLHdEQUF3RCxHQUN4REEsSUFBSUMsV0FBOEMsRUFBVztRQUMzRCxJQUFJLENBQUNDLE1BQU1DLE9BQU8sQ0FBQ0YsY0FBYyxPQUFPLEtBQUssQ0FBQ0csU0FBU3JCLFVBQVUsQ0FBQ2tCLFlBQVk7UUFFOUUsT0FBTyxLQUFLLENBQUNHLFNBQVNILFlBQVlJLE1BQU0sQ0FBQyxDQUFDQyxHQUFHQyxJQUFPRCxLQUFLdkIsVUFBVSxDQUFDd0IsRUFBRSxFQUFHO0lBQzNFO0lBRUEsaUZBQWlGLEdBQ2pGQyxPQUF3QztRQUN0QyxNQUFNQyxPQUFnQyxDQUFDO1FBQ3ZDLEtBQUssTUFBTSxDQUFDQyxLQUFLQyxNQUFNLElBQUlDLE9BQU9DLE9BQU8sQ0FBQzlCLFlBQWE7WUFDckQwQixJQUFJLENBQUNDLElBQUksR0FBRyxLQUFLLENBQUNOLFNBQVNPO1FBQzdCO1FBRUEsT0FBT0Y7SUFDVDtBQUNGIn0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy9yb2xlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZFJvbGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IFRvZ2dsZUJpdGZpZWxkIH0gZnJvbSAnLi9Ub2dnbGVCaXRmaWVsZC5qcydcblxuZXhwb3J0IGNvbnN0IFJvbGVUb2dnbGUgPSB7XG4gIC8qKiBJZiB0aGlzIHJvbGUgaXMgc2hvd2VkIHNlcGFyYXRlbHkgaW4gdGhlIHVzZXIgbGlzdGluZyAqL1xuICBob2lzdDogMSA8PCAwLFxuICAvKiogV2hldGhlciB0aGlzIHJvbGUgaXMgbWFuYWdlZCBieSBhbiBpbnRlZ3JhdGlvbiAqL1xuICBtYW5hZ2VkOiAxIDw8IDEsXG4gIC8qKiBXaGV0aGVyIHRoaXMgcm9sZSBpcyBtZW50aW9uYWJsZSAqL1xuICBtZW50aW9uYWJsZTogMSA8PCAyLFxuICAvKiogV2hldGhlciB0aGlzIGlzIHRoZSBndWlsZHMgcHJlbWl1bSBzdWJzY3JpYmVyIHJvbGUgKi9cbiAgcHJlbWl1bVN1YnNjcmliZXI6IDEgPDwgMyxcbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIGF2YWlsYWJsZSBmb3IgcHVyY2hhc2UuICovXG4gIGF2YWlsYWJsZUZvclB1cmNoYXNlOiAxIDw8IDQsXG4gIC8qKiBXaGV0aGVyIHRoaXMgcm9sZSBpcyBhdmFpbGFibGUgZm9yIGd1aWxkIGNvbm5lY3Rpb25zLiAqL1xuICBndWlsZENvbm5lY3Rpb25zOiAxIDw8IDUsXG59XG5cbmV4cG9ydCBjbGFzcyBSb2xlVG9nZ2xlcyBleHRlbmRzIFRvZ2dsZUJpdGZpZWxkIHtcbiAgY29uc3RydWN0b3Iocm9sZU9yVG9nZ2xlc0ludDogRGlzY29yZFJvbGUgfCBudW1iZXIpIHtcbiAgICBzdXBlcigpXG5cbiAgICBpZiAodHlwZW9mIHJvbGVPclRvZ2dsZXNJbnQgPT09ICdudW1iZXInKSB0aGlzLmJpdGZpZWxkID0gcm9sZU9yVG9nZ2xlc0ludFxuICAgIGVsc2Uge1xuICAgICAgY29uc3Qgcm9sZSA9IHJvbGVPclRvZ2dsZXNJbnRcblxuICAgICAgaWYgKHJvbGUuaG9pc3QpIHRoaXMuYWRkKFJvbGVUb2dnbGUuaG9pc3QpXG4gICAgICBpZiAocm9sZS5tYW5hZ2VkKSB0aGlzLmFkZChSb2xlVG9nZ2xlLm1hbmFnZWQpXG4gICAgICBpZiAocm9sZS5tZW50aW9uYWJsZSkgdGhpcy5hZGQoUm9sZVRvZ2dsZS5tZW50aW9uYWJsZSlcbiAgICAgIGlmIChyb2xlLnRhZ3M/LnByZW1pdW1fc3Vic2NyaWJlciA9PT0gbnVsbCkgdGhpcy5hZGQoUm9sZVRvZ2dsZS5wcmVtaXVtU3Vic2NyaWJlcilcbiAgICAgIGlmIChyb2xlLnRhZ3M/LmF2YWlsYWJsZV9mb3JfcHVyY2hhc2UgPT09IG51bGwpIHRoaXMuYWRkKFJvbGVUb2dnbGUuYXZhaWxhYmxlRm9yUHVyY2hhc2UpXG4gICAgICBpZiAocm9sZS50YWdzPy5ndWlsZF9jb25uZWN0aW9ucyA9PT0gbnVsbCkgdGhpcy5hZGQoUm9sZVRvZ2dsZS5ndWlsZENvbm5lY3Rpb25zKVxuICAgIH1cbiAgfVxuXG4gIC8qKiBJZiB0aGlzIHJvbGUgaXMgc2hvd2VkIHNlcGFyYXRlbHkgaW4gdGhlIHVzZXIgbGlzdGluZyAqL1xuICBnZXQgaG9pc3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdob2lzdCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGlzIHJvbGUgaXMgbWFuYWdlZCBieSBhbiBpbnRlZ3JhdGlvbiAqL1xuICBnZXQgbWFuYWdlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ21hbmFnZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIG1lbnRpb25hYmxlICovXG4gIGdldCBtZW50aW9uYWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ21lbnRpb25hYmxlJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoaXMgaXMgdGhlIGd1aWxkcyBwcmVtaXVtIHN1YnNjcmliZXIgcm9sZSAqL1xuICBnZXQgcHJlbWl1bVN1YnNjcmliZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdwcmVtaXVtU3Vic2NyaWJlcicpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGlzIHJvbGUgaXMgYXZhaWxhYmxlIGZvciBwdXJjaGFzZS4gKi9cbiAgZ2V0IGF2YWlsYWJsZUZvclB1cmNoYXNlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnYXZhaWxhYmxlRm9yUHVyY2hhc2UnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyBpcyBhIGd1aWxkJ3MgbGlua2VkIHJvbGUuICovXG4gIGdldCBndWlsZENvbm5lY3Rpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnZ3VpbGRDb25uZWN0aW9ucycpXG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IHRoZSBwZXJtaXNzaW9ucyBleGlzdCBpbiB0aGlzICovXG4gIGhhcyhwZXJtaXNzaW9uczogUm9sZVRvZ2dsZUtleXMgfCBSb2xlVG9nZ2xlS2V5c1tdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBlcm1pc3Npb25zKSkgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKFJvbGVUb2dnbGVbcGVybWlzc2lvbnNdKVxuXG4gICAgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKHBlcm1pc3Npb25zLnJlZHVjZSgoYSwgYikgPT4gKGEgfD0gUm9sZVRvZ2dsZVtiXSksIDApKVxuICB9XG5cbiAgLyoqIExpc3RzIGFsbCB0aGUgdG9nZ2xlcyBmb3IgdGhlIHJvbGUgYW5kIHdoZXRoZXIgb3Igbm90IGVhY2ggaXMgdHJ1ZSBvciBmYWxzZS4gKi9cbiAgbGlzdCgpOiBSZWNvcmQ8Um9sZVRvZ2dsZUtleXMsIGJvb2xlYW4+IHtcbiAgICBjb25zdCBqc29uOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoUm9sZVRvZ2dsZSkpIHtcbiAgICAgIGpzb25ba2V5XSA9IHN1cGVyLmNvbnRhaW5zKHZhbHVlKVxuICAgIH1cblxuICAgIHJldHVybiBqc29uIGFzIFJlY29yZDxSb2xlVG9nZ2xlS2V5cywgYm9vbGVhbj5cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBSb2xlVG9nZ2xlS2V5cyA9IGtleW9mIHR5cGVvZiBSb2xlVG9nZ2xlXG4iXSwibmFtZXMiOlsiVG9nZ2xlQml0ZmllbGQiLCJSb2xlVG9nZ2xlIiwiaG9pc3QiLCJtYW5hZ2VkIiwibWVudGlvbmFibGUiLCJwcmVtaXVtU3Vic2NyaWJlciIsImF2YWlsYWJsZUZvclB1cmNoYXNlIiwiZ3VpbGRDb25uZWN0aW9ucyIsIlJvbGVUb2dnbGVzIiwicm9sZU9yVG9nZ2xlc0ludCIsImJpdGZpZWxkIiwicm9sZSIsImFkZCIsInRhZ3MiLCJwcmVtaXVtX3N1YnNjcmliZXIiLCJhdmFpbGFibGVfZm9yX3B1cmNoYXNlIiwiZ3VpbGRfY29ubmVjdGlvbnMiLCJoYXMiLCJwZXJtaXNzaW9ucyIsIkFycmF5IiwiaXNBcnJheSIsImNvbnRhaW5zIiwicmVkdWNlIiwiYSIsImIiLCJsaXN0IiwianNvbiIsImtleSIsInZhbHVlIiwiT2JqZWN0IiwiZW50cmllcyJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsY0FBYyxRQUFRLHNCQUFxQjtBQUVwRCxPQUFPLE1BQU1DLGFBQWE7SUFDeEIsMERBQTBELEdBQzFEQyxPQUFPLEtBQUs7SUFDWixtREFBbUQsR0FDbkRDLFNBQVMsS0FBSztJQUNkLHFDQUFxQyxHQUNyQ0MsYUFBYSxLQUFLO0lBQ2xCLHVEQUF1RCxHQUN2REMsbUJBQW1CLEtBQUs7SUFDeEIsaURBQWlELEdBQ2pEQyxzQkFBc0IsS0FBSztJQUMzQiwwREFBMEQsR0FDMURDLGtCQUFrQixLQUFLO0FBQ3pCLEVBQUM7QUFFRCxPQUFPLE1BQU1DLG9CQUFvQlI7SUFDL0IsWUFBWVMsZ0JBQXNDLENBQUU7UUFDbEQsS0FBSztRQUVMLElBQUksT0FBT0EscUJBQXFCLFVBQVUsSUFBSSxDQUFDQyxRQUFRLEdBQUdEO2FBQ3JEO1lBQ0gsTUFBTUUsT0FBT0Y7WUFFYixJQUFJRSxLQUFLVCxLQUFLLEVBQUUsSUFBSSxDQUFDVSxHQUFHLENBQUNYLFdBQVdDLEtBQUs7WUFDekMsSUFBSVMsS0FBS1IsT0FBTyxFQUFFLElBQUksQ0FBQ1MsR0FBRyxDQUFDWCxXQUFXRSxPQUFPO1lBQzdDLElBQUlRLEtBQUtQLFdBQVcsRUFBRSxJQUFJLENBQUNRLEdBQUcsQ0FBQ1gsV0FBV0csV0FBVztZQUNyRCxJQUFJTyxLQUFLRSxJQUFJLEVBQUVDLHVCQUF1QixNQUFNLElBQUksQ0FBQ0YsR0FBRyxDQUFDWCxXQUFXSSxpQkFBaUI7WUFDakYsSUFBSU0sS0FBS0UsSUFBSSxFQUFFRSwyQkFBMkIsTUFBTSxJQUFJLENBQUNILEdBQUcsQ0FBQ1gsV0FBV0ssb0JBQW9CO1lBQ3hGLElBQUlLLEtBQUtFLElBQUksRUFBRUcsc0JBQXNCLE1BQU0sSUFBSSxDQUFDSixHQUFHLENBQUNYLFdBQVdNLGdCQUFnQjtRQUNqRjtJQUNGO0lBRUEsMERBQTBELEdBQzFELElBQUlMLFFBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDZSxHQUFHLENBQUM7SUFDbEI7SUFFQSxtREFBbUQsR0FDbkQsSUFBSWQsVUFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUNjLEdBQUcsQ0FBQztJQUNsQjtJQUVBLHFDQUFxQyxHQUNyQyxJQUFJYixjQUF1QjtRQUN6QixPQUFPLElBQUksQ0FBQ2EsR0FBRyxDQUFDO0lBQ2xCO0lBRUEsdURBQXVELEdBQ3ZELElBQUlaLG9CQUE2QjtRQUMvQixPQUFPLElBQUksQ0FBQ1ksR0FBRyxDQUFDO0lBQ2xCO0lBRUEsaURBQWlELEdBQ2pELElBQUlYLHVCQUFnQztRQUNsQyxPQUFPLElBQUksQ0FBQ1csR0FBRyxDQUFDO0lBQ2xCO0lBRUEsMkNBQTJDLEdBQzNDLElBQUlWLG1CQUE0QjtRQUM5QixPQUFPLElBQUksQ0FBQ1UsR0FBRyxDQUFDO0lBQ2xCO0lBRUEsd0RBQXdELEdBQ3hEQSxJQUFJQyxXQUE4QyxFQUFXO1FBQzNELElBQUksQ0FBQ0MsTUFBTUMsT0FBTyxDQUFDRixjQUFjLE9BQU8sS0FBSyxDQUFDRyxTQUFTcEIsVUFBVSxDQUFDaUIsWUFBWTtRQUU5RSxPQUFPLEtBQUssQ0FBQ0csU0FBU0gsWUFBWUksTUFBTSxDQUFDLENBQUNDLEdBQUdDLElBQU9ELEtBQUt0QixVQUFVLENBQUN1QixFQUFFLEVBQUc7SUFDM0U7SUFFQSxpRkFBaUYsR0FDakZDLE9BQXdDO1FBQ3RDLE1BQU1DLE9BQWdDLENBQUM7UUFDdkMsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSUMsT0FBT0MsT0FBTyxDQUFDN0IsWUFBYTtZQUNyRHlCLElBQUksQ0FBQ0MsSUFBSSxHQUFHLEtBQUssQ0FBQ04sU0FBU087UUFDN0I7UUFFQSxPQUFPRjtJQUNUO0FBQ0YifQ==
@@ -42,4 +42,4 @@ export class UserToggles extends ToggleBitfield {
42
42
  }
43
43
  }
44
44
 
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy91c2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZFVzZXIgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IFRvZ2dsZUJpdGZpZWxkIH0gZnJvbSAnLi9Ub2dnbGVCaXRmaWVsZC5qcydcblxuZXhwb3J0IGNvbnN0IFVzZXJUb2dnbGUgPSB7XG4gIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGJlbG9uZ3MgdG8gYW4gT0F1dGgyIGFwcGxpY2F0aW9uICovXG4gIGJvdDogMSA8PCAwLFxuICAvKiogV2hldGhlciB0aGUgdXNlciBpcyBhbiBPZmZpY2lhbCBEaXNjb3JkIFN5c3RlbSB1c2VyIChwYXJ0IG9mIHRoZSB1cmdlbnQgbWVzc2FnZSBzeXN0ZW0pICovXG4gIHN5c3RlbTogMSA8PCAxLFxuICAvKiogV2hldGhlciB0aGUgdXNlciBoYXMgdHdvIGZhY3RvciBlbmFibGVkIG9uIHRoZWlyIGFjY291bnQgKi9cbiAgbWZhRW5hYmxlZDogMSA8PCAyLFxuICAvKiogV2hldGhlciB0aGUgZW1haWwgb24gdGhpcyBhY2NvdW50IGhhcyBiZWVuIHZlcmlmaWVkICovXG4gIHZlcmlmaWVkOiAxIDw8IDMsXG59XG5cbmV4cG9ydCBjbGFzcyBVc2VyVG9nZ2xlcyBleHRlbmRzIFRvZ2dsZUJpdGZpZWxkIHtcbiAgY29uc3RydWN0b3IodXNlck9yVG9nZ2xlc0ludDogRGlzY29yZFVzZXIgfCBudW1iZXIpIHtcbiAgICBzdXBlcigpXG5cbiAgICBpZiAodHlwZW9mIHVzZXJPclRvZ2dsZXNJbnQgPT09ICdudW1iZXInKSB0aGlzLmJpdGZpZWxkID0gdXNlck9yVG9nZ2xlc0ludFxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgdXNlciA9IHVzZXJPclRvZ2dsZXNJbnRcblxuICAgICAgaWYgKHVzZXIuYm90KSB0aGlzLmFkZChVc2VyVG9nZ2xlLmJvdClcbiAgICAgIGlmICh1c2VyLnN5c3RlbSkgdGhpcy5hZGQoVXNlclRvZ2dsZS5zeXN0ZW0pXG4gICAgICBpZiAodXNlci5tZmFfZW5hYmxlZCkgdGhpcy5hZGQoVXNlclRvZ2dsZS5tZmFFbmFibGVkKVxuICAgICAgaWYgKHVzZXIudmVyaWZpZWQpIHRoaXMuYWRkKFVzZXJUb2dnbGUudmVyaWZpZWQpXG4gICAgfVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgYmVsb25ncyB0byBhbiBPQXV0aDIgYXBwbGljYXRpb24gKi9cbiAgZ2V0IGJvdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2JvdCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgdXNlciBpcyBhbiBPZmZpY2lhbCBEaXNjb3JkIFN5c3RlbSB1c2VyIChwYXJ0IG9mIHRoZSB1cmdlbnQgbWVzc2FnZSBzeXN0ZW0pICovXG4gIGdldCBzeXN0ZW0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdzeXN0ZW0nKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgaGFzIHR3byBmYWN0b3IgZW5hYmxlZCBvbiB0aGVpciBhY2NvdW50ICovXG4gIGdldCBtZmFFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnbWZhRW5hYmxlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZW1haWwgb24gdGhpcyBhY2NvdW50IGhhcyBiZWVuIHZlcmlmaWVkICovXG4gIGdldCB2ZXJpZmllZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3ZlcmlmaWVkJylcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciBvciBub3QgdGhlIHBlcm1pc3Npb25zIGV4aXN0IGluIHRoaXMgKi9cbiAgaGFzKHBlcm1pc3Npb25zOiBVc2VyVG9nZ2xlS2V5cyB8IFVzZXJUb2dnbGVLZXlzW10pOiBib29sZWFuIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocGVybWlzc2lvbnMpKSByZXR1cm4gc3VwZXIuY29udGFpbnMoVXNlclRvZ2dsZVtwZXJtaXNzaW9uc10pXG5cbiAgICByZXR1cm4gc3VwZXIuY29udGFpbnMocGVybWlzc2lvbnMucmVkdWNlKChhLCBiKSA9PiAoYSB8PSBVc2VyVG9nZ2xlW2JdKSwgMCkpXG4gIH1cblxuICAvKiogTGlzdHMgYWxsIHRoZSB0b2dnbGVzIGZvciB0aGUgcm9sZSBhbmQgd2hldGhlciBvciBub3QgZWFjaCBpcyB0cnVlIG9yIGZhbHNlLiAqL1xuICBsaXN0KCk6IFJlY29yZDxVc2VyVG9nZ2xlS2V5cywgYm9vbGVhbj4ge1xuICAgIGNvbnN0IGpzb246IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge31cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhVc2VyVG9nZ2xlKSkge1xuICAgICAganNvbltrZXldID0gc3VwZXIuY29udGFpbnModmFsdWUpXG4gICAgfVxuXG4gICAgcmV0dXJuIGpzb24gYXMgUmVjb3JkPFVzZXJUb2dnbGVLZXlzLCBib29sZWFuPlxuICB9XG59XG5cbmV4cG9ydCB0eXBlIFVzZXJUb2dnbGVLZXlzID0ga2V5b2YgdHlwZW9mIFVzZXJUb2dnbGVcbiJdLCJuYW1lcyI6WyJUb2dnbGVCaXRmaWVsZCIsIlVzZXJUb2dnbGUiLCJib3QiLCJzeXN0ZW0iLCJtZmFFbmFibGVkIiwidmVyaWZpZWQiLCJVc2VyVG9nZ2xlcyIsImNvbnN0cnVjdG9yIiwidXNlck9yVG9nZ2xlc0ludCIsImJpdGZpZWxkIiwidXNlciIsImFkZCIsIm1mYV9lbmFibGVkIiwiaGFzIiwicGVybWlzc2lvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJjb250YWlucyIsInJlZHVjZSIsImEiLCJiIiwibGlzdCIsImpzb24iLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGNBQWMsUUFBUSxzQkFBcUI7QUFFcEQsT0FBTyxNQUFNQyxhQUFhO0lBQ3hCLHNEQUFzRCxHQUN0REMsS0FBSyxLQUFLO0lBQ1YsNEZBQTRGLEdBQzVGQyxRQUFRLEtBQUs7SUFDYiw2REFBNkQsR0FDN0RDLFlBQVksS0FBSztJQUNqQix3REFBd0QsR0FDeERDLFVBQVUsS0FBSztBQUNqQixFQUFDO0FBRUQsT0FBTyxNQUFNQyxvQkFBb0JOO0lBQy9CTyxZQUFZQyxnQkFBc0MsQ0FBRTtRQUNsRCxLQUFLO1FBRUwsSUFBSSxPQUFPQSxxQkFBcUIsVUFBVSxJQUFJLENBQUNDLFFBQVEsR0FBR0Q7YUFDckQ7WUFDSCxNQUFNRSxPQUFPRjtZQUViLElBQUlFLEtBQUtSLEdBQUcsRUFBRSxJQUFJLENBQUNTLEdBQUcsQ0FBQ1YsV0FBV0MsR0FBRztZQUNyQyxJQUFJUSxLQUFLUCxNQUFNLEVBQUUsSUFBSSxDQUFDUSxHQUFHLENBQUNWLFdBQVdFLE1BQU07WUFDM0MsSUFBSU8sS0FBS0UsV0FBVyxFQUFFLElBQUksQ0FBQ0QsR0FBRyxDQUFDVixXQUFXRyxVQUFVO1lBQ3BELElBQUlNLEtBQUtMLFFBQVEsRUFBRSxJQUFJLENBQUNNLEdBQUcsQ0FBQ1YsV0FBV0ksUUFBUTtRQUNqRDtJQUNGO0lBRUEsc0RBQXNELEdBQ3RELElBQUlILE1BQWU7UUFDakIsT0FBTyxJQUFJLENBQUNXLEdBQUcsQ0FBQztJQUNsQjtJQUVBLDRGQUE0RixHQUM1RixJQUFJVixTQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQ1UsR0FBRyxDQUFDO0lBQ2xCO0lBRUEsNkRBQTZELEdBQzdELElBQUlULGFBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDUyxHQUFHLENBQUM7SUFDbEI7SUFFQSx3REFBd0QsR0FDeEQsSUFBSVIsV0FBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUNRLEdBQUcsQ0FBQztJQUNsQjtJQUVBLHdEQUF3RCxHQUN4REEsSUFBSUMsV0FBOEMsRUFBVztRQUMzRCxJQUFJLENBQUNDLE1BQU1DLE9BQU8sQ0FBQ0YsY0FBYyxPQUFPLEtBQUssQ0FBQ0csU0FBU2hCLFVBQVUsQ0FBQ2EsWUFBWTtRQUU5RSxPQUFPLEtBQUssQ0FBQ0csU0FBU0gsWUFBWUksTUFBTSxDQUFDLENBQUNDLEdBQUdDLElBQU9ELEtBQUtsQixVQUFVLENBQUNtQixFQUFFLEVBQUc7SUFDM0U7SUFFQSxpRkFBaUYsR0FDakZDLE9BQXdDO1FBQ3RDLE1BQU1DLE9BQWdDLENBQUM7UUFDdkMsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSUMsT0FBT0MsT0FBTyxDQUFDekIsWUFBYTtZQUNyRHFCLElBQUksQ0FBQ0MsSUFBSSxHQUFHLEtBQUssQ0FBQ04sU0FBU087UUFDN0I7UUFFQSxPQUFPRjtJQUNUO0FBQ0YifQ==
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy91c2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZFVzZXIgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IFRvZ2dsZUJpdGZpZWxkIH0gZnJvbSAnLi9Ub2dnbGVCaXRmaWVsZC5qcydcblxuZXhwb3J0IGNvbnN0IFVzZXJUb2dnbGUgPSB7XG4gIC8qKiBXaGV0aGVyIHRoZSB1c2VyIGJlbG9uZ3MgdG8gYW4gT0F1dGgyIGFwcGxpY2F0aW9uICovXG4gIGJvdDogMSA8PCAwLFxuICAvKiogV2hldGhlciB0aGUgdXNlciBpcyBhbiBPZmZpY2lhbCBEaXNjb3JkIFN5c3RlbSB1c2VyIChwYXJ0IG9mIHRoZSB1cmdlbnQgbWVzc2FnZSBzeXN0ZW0pICovXG4gIHN5c3RlbTogMSA8PCAxLFxuICAvKiogV2hldGhlciB0aGUgdXNlciBoYXMgdHdvIGZhY3RvciBlbmFibGVkIG9uIHRoZWlyIGFjY291bnQgKi9cbiAgbWZhRW5hYmxlZDogMSA8PCAyLFxuICAvKiogV2hldGhlciB0aGUgZW1haWwgb24gdGhpcyBhY2NvdW50IGhhcyBiZWVuIHZlcmlmaWVkICovXG4gIHZlcmlmaWVkOiAxIDw8IDMsXG59XG5cbmV4cG9ydCBjbGFzcyBVc2VyVG9nZ2xlcyBleHRlbmRzIFRvZ2dsZUJpdGZpZWxkIHtcbiAgY29uc3RydWN0b3IodXNlck9yVG9nZ2xlc0ludDogRGlzY29yZFVzZXIgfCBudW1iZXIpIHtcbiAgICBzdXBlcigpXG5cbiAgICBpZiAodHlwZW9mIHVzZXJPclRvZ2dsZXNJbnQgPT09ICdudW1iZXInKSB0aGlzLmJpdGZpZWxkID0gdXNlck9yVG9nZ2xlc0ludFxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgdXNlciA9IHVzZXJPclRvZ2dsZXNJbnRcblxuICAgICAgaWYgKHVzZXIuYm90KSB0aGlzLmFkZChVc2VyVG9nZ2xlLmJvdClcbiAgICAgIGlmICh1c2VyLnN5c3RlbSkgdGhpcy5hZGQoVXNlclRvZ2dsZS5zeXN0ZW0pXG4gICAgICBpZiAodXNlci5tZmFfZW5hYmxlZCkgdGhpcy5hZGQoVXNlclRvZ2dsZS5tZmFFbmFibGVkKVxuICAgICAgaWYgKHVzZXIudmVyaWZpZWQpIHRoaXMuYWRkKFVzZXJUb2dnbGUudmVyaWZpZWQpXG4gICAgfVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgYmVsb25ncyB0byBhbiBPQXV0aDIgYXBwbGljYXRpb24gKi9cbiAgZ2V0IGJvdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2JvdCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgdXNlciBpcyBhbiBPZmZpY2lhbCBEaXNjb3JkIFN5c3RlbSB1c2VyIChwYXJ0IG9mIHRoZSB1cmdlbnQgbWVzc2FnZSBzeXN0ZW0pICovXG4gIGdldCBzeXN0ZW0oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdzeXN0ZW0nKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHVzZXIgaGFzIHR3byBmYWN0b3IgZW5hYmxlZCBvbiB0aGVpciBhY2NvdW50ICovXG4gIGdldCBtZmFFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnbWZhRW5hYmxlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgZW1haWwgb24gdGhpcyBhY2NvdW50IGhhcyBiZWVuIHZlcmlmaWVkICovXG4gIGdldCB2ZXJpZmllZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3ZlcmlmaWVkJylcbiAgfVxuXG4gIC8qKiBDaGVja3Mgd2hldGhlciBvciBub3QgdGhlIHBlcm1pc3Npb25zIGV4aXN0IGluIHRoaXMgKi9cbiAgaGFzKHBlcm1pc3Npb25zOiBVc2VyVG9nZ2xlS2V5cyB8IFVzZXJUb2dnbGVLZXlzW10pOiBib29sZWFuIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocGVybWlzc2lvbnMpKSByZXR1cm4gc3VwZXIuY29udGFpbnMoVXNlclRvZ2dsZVtwZXJtaXNzaW9uc10pXG5cbiAgICByZXR1cm4gc3VwZXIuY29udGFpbnMocGVybWlzc2lvbnMucmVkdWNlKChhLCBiKSA9PiAoYSB8PSBVc2VyVG9nZ2xlW2JdKSwgMCkpXG4gIH1cblxuICAvKiogTGlzdHMgYWxsIHRoZSB0b2dnbGVzIGZvciB0aGUgcm9sZSBhbmQgd2hldGhlciBvciBub3QgZWFjaCBpcyB0cnVlIG9yIGZhbHNlLiAqL1xuICBsaXN0KCk6IFJlY29yZDxVc2VyVG9nZ2xlS2V5cywgYm9vbGVhbj4ge1xuICAgIGNvbnN0IGpzb246IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge31cbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhVc2VyVG9nZ2xlKSkge1xuICAgICAganNvbltrZXldID0gc3VwZXIuY29udGFpbnModmFsdWUpXG4gICAgfVxuXG4gICAgcmV0dXJuIGpzb24gYXMgUmVjb3JkPFVzZXJUb2dnbGVLZXlzLCBib29sZWFuPlxuICB9XG59XG5cbmV4cG9ydCB0eXBlIFVzZXJUb2dnbGVLZXlzID0ga2V5b2YgdHlwZW9mIFVzZXJUb2dnbGVcbiJdLCJuYW1lcyI6WyJUb2dnbGVCaXRmaWVsZCIsIlVzZXJUb2dnbGUiLCJib3QiLCJzeXN0ZW0iLCJtZmFFbmFibGVkIiwidmVyaWZpZWQiLCJVc2VyVG9nZ2xlcyIsInVzZXJPclRvZ2dsZXNJbnQiLCJiaXRmaWVsZCIsInVzZXIiLCJhZGQiLCJtZmFfZW5hYmxlZCIsImhhcyIsInBlcm1pc3Npb25zIiwiQXJyYXkiLCJpc0FycmF5IiwiY29udGFpbnMiLCJyZWR1Y2UiLCJhIiwiYiIsImxpc3QiLCJqc29uIiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJlbnRyaWVzIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxjQUFjLFFBQVEsc0JBQXFCO0FBRXBELE9BQU8sTUFBTUMsYUFBYTtJQUN4QixzREFBc0QsR0FDdERDLEtBQUssS0FBSztJQUNWLDRGQUE0RixHQUM1RkMsUUFBUSxLQUFLO0lBQ2IsNkRBQTZELEdBQzdEQyxZQUFZLEtBQUs7SUFDakIsd0RBQXdELEdBQ3hEQyxVQUFVLEtBQUs7QUFDakIsRUFBQztBQUVELE9BQU8sTUFBTUMsb0JBQW9CTjtJQUMvQixZQUFZTyxnQkFBc0MsQ0FBRTtRQUNsRCxLQUFLO1FBRUwsSUFBSSxPQUFPQSxxQkFBcUIsVUFBVSxJQUFJLENBQUNDLFFBQVEsR0FBR0Q7YUFDckQ7WUFDSCxNQUFNRSxPQUFPRjtZQUViLElBQUlFLEtBQUtQLEdBQUcsRUFBRSxJQUFJLENBQUNRLEdBQUcsQ0FBQ1QsV0FBV0MsR0FBRztZQUNyQyxJQUFJTyxLQUFLTixNQUFNLEVBQUUsSUFBSSxDQUFDTyxHQUFHLENBQUNULFdBQVdFLE1BQU07WUFDM0MsSUFBSU0sS0FBS0UsV0FBVyxFQUFFLElBQUksQ0FBQ0QsR0FBRyxDQUFDVCxXQUFXRyxVQUFVO1lBQ3BELElBQUlLLEtBQUtKLFFBQVEsRUFBRSxJQUFJLENBQUNLLEdBQUcsQ0FBQ1QsV0FBV0ksUUFBUTtRQUNqRDtJQUNGO0lBRUEsc0RBQXNELEdBQ3RELElBQUlILE1BQWU7UUFDakIsT0FBTyxJQUFJLENBQUNVLEdBQUcsQ0FBQztJQUNsQjtJQUVBLDRGQUE0RixHQUM1RixJQUFJVCxTQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQ1MsR0FBRyxDQUFDO0lBQ2xCO0lBRUEsNkRBQTZELEdBQzdELElBQUlSLGFBQXNCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDUSxHQUFHLENBQUM7SUFDbEI7SUFFQSx3REFBd0QsR0FDeEQsSUFBSVAsV0FBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUNPLEdBQUcsQ0FBQztJQUNsQjtJQUVBLHdEQUF3RCxHQUN4REEsSUFBSUMsV0FBOEMsRUFBVztRQUMzRCxJQUFJLENBQUNDLE1BQU1DLE9BQU8sQ0FBQ0YsY0FBYyxPQUFPLEtBQUssQ0FBQ0csU0FBU2YsVUFBVSxDQUFDWSxZQUFZO1FBRTlFLE9BQU8sS0FBSyxDQUFDRyxTQUFTSCxZQUFZSSxNQUFNLENBQUMsQ0FBQ0MsR0FBR0MsSUFBT0QsS0FBS2pCLFVBQVUsQ0FBQ2tCLEVBQUUsRUFBRztJQUMzRTtJQUVBLGlGQUFpRixHQUNqRkMsT0FBd0M7UUFDdEMsTUFBTUMsT0FBZ0MsQ0FBQztRQUN2QyxLQUFLLE1BQU0sQ0FBQ0MsS0FBS0MsTUFBTSxJQUFJQyxPQUFPQyxPQUFPLENBQUN4QixZQUFhO1lBQ3JEb0IsSUFBSSxDQUFDQyxJQUFJLEdBQUcsS0FBSyxDQUFDTixTQUFTTztRQUM3QjtRQUVBLE9BQU9GO0lBQ1Q7QUFDRiJ9
@@ -57,4 +57,4 @@ export class VoiceStateToggles extends ToggleBitfield {
57
57
  }
58
58
  }
59
59
 
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy92b2ljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRWb2ljZVN0YXRlIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vVG9nZ2xlQml0ZmllbGQuanMnXG5cbmV4cG9ydCBjb25zdCBWb2ljZVN0YXRlVG9nZ2xlID0ge1xuICAvKiogV2hldGhlciB0aGlzIHVzZXIgaXMgZGVhZmVuZWQgYnkgdGhlIHNlcnZlciAqL1xuICBkZWFmOiAxIDw8IDAsXG4gIC8qKiBXaGV0aGVyIHRoaXMgdXNlciBpcyBtdXRlZCBieSB0aGUgc2VydmVyICovXG4gIG11dGU6IDEgPDwgMSxcbiAgLyoqIFdoZXRoZXIgdGhpcyB1c2VyIGlzIGxvY2FsbHkgZGVhZmVuZWQgKi9cbiAgc2VsZkRlYWY6IDEgPDwgMixcbiAgLyoqIFdoZXRoZXIgdGhpcyB1c2VyIGlzIGxvY2FsbHkgbXV0ZWQgKi9cbiAgc2VsZk11dGU6IDEgPDwgMyxcbiAgLyoqIFdoZXRoZXIgdGhpcyB1c2VyIGlzIHN0cmVhbWluZyB1c2luZyBcIkdvIExpdmVcIiAqL1xuICBzZWxmU3RyZWFtOiAxIDw8IDQsXG4gIC8qKiBXaGV0aGVyIHRoaXMgdXNlcidzIGNhbWVyYSBpcyBlbmFibGVkICovXG4gIHNlbGZWaWRlbzogMSA8PCA1LFxuICAvKiogV2hldGhlciB0aGlzIHVzZXIgaXMgbXV0ZWQgYnkgdGhlIGN1cnJlbnQgdXNlciAqL1xuICBzdXBwcmVzczogMSA8PCA2LFxufVxuXG5leHBvcnQgY2xhc3MgVm9pY2VTdGF0ZVRvZ2dsZXMgZXh0ZW5kcyBUb2dnbGVCaXRmaWVsZCB7XG4gIGNvbnN0cnVjdG9yKHZvaWNlT3JUb2dnbGVzSW50OiBEaXNjb3JkVm9pY2VTdGF0ZSB8IG51bWJlcikge1xuICAgIHN1cGVyKClcblxuICAgIGlmICh0eXBlb2Ygdm9pY2VPclRvZ2dsZXNJbnQgPT09ICdudW1iZXInKSB0aGlzLmJpdGZpZWxkID0gdm9pY2VPclRvZ2dsZXNJbnRcbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IHZvaWNlID0gdm9pY2VPclRvZ2dsZXNJbnRcblxuICAgICAgaWYgKHZvaWNlLmRlYWYpIHRoaXMuYWRkKFZvaWNlU3RhdGVUb2dnbGUuZGVhZilcbiAgICAgIGlmICh2b2ljZS5tdXRlKSB0aGlzLmFkZChWb2ljZVN0YXRlVG9nZ2xlLm11dGUpXG4gICAgICBpZiAodm9pY2Uuc2VsZl9kZWFmKSB0aGlzLmFkZChWb2ljZVN0YXRlVG9nZ2xlLnNlbGZEZWFmKVxuICAgICAgaWYgKHZvaWNlLnNlbGZfbXV0ZSkgdGhpcy5hZGQoVm9pY2VTdGF0ZVRvZ2dsZS5zZWxmTXV0ZSlcbiAgICAgIGlmICh2b2ljZS5zZWxmX3N0cmVhbSkgdGhpcy5hZGQoVm9pY2VTdGF0ZVRvZ2dsZS5zZWxmU3RyZWFtKVxuICAgICAgaWYgKHZvaWNlLnNlbGZfdmlkZW8pIHRoaXMuYWRkKFZvaWNlU3RhdGVUb2dnbGUuc2VsZlZpZGVvKVxuICAgICAgaWYgKHZvaWNlLnN1cHByZXNzKSB0aGlzLmFkZChWb2ljZVN0YXRlVG9nZ2xlLnN1cHByZXNzKVxuICAgIH1cbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoaXMgdXNlciBpcyBkZWFmZW5lZCBieSB0aGUgc2VydmVyICovXG4gIGdldCBkZWFmKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnZGVhZicpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGlzIHVzZXIgaXMgbXV0ZWQgYnkgdGhlIHNlcnZlciAqL1xuICBnZXQgbXV0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ211dGUnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyB1c2VyIGlzIGxvY2FsbHkgZGVhZmVuZWQgKi9cbiAgZ2V0IHNlbGZEZWFmKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnc2VsZkRlYWYnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyB1c2VyIGlzIGxvY2FsbHkgbXV0ZWQgKi9cbiAgZ2V0IHNlbGZNdXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnc2VsZk11dGUnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyB1c2VyIGlzIHN0cmVhbWluZyB1c2luZyBcIkdvIExpdmVcIiAqL1xuICBnZXQgc2VsZlN0cmVhbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3NlbGZTdHJlYW0nKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyB1c2VyJ3MgY2FtZXJhIGlzIGVuYWJsZWQgKi9cbiAgZ2V0IHNlbGZWaWRlbygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3NlbGZWaWRlbycpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGlzIHVzZXIgaXMgbXV0ZWQgYnkgdGhlIGN1cnJlbnQgdXNlciAqL1xuICBnZXQgc3VwcHJlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdzdXBwcmVzcycpXG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IHRoZSBwZXJtaXNzaW9ucyBleGlzdCBpbiB0aGlzICovXG4gIGhhcyhwZXJtaXNzaW9uczogVm9pY2VTdGF0ZVRvZ2dsZUtleXMgfCBWb2ljZVN0YXRlVG9nZ2xlS2V5c1tdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBlcm1pc3Npb25zKSkgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKFZvaWNlU3RhdGVUb2dnbGVbcGVybWlzc2lvbnNdKVxuXG4gICAgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKHBlcm1pc3Npb25zLnJlZHVjZSgoYSwgYikgPT4gKGEgfD0gVm9pY2VTdGF0ZVRvZ2dsZVtiXSksIDApKVxuICB9XG5cbiAgLyoqIExpc3RzIGFsbCB0aGUgdG9nZ2xlcyBmb3IgdGhlIHJvbGUgYW5kIHdoZXRoZXIgb3Igbm90IGVhY2ggaXMgdHJ1ZSBvciBmYWxzZS4gKi9cbiAgbGlzdCgpOiBSZWNvcmQ8Vm9pY2VTdGF0ZVRvZ2dsZUtleXMsIGJvb2xlYW4+IHtcbiAgICBjb25zdCBqc29uOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoVm9pY2VTdGF0ZVRvZ2dsZSkpIHtcbiAgICAgIGpzb25ba2V5XSA9IHN1cGVyLmNvbnRhaW5zKHZhbHVlKVxuICAgIH1cblxuICAgIHJldHVybiBqc29uIGFzIFJlY29yZDxWb2ljZVN0YXRlVG9nZ2xlS2V5cywgYm9vbGVhbj5cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBWb2ljZVN0YXRlVG9nZ2xlS2V5cyA9IGtleW9mIHR5cGVvZiBWb2ljZVN0YXRlVG9nZ2xlXG4iXSwibmFtZXMiOlsiVG9nZ2xlQml0ZmllbGQiLCJWb2ljZVN0YXRlVG9nZ2xlIiwiZGVhZiIsIm11dGUiLCJzZWxmRGVhZiIsInNlbGZNdXRlIiwic2VsZlN0cmVhbSIsInNlbGZWaWRlbyIsInN1cHByZXNzIiwiVm9pY2VTdGF0ZVRvZ2dsZXMiLCJjb25zdHJ1Y3RvciIsInZvaWNlT3JUb2dnbGVzSW50IiwiYml0ZmllbGQiLCJ2b2ljZSIsImFkZCIsInNlbGZfZGVhZiIsInNlbGZfbXV0ZSIsInNlbGZfc3RyZWFtIiwic2VsZl92aWRlbyIsImhhcyIsInBlcm1pc3Npb25zIiwiQXJyYXkiLCJpc0FycmF5IiwiY29udGFpbnMiLCJyZWR1Y2UiLCJhIiwiYiIsImxpc3QiLCJqc29uIiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJlbnRyaWVzIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxjQUFjLFFBQVEsc0JBQXFCO0FBRXBELE9BQU8sTUFBTUMsbUJBQW1CO0lBQzlCLGdEQUFnRCxHQUNoREMsTUFBTSxLQUFLO0lBQ1gsNkNBQTZDLEdBQzdDQyxNQUFNLEtBQUs7SUFDWCwwQ0FBMEMsR0FDMUNDLFVBQVUsS0FBSztJQUNmLHVDQUF1QyxH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
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy92b2ljZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRWb2ljZVN0YXRlIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vVG9nZ2xlQml0ZmllbGQuanMnXG5cbmV4cG9ydCBjb25zdCBWb2ljZVN0YXRlVG9nZ2xlID0ge1xuICAvKiogV2hldGhlciB0aGlzIHVzZXIgaXMgZGVhZmVuZWQgYnkgdGhlIHNlcnZlciAqL1xuICBkZWFmOiAxIDw8IDAsXG4gIC8qKiBXaGV0aGVyIHRoaXMgdXNlciBpcyBtdXRlZCBieSB0aGUgc2VydmVyICovXG4gIG11dGU6IDEgPDwgMSxcbiAgLyoqIFdoZXRoZXIgdGhpcyB1c2VyIGlzIGxvY2FsbHkgZGVhZmVuZWQgKi9cbiAgc2VsZkRlYWY6IDEgPDwgMixcbiAgLyoqIFdoZXRoZXIgdGhpcyB1c2VyIGlzIGxvY2FsbHkgbXV0ZWQgKi9cbiAgc2VsZk11dGU6IDEgPDwgMyxcbiAgLyoqIFdoZXRoZXIgdGhpcyB1c2VyIGlzIHN0cmVhbWluZyB1c2luZyBcIkdvIExpdmVcIiAqL1xuICBzZWxmU3RyZWFtOiAxIDw8IDQsXG4gIC8qKiBXaGV0aGVyIHRoaXMgdXNlcidzIGNhbWVyYSBpcyBlbmFibGVkICovXG4gIHNlbGZWaWRlbzogMSA8PCA1LFxuICAvKiogV2hldGhlciB0aGlzIHVzZXIgaXMgbXV0ZWQgYnkgdGhlIGN1cnJlbnQgdXNlciAqL1xuICBzdXBwcmVzczogMSA8PCA2LFxufVxuXG5leHBvcnQgY2xhc3MgVm9pY2VTdGF0ZVRvZ2dsZXMgZXh0ZW5kcyBUb2dnbGVCaXRmaWVsZCB7XG4gIGNvbnN0cnVjdG9yKHZvaWNlT3JUb2dnbGVzSW50OiBEaXNjb3JkVm9pY2VTdGF0ZSB8IG51bWJlcikge1xuICAgIHN1cGVyKClcblxuICAgIGlmICh0eXBlb2Ygdm9pY2VPclRvZ2dsZXNJbnQgPT09ICdudW1iZXInKSB0aGlzLmJpdGZpZWxkID0gdm9pY2VPclRvZ2dsZXNJbnRcbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IHZvaWNlID0gdm9pY2VPclRvZ2dsZXNJbnRcblxuICAgICAgaWYgKHZvaWNlLmRlYWYpIHRoaXMuYWRkKFZvaWNlU3RhdGVUb2dnbGUuZGVhZilcbiAgICAgIGlmICh2b2ljZS5tdXRlKSB0aGlzLmFkZChWb2ljZVN0YXRlVG9nZ2xlLm11dGUpXG4gICAgICBpZiAodm9pY2Uuc2VsZl9kZWFmKSB0aGlzLmFkZChWb2ljZVN0YXRlVG9nZ2xlLnNlbGZEZWFmKVxuICAgICAgaWYgKHZvaWNlLnNlbGZfbXV0ZSkgdGhpcy5hZGQoVm9pY2VTdGF0ZVRvZ2dsZS5zZWxmTXV0ZSlcbiAgICAgIGlmICh2b2ljZS5zZWxmX3N0cmVhbSkgdGhpcy5hZGQoVm9pY2VTdGF0ZVRvZ2dsZS5zZWxmU3RyZWFtKVxuICAgICAgaWYgKHZvaWNlLnNlbGZfdmlkZW8pIHRoaXMuYWRkKFZvaWNlU3RhdGVUb2dnbGUuc2VsZlZpZGVvKVxuICAgICAgaWYgKHZvaWNlLnN1cHByZXNzKSB0aGlzLmFkZChWb2ljZVN0YXRlVG9nZ2xlLnN1cHByZXNzKVxuICAgIH1cbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoaXMgdXNlciBpcyBkZWFmZW5lZCBieSB0aGUgc2VydmVyICovXG4gIGdldCBkZWFmKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnZGVhZicpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGlzIHVzZXIgaXMgbXV0ZWQgYnkgdGhlIHNlcnZlciAqL1xuICBnZXQgbXV0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ211dGUnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyB1c2VyIGlzIGxvY2FsbHkgZGVhZmVuZWQgKi9cbiAgZ2V0IHNlbGZEZWFmKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnc2VsZkRlYWYnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyB1c2VyIGlzIGxvY2FsbHkgbXV0ZWQgKi9cbiAgZ2V0IHNlbGZNdXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnc2VsZk11dGUnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyB1c2VyIGlzIHN0cmVhbWluZyB1c2luZyBcIkdvIExpdmVcIiAqL1xuICBnZXQgc2VsZlN0cmVhbSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3NlbGZTdHJlYW0nKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhpcyB1c2VyJ3MgY2FtZXJhIGlzIGVuYWJsZWQgKi9cbiAgZ2V0IHNlbGZWaWRlbygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ3NlbGZWaWRlbycpXG4gIH1cblxuICAvKiogV2hldGhlciB0aGlzIHVzZXIgaXMgbXV0ZWQgYnkgdGhlIGN1cnJlbnQgdXNlciAqL1xuICBnZXQgc3VwcHJlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdzdXBwcmVzcycpXG4gIH1cblxuICAvKiogQ2hlY2tzIHdoZXRoZXIgb3Igbm90IHRoZSBwZXJtaXNzaW9ucyBleGlzdCBpbiB0aGlzICovXG4gIGhhcyhwZXJtaXNzaW9uczogVm9pY2VTdGF0ZVRvZ2dsZUtleXMgfCBWb2ljZVN0YXRlVG9nZ2xlS2V5c1tdKTogYm9vbGVhbiB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBlcm1pc3Npb25zKSkgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKFZvaWNlU3RhdGVUb2dnbGVbcGVybWlzc2lvbnNdKVxuXG4gICAgcmV0dXJuIHN1cGVyLmNvbnRhaW5zKHBlcm1pc3Npb25zLnJlZHVjZSgoYSwgYikgPT4gKGEgfD0gVm9pY2VTdGF0ZVRvZ2dsZVtiXSksIDApKVxuICB9XG5cbiAgLyoqIExpc3RzIGFsbCB0aGUgdG9nZ2xlcyBmb3IgdGhlIHJvbGUgYW5kIHdoZXRoZXIgb3Igbm90IGVhY2ggaXMgdHJ1ZSBvciBmYWxzZS4gKi9cbiAgbGlzdCgpOiBSZWNvcmQ8Vm9pY2VTdGF0ZVRvZ2dsZUtleXMsIGJvb2xlYW4+IHtcbiAgICBjb25zdCBqc29uOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoVm9pY2VTdGF0ZVRvZ2dsZSkpIHtcbiAgICAgIGpzb25ba2V5XSA9IHN1cGVyLmNvbnRhaW5zKHZhbHVlKVxuICAgIH1cblxuICAgIHJldHVybiBqc29uIGFzIFJlY29yZDxWb2ljZVN0YXRlVG9nZ2xlS2V5cywgYm9vbGVhbj5cbiAgfVxufVxuXG5leHBvcnQgdHlwZSBWb2ljZVN0YXRlVG9nZ2xlS2V5cyA9IGtleW9mIHR5cGVvZiBWb2ljZVN0YXRlVG9nZ2xlXG4iXSwibmFtZXMiOlsiVG9nZ2xlQml0ZmllbGQiLCJWb2ljZVN0YXRlVG9nZ2xlIiwiZGVhZiIsIm11dGUiLCJzZWxmRGVhZiIsInNlbGZNdXRlIiwic2VsZlN0cmVhbSIsInNlbGZWaWRlbyIsInN1cHByZXNzIiwiVm9pY2VTdGF0ZVRvZ2dsZXMiLCJ2b2ljZU9yVG9nZ2xlc0ludCIsImJpdGZpZWxkIiwidm9pY2UiLCJhZGQiLCJzZWxmX2RlYWYiLCJzZWxmX211dGUiLCJzZWxmX3N0cmVhbSIsInNlbGZfdmlkZW8iLCJoYXMiLCJwZXJtaXNzaW9ucyIsIkFycmF5IiwiaXNBcnJheSIsImNvbnRhaW5zIiwicmVkdWNlIiwiYSIsImIiLCJsaXN0IiwianNvbiIsImtleSIsInZhbHVlIiwiT2JqZWN0IiwiZW50cmllcyJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsY0FBYyxRQUFRLHNCQUFxQjtBQUVwRCxPQUFPLE1BQU1DLG1CQUFtQjtJQUM5QixnREFBZ0QsR0FDaERDLE1BQU0sS0FBSztJQUNYLDZDQUE2QyxHQUM3Q0MsTUFBTSxLQUFLO0lBQ1gsMENBQTBDLEdBQzFDQyxVQUFVLEtBQUs7SUFDZix1Q0FBdUMsR0FDdkNDLFVBQVUsS0FB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