tnp-helpers 16.5.29 → 16.100.1

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 (47) hide show
  1. package/assets/shared/shared_folder_info.txt +1 -1
  2. package/browser/esm2022/lib/base/base-project.mjs +213 -1
  3. package/browser/esm2022/lib/base/commit-data.mjs +46 -3
  4. package/browser/esm2022/lib/helpers.mjs +140 -111
  5. package/browser/fesm2022/tnp-helpers.mjs +396 -112
  6. package/browser/fesm2022/tnp-helpers.mjs.map +1 -1
  7. package/browser/lib/base/base-project.d.ts +30 -0
  8. package/browser/lib/base/commit-data.d.ts +3 -1
  9. package/browser/lib/helpers.d.ts +25 -2
  10. package/client/esm2022/lib/base/base-project.mjs +213 -1
  11. package/client/esm2022/lib/base/commit-data.mjs +46 -3
  12. package/client/esm2022/lib/helpers.mjs +140 -111
  13. package/client/fesm2022/tnp-helpers.mjs +396 -112
  14. package/client/fesm2022/tnp-helpers.mjs.map +1 -1
  15. package/client/lib/base/base-project.d.ts +30 -0
  16. package/client/lib/base/commit-data.d.ts +3 -1
  17. package/client/lib/helpers.d.ts +25 -2
  18. package/client/package.json +123 -174
  19. package/lib/base/base-project.d.ts +31 -1
  20. package/lib/base/base-project.js +312 -0
  21. package/lib/base/base-project.js.map +1 -1
  22. package/lib/base/commit-data.d.ts +3 -1
  23. package/lib/base/commit-data.js +62 -21
  24. package/lib/base/commit-data.js.map +1 -1
  25. package/lib/for-backend/helpers-file-folders.backend.d.ts +1 -1
  26. package/lib/for-backend/helpers-git.backend.js +4 -4
  27. package/lib/for-backend/helpers-git.backend.js.map +1 -1
  28. package/lib/for-backend/helpers-process.backend.d.ts +0 -3
  29. package/lib/for-backend/helpers-process.backend.js +2 -44
  30. package/lib/for-backend/helpers-process.backend.js.map +1 -1
  31. package/lib/for-browser/angular.helper.js +3 -3
  32. package/lib/helpers.d.ts +15 -3
  33. package/lib/helpers.js +87 -14
  34. package/lib/helpers.js.map +1 -1
  35. package/lib/old/base-component.js +3 -3
  36. package/lib/old/base-formly-component.js +3 -3
  37. package/lib/old/dual-component-ctrl.js +3 -3
  38. package/package.json +4 -5
  39. package/tmp-environment.json +127 -178
  40. package/websql/esm2022/lib/base/base-project.mjs +213 -1
  41. package/websql/esm2022/lib/base/commit-data.mjs +46 -3
  42. package/websql/esm2022/lib/helpers.mjs +140 -111
  43. package/websql/fesm2022/tnp-helpers.mjs +396 -112
  44. package/websql/fesm2022/tnp-helpers.mjs.map +1 -1
  45. package/websql/lib/base/base-project.d.ts +30 -0
  46. package/websql/lib/base/commit-data.d.ts +3 -1
  47. package/websql/lib/helpers.d.ts +25 -2
@@ -1,6 +1,6 @@
1
1
  THIS FILE IS GENERATED. THIS FILE IS GENERATED. THIS FILE IS GENERATED.
2
2
 
3
- Assets from this folder are being shipped with this npm package (tnp-helpers@16.5.29)
3
+ Assets from this folder are being shipped with this npm package (tnp-helpers@16.100.1)
4
4
  created from this project.
5
5
 
6
6
  THIS FILE IS GENERATED.THIS FILE IS GENERATED. THIS FILE IS GENERATED.
@@ -1034,8 +1034,220 @@ ${proj?.children.map(c => '+' + c.genericName).join('\n')}
1034
1034
  useGitBranchesAsMetadataForCommits() {
1035
1035
  return true;
1036
1036
  }
1037
+ /**
1038
+ * angular libraries from angular.json
1039
+ */
1040
+ get libraries() {
1041
+ /* */
1042
+ /* */
1043
+ /* */
1044
+ /* */
1045
+ /* */
1046
+ /* */
1047
+ /* */
1048
+ /* */
1049
+ /* */
1050
+ return (void 0);
1051
+ }
1052
+ get sortedLibrariesByDeps() {
1053
+ /* */
1054
+ /* */
1055
+ /* */
1056
+ /* */
1057
+ /* */
1058
+ /* */
1059
+ /* */
1060
+ /* */
1061
+ /* */
1062
+ /* */
1063
+ /* */
1064
+ /* */
1065
+ /* */
1066
+ /* */
1067
+ /* */
1068
+ /* */
1069
+ /* */
1070
+ /* */
1071
+ /* */
1072
+ /* */
1073
+ /* */
1074
+ /* */
1075
+ /* */
1076
+ /* */
1077
+ /* */
1078
+ /* */
1079
+ /* */
1080
+ /* */
1081
+ /* */
1082
+ /* */
1083
+ return (void 0);
1084
+ }
1085
+ async getSortedLibrariesByDepsForBuild() {
1086
+ /* */
1087
+ /* */
1088
+ /* */
1089
+ /* */
1090
+ /* */
1091
+ /* */
1092
+ /* */
1093
+ /* */
1094
+ /* */
1095
+ /* */
1096
+ /* */
1097
+ /* */
1098
+ /* */
1099
+ /* */
1100
+ /* */
1101
+ /* */
1102
+ /* */
1103
+ /* */
1104
+ /* */
1105
+ /* */
1106
+ /* */
1107
+ /* */
1108
+ /* */
1109
+ /* */
1110
+ /* */
1111
+ /* */
1112
+ /* */
1113
+ /* */
1114
+ /* */
1115
+ /* */
1116
+ /* */
1117
+ /* */
1118
+ /* */
1119
+ /* */
1120
+ /* */
1121
+ /* */
1122
+ /* */
1123
+ /* */
1124
+ /* */
1125
+ /* */
1126
+ /* */
1127
+ /* */
1128
+ /* */
1129
+ /* */
1130
+ /* */
1131
+ /* */
1132
+ return (void 0);
1133
+ }
1134
+ get getLibraryBuildSuccessComamnd() {
1135
+ /* */
1136
+ /* */
1137
+ /* */
1138
+ /* */
1139
+ /* */
1140
+ /* */
1141
+ /* */
1142
+ return (void 0);
1143
+ }
1144
+ async buildLibraries({ rebuild = false, watch = false, strategy } = {}) {
1145
+ /* */
1146
+ /* */
1147
+ /* */
1148
+ /* */
1149
+ /* */
1150
+ /* */
1151
+ /* */
1152
+ /* */
1153
+ /* */
1154
+ /* */
1155
+ /* */
1156
+ /* */
1157
+ /* */
1158
+ /* */
1159
+ /* */
1160
+ /* */
1161
+ /* */
1162
+ /* */
1163
+ /* */
1164
+ /* */
1165
+ /* */
1166
+ /* */
1167
+ /* */
1168
+ /* */
1169
+ /* */
1170
+ /* */
1171
+ /* */
1172
+ /* */
1173
+ /* */
1174
+ /* */
1175
+ /* */
1176
+ /* */
1177
+ /* */
1178
+ /* */
1179
+ /* */
1180
+ /* */
1181
+ /* */
1182
+ /* */
1183
+ /* */
1184
+ /* */
1185
+ /* */
1186
+ /* */
1187
+ /* */
1188
+ /* */
1189
+ /* */
1190
+ /* */
1191
+ /* */
1192
+ /* */
1193
+ /* */
1194
+ /* */
1195
+ /* */
1196
+ /* */
1197
+ /* */
1198
+ /* */
1199
+ /* */
1200
+ /* */
1201
+ /* */
1202
+ /* */
1203
+ /* */
1204
+ /* */
1205
+ /* */
1206
+ /* */
1207
+ /* */
1208
+ /* */
1209
+ /* */
1210
+ /* */
1211
+ /* */
1212
+ /* */
1213
+ /* */
1214
+ /* */
1215
+ /* */
1216
+ /* */
1217
+ /* */
1218
+ /* */
1219
+ /* */
1220
+ /* */
1221
+ /* */
1222
+ /* */
1223
+ /* */
1224
+ /* */
1225
+ /* */
1226
+ /* */
1227
+ /* */
1228
+ /* */
1229
+ /* */
1230
+ /* */
1231
+ /* */
1232
+ /* */
1233
+ /* */
1234
+ /* */
1235
+ /* */
1236
+ }
1237
+ getLibraryBuildComamnd(options) {
1238
+ /* */
1239
+ /* */
1240
+ /* */
1241
+ /* */
1242
+ /* */
1243
+ /* */
1244
+ /* */
1245
+ /* */
1246
+ /* */
1247
+ return (void 0);
1248
+ }
1037
1249
  }
1038
1250
  export { BaseProject };
1039
1251
  ;
1040
1252
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/base-project.ts
1041
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2Jhc2UtcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEVBQUUsSUFBSSxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBRTNELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLFVBQVUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUs5RCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFJdEIsTUFBc0IsV0FBVzthQUl4QixRQUFHLEdBQUcsSUFBSSxtQkFBbUIsQ0FBYyxXQUFXLENBQUMsQUFBcEQsQ0FBcUQ7SUFJeEQsTUFBTSxDQUFDLGtCQUFrQixDQUFnRCxRQUFhLEVBQUUsZUFBc0MsRUFBRSxpQkFBc0M7UUFFM0ssTUFBTSxPQUFPLEdBQStCLEVBQUUsQ0FBQztRQUMvQyxNQUFNLEtBQUssR0FBK0IsRUFBRSxDQUFDO1FBQzdDLE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUV2QixNQUFNLEtBQUssR0FBRyxDQUFDLE9BQVUsRUFBRSxFQUFFO1lBQzNCLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUU7Z0JBRXJDLE9BQU8sQ0FBQyxLQUFLLENBQUMsbURBQW1ELGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNoRztZQUVELElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRTtnQkFDeEMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFD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QUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELEtBQUssQ0FBQyxXQUFXLENBQUMsVUFRZCxFQUFFO1FBQ1IsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlPLHlCQUF5QjtRQUNuQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtB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SUFBSSxFQUFFLElBQUk7Y0FDTixJQUFJLEVBQUUsUUFBUSxDQUFDLE1BQU0sTUFBTSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO0VBQ3pGLElBQUksRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzs7R0FHdEQsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUlEOztPQUVHO0lBQ0gsMEJBQTBCO1FBQ3hCLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFXLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBVyxFQUFFLENBQUE7SUFDekQsQ0FBQztJQUlEOzs7T0FHRztJQUNILHFDQUFxQztRQUNuQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFJRDs7T0FFRztJQUNILDBDQUEwQztRQUN4QyxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFJRDs7T0FFRztJQUNILGtDQUFrQztRQUNoQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O1NBcnhDbUIsV0FBVztBQTJ4Q2hDLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUVBQWlFIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxuaW1wb3J0IHsgQ29yZU1vZGVscyB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cbmltcG9ydCB7IENMSSB9IGZyb20gJ3RucC1jbGkvYnJvd3Nlcic7XG5pbXBvcnQgeyBwYXRoLCBjcm9zc1BsYXRmb3JtUGF0aCB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSAndG5wLWNvbmZpZy9icm93c2VyJztcbmltcG9ydCB7IF8gfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IENvbW1pdERhdGEsIEhlbHBlcnMsIFR5cGVPZkNvbW1pdCB9IGZyb20gJy4uL2luZGV4JztcbmltcG9ydCB7IEJhc2VQcm9qZWN0UmVzb2x2ZXIgfSBmcm9tICcuL2Jhc2UtcHJvamVjdC1yZXNvbHZlcic7XG5pbXBvcnQgeyB0cmFuc2xhdGUgfSBmcm9tICcuL3RyYW5zbGF0ZSc7XG5cblxuXG5jb25zdCB0YWtlblBvcnRzID0gW107XG5cbmV4cG9ydCB0eXBlIEJhc2VQcm9qZWN0VHlwZSA9ICd1bmtub3cnIHwgJ3Vua25vdy1ucG0tcHJvamVjdCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlUHJvamVjdDxQUk9KQ0VUIGV4dGVuZHMgQmFzZVByb2plY3QgPSBhbnksIFRZUEUgPSBCYXNlUHJvamVjdFR5cGU+IHtcblxuXG5cbiAgc3RhdGljIGlucyA9IG5ldyBCYXNlUHJvamVjdFJlc29sdmVyPEJhc2VQcm9qZWN0PihCYXNlUHJvamVjdCk7XG5cblxuXG4gIHB1YmxpYyBzdGF0aWMgc29ydEdyb3VwT2ZQcm9qZWN0PFQgZXh0ZW5kcyBCYXNlUHJvamVjdDxhbnk+ID0gQmFzZVByb2plY3Q8YW55Pj4ocHJvamVjdHM6IFRbXSwgcmVzb3ZlRGVwc0FycmF5OiAocHJvajogVCkgPT4gc3RyaW5nW10sIHByb2pOYW1lVG9Db21wYXJlOiAocHJvajogVCkgPT4gc3RyaW5nKTogVFtdIHtcblxuICAgIGNvbnN0IHZpc2l0ZWQ6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gICAgY29uc3Qgc3RhY2s6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG4gICAgY29uc3QgcmVzdWx0OiBUW10gPSBbXTtcblxuICAgIGNvbnN0IHZpc2l0ID0gKHByb2plY3Q6IFQpID0+IHtcbiAgICAgIGlmIChzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0pIHtcblxuICAgICAgICBIZWxwZXJzLmVycm9yKGBDaXJjdWxhciBkZXBlbmRlbmN5IGRldGVjdGVkIGludm9sdmluZyBwcm9qZWN0OiAke3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpfWApO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXZpc2l0ZWRbcHJvak5hbWVUb0NvbXBhcmUocHJvamVjdCldKSB7XG4gICAgICAgIHZpc2l0ZWRbcHJvak5hbWVUb0NvbXBhcmUocHJvamVjdCldID0gdHJ1ZTtcbiAgICAgICAgc3RhY2tbcHJvak5hbWVUb0NvbXBhcmUocHJvamVjdCldID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBkZXBzUmVzb2x2ZWQgPSByZXNvdmVEZXBzQXJyYXkocHJvamVjdCk7XG4gICAgICAgIGRlcHNSZXNvbHZlZC5mb3JFYWNoKGRlcGVuZGVuY3kgPT4ge1xuICAgICAgICAgIGNvbnN0IGRlcGVuZGVudFByb2plY3QgPSBwcm9qZWN0cy5maW5kKHAgPT4ge1xuXG4gICAgICAgICAgICByZXR1cm4gcHJvak5hbWVUb0NvbXBhcmUocCkgPT09IGRlcGVuZGVuY3k7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKGRlcGVuZGVudFByb2plY3QpIHtcbiAgICAgICAgICAgIHZpc2l0KGRlcGVuZGVudFByb2plY3QpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgc3RhY2tbcHJvak5hbWVUb0NvbXBhcmUocHJvamVjdCldID0gZmFsc2U7XG4gICAgICAgIHJlc3VsdC5wdXNoKHByb2plY3QpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBwcm9qZWN0cy5mb3JFYWNoKHByb2plY3QgPT4gdmlzaXQocHJvamVjdCkpO1xuICAgIHJldHVybiByZXN1bHQ7XG5cbiAgfVxuXG5cblxuXG5cbiAgcHVibGljIGNhY2hlOiBhbnkgPSB7fTtcbiAgcmVhZG9ubHkgdHlwZTogVFlQRSB8IHN0cmluZyA9ICd1bmtub3cnO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFja2FnZUpTT046IGFueTtcbiAgLyoqXG4gICAqIHJlc29sdmUgaW5zdGFuY2VcbiAgICovXG4gIGFic3RyYWN0IHJlYWRvbmx5IGluczogQmFzZVByb2plY3RSZXNvbHZlcjxQUk9KQ0VUPjtcbiAgLyoqXG4gICAqIFVuaXF1ZSBmcmVlIHBvcnQgZm9yIHByb2plY3QgaW5zdGFuY2VcbiAgICogb25seSBhdmFpbGFibGUgYWZ0ZXIgZXhlY3V0aW5nICp0aGlzLmFzc2lnbkZyZWVQb3J0KCkqXG4gICAqL1xuICByZWFkb25seSBwb3J0OiBzdHJpbmc7XG5cblxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3RydWN0b3IoXG4gICAgLyoqXG4gICAgICogZG9lc24ndCBuZWVkIHRvIGJlIHJlYWwgcGF0aCAtPiBjYW4gYmUgbGlua1xuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nLFxuICApIHsgfVxuXG5cblxuXG5cbiAgcHVibGljIHNldFR5cGUodHlwZTogVFlQRSkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICB9XG5cblxuXG4gIHB1YmxpYyB0eXBlSXMoLi4udHlwZXM6IFRZUEVbXSkge1xuICAgIHJldHVybiB0aGlzLnR5cGUgJiYgdHlwZXMuaW5jbHVkZXModGhpcy50eXBlIGFzIGFueSk7XG4gIH1cblxuXG5cbiAgcHVibGljIHR5cGVJc05vdCguLi50eXBlczogVFlQRVtdKSB7XG4gICAgcmV0dXJuICF0aGlzLnR5cGVJcyguLi50eXBlcyk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHByb2plY3QgZm9sZGVyIGJhc2VuYW1lXG4gICAqL1xuICBnZXQgYmFzZW5hbWUoKTogc3RyaW5nIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogbmFtZSBmcm9tIHBhY2thZ2UuanNvblxuICAgKi9cbiAgZ2V0IG5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMucGFja2FnZUpTT04/Lm5hbWU7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb24gLT4gcHJvcGVydHkgdmVyc2lvblxuICAgKi9cbiAgZ2V0IHZlcnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMucGFja2FnZUpTT04/LnZlcnNpb247XG4gIH1cblxuXG5cbiAgLyoqXG4gICogTWFqb3IgVmVyc2lvbiBmcm9tIHBhY2thZ2UuanNvblxuICAqL1xuICAvLyBAdHMtaWdub3JlXG4gIGdldCBtYWpvclZlcnNpb24oKTogbnVtYmVyIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogTWlub3IgVmVyc2lvbiBmcm9tIHBhY2thZ2UuanNvblxuICAgKi9cbiAgLy8gQHRzLWlnbm9yZVxuICBnZXQgbWlub3JWZXJzaW9uKCk6IG51bWJlciB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCB2ZXJzaW9uUGF0aEFzTnVtYmVyKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cblxuXG4gIC8qKlxuICAgKiBucG0gZGVwZW5kZW5jaWVzIGZyb20gcGFja2FnZS5qc29uXG4gICAqL1xuICBnZXQgZGVwZW5kZW5jaWVzKCkge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTiA/IHRoaXMucGFja2FnZUpTT04uZGVwZW5kZW5jaWVzIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBwZWVyRGVwZW5kZW5jaWVzIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgZ2V0IHBlZXJEZXBlbmRlbmNpZXMoKSB7XG4gICAgcmV0dXJuICh0aGlzLnBhY2thZ2VKU09OID8gdGhpcy5wYWNrYWdlSlNPTi5wZWVyRGVwZW5kZW5jaWVzIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBkZXZEZXBlbmRlbmNpZXMgZGVwZW5kZW5jaWVzXG4gICAqL1xuICBnZXQgZGV2RGVwZW5kZW5jaWVzKCkge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTiA/IHRoaXMucGFja2FnZUpTT04uZGV2RGVwZW5kZW5jaWVzIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiByZXNvbHV0aW9ucyBkZXBlbmRlbmNpZXNcbiAgICovXG4gIGdldCByZXNvbHV0aW9ucygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OWydyZXNvbHV0aW9ucyddIDoge30pIHx8IHt9O1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiAgb2JqZWN0IHdpdGggYWxsIGRlcHMgZnJvbSBwYWNrYWdlIGpzb25cbiAgICovXG4gIGdldCBhbGxEZXBlbmRlbmNpZXMoKTogeyBbcGFja2FnZU5hbWU6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICByZXR1cm4gXy5tZXJnZSh7XG4gICAgICAuLi50aGlzLmRldkRlcGVuZGVuY2llcyxcbiAgICAgIC4uLnRoaXMucGVlckRlcGVuZGVuY2llcyxcbiAgICAgIC4uLnRoaXMuZGVwZW5kZW5jaWVzLFxuICAgICAgLi4udGhpcy5yZXNvbHV0aW9uc1xuICAgIH0pIGFzIGFueTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgZ2V0Rm9sZGVyc0ZvclBvc3NpYmxlUHJvamVjdENoaWxkcmVuKCk6IHN0cmluZ1tdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBnZXRBbGxDaGlsZHJlbigpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGFsaWFzIHRvIGdldEFsbENoaWxkcmVuXG4gICAqL1xuICBnZXQgY2hpbGRyZW4oKTogUFJPSkNFVFtdIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXRDaGlsZEJ5KG5hbWVPckJhc2VuYW1lOiBzdHJpbmcsIGVycm9ycyA9IHRydWUpOiBQUk9KQ0VUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IHBhcmVudCgpOiBQUk9KQ0VUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgZ3JhbmRwYSgpOiBQUk9KQ0VUIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IGdlbmVyaWNOYW1lKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgKiBzYW1lIGhhcyBwcm9qZWN0Lmhhc0ZpbGUoKTtcbiAgKi9cbiAgcGF0aEV4aXN0cyhyZWxhdGl2ZVBhdGg6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzRmlsZShyZWxhdGl2ZVBhdGgpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBzYW1lIGFzIHByb2plY3QucGF0aEV4aXN0cygpO1xuICAgKi9cbiAgaGFzRmlsZShyZWxhdGl2ZVBhdGg6IHN0cmluZyB8IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEhlbHBlcnMuZXhpc3RzKHRoaXMucGF0aEZvcihyZWxhdGl2ZVBhdGgpKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogc2FtZSBhcyBwcm9qZWN0LnBhdGhoYXNGaWxlRXhpc3RzKCk7XG4gICAqIGJ1dCB3aXRoIHBhdGgucmVzb2x2ZVxuICAgKi9cbiAgY29udGFpbnNGaWxlKGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5yZXNvbHZlKHBhdGguam9pbih0aGlzLmxvY2F0aW9uLCBmaWxlUmVsYXRpdmVUb1Byb2plY3RQYXRoKSk7XG4gICAgcmV0dXJuIEhlbHBlcnMuZXhpc3RzKGZ1bGxQYXRoKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogYWJzb2x1dGUgcGF0aDpcbiAgICogY29uY2F0ZWQgcHJvamVjdCBsb2NhdGlvbiB3aXRoIHJlbGF0aXZlIHBhdGhcbiAgICovXG4gIHBhdGhGb3IocmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHdyaXRlSnNvbihyZWxhdGl2ZVBhdGg6IHN0cmluZywganNvbjogb2JqZWN0KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIHVzIGV4ZWN1dGUgaW5zdGVhZFxuICAgKiB1c2Ugb3V0cHV0IGZyb20gb3IgbW9yZSBwcmVjaWVzZSBjcmFmdGVkIGFwaVxuICAgKi9cbiAgcnVuKGNvbW1hbmQ6IHN0cmluZywgb3B0aW9ucz86IE9taXQ8Q29yZU1vZGVscy5SdW5PcHRpb25zLCAnY3dkJz4pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHNhbWUgYXMgcnVuIGJ1dCBhc3luY1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGV4ZWN1dGUoY29tbWFuZDogc3RyaW5nLCBvcHRpb25zPzogQ29yZU1vZGVscy5FeGVjdXRlT3B0aW9ucyAmIHsgc2hvd0NvbW1hbmQ/OiBib29sZWFuIH0pOiBQcm9taXNlPGFueT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogdHJ5IHJ1biBidXQgY29udGludWUgd2hlbiBpdCBmYWlsc1xuICAgKiBAcGFyYW0gY29tbWFuZFxuICAgKiBAcGFyYW0gb3B0aW9uc1xuICAgKiBAcmV0dXJuc1xuICAgKi9cbiAgdHJ5UnVuU3luYyhjb21tYW5kOiBzdHJpbmdcbi8qICovXG4vKiAqL1xuICBcbiAgKTogdm9pZCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIG91dHB1dEZyb20oY29tbWFuZDogc3RyaW5nXG4vKiAqL1xuLyogKi9cbiAgXG4gICkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlbW92ZUZpbGUoZmlsZVJlbGF0aXZlVG9Qcm9qZWN0UGF0aDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlbW92ZShyZWxhdGl2ZVBhdGg6IHN0cmluZywgZXhhY3RQYXRoID0gdHJ1ZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICByZW1vdmVGb2xkZXJCeVJlbGF0aXZlUGF0aChyZWxhdGl2ZVBhdGhUb0ZvbGRlcjogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgbGlua05vZGVNb2R1bGVzVG8ocHJvajogUGFydGlhbDxCYXNlUHJvamVjdD4pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZWluc3RhbGxOb2RlTW9kdWxlcyhmb3JjZXJSZW1vdmVOb2RlTW9kdWxlcyA9IGZhbHNlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgYXN5bmMgYXNzaWduRnJlZVBvcnQoc3RhcnRGcm9tOiBudW1iZXIgPSA0MjAwLCBob3dNYW55RnJlZVBvcnRzQWZ0ZXJUaGF0UG9ydDogbnVtYmVyID0gMCk6IFByb21pc2U8bnVtYmVyPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcmVtb3ZlSXRzZWxmKCkge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIC8qKlxuICAgKiBQdXJwb3NlOiBub3QgaW5pdGlhbGl6aW5nIGFsbCBjbGFzc2VzIGF0IHRoZSBiZWdpbm5pbmdcbiAgICogT25seSBmb3IgQmFzZUZlYXR1cmVGb3JQcm9qZWN0IGNsYXNzXG4gICAqL1xuICBkZWZpbmVQcm9wZXJ0eTxQUk9KRUNUPih2YXJpYWJsZU5hbWU6IGtleW9mIFBST0pFQ1QsIGNsYXNzRm46IEZ1bmN0aW9uLCBvcHRpb25zPzoge1xuICAgIGN1c3RvbUluc3RhbmNlUmV0dXJuPzogKCkgPT4gb2JqZWN0XG4gIH0pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBmcy5jb3B5IG9wdGlvbiBmaWx0ZXIgZnVuY3Rpb24gZm9yIGNvcHlpbmcgb25seSBzZWxlY3RlZCBmb2xkZXJzIGZyb20gcHJvamVjdFxuICAgKi9cbiAgZmlsdGVyT25seUNvcHkoYmFzZVBhdGhGb2xkZXJzT25seVRvSW5jbHVkZTogc3RyaW5nW10pIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogZnMuY29weSBvcHRpb24gZmlsdGVyIGZ1bmN0aW9uIGZvciBjb3B5aW5nIG9ubHkgbm90IHNlbGVjdGVkIGZvbGRlcnMgZnJvbSBwcm9qZWN0XG4gICAqL1xuICBmaWx0ZXJEb250Q29weShiYXNlUGF0aEZvbGRlcnNUb3NTa2lwOiBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldERlZmF1bHREZXZlbG9wbWVudEJyYW5jaCgpIHtcbiAgICByZXR1cm4gJ2RldmVsb3AnO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBtYWluL2RlZmF1bHQgaGFyZGNvZGVkIGJyYW5jaGVzXG4gICAqL1xuICBnZXRNYWluQnJhbmNoZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbJ21hc3RlcicsICdkZXZlbG9wJywgJ3N0YWdlJywgJ3Byb2QnLCAndGVzdCddXG4gIH1cblxuXG5cbiAgaXNVbnNpbmdBY3Rpb25Db21taXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuXG4gIGFzeW5jIHJlc2V0UHJvY2VzcyhvdmVycmlkZUJyYW5jaD86IHN0cmluZywgcmVjcnVzaXZlID0gZmFsc2UpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIGFzeW5jIHB1bGxQcm9jZXNzKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBhc3luYyBwdXNoUHJvY2VzcyhvcHRpb25zOiB7XG4gICAgZm9yY2U/OiBib29sZWFuO1xuICAgIHR5cGVvZkNvbW1pdD86IFR5cGVPZkNvbW1pdDtcbiAgICBvcmlnaW4/OiBzdHJpbmc7XG4gICAgYXJncz86IHN0cmluZ1tdO1xuICAgIGV4aXRDYWxsQmFjaz86ICgpID0+IHZvaWQ7XG4gICAgZm9yY2VQdXNoTm9RdWVzdGlvbj86IGJvb2xlYW47XG4gICAgY29tbWl0TWVzc2FnZVJlcXVpcmVkPzogYm9vbGVhbjtcbiAgfSA9IHt9KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByaXZhdGUgX2JlZm9yZUFueUFjdGlvbk9uR2l0Um9vdCgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIGFzeW5jIF9iZWZvcmVQdXNoUHJvY2Vzc0FjdGlvbigpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgYXN5bmMgX2JlZm9yZVB1bGxQcm9jZXNzQWN0aW9uKCkge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBhc3luYyBfZ2V0Q29tbWl0TWVzc2FnZSh0eXBlb2ZDb21taXQ6IFR5cGVPZkNvbW1pdCwgYXJnczogc3RyaW5nW10sIGNvbW1pdE1lc3NhZ2VSZXF1aXJlZD86IGJvb2xlYW4pOiBQcm9taXNlPENvbW1pdERhdGE+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGxpbmtUbyhkZXN0UGFja2FnZUxvY2F0aW9uOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuXG4gIHdyaXRlRmlsZShyZWxhdGl2ZVBhdGg6IHN0cmluZywgY29udGVudDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgcHVibGljIHJ1bkNvbW1hbmRHZXRTdHJpbmcodGhpczogQmFzZVByb2plY3QsIGNvbW1hbmQ6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHB1YmxpYyBnZXQgZ2l0KCkge1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiB7XG4gICAgICByZXZlcnRGaWxlQ2hhbmdlcyhmaWxlUmVsZXRpdmVQYXRoOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgY2xvbmUodXJsOiBzdHJpbmcsIGRlc3RpbmF0aW9uRm9sZGVyTmFtZSA9ICcnKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHJlc3RvcmVMYXN0VmVyc2lvbihsb2NhbEZpbGVQYXRoOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgc3RhZ2VBbGxGaWxlcygpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgc3Rhc2gob3B0aW5vcz86IHtcbiAgICAgICAgb25seVN0YWdlZD86IGJvb2xlYW47XG4gICAgICB9KSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHN0YXNoQXBwbHkoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGZldGNoKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICByZXNldEZpbGVzKC4uLnJlbGF0aXZlUGF0aGVzOiBzdHJpbmdbXSkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgaXNHaXRSZXBvKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgaXNHaXRSb290KCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgb3JpZ2luVVJMKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBjb21taXQoY29tbWl0TWVzc2FnZT86IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqIGFsaWFzIHRvIHN0YWdlIGFsbCBhbmQgY29tbWl0XG4gICAgICAgKi9cbiAgICAgIGFkZEFuZENvbW1pdChjb21taXRNZXNzYWdlOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgc3RhZ2VBbGxBbmRDb21taXQoY29tbWl0TWVzc2FnZTogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGFzeW5jIHB1c2hDdXJyZW50QnJhbmNoKG9wdGlvbnM/OiB7IGZvcmNlPzogYm9vbGVhbjsgb3JpZ2luPzogc3RyaW5nLCBhc2tUb1JldHJ5PzogYm9vbGVhbjsgZm9yY2VQdXNoTm9RdWVzdGlvbj86IGJvb2xlYW47IH0pIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IGFsbE9yaWdpbnMoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCB1bmNvbW1pdGVkRmlsZXMoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCB0aGVyZUFyZVNvbWVVbmNvbW1pdGVkQ2hhbmdlKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICB0aGVyZUFyZVNvbWVVbmNvbW1pdGVkQ2hhbmdlRXhjZXB0KGZpbGVzTGlzdDogc3RyaW5nW10gPSBbXSkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBtZWx0QWN0aW9uQ29tbWl0cyhzb2Z0ID0gZmFsc2UpIHtcbi8qICovXG4vKiAqL1xuICBcbiAgICAgIH0sXG4gICAgICBhc3luYyBwdWxsQ3VycmVudEJyYW5jaChvcHRpb25zPzoge1xuICAgICAgICBhc2tUb1JldHJ5PzogYm9vbGVhbixcbiAgICAgICAgZGVmYXVsdEhhcmRSZXNldENvbW1pdHM/OiBudW1iZXJcbiAgICAgIH0pIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IGN1cnJlbnRCcmFuY2hOYW1lKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXRCcmFuY2hlc05hbWVzQnkocGF0dGVybjogc3RyaW5nIHwgUmVnRXhwKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHJlc2V0U29mdEhFQUQoSEVBRCA9IDEpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgcmVzZXRIYXJkKG9wdGlvbnM/OiB7XG4gICAgICAgIEhFQUQ/OiBudW1iZXJcbiAgICAgIH0pIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgY291bnRDb21pdHMoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGhhc0FueUNvbW1pdHMoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCBpc0luTWVyZ2VQcm9jZXNzKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBsYXN0Q29tbWl0RGF0ZSgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgbGFzdENvbW1pdEhhc2goKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGxhc3RDb21taXRNZXNzYWdlKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBwZW51bHRpbWFnZUNvbW1pdEhhc2goKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGNoZWNrVGFnRXhpc3RzKHRhZzogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGNoZWNrb3V0KGJyYW5jaE5hbWU6IHN0cmluZywgb3B0aW9ucz86IHsgY3JlYXRlQnJhbmNoSWZOb3RFeGlzdHM/OiBib29sZWFuOyBmZXRjaEJlZm9yZUNoZWNrb3V0PzogYm9vbGVhbjsgc3dpdGNoQnJhbmNoV2hlbkV4aXN0cz86IGJvb2xlYW47IH0pIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgY2hlY2tvdXRGcm9tVG8oY2hlY2tvdXRGcm9tQnJhbmNoOiBzdHJpbmcsIGJyYW5jaDogc3RyaW5nLCBvcmlnaW4gPSAnb3JpZ2luJykge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0gbWFqb3JWZXJzaW9uIGV4YW1wbGU6IHYxLCB2MiBldGMuXG4gICAgICAgKiBAcmV0dXJucyB0YWcgbmFtZVxuICAgICAgICovXG4gICAgICBsYXN0VGFnTmFtZUZvck1ham9yVmVyc2lvbihtYWpvclZlcnNpb24pIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgbGFzdFRhZ0hhc2goKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCByZW1vdGVPcmlnaW5VcmwoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCBsYXN0VGFnVmVyc2lvbk5hbWUoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCBzdGFnZWRGaWxlcygpOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIC8qKlxuICAgICAgICogVE9ETyBkb2VzIHRoaXMgbWFrZSBhbnkgc2Vuc2VcbiAgICAgICAqL1xuICAgICAgcmVuYW1lT3JpZ2luKG5ld05hbWVPclVscjogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgIH1cbiAgfVxuXG5cblxuICB0b1N0cmluZyA9ICgpID0+IHtcbiAgICByZXR1cm4gYCR7dGhpcy5uYW1lfT0+JHt0aGlzLmxvY2F0aW9ufWA7XG4gIH07XG5cblxuXG4gIHByb3RlY3RlZCBjaGVja0lmTG9nZ2luSW5Ub05wbSgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IHBhcmVudHNOYW1lcygpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbiAgb3BlbkxvY2F0aW9uKHJlbGF0aXZlRm9sZGVyUGF0aDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIHByaXZhdGUgZmluZFBhcmVudHNOYW1lcyhwcm9qZWN0PzogUFJPSkNFVCwgcGFyZW50PzogUFJPSkNFVCwgcmVzdWx0ID0gW10pOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgdHJ5S2lsbEFsbEVsZWN0cm9uSW5zdGFuY2VzKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBpbml0IHByb2plY3QgZmlsZXMgc3RydWN0dXJlIGFuZCBkZXBlZGVuY2llc1xuICAgKi9cbiAgYXN5bmMgaW5pdChpbml0T3B0aW9ucz86IGFueSkge1xuICAgIHRocm93IChuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJykpXG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGdsb2JhbGx5IGxpbmsgbnBtIGFzIHBhY2thZ2VcbiAgICovXG4gIGFzeW5jIGxpbmsoKSB7XG4gICAgdGhyb3cgKG5ldyBFcnJvcignVE9ETyBJTVBMRU1FTlQnKSlcbiAgfVxuXG5cblxuICAvKipcbiAgICogaW5pdCBwcm9qZWN0IGZpbGVzIHN0cnVjdHVyZSB3aXRob3V0IGRlcGVkZW5jaWVzXG4gICAqL1xuICBhc3luYyBzdHJ1Y3QoaW5pdE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyAobmV3IEVycm9yKCdUT0RPIElNUExFTUVOVCcpKVxuICB9XG5cblxuXG4gIC8qKlxuICAqIGluaXQgYW5kIGJ1aWxkKCkgcHJvamVjdFxuICAqL1xuICBhc3luYyBidWlsZChidWlsZE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyAobmV3IEVycm9yKCdUT0RPIElNUExFTUVOVCcpKVxuICB9XG5cblxuXG4gIC8qKlxuICAgKiBsaW50IHBvcmplY3RcbiAgICovXG4gIGFzeW5jIGxpbnQobGludE9wdGlvbnM/OiBhbnkpIHtcbiAgICBIZWxwZXJzLmluZm8oYFxuXG5cbiAgICBDT01NSVQgTElOVCBOT1QgSU1QTEVNRU5URURcblxuXG4gICAgYClcbiAgfVxuXG5cblxuICAvKipcbiAgICogZ2V0IGluZm8gYWJvdXQgcG9yamVjdFxuICAgKi9cbiAgYXN5bmMgaW5mbygpIHtcbiAgICBjb25zdCBwcm9qID0gdGhpcztcbiAgICBIZWxwZXJzLmluZm8oYFxuXG4gIG5hbWU6ICR7cHJvaj8ubmFtZX1cbiAgdHlwZTogJHtwcm9qPy50eXBlfVxuICBjaGlsZHJlbiAoJHtwcm9qPy5jaGlsZHJlbi5sZW5ndGh9KTogJHsoIXByb2ogfHwgIXByb2ouY2hpbGRyZW4ubGVuZ3RoKSA/ICc8IG5vbmUgPicgOiAnJ31cbiR7cHJvaj8uY2hpbGRyZW4ubWFwKGMgPT4gJysnICsgYy5nZW5lcmljTmFtZSkuam9pbignXFxuJyl9XG5cblxuICBgKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogQnkgZGVmYXVsdCBubyB0cmFuc2xhdGlvbiBvZiBjb21taXRcbiAgICovXG4gIHRyYW5zYWx0ZUdpdENvbW1pdEZyb21BcmdzKCkge1xuICAgIHJldHVybiB7IGZyb206IHZvaWQgMCBhcyBzdHJpbmcsIHRvOiB2b2lkIDAgYXMgc3RyaW5nIH1cbiAgfVxuXG5cblxuICAvKipcbiAgICogQnkgZGVmdWx0IHRydWUuLiB3aGVuIGNvbW1pdCBicmFuY2hlcyB3aWxsIG5vdCBmdW5jdGlvbi5cbiAgICogKGZhbHNlIGlzIGJldHRlciBmb3Igc2ltcGxlIHByb2plY3RzKVxuICAgKi9cbiAgdXNlR2l0QnJhbmNoZXNXaGVuQ29tbWl0aW5nQW5kUHVzaGluZygpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogdXNlZnVsbCB3aGVuIHB1c2hpbmcgaW4gcHJvamVjdCB3aXRoIGNoaWxkcmVucyBhcyBnaXQgcmVwb3NcbiAgICovXG4gIGF1dG9tYXRpY2FsbHlBZGRBbGxDaG5hZ2VzV2hlblB1c2hpbmdUb0dpdCgpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHVzZWZ1bGwgd2hlbiBwdXNoaW5nIGluIHByb2plY3Qgd2l0aCBjaGlsZHJlbnMgYXMgZ2l0IHJlcG9zXG4gICAqL1xuICB1c2VHaXRCcmFuY2hlc0FzTWV0YWRhdGFGb3JDb21taXRzKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cblxufVxuXG5cbiA7KHt9KTsgLy8gQC0tZW5kLW9mLWZpbGUtZm9yLW1vZHVsZT10bnAtaGVscGVycyBsaWIvYmFzZS9iYXNlLXByb2plY3QudHMiXX0=
1253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWhlbHBlcnMvcHJvamVjdHMvdG5wLWhlbHBlcnMvc3JjL2xpYi9iYXNlL2Jhc2UtcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEVBQUUsSUFBSSxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBRTNELE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNyQyxPQUFPLEVBQWMsT0FBTyxFQUFnQixNQUFNLFVBQVUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUk5RCxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFvQnRCLE1BQXNCLFdBQVc7YUFJeEIsUUFBRyxHQUFHLElBQUksbUJBQW1CLENBQWMsV0FBVyxDQUFDLEFBQXBELENBQXFEO0lBSXhELE1BQU0sQ0FBQyxrQkFBa0IsQ0FBZ0QsUUFBYSxFQUFFLGVBQXNDLEVBQUUsaUJBQXNDO1FBRTNLLE1BQU0sT0FBTyxHQUErQixFQUFFLENBQUM7UUFDL0MsTUFBTSxLQUFLLEdBQStCLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE1BQU0sR0FBUSxFQUFFLENBQUM7UUFFdkIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUFVLEVBQUUsRUFBRTtZQUMzQixJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO2dCQUVyQyxPQUFPLENBQUMsS0FBSyxDQUFDLG1EQUFtRCxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDaEc7WUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUU7Z0JBQ3hDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FB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QUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxLQUFLLENBQUMsV0FBVyxDQUFDLFVBUWQsRUFBRTtRQUNSLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJTyx5QkFBeUI7UUFDbkMsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxL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QUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELEtBQUssQ0FBQyxnQ0FBZ0M7UUFDeEMsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxJQUFJLDZCQUE2QjtRQUNuQyxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlNLEtBQUssQ0FBQyxjQUFjLENBQUMsRUFBRSxPQUFPLEdBQUcsS0FBSyxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsUUFBUSxLQUdsRSxFQUFFO1FBQ1IsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztJQUVILENBQUM7SUFJRCxzQkFBc0IsQ0FBQyxPQUE0QjtRQUNyRCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDOztTQWpnRG1CLFdBQVc7QUFzZ0RoQyxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGlFQUFpRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5cbmltcG9ydCB7IENvcmVNb2RlbHMgfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5pbXBvcnQgeyBDTEkgfSBmcm9tICd0bnAtY2xpL2Jyb3dzZXInO1xuaW1wb3J0IHsgcGF0aCwgY3Jvc3NQbGF0Zm9ybVBhdGggfSBmcm9tICd0bnAtY29yZS9icm93c2VyJztcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gJ3RucC1jb25maWcvYnJvd3Nlcic7XG5pbXBvcnQgeyBfIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7XG5pbXBvcnQgeyBDb21taXREYXRhLCBIZWxwZXJzLCBUeXBlT2ZDb21taXQgfSBmcm9tICcuLi9pbmRleCc7XG5pbXBvcnQgeyBCYXNlUHJvamVjdFJlc29sdmVyIH0gZnJvbSAnLi9iYXNlLXByb2plY3QtcmVzb2x2ZXInO1xuaW1wb3J0IHsgdHJhbnNsYXRlIH0gZnJvbSAnLi90cmFuc2xhdGUnO1xuXG5cbmNvbnN0IHRha2VuUG9ydHMgPSBbXTtcblxuZXhwb3J0IHR5cGUgQmFzZVByb2plY3RUeXBlID0gJ3Vua25vdycgfCAndW5rbm93LW5wbS1wcm9qZWN0JztcblxuLyoqXG4gKiBBbmd1bGFyIHByb2plY3QgdHlwZVxuICovXG5leHBvcnQgdHlwZSBOZ1Byb2plY3QgPSB7XG4gIFwicHJvamVjdFR5cGVcIjogXCJsaWJyYXJ5XCIgfCBcImFwcGxpY2F0aW9uXCIsXG4gIC8qKlxuICAgKiB3aGVyZSBuZy1wYWNrYWdyLmpzb24gaXMgbG9jYXRlZCwgdHNjb25maWcgZXRjLlxuICAgKi9cbiAgXCJyb290XCI6IHN0cmluZyxcbiAgLyoqXG4gICAqIFNvdXJjZSBjb2RlIHByb2plY3RcbiAgICovXG4gIFwic291cmNlUm9vdFwiOiBzdHJpbmcsXG4gIFwicHJlZml4XCI6IHN0cmluZztcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VQcm9qZWN0PFBST0pDRVQgZXh0ZW5kcyBCYXNlUHJvamVjdCA9IGFueSwgVFlQRSA9IEJhc2VQcm9qZWN0VHlwZT4ge1xuXG5cblxuICBzdGF0aWMgaW5zID0gbmV3IEJhc2VQcm9qZWN0UmVzb2x2ZXI8QmFzZVByb2plY3Q+KEJhc2VQcm9qZWN0KTtcblxuXG5cbiAgcHVibGljIHN0YXRpYyBzb3J0R3JvdXBPZlByb2plY3Q8VCBleHRlbmRzIEJhc2VQcm9qZWN0PGFueT4gPSBCYXNlUHJvamVjdDxhbnk+Pihwcm9qZWN0czogVFtdLCByZXNvdmVEZXBzQXJyYXk6IChwcm9qOiBUKSA9PiBzdHJpbmdbXSwgcHJvak5hbWVUb0NvbXBhcmU6IChwcm9qOiBUKSA9PiBzdHJpbmcpOiBUW10ge1xuXG4gICAgY29uc3QgdmlzaXRlZDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgICBjb25zdCBzdGFjazogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgICBjb25zdCByZXN1bHQ6IFRbXSA9IFtdO1xuXG4gICAgY29uc3QgdmlzaXQgPSAocHJvamVjdDogVCkgPT4ge1xuICAgICAgaWYgKHN0YWNrW3Byb2pOYW1lVG9Db21wYXJlKHByb2plY3QpXSkge1xuXG4gICAgICAgIEhlbHBlcnMuZXJyb3IoYENpcmN1bGFyIGRlcGVuZGVuY3kgZGV0ZWN0ZWQgaW52b2x2aW5nIHByb2plY3Q6ICR7cHJvak5hbWVUb0NvbXBhcmUocHJvamVjdCl9YCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghdmlzaXRlZFtwcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0pIHtcbiAgICAgICAgdmlzaXRlZFtwcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSB0cnVlO1xuICAgICAgICBzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSB0cnVlO1xuXG4gICAgICAgIGNvbnN0IGRlcHNSZXNvbHZlZCA9IHJlc292ZURlcHNBcnJheShwcm9qZWN0KTtcbiAgICAgICAgZGVwc1Jlc29sdmVkLmZvckVhY2goZGVwZW5kZW5jeSA9PiB7XG4gICAgICAgICAgY29uc3QgZGVwZW5kZW50UHJvamVjdCA9IHByb2plY3RzLmZpbmQocCA9PiB7XG5cbiAgICAgICAgICAgIHJldHVybiBwcm9qTmFtZVRvQ29tcGFyZShwKSA9PT0gZGVwZW5kZW5jeTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoZGVwZW5kZW50UHJvamVjdCkge1xuICAgICAgICAgICAgdmlzaXQoZGVwZW5kZW50UHJvamVjdCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBzdGFja1twcm9qTmFtZVRvQ29tcGFyZShwcm9qZWN0KV0gPSBmYWxzZTtcbiAgICAgICAgcmVzdWx0LnB1c2gocHJvamVjdCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHByb2plY3RzLmZvckVhY2gocHJvamVjdCA9PiB2aXNpdChwcm9qZWN0KSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcblxuICB9XG5cblxuXG5cblxuICBwdWJsaWMgY2FjaGU6IGFueSA9IHt9O1xuICByZWFkb25seSB0eXBlOiBUWVBFIHwgc3RyaW5nID0gJ3Vua25vdyc7XG4gIHByb3RlY3RlZCByZWFkb25seSBwYWNrYWdlSlNPTjogYW55O1xuICAvKipcbiAgICogcmVzb2x2ZSBpbnN0YW5jZVxuICAgKi9cbiAgYWJzdHJhY3QgcmVhZG9ubHkgaW5zOiBCYXNlUHJvamVjdFJlc29sdmVyPFBST0pDRVQ+O1xuICAvKipcbiAgICogVW5pcXVlIGZyZWUgcG9ydCBmb3IgcHJvamVjdCBpbnN0YW5jZVxuICAgKiBvbmx5IGF2YWlsYWJsZSBhZnRlciBleGVjdXRpbmcgKnRoaXMuYXNzaWduRnJlZVBvcnQoKSpcbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ6IHN0cmluZztcblxuXG5cbiAgLy8gQHRzLWlnbm9yZVxuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBkb2Vzbid0IG5lZWQgdG8gYmUgcmVhbCBwYXRoIC0+IGNhbiBiZSBsaW5rXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGxvY2F0aW9uOiBzdHJpbmcsXG4gICkge1xuXG4gIH1cblxuXG5cblxuXG4gIHB1YmxpYyBzZXRUeXBlKHR5cGU6IFRZUEUpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxuXG5cblxuICBwdWJsaWMgdHlwZUlzKC4uLnR5cGVzOiBUWVBFW10pIHtcbiAgICByZXR1cm4gdGhpcy50eXBlICYmIHR5cGVzLmluY2x1ZGVzKHRoaXMudHlwZSBhcyBhbnkpO1xuICB9XG5cblxuXG4gIHB1YmxpYyB0eXBlSXNOb3QoLi4udHlwZXM6IFRZUEVbXSkge1xuICAgIHJldHVybiAhdGhpcy50eXBlSXMoLi4udHlwZXMpO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBwcm9qZWN0IGZvbGRlciBiYXNlbmFtZVxuICAgKi9cbiAgZ2V0IGJhc2VuYW1lKCk6IHN0cmluZyB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIG5hbWUgZnJvbSBwYWNrYWdlLmpzb25cbiAgICovXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLnBhY2thZ2VKU09OPy5uYW1lO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiB2ZXJzaW9uIGZyb20gcGFja2FnZS5qc29uIC0+IHByb3BlcnR5IHZlcnNpb25cbiAgICovXG4gIGdldCB2ZXJzaW9uKCkge1xuICAgIHJldHVybiB0aGlzLnBhY2thZ2VKU09OPy52ZXJzaW9uO1xuICB9XG5cblxuXG4gIC8qKlxuICAqIE1ham9yIFZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb25cbiAgKi9cbiAgLy8gQHRzLWlnbm9yZVxuICBnZXQgbWFqb3JWZXJzaW9uKCk6IG51bWJlciB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIE1pbm9yIFZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb25cbiAgICovXG4gIC8vIEB0cy1pZ25vcmVcbiAgZ2V0IG1pbm9yVmVyc2lvbigpOiBudW1iZXIge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXQgdmVyc2lvblBhdGhBc051bWJlcigpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG5cblxuICAvKipcbiAgICogbnBtIGRlcGVuZGVuY2llcyBmcm9tIHBhY2thZ2UuanNvblxuICAgKi9cbiAgZ2V0IGRlcGVuZGVuY2llcygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OLmRlcGVuZGVuY2llcyA6IHt9KSB8fCB7fTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogcGVlckRlcGVuZGVuY2llcyBkZXBlbmRlbmNpZXNcbiAgICovXG4gIGdldCBwZWVyRGVwZW5kZW5jaWVzKCkge1xuICAgIHJldHVybiAodGhpcy5wYWNrYWdlSlNPTiA/IHRoaXMucGFja2FnZUpTT04ucGVlckRlcGVuZGVuY2llcyA6IHt9KSB8fCB7fTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogZGV2RGVwZW5kZW5jaWVzIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgZ2V0IGRldkRlcGVuZGVuY2llcygpIHtcbiAgICByZXR1cm4gKHRoaXMucGFja2FnZUpTT04gPyB0aGlzLnBhY2thZ2VKU09OLmRldkRlcGVuZGVuY2llcyA6IHt9KSB8fCB7fTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogcmVzb2x1dGlvbnMgZGVwZW5kZW5jaWVzXG4gICAqL1xuICBnZXQgcmVzb2x1dGlvbnMoKSB7XG4gICAgcmV0dXJuICh0aGlzLnBhY2thZ2VKU09OID8gdGhpcy5wYWNrYWdlSlNPTlsncmVzb2x1dGlvbnMnXSA6IHt9KSB8fCB7fTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogIG9iamVjdCB3aXRoIGFsbCBkZXBzIGZyb20gcGFja2FnZSBqc29uXG4gICAqL1xuICBnZXQgYWxsRGVwZW5kZW5jaWVzKCk6IHsgW3BhY2thZ2VOYW1lOiBzdHJpbmddOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIF8ubWVyZ2Uoe1xuICAgICAgLi4udGhpcy5kZXZEZXBlbmRlbmNpZXMsXG4gICAgICAuLi50aGlzLnBlZXJEZXBlbmRlbmNpZXMsXG4gICAgICAuLi50aGlzLmRlcGVuZGVuY2llcyxcbiAgICAgIC4uLnRoaXMucmVzb2x1dGlvbnNcbiAgICB9KSBhcyBhbnk7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIGdldEZvbGRlcnNGb3JQb3NzaWJsZVByb2plY3RDaGlsZHJlbigpOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgZ2V0QWxsQ2hpbGRyZW4oKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBhbGlhcyB0byBnZXRBbGxDaGlsZHJlblxuICAgKi9cbiAgZ2V0IGNoaWxkcmVuKCk6IFBST0pDRVRbXSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0Q2hpbGRCeShuYW1lT3JCYXNlbmFtZTogc3RyaW5nLCBlcnJvcnMgPSB0cnVlKTogUFJPSkNFVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBwYXJlbnQoKTogUFJPSkNFVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IGdyYW5kcGEoKTogUFJPSkNFVCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBnZW5lcmljTmFtZSgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICogc2FtZSBoYXMgcHJvamVjdC5oYXNGaWxlKCk7XG4gICovXG4gIHBhdGhFeGlzdHMocmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhc0ZpbGUocmVsYXRpdmVQYXRoKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogc2FtZSBhcyBwcm9qZWN0LnBhdGhFeGlzdHMoKTtcbiAgICovXG4gIGhhc0ZpbGUocmVsYXRpdmVQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBIZWxwZXJzLmV4aXN0cyh0aGlzLnBhdGhGb3IocmVsYXRpdmVQYXRoKSk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHNhbWUgYXMgcHJvamVjdC5wYXRoaGFzRmlsZUV4aXN0cygpO1xuICAgKiBidXQgd2l0aCBwYXRoLnJlc29sdmVcbiAgICovXG4gIGNvbnRhaW5zRmlsZShmaWxlUmVsYXRpdmVUb1Byb2plY3RQYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmdWxsUGF0aCA9IHBhdGgucmVzb2x2ZShwYXRoLmpvaW4odGhpcy5sb2NhdGlvbiwgZmlsZVJlbGF0aXZlVG9Qcm9qZWN0UGF0aCkpO1xuICAgIHJldHVybiBIZWxwZXJzLmV4aXN0cyhmdWxsUGF0aCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGFic29sdXRlIHBhdGg6XG4gICAqIGNvbmNhdGVkIHByb2plY3QgbG9jYXRpb24gd2l0aCByZWxhdGl2ZSBwYXRoXG4gICAqL1xuICBwYXRoRm9yKHJlbGF0aXZlUGF0aDogc3RyaW5nIHwgc3RyaW5nW10pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICB3cml0ZUpzb24ocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGpzb246IG9iamVjdCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCB1cyBleGVjdXRlIGluc3RlYWRcbiAgICogdXNlIG91dHB1dCBmcm9tIG9yIG1vcmUgcHJlY2llc2UgY3JhZnRlZCBhcGlcbiAgICovXG4gIHJ1bihjb21tYW5kOiBzdHJpbmcsIG9wdGlvbnM/OiBPbWl0PENvcmVNb2RlbHMuUnVuT3B0aW9ucywgJ2N3ZCc+KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiBzYW1lIGFzIHJ1biBidXQgYXN5bmNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBleGVjdXRlKGNvbW1hbmQ6IHN0cmluZywgb3B0aW9ucz86IENvcmVNb2RlbHMuRXhlY3V0ZU9wdGlvbnMgJiB7IHNob3dDb21tYW5kPzogYm9vbGVhbiB9KTogUHJvbWlzZTxhbnk+IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHRyeSBydW4gYnV0IGNvbnRpbnVlIHdoZW4gaXQgZmFpbHNcbiAgICogQHBhcmFtIGNvbW1hbmRcbiAgICogQHBhcmFtIG9wdGlvbnNcbiAgICogQHJldHVybnNcbiAgICovXG4gIHRyeVJ1blN5bmMoY29tbWFuZDogc3RyaW5nXG4vKiAqL1xuLyogKi9cbiAgXG4gICk6IHZvaWQge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBvdXRwdXRGcm9tKGNvbW1hbmQ6IHN0cmluZ1xuLyogKi9cbi8qICovXG4gIFxuICApIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZW1vdmVGaWxlKGZpbGVSZWxhdGl2ZVRvUHJvamVjdFBhdGg6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICByZW1vdmUocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGV4YWN0UGF0aCA9IHRydWUpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cbiAgcmVtb3ZlRm9sZGVyQnlSZWxhdGl2ZVBhdGgocmVsYXRpdmVQYXRoVG9Gb2xkZXI6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIGxpbmtOb2RlTW9kdWxlc1RvKHByb2o6IFBhcnRpYWw8QmFzZVByb2plY3Q+KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcmVpbnN0YWxsTm9kZU1vZHVsZXMoZm9yY2VyUmVtb3ZlTm9kZU1vZHVsZXMgPSBmYWxzZSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGFzeW5jIGFzc2lnbkZyZWVQb3J0KHN0YXJ0RnJvbTogbnVtYmVyID0gNDIwMCwgaG93TWFueUZyZWVQb3J0c0FmdGVyVGhhdFBvcnQ6IG51bWJlciA9IDApOiBQcm9taXNlPG51bWJlcj4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHJlbW92ZUl0c2VsZigpIHtcbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICAvKipcbiAgICogUHVycG9zZTogbm90IGluaXRpYWxpemluZyBhbGwgY2xhc3NlcyBhdCB0aGUgYmVnaW5uaW5nXG4gICAqIE9ubHkgZm9yIEJhc2VGZWF0dXJlRm9yUHJvamVjdCBjbGFzc1xuICAgKi9cbiAgZGVmaW5lUHJvcGVydHk8UFJPSkVDVD4odmFyaWFibGVOYW1lOiBrZXlvZiBQUk9KRUNULCBjbGFzc0ZuOiBGdW5jdGlvbiwgb3B0aW9ucz86IHtcbiAgICBjdXN0b21JbnN0YW5jZVJldHVybj86ICgpID0+IG9iamVjdFxuICB9KSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogZnMuY29weSBvcHRpb24gZmlsdGVyIGZ1bmN0aW9uIGZvciBjb3B5aW5nIG9ubHkgc2VsZWN0ZWQgZm9sZGVycyBmcm9tIHByb2plY3RcbiAgICovXG4gIGZpbHRlck9ubHlDb3B5KGJhc2VQYXRoRm9sZGVyc09ubHlUb0luY2x1ZGU6IHN0cmluZ1tdKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGZzLmNvcHkgb3B0aW9uIGZpbHRlciBmdW5jdGlvbiBmb3IgY29weWluZyBvbmx5IG5vdCBzZWxlY3RlZCBmb2xkZXJzIGZyb20gcHJvamVjdFxuICAgKi9cbiAgZmlsdGVyRG9udENvcHkoYmFzZVBhdGhGb2xkZXJzVG9zU2tpcDogc3RyaW5nW10pIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBnZXREZWZhdWx0RGV2ZWxvcG1lbnRCcmFuY2goKSB7XG4gICAgcmV0dXJuICdkZXZlbG9wJztcbiAgfVxuXG5cblxuICAvKipcbiAgICogbWFpbi9kZWZhdWx0IGhhcmRjb2RlZCBicmFuY2hlc1xuICAgKi9cbiAgZ2V0TWFpbkJyYW5jaGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gWydtYXN0ZXInLCAnZGV2ZWxvcCcsICdzdGFnZScsICdwcm9kJywgJ3Rlc3QnXVxuICB9XG5cblxuXG4gIGlzVW5zaW5nQWN0aW9uQ29tbWl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG5cblxuICBhc3luYyByZXNldFByb2Nlc3Mob3ZlcnJpZGVCcmFuY2g/OiBzdHJpbmcsIHJlY3J1c2l2ZSA9IGZhbHNlKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgfVxuXG5cblxuICBhc3luYyBwdWxsUHJvY2VzcygpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgYXN5bmMgcHVzaFByb2Nlc3Mob3B0aW9uczoge1xuICAgIGZvcmNlPzogYm9vbGVhbjtcbiAgICB0eXBlb2ZDb21taXQ/OiBUeXBlT2ZDb21taXQ7XG4gICAgb3JpZ2luPzogc3RyaW5nO1xuICAgIGFyZ3M/OiBzdHJpbmdbXTtcbiAgICBleGl0Q2FsbEJhY2s/OiAoKSA9PiB2b2lkO1xuICAgIGZvcmNlUHVzaE5vUXVlc3Rpb24/OiBib29sZWFuO1xuICAgIGNvbW1pdE1lc3NhZ2VSZXF1aXJlZD86IGJvb2xlYW47XG4gIH0gPSB7fSkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcml2YXRlIF9iZWZvcmVBbnlBY3Rpb25PbkdpdFJvb3QoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByb3RlY3RlZCBhc3luYyBfYmVmb3JlUHVzaFByb2Nlc3NBY3Rpb24oKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHJvdGVjdGVkIGFzeW5jIF9iZWZvcmVQdWxsUHJvY2Vzc0FjdGlvbigpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwcm90ZWN0ZWQgYXN5bmMgX2dldENvbW1pdE1lc3NhZ2UodHlwZW9mQ29tbWl0OiBUeXBlT2ZDb21taXQsIGFyZ3M6IHN0cmluZ1tdLCBjb21taXRNZXNzYWdlUmVxdWlyZWQ/OiBib29sZWFuKTogUHJvbWlzZTxDb21taXREYXRhPiB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBsaW5rVG8oZGVzdFBhY2thZ2VMb2NhdGlvbjogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgXG4gIH1cblxuXG5cblxuICB3cml0ZUZpbGUocmVsYXRpdmVQYXRoOiBzdHJpbmcsIGNvbnRlbnQ6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIHB1YmxpYyBydW5Db21tYW5kR2V0U3RyaW5nKHRoaXM6IEJhc2VQcm9qZWN0LCBjb21tYW5kOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBwdWJsaWMgZ2V0IGdpdCgpIHtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICByZXR1cm4ge1xuICAgICAgcmV2ZXJ0RmlsZUNoYW5nZXMoZmlsZVJlbGV0aXZlUGF0aDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGNsb25lKHVybDogc3RyaW5nLCBkZXN0aW5hdGlvbkZvbGRlck5hbWUgPSAnJykge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICByZXN0b3JlTGFzdFZlcnNpb24obG9jYWxGaWxlUGF0aDogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHN0YWdlQWxsRmlsZXMoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHN0YXNoKG9wdGlub3M/OiB7XG4gICAgICAgIG9ubHlTdGFnZWQ/OiBib29sZWFuO1xuICAgICAgfSkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBzdGFzaEFwcGx5KCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBmZXRjaCgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgcmVzZXRGaWxlcyguLi5yZWxhdGl2ZVBhdGhlczogc3RyaW5nW10pIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IGlzR2l0UmVwbygpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IGlzR2l0Um9vdCgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0IG9yaWdpblVSTCgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgY29tbWl0KGNvbW1pdE1lc3NhZ2U/OiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgLyoqXG4gICAgICAgKiBhbGlhcyB0byBzdGFnZSBhbGwgYW5kIGNvbW1pdFxuICAgICAgICovXG4gICAgICBhZGRBbmRDb21taXQoY29tbWl0TWVzc2FnZTogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHN0YWdlQWxsQW5kQ29tbWl0KGNvbW1pdE1lc3NhZ2U6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBhc3luYyBwdXNoQ3VycmVudEJyYW5jaChvcHRpb25zPzogeyBmb3JjZT86IGJvb2xlYW47IG9yaWdpbj86IHN0cmluZywgYXNrVG9SZXRyeT86IGJvb2xlYW47IGZvcmNlUHVzaE5vUXVlc3Rpb24/OiBib29sZWFuOyB9KSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCBhbGxPcmlnaW5zKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgdW5jb21taXRlZEZpbGVzKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgdGhlcmVBcmVTb21lVW5jb21taXRlZENoYW5nZSgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgdGhlcmVBcmVTb21lVW5jb21taXRlZENoYW5nZUV4Y2VwdChmaWxlc0xpc3Q6IHN0cmluZ1tdID0gW10pIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgbWVsdEFjdGlvbkNvbW1pdHMoc29mdCA9IGZhbHNlKSB7XG4vKiAqL1xuLyogKi9cbiAgXG4gICAgICB9LFxuICAgICAgYXN5bmMgcHVsbEN1cnJlbnRCcmFuY2gob3B0aW9ucz86IHtcbiAgICAgICAgYXNrVG9SZXRyeT86IGJvb2xlYW4sXG4gICAgICAgIGRlZmF1bHRIYXJkUmVzZXRDb21taXRzPzogbnVtYmVyXG4gICAgICB9KSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGdldCBjdXJyZW50QnJhbmNoTmFtZSgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgZ2V0QnJhbmNoZXNOYW1lc0J5KHBhdHRlcm46IHN0cmluZyB8IFJlZ0V4cCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICByZXNldFNvZnRIRUFEKEhFQUQgPSAxKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIHJlc2V0SGFyZChvcHRpb25zPzoge1xuICAgICAgICBIRUFEPzogbnVtYmVyXG4gICAgICB9KSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGNvdW50Q29taXRzKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBoYXNBbnlDb21taXRzKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgaXNJbk1lcmdlUHJvY2VzcygpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgbGFzdENvbW1pdERhdGUoKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGxhc3RDb21taXRIYXNoKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBsYXN0Q29tbWl0TWVzc2FnZSgpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgcGVudWx0aW1hZ2VDb21taXRIYXNoKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBjaGVja1RhZ0V4aXN0cyh0YWc6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBjaGVja291dChicmFuY2hOYW1lOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGNyZWF0ZUJyYW5jaElmTm90RXhpc3RzPzogYm9vbGVhbjsgZmV0Y2hCZWZvcmVDaGVja291dD86IGJvb2xlYW47IHN3aXRjaEJyYW5jaFdoZW5FeGlzdHM/OiBib29sZWFuOyB9KSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGNoZWNrb3V0RnJvbVRvKGNoZWNrb3V0RnJvbUJyYW5jaDogc3RyaW5nLCBicmFuY2g6IHN0cmluZywgb3JpZ2luID0gJ29yaWdpbicpIHtcbi8qICovXG4vKiAqL1xuICAgICAgICByZXR1cm4gKHZvaWQgMCk7XG4gICAgICB9LFxuICAgICAgLyoqXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIG1ham9yVmVyc2lvbiBleGFtcGxlOiB2MSwgdjIgZXRjLlxuICAgICAgICogQHJldHVybnMgdGFnIG5hbWVcbiAgICAgICAqL1xuICAgICAgbGFzdFRhZ05hbWVGb3JNYWpvclZlcnNpb24obWFqb3JWZXJzaW9uKSB7XG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICAgIGxhc3RUYWdIYXNoKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgcmVtb3RlT3JpZ2luVXJsKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgbGFzdFRhZ1ZlcnNpb25OYW1lKCkge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICBnZXQgc3RhZ2VkRmlsZXMoKTogc3RyaW5nW10ge1xuLyogKi9cbi8qICovXG4gICAgICAgIHJldHVybiAodm9pZCAwKTtcbiAgICAgIH0sXG4gICAgICAvKipcbiAgICAgICAqIFRPRE8gZG9lcyB0aGlzIG1ha2UgYW55IHNlbnNlXG4gICAgICAgKi9cbiAgICAgIHJlbmFtZU9yaWdpbihuZXdOYW1lT3JVbHI6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICAgICAgcmV0dXJuICh2b2lkIDApO1xuICAgICAgfSxcbiAgICB9XG4gIH1cblxuXG5cbiAgdG9TdHJpbmcgPSAoKSA9PiB7XG4gICAgcmV0dXJuIGAke3RoaXMubmFtZX09PiR7dGhpcy5sb2NhdGlvbn1gO1xuICB9O1xuXG5cblxuICBwcm90ZWN0ZWQgY2hlY2tJZkxvZ2dpbkluVG9OcG0oKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBwYXJlbnRzTmFtZXMoKSB7XG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIG9wZW5Mb2NhdGlvbihyZWxhdGl2ZUZvbGRlclBhdGg6IHN0cmluZykge1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuICBwcml2YXRlIGZpbmRQYXJlbnRzTmFtZXMocHJvamVjdD86IFBST0pDRVQsIHBhcmVudD86IFBST0pDRVQsIHJlc3VsdCA9IFtdKTogc3RyaW5nW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHRyeUtpbGxBbGxFbGVjdHJvbkluc3RhbmNlcygpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogaW5pdCBwcm9qZWN0IGZpbGVzIHN0cnVjdHVyZSBhbmQgZGVwZWRlbmNpZXNcbiAgICovXG4gIGFzeW5jIGluaXQoaW5pdE9wdGlvbnM/OiBhbnkpIHtcbiAgICB0aHJvdyAobmV3IEVycm9yKCdUT0RPIElNUExFTUVOVCcpKVxuICB9XG5cblxuXG4gIC8qKlxuICAgKiBnbG9iYWxseSBsaW5rIG5wbSBhcyBwYWNrYWdlXG4gICAqL1xuICBhc3luYyBsaW5rKCkge1xuICAgIHRocm93IChuZXcgRXJyb3IoJ1RPRE8gSU1QTEVNRU5UJykpXG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGluaXQgcHJvamVjdCBmaWxlcyBzdHJ1Y3R1cmUgd2l0aG91dCBkZXBlZGVuY2llc1xuICAgKi9cbiAgYXN5bmMgc3RydWN0KGluaXRPcHRpb25zPzogYW55KSB7XG4gICAgdGhyb3cgKG5ldyBFcnJvcignVE9ETyBJTVBMRU1FTlQnKSlcbiAgfVxuXG5cblxuICAvKipcbiAgKiBpbml0IGFuZCBidWlsZCgpIHByb2plY3RcbiAgKi9cbiAgYXN5bmMgYnVpbGQoYnVpbGRPcHRpb25zPzogYW55KSB7XG4gICAgdGhyb3cgKG5ldyBFcnJvcignVE9ETyBJTVBMRU1FTlQnKSlcbiAgfVxuXG5cblxuICAvKipcbiAgICogbGludCBwb3JqZWN0XG4gICAqL1xuICBhc3luYyBsaW50KGxpbnRPcHRpb25zPzogYW55KSB7XG4gICAgSGVscGVycy5pbmZvKGBcblxuXG4gICAgQ09NTUlUIExJTlQgTk9UIElNUExFTUVOVEVEXG5cblxuICAgIGApXG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIGdldCBpbmZvIGFib3V0IHBvcmplY3RcbiAgICovXG4gIGFzeW5jIGluZm8oKSB7XG4gICAgY29uc3QgcHJvaiA9IHRoaXM7XG4gICAgSGVscGVycy5pbmZvKGBcblxuICBuYW1lOiAke3Byb2o/Lm5hbWV9XG4gIHR5cGU6ICR7cHJvaj8udHlwZX1cbiAgY2hpbGRyZW4gKCR7cHJvaj8uY2hpbGRyZW4ubGVuZ3RofSk6ICR7KCFwcm9qIHx8ICFwcm9qLmNoaWxkcmVuLmxlbmd0aCkgPyAnPCBub25lID4nIDogJyd9XG4ke3Byb2o/LmNoaWxkcmVuLm1hcChjID0+ICcrJyArIGMuZ2VuZXJpY05hbWUpLmpvaW4oJ1xcbicpfVxuXG5cbiAgYCk7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQgbm8gdHJhbnNsYXRpb24gb2YgY29tbWl0XG4gICAqL1xuICB0cmFuc2FsdGVHaXRDb21taXRGcm9tQXJncygpIHtcbiAgICByZXR1cm4geyBmcm9tOiB2b2lkIDAgYXMgc3RyaW5nLCB0bzogdm9pZCAwIGFzIHN0cmluZyB9XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIEJ5IGRlZnVsdCB0cnVlLi4gd2hlbiBjb21taXQgYnJhbmNoZXMgd2lsbCBub3QgZnVuY3Rpb24uXG4gICAqIChmYWxzZSBpcyBiZXR0ZXIgZm9yIHNpbXBsZSBwcm9qZWN0cylcbiAgICovXG4gIHVzZUdpdEJyYW5jaGVzV2hlbkNvbW1pdGluZ0FuZFB1c2hpbmcoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuXG5cbiAgLyoqXG4gICAqIHVzZWZ1bGwgd2hlbiBwdXNoaW5nIGluIHByb2plY3Qgd2l0aCBjaGlsZHJlbnMgYXMgZ2l0IHJlcG9zXG4gICAqL1xuICBhdXRvbWF0aWNhbGx5QWRkQWxsQ2huYWdlc1doZW5QdXNoaW5nVG9HaXQoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuXG4gIC8qKlxuICAgKiB1c2VmdWxsIHdoZW4gcHVzaGluZyBpbiBwcm9qZWN0IHdpdGggY2hpbGRyZW5zIGFzIGdpdCByZXBvc1xuICAgKi9cbiAgdXNlR2l0QnJhbmNoZXNBc01ldGFkYXRhRm9yQ29tbWl0cygpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG5cblxuICAvKipcbiAgICogYW5ndWxhciBsaWJyYXJpZXMgZnJvbSBhbmd1bGFyLmpzb25cbiAgICovXG4gIGdldCBsaWJyYXJpZXMoKTogUFJPSkNFVFtdIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IHNvcnRlZExpYnJhcmllc0J5RGVwcygpOiBQUk9KQ0VUW10ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBhc3luYyBnZXRTb3J0ZWRMaWJyYXJpZXNCeURlcHNGb3JCdWlsZCgpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBnZXRMaWJyYXJ5QnVpbGRTdWNjZXNzQ29tYW1uZCgpOiBzdHJpbmcge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHVibGljIGFzeW5jIGJ1aWxkTGlicmFyaWVzKHsgcmVidWlsZCA9IGZhbHNlLCB3YXRjaCA9IGZhbHNlLCBzdHJhdGVneSB9OiB7XG4gICAgcmVidWlsZD86IGJvb2xlYW47IHdhdGNoPzogYm9vbGVhbjtcbiAgICBzdHJhdGVneT86ICdsaW5rJyB8ICdjb3B5J1xuICB9ID0ge30pIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICB9XG5cblxuXG4gIGdldExpYnJhcnlCdWlsZENvbWFtbmQob3B0aW9ucz86IHsgd2F0Y2g6IGJvb2xlYW4gfSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cbn1cblxuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWhlbHBlcnMgbGliL2Jhc2UvYmFzZS1wcm9qZWN0LnRzIl19
@@ -1,4 +1,5 @@
1
1
  import { _, /* */ /* */ } from 'tnp-core/browser'; /* */
2
+ const regexTeamsID = /[A-Z0-9]+\#/;
2
3
  const regexCommitModuleInArgs = /\[[a-z|\-]+\]/;
3
4
  const regexCommitModuleInBranch = /\-\-[a-z|\-]+\-\-/;
4
5
  export class CommitData {
@@ -26,6 +27,15 @@ export class CommitData {
26
27
  commitMsg = commitMsg.replace('http://', '');
27
28
  return commitMsg;
28
29
  }
30
+ static getTeamsIdFrom(commitMsg) {
31
+ let teamID = _.first(commitMsg.match(regexTeamsID));
32
+ if (teamID) {
33
+ commitMsg = commitMsg.replace(teamID, '');
34
+ }
35
+ return {
36
+ commitMsgOrBranchName: commitMsg, teamID
37
+ };
38
+ }
29
39
  static getModuleNameFrom(commitMsg) {
30
40
  let commitModuleName = _.first(commitMsg.match(regexCommitModuleInArgs));
31
41
  if (commitModuleName) {
@@ -38,9 +48,13 @@ export class CommitData {
38
48
  static getModuleNameFromBranch(branchName) {
39
49
  let commitModuleName = _.first(branchName.match(regexCommitModuleInBranch));
40
50
  if (commitModuleName) {
41
- branchName = branchName.replace(commitModuleName, '-');
51
+ branchName = branchName.replace(commitModuleName, '');
52
+ commitModuleName = commitModuleName?.replace(/^\-\-/, '')?.replace(/\-\-$/, '');
53
+ if (commitModuleName.startsWith('-')) {
54
+ commitModuleName = commitModuleName.replace(/^\-/, '');
55
+ }
42
56
  }
43
- return { commitMsg: branchName, commitModuleName: commitModuleName?.replace(/\-/g, '') };
57
+ return { commitModuleName: commitModuleName?.replace(/^\-\-/, '')?.replace(/\-\-$/, '') };
44
58
  }
45
59
  static async getFromArgs(args, typeOfCommit) {
46
60
  /* */
@@ -76,6 +90,10 @@ export class CommitData {
76
90
  /* */
77
91
  /* */
78
92
  /* */
93
+ /* */
94
+ /* */
95
+ /* */
96
+ /* */
79
97
  return (void 0);
80
98
  }
81
99
  static async getFromBranch(currentBranchName) {
@@ -111,6 +129,7 @@ export class CommitData {
111
129
  /* */
112
130
  /* */
113
131
  /* */
132
+ /* */
114
133
  return (void 0);
115
134
  }
116
135
  static from(options) {
@@ -119,6 +138,10 @@ export class CommitData {
119
138
  return opt;
120
139
  }
121
140
  clearMessage(message) {
141
+ if (this.teamID && _.isString(this.teamID)) {
142
+ message = message.replace(this.teamID.toLowerCase().replace('-', ' '), ' ');
143
+ message = message.replace(this.teamID.toUpperCase().replace('-', ' '), ' ');
144
+ }
122
145
  for (const jira of (this.jiraNumbers || [])) {
123
146
  message = message.replace(jira.toLowerCase().replace('-', ' '), ' ');
124
147
  message = message.replace(jira.toUpperCase().replace('-', ' '), ' ');
@@ -128,6 +151,12 @@ export class CommitData {
128
151
  message = message.replace(regexCommitModuleInBranch, ' ');
129
152
  message = message.replace(/\ \ /g, ' ');
130
153
  }
154
+ if (this.teamID && _.isString(this.teamID)) {
155
+ message = message.replace(/\_/g, ' ');
156
+ }
157
+ if (this.commitModuleName) {
158
+ message = message.replace(this.commitModuleName.replace(/\-/g, ' '), ' ');
159
+ }
131
160
  return message;
132
161
  }
133
162
  /**
@@ -170,9 +199,23 @@ export class CommitData {
170
199
  /* */
171
200
  /* */
172
201
  /* */
202
+ /* */
203
+ /* */
204
+ /* */
205
+ /* */
206
+ /* */
207
+ /* */
208
+ /* */
173
209
  return (void 0);
174
210
  }
175
211
  get branchName() {
212
+ /* */
213
+ /* */
214
+ /* */
215
+ /* */
216
+ /* */
217
+ /* */
218
+ /* */
176
219
  /* */
177
220
  /* */
178
221
  /* */
@@ -188,4 +231,4 @@ export class CommitData {
188
231
  }
189
232
  ;
190
233
  ({}); // @--end-of-file-for-module=tnp-helpers lib/base/commit-data.ts
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvY29tbWl0LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFLLE1BQU0sa0JBQWtCLENBQUMsQ0FBQSxLQUFLO0FBWTVELE1BQU0sdUJBQXVCLEdBQVcsZUFBZSxDQUFDO0FBQ3hELE1BQU0seUJBQXlCLEdBQVcsbUJBQW1CLENBQUM7QUFFOUQsTUFBTSxPQUFPLFVBQVU7SUFNckI7OztPQUdHO0lBQ0ssTUFBTSxDQUFDLDBCQUEwQixDQUFDLGtCQUEwQjtRQUN0RSxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSU8sTUFBTSxDQUFDLDBCQUEwQixDQUFDLFNBQVM7UUFDakQsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNkLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO1FBQ0QsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3QyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBSU8sTUFBTSxDQUFDLGlCQUFpQixDQUFDLFNBQWlCO1FBQ2hELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQztRQUN6RSxJQUFJLGdCQUFn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QUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFLRCxJQUFJLFVBQVU7UUFDaEIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBR0QsSUFBSSxjQUFjO1FBQ3BCLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztDQU1GO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxnRUFBZ0UiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgICBfLCAvKiAqLyAvKiAqLyAgICB9IGZyb20gJ3RucC1jb3JlL2Jyb3dzZXInOy8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi4vaW5kZXgnO1xuXG5leHBvcnQgdHlwZSBDb21tb25Db21taXRNc2dCcmFuY2ggPSB8ICdyZWZhY3RvcicgfCAnY2hvcmUnIHwgJ3N0eWxlJyB8ICdkb2NzJyB8ICd0ZXN0JyB8ICdjaScgfCAnYnVpbGQnO1xuZXhwb3J0IHR5cGUgVHlwZU9mQ29tbWl0ID0gJ2ZlYXR1cmUnIHwgJ2J1Z2ZpeCcgfCAncGVyZm9ybWFuY2UnIHwgQ29tbW9uQ29tbWl0TXNnQnJhbmNoO1xuZXhwb3J0IHR5cGUgVHlwZU9mTXNnUHJlZml4ID0gJ2ZlYXQnIHwgJ2ZpeCcgfCAncGVyZicgfCBDb21tb25Db21taXRNc2dCcmFuY2g7XG5cbmNvbnN0IHJlZ2V4Q29tbWl0TW9kdWxlSW5BcmdzOiBSZWdFeHAgPSAvXFxbW2EtenxcXC1dK1xcXS87XG5jb25zdCByZWdleENvbW1pdE1vZHVsZUluQnJhbmNoOiBSZWdFeHAgPSAvXFwtXFwtW2EtenxcXC1dK1xcLVxcLS87XG5cbmV4cG9ydCBjbGFzcyBDb21taXREYXRhIHtcblxuICBwcml2YXRlIF9tZXNzYWdlOiBzdHJpbmc7XG5cblxuXG4gIC8qKlxuICAgKlxuICAgKiBAcmV0dXJucyBqaXJhcyAoZnJvbSBvbGRlc3QgdG8gbmV3c2V0KVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZXh0cmFjdEFuZE9yZGVySmlyYU51bWJlcnMoY29tbWl0T3JCcmFuY2hOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByaXZhdGUgc3RhdGljIGNsZWFuSHR0cEZyb21Db21taXRNZXNzYWdlKGNvbW1pdE1zZyk6IHN0cmluZyB7XG4gICAgaWYgKCFjb21taXRNc2cpIHtcbiAgICAgIHJldHVybiBjb21taXRNc2c7XG4gICAgfVxuICAgIGNvbW1pdE1zZyA9IGNvbW1pdE1zZy5yZXBsYWNlKCdodHRwczovLycsICcnKTtcbiAgICBjb21taXRNc2cgPSBjb21taXRNc2cucmVwbGFjZSgnaHR0cDovLycsICcnKTtcbiAgICByZXR1cm4gY29tbWl0TXNnO1xuICB9XG5cblxuXG4gIHByaXZhdGUgc3RhdGljIGdldE1vZHVsZU5hbWVGcm9tKGNvbW1pdE1zZzogc3RyaW5nKSB7XG4gICAgbGV0IGNvbW1pdE1vZHVsZU5hbWUgPSBfLmZpcnN0KGNvbW1pdE1zZy5tYXRjaChyZWdleENvbW1pdE1vZHVsZUluQXJncykpO1xuICAgIGlmIChjb21taXRNb2R1bGVOYW1lKSB7XG4gICAgICBjb21taXRNc2cgPSBjb21taXRNc2cucmVwbGFjZShjb21taXRNb2R1bGVOYW1lLCAnJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBjb21taXRNc2csIGNvbW1pdE1vZHVsZU5hbWU6IGNvbW1pdE1vZHVsZU5hbWU/LnJlcGxhY2UoL1xcWy9nLCAnJykucmVwbGFjZSgvXFxdL2csICcnKVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRNb2R1bGVOYW1lRnJvbUJyYW5jaChicmFuY2hOYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgY29tbWl0TW9kdWxlTmFtZSA9IF8uZmlyc3QoYnJhbmNoTmFtZS5tYXRjaChyZWdleENvbW1pdE1vZHVsZUluQnJhbmNoKSk7XG4gICAgaWYgKGNvbW1pdE1vZHVsZU5hbWUpIHtcbiAgICAgIGJyYW5jaE5hbWUgPSBicmFuY2hOYW1lLnJlcGxhY2UoY29tbWl0TW9kdWxlTmFtZSwgJy0nKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgY29tbWl0TXNnOiBicmFuY2hOYW1lLCBjb21taXRNb2R1bGVOYW1lOiBjb21taXRNb2R1bGVOYW1lPy5yZXBsYWNlKC9cXC0vZywgJycpIH07XG4gIH1cblxuXG5cbiAgc3RhdGljIGFzeW5jIGdldEZyb21BcmdzKGFyZ3M6IHN0cmluZ1tdLCB0eXBlT2ZDb21taXQ6IFR5cGVPZkNvbW1pdCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuICBzdGF0aWMgYXN5bmMgZ2V0RnJvbUJyYW5jaChjdXJyZW50QnJhbmNoTmFtZTogc3RyaW5nKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHVibGljIHN0YXRpYyBmcm9tKG9wdGlvbnM6IFBpY2s8Q29tbWl0RGF0YSwgJ21lc3NhZ2UnIHwgJ2ppcmFOdW1iZXJzJyB8ICd0eXBlT2ZDb21taXQnIHwgJ2NvbW1pdE1vZHVsZU5hbWUnPik6IENvbW1pdERhdGEge1xuICAgIG9wdGlvbnMgPSAob3B0aW9ucyA/IG9wdGlvbnMgOiB7fSkgYXMgYW55O1xuXG4gICAgY29uc3Qgb3B0ID0gXy5tZXJnZShuZXcgQ29tbWl0RGF0YSgpLCBfLmNsb25lRGVlcChvcHRpb25zKSk7XG5cbiAgICByZXR1cm4gb3B0O1xuICB9XG5cblxuXG5cblxuICB0eXBlT2ZDb21taXQ6IFR5cGVPZkNvbW1pdDtcblxuICBwcml2YXRlIGNsZWFyTWVzc2FnZShtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBmb3IgKGNvbnN0IGppcmEgb2YgKHRoaXMuamlyYU51bWJlcnMgfHwgW10pKSB7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKGppcmEudG9Mb3dlckNhc2UoKS5yZXBsYWNlKCctJywgJyAnKSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoamlyYS50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoJy0nLCAnICcpLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShqaXJhLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShqaXJhLnRvTG93ZXJDYXNlKCksICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKHJlZ2V4Q29tbWl0TW9kdWxlSW5BcmdzLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShyZWdleENvbW1pdE1vZHVsZUluQnJhbmNoLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSgvXFwgXFwgL2csICcgJyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIHB1cmUgbWVzc2FnZSB3aGF0IHdhcyBkb25lICh3aXRob3V0IGppcmEgb3IgcHJlZml4ZXMpXG4gICAqID0+IGlzIGluY2x1ZGVkIGluIHRoaXMuY29tbWl0TWVzc2FnZVxuICAgKi9cbiAgZ2V0IG1lc3NhZ2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xlYXJNZXNzYWdlKHRoaXMuX21lc3NhZ2UpO1xuICB9XG4gIHNldCBtZXNzYWdlKG1lc3NhZ2UpIHtcbiAgICB0aGlzLl9tZXNzYWdlID0gdGhpcy5jbGVhck1lc3NhZ2UobWVzc2FnZSk7XG4gIH1cbiAgLyoqXG4gICAqIGV4LiBKSVJBLTIxMzIgb3IgTVlKSVJBUkVGSVgtMjM0MjM0XG4gICAqL1xuICBqaXJhTnVtYmVyczogc3RyaW5nW107XG5cbiAgcmVhZG9ubHkgY29tbWl0TW9kdWxlTmFtZTogc3RyaW5nO1xuXG5cblxuXG5cbiAgZ2V0IGJyYW5jaFByZWZpeCgpOiBUeXBlT2ZNc2dQcmVmaXgge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgZ2V0IGNvbW1pdE1lc3NhZ2UoKTogc3RyaW5nIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG5cbiAgZ2V0IGJyYW5jaE5hbWUoKSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIGdldCBpc0FjdGlvbkNvbW1pdCgpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cblxuXG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2NvbW1pdC1kYXRhLnRzIl19
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWl0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtaGVscGVycy9wcm9qZWN0cy90bnAtaGVscGVycy9zcmMvbGliL2Jhc2UvY29tbWl0LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFLLE1BQU0sa0JBQWtCLENBQUMsQ0FBQSxLQUFLO0FBVzVELE1BQU0sWUFBWSxHQUFXLGFBQWEsQ0FBQztBQUUzQyxNQUFNLHVCQUF1QixHQUFXLGVBQWUsQ0FBQztBQUN4RCxNQUFNLHlCQUF5QixHQUFXLG1CQUFtQixDQUFDO0FBRTlELE1BQU0sT0FBTyxVQUFVO0lBTXJCOzs7T0FHRztJQUNLLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxrQkFBMEI7UUFDdEUsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlPLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxTQUFTO1FBQ2pELElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDZCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtRQUNELFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0MsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUlPLE1BQU0sQ0FBQyxjQUFjLENBQUMsU0FBaUI7UUFDN0MsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxNQUFNLEVBQUU7WUFDVixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDM0M7UUFDRCxPQUFPO1lBQ0wscUJBQXFCLEVBQUUsU0FBUyxFQUFFLE1BQU07U0FDekMsQ0FBQztJQUNKLENBQUM7SUFHTyxNQUFNLENBQUMsaUJBQWlCLENBQUMsU0FBaUI7UUFDaEQsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsU0FBUyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDckQ7UUFDRCxPQUFPO1lBQ0wsU0FBUyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7U0FDckYsQ0FBQztJQUNKLENBQUM7SUFFTyxNQUFNLENBQUMsdUJBQXVCLENBQUMsVUFBa0I7UUFDdkQsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksZ0JBQWdCLEVBQUU7WUFDcEIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEQsZ0JBQWdCLEdBQUcsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2hGLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNwQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQ3hEO1NBQ0Y7UUFDRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDNUYsQ0FBQztJQUlELE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQWMsRUFBRSxZQUEwQjtRQUNyRSxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUlELE1BQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGlCQUF5QjtRQUN0RCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBSU0sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFxRztRQUN0SCxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFRLENBQUM7UUFFMUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUU1RCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFRTyxZQUFZLENBQUMsT0FBZTtRQUNsQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDMUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzVFLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUM3RTtRQUVELEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQzNDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3JFLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3JFLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztZQUNyQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDbkQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDeEQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDMUQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztTQUN2QztRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQzNFO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLE9BQU87UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFZRCxJQUFJLFlBQVk7UUFDbEIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFJRCxJQUFJLGFBQWE7UUFDbkIsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBR0QsSUFBSSxVQUFVO1FBQ2hCLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNELE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDcEIsS0FBSztRQUNMLEtBQUs7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0NBR0Y7QUFFQSxDQUFDO0FBQUEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdFQUFnRSIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgeyAgIF8sIC8qICovIC8qICovICAgIH0gZnJvbSAndG5wLWNvcmUvYnJvd3Nlcic7LyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG5cbmltcG9ydCB7IEhlbHBlcnMgfSBmcm9tICcuLi9pbmRleCc7XG5cbmV4cG9ydCB0eXBlIENvbW1vbkNvbW1pdE1zZ0JyYW5jaCA9IHwgJ3JlZmFjdG9yJyB8ICdjaG9yZScgfCAnc3R5bGUnIHwgJ2RvY3MnIHwgJ3Rlc3QnIHwgJ2NpJyB8ICdidWlsZCc7XG5leHBvcnQgdHlwZSBUeXBlT2ZDb21taXQgPSAnZmVhdHVyZScgfCAnYnVnZml4JyB8ICdwZXJmb3JtYW5jZScgfCBDb21tb25Db21taXRNc2dCcmFuY2g7XG5leHBvcnQgdHlwZSBUeXBlT2ZNc2dQcmVmaXggPSAnZmVhdCcgfCAnZml4JyB8ICdwZXJmJyB8IENvbW1vbkNvbW1pdE1zZ0JyYW5jaDtcbmNvbnN0IHJlZ2V4VGVhbXNJRDogUmVnRXhwID0gL1tBLVowLTldK1xcIy87XG5cbmNvbnN0IHJlZ2V4Q29tbWl0TW9kdWxlSW5BcmdzOiBSZWdFeHAgPSAvXFxbW2EtenxcXC1dK1xcXS87XG5jb25zdCByZWdleENvbW1pdE1vZHVsZUluQnJhbmNoOiBSZWdFeHAgPSAvXFwtXFwtW2EtenxcXC1dK1xcLVxcLS87XG5cbmV4cG9ydCBjbGFzcyBDb21taXREYXRhIHtcblxuICBwcml2YXRlIF9tZXNzYWdlOiBzdHJpbmc7XG5cblxuXG4gIC8qKlxuICAgKlxuICAgKiBAcmV0dXJucyBqaXJhcyAoZnJvbSBvbGRlc3QgdG8gbmV3c2V0KVxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZXh0cmFjdEFuZE9yZGVySmlyYU51bWJlcnMoY29tbWl0T3JCcmFuY2hOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHByaXZhdGUgc3RhdGljIGNsZWFuSHR0cEZyb21Db21taXRNZXNzYWdlKGNvbW1pdE1zZyk6IHN0cmluZyB7XG4gICAgaWYgKCFjb21taXRNc2cpIHtcbiAgICAgIHJldHVybiBjb21taXRNc2c7XG4gICAgfVxuICAgIGNvbW1pdE1zZyA9IGNvbW1pdE1zZy5yZXBsYWNlKCdodHRwczovLycsICcnKTtcbiAgICBjb21taXRNc2cgPSBjb21taXRNc2cucmVwbGFjZSgnaHR0cDovLycsICcnKTtcbiAgICByZXR1cm4gY29tbWl0TXNnO1xuICB9XG5cblxuXG4gIHByaXZhdGUgc3RhdGljIGdldFRlYW1zSWRGcm9tKGNvbW1pdE1zZzogc3RyaW5nKSB7XG4gICAgbGV0IHRlYW1JRCA9IF8uZmlyc3QoY29tbWl0TXNnLm1hdGNoKHJlZ2V4VGVhbXNJRCkpO1xuICAgIGlmICh0ZWFtSUQpIHtcbiAgICAgIGNvbW1pdE1zZyA9IGNvbW1pdE1zZy5yZXBsYWNlKHRlYW1JRCwgJycpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgY29tbWl0TXNnT3JCcmFuY2hOYW1lOiBjb21taXRNc2csIHRlYW1JRFxuICAgIH07XG4gIH1cblxuXG4gIHByaXZhdGUgc3RhdGljIGdldE1vZHVsZU5hbWVGcm9tKGNvbW1pdE1zZzogc3RyaW5nKSB7XG4gICAgbGV0IGNvbW1pdE1vZHVsZU5hbWUgPSBfLmZpcnN0KGNvbW1pdE1zZy5tYXRjaChyZWdleENvbW1pdE1vZHVsZUluQXJncykpO1xuICAgIGlmIChjb21taXRNb2R1bGVOYW1lKSB7XG4gICAgICBjb21taXRNc2cgPSBjb21taXRNc2cucmVwbGFjZShjb21taXRNb2R1bGVOYW1lLCAnJyk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBjb21taXRNc2csIGNvbW1pdE1vZHVsZU5hbWU6IGNvbW1pdE1vZHVsZU5hbWU/LnJlcGxhY2UoL1xcWy9nLCAnJykucmVwbGFjZSgvXFxdL2csICcnKVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRNb2R1bGVOYW1lRnJvbUJyYW5jaChicmFuY2hOYW1lOiBzdHJpbmcpIHtcbiAgICBsZXQgY29tbWl0TW9kdWxlTmFtZSA9IF8uZmlyc3QoYnJhbmNoTmFtZS5tYXRjaChyZWdleENvbW1pdE1vZHVsZUluQnJhbmNoKSk7XG4gICAgaWYgKGNvbW1pdE1vZHVsZU5hbWUpIHtcbiAgICAgIGJyYW5jaE5hbWUgPSBicmFuY2hOYW1lLnJlcGxhY2UoY29tbWl0TW9kdWxlTmFtZSwgJycpO1xuICAgICAgY29tbWl0TW9kdWxlTmFtZSA9IGNvbW1pdE1vZHVsZU5hbWU/LnJlcGxhY2UoL15cXC1cXC0vLCAnJyk/LnJlcGxhY2UoL1xcLVxcLSQvLCAnJyk7XG4gICAgICBpZiAoY29tbWl0TW9kdWxlTmFtZS5zdGFydHNXaXRoKCctJykpIHtcbiAgICAgICAgY29tbWl0TW9kdWxlTmFtZSA9IGNvbW1pdE1vZHVsZU5hbWUucmVwbGFjZSgvXlxcLS8sICcnKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgY29tbWl0TW9kdWxlTmFtZTogY29tbWl0TW9kdWxlTmFtZT8ucmVwbGFjZSgvXlxcLVxcLS8sICcnKT8ucmVwbGFjZSgvXFwtXFwtJC8sICcnKSB9O1xuICB9XG5cblxuXG4gIHN0YXRpYyBhc3luYyBnZXRGcm9tQXJncyhhcmdzOiBzdHJpbmdbXSwgdHlwZU9mQ29tbWl0OiBUeXBlT2ZDb21taXQpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIHN0YXRpYyBhc3luYyBnZXRGcm9tQnJhbmNoKGN1cnJlbnRCcmFuY2hOYW1lOiBzdHJpbmcpIHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG5cbiAgcHVibGljIHN0YXRpYyBmcm9tKG9wdGlvbnM6IFBpY2s8Q29tbWl0RGF0YSwgJ21lc3NhZ2UnIHwgJ2ppcmFOdW1iZXJzJyB8ICd0eXBlT2ZDb21taXQnIHwgJ2NvbW1pdE1vZHVsZU5hbWUnIHwgJ3RlYW1JRCc+KTogQ29tbWl0RGF0YSB7XG4gICAgb3B0aW9ucyA9IChvcHRpb25zID8gb3B0aW9ucyA6IHt9KSBhcyBhbnk7XG5cbiAgICBjb25zdCBvcHQgPSBfLm1lcmdlKG5ldyBDb21taXREYXRhKCksIF8uY2xvbmVEZWVwKG9wdGlvbnMpKTtcblxuICAgIHJldHVybiBvcHQ7XG4gIH1cblxuXG5cblxuXG4gIHR5cGVPZkNvbW1pdDogVHlwZU9mQ29tbWl0O1xuXG4gIHByaXZhdGUgY2xlYXJNZXNzYWdlKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIGlmICh0aGlzLnRlYW1JRCAmJiBfLmlzU3RyaW5nKHRoaXMudGVhbUlEKSkge1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSh0aGlzLnRlYW1JRC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoJy0nLCAnICcpLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZSh0aGlzLnRlYW1JRC50b1VwcGVyQ2FzZSgpLnJlcGxhY2UoJy0nLCAnICcpLCAnICcpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgamlyYSBvZiAodGhpcy5qaXJhTnVtYmVycyB8fCBbXSkpIHtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoamlyYS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoJy0nLCAnICcpLCAnICcpO1xuICAgICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZShqaXJhLnRvVXBwZXJDYXNlKCkucmVwbGFjZSgnLScsICcgJyksICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKGppcmEsICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKGppcmEudG9Mb3dlckNhc2UoKSwgJyAnKTtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UocmVnZXhDb21taXRNb2R1bGVJbkFyZ3MsICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKHJlZ2V4Q29tbWl0TW9kdWxlSW5CcmFuY2gsICcgJyk7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKC9cXCBcXCAvZywgJyAnKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50ZWFtSUQgJiYgXy5pc1N0cmluZyh0aGlzLnRlYW1JRCkpIHtcbiAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnJlcGxhY2UoL1xcXy9nLCAnICcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jb21taXRNb2R1bGVOYW1lKSB7XG4gICAgICBtZXNzYWdlID0gbWVzc2FnZS5yZXBsYWNlKHRoaXMuY29tbWl0TW9kdWxlTmFtZS5yZXBsYWNlKC9cXC0vZywgJyAnKSwgJyAnKTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH1cblxuICAvKipcbiAgICogcHVyZSBtZXNzYWdlIHdoYXQgd2FzIGRvbmUgKHdpdGhvdXQgamlyYSBvciBwcmVmaXhlcylcbiAgICogPT4gaXMgaW5jbHVkZWQgaW4gdGhpcy5jb21taXRNZXNzYWdlXG4gICAqL1xuICBnZXQgbWVzc2FnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jbGVhck1lc3NhZ2UodGhpcy5fbWVzc2FnZSk7XG4gIH1cbiAgc2V0IG1lc3NhZ2UobWVzc2FnZSkge1xuICAgIHRoaXMuX21lc3NhZ2UgPSB0aGlzLmNsZWFyTWVzc2FnZShtZXNzYWdlKTtcbiAgfVxuICAvKipcbiAgICogZXguIEpJUkEtMjEzMiBvciBNWUpJUkFSRUZJWC0yMzQyMzRcbiAgICovXG4gIGppcmFOdW1iZXJzOiBzdHJpbmdbXTtcblxuICByZWFkb25seSBjb21taXRNb2R1bGVOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRlYW1JRDogc3RyaW5nO1xuXG5cblxuXG4gIGdldCBicmFuY2hQcmVmaXgoKTogVHlwZU9mTXNnUHJlZml4IHtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gICAgcmV0dXJuICh2b2lkIDApO1xuICB9XG5cblxuXG4gIGdldCBjb21taXRNZXNzYWdlKCk6IHN0cmluZyB7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgICByZXR1cm4gKHZvaWQgMCk7XG4gIH1cblxuXG4gIGdldCBicmFuY2hOYW1lKCkge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG4gIGdldCBpc0FjdGlvbkNvbW1pdCgpIHtcbi8qICovXG4vKiAqL1xuICAgIHJldHVybiAodm9pZCAwKTtcbiAgfVxuXG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1oZWxwZXJzIGxpYi9iYXNlL2NvbW1pdC1kYXRhLnRzIl19