@projectcor/maia-components 2.11.11-1 → 2.11.11-3

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 (59) hide show
  1. package/lib/components/atoms/Chip/Chip.js +3 -4
  2. package/lib/components/atoms/Chip/styles.js +2 -2
  3. package/lib/components/atoms/ErrorSearchProjects/ErrorSearchProjects.js +3 -5
  4. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.js +33 -36
  5. package/lib/components/atoms/FrequentlyAskedQuestions/FrequentlyAskedQuestions.styles.js +7 -67
  6. package/lib/components/atoms/MAIAInput/MAIAInput.js +18 -363
  7. package/lib/components/atoms/MAIAInput/styles.js +33 -99
  8. package/lib/components/atoms/ProjectSelector/ProjectSelector.js +193 -56
  9. package/lib/components/index.js +1 -2
  10. package/lib/components/molecules/ChatAIContent/ChatAIContent.js +1 -9
  11. package/lib/components/molecules/ChatAIHome/ChatAIHome.js +3 -2
  12. package/lib/components/molecules/ChatAIMessages/ChatAIMessages.js +2 -2
  13. package/lib/components/molecules/ChatAIModal/ChatAIModal.js +6 -18
  14. package/lib/components/molecules/ChatAIModal/components/ChatAiModalHeader/ChatAiModalHeader.js +3 -5
  15. package/lib/components/molecules/ChatAIModal/constants.js +2 -6
  16. package/lib/components/molecules/ChatFooter/ChatFooter.js +10 -12
  17. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.js +21 -4
  18. package/lib/components/molecules/ChatFooter/ChatFooterFaqs.styles.js +2 -2
  19. package/lib/components/organisms/ChatAI/ChatAI.js +3 -11
  20. package/lib/constants/config.js +2 -3
  21. package/lib/context/global-context.js +1 -1
  22. package/lib/hooks/useChatManager/useChatManager.js +19 -49
  23. package/lib/hooks/useChatMessages/useChatMessages.js +38 -72
  24. package/lib/hooks/useFrequentlyAskedQuestions.js +1 -1
  25. package/lib/hooks/useOrchestratorStream/useOrchestratorStream.js +4 -6
  26. package/lib/hooks/useProjectSummaryConfig.js +7 -35
  27. package/lib/lang/br/index.js +5 -35
  28. package/lib/lang/en/index.js +5 -35
  29. package/lib/lang/es/index.js +5 -35
  30. package/lib/lang/fr/index.js +2 -21
  31. package/lib/services/maia/Agents/getAgents.js +4 -6
  32. package/lib/services/maia/Chats/getChatMessages.js +14 -27
  33. package/lib/services/maia/Chats/getChatsByUserId.js +1 -1
  34. package/lib/services/maia/Orchestrator/orchestrator.js +4 -6
  35. package/lib/services/maia/index.js +2 -4
  36. package/lib/services/utils/mapChatMessages.js +4 -12
  37. package/lib/store/chatsStore.types.js +1 -1
  38. package/lib/types/Chat.js +1 -1
  39. package/lib/types/agent.js +1 -1
  40. package/package.json +1 -1
  41. package/lib/components/atoms/ChatClientSelector/ChatClientSelector.js +0 -69
  42. package/lib/components/atoms/ChatClientSelector/index.js +0 -2
  43. package/lib/components/atoms/EntitySelector/EntitySelector.js +0 -181
  44. package/lib/components/atoms/EntitySelector/EntitySelector.styles.js +0 -57
  45. package/lib/components/atoms/EntitySelector/index.js +0 -2
  46. package/lib/components/molecules/ChatAIClientSelector/ChatAIClientSelector.js +0 -56
  47. package/lib/components/molecules/ChatAIClientSelector/index.js +0 -2
  48. package/lib/components/organisms/ClientAIButton/ClientAIButton.js +0 -26
  49. package/lib/components/organisms/ClientAIButton/index.js +0 -2
  50. package/lib/hooks/useFrequentlyUsedActions.js +0 -73
  51. package/lib/hooks/useRecentClientsSearch.js +0 -176
  52. package/lib/services/cor/getProjectTasks.js +0 -71
  53. package/lib/services/maia/FrequentlyUsedActions/getFrequentlyUsedActions.js +0 -48
  54. package/lib/services/maia/FrequentlyUsedActions/index.js +0 -5
  55. package/lib/services/maia/RecentClients/getRecentClients.js +0 -43
  56. package/lib/services/maia/RecentClients/index.js +0 -6
  57. package/lib/services/query/getTaskFamilyProjectsQuery.js +0 -5
  58. package/lib/types/Client.js +0 -2
  59. package/lib/types/FrequentlyUsedAction.js +0 -2
@@ -9,7 +9,7 @@ var customInputStyles = css(["outline:none;background:linear-gradient(white,whit
9
9
  export var StyledMAIAInputWrapper = styled.div.withConfig({
10
10
  displayName: "styles__StyledMAIAInputWrapper",
11
11
  componentId: "sc-cs6u9w-0"
12
- })(["position:relative;box-sizing:border-box;width:100%;border-radius:8px;border:1px solid ", ";transition:border-color 0.2s ease;padding:12px;cursor:", ";display:flex;min-height:86px;gap:", ";flex-direction:column;&:focus-within{", "}", ""], colors.text.disabled, function (_ref) {
12
+ })(["box-sizing:border-box;width:100%;border-radius:8px;border:1px solid ", ";transition:border-color 0.2s ease;padding:12px;cursor:", ";display:flex;min-height:86px;gap:", ";flex-direction:column;&:focus-within{", "}", ""], colors.text.disabled, function (_ref) {
13
13
  var disabled = _ref.disabled;
14
14
  return disabled ? 'not-allowed' : 'auto';
15
15
  }, function (_ref2) {
@@ -30,98 +30,32 @@ export var StyledMAIAInput = styled.textarea.withConfig({
30
30
  displayName: "styles__StyledMAIAInput",
31
31
  componentId: "sc-cs6u9w-2"
32
32
  })(["", " width:100%;font-size:14px;padding:0;resize:none;position:relative;background:transparent;border:none;outline:none;min-height:22.1px;max-height:122.1px;&:disabled{cursor:not-allowed;}&:focus{outline:none;}&::placeholder{color:", ";}"], scrollableStyles, colors.text.secondary);
33
- export var SCMIContextDropdown = styled.div.withConfig({
34
- displayName: "styles__SCMIContextDropdown",
35
- componentId: "sc-cs6u9w-3"
36
- })(["position:absolute;left:0;right:0;bottom:calc(100% + 8px);display:flex;flex-direction:", ";gap:", ";padding:8px;border-radius:12px;border:1px solid #d9d9d9;background:#fff;box-shadow:0 10px 30px rgba(32,32,31,0.12);z-index:3;height:280px;align-items:stretch;"], function (_ref5) {
37
- var $hasSubgroup = _ref5.$hasSubgroup;
38
- return $hasSubgroup ? 'row' : 'column';
39
- }, function (_ref6) {
40
- var $hasSubgroup = _ref6.$hasSubgroup;
41
- return $hasSubgroup ? '0' : '4px';
42
- });
43
- export var SCMIContextMainList = styled.div.withConfig({
44
- displayName: "styles__SCMIContextMainList",
45
- componentId: "sc-cs6u9w-4"
46
- })(["display:flex;flex-direction:column;gap:4px;flex:1;min-width:0;overflow-y:auto;&::-webkit-scrollbar{width:4px;}&::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:4px;}"]);
47
- export var SCMISubContextDropdown = styled.div.withConfig({
48
- displayName: "styles__SCMISubContextDropdown",
49
- componentId: "sc-cs6u9w-5"
50
- })(["display:flex;flex-direction:column;gap:2px;flex:1;min-width:0;overflow-y:auto;padding-left:8px;margin-left:8px;border-left:1px solid #e8e8e8;&::-webkit-scrollbar{width:4px;}&::-webkit-scrollbar-thumb{background:#d9d9d9;border-radius:4px;}"]);
51
- export var SCMISubContextSearch = styled.input.withConfig({
52
- displayName: "styles__SCMISubContextSearch",
53
- componentId: "sc-cs6u9w-6"
54
- })(["position:sticky;top:0;z-index:1;width:100%;box-sizing:border-box;padding:5px 8px;margin-bottom:4px;border:1px solid #e8e8e8;border-radius:6px;font-size:11px;outline:none;background:#f5f5f5;color:#20201f;flex-shrink:0;&::placeholder{color:#bbb;}&:focus{border-color:#c9a0e8;background:#fff;}"]);
55
- export var SCMISubContextLoader = styled.div.withConfig({
56
- displayName: "styles__SCMISubContextLoader",
57
- componentId: "sc-cs6u9w-7"
58
- })(["color:#999;font-size:11px;padding:8px 4px;text-align:center;"]);
59
- export var SCMIContextDropdownTitle = styled.div.withConfig({
60
- displayName: "styles__SCMIContextDropdownTitle",
61
- componentId: "sc-cs6u9w-8"
62
- })(["color:#666;font-size:11px;font-weight:400;line-height:140%;letter-spacing:-0.11px;padding:2px 4px 6px;"]);
63
- export var SCMIContextGroupLabel = styled.div.withConfig({
64
- displayName: "styles__SCMIContextGroupLabel",
65
- componentId: "sc-cs6u9w-9"
66
- })(["color:#999;font-size:10px;font-weight:500;line-height:120%;letter-spacing:-0.1px;text-transform:uppercase;padding:0 4px 6px;"]);
67
- export var SCMIContextOption = styled.button.withConfig({
68
- displayName: "styles__SCMIContextOption",
69
- componentId: "sc-cs6u9w-10"
70
- })(["display:flex;width:100%;flex-direction:column;gap:2px;padding:10px 12px;border:0;border-radius:8px;background:transparent;text-align:left;cursor:pointer;&:hover{background:#f7f0fc;}"]);
71
- export var SCMIContextOptionTitle = styled.span.withConfig({
72
- displayName: "styles__SCMIContextOptionTitle",
73
- componentId: "sc-cs6u9w-11"
74
- })(["color:#20201f;font-size:12px;font-weight:500;line-height:140%;"]);
75
- export var SCMIContextOptionSubtitle = styled.span.withConfig({
76
- displayName: "styles__SCMIContextOptionSubtitle",
77
- componentId: "sc-cs6u9w-12"
78
- })(["color:#666;font-size:11px;font-weight:400;line-height:140%;"]);
79
- export var SCMISubContextOption = styled(SCMIContextOption).withConfig({
80
- displayName: "styles__SCMISubContextOption",
81
- componentId: "sc-cs6u9w-13"
82
- })(["padding:6px 8px;gap:1px;", "{font-size:11px;}", "{font-size:10px;}"], SCMIContextOptionTitle, SCMIContextOptionSubtitle);
83
- export var SCMIInlineContextPreview = styled.div.withConfig({
84
- displayName: "styles__SCMIInlineContextPreview",
85
- componentId: "sc-cs6u9w-14"
86
- })(["display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-height:24px;"]);
87
- export var SCMIInlineContextText = styled.span.withConfig({
88
- displayName: "styles__SCMIInlineContextText",
89
- componentId: "sc-cs6u9w-15"
90
- })(["color:#20201f;font-size:16px;font-weight:400;line-height:140%;letter-spacing:-0.16px;"]);
91
- export var SCMIInlineTaskLink = styled.a.withConfig({
92
- displayName: "styles__SCMIInlineTaskLink",
93
- componentId: "sc-cs6u9w-16"
94
- })(["text-decoration:none !important;color:#202020 !important;font-size:16px;font-weight:600 !important;position:relative;padding-left:24px;&:hover{text-decoration:underline !important;}&::before{content:'';position:absolute;left:0;top:0;width:20px;height:20px;background-image:url(\"data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10 18C11.125 18 12.125 17.4375 12.6875 16.5625C13.7188 16.7812 14.8438 16.4688 15.6562 15.6562C16.4375 14.875 16.75 13.75 16.5312 12.7188C17.4062 12.1562 18 11.1562 18 10C18 8.875 17.4062 7.875 16.5312 7.3125C16.75 6.28125 16.4375 5.15625 15.6562 4.34375C14.8438 3.5625 13.7188 3.25 12.6875 3.46875C12.125 2.59375 11.125 2 10 2C8.84375 2 7.84375 2.59375 7.28125 3.46875C6.25 3.25 5.125 3.5625 4.34375 4.34375C3.53125 5.15625 3.21875 6.28125 3.4375 7.3125C2.5625 7.875 2 8.875 2 10C2 11.1562 2.5625 12.1562 3.4375 12.7188C3.21875 13.75 3.53125 14.875 4.34375 15.6562C5.125 16.4688 6.25 16.7812 7.28125 16.5625C7.84375 17.4375 8.84375 18 10 18ZM8.0625 14.625C7.40625 14.9375 6.34375 15.5625 5.375 14.5938C4.375 13.5938 5.125 12.4688 5.375 11.9375C4.71875 11.6875 3.5 11.375 3.5 10C3.5 8.59375 4.8125 8.3125 5.375 8.09375C5.09375 7.46875 4.4375 6.375 5.40625 5.40625C6.40625 4.40625 7.53125 5.15625 8.0625 5.40625C8.3125 4.75 8.625 3.5 10 3.5C11.4062 3.5 11.6875 4.84375 11.9062 5.40625C12.5312 5.125 13.625 4.46875 14.5938 5.4375C15.5938 6.4375 14.8438 7.5625 14.5938 8.09375C15.25 8.34375 16.4688 8.65625 16.4688 10.0312C16.4688 11.4375 15.1562 11.7188 14.5938 11.9375C14.875 12.5625 15.5625 13.6562 14.5938 14.625C13.7188 15.5 12.8438 15.0625 11.9062 14.625C11.6562 15.2812 11.3438 16.5 10 16.5C8.5625 16.5 8.28125 15.1875 8.0625 14.625Z' fill='%238740BF'/%3E%3C/svg%3E\");background-size:contain;background-repeat:no-repeat;background-position:center;}"]);
95
- export var SCMIInlineContextClear = styled.button.withConfig({
96
- displayName: "styles__SCMIInlineContextClear",
97
- componentId: "sc-cs6u9w-17"
98
- })(["display:flex;align-items:center;justify-content:center;background:none;border:none;padding:2px 5px;cursor:pointer;color:#999;font-size:16px;line-height:1;border-radius:4px;flex-shrink:0;&:hover{color:#333;background:#f0f0f0;}"]);
99
33
  export var StyledMAIASendButton = styled(ClearButton).withConfig({
100
34
  displayName: "styles__StyledMAIASendButton",
101
- componentId: "sc-cs6u9w-18"
102
- })(["background-color:", ";height:30px;width:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color 0.2s ease;svg{transition:transform 0.2s ease;", "}&:hover{svg{transform:scale(1.05);}}&:active{transform:scale(0.9);svg{transition:transform 0.2s ease;g *{fill:rgba(135,64,191,1) !important;}}}transition:transform 0.2s ease;&:disabled{cursor:not-allowed;background-color:#f2f2f2 !important;", " &:hover{svg{transform:none;}}&:active{transform:none;}}"], function (_ref7) {
103
- var hasValues = _ref7.hasValues;
35
+ componentId: "sc-cs6u9w-3"
36
+ })(["background-color:", ";height:30px;width:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background-color 0.2s ease;svg{transition:transform 0.2s ease;", "}&:hover{svg{transform:scale(1.05);}}&:active{transform:scale(0.9);svg{transition:transform 0.2s ease;g *{fill:rgba(135,64,191,1) !important;}}}transition:transform 0.2s ease;&:disabled{cursor:not-allowed;background-color:#f2f2f2 !important;", " &:hover{svg{transform:none;}}&:active{transform:none;}}"], function (_ref5) {
37
+ var hasValues = _ref5.hasValues;
104
38
  return hasValues ? '#F7F0FC' : '#f2f2f2';
105
- }, function (_ref8) {
106
- var hasValues = _ref8.hasValues;
39
+ }, function (_ref6) {
40
+ var hasValues = _ref6.hasValues;
107
41
  return hasValues && css(["g *{fill:rgba(135,64,191,1) !important;}"]);
108
- }, function (_ref9) {
109
- var hasValues = _ref9.hasValues;
42
+ }, function (_ref7) {
43
+ var hasValues = _ref7.hasValues;
110
44
  return !hasValues && css(["svg *{fill:", " !important;}"], colors.text.disabled);
111
45
  });
112
46
  export var SCMIWrapperAttachments = styled.div.withConfig({
113
47
  displayName: "styles__SCMIWrapperAttachments",
114
- componentId: "sc-cs6u9w-19"
48
+ componentId: "sc-cs6u9w-4"
115
49
  })(["display:flex;gap:12px;align-items:center;"]);
116
50
  export var SCMIAttachmentDeleteIcon = styled.div.withConfig({
117
51
  displayName: "styles__SCMIAttachmentDeleteIcon",
118
- componentId: "sc-cs6u9w-20"
52
+ componentId: "sc-cs6u9w-5"
119
53
  })(["position:absolute;display:none;justify-content:center;align-items:center;top:0;right:0;padding:2px;border-radius:50%;&:hover{background-color:#e6e6e6;svg *:not(.no-fill){fill:#666666 !important;}}"]);
120
54
  export var SCMIAttachment = styled.div.withConfig({
121
55
  displayName: "styles__SCMIAttachment",
122
- componentId: "sc-cs6u9w-21"
123
- })(["display:flex;justify-content:center;align-items:center;border:1px solid rgba(191,191,191,1);border-radius:6px;cursor:pointer;position:relative;padding:13px;", " &:hover{", "{display:flex;}}"], function (_ref0) {
124
- var isImage = _ref0.isImage;
56
+ componentId: "sc-cs6u9w-6"
57
+ })(["display:flex;justify-content:center;align-items:center;border:1px solid rgba(191,191,191,1);border-radius:6px;cursor:pointer;position:relative;padding:13px;", " &:hover{", "{display:flex;}}"], function (_ref8) {
58
+ var isImage = _ref8.isImage;
125
59
  return isImage && css(["padding:0px !important;"]);
126
60
  }, SCMIAttachmentDeleteIcon);
127
61
  var baseButtonActionStyles = css(["width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all 0.2s ease;"]);
@@ -131,14 +65,14 @@ var getAttachmentBorderColor = function getAttachmentBorderColor(p) {
131
65
  };
132
66
  export var SCMIWrapperAttachmentButton = styled.div.withConfig({
133
67
  displayName: "styles__SCMIWrapperAttachmentButton",
134
- componentId: "sc-cs6u9w-22"
135
- })(["", " border:1px solid ", ";background-color:", ";cursor:", ";&:hover{background-color:rgba(247,240,252,1) !important;border:1px solid rgba(135,64,191,1) !important;svg *{fill:rgba(135,64,191,1) !important;}}"], baseButtonActionStyles, getAttachmentBorderColor, function (_ref1) {
136
- var hasAttachments = _ref1.hasAttachments,
137
- isMaximized = _ref1.isMaximized;
68
+ componentId: "sc-cs6u9w-7"
69
+ })(["", " border:1px solid ", ";background-color:", ";cursor:", ";&:hover{background-color:rgba(247,240,252,1) !important;border:1px solid rgba(135,64,191,1) !important;svg *{fill:rgba(135,64,191,1) !important;}}"], baseButtonActionStyles, getAttachmentBorderColor, function (_ref9) {
70
+ var hasAttachments = _ref9.hasAttachments,
71
+ isMaximized = _ref9.isMaximized;
138
72
  return !hasAttachments && !isMaximized ? '#ffffff' : 'rgba(247, 240, 252, 1)';
139
- }, function (_ref10) {
140
- var hasAttachments = _ref10.hasAttachments,
141
- isMaximized = _ref10.isMaximized;
73
+ }, function (_ref0) {
74
+ var hasAttachments = _ref0.hasAttachments,
75
+ isMaximized = _ref0.isMaximized;
142
76
  return hasAttachments || isMaximized ? 'default' : 'pointer';
143
77
  });
144
78
  var getWebSearchBorderColor = function getWebSearchBorderColor(p) {
@@ -147,12 +81,12 @@ var getWebSearchBorderColor = function getWebSearchBorderColor(p) {
147
81
  };
148
82
  export var SCMIWrapperWebSearchButton = styled.div.withConfig({
149
83
  displayName: "styles__SCMIWrapperWebSearchButton",
150
- componentId: "sc-cs6u9w-23"
151
- })(["", " border:1px solid ", ";background-color:", ";cursor:pointer;", ""], baseButtonActionStyles, getWebSearchBorderColor, function (_ref11) {
152
- var isActive = _ref11.isActive;
84
+ componentId: "sc-cs6u9w-8"
85
+ })(["", " border:1px solid ", ";background-color:", ";cursor:pointer;", ""], baseButtonActionStyles, getWebSearchBorderColor, function (_ref1) {
86
+ var isActive = _ref1.isActive;
153
87
  return !isActive ? '#ffffff' : 'rgba(247, 240, 252, 1)';
154
- }, function (_ref12) {
155
- var isActive = _ref12.isActive;
88
+ }, function (_ref10) {
89
+ var isActive = _ref10.isActive;
156
90
  return !isActive && css(["&:hover{background-color:rgba(247,240,252,1) !important;border:1px solid rgba(135,64,191,1) !important;svg *{fill:rgba(135,64,191,1) !important;}}"]);
157
91
  });
158
92
  var getDeepSearchBorderColor = function getDeepSearchBorderColor(p) {
@@ -161,20 +95,20 @@ var getDeepSearchBorderColor = function getDeepSearchBorderColor(p) {
161
95
  };
162
96
  export var SCMIWrapperDeepSearchButton = styled.div.withConfig({
163
97
  displayName: "styles__SCMIWrapperDeepSearchButton",
164
- componentId: "sc-cs6u9w-24"
165
- })(["", " border:1px solid ", ";background-color:", ";cursor:pointer;", ""], baseButtonActionStyles, getDeepSearchBorderColor, function (_ref13) {
166
- var isActive = _ref13.isActive;
98
+ componentId: "sc-cs6u9w-9"
99
+ })(["", " border:1px solid ", ";background-color:", ";cursor:pointer;", ""], baseButtonActionStyles, getDeepSearchBorderColor, function (_ref11) {
100
+ var isActive = _ref11.isActive;
167
101
  return !isActive ? '#ffffff' : 'rgba(247, 240, 252, 1)';
168
- }, function (_ref14) {
169
- var isActive = _ref14.isActive;
102
+ }, function (_ref12) {
103
+ var isActive = _ref12.isActive;
170
104
  return !isActive && css(["&:hover{background-color:rgba(247,240,252,1) !important;border:1px solid rgba(135,64,191,1) !important;svg *{stroke:rgba(135,64,191,1) !important;}}"]);
171
105
  });
172
106
  export var StyledMAIAStopIcon = styled.div.withConfig({
173
107
  displayName: "styles__StyledMAIAStopIcon",
174
- componentId: "sc-cs6u9w-25"
108
+ componentId: "sc-cs6u9w-10"
175
109
  })(["width:13px;height:13px;background-color:#8c8c8c;border-radius:2px;"]);
176
110
  export var StyledMAIAStopButton = styled.button.withConfig({
177
111
  displayName: "styles__StyledMAIAStopButton",
178
- componentId: "sc-cs6u9w-26"
112
+ componentId: "sc-cs6u9w-11"
179
113
  })(["background:none;border:none;padding:0;font:inherit;background-color:#f2f2f2 !important;height:30px;width:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;&:hover{background-color:#f7f0fc !important;", "{background-color:#aa6ede;}}&:disabled{cursor:not-allowed;background-color:#f2f2f2 !important;opacity:0.6;}"], StyledMAIAStopIcon);
180
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJHTE9CQUxfQ09MT1JTIiwic2Nyb2xsYWJsZVN0eWxlcyIsIkNsZWFyQnV0dG9uIiwiZmxvdyIsImN1c3RvbUlucHV0U3R5bGVzIiwibGlnaHQiLCJwcmltYXJ5IiwiU3R5bGVkTUFJQUlucHV0V3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwidGV4dCIsImRpc2FibGVkIiwiX3JlZiIsIl9yZWYyIiwiYWxpZ25CdXR0b25zIiwiX3JlZjMiLCJoYXNBdHRhY2htZW50cyIsIlN0eWxlZE1BSUFJbnB1dEJ1dHRvbnMiLCJfcmVmNCIsImhhc0hlYWRlckJ1dHRvbnMiLCJTdHlsZWRNQUlBSW5wdXQiLCJ0ZXh0YXJlYSIsInNlY29uZGFyeSIsIlNDTUlDb250ZXh0RHJvcGRvd24iLCJfcmVmNSIsIiRoYXNTdWJncm91cCIsIl9yZWY2IiwiU0NNSUNvbnRleHRNYWluTGlzdCIsIlNDTUlTdWJDb250ZXh0RHJvcGRvd24iLCJTQ01JU3ViQ29udGV4dFNlYXJjaCIsImlucHV0IiwiU0NNSVN1YkNvbnRleHRMb2FkZXIiLCJTQ01JQ29udGV4dERyb3Bkb3duVGl0bGUiLCJTQ01JQ29udGV4dEdyb3VwTGFiZWwiLCJTQ01JQ29udGV4dE9wdGlvbiIsImJ1dHRvbiIsIlNDTUlDb250ZXh0T3B0aW9uVGl0bGUiLCJzcGFuIiwiU0NNSUNvbnRleHRPcHRpb25TdWJ0aXRsZSIsIlNDTUlTdWJDb250ZXh0T3B0aW9uIiwiU0NNSUlubGluZUNvbnRleHRQcmV2aWV3IiwiU0NNSUlubGluZUNvbnRleHRUZXh0IiwiU0NNSUlubGluZVRhc2tMaW5rIiwiYSIsIlNDTUlJbmxpbmVDb250ZXh0Q2xlYXIiLCJTdHlsZWRNQUlBU2VuZEJ1dHRvbiIsIl9yZWY3IiwiaGFzVmFsdWVzIiwiX3JlZjgiLCJfcmVmOSIsIlNDTUlXcmFwcGVyQXR0YWNobWVudHMiLCJTQ01JQXR0YWNobWVudERlbGV0ZUljb24iLCJTQ01JQXR0YWNobWVudCIsIl9yZWYwIiwiaXNJbWFnZSIsImJhc2VCdXR0b25BY3Rpb25TdHlsZXMiLCJnZXRBdHRhY2htZW50Qm9yZGVyQ29sb3IiLCJwIiwiaXNNYXhpbWl6ZWQiLCIkaXNGb2N1c2VkIiwiU0NNSVdyYXBwZXJBdHRhY2htZW50QnV0dG9uIiwiX3JlZjEiLCJfcmVmMTAiLCJnZXRXZWJTZWFyY2hCb3JkZXJDb2xvciIsImlzQWN0aXZlIiwiU0NNSVdyYXBwZXJXZWJTZWFyY2hCdXR0b24iLCJfcmVmMTEiLCJfcmVmMTIiLCJnZXREZWVwU2VhcmNoQm9yZGVyQ29sb3IiLCJTQ01JV3JhcHBlckRlZXBTZWFyY2hCdXR0b24iLCJfcmVmMTMiLCJfcmVmMTQiLCJTdHlsZWRNQUlBU3RvcEljb24iLCJTdHlsZWRNQUlBU3RvcEJ1dHRvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFJbnB1dC9zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuaW1wb3J0IHN0eWxlZCwgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5pbXBvcnQgeyBHTE9CQUxfQ09MT1JTIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbmZpZydcbmltcG9ydCB7IHNjcm9sbGFibGVTdHlsZXMgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvc2hhcmVkL3Njcm9sbGFibGUnXG5pbXBvcnQgeyBDbGVhckJ1dHRvbiB9IGZyb20gJy4uL0NsZWFyQnV0dG9uJ1xuXG5leHBvcnQgY29uc3QgZmxvdyA9IGtleWZyYW1lc2BcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxuYFxuXG5jb25zdCBjdXN0b21JbnB1dFN0eWxlcyA9IGNzc2BcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKSBwYWRkaW5nLWJveCxcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmZjQzY2EgMCUsICNiYTQzZmYgNTkuNjIlLCAjZTdjNGZmIDEwMCUpIGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiAke2Zsb3d9IDNzIGVhc2UgaW5maW5pdGU7XG5cbiAgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke0dMT0JBTF9DT0xPUlMubGlnaHR9O1xuICAgIHN2ZyAqIHtcbiAgICAgIGZpbGw6ICR7R0xPQkFMX0NPTE9SUy5wcmltYXJ5fTtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2PHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGFsaWduQnV0dG9ucz86ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCdcbiAgaGFzQXR0YWNobWVudHM6IGJvb2xlYW5cbn0+YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7Y29sb3JzLnRleHQuZGlzYWJsZWR9O1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlO1xuICBwYWRkaW5nOiAxMnB4O1xuICBjdXJzb3I6ICR7KHsgZGlzYWJsZWQgfSkgPT4gKGRpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdhdXRvJyl9O1xuICBkaXNwbGF5OiBmbGV4O1xuICBtaW4taGVpZ2h0OiA4NnB4O1xuICBnYXA6ICR7KHsgYWxpZ25CdXR0b25zIH0pID0+IChhbGlnbkJ1dHRvbnMgPT09ICd2ZXJ0aWNhbCcgPyAnOHB4JyA6ICcwJyl9O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICY6Zm9jdXMtd2l0aGluIHtcbiAgICAke2N1c3RvbUlucHV0U3R5bGVzfVxuICB9XG5cbiAgJHsoeyBoYXNBdHRhY2htZW50cyB9KSA9PlxuICAgIGhhc0F0dGFjaG1lbnRzICYmXG4gICAgY3NzYFxuICAgICAgJHtjdXN0b21JbnB1dFN0eWxlc31cbiAgICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQUlucHV0QnV0dG9ucyA9IHN0eWxlZC5kaXY8eyBoYXNIZWFkZXJCdXR0b25zOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIGhlaWdodDogMzBweDtcbiAganVzdGlmeS1jb250ZW50OiAkeyh7IGhhc0hlYWRlckJ1dHRvbnMgfSkgPT4gKGhhc0hlYWRlckJ1dHRvbnMgPyAnc3BhY2UtYmV0d2VlbicgOiAnZmxleC1lbmQnKX07XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBSW5wdXQgPSBzdHlsZWQudGV4dGFyZWE8e1xuICBhbGlnbkJ1dHRvbnM/OiAndmVydGljYWwnIHwgJ2hvcml6b250YWwnXG59PmBcbiAgJHtzY3JvbGxhYmxlU3R5bGVzfVxuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBwYWRkaW5nOiAwO1xuICByZXNpemU6IG5vbmU7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogbm9uZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgbWluLWhlaWdodDogMjIuMXB4O1xuICBtYXgtaGVpZ2h0OiAxMjIuMXB4O1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0LnNlY29uZGFyeX07XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlDb250ZXh0RHJvcGRvd24gPSBzdHlsZWQuZGl2PHsgJGhhc1N1Ymdyb3VwPzogYm9vbGVhbiB9PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiBjYWxjKDEwMCUgKyA4cHgpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogJHsoeyAkaGFzU3ViZ3JvdXAgfSkgPT4gKCRoYXNTdWJncm91cCA/ICdyb3cnIDogJ2NvbHVtbicpfTtcbiAgZ2FwOiAkeyh7ICRoYXNTdWJncm91cCB9KSA9PiAoJGhhc1N1Ymdyb3VwID8gJzAnIDogJzRweCcpfTtcbiAgcGFkZGluZzogOHB4O1xuICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDMyLCAzMiwgMzEsIDAuMTIpO1xuICB6LWluZGV4OiAzO1xuICBoZWlnaHQ6IDI4MHB4O1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlDb250ZXh0TWFpbkxpc3QgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDRweDtcbiAgZmxleDogMTtcbiAgbWluLXdpZHRoOiAwO1xuICBvdmVyZmxvdy15OiBhdXRvO1xuXG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNHB4O1xuICB9XG4gICY6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHtcbiAgICBiYWNrZ3JvdW5kOiAjZDlkOWQ5O1xuICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSVN1YkNvbnRleHREcm9wZG93biA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogMnB4O1xuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIG92ZXJmbG93LXk6IGF1dG87XG4gIHBhZGRpbmctbGVmdDogOHB4O1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNlOGU4ZTg7XG5cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXIge1xuICAgIHdpZHRoOiA0cHg7XG4gIH1cbiAgJjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6ICNkOWQ5ZDk7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JU3ViQ29udGV4dFNlYXJjaCA9IHN0eWxlZC5pbnB1dGBcbiAgcG9zaXRpb246IHN0aWNreTtcbiAgdG9wOiAwO1xuICB6LWluZGV4OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogNXB4IDhweDtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAjZThlOGU4O1xuICBib3JkZXItcmFkaXVzOiA2cHg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDogI2Y1ZjVmNTtcbiAgY29sb3I6ICMyMDIwMWY7XG4gIGZsZXgtc2hyaW5rOiAwO1xuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogI2JiYjtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogI2M5YTBlODtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JU3ViQ29udGV4dExvYWRlciA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAjOTk5O1xuICBmb250LXNpemU6IDExcHg7XG4gIHBhZGRpbmc6IDhweCA0cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlDb250ZXh0RHJvcGRvd25UaXRsZSA9IHN0eWxlZC5kaXZgXG4gIGNvbG9yOiAjNjY2O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGxpbmUtaGVpZ2h0OiAxNDAlO1xuICBsZXR0ZXItc3BhY2luZzogLTAuMTFweDtcbiAgcGFkZGluZzogMnB4IDRweCA2cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQ29udGV4dEdyb3VwTGFiZWwgPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogIzk5OTtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTIwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjFweDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcGFkZGluZzogMCA0cHggNnB4O1xuYFxuXG5leHBvcnQgY29uc3QgU0NNSUNvbnRleHRPcHRpb24gPSBzdHlsZWQuYnV0dG9uYFxuICBkaXNwbGF5OiBmbGV4O1xuICB3aWR0aDogMTAwJTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiAycHg7XG4gIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBjdXJzb3I6IHBvaW50ZXI7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y3ZjBmYztcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUNvbnRleHRPcHRpb25UaXRsZSA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogIzIwMjAxZjtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlDb250ZXh0T3B0aW9uU3VidGl0bGUgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICM2NjY7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDE0MCU7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JU3ViQ29udGV4dE9wdGlvbiA9IHN0eWxlZChTQ01JQ29udGV4dE9wdGlvbilgXG4gIHBhZGRpbmc6IDZweCA4cHg7XG4gIGdhcDogMXB4O1xuXG4gICR7U0NNSUNvbnRleHRPcHRpb25UaXRsZX0ge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgfVxuXG4gICR7U0NNSUNvbnRleHRPcHRpb25TdWJ0aXRsZX0ge1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUlubGluZUNvbnRleHRQcmV2aWV3ID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBnYXA6IDhweDtcbiAgbWluLWhlaWdodDogMjRweDtcbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlJbmxpbmVDb250ZXh0VGV4dCA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogIzIwMjAxZjtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMTQwJTtcbiAgbGV0dGVyLXNwYWNpbmc6IC0wLjE2cHg7XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JSW5saW5lVGFza0xpbmsgPSBzdHlsZWQuYWBcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjMjAyMDIwICFpbXBvcnRhbnQ7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMjRweDtcblxuICAmOmhvdmVyIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50O1xuICB9XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgd2lkdGg9JzIwJyBoZWlnaHQ9JzIwJyB2aWV3Qm94PScwIDAgMjAgMjAnIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGQ9J00xMCAxOEMxMS4xMjUgMTggMTIuMTI1IDE3LjQzNzUgMTIuNjg3NSAxNi41NjI1QzEzLjcxODggMTYuNzgxMiAxNC44NDM4IDE2LjQ2ODggMTUuNjU2MiAxNS42NTYyQzE2LjQzNzUgMTQuODc1IDE2Ljc1IDEzLjc1IDE2LjUzMTIgMTIuNzE4OEMxNy40MDYyIDEyLjE1NjIgMTggMTEuMTU2MiAxOCAxMEMxOCA4Ljg3NSAxNy40MDYyIDcuODc1IDE2LjUzMTIgNy4zMTI1QzE2Ljc1IDYuMjgxMjUgMTYuNDM3NSA1LjE1NjI1IDE1LjY1NjIgNC4zNDM3NUMxNC44NDM4IDMuNTYyNSAxMy43MTg4IDMuMjUgMTIuNjg3NSAzLjQ2ODc1QzEyLjEyNSAyLjU5Mzc1IDExLjEyNSAyIDEwIDJDOC44NDM3NSAyIDcuODQzNzUgMi41OTM3NSA3LjI4MTI1IDMuNDY4NzVDNi4yNSAzLjI1IDUuMTI1IDMuNTYyNSA0LjM0Mzc1IDQuMzQzNzVDMy41MzEyNSA1LjE1NjI1IDMuMjE4NzUgNi4yODEyNSAzLjQzNzUgNy4zMTI1QzIuNTYyNSA3Ljg3NSAyIDguODc1IDIgMTBDMiAxMS4xNTYyIDIuNTYyNSAxMi4xNTYyIDMuNDM3NSAxMi43MTg4QzMuMjE4NzUgMTMuNzUgMy41MzEyNSAxNC44NzUgNC4zNDM3NSAxNS42NTYyQzUuMTI1IDE2LjQ2ODggNi4yNSAxNi43ODEyIDcuMjgxMjUgMTYuNTYyNUM3Ljg0Mzc1IDE3LjQzNzUgOC44NDM3NSAxOCAxMCAxOFpNOC4wNjI1IDE0LjYyNUM3LjQwNjI1IDE0LjkzNzUgNi4zNDM3NSAxNS41NjI1IDUuMzc1IDE0LjU5MzhDNC4zNzUgMTMuNTkzOCA1LjEyNSAxMi40Njg4IDUuMzc1IDExLjkzNzVDNC43MTg3NSAxMS42ODc1IDMuNSAxMS4zNzUgMy41IDEwQzMuNSA4LjU5Mzc1IDQuODEyNSA4LjMxMjUgNS4zNzUgOC4wOTM3NUM1LjA5Mzc1IDcuNDY4NzUgNC40Mzc1IDYuMzc1IDUuNDA2MjUgNS40MDYyNUM2LjQwNjI1IDQuNDA2MjUgNy41MzEyNSA1LjE1NjI1IDguMDYyNSA1LjQwNjI1QzguMzEyNSA0Ljc1IDguNjI1IDMuNSAxMCAzLjVDMTEuNDA2MiAzLjUgMTEuNjg3NSA0Ljg0Mzc1IDExLjkwNjIgNS40MDYyNUMxMi41MzEyIDUuMTI1IDEzLjYyNSA0LjQ2ODc1IDE0LjU5MzggNS40Mzc1QzE1LjU5MzggNi40Mzc1IDE0Ljg0MzggNy41NjI1IDE0LjU5MzggOC4wOTM3NUMxNS4yNSA4LjM0Mzc1IDE2LjQ2ODggOC42NTYyNSAxNi40Njg4IDEwLjAzMTJDMTYuNDY4OCAxMS40Mzc1IDE1LjE1NjIgMTEuNzE4OCAxNC41OTM4IDExLjkzNzVDMTQuODc1IDEyLjU2MjUgMTUuNTYyNSAxMy42NTYyIDE0LjU5MzggMTQuNjI1QzEzLjcxODggMTUuNSAxMi44NDM4IDE1LjA2MjUgMTEuOTA2MiAxNC42MjVDMTEuNjU2MiAxNS4yODEyIDExLjM0MzggMTYuNSAxMCAxNi41QzguNTYyNSAxNi41IDguMjgxMjUgMTUuMTg3NSA4LjA2MjUgMTQuNjI1WicgZmlsbD0nJTIzODc0MEJGJy8lM0UlM0Mvc3ZnJTNFXCIpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSUlubGluZUNvbnRleHRDbGVhciA9IHN0eWxlZC5idXR0b25gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDJweCA1cHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICM5OTk7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgZmxleC1zaHJpbms6IDA7XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgYmFja2dyb3VuZDogI2YwZjBmMDtcbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVNlbmRCdXR0b24gPSBzdHlsZWQoQ2xlYXJCdXR0b24pPHsgaGFzVmFsdWVzPzogYm9vbGVhbiB9PmBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBoYXNWYWx1ZXMgfSkgPT4gKGhhc1ZhbHVlcyA/ICcjRjdGMEZDJyA6ICcjZjJmMmYyJyl9O1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZTtcblxuICBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gICAgJHsoeyBoYXNWYWx1ZXMgfSkgPT5cbiAgICAgIGhhc1ZhbHVlcyAmJlxuICAgICAgY3NzYFxuICAgICAgICBnICoge1xuICAgICAgICAgIGZpbGw6IHJnYmEoMTM1LCA2NCwgMTkxLCAxKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICBgfVxuICB9XG5cbiAgJjpob3ZlciB7XG4gICAgc3ZnIHtcbiAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgfVxuICB9XG5cbiAgJjphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45KTtcbiAgICBzdmcge1xuICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgICAgIGcgKiB7XG4gICAgICAgIGZpbGw6IHJnYmEoMTM1LCA2NCwgMTkxLCAxKSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG5cbiAgICAkeyh7IGhhc1ZhbHVlcyB9KSA9PlxuICAgICAgIWhhc1ZhbHVlcyAmJlxuICAgICAgY3NzYFxuICAgICAgICBzdmcgKiB7XG4gICAgICAgICAgZmlsbDogJHtjb2xvcnMudGV4dC5kaXNhYmxlZH0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgYH1cblxuICAgICY6aG92ZXIge1xuICAgICAgc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlXcmFwcGVyQXR0YWNobWVudHMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnREZWxldGVJY29uID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBub25lO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgcGFkZGluZzogMnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgc3ZnICo6bm90KC5uby1maWxsKSB7XG4gICAgICBmaWxsOiAjNjY2NjY2ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudCA9IHN0eWxlZC5kaXY8eyBpc0ltYWdlPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTkxLCAxOTEsIDE5MSwgMSk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDEzcHg7XG4gICR7KHsgaXNJbWFnZSB9KSA9PlxuICAgIGlzSW1hZ2UgJiZcbiAgICBjc3NgXG4gICAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgICBgfVxuXG4gICY6aG92ZXIge1xuICAgICR7U0NNSUF0dGFjaG1lbnREZWxldGVJY29ufSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuYFxuXG5jb25zdCBiYXNlQnV0dG9uQWN0aW9uU3R5bGVzID0gY3NzYFxuICB3aWR0aDogMzBweDtcbiAgaGVpZ2h0OiAzMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuYFxuY29uc3QgZ2V0QXR0YWNobWVudEJvcmRlckNvbG9yID0gKHA6IHsgaGFzQXR0YWNobWVudHM6IGJvb2xlYW47IGlzTWF4aW1pemVkPzogYm9vbGVhbjsgJGlzRm9jdXNlZD86IGJvb2xlYW4gfSkgPT4ge1xuICBpZiAocC5oYXNBdHRhY2htZW50cyB8fCBwLmlzTWF4aW1pemVkKSByZXR1cm4gJ3JnYmEoMTM1LCA2NCwgMTkxLCAxKSdcbiAgcmV0dXJuIHAuJGlzRm9jdXNlZCAhPT0gZmFsc2UgPyAnIzY2NjY2NicgOiAnIzk5OSdcbn1cblxuZXhwb3J0IGNvbnN0IFNDTUlXcmFwcGVyQXR0YWNobWVudEJ1dHRvbiA9IHN0eWxlZC5kaXY8e1xuICBpc01heGltaXplZD86IGJvb2xlYW5cbiAgaGFzQXR0YWNobWVudHM6IGJvb2xlYW5cbiAgJGlzRm9jdXNlZD86IGJvb2xlYW5cbn0+YFxuICAke2Jhc2VCdXR0b25BY3Rpb25TdHlsZXN9XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7Z2V0QXR0YWNobWVudEJvcmRlckNvbG9yfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBoYXNBdHRhY2htZW50cywgaXNNYXhpbWl6ZWQgfSkgPT5cbiAgICAhaGFzQXR0YWNobWVudHMgJiYgIWlzTWF4aW1pemVkID8gJyNmZmZmZmYnIDogJ3JnYmEoMjQ3LCAyNDAsIDI1MiwgMSknfTtcbiAgY3Vyc29yOiAkeyh7IGhhc0F0dGFjaG1lbnRzLCBpc01heGltaXplZCB9KSA9PiAoaGFzQXR0YWNobWVudHMgfHwgaXNNYXhpbWl6ZWQgPyAnZGVmYXVsdCcgOiAncG9pbnRlcicpfTtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NywgMjQwLCAyNTIsIDEpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMzUsIDY0LCAxOTEsIDEpICFpbXBvcnRhbnQ7XG4gICAgc3ZnICoge1xuICAgICAgZmlsbDogcmdiYSgxMzUsIDY0LCAxOTEsIDEpICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5gXG5jb25zdCBnZXRXZWJTZWFyY2hCb3JkZXJDb2xvciA9IChwOiB7IGlzQWN0aXZlOiBib29sZWFuOyAkaXNGb2N1c2VkPzogYm9vbGVhbiB9KSA9PiB7XG4gIGlmIChwLmlzQWN0aXZlKSByZXR1cm4gJ3JnYmEoMTM1LCA2NCwgMTkxLCAxKSdcbiAgcmV0dXJuIHAuJGlzRm9jdXNlZCAhPT0gZmFsc2UgPyAnIzY2NjY2NicgOiAnIzk5OSdcbn1cblxuZXhwb3J0IGNvbnN0IFNDTUlXcmFwcGVyV2ViU2VhcmNoQnV0dG9uID0gc3R5bGVkLmRpdjx7IGlzQWN0aXZlOiBib29sZWFuOyAkaXNGb2N1c2VkPzogYm9vbGVhbiB9PmBcbiAgJHtiYXNlQnV0dG9uQWN0aW9uU3R5bGVzfVxuICBib3JkZXI6IDFweCBzb2xpZCAke2dldFdlYlNlYXJjaEJvcmRlckNvbG9yfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoIWlzQWN0aXZlID8gJyNmZmZmZmYnIDogJ3JnYmEoMjQ3LCAyNDAsIDI1MiwgMSknKX07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgJHsoeyBpc0FjdGl2ZSB9KSA9PlxuICAgICFpc0FjdGl2ZSAmJlxuICAgIGNzc2BcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NywgMjQwLCAyNTIsIDEpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTM1LCA2NCwgMTkxLCAxKSAhaW1wb3J0YW50O1xuICAgICAgICBzdmcgKiB7XG4gICAgICAgICAgZmlsbDogcmdiYSgxMzUsIDY0LCAxOTEsIDEpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgfVxuYFxuXG5jb25zdCBnZXREZWVwU2VhcmNoQm9yZGVyQ29sb3IgPSAocDogeyBpc0FjdGl2ZTogYm9vbGVhbjsgJGlzRm9jdXNlZD86IGJvb2xlYW4gfSkgPT4ge1xuICBpZiAocC5pc0FjdGl2ZSkgcmV0dXJuICdyZ2JhKDEzNSwgNjQsIDE5MSwgMSknXG4gIHJldHVybiBwLiRpc0ZvY3VzZWQgIT09IGZhbHNlID8gJyM2NjY2NjYnIDogJyM5OTknXG59XG5cbmV4cG9ydCBjb25zdCBTQ01JV3JhcHBlckRlZXBTZWFyY2hCdXR0b24gPSBzdHlsZWQuZGl2PHsgaXNBY3RpdmU6IGJvb2xlYW47ICRpc0ZvY3VzZWQ/OiBib29sZWFuIH0+YFxuICAke2Jhc2VCdXR0b25BY3Rpb25TdHlsZXN9XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7Z2V0RGVlcFNlYXJjaEJvcmRlckNvbG9yfTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHsoeyBpc0FjdGl2ZSB9KSA9PiAoIWlzQWN0aXZlID8gJyNmZmZmZmYnIDogJ3JnYmEoMjQ3LCAyNDAsIDI1MiwgMSknKX07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgJHsoeyBpc0FjdGl2ZSB9KSA9PlxuICAgICFpc0FjdGl2ZSAmJlxuICAgIGNzc2BcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI0NywgMjQwLCAyNTIsIDEpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTM1LCA2NCwgMTkxLCAxKSAhaW1wb3J0YW50O1xuICAgICAgICBzdmcgKiB7XG4gICAgICAgICAgc3Ryb2tlOiByZ2JhKDEzNSwgNjQsIDE5MSwgMSkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGB9XG5gXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVN0b3BJY29uID0gc3R5bGVkLmRpdmBcbiAgd2lkdGg6IDEzcHg7XG4gIGhlaWdodDogMTNweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzhjOGM4YztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuYFxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFTdG9wQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xuICBmb250OiBpbmhlcml0O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG4gIGhlaWdodDogMzBweDtcbiAgd2lkdGg6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdmMGZjICFpbXBvcnRhbnQ7XG5cbiAgICAke1N0eWxlZE1BSUFTdG9wSWNvbn0ge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2FhNmVkZTtcbiAgICB9XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjIgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAwLjY7XG4gIH1cbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxPQUFPQSxNQUFNLElBQUlDLEdBQUcsRUFBRUMsU0FBUyxRQUFRLG1CQUFtQjtBQUMxRCxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBQ3RELFNBQVNDLGFBQWEsUUFBUSx3QkFBd0I7QUFDdEQsU0FBU0MsZ0JBQWdCLFFBQVEsbUNBQW1DO0FBQ3BFLFNBQVNDLFdBQVcsUUFBUSxnQkFBZ0I7QUFFNUMsT0FBTyxJQUFNQyxJQUFJLEdBQUdMLFNBQVMsd0dBVTVCO0FBRUQsSUFBTU0saUJBQWlCLEdBQUdQLEdBQUcsdVJBT2RNLElBQUksRUFHS0gsYUFBYSxDQUFDSyxLQUFLLEVBRTdCTCxhQUFhLENBQUNNLE9BQU8sQ0FHbEM7QUFFRCxPQUFPLElBQU1DLHNCQUFzQixHQUFHWCxNQUFNLENBQUNZ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
114
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJHTE9CQUxfQ09MT1JTIiwic2Nyb2xsYWJsZVN0eWxlcyIsIkNsZWFyQnV0dG9uIiwiZmxvdyIsImN1c3RvbUlucHV0U3R5bGVzIiwibGlnaHQiLCJwcmltYXJ5IiwiU3R5bGVkTUFJQUlucHV0V3JhcHBlciIsImRpdiIsIndpdGhDb25maWciLCJkaXNwbGF5TmFtZSIsImNvbXBvbmVudElkIiwidGV4dCIsImRpc2FibGVkIiwiX3JlZiIsIl9yZWYyIiwiYWxpZ25CdXR0b25zIiwiX3JlZjMiLCJoYXNBdHRhY2htZW50cyIsIlN0eWxlZE1BSUFJbnB1dEJ1dHRvbnMiLCJfcmVmNCIsImhhc0hlYWRlckJ1dHRvbnMiLCJTdHlsZWRNQUlBSW5wdXQiLCJ0ZXh0YXJlYSIsInNlY29uZGFyeSIsIlN0eWxlZE1BSUFTZW5kQnV0dG9uIiwiX3JlZjUiLCJoYXNWYWx1ZXMiLCJfcmVmNiIsIl9yZWY3IiwiU0NNSVdyYXBwZXJBdHRhY2htZW50cyIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlNDTUlBdHRhY2htZW50IiwiX3JlZjgiLCJpc0ltYWdlIiwiYmFzZUJ1dHRvbkFjdGlvblN0eWxlcyIsImdldEF0dGFjaG1lbnRCb3JkZXJDb2xvciIsInAiLCJpc01heGltaXplZCIsIiRpc0ZvY3VzZWQiLCJTQ01JV3JhcHBlckF0dGFjaG1lbnRCdXR0b24iLCJfcmVmOSIsIl9yZWYwIiwiZ2V0V2ViU2VhcmNoQm9yZGVyQ29sb3IiLCJpc0FjdGl2ZSIsIlNDTUlXcmFwcGVyV2ViU2VhcmNoQnV0dG9uIiwiX3JlZjEiLCJfcmVmMTAiLCJnZXREZWVwU2VhcmNoQm9yZGVyQ29sb3IiLCJTQ01JV3JhcHBlckRlZXBTZWFyY2hCdXR0b24iLCJfcmVmMTEiLCJfcmVmMTIiLCJTdHlsZWRNQUlBU3RvcEljb24iLCJTdHlsZWRNQUlBU3RvcEJ1dHRvbiIsImJ1dHRvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2F0b21zL01BSUFJbnB1dC9zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2luZGVudCAqL1xuaW1wb3J0IHN0eWxlZCwgeyBjc3MsIGtleWZyYW1lcyB9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJ1xuaW1wb3J0IGNvbG9ycyBmcm9tICdAcHJvamVjdGNvci90aGVtZS9saWIvYmFzZS9jb2xvcnMnXG5pbXBvcnQgeyBHTE9CQUxfQ09MT1JTIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL2NvbmZpZydcbmltcG9ydCB7IHNjcm9sbGFibGVTdHlsZXMgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvc2hhcmVkL3Njcm9sbGFibGUnXG5pbXBvcnQgeyBDbGVhckJ1dHRvbiB9IGZyb20gJy4uL0NsZWFyQnV0dG9uJ1xuXG5leHBvcnQgY29uc3QgZmxvdyA9IGtleWZyYW1lc2BcbiAgMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxuICA1MCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDEwMCUgNTAlO1xuICB9XG4gIDEwMCUge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAlIDUwJTtcbiAgfVxuYFxuXG5jb25zdCBjdXN0b21JbnB1dFN0eWxlcyA9IGNzc2BcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKSBwYWRkaW5nLWJveCxcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmZjQzY2EgMCUsICNiYTQzZmYgNTkuNjIlLCAjZTdjNGZmIDEwMCUpIGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXNpemU6IDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiAke2Zsb3d9IDNzIGVhc2UgaW5maW5pdGU7XG5cbiAgYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke0dMT0JBTF9DT0xPUlMubGlnaHR9O1xuICAgIHN2ZyAqIHtcbiAgICAgIGZpbGw6ICR7R0xPQkFMX0NPTE9SUy5wcmltYXJ5fTtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2PHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIGFsaWduQnV0dG9ucz86ICdob3Jpem9udGFsJyB8ICd2ZXJ0aWNhbCdcbiAgaGFzQXR0YWNobWVudHM6IGJvb2xlYW5cbn0+YFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBib3JkZXI6IDFweCBzb2xpZCAke2NvbG9ycy50ZXh0LmRpc2FibGVkfTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZTtcbiAgcGFkZGluZzogMTJweDtcbiAgY3Vyc29yOiAkeyh7IGRpc2FibGVkIH0pID0+IChkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAnYXV0bycpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWluLWhlaWdodDogODZweDtcbiAgZ2FwOiAkeyh7IGFsaWduQnV0dG9ucyB9KSA9PiAoYWxpZ25CdXR0b25zID09PSAndmVydGljYWwnID8gJzhweCcgOiAnMCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgJHtjdXN0b21JbnB1dFN0eWxlc31cbiAgfVxuXG4gICR7KHsgaGFzQXR0YWNobWVudHMgfSkgPT5cbiAgICBoYXNBdHRhY2htZW50cyAmJlxuICAgIGNzc2BcbiAgICAgICR7Y3VzdG9tSW5wdXRTdHlsZXN9XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFJbnB1dEJ1dHRvbnMgPSBzdHlsZWQuZGl2PHsgaGFzSGVhZGVyQnV0dG9uczogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICBoZWlnaHQ6IDMwcHg7XG4gIGp1c3RpZnktY29udGVudDogJHsoeyBoYXNIZWFkZXJCdXR0b25zIH0pID0+IChoYXNIZWFkZXJCdXR0b25zID8gJ3NwYWNlLWJldHdlZW4nIDogJ2ZsZXgtZW5kJyl9O1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQUlucHV0ID0gc3R5bGVkLnRleHRhcmVhPHtcbiAgYWxpZ25CdXR0b25zPzogJ3ZlcnRpY2FsJyB8ICdob3Jpem9udGFsJ1xufT5gXG4gICR7c2Nyb2xsYWJsZVN0eWxlc31cbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZzogMDtcbiAgcmVzaXplOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDIyLjFweDtcbiAgbWF4LWhlaWdodDogMTIyLjFweDtcblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gICY6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogJHtjb2xvcnMudGV4dC5zZWNvbmRhcnl9O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBU2VuZEJ1dHRvbiA9IHN0eWxlZChDbGVhckJ1dHRvbik8eyBoYXNWYWx1ZXM/OiBib29sZWFuIH0+YFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IGhhc1ZhbHVlcyB9KSA9PiAoaGFzVmFsdWVzID8gJyNGN0YwRkMnIDogJyNmMmYyZjInKX07XG4gIGhlaWdodDogMzBweDtcbiAgd2lkdGg6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuXG4gIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgICAkeyh7IGhhc1ZhbHVlcyB9KSA9PlxuICAgICAgaGFzVmFsdWVzICYmXG4gICAgICBjc3NgXG4gICAgICAgIGcgKiB7XG4gICAgICAgICAgZmlsbDogcmdiYSgxMzUsIDY0LCAxOTEsIDEpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIGB9XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBzdmcge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICB9XG4gIH1cblxuICAmOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICAgIHN2ZyB7XG4gICAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgICAgZyAqIHtcbiAgICAgICAgZmlsbDogcmdiYSgxMzUsIDY0LCAxOTEsIDEpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjIgIWltcG9ydGFudDtcblxuICAgICR7KHsgaGFzVmFsdWVzIH0pID0+XG4gICAgICAhaGFzVmFsdWVzICYmXG4gICAgICBjc3NgXG4gICAgICAgIHN2ZyAqIHtcbiAgICAgICAgICBmaWxsOiAke2NvbG9ycy50ZXh0LmRpc2FibGVkfSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICBgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICBzdmcge1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgU0NNSVdyYXBwZXJBdHRhY2htZW50cyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGdhcDogMTJweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbmBcbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudERlbGV0ZUljb24gPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB0b3A6IDA7XG4gIHJpZ2h0OiAwO1xuICBwYWRkaW5nOiAycHg7XG4gIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgICBzdmcgKjpub3QoLm5vLWZpbGwpIHtcbiAgICAgIGZpbGw6ICM2NjY2NjYgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlBdHRhY2htZW50ID0gc3R5bGVkLmRpdjx7IGlzSW1hZ2U/OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxOTEsIDE5MSwgMTkxLCAxKTtcbiAgYm9yZGVyLXJhZGl1czogNnB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMTNweDtcbiAgJHsoeyBpc0ltYWdlIH0pID0+XG4gICAgaXNJbWFnZSAmJlxuICAgIGNzc2BcbiAgICAgIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xuICAgIGB9XG5cbiAgJjpob3ZlciB7XG4gICAgJHtTQ01JQXR0YWNobWVudERlbGV0ZUljb259IHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgfVxuICB9XG5gXG5cbmNvbnN0IGJhc2VCdXR0b25BY3Rpb25TdHlsZXMgPSBjc3NgXG4gIHdpZHRoOiAzMHB4O1xuICBoZWlnaHQ6IDMwcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG5gXG5jb25zdCBnZXRBdHRhY2htZW50Qm9yZGVyQ29sb3IgPSAocDogeyBoYXNBdHRhY2htZW50czogYm9vbGVhbjsgaXNNYXhpbWl6ZWQ/OiBib29sZWFuOyAkaXNGb2N1c2VkPzogYm9vbGVhbiB9KSA9PiB7XG4gIGlmIChwLmhhc0F0dGFjaG1lbnRzIHx8IHAuaXNNYXhpbWl6ZWQpIHJldHVybiAncmdiYSgxMzUsIDY0LCAxOTEsIDEpJ1xuICByZXR1cm4gcC4kaXNGb2N1c2VkICE9PSBmYWxzZSA/ICcjNjY2NjY2JyA6ICcjOTk5J1xufVxuXG5leHBvcnQgY29uc3QgU0NNSVdyYXBwZXJBdHRhY2htZW50QnV0dG9uID0gc3R5bGVkLmRpdjx7XG4gIGlzTWF4aW1pemVkPzogYm9vbGVhblxuICBoYXNBdHRhY2htZW50czogYm9vbGVhblxuICAkaXNGb2N1c2VkPzogYm9vbGVhblxufT5gXG4gICR7YmFzZUJ1dHRvbkFjdGlvblN0eWxlc31cbiAgYm9yZGVyOiAxcHggc29saWQgJHtnZXRBdHRhY2htZW50Qm9yZGVyQ29sb3J9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IGhhc0F0dGFjaG1lbnRzLCBpc01heGltaXplZCB9KSA9PlxuICAgICFoYXNBdHRhY2htZW50cyAmJiAhaXNNYXhpbWl6ZWQgPyAnI2ZmZmZmZicgOiAncmdiYSgyNDcsIDI0MCwgMjUyLCAxKSd9O1xuICBjdXJzb3I6ICR7KHsgaGFzQXR0YWNobWVudHMsIGlzTWF4aW1pemVkIH0pID0+IChoYXNBdHRhY2htZW50cyB8fCBpc01heGltaXplZCA/ICdkZWZhdWx0JyA6ICdwb2ludGVyJyl9O1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ3LCAyNDAsIDI1MiwgMSkgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEzNSwgNjQsIDE5MSwgMSkgIWltcG9ydGFudDtcbiAgICBzdmcgKiB7XG4gICAgICBmaWxsOiByZ2JhKDEzNSwgNjQsIDE5MSwgMSkgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbmBcbmNvbnN0IGdldFdlYlNlYXJjaEJvcmRlckNvbG9yID0gKHA6IHsgaXNBY3RpdmU6IGJvb2xlYW47ICRpc0ZvY3VzZWQ/OiBib29sZWFuIH0pID0+IHtcbiAgaWYgKHAuaXNBY3RpdmUpIHJldHVybiAncmdiYSgxMzUsIDY0LCAxOTEsIDEpJ1xuICByZXR1cm4gcC4kaXNGb2N1c2VkICE9PSBmYWxzZSA/ICcjNjY2NjY2JyA6ICcjOTk5J1xufVxuXG5leHBvcnQgY29uc3QgU0NNSVdyYXBwZXJXZWJTZWFyY2hCdXR0b24gPSBzdHlsZWQuZGl2PHsgaXNBY3RpdmU6IGJvb2xlYW47ICRpc0ZvY3VzZWQ/OiBib29sZWFuIH0+YFxuICAke2Jhc2VCdXR0b25BY3Rpb25TdHlsZXN9XG4gIGJvcmRlcjogMXB4IHNvbGlkICR7Z2V0V2ViU2VhcmNoQm9yZGVyQ29sb3J9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IGlzQWN0aXZlIH0pID0+ICghaXNBY3RpdmUgPyAnI2ZmZmZmZicgOiAncmdiYSgyNDcsIDI0MCwgMjUyLCAxKScpfTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAkeyh7IGlzQWN0aXZlIH0pID0+XG4gICAgIWlzQWN0aXZlICYmXG4gICAgY3NzYFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ3LCAyNDAsIDI1MiwgMSkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMzUsIDY0LCAxOTEsIDEpICFpbXBvcnRhbnQ7XG4gICAgICAgIHN2ZyAqIHtcbiAgICAgICAgICBmaWxsOiByZ2JhKDEzNSwgNjQsIDE5MSwgMSkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGB9XG5gXG5cbmNvbnN0IGdldERlZXBTZWFyY2hCb3JkZXJDb2xvciA9IChwOiB7IGlzQWN0aXZlOiBib29sZWFuOyAkaXNGb2N1c2VkPzogYm9vbGVhbiB9KSA9PiB7XG4gIGlmIChwLmlzQWN0aXZlKSByZXR1cm4gJ3JnYmEoMTM1LCA2NCwgMTkxLCAxKSdcbiAgcmV0dXJuIHAuJGlzRm9jdXNlZCAhPT0gZmFsc2UgPyAnIzY2NjY2NicgOiAnIzk5OSdcbn1cblxuZXhwb3J0IGNvbnN0IFNDTUlXcmFwcGVyRGVlcFNlYXJjaEJ1dHRvbiA9IHN0eWxlZC5kaXY8eyBpc0FjdGl2ZTogYm9vbGVhbjsgJGlzRm9jdXNlZD86IGJvb2xlYW4gfT5gXG4gICR7YmFzZUJ1dHRvbkFjdGlvblN0eWxlc31cbiAgYm9yZGVyOiAxcHggc29saWQgJHtnZXREZWVwU2VhcmNoQm9yZGVyQ29sb3J9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IGlzQWN0aXZlIH0pID0+ICghaXNBY3RpdmUgPyAnI2ZmZmZmZicgOiAncmdiYSgyNDcsIDI0MCwgMjUyLCAxKScpfTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAkeyh7IGlzQWN0aXZlIH0pID0+XG4gICAgIWlzQWN0aXZlICYmXG4gICAgY3NzYFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjQ3LCAyNDAsIDI1MiwgMSkgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMzUsIDY0LCAxOTEsIDEpICFpbXBvcnRhbnQ7XG4gICAgICAgIHN2ZyAqIHtcbiAgICAgICAgICBzdHJva2U6IHJnYmEoMTM1LCA2NCwgMTkxLCAxKSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYH1cbmBcbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBU3RvcEljb24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTNweDtcbiAgaGVpZ2h0OiAxM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGM4YzhjO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG5gXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVN0b3BCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjIgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAzMHB4O1xuICB3aWR0aDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2YwZmMgIWltcG9ydGFudDtcblxuICAgICR7U3R5bGVkTUFJQVN0b3BJY29ufSB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYWE2ZWRlO1xuICAgIH1cbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YyZjJmMiAhaW1wb3J0YW50O1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxuYFxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBLE9BQU9BLE1BQU0sSUFBSUMsR0FBRyxFQUFFQyxTQUFTLFFBQVEsbUJBQW1CO0FBQzFELE9BQU9DLE1BQU0sTUFBTSxtQ0FBbUM7QUFDdEQsU0FBU0MsYUFBYSxRQUFRLHdCQUF3QjtBQUN0RCxTQUFTQyxnQkFBZ0IsUUFBUSxtQ0FBbUM7QUFDcEUsU0FBU0MsV0FBVyxRQUFRLGdCQUFnQjtBQUU1QyxPQUFPLElBQU1DLElBQUksR0FBR0wsU0FBUyx3R0FV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