@discordeno/bot 21.0.0 → 21.0.1-next.409360a

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 (106) 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 +97 -4
  5. package/dist/cjs/helpers.cjs +38 -11
  6. package/dist/cjs/transformers/activity.cjs +5 -5
  7. package/dist/cjs/transformers/application.cjs +2 -1
  8. package/dist/cjs/transformers/automodActionExecution.cjs +3 -3
  9. package/dist/cjs/transformers/channel.cjs +7 -7
  10. package/dist/cjs/transformers/component.cjs +184 -64
  11. package/dist/cjs/transformers/emoji.cjs +5 -5
  12. package/dist/cjs/transformers/entitlement.cjs +2 -2
  13. package/dist/cjs/transformers/guild.cjs +5 -4
  14. package/dist/cjs/transformers/incidentsData.cjs +21 -0
  15. package/dist/cjs/transformers/index.cjs +5 -3
  16. package/dist/cjs/transformers/interaction.cjs +15 -10
  17. package/dist/cjs/transformers/lobby.cjs +41 -0
  18. package/dist/cjs/transformers/member.cjs +4 -4
  19. package/dist/cjs/transformers/message.cjs +7 -7
  20. package/dist/cjs/transformers/onboarding.cjs +5 -5
  21. package/dist/cjs/transformers/poll.cjs +4 -4
  22. package/dist/cjs/transformers/reverse/component.cjs +100 -11
  23. package/dist/cjs/transformers/reverse/member.cjs +4 -4
  24. package/dist/cjs/transformers/reverse/presence.cjs +4 -4
  25. package/dist/cjs/transformers/role.cjs +17 -5
  26. package/dist/cjs/transformers/scheduledEvent.cjs +4 -4
  27. package/dist/cjs/transformers/sticker.cjs +4 -4
  28. package/dist/cjs/transformers/subscription.cjs +2 -2
  29. package/dist/cjs/transformers/threadMember.cjs +6 -5
  30. package/dist/cjs/transformers/toggles/Permissions.cjs +1 -1
  31. package/dist/cjs/transformers/toggles/ToggleBitfield.cjs +4 -4
  32. package/dist/cjs/transformers/toggles/channel.cjs +4 -4
  33. package/dist/cjs/transformers/toggles/emoji.cjs +4 -4
  34. package/dist/cjs/transformers/toggles/guild.cjs +13 -7
  35. package/dist/cjs/transformers/toggles/member.cjs +4 -4
  36. package/dist/cjs/transformers/toggles/role.cjs +4 -4
  37. package/dist/cjs/transformers/toggles/user.cjs +4 -4
  38. package/dist/cjs/transformers/toggles/voice.cjs +4 -4
  39. package/dist/cjs/transformers/user.cjs +26 -4
  40. package/dist/cjs/transformers.cjs +20 -1
  41. package/dist/cjs/utils.cjs +9 -9
  42. package/dist/esm/commandOptionsParser.js +1 -1
  43. package/dist/esm/constants.js +2 -2
  44. package/dist/esm/desiredProperties.js +94 -1
  45. package/dist/esm/helpers.js +38 -11
  46. package/dist/esm/transformers/application.js +2 -1
  47. package/dist/esm/transformers/automodActionExecution.js +3 -3
  48. package/dist/esm/transformers/component.js +170 -61
  49. package/dist/esm/transformers/entitlement.js +2 -2
  50. package/dist/esm/transformers/guild.js +2 -1
  51. package/dist/esm/transformers/incidentsData.js +11 -0
  52. package/dist/esm/transformers/index.js +6 -4
  53. package/dist/esm/transformers/interaction.js +7 -2
  54. package/dist/esm/transformers/lobby.js +23 -0
  55. package/dist/esm/transformers/reverse/component.js +86 -8
  56. package/dist/esm/transformers/role.js +11 -2
  57. package/dist/esm/transformers/subscription.js +2 -2
  58. package/dist/esm/transformers/threadMember.js +3 -2
  59. package/dist/esm/transformers/toggles/Permissions.js +1 -1
  60. package/dist/esm/transformers/toggles/ToggleBitfield.js +1 -1
  61. package/dist/esm/transformers/toggles/channel.js +1 -1
  62. package/dist/esm/transformers/toggles/emoji.js +1 -1
  63. package/dist/esm/transformers/toggles/guild.js +10 -4
  64. package/dist/esm/transformers/toggles/member.js +1 -1
  65. package/dist/esm/transformers/toggles/role.js +1 -1
  66. package/dist/esm/transformers/toggles/user.js +1 -1
  67. package/dist/esm/transformers/toggles/voice.js +1 -1
  68. package/dist/esm/transformers/types.js +2 -2
  69. package/dist/esm/transformers/user.js +17 -1
  70. package/dist/esm/transformers.js +22 -3
  71. package/dist/esm/utils.js +5 -5
  72. package/dist/types/commandOptionsParser.d.ts +11 -2
  73. package/dist/types/commandOptionsParser.d.ts.map +1 -1
  74. package/dist/types/constants.d.ts.map +1 -1
  75. package/dist/types/desiredProperties.d.ts +18 -5
  76. package/dist/types/desiredProperties.d.ts.map +1 -1
  77. package/dist/types/helpers.d.ts +22 -13
  78. package/dist/types/helpers.d.ts.map +1 -1
  79. package/dist/types/transformers/application.d.ts.map +1 -1
  80. package/dist/types/transformers/automodActionExecution.d.ts.map +1 -1
  81. package/dist/types/transformers/component.d.ts +3 -1
  82. package/dist/types/transformers/component.d.ts.map +1 -1
  83. package/dist/types/transformers/guild.d.ts.map +1 -1
  84. package/dist/types/transformers/incidentsData.d.ts +4 -0
  85. package/dist/types/transformers/incidentsData.d.ts.map +1 -0
  86. package/dist/types/transformers/index.d.ts +5 -3
  87. package/dist/types/transformers/index.d.ts.map +1 -1
  88. package/dist/types/transformers/interaction.d.ts.map +1 -1
  89. package/dist/types/transformers/lobby.d.ts +5 -0
  90. package/dist/types/transformers/lobby.d.ts.map +1 -0
  91. package/dist/types/transformers/reverse/component.d.ts +3 -1
  92. package/dist/types/transformers/reverse/component.d.ts.map +1 -1
  93. package/dist/types/transformers/role.d.ts +3 -2
  94. package/dist/types/transformers/role.d.ts.map +1 -1
  95. package/dist/types/transformers/threadMember.d.ts.map +1 -1
  96. package/dist/types/transformers/toggles/guild.d.ts +5 -1
  97. package/dist/types/transformers/toggles/guild.d.ts.map +1 -1
  98. package/dist/types/transformers/types.d.ts +138 -11
  99. package/dist/types/transformers/types.d.ts.map +1 -1
  100. package/dist/types/transformers/user.d.ts +4 -2
  101. package/dist/types/transformers/user.d.ts.map +1 -1
  102. package/dist/types/transformers.d.ts +21 -3
  103. package/dist/types/transformers.d.ts.map +1 -1
  104. package/dist/types/utils.d.ts +1 -1
  105. package/dist/types/utils.d.ts.map +1 -1
  106. package/package.json +26 -21
@@ -2,10 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "transformComponent", {
6
- enumerable: true,
7
- get: function() {
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get transformComponent () {
8
13
  return transformComponent;
14
+ },
15
+ get transformMediaGalleryItem () {
16
+ return transformMediaGalleryItem;
17
+ },
18
+ get transformUnfurledMediaItem () {
19
+ return transformUnfurledMediaItem;
9
20
  }
10
21
  });
11
22
  const _types = require("@discordeno/types");
@@ -19,79 +30,188 @@ function transformComponent(bot, payload) {
19
30
  case _types.MessageComponentTypes.Button:
20
31
  component = transformButtonComponent(bot, payload);
21
32
  break;
22
- case _types.MessageComponentTypes.InputText:
33
+ case _types.MessageComponentTypes.Container:
34
+ component = transformContainerComponent(bot, payload);
35
+ break;
36
+ case _types.MessageComponentTypes.TextInput:
23
37
  component = transformInputTextComponent(bot, payload);
24
38
  break;
25
- case _types.MessageComponentTypes.SelectMenu:
26
- case _types.MessageComponentTypes.SelectMenuChannels:
27
- case _types.MessageComponentTypes.SelectMenuRoles:
28
- case _types.MessageComponentTypes.SelectMenuUsers:
29
- case _types.MessageComponentTypes.SelectMenuUsersAndRoles:
39
+ case _types.MessageComponentTypes.StringSelect:
40
+ case _types.MessageComponentTypes.UserSelect:
41
+ case _types.MessageComponentTypes.RoleSelect:
42
+ case _types.MessageComponentTypes.MentionableSelect:
43
+ case _types.MessageComponentTypes.ChannelSelect:
30
44
  component = transformSelectMenuComponent(bot, payload);
31
45
  break;
46
+ case _types.MessageComponentTypes.Section:
47
+ component = transformSectionComponent(bot, payload);
48
+ break;
49
+ case _types.MessageComponentTypes.Thumbnail:
50
+ component = transformThumbnailComponent(bot, payload);
51
+ break;
52
+ case _types.MessageComponentTypes.MediaGallery:
53
+ component = transformMediaGalleryComponent(bot, payload);
54
+ break;
55
+ case _types.MessageComponentTypes.File:
56
+ component = transformFileComponent(bot, payload);
57
+ break;
58
+ case _types.MessageComponentTypes.Separator:
59
+ component = transformSeparatorComponent(bot, payload);
60
+ break;
61
+ case _types.MessageComponentTypes.TextDisplay:
62
+ component = transformTextDisplayComponent(bot, payload);
63
+ break;
32
64
  }
33
65
  return bot.transformers.customizers.component(bot, payload, component);
34
66
  }
67
+ function transformUnfurledMediaItem(bot, payload) {
68
+ const props = bot.transformers.desiredProperties.unfurledMediaItem;
69
+ const mediaItem = {};
70
+ if (props.url && payload.url) mediaItem.url = payload.url;
71
+ if (props.proxyUrl && payload.proxy_url) mediaItem.proxyUrl = payload.proxy_url;
72
+ if (props.height && payload.height) mediaItem.height = payload.height;
73
+ if (props.width && payload.width) mediaItem.width = payload.width;
74
+ if (props.contentType && payload.content_type) mediaItem.contentType = payload.content_type;
75
+ if (props.attachmentId && payload.attachment_id) mediaItem.attachmentId = bot.transformers.snowflake(payload.attachment_id);
76
+ return bot.transformers.customizers.unfurledMediaItem(bot, payload, mediaItem);
77
+ }
78
+ function transformMediaGalleryItem(bot, payload) {
79
+ const props = bot.transformers.desiredProperties.mediaGalleryItem;
80
+ const galleryItem = {};
81
+ if (props.media && payload.media) galleryItem.media = bot.transformers.unfurledMediaItem(bot, payload.media);
82
+ if (props.description && payload.description) galleryItem.description = payload.description;
83
+ if (props.spoiler && payload.spoiler) galleryItem.spoiler = payload.spoiler;
84
+ return bot.transformers.customizers.mediaGalleryItem(bot, payload, galleryItem);
85
+ }
35
86
  function transformActionRow(bot, payload) {
36
- return {
37
- type: _types.MessageComponentTypes.ActionRow,
38
- components: payload.components.map((component)=>bot.transformers.component(bot, component))
39
- };
87
+ const props = bot.transformers.desiredProperties.component;
88
+ const actionRow = {};
89
+ if (props.type && payload.type) actionRow.type = payload.type;
90
+ if (props.id && payload.id) actionRow.id = payload.id;
91
+ if (props.components && payload.components) actionRow.components = payload.components.map((component)=>bot.transformers.component(bot, component));
92
+ return actionRow;
93
+ }
94
+ function transformContainerComponent(bot, payload) {
95
+ const props = bot.transformers.desiredProperties.component;
96
+ const container = {};
97
+ if (props.type && payload.type) container.type = payload.type;
98
+ if (props.id && payload.id) container.id = payload.id;
99
+ if (props.accentColor && payload.accent_color) container.accentColor = payload.accent_color;
100
+ if (props.spoiler && payload.spoiler) container.spoiler = payload.spoiler;
101
+ if (props.components && payload.components) container.components = payload.components.map((component)=>bot.transformers.component(bot, component));
102
+ return container;
40
103
  }
41
104
  function transformButtonComponent(bot, payload) {
42
- return {
43
- type: _types.MessageComponentTypes.Button,
44
- label: payload.label,
45
- customId: payload.custom_id,
46
- style: payload.style,
47
- emoji: payload.emoji ? {
48
- id: payload.emoji.id ? bot.transformers.snowflake(payload.emoji.id) : undefined,
49
- name: payload.emoji.name,
50
- animated: payload.emoji.animated
51
- } : undefined,
52
- url: payload.url,
53
- disabled: payload.disabled,
54
- skuId: payload.sku_id ? bot.transformers.snowflake(payload.sku_id) : undefined
55
- };
105
+ const props = bot.transformers.desiredProperties.component;
106
+ const button = {};
107
+ if (props.type && payload.type) button.type = payload.type;
108
+ if (props.id && payload.id) button.id = payload.id;
109
+ if (props.label && payload.label) button.label = payload.label;
110
+ if (props.customId && payload.custom_id) button.customId = payload.custom_id;
111
+ if (props.style && payload.style) button.style = payload.style;
112
+ if (props.emoji && payload.emoji) button.emoji = bot.transformers.emoji(bot, payload.emoji);
113
+ if (props.url && payload.url) button.url = payload.url;
114
+ if (props.disabled && payload.disabled) button.disabled = payload.disabled;
115
+ if (props.skuId && payload.sku_id) button.skuId = bot.transformers.snowflake(payload.sku_id);
116
+ return button;
56
117
  }
57
- function transformInputTextComponent(_bot, payload) {
58
- return {
59
- type: _types.MessageComponentTypes.InputText,
60
- style: payload.style,
61
- required: payload.required,
62
- customId: payload.custom_id,
63
- label: payload.label,
64
- placeholder: payload.placeholder,
65
- minLength: payload.min_length,
66
- maxLength: payload.max_length,
67
- value: payload.value
68
- };
118
+ function transformInputTextComponent(bot, payload) {
119
+ const props = bot.transformers.desiredProperties.component;
120
+ const input = {};
121
+ if (props.type && payload.type) input.type = payload.type;
122
+ if (props.id && payload.id) input.id = payload.id;
123
+ if (props.style && payload.style) input.style = payload.style;
124
+ if (props.required && payload.required) input.required = payload.required;
125
+ if (props.customId && payload.custom_id) input.customId = payload.custom_id;
126
+ if (props.label && payload.label) input.label = payload.label;
127
+ if (props.placeholder && payload.placeholder) input.placeholder = payload.placeholder;
128
+ if (props.minLength && payload.min_length) input.minLength = payload.min_length;
129
+ if (props.maxLength && payload.max_length) input.maxLength = payload.max_length;
130
+ if (props.value && payload.value) input.value = payload.value;
131
+ return input;
69
132
  }
70
133
  function transformSelectMenuComponent(bot, payload) {
71
- return {
72
- type: payload.type,
73
- customId: payload.custom_id,
74
- placeholder: payload.placeholder,
75
- minValues: payload.min_values,
76
- maxValues: payload.max_values,
77
- defaultValues: payload.default_values?.map((defaultValue)=>({
78
- id: bot.transformers.snowflake(defaultValue.id),
79
- type: defaultValue.type
80
- })),
81
- channelTypes: payload.channel_types,
82
- options: payload.options?.map((option)=>({
83
- label: option.label,
84
- value: option.value,
85
- description: option.description,
86
- emoji: option.emoji ? {
87
- id: option.emoji.id ? bot.transformers.snowflake(option.emoji.id) : undefined,
88
- name: option.emoji.name,
89
- animated: option.emoji.animated
90
- } : undefined,
91
- default: option.default
92
- })),
93
- disabled: payload.disabled
94
- };
134
+ const props = bot.transformers.desiredProperties.component;
135
+ const select = {};
136
+ if (props.type && payload.type) select.type = payload.type;
137
+ if (props.id && payload.id) select.id = payload.id;
138
+ if (props.customId && payload.custom_id) select.customId = payload.custom_id;
139
+ if (props.placeholder && payload.placeholder) select.placeholder = payload.placeholder;
140
+ if (props.minValues && payload.min_values) select.minValues = payload.min_values;
141
+ if (props.maxValues && payload.max_values) select.maxValues = payload.max_values;
142
+ if (props.defaultValues && payload.default_values) select.defaultValues = payload.default_values.map((defaultValue)=>({
143
+ id: bot.transformers.snowflake(defaultValue.id),
144
+ type: defaultValue.type
145
+ }));
146
+ if (props.channelTypes && payload.channel_types) select.channelTypes = payload.channel_types;
147
+ if (props.options && payload.options) select.options = payload.options.map((option)=>({
148
+ label: option.label,
149
+ value: option.value,
150
+ description: option.description,
151
+ emoji: option.emoji ? {
152
+ id: option.emoji.id ? bot.transformers.snowflake(option.emoji.id) : undefined,
153
+ name: option.emoji.name,
154
+ animated: option.emoji.animated
155
+ } : undefined,
156
+ default: option.default
157
+ }));
158
+ if (props.disabled && payload.disabled) select.disabled = payload.disabled;
159
+ return select;
160
+ }
161
+ function transformSectionComponent(bot, payload) {
162
+ const props = bot.transformers.desiredProperties.component;
163
+ const section = {};
164
+ if (props.type && payload.type) section.type = payload.type;
165
+ if (props.id && payload.id) section.id = payload.id;
166
+ if (props.components && payload.components) section.components = payload.components.map((component)=>bot.transformers.component(bot, component));
167
+ if (props.accessory && payload.accessory) section.accessory = bot.transformers.component(bot, payload.accessory);
168
+ return section;
169
+ }
170
+ function transformThumbnailComponent(bot, payload) {
171
+ const props = bot.transformers.desiredProperties.component;
172
+ const thumbnail = {};
173
+ if (props.type && payload.type) thumbnail.type = payload.type;
174
+ if (props.id && payload.id) thumbnail.id = payload.id;
175
+ if (props.media && payload.media) thumbnail.media = bot.transformers.unfurledMediaItem(bot, payload.media);
176
+ if (props.description && payload.description) thumbnail.description = payload.description;
177
+ if (props.spoiler && payload.spoiler) thumbnail.spoiler = payload.spoiler;
178
+ return thumbnail;
179
+ }
180
+ function transformMediaGalleryComponent(bot, payload) {
181
+ const props = bot.transformers.desiredProperties.component;
182
+ const mediaGallery = {};
183
+ if (props.type && payload.type) mediaGallery.type = payload.type;
184
+ if (props.id && payload.id) mediaGallery.id = payload.id;
185
+ if (props.items && payload.items) mediaGallery.items = payload.items.map((item)=>bot.transformers.mediaGalleryItem(bot, item));
186
+ return mediaGallery;
187
+ }
188
+ function transformFileComponent(bot, payload) {
189
+ const props = bot.transformers.desiredProperties.component;
190
+ const file = {};
191
+ if (props.type && payload.type) file.type = payload.type;
192
+ if (props.id && payload.id) file.id = payload.id;
193
+ if (props.file && payload.file) file.file = bot.transformers.unfurledMediaItem(bot, payload.file);
194
+ if (props.spoiler && payload.spoiler) file.spoiler = payload.spoiler;
195
+ if (props.name && payload.name) file.name = payload.name;
196
+ if (props.size && payload.size) file.size = payload.size;
197
+ return file;
198
+ }
199
+ function transformTextDisplayComponent(bot, payload) {
200
+ const props = bot.transformers.desiredProperties.component;
201
+ const textDisplay = {};
202
+ if (props.type && payload.type) textDisplay.type = payload.type;
203
+ if (props.id && payload.id) textDisplay.id = payload.id;
204
+ if (props.content && payload.content) textDisplay.content = payload.content;
205
+ return textDisplay;
206
+ }
207
+ function transformSeparatorComponent(bot, payload) {
208
+ const props = bot.transformers.desiredProperties.component;
209
+ const separator = {};
210
+ if (props.type && payload.type) separator.type = payload.type;
211
+ if (props.id && payload.id) separator.id = payload.id;
212
+ if (props.divider && payload.divider) separator.divider = payload.divider;
213
+ if (props.spacing && payload.spacing) separator.spacing = payload.spacing;
214
+ return separator;
95
215
  }
96
216
 
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRGlzY29yZEFjdGlvblJvdyxcbiAgdHlwZSBEaXNjb3JkQnV0dG9uQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRJbnB1dFRleHRDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlbGVjdE1lbnVDb21wb25lbnQsXG4gIE1lc3NhZ2VDb21wb25lbnRUeXBlcyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEJvdCwgQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5kZXguanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Db21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlQ29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgbGV0IGNvbXBvbmVudDogQ29tcG9uZW50XG5cbiAgLy8gVGhpcyBzd2l0Y2ggaXMgZXhoYXVzdGl2ZSwgc28gd2UgZG9udCBuZWVkIHRoZSBkZWZhdWx0IGNhc2UgYW5kIFRTIGRvZXMgbm90IGVycm9yIG91dCBmb3IgdGhlIHVuLWluaXRpYWxpemVkIGNvbXBvbmVudCB2YXJpYWJsZVxuICBzd2l0Y2ggKHBheWxvYWQudHlwZSkge1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkFjdGlvblJvdzpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybUFjdGlvblJvdyhib3QsIHBheWxvYWQpXG4gICAgICBicmVha1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkJ1dHRvbjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybUJ1dHRvbkNvbXBvbmVudChib3QsIHBheWxvYWQgYXMgRGlzY29yZEJ1dHRvbkNvbXBvbmVudClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuSW5wdXRUZXh0OlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtSW5wdXRUZXh0Q29tcG9uZW50KGJvdCwgcGF5bG9hZCBhcyBEaXNjb3JkSW5wdXRUZXh0Q29tcG9uZW50KVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TZWxlY3RNZW51OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlNlbGVjdE1lbnVDaGFubmVsczpcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TZWxlY3RNZW51Um9sZXM6XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuU2VsZWN0TWVudVVzZXJzOlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlNlbGVjdE1lbnVVc2Vyc0FuZFJvbGVzOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtU2VsZWN0TWVudUNvbXBvbmVudChib3QsIHBheWxvYWQgYXMgRGlzY29yZFNlbGVjdE1lbnVDb21wb25lbnQpXG4gICAgICBicmVha1xuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuY29tcG9uZW50KGJvdCwgcGF5bG9hZCwgY29tcG9uZW50KVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRBY3Rpb25Sb3cpOiBDb21wb25lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IE1lc3NhZ2VDb21wb25lbnRUeXBlcy5BY3Rpb25Sb3csXG4gICAgY29tcG9uZW50czogcGF5bG9hZC5jb21wb25lbnRzLm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpLFxuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUJ1dHRvbkNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZEJ1dHRvbkNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogTWVzc2FnZUNvbXBvbmVudFR5cGVzLkJ1dHRvbixcbiAgICBsYWJlbDogcGF5bG9hZC5sYWJlbCxcbiAgICBjdXN0b21JZDogcGF5bG9hZC5jdXN0b21faWQsXG4gICAgc3R5bGU6IHBheWxvYWQuc3R5bGUsXG4gICAgZW1vamk6IHBheWxvYWQuZW1vamlcbiAgICAgID8ge1xuICAgICAgICAgIGlkOiBwYXlsb2FkLmVtb2ppLmlkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5lbW9qaS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmFtZTogcGF5bG9hZC5lbW9qaS5uYW1lLFxuICAgICAgICAgIGFuaW1hdGVkOiBwYXlsb2FkLmVtb2ppLmFuaW1hdGVkLFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZCxcbiAgICB1cmw6IHBheWxvYWQudXJsLFxuICAgIGRpc2FibGVkOiBwYXlsb2FkLmRpc2FibGVkLFxuICAgIHNrdUlkOiBwYXlsb2FkLnNrdV9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKSA6IHVuZGVmaW5lZCxcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQoX2JvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkSW5wdXRUZXh0Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBNZXNzYWdlQ29tcG9uZW50VHlwZXMuSW5wdXRUZXh0LFxuICAgIHN0eWxlOiBwYXlsb2FkLnN0eWxlLFxuICAgIHJlcXVpcmVkOiBwYXlsb2FkLnJlcXVpcmVkLFxuICAgIGN1c3RvbUlkOiBwYXlsb2FkLmN1c3RvbV9pZCxcbiAgICBsYWJlbDogcGF5bG9hZC5sYWJlbCxcbiAgICBwbGFjZWhvbGRlcjogcGF5bG9hZC5wbGFjZWhvbGRlcixcbiAgICBtaW5MZW5ndGg6IHBheWxvYWQubWluX2xlbmd0aCxcbiAgICBtYXhMZW5ndGg6IHBheWxvYWQubWF4X2xlbmd0aCxcbiAgICB2YWx1ZTogcGF5bG9hZC52YWx1ZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1TZWxlY3RNZW51Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkU2VsZWN0TWVudUNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogcGF5bG9hZC50eXBlLFxuICAgIGN1c3RvbUlkOiBwYXlsb2FkLmN1c3RvbV9pZCxcbiAgICBwbGFjZWhvbGRlcjogcGF5bG9hZC5wbGFjZWhvbGRlcixcbiAgICBtaW5WYWx1ZXM6IHBheWxvYWQubWluX3ZhbHVlcyxcbiAgICBtYXhWYWx1ZXM6IHBheWxvYWQubWF4X3ZhbHVlcyxcbiAgICBkZWZhdWx0VmFsdWVzOiBwYXlsb2FkLmRlZmF1bHRfdmFsdWVzPy5tYXAoKGRlZmF1bHRWYWx1ZSkgPT4gKHtcbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShkZWZhdWx0VmFsdWUuaWQpLFxuICAgICAgdHlwZTogZGVmYXVsdFZhbHVlLnR5cGUsXG4gICAgfSkpLFxuICAgIGNoYW5uZWxUeXBlczogcGF5bG9hZC5jaGFubmVsX3R5cGVzLFxuICAgIG9wdGlvbnM6IHBheWxvYWQub3B0aW9ucz8ubWFwKChvcHRpb24pID0+ICh7XG4gICAgICBsYWJlbDogb3B0aW9uLmxhYmVsLFxuICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb24uZGVzY3JpcHRpb24sXG4gICAgICBlbW9qaTogb3B0aW9uLmVtb2ppXG4gICAgICAgID8ge1xuICAgICAgICAgICAgaWQ6IG9wdGlvbi5lbW9qaS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG9wdGlvbi5lbW9qaS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuYW1lOiBvcHRpb24uZW1vamkubmFtZSxcbiAgICAgICAgICAgIGFuaW1hdGVkOiBvcHRpb24uZW1vamkuYW5pbWF0ZWQsXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGRlZmF1bHQ6IG9wdGlvbi5kZWZhdWx0LFxuICAgIH0pKSxcbiAgICBkaXNhYmxlZDogcGF5bG9hZC5kaXNhYmxlZCxcbiAgfVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybUNvbXBvbmVudCIsImJvdCIsInBheWxvYWQiLCJjb21wb25lbnQiLCJ0eXBlIiwiTWVzc2FnZUNvbXBvbmVudFR5cGVzIiwiQWN0aW9uUm93IiwidHJhbnNmb3JtQWN0aW9uUm93IiwiQnV0dG9uIiwidHJhbnNmb3JtQnV0dG9uQ29tcG9uZW50IiwiSW5wdXRUZXh0IiwidHJhbnNmb3JtSW5wdXRUZXh0Q29tcG9uZW50IiwiU2VsZWN0TWVudSIsIlNlbGVjdE1lbnVDaGFubmVscyIsIlNlbGVjdE1lbnVSb2xlcyIsIlNlbGVjdE1lbnVVc2VycyIsIlNlbGVjdE1lbnVVc2Vyc0FuZFJvbGVzIiwidHJhbnNmb3JtU2VsZWN0TWVudUNvbXBvbmVudCIsInRyYW5zZm9ybWVycyIsImN1c3RvbWl6ZXJzIiwiY29tcG9uZW50cyIsIm1hcCIsImxhYmVsIiwiY3VzdG9tSWQiLCJjdXN0b21faWQiLCJzdHlsZSIsImVtb2ppIiwiaWQiLCJzbm93Zmxha2UiLCJ1bmRlZmluZWQiLCJuYW1lIiwiYW5pbWF0ZWQiLCJ1cmwiLCJkaXNhYmxlZCIsInNrdUlkIiwic2t1X2lkIiwiX2JvdCIsInJlcXVpcmVkIiwicGxhY2Vob2xkZXIiLCJtaW5MZW5ndGgiLCJtaW5fbGVuZ3RoIiwibWF4TGVuZ3RoIiwibWF4X2xlbmd0aCIsInZhbHVlIiwibWluVmFsdWVzIiwibWluX3ZhbHVlcyIsIm1heFZhbHVlcyIsIm1heF92YWx1ZXMiLCJkZWZhdWx0VmFsdWVzIiwiZGVmYXVsdF92YWx1ZXMiLCJkZWZhdWx0VmFsdWUiLCJjaGFubmVsVHlwZXMiLCJjaGFubmVsX3R5cGVzIiwib3B0aW9ucyIsIm9wdGlvbiIsImRlc2NyaXB0aW9u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
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRGlzY29yZEFjdGlvblJvdyxcbiAgdHlwZSBEaXNjb3JkQnV0dG9uQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRGaWxlQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRNZWRpYUdhbGxlcnlDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlY3Rpb25Db21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlbGVjdE1lbnVDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlcGFyYXRvckNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVGV4dERpc3BsYXlDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFRleHRJbnB1dENvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVGh1bWJuYWlsQ29tcG9uZW50LFxuICBNZXNzYWdlQ29tcG9uZW50VHlwZXMsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBCb3QsXG4gIENvbXBvbmVudCxcbiAgRGlzY29yZENvbnRhaW5lckNvbXBvbmVudCxcbiAgRGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0sXG4gIERpc2NvcmRVbmZ1cmxlZE1lZGlhSXRlbSxcbiAgTWVkaWFHYWxsZXJ5SXRlbSxcbiAgVW5mdXJsZWRNZWRpYUl0ZW0sXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGxldCBjb21wb25lbnQ6IENvbXBvbmVudFxuXG4gIC8vIFRoaXMgc3dpdGNoIGlzIGV4aGF1c3RpdmUsIHNvIHdlIGRvbnQgbmVlZCB0aGUgZGVmYXVsdCBjYXNlIGFuZCBUUyBkb2VzIG5vdCBlcnJvciBvdXQgZm9yIHRoZSB1bi1pbml0aWFsaXplZCBjb21wb25lbnQgdmFyaWFibGVcbiAgc3dpdGNoIChwYXlsb2FkLnR5cGUpIHtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5BY3Rpb25Sb3c6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5CdXR0b246XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5Db250YWluZXI6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1Db250YWluZXJDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UZXh0SW5wdXQ6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TdHJpbmdTZWxlY3Q6XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuVXNlclNlbGVjdDpcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5Sb2xlU2VsZWN0OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLk1lbnRpb25hYmxlU2VsZWN0OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkNoYW5uZWxTZWxlY3Q6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1TZWxlY3RNZW51Q29tcG9uZW50KGJvdCwgcGF5bG9hZClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuU2VjdGlvbjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVNlY3Rpb25Db21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UaHVtYm5haWw6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1UaHVtYm5haWxDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5NZWRpYUdhbGxlcnk6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5GaWxlOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtRmlsZUNvbXBvbmVudChib3QsIHBheWxvYWQpXG4gICAgICBicmVha1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlNlcGFyYXRvcjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVNlcGFyYXRvckNvbXBvbmVudChib3QsIHBheWxvYWQpXG4gICAgICBicmVha1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlRleHREaXNwbGF5OlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtVGV4dERpc3BsYXlDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmNvbXBvbmVudChib3QsIHBheWxvYWQsIGNvbXBvbmVudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVW5mdXJsZWRNZWRpYUl0ZW0pOiBVbmZ1cmxlZE1lZGlhSXRlbSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy51bmZ1cmxlZE1lZGlhSXRlbVxuICBjb25zdCBtZWRpYUl0ZW0gPSB7fSBhcyBVbmZ1cmxlZE1lZGlhSXRlbVxuXG4gIGlmIChwcm9wcy51cmwgJiYgcGF5bG9hZC51cmwpIG1lZGlhSXRlbS51cmwgPSBwYXlsb2FkLnVybFxuICBpZiAocHJvcHMucHJveHlVcmwgJiYgcGF5bG9hZC5wcm94eV91cmwpIG1lZGlhSXRlbS5wcm94eVVybCA9IHBheWxvYWQucHJveHlfdXJsXG4gIGlmIChwcm9wcy5oZWlnaHQgJiYgcGF5bG9hZC5oZWlnaHQpIG1lZGlhSXRlbS5oZWlnaHQgPSBwYXlsb2FkLmhlaWdodFxuICBpZiAocHJvcHMud2lkdGggJiYgcGF5bG9hZC53aWR0aCkgbWVkaWFJdGVtLndpZHRoID0gcGF5bG9hZC53aWR0aFxuICBpZiAocHJvcHMuY29udGVudFR5cGUgJiYgcGF5bG9hZC5jb250ZW50X3R5cGUpIG1lZGlhSXRlbS5jb250ZW50VHlwZSA9IHBheWxvYWQuY29udGVudF90eXBlXG4gIGlmIChwcm9wcy5hdHRhY2htZW50SWQgJiYgcGF5bG9hZC5hdHRhY2htZW50X2lkKSBtZWRpYUl0ZW0uYXR0YWNobWVudElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hdHRhY2htZW50X2lkKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLnVuZnVybGVkTWVkaWFJdGVtKGJvdCwgcGF5bG9hZCwgbWVkaWFJdGVtKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVkaWFHYWxsZXJ5SXRlbShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0pOiBNZWRpYUdhbGxlcnlJdGVtIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lZGlhR2FsbGVyeUl0ZW1cbiAgY29uc3QgZ2FsbGVyeUl0ZW0gPSB7fSBhcyBNZWRpYUdhbGxlcnlJdGVtXG5cbiAgaWYgKHByb3BzLm1lZGlhICYmIHBheWxvYWQubWVkaWEpIGdhbGxlcnlJdGVtLm1lZGlhID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEpXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSBnYWxsZXJ5SXRlbS5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZGVzY3JpcHRpb25cbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBnYWxsZXJ5SXRlbS5zcG9pbGVyID0gcGF5bG9hZC5zcG9pbGVyXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVkaWFHYWxsZXJ5SXRlbShib3QsIHBheWxvYWQsIGdhbGxlcnlJdGVtKVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRBY3Rpb25Sb3cpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGFjdGlvblJvdyA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYWN0aW9uUm93LnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGFjdGlvblJvdy5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzKSBhY3Rpb25Sb3cuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKVxuXG4gIHJldHVybiBhY3Rpb25Sb3dcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQ29udGFpbmVyQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkQ29udGFpbmVyQ29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBjb250YWluZXIgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGNvbnRhaW5lci50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBjb250YWluZXIuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5hY2NlbnRDb2xvciAmJiBwYXlsb2FkLmFjY2VudF9jb2xvcikgY29udGFpbmVyLmFjY2VudENvbG9yID0gcGF5bG9hZC5hY2NlbnRfY29sb3JcbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBjb250YWluZXIuc3BvaWxlciA9IHBheWxvYWQuc3BvaWxlclxuICBpZiAocHJvcHMuY29tcG9uZW50cyAmJiBwYXlsb2FkLmNvbXBvbmVudHMpIGNvbnRhaW5lci5jb21wb25lbnRzID0gcGF5bG9hZC5jb21wb25lbnRzLm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpXG5cbiAgcmV0dXJuIGNvbnRhaW5lclxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRCdXR0b25Db21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGJ1dHRvbiA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYnV0dG9uLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGJ1dHRvbi5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmxhYmVsICYmIHBheWxvYWQubGFiZWwpIGJ1dHRvbi5sYWJlbCA9IHBheWxvYWQubGFiZWxcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBidXR0b24uY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZFxuICBpZiAocHJvcHMuc3R5bGUgJiYgcGF5bG9hZC5zdHlsZSkgYnV0dG9uLnN0eWxlID0gcGF5bG9hZC5zdHlsZVxuICBpZiAocHJvcHMuZW1vamkgJiYgcGF5bG9hZC5lbW9qaSkgYnV0dG9uLmVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHBheWxvYWQuZW1vamkpXG4gIGlmIChwcm9wcy51cmwgJiYgcGF5bG9hZC51cmwpIGJ1dHRvbi51cmwgPSBwYXlsb2FkLnVybFxuICBpZiAocHJvcHMuZGlzYWJsZWQgJiYgcGF5bG9hZC5kaXNhYmxlZCkgYnV0dG9uLmRpc2FibGVkID0gcGF5bG9hZC5kaXNhYmxlZFxuICBpZiAocHJvcHMuc2t1SWQgJiYgcGF5bG9hZC5za3VfaWQpIGJ1dHRvbi5za3VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKVxuXG4gIHJldHVybiBidXR0b25cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtSW5wdXRUZXh0Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVGV4dElucHV0Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBpbnB1dCA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgaW5wdXQudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgaW5wdXQuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5zdHlsZSAmJiBwYXlsb2FkLnN0eWxlKSBpbnB1dC5zdHlsZSA9IHBheWxvYWQuc3R5bGVcbiAgaWYgKHByb3BzLnJlcXVpcmVkICYmIHBheWxvYWQucmVxdWlyZWQpIGlucHV0LnJlcXVpcmVkID0gcGF5bG9hZC5yZXF1aXJlZFxuICBpZiAocHJvcHMuY3VzdG9tSWQgJiYgcGF5bG9hZC5jdXN0b21faWQpIGlucHV0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWRcbiAgaWYgKHByb3BzLmxhYmVsICYmIHBheWxvYWQubGFiZWwpIGlucHV0LmxhYmVsID0gcGF5bG9hZC5sYWJlbFxuICBpZiAocHJvcHMucGxhY2Vob2xkZXIgJiYgcGF5bG9hZC5wbGFjZWhvbGRlcikgaW5wdXQucGxhY2Vob2xkZXIgPSBwYXlsb2FkLnBsYWNlaG9sZGVyXG4gIGlmIChwcm9wcy5taW5MZW5ndGggJiYgcGF5bG9hZC5taW5fbGVuZ3RoKSBpbnB1dC5taW5MZW5ndGggPSBwYXlsb2FkLm1pbl9sZW5ndGhcbiAgaWYgKHByb3BzLm1heExlbmd0aCAmJiBwYXlsb2FkLm1heF9sZW5ndGgpIGlucHV0Lm1heExlbmd0aCA9IHBheWxvYWQubWF4X2xlbmd0aFxuICBpZiAocHJvcHMudmFsdWUgJiYgcGF5bG9hZC52YWx1ZSkgaW5wdXQudmFsdWUgPSBwYXlsb2FkLnZhbHVlXG5cbiAgcmV0dXJuIGlucHV0XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlbGVjdE1lbnVDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRTZWxlY3RNZW51Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBzZWxlY3QgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlbGVjdC50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBzZWxlY3QuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5jdXN0b21JZCAmJiBwYXlsb2FkLmN1c3RvbV9pZCkgc2VsZWN0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWRcbiAgaWYgKHByb3BzLnBsYWNlaG9sZGVyICYmIHBheWxvYWQucGxhY2Vob2xkZXIpIHNlbGVjdC5wbGFjZWhvbGRlciA9IHBheWxvYWQucGxhY2Vob2xkZXJcbiAgaWYgKHByb3BzLm1pblZhbHVlcyAmJiBwYXlsb2FkLm1pbl92YWx1ZXMpIHNlbGVjdC5taW5WYWx1ZXMgPSBwYXlsb2FkLm1pbl92YWx1ZXNcbiAgaWYgKHByb3BzLm1heFZhbHVlcyAmJiBwYXlsb2FkLm1heF92YWx1ZXMpIHNlbGVjdC5tYXhWYWx1ZXMgPSBwYXlsb2FkLm1heF92YWx1ZXNcbiAgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZXMgJiYgcGF5bG9hZC5kZWZhdWx0X3ZhbHVlcylcbiAgICBzZWxlY3QuZGVmYXVsdFZhbHVlcyA9IHBheWxvYWQuZGVmYXVsdF92YWx1ZXMubWFwKChkZWZhdWx0VmFsdWUpID0+ICh7XG4gICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZGVmYXVsdFZhbHVlLmlkKSxcbiAgICAgIHR5cGU6IGRlZmF1bHRWYWx1ZS50eXBlLFxuICAgIH0pKVxuICBpZiAocHJvcHMuY2hhbm5lbFR5cGVzICYmIHBheWxvYWQuY2hhbm5lbF90eXBlcykgc2VsZWN0LmNoYW5uZWxUeXBlcyA9IHBheWxvYWQuY2hhbm5lbF90eXBlc1xuICBpZiAocHJvcHMub3B0aW9ucyAmJiBwYXlsb2FkLm9wdGlvbnMpXG4gICAgc2VsZWN0Lm9wdGlvbnMgPSBwYXlsb2FkLm9wdGlvbnMubWFwKChvcHRpb24pID0+ICh7XG4gICAgICBsYWJlbDogb3B0aW9uLmxhYmVsLFxuICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb24uZGVzY3JpcHRpb24sXG4gICAgICBlbW9qaTogb3B0aW9uLmVtb2ppXG4gICAgICAgID8ge1xuICAgICAgICAgICAgaWQ6IG9wdGlvbi5lbW9qaS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG9wdGlvbi5lbW9qaS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuYW1lOiBvcHRpb24uZW1vamkubmFtZSxcbiAgICAgICAgICAgIGFuaW1hdGVkOiBvcHRpb24uZW1vamkuYW5pbWF0ZWQsXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGRlZmF1bHQ6IG9wdGlvbi5kZWZhdWx0LFxuICAgIH0pKVxuICBpZiAocHJvcHMuZGlzYWJsZWQgJiYgcGF5bG9hZC5kaXNhYmxlZCkgc2VsZWN0LmRpc2FibGVkID0gcGF5bG9hZC5kaXNhYmxlZFxuXG4gIHJldHVybiBzZWxlY3Rcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtU2VjdGlvbkNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFNlY3Rpb25Db21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IHNlY3Rpb24gPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlY3Rpb24udHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2VjdGlvbi5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzKSBzZWN0aW9uLmNvbXBvbmVudHMgPSBwYXlsb2FkLmNvbXBvbmVudHMubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSlcbiAgaWYgKHByb3BzLmFjY2Vzc29yeSAmJiBwYXlsb2FkLmFjY2Vzc29yeSkgc2VjdGlvbi5hY2Nlc3NvcnkgPSBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIHBheWxvYWQuYWNjZXNzb3J5KVxuXG4gIHJldHVybiBzZWN0aW9uXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVRodW1ibmFpbENvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFRodW1ibmFpbENvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnRcbiAgY29uc3QgdGh1bWJuYWlsID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSB0aHVtYm5haWwudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgdGh1bWJuYWlsLmlkID0gcGF5bG9hZC5pZFxuICBpZiAocHJvcHMubWVkaWEgJiYgcGF5bG9hZC5tZWRpYSkgdGh1bWJuYWlsLm1lZGlhID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEpXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSB0aHVtYm5haWwuZGVzY3JpcHRpb24gPSBwYXlsb2FkLmRlc2NyaXB0aW9uXG4gIGlmIChwcm9wcy5zcG9pbGVyICYmIHBheWxvYWQuc3BvaWxlcikgdGh1bWJuYWlsLnNwb2lsZXIgPSBwYXlsb2FkLnNwb2lsZXJcblxuICByZXR1cm4gdGh1bWJuYWlsXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybU1lZGlhR2FsbGVyeUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lZGlhR2FsbGVyeUNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnRcbiAgY29uc3QgbWVkaWFHYWxsZXJ5ID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBtZWRpYUdhbGxlcnkudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgbWVkaWFHYWxsZXJ5LmlkID0gcGF5bG9hZC5pZFxuICBpZiAocHJvcHMuaXRlbXMgJiYgcGF5bG9hZC5pdGVtcykgbWVkaWFHYWxsZXJ5Lml0ZW1zID0gcGF5bG9hZC5pdGVtcy5tYXAoKGl0ZW0pID0+IGJvdC50cmFuc2Zvcm1lcnMubWVkaWFHYWxsZXJ5SXRlbShib3QsIGl0ZW0pKVxuXG4gIHJldHVybiBtZWRpYUdhbGxlcnlcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtRmlsZUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZEZpbGVDb21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGZpbGUgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGZpbGUudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZmlsZS5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmZpbGUgJiYgcGF5bG9hZC5maWxlKSBmaWxlLmZpbGUgPSBib3QudHJhbnNmb3JtZXJzLnVuZnVybGVkTWVkaWFJdGVtKGJvdCwgcGF5bG9hZC5maWxlKVxuICBpZiAocHJvcHMuc3BvaWxlciAmJiBwYXlsb2FkLnNwb2lsZXIpIGZpbGUuc3BvaWxlciA9IHBheWxvYWQuc3BvaWxlclxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGZpbGUubmFtZSA9IHBheWxvYWQubmFtZVxuICBpZiAocHJvcHMuc2l6ZSAmJiBwYXlsb2FkLnNpemUpIGZpbGUuc2l6ZSA9IHBheWxvYWQuc2l6ZVxuXG4gIHJldHVybiBmaWxlXG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVRleHREaXNwbGF5Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVGV4dERpc3BsYXlDb21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IHRleHREaXNwbGF5ID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSB0ZXh0RGlzcGxheS50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSB0ZXh0RGlzcGxheS5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmNvbnRlbnQgJiYgcGF5bG9hZC5jb250ZW50KSB0ZXh0RGlzcGxheS5jb250ZW50ID0gcGF5bG9hZC5jb250ZW50XG5cbiAgcmV0dXJuIHRleHREaXNwbGF5XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlcGFyYXRvckNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFNlcGFyYXRvckNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnRcbiAgY29uc3Qgc2VwYXJhdG9yID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBzZXBhcmF0b3IudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2VwYXJhdG9yLmlkID0gcGF5bG9hZC5pZFxuICBpZiAocHJvcHMuZGl2aWRlciAmJiBwYXlsb2FkLmRpdmlkZXIpIHNlcGFyYXRvci5kaXZpZGVyID0gcGF5bG9hZC5kaXZpZGVyXG4gIGlmIChwcm9wcy5zcGFjaW5nICYmIHBheWxvYWQuc3BhY2luZykgc2VwYXJhdG9yLnNwYWNpbmcgPSBwYXlsb2FkLnNwYWNpbmdcblxuICByZXR1cm4gc2VwYXJhdG9yXG59XG4iXSwibmFtZXMiOlsidHJhbnNmb3JtQ29tcG9uZW50IiwidHJhbnNmb3JtTWVkaWFHYWxsZXJ5SXRlbSIsInRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtIiwiYm90IiwicGF5bG9hZCIsImNvbXBvbmVudCIsInR5cGUiLCJNZXNzYWdlQ29tcG9uZW50VHlwZXMiLCJBY3Rpb25Sb3ciLCJ0cmFuc2Zvcm1BY3Rpb25Sb3ciLCJCdXR0b24iLCJ0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQiLCJDb250YWluZXIiLCJ0cmFuc2Zvcm1Db250YWluZXJDb21wb25lbnQiLCJUZXh0SW5wdXQiLCJ0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQiLCJTdHJpbmdTZWxlY3QiLCJVc2VyU2VsZWN0IiwiUm9sZVNlbGVjdCIsIk1lbnRpb25hYmxlU2VsZWN0IiwiQ2hhbm5lbFNlbGVjdCIsInRyYW5zZm9ybVNlbGVjdE1lbnVDb21wb25lbnQiLCJTZWN0aW9uIiwidHJhbnNmb3JtU2VjdGlvbkNvbXBvbmVudCIsIlRodW1ibmFpbCIsInRyYW5zZm9ybVRodW1ibmFpbENvbXBvbmVudCIsIk1lZGlhR2FsbGVyeSIsInRyYW5zZm9ybU1lZGlhR2FsbGVyeUNvbXBvbmVudCIsIkZpbGUiLCJ0cmFuc2Zvcm1GaWxlQ29tcG9uZW50IiwiU2VwYXJhdG9yIiwidHJhbnNmb3JtU2VwYXJhdG9yQ29tcG9uZW50IiwiVGV4dERpc3BsYXkiLCJ0cmFuc2Zvcm1UZXh0RGlzcGxheUNvbXBvbmVudCIsInRyYW5zZm9ybWVycyIsImN1c3RvbWl6ZXJzIiwicHJvcHMiLCJkZXNpcmVkUHJvcGVydGllcyIsInVuZnVybGVkTWVkaWFJdGVtIiwibWVkaWFJdGVtIiwidXJsIiwicHJveHlVcmwiLCJwcm94eV91cmwiLCJoZWlnaHQiLCJ3aWR0aCIsImNvbnRlbnRUeXBlIiwiY29udGVudF90eXBlIiwiYXR0YWNobWVudElkIiwiYXR0YWNobWVudF9pZCIsInNub3dmbGFrZSIsIm1lZGlhR2FsbGVyeUl0ZW0iLCJnYWxsZXJ5SXRlbSIsIm1lZGlhIiwiZGVzY3JpcHRpb24iLCJzcG9pbGVyIiwiYWN0aW9uUm93IiwiaWQiLCJjb21wb25lbnRzIiwibWFwIiwiY29udGFpbmVyIiwiYWNjZW50Q29sb3IiLCJhY2NlbnRfY29sb3IiLCJidXR0b24iLCJsYWJlbCIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwic3R5bGUiLCJlbW9qaSIsImRpc2FibGVkIiwic2t1SWQiLCJza3VfaWQiLCJpbnB1dCIsInJlcXVpcmVkIiwicGxhY2Vob2xkZXIiLCJtaW5MZW5ndGgiLCJtaW5fbGVuZ3RoIiwibWF4TGVuZ3RoIiwibWF4X2xlbmd0aCIsInZhbHVlIiwic2VsZWN0IiwibWluVmFsdWVzIiwibWluX3ZhbHVlcyIsIm1heFZhbHVlcyIsIm1heF92YWx1ZXMiLCJkZWZhdWx0VmFsdWVzIiwiZGVmYXVsdF92YWx1ZXMiLCJkZWZhdWx0VmFsdWUiLCJjaGFubmVsVHlwZXMiLCJjaGFubmVsX3R5cGVzIiwib3B0aW9ucyIsIm9wdGlvbiIsInVuZGVmaW5lZCIsIm5hbWUiLCJhbmltYXRlZCIsImRlZmF1bHQiLCJzZWN0aW9uIiwiYWNjZXNzb3J5IiwidGh1bWJuYWlsIiwibWVkaWFHYWxsZXJ5IiwiaXRlbXMiLCJpdGVtIiwiZmlsZSIsInNpemUiLCJ0ZXh0RGlzcGxheSIsImNvbnRlbnQiLCJzZXBhcmF0b3IiLCJkaXZpZGVyIiwic3BhY2luZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUF3QmdCQTtlQUFBQTs7UUE2REFDO2VBQUFBOztRQWRBQztlQUFBQTs7O3VCQTFEVDtBQVdBLFNBQVNGLG1CQUFtQkcsR0FBUSxFQUFFQyxPQUFnQztJQUMzRSxJQUFJQztJQUVKLGtJQUFrSTtJQUNsSSxPQUFRRCxRQUFRRSxJQUFJO1FBQ2xCLEtBQUtDLDRCQUFxQixDQUFDQyxTQUFTO1lBQ2xDSCxZQUFZSSxtQkFBbUJOLEtBQUtDO1lBQ3BDO1FBQ0YsS0FBS0csNEJB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
@@ -5,17 +5,17 @@ Object.defineProperty(exports, "__esModule", {
5
5
  function _export(target, all) {
6
6
  for(var name in all)Object.defineProperty(target, name, {
7
7
  enumerable: true,
8
- get: all[name]
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- baseEmoji: function() {
12
+ get baseEmoji () {
13
13
  return baseEmoji;
14
14
  },
15
- transformDefaultReactionEmoji: function() {
15
+ get transformDefaultReactionEmoji () {
16
16
  return transformDefaultReactionEmoji;
17
17
  },
18
- transformEmoji: function() {
18
+ get transformEmoji () {
19
19
  return transformEmoji;
20
20
  }
21
21
  });
@@ -54,4 +54,4 @@ function transformDefaultReactionEmoji(bot, payload) {
54
54
  return bot.transformers.customizers.defaultReactionEmoji(bot, payload, defaultReactionEmoji);
55
55
  }
56
56
 
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZW1vamkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkRGVmYXVsdFJlYWN0aW9uRW1vamksIERpc2NvcmRFbW9qaSB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEZWZhdWx0UmVhY3Rpb25FbW9qaSwgRW1vamksIEludGVybmFsQm90IH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBFbW9qaVRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvZW1vamkuanMnXG5cbmV4cG9ydCBjb25zdCBiYXNlRW1vamk6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZW1vamknXSA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBJbnRlcm5hbEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2Vtb2ppJ10pLFxuXG4gIGdldCBhbmltYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzPy5hbmltYXRlZFxuICB9LFxuICBnZXQgcmVxdWlyZUNvbG9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzPy5yZXF1aXJlQ29sb25zXG4gIH0sXG4gIGdldCBtYW5hZ2VkKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/Lm1hbmFnZWRcbiAgfSxcbiAgZ2V0IGF2YWlsYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzLmF2YWlsYWJsZVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtRW1vamkoYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZEVtb2ppKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZW1vamkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZW1vamlcbiAgY29uc3QgZW1vamkgPSBPYmplY3QuY3JlYXRlKGJhc2VFbW9qaSkgYXMgRW1vamlcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZW1vamkuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGVtb2ppLm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIGVtb2ppLnJvbGVzID0gcGF5bG9hZC5yb2xlcy5tYXAoKGlkKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgZW1vamkudXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudXNlcilcblxuICBlbW9qaS50b2dnbGVzID0gbmV3IEVtb2ppVG9nZ2xlcyhwYXlsb2FkKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmVtb2ppKGJvdCwgcGF5bG9hZCwgZW1vamkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1EZWZhdWx0UmVhY3Rpb25FbW9qaShcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZERlZmF1bHRSZWFjdGlvbkVtb2ppLFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZGVmYXVsdFJlYWN0aW9uRW1vamkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZGVmYXVsdFJlYWN0aW9uRW1vamlcbiAgY29uc3QgZGVmYXVsdFJlYWN0aW9uRW1vamkgPSB7fSBhcyBEZWZhdWx0UmVhY3Rpb25FbW9qaVxuXG4gIGlmIChwcm9wcy5lbW9qaUlkICYmIHBheWxvYWQuZW1vamlfaWQpIGRlZmF1bHRSZWFjdGlvbkVtb2ppLmVtb2ppSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmVtb2ppX2lkKVxuICBpZiAocHJvcHMuZW1vamlOYW1lICYmIHBheWxvYWQuZW1vamlfbmFtZSkgZGVmYXVsdFJlYWN0aW9uRW1vamkuZW1vamlOYW1lID0gcGF5bG9hZC5lbW9qaV9uYW1lXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZGVmYXVsdFJlYWN0aW9uRW1vamkoYm90LCBwYXlsb2FkLCBkZWZhdWx0UmVhY3Rpb25FbW9qaSlcbn1cbiJdLCJuYW1lcyI6WyJiYXNlRW1vamkiLCJ0cmFuc2Zvcm1EZWZhdWx0UmVhY3Rpb25FbW9qaSIsInRyYW5zZm9ybUVtb2ppIiwidW5kZWZpbmVkIiwiYW5pbWF0ZWQiLCJ0b2dnbGVzIiwicmVxdWlyZUNvbG9ucyIsIm1hbmFnZWQiLCJhdmFpbGFibGUiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImVtb2ppIiwiT2JqZWN0IiwiY3JlYXRlIiwiaWQiLCJzbm93Zmxha2UiLCJuYW1lIiwicm9sZXMiLCJtYXAiLCJ1c2VyIiwiRW1vamlUb2dnbGVzIiwiY3VzdG9taXplcnMiLCJkZWZhdWx0UmVhY3Rpb25FbW9qaSIsImVtb2ppSWQiLCJlbW9qaV9pZCIsImVtb2ppTmFtZSIsImVtb2ppX25hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBSWFBLFNBQVM7ZUFBVEE7O0lBZ0NHQyw2QkFBNkI7ZUFBN0JBOztJQWRBQyxjQUFjO2VBQWRBOzs7dUJBcEJhO0FBRXRCLE1BQU1GLFlBQW9FO0lBQy9FLDJFQUEyRTtJQUMzRSxHQUFJRyxTQUFTO0lBRWIsSUFBSUMsWUFBVztRQUNiLE9BQU8sSUFBSSxDQUFDQyxPQUFPLEVBQUVEO0lBQ3ZCO0lBQ0EsSUFBSUUsaUJBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDRCxPQUFPLEVBQUVDO0lBQ3ZCO0lBQ0EsSUFBSUMsV0FBVTtRQUNaLE9BQU8sSUFBSSxDQUFDRixPQUFPLEVBQUVFO0lBQ3ZCO0lBQ0EsSUFBSUMsYUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDSCxPQUFPLENBQUNHLFNBQVM7SUFDL0I7QUFDRjtBQUVPLFNBQVNOLGVBQWVPLEdBQWdCLEVBQUVDLE9BQXFCO0lBQ3BFLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLEtBQUs7SUFDdEQsTUFBTUEsUUFBUUMsT0FBT0MsTUFBTSxDQUFDaEI7SUFFNUIsSUFBSVcsTUFBTU0sRUFBRSxJQUFJUCxRQUFRTyxFQUFFLEVBQUVILE1BQU1HLEVBQUUsR0FBR1IsSUFBSUcsWUFBWSxDQUFDTSxTQUFTLENBQUNSLFFBQVFPLEVBQUU7SUFDNUUsSUFBSU4sTUFBTVEsSUFBSSxJQUFJVCxRQUFRUyxJQUFJLEVBQUVMLE1BQU1LLElBQUksR0FBR1QsUUFBUVMsSUFBSTtJQUN6RCxJQUFJUixNQUFNUyxLQUFLLElBQUlWLFFBQVFVLEtBQUssRUFBRU4sTUFBTU0sS0FBSyxHQUFHVixRQUFRVSxLQUFLLENBQUNDLEdBQUcsQ0FBQyxDQUFDSixLQUFPUixJQUFJRyxZQUFZLENBQUNNLFNBQVMsQ0FBQ0Q7SUFDckcsSUFBSU4sTUFBTVcsSUFBSSxJQUFJWixRQUFRWSxJQUFJLEVBQUVSLE1BQU1RLElBQUksR0FBR2IsSUFBSUcsWUFBWSxDQUFDVSxJQUFJLENBQUNiLEtBQUtDLFFBQVFZLElBQUk7SUFFcEZSLE1BQU1ULE9BQU8sR0FBRyxJQUFJa0IsbUJBQVksQ0FBQ2I7SUFFakMsT0FBT0QsSUFBSUcsWUFBWSxDQUFDWSxXQUFXLENBQUNWLEtBQUssQ0FBQ0wsS0FBS0MsU0FBU0k7QUFDMUQ7QUFFTyxTQUFTYiw4QkFDZFEsR0FBZ0IsRUFDaEJDLE9BQW9DO0lBRXBDLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNZLG9CQUFvQjtJQUNyRSxNQUFNQSx1QkFBdUIsQ0FBQztJQUU5QixJQUFJZCxNQUFNZSxPQUFPLElBQUloQixRQUFRaUIsUUFBUSxFQUFFRixxQkFBcUJDLE9BQU8sR0FBR2pCLElBQUlHLFlBQVksQ0FBQ00sU0FBUyxDQUFDUixRQUFRaUIsUUFBUTtJQUNqSCxJQUFJaEIsTUFBTWlCLFNBQVMsSUFBSWxCLFFBQVFtQixVQUFVLEVBQUVKLHFCQUFxQkcsU0FBUyxHQUFHbEIsUUFBUW1CLFVBQVU7SUFFOUYsT0FBT3BCLElBQUlHLFlBQVksQ0FBQ1ksV0FBVyxDQUFDQyxvQkFBb0IsQ0FBQ2hCLEtBQUtDLFNBQVNlO0FBQ3pFIn0=
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZW1vamkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkRGVmYXVsdFJlYWN0aW9uRW1vamksIERpc2NvcmRFbW9qaSB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEZWZhdWx0UmVhY3Rpb25FbW9qaSwgRW1vamksIEludGVybmFsQm90IH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBFbW9qaVRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvZW1vamkuanMnXG5cbmV4cG9ydCBjb25zdCBiYXNlRW1vamk6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZW1vamknXSA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBJbnRlcm5hbEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2Vtb2ppJ10pLFxuXG4gIGdldCBhbmltYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzPy5hbmltYXRlZFxuICB9LFxuICBnZXQgcmVxdWlyZUNvbG9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzPy5yZXF1aXJlQ29sb25zXG4gIH0sXG4gIGdldCBtYW5hZ2VkKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/Lm1hbmFnZWRcbiAgfSxcbiAgZ2V0IGF2YWlsYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzLmF2YWlsYWJsZVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtRW1vamkoYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZEVtb2ppKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZW1vamkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZW1vamlcbiAgY29uc3QgZW1vamkgPSBPYmplY3QuY3JlYXRlKGJhc2VFbW9qaSkgYXMgRW1vamlcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZW1vamkuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGVtb2ppLm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIGVtb2ppLnJvbGVzID0gcGF5bG9hZC5yb2xlcy5tYXAoKGlkKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgZW1vamkudXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudXNlcilcblxuICBlbW9qaS50b2dnbGVzID0gbmV3IEVtb2ppVG9nZ2xlcyhwYXlsb2FkKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmVtb2ppKGJvdCwgcGF5bG9hZCwgZW1vamkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1EZWZhdWx0UmVhY3Rpb25FbW9qaShcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZERlZmF1bHRSZWFjdGlvbkVtb2ppLFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZGVmYXVsdFJlYWN0aW9uRW1vamkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZGVmYXVsdFJlYWN0aW9uRW1vamlcbiAgY29uc3QgZGVmYXVsdFJlYWN0aW9uRW1vamkgPSB7fSBhcyBEZWZhdWx0UmVhY3Rpb25FbW9qaVxuXG4gIGlmIChwcm9wcy5lbW9qaUlkICYmIHBheWxvYWQuZW1vamlfaWQpIGRlZmF1bHRSZWFjdGlvbkVtb2ppLmVtb2ppSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmVtb2ppX2lkKVxuICBpZiAocHJvcHMuZW1vamlOYW1lICYmIHBheWxvYWQuZW1vamlfbmFtZSkgZGVmYXVsdFJlYWN0aW9uRW1vamkuZW1vamlOYW1lID0gcGF5bG9hZC5lbW9qaV9uYW1lXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZGVmYXVsdFJlYWN0aW9uRW1vamkoYm90LCBwYXlsb2FkLCBkZWZhdWx0UmVhY3Rpb25FbW9qaSlcbn1cbiJdLCJuYW1lcyI6WyJiYXNlRW1vamkiLCJ0cmFuc2Zvcm1EZWZhdWx0UmVhY3Rpb25FbW9qaSIsInRyYW5zZm9ybUVtb2ppIiwidW5kZWZpbmVkIiwiYW5pbWF0ZWQiLCJ0b2dnbGVzIiwicmVxdWlyZUNvbG9ucyIsIm1hbmFnZWQiLCJhdmFpbGFibGUiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImVtb2ppIiwiT2JqZWN0IiwiY3JlYXRlIiwiaWQiLCJzbm93Zmxha2UiLCJuYW1lIiwicm9sZXMiLCJtYXAiLCJ1c2VyIiwiRW1vamlUb2dnbGVzIiwiY3VzdG9taXplcnMiLCJkZWZhdWx0UmVhY3Rpb25FbW9qaSIsImVtb2ppSWQiLCJlbW9qaV9pZCIsImVtb2ppTmFtZSIsImVtb2ppX25hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O1FBSWFBO2VBQUFBOztRQWdDR0M7ZUFBQUE7O1FBZEFDO2VBQUFBOzs7dUJBcEJhO0FBRXRCLE1BQU1GLFlBQW9FO0lBQy9FLDJFQUEyRTtJQUMzRSxHQUFJRyxTQUFTO0lBRWIsSUFBSUMsWUFBVztRQUNiLE9BQU8sSUFBSSxDQUFDQyxPQUFPLEVBQUVEO0lBQ3ZCO0lBQ0EsSUFBSUUsaUJBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDRCxPQUFPLEVBQUVDO0lBQ3ZCO0lBQ0EsSUFBSUMsV0FBVTtRQUNaLE9BQU8sSUFBSSxDQUFDRixPQUFPLEVBQUVFO0lBQ3ZCO0lBQ0EsSUFBSUMsYUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDSCxPQUFPLENBQUNHLFNBQVM7SUFDL0I7QUFDRjtBQUVPLFNBQVNOLGVBQWVPLEdBQWdCLEVBQUVDLE9BQXFCO0lBQ3BFLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLEtBQUs7SUFDdEQsTUFBTUEsUUFBUUMsT0FBT0MsTUFBTSxDQUFDaEI7SUFFNUIsSUFBSVcsTUFBTU0sRUFBRSxJQUFJUCxRQUFRTyxFQUFFLEVBQUVILE1BQU1HLEVBQUUsR0FBR1IsSUFBSUcsWUFBWSxDQUFDTSxTQUFTLENBQUNSLFFBQVFPLEVBQUU7SUFDNUUsSUFBSU4sTUFBTVEsSUFBSSxJQUFJVCxRQUFRUyxJQUFJLEVBQUVMLE1BQU1LLElBQUksR0FBR1QsUUFBUVMsSUFBSTtJQUN6RCxJQUFJUixNQUFNUyxLQUFLLElBQUlWLFFBQVFVLEtBQUssRUFBRU4sTUFBTU0sS0FBSyxHQUFHVixRQUFRVSxLQUFLLENBQUNDLEdBQUcsQ0FBQyxDQUFDSixLQUFPUixJQUFJRyxZQUFZLENBQUNNLFNBQVMsQ0FBQ0Q7SUFDckcsSUFBSU4sTUFBTVcsSUFBSSxJQUFJWixRQUFRWSxJQUFJLEVBQUVSLE1BQU1RLElBQUksR0FBR2IsSUFBSUcsWUFBWSxDQUFDVSxJQUFJLENBQUNiLEtBQUtDLFFBQVFZLElBQUk7SUFFcEZSLE1BQU1ULE9BQU8sR0FBRyxJQUFJa0IsbUJBQVksQ0FBQ2I7SUFFakMsT0FBT0QsSUFBSUcsWUFBWSxDQUFDWSxXQUFXLENBQUNWLEtBQUssQ0FBQ0wsS0FBS0MsU0FBU0k7QUFDMUQ7QUFFTyxTQUFTYiw4QkFDZFEsR0FBZ0IsRUFDaEJDLE9BQW9DO0lBRXBDLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNZLG9CQUFvQjtJQUNyRSxNQUFNQSx1QkFBdUIsQ0FBQztJQUU5QixJQUFJZCxNQUFNZSxPQUFPLElBQUloQixRQUFRaUIsUUFBUSxFQUFFRixxQkFBcUJDLE9BQU8sR0FBR2pCLElBQUlHLFlBQVksQ0FBQ00sU0FBUyxDQUFDUixRQUFRaUIsUUFBUTtJQUNqSCxJQUFJaEIsTUFBTWlCLFNBQVMsSUFBSWxCLFFBQVFtQixVQUFVLEVBQUVKLHFCQUFxQkcsU0FBUyxHQUFHbEIsUUFBUW1CLFVBQVU7SUFFOUYsT0FBT3BCLElBQUlHLFlBQVksQ0FBQ1ksV0FBVyxDQUFDQyxvQkFBb0IsQ0FBQ2hCLEtBQUtDLFNBQVNlO0FBQ3pFIn0=
@@ -17,11 +17,11 @@ function transformEntitlement(bot, payload) {
17
17
  if (props.guildId && payload.guild_id) entitlement.guildId = bot.transformers.snowflake(payload.guild_id);
18
18
  if (props.applicationId && payload.application_id) entitlement.applicationId = bot.transformers.snowflake(payload.application_id);
19
19
  if (props.type && payload.type) entitlement.type = payload.type;
20
- if (props.deleted && payload.deleted) entitlement.deleted = payload.deleted;
20
+ if (props.deleted && payload.deleted !== undefined) entitlement.deleted = payload.deleted;
21
21
  if (props.startsAt && payload.starts_at) entitlement.startsAt = Date.parse(payload.starts_at);
22
22
  if (props.endsAt && payload.ends_at) entitlement.endsAt = Date.parse(payload.ends_at);
23
23
  if (props.consumed && payload.consumed !== undefined) entitlement.consumed = payload.consumed;
24
24
  return bot.transformers.customizers.entitlement(bot, payload, entitlement);
25
25
  }
26
26
 
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZW50aXRsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkRW50aXRsZW1lbnQgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHsgRW50aXRsZW1lbnQsIEludGVybmFsQm90IH0gZnJvbSAnLi4vaW5kZXguanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1FbnRpdGxlbWVudChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkRW50aXRsZW1lbnQpOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5lbnRpdGxlbWVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5lbnRpdGxlbWVudFxuICBjb25zdCBlbnRpdGxlbWVudCA9IHt9IGFzIEVudGl0bGVtZW50XG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGVudGl0bGVtZW50LmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLnNrdUlkICYmIHBheWxvYWQuc2t1X2lkKSBlbnRpdGxlbWVudC5za3VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKVxuICBpZiAocHJvcHMudXNlcklkICYmIHBheWxvYWQudXNlcl9pZCkgZW50aXRsZW1lbnQudXNlcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC51c2VyX2lkKVxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLmd1aWxkX2lkKSBlbnRpdGxlbWVudC5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5hcHBsaWNhdGlvbl9pZCkgZW50aXRsZW1lbnQuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgZW50aXRsZW1lbnQudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuZGVsZXRlZCAmJiBwYXlsb2FkLmRlbGV0ZWQpIGVudGl0bGVtZW50LmRlbGV0ZWQgPSBwYXlsb2FkLmRlbGV0ZWRcbiAgaWYgKHByb3BzLnN0YXJ0c0F0ICYmIHBheWxvYWQuc3RhcnRzX2F0KSBlbnRpdGxlbWVudC5zdGFydHNBdCA9IERhdGUucGFyc2UocGF5bG9hZC5zdGFydHNfYXQpXG4gIGlmIChwcm9wcy5lbmRzQXQgJiYgcGF5bG9hZC5lbmRzX2F0KSBlbnRpdGxlbWVudC5lbmRzQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQuZW5kc19hdClcbiAgaWYgKHByb3BzLmNvbnN1bWVkICYmIHBheWxvYWQuY29uc3VtZWQgIT09IHVuZGVmaW5lZCkgZW50aXRsZW1lbnQuY29uc3VtZWQgPSBwYXlsb2FkLmNvbnN1bWVkXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZW50aXRsZW1lbnQoYm90LCBwYXlsb2FkLCBlbnRpdGxlbWVudClcbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1FbnRpdGxlbWVudCIsImJvdCIsInBheWxvYWQiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiZW50aXRsZW1lbnQiLCJpZCIsInNub3dmbGFrZSIsInNrdUlkIiwic2t1X2lkIiwidXNlcklkIiwidXNlcl9pZCIsImd1aWxkSWQiLCJndWlsZF9pZCIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsInR5cGUiLCJkZWxldGVkIiwic3RhcnRzQXQiLCJzdGFydHNfYXQiLCJEYXRlIiwicGFyc2UiLCJlbmRzQXQiLCJlbmRzX2F0IiwiY29uc3VtZWQiLCJ1bmRlZmluZWQiLCJjdXN0b21pemVycyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFHZ0JBOzs7ZUFBQUE7OztBQUFULFNBQVNBLHFCQUFxQkMsR0FBZ0IsRUFBRUMsT0FBMkI7SUFDaEYsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsV0FBVztJQUM1RCxNQUFNQSxjQUFjLENBQUM7SUFFckIsSUFBSUgsTUFBTUksRUFBRSxJQUFJTCxRQUFRSyxFQUFFLEVBQUVELFlBQVlDLEVBQUUsR0FBR04sSUFBSUcsWUFBWSxDQUFDSSxTQUFTLENBQUNOLFFBQVFLLEVBQUU7SUFDbEYsSUFBSUosTUFBTU0sS0FBSyxJQUFJUCxRQUFRUSxNQUFNLEVBQUVKLFlBQVlHLEtBQUssR0FBR1IsSUFBSUcsWUFBWSxDQUFDSSxTQUFTLENBQUNOLFFBQVFRLE1BQU07SUFDaEcsSUFBSVAsTUFBTVEsTUFBTSxJQUFJVCxRQUFRVSxPQUFPLEVBQUVOLFlBQVlLLE1BQU0sR0FBR1YsSUFBSUcsWUFBWSxDQUFDSSxTQUFTLENBQUNOLFFBQVFVLE9BQU87SUFDcEcsSUFBSVQsTUFBTVUsT0FBTyxJQUFJWCxRQUFRWSxRQUFRLEVBQUVSLFlBQVlPLE9BQU8sR0FBR1osSUFBSUcsWUFBWSxDQUFDSSxTQUFTLENBQUNOLFFBQVFZLFFBQVE7SUFDeEcsSUFBSVgsTUFBTVksYUFBYSxJQUFJYixRQUFRYyxjQUFjLEVBQUVWLFlBQVlTLGFBQWEsR0FBR2QsSUFBSUcsWUFBWSxDQUFDSSxTQUFTLENBQUNOLFFBQVFjLGNBQWM7SUFDaEksSUFBSWIsTUFBTWMsSUFBSSxJQUFJZixRQUFRZSxJQUFJLEVBQUVYLFlBQVlXLElBQUksR0FBR2YsUUFBUWUsSUFBSTtJQUMvRCxJQUFJZCxNQUFNZSxPQUFPLElBQUloQixRQUFRZ0IsT0FBTyxFQUFFWixZQUFZWSxPQUFPLEdBQUdoQixRQUFRZ0IsT0FBTztJQUMzRSxJQUFJZixNQUFNZ0IsUUFBUSxJQUFJakIsUUFBUWtCLFNBQVMsRUFBRWQsWUFBWWEsUUFBUSxHQUFHRSxLQUFLQyxLQUFLLENBQUNwQixRQUFRa0IsU0FBUztJQUM1RixJQUFJakIsTUFBTW9CLE1BQU0sSUFBSXJCLFFBQVFzQixPQUFPLEVBQUVsQixZQUFZaUIsTUFBTSxHQUFHRixLQUFLQyxLQUFLLENBQUNwQixRQUFRc0IsT0FBTztJQUNwRixJQUFJckIsTUFBTXNCLFFBQVEsSUFBSXZCLFFBQVF1QixRQUFRLEtBQUtDLFdBQVdwQixZQUFZbUIsUUFBUSxHQUFHdkIsUUFBUXVCLFFBQVE7SUFFN0YsT0FBT3hCLElBQUlHLFlBQVksQ0FBQ3VCLFdBQVcsQ0FBQ3JCLFdBQVcsQ0FBQ0wsS0FBS0MsU0FBU0k7QUFDaEUifQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZW50aXRsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkRW50aXRsZW1lbnQgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHsgRW50aXRsZW1lbnQsIEludGVybmFsQm90IH0gZnJvbSAnLi4vaW5kZXguanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1FbnRpdGxlbWVudChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkRW50aXRsZW1lbnQpOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5lbnRpdGxlbWVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5lbnRpdGxlbWVudFxuICBjb25zdCBlbnRpdGxlbWVudCA9IHt9IGFzIEVudGl0bGVtZW50XG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGVudGl0bGVtZW50LmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLnNrdUlkICYmIHBheWxvYWQuc2t1X2lkKSBlbnRpdGxlbWVudC5za3VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKVxuICBpZiAocHJvcHMudXNlcklkICYmIHBheWxvYWQudXNlcl9pZCkgZW50aXRsZW1lbnQudXNlcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC51c2VyX2lkKVxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLmd1aWxkX2lkKSBlbnRpdGxlbWVudC5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5hcHBsaWNhdGlvbl9pZCkgZW50aXRsZW1lbnQuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgZW50aXRsZW1lbnQudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuZGVsZXRlZCAmJiBwYXlsb2FkLmRlbGV0ZWQgIT09IHVuZGVmaW5lZCkgZW50aXRsZW1lbnQuZGVsZXRlZCA9IHBheWxvYWQuZGVsZXRlZFxuICBpZiAocHJvcHMuc3RhcnRzQXQgJiYgcGF5bG9hZC5zdGFydHNfYXQpIGVudGl0bGVtZW50LnN0YXJ0c0F0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLnN0YXJ0c19hdClcbiAgaWYgKHByb3BzLmVuZHNBdCAmJiBwYXlsb2FkLmVuZHNfYXQpIGVudGl0bGVtZW50LmVuZHNBdCA9IERhdGUucGFyc2UocGF5bG9hZC5lbmRzX2F0KVxuICBpZiAocHJvcHMuY29uc3VtZWQgJiYgcGF5bG9hZC5jb25zdW1lZCAhPT0gdW5kZWZpbmVkKSBlbnRpdGxlbWVudC5jb25zdW1lZCA9IHBheWxvYWQuY29uc3VtZWRcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5lbnRpdGxlbWVudChib3QsIHBheWxvYWQsIGVudGl0bGVtZW50KVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybUVudGl0bGVtZW50IiwiYm90IiwicGF5bG9hZCIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJlbnRpdGxlbWVudCIsImlkIiwic25vd2ZsYWtlIiwic2t1SWQiLCJza3VfaWQiLCJ1c2VySWQiLCJ1c2VyX2lkIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwidHlwZSIsImRlbGV0ZWQiLCJ1bmRlZmluZWQiLCJzdGFydHNBdCIsInN0YXJ0c19hdCIsIkRhdGUiLCJwYXJzZSIsImVuZHNBdCIsImVuZHNfYXQiLCJjb25zdW1lZCIsImN1c3RvbWl6ZXJzIl0sIm1hcHBpbmdzIjoiOzs7OytCQUdnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EscUJBQXFCQyxHQUFnQixFQUFFQyxPQUEyQjtJQUNoRixNQUFNQyxRQUFRRixJQUFJRyxZQUFZLENBQUNDLGlCQUFpQixDQUFDQyxXQUFXO0lBQzVELE1BQU1BLGNBQWMsQ0FBQztJQUVyQixJQUFJSCxNQUFNSSxFQUFFLElBQUlMLFFBQVFLLEVBQUUsRUFBRUQsWUFBWUMsRUFBRSxHQUFHTixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUUssRUFBRTtJQUNsRixJQUFJSixNQUFNTSxLQUFLLElBQUlQLFFBQVFRLE1BQU0sRUFBRUosWUFBWUcsS0FBSyxHQUFHUixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUVEsTUFBTTtJQUNoRyxJQUFJUCxNQUFNUSxNQUFNLElBQUlULFFBQVFVLE9BQU8sRUFBRU4sWUFBWUssTUFBTSxHQUFHVixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUVUsT0FBTztJQUNwRyxJQUFJVCxNQUFNVSxPQUFPLElBQUlYLFFBQVFZLFFBQVEsRUFBRVIsWUFBWU8sT0FBTyxHQUFHWixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUVksUUFBUTtJQUN4RyxJQUFJWCxNQUFNWSxhQUFhLElBQUliLFFBQVFjLGNBQWMsRUFBRVYsWUFBWVMsYUFBYSxHQUFHZCxJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUWMsY0FBYztJQUNoSSxJQUFJYixNQUFNYyxJQUFJLElBQUlmLFFBQVFlLElBQUksRUFBRVgsWUFBWVcsSUFBSSxHQUFHZixRQUFRZSxJQUFJO0lBQy9ELElBQUlkLE1BQU1lLE9BQU8sSUFBSWhCLFFBQVFnQixPQUFPLEtBQUtDLFdBQVdiLFlBQVlZLE9BQU8sR0FBR2hCLFFBQVFnQixPQUFPO0lBQ3pGLElBQUlmLE1BQU1pQixRQUFRLElBQUlsQixRQUFRbUIsU0FBUyxFQUFFZixZQUFZYyxRQUFRLEdBQUdFLEtBQUtDLEtBQUssQ0FBQ3JCLFFBQVFtQixTQUFTO0lBQzVGLElBQUlsQixNQUFNcUIsTUFBTSxJQUFJdEIsUUFBUXVCLE9BQU8sRUFBRW5CLFlBQVlrQixNQUFNLEdBQUdGLEtBQUtDLEtBQUssQ0FBQ3JCLFFBQVF1QixPQUFPO0lBQ3BGLElBQUl0QixNQUFNdUIsUUFBUSxJQUFJeEIsUUFBUXdCLFFBQVEsS0FBS1AsV0FBV2IsWUFBWW9CLFFBQVEsR0FBR3hCLFFBQVF3QixRQUFRO0lBRTdGLE9BQU96QixJQUFJRyxZQUFZLENBQUN1QixXQUFXLENBQUNyQixXQUFXLENBQUNMLEtBQUtDLFNBQVNJO0FBQ2hFIn0=
@@ -5,14 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  function _export(target, all) {
6
6
  for(var name in all)Object.defineProperty(target, name, {
7
7
  enumerable: true,
8
- get: all[name]
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
9
  });
10
10
  }
11
11
  _export(exports, {
12
- baseGuild: function() {
12
+ get baseGuild () {
13
13
  return baseGuild;
14
14
  },
15
- transformGuild: function() {
15
+ get transformGuild () {
16
16
  return transformGuild;
17
17
  }
18
18
  });
@@ -151,7 +151,8 @@ function transformGuild(bot, payload) {
151
151
  if (props.iconHash && payload.guild.icon_hash) guild.iconHash = (0, _utils.iconHashToBigInt)(payload.guild.icon_hash);
152
152
  if (props.presences && payload.guild.presences) guild.presences = payload.guild.presences?.map((presence)=>bot.transformers.presence(bot, presence));
153
153
  if (props.safetyAlertsChannelId && payload.guild.safety_alerts_channel_id) guild.safetyAlertsChannelId = bot.transformers.snowflake(payload.guild.safety_alerts_channel_id);
154
+ if (props.incidentsData && payload.guild.incidents_data) guild.incidentsData = bot.transformers.incidentsData(bot, payload.guild.incidents_data);
154
155
  return bot.transformers.customizers.guild(bot, payload.guild, guild);
155
156
  }
156
157
 
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZ3VpbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbm5lbFR5cGVzLCB0eXBlIERpc2NvcmRHdWlsZCwgdHlwZSBEaXNjb3JkUHJlc2VuY2VVcGRhdGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENvbGxlY3Rpb24sIGljb25IYXNoVG9CaWdJbnQgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB0eXBlIHsgQ2hhbm5lbCwgR3VpbGQsIEludGVybmFsQm90IH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBHdWlsZFRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvZ3VpbGQuanMnXG5cbmV4cG9ydCBjb25zdCBiYXNlR3VpbGQ6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZ3VpbGQnXSA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBJbnRlcm5hbEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2d1aWxkJ10pLFxuXG4gIGdldCB0aHJlYWRzKCkge1xuICAgIGlmICghdGhpcy5jaGFubmVscykgcmV0dXJuIG5ldyBDb2xsZWN0aW9uPGJpZ2ludCwgQ2hhbm5lbD4oKVxuXG4gICAgY29uc3QgdGhyZWFkcyA9IHRoaXMuY2hhbm5lbHNcbiAgICAgIC5hcnJheSgpXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4LnR5cGUgPT09IENoYW5uZWxUeXBlcy5QdWJsaWNUaHJlYWQgfHwgeC50eXBlID09PSBDaGFubmVsVHlwZXMuUHJpdmF0ZVRocmVhZCB8fCB4LnR5cGUgPT09IENoYW5uZWxUeXBlcy5Bbm5vdW5jZW1lbnRUaHJlYWQpXG5cbiAgICByZXR1cm4gbmV3IENvbGxlY3Rpb24odGhyZWFkcy5tYXAoKHgpID0+IFt4LmlkLCB4XSkpXG4gIH0sXG4gIGdldCBmZWF0dXJlcygpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzLmZlYXR1cmVzXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1HdWlsZChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiB7IGd1aWxkOiBEaXNjb3JkR3VpbGQ7IHNoYXJkSWQ6IG51bWJlciB9KTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZ3VpbGQge1xuICBjb25zdCBndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5pZClcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkXG4gIGNvbnN0IGd1aWxkOiBHdWlsZCA9IE9iamVjdC5jcmVhdGUoYmFzZUd1aWxkKVxuXG4gIGlmIChwcm9wcy5hZmtUaW1lb3V0ICYmIHBheWxvYWQuZ3VpbGQuYWZrX3RpbWVvdXQpIGd1aWxkLmFma1RpbWVvdXQgPSBwYXlsb2FkLmd1aWxkLmFma190aW1lb3V0XG4gIGlmIChwcm9wcy5hcHByb3hpbWF0ZU1lbWJlckNvdW50ICYmIHBheWxvYWQuZ3VpbGQuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50KSBndWlsZC5hcHByb3hpbWF0ZU1lbWJlckNvdW50ID0gcGF5bG9hZC5ndWlsZC5hcHByb3hpbWF0ZV9tZW1iZXJfY291bnRcbiAgaWYgKHByb3BzLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCAmJiBwYXlsb2FkLmd1aWxkLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50KVxuICAgIGd1aWxkLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCA9IHBheWxvYWQuZ3VpbGQuYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnRcbiAgaWYgKHByb3BzLmRlZmF1bHRNZXNzYWdlTm90aWZpY2F0aW9ucykgZ3VpbGQuZGVmYXVsdE1lc3NhZ2VOb3RpZmljYXRpb25zID0gcGF5bG9hZC5ndWlsZC5kZWZhdWx0X21lc3NhZ2Vfbm90aWZpY2F0aW9uc1xuICBpZiAocHJvcHMuZGVzY3JpcHRpb24gJiYgcGF5bG9hZC5ndWlsZC5kZXNjcmlwdGlvbikgZ3VpbGQuZGVzY3JpcHRpb24gPSBwYXlsb2FkLmd1aWxkLmRlc2NyaXB0aW9uXG4gIGlmIChwcm9wcy50b2dnbGVzKSBndWlsZC50b2dnbGVzID0gbmV3IEd1aWxkVG9nZ2xlcyhwYXlsb2FkLmd1aWxkKVxuICBpZiAocHJvcHMuZXhwbGljaXRDb250ZW50RmlsdGVyKSBndWlsZC5leHBsaWNpdENvbnRlbnRGaWx0ZXIgPSBwYXlsb2FkLmd1aWxkLmV4cGxpY2l0X2NvbnRlbnRfZmlsdGVyXG4gIGlmIChwcm9wcy5tYXhNZW1iZXJzICYmIHBheWxvYWQuZ3VpbGQubWF4X21lbWJlcnMpIGd1aWxkLm1heE1lbWJlcnMgPSBwYXlsb2FkLmd1aWxkLm1heF9tZW1iZXJzXG4gIGlmIChwcm9wcy5tYXhQcmVzZW5jZXMgJiYgcGF5bG9hZC5ndWlsZC5tYXhfcHJlc2VuY2VzKSBndWlsZC5tYXhQcmVzZW5jZXMgPSBwYXlsb2FkLmd1aWxkLm1heF9wcmVzZW5jZXMgPz8gdW5kZWZpbmVkXG4gIGlmIChwcm9wcy5tYXhWaWRlb0NoYW5uZWxVc2VycyAmJiBwYXlsb2FkLmd1aWxkLm1heF92aWRlb19jaGFubmVsX3VzZXJzKSBndWlsZC5tYXhWaWRlb0NoYW5uZWxVc2VycyA9IHBheWxvYWQuZ3VpbGQubWF4X3ZpZGVvX2NoYW5uZWxfdXNlcnNcbiAgaWYgKHByb3BzLm1heFN0YWdlVmlkZW9DaGFubmVsVXNlcnMgJiYgcGF5bG9hZC5ndWlsZC5tYXhfc3RhZ2VfdmlkZW9fY2hhbm5lbF91c2VycylcbiAgICBndWlsZC5tYXhTdGFnZVZpZGVvQ2hhbm5lbFVzZXJzID0gcGF5bG9hZC5ndWlsZC5tYXhfc3RhZ2VfdmlkZW9fY2hhbm5lbF91c2Vyc1xuICBpZiAocHJvcHMubWZhTGV2ZWwpIGd1aWxkLm1mYUxldmVsID0gcGF5bG9hZC5ndWlsZC5tZmFfbGV2ZWxcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5ndWlsZC5uYW1lKSBndWlsZC5uYW1lID0gcGF5bG9hZC5ndWlsZC5uYW1lXG4gIGlmIChwcm9wcy5uc2Z3TGV2ZWwpIGd1aWxkLm5zZndMZXZlbCA9IHBheWxvYWQuZ3VpbGQubnNmd19sZXZlbFxuICBpZiAocHJvcHMucHJlZmVycmVkTG9jYWxlICYmIHBheWxvYWQuZ3VpbGQucHJlZmVycmVkX2xvY2FsZSkgZ3VpbGQucHJlZmVycmVkTG9jYWxlID0gcGF5bG9hZC5ndWlsZC5wcmVmZXJyZWRfbG9jYWxlXG4gIGlmIChwcm9wcy5wcmVtaXVtU3Vic2NyaXB0aW9uQ291bnQgJiYgcGF5bG9hZC5ndWlsZC5wcmVtaXVtX3N1YnNjcmlwdGlvbl9jb3VudCAhPT0gdW5kZWZpbmVkKVxuICAgIGd1aWxkLnByZW1pdW1TdWJzY3JpcHRpb25Db3VudCA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV9zdWJzY3JpcHRpb25fY291bnRcbiAgaWYgKHByb3BzLnByZW1pdW1UaWVyKSBndWlsZC5wcmVtaXVtVGllciA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV90aWVyXG4gIGlmIChwcm9wcy5zdGFnZUluc3RhbmNlcyAmJiBwYXlsb2FkLmd1aWxkLnN0YWdlX2luc3RhbmNlcylcbiAgICBndWlsZC5zdGFnZUluc3RhbmNlcyA9IHBheWxvYWQuZ3VpbGQuc3RhZ2VfaW5zdGFuY2VzLm1hcCgoc2kpID0+ICh7XG4gICAgICAvKiogVGhlIGlkIG9mIHRoaXMgU3RhZ2UgaW5zdGFuY2UgKi9cbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShzaS5pZCksXG4gICAgICAvKiogVGhlIGd1aWxkIGlkIG9mIHRoZSBhc3NvY2lhdGVkIFN0YWdlIGNoYW5uZWwgKi9cbiAgICAgIGd1aWxkSWQsXG4gICAgICAvKiogVGhlIGlkIG9mIHRoZSBhc3NvY2lhdGVkIFN0YWdlIGNoYW5uZWwgKi9cbiAgICAgIGNoYW5uZWxJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoc2kuY2hhbm5lbF9pZCksXG4gICAgICAvKiogVGhlIHRvcGljIG9mIHRoZSBTdGFnZSBpbnN0YW5jZSAoMS0xMjAgY2hhcmFjdGVycykgKi9cbiAgICAgIHRvcGljOiBzaS50b3BpYyxcbiAgICB9KSlcbiAgaWYgKHByb3BzLmNoYW5uZWxzICYmICghIXBheWxvYWQuZ3VpbGQuY2hhbm5lbHMgfHwgISFwYXlsb2FkLmd1aWxkLnRocmVhZHMpKVxuICAgIGd1aWxkLmNoYW5uZWxzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBbLi4uKHBheWxvYWQuZ3VpbGQuY2hhbm5lbHMgPz8gW10pLCAuLi4ocGF5bG9hZC5ndWlsZC50aHJlYWRzID8/IFtdKV0ubWFwKChjaGFubmVsKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbCwgZ3VpbGRJZCB9KVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMubWVtYmVycyAmJiBwYXlsb2FkLmd1aWxkLm1lbWJlcnMpXG4gICAgZ3VpbGQubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5tZW1iZXJzLm1hcCgobWVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgbWVtYmVyLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtZW1iZXIudXNlciEuaWQpKVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMucm9sZXMgJiYgcGF5bG9hZC5ndWlsZC5yb2xlcylcbiAgICBndWlsZC5yb2xlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5yb2xlcy5tYXAoKHJvbGUpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pXG4gICAgICAgIHJldHVybiBbcmVzdWx0LmlkLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy5lbW9qaXMgJiYgcGF5bG9hZC5ndWlsZC5lbW9qaXMpXG4gICAgZ3VpbGQuZW1vamlzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBwYXlsb2FkLmd1aWxkLmVtb2ppcy5tYXAoKGVtb2ppKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBlbW9qaSlcbiAgICAgICAgcmV0dXJuIFtyZXN1bHQuaWQhLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy52b2ljZVN0YXRlcyAmJiBwYXlsb2FkLmd1aWxkLnZvaWNlX3N0YXRlcylcbiAgICBndWlsZC52b2ljZVN0YXRlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC52b2ljZV9zdGF0ZXMubWFwKCh2b2ljZVN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMudm9pY2VTdGF0ZShib3QsIHsgdm9pY2VTdGF0ZSwgZ3VpbGRJZCB9KVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC51c2VySWQsIHJlc3VsdF1cbiAgICAgIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLnN0aWNrZXJzICYmIHBheWxvYWQuZ3VpbGQuc3RpY2tlcnMpXG4gICAgZ3VpbGQuc3RpY2tlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIHBheWxvYWQuZ3VpbGQuc3RpY2tlcnM/Lm1hcCgoc3RpY2tlcikgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzdGlja2VyKVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMuc3lzdGVtQ2hhbm5lbEZsYWdzICYmIHBheWxvYWQuZ3VpbGQuc3lzdGVtX2NoYW5uZWxfZmxhZ3MpIGd1aWxkLnN5c3RlbUNoYW5uZWxGbGFncyA9IHBheWxvYWQuZ3VpbGQuc3lzdGVtX2NoYW5uZWxfZmxhZ3NcbiAgaWYgKHByb3BzLnZhbml0eVVybENvZGUgJiYgcGF5bG9hZC5ndWlsZC52YW5pdHlfdXJsX2NvZGUpIGd1aWxkLnZhbml0eVVybENvZGUgPSBwYXlsb2FkLmd1aWxkLnZhbml0eV91cmxfY29kZVxuICBpZiAocHJvcHMudmVyaWZpY2F0aW9uTGV2ZWwpIGd1aWxkLnZlcmlmaWNhdGlvbkxldmVsID0gcGF5bG9hZC5ndWlsZC52ZXJpZmljYXRpb25fbGV2ZWxcbiAgaWYgKHByb3BzLndlbGNvbWVTY3JlZW4gJiYgcGF5bG9hZC5ndWlsZC53ZWxjb21lX3NjcmVlbilcbiAgICBndWlsZC53ZWxjb21lU2NyZWVuID0ge1xuICAgICAgZGVzY3JpcHRpb246IHBheWxvYWQuZ3VpbGQud2VsY29tZV9zY3JlZW4uZGVzY3JpcHRpb24gPz8gdW5kZWZpbmVkLFxuICAgICAgd2VsY29tZUNoYW5uZWxzOiBwYXlsb2FkLmd1aWxkLndlbGNvbWVfc2NyZWVuLndlbGNvbWVfY2hhbm5lbHMubWFwKCh3YykgPT4gKHtcbiAgICAgICAgY2hhbm5lbElkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh3Yy5jaGFubmVsX2lkKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHdjLmRlc2NyaXB0aW9uLFxuICAgICAgICBlbW9qaUlkOiB3Yy5lbW9qaV9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHdjLmVtb2ppX2lkKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZW1vamlOYW1lOiB3Yy5lbW9qaV9uYW1lID8/IHVuZGVmaW5lZCxcbiAgICAgIH0pKSxcbiAgICB9XG4gIGlmIChwcm9wcy5kaXNjb3ZlcnlTcGxhc2ggJiYgcGF5bG9hZC5ndWlsZC5kaXNjb3Zlcnlfc3BsYXNoKSBndWlsZC5kaXNjb3ZlcnlTcGxhc2ggPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuZGlzY292ZXJ5X3NwbGFzaClcbiAgaWYgKHByb3BzLmpvaW5lZEF0ICYmIHBheWxvYWQuZ3VpbGQuam9pbmVkX2F0KSBndWlsZC5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5ndWlsZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5tZW1iZXJDb3VudCAmJiBwYXlsb2FkLmd1aWxkLm1lbWJlcl9jb3VudCkgZ3VpbGQubWVtYmVyQ291bnQgPSBwYXlsb2FkLmd1aWxkLm1lbWJlcl9jb3VudCA/PyAwXG4gIGlmIChwcm9wcy5zaGFyZElkKSBndWlsZC5zaGFyZElkID0gcGF5bG9hZC5zaGFyZElkXG4gIGlmIChwcm9wcy5pY29uICYmIHBheWxvYWQuZ3VpbGQuaWNvbikgZ3VpbGQuaWNvbiA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5ndWlsZC5pY29uKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuZ3VpbGQuYmFubmVyKSBndWlsZC5iYW5uZXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuYmFubmVyKVxuICBpZiAocHJvcHMuc3BsYXNoICYmIHBheWxvYWQuZ3VpbGQuc3BsYXNoKSBndWlsZC5zcGxhc2ggPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuc3BsYXNoKVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5ndWlsZC5pZCkgZ3VpbGQuaWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy5vd25lcklkICYmIHBheWxvYWQuZ3VpbGQub3duZXJfaWQpIGd1aWxkLm93bmVySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLm93bmVyX2lkKVxuICBpZiAocHJvcHMucGVybWlzc2lvbnMgJiYgcGF5bG9hZC5ndWlsZC5wZXJtaXNzaW9ucykgZ3VpbGQucGVybWlzc2lvbnMgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMuYWZrQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQuYWZrX2NoYW5uZWxfaWQpIGd1aWxkLmFma0NoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuYWZrX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy53aWRnZXRDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC53aWRnZXRfY2hhbm5lbF9pZCkgZ3VpbGQud2lkZ2V0Q2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC53aWRnZXRfY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5ndWlsZC5hcHBsaWNhdGlvbl9pZCkgZ3VpbGQuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5zeXN0ZW1DaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5zeXN0ZW1fY2hhbm5lbF9pZCkgZ3VpbGQuc3lzdGVtQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5zeXN0ZW1fY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLnJ1bGVzQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQucnVsZXNfY2hhbm5lbF9pZCkgZ3VpbGQucnVsZXNDaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnJ1bGVzX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5wdWJsaWNVcGRhdGVzQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQucHVibGljX3VwZGF0ZXNfY2hhbm5lbF9pZClcbiAgICBndWlsZC5wdWJsaWNVcGRhdGVzQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5wdWJsaWNfdXBkYXRlc19jaGFubmVsX2lkKVxuICBpZiAocHJvcHMucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCAmJiBwYXlsb2FkLmd1aWxkLnByZW1pdW1fcHJvZ3Jlc3NfYmFyX2VuYWJsZWQpXG4gICAgZ3VpbGQucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZFxuICBpZiAocHJvcHMubGFyZ2UgJiYgcGF5bG9hZC5ndWlsZC5sYXJnZSkgZ3VpbGQubGFyZ2UgPSBwYXlsb2FkLmd1aWxkLmxhcmdlXG4gIGlmIChwcm9wcy5vd25lciAmJiBwYXlsb2FkLmd1aWxkLm93bmVyKSBndWlsZC5vd25lciA9IHBheWxvYWQuZ3VpbGQub3duZXJcbiAgaWYgKHByb3BzLndpZGdldEVuYWJsZWQgJiYgcGF5bG9hZC5ndWlsZC53aWRnZXRfZW5hYmxlZCkgZ3VpbGQud2lkZ2V0RW5hYmxlZCA9IHBheWxvYWQuZ3VpbGQud2lkZ2V0X2VuYWJsZWRcbiAgaWYgKHByb3BzLnVuYXZhaWxhYmxlICYmIHBheWxvYWQuZ3VpbGQudW5hdmFpbGFibGUpIGd1aWxkLnVuYXZhaWxhYmxlID0gcGF5bG9hZC5ndWlsZC51bmF2YWlsYWJsZVxuICBpZiAocHJvcHMuaWNvbkhhc2ggJiYgcGF5bG9hZC5ndWlsZC5pY29uX2hhc2gpIGd1aWxkLmljb25IYXNoID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmd1aWxkLmljb25faGFzaClcbiAgaWYgKHByb3BzLnByZXNlbmNlcyAmJiBwYXlsb2FkLmd1aWxkLnByZXNlbmNlcylcbiAgICBndWlsZC5wcmVzZW5jZXMgPSBwYXlsb2FkLmd1aWxkLnByZXNlbmNlcz8ubWFwKChwcmVzZW5jZSkgPT4gYm90LnRyYW5zZm9ybWVycy5wcmVzZW5jZShib3QsIHByZXNlbmNlIGFzIERpc2NvcmRQcmVzZW5jZVVwZGF0ZSkpXG4gIGlmIChwcm9wcy5zYWZldHlBbGVydHNDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5zYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQpXG4gICAgZ3VpbGQuc2FmZXR5QWxlcnRzQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5zYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZ3VpbGQoYm90LCBwYXlsb2FkLmd1aWxkLCBndWlsZClcbn1cbiJdLCJuYW1lcyI6WyJiYXNlR3VpbGQiLCJ0cmFuc2Zvcm1HdWlsZCIsInVuZGVmaW5lZCIsInRocmVhZHMiLCJjaGFubmVscyIsIkNvbGxlY3Rpb24iLCJhcnJheSIsImZpbHRlciIsIngiLCJ0eXBlIiwiQ2hhbm5lbFR5cGVzIiwiUHVibGljVGhyZWFkIiwiUHJpdmF0ZVRocmVhZCIsIkFubm91bmNlbWVudFRocmVhZCIsIm1hcCIsImlkIiwiZmVhdHVyZXMiLCJ0b2dnbGVzIiwiYm90IiwicGF5bG9hZCIsImd1aWxkSWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJndWlsZCIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJPYmplY3QiLCJjcmVhdGUiLCJhZmtUaW1lb3V0IiwiYWZrX3RpbWVvdXQiLCJhcHByb3hpbWF0ZU1lbWJlckNvdW50IiwiYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50IiwiYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50IiwiYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnQiLCJkZWZhdWx0TWVzc2FnZU5vdGlmaWNhdGlvbnMiLCJkZWZhdWx0X21lc3NhZ2Vfbm90aWZpY2F0aW9ucyIsImRlc2NyaXB0aW9uIiwiR3VpbGRUb2dnbGVzIiwiZXhwbGljaXRDb250ZW50RmlsdGVyIiwiZXhwbGljaXRfY29udGVudF9maWx0ZXIiLCJtYXhNZW1iZXJzIiwibWF4X21lbWJlcnMiLCJtYXhQcmVzZW5jZXMiLCJtYXhfcHJlc2VuY2VzIiwibWF4VmlkZW9DaGFubmVsVXNlcnMiLCJtYXhfdmlkZW9fY2hhbm5lbF91c2VycyIsIm1heFN0YWdlVmlkZW9DaGFubmVsVXNlcnMiLCJtYXhfc3RhZ2VfdmlkZW9fY2hhbm5lbF91c2VycyIsIm1mYUxldmVsIiwibWZhX2xldmVsIiwibmFtZSIsIm5zZndMZXZlbCIsIm5zZndfbGV2ZWwiLCJwcmVmZXJyZWRMb2NhbGUiLCJwcmVmZXJyZWRfbG9jYWxlIiwicHJlbWl1bVN1YnNjcmlwdGlvbkNvdW50IiwicHJlbWl1bV9zdWJzY3JpcHRpb25fY291bnQiLCJwcmVtaXVtVGllciIsInByZW1pdW1fdGllciIsInN0YWdlSW5zdGFuY2VzIiwic3RhZ2VfaW5zdGFuY2VzIiwic2kiLCJjaGFubmVsSWQiLCJjaGFubmVsX2lkIiwidG9waWMiLCJjaGFubmVsIiwicmVzdWx0IiwibWVtYmVycyIsIm1lbWJlciIsInVzZXIiLCJyb2xlcyIsInJvbGUiLCJlbW9qaXMiLCJlbW9qaSIsInZvaWNlU3RhdGVzIiwidm9pY2Vfc3RhdGVzIiwidm9pY2VTdGF0ZSIsInVzZXJJZCIsInN0aWNrZXJzIiwic3RpY2tlciIsInN5c3RlbUNoYW5uZWxGbGFncyIsInN5c3RlbV9jaGFubmVsX2ZsYWdzIiwidmFuaXR5VXJsQ29kZSIsInZhbml0eV91cmxfY29kZSIsInZlcmlmaWNhdGlvbkxldmVsIiwidmVyaWZpY2F0aW9uX2xldmVsIiwid2VsY29tZVNjcmVlbiIsIndlbGNvbWVfc2NyZWVuIiwid2VsY29tZUNoYW5uZWxzIiwid2VsY29tZV9jaGFubmVscyIsIndjIiwiZW1vamlJZCIsImVtb2ppX2lkIiwiZW1vamlOYW1lIiwiZW1vamlfbmFtZSIsImRpc2NvdmVyeVNwbGFzaCIsImRpc2NvdmVyeV9zcGxhc2giLCJpY29uSGFzaFRvQmlnSW50Iiwiam9pbmVkQXQiLCJqb2luZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJtZW1iZXJDb3VudCIsIm1lbWJlcl9jb3VudCIsInNoYXJkSWQiLCJpY29uIiwiYmFubmVyIiwic3BsYXNoIiwib3duZXJJZCIsIm93bmVyX2lkIiwicGVybWlzc2lvbnMiLCJhZmtDaGFubmVsSWQiLCJhZmtfY2hhbm5lbF9pZCIsIndpZGdldENoYW5uZWxJZCIsIndpZGdldF9jaGFubmVsX2lkIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwic3lzdGVtQ2hhbm5lbElkIiwic3lzdGVtX2NoYW5uZWxfaWQiLCJydWxlc0NoYW5uZWxJZCIsInJ1bGVzX2NoYW5uZWxfaWQiLCJwdWJsaWNVcGRhdGVzQ2hhbm5lbElkIiwicHVibGljX3VwZGF0ZXNfY2hhbm5lbF9pZCIsInByZW1pdW1Qcm9ncmVzc0JhckVuYWJsZWQiLCJwcmVtaXVtX3Byb2dyZXNzX2Jhcl9lbmFibGVkIiwibGFyZ2UiLCJvd25lciIsIndpZGdldEVuYWJsZWQiLCJ3aWRnZXRfZW5hYmxlZCIsInVuYXZhaWxhYmxlIiwiaWNvbkhhc2giLCJpY29uX2hhc2giLCJwcmVzZW5jZXMiLCJwcmVzZW5jZSIsInNhZmV0eUFsZXJ0c0NoYW5uZWxJZCIsInNhZmV0eV9hbGVydHNfY2hhbm5lbF9pZCIsImN1c3RvbWl6ZXJzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUthQSxTQUFTO2VBQVRBOztJQWtCR0MsY0FBYztlQUFkQTs7O3VCQXZCNEQ7dUJBQy9CO3VCQUVoQjtBQUV0QixNQUFNRCxZQUFvRTtJQUMvRSwyRUFBMkU7SUFDM0UsR0FBSUUsU0FBUztJQUViLElBQUlDLFdBQVU7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDQyxRQUFRLEVBQUUsT0FBTyxJQUFJQyxpQkFBVTtRQUV6QyxNQUFNRixVQUFVLElBQUksQ0FBQ0MsUUFBUSxDQUMxQkUsS0FBSyxHQUNMQyxNQUFNLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsSUFBSSxLQUFLQyxtQkFBWSxDQUFDQyxZQUFZLElBQUlILEVBQUVDLElBQUksS0FBS0MsbUJBQVksQ0FBQ0UsYUFBYSxJQUFJSixFQUFFQyxJQUFJLEtBQUtDLG1C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
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZ3VpbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbm5lbFR5cGVzLCB0eXBlIERpc2NvcmRHdWlsZCwgdHlwZSBEaXNjb3JkUHJlc2VuY2VVcGRhdGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENvbGxlY3Rpb24sIGljb25IYXNoVG9CaWdJbnQgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB0eXBlIHsgQ2hhbm5lbCwgR3VpbGQsIEludGVybmFsQm90IH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBHdWlsZFRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvZ3VpbGQuanMnXG5cbmV4cG9ydCBjb25zdCBiYXNlR3VpbGQ6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZ3VpbGQnXSA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBJbnRlcm5hbEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2d1aWxkJ10pLFxuXG4gIGdldCB0aHJlYWRzKCkge1xuICAgIGlmICghdGhpcy5jaGFubmVscykgcmV0dXJuIG5ldyBDb2xsZWN0aW9uPGJpZ2ludCwgQ2hhbm5lbD4oKVxuXG4gICAgY29uc3QgdGhyZWFkcyA9IHRoaXMuY2hhbm5lbHNcbiAgICAgIC5hcnJheSgpXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4LnR5cGUgPT09IENoYW5uZWxUeXBlcy5QdWJsaWNUaHJlYWQgfHwgeC50eXBlID09PSBDaGFubmVsVHlwZXMuUHJpdmF0ZVRocmVhZCB8fCB4LnR5cGUgPT09IENoYW5uZWxUeXBlcy5Bbm5vdW5jZW1lbnRUaHJlYWQpXG5cbiAgICByZXR1cm4gbmV3IENvbGxlY3Rpb24odGhyZWFkcy5tYXAoKHgpID0+IFt4LmlkLCB4XSkpXG4gIH0sXG4gIGdldCBmZWF0dXJlcygpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzLmZlYXR1cmVzXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1HdWlsZChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiB7IGd1aWxkOiBEaXNjb3JkR3VpbGQ7IHNoYXJkSWQ6IG51bWJlciB9KTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZ3VpbGQge1xuICBjb25zdCBndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5pZClcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkXG4gIGNvbnN0IGd1aWxkOiBHdWlsZCA9IE9iamVjdC5jcmVhdGUoYmFzZUd1aWxkKVxuXG4gIGlmIChwcm9wcy5hZmtUaW1lb3V0ICYmIHBheWxvYWQuZ3VpbGQuYWZrX3RpbWVvdXQpIGd1aWxkLmFma1RpbWVvdXQgPSBwYXlsb2FkLmd1aWxkLmFma190aW1lb3V0XG4gIGlmIChwcm9wcy5hcHByb3hpbWF0ZU1lbWJlckNvdW50ICYmIHBheWxvYWQuZ3VpbGQuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50KSBndWlsZC5hcHByb3hpbWF0ZU1lbWJlckNvdW50ID0gcGF5bG9hZC5ndWlsZC5hcHByb3hpbWF0ZV9tZW1iZXJfY291bnRcbiAgaWYgKHByb3BzLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCAmJiBwYXlsb2FkLmd1aWxkLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50KVxuICAgIGd1aWxkLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCA9IHBheWxvYWQuZ3VpbGQuYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnRcbiAgaWYgKHByb3BzLmRlZmF1bHRNZXNzYWdlTm90aWZpY2F0aW9ucykgZ3VpbGQuZGVmYXVsdE1lc3NhZ2VOb3RpZmljYXRpb25zID0gcGF5bG9hZC5ndWlsZC5kZWZhdWx0X21lc3NhZ2Vfbm90aWZpY2F0aW9uc1xuICBpZiAocHJvcHMuZGVzY3JpcHRpb24gJiYgcGF5bG9hZC5ndWlsZC5kZXNjcmlwdGlvbikgZ3VpbGQuZGVzY3JpcHRpb24gPSBwYXlsb2FkLmd1aWxkLmRlc2NyaXB0aW9uXG4gIGlmIChwcm9wcy50b2dnbGVzKSBndWlsZC50b2dnbGVzID0gbmV3IEd1aWxkVG9nZ2xlcyhwYXlsb2FkLmd1aWxkKVxuICBpZiAocHJvcHMuZXhwbGljaXRDb250ZW50RmlsdGVyKSBndWlsZC5leHBsaWNpdENvbnRlbnRGaWx0ZXIgPSBwYXlsb2FkLmd1aWxkLmV4cGxpY2l0X2NvbnRlbnRfZmlsdGVyXG4gIGlmIChwcm9wcy5tYXhNZW1iZXJzICYmIHBheWxvYWQuZ3VpbGQubWF4X21lbWJlcnMpIGd1aWxkLm1heE1lbWJlcnMgPSBwYXlsb2FkLmd1aWxkLm1heF9tZW1iZXJzXG4gIGlmIChwcm9wcy5tYXhQcmVzZW5jZXMgJiYgcGF5bG9hZC5ndWlsZC5tYXhfcHJlc2VuY2VzKSBndWlsZC5tYXhQcmVzZW5jZXMgPSBwYXlsb2FkLmd1aWxkLm1heF9wcmVzZW5jZXMgPz8gdW5kZWZpbmVkXG4gIGlmIChwcm9wcy5tYXhWaWRlb0NoYW5uZWxVc2VycyAmJiBwYXlsb2FkLmd1aWxkLm1heF92aWRlb19jaGFubmVsX3VzZXJzKSBndWlsZC5tYXhWaWRlb0NoYW5uZWxVc2VycyA9IHBheWxvYWQuZ3VpbGQubWF4X3ZpZGVvX2NoYW5uZWxfdXNlcnNcbiAgaWYgKHByb3BzLm1heFN0YWdlVmlkZW9DaGFubmVsVXNlcnMgJiYgcGF5bG9hZC5ndWlsZC5tYXhfc3RhZ2VfdmlkZW9fY2hhbm5lbF91c2VycylcbiAgICBndWlsZC5tYXhTdGFnZVZpZGVvQ2hhbm5lbFVzZXJzID0gcGF5bG9hZC5ndWlsZC5tYXhfc3RhZ2VfdmlkZW9fY2hhbm5lbF91c2Vyc1xuICBpZiAocHJvcHMubWZhTGV2ZWwpIGd1aWxkLm1mYUxldmVsID0gcGF5bG9hZC5ndWlsZC5tZmFfbGV2ZWxcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5ndWlsZC5uYW1lKSBndWlsZC5uYW1lID0gcGF5bG9hZC5ndWlsZC5uYW1lXG4gIGlmIChwcm9wcy5uc2Z3TGV2ZWwpIGd1aWxkLm5zZndMZXZlbCA9IHBheWxvYWQuZ3VpbGQubnNmd19sZXZlbFxuICBpZiAocHJvcHMucHJlZmVycmVkTG9jYWxlICYmIHBheWxvYWQuZ3VpbGQucHJlZmVycmVkX2xvY2FsZSkgZ3VpbGQucHJlZmVycmVkTG9jYWxlID0gcGF5bG9hZC5ndWlsZC5wcmVmZXJyZWRfbG9jYWxlXG4gIGlmIChwcm9wcy5wcmVtaXVtU3Vic2NyaXB0aW9uQ291bnQgJiYgcGF5bG9hZC5ndWlsZC5wcmVtaXVtX3N1YnNjcmlwdGlvbl9jb3VudCAhPT0gdW5kZWZpbmVkKVxuICAgIGd1aWxkLnByZW1pdW1TdWJzY3JpcHRpb25Db3VudCA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV9zdWJzY3JpcHRpb25fY291bnRcbiAgaWYgKHByb3BzLnByZW1pdW1UaWVyKSBndWlsZC5wcmVtaXVtVGllciA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV90aWVyXG4gIGlmIChwcm9wcy5zdGFnZUluc3RhbmNlcyAmJiBwYXlsb2FkLmd1aWxkLnN0YWdlX2luc3RhbmNlcylcbiAgICBndWlsZC5zdGFnZUluc3RhbmNlcyA9IHBheWxvYWQuZ3VpbGQuc3RhZ2VfaW5zdGFuY2VzLm1hcCgoc2kpID0+ICh7XG4gICAgICAvKiogVGhlIGlkIG9mIHRoaXMgU3RhZ2UgaW5zdGFuY2UgKi9cbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShzaS5pZCksXG4gICAgICAvKiogVGhlIGd1aWxkIGlkIG9mIHRoZSBhc3NvY2lhdGVkIFN0YWdlIGNoYW5uZWwgKi9cbiAgICAgIGd1aWxkSWQsXG4gICAgICAvKiogVGhlIGlkIG9mIHRoZSBhc3NvY2lhdGVkIFN0YWdlIGNoYW5uZWwgKi9cbiAgICAgIGNoYW5uZWxJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoc2kuY2hhbm5lbF9pZCksXG4gICAgICAvKiogVGhlIHRvcGljIG9mIHRoZSBTdGFnZSBpbnN0YW5jZSAoMS0xMjAgY2hhcmFjdGVycykgKi9cbiAgICAgIHRvcGljOiBzaS50b3BpYyxcbiAgICB9KSlcbiAgaWYgKHByb3BzLmNoYW5uZWxzICYmICghIXBheWxvYWQuZ3VpbGQuY2hhbm5lbHMgfHwgISFwYXlsb2FkLmd1aWxkLnRocmVhZHMpKVxuICAgIGd1aWxkLmNoYW5uZWxzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBbLi4uKHBheWxvYWQuZ3VpbGQuY2hhbm5lbHMgPz8gW10pLCAuLi4ocGF5bG9hZC5ndWlsZC50aHJlYWRzID8/IFtdKV0ubWFwKChjaGFubmVsKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbCwgZ3VpbGRJZCB9KVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMubWVtYmVycyAmJiBwYXlsb2FkLmd1aWxkLm1lbWJlcnMpXG4gICAgZ3VpbGQubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5tZW1iZXJzLm1hcCgobWVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgbWVtYmVyLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtZW1iZXIudXNlciEuaWQpKVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMucm9sZXMgJiYgcGF5bG9hZC5ndWlsZC5yb2xlcylcbiAgICBndWlsZC5yb2xlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5yb2xlcy5tYXAoKHJvbGUpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pXG4gICAgICAgIHJldHVybiBbcmVzdWx0LmlkLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy5lbW9qaXMgJiYgcGF5bG9hZC5ndWlsZC5lbW9qaXMpXG4gICAgZ3VpbGQuZW1vamlzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBwYXlsb2FkLmd1aWxkLmVtb2ppcy5tYXAoKGVtb2ppKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBlbW9qaSlcbiAgICAgICAgcmV0dXJuIFtyZXN1bHQuaWQhLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy52b2ljZVN0YXRlcyAmJiBwYXlsb2FkLmd1aWxkLnZvaWNlX3N0YXRlcylcbiAgICBndWlsZC52b2ljZVN0YXRlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC52b2ljZV9zdGF0ZXMubWFwKCh2b2ljZVN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMudm9pY2VTdGF0ZShib3QsIHsgdm9pY2VTdGF0ZSwgZ3VpbGRJZCB9KVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC51c2VySWQsIHJlc3VsdF1cbiAgICAgIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLnN0aWNrZXJzICYmIHBheWxvYWQuZ3VpbGQuc3RpY2tlcnMpXG4gICAgZ3VpbGQuc3RpY2tlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIHBheWxvYWQuZ3VpbGQuc3RpY2tlcnM/Lm1hcCgoc3RpY2tlcikgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzdGlja2VyKVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMuc3lzdGVtQ2hhbm5lbEZsYWdzICYmIHBheWxvYWQuZ3VpbGQuc3lzdGVtX2NoYW5uZWxfZmxhZ3MpIGd1aWxkLnN5c3RlbUNoYW5uZWxGbGFncyA9IHBheWxvYWQuZ3VpbGQuc3lzdGVtX2NoYW5uZWxfZmxhZ3NcbiAgaWYgKHByb3BzLnZhbml0eVVybENvZGUgJiYgcGF5bG9hZC5ndWlsZC52YW5pdHlfdXJsX2NvZGUpIGd1aWxkLnZhbml0eVVybENvZGUgPSBwYXlsb2FkLmd1aWxkLnZhbml0eV91cmxfY29kZVxuICBpZiAocHJvcHMudmVyaWZpY2F0aW9uTGV2ZWwpIGd1aWxkLnZlcmlmaWNhdGlvbkxldmVsID0gcGF5bG9hZC5ndWlsZC52ZXJpZmljYXRpb25fbGV2ZWxcbiAgaWYgKHByb3BzLndlbGNvbWVTY3JlZW4gJiYgcGF5bG9hZC5ndWlsZC53ZWxjb21lX3NjcmVlbilcbiAgICBndWlsZC53ZWxjb21lU2NyZWVuID0ge1xuICAgICAgZGVzY3JpcHRpb246IHBheWxvYWQuZ3VpbGQud2VsY29tZV9zY3JlZW4uZGVzY3JpcHRpb24gPz8gdW5kZWZpbmVkLFxuICAgICAgd2VsY29tZUNoYW5uZWxzOiBwYXlsb2FkLmd1aWxkLndlbGNvbWVfc2NyZWVuLndlbGNvbWVfY2hhbm5lbHMubWFwKCh3YykgPT4gKHtcbiAgICAgICAgY2hhbm5lbElkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh3Yy5jaGFubmVsX2lkKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHdjLmRlc2NyaXB0aW9uLFxuICAgICAgICBlbW9qaUlkOiB3Yy5lbW9qaV9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHdjLmVtb2ppX2lkKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZW1vamlOYW1lOiB3Yy5lbW9qaV9uYW1lID8/IHVuZGVmaW5lZCxcbiAgICAgIH0pKSxcbiAgICB9XG4gIGlmIChwcm9wcy5kaXNjb3ZlcnlTcGxhc2ggJiYgcGF5bG9hZC5ndWlsZC5kaXNjb3Zlcnlfc3BsYXNoKSBndWlsZC5kaXNjb3ZlcnlTcGxhc2ggPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuZGlzY292ZXJ5X3NwbGFzaClcbiAgaWYgKHByb3BzLmpvaW5lZEF0ICYmIHBheWxvYWQuZ3VpbGQuam9pbmVkX2F0KSBndWlsZC5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5ndWlsZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5tZW1iZXJDb3VudCAmJiBwYXlsb2FkLmd1aWxkLm1lbWJlcl9jb3VudCkgZ3VpbGQubWVtYmVyQ291bnQgPSBwYXlsb2FkLmd1aWxkLm1lbWJlcl9jb3VudCA/PyAwXG4gIGlmIChwcm9wcy5zaGFyZElkKSBndWlsZC5zaGFyZElkID0gcGF5bG9hZC5zaGFyZElkXG4gIGlmIChwcm9wcy5pY29uICYmIHBheWxvYWQuZ3VpbGQuaWNvbikgZ3VpbGQuaWNvbiA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5ndWlsZC5pY29uKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuZ3VpbGQuYmFubmVyKSBndWlsZC5iYW5uZXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuYmFubmVyKVxuICBpZiAocHJvcHMuc3BsYXNoICYmIHBheWxvYWQuZ3VpbGQuc3BsYXNoKSBndWlsZC5zcGxhc2ggPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuc3BsYXNoKVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5ndWlsZC5pZCkgZ3VpbGQuaWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy5vd25lcklkICYmIHBheWxvYWQuZ3VpbGQub3duZXJfaWQpIGd1aWxkLm93bmVySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLm93bmVyX2lkKVxuICBpZiAocHJvcHMucGVybWlzc2lvbnMgJiYgcGF5bG9hZC5ndWlsZC5wZXJtaXNzaW9ucykgZ3VpbGQucGVybWlzc2lvbnMgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMuYWZrQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQuYWZrX2NoYW5uZWxfaWQpIGd1aWxkLmFma0NoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuYWZrX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy53aWRnZXRDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC53aWRnZXRfY2hhbm5lbF9pZCkgZ3VpbGQud2lkZ2V0Q2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC53aWRnZXRfY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5ndWlsZC5hcHBsaWNhdGlvbl9pZCkgZ3VpbGQuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5zeXN0ZW1DaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5zeXN0ZW1fY2hhbm5lbF9pZCkgZ3VpbGQuc3lzdGVtQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5zeXN0ZW1fY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLnJ1bGVzQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQucnVsZXNfY2hhbm5lbF9pZCkgZ3VpbGQucnVsZXNDaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnJ1bGVzX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5wdWJsaWNVcGRhdGVzQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQucHVibGljX3VwZGF0ZXNfY2hhbm5lbF9pZClcbiAgICBndWlsZC5wdWJsaWNVcGRhdGVzQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5wdWJsaWNfdXBkYXRlc19jaGFubmVsX2lkKVxuICBpZiAocHJvcHMucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCAmJiBwYXlsb2FkLmd1aWxkLnByZW1pdW1fcHJvZ3Jlc3NfYmFyX2VuYWJsZWQpXG4gICAgZ3VpbGQucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZFxuICBpZiAocHJvcHMubGFyZ2UgJiYgcGF5bG9hZC5ndWlsZC5sYXJnZSkgZ3VpbGQubGFyZ2UgPSBwYXlsb2FkLmd1aWxkLmxhcmdlXG4gIGlmIChwcm9wcy5vd25lciAmJiBwYXlsb2FkLmd1aWxkLm93bmVyKSBndWlsZC5vd25lciA9IHBheWxvYWQuZ3VpbGQub3duZXJcbiAgaWYgKHByb3BzLndpZGdldEVuYWJsZWQgJiYgcGF5bG9hZC5ndWlsZC53aWRnZXRfZW5hYmxlZCkgZ3VpbGQud2lkZ2V0RW5hYmxlZCA9IHBheWxvYWQuZ3VpbGQud2lkZ2V0X2VuYWJsZWRcbiAgaWYgKHByb3BzLnVuYXZhaWxhYmxlICYmIHBheWxvYWQuZ3VpbGQudW5hdmFpbGFibGUpIGd1aWxkLnVuYXZhaWxhYmxlID0gcGF5bG9hZC5ndWlsZC51bmF2YWlsYWJsZVxuICBpZiAocHJvcHMuaWNvbkhhc2ggJiYgcGF5bG9hZC5ndWlsZC5pY29uX2hhc2gpIGd1aWxkLmljb25IYXNoID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmd1aWxkLmljb25faGFzaClcbiAgaWYgKHByb3BzLnByZXNlbmNlcyAmJiBwYXlsb2FkLmd1aWxkLnByZXNlbmNlcylcbiAgICBndWlsZC5wcmVzZW5jZXMgPSBwYXlsb2FkLmd1aWxkLnByZXNlbmNlcz8ubWFwKChwcmVzZW5jZSkgPT4gYm90LnRyYW5zZm9ybWVycy5wcmVzZW5jZShib3QsIHByZXNlbmNlIGFzIERpc2NvcmRQcmVzZW5jZVVwZGF0ZSkpXG4gIGlmIChwcm9wcy5zYWZldHlBbGVydHNDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5zYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQpXG4gICAgZ3VpbGQuc2FmZXR5QWxlcnRzQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5zYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5pbmNpZGVudHNEYXRhICYmIHBheWxvYWQuZ3VpbGQuaW5jaWRlbnRzX2RhdGEpIGd1aWxkLmluY2lkZW50c0RhdGEgPSBib3QudHJhbnNmb3JtZXJzLmluY2lkZW50c0RhdGEoYm90LCBwYXlsb2FkLmd1aWxkLmluY2lkZW50c19kYXRhKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmd1aWxkKGJvdCwgcGF5bG9hZC5ndWlsZCwgZ3VpbGQpXG59XG4iXSwibmFtZXMiOlsiYmFzZUd1aWxkIiwidHJhbnNmb3JtR3VpbGQiLCJ1bmRlZmluZWQiLCJ0aHJlYWRzIiwiY2hhbm5lbHMiLCJDb2xsZWN0aW9uIiwiYXJyYXkiLCJmaWx0ZXIiLCJ4IiwidHlwZSIsIkNoYW5uZWxUeXBlcyIsIlB1YmxpY1RocmVhZCIsIlByaXZhdGVUaHJlYWQiLCJBbm5vdW5jZW1lbnRUaHJlYWQiLCJtYXAiLCJpZCIsImZlYXR1cmVzIiwidG9nZ2xlcyIsImJvdCIsInBheWxvYWQiLCJndWlsZElkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwiZ3VpbGQiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiT2JqZWN0IiwiY3JlYXRlIiwiYWZrVGltZW91dCIsImFma190aW1lb3V0IiwiYXBwcm94aW1hdGVNZW1iZXJDb3VudCIsImFwcHJveGltYXRlX21lbWJlcl9jb3VudCIsImFwcHJveGltYXRlUHJlc2VuY2VDb3VudCIsImFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50IiwiZGVmYXVsdE1lc3NhZ2VOb3RpZmljYXRpb25zIiwiZGVmYXVsdF9tZXNzYWdlX25vdGlmaWNhdGlvbnMiLCJkZXNjcmlwdGlvbiIsIkd1aWxkVG9nZ2xlcyIsImV4cGxpY2l0Q29udGVudEZpbHRlciIsImV4cGxpY2l0X2NvbnRlbnRfZmlsdGVyIiwibWF4TWVtYmVycyIsIm1heF9tZW1iZXJzIiwibWF4UHJlc2VuY2VzIiwibWF4X3ByZXNlbmNlcyIsIm1heFZpZGVvQ2hhbm5lbFVzZXJzIiwibWF4X3ZpZGVvX2NoYW5uZWxfdXNlcnMiLCJtYXhTdGFnZVZpZGVvQ2hhbm5lbFVzZXJzIiwibWF4X3N0YWdlX3ZpZGVvX2NoYW5uZWxfdXNlcnMiLCJtZmFMZXZlbCIsIm1mYV9sZXZlbCIsIm5hbWUiLCJuc2Z3TGV2ZWwiLCJuc2Z3X2xldmVsIiwicHJlZmVycmVkTG9jYWxlIiwicHJlZmVycmVkX2xvY2FsZSIsInByZW1pdW1TdWJzY3JpcHRpb25Db3VudCIsInByZW1pdW1fc3Vic2NyaXB0aW9uX2NvdW50IiwicHJlbWl1bVRpZXIiLCJwcmVtaXVtX3RpZXIiLCJzdGFnZUluc3RhbmNlcyIsInN0YWdlX2luc3RhbmNlcyIsInNpIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsInRvcGljIiwiY2hhbm5lbCIsInJlc3VsdCIsIm1lbWJlcnMiLCJtZW1iZXIiLCJ1c2VyIiwicm9sZXMiLCJyb2xlIiwiZW1vamlzIiwiZW1vamkiLCJ2b2ljZVN0YXRlcyIsInZvaWNlX3N0YXRlcyIsInZvaWNlU3RhdGUiLCJ1c2VySWQiLCJzdGlja2VycyIsInN0aWNrZXIiLCJzeXN0ZW1DaGFubmVsRmxhZ3MiLCJzeXN0ZW1fY2hhbm5lbF9mbGFncyIsInZhbml0eVVybENvZGUiLCJ2YW5pdHlfdXJsX2NvZGUiLCJ2ZXJpZmljYXRpb25MZXZlbCIsInZlcmlmaWNhdGlvbl9sZXZlbCIsIndlbGNvbWVTY3JlZW4iLCJ3ZWxjb21lX3NjcmVlbiIsIndlbGNvbWVDaGFubmVscyIsIndlbGNvbWVfY2hhbm5lbHMiLCJ3YyIsImVtb2ppSWQiLCJlbW9qaV9pZCIsImVtb2ppTmFtZSIsImVtb2ppX25hbWUiLCJkaXNjb3ZlcnlTcGxhc2giLCJkaXNjb3Zlcnlfc3BsYXNoIiwiaWNvbkhhc2hUb0JpZ0ludCIsImpvaW5lZEF0Iiwiam9pbmVkX2F0IiwiRGF0ZSIsInBhcnNlIiwibWVtYmVyQ291bnQiLCJtZW1iZXJfY291bnQiLCJzaGFyZElkIiwiaWNvbiIsImJhbm5lciIsInNwbGFzaCIsIm93bmVySWQiLCJvd25lcl9pZCIsInBlcm1pc3Npb25zIiwiYWZrQ2hhbm5lbElkIiwiYWZrX2NoYW5uZWxfaWQiLCJ3aWRnZXRDaGFubmVsSWQiLCJ3aWRnZXRfY2hhbm5lbF9pZCIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsInN5c3RlbUNoYW5uZWxJZCIsInN5c3RlbV9jaGFubmVsX2lkIiwicnVsZXNDaGFubmVsSWQiLCJydWxlc19jaGFubmVsX2lkIiwicHVibGljVXBkYXRlc0NoYW5uZWxJZCIsInB1YmxpY191cGRhdGVzX2NoYW5uZWxfaWQiLCJwcmVtaXVtUHJvZ3Jlc3NCYXJFbmFibGVkIiwicHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZCIsImxhcmdlIiwib3duZXIiLCJ3aWRnZXRFbmFibGVkIiwid2lkZ2V0X2VuYWJsZWQiLCJ1bmF2YWlsYWJsZSIsImljb25IYXNoIiwiaWNvbl9oYXNoIiwicHJlc2VuY2VzIiwicHJlc2VuY2UiLCJzYWZldHlBbGVydHNDaGFubmVsSWQiLCJzYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQiLCJpbmNpZGVudHNEYXRhIiwiaW5jaWRlbnRzX2RhdGEiLCJjdXN0b21pemVycyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7UUFLYUE7ZUFBQUE7O1FBa0JHQztlQUFBQTs7O3VCQXZCNEQ7dUJBQy9CO3VCQUVoQjtBQUV0QixNQUFNRCxZQUFvRTtJQUMvRSwyRUFBMkU7SUFDM0UsR0FBSUUsU0FBUztJQUViLElBQUlDLFdBQVU7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDQyxRQUFRLEVBQUUsT0FBTyxJQUFJQyxpQkFBVTtR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