@doolehealth/service-lib 0.0.4 → 0.0.6

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 (90) hide show
  1. package/README.md +112 -13
  2. package/esm2022/lib/configuration.mjs +1 -1
  3. package/esm2022/lib/models/notifications/notification-options.mjs +192 -0
  4. package/esm2022/lib/models/shared-care-plan.mjs +223 -0
  5. package/esm2022/lib/models/user.mjs +1 -1
  6. package/esm2022/lib/service-lib.component.mjs +5 -5
  7. package/esm2022/lib/service-lib.module.mjs +4 -4
  8. package/esm2022/lib/services/analytics.service.mjs +20 -11
  9. package/esm2022/lib/services/api-endpoints.service.mjs +22 -6
  10. package/esm2022/lib/services/authentication.service.mjs +74 -52
  11. package/esm2022/lib/services/change-endpoints.service.mjs +46 -22
  12. package/esm2022/lib/services/date.service.mjs +106 -45
  13. package/esm2022/lib/services/doole.service.mjs +658 -221
  14. package/esm2022/lib/services/encryption.service.mjs +3 -3
  15. package/esm2022/lib/services/error.service.mjs +3 -3
  16. package/esm2022/lib/services/events.service.mjs +5 -5
  17. package/esm2022/lib/services/firebase/auth/firebase-auth.service.mjs +154 -0
  18. package/esm2022/lib/services/firebase/auth/firebase-profile.model.mjs +7 -0
  19. package/esm2022/lib/services/health.service.mjs +303 -0
  20. package/esm2022/lib/services/highcharts.service.mjs +37 -67
  21. package/esm2022/lib/services/http.service.mjs +14 -14
  22. package/esm2022/lib/services/language.model.mjs +3 -0
  23. package/esm2022/lib/services/language.service.mjs +6 -6
  24. package/esm2022/lib/services/loading.service.mjs +3 -3
  25. package/esm2022/lib/services/logging.service.mjs +4 -4
  26. package/esm2022/lib/services/navigation.service.mjs +108 -9
  27. package/esm2022/lib/services/network.service.mjs +7 -7
  28. package/esm2022/lib/services/notification.service.mjs +10 -96
  29. package/esm2022/lib/services/opentok.service.mjs +10 -7
  30. package/esm2022/lib/services/permission.service.mjs +94 -0
  31. package/esm2022/lib/services/roles.service.mjs +9 -8
  32. package/esm2022/lib/services/shared-care-plan/shared-care-plan.service.mjs +103 -0
  33. package/esm2022/lib/services/storage.service.mjs +3 -3
  34. package/esm2022/lib/services/token.service.mjs +7 -7
  35. package/esm2022/lib/utils/chatParameters.mjs +17 -0
  36. package/esm2022/lib/utils/data-store.mjs +62 -0
  37. package/esm2022/lib/utils/query-string-parameters.mjs +11 -0
  38. package/esm2022/lib/utils/url-builder.mjs +15 -0
  39. package/esm2022/public-api.mjs +8 -9
  40. package/fesm2022/doolehealth-service-lib.mjs +2055 -1228
  41. package/fesm2022/doolehealth-service-lib.mjs.map +1 -1
  42. package/lib/configuration.d.ts +4 -2
  43. package/lib/{util → models/notifications}/notification-options.d.ts +0 -32
  44. package/lib/models/shared-care-plan.d.ts +206 -0
  45. package/lib/models/user.d.ts +2 -0
  46. package/lib/service-lib.component.d.ts +1 -1
  47. package/lib/services/analytics.service.d.ts +6 -3
  48. package/lib/services/api-endpoints.service.d.ts +3 -0
  49. package/lib/services/authentication.service.d.ts +27 -25
  50. package/lib/services/change-endpoints.service.d.ts +1 -0
  51. package/lib/services/date.service.d.ts +15 -8
  52. package/lib/services/doole.service.d.ts +64 -23
  53. package/lib/services/{auth → firebase/auth}/firebase-auth.service.d.ts +1 -1
  54. package/lib/services/{auth → firebase/auth}/firebase-profile.model.d.ts +1 -1
  55. package/lib/services/health.service.d.ts +49 -0
  56. package/lib/services/highcharts.service.d.ts +1 -2
  57. package/lib/services/http.service.d.ts +1 -1
  58. package/lib/services/language.service.d.ts +1 -1
  59. package/lib/services/navigation.service.d.ts +6 -1
  60. package/lib/services/notification.service.d.ts +2 -7
  61. package/lib/services/permission.service.d.ts +33 -0
  62. package/lib/services/roles.service.d.ts +3 -2
  63. package/lib/services/shared-care-plan/shared-care-plan.service.d.ts +20 -0
  64. package/lib/{util → utils}/data-store.d.ts +3 -1
  65. package/package.json +2 -15
  66. package/public-api.d.ts +7 -8
  67. package/esm2022/lib/services/auth/firebase-auth.service.mjs +0 -155
  68. package/esm2022/lib/services/auth/firebase-profile.model.mjs +0 -7
  69. package/esm2022/lib/services/pusher/pusher-alarm.service.mjs +0 -39
  70. package/esm2022/lib/services/pusher/pusher-challenge-notifications.service.mjs +0 -110
  71. package/esm2022/lib/services/pusher/pusher-connection.service.mjs +0 -73
  72. package/esm2022/lib/services/pusher/pusher-message.service.mjs +0 -27
  73. package/esm2022/lib/services/pusher/pusher-notification.service.mjs +0 -116
  74. package/esm2022/lib/util/chatParameters.mjs +0 -17
  75. package/esm2022/lib/util/data-store.mjs +0 -54
  76. package/esm2022/lib/util/environment.mjs +0 -29
  77. package/esm2022/lib/util/language.model.mjs +0 -3
  78. package/esm2022/lib/util/notification-options.mjs +0 -245
  79. package/esm2022/lib/util/query-string-parameters.mjs +0 -11
  80. package/esm2022/lib/util/url-builder.mjs +0 -15
  81. package/lib/services/pusher/pusher-alarm.service.d.ts +0 -16
  82. package/lib/services/pusher/pusher-challenge-notifications.service.d.ts +0 -40
  83. package/lib/services/pusher/pusher-connection.service.d.ts +0 -24
  84. package/lib/services/pusher/pusher-message.service.d.ts +0 -13
  85. package/lib/services/pusher/pusher-notification.service.d.ts +0 -32
  86. package/lib/util/environment.d.ts +0 -18
  87. /package/lib/{util → services}/language.model.d.ts +0 -0
  88. /package/lib/{util → utils}/chatParameters.d.ts +0 -0
  89. /package/lib/{util → utils}/query-string-parameters.d.ts +0 -0
  90. /package/lib/{util → utils}/url-builder.d.ts +0 -0
@@ -0,0 +1,223 @@
1
+ import { NotificationsType } from "./notifications/notification-options";
2
+ export var ContentType;
3
+ (function (ContentType) {
4
+ ContentType["ADVICE"] = "App\\Advice";
5
+ ContentType["AGENDA"] = "App\\Agenda";
6
+ ContentType["DIET"] = "App\\Diet";
7
+ ContentType["GAMES"] = "App\\Game";
8
+ ContentType["MEDICATIONS_PLAN"] = "App\\MedicationPlan";
9
+ ContentType["MESSAGE"] = "App\\Message";
10
+ ContentType["NEW"] = "App\\News";
11
+ ContentType["REMINDER"] = "App\\Reminder";
12
+ ContentType["EXERCISE"] = "App\\Exercise";
13
+ ContentType["PROCEDURE"] = "App\\MedicalProcedure";
14
+ ContentType["DIAGNOSTIC_TEST"] = "App\\DiagnosticTest";
15
+ ContentType["LEVEL_ACCOMPLISHMENT"] = "App\\LevelAccomplishment";
16
+ })(ContentType || (ContentType = {}));
17
+ export var ContentTypePath;
18
+ (function (ContentTypePath) {
19
+ //ADVICES
20
+ ContentTypePath["Advices"] = "/tracking/advices";
21
+ ContentTypePath["AdvicesDetail"] = "/tracking/advices/advices-detail";
22
+ //AGENDA
23
+ ContentTypePath["Agenda"] = "/agenda";
24
+ ContentTypePath["AgendaDetail"] = "/agenda/detail";
25
+ //CHALLENGES
26
+ ContentTypePath["Challenges"] = "/tracking/profile/goals";
27
+ ContentTypePath["ChallengesDetail"] = "/home/health-path/detail";
28
+ //DIETS
29
+ ContentTypePath["Diets"] = "/tracking/journal";
30
+ ContentTypePath["DietsDetail"] = "/tracking/journal/diets-detail";
31
+ //EXERCISE
32
+ ContentTypePath["Exercises"] = "/tracking/exercices";
33
+ ContentTypePath["ExercisesDetail"] = "/tracking/exercices/exercices-detail";
34
+ //FORM
35
+ ContentTypePath["Forms"] = "/tracking/form-list";
36
+ ContentTypePath["FormDetail"] = "/tracking/form";
37
+ //GAME
38
+ ContentTypePath["Games"] = "/tracking/games";
39
+ ContentTypePath["GamesDetail"] = "/tracking/games/games-detail";
40
+ //GOALS
41
+ ContentTypePath["Goals"] = "/tracking/profile/goals";
42
+ //HOME
43
+ ContentTypePath["Home"] = "/home";
44
+ //LIFESTYLEHABITS
45
+ ContentTypePath["LifestyleHabits"] = "/tracking/lifestyle-habits";
46
+ //MEDICAL PROCEDURES
47
+ ContentTypePath["MedicalProcedure"] = "/tracking/procedures";
48
+ //MEDICAL TEST
49
+ ContentTypePath["MedicalTest"] = "/document-detail";
50
+ //MEDICATION
51
+ ContentTypePath["Medication"] = "/tracking/medication/";
52
+ ContentTypePath["MedicationDetail"] = "/drugs-detail";
53
+ //MESSAGE
54
+ ContentTypePath["Message"] = "/contact/chat/conversation";
55
+ //MONITORING
56
+ ContentTypePath["Monitoring"] = "/tracking/monitoring";
57
+ //NEWS
58
+ ContentTypePath["News"] = "/tracking/news";
59
+ ContentTypePath["NewsDetail"] = "/tracking/news/new-detail";
60
+ //REMINDERS
61
+ ContentTypePath["ReminderDetail"] = "/agenda/reminder";
62
+ //TESTIMONIALS
63
+ ContentTypePath["Testimonials"] = "/tracking/testimonials";
64
+ //TRACKING OR FOLLOW UP
65
+ ContentTypePath["Tracking"] = "/tracking";
66
+ //INFORMED COSENT
67
+ ContentTypePath["InformedConsent"] = "/tracking/informed-consent";
68
+ })(ContentTypePath || (ContentTypePath = {}));
69
+ export var ContentTypeIcons;
70
+ (function (ContentTypeIcons) {
71
+ ContentTypeIcons["Goals"] = "assets/images/shared-care-plan/goals.png";
72
+ ContentTypeIcons["LifestyleHabits"] = "assets/images/shared-care-plan/lifestyle.png";
73
+ ContentTypeIcons["Forms"] = "assets/images/shared-care-plan/forms.png";
74
+ ContentTypeIcons["Medication"] = "assets/images/shared-care-plan/medication.png";
75
+ ContentTypeIcons["MedicalProcedure"] = "assets/images/shared-care-plan/medicalProcedure.png";
76
+ ContentTypeIcons["Monitoring"] = "assets/images/shared-care-plan/healthcharts.png";
77
+ ContentTypeIcons["InformedConsent"] = "assets/images/shared-care-plan/news.png";
78
+ // LifeStyle
79
+ ContentTypeIcons["News"] = "assets/images/shared-care-plan/news.png";
80
+ ContentTypeIcons["Advices"] = "assets/images/shared-care-plan/advices.png";
81
+ ContentTypeIcons["Exercises"] = "assets/images/shared-care-plan/exercises.png";
82
+ ContentTypeIcons["Diets"] = "assets/images/shared-care-plan/diets.png";
83
+ ContentTypeIcons["Testimonials"] = "assets/images/shared-care-plan/testimonials.png";
84
+ ContentTypeIcons["Games"] = "assets/images/shared-care-plan/games.png";
85
+ //AddBUtton
86
+ ContentTypeIcons["buttonMeditalTest"] = "assets/images/shared-care-plan/flask.svg";
87
+ ContentTypeIcons["buttomTodayDrug"] = "assets/images/shared-care-plan/drug.svg";
88
+ ContentTypeIcons["buttomHealthCharts"] = "assets/images/shared-care-plan/medical.svg";
89
+ })(ContentTypeIcons || (ContentTypeIcons = {}));
90
+ export var ContentTypeTranslatedName;
91
+ (function (ContentTypeTranslatedName) {
92
+ ContentTypeTranslatedName["Goals"] = "goals.goals";
93
+ ContentTypeTranslatedName["LifestyleHabits"] = "lifestyle.header";
94
+ ContentTypeTranslatedName["Medication"] = "setting.subtitle_medication";
95
+ ContentTypeTranslatedName["Forms"] = "setting.subtitle_form";
96
+ ContentTypeTranslatedName["Monitoring"] = "shared_care_plan.monitoring";
97
+ ContentTypeTranslatedName["MedicalProcedure"] = "shared_care_plan.medical_procedure";
98
+ ContentTypeTranslatedName["InformedConsent"] = "shared_care_plan.informed_consent";
99
+ // LifeStyle
100
+ ContentTypeTranslatedName["News"] = "setting.subtitle_news";
101
+ ContentTypeTranslatedName["Advices"] = "setting.subtitle_advices";
102
+ ContentTypeTranslatedName["Exercises"] = "exercices.header";
103
+ ContentTypeTranslatedName["Diets"] = "setting.subtitle_diets";
104
+ ContentTypeTranslatedName["Testimonials"] = "setting.testimonials";
105
+ ContentTypeTranslatedName["Games"] = "setting.subtitle_games";
106
+ //AddButtons
107
+ ContentTypeTranslatedName["addButtonMeditaltest"] = "shared_care_plan.addButton.MedicalTest";
108
+ ContentTypeTranslatedName["addButtonTodayDrug"] = "shared_care_plan.addButton.Medication";
109
+ ContentTypeTranslatedName["addButtonHealthCharts"] = "shared_care_plan.addButton.HealthCharts";
110
+ })(ContentTypeTranslatedName || (ContentTypeTranslatedName = {}));
111
+ export const ListContentType = [
112
+ { img: ContentTypeIcons.Goals, icon: ContentTypeIcons.Goals, title: ContentTypeTranslatedName.Goals, description: "shared_care_plan.descriptionGL" /* ContentTypeDescription.descriptionGL */, type: NotificationsType.GOALS, state: '', boolean_state: false, routerlink: ContentTypePath.Goals },
113
+ { img: ContentTypeIcons.LifestyleHabits, icon: ContentTypeIcons.LifestyleHabits, title: ContentTypeTranslatedName.LifestyleHabits, description: "shared_care_plan.descriptionGL" /* ContentTypeDescription.descriptionGL */, type: NotificationsType.LIFE_STILE_HABITS, state: '', boolean_state: false, routerlink: ContentTypePath.LifestyleHabits },
114
+ { img: ContentTypeIcons.Forms, icon: ContentTypeIcons.Forms, title: ContentTypeTranslatedName.Forms, description: "shared_care_plan.descriptionForms" /* ContentTypeDescription.descriptionForms */, type: NotificationsType.FORMS, state: '', boolean_state: false, routerlink: ContentTypePath.Forms },
115
+ { img: ContentTypeIcons.Medication, icon: ContentTypeIcons.Medication, title: ContentTypeTranslatedName.Medication, description: "shared_care_plan.descriptionMMpHc" /* ContentTypeDescription.descriptionMMpHc */, type: NotificationsType.MEDICATIONS, state: '', boolean_state: false, routerlink: ContentTypePath.Medication },
116
+ { img: ContentTypeIcons.MedicalProcedure, icon: ContentTypeIcons.MedicalProcedure, title: ContentTypeTranslatedName.MedicalProcedure, description: "shared_care_plan.descriptionMMpHc" /* ContentTypeDescription.descriptionMMpHc */, type: NotificationsType.PROCEDURES, state: '', boolean_state: false, routerlink: ContentTypePath.MedicalProcedure },
117
+ { img: ContentTypeIcons.Monitoring, icon: ContentTypeIcons.Monitoring, title: ContentTypeTranslatedName.Monitoring, description: "shared_care_plan.descriptionMMpHc" /* ContentTypeDescription.descriptionMMpHc */, type: NotificationsType.MONITORING, state: '', boolean_state: false, routerlink: ContentTypePath.Monitoring },
118
+ //{icon: ContentTypeIcons.InformedConsent, title: ContentTypeTranslatedName.InformedConsent, description: ContentTypeDescription.Description, type: NotificationsType.INFORMED_CONSENT, state: '', boolean_state: false, routerlink: ContentTypePath.InformedConsent}
119
+ ];
120
+ export function setStatusContentType(status, content) {
121
+ let option = content.type;
122
+ switch (option) {
123
+ case NotificationsType.GOALS:
124
+ content.boolean_state = status[NotificationsType.GOALS];
125
+ break;
126
+ case NotificationsType.LIFE_STILE_HABITS:
127
+ content.boolean_state = status[NotificationsType.LIFE_STILE_HABITS];
128
+ break;
129
+ case NotificationsType.MEDICATIONS:
130
+ content.boolean_state = status[NotificationsType.MEDICATIONS];
131
+ break;
132
+ case NotificationsType.FORMS:
133
+ content.boolean_state = status[NotificationsType.FORMS];
134
+ break;
135
+ case NotificationsType.MONITORING:
136
+ content.boolean_state = status[NotificationsType.MONITORING];
137
+ break;
138
+ case NotificationsType.PROCEDURES:
139
+ content.boolean_state = status[NotificationsType.PROCEDURES];
140
+ break;
141
+ default:
142
+ break;
143
+ }
144
+ }
145
+ /**
146
+ * Goals of Shared care Plan
147
+ */
148
+ export var GoalStateName;
149
+ (function (GoalStateName) {
150
+ GoalStateName["APPROVED"] = "shared_care_plan.goal_state.approved";
151
+ GoalStateName["REJECTED"] = "shared_care_plan.goal_state.rejected";
152
+ GoalStateName["PENDING"] = "shared_care_plan.goal_state.pending";
153
+ })(GoalStateName || (GoalStateName = {}));
154
+ export var GoalStateColor;
155
+ (function (GoalStateColor) {
156
+ GoalStateColor["APPROVED"] = "#2ECC71";
157
+ GoalStateColor["REJECTED"] = "#E81111";
158
+ GoalStateColor["PENDING"] = "#FF8412";
159
+ })(GoalStateColor || (GoalStateColor = {}));
160
+ export var GoalStateIcons;
161
+ (function (GoalStateIcons) {
162
+ GoalStateIcons["APPROVED"] = "assets/icons/shared-care-plan/approved-icon.svg";
163
+ GoalStateIcons["REJECTED"] = "assets/icons/shared-care-plan/rejected-icon.svg";
164
+ GoalStateIcons["PENDING"] = "assets/icons/shared-care-plan/pending-icon.svg";
165
+ })(GoalStateIcons || (GoalStateIcons = {}));
166
+ export var GoalStateType;
167
+ (function (GoalStateType) {
168
+ GoalStateType["APPROVED"] = "approved";
169
+ GoalStateType["REJECTED"] = "rejected";
170
+ GoalStateType["PENDING"] = "pending";
171
+ GoalStateType["DECLINED"] = "declined";
172
+ GoalStateType["ACCEPTED"] = "accepted";
173
+ })(GoalStateType || (GoalStateType = {}));
174
+ export class GoalState {
175
+ constructor(state) {
176
+ this.state = state;
177
+ this.setGoalState(state);
178
+ }
179
+ setGoalState(state) {
180
+ switch (state) {
181
+ case GoalStateType.ACCEPTED || GoalStateType.APPROVED:
182
+ this.name = GoalStateName.APPROVED;
183
+ this.color = GoalStateColor.APPROVED;
184
+ this.icon = GoalStateIcons.APPROVED;
185
+ break;
186
+ case GoalStateType.DECLINED || GoalStateType.REJECTED:
187
+ this.name = GoalStateName.REJECTED;
188
+ this.color = GoalStateColor.REJECTED;
189
+ this.icon = GoalStateIcons.REJECTED;
190
+ break;
191
+ default:
192
+ this.name = GoalStateName.PENDING;
193
+ this.color = GoalStateColor.PENDING;
194
+ this.icon = GoalStateIcons.PENDING;
195
+ this.state = GoalStateType.PENDING;
196
+ break;
197
+ }
198
+ }
199
+ }
200
+ /**
201
+ * LifeStyle of Shared care Plan
202
+ */
203
+ export const ListSCPLifeStyle = [
204
+ { img: ContentTypeIcons.News, title: ContentTypeTranslatedName.News, type: NotificationsType.NEWS, id: "", traduction: "", subtitle: "shared_care_plan.descriptionNews" /* LifestyleHabitsTypeDescription.descriptionNews */ },
205
+ { img: ContentTypeIcons.Advices, title: ContentTypeTranslatedName.Advices, type: NotificationsType.ADVICES, id: "", traduction: "", subtitle: "shared_care_plan.descriptionAdvices" /* LifestyleHabitsTypeDescription.descriptionAdvices */ },
206
+ { img: ContentTypeIcons.Exercises, title: ContentTypeTranslatedName.Exercises, type: NotificationsType.EXERCISES, id: "", traduction: "", subtitle: "shared_care_plan.descriptionExercises" /* LifestyleHabitsTypeDescription.descriptionExercises */ },
207
+ { img: ContentTypeIcons.Diets, title: ContentTypeTranslatedName.Diets, type: NotificationsType.DIETS, id: "", traduction: "", subtitle: "shared_care_plan.descriptionDiets" /* LifestyleHabitsTypeDescription.descriptionDiets */ },
208
+ { img: ContentTypeIcons.Testimonials, title: ContentTypeTranslatedName.Testimonials, type: NotificationsType.TESTIMONIALS, id: "", traduction: "", subtitle: "shared_care_plan.descriptionTestimonials" /* LifestyleHabitsTypeDescription.descriptionTestimonials */ },
209
+ { img: ContentTypeIcons.Games, title: ContentTypeTranslatedName.Games, type: NotificationsType.GAMES, id: "", traduction: "", subtitle: "shared_care_plan.descriptionGames" /* LifestyleHabitsTypeDescription.descriptionGames */ },
210
+ ];
211
+ export var ACCESS_TYPE;
212
+ (function (ACCESS_TYPE) {
213
+ ACCESS_TYPE["IFRAME"] = "iframe";
214
+ ACCESS_TYPE["APP"] = "app";
215
+ ACCESS_TYPE["WINDOW"] = "windows-app";
216
+ })(ACCESS_TYPE || (ACCESS_TYPE = {}));
217
+ export const AddButtonList = [
218
+ { icon: ContentTypeIcons.buttonMeditalTest, title: ContentTypeTranslatedName.addButtonMeditaltest, type: NotificationsType.AddButtonMedicalTest, id: "" },
219
+ { icon: ContentTypeIcons.buttomTodayDrug, title: ContentTypeTranslatedName.addButtonTodayDrug, type: NotificationsType.AddButtonTodayDrug, id: "" },
220
+ { icon: ContentTypeIcons.buttomHealthCharts, title: ContentTypeTranslatedName.addButtonHealthCharts, type: NotificationsType.AddButtonHealthCharts, id: "" },
221
+ // {icon: ContentTypeIcons.Exercises, title: ContentTypeTranslatedName.Exercises, type:NotificationsType.EXERCISES, id:""},
222
+ ];
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcmVkLWNhcmUtcGxhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlcnZpY2UtbGliL3NyYy9saWIvbW9kZWxzL3NoYXJlZC1jYXJlLXBsYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFekUsTUFBTSxDQUFOLElBQVksV0FhWDtBQWJELFdBQVksV0FBVztJQUNuQixxQ0FBc0IsQ0FBQTtJQUN0QixxQ0FBc0IsQ0FBQTtJQUN0QixpQ0FBa0IsQ0FBQTtJQUNsQixrQ0FBb0IsQ0FBQTtJQUNwQix1REFBd0MsQ0FBQTtJQUN4Qyx1Q0FBd0IsQ0FBQTtJQUN4QixnQ0FBaUIsQ0FBQTtJQUNqQix5Q0FBMEIsQ0FBQTtJQUMxQix5Q0FBMEIsQ0FBQTtJQUMxQixrREFBbUMsQ0FBQTtJQUNuQyxzREFBdUMsQ0FBQTtJQUN2QyxnRUFBaUQsQ0FBQTtBQUNyRCxDQUFDLEVBYlcsV0FBVyxLQUFYLFdBQVcsUUFhdEI7QUFFRCxNQUFNLENBQU4sSUFBWSxlQW1EWDtBQW5ERCxXQUFZLGVBQWU7SUFDdkIsU0FBUztJQUNULGdEQUE2QixDQUFBO0lBQzdCLHFFQUEwQyxDQUFBO0lBQzFDLFFBQVE7SUFDUixxQ0FBa0IsQ0FBQTtJQUNsQixrREFBK0IsQ0FBQTtJQUMvQixZQUFZO0lBQ1oseURBQXNDLENBQUE7SUFDdEMsZ0VBQTZDLENBQUE7SUFDN0MsUUFBUTtJQUNSLDhDQUEwQixDQUFBO0lBQzFCLGlFQUFvQyxDQUFBO0lBQ3BDLFVBQVU7SUFDVixvREFBZ0MsQ0FBQTtJQUNoQywyRUFBaUQsQ0FBQTtJQUNqRCxNQUFNO0lBQ04sZ0RBQTRCLENBQUE7SUFDNUIsZ0RBQTZCLENBQUE7SUFDN0IsU0FBUztJQUNULDRDQUF3QixDQUFBO0lBQ3hCLCtEQUFxQyxDQUFBO0lBQ3JDLFdBQVc7SUFDWCxvREFBaUMsQ0FBQTtJQUNq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LEVBQUUsaUJBQWlCLENBQUMscUJBQXFCLEVBQUUsRUFBRSxFQUFDLEVBQUUsRUFBQztJQUUxSiw0SEFBNEg7Q0FFL0gsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc1R5cGUgfSBmcm9tIFwiLi9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi1vcHRpb25zXCI7XG5cbmV4cG9ydCBlbnVtIENvbnRlbnRUeXBlIHtcbiAgICBBRFZJQ0UgPSBcIkFwcFxcXFxBZHZpY2VcIixcbiAgICBBR0VOREEgPSBcIkFwcFxcXFxBZ2VuZGFcIixcbiAgICBESUVUID0gXCJBcHBcXFxcRGlldFwiLFxuICAgIEdBTUVTID0gIFwiQXBwXFxcXEdhbWVcIixcbiAgICBNRURJQ0FUSU9OU19QTEFOID0gXCJBcHBcXFxcTWVkaWNhdGlvblBsYW5cIixcbiAgICBNRVNTQUdFID0gXCJBcHBcXFxcTWVzc2FnZVwiLFxuICAgIE5FVyA9IFwiQXBwXFxcXE5ld3NcIixcbiAgICBSRU1JTkRFUiA9IFwiQXBwXFxcXFJlbWluZGVyXCIsXG4gICAgRVhFUkNJU0UgPSBcIkFwcFxcXFxFeGVyY2lzZVwiLFxuICAgIFBST0NFRFVSRSA9IFwiQXBwXFxcXE1lZGljYWxQcm9jZWR1cmVcIixcbiAgICBESUFHTk9TVElDX1RFU1QgPSBcIkFwcFxcXFxEaWFnbm9zdGljVGVzdFwiLFxuICAgIExFVkVMX0FDQ09NUExJU0hNRU5UID0gXCJBcHBcXFxcTGV2ZWxBY2NvbXBsaXNobWVudFwiXG59XG5cbmV4cG9ydCBlbnVtIENvbnRlbnRUeXBlUGF0aCB7XG4gICAgLy9BRFZJQ0VTXG4gICAgQWR2aWNlcyA9ICcvdHJhY2tpbmcvYWR2aWNlcycsXG4gICAgQWR2aWNlc0RldGFpbD0gQWR2aWNlcyArICcvYWR2aWNlcy1kZXRhaWwnLFxuICAgIC8vQUdFTkRBXG4gICAgQWdlbmRhID0gJy9hZ2VuZGEnLFxuICAgIEFnZW5kYURldGFpbCA9ICcvYWdlbmRhL2RldGFpbCcsXG4gICAgLy9DSEFMTEVOR0VTXG4gICAgQ2hhbGxlbmdlcyA9ICcvdHJhY2tpbmcvcHJvZmlsZS9nb2FscycsXG4gICAgQ2hhbGxlbmdlc0RldGFpbCA9ICcvaG9tZS9oZWFsdGgtcGF0aC9kZXRhaWwnLFxuICAgIC8vRElFVFMgXG4gICAgRGlldHM9ICcvdHJhY2tpbmcvam91cm5hbCcsIFxuICAgIERpZXRzRGV0YWlsPSBEaWV0cyArICcvZGlldHMtZGV0YWlsJyxcbiAgICAvL0VYRVJDSVNFXG4gICAgRXhlcmNpc2VzPSAnL3RyYWNraW5nL2V4ZXJjaWNlcycsIFxuICAgIEV4ZXJjaXNlc0RldGFpbCA9IEV4ZXJjaXNlcyArICcvZXhlcmNpY2VzLWRldGFpbCcsXG4gICAgLy9GT1JNXG4gICAgRm9ybXM9ICcvdHJhY2tpbmcvZm9ybS1saXN0JywgXG4gICAgRm9ybURldGFpbCA9ICcvdHJhY2tpbmcvZm9ybScsXG4gICAgLy9HQU1FICAgXG4gICAgR2FtZXM9ICcvdHJhY2tpbmcvZ2FtZXMnLCBcbiAgICBHYW1lc0RldGFpbCA9IEdhbWVzICsgJy9nYW1lcy1kZXRhaWwnLFxuICAgIC8vR09BTFMgICAgXG4gICAgR29hbHMgPSAnL3RyYWNraW5nL3Byb2ZpbGUvZ29hbHMnLFxuICAgIC8vSE9NRVxuICAgIEhvbWUgPSAnL2hvbWUnLFxuICAgIC8vTElGRVNUWUxFSEFCSVRTXG4gICAgTGlmZXN0eWxlSGFiaXRzID0gJy90cmFja2luZy9saWZlc3R5bGUtaGFiaXRzJyxcbiAgICAvL01FRElDQUwgUFJPQ0VEVVJFU1xuICAgIE1lZGljYWxQcm9jZWR1cmU9ICcvdHJhY2tpbmcvcHJvY2VkdXJlcycsIFxuICAgIC8vTUVESUNBTCBURVNUXG4gICAgTWVkaWNhbFRlc3Q9ICcvZG9jdW1lbnQtZGV0YWlsJywgXG4gICAgLy9NRURJQ0FUSU9OXG4gICAgTWVkaWNhdGlvbj0gJy90cmFja2luZy9tZWRpY2F0aW9uLycsIFxuICAgIE1lZGljYXRpb25EZXRhaWwgPSAnL2RydWdzLWRldGFpbCcsIC8vIE1lZGljYXRpb24gUGxhblxuICAgIC8vTUVTU0FHRVxuICAgIE1lc3NhZ2UgPSAnL2NvbnRhY3QvY2hhdC9jb252ZXJzYXRpb24nLFxuICAgIC8vTU9OSVRPUklOR1xuICAgIE1vbml0b3Jpbmc9ICcvdHJhY2tpbmcvbW9uaXRvcmluZycsIFxuICAgIC8vTkVXU1xuICAgIE5ld3MgPSAnL3RyYWNraW5nL25ld3MnLFxuICAgIE5ld3NEZXRhaWwgPSBOZXdzICsgJy9uZXctZGV0YWlsJyxcbiAgICAvL1JFTUlOREVSU1xuICAgIFJlbWluZGVyRGV0YWlsID0gJy9hZ2VuZGEvcmVtaW5kZXInLFxuICAgIC8vVEVTVElNT05JQUxTXG4gICAgVGVzdGltb25pYWxzPSAnL3RyYWNraW5nL3Rlc3RpbW9uaWFscycsXG4gICAgLy9UUkFDS0lORyBPUiBGT0xMT1cgVVBcbiAgICBUcmFja2luZz0gJy90cmFja2luZycsXG4gICAgLy9JTkZPUk1FRCBDT1NFTlRcbiAgICBJbmZvcm1lZENvbnNlbnQgPSAnL3RyYWNraW5nL2luZm9ybWVkLWNvbnNlbnQnLCBcblxufVxuXG5leHBvcnQgZW51bSBDb250ZW50VHlwZUljb25zIHtcbiAgICBHb2FscyA9ICdhc3NldHMvaW1hZ2VzL3NoYXJlZC1jYXJlLXBsYW4vZ29hbHMucG5nJyxcbiAgICBMaWZlc3R5bGVIYWJpdHMgPSAnYXNzZXRzL2ltYWdlcy9zaGFyZWQtY2FyZS1wbGFuL2xpZmVzdHlsZS5wbmcnLFxuICAgIEZvcm1zID0gJ2Fzc2V0cy9pbWFnZXMvc2hhcmVkLWNhcmUtcGxhbi9mb3Jtcy5wbmcnLFxuICAgIE1lZGljYXRpb24gPSAnYXNzZXRzL2ltYWdlcy9zaGFyZWQtY2FyZS1wbGFuL21lZGljYXRpb24ucG5nJyxcbiAgICBNZWRpY2FsUHJvY2VkdXJlID0gJ2Fzc2V0cy9pbWFnZXMvc2hhcmVkLWNhcmUtcGxhbi9tZWRpY2FsUHJvY2VkdXJlLnBuZycsXG4gICAgTW9uaXRvcmluZyA9ICdhc3NldHMvaW1hZ2VzL3NoYXJlZC1jYXJlLXBsYW4vaGVhbHRoY2hhcnRzLnBuZycsXG4gICBcbiAgICBJbmZvcm1lZENvbnNlbnQgPSAnYXNzZXRzL2ltYWdlcy9zaGFyZWQtY2FyZS1wbGFuL25ld3MucG5nJyxcbiAgICAvLyBMaWZlU3R5bGVcbiAgICBOZXdzID0gICdhc3NldHMvaW1hZ2VzL3NoYXJlZC1jYXJlLXBsYW4vbmV3cy5wbmcnLFxuICAgIEFkdmljZXMgPSAnYXNzZXRzL2ltYWdlcy9zaGFyZWQtY2FyZS1wbGFuL2FkdmljZXMucG5nJyxcbiAgICBFeGVyY2lzZXM9ICdhc3NldHMvaW1hZ2VzL3NoYXJlZC1jYXJlLXBsYW4vZXhlcmNpc2VzLnBuZycsXG4gICAgRGlldHM9ICdhc3NldHMvaW1hZ2VzL3NoYXJlZC1jYXJlLXBsYW4vZGlldHMucG5nJywgIFxuICAgIFRlc3RpbW9uaWFscz0gJ2Fzc2V0cy9pbWFnZXMvc2hhcmVkLWNhcmUtcGxhbi90ZXN0aW1vbmlhbHMucG5nJywgXG4gICAgR2FtZXM9ICdhc3NldHMvaW1hZ2VzL3NoYXJlZC1jYXJlLXBsYW4vZ2FtZXMucG5nJywgIFxuXG4gICAgLy9BZGRCVXR0b25cbiAgICBidXR0b25NZWRpdGFsVGVzdD0gJ2Fzc2V0cy9pbWFnZXMvc2hhcmVkLWNhcmUtcGxhbi9mbGFzay5zdmcnLFxuICAgIGJ1dHRvbVRvZGF5RHJ1ZyA9ICdhc3NldHMvaW1hZ2VzL3NoYXJlZC1jYXJlLXBsYW4vZHJ1Zy5zdmcnLFxuICAgIGJ1dHRvbUhlYWx0aENoYXJ0cyA9ICdhc3NldHMvaW1hZ2VzL3NoYXJlZC1jYXJlLXBsYW4vbWVkaWNhbC5zdmcnXG59XG5cbmV4cG9ydCBlbnVtIENvbnRlbnRUeXBlVHJhbnNsYXRlZE5hbWUge1xuICAgIEdvYWxzID0gJ2dvYWxzLmdvYWxzJyxcbiAgICBMaWZlc3R5bGVIYWJpdHMgPSAnbGlmZXN0eWxlLmhlYWRlcicsXG4gICAgTWVkaWNhdGlvbiA9ICdzZXR0aW5nLnN1YnRpdGxlX21lZGljYXRpb24nLFxuICAgIEZvcm1zID0gJ3NldHRpbmcuc3VidGl0bGVfZm9ybScsXG4gICAgTW9uaXRvcmluZyA9ICdzaGFyZWRfY2FyZV9wbGFuLm1vbml0b3JpbmcnLFxuICAgIE1lZGljYWxQcm9jZWR1cmUgPSAnc2hhcmVkX2NhcmVfcGxhbi5tZWRpY2FsX3Byb2NlZHVyZScsXG4gICAgSW5mb3JtZWRDb25zZW50ID0gJ3NoYXJlZF9jYXJlX3BsYW4uaW5mb3JtZWRfY29uc2VudCcsXG4gICAgLy8gTGlmZVN0eWxlXG4gICAgTmV3cyA9ICdzZXR0aW5nLnN1YnRpdGxlX25ld3MnLFxuICAgIEFkdmljZXMgPSAnc2V0dGluZy5zdWJ0aXRsZV9hZHZpY2VzJyxcbiAgICBFeGVyY2lzZXM9ICdleGVyY2ljZXMuaGVhZGVyJywgXG4gICAgRGlldHM9ICdzZXR0aW5nLnN1YnRpdGxlX2RpZXRzJywgXG4gICAgVGVzdGltb25pYWxzPSAnc2V0dGluZy50ZXN0aW1vbmlhbHMnLFxuICAgIEdhbWVzPSAnc2V0dGluZy5zdWJ0aXRsZV9nYW1lcycsIFxuICAgXG5cbiAgICAvL0FkZEJ1dHRvbnNcbiAgICBhZGRCdXR0b25NZWRpdGFsdGVzdCA9ICdzaGFyZWRfY2FyZV9wbGFuLmFkZEJ1dHRvbi5NZWRpY2FsVGVzdCcsXG4gICAgYWRkQnV0dG9uVG9kYXlEcnVnPSAnc2hhcmVkX2NhcmVfcGxhbi5hZGRCdXR0b24uTWVkaWNhdGlvbicsXG4gICAgYWRkQnV0dG9uSGVhbHRoQ2hhcnRzPSAnc2hhcmVkX2NhcmVfcGxhbi5hZGRCdXR0b24uSGVhbHRoQ2hhcnRzJyxcbiAgICBcblxufVxuXG5kZWNsYXJlIGNvbnN0IGVudW0gQ29udGVudFR5cGVEZXNjcmlwdGlvbiB7XG4gICAgZGVzY3JpcHRpb25HTCA9ICdzaGFyZWRfY2FyZV9wbGFuLmRlc2NyaXB0aW9uR0wnLFxuICAgIGRlc2NyaXB0aW9uRm9ybXM9ICdzaGFyZWRfY2FyZV9wbGFuLmRlc2NyaXB0aW9uRm9ybXMnLFxuICAgIGRlc2NyaXB0aW9uTU1wSGM9ICdzaGFyZWRfY2FyZV9wbGFuLmRlc2NyaXB0aW9uTU1wSGMnLFxufVxuXG5kZWNsYXJlIGNvbnN0IGVudW0gTGlmZXN0eWxlSGFiaXRzVHlwZURlc2NyaXB0aW9uIHtcbiAgICBkZXNjcmlwdGlvbk5ld3MgPSAnc2hhcmVkX2NhcmVfcGxhbi5kZXNjcmlwdGlvbk5ld3MnLFxuICAgIGRlc2NyaXB0aW9uQWR2aWNlcz0gJ3NoYXJlZF9jYXJlX3BsYW4uZGVzY3JpcHRpb25BZHZpY2VzJyxcbiAgICBkZXNjcmlwdGlvbkV4ZXJjaXNlcz0gJ3NoYXJlZF9jYXJlX3BsYW4uZGVzY3JpcHRpb25FeGVyY2lzZXMnLFxuICAgIGRlc2NyaXB0aW9uRGlldHM9ICdzaGFyZWRfY2FyZV9wbGFuLmRlc2NyaXB0aW9uRGlldHMnLFxuICAgIGRlc2NyaXB0aW9uVGVzdGltb25pYWxzPSAnc2hhcmVkX2NhcmVfcGxhbi5kZXNjcmlwdGlvblRlc3RpbW9uaWFscycsXG4gICAgZGVzY3JpcHRpb25HYW1lcz0gJ3NoYXJlZF9jYXJlX3BsYW4uZGVzY3JpcHRpb25HYW1lcycsXG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb250ZW50Q29tcG9uZW50IHtcbiAgICBpbWc/OiBzdHJpbmc7XG4gICAgaWNvbj86IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZztcbiAgICBzdGF0ZT86IHN0cmluZyB8IGJvb2xlYW47XG4gICAgcm91dGVybGluaz86IHN0cmluZyB8IGFueVxufVxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRDYXJlUGxhbiBleHRlbmRzIENvbnRlbnRDb21wb25lbnQge1xuICAgIGJvb2xlYW5fc3RhdGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNDUENvbnRlbnRUeXBlIHtcbiAgICBbeDogc3RyaW5nXTogYW55O1xuICAgIFtpZDogbnVtYmVyXTogU2hhcmVkQ2FyZVBsYW5cbn1cblxuZXhwb3J0IGNvbnN0IExpc3RDb250ZW50VHlwZTogU0NQQ29udGVudFR5cGUgPSBbXG4gICAge2ltZzogQ29udGVudFR5cGVJY29ucy5Hb2FscywgaWNvbjogQ29udGVudFR5cGVJY29ucy5Hb2FscywgdGl0bGU6IENvbnRlbnRUeXBlVHJhbnNsYXRlZE5hbWUuR29hbHMsIGRlc2NyaXB0aW9uOiBDb250ZW50VHlwZURlc2NyaXB0aW9uLmRlc2NyaXB0aW9uR0wsIHR5cGU6IE5vdGlmaWNhdGlvbnNUeXBlLkdPQUxTLCBzdGF0ZTogJycsIGJvb2xlYW5fc3RhdGU6IGZhbHNlLCByb3V0ZXJsaW5rOiBDb250ZW50VHlwZVBhdGguR29hbHN9LFxuICAgIHtpbWc6IENvbnRlbnRUeXBlSWNvbnMuTGlmZXN0eWxlSGFiaXRzLCBpY29uOiBDb250ZW50VHlwZUljb25zLkxpZmVzdHlsZUhhYml0cywgdGl0bGU6IENvbnRlbnRUeXBlVHJhbnNsYXRlZE5hbWUuTGlmZXN0eWxlSGFiaXRzLCBkZXNjcmlwdGlvbjogQ29udGVudFR5cGVEZXNjcmlwdGlvbi5kZXNjcmlwdGlvbkdMLCB0eXBlOiBOb3RpZmljYXRpb25zVHlwZS5MSUZFX1NUSUxFX0hBQklUUywgc3RhdGU6ICcnLCBib29sZWFuX3N0YXRlOiBmYWxzZSwgcm91dGVybGluazogQ29udGVudFR5cGVQYXRoLkxpZmVzdHlsZUhhYml0c30sXG4gICAge2ltZzogQ29udGVudFR5cGVJY29ucy5Gb3JtcywgaWNvbjogQ29udGVudFR5cGVJY29ucy5Gb3JtcywgdGl0bGU6IENvbnRlbnRUeXBlVHJhbnNsYXRlZE5hbWUuRm9ybXMsIGRlc2NyaXB0aW9uOiBDb250ZW50VHlwZURlc2NyaXB0aW9uLmRlc2NyaXB0aW9uRm9ybXMsIHR5cGU6IE5vdGlmaWNhdGlvbnNUeXBlLkZPUk1TLCBzdGF0ZTogJycsIGJvb2xlYW5fc3RhdGU6IGZhbHNlLCByb3V0ZXJsaW5rOiBDb250ZW50VHlwZVBhdGguRm9ybXN9LFxuICAgIHtpbWc6IENvbnRlbnRUeXBlSWNvbnMuTWVkaWNhdGlvbiwgaWNvbjogQ29udGVudFR5cGVJY29ucy5NZWRpY2F0aW9uLCB0aXRsZTpDb250ZW50VHlwZVRyYW5zbGF0ZWROYW1lLk1lZGljYXRpb24sIGRlc2NyaXB0aW9uOiBDb250ZW50VHlwZURlc2NyaXB0aW9uLmRlc2NyaXB0aW9uTU1wSGMsIHR5cGU6IE5vdGlmaWNhdGlvbnNUeXBlLk1FRElDQVRJT05TLCBzdGF0ZTogJycsIGJvb2xlYW5fc3RhdGU6IGZhbHNlLCByb3V0ZXJsaW5rOiBDb250ZW50VHlwZVBhdGguTWVkaWNhdGlvbn0sXG4gICAge2ltZzogQ29udGVudFR5cGVJY29ucy5NZWRpY2FsUHJvY2VkdXJlLCBpY29uOiBDb250ZW50VHlwZUljb25zLk1lZGljYWxQcm9jZWR1cmUsIHRpdGxlOiBDb250ZW50VHlwZVRyYW5zbGF0ZWROYW1lLk1lZGljYWxQcm9jZWR1cmUsIGRlc2NyaXB0aW9uOiBDb250ZW50VHlwZURlc2NyaXB0aW9uLmRlc2NyaXB0aW9uTU1wSGMsIHR5cGU6IE5vdGlmaWNhdGlvbnNUeXBlLlBST0NFRFVSRVMsIHN0YXRlOiAnJywgYm9vbGVhbl9zdGF0ZTogZmFsc2UsIHJvdXRlcmxpbms6IENvbnRlbnRUeXBlUGF0aC5NZWRpY2FsUHJvY2VkdXJlfSxcbiAgICB7aW1nOiBDb250ZW50VHlwZUljb25zLk1vbml0b3JpbmcsIGljb246IENvbnRlbnRUeXBlSWNvbnMuTW9uaXRvcmluZywgdGl0bGU6IENvbnRlbnRUeXBlVHJhbnNsYXRlZE5hbWUuTW9uaXRvcmluZywgZGVzY3JpcHRpb246IENvbnRlbnRUeXBlRGVzY3JpcHRpb24uZGVzY3JpcHRpb25NTXBIYywgdHlwZTogTm90aWZpY2F0aW9uc1R5cGUuTU9OSVRPUklORywgc3RhdGU6ICcnLCBib29sZWFuX3N0YXRlOiBmYWxzZSwgcm91dGVybGluazogQ29udGVudFR5cGVQYXRoLk1vbml0b3Jpbmd9LFxuICAgLy97aWNvbjogQ29udGVudFR5cGVJY29ucy5JbmZvcm1lZENvbnNlbnQsIHRpdGxlOiBDb250ZW50VHlwZVRyYW5zbGF0ZWROYW1lLkluZm9ybWVkQ29uc2VudCwgZGVzY3JpcHRpb246IENvbnRlbnRUeXBlRGVzY3JpcHRpb24uRGVzY3JpcHRpb24sIHR5cGU6IE5vdGlmaWNhdGlvbnNUeXBlLklORk9STUVEX0NPTlNFTlQsIHN0YXRlOiAnJywgYm9vbGVhbl9zdGF0ZTogZmFsc2UsIHJvdXRlcmxpbms6IENvbnRlbnRUeXBlUGF0aC5JbmZvcm1lZENvbnNlbnR9XG5dXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTdGF0dXNDb250ZW50VHlwZShzdGF0dXMsIGNvbnRlbnQ6U2hhcmVkQ2FyZVBsYW4pe1xuICAgIFxuICAgIGxldCBvcHRpb24gPSBjb250ZW50LnR5cGVcbiAgICBzd2l0Y2ggKG9wdGlvbikge1xuICAgICAgICBjYXNlIE5vdGlmaWNhdGlvbnNUeXBlLkdPQUxTOlxuICAgICAgICAgICAgY29udGVudC5ib29sZWFuX3N0YXRlID0gc3RhdHVzW05vdGlmaWNhdGlvbnNUeXBlLkdPQUxTXVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgTm90aWZpY2F0aW9uc1R5cGUuTElGRV9TVElMRV9IQUJJVFM6XG4gICAgICAgICAgICBjb250ZW50LmJvb2xlYW5fc3RhdGUgPSBzdGF0dXNbTm90aWZpY2F0aW9uc1R5cGUuTElGRV9TVElMRV9IQUJJVFNdXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBOb3RpZmljYXRpb25zVHlwZS5NRURJQ0FUSU9OUzpcbiAgICAgICAgICAgIGNvbnRlbnQuYm9vbGVhbl9zdGF0ZSA9IHN0YXR1c1tOb3RpZmljYXRpb25zVHlwZS5NRURJQ0FUSU9OU11cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIE5vdGlmaWNhdGlvbnNUeXBlLkZPUk1TOlxuICAgICAgICAgICAgY29udGVudC5ib29sZWFuX3N0YXRlID0gc3RhdHVzW05vdGlmaWNhdGlvbnNUeXBlLkZPUk1TXVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgTm90aWZpY2F0aW9uc1R5cGUuTU9OSVRPUklORzpcbiAgICAgICAgICAgIGNvbnRlbnQuYm9vbGVhbl9zdGF0ZSA9IHN0YXR1c1tOb3RpZmljYXRpb25zVHlwZS5NT05JVE9SSU5HXVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgTm90aWZpY2F0aW9uc1R5cGUuUFJPQ0VEVVJFUzpcbiAgICAgICAgICAgIGNvbnRlbnQuYm9vbGVhbl9zdGF0ZSA9IHN0YXR1c1tOb3RpZmljYXRpb25zVHlwZS5QUk9DRURVUkVTXVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG59XG5cbi8qKlxuICogR29hbHMgb2YgU2hhcmVkIGNhcmUgUGxhblxuICovXG5cbmV4cG9ydCBlbnVtIEdvYWxTdGF0ZU5hbWUge1xuICAgIEFQUFJPVkVEID0gJ3NoYXJlZF9jYXJlX3BsYW4uZ29hbF9zdGF0ZS5hcHByb3ZlZCcsXG4gICAgUkVKRUNURUQgPSAnc2hhcmVkX2NhcmVfcGxhbi5nb2FsX3N0YXRlLnJlamVjdGVkJyxcbiAgICBQRU5ESU5HID0gJ3NoYXJlZF9jYXJlX3BsYW4uZ29hbF9zdGF0ZS5wZW5kaW5nJ1xufVxuXG5leHBvcnQgZW51bSBHb2FsU3RhdGVDb2xvciB7XG4gICAgQVBQUk9WRUQgPSAnIzJFQ0M3MScsXG4gICAgUkVKRUNURUQgPSAnI0U4MTExMScsXG4gICAgUEVORElORyA9ICcjRkY4NDEyJ1xufVxuXG5leHBvcnQgZW51bSBHb2FsU3RhdGVJY29ucyB7XG4gICAgQVBQUk9WRUQgPSAnYXNzZXRzL2ljb25zL3NoYXJlZC1jYXJlLXBsYW4vYXBwcm92ZWQtaWNvbi5zdmcnLFxuICAgIFJFSkVDVEVEID0gJ2Fzc2V0cy9pY29ucy9zaGFyZWQtY2FyZS1wbGFuL3JlamVjdGVkLWljb24uc3ZnJyxcbiAgICBQRU5ESU5HID0gJ2Fzc2V0cy9pY29ucy9zaGFyZWQtY2FyZS1wbGFuL3BlbmRpbmctaWNvbi5zdmcnLFxufVxuXG5leHBvcnQgZW51bSBHb2FsU3RhdGVUeXBlIHtcbiAgICBBUFBST1ZFRCA9ICdhcHByb3ZlZCcsXG4gICAgUkVKRUNURUQgPSAncmVqZWN0ZWQnLFxuICAgIFBFTkRJTkcgPSAncGVuZGluZycsXG4gICAgREVDTElORUQgPSAnZGVjbGluZWQnLFxuICAgIEFDQ0VQVEVEID0gJ2FjY2VwdGVkJ1xufVxuXG5leHBvcnQgY2xhc3MgR29hbFN0YXRlIHtcbiAgICBpY29uOiBzdHJpbmc7XG4gICAgY29sb3I6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7IFxuICAgIHN0YXRlPzogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3Ioc3RhdGUpe1xuICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgICAgIHRoaXMuc2V0R29hbFN0YXRlKHN0YXRlKVxuICAgICAgICBcbiAgICB9XG5cbiAgICBzZXRHb2FsU3RhdGUoc3RhdGUpe1xuICAgICAgICBzd2l0Y2ggKHN0YXRlKSB7XG4gICAgICAgICAgICBjYXNlIEdvYWxTdGF0ZVR5cGUuQUNDRVBURUQgfHwgR29hbFN0YXRlVHlwZS5BUFBST1ZFRDpcbiAgICAgICAgICAgICAgICB0aGlzLm5hbWUgPSBHb2FsU3RhdGVOYW1lLkFQUFJPVkVEXG4gICAgICAgICAgICAgICAgdGhpcy5jb2xvciA9IEdvYWxTdGF0ZUNvbG9yLkFQUFJPVkVEXG4gICAgICAgICAgICAgICAgdGhpcy5pY29uID0gR29hbFN0YXRlSWNvbnMuQVBQUk9WRURcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgR29hbFN0YXRlVHlwZS5ERUNMSU5FRCB8fCAgR29hbFN0YXRlVHlwZS5SRUpFQ1RFRDpcbiAgICAgICAgICAgICAgICB0aGlzLm5hbWUgPSBHb2FsU3RhdGVOYW1lLlJFSkVDVEVEXG4gICAgICAgICAgICAgICAgdGhpcy5jb2xvciA9IEdvYWxTdGF0ZUNvbG9yLlJFSkVDVEVEXG4gICAgICAgICAgICAgICAgdGhpcy5pY29uID0gR29hbFN0YXRlSWNvbnMuUkVKRUNURURcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5uYW1lID0gR29hbFN0YXRlTmFtZS5QRU5ESU5HXG4gICAgICAgICAgICAgICAgdGhpcy5jb2xvciA9IEdvYWxTdGF0ZUNvbG9yLlBFTkRJTkdcbiAgICAgICAgICAgICAgICB0aGlzLmljb24gPSBHb2FsU3RhdGVJY29ucy5QRU5ESU5HXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9IEdvYWxTdGF0ZVR5cGUuUEVORElOR1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZENhcmVQbGFuR29hbCBleHRlbmRzIFNoYXJlZENhcmVQbGFuICB7XG4gICAgaWQ/OiBzdHJpbmcgfCBudW1iZXI7XG4gICAgZGF0ZTogc3RyaW5nO1xuICAgIHBlcmNlbnRhZ2U6IHN0cmluZyB8IG51bWJlcjtcbiAgICBpc19uZXdfY29udGVudDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBMaWZlU3R5bGUgb2YgU2hhcmVkIGNhcmUgUGxhblxuICovXG5cbmV4cG9ydCBjb25zdCBMaXN0U0NQTGlmZVN0eWxlOiBTaGFyZWRDYXJlUGxhbkxpZmVTdHlsZSBbXSA9IFtcbiAgICB7aW1nOiBDb250ZW50VHlwZUljb25zLk5ld3MsIHRpdGxlOiBDb250ZW50VHlwZVRyYW5zbGF0ZWROYW1lLk5ld3MsICB0eXBlOiBOb3RpZmljYXRpb25zVHlwZS5ORVdTLCBpZDpcIlwiLCB0cmFkdWN0aW9uOiBcIlwiLCBzdWJ0aXRsZTogTGlmZXN0eWxlSGFiaXRzVHlwZURlc2NyaXB0aW9uLmRlc2NyaXB0aW9uTmV3cyB9LFxuICAgIHtpbWc6IENvbnRlbnRUeXBlSWNvbnMuQWR2aWNlcywgdGl0bGU6IENvbnRlbnRUeXBlVHJhbnNsYXRlZE5hbWUuQWR2aWNlcywgIHR5cGU6IE5vdGlmaWNhdGlvbnNUeXBlLkFEVklDRVMsIGlkOlwiXCIsIHRyYWR1Y3Rpb246IFwiXCIsIHN1YnRpdGxlOiBMaWZlc3R5bGVIYWJpdHNUeXBlRGVzY3JpcHRpb24uZGVzY3JpcHRpb25BZHZpY2VzfSxcbiAgICB7aW1nOiBDb250ZW50VHlwZUljb25zLkV4ZXJjaXNlcywgdGl0bGU6IENvbnRlbnRUeXBlVHJhbnNsYXRlZE5hbWUuRXhlcmNpc2VzLCAgdHlwZTpOb3RpZmljYXRpb25zVHlwZS5FWEVSQ0lTRVMsIGlkOlwiXCIsIHRyYWR1Y3Rpb246IFwiXCIsIHN1YnRpdGxlOiBMaWZlc3R5bGVIYWJpdHNUeXBlRGVzY3JpcHRpb24uZGVzY3JpcHRpb25FeGVyY2lzZXN9LFxuICAgIHtpbWc6IENvbnRlbnRUeXBlSWNvbnMuRGlldHMsIHRpdGxlOiBDb250ZW50VHlwZVRyYW5zbGF0ZWROYW1lLkRpZXRzLCAgdHlwZTpOb3RpZmljYXRpb25zVHlwZS5ESUVUUywgaWQ6XCJcIiwgdHJhZHVjdGlvbjogXCJcIiwgc3VidGl0bGU6IExpZmVzdHlsZUhhYml0c1R5cGVEZXNjcmlwdGlvbi5kZXNjcmlwdGlvbkRpZXRzfSxcbiAgICB7aW1nOiBDb250ZW50VHlwZUljb25zLlRlc3RpbW9uaWFscywgdGl0bGU6IENvbnRlbnRUeXBlVHJhbnNsYXRlZE5hbWUuVGVzdGltb25pYWxzLCAgdHlwZTpOb3RpZmljYXRpb25zVHlwZS5URVNUSU1PTklBTFMsIGlkOlwiXCIsIHRyYWR1Y3Rpb246IFwiXCIsIHN1YnRpdGxlOiBMaWZlc3R5bGVIYWJpdHNUeXBlRGVzY3JpcHRpb24uZGVzY3JpcHRpb25UZXN0aW1vbmlhbHN9LFxuICAgIHtpbWc6IENvbnRlbnRUeXBlSWNvbnMuR2FtZXMsIHRpdGxlOiBDb250ZW50VHlwZVRyYW5zbGF0ZWROYW1lLkdhbWVzLCAgdHlwZTpOb3RpZmljYXRpb25zVHlwZS5HQU1FUywgaWQ6XCJcIiwgdHJhZHVjdGlvbjogXCJcIiwgc3VidGl0bGU6IExpZmVzdHlsZUhhYml0c1R5cGVEZXNjcmlwdGlvbi5kZXNjcmlwdGlvbkdhbWVzfSxcbiAgIFxuXVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoYXJlZENhcmVQbGFuTGlmZVN0eWxlIHtcbiAgICBpbWc/OiBzdHJpbmcsXG4gICAgdGV4dEhlYWRlcj86IHN0cmluZyxcbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHR5cGU6IHN0cmluZyxcbiAgICBpZD86IHN0cmluZyB8IG51bWJlcjtcbiAgICByb3V0ZXJsaW5rPzogc3RyaW5nIHwgYW55O1xuICAgIHN0YXRlPzogc3RyaW5nO1xuICAgIGFjY2VwdGVkPzogYm9vbGVhbjtcbiAgICB0cmFkdWN0aW9uPzpzdHJpbmc7XG4gICAgZnJlcXVlbmN5Pzogc3RyaW5nO1xuICAgIGlzQW5zd2Vycz86IHN0cmluZztcbiAgICBoYXNGb3JtQW5zd2VyZWQ/OiBzdHJpbmc7XG4gICAgc2NvcmU/OiBzdHJpbmc7XG4gICAgc3VidGl0bGU/OnN0cmluZztcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIG1lZGljYXRpb24gZXh0ZW5kcyBTaGFyZWRDYXJlUGxhbkxpZmVTdHlsZXtcbiAgICBmcm9tPyA6IHN0cmluZyxcbiAgICB0bz86IHN0cmluZ1xuICAgIGFjY2VwdGVkPzogYm9vbGVhblxuICAgIG1vZGVsX2lkPzogc3RyaW5nLFxuICAgIG1vZGVsPzogc3RyaW5nLFxuICAgIGZvcm1faWQ/OiBzdHJpbmcsXG4gICAgc2hvd0FsZXJ0PzogYm9vbGVhbixcbiAgICBsYXN0ZGF0YT86IHN0cmluZyxcbiAgICBkYXRlPzogc3RyaW5nLFxuICAgIGNhblZpZXdGb3JtQW5zd2VyZWQ/OiBzdHJpbmcsXG59XG5cbmV4cG9ydCBlbnVtIEFDQ0VTU19UWVBFIHtcbiAgICBJRlJBTUUgPSAnaWZyYW1lJyxcbiAgICBBUFAgPSAnYXBwJyxcbiAgICBXSU5ET1cgPSAnd2luZG93cy1hcHAnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkQ2FyZVBsYW5QcmVzY3JpYmVkQXBwcyB7XG4gICAgaWQ/OiBudW1iZXIsXG4gICAgaWNvbjpzdHJpbmcsXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nLFxuICAgIGluc3RydWN0aW9ucz86c3RyaW5nXG4gICAgaWZyYW1lX3VybDpzdHJpbmc7XG4gICAgaWRfcGtnPzogc3RyaW5nO1xuICAgIGFjY2Vzc190eXBlPzogc3RyaW5nO1xuICAgIGNvbmZpZ3VyYXRpb25zPzogYW55O1xufVxuXG4vKipcbiAqIE1lZGljYWwgUHJvY2VkdXJlIG9mIFNoYXJlZCBjYXJlIFBsYW5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRDYXJlUGxhblByb2NlZHVyZSBleHRlbmRzIFNoYXJlZENhcmVQbGFuIHtcbiAgICBpZD86IHN0cmluZyB8IG51bWJlcjtcbiAgICBkYXRlOiBzdHJpbmc7XG4gICAgc3RhZmY/OiBzdHJpbmcgfCBhbnk7XG4gICAgZGVwYXJ0bWVudD86IHN0cmluZ1xuICAgIGltZz86IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqTWVkaWNhbCB0ZXN0IG9mIFNoYXJlZCBjYXJlIFBsYW4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkQnV0dG9uQ29tcG9uZW50IHtcbiAgICBpZD86IHN0cmluZyB8IG51bWJlcjtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgdHlwZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IEFkZEJ1dHRvbkxpc3Q6IEFkZEJ1dHRvbkNvbXBvbmVudCBbXSA9IFtcbiAgICB7aWNvbjogQ29udGVudFR5cGVJY29ucy5idXR0b25NZWRpdGFsVGVzdCwgdGl0bGU6IENvbnRlbnRUeXBlVHJhbnNsYXRlZE5hbWUuYWRkQnV0dG9uTWVkaXRhbHRlc3QsICB0eXBlOiBOb3RpZmljYXRpb25zVHlwZS5BZGRCdXR0b25NZWRpY2FsVGVzdCwgaWQ6XCJcIn0sXG4gICAge2ljb246IENvbnRlbnRUeXBlSWNvbnMuYnV0dG9tVG9kYXlEcnVnLCB0aXRsZTogQ29udGVudFR5cGVUcmFuc2xhdGVkTmFtZS5hZGRCdXR0b25Ub2RheURydWcsICB0eXBlOiBOb3RpZmljYXRpb25zVHlwZS5BZGRCdXR0b25Ub2RheURydWcsIGlkOlwiXCJ9LFxuICAgIHtpY29uOiBDb250ZW50VHlwZUljb25zLmJ1dHRvbUhlYWx0aENoYXJ0cywgdGl0bGU6IENvbnRlbnRUeXBlVHJhbnNsYXRlZE5hbWUuYWRkQnV0dG9uSGVhbHRoQ2hhcnRzLCAgdHlwZTogTm90aWZpY2F0aW9uc1R5cGUuQWRkQnV0dG9uSGVhbHRoQ2hhcnRzLCBpZDpcIlwifSxcbiAgXG4gICAgLy8ge2ljb246IENvbnRlbnRUeXBlSWNvbnMuRXhlcmNpc2VzLCB0aXRsZTogQ29udGVudFR5cGVUcmFuc2xhdGVkTmFtZS5FeGVyY2lzZXMsICB0eXBlOk5vdGlmaWNhdGlvbnNUeXBlLkVYRVJDSVNFUywgaWQ6XCJcIn0sXG4gICBcbl0iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlcnZpY2UtbGliL3NyYy9saWIvbW9kZWxzL3VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVXNlciB7XG4gICAgdXNlcm5hbWU/OiBzdHJpbmcsXG4gICAgaWRVc2VyPzpudW1iZXIsXG4gICAgaW1hZ2U/OnN0cmluZyxcbiAgICBmaXJzdF9uYW1lPzogc3RyaW5nLFxuICAgIGxhc3RfbmFtZT86IHN0cmluZyxcbiAgICBhZ2VuZGFzPzogQWdlbmRhW10sXG4gICAgZGlldHM/OiBEaWV0W10sXG4gICAgYWR2aWNlcz86IEFkdmljZVtdLFxuICAgIGdhbWVzPzogR2FtZVtdLFxuICAgIGRydWdzPzogRHJ1Z1tdLFxuICAgIGdvYWxzPzogR29hbFtdLFxuICAgIHBoeXNpY2FsPzogUGh5c2ljYWxBY3Rpdml0eVtdXG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBEaWV0IHtcbiAgICBuYW1lPzogc3RyaW5nLFxuICAgIGZpcnN0X25hbWU/OiBzdHJpbmcsXG4gICAgaWQ/OiBudW1iZXIsXG4gICAgaG91cj86IHN0cmluZyxcbiAgICBpbWFnZT86IHN0cmluZyxcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkdmljZSB7XG4gICAgbmFtZT86IHN0cmluZyxcbiAgICBpZD86IG51bWJlcixcbiAgICBpbWFnZT86IHN0cmluZyxcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFnZW5kYSB7XG4gICAgaWQ/OiBudW1iZXIsXG4gICAgdGl0bGU/OiBzdHJpbmcsXG4gICAgZG9jdG9yPzogc3RyaW5nLFxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nLFxuICAgIHN0YXJ0X3RpbWU/OiBzdHJpbmcsXG4gICAgc3RhcnRfZGF0ZT86IHN0cmluZyxcbiAgICBlbmRfZGF0ZT86IHN0cmluZyxcbiAgICBzdGFydF9kYXRlX2lzbzg2MDE/OiBzdHJpbmdcbiAgICBoaWRlPzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdhbWUge1xuICAgIG5hbWU/OiBzdHJpbmcsXG4gICAgaWQ/OiBudW1iZXIsXG4gICAgZm9ybV9pZD86IHN0cmluZyxcbiAgICB0eXBlPzogc3RyaW5nLFxuICAgIHVybD86IHN0cmluZyxcbiAgICBpbWFnZT86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERydWcge1xuICAgIGlkPzogbnVtYmVyLFxuICAgIG5hbWU/OiBzdHJpbmcsXG4gICAgZGF0ZV9pbnRha2U/OiBzdHJpbmcsXG4gICAgaG91cl9pbnRha2U/OiBzdHJpbmcsXG4gICAgZG9zZT86IG51bWJlcixcbiAgICBhbGlhcz86IHN0cmluZyxcbiAgICBzdGF0ZT86IG51bWJlcixcbiAgICBmb3Jnb3R0ZW4/OiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHb2FsIHtcbiAgICBob3VyOiBzdHJpbmc7XG4gICAgaWQ/OiBudW1iZXIsXG4gICAgbmFtZT86IHN0cmluZyxcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyxcbiAgICBtaW4/OiBudW1iZXIsXG4gICAgbWF4PzogbnVtYmVyLFxuICAgIHN0ZXBzPzogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGh5c2ljYWxBY3Rpdml0eSB7XG4gICAgaWQ/OiBudW1iZXIsXG4gICAgbmFtZT86IHN0cmluZyxcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZyxcbiAgICBjYWxvcmllcz86IG51bWJlcixcbiAgICBraWxvbWV0ZXJzPzogbnVtYmVyLFxuICAgIHN0ZXBzPzogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlclByb2ZpbGV7XG4gICAgaWRVc2VyOiBudW1iZXIsXG4gICAgaW1hZ2U6IHN0cmluZyxcbiAgICBmaXJzdF9uYW1lOiBzdHJpbmcsXG4gICAgbGFzdF9uYW1lOiBzdHJpbmcsXG4gICAgYmlydGhkYXRlOnN0cmluZyxcbiAgICBiaXJ0aGRhdGVfZXVyb3BlYW46IHN0cmluZyxcbiAgICBnZW5kZXI6IHN0cmluZyxcbiAgICB3ZWlnaHQ6IHN0cmluZyxcbiAgICBoZWlnaHQ6IHN0cmluZyxcbiAgICBibG9vZF9ncm91cDogc3RyaW5nLFxuICAgIC8vIGRpYWdub3N0aWNzOiBbc3RyaW5nLHN0cmluZ10sXG4gICAgdGVtcG9yYXJ5VXJsOnN0cmluZyxcbiAgICBhbGxlcmdpZXM6IFtdLFxuICAgIGRpYWdub3N0aWNzOiBbXSxcbiAgICBwaG9uZTpzdHJpbmcsXG4gICAgbGFuZ3VhZ2U6YW55XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmFtaWx5VW5pdCB7XG4gICAgaWQ/OiBudW1iZXIsXG4gICAgbmFtZT86IHN0cmluZyxcbiAgICBpbml0aWFscz86IHN0cmluZyxcbiAgICBhZ2U/OiBzdHJpbmcsXG4gICAgdGh1bWJuYWlsPzogc3RyaW5nLFxuICAgIGZhbWlseV9yZWxhdGlvbnNoaXA/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTWVudG9yaW5nIHtcbiAgICBhZ2U/OiBzdHJpbmcsXG4gICAgaWQ/OiBudW1iZXIsXG4gICAgaW5pdGlhbHM/OiBzdHJpbmcsXG4gICAgbmFtZT86IHN0cmluZyxcbiAgICBzb2NpYWxSZWxhdGlvblR5cGU/OnN0cmluZyxcbiAgICB0aHVtYm5haWw/OiBzdHJpbmcsXG59XG5leHBvcnQgaW50ZXJmYWNlIFR1dG9yIHtcbiAgICBhZ2U/OiBzdHJpbmcsXG4gICAgaWQ/OiBudW1iZXIsXG4gICAgaW5pdGlhbHM/OiBzdHJpbmcsXG4gICAgbmFtZT86IHN0cmluZyxcbiAgICBzb2NpYWxSZWxhdGlvblR5cGU/OnN0cmluZyxcbiAgICB0aHVtYm5haWw/OiBzdHJpbmcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSGVhbHRoQ2FyZCB7XG4gICAgaWQ/OiBudW1iZXIsXG4gICAgbmFtZT86IHN0cmluZyxcbiAgICBtb2RhbGl0eT86IHN0cmluZyxcbiAgICBhZmZpbGlhdGlvbl9udW1iZXI/OiBzdHJpbmcsXG4gICAgZXhwaXJhdGlvbl9kYXRlPzogc3RyaW5nLFxuICAgIGV4cGVkaXRpb25fZGF0ZT86IHN0cmluZyxcbiAgICB0aHVtYm5haWw/OiBzdHJpbmcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW1lcmdlbmN5Q29udGFjdCB7XG4gICAgaWQ/OiBudW1iZXIsXG4gICAgZnVsbF9uYW1lPzogc3RyaW5nLFxuICAgIGVtYWlsPzogc3RyaW5nLFxuICAgIHBob25lPzogc3RyaW5nLFxuICAgIHRodW1ibmFpbD86IHN0cmluZyxcbiAgICBjcmVhdGVkX2F0Pzogc3RyaW5nLFxuICAgIHNvY2lhbFJlbGF0aW9uVHlwZT86IHN0cmluZyxcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NlcnZpY2UtbGliL3NyYy9saWIvbW9kZWxzL3VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVXNlciB7XG4gICAgdXNlcm5hbWU/OiBzdHJpbmcsXG4gICAgaWRVc2VyPzpudW1iZXIsXG4gICAgaW1hZ2U/OnN0cmluZyxcbiAgICBmaXJzdF9uYW1lPzogc3RyaW5nLFxuICAgIGxhc3RfbmFtZT86IHN0cmluZyxcbiAgICBhZ2VuZGFzPzogQWdlbmRhW10sXG4gICAgZGlldHM/OiBEaWV0W10sXG4gICAgYWR2aWNlcz86IEFkdmljZVtdLFxuICAgIGdhbWVzPzogR2FtZVtdLFxuICAgIGRydWdzPzogRHJ1Z1tdLFxuICAgIGdvYWxzPzogR29hbFtdLFxuICAgIHBoeXNpY2FsPzogUGh5c2ljYWxBY3Rpdml0eVtdXG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBEaWV0IHtcbiAgICBuYW1lPzogc3RyaW5nLFxuICAgIGZpcnN0X25hbWU/OiBzdHJpbmcsXG4gICAgaWQ/OiBudW1iZXIsXG4gICAgaG91cj86IHN0cmluZyxcbiAgICBpbWFnZT86IHN0cmluZyxcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkdmljZSB7XG4gICAgbmFtZT86IHN0cmluZyxcbiAgICBpZD86IG51bWJlcixcbiAgICBpbWFnZT86IHN0cmluZyxcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFnZW5kYSB7XG4gICAgaWQ/OiBudW1iZXIsXG4gICAgdGl0bGU/OiBzdHJpbmcsXG4gICAgZG9jdG9yPzogc3RyaW5nLFxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nLFxuICAgIHN0YXJ0X3RpbWU/OiBzdHJpbmcsXG4gICAgc3RhcnRfZGF0ZT86IHN0cmluZyxcbiAgICBlbmRfZGF0ZT86IHN0cmluZyxcbiAgICBzdGFydF9kYXRlX2lzbzg2MDE/OiBzdHJpbmdcbiAgICBoaWRlPzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdhbWUge1xuICAgIG5hbWU/OiBzdHJpbmcsXG4gICAgaWQ/OiBudW1iZXIsXG4gICAgZm9ybV9pZD86IHN0cmluZyxcbiAgICB0eXBlPzogc3RyaW5nLFxuICAgIHVybD86IHN0cmluZyxcbiAgICBpbWFnZT86IHN0cmluZ1xuICAgIHNjaGVkdWxlZF9kYXRlPzpzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEcnVnIHtcbiAgICBpZD86IG51bWJlcixcbiAgICBuYW1lPzogc3RyaW5nLFxuICAgIGRhdGVfaW50YWtlPzogc3RyaW5nLFxuICAgIGhvdXJfaW50YWtlPzogc3RyaW5nLFxuICAgIGRvc2U/OiBudW1iZXIsXG4gICAgYWxpYXM/OiBzdHJpbmcsXG4gICAgc3RhdGU/OiBudW1iZXIsXG4gICAgZm9yZ290dGVuPzogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR29hbCB7XG4gICAgaG91cjogc3RyaW5nO1xuICAgIGlkPzogbnVtYmVyLFxuICAgIG5hbWU/OiBzdHJpbmcsXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgbWluPzogbnVtYmVyLFxuICAgIG1heD86IG51bWJlcixcbiAgICBzdGVwcz86IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBoeXNpY2FsQWN0aXZpdHkge1xuICAgIGlkPzogbnVtYmVyLFxuICAgIG5hbWU/OiBzdHJpbmcsXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgY2Fsb3JpZXM/OiBudW1iZXIsXG4gICAga2lsb21ldGVycz86IG51bWJlcixcbiAgICBzdGVwcz86IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJQcm9maWxle1xuICAgIGlkVXNlcjogbnVtYmVyLFxuICAgIGltYWdlOiBzdHJpbmcsXG4gICAgZmlyc3RfbmFtZTogc3RyaW5nLFxuICAgIGxhc3RfbmFtZTogc3RyaW5nLFxuICAgIGJpcnRoZGF0ZTpzdHJpbmcsXG4gICAgYmlydGhkYXRlX2V1cm9wZWFuOiBzdHJpbmcsXG4gICAgZ2VuZGVyOiBzdHJpbmcsXG4gICAgd2VpZ2h0OiBzdHJpbmcsXG4gICAgaGVpZ2h0OiBzdHJpbmcsXG4gICAgYmxvb2RfZ3JvdXA6IHN0cmluZyxcbiAgICAvLyBkaWFnbm9zdGljczogW3N0cmluZyxzdHJpbmddLFxuICAgIHRlbXBvcmFyeVVybDpzdHJpbmcsXG4gICAgYWxsZXJnaWVzOiBbXSxcbiAgICBkaWFnbm9zdGljczogW10sXG4gICAgcGhvbmU6c3RyaW5nLFxuICAgIGxhbmd1YWdlOmFueVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZhbWlseVVuaXQge1xuICAgIGlkPzogbnVtYmVyLFxuICAgIG5hbWU/OiBzdHJpbmcsXG4gICAgaW5pdGlhbHM/OiBzdHJpbmcsXG4gICAgYWdlPzogc3RyaW5nLFxuICAgIHRodW1ibmFpbD86IHN0cmluZyxcbiAgICBmYW1pbHlfcmVsYXRpb25zaGlwPzogc3RyaW5nXG4gICAgYmlydGhkYXRlPzpzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIE1lbnRvcmluZyB7XG4gICAgYWdlPzogc3RyaW5nLFxuICAgIGlkPzogbnVtYmVyLFxuICAgIGluaXRpYWxzPzogc3RyaW5nLFxuICAgIG5hbWU/OiBzdHJpbmcsXG4gICAgc29jaWFsUmVsYXRpb25UeXBlPzpzdHJpbmcsXG4gICAgdGh1bWJuYWlsPzogc3RyaW5nLFxufVxuZXhwb3J0IGludGVyZmFjZSBUdXRvciB7XG4gICAgYWdlPzogc3RyaW5nLFxuICAgIGlkPzogbnVtYmVyLFxuICAgIGluaXRpYWxzPzogc3RyaW5nLFxuICAgIG5hbWU/OiBzdHJpbmcsXG4gICAgc29jaWFsUmVsYXRpb25UeXBlPzpzdHJpbmcsXG4gICAgdGh1bWJuYWlsPzogc3RyaW5nLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWx0aENhcmQge1xuICAgIGlkPzogbnVtYmVyLFxuICAgIG5hbWU/OiBzdHJpbmcsXG4gICAgbW9kYWxpdHk/OiBzdHJpbmcsXG4gICAgYWZmaWxpYXRpb25fbnVtYmVyPzogc3RyaW5nLFxuICAgIGV4cGlyYXRpb25fZGF0ZT86IHN0cmluZyxcbiAgICBleHBlZGl0aW9uX2RhdGU/OiBzdHJpbmcsXG4gICAgdGh1bWJuYWlsPzogc3RyaW5nLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVtZXJnZW5jeUNvbnRhY3Qge1xuICAgIGlkPzogbnVtYmVyLFxuICAgIGZ1bGxfbmFtZT86IHN0cmluZyxcbiAgICBlbWFpbD86IHN0cmluZyxcbiAgICBwaG9uZT86IHN0cmluZyxcbiAgICB0aHVtYm5haWw/OiBzdHJpbmcsXG4gICAgY3JlYXRlZF9hdD86IHN0cmluZyxcbiAgICBzb2NpYWxSZWxhdGlvblR5cGU/OiBzdHJpbmcsXG59XG4iXX0=
@@ -1,19 +1,19 @@
1
1
  import { Component } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class ServiceLibComponent {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ServiceLibComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: ServiceLibComponent, selector: "dev-service-lib", ngImport: i0, template: `
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ServiceLibComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ServiceLibComponent, selector: "lib-service-lib", ngImport: i0, template: `
6
6
  <p>
7
7
  service-lib works!
8
8
  </p>
9
9
  `, isInline: true, styles: [""] }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ServiceLibComponent, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ServiceLibComponent, decorators: [{
12
12
  type: Component,
13
- args: [{ selector: 'dev-service-lib', template: `
13
+ args: [{ selector: 'lib-service-lib', template: `
14
14
  <p>
15
15
  service-lib works!
16
16
  </p>
17
17
  ` }]
18
18
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2VydmljZS1saWIvc3JjL2xpYi9zZXJ2aWNlLWxpYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXMUMsTUFBTSxPQUFPLG1CQUFtQjsrR0FBbkIsbUJBQW1CO21HQUFuQixtQkFBbUIsdURBUHBCOzs7O0dBSVQ7OzRGQUdVLG1CQUFtQjtrQkFUL0IsU0FBUzsrQkFDRSxpQkFBaUIsWUFDakI7Ozs7R0FJVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkZXYtc2VydmljZS1saWInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxwPlxuICAgICAgc2VydmljZS1saWIgd29ya3MhXG4gICAgPC9wPlxuICBgLFxuICBzdHlsZXM6IGBgXG59KVxuZXhwb3J0IGNsYXNzIFNlcnZpY2VMaWJDb21wb25lbnQge1xuXG59XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1saWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2VydmljZS1saWIvc3JjL2xpYi9zZXJ2aWNlLWxpYi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXMUMsTUFBTSxPQUFPLG1CQUFtQjsrR0FBbkIsbUJBQW1CO21HQUFuQixtQkFBbUIsdURBUHBCOzs7O0dBSVQ7OzRGQUdVLG1CQUFtQjtrQkFUL0IsU0FBUzsrQkFDRSxpQkFBaUIsWUFDakI7Ozs7R0FJVCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc2VydmljZS1saWInLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxwPlxuICAgICAgc2VydmljZS1saWIgd29ya3MhXG4gICAgPC9wPlxuICBgLFxuICBzdHlsZXM6IGBgXG59KVxuZXhwb3J0IGNsYXNzIFNlcnZpY2VMaWJDb21wb25lbnQge1xuXG59XG4iXX0=
@@ -14,11 +14,11 @@ export class ServiceLibModule {
14
14
  ]
15
15
  };
16
16
  }
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ServiceLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.10", ngImport: i0, type: ServiceLibModule, declarations: [ServiceLibComponent], imports: [CommonModule], exports: [ServiceLibComponent] }); }
19
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ServiceLibModule, imports: [CommonModule] }); }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ServiceLibModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ServiceLibModule, declarations: [ServiceLibComponent], imports: [CommonModule], exports: [ServiceLibComponent] }); }
19
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ServiceLibModule, imports: [CommonModule] }); }
20
20
  }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ServiceLibModule, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ServiceLibModule, decorators: [{
22
22
  type: NgModule,
23
23
  args: [{
24
24
  declarations: [ServiceLibComponent],
@@ -1,19 +1,28 @@
1
- import { Injectable, Inject } from '@angular/core';
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { FIREBASE_CONFIG_TOKEN } from '../configuration';
3
+ import { NavigationEnd } from '@angular/router';
4
+ import { filter } from 'rxjs/operators';
2
5
  // Init for the web
6
+ import "@capacitor-community/firebase-analytics";
3
7
  import { FirebaseAnalytics } from '@capacitor-community/firebase-analytics';
4
- import { FIREBASE_CONFIG_TOKEN } from '../configuration';
5
8
  import * as i0 from "@angular/core";
6
9
  import * as i1 from "@ionic/angular";
10
+ import * as i2 from "@angular/router";
7
11
  export class AnalyticsService {
8
- constructor(environment, platform) {
12
+ constructor(environment, platform, router) {
9
13
  this.environment = environment;
10
14
  this.platform = platform;
15
+ this.router = router;
11
16
  this.analyticsEnabled = true;
12
17
  this.initFb();
18
+ this.router.events.pipe(filter((e) => e instanceof NavigationEnd)).subscribe((e) => {
19
+ //console.log('route changed: ', e.url);
20
+ //this.setScreenName(e.url)
21
+ });
13
22
  }
14
23
  async initFb() {
15
24
  if (this.platform.is('mobileweb')) {
16
- console.log("initializeFirebase: ", this.environment.firebase);
25
+ //console.log("initializeFirebase: ", environment.firebase)
17
26
  await FirebaseAnalytics.initializeFirebase(this.environment.firebase);
18
27
  }
19
28
  this.toggleAnalytics();
@@ -44,8 +53,8 @@ export class AnalyticsService {
44
53
  };
45
54
  return logEvent;
46
55
  }
47
- async setScreenName(screenName, nameOverride) {
48
- await FirebaseAnalytics.setScreenName({
56
+ setScreenName(screenName, nameOverride) {
57
+ FirebaseAnalytics.setScreenName({
49
58
  screenName: screenName,
50
59
  nameOverride: nameOverride,
51
60
  });
@@ -58,10 +67,10 @@ export class AnalyticsService {
58
67
  };
59
68
  return setCollectionEnabled;
60
69
  }
61
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: AnalyticsService, deps: [{ token: FIREBASE_CONFIG_TOKEN }, { token: i1.Platform }], target: i0.ɵɵFactoryTarget.Injectable }); }
62
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: AnalyticsService, providedIn: 'root' }); }
70
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnalyticsService, deps: [{ token: FIREBASE_CONFIG_TOKEN }, { token: i1.Platform }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
71
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnalyticsService, providedIn: 'root' }); }
63
72
  }
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: AnalyticsService, decorators: [{
73
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AnalyticsService, decorators: [{
65
74
  type: Injectable,
66
75
  args: [{
67
76
  providedIn: 'root'
@@ -69,5 +78,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
69
78
  }], ctorParameters: () => [{ type: undefined, decorators: [{
70
79
  type: Inject,
71
80
  args: [FIREBASE_CONFIG_TOKEN]
72
- }] }, { type: i1.Platform }] });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZXJ2aWNlLWxpYi9zcmMvbGliL3NlcnZpY2VzL2FuYWx5dGljcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELG1CQUFtQjtBQUNuQixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUUxRSxPQUFPLEVBQWUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBS3RFLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFBbUQsV0FBd0IsRUFBVSxRQUFrQjtRQUFwRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7UUFEdkcscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBRXRCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFFVixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFDLENBQUM7WUFDakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1lBQzlELE1BQU0saUJBQWlCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBR0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxTQUFTLENBQUMsTUFBTTtRQUNkLE1BQU0sU0FBUyxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQzNCLE1BQU0saUJBQWlCLENBQUMsU0FBUyxDQUFDO2dCQUNoQyxNQUFNLEVBQUUsTUFBTTthQUNmLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQTtRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBUSxFQUFFLEtBQUs7UUFDekIsTUFBTSxlQUFlLEdBQUcsS0FBSyxJQUFJLEVBQUU7WUFDakMsTUFBTSxpQkFBaUIsQ0FBQyxlQUFlLENBQUM7Z0JBQ3RDLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxLQUFLO2FBQ2IsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsT0FBTyxlQUFlLENBQUE7SUFDeEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFZLEVBQUUsTUFBYztRQUNuQyxNQUFNLFFBQVEsR0FBRyxLQUFLLElBQUksRUFBRTtZQUMxQixNQUFNLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztnQkFDL0IsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsTUFBTSxFQUFFLE1BQU07YUFDZixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUE7UUFFRCxPQUFPLFFBQVEsQ0FBQTtJQUNqQixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsWUFBYTtRQUMzQyxNQUFNLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztZQUNwQyxVQUFVLEVBQUUsVUFBVTtZQUN0QixZQUFZLEVBQUUsWUFBWTtTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWU7UUFDbkIsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLElBQUksRUFBRTtZQUN0QyxNQUFNLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDO2dCQUMzQyxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjthQUMvQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUE7UUFFRCxPQUFPLG9CQUFvQixDQUFDO0lBRTlCLENBQUM7K0dBakVVLGdCQUFnQixrQkFFUCxxQkFBcUI7bUhBRjlCLGdCQUFnQixjQUZmLE1BQU07OzRGQUVQLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUdjLE1BQU07MkJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIEluaXQgZm9yIHRoZSB3ZWJcbmltcG9ydCB7RmlyZWJhc2VBbmFseXRpY3N9IGZyb20gJ0BjYXBhY2l0b3ItY29tbXVuaXR5L2ZpcmViYXNlLWFuYWx5dGljcyc7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IEVudmlyb25tZW50LCBGSVJFQkFTRV9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi9jb25maWd1cmF0aW9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQW5hbHl0aWNzU2VydmljZSB7XG4gIGFuYWx5dGljc0VuYWJsZWQgPSB0cnVlO1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KEZJUkVCQVNFX0NPTkZJR19UT0tFTikgcHJpdmF0ZSBlbnZpcm9ubWVudDogRW52aXJvbm1lbnQsICBwdWJsaWMgcGxhdGZvcm06IFBsYXRmb3JtKSB7XG4gICAgdGhpcy5pbml0RmIoKTtcbiAgfVxuXG4gIGFzeW5jIGluaXRGYigpIHtcblxuICAgIGlmICh0aGlzLnBsYXRmb3JtLmlzKCdtb2JpbGV3ZWInKSl7XG4gICAgICBjb25zb2xlLmxvZyhcImluaXRpYWxpemVGaXJlYmFzZTogXCIsIHRoaXMuZW52aXJvbm1lbnQuZmlyZWJhc2UpXG4gICAgICBhd2FpdCBGaXJlYmFzZUFuYWx5dGljcy5pbml0aWFsaXplRmlyZWJhc2UodGhpcy5lbnZpcm9ubWVudC5maXJlYmFzZSk7XG4gICAgfVxuXG5cbiAgICB0aGlzLnRvZ2dsZUFuYWx5dGljcygpO1xuICB9XG5cbiAgc2V0VXNlcklkKHVzZXJJZCkge1xuICAgIGNvbnN0IHNldFVzZXJJZCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IEZpcmViYXNlQW5hbHl0aWNzLnNldFVzZXJJZCh7XG4gICAgICAgIHVzZXJJZDogdXNlcklkLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNldFVzZXJJZDtcbiAgfVxuXG4gIHNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSkge1xuICAgIGNvbnN0IHNldFVzZXJQcm9wZXJ0eSA9IGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IEZpcmViYXNlQW5hbHl0aWNzLnNldFVzZXJQcm9wZXJ0eSh7XG4gICAgICAgIG5hbWU6IHByb3BlcnR5LFxuICAgICAgICB2YWx1ZTogdmFsdWUsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIHNldFVzZXJQcm9wZXJ0eVxuICB9XG5cbiAgbG9nRXZlbnQobmFtZTogc3RyaW5nLCBwYXJhbXM6IE9iamVjdCkge1xuICAgIGNvbnN0IGxvZ0V2ZW50ID0gYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgRmlyZWJhc2VBbmFseXRpY3MubG9nRXZlbnQoe1xuICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxvZ0V2ZW50XG4gIH1cblxuICBhc3luYyBzZXRTY3JlZW5OYW1lKHNjcmVlbk5hbWUsIG5hbWVPdmVycmlkZT8pIHtcbiAgICBhd2FpdCBGaXJlYmFzZUFuYWx5dGljcy5zZXRTY3JlZW5OYW1lKHtcbiAgICAgIHNjcmVlbk5hbWU6IHNjcmVlbk5hbWUsXG4gICAgICBuYW1lT3ZlcnJpZGU6IG5hbWVPdmVycmlkZSxcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHRvZ2dsZUFuYWx5dGljcygpIHtcbiAgICBjb25zdCBzZXRDb2xsZWN0aW9uRW5hYmxlZCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IEZpcmViYXNlQW5hbHl0aWNzLnNldENvbGxlY3Rpb25FbmFibGVkKHtcbiAgICAgICAgZW5hYmxlZDogdGhpcy5hbmFseXRpY3NFbmFibGVkLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNldENvbGxlY3Rpb25FbmFibGVkO1xuXG4gIH1cblxufVxuIl19
81
+ }] }, { type: i1.Platform }, { type: i2.Router }] });
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl0aWNzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zZXJ2aWNlLWxpYi9zcmMvbGliL3NlcnZpY2VzL2FuYWx5dGljcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBZSxxQkFBcUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RFLE9BQU8sRUFBdUIsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLG1CQUFtQjtBQUNuQixPQUFPLHlDQUF5QyxDQUFDO0FBQ2pELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDOzs7O0FBTTFFLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsWUFBb0QsV0FBd0IsRUFBUSxRQUFrQixFQUFTLE1BQWM7UUFBekUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBUSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUQ3SCxxQkFBZ0IsR0FBRyxJQUFJLENBQUM7UUFFdEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUNyQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQXNCLEVBQUUsQ0FBQyxDQUFDLFlBQVksYUFBYSxDQUFDLENBQzlELENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBYyxFQUFFLEVBQUU7WUFDN0Isd0NBQXdDO1lBQ3hDLDJCQUEyQjtRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTTtRQUVWLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQztZQUNqQywyREFBMkQ7WUFDM0QsTUFBTSxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFHRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFNO1FBQ2QsTUFBTSxTQUFTLEdBQUcsS0FBSyxJQUFJLEVBQUU7WUFDM0IsTUFBTSxpQkFBaUIsQ0FBQyxTQUFTLENBQUM7Z0JBQ2hDLE1BQU0sRUFBRSxNQUFNO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFBO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFRLEVBQUUsS0FBSztRQUN6QixNQUFNLGVBQWUsR0FBRyxLQUFLLElBQUksRUFBRTtZQUNqQyxNQUFNLGlCQUFpQixDQUFDLGVBQWUsQ0FBQztnQkFDdEMsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLEtBQUs7YUFDYixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixPQUFPLGVBQWUsQ0FBQTtJQUN4QixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQVksRUFBRSxNQUFjO1FBQ25DLE1BQU0sUUFBUSxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQzFCLE1BQU0saUJBQWlCLENBQUMsUUFBUSxDQUFDO2dCQUMvQixJQUFJLEVBQUUsSUFBSTtnQkFDVixNQUFNLEVBQUUsTUFBTTthQUNmLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQTtRQUVELE9BQU8sUUFBUSxDQUFBO0lBQ2pCLENBQUM7SUFFRCxhQUFhLENBQUMsVUFBVSxFQUFFLFlBQWE7UUFDckMsaUJBQWlCLENBQUMsYUFBYSxDQUFDO1lBQzlCLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZTtRQUNuQixNQUFNLG9CQUFvQixHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3RDLE1BQU0saUJBQWlCLENBQUMsb0JBQW9CLENBQUM7Z0JBQzNDLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCO2FBQy9CLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQTtRQUVELE9BQU8sb0JBQW9CLENBQUM7SUFFOUIsQ0FBQzsrR0F2RVUsZ0JBQWdCLGtCQUVOLHFCQUFxQjttSEFGL0IsZ0JBQWdCLGNBRmYsTUFBTTs7NEZBRVAsZ0JBQWdCO2tCQUg1QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR2UsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVudmlyb25tZW50LCBGSVJFQkFTRV9DT05GSUdfVE9LRU4gfSBmcm9tICcuLi9jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IFJvdXRlciwgUm91dGVyRXZlbnQsIE5hdmlnYXRpb25FbmQgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG4vLyBJbml0IGZvciB0aGUgd2ViXG5pbXBvcnQgXCJAY2FwYWNpdG9yLWNvbW11bml0eS9maXJlYmFzZS1hbmFseXRpY3NcIjtcbmltcG9ydCB7RmlyZWJhc2VBbmFseXRpY3N9IGZyb20gJ0BjYXBhY2l0b3ItY29tbXVuaXR5L2ZpcmViYXNlLWFuYWx5dGljcyc7XG5pbXBvcnQgeyBQbGF0Zm9ybSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQW5hbHl0aWNzU2VydmljZSB7XG4gIGFuYWx5dGljc0VuYWJsZWQgPSB0cnVlO1xuICBjb25zdHJ1Y3RvciggQEluamVjdChGSVJFQkFTRV9DT05GSUdfVE9LRU4pIHByaXZhdGUgZW52aXJvbm1lbnQ6IEVudmlyb25tZW50LHB1YmxpYyBwbGF0Zm9ybTogUGxhdGZvcm0scHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xuICAgIHRoaXMuaW5pdEZiKCk7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoXG4gICAgICBmaWx0ZXIoKGUpOiBlIGlzIE5hdmlnYXRpb25FbmQgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICkuc3Vic2NyaWJlKChlOiBSb3V0ZXJFdmVudCkgPT4ge1xuICAgICAgLy9jb25zb2xlLmxvZygncm91dGUgY2hhbmdlZDogJywgZS51cmwpO1xuICAgICAgLy90aGlzLnNldFNjcmVlbk5hbWUoZS51cmwpXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBpbml0RmIoKSB7XG5cbiAgICBpZiAodGhpcy5wbGF0Zm9ybS5pcygnbW9iaWxld2ViJykpe1xuICAgICAgLy9jb25zb2xlLmxvZyhcImluaXRpYWxpemVGaXJlYmFzZTogXCIsIGVudmlyb25tZW50LmZpcmViYXNlKVxuICAgICAgYXdhaXQgRmlyZWJhc2VBbmFseXRpY3MuaW5pdGlhbGl6ZUZpcmViYXNlKHRoaXMuZW52aXJvbm1lbnQuZmlyZWJhc2UpO1xuICAgIH1cblxuXG4gICAgdGhpcy50b2dnbGVBbmFseXRpY3MoKTtcbiAgfVxuXG4gIHNldFVzZXJJZCh1c2VySWQpIHtcbiAgICBjb25zdCBzZXRVc2VySWQgPSBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBGaXJlYmFzZUFuYWx5dGljcy5zZXRVc2VySWQoe1xuICAgICAgICB1c2VySWQ6IHVzZXJJZCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzZXRVc2VySWQ7XG4gIH1cblxuICBzZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpIHtcbiAgICBjb25zdCBzZXRVc2VyUHJvcGVydHkgPSBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBGaXJlYmFzZUFuYWx5dGljcy5zZXRVc2VyUHJvcGVydHkoe1xuICAgICAgICBuYW1lOiBwcm9wZXJ0eSxcbiAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHJldHVybiBzZXRVc2VyUHJvcGVydHlcbiAgfVxuXG4gIGxvZ0V2ZW50KG5hbWU6IHN0cmluZywgcGFyYW1zOiBPYmplY3QpIHtcbiAgICBjb25zdCBsb2dFdmVudCA9IGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IEZpcmViYXNlQW5hbHl0aWNzLmxvZ0V2ZW50KHtcbiAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBsb2dFdmVudFxuICB9XG5cbiAgc2V0U2NyZWVuTmFtZShzY3JlZW5OYW1lLCBuYW1lT3ZlcnJpZGU/KSB7XG4gICAgRmlyZWJhc2VBbmFseXRpY3Muc2V0U2NyZWVuTmFtZSh7XG4gICAgICBzY3JlZW5OYW1lOiBzY3JlZW5OYW1lLFxuICAgICAgbmFtZU92ZXJyaWRlOiBuYW1lT3ZlcnJpZGUsXG4gICAgfSk7XG4gIH1cblxuICBhc3luYyB0b2dnbGVBbmFseXRpY3MoKSB7XG4gICAgY29uc3Qgc2V0Q29sbGVjdGlvbkVuYWJsZWQgPSBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBGaXJlYmFzZUFuYWx5dGljcy5zZXRDb2xsZWN0aW9uRW5hYmxlZCh7XG4gICAgICAgIGVuYWJsZWQ6IHRoaXMuYW5hbHl0aWNzRW5hYmxlZCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBzZXRDb2xsZWN0aW9uRW5hYmxlZDtcblxuICB9XG5cbn1cbiJdfQ==
@@ -1,5 +1,7 @@
1
+ // Angular Modules
1
2
  import { Injectable } from '@angular/core';
2
- import { UrlBuilder } from '../util/url-builder';
3
+ // Application Classes
4
+ import { UrlBuilder } from '../utils/url-builder';
3
5
  import * as i0 from "@angular/core";
4
6
  import * as i1 from "./change-endpoints.service";
5
7
  export class ApiEndpointsService {
@@ -8,7 +10,8 @@ export class ApiEndpointsService {
8
10
  //private constants: Constants,
9
11
  endpoints) {
10
12
  this.endpoints = endpoints;
11
- this.getEndpoint = (action) => this.createUrl(action);
13
+ this.getEndpoint = (action) => this.createUrl(action, false);
14
+ this.getDooleEndpoint = (action) => this.createUrl(action, true);
12
15
  this.getEndpointWithParameters = (action, parameters) => this.createUrlWithQueryParameters(action, parameters);
13
16
  }
14
17
  /* #region URL CREATOR */
@@ -19,6 +22,8 @@ export class ApiEndpointsService {
19
22
  }
20
23
  // URL WITH QUERY PARAMS
21
24
  createUrlWithQueryParameters(action, queryStringHandler) {
25
+ //Change EndPoind
26
+ // this.setEndPoint()
22
27
  const urlBuilder = new UrlBuilder(this.endpoints.API_ENDPOINT, action);
23
28
  // Push extra query string params
24
29
  if (queryStringHandler) {
@@ -39,13 +44,24 @@ export class ApiEndpointsService {
39
44
  const urlBuilder = new UrlBuilder(this.endpoints.API_ENDPOINT, `${action}${encodedPathVariablesUrl}`);
40
45
  return urlBuilder.toString();
41
46
  }
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ApiEndpointsService, deps: [{ token: i1.ChangeEndpointsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
43
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ApiEndpointsService, providedIn: 'root' }); }
47
+ /* #endregion */
48
+ setIndexEndPointLocalstorage(endpoint) {
49
+ //console.log(`[ApiEndpointsService] setEndPointLocalstorage()`, endpoint);
50
+ localStorage.setItem('endpoint', JSON.stringify(endpoint));
51
+ }
52
+ getIndexEndPointLocalstorage() {
53
+ let endpoint = localStorage.getItem('endpoint');
54
+ if (endpoint)
55
+ return Number(JSON.parse(endpoint));
56
+ return undefined;
57
+ }
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ApiEndpointsService, deps: [{ token: i1.ChangeEndpointsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
59
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ApiEndpointsService, providedIn: 'root' }); }
44
60
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: ApiEndpointsService, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ApiEndpointsService, decorators: [{
46
62
  type: Injectable,
47
63
  args: [{
48
64
  providedIn: 'root'
49
65
  }]
50
66
  }], ctorParameters: () => [{ type: i1.ChangeEndpointsService }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWVuZHBvaW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2VydmljZS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9hcGktZW5kcG9pbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQU1qRCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCO0lBQ0Usd0JBQXdCO0lBQ3hCLCtCQUErQjtJQUN2QixTQUFpQztRQUFqQyxjQUFTLEdBQVQsU0FBUyxDQUF3QjtRQTZCcEMsZ0JBQVcsR0FBRyxDQUFDLE1BQVcsRUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RCw4QkFBeUIsR0FBRyxDQUFDLE1BQVcsRUFBRSxVQUFlLEVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUE3Qi9ILENBQUM7SUFDTCx5QkFBeUI7SUFDekIsTUFBTTtJQUNFLFNBQVMsQ0FBRSxNQUFjLEVBQUUsYUFBc0IsS0FBSztRQUU1RCxNQUFNLFVBQVUsR0FBZSxJQUFJLFVBQVUsQ0FDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQzNCLE1BQU0sQ0FDUCxDQUFDO1FBQ0YsT0FBTyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUNELHdCQUF3QjtJQUNoQiw0QkFBNEIsQ0FDbEMsTUFBYyxFQUNkLGtCQUN3RDtRQUV4RCxNQUFNLFVBQVUsR0FBZSxJQUFJLFVBQVUsQ0FDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQzNCLE1BQU0sQ0FDUCxDQUFDO1FBQ0YsaUNBQWlDO1FBQ2pDLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixrQkFBa0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFJRCwwQkFBMEI7SUFDbEIsMEJBQTBCLENBQ2hDLE1BQWMsRUFDZCxnQkFBdUIsRUFBRTtRQUV6QixJQUFJLHVCQUF1QixHQUFXLEVBQUUsQ0FBQztRQUN6Qyw0QkFBNEI7UUFDNUIsS0FBSyxNQUFNLFlBQVksSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUN6QyxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDMUIsdUJBQXVCO29CQUNyQixJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdEQsQ0FBQztRQUNILENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBZSxJQUFJLFVBQVUsQ0FDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQzNCLEdBQUcsTUFBTSxHQUFHLHVCQUF1QixFQUFFLENBQ3RDLENBQUM7UUFDRixPQUFPLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDOytHQXJEVSxtQkFBbUI7bUhBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVcmxCdWlsZGVyIH0gZnJvbSAnLi4vdXRpbC91cmwtYnVpbGRlcic7XG5pbXBvcnQgeyBRdWVyeVN0cmluZ1BhcmFtZXRlcnMgfSBmcm9tICcuLi91dGlsL3F1ZXJ5LXN0cmluZy1wYXJhbWV0ZXJzJztcbmltcG9ydCB7IENoYW5nZUVuZHBvaW50c1NlcnZpY2UgfSBmcm9tICcuL2NoYW5nZS1lbmRwb2ludHMuc2VydmljZSc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBcGlFbmRwb2ludHNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgLy8gQXBwbGljYXRpb24gQ29uc3RhbnRzXG4gICAgLy9wcml2YXRlIGNvbnN0YW50czogQ29uc3RhbnRzLFxuICAgIHByaXZhdGUgZW5kcG9pbnRzOiBDaGFuZ2VFbmRwb2ludHNTZXJ2aWNlLFxuICApIHsgfVxuICAvKiAjcmVnaW9uIFVSTCBDUkVBVE9SICovXG4gIC8vIFVSTFxuICBwcml2YXRlIGNyZWF0ZVVybCggYWN0aW9uOiBzdHJpbmcsIGlzRG9vbGVBUEk6IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyB7XG4gXG4gICAgY29uc3QgdXJsQnVpbGRlcjogVXJsQnVpbGRlciA9IG5ldyBVcmxCdWlsZGVyKFxuICAgICAgdGhpcy5lbmRwb2ludHMuQVBJX0VORFBPSU5ULFxuICAgICAgYWN0aW9uXG4gICAgKTtcbiAgICByZXR1cm4gdXJsQnVpbGRlci50b1N0cmluZygpO1xuICB9XG4gIC8vIFVSTCBXSVRIIFFVRVJZIFBBUkFNU1xuICBwcml2YXRlIGNyZWF0ZVVybFdpdGhRdWVyeVBhcmFtZXRlcnMoXG4gICAgYWN0aW9uOiBzdHJpbmcsIFxuICAgIHF1ZXJ5U3RyaW5nSGFuZGxlcj86IFxuICAgICAgKHF1ZXJ5U3RyaW5nUGFyYW1ldGVyczogUXVlcnlTdHJpbmdQYXJhbWV0ZXJzKSA9PiB2b2lkXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgdXJsQnVpbGRlcjogVXJsQnVpbGRlciA9IG5ldyBVcmxCdWlsZGVyKFxuICAgICAgdGhpcy5lbmRwb2ludHMuQVBJX0VORFBPSU5ULFxuICAgICAgYWN0aW9uXG4gICAgKTtcbiAgICAvLyBQdXNoIGV4dHJhIHF1ZXJ5IHN0cmluZyBwYXJhbXNcbiAgICBpZiAocXVlcnlTdHJpbmdIYW5kbGVyKSB7XG4gICAgICBxdWVyeVN0cmluZ0hhbmRsZXIodXJsQnVpbGRlci5xdWVyeVN0cmluZyk7XG4gICAgfVxuICAgIHJldHVybiB1cmxCdWlsZGVyLnRvU3RyaW5nKCk7XG4gIH1cbiAgXG4gIHB1YmxpYyBnZXRFbmRwb2ludCA9IChhY3Rpb246IGFueSk6IHN0cmluZyA9PiB0aGlzLmNyZWF0ZVVybChhY3Rpb24pO1xuICBwdWJsaWMgZ2V0RW5kcG9pbnRXaXRoUGFyYW1ldGVycyA9IChhY3Rpb246IGFueSwgcGFyYW1ldGVyczogYW55KTogc3RyaW5nID0+IHRoaXMuY3JlYXRlVXJsV2l0aFF1ZXJ5UGFyYW1ldGVycyhhY3Rpb24sIHBhcmFtZXRlcnMpO1xuICAvLyBVUkwgV0lUSCBQQVRIIFZBUklBQkxFU1xuICBwcml2YXRlIGNyZWF0ZVVybFdpdGhQYXRoVmFyaWFibGVzKFxuICAgIGFjdGlvbjogc3RyaW5nLCBcbiAgICBwYXRoVmFyaWFibGVzOiBhbnlbXSA9IFtdXG4gICk6IHN0cmluZyB7XG4gICAgbGV0IGVuY29kZWRQYXRoVmFyaWFibGVzVXJsOiBzdHJpbmcgPSAnJztcbiAgICAvLyBQdXNoIGV4dHJhIHBhdGggdmFyaWFibGVzXG4gICAgZm9yIChjb25zdCBwYXRoVmFyaWFibGUgb2YgcGF0aFZhcmlhYmxlcykge1xuICAgICAgaWYgKHBhdGhWYXJpYWJsZSAhPT0gbnVsbCkge1xuICAgICAgICBlbmNvZGVkUGF0aFZhcmlhYmxlc1VybCArPVxuICAgICAgICAgIGAvJHtlbmNvZGVVUklDb21wb25lbnQocGF0aFZhcmlhYmxlLnRvU3RyaW5nKCkpfWA7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHVybEJ1aWxkZXI6IFVybEJ1aWxkZXIgPSBuZXcgVXJsQnVpbGRlcihcbiAgICAgIHRoaXMuZW5kcG9pbnRzLkFQSV9FTkRQT0lOVCwgICBcbiAgICAgIGAke2FjdGlvbn0ke2VuY29kZWRQYXRoVmFyaWFibGVzVXJsfWBcbiAgICApO1xuICAgIHJldHVybiB1cmxCdWlsZGVyLnRvU3RyaW5nKCk7XG4gIH1cbiAgLyogI2VuZHJlZ2lvbiAqL1xuXG59XG4iXX0=
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWVuZHBvaW50cy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2VydmljZS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9hcGktZW5kcG9pbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsa0JBQWtCO0FBQ2xCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0Msc0JBQXNCO0FBQ3RCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBT2xELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUI7SUFDRSx3QkFBd0I7SUFDeEIsK0JBQStCO0lBQ3ZCLFNBQWlDO1FBQWpDLGNBQVMsR0FBVCxTQUFTLENBQXdCO1FBK0JwQyxnQkFBVyxHQUFHLENBQUMsTUFBTSxFQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRSxxQkFBZ0IsR0FBRyxDQUFDLE1BQU0sRUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEUsOEJBQXlCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBaENySCxDQUFDO0lBQ0wseUJBQXlCO0lBQ3pCLE1BQU07SUFDRSxTQUFTLENBQUUsTUFBYyxFQUFFLGFBQXNCLEtBQUs7UUFFNUQsTUFBTSxVQUFVLEdBQWUsSUFBSSxVQUFVLENBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUMzQixNQUFNLENBQ1AsQ0FBQztRQUNGLE9BQU8sVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFDRCx3QkFBd0I7SUFDaEIsNEJBQTRCLENBQ2xDLE1BQWMsRUFDZCxrQkFDd0Q7UUFFeEQsaUJBQWlCO1FBQ2pCLHFCQUFxQjtRQUNyQixNQUFNLFVBQVUsR0FBZSxJQUFJLFVBQVUsQ0FDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQzNCLE1BQU0sQ0FDUCxDQUFDO1FBQ0YsaUNBQWlDO1FBQ2pDLElBQUksa0JBQWtCLEVBQUUsQ0FBQztZQUN2QixrQkFBa0IsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFLRCwwQkFBMEI7SUFDbEIsMEJBQTBCLENBQ2hDLE1BQWMsRUFDZCxnQkFBdUIsRUFBRTtRQUV6QixJQUFJLHVCQUF1QixHQUFXLEVBQUUsQ0FBQztRQUN6Qyw0QkFBNEI7UUFDNUIsS0FBSyxNQUFNLFlBQVksSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUN6QyxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDMUIsdUJBQXVCO29CQUNyQixJQUFJLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdEQsQ0FBQztRQUNILENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBZSxJQUFJLFVBQVUsQ0FDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQzNCLEdBQUcsTUFBTSxHQUFHLHVCQUF1QixFQUFFLENBQ3RDLENBQUM7UUFDRixPQUFPLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBQ0QsZ0JBQWdCO0lBRWhCLDRCQUE0QixDQUFDLFFBQVE7UUFDbkMsMkVBQTJFO1FBQzNFLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsNEJBQTRCO1FBQzFCLElBQUksUUFBUSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsSUFBRyxRQUFRO1lBQUUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQ2hELE9BQU8sU0FBUyxDQUFBO0lBQ2xCLENBQUM7K0dBcEVVLG1CQUFtQjttSEFBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyIE1vZHVsZXNcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vIEFwcGxpY2F0aW9uIENsYXNzZXNcbmltcG9ydCB7IFVybEJ1aWxkZXIgfSBmcm9tICcuLi91dGlscy91cmwtYnVpbGRlcic7XG5pbXBvcnQgeyBRdWVyeVN0cmluZ1BhcmFtZXRlcnMgfSBmcm9tICcuLi91dGlscy9xdWVyeS1zdHJpbmctcGFyYW1ldGVycyc7XG4vLyBBcHBsaWNhdGlvbiBDb25zdGFudHNcbmltcG9ydCB7IENoYW5nZUVuZHBvaW50c1NlcnZpY2UgfSBmcm9tICcuL2NoYW5nZS1lbmRwb2ludHMuc2VydmljZSc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBcGlFbmRwb2ludHNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgLy8gQXBwbGljYXRpb24gQ29uc3RhbnRzXG4gICAgLy9wcml2YXRlIGNvbnN0YW50czogQ29uc3RhbnRzLFxuICAgIHByaXZhdGUgZW5kcG9pbnRzOiBDaGFuZ2VFbmRwb2ludHNTZXJ2aWNlLFxuICApIHsgfVxuICAvKiAjcmVnaW9uIFVSTCBDUkVBVE9SICovXG4gIC8vIFVSTFxuICBwcml2YXRlIGNyZWF0ZVVybCggYWN0aW9uOiBzdHJpbmcsIGlzRG9vbGVBUEk6IGJvb2xlYW4gPSBmYWxzZSk6IHN0cmluZyB7XG4gXG4gICAgY29uc3QgdXJsQnVpbGRlcjogVXJsQnVpbGRlciA9IG5ldyBVcmxCdWlsZGVyKFxuICAgICAgdGhpcy5lbmRwb2ludHMuQVBJX0VORFBPSU5ULFxuICAgICAgYWN0aW9uXG4gICAgKTtcbiAgICByZXR1cm4gdXJsQnVpbGRlci50b1N0cmluZygpO1xuICB9XG4gIC8vIFVSTCBXSVRIIFFVRVJZIFBBUkFNU1xuICBwcml2YXRlIGNyZWF0ZVVybFdpdGhRdWVyeVBhcmFtZXRlcnMoXG4gICAgYWN0aW9uOiBzdHJpbmcsIFxuICAgIHF1ZXJ5U3RyaW5nSGFuZGxlcj86IFxuICAgICAgKHF1ZXJ5U3RyaW5nUGFyYW1ldGVyczogUXVlcnlTdHJpbmdQYXJhbWV0ZXJzKSA9PiB2b2lkXG4gICk6IHN0cmluZyB7XG4gICAgLy9DaGFuZ2UgRW5kUG9pbmRcbiAgICAvLyB0aGlzLnNldEVuZFBvaW50KClcbiAgICBjb25zdCB1cmxCdWlsZGVyOiBVcmxCdWlsZGVyID0gbmV3IFVybEJ1aWxkZXIoXG4gICAgICB0aGlzLmVuZHBvaW50cy5BUElfRU5EUE9JTlQsXG4gICAgICBhY3Rpb25cbiAgICApO1xuICAgIC8vIFB1c2ggZXh0cmEgcXVlcnkgc3RyaW5nIHBhcmFtc1xuICAgIGlmIChxdWVyeVN0cmluZ0hhbmRsZXIpIHtcbiAgICAgIHF1ZXJ5U3RyaW5nSGFuZGxlcih1cmxCdWlsZGVyLnF1ZXJ5U3RyaW5nKTtcbiAgICB9XG4gICAgcmV0dXJuIHVybEJ1aWxkZXIudG9TdHJpbmcoKTtcbiAgfVxuICBcbiAgcHVibGljIGdldEVuZHBvaW50ID0gKGFjdGlvbik6IHN0cmluZyA9PiB0aGlzLmNyZWF0ZVVybChhY3Rpb24sIGZhbHNlKTtcbiAgcHVibGljIGdldERvb2xlRW5kcG9pbnQgPSAoYWN0aW9uKTogc3RyaW5nID0+IHRoaXMuY3JlYXRlVXJsKGFjdGlvbiwgdHJ1ZSk7XG4gIHB1YmxpYyBnZXRFbmRwb2ludFdpdGhQYXJhbWV0ZXJzID0gKGFjdGlvbiwgcGFyYW1ldGVycyk6IHN0cmluZyA9PiB0aGlzLmNyZWF0ZVVybFdpdGhRdWVyeVBhcmFtZXRlcnMoYWN0aW9uLCBwYXJhbWV0ZXJzKTtcbiAgLy8gVVJMIFdJVEggUEFUSCBWQVJJQUJMRVNcbiAgcHJpdmF0ZSBjcmVhdGVVcmxXaXRoUGF0aFZhcmlhYmxlcyhcbiAgICBhY3Rpb246IHN0cmluZywgXG4gICAgcGF0aFZhcmlhYmxlczogYW55W10gPSBbXVxuICApOiBzdHJpbmcge1xuICAgIGxldCBlbmNvZGVkUGF0aFZhcmlhYmxlc1VybDogc3RyaW5nID0gJyc7XG4gICAgLy8gUHVzaCBleHRyYSBwYXRoIHZhcmlhYmxlc1xuICAgIGZvciAoY29uc3QgcGF0aFZhcmlhYmxlIG9mIHBhdGhWYXJpYWJsZXMpIHtcbiAgICAgIGlmIChwYXRoVmFyaWFibGUgIT09IG51bGwpIHtcbiAgICAgICAgZW5jb2RlZFBhdGhWYXJpYWJsZXNVcmwgKz1cbiAgICAgICAgICBgLyR7ZW5jb2RlVVJJQ29tcG9uZW50KHBhdGhWYXJpYWJsZS50b1N0cmluZygpKX1gO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB1cmxCdWlsZGVyOiBVcmxCdWlsZGVyID0gbmV3IFVybEJ1aWxkZXIoXG4gICAgICB0aGlzLmVuZHBvaW50cy5BUElfRU5EUE9JTlQsXG4gICAgICBgJHthY3Rpb259JHtlbmNvZGVkUGF0aFZhcmlhYmxlc1VybH1gXG4gICAgKTtcbiAgICByZXR1cm4gdXJsQnVpbGRlci50b1N0cmluZygpO1xuICB9XG4gIC8qICNlbmRyZWdpb24gKi9cblxuICBzZXRJbmRleEVuZFBvaW50TG9jYWxzdG9yYWdlKGVuZHBvaW50KSB7XG4gICAgLy9jb25zb2xlLmxvZyhgW0FwaUVuZHBvaW50c1NlcnZpY2VdIHNldEVuZFBvaW50TG9jYWxzdG9yYWdlKClgLCBlbmRwb2ludCk7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2VuZHBvaW50JywgSlNPTi5zdHJpbmdpZnkoZW5kcG9pbnQpKTtcbiAgfVxuXG4gIGdldEluZGV4RW5kUG9pbnRMb2NhbHN0b3JhZ2UoKSB7XG4gICAgbGV0IGVuZHBvaW50ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2VuZHBvaW50Jyk7XG4gICAgaWYoZW5kcG9pbnQpIHJldHVybiBOdW1iZXIoSlNPTi5wYXJzZShlbmRwb2ludCkpXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbi8qICAgc2V0RW5kUG9pbnQoKXtcbiAgICBsZXQgaW5kZXhFbmRQb2ludCA9IHRoaXMuZ2V0SW5kZXhFbmRQb2ludExvY2Fsc3RvcmFnZSgpXG4gICAgbGV0IGluZGV4ID0gaW5kZXhFbmRQb2ludD8gaW5kZXhFbmRQb2ludDowXG4gICAgdGhpcy5jb25zdGFudHMuc2V0RW5kUG9pbnQoaW5kZXgpXG4gICAgdGhpcy5jb25zdGFudHMuSU5ERVggPSBpbmRleFxuICB9XG5cbiAgbG9hZEVuZFBvaW50cygpe1xuICAgIHRoaXMuY29uc3RhbnRzLmFkZEVuZFBvaW50KClcbiAgfSAqL1xuXG5cblxuXG59XG4iXX0=