bx-rest 0.22.0 → 0.24.4

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.
@@ -57,34 +57,12 @@ export class BXRestNavvyUser {
57
57
  current() {
58
58
  return this.Navvy.simple(this.url.current, undefined, BXRestMapUser.current);
59
59
  }
60
- /*
61
- update(user: iBXRestUser, fieldUpdate: string[]) {
62
-
63
- if (fieldUpdate && fieldUpdate.length) {
64
- let sendData: any = {
65
- ID: user.ID,
66
- }
67
- const userBX = this.BXRestUserMap.BXtoHttp(user)
68
- for (const field of fieldUpdate) {
69
- if (userBX[field]) {
70
- sendData[field] = userBX[field]
71
- } else {
72
- return throwError(() => 'One sent field is empty')
73
- }
74
- }
75
- return this.http.post<iBXRestUserHttp[]>(
76
- this.url.update,
77
- sendData
78
- )
79
- } else {
80
- return throwError(() => 'All sent field for edit is empty')
81
- }
82
- return this.Navvy.simple(
83
- this.BXRestUser.update(user, fieldUpdate),
84
- 'Не удалось обновить пользователя с ID' + user.ID
85
- )
60
+ /**
61
+ * Обновляет данные пользователя. Доступно только пользователю с правами приглашения пользователей.
62
+ */
63
+ update(param) {
64
+ return this.Navvy.simple(this.url.update, param);
86
65
  }
87
- */
88
66
  search(params) {
89
67
  return this.Navvy.pagNav(this.url.search, params, BXRestMapUser.get);
90
68
  }
@@ -106,69 +84,6 @@ export class BXRestNavvyUser {
106
84
  fields() {
107
85
  return this.Navvy.simple(this.url.fields);
108
86
  }
109
- // getAll(params: iBXGetParam = {}): Observable<iBXRestUser [] | undefined> {
110
- // if (!Object.keys(params).length) {
111
- // params = clone(this.def.params)
112
- // }
113
- //
114
- // const saveAllUser = compare(params, this.def.params)
115
- // return this.user$.pipe(
116
- // take(1),
117
- // mergeMap(v => {
118
- // if (v.load.all) {
119
- // if (compare(this.def.params, params)) {
120
- // return of(clone(v.data))
121
- // }
122
- // }
123
- //
124
- // return this.getEndArray(params).pipe(
125
- // take(1),
126
- // map(v => {
127
- // if (v && v.result) {
128
- // let cl = clone(v.result)
129
- // return this.saveArrUser(cl)
130
- // }
131
- // return undefined
132
- // }),
133
- // )
134
- // }),
135
- // tap(v => {
136
- // if (v && v.length && saveAllUser) {
137
- // this.store.dispatch(loadAll({load: true}))
138
- // }
139
- // params.start = this.def.params.start
140
- // })
141
- // )
142
- // }
143
- // private saveArrUser(users: iBXRestUserHttp[]) {
144
- // let result: iBXRestUser [] = []
145
- // for (const user of users) {
146
- // result.push(this.userMap.HttpToBX(user))
147
- // }
148
- // this.store.dispatch(saveArr({arr: result}))
149
- //
150
- // return result
151
- // }
152
- // getEndArray(params: UserFilter = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {
153
- // return this.get(params).pipe(
154
- // mergeMap(items => {
155
- // if (items && items.result && typeof items.result === 'object') {
156
- // if (items.next) {
157
- // params.start = items.next
158
- // return this.getEndArray(params).pipe(map(vEnd => {
159
- // if (vEnd && items.result && vEnd.result) {
160
- // return {result: [...items.result, ...vEnd.result]}
161
- // }
162
- // return (items) ? items : undefined
163
- // }))
164
- // }
165
- // return of(items)
166
- // } else {
167
- // return of(undefined)
168
- // }
169
- // }),
170
- // )
171
- // }
172
87
  /**
173
88
  * Дополняет параметры запроса пользователей значениями по умолчанию (ACTIVE, start).
174
89
  */
@@ -190,4 +105,4 @@ export class BXRestNavvyUser {
190
105
  }
191
106
  }
192
107
  }
193
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFVekMsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBQzlCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDckgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXJELE1BQU0sT0FBTyxlQUFlO0lBQTVCO1FBQ0UsUUFBRyxHQUE4QztZQUMvQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUM7U0FDakMsQ0FBQTtRQUNELFFBQUcsR0FBRztZQUNKLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7WUFDbEIsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztZQUN0QixHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7WUFDMUIsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUN4QixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSw0QkFBNEI7WUFDdEQsdUNB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QUFBO1FBQ3RDLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdkUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQTtRQUNwQyxDQUFDO0lBQ0gsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmF2dnkgfSBmcm9tICcuLi9zZXJ2aWNlcy9uYXZ2eSdcclxuaW1wb3J0IHtcclxuICBpQlhSZXN0UGFyYW1Vc2VyQWRkLFxyXG4gIGlCWFJlc3RQYXJhbVVzZXJHZXQsXHJcbiAgaUJYUmVzdFBhcmFtVXNlckFjY2VzcyxcclxuICBpQlhSZXN0UGFyYW1Vc2VyU2VhcmNoLFxyXG4gIGlCWFJlc3RVc2VyLFxyXG4gIGlCWFJlc3RVc2VySHR0cCxcclxuICBpQlhSZXN0VXNlckh0dHBGaWVsZFxyXG59IGZyb20gJy4uL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXInXHJcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVVzZXJVc2VyZmllbGQgfSBmcm9tICcuL3VzZXIvdXNlcmZpZWxkJ1xyXG5pbXBvcnQgeyBCWFJlc3RNYXBVc2VyIH0gZnJvbSAnLi4vbWFwL3VzZXInXHJcbmltcG9ydCB7ICRhY2Nlc3MsICRhZGQsICRhZG1pbiwgJGN1cnJlbnQsICRmaWVsZHMsICRnZXQsICRzZWFyY2gsICR1cGRhdGUsICR1c2VyIH0gZnJvbSAnLi4vY29uc3RzL3BhcnQtbmFtZS1tZXRob2RzJ1xyXG5pbXBvcnQgeyBCWFJlc3ROYXZ2eVVzZXJPcHRpb24gfSBmcm9tICcuL3VzZXIvb3B0aW9uJ1xyXG5cclxuZXhwb3J0IGNsYXNzIEJYUmVzdE5hdnZ5VXNlciB7XHJcbiAgZGVmOiB7IHBhcmFtczogeyBBQ1RJVkU6IGJvb2xlYW4sIHN0YXJ0OiAwIH0gfSA9IHtcclxuICAgIHBhcmFtczoge0FDVElWRTogdHJ1ZSwgc3RhcnQ6IDB9XHJcbiAgfVxyXG4gIHVybCA9IHtcclxuICAgIGFkZDogWyR1c2VyLCAkYWRkXSxcclxuICAgIGFkbWluOiBbJHVzZXIsICRhZG1pbl0sXHJcbiAgICBnZXQ6IFskdXNlciwgJGdldF0sXHJcbiAgICBjdXJyZW50OiBbJHVzZXIsICRjdXJyZW50XSxcclxuICAgIHVwZGF0ZTogWyR1c2VyLCAkdXBkYXRlXSxcclxuICAgIHNlYXJjaDogWyR1c2VyLCAkc2VhcmNoXSxcclxuICAgIGFjY2VzczogWyR1c2VyLCAkYWNjZXNzXSwgLy8gVTEgLSDQv9C+0LvRjNC30L7QstCw0YLQtdC70Ywg0YEgaWQgPTFcclxuICAgIC8vIEFVIC0g0LLRgdC1INCw0LLRgtC+0YDQuNC30L7QstCw0L3QvdGL0LUg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C4XHJcbiAgICAvLyBEMSAtINC/0L7QtNGA0LDQt9C00LXQu9C10L3QuNC1INGBIGlkPTFcclxuICAgIC8vIEcxIC0g0LPRgNGD0L/Qv9CwINGBIGlkPTFcclxuICAgIGZpZWxkczogWyR1c2VyLCAkZmllbGRzXSxcclxuICB9XHJcblxyXG4gIC8qKlxuICAgKiDQn9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQtSDQv9C+0LvRjyDQv9GA0L7RhNC40LvRjyAoYHVzZXIudXNlcmZpZWxkLipgKS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VyRmllbGQgPSBuZXcgQlhSZXN0TmF2dnlVc2VyVXNlcmZpZWxkKClcclxuICAvKiog0J/QtdGA0YHQvtC90LDQu9GM0L3Ri9C1INC90LDRgdGC0YDQvtC50LrQuCDRgtC10LrRg9GJ0LXQs9C+INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjyDQtNC70Y8g0L/RgNC40LvQvtC20LXQvdC40Y8uICovXHJcbiAgcHVibGljIHJlYWRvbmx5IG9wdGlvbiA9IG5ldyBCWFJlc3ROYXZ2eVVzZXJPcHRpb24oKVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgTmF2dnkgPSBuZXcgTmF2dnkoKVxyXG5cclxuICAvKiogSW52aXRlcyBhbiBpbnRyYW5ldCBvciBleHRyYW5ldCB1c2VyLiBSZXF1aXJlcyB1c2VyIGludml0YXRpb24gcmlnaHRzLiAqL1xyXG4gIGFkZChwYXJhbTogaUJYUmVzdFBhcmFtVXNlckFkZCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPG51bWJlciwgbnVtYmVyLCBpQlhSZXN0UGFyYW1Vc2VyQWRkPihcclxuICAgICAgdGhpcy51cmwuYWRkLFxyXG4gICAgICBwYXJhbVxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0J/RgNC+0LLQtdGA0Y/QtdGCLCDQvNC+0LbQtdGCINC70Lgg0YLQtdC60YPRidC40Lkg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GMINGD0L/RgNCw0LLQu9GP0YLRjCDQvdCw0YHRgtGA0L7QudC60LDQvNC4INC/0YDQuNC70L7QttC10L3QuNC5LlxyXG4gICAqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIgYHRydWVgINC00LvRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0YEg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnQuNC80Lgg0LDQtNC80LjQvdC40YHRgtGA0LDRgtC40LLQvdGL0LzQuFxyXG4gICAqINC/0YDQsNCy0LDQvNC4INC4IGBmYWxzZWAg0LIg0L7RgdGC0LDQu9GM0L3Ri9GFINGB0LvRg9GH0LDRj9GFLlxyXG4gICAqL1xyXG4gIGFkbWluKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPGJvb2xlYW4+KFxyXG4gICAgICB0aGlzLnVybC5hZG1pblxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgLyoqXG4gICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSDQv9C+INGE0LjQu9GM0YLRgNGDLlxuICAgKi9cbiAgZ2V0KHBhcmFtczogaUJYUmVzdFBhcmFtVXNlckdldCA9IHt9KSB7XHJcbiAgICBsZXQgY29weVBhcmFtcyA9IGNsb25lKHBhcmFtcylcclxuICAgIHRoaXMuc2V0RGVmUGFyYW0oY29weVBhcmFtcylcclxuXHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5wYWdOYXYoXHJcbiAgICAgIHRoaXMudXJsLmdldCxcclxuICAgICAgY29weVBhcmFtcyxcclxuICAgICAgQlhSZXN0TWFwVXNlci5nZXQpXHJcbiAgfVxyXG5cclxuICAvKipcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LjQvdGE0L7RgNC80LDRhtC40Y4g0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxuICAgKi9cbiAgY3VycmVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxpQlhSZXN0VXNlckh0dHAsIGlCWFJlc3RVc2VyPihcclxuICAgICAgdGhpcy51cmwuY3VycmVudCxcclxuICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICBCWFJlc3RNYXBVc2VyLmN1cnJlbnRcclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgdXBkYXRlKHVzZXI6IGlCWFJlc3RVc2VyLCBmaWVsZFVwZGF0ZTogc3RyaW5nW10pIHtcclxuXHJcbiAgICAgIGlmIChmaWVsZFVwZGF0ZSAmJiBmaWVsZFVwZGF0ZS5sZW5ndGgpIHtcclxuICAgICAgbGV0IHNlbmREYXRhOiBhbnkgPSB7XHJcbiAgICAgICAgSUQ6IHVzZXIuSUQsXHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgdXNlckJYID0gdGhpcy5CWFJlc3RVc2VyTWFwLkJYdG9IdHRwKHVzZXIpXHJcbiAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRVcGRhdGUpIHtcclxuICAgICAgICBpZiAodXNlckJYW2ZpZWxkXSkge1xyXG4gICAgICAgICAgc2VuZERhdGFbZmllbGRdID0gdXNlckJYW2ZpZWxkXVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnT25lIHNlbnQgZmllbGQgaXMgZW1wdHknKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8aUJYUmVzdFVzZXJIdHRwW10+KFxyXG4gICAgICAgIHRoaXMudXJsLnVwZGF0ZSxcclxuICAgICAgICBzZW5kRGF0YVxyXG4gICAgICApXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAnQWxsIHNlbnQgZmllbGQgZm9yIGVkaXQgaXMgZW1wdHknKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlKFxyXG4gICAgICB0aGlzLkJYUmVzdFVzZXIudXBkYXRlKHVzZXIsIGZpZWxkVXBkYXRlKSxcclxuICAgICAgJ9Cd0LUg0YPQtNCw0LvQvtGB0Ywg0L7QsdC90L7QstC40YLRjCDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0YEgSUQnICsgdXNlci5JRFxyXG4gICAgKVxyXG4gIH1cclxuICAqL1xyXG4gIHNlYXJjaChwYXJhbXM6IGlCWFJlc3RQYXJhbVVzZXJTZWFyY2gpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnBhZ05hdihcclxuICAgICAgdGhpcy51cmwuc2VhcmNoLFxyXG4gICAgICBwYXJhbXMsXHJcbiAgICAgIEJYUmVzdE1hcFVzZXIuZ2V0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQn9GA0L7QstC10YDRj9C10YIg0L3QsNC70LjRh9C40LUg0YXQvtGC0Y8g0LHRiyDQvtC00L3QvtCz0L4g0LjQtyDRg9C60LDQt9Cw0L3QvdGL0YUg0LrQvtC00L7QsiDQtNC+0YHRgtGD0L/QsC5cclxuICAgKlxyXG4gICAqINCU0LvRjyDQvtCx0YDQsNGC0L3QvtC5INGB0L7QstC80LXRgdGC0LjQvNC+0YHRgtC4INC80L7QttC90L4g0L/QtdGA0LXQtNCw0YLRjCDQutCw0Log0L7QsdGK0LXQutGCXHJcbiAgICogYHsgQUNDRVNTOiBbJ0cyJywgJ0FVJ10gfWAsINGC0LDQuiDQuCDQvdC10L/QvtGB0YDQtdC00YHRgtCy0LXQvdC90L4g0LzQsNGB0YHQuNCyINC60L7QtNC+0LIuXHJcbiAgICovXHJcbiAgYWNjZXNzKHBhcmFtczogaUJYUmVzdFBhcmFtVXNlckFjY2VzcyB8IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCBwcmVwYXJlZFBhcmFtczogaUJYUmVzdFBhcmFtVXNlckFjY2VzcyA9IEFycmF5LmlzQXJyYXkocGFyYW1zKVxyXG4gICAgICA/IHtBQ0NFU1M6IHBhcmFtc31cclxuICAgICAgOiBwYXJhbXNcclxuXHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8Ym9vbGVhbiwgYm9vbGVhbiwgaUJYUmVzdFBhcmFtVXNlckFjY2Vzcz4oXHJcbiAgICAgIHRoaXMudXJsLmFjY2VzcyxcclxuICAgICAgcHJlcGFyZWRQYXJhbXMsXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INC/0L7Qu9C10Lkg0L/RgNC+0YTQuNC70Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPLlxuICAgKi9cbiAgZmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPGlCWFJlc3RVc2VySHR0cEZpZWxkPih0aGlzLnVybC5maWVsZHMpXHJcbiAgfVxyXG5cclxuICAvLyBnZXRBbGwocGFyYW1zOiBpQlhHZXRQYXJhbSA9IHt9KTogT2JzZXJ2YWJsZTxpQlhSZXN0VXNlciBbXSB8IHVuZGVmaW5lZD4ge1xyXG4gIC8vICAgaWYgKCFPYmplY3Qua2V5cyhwYXJhbXMpLmxlbmd0aCkge1xyXG4gIC8vICAgICBwYXJhbXMgPSBjbG9uZSh0aGlzLmRlZi5wYXJhbXMpXHJcbiAgLy8gICB9XHJcbiAgLy9cclxuICAvLyAgIGNvbnN0IHNhdmVBbGxVc2VyID0gY29tcGFyZShwYXJhbXMsIHRoaXMuZGVmLnBhcmFtcylcclxuICAvLyAgIHJldHVybiB0aGlzLnVzZXIkLnBpcGUoXHJcbiAgLy8gICAgIHRha2UoMSksXHJcbiAgLy8gICAgIG1lcmdlTWFwKHYgPT4ge1xyXG4gIC8vICAgICAgIGlmICh2LmxvYWQuYWxsKSB7XHJcbiAgLy8gICAgICAgICBpZiAoY29tcGFyZSh0aGlzLmRlZi5wYXJhbXMsIHBhcmFtcykpIHtcclxuICAvLyAgICAgICAgICAgcmV0dXJuIG9mKGNsb25lKHYuZGF0YSkpXHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vXHJcbiAgLy8gICAgICAgcmV0dXJuIHRoaXMuZ2V0RW5kQXJyYXkocGFyYW1zKS5waXBlKFxyXG4gIC8vICAgICAgICAgdGFrZSgxKSxcclxuICAvLyAgICAgICAgIG1hcCh2ID0+IHtcclxuICAvLyAgICAgICAgICAgaWYgKHYgJiYgdi5yZXN1bHQpIHtcclxuICAvLyAgICAgICAgICAgICBsZXQgY2wgPSBjbG9uZSh2LnJlc3VsdClcclxuICAvLyAgICAgICAgICAgICByZXR1cm4gdGhpcy5zYXZlQXJyVXNlcihjbClcclxuICAvLyAgICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkXHJcbiAgLy8gICAgICAgICB9KSxcclxuICAvLyAgICAgICApXHJcbiAgLy8gICAgIH0pLFxyXG4gIC8vICAgICB0YXAodiA9PiB7XHJcbiAgLy8gICAgICAgaWYgKHYgJiYgdi5sZW5ndGggJiYgc2F2ZUFsbFVzZXIpIHtcclxuICAvLyAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobG9hZEFsbCh7bG9hZDogdHJ1ZX0pKVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgICBwYXJhbXMuc3RhcnQgPSB0aGlzLmRlZi5wYXJhbXMuc3RhcnRcclxuICAvLyAgICAgfSlcclxuICAvLyAgIClcclxuICAvLyB9XHJcblxyXG4gIC8vIHByaXZhdGUgc2F2ZUFyclVzZXIodXNlcnM6IGlCWFJlc3RVc2VySHR0cFtdKSB7XHJcbiAgLy8gICBsZXQgcmVzdWx0OiBpQlhSZXN0VXNlciBbXSA9IFtdXHJcbiAgLy8gICBmb3IgKGNvbnN0IHVzZXIgb2YgdXNlcnMpIHtcclxuICAvLyAgICAgcmVzdWx0LnB1c2godGhpcy51c2VyTWFwLkh0dHBUb0JYKHVzZXIpKVxyXG4gIC8vICAgfVxyXG4gIC8vICAgdGhpcy5zdG9yZS5kaXNwYXRjaChzYXZlQXJyKHthcnI6IHJlc3VsdH0pKVxyXG4gIC8vXHJcbiAgLy8gICByZXR1cm4gcmVzdWx0XHJcbiAgLy8gfVxyXG5cclxuICAvLyBnZXRFbmRBcnJheShwYXJhbXM6IFVzZXJGaWx0ZXIgPSB7fSk6IE9ic2VydmFibGU8aUh0dHBBbnN3ZXJCWDxpQlhSZXN0VXNlckh0dHBbXT4gfCB1bmRlZmluZWQ+IHtcclxuICAvLyAgIHJldHVybiB0aGlzLmdldChwYXJhbXMpLnBpcGUoXHJcbiAgLy8gICAgIG1lcmdlTWFwKGl0ZW1zID0+IHtcclxuICAvLyAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMucmVzdWx0ICYmIHR5cGVvZiBpdGVtcy5yZXN1bHQgPT09ICdvYmplY3QnKSB7XHJcbiAgLy8gICAgICAgICBpZiAoaXRlbXMubmV4dCkge1xyXG4gIC8vICAgICAgICAgICBwYXJhbXMuc3RhcnQgPSBpdGVtcy5uZXh0XHJcbiAgLy8gICAgICAgICAgIHJldHVybiB0aGlzLmdldEVuZEFycmF5KHBhcmFtcykucGlwZShtYXAodkVuZCA9PiB7XHJcbiAgLy8gICAgICAgICAgICAgaWYgKHZFbmQgJiYgaXRlbXMucmVzdWx0ICYmIHZFbmQucmVzdWx0KSB7XHJcbiAgLy8gICAgICAgICAgICAgICByZXR1cm4ge3Jlc3VsdDogWy4uLml0ZW1zLnJlc3VsdCwgLi4udkVuZC5yZXN1bHRdfVxyXG4gIC8vICAgICAgICAgICAgIH1cclxuICAvLyAgICAgICAgICAgICByZXR1cm4gKGl0ZW1zKSA/IGl0ZW1zIDogdW5kZWZpbmVkXHJcbiAgLy8gICAgICAgICAgIH0pKVxyXG4gIC8vICAgICAgICAgfVxyXG4gIC8vICAgICAgICAgcmV0dXJuIG9mKGl0ZW1zKVxyXG4gIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgLy8gICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKVxyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgfSksXHJcbiAgLy8gICApXHJcbiAgLy8gfVxyXG5cclxuICAvKipcbiAgICog0JTQvtC/0L7Qu9C90Y/QtdGCINC/0LDRgNCw0LzQtdGC0YDRiyDQt9Cw0L/RgNC+0YHQsCDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSDQt9C90LDRh9C10L3QuNGP0LzQuCDQv9C+INGD0LzQvtC70YfQsNC90LjRjiAoQUNUSVZFLCBzdGFydCkuXG4gICAqL1xuICBwcml2YXRlIHNldERlZlBhcmFtKHBhcmFtczogaUJYUmVzdFBhcmFtVXNlckdldCkge1xyXG4gICAgaWYgKCFwYXJhbXMuRklMVEVSKSB7XHJcbiAgICAgIHBhcmFtcy5GSUxURVIgPSB7fVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhcmFtcy5GSUxURVIsICdBQ1RJVkUnKSkge1xyXG4gICAgICBwYXJhbXMuRklMVEVSLkFDVElWRSA9IHRoaXMuZGVmLnBhcmFtcy5BQ1RJVkVcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHBhcmFtcy5GSUxURVIuQUNUSVZFICE9PSAnYm9vbGVhbicpIHtcclxuICAgICAgZGVsZXRlIHBhcmFtcy5GSUxURVIuQUNUSVZFXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGFyYW1zLCAnc3RhcnQnKSkge1xyXG4gICAgICBwYXJhbXMuc3RhcnQgPSB0aGlzLmRlZi5wYXJhbXMuc3RhcnRcclxuICAgIH1cclxuXHJcbiAgICBpZiAocGFyYW1zLkZJTFRFUi5VRl9ERVBBUlRNRU5UICYmICFwYXJhbXMuRklMVEVSLlVGX0RFUEFSVE1FTlQubGVuZ3RoKSB7XHJcbiAgICAgIGRlbGV0ZSBwYXJhbXMuRklMVEVSLlVGX0RFUEFSVE1FTlRcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3JlcXVlc3QtbmF2dnkvdXNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFXekMsT0FBTyxLQUFLLE1BQU0sWUFBWSxDQUFBO0FBQzlCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDckgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXJELE1BQU0sT0FBTyxlQUFlO0lBQTVCO1FBQ0UsUUFBRyxHQUE4QztZQUMvQyxNQUFNLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUM7U0FDakMsQ0FBQTtRQUNELFFBQUcsR0FBRztZQUNKLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7WUFDbEIsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQztZQUN0QixHQUFHLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7WUFDMUIsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUN4QixNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDO1lBQ3hCLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSw0QkFBNEI7WUFDdEQsdUNB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Q0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUE7UUFDN0IsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDM0QsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUE7UUFDdEMsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2RSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFBO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXZ2eSB9IGZyb20gJy4uL3NlcnZpY2VzL25hdnZ5J1xyXG5pbXBvcnQge1xyXG4gIGlCWFJlc3RQYXJhbVVzZXJBZGQsXHJcbiAgaUJYUmVzdFBhcmFtVXNlclVwZGF0ZSxcclxuICBpQlhSZXN0UGFyYW1Vc2VyR2V0LFxyXG4gIGlCWFJlc3RQYXJhbVVzZXJBY2Nlc3MsXHJcbiAgaUJYUmVzdFBhcmFtVXNlclNlYXJjaCxcclxuICBpQlhSZXN0VXNlcixcclxuICBpQlhSZXN0VXNlckh0dHAsXHJcbiAgaUJYUmVzdFVzZXJIdHRwRmllbGRcclxufSBmcm9tICcuLi90eXBpZmljYXRpb24vcmVzdC91c2VyJ1xyXG5pbXBvcnQgY2xvbmUgZnJvbSAnanVzdC1jbG9uZSdcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlVc2VyVXNlcmZpZWxkIH0gZnJvbSAnLi91c2VyL3VzZXJmaWVsZCdcclxuaW1wb3J0IHsgQlhSZXN0TWFwVXNlciB9IGZyb20gJy4uL21hcC91c2VyJ1xyXG5pbXBvcnQgeyAkYWNjZXNzLCAkYWRkLCAkYWRtaW4sICRjdXJyZW50LCAkZmllbGRzLCAkZ2V0LCAkc2VhcmNoLCAkdXBkYXRlLCAkdXNlciB9IGZyb20gJy4uL2NvbnN0cy9wYXJ0LW5hbWUtbWV0aG9kcydcclxuaW1wb3J0IHsgQlhSZXN0TmF2dnlVc2VyT3B0aW9uIH0gZnJvbSAnLi91c2VyL29wdGlvbidcclxuXHJcbmV4cG9ydCBjbGFzcyBCWFJlc3ROYXZ2eVVzZXIge1xyXG4gIGRlZjogeyBwYXJhbXM6IHsgQUNUSVZFOiBib29sZWFuLCBzdGFydDogMCB9IH0gPSB7XHJcbiAgICBwYXJhbXM6IHtBQ1RJVkU6IHRydWUsIHN0YXJ0OiAwfVxyXG4gIH1cclxuICB1cmwgPSB7XHJcbiAgICBhZGQ6IFskdXNlciwgJGFkZF0sXHJcbiAgICBhZG1pbjogWyR1c2VyLCAkYWRtaW5dLFxyXG4gICAgZ2V0OiBbJHVzZXIsICRnZXRdLFxyXG4gICAgY3VycmVudDogWyR1c2VyLCAkY3VycmVudF0sXHJcbiAgICB1cGRhdGU6IFskdXNlciwgJHVwZGF0ZV0sXHJcbiAgICBzZWFyY2g6IFskdXNlciwgJHNlYXJjaF0sXHJcbiAgICBhY2Nlc3M6IFskdXNlciwgJGFjY2Vzc10sIC8vIFUxIC0g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GMINGBIGlkID0xXHJcbiAgICAvLyBBVSAtINCy0YHQtSDQsNCy0YLQvtGA0LjQt9C+0LLQsNC90L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQuFxyXG4gICAgLy8gRDEgLSDQv9C+0LTRgNCw0LfQtNC10LvQtdC90LjQtSDRgSBpZD0xXHJcbiAgICAvLyBHMSAtINCz0YDRg9C/0L/QsCDRgSBpZD0xXHJcbiAgICBmaWVsZHM6IFskdXNlciwgJGZpZWxkc10sXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQn9C+0LvRjNC30L7QstCw0YLQtdC70YzRgdC60LjQtSDQv9C+0LvRjyDQv9GA0L7RhNC40LvRjyAoYHVzZXIudXNlcmZpZWxkLipgKS5cclxuICAgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgdXNlckZpZWxkID0gbmV3IEJYUmVzdE5hdnZ5VXNlclVzZXJmaWVsZCgpXHJcbiAgLyoqINCf0LXRgNGB0L7QvdCw0LvRjNC90YvQtSDQvdCw0YHRgtGA0L7QudC60Lgg0YLQtdC60YPRidC10LPQviDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8g0LTQu9GPINC/0YDQuNC70L7QttC10L3QuNGPLiAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBvcHRpb24gPSBuZXcgQlhSZXN0TmF2dnlVc2VyT3B0aW9uKClcclxuICBwcml2YXRlIHJlYWRvbmx5IE5hdnZ5ID0gbmV3IE5hdnZ5KClcclxuXHJcbiAgLyoqIEludml0ZXMgYW4gaW50cmFuZXQgb3IgZXh0cmFuZXQgdXNlci4gUmVxdWlyZXMgdXNlciBpbnZpdGF0aW9uIHJpZ2h0cy4gKi9cclxuICBhZGQocGFyYW06IGlCWFJlc3RQYXJhbVVzZXJBZGQpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxudW1iZXIsIG51bWJlciwgaUJYUmVzdFBhcmFtVXNlckFkZD4oXHJcbiAgICAgIHRoaXMudXJsLmFkZCxcclxuICAgICAgcGFyYW1cclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCf0YDQvtCy0LXRgNGP0LXRgiwg0LzQvtC20LXRgiDQu9C4INGC0LXQutGD0YnQuNC5INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjCDRg9C/0YDQsNCy0LvRj9GC0Ywg0L3QsNGB0YLRgNC+0LnQutCw0LzQuCDQv9GA0LjQu9C+0LbQtdC90LjQuS5cclxuICAgKlxyXG4gICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCIGB0cnVlYCDQtNC70Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GPINGBINGB0L7QvtGC0LLQtdGC0YHRgtCy0YPRjtGJ0LjQvNC4INCw0LTQvNC40L3QuNGB0YLRgNCw0YLQuNCy0L3Ri9C80LhcclxuICAgKiDQv9GA0LDQstCw0LzQuCDQuCBgZmFsc2VgINCyINC+0YHRgtCw0LvRjNC90YvRhSDRgdC70YPRh9Cw0Y/RhS5cclxuICAgKi9cclxuICBhZG1pbigpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnNpbXBsZTxib29sZWFuPihcclxuICAgICAgdGhpcy51cmwuYWRtaW5cclxuICAgIClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGB0L/QuNGB0L7QuiDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuSDQv9C+INGE0LjQu9GM0YLRgNGDLlxyXG4gICAqL1xyXG4gIGdldChwYXJhbXM6IGlCWFJlc3RQYXJhbVVzZXJHZXQgPSB7fSkge1xyXG4gICAgbGV0IGNvcHlQYXJhbXMgPSBjbG9uZShwYXJhbXMpXHJcbiAgICB0aGlzLnNldERlZlBhcmFtKGNvcHlQYXJhbXMpXHJcblxyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkucGFnTmF2KFxyXG4gICAgICB0aGlzLnVybC5nZXQsXHJcbiAgICAgIGNvcHlQYXJhbXMsXHJcbiAgICAgIEJYUmVzdE1hcFVzZXIuZ2V0KVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog0JLQvtC30LLRgNCw0YnQsNC10YIg0LjQvdGE0L7RgNC80LDRhtC40Y4g0L4g0YLQtdC60YPRidC10Lwg0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C1LlxyXG4gICAqL1xyXG4gIGN1cnJlbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8aUJYUmVzdFVzZXJIdHRwLCBpQlhSZXN0VXNlcj4oXHJcbiAgICAgIHRoaXMudXJsLmN1cnJlbnQsXHJcbiAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgQlhSZXN0TWFwVXNlci5jdXJyZW50XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0LTQsNC90L3Ri9C1INC/0L7Qu9GM0LfQvtCy0LDRgtC10LvRjy4g0JTQvtGB0YLRg9C/0L3QviDRgtC+0LvRjNC60L4g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9GOINGBINC/0YDQsNCy0LDQvNC4INC/0YDQuNCz0LvQsNGI0LXQvdC40Y8g0L/QvtC70YzQt9C+0LLQsNGC0LXQu9C10LkuXHJcbiAgICovXHJcbiAgdXBkYXRlKHBhcmFtOiBpQlhSZXN0UGFyYW1Vc2VyVXBkYXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8Ym9vbGVhbiwgYm9vbGVhbiwgaUJYUmVzdFBhcmFtVXNlclVwZGF0ZT4oXHJcbiAgICAgIHRoaXMudXJsLnVwZGF0ZSxcclxuICAgICAgcGFyYW1cclxuICAgIClcclxuICB9XHJcblxyXG4gIHNlYXJjaChwYXJhbXM6IGlCWFJlc3RQYXJhbVVzZXJTZWFyY2gpIHtcclxuICAgIHJldHVybiB0aGlzLk5hdnZ5LnBhZ05hdihcclxuICAgICAgdGhpcy51cmwuc2VhcmNoLFxyXG4gICAgICBwYXJhbXMsXHJcbiAgICAgIEJYUmVzdE1hcFVzZXIuZ2V0XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQn9GA0L7QstC10YDRj9C10YIg0L3QsNC70LjRh9C40LUg0YXQvtGC0Y8g0LHRiyDQvtC00L3QvtCz0L4g0LjQtyDRg9C60LDQt9Cw0L3QvdGL0YUg0LrQvtC00L7QsiDQtNC+0YHRgtGD0L/QsC5cclxuICAgKlxyXG4gICAqINCU0LvRjyDQvtCx0YDQsNGC0L3QvtC5INGB0L7QstC80LXRgdGC0LjQvNC+0YHRgtC4INC80L7QttC90L4g0L/QtdGA0LXQtNCw0YLRjCDQutCw0Log0L7QsdGK0LXQutGCXHJcbiAgICogYHsgQUNDRVNTOiBbJ0cyJywgJ0FVJ10gfWAsINGC0LDQuiDQuCDQvdC10L/QvtGB0YDQtdC00YHRgtCy0LXQvdC90L4g0LzQsNGB0YHQuNCyINC60L7QtNC+0LIuXHJcbiAgICovXHJcbiAgYWNjZXNzKHBhcmFtczogaUJYUmVzdFBhcmFtVXNlckFjY2VzcyB8IHN0cmluZ1tdKSB7XHJcbiAgICBjb25zdCBwcmVwYXJlZFBhcmFtczogaUJYUmVzdFBhcmFtVXNlckFjY2VzcyA9IEFycmF5LmlzQXJyYXkocGFyYW1zKVxyXG4gICAgICA/IHtBQ0NFU1M6IHBhcmFtc31cclxuICAgICAgOiBwYXJhbXNcclxuXHJcbiAgICByZXR1cm4gdGhpcy5OYXZ2eS5zaW1wbGU8Ym9vbGVhbiwgYm9vbGVhbiwgaUJYUmVzdFBhcmFtVXNlckFjY2Vzcz4oXHJcbiAgICAgIHRoaXMudXJsLmFjY2VzcyxcclxuICAgICAgcHJlcGFyZWRQYXJhbXMsXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC/0LjRgdC+0Log0L/QvtC70LXQuSDQv9GA0L7RhNC40LvRjyDQv9C+0LvRjNC30L7QstCw0YLQtdC70Y8uXHJcbiAgICovXHJcbiAgZmllbGRzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuTmF2dnkuc2ltcGxlPGlCWFJlc3RVc2VySHR0cEZpZWxkPih0aGlzLnVybC5maWVsZHMpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDQlNC+0L/QvtC70L3Rj9C10YIg0L/QsNGA0LDQvNC10YLRgNGLINC30LDQv9GA0L7RgdCwINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5INC30L3QsNGH0LXQvdC40Y/QvNC4INC/0L4g0YPQvNC+0LvRh9Cw0L3QuNGOIChBQ1RJVkUsIHN0YXJ0KS5cclxuICAgKi9cclxuICBwcml2YXRlIHNldERlZlBhcmFtKHBhcmFtczogaUJYUmVzdFBhcmFtVXNlckdldCkge1xyXG4gICAgaWYgKCFwYXJhbXMuRklMVEVSKSB7XHJcbiAgICAgIHBhcmFtcy5GSUxURVIgPSB7fVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhcmFtcy5GSUxURVIsICdBQ1RJVkUnKSkge1xyXG4gICAgICBwYXJhbXMuRklMVEVSLkFDVElWRSA9IHRoaXMuZGVmLnBhcmFtcy5BQ1RJVkVcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHBhcmFtcy5GSUxURVIuQUNUSVZFICE9PSAnYm9vbGVhbicpIHtcclxuICAgICAgZGVsZXRlIHBhcmFtcy5GSUxURVIuQUNUSVZFXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGFyYW1zLCAnc3RhcnQnKSkge1xyXG4gICAgICBwYXJhbXMuc3RhcnQgPSB0aGlzLmRlZi5wYXJhbXMuc3RhcnRcclxuICAgIH1cclxuXHJcbiAgICBpZiAocGFyYW1zLkZJTFRFUi5VRl9ERVBBUlRNRU5UICYmICFwYXJhbXMuRklMVEVSLlVGX0RFUEFSVE1FTlQubGVuZ3RoKSB7XHJcbiAgICAgIGRlbGV0ZSBwYXJhbXMuRklMVEVSLlVGX0RFUEFSVE1FTlRcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcblxyXG4iXX0=
@@ -1,4 +1,3 @@
1
- import { DateTime } from 'luxon';
2
1
  /**
3
2
  * Преобразует значение в строку
4
3
  *
@@ -54,8 +53,154 @@ export class ToNumError extends Error {
54
53
  ].join('\n');
55
54
  }
56
55
  }
56
+ /** Соответствие токенов формата регулярным группам захвата. Порядок важен: длинные токены проверяются раньше коротких */
57
+ const DATE_FORMAT_TOKENS = [
58
+ ['yyyy', '(?<yyyy>\\d{4})'],
59
+ ['yy', '(?<yy>\\d{2})'],
60
+ ['MM', '(?<MM>\\d{2})'],
61
+ ['M', '(?<M>\\d{1,2})'],
62
+ ['dd', '(?<dd>\\d{2})'],
63
+ ['d', '(?<d>\\d{1,2})'],
64
+ ['HH', '(?<HH>\\d{2})'],
65
+ ['H', '(?<H>\\d{1,2})'],
66
+ ['mm', '(?<mm>\\d{2})'],
67
+ ['m', '(?<m>\\d{1,2})'],
68
+ ['ss', '(?<ss>\\d{2})'],
69
+ ['s', '(?<s>\\d{1,2})'],
70
+ ];
71
+ const DATE_FORMAT_TOKEN_REGEX = new RegExp(DATE_FORMAT_TOKENS.map(([token]) => token).join('|'), 'g');
72
+ const TIME_ONLY_TOKENS = new Set(['HH', 'H', 'mm', 'm', 'ss', 's']);
57
73
  /**
58
- * Преобразует значение в дату
74
+ * Выводит формат "только дата" из формата даты-и-времени — отрезает время и разделитель перед
75
+ * ним (например, `'dd.MM.yyyy HH:mm:ss'` → `'dd.MM.yyyy'`). Порядок день/месяц/год у полей
76
+ * "дата" и "дата-время" на одном портале Bitrix24 всегда согласован — различается только
77
+ * наличие `HH:mm:ss`, поэтому нет смысла заставлять вызывающего передавать оба формата и
78
+ * держать их в синхроне вручную.
79
+ */
80
+ export function deriveDateOnlyFormat(dateTimeFormat) {
81
+ DATE_FORMAT_TOKEN_REGEX.lastIndex = 0;
82
+ let match;
83
+ while ((match = DATE_FORMAT_TOKEN_REGEX.exec(dateTimeFormat)) !== null) {
84
+ if (TIME_ONLY_TOKENS.has(match[0])) {
85
+ // Отрезаем любой разделитель перед временем, включая буквенный (например 'T' в ISO-стиле
86
+ // 'dd.MM.yyyyTHH:mm:ss'), а не только пунктуацию — останавливаемся на последнем символе,
87
+ // который реально относится к токенам даты (y/M/d).
88
+ const datePart = dateTimeFormat.slice(0, match.index).replace(/[^yMd]+$/, '');
89
+ return datePart || dateTimeFormat;
90
+ }
91
+ }
92
+ return dateTimeFormat;
93
+ }
94
+ function escapeRegExp(str) {
95
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
96
+ }
97
+ /**
98
+ * Форматы дат, которые Bitrix24 реально присылает в разных методах REST и на разных
99
+ * порталах — формат даты/времени в ответе зависит от настроек портала (Настройки → формат
100
+ * даты и времени), поэтому один захардкоженный шаблон не универсален. Если явный `format`,
101
+ * переданный в toDate(), не совпал со значением, перед тем как считать строку невалидной,
102
+ * пробуем эти варианты по очереди — они не пересекаются по разделителям/порядку токенов,
103
+ * так что ложных совпадений не будет.
104
+ */
105
+ const FALLBACK_DATE_FORMATS = [
106
+ 'dd.MM.yyyy HH:mm:ss',
107
+ 'yyyy-MM-dd HH:mm:ss',
108
+ 'dd.MM.yyyy',
109
+ 'yyyy-MM-dd',
110
+ ];
111
+ /**
112
+ * Разбирает строку даты по простому шаблону (yyyy, MM, dd, HH, mm, ss и их однобуквенные
113
+ * варианты, например 'dd.MM.yyyy HH:mm:ss'). Разделители между токенами берутся из шаблона
114
+ * как есть. Не поддерживает локали, названия месяцев и часовые пояса — для REST-ответов
115
+ * Bitrix24 они не требуются, значения всегда приходят в фиксированном числовом виде.
116
+ */
117
+ function parseDateWithFormat(val, format) {
118
+ const tokenMap = new Map(DATE_FORMAT_TOKENS);
119
+ let pattern = '';
120
+ let lastIndex = 0;
121
+ let match;
122
+ DATE_FORMAT_TOKEN_REGEX.lastIndex = 0;
123
+ while ((match = DATE_FORMAT_TOKEN_REGEX.exec(format)) !== null) {
124
+ pattern += escapeRegExp(format.slice(lastIndex, match.index));
125
+ pattern += tokenMap.get(match[0]);
126
+ lastIndex = match.index + match[0].length;
127
+ }
128
+ pattern += escapeRegExp(format.slice(lastIndex));
129
+ const result = new RegExp(`^${pattern}$`).exec(val);
130
+ if (!result?.groups) {
131
+ return null;
132
+ }
133
+ const g = result.groups;
134
+ const year = g['yyyy'] ? Number(g['yyyy']) : g['yy'] ? 2000 + Number(g['yy']) : new Date().getFullYear();
135
+ const month = Number(g['MM'] ?? g['M'] ?? 1);
136
+ const day = Number(g['dd'] ?? g['d'] ?? 1);
137
+ const hour = Number(g['HH'] ?? g['H'] ?? 0);
138
+ const minute = Number(g['mm'] ?? g['m'] ?? 0);
139
+ const second = Number(g['ss'] ?? g['s'] ?? 0);
140
+ // Токены — это просто "N цифр", без проверки диапазона (regex не отличит "13" месяца от
141
+ // "13" дня). Без этой проверки new Date() молча "перекатывает" переполнение на соседний
142
+ // месяц/год (например, месяц=13 → январь следующего года) вместо того, чтобы считать
143
+ // строку невалидной.
144
+ if (month < 1 || month > 12 || day < 1 || day > 31 || hour > 23 || minute > 59 || second > 59) {
145
+ return null;
146
+ }
147
+ const date = new Date(year, month - 1, day, hour, minute, second);
148
+ return isNaN(date.getTime()) ? null : date;
149
+ }
150
+ /**
151
+ * Последний резервный разбор — без знания конкретного формата. Работает только для чисто
152
+ * числовых дат (никаких названий месяцев/дней — для этого нужны locale-таблицы, а это как
153
+ * раз тот вес, ради ухода от которого luxon был убран из зависимостей).
154
+ *
155
+ * Идея: год — единственный сегмент длиной ровно 4 цифры, поэтому его позиция (первый или
156
+ * последний из трёх сегментов даты) однозначно опознаётся при любом разделителе (`.`, `-`,
157
+ * `/`, пробел...). Месяц по всем распространённым в мире соглашениям (ISO `yyyy-MM-dd` и
158
+ * европейское `dd.MM.yyyy`) стоит между годом и днём, поэтому берётся как средний сегмент.
159
+ * Время, если есть, всегда идёт как `HH:mm:ss` — этот порядок универсален.
160
+ *
161
+ * Не решает и не пытается решить неоднозначность день/месяц в чисто числовых форматах вида
162
+ * `MM/dd/yyyy` (США), где оба сегмента могут быть ≤12 — угадывать это без знания локали
163
+ * значило бы иногда молча путать день с месяцем, что хуже явной ошибки.
164
+ */
165
+ function parseDateHeuristically(val) {
166
+ const parts = val.match(/\d+/g);
167
+ if (!parts || parts.length < 3 || parts.length > 6) {
168
+ return null;
169
+ }
170
+ const [d0, d1, d2, ...timeParts] = parts;
171
+ const dateParts = [d0, d1, d2];
172
+ const yearIdx = dateParts.findIndex(p => p.length === 4);
173
+ // Год должен быть однозначно найден (ровно 4 цифры) и стоять с края, а не в середине —
174
+ // иначе позиция месяца/дня не определить безопасно.
175
+ if (yearIdx !== 0 && yearIdx !== 2) {
176
+ return null;
177
+ }
178
+ const year = Number(dateParts[yearIdx]);
179
+ const month = Number(dateParts[1]);
180
+ const day = Number(dateParts[yearIdx === 0 ? 2 : 0]);
181
+ if (month < 1 || month > 12 || day < 1 || day > 31) {
182
+ return null;
183
+ }
184
+ const [hh, mm, ss] = timeParts;
185
+ const hour = hh !== undefined ? Number(hh) : 0;
186
+ const minute = mm !== undefined ? Number(mm) : 0;
187
+ const second = ss !== undefined ? Number(ss) : 0;
188
+ if (hour > 23 || minute > 59 || second > 59) {
189
+ return null;
190
+ }
191
+ const date = new Date(year, month - 1, day, hour, minute, second);
192
+ return isNaN(date.getTime()) ? null : date;
193
+ }
194
+ /**
195
+ * Преобразует значение в дату.
196
+ *
197
+ * Если передан `format`, но значение ему не соответствует (см. FALLBACK_DATE_FORMATS —
198
+ * актуально для полей, где Bitrix24 отдаёт дату в формате, настроенном на портале, а не в
199
+ * том, что захардкожен в маппере), перед тем как считать значение невалидным, делаются ещё
200
+ * две попытки: другие распространённые форматы Bitrix24, а затем — позиционная эвристика
201
+ * (см. parseDateHeuristically), которая распознаёт практически любой чисто числовой формат
202
+ * даты независимо от разделителя. Если приложению точно известен формат конкретного портала,
203
+ * его стоит передавать явным `format` — это всегда приоритетнее угадывания.
59
204
  */
60
205
  export function toDate(val, format, opt, throwError = true) {
61
206
  if (val instanceof Date) {
@@ -63,10 +208,22 @@ export function toDate(val, format, opt, throwError = true) {
63
208
  }
64
209
  else if (typeof val === 'string') {
65
210
  if (format) {
66
- if (opt) {
67
- return DateTime.fromFormat(val, format, opt).toJSDate();
211
+ const parsed = parseDateWithFormat(val, format);
212
+ if (parsed) {
213
+ return parsed;
214
+ }
215
+ for (const fallbackFormat of FALLBACK_DATE_FORMATS) {
216
+ if (fallbackFormat === format)
217
+ continue;
218
+ const fallbackParsed = parseDateWithFormat(val, fallbackFormat);
219
+ if (fallbackParsed) {
220
+ return fallbackParsed;
221
+ }
222
+ }
223
+ const heuristicParsed = parseDateHeuristically(val);
224
+ if (heuristicParsed) {
225
+ return heuristicParsed;
68
226
  }
69
- return DateTime.fromFormat(val, format).toJSDate();
70
227
  }
71
228
  else {
72
229
  return new Date(val);
@@ -202,4 +359,4 @@ export function prepareBaseAddress(url, add = '') {
202
359
  }
203
360
  return url;
204
361
  }
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBbUIsTUFBTSxPQUFPLENBQUE7QUFFakQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFDLEdBQVEsRUFBRSxVQUFVLEdBQUcsS0FBSztJQUNoRCxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3RDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixHQUFHLGdDQUFnQyxDQUFDLENBQUE7UUFDeEUsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3BCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsR0FBUSxFQUFFLFVBQVUsR0FBRyxJQUFJLEVBQUUsUUFBUSxHQUFHLENBQUM7SUFDN0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRTFCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFakMsSUFBSSxVQUFVO1lBQUUsTUFBTSxLQUFLLENBQUE7UUFFM0Isa0RBQWtEO1FBQ2xELE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDL0IsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFVBQVcsU0FBUSxLQUFLO0lBQ25DLFlBQTRC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QTtBQUNsQixDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEdBQVcsRUFBRSxNQUEwQixFQUFFO0lBQzFFLCtEQUErRDtJQUMvRCwyQkFBMkI7SUFDM0IsSUFBSTtJQUVKLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUIsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzlDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFBO1FBQ2pCLENBQUM7UUFFRCxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQTtJQUNqQixDQUFDO0lBRUQsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlDLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFBO0lBQ2pCLENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlVGltZSwgRGF0ZVRpbWVPcHRpb25zIH0gZnJvbSAnbHV4b24nXHJcblxyXG4vKipcclxuICog0J/RgNC10L7QsdGA0LDQt9GD0LXRgiDQt9C90LDRh9C10L3QuNC1INCyINGB0YLRgNC+0LrRg1xyXG4gKlxyXG4gKiBAcGFyYW0gdmFsXHJcbiAqIEBwYXJhbSB0aHJvd0Vycm9yXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdG9TdHIodmFsOiBhbnksIHRocm93RXJyb3IgPSBmYWxzZSk6IHN0cmluZyB7XHJcbiAgaWYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKHRocm93RXJyb3IpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHZhbHVlOiAke3ZhbH0gY2Fubm90IGJlIGNvbnZlcnRlZCB0byBzdHJpbmdgKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG4gIHJldHVybiBTdHJpbmcodmFsKVxyXG59XHJcblxyXG4vKipcclxuICog0J/RgNC10L7QsdGA0LDQt9GD0LXRgiDQt9C90LDRh9C10L3QuNC1INCyINGH0LjRgdC70L5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0b051bSh2YWw6IGFueSwgdGhyb3dFcnJvciA9IHRydWUsIGRlZlZhbHVlID0gMCk6IG51bWJlciB7XHJcbiAgY29uc3QgcmVzdWx0ID0gTnVtYmVyKHZhbClcclxuXHJcbiAgaWYgKGlzTmFOKHJlc3VsdCkpIHtcclxuICAgIGNvbnN0IGVycm9yID0gbmV3IFRvTnVtRXJyb3IodmFsKVxyXG5cclxuICAgIGlmICh0aHJvd0Vycm9yKSB0aHJvdyBlcnJvclxyXG5cclxuICAgIC8vINCV0YHQu9C4INC+0YjQuNCx0LrQsCDQvdC1INC/0YDQvtCx0YDQsNGB0YvQstCw0LXRgtGB0Y8g4oCUINC/0YDQvtGB0YLQviDQu9C+0LPQuNGA0YPQtdC8XHJcbiAgICBjb25zb2xlLmVycm9yKGVycm9yLnRvU3RyaW5nKCkpXHJcbiAgICByZXR1cm4gZGVmVmFsdWVcclxuICB9XHJcblxyXG4gIHJldHVybiByZXN1bHRcclxufVxyXG5cclxuLyoqXHJcbiAqINCa0LDRgdGC0L7QvNC90YvQuSDRgtC40L8g0L7RiNC40LHQutC4INC00LvRjyDRh9C40YHQu9C+0LLRi9GFINC/0YDQtdC+0LHRgNCw0LfQvtCy0LDQvdC40LlcclxuICovXHJcbmV4cG9ydCBjbGFzcyBUb051bUVycm9yIGV4dGVuZHMgRXJyb3Ige1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB2YWx1ZTogYW55KSB7XHJcbiAgICBjb25zdCB2YWx1ZVR5cGUgPSB0eXBlb2YgdmFsdWVcclxuICAgIGNvbnN0IGZvcm1hdHRlZFZhbHVlID1cclxuICAgICAgdmFsdWVUeXBlID09PSAnb2JqZWN0JyA/IEpTT04uc3RyaW5naWZ5KHZhbHVlKSA6IFN0cmluZyh2YWx1ZSlcclxuICAgIGNvbnN0IG1lc3NhZ2UgPSBgSW52YWxpZCB2YWx1ZSBwYXNzZWQgdG8gdG9OdW0oKTogJHtmb3JtYXR0ZWRWYWx1ZX0gKHR5cGU6ICR7dmFsdWVUeXBlfSlgXHJcbiAgICBzdXBlcihtZXNzYWdlKVxyXG4gICAgdGhpcy5uYW1lID0gJ1RvTnVtRXJyb3InXHJcblxyXG4gICAgLy8g0YHQvtGF0YDQsNC90Y/QtdC8INGB0YLQtdC6INCy0YvQt9C+0LLQsCAo0L7RgtGE0LjQu9GM0YLRgNC+0LLQsNCyINGB0LDQvCDQutC+0L3RgdGC0YDRg9C60YLQvtGAKVxyXG4gICAgaWYgKHRoaXMuc3RhY2spIHtcclxuICAgICAgY29uc3Qgc3RhY2tMaW5lcyA9IHRoaXMuc3RhY2suc3BsaXQoJ1xcbicpXHJcbiAgICAgIC8vINCj0LTQsNC70Y/QtdC8INGB0YLRgNC+0LrRgyDQutC+0L3RgdGC0YDRg9C60YLQvtGA0LAgKNGH0YLQvtCx0Ysg0YHRgtC10Log0L3QsNGH0LjQvdCw0LvRgdGPINGBINC80LXRgdGC0LAg0LLRi9C30L7QstCwIHRvTnVtKVxyXG4gICAgICB0aGlzLnN0YWNrID0gW3N0YWNrTGluZXNbMF0sIC4uLnN0YWNrTGluZXMuc2xpY2UoMildLmpvaW4oJ1xcbicpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvdmVycmlkZSB0b1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIFtcclxuICAgICAgYOKdjCBbJHt0aGlzLm5hbWV9XSAke3RoaXMubWVzc2FnZX1gLFxyXG4gICAgICB0aGlzLnN0YWNrID8gYCAgIFN0YWNrIHRyYWNlOlxcbiR7dGhpcy5zdGFja31gIDogJycsXHJcbiAgICBdLmpvaW4oJ1xcbicpXHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICog0J/RgNC10L7QsdGA0LDQt9GD0LXRgiDQt9C90LDRh9C10L3QuNC1INCyINC00LDRgtGDXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdG9EYXRlKHZhbDogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSwgZm9ybWF0Pzogc3RyaW5nLCBvcHQ/OiBEYXRlVGltZU9wdGlvbnMsIHRocm93RXJyb3IgPSB0cnVlKTogRGF0ZSB7XHJcbiAgaWYgKHZhbCBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgIHJldHVybiB2YWxcclxuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XHJcbiAgICBpZiAoZm9ybWF0KSB7XHJcbiAgICAgIGlmIChvcHQpIHtcclxuICAgICAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUZvcm1hdCh2YWwsIGZvcm1hdCwgb3B0KS50b0pTRGF0ZSgpXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIERhdGVUaW1lLmZyb21Gb3JtYXQodmFsLCBmb3JtYXQpLnRvSlNEYXRlKClcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXcgRGF0ZSh2YWwpXHJcbiAgICB9XHJcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHZhbClcclxuICB9XHJcblxyXG4gIGlmICh0aHJvd0Vycm9yKSB7XHJcbiAgICBjb25zb2xlLmVycm9yKCdXcm9uZyBkYXRlIGZvcm1hdCcsIHZhbCwgZm9ybWF0KVxyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdXcm9uZyBkYXRlIGZvcm1hdCcpXHJcbiAgfVxyXG5cclxuICByZXR1cm4gbmV3IERhdGUoKVxyXG59XHJcblxyXG4vKipcclxuICog0J/RgNC10L7QsdGA0LDQt9GD0LXRgiDQtNCw0YLRgyDQsiDRgdGC0YDQvtC60YMg0YEg0YPRh9C10YLQvtC8INCy0YDQtdC80LXQvdC90L7QuSDQt9C+0L3Ri1xyXG4gKlxyXG4gKiBAcGFyYW0gZGF0ZVxyXG4gKiBAcGFyYW0gdGhyb3dFcnJvclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRvSVNPU3RyaW5nV2l0aFRpbWV6b25lKGRhdGU6IERhdGUsIHRocm93RXJyb3IgPSB0cnVlKTogc3RyaW5nIHtcclxuICBpZiAoIShkYXRlIGluc3RhbmNlb2YgRGF0ZSkpIHtcclxuICAgIGlmICh0aHJvd0Vycm9yKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWU6IG5vdCBhIHZhbGlkIERhdGUgb2JqZWN0JylcclxuICAgIHJldHVybiAnJ1xyXG4gIH1cclxuXHJcbiAgY29uc3QgdHpPZmZzZXQgPSAtZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpXHJcbiAgY29uc3QgZGlmZiA9IHR6T2Zmc2V0ID49IDAgPyAnKycgOiAnLSdcclxuICBjb25zdCBwYWQgPSAobjogbnVtYmVyKSA9PiBgJHtNYXRoLmZsb29yKE1hdGguYWJzKG4pKX1gLnBhZFN0YXJ0KDIsICcwJylcclxuICByZXR1cm4gZGF0ZS5nZXRGdWxsWWVhcigpICtcclxuICAgICctJyArIHBhZChkYXRlLmdldE1vbnRoKCkgKyAxKSArXHJcbiAgICAnLScgKyBwYWQoZGF0ZS5nZXREYXRlKCkpICtcclxuICAgICdUJyArIHBhZChkYXRlLmdldEhvdXJzKCkpICtcclxuICAgICc6JyArIHBhZChkYXRlLmdldE1pbnV0ZXMoKSkgK1xyXG4gICAgJzonICsgcGFkKGRhdGUuZ2V0U2Vjb25kcygpKSArXHJcbiAgICBkaWZmICsgcGFkKHR6T2Zmc2V0IC8gNjApICtcclxuICAgICc6JyArIHBhZCh0ek9mZnNldCAlIDYwKVxyXG59XHJcblxyXG4vKipcclxuICog0J/RgNC10L7QsdGA0LDQt9GD0LXRgiDQt9C90LDRh9C10L3QuNC1INCyINCx0YPQu9C10LLQviDQt9C90LDRh9C10L3QuNC1XHJcbiAqXHJcbiAqIEBwYXJhbSB2YWxcclxuICogQHBhcmFtIHRocm93RXJyb3JcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0b0Jvb2wodmFsOiBhbnksIHRocm93RXJyb3IgPSB0cnVlKTogYm9vbGVhbiB7XHJcbiAgc3dpdGNoICh0eXBlb2YgdmFsKSB7XHJcbiAgICBjYXNlICdzdHJpbmcnOlxyXG4gICAgICB2YWwgPSB2YWwudG9Mb3dlckNhc2UoKVxyXG4gICAgICBpZiAodmFsID09PSAnbicgfHwgdmFsID09PSAneScpIHsgLy8g0LHQuNGC0YDQuNC60YHQvtCy0YvQtSDQv9C+0L3Rj9GC0LjRjyDQviBib29sXHJcbiAgICAgICAgcmV0dXJuIHZhbCA9PT0gJ3knXHJcbiAgICAgIH0gZWxzZSBpZiAodmFsID09PSAndHJ1ZScgfHwgdmFsID09PSAnZmFsc2UnKSB7IC8vINCx0LjRgtGA0LjQutGB0L7QstGL0LUg0L/QvtC90Y/RgtC40Y8g0L4gYm9vbFxyXG4gICAgICAgIHJldHVybiB2YWwgPT09ICd0cnVlJ1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aHJvd0Vycm9yKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmFsdWU6IGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gYm9vbGVhbicpXHJcbiAgICAgICAgcmV0dXJuIGZhbHNlXHJcbiAgICAgIH1cclxuICAgIGRlZmF1bHQ6XHJcbiAgICAgIHJldHVybiBCb29sZWFuKHZhbClcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiDQn9GA0LXQvtCx0YDQsNC30YPQtdGCINCx0YPQu9C10LLQviDQt9C90LDRh9C10L3QuNC1INCyICdZJyDQuNC70LggJ04nXHJcbiAqXHJcbiAqIEBwYXJhbSB2YWxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0b0JYWW9yTih2YWw6IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gIHJldHVybiB2YWwgPyAnWScgOiAnTidcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEJhc2VVcmxIdHRwcyh1cmw6IHN0cmluZywgY29tcG9uZW50ID0gZmFsc2UpOiBzdHJpbmcge1xyXG4gIGlmIChjb21wb25lbnQpIHtcclxuICAgIHJldHVybiBlbmNvZGVVUkkoY3JvcFVybCh1cmwpICsgJy8nKVxyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gZW5jb2RlVVJJKCdodHRwczovLycgKyBjcm9wVXJsKHVybCkgKyAnLycpXHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICog0J7QsdGA0LXQt9Cw0LXRgiBVUkwgKNGD0LTQsNC70Y/QtdGCINC/0YDQvtGC0L7QutC+0LspXHJcbiAqXHJcbiAqIEBwYXJhbSB1cmxcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBjcm9wVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICB1cmwgPSB1cmwgPyB1cmwucmVwbGFjZSgnaHR0cHM6Ly8nLCAnJykgOiAnJ1xyXG4gIHVybCA9IHVybCA/IHVybC5yZXBsYWNlKCdodHRwOi8vJywgJycpIDogJydcclxuICB1cmwgPSB1cmwgPyB1cmwucmVwbGFjZSgnaHR0cHM6JywgJycpIDogJydcclxuICB1cmwgPSB1cmwgPyB1cmwucmVwbGFjZSgnaHR0cDonLCAnJykgOiAnJ1xyXG4gIHJldHVybiB1cmxcclxufVxyXG5cclxuLyoqXHJcbiAqINCf0YDQtdC+0LHRgNCw0LfRg9C10YIg0YTQsNC50Lsg0LIgYmFzZTY0XHJcbiAqXHJcbiAqIEBwYXJhbSBmaWxlXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFzZTY0RmlsZShmaWxlOiBGaWxlKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKVxyXG4gICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSlcclxuICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nKVxyXG4gICAgcmVhZGVyLm9uZXJyb3IgPSBlcnJvciA9PiByZWplY3QoZXJyb3IpXHJcbiAgfSlcclxufVxyXG5cclxuLyoqXHJcbiAqINCf0L7Qu9GD0YfQuNGC0Ywg0YTQsNC50Lsg0LIg0YTQvtGA0LzQsNGC0LUgYmFzZTY0INGBINGA0LDQt9Cx0LjQstC60L7QuSDQvdCwINC30LDQs9C+0LvQvtCy0L7QuiDQuCDQtNCw0L3QvdGL0LVcclxuICpcclxuICogQHBhcmFtIGZpbGVcclxuICovXHJcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCYXNlNjRGaWxlTGlrZVN0cihmaWxlOiBGaWxlKTogUHJvbWlzZTx7XHJcbiAgaGVhZGVyOiBzdHJpbmcsXHJcbiAgdmFsOiBzdHJpbmdcclxufSB8IHVuZGVmaW5lZD4ge1xyXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGdldEJhc2U2NEZpbGUoZmlsZSlcclxuICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycpIHtcclxuICAgIGNvbnN0IHNwbGl0ID0gcmVzdWx0LnNwbGl0KCcsJylcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGhlYWRlcjogc3BsaXRbMF0sXHJcbiAgICAgIHZhbDogc3BsaXRbMV1cclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHVuZGVmaW5lZFxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZUJhc2VBZGRyZXNzKHVybDogc3RyaW5nLCBhZGQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnKSB7XHJcbiAgLy8gaWYgKHVybC5zZWFyY2goJ2h0dHBzOi8vJykgIT09IDAgJiYgdXJsLnNlYXJjaCgnaHR0cDovLycpKSB7XHJcbiAgLy8gICB1cmwgPSAnaHR0cHM6Ly8nICsgdXJsXHJcbiAgLy8gfVxyXG5cclxuICBpZiAoYWRkICYmIGFkZC5sZW5ndGggPiAwKSB7XHJcbiAgICBpZiAodXJsLmxhc3RJbmRleE9mKCcvJykgIT09ICh1cmwubGVuZ3RoIC0gMSkpIHtcclxuICAgICAgdXJsID0gdXJsICsgJy8nXHJcbiAgICB9XHJcblxyXG4gICAgdXJsID0gdXJsICsgYWRkXHJcbiAgfVxyXG5cclxuICBpZiAodXJsLmxhc3RJbmRleE9mKCcvJykgIT09ICh1cmwubGVuZ3RoIC0gMSkpIHtcclxuICAgIHVybCA9IHVybCArICcvJ1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHVybFxyXG59Il19
362
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3NlcnZpY2VzL2Jhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFDLEdBQVEsRUFBRSxVQUFVLEdBQUcsS0FBSztJQUNoRCxJQUFJLEdBQUcsS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3RDLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGtCQUFrQixHQUFHLGdDQUFnQyxDQUFDLENBQUE7UUFDeEUsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3BCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQUMsR0FBUSxFQUFFLFVBQVUsR0FBRyxJQUFJLEVBQUUsUUFBUSxHQUFHLENBQUM7SUFDN0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRTFCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFakMsSUFBSSxVQUFVO1lBQUUsTUFBTSxLQUFLLENBQUE7UUFFM0Isa0RBQWtEO1FBQ2xELE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDL0IsT0FBTyxRQUFRLENBQUE7SUFDakIsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFVBQVcsU0FBUSxLQUFLO0lBQ25DLFlBQTRCLEtBQVU7UUFDcEMsTUFBTSxTQUFTLEdBQUcsT0FBTyxLQUFLLENBQUE7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QUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO0lBRWhELE1BQU0sTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDbkQsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFBO0lBQ3ZCLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDeEcsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDNUMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDMUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDN0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFB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QUM5QyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQTtRQUNqQixDQUFDO1FBRUQsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUE7SUFDakIsQ0FBQztJQUVELElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5QyxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsQ0FBQTtJQUNqQixDQUFDO0lBRUQsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqINCf0YDQtdC+0LHRgNCw0LfRg9C10YIg0LfQvdCw0YfQtdC90LjQtSDQsiDRgdGC0YDQvtC60YNcclxuICpcclxuICogQHBhcmFtIHZhbFxyXG4gKiBAcGFyYW0gdGhyb3dFcnJvclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRvU3RyKHZhbDogYW55LCB0aHJvd0Vycm9yID0gZmFsc2UpOiBzdHJpbmcge1xyXG4gIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQpIHtcclxuICAgIGlmICh0aHJvd0Vycm9yKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB2YWx1ZTogJHt2YWx9IGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gc3RyaW5nYClcclxuICAgIH1cclxuICAgIHJldHVybiAnJ1xyXG4gIH1cclxuICByZXR1cm4gU3RyaW5nKHZhbClcclxufVxyXG5cclxuLyoqXHJcbiAqINCf0YDQtdC+0LHRgNCw0LfRg9C10YIg0LfQvdCw0YfQtdC90LjQtSDQsiDRh9C40YHQu9C+XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdG9OdW0odmFsOiBhbnksIHRocm93RXJyb3IgPSB0cnVlLCBkZWZWYWx1ZSA9IDApOiBudW1iZXIge1xyXG4gIGNvbnN0IHJlc3VsdCA9IE51bWJlcih2YWwpXHJcblxyXG4gIGlmIChpc05hTihyZXN1bHQpKSB7XHJcbiAgICBjb25zdCBlcnJvciA9IG5ldyBUb051bUVycm9yKHZhbClcclxuXHJcbiAgICBpZiAodGhyb3dFcnJvcikgdGhyb3cgZXJyb3JcclxuXHJcbiAgICAvLyDQldGB0LvQuCDQvtGI0LjQsdC60LAg0L3QtSDQv9GA0L7QsdGA0LDRgdGL0LLQsNC10YLRgdGPIOKAlCDQv9GA0L7RgdGC0L4g0LvQvtCz0LjRgNGD0LXQvFxyXG4gICAgY29uc29sZS5lcnJvcihlcnJvci50b1N0cmluZygpKVxyXG4gICAgcmV0dXJuIGRlZlZhbHVlXHJcbiAgfVxyXG5cclxuICByZXR1cm4gcmVzdWx0XHJcbn1cclxuXHJcbi8qKlxyXG4gKiDQmtCw0YHRgtC+0LzQvdGL0Lkg0YLQuNC/INC+0YjQuNCx0LrQuCDQtNC70Y8g0YfQuNGB0LvQvtCy0YvRhSDQv9GA0LXQvtCx0YDQsNC30L7QstCw0L3QuNC5XHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVG9OdW1FcnJvciBleHRlbmRzIEVycm9yIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdmFsdWU6IGFueSkge1xyXG4gICAgY29uc3QgdmFsdWVUeXBlID0gdHlwZW9mIHZhbHVlXHJcbiAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9XHJcbiAgICAgIHZhbHVlVHlwZSA9PT0gJ29iamVjdCcgPyBKU09OLnN0cmluZ2lmeSh2YWx1ZSkgOiBTdHJpbmcodmFsdWUpXHJcbiAgICBjb25zdCBtZXNzYWdlID0gYEludmFsaWQgdmFsdWUgcGFzc2VkIHRvIHRvTnVtKCk6ICR7Zm9ybWF0dGVkVmFsdWV9ICh0eXBlOiAke3ZhbHVlVHlwZX0pYFxyXG4gICAgc3VwZXIobWVzc2FnZSlcclxuICAgIHRoaXMubmFtZSA9ICdUb051bUVycm9yJ1xyXG5cclxuICAgIC8vINGB0L7RhdGA0LDQvdGP0LXQvCDRgdGC0LXQuiDQstGL0LfQvtCy0LAgKNC+0YLRhNC40LvRjNGC0YDQvtCy0LDQsiDRgdCw0Lwg0LrQvtC90YHRgtGA0YPQutGC0L7RgClcclxuICAgIGlmICh0aGlzLnN0YWNrKSB7XHJcbiAgICAgIGNvbnN0IHN0YWNrTGluZXMgPSB0aGlzLnN0YWNrLnNwbGl0KCdcXG4nKVxyXG4gICAgICAvLyDQo9C00LDQu9GP0LXQvCDRgdGC0YDQvtC60YMg0LrQvtC90YHRgtGA0YPQutGC0L7RgNCwICjRh9GC0L7QsdGLINGB0YLQtdC6INC90LDRh9C40L3QsNC70YHRjyDRgSDQvNC10YHRgtCwINCy0YvQt9C+0LLQsCB0b051bSlcclxuICAgICAgdGhpcy5zdGFjayA9IFtzdGFja0xpbmVzWzBdLCAuLi5zdGFja0xpbmVzLnNsaWNlKDIpXS5qb2luKCdcXG4nKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGUgdG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBbXHJcbiAgICAgIGDinYwgWyR7dGhpcy5uYW1lfV0gJHt0aGlzLm1lc3NhZ2V9YCxcclxuICAgICAgdGhpcy5zdGFjayA/IGAgICBTdGFjayB0cmFjZTpcXG4ke3RoaXMuc3RhY2t9YCA6ICcnLFxyXG4gICAgXS5qb2luKCdcXG4nKVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqINCe0L/RhtC40Lgg0LTQu9GPIHRvRGF0ZSgpLiDQntGB0YLQsNCy0LvQtdC90Ysg0LTQu9GPINC+0LHRgNCw0YLQvdC+0Lkg0YHQvtCy0LzQtdGB0YLQuNC80L7RgdGC0Lgg0YHQuNCz0L3QsNGC0YPRgNGLIOKAlCDRgNCw0L3QtdC1INC/0YDQvtCx0YDQsNGB0YvQstCw0LvQuNGB0YxcclxuICog0LIgbHV4b24gKNC30L7QvdCwL9C70L7QutCw0LvRjCkuINCg0LDQt9Cx0L7RgCDQtNCw0YLRiyDRgtC10L/QtdGA0Ywg0L3QtSDQt9Cw0LLQuNGB0LjRgiDQvtGCINCy0L3QtdGI0L3QuNGFINCx0LjQsdC70LjQvtGC0LXQuiDQuCDQv9C+0LTQtNC10YDQttC40LLQsNC10YJcclxuICog0YLQvtC70YzQutC+INGE0LjQutGB0LjRgNC+0LLQsNC90L3Ri9C1INGH0LjRgdC70L7QstGL0LUg0YLQvtC60LXQvdGLICjRgdC8LiBwYXJzZURhdGVXaXRoRm9ybWF0KSwg0L/QvtGN0YLQvtC80YMg0L7Qv9GG0LjQuCDRgdC10LnRh9Cw0YEg0L3QtSDQuNGB0L/QvtC70YzQt9GD0Y7RgtGB0Y8uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFRvRGF0ZU9wdGlvbnMge1xyXG4gIHpvbmU/OiBzdHJpbmdcclxuICBsb2NhbGU/OiBzdHJpbmdcclxufVxyXG5cclxuLyoqINCh0L7QvtGC0LLQtdGC0YHRgtCy0LjQtSDRgtC+0LrQtdC90L7QsiDRhNC+0YDQvNCw0YLQsCDRgNC10LPRg9C70Y/RgNC90YvQvCDQs9GA0YPQv9C/0LDQvCDQt9Cw0YXQstCw0YLQsC4g0J/QvtGA0Y/QtNC+0Log0LLQsNC20LXQvTog0LTQu9C40L3QvdGL0LUg0YLQvtC60LXQvdGLINC/0YDQvtCy0LXRgNGP0Y7RgtGB0Y8g0YDQsNC90YzRiNC1INC60L7RgNC+0YLQutC40YUgKi9cclxuY29uc3QgREFURV9GT1JNQVRfVE9LRU5TOiBbc3RyaW5nLCBzdHJpbmddW10gPSBbXHJcbiAgWyd5eXl5JywgJyg/PHl5eXk+XFxcXGR7NH0pJ10sXHJcbiAgWyd5eScsICcoPzx5eT5cXFxcZHsyfSknXSxcclxuICBbJ01NJywgJyg/PE1NPlxcXFxkezJ9KSddLFxyXG4gIFsnTScsICcoPzxNPlxcXFxkezEsMn0pJ10sXHJcbiAgWydkZCcsICcoPzxkZD5cXFxcZHsyfSknXSxcclxuICBbJ2QnLCAnKD88ZD5cXFxcZHsxLDJ9KSddLFxyXG4gIFsnSEgnLCAnKD88SEg+XFxcXGR7Mn0pJ10sXHJcbiAgWydIJywgJyg/PEg+XFxcXGR7MSwyfSknXSxcclxuICBbJ21tJywgJyg/PG1tPlxcXFxkezJ9KSddLFxyXG4gIFsnbScsICcoPzxtPlxcXFxkezEsMn0pJ10sXHJcbiAgWydzcycsICcoPzxzcz5cXFxcZHsyfSknXSxcclxuICBbJ3MnLCAnKD88cz5cXFxcZHsxLDJ9KSddLFxyXG5dXHJcblxyXG5jb25zdCBEQVRFX0ZPUk1BVF9UT0tFTl9SRUdFWCA9IG5ldyBSZWdFeHAoREFURV9GT1JNQVRfVE9LRU5TLm1hcCgoW3Rva2VuXSkgPT4gdG9rZW4pLmpvaW4oJ3wnKSwgJ2cnKVxyXG5cclxuY29uc3QgVElNRV9PTkxZX1RPS0VOUyA9IG5ldyBTZXQoWydISCcsICdIJywgJ21tJywgJ20nLCAnc3MnLCAncyddKVxyXG5cclxuLyoqXHJcbiAqINCS0YvQstC+0LTQuNGCINGE0L7RgNC80LDRgiBcItGC0L7Qu9GM0LrQviDQtNCw0YLQsFwiINC40Lcg0YTQvtGA0LzQsNGC0LAg0LTQsNGC0Yst0Lgt0LLRgNC10LzQtdC90Lgg4oCUINC+0YLRgNC10LfQsNC10YIg0LLRgNC10LzRjyDQuCDRgNCw0LfQtNC10LvQuNGC0LXQu9GMINC/0LXRgNC10LRcclxuICog0L3QuNC8ICjQvdCw0L/RgNC40LzQtdGALCBgJ2RkLk1NLnl5eXkgSEg6bW06c3MnYCDihpIgYCdkZC5NTS55eXl5J2ApLiDQn9C+0YDRj9C00L7QuiDQtNC10L3RjC/QvNC10YHRj9GGL9Cz0L7QtCDRgyDQv9C+0LvQtdC5XHJcbiAqIFwi0LTQsNGC0LBcIiDQuCBcItC00LDRgtCwLdCy0YDQtdC80Y9cIiDQvdCwINC+0LTQvdC+0Lwg0L/QvtGA0YLQsNC70LUgQml0cml4MjQg0LLRgdC10LPQtNCwINGB0L7Qs9C70LDRgdC+0LLQsNC9IOKAlCDRgNCw0LfQu9C40YfQsNC10YLRgdGPINGC0L7Qu9GM0LrQvlxyXG4gKiDQvdCw0LvQuNGH0LjQtSBgSEg6bW06c3NgLCDQv9C+0Y3RgtC+0LzRgyDQvdC10YIg0YHQvNGL0YHQu9CwINC30LDRgdGC0LDQstC70Y/RgtGMINCy0YvQt9GL0LLQsNGO0YnQtdCz0L4g0L/QtdGA0LXQtNCw0LLQsNGC0Ywg0L7QsdCwINGE0L7RgNC80LDRgtCwINC4XHJcbiAqINC00LXRgNC20LDRgtGMINC40YUg0LIg0YHQuNC90YXRgNC+0L3QtSDQstGA0YPRh9C90YPRji5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBkZXJpdmVEYXRlT25seUZvcm1hdChkYXRlVGltZUZvcm1hdDogc3RyaW5nKTogc3RyaW5nIHtcclxuICBEQVRFX0ZPUk1BVF9UT0tFTl9SRUdFWC5sYXN0SW5kZXggPSAwXHJcbiAgbGV0IG1hdGNoOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsXHJcblxyXG4gIHdoaWxlICgobWF0Y2ggPSBEQVRFX0ZPUk1BVF9UT0tFTl9SRUdFWC5leGVjKGRhdGVUaW1lRm9ybWF0KSkgIT09IG51bGwpIHtcclxuICAgIGlmIChUSU1FX09OTFlfVE9LRU5TLmhhcyhtYXRjaFswXSkpIHtcclxuICAgICAgLy8g0J7RgtGA0LXQt9Cw0LXQvCDQu9GO0LHQvtC5INGA0LDQt9C00LXQu9C40YLQtdC70Ywg0L/QtdGA0LXQtCDQstGA0LXQvNC10L3QtdC8LCDQstC60LvRjtGH0LDRjyDQsdGD0LrQstC10L3QvdGL0LkgKNC90LDQv9GA0LjQvNC10YAgJ1QnINCyIElTTy3RgdGC0LjQu9C1XHJcbiAgICAgIC8vICdkZC5NTS55eXl5VEhIOm1tOnNzJyksINCwINC90LUg0YLQvtC70YzQutC+INC/0YPQvdC60YLRg9Cw0YbQuNGOIOKAlCDQvtGB0YLQsNC90LDQstC70LjQstCw0LXQvNGB0Y8g0L3QsCDQv9C+0YHQu9C10LTQvdC10Lwg0YHQuNC80LLQvtC70LUsXHJcbiAgICAgIC8vINC60L7RgtC+0YDRi9C5INGA0LXQsNC70YzQvdC+INC+0YLQvdC+0YHQuNGC0YHRjyDQuiDRgtC+0LrQtdC90LDQvCDQtNCw0YLRiyAoeS9NL2QpLlxyXG4gICAgICBjb25zdCBkYXRlUGFydCA9IGRhdGVUaW1lRm9ybWF0LnNsaWNlKDAsIG1hdGNoLmluZGV4KS5yZXBsYWNlKC9bXnlNZF0rJC8sICcnKVxyXG4gICAgICByZXR1cm4gZGF0ZVBhcnQgfHwgZGF0ZVRpbWVGb3JtYXRcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJldHVybiBkYXRlVGltZUZvcm1hdFxyXG59XHJcblxyXG5mdW5jdGlvbiBlc2NhcGVSZWdFeHAoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIHJldHVybiBzdHIucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKVxyXG59XHJcblxyXG4vKipcclxuICog0KTQvtGA0LzQsNGC0Ysg0LTQsNGCLCDQutC+0YLQvtGA0YvQtSBCaXRyaXgyNCDRgNC10LDQu9GM0L3QviDQv9GA0LjRgdGL0LvQsNC10YIg0LIg0YDQsNC30L3Ri9GFINC80LXRgtC+0LTQsNGFIFJFU1Qg0Lgg0L3QsCDRgNCw0LfQvdGL0YVcclxuICog0L/QvtGA0YLQsNC70LDRhSDigJQg0YTQvtGA0LzQsNGCINC00LDRgtGLL9Cy0YDQtdC80LXQvdC4INCyINC+0YLQstC10YLQtSDQt9Cw0LLQuNGB0LjRgiDQvtGCINC90LDRgdGC0YDQvtC10Log0L/QvtGA0YLQsNC70LAgKNCd0LDRgdGC0YDQvtC50LrQuCDihpIg0YTQvtGA0LzQsNGCXHJcbiAqINC00LDRgtGLINC4INCy0YDQtdC80LXQvdC4KSwg0L/QvtGN0YLQvtC80YMg0L7QtNC40L0g0LfQsNGF0LDRgNC00LrQvtC20LXQvdC90YvQuSDRiNCw0LHQu9C+0L0g0L3QtSDRg9C90LjQstC10YDRgdCw0LvQtdC9LiDQldGB0LvQuCDRj9Cy0L3Ri9C5IGBmb3JtYXRgLFxyXG4gKiDQv9C10YDQtdC00LDQvdC90YvQuSDQsiB0b0RhdGUoKSwg0L3QtSDRgdC+0LLQv9Cw0Lsg0YHQviDQt9C90LDRh9C10L3QuNC10LwsINC/0LXRgNC10LQg0YLQtdC8INC60LDQuiDRgdGH0LjRgtCw0YLRjCDRgdGC0YDQvtC60YMg0L3QtdCy0LDQu9C40LTQvdC+0LksXHJcbiAqINC/0YDQvtCx0YPQtdC8INGN0YLQuCDQstCw0YDQuNCw0L3RgtGLINC/0L4g0L7Rh9C10YDQtdC00Lgg4oCUINC+0L3QuCDQvdC1INC/0LXRgNC10YHQtdC60LDRjtGC0YHRjyDQv9C+INGA0LDQt9C00LXQu9C40YLQtdC70Y/QvC/Qv9C+0YDRj9C00LrRgyDRgtC+0LrQtdC90L7QsixcclxuICog0YLQsNC6INGH0YLQviDQu9C+0LbQvdGL0YUg0YHQvtCy0L/QsNC00LXQvdC40Lkg0L3QtSDQsdGD0LTQtdGCLlxyXG4gKi9cclxuY29uc3QgRkFMTEJBQ0tfREFURV9GT1JNQVRTID0gW1xyXG4gICdkZC5NTS55eXl5IEhIOm1tOnNzJyxcclxuICAneXl5eS1NTS1kZCBISDptbTpzcycsXHJcbiAgJ2RkLk1NLnl5eXknLFxyXG4gICd5eXl5LU1NLWRkJyxcclxuXVxyXG5cclxuLyoqXHJcbiAqINCg0LDQt9Cx0LjRgNCw0LXRgiDRgdGC0YDQvtC60YMg0LTQsNGC0Ysg0L/QviDQv9GA0L7RgdGC0L7QvNGDINGI0LDQsdC70L7QvdGDICh5eXl5LCBNTSwgZGQsIEhILCBtbSwgc3Mg0Lgg0LjRhSDQvtC00L3QvtCx0YPQutCy0LXQvdC90YvQtVxyXG4gKiDQstCw0YDQuNCw0L3RgtGLLCDQvdCw0L/RgNC40LzQtdGAICdkZC5NTS55eXl5IEhIOm1tOnNzJykuINCg0LDQt9C00LXQu9C40YLQtdC70Lgg0LzQtdC20LTRgyDRgtC+0LrQtdC90LDQvNC4INCx0LXRgNGD0YLRgdGPINC40Lcg0YjQsNCx0LvQvtC90LBcclxuICog0LrQsNC6INC10YHRgtGMLiDQndC1INC/0L7QtNC00LXRgNC20LjQstCw0LXRgiDQu9C+0LrQsNC70LgsINC90LDQt9Cy0LDQvdC40Y8g0LzQtdGB0Y/RhtC10LIg0Lgg0YfQsNGB0L7QstGL0LUg0L/QvtGP0YHQsCDigJQg0LTQu9GPIFJFU1Qt0L7RgtCy0LXRgtC+0LJcclxuICogQml0cml4MjQg0L7QvdC4INC90LUg0YLRgNC10LHRg9GO0YLRgdGPLCDQt9C90LDRh9C10L3QuNGPINCy0YHQtdCz0LTQsCDQv9GA0LjRhdC+0LTRj9GCINCyINGE0LjQutGB0LjRgNC+0LLQsNC90L3QvtC8INGH0LjRgdC70L7QstC+0Lwg0LLQuNC00LUuXHJcbiAqL1xyXG5mdW5jdGlvbiBwYXJzZURhdGVXaXRoRm9ybWF0KHZhbDogc3RyaW5nLCBmb3JtYXQ6IHN0cmluZyk6IERhdGUgfCBudWxsIHtcclxuICBjb25zdCB0b2tlbk1hcCA9IG5ldyBNYXAoREFURV9GT1JNQVRfVE9LRU5TKVxyXG4gIGxldCBwYXR0ZXJuID0gJydcclxuICBsZXQgbGFzdEluZGV4ID0gMFxyXG4gIGxldCBtYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbFxyXG5cclxuICBEQVRFX0ZPUk1BVF9UT0tFTl9SRUdFWC5sYXN0SW5kZXggPSAwXHJcbiAgd2hpbGUgKChtYXRjaCA9IERBVEVfRk9STUFUX1RPS0VOX1JFR0VYLmV4ZWMoZm9ybWF0KSkgIT09IG51bGwpIHtcclxuICAgIHBhdHRlcm4gKz0gZXNjYXBlUmVnRXhwKGZvcm1hdC5zbGljZShsYXN0SW5kZXgsIG1hdGNoLmluZGV4KSlcclxuICAgIHBhdHRlcm4gKz0gdG9rZW5NYXAuZ2V0KG1hdGNoWzBdKVxyXG4gICAgbGFzdEluZGV4ID0gbWF0Y2guaW5kZXggKyBtYXRjaFswXS5sZW5ndGhcclxuICB9XHJcbiAgcGF0dGVybiArPSBlc2NhcGVSZWdFeHAoZm9ybWF0LnNsaWNlKGxhc3RJbmRleCkpXHJcblxyXG4gIGNvbnN0IHJlc3VsdCA9IG5ldyBSZWdFeHAoYF4ke3BhdHRlcm59JGApLmV4ZWModmFsKVxyXG4gIGlmICghcmVzdWx0Py5ncm91cHMpIHtcclxuICAgIHJldHVybiBudWxsXHJcbiAgfVxyXG5cclxuICBjb25zdCBnID0gcmVzdWx0Lmdyb3Vwc1xyXG4gIGNvbnN0IHllYXIgPSBnWyd5eXl5J10gPyBOdW1iZXIoZ1sneXl5eSddKSA6IGdbJ3l5J10gPyAyMDAwICsgTnVtYmVyKGdbJ3l5J10pIDogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpXHJcbiAgY29uc3QgbW9udGggPSBOdW1iZXIoZ1snTU0nXSA/PyBnWydNJ10gPz8gMSlcclxuICBjb25zdCBkYXkgPSBOdW1iZXIoZ1snZGQnXSA/PyBnWydkJ10gPz8gMSlcclxuICBjb25zdCBob3VyID0gTnVtYmVyKGdbJ0hIJ10gPz8gZ1snSCddID8/IDApXHJcbiAgY29uc3QgbWludXRlID0gTnVtYmVyKGdbJ21tJ10gPz8gZ1snbSddID8/IDApXHJcbiAgY29uc3Qgc2Vjb25kID0gTnVtYmVyKGdbJ3NzJ10gPz8gZ1sncyddID8/IDApXHJcblxyXG4gIC8vINCi0L7QutC10L3RiyDigJQg0Y3RgtC+INC/0YDQvtGB0YLQviBcIk4g0YbQuNGE0YBcIiwg0LHQtdC3INC/0YDQvtCy0LXRgNC60Lgg0LTQuNCw0L/QsNC30L7QvdCwIChyZWdleCDQvdC1INC+0YLQu9C40YfQuNGCIFwiMTNcIiDQvNC10YHRj9GG0LAg0L7RglxyXG4gIC8vIFwiMTNcIiDQtNC90Y8pLiDQkdC10Lcg0Y3RgtC+0Lkg0L/RgNC+0LLQtdGA0LrQuCBuZXcgRGF0ZSgpINC80L7Qu9GH0LAgXCLQv9C10YDQtdC60LDRgtGL0LLQsNC10YJcIiDQv9C10YDQtdC/0L7Qu9C90LXQvdC40LUg0L3QsCDRgdC+0YHQtdC00L3QuNC5XHJcbiAgLy8g0LzQtdGB0Y/Rhi/Qs9C+0LQgKNC90LDQv9GA0LjQvNC10YAsINC80LXRgdGP0YY9MTMg4oaSINGP0L3QstCw0YDRjCDRgdC70LXQtNGD0Y7RidC10LPQviDQs9C+0LTQsCkg0LLQvNC10YHRgtC+INGC0L7Qs9C+LCDRh9GC0L7QsdGLINGB0YfQuNGC0LDRgtGMXHJcbiAgLy8g0YHRgtGA0L7QutGDINC90LXQstCw0LvQuNC00L3QvtC5LlxyXG4gIGlmIChtb250aCA8IDEgfHwgbW9udGggPiAxMiB8fCBkYXkgPCAxIHx8IGRheSA+IDMxIHx8IGhvdXIgPiAyMyB8fCBtaW51dGUgPiA1OSB8fCBzZWNvbmQgPiA1OSkge1xyXG4gICAgcmV0dXJuIG51bGxcclxuICB9XHJcblxyXG4gIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQpXHJcbiAgcmV0dXJuIGlzTmFOKGRhdGUuZ2V0VGltZSgpKSA/IG51bGwgOiBkYXRlXHJcbn1cclxuXHJcbi8qKlxyXG4gKiDQn9C+0YHQu9C10LTQvdC40Lkg0YDQtdC30LXRgNCy0L3Ri9C5INGA0LDQt9Cx0L7RgCDigJQg0LHQtdC3INC30L3QsNC90LjRjyDQutC+0L3QutGA0LXRgtC90L7Qs9C+INGE0L7RgNC80LDRgtCwLiDQoNCw0LHQvtGC0LDQtdGCINGC0L7Qu9GM0LrQviDQtNC70Y8g0YfQuNGB0YLQvlxyXG4gKiDRh9C40YHQu9C+0LLRi9GFINC00LDRgiAo0L3QuNC60LDQutC40YUg0L3QsNC30LLQsNC90LjQuSDQvNC10YHRj9GG0LXQsi/QtNC90LXQuSDigJQg0LTQu9GPINGN0YLQvtCz0L4g0L3Rg9C20L3RiyBsb2NhbGUt0YLQsNCx0LvQuNGG0YssINCwINGN0YLQviDQutCw0LpcclxuICog0YDQsNC3INGC0L7RgiDQstC10YEsINGA0LDQtNC4INGD0YXQvtC00LAg0L7RgiDQutC+0YLQvtGA0L7Qs9C+IGx1eG9uINCx0YvQuyDRg9Cx0YDQsNC9INC40Lcg0LfQsNCy0LjRgdC40LzQvtGB0YLQtdC5KS5cclxuICpcclxuICog0JjQtNC10Y86INCz0L7QtCDigJQg0LXQtNC40L3RgdGC0LLQtdC90L3Ri9C5INGB0LXQs9C80LXQvdGCINC00LvQuNC90L7QuSDRgNC+0LLQvdC+IDQg0YbQuNGE0YDRiywg0L/QvtGN0YLQvtC80YMg0LXQs9C+INC/0L7Qt9C40YbQuNGPICjQv9C10YDQstGL0Lkg0LjQu9C4XHJcbiAqINC/0L7RgdC70LXQtNC90LjQuSDQuNC3INGC0YDRkdGFINGB0LXQs9C80LXQvdGC0L7QsiDQtNCw0YLRiykg0L7QtNC90L7Qt9C90LDRh9C90L4g0L7Qv9C+0LfQvdCw0ZHRgtGB0Y8g0L/RgNC4INC70Y7QsdC+0Lwg0YDQsNC30LTQtdC70LjRgtC10LvQtSAoYC5gLCBgLWAsXHJcbiAqIGAvYCwg0L/RgNC+0LHQtdC7Li4uKS4g0JzQtdGB0Y/RhiDQv9C+INCy0YHQtdC8INGA0LDRgdC/0YDQvtGB0YLRgNCw0L3RkdC90L3Ri9C8INCyINC80LjRgNC1INGB0L7Qs9C70LDRiNC10L3QuNGP0LwgKElTTyBgeXl5eS1NTS1kZGAg0LhcclxuICog0LXQstGA0L7Qv9C10LnRgdC60L7QtSBgZGQuTU0ueXl5eWApINGB0YLQvtC40YIg0LzQtdC20LTRgyDQs9C+0LTQvtC8INC4INC00L3RkdC8LCDQv9C+0Y3RgtC+0LzRgyDQsdC10YDRkdGC0YHRjyDQutCw0Log0YHRgNC10LTQvdC40Lkg0YHQtdCz0LzQtdC90YIuXHJcbiAqINCS0YDQtdC80Y8sINC10YHQu9C4INC10YHRgtGMLCDQstGB0LXQs9C00LAg0LjQtNGR0YIg0LrQsNC6IGBISDptbTpzc2Ag4oCUINGN0YLQvtGCINC/0L7RgNGP0LTQvtC6INGD0L3QuNCy0LXRgNGB0LDQu9C10L0uXHJcbiAqXHJcbiAqINCd0LUg0YDQtdGI0LDQtdGCINC4INC90LUg0L/Ri9GC0LDQtdGC0YHRjyDRgNC10YjQuNGC0Ywg0L3QtdC+0LTQvdC+0LfQvdCw0YfQvdC+0YHRgtGMINC00LXQvdGML9C80LXRgdGP0YYg0LIg0YfQuNGB0YLQviDRh9C40YHQu9C+0LLRi9GFINGE0L7RgNC80LDRgtCw0YUg0LLQuNC00LBcclxuICogYE1NL2RkL3l5eXlgICjQodCo0JApLCDQs9C00LUg0L7QsdCwINGB0LXQs9C80LXQvdGC0LAg0LzQvtCz0YPRgiDQsdGL0YLRjCDiiaQxMiDigJQg0YPQs9Cw0LTRi9Cy0LDRgtGMINGN0YLQviDQsdC10Lcg0LfQvdCw0L3QuNGPINC70L7QutCw0LvQuFxyXG4gKiDQt9C90LDRh9C40LvQviDQsdGLINC40L3QvtCz0LTQsCDQvNC+0LvRh9CwINC/0YPRgtCw0YLRjCDQtNC10L3RjCDRgSDQvNC10YHRj9GG0LXQvCwg0YfRgtC+INGF0YPQttC1INGP0LLQvdC+0Lkg0L7RiNC40LHQutC4LlxyXG4gKi9cclxuZnVuY3Rpb24gcGFyc2VEYXRlSGV1cmlzdGljYWxseSh2YWw6IHN0cmluZyk6IERhdGUgfCBudWxsIHtcclxuICBjb25zdCBwYXJ0cyA9IHZhbC5tYXRjaCgvXFxkKy9nKVxyXG4gIGlmICghcGFydHMgfHwgcGFydHMubGVuZ3RoIDwgMyB8fCBwYXJ0cy5sZW5ndGggPiA2KSB7XHJcbiAgICByZXR1cm4gbnVsbFxyXG4gIH1cclxuXHJcbiAgY29uc3QgW2QwLCBkMSwgZDIsIC4uLnRpbWVQYXJ0c10gPSBwYXJ0c1xyXG4gIGNvbnN0IGRhdGVQYXJ0cyA9IFtkMCwgZDEsIGQyXVxyXG4gIGNvbnN0IHllYXJJZHggPSBkYXRlUGFydHMuZmluZEluZGV4KHAgPT4gcC5sZW5ndGggPT09IDQpXHJcbiAgLy8g0JPQvtC0INC00L7Qu9C20LXQvSDQsdGL0YLRjCDQvtC00L3QvtC30L3QsNGH0L3QviDQvdCw0LnQtNC10L0gKNGA0L7QstC90L4gNCDRhtC40YTRgNGLKSDQuCDRgdGC0L7Rj9GC0Ywg0YEg0LrRgNCw0Y8sINCwINC90LUg0LIg0YHQtdGA0LXQtNC40L3QtSDigJRcclxuICAvLyDQuNC90LDRh9C1INC/0L7Qt9C40YbQuNGPINC80LXRgdGP0YbQsC/QtNC90Y8g0L3QtSDQvtC/0YDQtdC00LXQu9C40YLRjCDQsdC10LfQvtC/0LDRgdC90L4uXHJcbiAgaWYgKHllYXJJZHggIT09IDAgJiYgeWVhcklkeCAhPT0gMikge1xyXG4gICAgcmV0dXJuIG51bGxcclxuICB9XHJcblxyXG4gIGNvbnN0IHllYXIgPSBOdW1iZXIoZGF0ZVBhcnRzW3llYXJJZHhdKVxyXG4gIGNvbnN0IG1vbnRoID0gTnVtYmVyKGRhdGVQYXJ0c1sxXSlcclxuICBjb25zdCBkYXkgPSBOdW1iZXIoZGF0ZVBhcnRzW3llYXJJZHggPT09IDAgPyAyIDogMF0pXHJcbiAgaWYgKG1vbnRoIDwgMSB8fCBtb250aCA+IDEyIHx8IGRheSA8IDEgfHwgZGF5ID4gMzEpIHtcclxuICAgIHJldHVybiBudWxsXHJcbiAgfVxyXG5cclxuICBjb25zdCBbaGgsIG1tLCBzc10gPSB0aW1lUGFydHNcclxuICBjb25zdCBob3VyID0gaGggIT09IHVuZGVmaW5lZCA/IE51bWJlcihoaCkgOiAwXHJcbiAgY29uc3QgbWludXRlID0gbW0gIT09IHVuZGVmaW5lZCA/IE51bWJlcihtbSkgOiAwXHJcbiAgY29uc3Qgc2Vjb25kID0gc3MgIT09IHVuZGVmaW5lZCA/IE51bWJlcihzcykgOiAwXHJcbiAgaWYgKGhvdXIgPiAyMyB8fCBtaW51dGUgPiA1OSB8fCBzZWNvbmQgPiA1OSkge1xyXG4gICAgcmV0dXJuIG51bGxcclxuICB9XHJcblxyXG4gIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQpXHJcbiAgcmV0dXJuIGlzTmFOKGRhdGUuZ2V0VGltZSgpKSA/IG51bGwgOiBkYXRlXHJcbn1cclxuXHJcbi8qKlxyXG4gKiDQn9GA0LXQvtCx0YDQsNC30YPQtdGCINC30L3QsNGH0LXQvdC40LUg0LIg0LTQsNGC0YMuXHJcbiAqXHJcbiAqINCV0YHQu9C4INC/0LXRgNC10LTQsNC9IGBmb3JtYXRgLCDQvdC+INC30L3QsNGH0LXQvdC40LUg0LXQvNGDINC90LUg0YHQvtC+0YLQstC10YLRgdGC0LLRg9C10YIgKNGB0LwuIEZBTExCQUNLX0RBVEVfRk9STUFUUyDigJRcclxuICog0LDQutGC0YPQsNC70YzQvdC+INC00LvRjyDQv9C+0LvQtdC5LCDQs9C00LUgQml0cml4MjQg0L7RgtC00LDRkdGCINC00LDRgtGDINCyINGE0L7RgNC80LDRgtC1LCDQvdCw0YHRgtGA0L7QtdC90L3QvtC8INC90LAg0L/QvtGA0YLQsNC70LUsINCwINC90LUg0LJcclxuICog0YLQvtC8LCDRh9GC0L4g0LfQsNGF0LDRgNC00LrQvtC20LXQvSDQsiDQvNCw0L/Qv9C10YDQtSksINC/0LXRgNC10LQg0YLQtdC8INC60LDQuiDRgdGH0LjRgtCw0YLRjCDQt9C90LDRh9C10L3QuNC1INC90LXQstCw0LvQuNC00L3Ri9C8LCDQtNC10LvQsNGO0YLRgdGPINC10YnRkVxyXG4gKiDQtNCy0LUg0L/QvtC/0YvRgtC60Lg6INC00YDRg9Cz0LjQtSDRgNCw0YHQv9GA0L7RgdGC0YDQsNC90ZHQvdC90YvQtSDRhNC+0YDQvNCw0YLRiyBCaXRyaXgyNCwg0LAg0LfQsNGC0LXQvCDigJQg0L/QvtC30LjRhtC40L7QvdC90LDRjyDRjdCy0YDQuNGB0YLQuNC60LBcclxuICogKNGB0LwuIHBhcnNlRGF0ZUhldXJpc3RpY2FsbHkpLCDQutC+0YLQvtGA0LDRjyDRgNCw0YHQv9C+0LfQvdCw0ZHRgiDQv9GA0LDQutGC0LjRh9C10YHQutC4INC70Y7QsdC+0Lkg0YfQuNGB0YLQviDRh9C40YHQu9C+0LLQvtC5INGE0L7RgNC80LDRglxyXG4gKiDQtNCw0YLRiyDQvdC10LfQsNCy0LjRgdC40LzQviDQvtGCINGA0LDQt9C00LXQu9C40YLQtdC70Y8uINCV0YHQu9C4INC/0YDQuNC70L7QttC10L3QuNGOINGC0L7Rh9C90L4g0LjQt9Cy0LXRgdGC0LXQvSDRhNC+0YDQvNCw0YIg0LrQvtC90LrRgNC10YLQvdC+0LPQviDQv9C+0YDRgtCw0LvQsCxcclxuICog0LXQs9C+INGB0YLQvtC40YIg0L/QtdGA0LXQtNCw0LLQsNGC0Ywg0Y/QstC90YvQvCBgZm9ybWF0YCDigJQg0Y3RgtC+INCy0YHQtdCz0LTQsCDQv9GA0LjQvtGA0LjRgtC10YLQvdC10LUg0YPQs9Cw0LTRi9Cy0LDQvdC40Y8uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdG9EYXRlKHZhbDogbnVtYmVyIHwgc3RyaW5nIHwgRGF0ZSwgZm9ybWF0Pzogc3RyaW5nLCBvcHQ/OiBUb0RhdGVPcHRpb25zLCB0aHJvd0Vycm9yID0gdHJ1ZSk6IERhdGUge1xyXG4gIGlmICh2YWwgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICByZXR1cm4gdmFsXHJcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJykge1xyXG4gICAgaWYgKGZvcm1hdCkge1xyXG4gICAgICBjb25zdCBwYXJzZWQgPSBwYXJzZURhdGVXaXRoRm9ybWF0KHZhbCwgZm9ybWF0KVxyXG4gICAgICBpZiAocGFyc2VkKSB7XHJcbiAgICAgICAgcmV0dXJuIHBhcnNlZFxyXG4gICAgICB9XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IGZhbGxiYWNrRm9ybWF0IG9mIEZBTExCQUNLX0RBVEVfRk9STUFUUykge1xyXG4gICAgICAgIGlmIChmYWxsYmFja0Zvcm1hdCA9PT0gZm9ybWF0KSBjb250aW51ZVxyXG4gICAgICAgIGNvbnN0IGZhbGxiYWNrUGFyc2VkID0gcGFyc2VEYXRlV2l0aEZvcm1hdCh2YWwsIGZhbGxiYWNrRm9ybWF0KVxyXG4gICAgICAgIGlmIChmYWxsYmFja1BhcnNlZCkge1xyXG4gICAgICAgICAgcmV0dXJuIGZhbGxiYWNrUGFyc2VkXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBoZXVyaXN0aWNQYXJzZWQgPSBwYXJzZURhdGVIZXVyaXN0aWNhbGx5KHZhbClcclxuICAgICAgaWYgKGhldXJpc3RpY1BhcnNlZCkge1xyXG4gICAgICAgIHJldHVybiBoZXVyaXN0aWNQYXJzZWRcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIG5ldyBEYXRlKHZhbClcclxuICAgIH1cclxuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUodmFsKVxyXG4gIH1cclxuXHJcbiAgaWYgKHRocm93RXJyb3IpIHtcclxuICAgIGNvbnNvbGUuZXJyb3IoJ1dyb25nIGRhdGUgZm9ybWF0JywgdmFsLCBmb3JtYXQpXHJcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1dyb25nIGRhdGUgZm9ybWF0JylcclxuICB9XHJcblxyXG4gIHJldHVybiBuZXcgRGF0ZSgpXHJcbn1cclxuXHJcbi8qKlxyXG4gKiDQn9GA0LXQvtCx0YDQsNC30YPQtdGCINC00LDRgtGDINCyINGB0YLRgNC+0LrRgyDRgSDRg9GH0LXRgtC+0Lwg0LLRgNC10LzQtdC90L3QvtC5INC30L7QvdGLXHJcbiAqXHJcbiAqIEBwYXJhbSBkYXRlXHJcbiAqIEBwYXJhbSB0aHJvd0Vycm9yXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdG9JU09TdHJpbmdXaXRoVGltZXpvbmUoZGF0ZTogRGF0ZSwgdGhyb3dFcnJvciA9IHRydWUpOiBzdHJpbmcge1xyXG4gIGlmICghKGRhdGUgaW5zdGFuY2VvZiBEYXRlKSkge1xyXG4gICAgaWYgKHRocm93RXJyb3IpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YWx1ZTogbm90IGEgdmFsaWQgRGF0ZSBvYmplY3QnKVxyXG4gICAgcmV0dXJuICcnXHJcbiAgfVxyXG5cclxuICBjb25zdCB0ek9mZnNldCA9IC1kYXRlLmdldFRpbWV6b25lT2Zmc2V0KClcclxuICBjb25zdCBkaWZmID0gdHpPZmZzZXQgPj0gMCA/ICcrJyA6ICctJ1xyXG4gIGNvbnN0IHBhZCA9IChuOiBudW1iZXIpID0+IGAke01hdGguZmxvb3IoTWF0aC5hYnMobikpfWAucGFkU3RhcnQoMiwgJzAnKVxyXG4gIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCkgK1xyXG4gICAgJy0nICsgcGFkKGRhdGUuZ2V0TW9udGgoKSArIDEpICtcclxuICAgICctJyArIHBhZChkYXRlLmdldERhdGUoKSkgK1xyXG4gICAgJ1QnICsgcGFkKGRhdGUuZ2V0SG91cnMoKSkgK1xyXG4gICAgJzonICsgcGFkKGRhdGUuZ2V0TWludXRlcygpKSArXHJcbiAgICAnOicgKyBwYWQoZGF0ZS5nZXRTZWNvbmRzKCkpICtcclxuICAgIGRpZmYgKyBwYWQodHpPZmZzZXQgLyA2MCkgK1xyXG4gICAgJzonICsgcGFkKHR6T2Zmc2V0ICUgNjApXHJcbn1cclxuXHJcbi8qKlxyXG4gKiDQn9GA0LXQvtCx0YDQsNC30YPQtdGCINC30L3QsNGH0LXQvdC40LUg0LIg0LHRg9C70LXQstC+INC30L3QsNGH0LXQvdC40LVcclxuICpcclxuICogQHBhcmFtIHZhbFxyXG4gKiBAcGFyYW0gdGhyb3dFcnJvclxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRvQm9vbCh2YWw6IGFueSwgdGhyb3dFcnJvciA9IHRydWUpOiBib29sZWFuIHtcclxuICBzd2l0Y2ggKHR5cGVvZiB2YWwpIHtcclxuICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgIHZhbCA9IHZhbC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgIGlmICh2YWwgPT09ICduJyB8fCB2YWwgPT09ICd5JykgeyAvLyDQsdC40YLRgNC40LrRgdC+0LLRi9C1INC/0L7QvdGP0YLQuNGPINC+IGJvb2xcclxuICAgICAgICByZXR1cm4gdmFsID09PSAneSdcclxuICAgICAgfSBlbHNlIGlmICh2YWwgPT09ICd0cnVlJyB8fCB2YWwgPT09ICdmYWxzZScpIHsgLy8g0LHQuNGC0YDQuNC60YHQvtCy0YvQtSDQv9C+0L3Rj9GC0LjRjyDQviBib29sXHJcbiAgICAgICAgcmV0dXJuIHZhbCA9PT0gJ3RydWUnXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKHRocm93RXJyb3IpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YWx1ZTogY2Fubm90IGJlIGNvbnZlcnRlZCB0byBib29sZWFuJylcclxuICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgICAgfVxyXG4gICAgZGVmYXVsdDpcclxuICAgICAgcmV0dXJuIEJvb2xlYW4odmFsKVxyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqINCf0YDQtdC+0LHRgNCw0LfRg9C10YIg0LHRg9C70LXQstC+INC30L3QsNGH0LXQvdC40LUg0LIgJ1knINC40LvQuCAnTidcclxuICpcclxuICogQHBhcmFtIHZhbFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHRvQlhZb3JOKHZhbDogYm9vbGVhbik6IHN0cmluZyB7XHJcbiAgcmV0dXJuIHZhbCA/ICdZJyA6ICdOJ1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmFzZVVybEh0dHBzKHVybDogc3RyaW5nLCBjb21wb25lbnQgPSBmYWxzZSk6IHN0cmluZyB7XHJcbiAgaWYgKGNvbXBvbmVudCkge1xyXG4gICAgcmV0dXJuIGVuY29kZVVSSShjcm9wVXJsKHVybCkgKyAnLycpXHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBlbmNvZGVVUkkoJ2h0dHBzOi8vJyArIGNyb3BVcmwodXJsKSArICcvJylcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiDQntCx0YDQtdC30LDQtdGCIFVSTCAo0YPQtNCw0LvRj9C10YIg0L/RgNC+0YLQvtC60L7QuylcclxuICpcclxuICogQHBhcmFtIHVybFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGNyb3BVcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIHVybCA9IHVybCA/IHVybC5yZXBsYWNlKCdodHRwczovLycsICcnKSA6ICcnXHJcbiAgdXJsID0gdXJsID8gdXJsLnJlcGxhY2UoJ2h0dHA6Ly8nLCAnJykgOiAnJ1xyXG4gIHVybCA9IHVybCA/IHVybC5yZXBsYWNlKCdodHRwczonLCAnJykgOiAnJ1xyXG4gIHVybCA9IHVybCA/IHVybC5yZXBsYWNlKCdodHRwOicsICcnKSA6ICcnXHJcbiAgcmV0dXJuIHVybFxyXG59XHJcblxyXG4vKipcclxuICog0J/RgNC10L7QsdGA0LDQt9GD0LXRgiDRhNCw0LnQuyDQsiBiYXNlNjRcclxuICpcclxuICogQHBhcmFtIGZpbGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRCYXNlNjRGaWxlKGZpbGU6IEZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpXHJcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKVxyXG4gICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHJlc29sdmUocmVhZGVyLnJlc3VsdCBhcyBzdHJpbmcpXHJcbiAgICByZWFkZXIub25lcnJvciA9IGVycm9yID0+IHJlamVjdChlcnJvcilcclxuICB9KVxyXG59XHJcblxyXG4vKipcclxuICog0J/QvtC70YPRh9C40YLRjCDRhNCw0LnQuyDQsiDRhNC+0YDQvNCw0YLQtSBiYXNlNjQg0YEg0YDQsNC30LHQuNCy0LrQvtC5INC90LAg0LfQsNCz0L7Qu9C+0LLQvtC6INC4INC00LDQvdC90YvQtVxyXG4gKlxyXG4gKiBAcGFyYW0gZmlsZVxyXG4gKi9cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEJhc2U2NEZpbGVMaWtlU3RyKGZpbGU6IEZpbGUpOiBQcm9taXNlPHtcclxuICBoZWFkZXI6IHN0cmluZyxcclxuICB2YWw6IHN0cmluZ1xyXG59IHwgdW5kZWZpbmVkPiB7XHJcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZ2V0QmFzZTY0RmlsZShmaWxlKVxyXG4gIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnc3RyaW5nJykge1xyXG4gICAgY29uc3Qgc3BsaXQgPSByZXN1bHQuc3BsaXQoJywnKVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaGVhZGVyOiBzcGxpdFswXSxcclxuICAgICAgdmFsOiBzcGxpdFsxXVxyXG4gICAgfVxyXG4gIH1cclxuICByZXR1cm4gdW5kZWZpbmVkXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlQmFzZUFkZHJlc3ModXJsOiBzdHJpbmcsIGFkZDogc3RyaW5nIHwgdW5kZWZpbmVkID0gJycpIHtcclxuICAvLyBpZiAodXJsLnNlYXJjaCgnaHR0cHM6Ly8nKSAhPT0gMCAmJiB1cmwuc2VhcmNoKCdodHRwOi8vJykpIHtcclxuICAvLyAgIHVybCA9ICdodHRwczovLycgKyB1cmxcclxuICAvLyB9XHJcblxyXG4gIGlmIChhZGQgJiYgYWRkLmxlbmd0aCA+IDApIHtcclxuICAgIGlmICh1cmwubGFzdEluZGV4T2YoJy8nKSAhPT0gKHVybC5sZW5ndGggLSAxKSkge1xyXG4gICAgICB1cmwgPSB1cmwgKyAnLydcclxuICAgIH1cclxuXHJcbiAgICB1cmwgPSB1cmwgKyBhZGRcclxuICB9XHJcblxyXG4gIGlmICh1cmwubGFzdEluZGV4T2YoJy8nKSAhPT0gKHVybC5sZW5ndGggLSAxKSkge1xyXG4gICAgdXJsID0gdXJsICsgJy8nXHJcbiAgfVxyXG5cclxuICByZXR1cm4gdXJsXHJcbn0iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvdHlwaWZpY2F0aW9uL3Jlc3QvY2FsZW5kYXIvZXZlbnQvZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3VudHJ5Q29kZSwgVGltZXpvbmVOYW1lIH0gZnJvbSAnY291bnRyaWVzLWFuZC10aW1lem9uZXMnXHJcbmltcG9ydCB7IGlCWFJlc3RDYWxlbmRhclR5cGVFdmVudCB9IGZyb20gJy4uL2Jhc2UvdHlwZSdcclxuaW1wb3J0IHsgaUJYUmVzdFllc05vIH0gZnJvbSAnLi4vLi4vYmFzZS95ZXMtbm8nXHJcblxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgaUJYUmVzdENhbGVuZGFyRXZlbnRHZXRBbnN3ZXIgZXh0ZW5kcyBpQlhSZXN0Q2FsZW5kYXJFdmVudEdldEFuc3dlckJhc2V7XHJcbiAgQVRURU5ERUVfTElTVDoge2lkOiBudW1iZXIsIGVudHJ5SWQ6IG51bWJlciwgc3RhdHVzOiAnWScgfCAnTicgfCAnSCd9W11cclxuICBDUkVBVEVEX0JZOiBzdHJpbmdcclxuICBEQVRFX0NSRUFURTogRGF0ZVxyXG4gIERBVEVfRlJPTTogRGF0ZVxyXG4gIERBVEVfRlJPTV9UU19VVEM6IG51bWJlclxyXG4gIERBVEVfVE86IERhdGVcclxuICBEQVRFX1RPX1RTX1VUQzogbnVtYmVyXHJcbiAgREVMRVRFRDogYm9vbGVhblxyXG4gIERUX0xFTkdUSDogbnVtYmVyXHJcbiAgRFRfU0tJUF9USU1FOiBib29sZWFuXHJcbiAgTUVFVElOR19TVEFUVVM6IGJvb2xlYW5cclxuICBFWERBVEU6IERhdGVbXSAvLyDRgtGD0YIg0L/RgNC10L7QsdGA0LDQt9C+0LLQsNC90LjQtSDQuNC3INGB0YLRgNC+0LrQuCDQs9C00LUg0YfQtdGA0LXQtyBcIjtcIiDQuNC00LXRgiDQv9C10YDQtdGH0LjRgdC70LXQvdC40LUg0LTQsNGCXHJcbiAgSUQ6IG51bWJlclxyXG4gIE1FRVRJTkdfSE9TVDogbnVtYmVyXHJcbiAgT1JJR0lOQUxfREFURV9GUk9NOiBEYXRlIHwgbnVsbFxyXG4gIE9XTkVSX0lEOiBudW1iZXJcclxuICBQQVJFTlRfSUQ6IG51bWJlclxyXG4gIFJFQ1VSUkVOQ0VfSUQ6IG51bWJlclxyXG4gIFNFQ1RJT05fSUQ6IG51bWJlclxyXG4gIFNFQ1RfSUQ6IG51bWJlclxyXG4gIFRJTUVTVEFNUF9YOiBEYXRlXHJcbiAgVFpfT0ZGU0VUX0ZST006IG51bWJlclxyXG4gIFRaX09GRlNFVF9UTzogbnVtYmVyXHJcbiAgVkVSU0lPTjogbnVtYmVyXHJcbiAgUlJVTEU6IG51bGwgfCBpQlhSZXN0Q2FsZW5kYXJFdmVudEdldEFuc3dlclJ1bGVcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBpQlhSZXN0Q2FsZW5kYXJFdmVudEdldEFuc3dlckh0dHAgZXh0ZW5kcyBpQlhSZXN0Q2FsZW5kYXJFdmVudEdldEFuc3dlckJhc2Uge1xyXG4gIEFUVEVOREVFX0xJU1Q/OiB7aWQ6IG51bWJlciwgZW50cnlJZDogc3RyaW5nLCBzdGF0dXM6ICdZJyB8ICdOJyB8ICdIJ31bXVxyXG4gIENSRUFURURfQlk6IHN0cmluZ1xyXG4gIERBVEVfQ1JFQVRFOiBzdHJpbmdcclxuICBEQVRFX0ZST006IHN0cmluZ1xyXG4gIERBVEVfRlJPTV9UU19VVEM6IHN0cmluZ1xyXG4gIERBVEVfVE86IHN0cmluZ1xyXG4gIERBVEVfVE9fVFNfVVRDOiBzdHJpbmdcclxuICBERUxFVEVEOiBpQlhSZXN0WWVzTm9cclxuICBEVF9MRU5HVEg6IHN0cmluZ1xyXG4gIERUX1NLSVBfVElNRTogaUJYUmVzdFllc05vXHJcbiAgTUVFVElOR19TVEFUVVM6IGlCWFJlc3RZZXNOb1xyXG4gIEVYREFURTogc3RyaW5nXHJcbiAgSUQ6IHN0cmluZ1xyXG4gIE1FRVRJTkdfSE9TVDogc3RyaW5nXHJcbiAgT1JJR0lOQUxfREFURV9GUk9NOiBzdHJpbmcgfCBudWxsXHJcbiAgT1dORVJfSUQ6IHN0cmluZ1xyXG4gIFBBUkVOVF9JRDogc3RyaW5nXHJcbiAgUkVDVVJSRU5DRV9JRDogc3RyaW5nXHJcbiAgUlJVTEU6IHN0cmluZyB8IGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0QW5zd2VyUnVsZUh0dHBcclxuICBTRUNUSU9OX0lEOiBzdHJpbmdcclxuICBTRUNUX0lEOiBzdHJpbmdcclxuICBUSU1FU1RBTVBfWDogc3RyaW5nXHJcbiAgVFpfT0ZGU0VUX0ZST006IHN0cmluZ1xyXG4gIFRaX09GRlNFVF9UTzogc3RyaW5nXHJcbiAgVkVSU0lPTjogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgaUJYUmVzdENhbGVuZGFyRXZlbnRHZXRBbnN3ZXJCYXNlIHtcclxuICBBQ0NFU1NJQklMSVRZOiAnYnVzeScgLy8gVE9ETzog0KDQsNC30L7QsdGA0LDRgtGM0YHRj1xyXG4gIEFUVEVOREVFU19DT0RFUzogc3RyaW5nW10gLy8gVE9ETzog0YLRg9GCINGA0LDQt9C+0LHRgNCw0YLRjNGB0Y8g0LrQvtGA0YDQtdC60YLQvdC+INC70Lgg0LHRg9C00LXRgiDQv9GA0LXQvtCx0YDQsNC30L7QstGL0LLQsNGC0Ywg0LIg0YfQuNGB0LvQviDRgtCw0Log0LrQsNC6INGE0L7RgNC80LDRgiDQstGL0LHRgNCw0L0g0LrQsNC6IFUxMDkxINCz0LTQtSB1IC0gdXNlciAxMDkxIC0gaWRcclxuICBDQUxfREFWX0xBQkVMOiBudWxsXHJcbiAgQ0FMX1RZUEU6IGlCWFJlc3RDYWxlbmRhclR5cGVFdmVudFxyXG4gIENPTE9SOiBzdHJpbmcgLy8g0LrQvtC0INGE0L7RgNC80LDRgtCwICM2ODVnZGYg0LLQvtC30LzQvtC20L3QviDQvNC+0LbQvdC+INC30LDRgtCw0LnQv9C40YLRjCwg0L3QviDRgdC10LnRh9Cw0YEg0Y3RgtC+INCx0YPQtNC10YIg0YLRg9C80LDRhyAo0YHQtdC50YfQsNGBINC90LXRgiDRgtCw0LrQuNGFINC30LDQtNCw0YcpXHJcbiAgREFWX0VYQ0hfTEFCRUw6IG51bGwgLy8gVE9ETzog0KDQsNC30L7QsdGA0LDRgtGM0YHRj1xyXG4gIERBVl9YTUxfSUQ6IHN0cmluZ1xyXG4gIEVWRU5UX1RZUEU6IG51bGwgLy8gVE9ETzog0KDQsNC30L7QsdGA0LDRgtGM0YHRj1xyXG4gIEdfRVZFTlRfSUQ6IG51bGwgLy8gVE9ETzog0KDQsNC30L7QsdGA0LDRgtGM0YHRj1xyXG4gIElNUE9SVEFOQ0U6ICdub3JtYWwnIC8vIFRPRE86INCg0LDQt9C+0LHRgNCw0YLRjNGB0Y9cclxuICBJU19NRUVUSU5HOiBib29sZWFuXHJcbiAgTE9DQVRJT046IHN0cmluZ1xyXG4gIFJJTkRFWD86IG51bWJlcixcclxuICBNRUVUSU5HOiB7XHJcbiAgICBBTExPV19JTlZJVEU6IGJvb2xlYW5cclxuICAgIEhJREVfR1VFU1RTOiBib29sZWFuXHJcbiAgICBIT1NUX05BTUU6IHN0cmluZ1xyXG4gICAgTEFOR1VBR0VfSUQ6IExvd2VyY2FzZTxDb3VudHJ5Q29kZT5cclxuICAgIE1BSUxfRlJPTTogc3RyaW5nXHJcbiAgICBNRUVUSU5HX0NSRUFUT1I6IG51bWJlclxyXG4gICAgTk9USUZZOiBib29sZWFuXHJcbiAgICBSRUlOVklURTogYm9vbGVhblxyXG4gIH0gfCBudWxsXHJcbiAgTkFNRTogc3RyaW5nXHJcbiAgUFJJVkFURV9FVkVOVDogXCJcIiAvLyBUT0RPOiDQoNCw0LfQvtCx0YDQsNGC0YzRgdGPXHJcbiAgUkVMQVRJT05TOiB7Q09NTUVOVF9YTUxfSUQ6IHN0cmluZ31cclxuICBSRU1JTkQ6IHt0eXBlOiAnbWluJywgY291bnQ6IG51bWJlcn1bXSAvLyBUT0RPOiDQoNCw0LfQvtCx0YDQsNGC0YzRgdGPXHJcbiAgU1lOQ19TVEFUVVM6IG51bGwgLy8gVE9ETzog0KDQsNC30L7QsdGA0LDRgtGM0YHRj1xyXG4gIFRaX0ZST006IFRpbWV6b25lTmFtZVxyXG4gIFRaX1RPOiBUaW1lem9uZU5hbWVcclxuICBVRl9DUk1fQ0FMX0VWRU5UOiBib29sZWFuXHJcbiAgVUZfV0VCREFWX0NBTF9FVkVOVDogYm9vbGVhblxyXG4gIGF0dGVuZGVlc0VudGl0eUxpc3Q/OiB7ZW50aXR5SWQ6IGlCWFJlc3RDYWxlbmRhclR5cGVFdmVudCwgaWQ6IG51bWJlcn1bXSB8IG51bGxcclxuICAnflVTRVJfT0ZGU0VUX0ZST00nOiBudW1iZXJcclxuICAnflVTRVJfT0ZGU0VUX1RPJzogbnVtYmVyXHJcbn1cclxuXHJcbmludGVyZmFjZSBpQlhSZXN0Q2FsZW5kYXJFdmVudEdldEFuc3dlclJ1bGVIdHRwIGV4dGVuZHMgaUJYUmVzdENhbGVuZGFyRXZlbnRHZXRBbnN3ZXJSdWxlQmFzZSB7XHJcbiAgVU5USUw6IHN0cmluZ1xyXG4gICd+VU5USUwnOiBzdHJpbmdcclxufVxyXG5cclxuaW50ZXJmYWNlIGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0QW5zd2VyUnVsZSBleHRlbmRzIGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0QW5zd2VyUnVsZUJhc2Uge1xyXG4gIFVOVElMOiBEYXRlXHJcbiAgJ35VTlRJTCc6IERhdGVcclxufVxyXG5cclxuaW50ZXJmYWNlIGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0QW5zd2VyUnVsZUJhc2Uge1xyXG4gIEZSPzogJ0ZSJ1xyXG4gIE1PPzogJ01PJ1xyXG4gIFdFPzogJ1dFJ1xyXG4gIEZSRVE6ICdXRUVLTFknXHJcbiAgSU5URVJWQUw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0UGFyYW0ge1xyXG4gIHR5cGU6IGlCWFJlc3RDYWxlbmRhclR5cGVFdmVudFxyXG4gIG93bmVySWQ/OiBudW1iZXIsXHJcbiAgZnJvbT86IERhdGVcclxuICB0bz86IERhdGVcclxuICBzZWN0aW9uPzogYW55IC8vIFRPRE86INGA0LDQt9C+0LHRgNCw0YLRjNGB0Y9cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBpQlhSZXN0Q2FsZW5kYXJFdmVudEdldEJ5SWRQYXJhbSB7XHJcbiAgaWQ6IG51bWJlclxyXG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvdHlwaWZpY2F0aW9uL3Jlc3QvY2FsZW5kYXIvZXZlbnQvZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3VudHJ5Q29kZSwgVGltZXpvbmVOYW1lIH0gZnJvbSAnY291bnRyaWVzLWFuZC10aW1lem9uZXMnXHJcbmltcG9ydCB7IGlCWFJlc3RDYWxlbmRhclR5cGVFdmVudCB9IGZyb20gJy4uL2Jhc2UvdHlwZSdcclxuaW1wb3J0IHsgaUJYUmVzdFllc05vIH0gZnJvbSAnLi4vLi4vYmFzZS95ZXMtbm8nXHJcblxyXG5cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgaUJYUmVzdENhbGVuZGFyRXZlbnRHZXRBbnN3ZXIgZXh0ZW5kcyBpQlhSZXN0Q2FsZW5kYXJFdmVudEdldEFuc3dlckJhc2V7XHJcbiAgQVRURU5ERUVfTElTVDoge2lkOiBudW1iZXIsIGVudHJ5SWQ6IG51bWJlciwgc3RhdHVzOiAnWScgfCAnTicgfCAnSCd9W11cclxuICBDUkVBVEVEX0JZOiBzdHJpbmdcclxuICBEQVRFX0NSRUFURTogRGF0ZVxyXG4gIERBVEVfRlJPTTogRGF0ZVxyXG4gIERBVEVfRlJPTV9UU19VVEM6IG51bWJlclxyXG4gIERBVEVfVE86IERhdGVcclxuICBEQVRFX1RPX1RTX1VUQzogbnVtYmVyXHJcbiAgREVMRVRFRDogYm9vbGVhblxyXG4gIERUX0xFTkdUSDogbnVtYmVyXHJcbiAgRFRfU0tJUF9USU1FOiBib29sZWFuXHJcbiAgTUVFVElOR19TVEFUVVM6IGJvb2xlYW5cclxuICBFWERBVEU6IERhdGVbXSAvLyDRgtGD0YIg0L/RgNC10L7QsdGA0LDQt9C+0LLQsNC90LjQtSDQuNC3INGB0YLRgNC+0LrQuCDQs9C00LUg0YfQtdGA0LXQtyBcIjtcIiDQuNC00LXRgiDQv9C10YDQtdGH0LjRgdC70LXQvdC40LUg0LTQsNGCXHJcbiAgSUQ6IG51bWJlclxyXG4gIE1FRVRJTkdfSE9TVDogbnVtYmVyXHJcbiAgT1JJR0lOQUxfREFURV9GUk9NOiBEYXRlIHwgbnVsbFxyXG4gIE9XTkVSX0lEOiBudW1iZXJcclxuICBQQVJFTlRfSUQ6IG51bWJlclxyXG4gIFJFQ1VSUkVOQ0VfSUQ6IG51bWJlclxyXG4gIFNFQ1RJT05fSUQ6IG51bWJlclxyXG4gIFNFQ1RfSUQ6IG51bWJlclxyXG4gIFRJTUVTVEFNUF9YOiBEYXRlXHJcbiAgVFpfT0ZGU0VUX0ZST006IG51bWJlclxyXG4gIFRaX09GRlNFVF9UTzogbnVtYmVyXHJcbiAgVkVSU0lPTjogbnVtYmVyXHJcbiAgUlJVTEU6IG51bGwgfCBpQlhSZXN0Q2FsZW5kYXJFdmVudEdldEFuc3dlclJ1bGVcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBpQlhSZXN0Q2FsZW5kYXJFdmVudEdldEFuc3dlckh0dHAgZXh0ZW5kcyBpQlhSZXN0Q2FsZW5kYXJFdmVudEdldEFuc3dlckJhc2Uge1xyXG4gIEFUVEVOREVFX0xJU1Q/OiB7aWQ6IG51bWJlciwgZW50cnlJZDogc3RyaW5nLCBzdGF0dXM6ICdZJyB8ICdOJyB8ICdIJ31bXVxyXG4gIENSRUFURURfQlk6IHN0cmluZ1xyXG4gIERBVEVfQ1JFQVRFOiBzdHJpbmdcclxuICBEQVRFX0ZST006IHN0cmluZ1xyXG4gIERBVEVfRlJPTV9UU19VVEM6IHN0cmluZ1xyXG4gIERBVEVfVE86IHN0cmluZ1xyXG4gIERBVEVfVE9fVFNfVVRDOiBzdHJpbmdcclxuICBERUxFVEVEOiBpQlhSZXN0WWVzTm9cclxuICBEVF9MRU5HVEg6IHN0cmluZ1xyXG4gIERUX1NLSVBfVElNRTogaUJYUmVzdFllc05vXHJcbiAgTUVFVElOR19TVEFUVVM6IGlCWFJlc3RZZXNOb1xyXG4gIEVYREFURTogc3RyaW5nXHJcbiAgSUQ6IHN0cmluZ1xyXG4gIE1FRVRJTkdfSE9TVDogc3RyaW5nXHJcbiAgT1JJR0lOQUxfREFURV9GUk9NOiBzdHJpbmcgfCBudWxsXHJcbiAgT1dORVJfSUQ6IHN0cmluZ1xyXG4gIFBBUkVOVF9JRDogc3RyaW5nXHJcbiAgUkVDVVJSRU5DRV9JRDogc3RyaW5nXHJcbiAgUlJVTEU6IHN0cmluZyB8IGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0QW5zd2VyUnVsZUh0dHBcclxuICBTRUNUSU9OX0lEOiBzdHJpbmdcclxuICBTRUNUX0lEOiBzdHJpbmdcclxuICBUSU1FU1RBTVBfWDogc3RyaW5nXHJcbiAgVFpfT0ZGU0VUX0ZST006IHN0cmluZ1xyXG4gIFRaX09GRlNFVF9UTzogc3RyaW5nXHJcbiAgVkVSU0lPTjogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgaUJYUmVzdENhbGVuZGFyRXZlbnRHZXRBbnN3ZXJCYXNlIHtcclxuICBBQ0NFU1NJQklMSVRZOiAnYnVzeScgLy8gVE9ETzog0KDQsNC30L7QsdGA0LDRgtGM0YHRj1xyXG4gIEFUVEVOREVFU19DT0RFUzogc3RyaW5nW10gLy8gVE9ETzog0YLRg9GCINGA0LDQt9C+0LHRgNCw0YLRjNGB0Y8g0LrQvtGA0YDQtdC60YLQvdC+INC70Lgg0LHRg9C00LXRgiDQv9GA0LXQvtCx0YDQsNC30L7QstGL0LLQsNGC0Ywg0LIg0YfQuNGB0LvQviDRgtCw0Log0LrQsNC6INGE0L7RgNC80LDRgiDQstGL0LHRgNCw0L0g0LrQsNC6IFUxMDkxINCz0LTQtSB1IC0gdXNlciAxMDkxIC0gaWRcclxuICBDQUxfREFWX0xBQkVMOiBudWxsXHJcbiAgQ0FMX1RZUEU6IGlCWFJlc3RDYWxlbmRhclR5cGVFdmVudFxyXG4gIENPTE9SOiBzdHJpbmcgLy8g0LrQvtC0INGE0L7RgNC80LDRgtCwICM2ODVnZGYg0LLQvtC30LzQvtC20L3QviDQvNC+0LbQvdC+INC30LDRgtCw0LnQv9C40YLRjCwg0L3QviDRgdC10LnRh9Cw0YEg0Y3RgtC+INCx0YPQtNC10YIg0YLRg9C80LDRhyAo0YHQtdC50YfQsNGBINC90LXRgiDRgtCw0LrQuNGFINC30LDQtNCw0YcpXHJcbiAgREFWX0VYQ0hfTEFCRUw6IG51bGwgLy8gVE9ETzog0KDQsNC30L7QsdGA0LDRgtGM0YHRj1xyXG4gIERBVl9YTUxfSUQ6IHN0cmluZ1xyXG4gIEVWRU5UX1RZUEU6IG51bGwgLy8gVE9ETzog0KDQsNC30L7QsdGA0LDRgtGM0YHRj1xyXG4gIEdfRVZFTlRfSUQ6IG51bGwgLy8gVE9ETzog0KDQsNC30L7QsdGA0LDRgtGM0YHRj1xyXG4gIElNUE9SVEFOQ0U6ICdub3JtYWwnIC8vIFRPRE86INCg0LDQt9C+0LHRgNCw0YLRjNGB0Y9cclxuICBJU19NRUVUSU5HOiBib29sZWFuXHJcbiAgTE9DQVRJT046IHN0cmluZ1xyXG4gIFJJTkRFWD86IG51bWJlcixcclxuICBNRUVUSU5HOiB7XHJcbiAgICBBTExPV19JTlZJVEU6IGJvb2xlYW5cclxuICAgIEhJREVfR1VFU1RTOiBib29sZWFuXHJcbiAgICBIT1NUX05BTUU6IHN0cmluZ1xyXG4gICAgTEFOR1VBR0VfSUQ6IExvd2VyY2FzZTxDb3VudHJ5Q29kZT5cclxuICAgIE1BSUxfRlJPTTogc3RyaW5nXHJcbiAgICBNRUVUSU5HX0NSRUFUT1I6IG51bWJlclxyXG4gICAgTk9USUZZOiBib29sZWFuXHJcbiAgICBSRUlOVklURTogYm9vbGVhblxyXG4gIH0gfCBudWxsXHJcbiAgTkFNRTogc3RyaW5nXHJcbiAgUFJJVkFURV9FVkVOVDogXCJcIiAvLyBUT0RPOiDQoNCw0LfQvtCx0YDQsNGC0YzRgdGPXHJcbiAgUkVMQVRJT05TOiB7Q09NTUVOVF9YTUxfSUQ6IHN0cmluZ31cclxuICBSRU1JTkQ6IHt0eXBlOiAnbWluJywgY291bnQ6IG51bWJlcn1bXSAvLyBUT0RPOiDQoNCw0LfQvtCx0YDQsNGC0YzRgdGPXHJcbiAgU1lOQ19TVEFUVVM6IG51bGwgLy8gVE9ETzog0KDQsNC30L7QsdGA0LDRgtGM0YHRj1xyXG4gIFRaX0ZST006IFRpbWV6b25lTmFtZVxyXG4gIFRaX1RPOiBUaW1lem9uZU5hbWVcclxuICBVRl9DUk1fQ0FMX0VWRU5UOiBib29sZWFuXHJcbiAgVUZfV0VCREFWX0NBTF9FVkVOVDogYm9vbGVhblxyXG4gIGF0dGVuZGVlc0VudGl0eUxpc3Q/OiB7ZW50aXR5SWQ6IGlCWFJlc3RDYWxlbmRhclR5cGVFdmVudCwgaWQ6IG51bWJlcn1bXSB8IG51bGxcclxuICAnflVTRVJfT0ZGU0VUX0ZST00nOiBudW1iZXJcclxuICAnflVTRVJfT0ZGU0VUX1RPJzogbnVtYmVyXHJcbn1cclxuXHJcbmludGVyZmFjZSBpQlhSZXN0Q2FsZW5kYXJFdmVudEdldEFuc3dlclJ1bGVIdHRwIGV4dGVuZHMgaUJYUmVzdENhbGVuZGFyRXZlbnRHZXRBbnN3ZXJSdWxlQmFzZSB7XHJcbiAgVU5USUw6IHN0cmluZ1xyXG4gICd+VU5USUwnOiBzdHJpbmdcclxufVxyXG5cclxuaW50ZXJmYWNlIGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0QW5zd2VyUnVsZSBleHRlbmRzIGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0QW5zd2VyUnVsZUJhc2Uge1xyXG4gIC8vIEJpdHJpeCDQv9GA0LjRgdGL0LvQsNC10YIgUlJVTEUg0Lgg0LHQtdC3IFVOVElMIOKAlCDQvdCw0L/RgNC40LzQtdGALCDQv9C+0LLRgtC+0YDQtdC90LjQtSDQvtCz0YDQsNC90LjRh9C10L3QviDRh9C10YDQtdC3IENPVU5ULCDQsCDQvdC1INC00LDRgtC+0LlcclxuICBVTlRJTDogRGF0ZSB8IG51bGxcclxuICAnflVOVElMJzogRGF0ZSB8IG51bGxcclxufVxyXG5cclxuaW50ZXJmYWNlIGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0QW5zd2VyUnVsZUJhc2Uge1xyXG4gIEZSPzogJ0ZSJ1xyXG4gIE1PPzogJ01PJ1xyXG4gIFdFPzogJ1dFJ1xyXG4gIEZSRVE6ICdXRUVLTFknXHJcbiAgSU5URVJWQUw6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGlCWFJlc3RDYWxlbmRhckV2ZW50R2V0UGFyYW0ge1xyXG4gIHR5cGU6IGlCWFJlc3RDYWxlbmRhclR5cGVFdmVudFxyXG4gIG93bmVySWQ/OiBudW1iZXIsXHJcbiAgZnJvbT86IERhdGVcclxuICB0bz86IERhdGVcclxuICBzZWN0aW9uPzogYW55IC8vIFRPRE86INGA0LDQt9C+0LHRgNCw0YLRjNGB0Y9cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBpQlhSZXN0Q2FsZW5kYXJFdmVudEdldEJ5SWRQYXJhbSB7XHJcbiAgaWQ6IG51bWJlclxyXG59Il19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYngtcmVzdC9zcmMvdHlwaWZpY2F0aW9uL3Jlc3QvdXNlci91cGRhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlBbGxCWEdlbmRlciB9IGZyb20gJy4vdXNlcidcbmltcG9ydCB7IGlCWFJlc3RVc2VyRmlsZSB9IGZyb20gJy4vYWRkJ1xuXG4vKiogUGFyYW1ldGVycyBvZiBgdXNlci51cGRhdGVgLiBDdXN0b20gdXNlciBmaWVsZHMgbWF5IGFsc28gYmUgc3VwcGxpZWQuICovXG5leHBvcnQgaW50ZXJmYWNlIGlCWFJlc3RQYXJhbVVzZXJVcGRhdGUge1xuICBJRDogbnVtYmVyXG4gIEFDVElWRT86IGJvb2xlYW5cbiAgRU1BSUw/OiBzdHJpbmdcbiAgTkFNRT86IHN0cmluZ1xuICBMQVNUX05BTUU/OiBzdHJpbmdcbiAgU0VDT05EX05BTUU/OiBzdHJpbmdcbiAgUEVSU09OQUxfR0VOREVSPzogaUFsbEJYR2VuZGVyXG4gIFBFUlNPTkFMX1BST0ZFU1NJT04/OiBzdHJpbmdcbiAgUEVSU09OQUxfV1dXPzogc3RyaW5nXG4gIFBFUlNPTkFMX0JJUlRIREFZPzogc3RyaW5nXG4gIFBFUlNPTkFMX1BIT1RPPzogaUJYUmVzdFVzZXJGaWxlXG4gIFBFUlNPTkFMX0lDUT86IHN0cmluZ1xuICBQRVJTT05BTF9QSE9ORT86IHN0cmluZ1xuICBQRVJTT05BTF9GQVg/OiBzdHJpbmdcbiAgUEVSU09OQUxfTU9CSUxFPzogc3RyaW5nXG4gIFBFUlNPTkFMX1BBR0VSPzogc3RyaW5nXG4gIFBFUlNPTkFMX1NUUkVFVD86IHN0cmluZ1xuICBQRVJTT05BTF9DSVRZPzogc3RyaW5nXG4gIFBFUlNPTkFMX1NUQVRFPzogc3RyaW5nXG4gIFBFUlNPTkFMX1pJUD86IHN0cmluZ1xuICBQRVJTT05BTF9DT1VOVFJZPzogc3RyaW5nXG4gIFBFUlNPTkFMX01BSUxCT1g/OiBzdHJpbmdcbiAgUEVSU09OQUxfTk9URVM/OiBzdHJpbmdcbiAgV09SS19QSE9ORT86IHN0cmluZ1xuICBXT1JLX0NPTVBBTlk/OiBzdHJpbmdcbiAgV09SS19QT1NJVElPTj86IHN0cmluZ1xuICBXT1JLX0RFUEFSVE1FTlQ/OiBzdHJpbmdcbiAgV09SS19XV1c/OiBzdHJpbmdcbiAgV09SS19GQVg/OiBzdHJpbmdcbiAgV09SS19QQUdFUj86IHN0cmluZ1xuICBXT1JLX1NUUkVFVD86IHN0cmluZ1xuICBXT1JLX01BSUxCT1g/OiBzdHJpbmdcbiAgV09SS19DSVRZPzogc3RyaW5nXG4gIFdPUktfU1RBVEU/OiBzdHJpbmdcbiAgV09SS19aSVA/OiBzdHJpbmdcbiAgV09SS19DT1VOVFJZPzogc3RyaW5nXG4gIFdPUktfUFJPRklMRT86IHN0cmluZ1xuICBXT1JLX0xPR08/OiBpQlhSZXN0VXNlckZpbGVcbiAgV09SS19OT1RFUz86IHN0cmluZ1xuICBVRl9TS1lQRV9MSU5LPzogc3RyaW5nXG4gIFVGX1pPT00/OiBzdHJpbmdcbiAgVUZfREVQQVJUTUVOVD86IG51bWJlcltdXG4gIFVGX0lOVEVSRVNUUz86IHN0cmluZ1xuICBVRl9TS0lMTFM/OiBzdHJpbmdcbiAgVUZfV0VCX1NJVEVTPzogc3RyaW5nXG4gIFVGX1hJTkc/OiBzdHJpbmdcbiAgVUZfTElOS0VESU4/OiBzdHJpbmdcbiAgVUZfRkFDRUJPT0s/OiBzdHJpbmdcbiAgVUZfVFdJVFRFUj86IHN0cmluZ1xuICBVRl9TS1lQRT86IHN0cmluZ1xuICBVRl9ESVNUUklDVD86IHN0cmluZ1xuICBVRl9QSE9ORV9JTk5FUj86IHN0cmluZ1xuICBbY3VzdG9tRmllbGQ6IHN0cmluZ106IHVua25vd25cbn1cbiJdfQ==
@@ -3,9 +3,10 @@
3
3
  */
4
4
  export * from './user/user';
5
5
  export * from './user/add';
6
+ export * from './user/update';
6
7
  export * from './user/get';
7
8
  export * from './user/search';
8
9
  export * from './user/userFilter';
9
10
  export * from './user/userfield/list';
10
11
  export * from './user/option';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLGVBQWUsQ0FBQTtBQUM3QixjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxlQUFlLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICog0KTQsNC50Lsg0LTQu9GPINCy0L7Qt9C80L7QttC90L7RgdGC0Lgg0LjQvNC/0L7RgNGC0LAg0LjQvdGC0LXRgNGE0LXQudGB0L7QsiDQtNCw0L3QvdC+0LPQviDQv9Cw0LrQtdGC0LAg0LIg0LvQvtC60LDQu9GM0L3Ri9C1INC/0YDQvtC10LrRgtGLXHJcbiAqL1xyXG5leHBvcnQgKiBmcm9tICcuL3VzZXIvdXNlcidcbmV4cG9ydCAqIGZyb20gJy4vdXNlci9hZGQnXG5leHBvcnQgKiBmcm9tICcuL3VzZXIvZ2V0J1xuZXhwb3J0ICogZnJvbSAnLi91c2VyL3NlYXJjaCdcbmV4cG9ydCAqIGZyb20gJy4vdXNlci91c2VyRmlsdGVyJ1xuZXhwb3J0ICogZnJvbSAnLi91c2VyL3VzZXJmaWVsZC9saXN0J1xuZXhwb3J0ICogZnJvbSAnLi91c2VyL29wdGlvbidcbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2J4LXJlc3Qvc3JjL3R5cGlmaWNhdGlvbi9yZXN0L3VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGFBQWEsQ0FBQTtBQUMzQixjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLGVBQWUsQ0FBQTtBQUM3QixjQUFjLFlBQVksQ0FBQTtBQUMxQixjQUFjLGVBQWUsQ0FBQTtBQUM3QixjQUFjLG1CQUFtQixDQUFBO0FBQ2pDLGNBQWMsdUJBQXVCLENBQUE7QUFDckMsY0FBYyxlQUFlLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqINCk0LDQudC7INC00LvRjyDQstC+0LfQvNC+0LbQvdC+0YHRgtC4INC40LzQv9C+0YDRgtCwINC40L3RgtC10YDRhNC10LnRgdC+0LIg0LTQsNC90L3QvtCz0L4g0L/QsNC60LXRgtCwINCyINC70L7QutCw0LvRjNC90YvQtSDQv9GA0L7QtdC60YLRi1xuICovXG5leHBvcnQgKiBmcm9tICcuL3VzZXIvdXNlcidcbmV4cG9ydCAqIGZyb20gJy4vdXNlci9hZGQnXG5leHBvcnQgKiBmcm9tICcuL3VzZXIvdXBkYXRlJ1xuZXhwb3J0ICogZnJvbSAnLi91c2VyL2dldCdcbmV4cG9ydCAqIGZyb20gJy4vdXNlci9zZWFyY2gnXG5leHBvcnQgKiBmcm9tICcuL3VzZXIvdXNlckZpbHRlcidcbmV4cG9ydCAqIGZyb20gJy4vdXNlci91c2VyZmllbGQvbGlzdCdcbmV4cG9ydCAqIGZyb20gJy4vdXNlci9vcHRpb24nXG4iXX0=