taxtank-core 0.28.96 → 0.28.98

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 (187) hide show
  1. package/bundles/taxtank-core.umd.js +2614 -2325
  2. package/bundles/taxtank-core.umd.js.map +1 -1
  3. package/esm2015/lib/collections/index.js +3 -1
  4. package/esm2015/lib/db/Models/abstract-model.js +2 -1
  5. package/esm2015/lib/db/Models/observable-model.js +10 -0
  6. package/esm2015/lib/db/Models/property/property.js +3 -3
  7. package/esm2015/lib/db/Models/sole/bas-report.js +3 -2
  8. package/esm2015/lib/functions/array/index.js +2 -1
  9. package/esm2015/lib/functions/array/to-array.js +7 -0
  10. package/esm2015/lib/interceptors/basiq-client-id.interceptor.js +3 -3
  11. package/esm2015/lib/interceptors/basiq-token.interceptor.js +3 -3
  12. package/esm2015/lib/interceptors/corelogic-interceptor.js +3 -3
  13. package/esm2015/lib/interceptors/financial-year-interceptor.js +3 -3
  14. package/esm2015/lib/interceptors/interceptors.module.js +4 -4
  15. package/esm2015/lib/interceptors/jwt-interceptor.js +3 -3
  16. package/esm2015/lib/interceptors/preloader.interceptor.js +3 -3
  17. package/esm2015/lib/interceptors/user-switcher-interceptor.js +3 -3
  18. package/esm2015/lib/models/event/app-event.js +12 -1
  19. package/esm2015/lib/models/property/property.js +3 -1
  20. package/esm2015/lib/models/user/user-roles.const.js +9 -6
  21. package/esm2015/lib/models/user/user.js +15 -4
  22. package/esm2015/lib/services/account-setup/account-setup.service.js +6 -5
  23. package/esm2015/lib/services/affiliate/rewardful/rewardful.service.js +3 -3
  24. package/esm2015/lib/services/asset/assets.service.js +3 -3
  25. package/esm2015/lib/services/auth/auth.service.js +3 -3
  26. package/esm2015/lib/services/auth/jwt.service.js +3 -3
  27. package/esm2015/lib/services/bank/bank-account-calculation.service.js +3 -3
  28. package/esm2015/lib/services/bank/bank-transaction-calculation.service.js +3 -3
  29. package/esm2015/lib/services/event/event-dispatcher.service.js +15 -4
  30. package/esm2015/lib/services/event/sse.service.js +3 -3
  31. package/esm2015/lib/services/export/export-formatter.service.js +3 -3
  32. package/esm2015/lib/services/header-title/header-title.service.js +3 -3
  33. package/esm2015/lib/services/http/address/address.service.js +3 -3
  34. package/esm2015/lib/services/http/bank/bank-account/bank-account.service.js +5 -5
  35. package/esm2015/lib/services/http/bank/bank-connection/bank-connection.service.js +5 -5
  36. package/esm2015/lib/services/http/bank/bank-transaction/bank-transaction.service.js +5 -5
  37. package/esm2015/lib/services/http/bank/bank.service.js +5 -5
  38. package/esm2015/lib/services/http/bank/basiq/basiq-token.service.js +3 -3
  39. package/esm2015/lib/services/http/bank/basiq/basiq.service.js +5 -5
  40. package/esm2015/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.js +5 -5
  41. package/esm2015/lib/services/http/chart-accounts/chart-accounts.service.js +3 -3
  42. package/esm2015/lib/services/http/chat/chat.service.js +5 -5
  43. package/esm2015/lib/services/http/chat/message/message.service.js +5 -5
  44. package/esm2015/lib/services/http/chat/message-document/message-document.service.js +3 -3
  45. package/esm2015/lib/services/http/depreciation/depreciation-capital-project/depreciation-capital-project.service.js +3 -3
  46. package/esm2015/lib/services/http/depreciation/depreciation-receipt/depreciation-receipt.service.js +3 -3
  47. package/esm2015/lib/services/http/depreciation/depreciation.service.js +5 -5
  48. package/esm2015/lib/services/http/document/document-folder/document-folder.service.js +5 -5
  49. package/esm2015/lib/services/http/document/document.service.js +5 -5
  50. package/esm2015/lib/services/http/facebook/facebook.service.js +3 -3
  51. package/esm2015/lib/services/http/firm/client-income/client-income-types.service.js +3 -3
  52. package/esm2015/lib/services/http/firm/client-invite/client-invite.service.js +5 -5
  53. package/esm2015/lib/services/http/firm/client-movement/client-movement.service.js +5 -5
  54. package/esm2015/lib/services/http/firm/employee/employee.service.js +5 -5
  55. package/esm2015/lib/services/http/firm/employee-invite/employee-invite.service.js +5 -5
  56. package/esm2015/lib/services/http/firm/firm.service.js +3 -3
  57. package/esm2015/lib/services/http/firm/portfolio-report/client-portfolio-report.service.js +3 -3
  58. package/esm2015/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.js +5 -5
  59. package/esm2015/lib/services/http/income-source/income-source.service.js +5 -5
  60. package/esm2015/lib/services/http/income-source/salary-forecast/salary-forecast.service.js +5 -5
  61. package/esm2015/lib/services/http/income-source/sole-forecast/sole-forecast.service.js +5 -5
  62. package/esm2015/lib/services/http/loan/borrowing-expense/borrowing-expense.service.js +3 -3
  63. package/esm2015/lib/services/http/loan/loan.service.js +5 -5
  64. package/esm2015/lib/services/http/property/property-category/property-category.service.js +5 -5
  65. package/esm2015/lib/services/http/property/property-category-movement/property-category-movement.service.js +5 -5
  66. package/esm2015/lib/services/http/property/property-document/property-document.service.js +5 -5
  67. package/esm2015/lib/services/http/property/property-sale/property-sale.service.js +5 -5
  68. package/esm2015/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.js +5 -5
  69. package/esm2015/lib/services/http/property/property-share/property-share.service.js +5 -5
  70. package/esm2015/lib/services/http/property/property.service.js +32 -49
  71. package/esm2015/lib/services/http/receipt/receipt.service.js +3 -3
  72. package/esm2015/lib/services/http/rest/http-method.type.js +2 -0
  73. package/esm2015/lib/services/http/rest/index.js +3 -1
  74. package/esm2015/lib/services/http/rest/rest-method.type.js +2 -0
  75. package/esm2015/lib/services/http/rest/rest-old.service.js +225 -0
  76. package/esm2015/lib/services/http/rest/rest.service.js +146 -149
  77. package/esm2015/lib/services/http/service-notification/service-notification.service.js +5 -5
  78. package/esm2015/lib/services/http/sole/bas-report/bas-report.service.js +5 -5
  79. package/esm2015/lib/services/http/sole/sole-business/sole-business.service.js +5 -5
  80. package/esm2015/lib/services/http/sole/sole-business-activity/sole-business-activity.service.js +5 -5
  81. package/esm2015/lib/services/http/sole/sole-business-loss/sole-business-loss-rules/sole-business-loss-offset-rule.service.js +5 -5
  82. package/esm2015/lib/services/http/sole/sole-business-loss/sole-business-loss.service.js +5 -5
  83. package/esm2015/lib/services/http/sole/sole-contact/sole-contact.service.js +5 -5
  84. package/esm2015/lib/services/http/sole/sole-depreciation-method/sole-depreciation-method.service.js +3 -3
  85. package/esm2015/lib/services/http/sole/sole-details/sole-details.service.js +3 -3
  86. package/esm2015/lib/services/http/sole/sole-invoice/sole-invoice.service.js +5 -5
  87. package/esm2015/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.js +5 -5
  88. package/esm2015/lib/services/http/subscription/service-price.service.js +5 -5
  89. package/esm2015/lib/services/http/subscription/subscription.service.js +11 -5
  90. package/esm2015/lib/services/http/tax-review/tax-review-history/tax-review-history.service.js +5 -5
  91. package/esm2015/lib/services/http/tax-review/tax-review.service.js +5 -5
  92. package/esm2015/lib/services/http/tax-summary/tax-summary.service.js +3 -3
  93. package/esm2015/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.js +5 -5
  94. package/esm2015/lib/services/http/transaction/transaction-receipt/transaction-receipt.service.js +3 -3
  95. package/esm2015/lib/services/http/transaction/transaction.service.js +5 -5
  96. package/esm2015/lib/services/http/tutorial-video/tutorial-video.service.js +3 -3
  97. package/esm2015/lib/services/http/user/occupation/occupation.service.js +3 -3
  98. package/esm2015/lib/services/http/user/user-event-setting/user-event-setting.service.js +5 -5
  99. package/esm2015/lib/services/http/user/user-event-type/user-event-type.service.js +5 -5
  100. package/esm2015/lib/services/http/user/user.service.js +3 -3
  101. package/esm2015/lib/services/http/user/users-invite/users-invite.service.js +5 -5
  102. package/esm2015/lib/services/http/vehicle/vehicle-claim-details.service.js +3 -3
  103. package/esm2015/lib/services/http/vehicle/vehicle-claim.service.js +5 -5
  104. package/esm2015/lib/services/http/vehicle/vehicle-logbook.service.js +5 -5
  105. package/esm2015/lib/services/http/vehicle/vehicle.service.js +5 -5
  106. package/esm2015/lib/services/intercom/intercom.service.js +3 -3
  107. package/esm2015/lib/services/pdf/pdf-from-dom-element/pdf-from-dom-element.service.js +3 -3
  108. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-data-table/pdf-from-data-table.service.js +3 -3
  109. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-html-table/pdf-from-html-table.service.js +3 -3
  110. package/esm2015/lib/services/pdf/pdf-from-table/pdf-from-table.service.js +3 -3
  111. package/esm2015/lib/services/preloader/preloader.service.js +3 -3
  112. package/esm2015/lib/services/property/corelogic/corelogic.service.js +3 -3
  113. package/esm2015/lib/services/property/equity-position-chart/equity-position-chart.service.js +3 -3
  114. package/esm2015/lib/services/property/property-calculation/property-calculation.service.js +3 -3
  115. package/esm2015/lib/services/report/property/property-transaction-report.service.js +5 -6
  116. package/esm2015/lib/services/toast/toast.service.js +3 -3
  117. package/esm2015/lib/services/transaction/transaction-calculation.service.js +3 -3
  118. package/esm2015/lib/services/user/user-switcher.service.js +3 -3
  119. package/esm2015/lib/services/vehicle/logbook-best-period.service.js +3 -3
  120. package/esm2015/lib/services/xlsx/xlsx.service.js +3 -3
  121. package/esm2015/lib/tt-core.module.js +4 -4
  122. package/fesm2015/taxtank-core.js +2238 -1985
  123. package/fesm2015/taxtank-core.js.map +1 -1
  124. package/lib/collections/index.d.ts +2 -0
  125. package/lib/db/Models/observable-model.d.ts +8 -0
  126. package/lib/db/Models/property/property.d.ts +2 -2
  127. package/lib/db/Models/sole/bas-report.d.ts +2 -1
  128. package/lib/functions/array/index.d.ts +1 -0
  129. package/lib/functions/array/to-array.d.ts +4 -0
  130. package/lib/models/event/app-event.d.ts +9 -0
  131. package/lib/models/property/property.d.ts +2 -0
  132. package/lib/models/user/user-roles.const.d.ts +3 -0
  133. package/lib/models/user/user.d.ts +5 -2
  134. package/lib/services/event/event-dispatcher.service.d.ts +9 -1
  135. package/lib/services/http/bank/bank-account/bank-account.service.d.ts +1 -1
  136. package/lib/services/http/bank/bank-connection/bank-connection.service.d.ts +1 -1
  137. package/lib/services/http/bank/bank-transaction/bank-transaction.service.d.ts +1 -1
  138. package/lib/services/http/bank/bank.service.d.ts +1 -1
  139. package/lib/services/http/bank/basiq/basiq.service.d.ts +1 -1
  140. package/lib/services/http/chart-accounts/chart-accounts-depreciations/chart-accounts-depreciations.service.d.ts +1 -1
  141. package/lib/services/http/chat/chat.service.d.ts +1 -1
  142. package/lib/services/http/chat/message/message.service.d.ts +1 -1
  143. package/lib/services/http/depreciation/depreciation.service.d.ts +1 -1
  144. package/lib/services/http/document/document-folder/document-folder.service.d.ts +1 -1
  145. package/lib/services/http/document/document.service.d.ts +1 -1
  146. package/lib/services/http/firm/client-invite/client-invite.service.d.ts +1 -1
  147. package/lib/services/http/firm/client-movement/client-movement.service.d.ts +1 -1
  148. package/lib/services/http/firm/employee/employee.service.d.ts +1 -1
  149. package/lib/services/http/firm/employee-invite/employee-invite.service.d.ts +1 -1
  150. package/lib/services/http/income-source/income-source-forecast/income-source-forecast.service.d.ts +1 -1
  151. package/lib/services/http/income-source/income-source.service.d.ts +1 -1
  152. package/lib/services/http/income-source/salary-forecast/salary-forecast.service.d.ts +1 -1
  153. package/lib/services/http/income-source/sole-forecast/sole-forecast.service.d.ts +1 -1
  154. package/lib/services/http/loan/loan.service.d.ts +1 -1
  155. package/lib/services/http/property/property-category/property-category.service.d.ts +1 -1
  156. package/lib/services/http/property/property-category-movement/property-category-movement.service.d.ts +1 -1
  157. package/lib/services/http/property/property-document/property-document.service.d.ts +1 -1
  158. package/lib/services/http/property/property-sale/property-sale.service.d.ts +1 -1
  159. package/lib/services/http/property/property-sale/tax-exemption/tax-exemption.service.d.ts +1 -1
  160. package/lib/services/http/property/property-share/property-share.service.d.ts +1 -1
  161. package/lib/services/http/property/property.service.d.ts +8 -11
  162. package/lib/services/http/rest/http-method.type.d.ts +1 -0
  163. package/lib/services/http/rest/index.d.ts +2 -0
  164. package/lib/services/http/rest/rest-method.type.d.ts +1 -0
  165. package/lib/services/http/rest/rest-old.service.d.ts +110 -0
  166. package/lib/services/http/rest/rest.service.d.ts +71 -62
  167. package/lib/services/http/service-notification/service-notification.service.d.ts +1 -1
  168. package/lib/services/http/sole/bas-report/bas-report.service.d.ts +1 -1
  169. package/lib/services/http/sole/sole-business/sole-business.service.d.ts +1 -1
  170. package/lib/services/http/sole/sole-business-activity/sole-business-activity.service.d.ts +1 -1
  171. package/lib/services/http/sole/sole-business-loss/sole-business-loss-rules/sole-business-loss-offset-rule.service.d.ts +1 -1
  172. package/lib/services/http/sole/sole-business-loss/sole-business-loss.service.d.ts +1 -1
  173. package/lib/services/http/sole/sole-contact/sole-contact.service.d.ts +1 -1
  174. package/lib/services/http/sole/sole-invoice/sole-invoice.service.d.ts +1 -1
  175. package/lib/services/http/sole/sole-invoice-template/sole-invoice-template.service.d.ts +1 -1
  176. package/lib/services/http/subscription/service-price.service.d.ts +1 -1
  177. package/lib/services/http/tax-review/tax-review-history/tax-review-history.service.d.ts +1 -1
  178. package/lib/services/http/tax-review/tax-review.service.d.ts +1 -1
  179. package/lib/services/http/transaction/transaction-allocation/transaction-allocation.service.d.ts +1 -1
  180. package/lib/services/http/transaction/transaction.service.d.ts +1 -1
  181. package/lib/services/http/user/user-event-setting/user-event-setting.service.d.ts +1 -1
  182. package/lib/services/http/user/user-event-type/user-event-type.service.d.ts +1 -1
  183. package/lib/services/http/user/users-invite/users-invite.service.d.ts +1 -1
  184. package/lib/services/http/vehicle/vehicle-claim.service.d.ts +1 -1
  185. package/lib/services/http/vehicle/vehicle-logbook.service.d.ts +1 -1
  186. package/lib/services/http/vehicle/vehicle.service.d.ts +1 -1
  187. package/package.json +1 -1
@@ -1,6 +1,8 @@
1
1
  // @TODO Alex move here all collections
2
+ export * from './collection';
3
+ export * from './property';
2
4
  export * from './vehicle';
3
5
  export * from './sole';
4
6
  export * from './property';
5
7
  export * from './transaction';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDO0FBRXZDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQFRPRE8gQWxleCBtb3ZlIGhlcmUgYWxsIGNvbGxlY3Rpb25zXG5cbmV4cG9ydCAqIGZyb20gJy4vdmVoaWNsZSc7XG5leHBvcnQgKiBmcm9tICcuL3NvbGUnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm9wZXJ0eSc7XG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uJztcbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUNBQXVDO0FBQ3ZDLGNBQWMsY0FBYyxDQUFDO0FBRTdCLGNBQWMsWUFBWSxDQUFDO0FBRTNCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQFRPRE8gQWxleCBtb3ZlIGhlcmUgYWxsIGNvbGxlY3Rpb25zXG5leHBvcnQgKiBmcm9tICcuL2NvbGxlY3Rpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5JztcblxuZXhwb3J0ICogZnJvbSAnLi92ZWhpY2xlJztcbmV4cG9ydCAqIGZyb20gJy4vc29sZSc7XG5leHBvcnQgKiBmcm9tICcuL3Byb3BlcnR5JztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuIl19
@@ -1,7 +1,8 @@
1
1
  import get from 'lodash/get';
2
+ // @TODO make it abstract
2
3
  export class AbstractModel {
3
4
  hasValue(value, path = 'id') {
4
5
  return get(path) === value;
5
6
  }
6
7
  }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvTW9kZWxzL2Fic3RyYWN0LW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQztBQUU3QixNQUFNLE9BQU8sYUFBYTtJQUd4QixRQUFRLENBQUMsS0FBVSxFQUFFLE9BQWUsSUFBSTtRQUN0QyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUM7SUFDN0IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGdldCBmcm9tICdsb2Rhc2gvZ2V0JztcblxuZXhwb3J0IGNsYXNzIEFic3RyYWN0TW9kZWwge1xuICBpZD86IGFueTtcblxuICBoYXNWYWx1ZSh2YWx1ZTogYW55LCBwYXRoOiBzdHJpbmcgPSAnaWQnKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGdldChwYXRoKSA9PT0gdmFsdWU7XG4gIH1cbn1cbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvTW9kZWxzL2Fic3RyYWN0LW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQztBQUU3Qix5QkFBeUI7QUFDekIsTUFBTSxPQUFPLGFBQWE7SUFHeEIsUUFBUSxDQUFDLEtBQVUsRUFBRSxPQUFlLElBQUk7UUFDdEMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxDQUFDO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5cbi8vIEBUT0RPIG1ha2UgaXQgYWJzdHJhY3RcbmV4cG9ydCBjbGFzcyBBYnN0cmFjdE1vZGVsIHtcbiAgaWQ/OiBhbnk7XG5cbiAgaGFzVmFsdWUodmFsdWU6IGFueSwgcGF0aDogc3RyaW5nID0gJ2lkJyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBnZXQocGF0aCkgPT09IHZhbHVlO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { AbstractModel } from "./abstract-model";
2
+ /**
3
+ * Model, which children should be listened via event dispatcher service ising automatic events
4
+ */
5
+ export class ObservableModel extends AbstractModel {
6
+ static getEventName(method) {
7
+ return `${this.name}_${method}`;
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS1tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvb2JzZXJ2YWJsZS1tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxhQUFhO0lBQ2hELE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBa0I7UUFDcEMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksTUFBTSxFQUFFLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzdE1ldGhvZCB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9odHRwL3Jlc3RcIjtcbmltcG9ydCB7IEFic3RyYWN0TW9kZWwgfSBmcm9tIFwiLi9hYnN0cmFjdC1tb2RlbFwiO1xuXG4vKipcbiAqIE1vZGVsLCB3aGljaCBjaGlsZHJlbiBzaG91bGQgYmUgbGlzdGVuZWQgdmlhIGV2ZW50IGRpc3BhdGNoZXIgc2VydmljZSBpc2luZyBhdXRvbWF0aWMgZXZlbnRzXG4gKi9cbmV4cG9ydCBjbGFzcyBPYnNlcnZhYmxlTW9kZWwgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsIHtcbiAgc3RhdGljIGdldEV2ZW50TmFtZShtZXRob2Q6IFJlc3RNZXRob2QpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLm5hbWV9XyR7bWV0aG9kfWA7XG4gIH1cbn1cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { AbstractModel } from '../abstract-model';
2
- export class Property extends AbstractModel {
1
+ import { ObservableModel } from '../observable-model';
2
+ export class Property extends ObservableModel {
3
3
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvTW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUVoRCxNQUFNLE9BQU8sUUFBUyxTQUFRLGFBQWE7Q0E0QjFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvcGVydHlEZXByZWNpYXRpb25DYWxjdWxhdGlvbkVudW0gfSBmcm9tICcuLi8uLi9FbnVtcy9wcm9wZXJ0eS9wcm9wZXJ0eS1kZXByZWNpYXRpb24tY2FsY3VsYXRpb24uZW51bSc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlci91c2VyJztcbmltcG9ydCB7IEFkZHJlc3MgfSBmcm9tICcuLi9hZGRyZXNzJztcbmltcG9ydCB7IFByb3BlcnR5Q2F0ZWdvcnkgfSBmcm9tICcuL3Byb3BlcnR5LWNhdGVnb3J5JztcbmltcG9ydCB7IFByb3BlcnR5Rm9yZWNhc3QgfSBmcm9tICcuL3Byb3BlcnR5LWZvcmVjYXN0JztcbmltcG9ydCB7IFByb3BlcnR5U2hhcmUgfSBmcm9tICcuL3Byb3BlcnR5LXNoYXJlJztcbmltcG9ydCB7IFByb3BlcnR5VmFsdWF0aW9uIH0gZnJvbSAnLi9wcm9wZXJ0eS12YWx1YXRpb24nO1xuaW1wb3J0IHsgUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1jYXRlZ29yeS1tb3ZlbWVudCc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudFByb3BlcnR5IH0gZnJvbSAnLi4vYmFuay9iYW5rLWFjY291bnQtcHJvcGVydHknO1xuaW1wb3J0IHsgUHJvcGVydHlEb2N1bWVudCB9IGZyb20gJy4uL2RvY3VtZW50L3Byb3BlcnR5LWRvY3VtZW50JztcbmltcG9ydCB7IERlcHJlY2lhdGlvbiB9IGZyb20gJy4uL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24nO1xuaW1wb3J0IHsgUHJvcGVydHlTdWJzY3JpcHRpb24gfSBmcm9tICcuL3Byb3BlcnR5LXN1YnNjcmlwdGlvbic7XG5pbXBvcnQge0Fic3RyYWN0TW9kZWx9IGZyb20gJy4uL2Fic3RyYWN0LW1vZGVsJztcblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5IGV4dGVuZHMgQWJzdHJhY3RNb2RlbCB7XG4gIGlkPzogbnVtYmVyO1xuICBwaG90bz86IHN0cmluZztcbiAgcHVyY2hhc2VQcmljZT86IG51bWJlcjtcbiAgY29udHJhY3REYXRlPzogRGF0ZTtcbiAgc2V0dGxlbWVudERhdGU/OiBEYXRlO1xuICBkZXByZWNpYXRpb25DYWxjdWxhdGlvbj86IFByb3BlcnR5RGVwcmVjaWF0aW9uQ2FsY3VsYXRpb25FbnVtO1xuICBzaGFyZVdpdGg/OiBzdHJpbmc7XG4gIGdyb3d0aFBlcmNlbnQ/OiBudW1iZXI7XG4gIHN1YnNjcmlwdGlvbnM/OiBQcm9wZXJ0eVN1YnNjcmlwdGlvbltdO1xuICBkZWxldGVkQXQ/OiBEYXRlO1xuICBjcmVhdGVkQXQ/OiBEYXRlO1xuICB1cGRhdGVkQXQ/OiBEYXRlO1xuICB1c2VyPzogVXNlcjtcbiAgYWRkcmVzcz86IEFkZHJlc3M7XG4gIGNhdGVnb3J5PzogUHJvcGVydHlDYXRlZ29yeTtcbiAgZm9yZWNhc3RzPzogUHJvcGVydHlGb3JlY2FzdFtdO1xuICBzaGFyZXM/OiBQcm9wZXJ0eVNoYXJlW107XG4gIHZhbHVhdGlvbnM/OiBQcm9wZXJ0eVZhbHVhdGlvbltdO1xuICBjYXRlZ29yeU1vdmVtZW50cz86IFByb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudFtdO1xuICBzdGFtcER1dHk/OiBudW1iZXI7XG4gIGxlZ2FsRmVlcz86IG51bWJlcjtcbiAgb3RoZXJDYXBpdGFsQ29zdHM/OiBudW1iZXI7XG4gIHByb3BlcnR5QmFua0FjY291bnRzPzogQmFua0FjY291bnRQcm9wZXJ0eVtdO1xuICBjcmVhdGVkQnk/OiBVc2VyO1xuICB1cGRhdGVkQnk/OiBVc2VyO1xuICBkb2N1bWVudHM/OiBQcm9wZXJ0eURvY3VtZW50W107XG4gIGRlcHJlY2lhdGlvbnM/OiBEZXByZWNpYXRpb25bXTtcbn1cbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZGIvTW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxNQUFNLE9BQU8sUUFBUyxTQUFRLGVBQWU7Q0E0QjVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvcGVydHlEZXByZWNpYXRpb25DYWxjdWxhdGlvbkVudW0gfSBmcm9tICcuLi8uLi9FbnVtcy9wcm9wZXJ0eS9wcm9wZXJ0eS1kZXByZWNpYXRpb24tY2FsY3VsYXRpb24uZW51bSc7XG5pbXBvcnQgeyBVc2VyIH0gZnJvbSAnLi4vdXNlci91c2VyJztcbmltcG9ydCB7IEFkZHJlc3MgfSBmcm9tICcuLi9hZGRyZXNzJztcbmltcG9ydCB7IFByb3BlcnR5Q2F0ZWdvcnkgfSBmcm9tICcuL3Byb3BlcnR5LWNhdGVnb3J5JztcbmltcG9ydCB7IFByb3BlcnR5Rm9yZWNhc3QgfSBmcm9tICcuL3Byb3BlcnR5LWZvcmVjYXN0JztcbmltcG9ydCB7IFByb3BlcnR5U2hhcmUgfSBmcm9tICcuL3Byb3BlcnR5LXNoYXJlJztcbmltcG9ydCB7IFByb3BlcnR5VmFsdWF0aW9uIH0gZnJvbSAnLi9wcm9wZXJ0eS12YWx1YXRpb24nO1xuaW1wb3J0IHsgUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50IH0gZnJvbSAnLi9wcm9wZXJ0eS1jYXRlZ29yeS1tb3ZlbWVudCc7XG5pbXBvcnQgeyBCYW5rQWNjb3VudFByb3BlcnR5IH0gZnJvbSAnLi4vYmFuay9iYW5rLWFjY291bnQtcHJvcGVydHknO1xuaW1wb3J0IHsgUHJvcGVydHlEb2N1bWVudCB9IGZyb20gJy4uL2RvY3VtZW50L3Byb3BlcnR5LWRvY3VtZW50JztcbmltcG9ydCB7IERlcHJlY2lhdGlvbiB9IGZyb20gJy4uL2RlcHJlY2lhdGlvbi9kZXByZWNpYXRpb24nO1xuaW1wb3J0IHsgUHJvcGVydHlTdWJzY3JpcHRpb24gfSBmcm9tICcuL3Byb3BlcnR5LXN1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlTW9kZWwgfSBmcm9tICcuLi9vYnNlcnZhYmxlLW1vZGVsJztcblxuZXhwb3J0IGNsYXNzIFByb3BlcnR5IGV4dGVuZHMgT2JzZXJ2YWJsZU1vZGVsIHtcbiAgaWQ/OiBudW1iZXI7XG4gIHBob3RvPzogc3RyaW5nO1xuICBwdXJjaGFzZVByaWNlPzogbnVtYmVyO1xuICBjb250cmFjdERhdGU/OiBEYXRlO1xuICBzZXR0bGVtZW50RGF0ZT86IERhdGU7XG4gIGRlcHJlY2lhdGlvbkNhbGN1bGF0aW9uPzogUHJvcGVydHlEZXByZWNpYXRpb25DYWxjdWxhdGlvbkVudW07XG4gIHNoYXJlV2l0aD86IHN0cmluZztcbiAgZ3Jvd3RoUGVyY2VudD86IG51bWJlcjtcbiAgc3Vic2NyaXB0aW9ucz86IFByb3BlcnR5U3Vic2NyaXB0aW9uW107XG4gIGRlbGV0ZWRBdD86IERhdGU7XG4gIGNyZWF0ZWRBdD86IERhdGU7XG4gIHVwZGF0ZWRBdD86IERhdGU7XG4gIHVzZXI/OiBVc2VyO1xuICBhZGRyZXNzPzogQWRkcmVzcztcbiAgY2F0ZWdvcnk/OiBQcm9wZXJ0eUNhdGVnb3J5O1xuICBmb3JlY2FzdHM/OiBQcm9wZXJ0eUZvcmVjYXN0W107XG4gIHNoYXJlcz86IFByb3BlcnR5U2hhcmVbXTtcbiAgdmFsdWF0aW9ucz86IFByb3BlcnR5VmFsdWF0aW9uW107XG4gIGNhdGVnb3J5TW92ZW1lbnRzPzogUHJvcGVydHlDYXRlZ29yeU1vdmVtZW50W107XG4gIHN0YW1wRHV0eT86IG51bWJlcjtcbiAgbGVnYWxGZWVzPzogbnVtYmVyO1xuICBvdGhlckNhcGl0YWxDb3N0cz86IG51bWJlcjtcbiAgcHJvcGVydHlCYW5rQWNjb3VudHM/OiBCYW5rQWNjb3VudFByb3BlcnR5W107XG4gIGNyZWF0ZWRCeT86IFVzZXI7XG4gIHVwZGF0ZWRCeT86IFVzZXI7XG4gIGRvY3VtZW50cz86IFByb3BlcnR5RG9jdW1lbnRbXTtcbiAgZGVwcmVjaWF0aW9ucz86IERlcHJlY2lhdGlvbltdO1xufVxuIl19
@@ -1,3 +1,4 @@
1
- export class BasReport {
1
+ import { AbstractModel } from '../abstract-model';
2
+ export class BasReport extends AbstractModel {
2
3
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzLXJlcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvc29sZS9iYXMtcmVwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxTQUFTO0NBYXJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtVc2VyfSBmcm9tICcuLi91c2VyL3VzZXInO1xuXG5leHBvcnQgY2xhc3MgQmFzUmVwb3J0IHtcblx0ZGF0ZUZyb20/OiBEYXRlO1xuXHRkYXRlVG8/OiBEYXRlO1xuXHRpbmNvbWU/OiBudW1iZXI7XG5cdGluY29tZUdTVD86IG51bWJlcjtcblx0ZXhwZW5zZUdTVD86IG51bWJlcjtcblx0c2FsYXJ5PzogbnVtYmVyO1xuICB0YXhXaXRoaGVsZFNhbGFyeT86IG51bWJlcjtcblx0dGF4V2l0aGhlbGROb0FCTj86IG51bWJlcjtcblx0cGF5Z1RheEluc3RhbG1lbnQ/OiBudW1iZXI7XG5cdGZ1ZWxUYXhDcmVkaXQ/OiBudW1iZXI7XG5cdGlkPzogbnVtYmVyO1xuXHR1c2VyPzogVXNlcjtcbn1cbiJdfQ==
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzLXJlcG9ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9kYi9Nb2RlbHMvc29sZS9iYXMtcmVwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUdsRCxNQUFNLE9BQU8sU0FBVSxTQUFRLGFBQWE7Q0FhM0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdE1vZGVsIH0gZnJvbSAnLi4vYWJzdHJhY3QtbW9kZWwnO1xuaW1wb3J0IHtVc2VyfSBmcm9tICcuLi91c2VyL3VzZXInO1xuXG5leHBvcnQgY2xhc3MgQmFzUmVwb3J0IGV4dGVuZHMgQWJzdHJhY3RNb2RlbCB7XG5cdGRhdGVGcm9tPzogRGF0ZTtcblx0ZGF0ZVRvPzogRGF0ZTtcblx0aW5jb21lPzogbnVtYmVyO1xuXHRpbmNvbWVHU1Q/OiBudW1iZXI7XG5cdGV4cGVuc2VHU1Q/OiBudW1iZXI7XG5cdHNhbGFyeT86IG51bWJlcjtcbiAgdGF4V2l0aGhlbGRTYWxhcnk/OiBudW1iZXI7XG5cdHRheFdpdGhoZWxkTm9BQk4/OiBudW1iZXI7XG5cdHBheWdUYXhJbnN0YWxtZW50PzogbnVtYmVyO1xuXHRmdWVsVGF4Q3JlZGl0PzogbnVtYmVyO1xuXHRpZD86IG51bWJlcjtcblx0dXNlcj86IFVzZXI7XG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  export * from './replace';
2
2
  export * from './sort';
3
3
  export * from './sort-deep';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZnVuY3Rpb25zL2FycmF5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXBsYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zb3J0JztcclxuZXhwb3J0ICogZnJvbSAnLi9zb3J0LWRlZXAnO1xyXG4iXX0=
4
+ export * from './to-array';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZnVuY3Rpb25zL2FycmF5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXBsYWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zb3J0JztcclxuZXhwb3J0ICogZnJvbSAnLi9zb3J0LWRlZXAnO1xyXG5leHBvcnQgKiBmcm9tICcuL3RvLWFycmF5JztcclxuIl19
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Convert single object or array into array
3
+ */
4
+ export function toArray(data) {
5
+ return Array.isArray(data) ? data : [data];
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG8tYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvZnVuY3Rpb25zL2FycmF5L3RvLWFycmF5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBSSxJQUFhO0lBQ3RDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnZlcnQgc2luZ2xlIG9iamVjdCBvciBhcnJheSBpbnRvIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0FycmF5PFQ+KGRhdGE6IFQgfCBUW10pOiBUW10ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShkYXRhKSA/IGRhdGEgOiBbZGF0YV07XG59XG4iXX0=
@@ -23,9 +23,9 @@ export class BasiqClientIdInterceptor {
23
23
  });
24
24
  }
25
25
  }
26
- BasiqClientIdInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqClientIdInterceptor, deps: [{ token: i1.UserService }], target: i0.ɵɵFactoryTarget.Injectable });
27
- BasiqClientIdInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqClientIdInterceptor });
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqClientIdInterceptor, decorators: [{
26
+ BasiqClientIdInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BasiqClientIdInterceptor, deps: [{ token: i1.UserService }], target: i0.ɵɵFactoryTarget.Injectable });
27
+ BasiqClientIdInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BasiqClientIdInterceptor });
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BasiqClientIdInterceptor, decorators: [{
29
29
  type: Injectable
30
30
  }], ctorParameters: function () { return [{ type: i1.UserService }]; } });
31
31
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtY2xpZW50LWlkLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2ludGVyY2VwdG9ycy9iYXNpcS1jbGllbnQtaWQuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUczQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7QUFHekU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLFlBQ1UsV0FBd0I7UUFBeEIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFFbEMsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQ3hELCtEQUErRDtRQUMvRCxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxZQUFZLENBQUMsV0FBVyxhQUFhLENBQUMsRUFBRTtZQUNyRSxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7U0FDNUI7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUN4QyxRQUFRLENBQUMsQ0FBQyxhQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FDckYsQ0FBQztJQUNKLENBQUM7SUFFTyxLQUFLLENBQUMsT0FBNkIsRUFBRSxhQUFxQjtRQUNoRSxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDbkIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUM7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7c0hBckJVLHdCQUF3QjswSEFBeEIsd0JBQXdCOzRGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwUmVxdWVzdCwgSHR0cEhhbmRsZXIsIEh0dHBFdmVudCwgSHR0cEludGVyY2VwdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBCYXNpcVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9odHRwL2JhbmsvYmFzaXEvYmFzaXEuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2h0dHAvdXNlci91c2VyLnNlcnZpY2UnO1xuXG4vKipcbiAqIEludGVyY2VwdG9yIHdoaWNoIGNoZWNrIGlmIGNsaWVudCdzIGJhc2lxIGlkIGV4aXN0IGFuZCByZXF1ZXN0IGl0IGlmIG5vdFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQmFzaXFDbGllbnRJZEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB1c2VyU2VydmljZTogVXNlclNlcnZpY2VcbiAgKSB7XG4gIH1cblxuICBpbnRlcmNlcHQocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIG5leHQ6IEh0dHBIYW5kbGVyKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8dW5rbm93bj4+IHtcbiAgICAvLyBDaGVjayBpZiAnY2xpZW50IGlkJyBVUkwgc2VnbWVudCBjb250YWlucyBudWxsIGluc3RlYWQgb2YgaWRcbiAgICBpZiAoIXJlcXVlc3QudXJsLnN0YXJ0c1dpdGgoYCR7QmFzaXFTZXJ2aWNlLmJhc2lxQXBpVXJsfS91c2Vycy9udWxsYCkpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnVzZXJTZXJ2aWNlLmNyZWF0ZUJhc2lxKCkucGlwZShcbiAgICAgIG1lcmdlTWFwKChiYXNpcUNsaWVudElkOiBzdHJpbmcpID0+IG5leHQuaGFuZGxlKHRoaXMuYWRkSWQocmVxdWVzdCwgYmFzaXFDbGllbnRJZCkpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFkZElkKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBiYXNpcUNsaWVudElkOiBzdHJpbmcpOiBIdHRwUmVxdWVzdDx1bmtub3duPiB7XG4gICAgcmV0dXJuIHJlcXVlc3QuY2xvbmUoe1xuICAgICAgdXJsOiByZXF1ZXN0LnVybC5yZXBsYWNlKCdudWxsJywgYmFzaXFDbGllbnRJZClcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -27,9 +27,9 @@ export class BasiqTokenInterceptor {
27
27
  });
28
28
  }
29
29
  }
30
- BasiqTokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqTokenInterceptor, deps: [{ token: i1.BasiqTokenService }], target: i0.ɵɵFactoryTarget.Injectable });
31
- BasiqTokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqTokenInterceptor });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: BasiqTokenInterceptor, decorators: [{
30
+ BasiqTokenInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BasiqTokenInterceptor, deps: [{ token: i1.BasiqTokenService }], target: i0.ɵɵFactoryTarget.Injectable });
31
+ BasiqTokenInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BasiqTokenInterceptor });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: BasiqTokenInterceptor, decorators: [{
33
33
  type: Injectable
34
34
  }], ctorParameters: function () { return [{ type: i1.BasiqTokenService }]; } });
35
35
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaXEtdG9rZW4uaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvaW50ZXJjZXB0b3JzL2Jhc2lxLXRva2VuLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7O0FBRXpFOztHQUVHO0FBRUgsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxZQUNVLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO0lBRTlDLENBQUM7SUFFRCxTQUFTLENBQUMsT0FBNkIsRUFBRSxJQUFpQjtRQUN4RCwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUNuRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDN0I7UUFFRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQ3RDLFFBQVEsQ0FBQyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUNuRCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLFFBQVEsQ0FBQyxPQUE2QixFQUFFLEtBQWlCO1FBQy9ELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQztZQUNuQixVQUFVLEVBQUU7Z0JBQ1YsYUFBYSxFQUFFLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSzthQUN2QztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O21IQTFCVSxxQkFBcUI7dUhBQXJCLHFCQUFxQjs0RkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cFJlcXVlc3QsIEh0dHBIYW5kbGVyLCBIdHRwRXZlbnQsIEh0dHBJbnRlcmNlcHRvciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1lcmdlTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQmFzaXFUb2tlbiB9IGZyb20gJy4uL21vZGVscy9iYW5rL2Jhc2lxL2Jhc2lxLXRva2VuJztcbmltcG9ydCB7IEJhc2lxVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaHR0cC9iYW5rL2Jhc2lxL2Jhc2lxLXRva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzaXFTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvaHR0cC9iYW5rL2Jhc2lxL2Jhc2lxLnNlcnZpY2UnO1xuXG4vKipcbiAqIEludGVyY2VwdG9yIHdoaWNoIGFkZHMgdXNlcidzIGJhc2lxIHRva2VuIHRvIGFueSBodHRwIHJlcXVlc3QgdG8gYmFzaXEgYXBpXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBCYXNpcVRva2VuSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYmFzaXFUb2tlblNlcnZpY2U6IEJhc2lxVG9rZW5TZXJ2aWNlXG4gICkge1xuICB9XG5cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG4gICAgLy8gc2tpcCBub24tYmFzaXEgcmVxdWVzdHNcbiAgICBpZiAoIXJlcXVlc3QudXJsLmluY2x1ZGVzKEJhc2lxU2VydmljZS5iYXNpcUFwaVVybCkpIHtcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXF1ZXN0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5iYXNpcVRva2VuU2VydmljZS5nZXQoKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHRva2VuOiBCYXNpcVRva2VuKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZSh0aGlzLmFkZFRva2VuKHJlcXVlc3QsIHRva2VuKSlcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkVG9rZW4ocmVxdWVzdDogSHR0cFJlcXVlc3Q8dW5rbm93bj4sIHRva2VuOiBCYXNpcVRva2VuKTogSHR0cFJlcXVlc3Q8dW5rbm93bj4ge1xuICAgIHJldHVybiByZXF1ZXN0LmNsb25lKHtcbiAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAnICsgdG9rZW4udmFsdWVcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -32,9 +32,9 @@ export class CorelogicInterceptor {
32
32
  });
33
33
  }
34
34
  }
35
- CorelogicInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CorelogicInterceptor, deps: [{ token: i1.CorelogicService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
36
- CorelogicInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CorelogicInterceptor });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: CorelogicInterceptor, decorators: [{
35
+ CorelogicInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CorelogicInterceptor, deps: [{ token: i1.CorelogicService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
36
+ CorelogicInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CorelogicInterceptor });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: CorelogicInterceptor, decorators: [{
38
38
  type: Injectable
39
39
  }], ctorParameters: function () { return [{ type: i1.CorelogicService }, { type: undefined, decorators: [{
40
40
  type: Inject,
@@ -31,9 +31,9 @@ export class FinancialYearInterceptor {
31
31
  return next.handle(clonedReq);
32
32
  }
33
33
  }
34
- FinancialYearInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FinancialYearInterceptor, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
35
- FinancialYearInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FinancialYearInterceptor });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: FinancialYearInterceptor, decorators: [{
34
+ FinancialYearInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FinancialYearInterceptor, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
35
+ FinancialYearInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FinancialYearInterceptor });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: FinancialYearInterceptor, decorators: [{
37
37
  type: Injectable
38
38
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
39
39
  type: Inject,
@@ -10,9 +10,9 @@ import { BasiqClientIdInterceptor } from './basiq-client-id.interceptor';
10
10
  import * as i0 from "@angular/core";
11
11
  export class InterceptorsModule {
12
12
  }
13
- InterceptorsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: InterceptorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- InterceptorsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: InterceptorsModule });
15
- InterceptorsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: InterceptorsModule, providers: [
13
+ InterceptorsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: InterceptorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ InterceptorsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: InterceptorsModule });
15
+ InterceptorsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: InterceptorsModule, providers: [
16
16
  {
17
17
  provide: HTTP_INTERCEPTORS,
18
18
  useClass: CorelogicInterceptor,
@@ -50,7 +50,7 @@ InterceptorsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", vers
50
50
  multi: true
51
51
  }
52
52
  ] });
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: InterceptorsModule, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: InterceptorsModule, decorators: [{
54
54
  type: NgModule,
55
55
  args: [{
56
56
  providers: [
@@ -131,9 +131,9 @@ export class JwtInterceptor {
131
131
  });
132
132
  }
133
133
  }
134
- JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: JwtInterceptor, deps: [{ token: i1.JwtService }, { token: i2.AuthService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
135
- JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: JwtInterceptor });
136
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: JwtInterceptor, decorators: [{
134
+ JwtInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: JwtInterceptor, deps: [{ token: i1.JwtService }, { token: i2.AuthService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
135
+ JwtInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: JwtInterceptor });
136
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: JwtInterceptor, decorators: [{
137
137
  type: Injectable
138
138
  }], ctorParameters: function () { return [{ type: i1.JwtService }, { type: i2.AuthService }, { type: undefined, decorators: [{
139
139
  type: Inject,
@@ -24,9 +24,9 @@ export class PreloaderInterceptor {
24
24
  return Object.values(ENDPOINTS).find((endpoint) => endpoint.test(requestPath));
25
25
  }
26
26
  }
27
- PreloaderInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PreloaderInterceptor, deps: [{ token: i1.PreloaderService }], target: i0.ɵɵFactoryTarget.Injectable });
28
- PreloaderInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PreloaderInterceptor });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: PreloaderInterceptor, decorators: [{
27
+ PreloaderInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PreloaderInterceptor, deps: [{ token: i1.PreloaderService }], target: i0.ɵɵFactoryTarget.Injectable });
28
+ PreloaderInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PreloaderInterceptor });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: PreloaderInterceptor, decorators: [{
30
30
  type: Injectable
31
31
  }], ctorParameters: function () { return [{ type: i1.PreloaderService }]; } });
32
32
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlbG9hZGVyLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL2ludGVyY2VwdG9ycy9wcmVsb2FkZXIuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7QUFFL0Q7O0dBRUc7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBRS9CLFlBQ1UsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDekMsQ0FBQztJQUVKLFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQ3hELE1BQU0sUUFBUSxHQUFhLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRTtZQUNkLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFcEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDOUIsUUFBUSxDQUFDLEdBQVMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxDQUFDLENBQUMsQ0FDSCxDQUFDO1NBQ0g7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVPLFlBQVksQ0FBQyxXQUFtQjtRQUN0QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBa0IsRUFBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7O2tIQXZCVSxvQkFBb0I7c0hBQXBCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgSHR0cFJlcXVlc3QsXG4gIEh0dHBIYW5kbGVyLFxuICBIdHRwRXZlbnQsXG4gIEh0dHBJbnRlcmNlcHRvclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFByZWxvYWRlclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9wcmVsb2FkZXIvcHJlbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW5kcG9pbnQgfSBmcm9tICcuLi9tb2RlbHMvZW5kcG9pbnQvZW5kcG9pbnQnO1xuaW1wb3J0IHsgRU5EUE9JTlRTIH0gZnJvbSAnLi4vbW9kZWxzL2VuZHBvaW50L2VuZHBvaW50cy5jb25zdCc7XG5cbi8qKlxuICogaW50ZXJjZXB0b3IgZm9yIHByZWxvYWRlciBoYW5kbGluZ1xuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUHJlbG9hZGVySW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHJlbG9hZGVyU2VydmljZTogUHJlbG9hZGVyU2VydmljZVxuICApIHt9XG5cbiAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG4gICAgY29uc3QgZW5kcG9pbnQ6IEVuZHBvaW50ID0gdGhpcy5maW5kRW5kcG9pbnQoYCR7cmVxdWVzdC5tZXRob2R9ICR7cmVxdWVzdC51cmx9YCk7XG4gICAgaWYgKCEhZW5kcG9pbnQpIHtcbiAgICAgIHRoaXMucHJlbG9hZGVyU2VydmljZS5hZGQoZW5kcG9pbnQpO1xuXG4gICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShcbiAgICAgICAgZmluYWxpemUoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgIHRoaXMucHJlbG9hZGVyU2VydmljZS5kZWxldGUoZW5kcG9pbnQpO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRFbmRwb2ludChyZXF1ZXN0UGF0aDogc3RyaW5nKTogRW5kcG9pbnQge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKEVORFBPSU5UUykuZmluZCgoZW5kcG9pbnQ6IEVuZHBvaW50KTogYm9vbGVhbiA9PiBlbmRwb2ludC50ZXN0KHJlcXVlc3RQYXRoKSk7XG4gIH1cbn1cbiJdfQ==
@@ -31,9 +31,9 @@ export class UserSwitcherInterceptor {
31
31
  return next.handle(this.switch(request, this.userSwitcherService.get()));
32
32
  }
33
33
  }
34
- UserSwitcherInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UserSwitcherInterceptor, deps: [{ token: i1.UserSwitcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
35
- UserSwitcherInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UserSwitcherInterceptor });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.15", ngImport: i0, type: UserSwitcherInterceptor, decorators: [{
34
+ UserSwitcherInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: UserSwitcherInterceptor, deps: [{ token: i1.UserSwitcherService }, { token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
35
+ UserSwitcherInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: UserSwitcherInterceptor });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: UserSwitcherInterceptor, decorators: [{
37
37
  type: Injectable
38
38
  }], ctorParameters: function () { return [{ type: i1.UserSwitcherService }, { type: undefined, decorators: [{
39
39
  type: Inject,
@@ -7,4 +7,15 @@ export class AppEvent {
7
7
  this.payload = payload;
8
8
  }
9
9
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9ldmVudC9hcHAtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQUNuQixZQUFtQixJQUFzQixFQUFTLE9BQVU7UUFBekMsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFHO0lBQzVELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcEV2ZW50VHlwZUVudW0gfSBmcm9tICcuL2FwcC1ldmVudC10eXBlLmVudW0nO1xuXG4vKipcbiAqIGFueSBldmVudCBoYXBwZW5lZCBpbiB0aGUgYXBwLCB3aGljaCBuZWVkcyB0byBiZSBoYW5kbGVkIHNvbWVob3cgKGRpc3RyaWJ1dGVkIHRvIG90aGVyIHBhcnQgb2YgdGhlIGFwcClcbiAqL1xuZXhwb3J0IGNsYXNzIEFwcEV2ZW50PFQ+IHtcbiAgY29uc3RydWN0b3IocHVibGljIHR5cGU6IEFwcEV2ZW50VHlwZUVudW0sIHB1YmxpYyBwYXlsb2FkOiBUKSB7XG4gIH1cbn1cbiJdfQ==
10
+ /**
11
+ * @TODO Alex (TT-1777): temp name, replace AppEvent or rename this class when all services refactored
12
+ */
13
+ export class AppEvent2 {
14
+ constructor(name,
15
+ // Pass null for deleted items, otherwise always pass changed items even if you don't need it
16
+ items) {
17
+ this.name = name;
18
+ this.items = items;
19
+ }
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHQtY29yZS9zcmMvbGliL21vZGVscy9ldmVudC9hcHAtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7O0dBRUc7QUFDSCxNQUFNLE9BQU8sUUFBUTtJQUNuQixZQUFtQixJQUFzQixFQUFTLE9BQVU7UUFBekMsU0FBSSxHQUFKLElBQUksQ0FBa0I7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFHO0lBQzVELENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLFNBQVM7SUFDcEIsWUFDUyxJQUFZO0lBQ25CLDZGQUE2RjtJQUN0RixLQUF3QjtRQUZ4QixTQUFJLEdBQUosSUFBSSxDQUFRO1FBRVosVUFBSyxHQUFMLEtBQUssQ0FBbUI7SUFDOUIsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZU1vZGVsIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL29ic2VydmFibGUtbW9kZWwnO1xuaW1wb3J0IHsgQXBwRXZlbnRUeXBlRW51bSB9IGZyb20gJy4vYXBwLWV2ZW50LXR5cGUuZW51bSc7XG5cbi8qKlxuICogYW55IGV2ZW50IGhhcHBlbmVkIGluIHRoZSBhcHAsIHdoaWNoIG5lZWRzIHRvIGJlIGhhbmRsZWQgc29tZWhvdyAoZGlzdHJpYnV0ZWQgdG8gb3RoZXIgcGFydCBvZiB0aGUgYXBwKVxuICovXG5leHBvcnQgY2xhc3MgQXBwRXZlbnQ8VD4ge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgdHlwZTogQXBwRXZlbnRUeXBlRW51bSwgcHVibGljIHBheWxvYWQ6IFQpIHtcbiAgfVxufVxuXG4vKipcbiAqIEBUT0RPIEFsZXggKFRULTE3NzcpOiB0ZW1wIG5hbWUsIHJlcGxhY2UgQXBwRXZlbnQgb3IgcmVuYW1lIHRoaXMgY2xhc3Mgd2hlbiBhbGwgc2VydmljZXMgcmVmYWN0b3JlZFxuICovXG5leHBvcnQgY2xhc3MgQXBwRXZlbnQyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG5hbWU6IHN0cmluZyxcbiAgICAvLyBQYXNzIG51bGwgZm9yIGRlbGV0ZWQgaXRlbXMsIG90aGVyd2lzZSBhbHdheXMgcGFzcyBjaGFuZ2VkIGl0ZW1zIGV2ZW4gaWYgeW91IGRvbid0IG5lZWQgaXRcbiAgICBwdWJsaWMgaXRlbXM6IE9ic2VydmFibGVNb2RlbFtdXG4gICkge31cbn1cbiJdfQ==
@@ -13,6 +13,7 @@ import { TaxExemptionEnum } from '../../db/Enums/property/property-sale/tax-exem
13
13
  import { PropertyCategoryListEnum } from '../../db/Enums/property/property-category-list.enum';
14
14
  import * as moment from 'moment';
15
15
  import { PropertySaleTaxExemptionMetadataCollection } from '../../collections/property/property-sale/property-sale-tax-exemption-metadata.collection';
16
+ import { PropertyCollection } from '../../collections';
16
17
  /**
17
18
  * propertySale docs - https://taxtank.atlassian.net/wiki/spaces/TAXTANK/pages/4209508353/Property+Sold+button
18
19
  */
@@ -215,6 +216,7 @@ export class Property extends PropertyBase {
215
216
  * Any assets acquired before this day are CGT exempt (because the tax didn't exist before this date).
216
217
  */
217
218
  Property.preCGTAssetDate = new Date(1985, 9, 20);
219
+ Property.collectionClass = PropertyCollection;
218
220
  __decorate([
219
221
  Type(() => Date)
220
222
  ], Property.prototype, "contractDate", void 0);
@@ -245,4 +247,4 @@ __decorate([
245
247
  __decorate([
246
248
  Exclude()
247
249
  ], Property.prototype, "documentFile", void 0);
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxJQUFJLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRzNFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDbEMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQzdGLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBR2pDLE9BQU8sRUFDTCwwQ0FBMEMsRUFDM0MsTUFBTSwwRkFBMEYsQ0FBQztBQUlsRzs7R0FFRztBQUNILE1BQU0sT0FBTyxRQUFTLFNBQVEsWUFBWTtJQXNDeEMsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBSSxRQUFROztRQUNWLE9BQU8sQ0FBQyxDQUFDLENBQUEsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxNQUFNLENBQUEsQ0FBQztJQUN0QyxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLHVCQUF1QjtRQUN6QixPQUFPLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUE0QixFQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQsSUFBSSxXQUFXOztRQUNiLE9BQU8sQ0FBQSxNQUFBLElBQUksQ0FBQyxlQUFlLDBDQUFFLFdBQVcsS0FBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUEwQixFQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7O1FBQ3hCLE9BQU8sQ0FBQSxNQUFBLElBQUksQ0FBQyxtQkFBbUIsMENBQUUsWUFBWSxLQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxxQkFBcUI7O1FBQ3ZCLE9BQU8sQ0FBQSxNQUFBLElBQUksQ0FBQyxtQkFBbUIsMENBQUUsV0FBVyxLQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7O1FBQ3hCLE9BQU8sQ0FBQSxNQUFBLElBQUksQ0FBQyxtQkFBbUIsMENBQUUsWUFBWSxLQUFJLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxRQUEwQixFQUFVLEVBQUU7WUFDL0UsT0FBTyxHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3JFLENBQUMsRUFBRSxJQUFJLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUNwRSxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQW9CLEVBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGdCQUFtQyxFQUFFLFNBQTRCLEVBQUUsRUFBRTtZQUNsRyxPQUFPLGdCQUFnQixDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQy9FLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLElBQUksZ0JBQWtDLENBQUM7UUFFdkMsTUFBTSxjQUFjLEdBQVcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUU3RCxJQUFJLGNBQWMsR0FBRyxDQUFDLEVBQUU7WUFDdEIsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztTQUNoRjtRQUVELE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVELHNCQUFzQjtRQUNwQixvRkFBb0Y7UUFDcEYsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQUFZO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUEwQixFQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLElBQWtCO1FBQ2xDLE1BQU0sV0FBVyxHQUFXLElBQUksMENBQTBDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkgsSUFBSSxXQUFXLEVBQUU7WUFDZixPQUFPLFdBQVcsQ0FBQztTQUNwQjtRQUVELE9BQU8sSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQzdJLENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksQ0FBQyxJQUFrQjtRQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3RILENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWUsQ0FBQyxJQUFrQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pELENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWUsQ0FBQyxJQUFrQjtRQUNoQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztTQUM3QjtRQUVELFFBQVEsSUFBSSxFQUFFO1lBQ1osMENBQTBDO1lBQzFDLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssd0JBQXdCLENBQUMsY0FBYztnQkFDL0QsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUM7WUFDOUIsa0VBQWtFO1lBQ2xFLEtBQUssSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksQ0FBQztnQkFDMUMsT0FBTyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7WUFDeEM7Z0JBQ0UsT0FBTyxJQUFJLENBQUM7U0FDZjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUFDLElBQWtCOztRQUNyQyxNQUFNLFFBQVEsR0FBK0MsSUFBSSwwQ0FBMEMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUV2SSxRQUFRLE1BQUEsSUFBSSxDQUFDLFlBQVksMENBQUUsRUFBRSxFQUFFO1lBQzdCLDREQUE0RDtZQUM1RCxLQUFLLGdCQUFnQixDQUFDLGFBQWE7Z0JBQ2pDLE9BQU8sR0FBRyxDQUFDO1lBQ2IsOEZBQThGO1lBQzlGLEtBQUssZ0JBQWdCLENBQUMsaUJBQWlCO2dCQUNyQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBRXRELE9BQU8sQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsYUFBYSxDQUFDO1lBQ2pFLDZFQUE2RTtZQUM3RSxLQUFLLGdCQUFnQixDQUFDLGlCQUFpQjtnQkFDckMsZ0dBQWdHO2dCQUNoRyxNQUFNLEtBQUssR0FBVyxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4RSxPQUFPLFFBQVEsQ0FBQyxlQUFlLEVBQUUsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDO1lBQ2xELGlCQUFpQjtZQUNqQixLQUFLLGdCQUFnQixDQUFDLEdBQUcsQ0FBQztZQUMxQixLQUFLLGdCQUFnQixDQUFDLGNBQWMsQ0FBQztZQUNyQyxLQUFLLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztZQUMvQixLQUFLLGdCQUFnQixDQUFDLEtBQUs7Z0JBQ3pCLE9BQU8sQ0FBQyxDQUFDO1lBQ1gsZUFBZTtZQUNmO2dCQUNFLE9BQU8sQ0FBQyxDQUFDO1NBQ1o7SUFDSCxDQUFDO0lBRUQsNEJBQTRCLENBQUMsSUFBa0I7UUFDN0MsT0FBTyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDO0lBQ3ZELENBQUM7SUFFRDs7T0FFRztJQUNILG9CQUFvQixDQUFDLElBQWtCLEVBQUUsYUFBOEIsTUFBTTtRQUMzRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxjQUFjLENBQUMsWUFBbUMsRUFBRSxhQUFxQztRQUN2RixPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3RSxDQUFDOztBQXRRRDs7O0dBR0c7QUFDSSx3QkFBZSxHQUFTLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFHckQ7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDOzhDQUNFO0FBR25CO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztnREFDSTtBQUdyQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUM7eUNBQ0g7QUFHakI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7MENBQ0Y7QUFHM0I7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7NENBQ0U7QUFHaEM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7MkNBQ0M7QUFHOUI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7bURBQ1M7QUFHOUM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3NDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7K0NBQ0s7QUFJdEM7SUFEQyxPQUFPLEVBQUU7OENBQ1MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1Byb3BlcnR5IGFzIFByb3BlcnR5QmFzZX0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7RG9jdW1lbnRhYmxlfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RvY3VtZW50YWJsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQcm9wZXJ0eVNoYXJlfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvcHJvcGVydHkvcHJvcGVydHktc2hhcmUnO1xuaW1wb3J0IHtQcm9wZXJ0eVN1YnNjcmlwdGlvbn0gZnJvbSAnLi9wcm9wZXJ0eS1zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHtFeGNsdWRlLCBUeXBlfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQge1Bob3RvYWJsZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9waG90b2FibGUnO1xuaW1wb3J0IHtBZGRyZXNzfSBmcm9tICcuLi9hZGRyZXNzL2FkZHJlc3MnO1xuaW1wb3J0IHtQcm9wZXJ0eUNhdGVnb3J5fSBmcm9tICcuL3Byb3BlcnR5LWNhdGVnb3J5JztcbmltcG9ydCB7UHJvcGVydHlWYWx1YXRpb259IGZyb20gJy4vcHJvcGVydHktdmFsdWF0aW9uJztcbmltcG9ydCB7UHJvcGVydHlGb3JlY2FzdH0gZnJvbSAnLi9wcm9wZXJ0eS1mb3JlY2FzdCc7XG5pbXBvcnQge1Byb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudH0gZnJvbSAnLi9wcm9wZXJ0eS1jYXRlZ29yeS1tb3ZlbWVudCc7XG5pbXBvcnQge1VzZXJ9IGZyb20gJy4uL3VzZXIvdXNlcic7XG5pbXBvcnQge0ZpbmFuY2lhbFllYXJ9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyL2ZpbmFuY2lhbC15ZWFyJztcbmltcG9ydCB7VGF4RXhlbXB0aW9uRW51bX0gZnJvbSAnLi4vLi4vZGIvRW51bXMvcHJvcGVydHkvcHJvcGVydHktc2FsZS90YXgtZXhlbXB0aW9uLmVudW0nO1xuaW1wb3J0IHtQcm9wZXJ0eUNhdGVnb3J5TGlzdEVudW19IGZyb20gJy4uLy4uL2RiL0VudW1zL3Byb3BlcnR5L3Byb3BlcnR5LWNhdGVnb3J5LWxpc3QuZW51bSc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7UHJvcGVydHlTYWxlfSBmcm9tICcuL3Byb3BlcnR5LXNhbGUvcHJvcGVydHktc2FsZSc7XG5pbXBvcnQge3VuaXRPZlRpbWV9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge1xuICBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhZGF0YUNvbGxlY3Rpb25cbn0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvcHJvcGVydHkvcHJvcGVydHktc2FsZS9wcm9wZXJ0eS1zYWxlLXRheC1leGVtcHRpb24tbWV0YWRhdGEuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy9kZXByZWNpYXRpb24uY29sbGVjdGlvbic7XG5cbi8qKlxuICogcHJvcGVydHlTYWxlIGRvY3MgLSBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzQyMDk1MDgzNTMvUHJvcGVydHkrU29sZCtidXR0b25cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3BlcnR5IGV4dGVuZHMgUHJvcGVydHlCYXNlIGltcGxlbWVudHMgUGhvdG9hYmxlLCBEb2N1bWVudGFibGUge1xuICAvKipcbiAgICogUHJvcGVydHkgYWNxdWlyZWQgYmVmb3JlIDIwIFNlcHRlbWJlciAxOTg1IHdpbGwgZ2VuZXJhbGx5IGJlIHRyZWF0ZWQgYXMgcHJlLUNhcGl0YWwgR2FpbnMgVGF4IChDR1QpIGFzc2V0cy5cbiAgICogQW55IGFzc2V0cyBhY3F1aXJlZCBiZWZvcmUgdGhpcyBkYXkgYXJlIENHVCBleGVtcHQgKGJlY2F1c2UgdGhlIHRheCBkaWRuJ3QgZXhpc3QgYmVmb3JlIHRoaXMgZGF0ZSkuXG4gICAqL1xuICBzdGF0aWMgcHJlQ0dUQXNzZXREYXRlOiBEYXRlID0gbmV3IERhdGUoMTk4NSwgOSwgMjApO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGNvbnRyYWN0RGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBzZXR0bGVtZW50RGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBBZGRyZXNzKVxuICBhZGRyZXNzOiBBZGRyZXNzO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5Q2F0ZWdvcnkpXG4gIGNhdGVnb3J5OiBQcm9wZXJ0eUNhdGVnb3J5O1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5VmFsdWF0aW9uKVxuICB2YWx1YXRpb25zOiBQcm9wZXJ0eVZhbHVhdGlvbltdO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5Rm9yZWNhc3QpXG4gIGZvcmVjYXN0czogUHJvcGVydHlGb3JlY2FzdFtdO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudClcbiAgY2F0ZWdvcnlNb3ZlbWVudHM6IFByb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudFtdO1xuXG4gIEBUeXBlKCgpID0+IFVzZXIpXG4gIHVzZXI6IFVzZXI7XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlTdWJzY3JpcHRpb24pXG4gIHN1YnNjcmlwdGlvbnM6IFByb3BlcnR5U3Vic2NyaXB0aW9uW107XG5cbiAgLy8gY291bGQgYmUgRmlsZSB3aGVuIGp1c3QgYWRkZWQgbmV3IGltYWdlXG4gIEBFeGNsdWRlKClcbiAgZG9jdW1lbnRGaWxlOiBGaWxlO1xuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkcmVzcy5uYW1lO1xuICB9XG5cbiAgZ2V0IGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuc3Vic2NyaXB0aW9ucz8ubGVuZ3RoO1xuICB9XG5cbiAgaXNPd24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudXNlci5pZCA9PT0gK2xvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VySWQnKTtcbiAgfVxuXG4gIGlzU29sZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm15U2hhcmUuc2FsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaW5pdGlhbHMgb2YgcHJvcGVydHkuIFJlcXVpcmVkIGJ5IFBob3RvYWJsZSBpbnRlcmZhY2VcbiAgICovXG4gIGdldFBob3RvUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lLnNwbGl0KCcgJylbMV0uc2xpY2UoMCwgMik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHByb3BlcnR5IHBob3RvLiBSZXF1aXJlZCBieSBQaG90b2FibGUgaW50ZXJmYWNlXG4gICAqL1xuICBnZXRQaG90bygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBob3RvO1xuICB9XG5cbiAgZ2V0IGNhcGl0YWxDb3N0c1RvdGFsQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3RhbXBEdXR5ICsgdGhpcy5sZWdhbEZlZXMgKyB0aGlzLm90aGVyQ2FwaXRhbENvc3RzO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRZZWFyVmFsdWF0aW9ucygpOiBQcm9wZXJ0eVZhbHVhdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy52YWx1YXRpb25zLmZpbHRlcigodmFsdWF0aW9uOiBQcm9wZXJ0eVZhbHVhdGlvbik6IGJvb2xlYW4gPT4gdmFsdWF0aW9uLmlzQ3VycmVudFllYXIoKSk7XG4gIH1cblxuICBnZXQgbWFya2V0VmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5hY3R1YWxWYWx1YXRpb24/Lm1hcmtldFZhbHVlIHx8IDA7XG4gIH1cblxuICBnZXQgY3VycmVudFllYXJGb3JlY2FzdCgpOiBQcm9wZXJ0eUZvcmVjYXN0IHtcbiAgICByZXR1cm4gdGhpcy5mb3JlY2FzdHMuZmluZCgoZm9yZWNhc3Q6IFByb3BlcnR5Rm9yZWNhc3QpOiBib29sZWFuID0+IGZvcmVjYXN0LmlzQ3VycmVudFllYXIoKSk7XG4gIH1cblxuICBnZXQgZm9yZWNhc3RlZFJlbnRhbFJldHVybigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LnJlbnRhbFJldHVybiB8fCAwO1xuICB9XG5cbiAgZ2V0IGZvcmVjYXN0ZWRUYXhQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LnRheFBvc2l0aW9uIHx8IDA7XG4gIH1cblxuICBnZXQgZm9yZWNhc3RlZENhc2hQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LmNhc2hQb3NpdGlvbiB8fCAwO1xuICB9XG5cbiAgZ2V0IGZpcnN0Rm9yZWNhc3RZZWFyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZm9yZWNhc3RzLnJlZHVjZSgobWluOiBudW1iZXIsIGZvcmVjYXN0OiBQcm9wZXJ0eUZvcmVjYXN0KTogbnVtYmVyID0+IHtcbiAgICAgIHJldHVybiBtaW4gPiBmb3JlY2FzdC5maW5hbmNpYWxZZWFyID8gZm9yZWNhc3QuZmluYW5jaWFsWWVhciA6IG1pbjtcbiAgICB9LCBuZXcgRmluYW5jaWFsWWVhcigpLnllYXIpO1xuICB9XG5cbiAgZ2V0IG1hcmtldFZhbHVlR3Jvd3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLm1hcmtldFZhbHVlIC0gdGhpcy5wdXJjaGFzZVByaWNlKSAvIHRoaXMubWFya2V0VmFsdWU7XG4gIH1cblxuICBnZXQgbXlTaGFyZSgpOiBQcm9wZXJ0eVNoYXJlIHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZXMuZmluZCgoc2hhcmU6IFByb3BlcnR5U2hhcmUpOiBib29sZWFuID0+IHNoYXJlLnVzZXIuaWQgPT09ICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcklkJykpO1xuICB9XG5cbiAgZ2V0IGFjdHVhbFZhbHVhdGlvbigpOiBQcm9wZXJ0eVZhbHVhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWF0aW9ucy5yZWR1Y2UoKG1heERhdGVWYWx1YXRpb246IFByb3BlcnR5VmFsdWF0aW9uLCB2YWx1YXRpb246IFByb3BlcnR5VmFsdWF0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gbWF4RGF0ZVZhbHVhdGlvbi5kYXRlID4gdmFsdWF0aW9uLmRhdGUgPyBtYXhEYXRlVmFsdWF0aW9uIDogdmFsdWF0aW9uO1xuICAgIH0sIHRoaXMudmFsdWF0aW9uc1swXSk7XG4gIH1cblxuICBnZXQgY2xhaW1QZXJjZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFllYXJGb3JlY2FzdC5jbGFpbVBlcmNlbnQ7XG4gIH1cblxuICBnZXQgY2xhaW1Db2VmZmljaWVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNsYWltUGVyY2VudCAvIDEwMDtcbiAgfVxuXG4gIGdldCBzaGFyZVBlcmNlbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5teVNoYXJlLnBlcmNlbnQ7XG4gIH1cblxuICBnZXQgc2hhcmVSYXRpbygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm15U2hhcmUucGVyY2VudCAvIDEwMDtcbiAgfVxuXG4gIGdldCBwcmV2aW91c0NhdGVnb3J5KCk6IFByb3BlcnR5Q2F0ZWdvcnkge1xuICAgIGxldCBwcmV2aW91c0NhdGVnb3J5OiBQcm9wZXJ0eUNhdGVnb3J5O1xuXG4gICAgY29uc3QgbW92ZW1lbnRzQ291bnQ6IG51bWJlciA9IHRoaXMuY2F0ZWdvcnlNb3ZlbWVudHMubGVuZ3RoO1xuXG4gICAgaWYgKG1vdmVtZW50c0NvdW50ID4gMSkge1xuICAgICAgcHJldmlvdXNDYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcnlNb3ZlbWVudHNbbW92ZW1lbnRzQ291bnQgLSAyXS5wcm9wZXJ0eUNhdGVnb3J5O1xuICAgIH1cblxuICAgIHJldHVybiBwcmV2aW91c0NhdGVnb3J5O1xuICB9XG5cbiAgZ2V0Q3VycmVudFN1YnNjcmlwdGlvbigpOiBQcm9wZXJ0eVN1YnNjcmlwdGlvbiB7XG4gICAgLy8gYWx3YXlzIHJldHVybiBmaXJzdCBlbGVtZW50IGJlY2F1c2Ugc3Vic2NyaXB0aW9ucyBhcnJheSBjb250YWlucyBvbmx5IG9uZSBlbGVtZW50XG4gICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9uc1swXTtcbiAgfVxuXG4gIGdldEZvcmVjYXN0QnlZZWFyKHllYXI6IG51bWJlcik6IFByb3BlcnR5Rm9yZWNhc3Qge1xuICAgIHJldHVybiB0aGlzLmZvcmVjYXN0cy5maW5kKChmb3JlY2FzdDogUHJvcGVydHlGb3JlY2FzdCk6IGJvb2xlYW4gPT4gZm9yZWNhc3QuZmluYW5jaWFsWWVhciA9PT0geWVhcik7XG4gIH1cblxuICBnZXQgaXNTaGFyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVzLmxlbmd0aCA+IDE7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gY29uc2lkZXIgdG8gbW92ZSBtZXRob2RzIHJlbGF0ZWQgd2l0aCBwcm9wZXJ0eVNhbGUgdG8gc2VwYXJhdGVkIGNsYXNzLCBzaW5jZSB1c2VkIGp1c3QgaW4gb25lIG1vZHVsZSB5ZXRcbiAgICogcHVyY2hhc2UgY29zdHMgLSBjbGFpbWVkIGNvc3RzLCBleGNlcHQgYHBwciB0byBpbnZlc3RtZW50YCBleGVtcHRpb24sXG4gICAqIGluIHRoYXQgY2FzZSBpdCdzIGVxdWFsIHRvIG1hcmtldCB2YWx1ZSwgd2hlbiBwcm9wZXJ0eSBiZWNhbWUgYW4gaW52ZXN0bWVudCBwcm9wZXJ0eVxuICAgKi9cbiAgY2FsY3VsYXRlQ29zdEJhc2Uoc2FsZTogUHJvcGVydHlTYWxlKTogbnVtYmVyIHtcbiAgICBjb25zdCBtYXJrZXRWYWx1ZTogbnVtYmVyID0gbmV3IFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFkYXRhQ29sbGVjdGlvbihzYWxlLnRheEV4ZW1wdGlvbk1ldGFkYXRhKS5nZXRNYXJrZXRWYWx1ZSgpO1xuICAgIGlmIChtYXJrZXRWYWx1ZSkge1xuICAgICAgcmV0dXJuIG1hcmtldFZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnB1cmNoYXNlUHJpY2UgKyB0aGlzLmNhcGl0YWxDb3N0c1RvdGFsQW1vdW50ICsgc2FsZS5ob2xkaW5nQ29zdHMgKyBzYWxlLnN0cnVjdHVyYWxJbXByb3ZlbWVudHNXRFYgLSBzYWxlLmJ1aWxkaW5nQXRDb3N0Q2xhaW1lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBncm9zcyBjYXBpdGFsIGdhaW4gdGF4OiBzYWxlIGNvc3RzIC0gY29zdCBiYXNlXG4gICAqL1xuICBjYWxjdWxhdGVDR1Qoc2FsZTogUHJvcGVydHlTYWxlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHNhbGUucHJpY2UgLSBzYWxlLnNhbGVDb3N0c1RvdGFsQW1vdW50IC0gdGhpcy5jYWxjdWxhdGVDb3N0QmFzZShzYWxlKSkgKiB0aGlzLnNoYXJlUmF0aW8gLSBzYWxlLmNhcGl0YWxMb3NzO1xuICB9XG5cbiAgLyoqXG4gICAqIG5ldCBjYXBpdGFsIGdhaW4gdGF4IChpbmNsdWRlcyB0YXggZXhlbXB0aW9ucylcbiAgICovXG4gIGNhbGN1bGF0ZU5ldENHVChzYWxlOiBQcm9wZXJ0eVNhbGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldENHVEV4ZW1wdGlvblJhdGlvKHNhbGUpICogc2FsZS5ncm9zc0NHVDtcbiAgfVxuXG4gIC8qKlxuICAgKiBndWVzcyB0YXggZXhlbXB0aW9uIGJhc2VkIG9uIHByb3BlcnR5IGRldGFpbHNcbiAgICovXG4gIGdldENHVEV4ZW1wdGlvbihzYWxlOiBQcm9wZXJ0eVNhbGUpOiBUYXhFeGVtcHRpb25FbnVtIHtcbiAgICBpZiAoc2FsZS50YXhFeGVtcHRpb24pIHtcbiAgICAgIHJldHVybiBzYWxlLnRheEV4ZW1wdGlvbi5pZDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIC8vIGV4ZW1wdGlvbiBmb3IgbWFpbiByZXNpZGVuY2UgcHJvcGVydGllc1xuICAgICAgY2FzZSB0aGlzLmNhdGVnb3J5LmlkID09PSBQcm9wZXJ0eUNhdGVnb3J5TGlzdEVudW0uT1dORVJfT0NDVVBJRUQ6XG4gICAgICAgIHJldHVybiBUYXhFeGVtcHRpb25FbnVtLlBQUjtcbiAgICAgIC8vIGV4ZW1wdGlvbiBmb3IgaW52ZXN0bWVudCBwcm9wZXJ0aWVzIG93bmVkIGZvciBhdCBsZWFzdCBvbmUgeWVhclxuICAgICAgY2FzZSB0aGlzLmlzT25lWWVhckV4ZW1wdGlvbkFwcGxpY2FibGUoc2FsZSk6XG4gICAgICAgIHJldHVybiBUYXhFeGVtcHRpb25FbnVtLk9ORV9ZRUFSX1JVTEU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogdGF4IGV4ZW1wdGlvbiBjYW4gcmVkdWNlIGNndCBmcm9tIDEwMCUgdG8gbGVzcyAodXAgdG8gemVybylcbiAgICovXG4gIGdldENHVEV4ZW1wdGlvblJhdGlvKHNhbGU6IFByb3BlcnR5U2FsZSk6IG51bWJlciB7XG4gICAgY29uc3QgbWV0YWRhdGE6IFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFkYXRhQ29sbGVjdGlvbiA9IG5ldyBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhZGF0YUNvbGxlY3Rpb24oc2FsZS50YXhFeGVtcHRpb25NZXRhZGF0YSk7XG5cbiAgICBzd2l0Y2ggKHNhbGUudGF4RXhlbXB0aW9uPy5pZCkge1xuICAgICAgLy8gNTAlIGV4ZW1wdGlvbiBmb3IgaW52ZXN0bWVudHMgb3duZWQgZm9yIGF0IGxlYXN0IG9uZSB5ZWFyXG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uT05FX1lFQVJfUlVMRTpcbiAgICAgICAgcmV0dXJuIDAuNTtcbiAgICAgIC8vIGludmVzdG1lbnQgcHJvcGVydHkgYmVjb21lIG1haW4gcmVzaWRlbmNlIChleGVtcHRpb24gZm9yIG1haW4gcmVzaWRlbmNlIG93bmVyc2hpcCBkdXJhdGlvbilcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5JTlZFU1RNRU5UX1RPX1BQUjpcbiAgICAgICAgY29uc3Qgb3duZXJzaGlwRGF5cyA9IHRoaXMuZ2V0T3duZXJzaGlwRHVyYXRpb24oc2FsZSk7XG5cbiAgICAgICAgcmV0dXJuIChvd25lcnNoaXBEYXlzIC0gbWV0YWRhdGEuZ2V0UFBSRGF5cygpKSAvIG93bmVyc2hpcERheXM7XG4gICAgICAvLyBtYWluIHJlc2lkZW5jZSBiZWNvbWUgaW52ZXN0bWVudCAoZXhlbXB0aW9uIGZvciBob21lIG9mZmljZSBwZXJjZW50IHVzYWdlKVxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLlBQUl9UT19JTlZFU1RNRU5UOlxuICAgICAgICAvLyAxIHllYXIgQ0dUIGRpc2NvdW50IGNhbiBzdGlsbCBhcHBseSAob24gdGhlIGluY29tZSBwcm9kdWNpbmcgJSBpZiB1c2VkIGZvciAxMiBtb250aHMgb3IgbW9yZSlcbiAgICAgICAgY29uc3QgcmF0aW86IG51bWJlciA9IHRoaXMuaXNPbmVZZWFyRXhlbXB0aW9uQXBwbGljYWJsZShzYWxlKSA/IDAuNSA6IDE7XG4gICAgICAgIHJldHVybiBtZXRhZGF0YS5nZXRDbGFpbVBlcmNlbnQoKSAvIDEwMCAqIHJhdGlvO1xuICAgICAgLy8gZnVsbCBleGVtcHRpb25cbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5QUFI6XG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uU0lYX1lFQVJTX1JVTEU6XG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uVFJBTlNGRVI6XG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uT1RIRVI6XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgLy8gbm8gZXhlbXB0aW9uXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gIH1cblxuICBpc09uZVllYXJFeGVtcHRpb25BcHBsaWNhYmxlKHNhbGU6IFByb3BlcnR5U2FsZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzYWxlLmdyb3NzQ0dUID4gMCAmJiB0aGlzLmdldE93bmVyc2hpcER1cmF0aW9uKHNhbGUsICd5ZWFycycpID4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDR1QgaXMgbm90IGFwcGxpY2FibGUgZm9yIHByb3BlcnRpZXMgYWNxdWlyZWQgYmVmb3JlIDIwLjA5LjE5ODUgKHRheCBkaWRuJ3QgZXhpc3QgYmVmb3JlIHRoaXMgZGF0ZSkuXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvNDY0NDExMDQ2Ni9UYXgrUmV0dXJuK015VGF4Ky0rT25saW5lK0Zvcm0gKFwiQ2FwaXRhbCBnYWlucyBvciBsb3NzZXNcIiBzZWN0aW9uKVxuICAgKi9cbiAgaXNDR1RBcHBsaWNhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyYWN0RGF0ZSA+PSBQcm9wZXJ0eS5wcmVDR1RBc3NldERhdGU7XG4gIH1cblxuICAvKipcbiAgICogb3duZXJzaGlwIGR1cmF0aW9uIGZyb20gcHVyY2hhc2UgdGlsbCBzYWxlXG4gICAqL1xuICBnZXRPd25lcnNoaXBEdXJhdGlvbihzYWxlOiBQcm9wZXJ0eVNhbGUsIHVuaXRPZlRpbWU6IHVuaXRPZlRpbWUuRGlmZiA9ICdkYXlzJyk6IG51bWJlciB7XG4gICAgcmV0dXJuIG1vbWVudChzYWxlLmNvbnRyYWN0RGF0ZSkuZGlmZihtb21lbnQodGhpcy5jb250cmFjdERhdGUpLCB1bml0T2ZUaW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYXggUG9zaXRpb24gPSBJbmNvbWUgLSBFeHBlbnNlIC0gSW50ZXJlc3QgLSBEZXByZWNpYXRpb25cbiAgICogV2hlcmUgKEluY29tZSAtIEV4cGVuc2UgLSBJbnRlcmVzdCkgaXMgY2FzaCBwb3NpdGlvbi5cbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc0MTU5MjgvRGFzaGJvYXJkK1Byb3BlcnR5XG4gICAqL1xuICBnZXRUYXhQb3NpdGlvbih0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRyYW5zYWN0aW9ucy5ncm9zc0NsYWltQW1vdW50IC0gTWF0aC5hYnMoZGVwcmVjaWF0aW9ucy5jbGFpbUFtb3VudCk7XG4gIH1cbn1cbiJdfQ==
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcGVydHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsUUFBUSxJQUFJLFlBQVksRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBRzNFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDbEMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQy9ELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQzdGLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBR2pDLE9BQU8sRUFDTCwwQ0FBMEMsRUFDM0MsTUFBTSwwRkFBMEYsQ0FBQztBQUdsRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV2RDs7R0FFRztBQUNILE1BQU0sT0FBTyxRQUFTLFNBQVEsWUFBWTtJQXVDeEMsSUFBSSxJQUFJO1FBQ04sT0FB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QUFHM0I7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7NENBQ0U7QUFHaEM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7MkNBQ0M7QUFHOUI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsd0JBQXdCLENBQUM7bURBQ1M7QUFHOUM7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO3NDQUNOO0FBR1g7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7K0NBQ0s7QUFJdEM7SUFEQyxPQUFPLEVBQUU7OENBQ1MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1Byb3BlcnR5IGFzIFByb3BlcnR5QmFzZX0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3Byb3BlcnR5L3Byb3BlcnR5JztcbmltcG9ydCB7RG9jdW1lbnRhYmxlfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2RvY3VtZW50YWJsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtQcm9wZXJ0eVNoYXJlfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvcHJvcGVydHkvcHJvcGVydHktc2hhcmUnO1xuaW1wb3J0IHtQcm9wZXJ0eVN1YnNjcmlwdGlvbn0gZnJvbSAnLi9wcm9wZXJ0eS1zdWJzY3JpcHRpb24nO1xuaW1wb3J0IHtFeGNsdWRlLCBUeXBlfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQge1Bob3RvYWJsZX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9waG90b2FibGUnO1xuaW1wb3J0IHtBZGRyZXNzfSBmcm9tICcuLi9hZGRyZXNzL2FkZHJlc3MnO1xuaW1wb3J0IHtQcm9wZXJ0eUNhdGVnb3J5fSBmcm9tICcuL3Byb3BlcnR5LWNhdGVnb3J5JztcbmltcG9ydCB7UHJvcGVydHlWYWx1YXRpb259IGZyb20gJy4vcHJvcGVydHktdmFsdWF0aW9uJztcbmltcG9ydCB7UHJvcGVydHlGb3JlY2FzdH0gZnJvbSAnLi9wcm9wZXJ0eS1mb3JlY2FzdCc7XG5pbXBvcnQge1Byb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudH0gZnJvbSAnLi9wcm9wZXJ0eS1jYXRlZ29yeS1tb3ZlbWVudCc7XG5pbXBvcnQge1VzZXJ9IGZyb20gJy4uL3VzZXIvdXNlcic7XG5pbXBvcnQge0ZpbmFuY2lhbFllYXJ9IGZyb20gJy4uL2ZpbmFuY2lhbC15ZWFyL2ZpbmFuY2lhbC15ZWFyJztcbmltcG9ydCB7VGF4RXhlbXB0aW9uRW51bX0gZnJvbSAnLi4vLi4vZGIvRW51bXMvcHJvcGVydHkvcHJvcGVydHktc2FsZS90YXgtZXhlbXB0aW9uLmVudW0nO1xuaW1wb3J0IHtQcm9wZXJ0eUNhdGVnb3J5TGlzdEVudW19IGZyb20gJy4uLy4uL2RiL0VudW1zL3Byb3BlcnR5L3Byb3BlcnR5LWNhdGVnb3J5LWxpc3QuZW51bSc7XG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7UHJvcGVydHlTYWxlfSBmcm9tICcuL3Byb3BlcnR5LXNhbGUvcHJvcGVydHktc2FsZSc7XG5pbXBvcnQge3VuaXRPZlRpbWV9IGZyb20gJ21vbWVudCc7XG5pbXBvcnQge1xuICBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhZGF0YUNvbGxlY3Rpb25cbn0gZnJvbSAnLi4vLi4vY29sbGVjdGlvbnMvcHJvcGVydHkvcHJvcGVydHktc2FsZS9wcm9wZXJ0eS1zYWxlLXRheC1leGVtcHRpb24tbWV0YWRhdGEuY29sbGVjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy90cmFuc2FjdGlvbi90cmFuc2FjdGlvbi5jb2xsZWN0aW9uJztcbmltcG9ydCB7IERlcHJlY2lhdGlvbkNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucy9kZXByZWNpYXRpb24uY29sbGVjdGlvbic7XG5pbXBvcnQgeyBQcm9wZXJ0eUNvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9jb2xsZWN0aW9ucyc7XG5cbi8qKlxuICogcHJvcGVydHlTYWxlIGRvY3MgLSBodHRwczovL3RheHRhbmsuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9UQVhUQU5LL3BhZ2VzLzQyMDk1MDgzNTMvUHJvcGVydHkrU29sZCtidXR0b25cbiAqL1xuZXhwb3J0IGNsYXNzIFByb3BlcnR5IGV4dGVuZHMgUHJvcGVydHlCYXNlIGltcGxlbWVudHMgUGhvdG9hYmxlLCBEb2N1bWVudGFibGUge1xuICAvKipcbiAgICogUHJvcGVydHkgYWNxdWlyZWQgYmVmb3JlIDIwIFNlcHRlbWJlciAxOTg1IHdpbGwgZ2VuZXJhbGx5IGJlIHRyZWF0ZWQgYXMgcHJlLUNhcGl0YWwgR2FpbnMgVGF4IChDR1QpIGFzc2V0cy5cbiAgICogQW55IGFzc2V0cyBhY3F1aXJlZCBiZWZvcmUgdGhpcyBkYXkgYXJlIENHVCBleGVtcHQgKGJlY2F1c2UgdGhlIHRheCBkaWRuJ3QgZXhpc3QgYmVmb3JlIHRoaXMgZGF0ZSkuXG4gICAqL1xuICBzdGF0aWMgcHJlQ0dUQXNzZXREYXRlOiBEYXRlID0gbmV3IERhdGUoMTk4NSwgOSwgMjApO1xuICBzdGF0aWMgY29sbGVjdGlvbkNsYXNzOiB0eXBlb2YgUHJvcGVydHlDb2xsZWN0aW9uID0gUHJvcGVydHlDb2xsZWN0aW9uO1xuXG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIGNvbnRyYWN0RGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBzZXR0bGVtZW50RGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBBZGRyZXNzKVxuICBhZGRyZXNzOiBBZGRyZXNzO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5Q2F0ZWdvcnkpXG4gIGNhdGVnb3J5OiBQcm9wZXJ0eUNhdGVnb3J5O1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5VmFsdWF0aW9uKVxuICB2YWx1YXRpb25zOiBQcm9wZXJ0eVZhbHVhdGlvbltdO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5Rm9yZWNhc3QpXG4gIGZvcmVjYXN0czogUHJvcGVydHlGb3JlY2FzdFtdO1xuXG4gIEBUeXBlKCgpID0+IFByb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudClcbiAgY2F0ZWdvcnlNb3ZlbWVudHM6IFByb3BlcnR5Q2F0ZWdvcnlNb3ZlbWVudFtdO1xuXG4gIEBUeXBlKCgpID0+IFVzZXIpXG4gIHVzZXI6IFVzZXI7XG5cbiAgQFR5cGUoKCkgPT4gUHJvcGVydHlTdWJzY3JpcHRpb24pXG4gIHN1YnNjcmlwdGlvbnM6IFByb3BlcnR5U3Vic2NyaXB0aW9uW107XG5cbiAgLy8gY291bGQgYmUgRmlsZSB3aGVuIGp1c3QgYWRkZWQgbmV3IGltYWdlXG4gIEBFeGNsdWRlKClcbiAgZG9jdW1lbnRGaWxlOiBGaWxlO1xuXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYWRkcmVzcy5uYW1lO1xuICB9XG5cbiAgZ2V0IGlzQWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuc3Vic2NyaXB0aW9ucz8ubGVuZ3RoO1xuICB9XG5cbiAgaXNPd24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudXNlci5pZCA9PT0gK2xvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VySWQnKTtcbiAgfVxuXG4gIGlzU29sZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm15U2hhcmUuc2FsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgaW5pdGlhbHMgb2YgcHJvcGVydHkuIFJlcXVpcmVkIGJ5IFBob3RvYWJsZSBpbnRlcmZhY2VcbiAgICovXG4gIGdldFBob3RvUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lLnNwbGl0KCcgJylbMV0uc2xpY2UoMCwgMik7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHByb3BlcnR5IHBob3RvLiBSZXF1aXJlZCBieSBQaG90b2FibGUgaW50ZXJmYWNlXG4gICAqL1xuICBnZXRQaG90bygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBob3RvO1xuICB9XG5cbiAgZ2V0IGNhcGl0YWxDb3N0c1RvdGFsQW1vdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc3RhbXBEdXR5ICsgdGhpcy5sZWdhbEZlZXMgKyB0aGlzLm90aGVyQ2FwaXRhbENvc3RzO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRZZWFyVmFsdWF0aW9ucygpOiBQcm9wZXJ0eVZhbHVhdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy52YWx1YXRpb25zLmZpbHRlcigodmFsdWF0aW9uOiBQcm9wZXJ0eVZhbHVhdGlvbik6IGJvb2xlYW4gPT4gdmFsdWF0aW9uLmlzQ3VycmVudFllYXIoKSk7XG4gIH1cblxuICBnZXQgbWFya2V0VmFsdWUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5hY3R1YWxWYWx1YXRpb24/Lm1hcmtldFZhbHVlIHx8IDA7XG4gIH1cblxuICBnZXQgY3VycmVudFllYXJGb3JlY2FzdCgpOiBQcm9wZXJ0eUZvcmVjYXN0IHtcbiAgICByZXR1cm4gdGhpcy5mb3JlY2FzdHMuZmluZCgoZm9yZWNhc3Q6IFByb3BlcnR5Rm9yZWNhc3QpOiBib29sZWFuID0+IGZvcmVjYXN0LmlzQ3VycmVudFllYXIoKSk7XG4gIH1cblxuICBnZXQgZm9yZWNhc3RlZFJlbnRhbFJldHVybigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LnJlbnRhbFJldHVybiB8fCAwO1xuICB9XG5cbiAgZ2V0IGZvcmVjYXN0ZWRUYXhQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LnRheFBvc2l0aW9uIHx8IDA7XG4gIH1cblxuICBnZXQgZm9yZWNhc3RlZENhc2hQb3NpdGlvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRZZWFyRm9yZWNhc3Q/LmNhc2hQb3NpdGlvbiB8fCAwO1xuICB9XG5cbiAgZ2V0IGZpcnN0Rm9yZWNhc3RZZWFyKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZm9yZWNhc3RzLnJlZHVjZSgobWluOiBudW1iZXIsIGZvcmVjYXN0OiBQcm9wZXJ0eUZvcmVjYXN0KTogbnVtYmVyID0+IHtcbiAgICAgIHJldHVybiBtaW4gPiBmb3JlY2FzdC5maW5hbmNpYWxZZWFyID8gZm9yZWNhc3QuZmluYW5jaWFsWWVhciA6IG1pbjtcbiAgICB9LCBuZXcgRmluYW5jaWFsWWVhcigpLnllYXIpO1xuICB9XG5cbiAgZ2V0IG1hcmtldFZhbHVlR3Jvd3RoKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLm1hcmtldFZhbHVlIC0gdGhpcy5wdXJjaGFzZVByaWNlKSAvIHRoaXMubWFya2V0VmFsdWU7XG4gIH1cblxuICBnZXQgbXlTaGFyZSgpOiBQcm9wZXJ0eVNoYXJlIHtcbiAgICByZXR1cm4gdGhpcy5zaGFyZXMuZmluZCgoc2hhcmU6IFByb3BlcnR5U2hhcmUpOiBib29sZWFuID0+IHNoYXJlLnVzZXIuaWQgPT09ICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcklkJykpO1xuICB9XG5cbiAgZ2V0IGFjdHVhbFZhbHVhdGlvbigpOiBQcm9wZXJ0eVZhbHVhdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsdWF0aW9ucy5yZWR1Y2UoKG1heERhdGVWYWx1YXRpb246IFByb3BlcnR5VmFsdWF0aW9uLCB2YWx1YXRpb246IFByb3BlcnR5VmFsdWF0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gbWF4RGF0ZVZhbHVhdGlvbi5kYXRlID4gdmFsdWF0aW9uLmRhdGUgPyBtYXhEYXRlVmFsdWF0aW9uIDogdmFsdWF0aW9uO1xuICAgIH0sIHRoaXMudmFsdWF0aW9uc1swXSk7XG4gIH1cblxuICBnZXQgY2xhaW1QZXJjZW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFllYXJGb3JlY2FzdC5jbGFpbVBlcmNlbnQ7XG4gIH1cblxuICBnZXQgY2xhaW1Db2VmZmljaWVudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNsYWltUGVyY2VudCAvIDEwMDtcbiAgfVxuXG4gIGdldCBzaGFyZVBlcmNlbnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5teVNoYXJlLnBlcmNlbnQ7XG4gIH1cblxuICBnZXQgc2hhcmVSYXRpbygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLm15U2hhcmUucGVyY2VudCAvIDEwMDtcbiAgfVxuXG4gIGdldCBwcmV2aW91c0NhdGVnb3J5KCk6IFByb3BlcnR5Q2F0ZWdvcnkge1xuICAgIGxldCBwcmV2aW91c0NhdGVnb3J5OiBQcm9wZXJ0eUNhdGVnb3J5O1xuXG4gICAgY29uc3QgbW92ZW1lbnRzQ291bnQ6IG51bWJlciA9IHRoaXMuY2F0ZWdvcnlNb3ZlbWVudHMubGVuZ3RoO1xuXG4gICAgaWYgKG1vdmVtZW50c0NvdW50ID4gMSkge1xuICAgICAgcHJldmlvdXNDYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcnlNb3ZlbWVudHNbbW92ZW1lbnRzQ291bnQgLSAyXS5wcm9wZXJ0eUNhdGVnb3J5O1xuICAgIH1cblxuICAgIHJldHVybiBwcmV2aW91c0NhdGVnb3J5O1xuICB9XG5cbiAgZ2V0Q3VycmVudFN1YnNjcmlwdGlvbigpOiBQcm9wZXJ0eVN1YnNjcmlwdGlvbiB7XG4gICAgLy8gYWx3YXlzIHJldHVybiBmaXJzdCBlbGVtZW50IGJlY2F1c2Ugc3Vic2NyaXB0aW9ucyBhcnJheSBjb250YWlucyBvbmx5IG9uZSBlbGVtZW50XG4gICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9uc1swXTtcbiAgfVxuXG4gIGdldEZvcmVjYXN0QnlZZWFyKHllYXI6IG51bWJlcik6IFByb3BlcnR5Rm9yZWNhc3Qge1xuICAgIHJldHVybiB0aGlzLmZvcmVjYXN0cy5maW5kKChmb3JlY2FzdDogUHJvcGVydHlGb3JlY2FzdCk6IGJvb2xlYW4gPT4gZm9yZWNhc3QuZmluYW5jaWFsWWVhciA9PT0geWVhcik7XG4gIH1cblxuICBnZXQgaXNTaGFyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc2hhcmVzLmxlbmd0aCA+IDE7XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gY29uc2lkZXIgdG8gbW92ZSBtZXRob2RzIHJlbGF0ZWQgd2l0aCBwcm9wZXJ0eVNhbGUgdG8gc2VwYXJhdGVkIGNsYXNzLCBzaW5jZSB1c2VkIGp1c3QgaW4gb25lIG1vZHVsZSB5ZXRcbiAgICogcHVyY2hhc2UgY29zdHMgLSBjbGFpbWVkIGNvc3RzLCBleGNlcHQgYHBwciB0byBpbnZlc3RtZW50YCBleGVtcHRpb24sXG4gICAqIGluIHRoYXQgY2FzZSBpdCdzIGVxdWFsIHRvIG1hcmtldCB2YWx1ZSwgd2hlbiBwcm9wZXJ0eSBiZWNhbWUgYW4gaW52ZXN0bWVudCBwcm9wZXJ0eVxuICAgKi9cbiAgY2FsY3VsYXRlQ29zdEJhc2Uoc2FsZTogUHJvcGVydHlTYWxlKTogbnVtYmVyIHtcbiAgICBjb25zdCBtYXJrZXRWYWx1ZTogbnVtYmVyID0gbmV3IFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFkYXRhQ29sbGVjdGlvbihzYWxlLnRheEV4ZW1wdGlvbk1ldGFkYXRhKS5nZXRNYXJrZXRWYWx1ZSgpO1xuICAgIGlmIChtYXJrZXRWYWx1ZSkge1xuICAgICAgcmV0dXJuIG1hcmtldFZhbHVlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLnB1cmNoYXNlUHJpY2UgKyB0aGlzLmNhcGl0YWxDb3N0c1RvdGFsQW1vdW50ICsgc2FsZS5ob2xkaW5nQ29zdHMgKyBzYWxlLnN0cnVjdHVyYWxJbXByb3ZlbWVudHNXRFYgLSBzYWxlLmJ1aWxkaW5nQXRDb3N0Q2xhaW1lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBncm9zcyBjYXBpdGFsIGdhaW4gdGF4OiBzYWxlIGNvc3RzIC0gY29zdCBiYXNlXG4gICAqL1xuICBjYWxjdWxhdGVDR1Qoc2FsZTogUHJvcGVydHlTYWxlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHNhbGUucHJpY2UgLSBzYWxlLnNhbGVDb3N0c1RvdGFsQW1vdW50IC0gdGhpcy5jYWxjdWxhdGVDb3N0QmFzZShzYWxlKSkgKiB0aGlzLnNoYXJlUmF0aW8gLSBzYWxlLmNhcGl0YWxMb3NzO1xuICB9XG5cbiAgLyoqXG4gICAqIG5ldCBjYXBpdGFsIGdhaW4gdGF4IChpbmNsdWRlcyB0YXggZXhlbXB0aW9ucylcbiAgICovXG4gIGNhbGN1bGF0ZU5ldENHVChzYWxlOiBQcm9wZXJ0eVNhbGUpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldENHVEV4ZW1wdGlvblJhdGlvKHNhbGUpICogc2FsZS5ncm9zc0NHVDtcbiAgfVxuXG4gIC8qKlxuICAgKiBndWVzcyB0YXggZXhlbXB0aW9uIGJhc2VkIG9uIHByb3BlcnR5IGRldGFpbHNcbiAgICovXG4gIGdldENHVEV4ZW1wdGlvbihzYWxlOiBQcm9wZXJ0eVNhbGUpOiBUYXhFeGVtcHRpb25FbnVtIHtcbiAgICBpZiAoc2FsZS50YXhFeGVtcHRpb24pIHtcbiAgICAgIHJldHVybiBzYWxlLnRheEV4ZW1wdGlvbi5pZDtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgIC8vIGV4ZW1wdGlvbiBmb3IgbWFpbiByZXNpZGVuY2UgcHJvcGVydGllc1xuICAgICAgY2FzZSB0aGlzLmNhdGVnb3J5LmlkID09PSBQcm9wZXJ0eUNhdGVnb3J5TGlzdEVudW0uT1dORVJfT0NDVVBJRUQ6XG4gICAgICAgIHJldHVybiBUYXhFeGVtcHRpb25FbnVtLlBQUjtcbiAgICAgIC8vIGV4ZW1wdGlvbiBmb3IgaW52ZXN0bWVudCBwcm9wZXJ0aWVzIG93bmVkIGZvciBhdCBsZWFzdCBvbmUgeWVhclxuICAgICAgY2FzZSB0aGlzLmlzT25lWWVhckV4ZW1wdGlvbkFwcGxpY2FibGUoc2FsZSk6XG4gICAgICAgIHJldHVybiBUYXhFeGVtcHRpb25FbnVtLk9ORV9ZRUFSX1JVTEU7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogdGF4IGV4ZW1wdGlvbiBjYW4gcmVkdWNlIGNndCBmcm9tIDEwMCUgdG8gbGVzcyAodXAgdG8gemVybylcbiAgICovXG4gIGdldENHVEV4ZW1wdGlvblJhdGlvKHNhbGU6IFByb3BlcnR5U2FsZSk6IG51bWJlciB7XG4gICAgY29uc3QgbWV0YWRhdGE6IFByb3BlcnR5U2FsZVRheEV4ZW1wdGlvbk1ldGFkYXRhQ29sbGVjdGlvbiA9IG5ldyBQcm9wZXJ0eVNhbGVUYXhFeGVtcHRpb25NZXRhZGF0YUNvbGxlY3Rpb24oc2FsZS50YXhFeGVtcHRpb25NZXRhZGF0YSk7XG5cbiAgICBzd2l0Y2ggKHNhbGUudGF4RXhlbXB0aW9uPy5pZCkge1xuICAgICAgLy8gNTAlIGV4ZW1wdGlvbiBmb3IgaW52ZXN0bWVudHMgb3duZWQgZm9yIGF0IGxlYXN0IG9uZSB5ZWFyXG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uT05FX1lFQVJfUlVMRTpcbiAgICAgICAgcmV0dXJuIDAuNTtcbiAgICAgIC8vIGludmVzdG1lbnQgcHJvcGVydHkgYmVjb21lIG1haW4gcmVzaWRlbmNlIChleGVtcHRpb24gZm9yIG1haW4gcmVzaWRlbmNlIG93bmVyc2hpcCBkdXJhdGlvbilcbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5JTlZFU1RNRU5UX1RPX1BQUjpcbiAgICAgICAgY29uc3Qgb3duZXJzaGlwRGF5cyA9IHRoaXMuZ2V0T3duZXJzaGlwRHVyYXRpb24oc2FsZSk7XG5cbiAgICAgICAgcmV0dXJuIChvd25lcnNoaXBEYXlzIC0gbWV0YWRhdGEuZ2V0UFBSRGF5cygpKSAvIG93bmVyc2hpcERheXM7XG4gICAgICAvLyBtYWluIHJlc2lkZW5jZSBiZWNvbWUgaW52ZXN0bWVudCAoZXhlbXB0aW9uIGZvciBob21lIG9mZmljZSBwZXJjZW50IHVzYWdlKVxuICAgICAgY2FzZSBUYXhFeGVtcHRpb25FbnVtLlBQUl9UT19JTlZFU1RNRU5UOlxuICAgICAgICAvLyAxIHllYXIgQ0dUIGRpc2NvdW50IGNhbiBzdGlsbCBhcHBseSAob24gdGhlIGluY29tZSBwcm9kdWNpbmcgJSBpZiB1c2VkIGZvciAxMiBtb250aHMgb3IgbW9yZSlcbiAgICAgICAgY29uc3QgcmF0aW86IG51bWJlciA9IHRoaXMuaXNPbmVZZWFyRXhlbXB0aW9uQXBwbGljYWJsZShzYWxlKSA/IDAuNSA6IDE7XG4gICAgICAgIHJldHVybiBtZXRhZGF0YS5nZXRDbGFpbVBlcmNlbnQoKSAvIDEwMCAqIHJhdGlvO1xuICAgICAgLy8gZnVsbCBleGVtcHRpb25cbiAgICAgIGNhc2UgVGF4RXhlbXB0aW9uRW51bS5QUFI6XG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uU0lYX1lFQVJTX1JVTEU6XG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uVFJBTlNGRVI6XG4gICAgICBjYXNlIFRheEV4ZW1wdGlvbkVudW0uT1RIRVI6XG4gICAgICAgIHJldHVybiAwO1xuICAgICAgLy8gbm8gZXhlbXB0aW9uXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gMTtcbiAgICB9XG4gIH1cblxuICBpc09uZVllYXJFeGVtcHRpb25BcHBsaWNhYmxlKHNhbGU6IFByb3BlcnR5U2FsZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzYWxlLmdyb3NzQ0dUID4gMCAmJiB0aGlzLmdldE93bmVyc2hpcER1cmF0aW9uKHNhbGUsICd5ZWFycycpID4gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDR1QgaXMgbm90IGFwcGxpY2FibGUgZm9yIHByb3BlcnRpZXMgYWNxdWlyZWQgYmVmb3JlIDIwLjA5LjE5ODUgKHRheCBkaWRuJ3QgZXhpc3QgYmVmb3JlIHRoaXMgZGF0ZSkuXG4gICAqIGh0dHBzOi8vdGF4dGFuay5hdGxhc3NpYW4ubmV0L3dpa2kvc3BhY2VzL1RBWFRBTksvcGFnZXMvNDY0NDExMDQ2Ni9UYXgrUmV0dXJuK015VGF4Ky0rT25saW5lK0Zvcm0gKFwiQ2FwaXRhbCBnYWlucyBvciBsb3NzZXNcIiBzZWN0aW9uKVxuICAgKi9cbiAgaXNDR1RBcHBsaWNhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNvbnRyYWN0RGF0ZSA+PSBQcm9wZXJ0eS5wcmVDR1RBc3NldERhdGU7XG4gIH1cblxuICAvKipcbiAgICogb3duZXJzaGlwIGR1cmF0aW9uIGZyb20gcHVyY2hhc2UgdGlsbCBzYWxlXG4gICAqL1xuICBnZXRPd25lcnNoaXBEdXJhdGlvbihzYWxlOiBQcm9wZXJ0eVNhbGUsIHVuaXRPZlRpbWU6IHVuaXRPZlRpbWUuRGlmZiA9ICdkYXlzJyk6IG51bWJlciB7XG4gICAgcmV0dXJuIG1vbWVudChzYWxlLmNvbnRyYWN0RGF0ZSkuZGlmZihtb21lbnQodGhpcy5jb250cmFjdERhdGUpLCB1bml0T2ZUaW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYXggUG9zaXRpb24gPSBJbmNvbWUgLSBFeHBlbnNlIC0gSW50ZXJlc3QgLSBEZXByZWNpYXRpb25cbiAgICogV2hlcmUgKEluY29tZSAtIEV4cGVuc2UgLSBJbnRlcmVzdCkgaXMgY2FzaCBwb3NpdGlvbi5cbiAgICogaHR0cHM6Ly90YXh0YW5rLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvVEFYVEFOSy9wYWdlcy8yMTc0MTU5MjgvRGFzaGJvYXJkK1Byb3BlcnR5XG4gICAqL1xuICBnZXRUYXhQb3NpdGlvbih0cmFuc2FjdGlvbnM6IFRyYW5zYWN0aW9uQ29sbGVjdGlvbiwgZGVwcmVjaWF0aW9uczogRGVwcmVjaWF0aW9uQ29sbGVjdGlvbik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRyYW5zYWN0aW9ucy5ncm9zc0NsYWltQW1vdW50IC0gTWF0aC5hYnMoZGVwcmVjaWF0aW9ucy5jbGFpbUFtb3VudCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,14 +1,17 @@
1
1
  import { UserRolesEnum } from '../../db/Enums/user-roles.enum';
2
+ /**
3
+ * role hierarchy
4
+ */
2
5
  export const USER_ROLES = {
3
- ROLE_FIRM_OWNER: [UserRolesEnum.FIRM_OWNER],
4
- ROLE_FIRM_MANAGER: [UserRolesEnum.FIRM_MANAGER, UserRolesEnum.FIRM_OWNER],
5
- ROLE_ACCOUNTANT: [UserRolesEnum.FIRM_MANAGER, UserRolesEnum.FIRM_OWNER, UserRolesEnum.ACCOUNTANT],
6
+ ROLE_FIRM_OWNER: [UserRolesEnum.FIRM_OWNER, UserRolesEnum.FIRM_MANAGER, UserRolesEnum.ACCOUNTANT, UserRolesEnum.ADVISOR],
7
+ ROLE_FIRM_MANAGER: [UserRolesEnum.FIRM_MANAGER, UserRolesEnum.ACCOUNTANT, UserRolesEnum.ADVISOR],
8
+ ROLE_EMPLOYEE: [UserRolesEnum.ACCOUNTANT, UserRolesEnum.ADVISOR],
9
+ ROLE_ACCOUNTANT: [UserRolesEnum.ACCOUNTANT],
10
+ ROLE_ADVISOR: [UserRolesEnum.ADVISOR],
6
11
  ROLE_CLIENT: [UserRolesEnum.CLIENT],
7
- ROLE_USER: [UserRolesEnum.USER],
8
12
  ROLE_USER_SUBSCRIPTION: [UserRolesEnum.SUBSCRIPTION],
9
13
  ROLE_USER_WORK: [UserRolesEnum.WORK_TANK],
10
14
  ROLE_USER_PROPERTY: [UserRolesEnum.PROPERTY_TANK],
11
15
  ROLE_USER_SOLE: [UserRolesEnum.SOLE_TANK],
12
- ROLE_PREVIOUS_ADMIN: [UserRolesEnum.SWITCH_USER]
13
16
  };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1yb2xlcy5jb25zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvdXNlci91c2VyLXJvbGVzLmNvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUvRCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQXFDO0lBQzFELGVBQWUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUM7SUFDM0MsaUJBQWlCLEVBQUUsQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUM7SUFDekUsZUFBZSxFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUM7SUFDakcsV0FBVyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUNuQyxTQUFTLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO0lBQy9CLHNCQUFzQixFQUFFLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQztJQUNwRCxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO0lBQ3pDLGtCQUFrQixFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztJQUNqRCxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO0lBQ3pDLG1CQUFtQixFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztDQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3VzZXItcm9sZXMuZW51bSc7XG5cbmV4cG9ydCBjb25zdCBVU0VSX1JPTEVTOiB7W2tleTogc3RyaW5nXTogVXNlclJvbGVzRW51bVtdfSA9IHtcbiAgUk9MRV9GSVJNX09XTkVSOiBbVXNlclJvbGVzRW51bS5GSVJNX09XTkVSXSxcbiAgUk9MRV9GSVJNX01BTkFHRVI6IFtVc2VyUm9sZXNFbnVtLkZJUk1fTUFOQUdFUiwgVXNlclJvbGVzRW51bS5GSVJNX09XTkVSXSxcbiAgUk9MRV9BQ0NPVU5UQU5UOiBbVXNlclJvbGVzRW51bS5GSVJNX01BTkFHRVIsIFVzZXJSb2xlc0VudW0uRklSTV9PV05FUiwgVXNlclJvbGVzRW51bS5BQ0NPVU5UQU5UXSxcbiAgUk9MRV9DTElFTlQ6IFtVc2VyUm9sZXNFbnVtLkNMSUVOVF0sXG4gIFJPTEVfVVNFUjogW1VzZXJSb2xlc0VudW0uVVNFUl0sXG4gIFJPTEVfVVNFUl9TVUJTQ1JJUFRJT046IFtVc2VyUm9sZXNFbnVtLlNVQlNDUklQVElPTl0sXG4gIFJPTEVfVVNFUl9XT1JLOiBbVXNlclJvbGVzRW51bS5XT1JLX1RBTktdLFxuICBST0xFX1VTRVJfUFJPUEVSVFk6IFtVc2VyUm9sZXNFbnVtLlBST1BFUlRZX1RBTktdLFxuICBST0xFX1VTRVJfU09MRTogW1VzZXJSb2xlc0VudW0uU09MRV9UQU5LXSxcbiAgUk9MRV9QUkVWSU9VU19BRE1JTjogW1VzZXJSb2xlc0VudW0uU1dJVENIX1VTRVJdXG59O1xuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1yb2xlcy5jb25zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvdXNlci91c2VyLXJvbGVzLmNvbnN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUvRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBcUM7SUFDMUQsZUFBZSxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQztJQUN4SCxpQkFBaUIsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDO0lBQ2hHLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLE9BQU8sQ0FBQztJQUNoRSxlQUFlLEVBQUUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO0lBQzNDLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUM7SUFDckMsV0FBVyxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUNuQyxzQkFBc0IsRUFBRSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUM7SUFDcEQsY0FBYyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztJQUN6QyxrQkFBa0IsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUM7SUFDakQsY0FBYyxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztDQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3VzZXItcm9sZXMuZW51bSc7XG5cbi8qKlxuICogcm9sZSBoaWVyYXJjaHlcbiAqL1xuZXhwb3J0IGNvbnN0IFVTRVJfUk9MRVM6IHtba2V5OiBzdHJpbmddOiBVc2VyUm9sZXNFbnVtW119ID0ge1xuICBST0xFX0ZJUk1fT1dORVI6IFtVc2VyUm9sZXNFbnVtLkZJUk1fT1dORVIsIFVzZXJSb2xlc0VudW0uRklSTV9NQU5BR0VSLCBVc2VyUm9sZXNFbnVtLkFDQ09VTlRBTlQsIFVzZXJSb2xlc0VudW0uQURWSVNPUl0sXG4gIFJPTEVfRklSTV9NQU5BR0VSOiBbVXNlclJvbGVzRW51bS5GSVJNX01BTkFHRVIsIFVzZXJSb2xlc0VudW0uQUNDT1VOVEFOVCwgVXNlclJvbGVzRW51bS5BRFZJU09SXSxcbiAgUk9MRV9FTVBMT1lFRTogW1VzZXJSb2xlc0VudW0uQUNDT1VOVEFOVCwgVXNlclJvbGVzRW51bS5BRFZJU09SXSxcbiAgUk9MRV9BQ0NPVU5UQU5UOiBbVXNlclJvbGVzRW51bS5BQ0NPVU5UQU5UXSxcbiAgUk9MRV9BRFZJU09SOiBbVXNlclJvbGVzRW51bS5BRFZJU09SXSxcbiAgUk9MRV9DTElFTlQ6IFtVc2VyUm9sZXNFbnVtLkNMSUVOVF0sXG4gIFJPTEVfVVNFUl9TVUJTQ1JJUFRJT046IFtVc2VyUm9sZXNFbnVtLlNVQlNDUklQVElPTl0sXG4gIFJPTEVfVVNFUl9XT1JLOiBbVXNlclJvbGVzRW51bS5XT1JLX1RBTktdLFxuICBST0xFX1VTRVJfUFJPUEVSVFk6IFtVc2VyUm9sZXNFbnVtLlBST1BFUlRZX1RBTktdLFxuICBST0xFX1VTRVJfU09MRTogW1VzZXJSb2xlc0VudW0uU09MRV9UQU5LXSxcbn07XG4iXX0=
@@ -2,7 +2,7 @@ import { __decorate } from "tslib";
2
2
  import { User as BaseUser } from '../../db/Models/user/user';
3
3
  import { UserStatusEnum } from '../../db/Enums/user-status.enum';
4
4
  import { UserRolesEnum } from '../../db/Enums/user-roles.enum';
5
- import { Address } from '../address/address';
5
+ import { Address } from '../address';
6
6
  import { USER_WORK_POSITION } from './user-work-position.const';
7
7
  import { ClientDetails } from '../client/client-details';
8
8
  import { EmployeeDetails } from '../employee/employee-details';
@@ -10,6 +10,9 @@ import { Type } from 'class-transformer';
10
10
  import { Phone } from '../phone/phone';
11
11
  import { ServiceSubscription } from '../service-subscription/service-subscription';
12
12
  import { SoleDetails } from '../sole';
13
+ import intersection from 'lodash/intersection';
14
+ import flatten from 'lodash/flatten';
15
+ import { USER_ROLES } from './user-roles.const';
13
16
  export class User extends BaseUser {
14
17
  get fullName() {
15
18
  return `${this.firstName} ${this.lastName}`;
@@ -36,8 +39,16 @@ export class User extends BaseUser {
36
39
  return '';
37
40
  }
38
41
  }
39
- hasRole(role) {
40
- return this.roles.includes(role);
42
+ /**
43
+ * search roles including hierarchy
44
+ */
45
+ hasRoles(roles) {
46
+ roles = roles instanceof Array ? roles : [roles];
47
+ if (!roles.length) {
48
+ return true;
49
+ }
50
+ roles = flatten(roles.map((role) => USER_ROLES[role]));
51
+ return !!intersection(this.roles, roles).length;
41
52
  }
42
53
  isOnboarding() {
43
54
  return this.status === UserStatusEnum.ON_BOARDING;
@@ -139,4 +150,4 @@ __decorate([
139
150
  __decorate([
140
151
  Type(() => User)
141
152
  ], User.prototype, "clients", void 0);
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvdXNlci91c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUduRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXRDLE1BQU0sT0FBTyxJQUFLLFNBQVEsUUFBUTtJQTBCaEMsSUFBSSxRQUFRO1FBQ1YsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBdUIsRUFBVyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElB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ZVVzZXIgfSBmcm9tICcuLi8uLi9kYi9Nb2RlbHMvdXNlci91c2VyJztcbmltcG9ydCB7IFVzZXJTdGF0dXNFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdXNlci1zdGF0dXMuZW51bSc7XG5pbXBvcnQgeyBVc2VyUm9sZXNFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdXNlci1yb2xlcy5lbnVtJztcbmltcG9ydCB7IEFkZHJlc3MgfSBmcm9tICcuLi9hZGRyZXNzL2FkZHJlc3MnO1xuaW1wb3J0IHsgVVNFUl9XT1JLX1BPU0lUSU9OIH0gZnJvbSAnLi91c2VyLXdvcmstcG9zaXRpb24uY29uc3QnO1xuaW1wb3J0IHsgQ2xpZW50RGV0YWlscyB9IGZyb20gJy4uL2NsaWVudC9jbGllbnQtZGV0YWlscyc7XG5pbXBvcnQgeyBFbXBsb3llZURldGFpbHMgfSBmcm9tICcuLi9lbXBsb3llZS9lbXBsb3llZS1kZXRhaWxzJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBQaG9uZSB9IGZyb20gJy4uL3Bob25lL3Bob25lJztcbmltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb24gfSBmcm9tICcuLi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB9IGZyb20gJy4uL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLWl0ZW0nO1xuaW1wb3J0IHsgUGhvdG9hYmxlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9waG90b2FibGUnO1xuaW1wb3J0IHsgU29sZURldGFpbHMgfSBmcm9tICcuLi9zb2xlJztcblxuZXhwb3J0IGNsYXNzIFVzZXIgZXh0ZW5kcyBCYXNlVXNlciBpbXBsZW1lbnRzIFBob3RvYWJsZSB7XG4gIEBUeXBlKCgpID0+IFNlcnZpY2VTdWJzY3JpcHRpb24pXG4gIHN1YnNjcmlwdGlvbnM6IFNlcnZpY2VTdWJzY3JpcHRpb25bXTtcblxuICBAVHlwZSgoKSA9PiBDbGllbnREZXRhaWxzKVxuICBjbGllbnREZXRhaWxzOiBDbGllbnREZXRhaWxzO1xuXG4gIEBUeXBlKCgpID0+IEVtcGxveWVlRGV0YWlscylcbiAgZW1wbG95ZWVEZXRhaWxzOiBFbXBsb3llZURldGFpbHM7XG5cbiAgQFR5cGUoKCkgPT4gU29sZURldGFpbHMpXG4gIHNvbGVEZXRhaWxzOiBTb2xlRGV0YWlscztcblxuICBAVHlwZSgoKSA9PiBBZGRyZXNzKVxuICBhZGRyZXNzOiBBZGRyZXNzO1xuXG4gIEBUeXBlKCgpID0+IFBob25lKVxuICBwaG9uZTogUGhvbmU7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgY3JlYXRlZEF0OiBEYXRlO1xuXG4gIC8vIEBUT0RPIEFsZXggcmVtb3ZlIHRoaXMgaGFja1xuICBAVHlwZSgoKSA9PiBVc2VyKVxuICBjbGllbnRzOiBVc2VyW107XG5cbiAgZ2V0IGZ1bGxOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZmlyc3ROYW1lfSAke3RoaXMubGFzdE5hbWV9YDtcbiAgfVxuXG4gIGdldCBhY3RpdmVTdWJzY3JpcHRpb24oKTogU2VydmljZVN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9ucy5maW5kKChzczogU2VydmljZVN1YnNjcmlwdGlvbik6IGJvb2xlYW4gPT4gc3MuaXNBY3RpdmUpO1xuICB9XG5cbiAgZ2V0IGxhc3RTdWJzY3JpcHRpb24oKTogU2VydmljZVN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9uc1t0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoIC0gMV07XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gcmVmYWN0b3JcbiAgICpcbiAgICovXG4gIGdldCBwb3NpdGlvbigpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSB0aGlzLmlzRmlybU93bmVyKCk6XG4gICAgICAgIHJldHVybiBVU0VSX1dPUktfUE9TSVRJT05bVXNlclJvbGVzRW51bS5GSVJNX09XTkVSXTtcbiAgICAgIGNhc2UgdGhpcy5pc01hbmFnZXIoKTpcbiAgICAgICAgcmV0dXJuIFVTRVJfV09SS19QT1NJVElPTltVc2VyUm9sZXNFbnVtLkZJUk1fTUFOQUdFUl07XG4gICAgICBjYXNlIHRoaXMuaXNFbXBsb3llZSgpOlxuICAgICAgICByZXR1cm4gVVNFUl9XT1JLX1BPU0lUSU9OW1VzZXJSb2xlc0VudW0uRU1QTE9ZRUVdO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIGhhc1JvbGUocm9sZTogVXNlclJvbGVzRW51bSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvbGVzLmluY2x1ZGVzKHJvbGUpO1xuICB9XG5cbiAgaXNPbmJvYXJkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gVXNlclN0YXR1c0VudW0uT05fQk9BUkRJTkc7XG4gIH1cblxuICBoYXNTdWJzY3JpcHRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucm9sZXMuaW5jbHVkZXMoVXNlclJvbGVzRW51bS5TVUJTQ1JJUFRJT04pO1xuICB9XG5cbiAgaXNMb2dnZWRJbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pZCA9PT0gK2xvY2FsU3RvcmFnZS5nZXRJdGVtKCd1c2VySWQnKTtcbiAgfVxuXG4gIGlzQ2xpZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvbGVzLmluY2x1ZGVzKFVzZXJSb2xlc0VudW0uQ0xJRU5UKTtcbiAgfVxuXG4gIGlzRW1wbG95ZWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNBY2NvdW50YW50KCkgfHwgdGhpcy5pc0Fkdmlzb3IoKTtcbiAgfVxuXG4gIGlzQWNjb3VudGFudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yb2xlcy5pbmNsdWRlcyhVc2VyUm9sZXNFbnVtLkFDQ09VTlRBTlQpO1xuICB9XG5cbiAgaXNBZHZpc29yKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvbGVzLmluY2x1ZGVzKFVzZXJSb2xlc0VudW0uQURWSVNPUik7XG4gIH1cblxuICBpc0ltcGVyc29uYXRvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yb2xlcy5pbmNsdWRlcyhVc2VyUm9sZXNFbnVtLlNXSVRDSF9VU0VSKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBjdXJyZW50IHVzZXIgaXMgZmlybSBvd25lclxuICAgKi9cbiAgaXNGaXJtT3duZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucm9sZXMuaW5jbHVkZXMoVXNlclJvbGVzRW51bS5GSVJNX09XTkVSKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBjdXJyZW50IHVzZXIgaXMgZmlybSBtYW5hZ2VyXG4gICAqL1xuICBpc01hbmFnZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucm9sZXMuaW5jbHVkZXMoVXNlclJvbGVzRW51bS5GSVJNX01BTkFHRVIpIHx8IHRoaXMucm9sZXMuaW5jbHVkZXMoVXNlclJvbGVzRW51bS5GSVJNX09XTkVSKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBpZiB1c2VyIGhhcyBwcm9wZXJ0eSB0YW5rIGFjY2Vzc1xuICAgKi9cbiAgaGFzUHJvcGVydHlUYW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvbGVzID9cbiAgICAgIHRoaXMucm9sZXMuaW5jbHVkZXMoVXNlclJvbGVzRW51bS5QUk9QRVJUWV9UQU5LKSA6XG4gICAgICAhIXRoaXMuZ2V0U3Vic2NyaXB0aW9uUm9sZShVc2VyUm9sZXNFbnVtLlBST1BFUlRZX1RBTkspO1xuICB9XG5cbiAgLyoqXG4gICAqIGNoZWNrIGlmIHVzZXIgaGFzIHByb3BlcnR5IHRhbmsgYWNjZXNzXG4gICAqL1xuICBoYXNXb3JrVGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yb2xlcyA/XG4gICAgICB0aGlzLnJvbGVzLmluY2x1ZGVzKFVzZXJSb2xlc0VudW0uV09SS19UQU5LKSA6XG4gICAgICAhIXRoaXMuZ2V0U3Vic2NyaXB0aW9uUm9sZShVc2VyUm9sZXNFbnVtLldPUktfVEFOSyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHVzZXIgc3Vic2NyaXB0aW9uIHJvbGUgYnkgcHJvdmlkZWQgcm9sZSB0eXBlXG4gICAqIEBwYXJhbSByb2xlVHlwZSBieSB3aGljaCByb2xlIHNob3VsZCBiZSByZXR1cm5lZFxuICAgKi9cbiAgZ2V0U3Vic2NyaXB0aW9uUm9sZShyb2xlVHlwZTogVXNlclJvbGVzRW51bSk6IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIHtcbiAgICAvKipcbiAgICAgKiBBZGQgQFRPRE8gZm9yIEFsZXggdG8gY2hlY2sgaWYgd2Ugc2hvdWxkIHVzZSBnZXRMYXN0U3Vic2NyaXB0aW9uIGhlcmVcbiAgICAgKi9cbiAgICByZXR1cm4gdGhpcy5hY3RpdmVTdWJzY3JpcHRpb24/Lml0ZW1zXG4gICAgICAuZmluZCgoc3Vic2NyaXB0aW9uSXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IHN1YnNjcmlwdGlvbkl0ZW0ucHJpY2UucHJvZHVjdC5yb2xlLmluY2x1ZGVzKHJvbGVUeXBlKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHVzZXIncyBwaG90byBsaW5rXG4gICAqL1xuICBnZXRQaG90bygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBob3RvO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCB1c2VyJ3MgaW5pdGlhbHNcbiAgICovXG4gIGdldFBob3RvUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5maXJzdE5hbWVbMF0udG9VcHBlckNhc2UoKX0ke3RoaXMubGFzdE5hbWVbMF0udG9VcHBlckNhc2UoKX1gO1xuICB9XG59XG5cbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvdXNlci91c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsSUFBSSxJQUFJLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFHbkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN0QyxPQUFPLFlBQVksTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLE9BQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsTUFBTSxPQUFPLElBQUssU0FBUSxRQUFRO0lBMEJoQyxJQUFJLFFBQVE7UUFDVixPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGFBQWEs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QUFJLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDOzJDQUNHO0FBRzdCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQzs2Q0FDSztBQUdqQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUM7eUNBQ0M7QUFHekI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO3FDQUNIO0FBR2pCO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQzttQ0FDTDtBQUdiO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQzt1Q0FDRDtBQUloQjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7cUNBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBVc2VyIGFzIEJhc2VVc2VyIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3VzZXIvdXNlcic7XG5pbXBvcnQgeyBVc2VyU3RhdHVzRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3VzZXItc3RhdHVzLmVudW0nO1xuaW1wb3J0IHsgVXNlclJvbGVzRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3VzZXItcm9sZXMuZW51bSc7XG5pbXBvcnQgeyBBZGRyZXNzIH0gZnJvbSAnLi4vYWRkcmVzcyc7XG5pbXBvcnQgeyBVU0VSX1dPUktfUE9TSVRJT04gfSBmcm9tICcuL3VzZXItd29yay1wb3NpdGlvbi5jb25zdCc7XG5pbXBvcnQgeyBDbGllbnREZXRhaWxzIH0gZnJvbSAnLi4vY2xpZW50L2NsaWVudC1kZXRhaWxzJztcbmltcG9ydCB7IEVtcGxveWVlRGV0YWlscyB9IGZyb20gJy4uL2VtcGxveWVlL2VtcGxveWVlLWRldGFpbHMnO1xuaW1wb3J0IHsgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFBob25lIH0gZnJvbSAnLi4vcGhvbmUvcGhvbmUnO1xuaW1wb3J0IHsgU2VydmljZVN1YnNjcmlwdGlvbiB9IGZyb20gJy4uL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uJztcbmltcG9ydCB7IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIH0gZnJvbSAnLi4vc2VydmljZS1zdWJzY3JpcHRpb24vc2VydmljZS1zdWJzY3JpcHRpb24taXRlbSc7XG5pbXBvcnQgeyBQaG90b2FibGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3Bob3RvYWJsZSc7XG5pbXBvcnQgeyBTb2xlRGV0YWlscyB9IGZyb20gJy4uL3NvbGUnO1xuaW1wb3J0IGludGVyc2VjdGlvbiBmcm9tICdsb2Rhc2gvaW50ZXJzZWN0aW9uJztcbmltcG9ydCBmbGF0dGVuIGZyb20gJ2xvZGFzaC9mbGF0dGVuJztcbmltcG9ydCB7VVNFUl9ST0xFU30gZnJvbSAnLi91c2VyLXJvbGVzLmNvbnN0JztcblxuZXhwb3J0IGNsYXNzIFVzZXIgZXh0ZW5kcyBCYXNlVXNlciBpbXBsZW1lbnRzIFBob3RvYWJsZSB7XG4gIEBUeXBlKCgpID0+IFNlcnZpY2VTdWJzY3JpcHRpb24pXG4gIHN1YnNjcmlwdGlvbnM6IFNlcnZpY2VTdWJzY3JpcHRpb25bXTtcblxuICBAVHlwZSgoKSA9PiBDbGllbnREZXRhaWxzKVxuICBjbGllbnREZXRhaWxzOiBDbGllbnREZXRhaWxzO1xuXG4gIEBUeXBlKCgpID0+IEVtcGxveWVlRGV0YWlscylcbiAgZW1wbG95ZWVEZXRhaWxzOiBFbXBsb3llZURldGFpbHM7XG5cbiAgQFR5cGUoKCkgPT4gU29sZURldGFpbHMpXG4gIHNvbGVEZXRhaWxzOiBTb2xlRGV0YWlscztcblxuICBAVHlwZSgoKSA9PiBBZGRyZXNzKVxuICBhZGRyZXNzOiBBZGRyZXNzO1xuXG4gIEBUeXBlKCgpID0+IFBob25lKVxuICBwaG9uZTogUGhvbmU7XG5cbiAgQFR5cGUoKCkgPT4gRGF0ZSlcbiAgY3JlYXRlZEF0OiBEYXRlO1xuXG4gIC8vIEBUT0RPIEFsZXggcmVtb3ZlIHRoaXMgaGFja1xuICBAVHlwZSgoKSA9PiBVc2VyKVxuICBjbGllbnRzOiBVc2VyW107XG5cbiAgZ2V0IGZ1bGxOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZmlyc3ROYW1lfSAke3RoaXMubGFzdE5hbWV9YDtcbiAgfVxuXG4gIGdldCBhY3RpdmVTdWJzY3JpcHRpb24oKTogU2VydmljZVN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9ucy5maW5kKChzczogU2VydmljZVN1YnNjcmlwdGlvbik6IGJvb2xlYW4gPT4gc3MuaXNBY3RpdmUpO1xuICB9XG5cbiAgZ2V0IGxhc3RTdWJzY3JpcHRpb24oKTogU2VydmljZVN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9uc1t0aGlzLnN1YnNjcmlwdGlvbnMubGVuZ3RoIC0gMV07XG4gIH1cblxuICAvKipcbiAgICogQFRPRE8gcmVmYWN0b3JcbiAgICpcbiAgICovXG4gIGdldCBwb3NpdGlvbigpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgY2FzZSB0aGlzLmlzRmlybU93bmVyKCk6XG4gICAgICAgIHJldHVybiBVU0VSX1dPUktfUE9TSVRJT05bVXNlclJvbGVzRW51bS5GSVJNX09XTkVSXTtcbiAgICAgIGNhc2UgdGhpcy5pc01hbmFnZXIoKTpcbiAgICAgICAgcmV0dXJuIFVTRVJfV09SS19QT1NJVElPTltVc2VyUm9sZXNFbnVtLkZJUk1fTUFOQUdFUl07XG4gICAgICBjYXNlIHRoaXMuaXNFbXBsb3llZSgpOlxuICAgICAgICByZXR1cm4gVVNFUl9XT1JLX1BPU0lUSU9OW1VzZXJSb2xlc0VudW0uRU1QTE9ZRUVdO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBzZWFyY2ggcm9sZXMgaW5jbHVkaW5nIGhpZXJhcmNoeVxuICAgKi9cbiAgaGFzUm9sZXMocm9sZXM6IFVzZXJSb2xlc0VudW0gfCBVc2VyUm9sZXNFbnVtW10pOiBib29sZWFuIHtcbiAgICByb2xlcyA9IHJvbGVzIGluc3RhbmNlb2YgQXJyYXkgPyByb2xlcyA6IFtyb2xlc107XG4gICAgaWYgKCFyb2xlcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJvbGVzID0gZmxhdHRlbihyb2xlcy5tYXAoKHJvbGUpID0+IFVTRVJfUk9MRVNbcm9sZV0pKTtcbiAgICByZXR1cm4gISFpbnRlcnNlY3Rpb24odGhpcy5yb2xlcywgcm9sZXMpLmxlbmd0aDtcbiAgfVxuXG4gIGlzT25ib2FyZGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFVzZXJTdGF0dXNFbnVtLk9OX0JPQVJESU5HO1xuICB9XG5cbiAgaGFzU3Vic2NyaXB0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvbGVzLmluY2x1ZGVzKFVzZXJSb2xlc0VudW0uU1VCU0NSSVBUSU9OKTtcbiAgfVxuXG4gIGlzTG9nZ2VkSW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaWQgPT09ICtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndXNlcklkJyk7XG4gIH1cblxuICBpc0NsaWVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yb2xlcy5pbmNsdWRlcyhVc2VyUm9sZXNFbnVtLkNMSUVOVCk7XG4gIH1cblxuICBpc0VtcGxveWVlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzQWNjb3VudGFudCgpIHx8IHRoaXMuaXNBZHZpc29yKCk7XG4gIH1cblxuICBpc0FjY291bnRhbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucm9sZXMuaW5jbHVkZXMoVXNlclJvbGVzRW51bS5BQ0NPVU5UQU5UKTtcbiAgfVxuXG4gIGlzQWR2aXNvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yb2xlcy5pbmNsdWRlcyhVc2VyUm9sZXNFbnVtLkFEVklTT1IpO1xuICB9XG5cbiAgaXNJbXBlcnNvbmF0b3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucm9sZXMuaW5jbHVkZXMoVXNlclJvbGVzRW51bS5TV0lUQ0hfVVNFUik7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgY3VycmVudCB1c2VyIGlzIGZpcm0gb3duZXJcbiAgICovXG4gIGlzRmlybU93bmVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvbGVzLmluY2x1ZGVzKFVzZXJSb2xlc0VudW0uRklSTV9PV05FUik7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgY3VycmVudCB1c2VyIGlzIGZpcm0gbWFuYWdlclxuICAgKi9cbiAgaXNNYW5hZ2VyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvbGVzLmluY2x1ZGVzKFVzZXJSb2xlc0VudW0uRklSTV9NQU5BR0VSKSB8fCB0aGlzLnJvbGVzLmluY2x1ZGVzKFVzZXJSb2xlc0VudW0uRklSTV9PV05FUik7XG4gIH1cblxuICAvKipcbiAgICogY2hlY2sgaWYgdXNlciBoYXMgcHJvcGVydHkgdGFuayBhY2Nlc3NcbiAgICovXG4gIGhhc1Byb3BlcnR5VGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yb2xlcyA/XG4gICAgICB0aGlzLnJvbGVzLmluY2x1ZGVzKFVzZXJSb2xlc0VudW0uUFJPUEVSVFlfVEFOSykgOlxuICAgICAgISF0aGlzLmdldFN1YnNjcmlwdGlvblJvbGUoVXNlclJvbGVzRW51bS5QUk9QRVJUWV9UQU5LKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjaGVjayBpZiB1c2VyIGhhcyBwcm9wZXJ0eSB0YW5rIGFjY2Vzc1xuICAgKi9cbiAgaGFzV29ya1RhbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucm9sZXMgP1xuICAgICAgdGhpcy5yb2xlcy5pbmNsdWRlcyhVc2VyUm9sZXNFbnVtLldPUktfVEFOSykgOlxuICAgICAgISF0aGlzLmdldFN1YnNjcmlwdGlvblJvbGUoVXNlclJvbGVzRW51bS5XT1JLX1RBTkspO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB1c2VyIHN1YnNjcmlwdGlvbiByb2xlIGJ5IHByb3ZpZGVkIHJvbGUgdHlwZVxuICAgKiBAcGFyYW0gcm9sZVR5cGUgYnkgd2hpY2ggcm9sZSBzaG91bGQgYmUgcmV0dXJuZWRcbiAgICovXG4gIGdldFN1YnNjcmlwdGlvblJvbGUocm9sZVR5cGU6IFVzZXJSb2xlc0VudW0pOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgLyoqXG4gICAgICogQWRkIEBUT0RPIGZvciBBbGV4IHRvIGNoZWNrIGlmIHdlIHNob3VsZCB1c2UgZ2V0TGFzdFN1YnNjcmlwdGlvbiBoZXJlXG4gICAgICovXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlU3Vic2NyaXB0aW9uPy5pdGVtc1xuICAgICAgLmZpbmQoKHN1YnNjcmlwdGlvbkl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKSA9PiBzdWJzY3JpcHRpb25JdGVtLnByaWNlLnByb2R1Y3Qucm9sZS5pbmNsdWRlcyhyb2xlVHlwZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB1c2VyJ3MgcGhvdG8gbGlua1xuICAgKi9cbiAgZ2V0UGhvdG8oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5waG90bztcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgdXNlcidzIGluaXRpYWxzXG4gICAqL1xuICBnZXRQaG90b1BsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAke3RoaXMuZmlyc3ROYW1lWzBdLnRvVXBwZXJDYXNlKCl9JHt0aGlzLmxhc3ROYW1lWzBdLnRvVXBwZXJDYXNlKCl9YDtcbiAgfVxufVxuXG4iXX0=