@colijnit/transaction 12.1.3 → 12.1.7

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 (151) hide show
  1. package/app/app.component.scss +39 -0
  2. package/app/component/checkout/checkout/checkout.component.d.ts +2 -0
  3. package/app/component/checkout/checkout/checkout.component.scss +137 -0
  4. package/app/component/checkout/checkout-login/checkout-login.component.scss +35 -0
  5. package/app/component/checkout/checkout-overview/checkout-overview.component.scss +0 -0
  6. package/app/component/checkout/checkout-overview-block/checkout-overview-block.component.scss +0 -0
  7. package/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.scss +0 -0
  8. package/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.scss +3 -0
  9. package/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.d.ts +1 -0
  10. package/app/component/checkout/checkout-overview-relation-address/style/_layout.scss +19 -0
  11. package/app/component/checkout/checkout-overview-relation-address/style/_material-definition.scss +0 -0
  12. package/app/component/checkout/checkout-overview-relation-address/style/_theme.scss +7 -0
  13. package/app/component/checkout/checkout-overview-relation-address/style/material.scss +4 -0
  14. package/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +1 -2
  15. package/app/component/checkout/checkout-overview-relation-edit/style/_layout.scss +92 -0
  16. package/app/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +15 -0
  17. package/app/component/checkout/checkout-overview-relation-edit/style/_theme.scss +9 -0
  18. package/app/component/checkout/checkout-overview-relation-edit/style/material.scss +5 -0
  19. package/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.d.ts +2 -3
  20. package/app/component/checkout/checkout-relation-suggestions-list/style/_layout.scss +7 -0
  21. package/app/component/checkout/checkout-relation-suggestions-list/style/_material-definition.scss +0 -0
  22. package/app/component/checkout/checkout-relation-suggestions-list/style/_theme.scss +6 -0
  23. package/app/component/checkout/checkout-relation-suggestions-list/style/material.scss +5 -0
  24. package/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.d.ts +5 -9
  25. package/app/component/checkout/checkout-relation-suggestions-list-item/style/_layout.scss +34 -0
  26. package/app/component/checkout/checkout-relation-suggestions-list-item/style/_material-definition.scss +8 -0
  27. package/app/component/checkout/checkout-relation-suggestions-list-item/style/_theme.scss +6 -0
  28. package/app/component/checkout/checkout-relation-suggestions-list-item/style/material.scss +4 -0
  29. package/app/component/checkout/{retail-transaction-checkout/retail-transaction-checkout.component.d.ts → checkout-transaction/checkout-transaction.component.d.ts} +4 -1
  30. package/app/component/checkout/checkout-transaction/checkout-transaction.component.scss +11 -0
  31. package/app/component/checkout/ione-checkout.component.d.ts +3 -3
  32. package/app/component/core/base/default-ok-cancel-buttons.component.d.ts +2 -2
  33. package/app/component/core/base/style/_layout.scss +7 -0
  34. package/app/component/core/base/style/_material-definition.scss +0 -0
  35. package/app/component/core/base/style/_theme.scss +6 -0
  36. package/app/component/core/base/style/material.scss +4 -0
  37. package/app/component/core/characteristic-answer/characteristic-answer.component.scss +18 -0
  38. package/app/component/{common → core}/icon/icon.component.d.ts +0 -0
  39. package/app/component/core/icon/icon.component.scss +85 -0
  40. package/app/component/{common → core}/image-display/image-display.component.d.ts +1 -0
  41. package/app/component/core/image-display/style/_layout.scss +39 -0
  42. package/app/component/core/image-display/style/_material-definition.scss +0 -0
  43. package/app/component/core/image-display/style/_theme.scss +6 -0
  44. package/app/component/core/image-display/style/material.scss +4 -0
  45. package/app/component/{common → core}/no-image-display/no-image-display.component.d.ts +0 -0
  46. package/app/component/core/no-image-display/no-image-display.component.scss +0 -0
  47. package/app/component/core/relation/customer-groups.component.d.ts +13 -0
  48. package/app/component/core/stock-status-indicator/stock-status-indicator.component.scss +45 -0
  49. package/app/component/service-order/service-order.component.d.ts +4 -5
  50. package/app/component/service-order/service-order.component.scss +152 -0
  51. package/app/component/service-order/summary/transaction-delivery-summary.component.scss +20 -0
  52. package/app/component/service-order/summary/transaction-summary-block.component.scss +107 -0
  53. package/app/component/service-order/transaction-article-text/transaction-article-text.component.d.ts +22 -13
  54. package/app/component/service-order/transaction-article-text/transaction-article-text.component.scss +6 -0
  55. package/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +23 -0
  56. package/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.scss +0 -0
  57. package/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.d.ts +19 -0
  58. package/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.scss +0 -0
  59. package/app/component/service-order/transaction-header-block/transaction-header-block.component.scss +65 -0
  60. package/app/component/service-order/transaction-manager/transaction-manager.component.d.ts +3 -2
  61. package/app/component/service-order/transaction-manager/transaction-manager.component.scss +52 -0
  62. package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.scss +88 -0
  63. package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.scss +83 -0
  64. package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.scss +24 -0
  65. package/app/component/service-order/transaction-relation/transaction-relation-edit.component.scss +24 -0
  66. package/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.scss +0 -0
  67. package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.scss +17 -0
  68. package/app/component/{core → service-order}/warehouse/warehouse.component.d.ts +0 -0
  69. package/app/component/service-order/warehouse/warehouse.component.scss +52 -0
  70. package/app/component/shopping-cart/ione-shopping-cart.component.d.ts +1 -1
  71. package/app/component/shopping-cart/shopping-cart/shopping-cart.component.scss +79 -0
  72. package/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.scss +107 -0
  73. package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +1 -1
  74. package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.scss +52 -0
  75. package/{enum → app/enum}/position-grid-row.enum.d.ts +0 -0
  76. package/app/model/standard-text.d.ts +5 -0
  77. package/app/model/transaction-add-text-line-request.d.ts +9 -0
  78. package/app/service/dictionary.service.d.ts +1 -0
  79. package/app/service/ione-connector-adapter.service.d.ts +8 -2
  80. package/app/service/options.service.d.ts +2 -3
  81. package/app/service/transaction-event.service.d.ts +1 -1
  82. package/app/service/transaction.service.d.ts +8 -2
  83. package/bundles/colijnit-transaction.umd.js +970 -608
  84. package/bundles/colijnit-transaction.umd.js.map +1 -1
  85. package/colijnit-transaction.d.ts +57 -54
  86. package/colijnit-transaction.metadata.json +1 -1
  87. package/esm2015/app/component/checkout/checkout/checkout.component.js +13 -5
  88. package/esm2015/app/component/checkout/checkout-overview/checkout-overview.component.js +4 -4
  89. package/esm2015/app/component/checkout/checkout-overview-block/checkout-overview-block.component.js +1 -1
  90. package/esm2015/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +1 -1
  91. package/esm2015/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +4 -4
  92. package/esm2015/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.js +37 -49
  93. package/esm2015/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +140 -159
  94. package/esm2015/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +16 -19
  95. package/esm2015/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +17 -39
  96. package/esm2015/app/component/checkout/checkout-transaction/checkout-transaction.component.js +55 -0
  97. package/esm2015/app/component/checkout/ione-checkout.component.js +6 -6
  98. package/esm2015/app/component/checkout/ione-checkout.module.js +9 -7
  99. package/esm2015/app/component/core/base/default-ok-cancel-buttons.component.js +13 -11
  100. package/esm2015/app/component/core/base/transaction-base.component.js +1 -1
  101. package/esm2015/app/component/core/characteristic-answer/characteristic-answer.component.js +1 -1
  102. package/esm2015/app/component/core/core.module.js +12 -7
  103. package/esm2015/app/component/core/icon/icon.component.js +32 -0
  104. package/esm2015/app/component/core/image-display/image-display.component.js +45 -0
  105. package/esm2015/app/component/core/no-image-display/no-image-display.component.js +26 -0
  106. package/esm2015/app/component/core/relation/customer-groups.component.js +40 -0
  107. package/esm2015/app/component/core/stock-status-indicator/stock-status-indicator.component.js +1 -1
  108. package/esm2015/app/component/service-order/ione-service-order-module.js +11 -5
  109. package/esm2015/app/component/service-order/service-order.component.js +23 -19
  110. package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +1 -1
  111. package/esm2015/app/component/service-order/summary/transaction-summary-block.component.js +3 -3
  112. package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +107 -161
  113. package/esm2015/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.js +105 -0
  114. package/esm2015/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.js +73 -0
  115. package/esm2015/app/component/service-order/transaction-header-block/transaction-header-block.component.js +1 -1
  116. package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js +12 -3
  117. package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +3 -3
  118. package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +3 -3
  119. package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +1 -1
  120. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-edit.component.js +3 -3
  121. package/esm2015/app/component/service-order/warehouse/warehouse.component.js +133 -0
  122. package/esm2015/app/component/shopping-cart/ione-shopping-cart.component.js +2 -2
  123. package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +3 -3
  124. package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +3 -3
  125. package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +4 -4
  126. package/esm2015/app/enum/position-grid-row.enum.js +6 -0
  127. package/esm2015/app/model/standard-text.js +3 -0
  128. package/esm2015/app/model/transaction-add-text-line-request.js +11 -0
  129. package/esm2015/app/service/dictionary.service.js +20 -9
  130. package/esm2015/app/service/ione-connector-adapter.service.js +45 -2
  131. package/esm2015/app/service/options.service.js +2 -3
  132. package/esm2015/app/service/transaction-event.service.js +1 -1
  133. package/esm2015/app/service/transaction.service.js +52 -14
  134. package/esm2015/assets/dictionary/text.properties.js +9 -1
  135. package/esm2015/colijnit-transaction.js +58 -55
  136. package/fesm2015/colijnit-transaction.js +1105 -869
  137. package/fesm2015/colijnit-transaction.js.map +1 -1
  138. package/package.json +4 -4
  139. package/style/_mixin.scss +9 -0
  140. package/style/_variables.scss +75 -0
  141. package/style/styles.scss +367 -0
  142. package/styles.scss +11 -0
  143. package/app/enum/direction.enum.d.ts +0 -6
  144. package/css/styles.css +0 -38
  145. package/esm2015/app/component/checkout/retail-transaction-checkout/retail-transaction-checkout.component.js +0 -53
  146. package/esm2015/app/component/common/icon/icon.component.js +0 -32
  147. package/esm2015/app/component/common/image-display/image-display.component.js +0 -41
  148. package/esm2015/app/component/common/no-image-display/no-image-display.component.js +0 -26
  149. package/esm2015/app/component/core/warehouse/warehouse.component.js +0 -133
  150. package/esm2015/app/enum/direction.enum.js +0 -9
  151. package/esm2015/enum/position-grid-row.enum.js +0 -6
@@ -1,7 +1,8 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { EventEmitter, Injectable } from "@angular/core";
3
3
  import { IOneConnectorAdapterService } from "./ione-connector-adapter.service";
4
- import { NULL_CUSTOMER_FULL_OBJECT, NULL_RELATION_OBJECT } from "@colijnit/transactionapi/build/model/nul-relation-object";
4
+ import { CustomerFullObject } from "@colijnit/transactionapi/build/model/customer-full-object.bo";
5
+ import { NULL_CUSTOMER_FULL_OBJECT } from "@colijnit/transactionapi/build/model/nul-relation-object";
5
6
  import { TransactionKind } from "@colijnit/transactionapi/build/enum/transaction-kind.enum";
6
7
  import { SequenceName } from "@colijnit/transactionapi/build/enum/sequence-name.enum";
7
8
  import { isNill } from "@colijnit/transactionapi/build/utils/function/is-nill.function";
@@ -13,6 +14,7 @@ import { LineOperationStatus } from "@colijnit/transactionapi/build/model/line-o
13
14
  import { TransactionInfo } from "@colijnit/transactionapi/build/model/transaction-info.bo";
14
15
  import { PendingReasonType } from "@colijnit/transactionapi/build/enum/pending-reason-type.enum";
15
16
  import { PromptService } from "@colijnit/corecomponents_v12";
17
+ import { RelationStatus } from "@colijnit/transactionapi/build/enum/relation-status.enum";
16
18
  export class TransactionService {
17
19
  constructor(_connector, _prompt) {
18
20
  this._connector = _connector;
@@ -23,7 +25,6 @@ export class TransactionService {
23
25
  this.articleAmount = 0;
24
26
  this._currentLines = [];
25
27
  this._currentTotals = new TransactionTotal();
26
- this._currentRelation = NULL_RELATION_OBJECT;
27
28
  this._currentTransaction = new TransactionInfo();
28
29
  this._currentLineOperationStatus = new LineOperationStatus();
29
30
  this._currentLineOperationStatuses = [];
@@ -196,12 +197,16 @@ export class TransactionService {
196
197
  });
197
198
  });
198
199
  }
200
+ commit() {
201
+ return this._connector.commit();
202
+ }
199
203
  saveTransaction(close = false) {
200
204
  return __awaiter(this, void 0, void 0, function* () {
201
205
  const response = yield this._connector.saveTransaction(this.currentTransaction.uuid);
202
206
  if (response.isSuccess) {
203
207
  this._rememberCurrentTransaction(response);
204
208
  }
209
+ return response;
205
210
  });
206
211
  }
207
212
  saveTransactionByUuid(transactionUuid) {
@@ -286,16 +291,16 @@ export class TransactionService {
286
291
  setTransactionDeliveryOptions() {
287
292
  return __awaiter(this, void 0, void 0, function* () {
288
293
  const transactionDeliveryOptionsRequest = this._getTransactionDeliveryOptions();
289
- return new Promise((resolve, reject) => {
290
- this._connector.setTransactionDeliveryOptions(transactionDeliveryOptionsRequest).then((response) => __awaiter(this, void 0, void 0, function* () {
291
- resolve(response.isSuccess);
292
- }), (error) => {
293
- reject(error);
294
- })
295
- .catch((response) => {
296
- resolve(false);
297
- });
294
+ const response = yield this._connector.setTransactionDeliveryOptions(transactionDeliveryOptionsRequest)
295
+ .catch(() => {
296
+ return undefined;
298
297
  });
298
+ if (response && response.isSuccess) {
299
+ return true;
300
+ }
301
+ else {
302
+ return false;
303
+ }
299
304
  });
300
305
  }
301
306
  getRelationListObjects(relationRequest) {
@@ -372,7 +377,7 @@ export class TransactionService {
372
377
  });
373
378
  });
374
379
  }
375
- addTextLineToTransaction(showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr, remember = true) {
380
+ addTextLine(showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr, remember = true) {
376
381
  return __awaiter(this, void 0, void 0, function* () {
377
382
  return new Promise((resolve, reject) => {
378
383
  this._connector.addTextLineToTransaction(this.currentTransaction.uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr)
@@ -388,6 +393,21 @@ export class TransactionService {
388
393
  });
389
394
  });
390
395
  }
396
+ addTextLineToTransaction(transactionUuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr) {
397
+ return __awaiter(this, void 0, void 0, function* () {
398
+ return new Promise((resolve, reject) => {
399
+ this._connector.addTextLineToTransaction(transactionUuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr)
400
+ .then((response) => __awaiter(this, void 0, void 0, function* () {
401
+ resolve(response);
402
+ }), (error) => {
403
+ reject(error);
404
+ })
405
+ .catch((reason) => {
406
+ resolve(null);
407
+ });
408
+ });
409
+ });
410
+ }
391
411
  changeLineSequence(lineUuid, aboveLineNr, belowLineNr, remember = true) {
392
412
  return new Promise((resolve, reject) => {
393
413
  this._connector.changeLineSequence(this.currentTransaction.uuid, lineUuid, aboveLineNr, belowLineNr)
@@ -482,7 +502,23 @@ export class TransactionService {
482
502
  // const response: boolean = await this._connector.setRelationByUser(this.currentTransaction.uuid, username, password);
483
503
  // return response;
484
504
  // }
505
+ getTextTypes(languageCode) {
506
+ return __awaiter(this, void 0, void 0, function* () {
507
+ return yield this._connector.getTextTypes(languageCode);
508
+ });
509
+ }
510
+ getStandardTexts(languageCode) {
511
+ return __awaiter(this, void 0, void 0, function* () {
512
+ let data = yield this._connector.getStandardTexts(languageCode);
513
+ return data;
514
+ });
515
+ }
485
516
  _initializeTransaction() {
517
+ if (!this._currentRelation) {
518
+ this._currentRelation = new CustomerFullObject();
519
+ this._currentRelation.relationStatus = RelationStatus.RegularCustomer;
520
+ this._currentRelation.startDate = new Date();
521
+ }
486
522
  if (this._currentTransaction.preferredDeliveryDate2 === undefined) {
487
523
  this._currentTransaction.preferredDeliveryDate2 = "=";
488
524
  }
@@ -526,7 +562,9 @@ export class TransactionService {
526
562
  transactionDeliveryOptionsRequest.remark = this._currentTransaction.remark;
527
563
  transactionDeliveryOptionsRequest.transactionUuid = this._currentTransaction.uuid;
528
564
  transactionDeliveryOptionsRequest.transactionAddress = this._currentTransaction.transactionAddress.nawNr;
529
- transactionDeliveryOptionsRequest.invoiceAddress = this._currentTransaction.invoiceAddress.nawNr;
565
+ transactionDeliveryOptionsRequest.invoiceAddress = this._currentTransaction.invoiceAddress ?
566
+ this._currentTransaction.invoiceAddress.nawNr :
567
+ this._currentTransaction.transactionAddress.nawNr;
530
568
  return transactionDeliveryOptionsRequest;
531
569
  }
532
570
  _rememberResponse(remember, response) {
@@ -543,4 +581,4 @@ TransactionService.ctorParameters = () => [
543
581
  { type: IOneConnectorAdapterService },
544
582
  { type: PromptService }
545
583
  ];
546
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFrQixVQUFVLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFHN0UsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixvQkFBb0IsRUFDckIsTUFBTSwwREFBMEQsQ0FBQztBQUVsRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFHMUYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBSXBGLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUN0RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDNUUsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sa0ZBQWtGLENBQUM7QUFJdEksT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFFM0YsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFLbkcsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFHbEcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBRXpGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUczRCxNQUFNLE9BQU8sa0JBQWtCO0lBMkQ3QixZQUNTLFVBQXVDLEVBQ3ZDLE9BQXNCO1FBRHRCLGVBQVUsR0FBVixVQUFVLENBQTZCO1FBQ3ZDLFlBQU8sR0FBUCxPQUFPLENBQWU7UUE1RHhC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LE1BQU0sQ0FBQztRQUMzRSxpQ0FBaUMsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztRQUNsRixpQ0FBaUMsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDO1FBQ3pHLGlDQUFpQyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQztRQUNqRyxPQUFPLGlDQUFpQyxDQUFDO0lBQzNDLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxRQUFpQixFQUFFLFFBQStCO1FBQzFFLElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUM7OztZQWhoQkYsVUFBVTs7O1lBcENILDJCQUEyQjtZQWtDM0IsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXZlbnRFbWl0dGVyLCBJbmplY3QsIGluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWx9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0lPbmVDb25uZWN0b3JBZGFwdGVyU2VydmljZX0gZnJvbSBcIi4vaW9uZS1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0N1c3RvbWVyRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jdXN0b21lci1mdWxsLW9iamVjdC5ib1wiO1xuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tYW55LXR5cGVcIjtcbmltcG9ydCB7XG4gIE5VTExfQ1VTVE9NRVJfRlVMTF9PQkpFQ1QsXG4gIE5VTExfUkVMQVRJT05fT0JKRUNUXG59IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbnVsLXJlbGF0aW9uLW9iamVjdFwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm9SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLXJlc3BvbnNlLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bVwiO1xuaW1wb3J0IHtNYXJrZXRpbmd9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbWFya2V0aW5nLmJvXCI7XG5pbXBvcnQge1JlbGF0aW9uUHJpdmFjeVNldHRpbmd9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tcHJpdmFjeS1zZXR0aW5nLmJvXCI7XG5pbXBvcnQge1NlcXVlbmNlTmFtZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3NlcXVlbmNlLW5hbWUuZW51bVwiO1xuaW1wb3J0IHtEZWxpdmVyeU1ldGhvZH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kZWxpdmVyeS1tZXRob2QuYm9cIjtcbmltcG9ydCB7RGVsaXZlcnlPcHRpb259IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktb3B0aW9uLmJvXCI7XG5pbXBvcnQge0NvbnRhY3RPcHRpb259IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY29udGFjdC1vcHRpb24uYm9cIjtcbmltcG9ydCB7aXNOaWxsfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL3V0aWxzL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb25cIjtcbmltcG9ydCB7QXJyYXlVdGlsc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC91dGlscy9hcnJheS11dGlsc1wiO1xuaW1wb3J0IHtTZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvc2V0LXRyYW5zYWN0aW9uLWRlbGl2ZXJ5LW9wdGlvbnMtcmVxdWVzdC5ib1wiO1xuaW1wb3J0IHtSZWxhdGlvbkxpc3RPYmplY3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tbGlzdC1vYmplY3QuYm9cIjtcbmltcG9ydCB7UmVsYXRpb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLXJlcXVlc3RcIjtcbmltcG9ydCB7Q291bnRyeX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jb3VudHJ5LmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uVG90YWx9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tdG90YWwuYm9cIjtcbmltcG9ydCB7VmFsaWRhdGlvblJlc3VsdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC92YWxpZGF0aW9uLXJlc3VsdFwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24tbGluZS10eXBlLmVudW1cIjtcbmltcG9ydCB7UmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZXNvbHZlLXBlbmRpbmctcmVhc29uLXJlcXVlc3QuYm9cIjtcbmltcG9ydCB7Q29Eb21haW5WYWx1ZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jby1kb21haW4tdmFsdWUuYm9cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWFydGljbGUtd2FyZWhvdXNlLmJvXCI7XG5pbXBvcnQge0FydGljbGVGdWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2FydGljbGUtZnVsbC1vYmplY3RcIjtcbmltcG9ydCB7TGluZU9wZXJhdGlvblN0YXR1c30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9saW5lLW9wZXJhdGlvbi1zdGF0dXMuYm9cIjtcbmltcG9ydCB7TGluZU9wZXJhdGlvblJlc3BvbnNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2xpbmUtb3BlcmF0aW9uLXJlc3BvbnNlLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1pbmZvLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uUmVzcG9uc2VCYXNlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLXJlc3BvbnNlLWJhc2UuYm9cIjtcbmltcG9ydCB7UGVuZGluZ1JlYXNvblR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9wZW5kaW5nLXJlYXNvbi10eXBlLmVudW1cIjtcbmltcG9ydCB7UHJvbXB0U2VydmljZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VydmljZSB7XG4gIHB1YmxpYyB0cmFuc2FjdGlvblVwZGF0ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgcHVibGljIHRyYW5zYWN0aW9uTG9hZGVkOiBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+ID0gbmV3IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4oKTtcblxuICBwdWJsaWMgZW1haWxBZGRyZXNzOiBzdHJpbmc7XG4gIHB1YmxpYyBhcHBsaWNhdGlvblVzZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRMaW5lcygpOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10ge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50TGluZXM7XG4gIH1cblxuICBwdWJsaWMgc2V0IGN1cnJlbnRMaW5lcyh2YWx1ZTogVHJhbnNhY3Rpb25MaW5lSW5mb1tdKSB7XG4gICAgdGhpcy5fY3VycmVudExpbmVzID0gdmFsdWU7XG4gICAgdGhpcy5hcnRpY2xlQW1vdW50ID0gQXJyYXlVdGlscy5GaW5kQWxsKHRoaXMuX2N1cnJlbnRMaW5lcywgbGluZSA9PiBsaW5lLmlzQXJ0aWNsZSkubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIHNldCBjdXJyZW50VG90YWxzKHZhbHVlOiBUcmFuc2FjdGlvblRvdGFsKSB7XG4gICAgdGhpcy5fY3VycmVudFRvdGFscyA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50VG90YWxzKCk6IFRyYW5zYWN0aW9uVG90YWwge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VG90YWxzO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50UmVsYXRpb24oKTogUmVsYXRpb25BbnlUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFJlbGF0aW9uO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50VHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25JbmZvIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHVibGljIHNldCBjdXJyZW50TGluZU9wZXJhdGlvblN0YXR1c2VzKHZhbHVlczogTGluZU9wZXJhdGlvblN0YXR1c1tdKSB7XG4gICAgdGhpcy5fY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXNlcyA9IHZhbHVlcztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXNlcygpOiBMaW5lT3BlcmF0aW9uU3RhdHVzW10ge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1c2VzO1xuICB9XG5cbiAgcHVibGljIHNldCBjdXJyZW50TGluZU9wZXJhdGlvblN0YXR1cyh2YWx1ZTogTGluZU9wZXJhdGlvblN0YXR1cykge1xuICAgIHRoaXMuX2N1cnJlbnRMaW5lT3BlcmF0aW9uU3RhdHVzID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRMaW5lT3BlcmF0aW9uU3RhdHVzKCk6IExpbmVPcGVyYXRpb25TdGF0dXMgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHN0YXR1czogTGluZU9wZXJhdGlvblN0YXR1cyA9IHRoaXMuY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXNlcy5maW5kKGxpbmUgPT4gbGluZS5wZW5kaW5nUmVhc29uVHlwZSAhPT0gUGVuZGluZ1JlYXNvblR5cGUuTk9ORVxuICAgICAgICAmJiBsaW5lLnBlbmRpbmdSZWFzb25UeXBlICE9PSBQZW5kaW5nUmVhc29uVHlwZS5OT05fQ1JJVElDQUxfRElTQ09OVElOVUFUSU9OKTtcbiAgICByZXR1cm4gc3RhdHVzO1xuICB9XG5cbiAgcHVibGljIGFydGljbGVBbW91bnQ6IG51bWJlciA9IDA7XG5cbiAgcHJpdmF0ZSBfY3VycmVudExpbmVzOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10gPSBbXTtcbiAgcHJpdmF0ZSBfY3VycmVudFRvdGFsczogVHJhbnNhY3Rpb25Ub3RhbCA9IG5ldyBUcmFuc2FjdGlvblRvdGFsKCk7XG4gIHByaXZhdGUgX2N1cnJlbnRSZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlID0gTlVMTF9SRUxBVElPTl9PQkpFQ1Q7XG4gIHByaXZhdGUgX2N1cnJlbnRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvID0gbmV3IFRyYW5zYWN0aW9uSW5mbygpO1xuICBwcml2YXRlIF9jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1czogTGluZU9wZXJhdGlvblN0YXR1cyA9IG5ldyBMaW5lT3BlcmF0aW9uU3RhdHVzKCk7XG4gIHByaXZhdGUgX2N1cnJlbnRMaW5lT3BlcmF0aW9uU3RhdHVzZXM6IExpbmVPcGVyYXRpb25TdGF0dXNbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBfY29ubmVjdG9yOiBJT25lQ29ubmVjdG9yQWRhcHRlclNlcnZpY2UsXG4gICAgcHVibGljIF9wcm9tcHQ6IFByb21wdFNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMuX2luaXRpYWxpemVUcmFuc2FjdGlvbigpO1xuICB9XG5cbiAgcHVibGljIHBlbmRpbmdMaW5lT3BlcmF0aW9uU3RhdHVzKGxpbmVPcGVyYXRpb25TdGF0dXNlczogTGluZU9wZXJhdGlvblN0YXR1c1tdKTogTGluZU9wZXJhdGlvblN0YXR1cyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc3RhdHVzOiBMaW5lT3BlcmF0aW9uU3RhdHVzID0gbGluZU9wZXJhdGlvblN0YXR1c2VzLmZpbmQobGluZSA9PiBsaW5lLnBlbmRpbmdSZWFzb25UeXBlICE9PSBQZW5kaW5nUmVhc29uVHlwZS5OT05FXG4gICAgICAmJiBsaW5lLnBlbmRpbmdSZWFzb25UeXBlICE9PSBQZW5kaW5nUmVhc29uVHlwZS5OT05fQ1JJVElDQUxfRElTQ09OVElOVUFUSU9OKTtcbiAgICByZXR1cm4gc3RhdHVzO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEFydGljbGVGdWxsT2JqZWN0KGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTxBcnRpY2xlRnVsbE9iamVjdD4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0QXJ0aWNsZUZ1bGxPYmplY3QoZ29vZElkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRHb29kSWRGcm9tQXJ0aWNsZU5yKHNrdTogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldEdvb2RJZEZyb21BcnRpY2xlTnIoc2t1KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvbigpOiBQcm9taXNlPFJlbGF0aW9uQW55VHlwZT4ge1xuICAgIGNvbnN0IHJlbGF0aW9uTm86IHN0cmluZyA9IGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRSZWxhdGlvbk51bWJlcih0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24ucmVsYXRpb24ucmVsYXRpb25JZCk7XG5cbiAgICBpZiAocmVsYXRpb25Obykge1xuICAgICAgdGhpcy5fY3VycmVudFJlbGF0aW9uID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldEN1c3RvbWVyRnVsbE9iamVjdChOdW1iZXIocmVsYXRpb25ObykpO1xuICAgICAgYXdhaXQgdGhpcy5sb2FkQ291bnRyaWVzT2ZSZWxhdGlvbkFkZHJlc3NlcygpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFJlbGF0aW9uO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGxvYWRDb3VudHJpZXNPZlJlbGF0aW9uQWRkcmVzc2VzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGZvciAoY29uc3QgYWRkcmVzcyBvZiB0aGlzLmN1cnJlbnRSZWxhdGlvbi5hZGRyZXNzZXMpIHtcbiAgICAgIGNvbnN0IGNvdW50cnk6IENvdW50cnkgPSBhd2FpdCB0aGlzLmdldENvdW50cnkoYWRkcmVzcy5jb3VudHJ5SWQpO1xuICAgICAgYWRkcmVzcy5jb3VudHJ5TmFtZSA9IGNvdW50cnkuZGVzY3JpcHRpb247XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldENvdW50cnkoY291bnRyeUNvZGU6IHN0cmluZyk6IFByb21pc2U8Q291bnRyeT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0Q291bnRyeShjb3VudHJ5Q29kZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0UmVsYXRpb25OdW1iZXIocmVsYXRpb25JZDogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fY29ubmVjdG9yLmdldFJlbGF0aW9uTnVtYmVyKHJlbGF0aW9uSWQpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNhdmVOZXdSZWxhdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNsZWFuUmVsYXRpb25CZWZvcmVTYXZlKCk7XG4gICAgdGhpcy5fY3VycmVudFJlbGF0aW9uID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmluc2VydEN1c3RvbWVyKHRoaXMuX2N1cnJlbnRSZWxhdGlvbik7XG4gICAgYXdhaXQgdGhpcy5hZGRSZWxhdGlvblRvVHJhbnNhY3Rpb24odGhpcy5fY3VycmVudFJlbGF0aW9uLnJlbGF0aW9uSWQpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNhdmVSZWxhdGlvbigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLmNsZWFuUmVsYXRpb25CZWZvcmVTYXZlKCk7XG4gICAgdGhpcy5fY3VycmVudFJlbGF0aW9uID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLnVwZGF0ZUN1c3RvbWVyKHRoaXMuX2N1cnJlbnRSZWxhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgY2xlYW5SZWxhdGlvbkJlZm9yZVNhdmUoKTogdm9pZCB7XG4gICAgQXJyYXlVdGlscy5SZW1vdmVFbGVtZW50c0J5RmlsdGVyKHRoaXMuX2N1cnJlbnRSZWxhdGlvbi5jb250YWN0T3B0aW9ucywgKChpdGVtOiBDb250YWN0T3B0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gaXNOaWxsKGl0ZW0udmFsdWUpO1xuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRTZXF1ZW5jZVZhbHVlKCk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRTZXF1ZW5jZVZhbHVlKFNlcXVlbmNlTmFtZS5SZWxhdGlvbklkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvblByaXZhY3lTZXR0aW5ncygpOiBQcm9taXNlPFJlbGF0aW9uUHJpdmFjeVNldHRpbmdbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0UmVsYXRpb25Qcml2YWN5U2V0dGluZ3MoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVUcmFuc2FjdGlvbigpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuY3JlYXRlVHJhbnNhY3Rpb24oVHJhbnNhY3Rpb25LaW5kLlNhbGVzT3JkZXIsIFwiMVwiKS50aGVuKChyZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5fcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24ocmVzcG9uc2UpO1xuICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgIH0pLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgcmVqZWN0KGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihwZW5kaW5nTGluZVZhbHVlczogUmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdCwgcmVtZW1iZXI6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPigocmVzb2x2ZTogRnVuY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocGVuZGluZ0xpbmVWYWx1ZXMpLnRoZW4oYXN5bmMgKHJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5fcmVtZW1iZXJSZXNwb25zZShyZW1lbWJlciwgcmVzcG9uc2UpO1xuICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgIH0pLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25ObzogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMub3BlbkV4aXN0aW5nVHJhbnNhY3Rpb24oVHJhbnNhY3Rpb25LaW5kLlNhbGVzT3JkZXIsIHRyYW5zYWN0aW9uTm8pO1xuICB9XG5cbiAgcHVibGljIG9wZW5FeGlzdGluZ1RyYW5zYWN0aW9uKGtpbmQ6IFRyYW5zYWN0aW9uS2luZCwgdHJhbnNhY3Rpb25OcjogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLmdldFRyYW5zYWN0aW9uQnlOckFuZEtpbmQoa2luZCwgdHJhbnNhY3Rpb25OcilcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGlmIChyZXNwb25zZS5pc1N1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25Mb2FkZWQuZW1pdChyZXNwb25zZSk7XG4gICAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWplY3QoZmFsc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgICByZWplY3QoZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgcHVibGljIGdldFRyYW5zYWN0aW9uQnlJZCh0cmFuc2FjdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuZ2V0VHJhbnNhY3Rpb25CeUlkKHRyYW5zYWN0aW9uSWQpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuaXNTdWNjZXNzKSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uTG9hZGVkLmVtaXQocmVzcG9uc2UpO1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2F2ZVRyYW5zYWN0aW9uKGNsb3NlOiBib29sZWFuID0gZmFsc2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UgPSBhd2FpdCB0aGlzLl9jb25uZWN0b3Iuc2F2ZVRyYW5zYWN0aW9uKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnV1aWQpO1xuICAgIGlmIChyZXNwb25zZS5pc1N1Y2Nlc3MpIHtcbiAgICAgIHRoaXMuX3JlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2F2ZVRyYW5zYWN0aW9uQnlVdWlkKHRyYW5zYWN0aW9uVXVpZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLnNhdmVUcmFuc2FjdGlvbih0cmFuc2FjdGlvblV1aWQpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuaXNTdWNjZXNzKSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uTG9hZGVkLmVtaXQocmVzcG9uc2UpO1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgaWYgKHJlYXNvbikge1xuICAgICAgICAgICAgdGhpcy5fcHJvbXB0LnNob3dFcnJvcihyZWFzb24uZ2V0RnVsbEVycm9yU3RyaW5nKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZWplY3QoZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRSZWxhdGlvblRvVHJhbnNhY3Rpb24ocmVsYXRpb25JZDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgc3VjY2VzczogYm9vbGVhbiA9ICBhd2FpdCB0aGlzLl9jb25uZWN0b3IuYWRkUmVsYXRpb25Ub1RyYW5zYWN0aW9uKHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi51dWlkLCByZWxhdGlvbklkKTtcbiAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgYXdhaXQgdGhpcy5zYXZlVHJhbnNhY3Rpb24oKTtcbiAgICAgIGF3YWl0IHRoaXMuZ2V0VHJhbnNhY3Rpb24odGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTnIpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDb21taXNzaW9uQ29kZXMobGFuZ3VhZ2VDb2RlOiBzdHJpbmcpOiBQcm9taXNlPENvRG9tYWluVmFsdWVbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0Q29tbWlzc2lvbkNvZGVzKGxhbmd1YWdlQ29kZSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0SW5PdXRDb2xsZWN0aW9uKGxhbmd1YWdlQ29kZTogc3RyaW5nKTogUHJvbWlzZTxDb0RvbWFpblZhbHVlW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldEluT3V0Q29sbGVjdGlvbihsYW5ndWFnZUNvZGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZXMoZ29vZElkOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rvci5nZXRUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VzKGdvb2RJZCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0TWFya2V0aW5nQ29kZXMoKTogUHJvbWlzZTxNYXJrZXRpbmdbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0TWFya2V0aW5nQ29kZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbnNlcnRDdXN0b21lcihyZWxhdGlvbjogQ3VzdG9tZXJGdWxsT2JqZWN0KTogUHJvbWlzZTxDdXN0b21lckZ1bGxPYmplY3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmluc2VydEN1c3RvbWVyKHJlbGF0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVDdXN0b21lcihyZWxhdGlvbjogQ3VzdG9tZXJGdWxsT2JqZWN0KTogUHJvbWlzZTxDdXN0b21lckZ1bGxPYmplY3Q+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IudXBkYXRlQ3VzdG9tZXIocmVsYXRpb24pLnRoZW4oYXN5bmMoIHJlc3BvbnNlOiBDdXN0b21lckZ1bGxPYmplY3QpID0+IHtcbiAgICAgICAgdGhpcy5fY3VycmVudFJlbGF0aW9uID0gcmVsYXRpb247XG4gICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgocmVzcG9uc2U6IEN1c3RvbWVyRnVsbE9iamVjdCkgPT4ge1xuICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldERlbGl2ZXJ5TWV0aG9kcygpOiBQcm9taXNlPERlbGl2ZXJ5TWV0aG9kW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldERlbGl2ZXJ5TWV0aG9kcygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldERlbGl2ZXJ5T3B0aW9ucygpOiBQcm9taXNlPERlbGl2ZXJ5T3B0aW9uW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldERlbGl2ZXJ5T3B0aW9ucygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdDogU2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0ID0gdGhpcy5fZ2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnMoKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLnNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdCkudGhlbihhc3luYyggcmVzcG9uc2U6IFRyYW5zYWN0aW9uUmVzcG9uc2VCYXNlKSA9PiB7XG4gICAgICAgIHJlc29sdmUocmVzcG9uc2UuaXNTdWNjZXNzKTtcbiAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgocmVzcG9uc2U6IFRyYW5zYWN0aW9uUmVzcG9uc2VCYXNlKSA9PiB7XG4gICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0UmVsYXRpb25MaXN0T2JqZWN0cyhyZWxhdGlvblJlcXVlc3Q6IFJlbGF0aW9uUmVxdWVzdCk6IFByb21pc2U8UmVsYXRpb25MaXN0T2JqZWN0W10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldFJlbGF0aW9uTGlzdE9iamVjdHMocmVsYXRpb25SZXF1ZXN0KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZXRyaWV2ZUxpbmVJbWFnZShsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRBcnRpY2xlSW1hZ2VCeUFydGljbGVOdW1iZXIobGluZS5hcnRpY2xlTnVtYmVyKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRBcnRpY2xlSW1hZ2VCeUFydGljbGVOdW1iZXIoYXJ0aWNsZU51bWJlcjogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCBnb29kSWQ6IG51bWJlciA9IGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRHb29kSWRGcm9tQXJ0aWNsZU5yKGFydGljbGVOdW1iZXIpO1xuICAgIHJldHVybiB0aGlzLmdldEFydGljbGVJbWFnZUJ5R29vZElkKGdvb2RJZCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0QXJ0aWNsZUltYWdlQnlHb29kSWQoZ29vZElkOiBudW1iZXIpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghaXNOYU4oZ29vZElkKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rvci5nZXRTaW5nbGVJbWFnZShnb29kSWQsIDEsIHRydWUsIHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gXCJcIjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkQXJ0aWNsZShhcnRpY2xlTm86IHN0cmluZywgYW1vdW50OiBudW1iZXIgPSAxLCB3YXJlaG91c2VObzogbnVtYmVyID0gMSwgY29tbWlzc2lvbkNvZGU6IHN0cmluZyA9IFwiMlwiLCBpc1JldHVybjogYm9vbGVhbiA9IGZhbHNlLCBhYm92ZUxpbmVOcjogbnVtYmVyID0gMCwgYmVsb3dMaW5lTnI6IG51bWJlciA9IDApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLmFkZFRyYW5zYWN0aW9uTGluZSh0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgVHJhbnNhY3Rpb25MaW5lVHlwZS5BcnRpY2xlTGluZSwgYXJ0aWNsZU5vLCBhbW91bnQsIHdhcmVob3VzZU5vLCBjb21taXNzaW9uQ29kZSwgaXNSZXR1cm4sIGFib3ZlTGluZU5yLCBiZWxvd0xpbmVOcilcbiAgICAgICAgLnRoZW4oYXN5bmMoIHJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xuICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgIHJlc29sdmUoZmFsc2UpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkQXJ0aWNsZVRvVHJhbnNhY3Rpb24odHJhbnNhY3Rpb25VdWlkOiBzdHJpbmcsIGFydGljbGVObzogc3RyaW5nLCBhbW91bnQ6IG51bWJlciA9IDEsIHdhcmVob3VzZU5vOiBudW1iZXIgPSAxLCBjb21taXNzaW9uQ29kZTogc3RyaW5nID0gXCIyXCIsIGlzUmV0dXJuOiBib29sZWFuID0gZmFsc2UsIGFib3ZlTGluZU5yOiBudW1iZXIgPSAwLCBiZWxvd0xpbmVOcjogbnVtYmVyID0gMCk6IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLmFkZFRyYW5zYWN0aW9uTGluZSh0cmFuc2FjdGlvblV1aWQsIFRyYW5zYWN0aW9uTGluZVR5cGUuQXJ0aWNsZUxpbmUsIGFydGljbGVObywgYW1vdW50LCB3YXJlaG91c2VObywgY29tbWlzc2lvbkNvZGUsIGlzUmV0dXJuLCBhYm92ZUxpbmVOciwgYmVsb3dMaW5lTnIpXG4gICAgICAgIC50aGVuKGFzeW5jKCByZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgIHRoaXMuX3Byb21wdC5zaG93RXJyb3IoZXJyb3IpO1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgdGhpcy5fcHJvbXB0LnNob3dFcnJvcihyZWFzb24uZ2V0RnVsbEVycm9yU3RyaW5nKCkpO1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZFRyYW5zYWN0aW9uTGluZShsaW5lVHlwZTogVHJhbnNhY3Rpb25MaW5lVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnRpY2xlTm86IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQ6IG51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJlaG91c2VObz86IG51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21taXNzaW9uQ29kZT86IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1JldHVybj86IGJvb2xlYW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJvdmVMaW5lTnI/OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVsb3dMaW5lTnI/OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtZW1iZXI6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuYWRkVHJhbnNhY3Rpb25MaW5lKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnV1aWQsIGxpbmVUeXBlLCBhcnRpY2xlTm8sIGFtb3VudCwgd2FyZWhvdXNlTm8sIGNvbW1pc3Npb25Db2RlLCBpc1JldHVybiwgYWJvdmVMaW5lTnIsIGJlbG93TGluZU5yKVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2U6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuX3JlbWVtYmVyUmVzcG9uc2UocmVtZW1iZXIsIHJlc3BvbnNlKTtcbiAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRUZXh0TGluZVRvVHJhbnNhY3Rpb24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd09uRG9jdW1lbnRzOiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFydGljbGVCb3VuZDogYm9vbGVhbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZBcnRpY2xlTGluZU5yOiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJvdmVMaW5lTnI/OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVsb3dMaW5lTnI/OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtZW1iZXI6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuYWRkVGV4dExpbmVUb1RyYW5zYWN0aW9uKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnV1aWQsIHNob3dPbkRvY3VtZW50cywgdGV4dCwgYW1vdW50LCBhcnRpY2xlQm91bmQsIHJlZkFydGljbGVMaW5lTnIsIGFib3ZlTGluZU5yLCBiZWxvd0xpbmVOcilcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLl9yZW1lbWJlclJlc3BvbnNlKHJlbWVtYmVyLCByZXNwb25zZSk7XG4gICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlTGluZVNlcXVlbmNlKFxuICAgIGxpbmVVdWlkOiBzdHJpbmcsXG4gICAgYWJvdmVMaW5lTnI/OiBudW1iZXIsXG4gICAgYmVsb3dMaW5lTnI/OiBudW1iZXIsXG4gICAgcmVtZW1iZXI6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuY2hhbmdlTGluZVNlcXVlbmNlKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnV1aWQsIGxpbmVVdWlkLCBhYm92ZUxpbmVOciwgYmVsb3dMaW5lTnIpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcmVtZW1iZXJSZXNwb25zZShyZW1lbWJlciwgcmVzcG9uc2UpO1xuICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNhbmNlbEFkZFRyYW5zYWN0aW9uTGluZShsaW5lVXVpZDogc3RyaW5nLCByZW1lbWJlcjogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVVdWlkKVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlbWVtYmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbihyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXNwb25zZS5pc1N1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZWplY3QocmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWxldGVUcmFuc2FjdGlvbkxpbmUodHJhbnNhY3Rpb25VdWlkOiBzdHJpbmcsIFRyYW5zYWN0aW9uTGluZVV1aWQ6IHN0cmluZywgcmVtZW1iZXI6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuZGVsZXRlVHJhbnNhY3Rpb25MaW5lKHRyYW5zYWN0aW9uVXVpZCwgVHJhbnNhY3Rpb25MaW5lVXVpZClcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLl9yZW1lbWJlclJlc3BvbnNlKHJlbWVtYmVyLCByZXNwb25zZSk7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmlzU3VjY2Vzcykge1xuICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZVF1YW50aXR5KGxpbmVVdWlkOiBzdHJpbmcsIG5ld1F1YW50aXR5OiBudW1iZXIsIHJlbWVtYmVyOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4oKHJlc29sdmU6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lUXVhbnRpdHkodGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgbGluZVV1aWQsIG5ld1F1YW50aXR5KVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2U6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGlmIChyZXNwb25zZS5pc1N1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbWVtYmVyUmVzcG9uc2UocmVtZW1iZXIsIHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgIH0pLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2V0UmVsYXRpb25CeVVzZXIodXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZTogRnVuY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5zZXRSZWxhdGlvbkJ5VXNlcih0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi51dWlkLCB1c2VybmFtZSwgcGFzc3dvcmQpXG4gICAgICAgIC50aGVuKGFzeW5jIChpc1N1Y2Nlc3M6IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICByZXNvbHZlKGlzU3VjY2Vzcyk7XG4gICAgICAgIH0pLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDdXN0b21lckZ1bE9iamVjdEJ5UmVsYXRpb25JZChyZWxhdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPEN1c3RvbWVyRnVsbE9iamVjdD4ge1xuICAgIGNvbnN0IHJlbGF0aW9uTnI6IHN0cmluZyA9IGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRSZWxhdGlvbk51bWJlcihyZWxhdGlvbklkKTtcbiAgICBpZiAocmVsYXRpb25Ocikge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRDdXN0b21lckZ1bGxPYmplY3QoTnVtYmVyKHJlbGF0aW9uTnIpKTtcbiAgICB9XG4gICAgcmV0dXJuIE5VTExfQ1VTVE9NRVJfRlVMTF9PQkpFQ1Q7XG4gIH1cblxuICAvLyBwdWJsaWMgYXN5bmMgc2V0UmVsYXRpb25CeVVzZXIodXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAvLyAgIGNvbnN0IHJlc3BvbnNlOiBib29sZWFuID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLnNldFJlbGF0aW9uQnlVc2VyKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnV1aWQsIHVzZXJuYW1lLCBwYXNzd29yZCk7XG4gIC8vICAgcmV0dXJuIHJlc3BvbnNlO1xuICAvLyB9XG5cbiAgcHJpdmF0ZSBfaW5pdGlhbGl6ZVRyYW5zYWN0aW9uKCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGUyID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTIgPSBcIj1cIjtcbiAgICAgIH1cbiAgfVxuICBwcml2YXRlIGFzeW5jIF9yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbih2YWx1ZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24gPSB2YWx1ZS50cmFuc2FjdGlvbkluZm87XG4gICAgdGhpcy5faW5pdGlhbGl6ZVRyYW5zYWN0aW9uKCk7XG5cbiAgICB0aGlzLmN1cnJlbnRMaW5lcyA9IHZhbHVlLnRyYW5zYWN0aW9uTGluZXM7XG4gICAgdGhpcy5jdXJyZW50VG90YWxzID0gdmFsdWUudHJhbnNhY3Rpb25Ub3RhbDtcblxuICAgIHRoaXMuY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXNlcyA9IHZhbHVlLmxpbmVPcGVyYXRpb25TdGF0dXNlcztcblxuICAgIGF3YWl0IHRoaXMuX3VwZGF0ZVJlbGF0aW9uKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvblVwZGF0ZWQuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb25MaW5lU3RhdHVzKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpOiB2b2lkIHtcbiAgICAvLyB0aGlzLl9jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1cy51dWlkID0gdmFsdWUubGluZVV1aWQ7XG4gICAgLy8gdGhpcy5fY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiA9IHZhbHVlLnBlbmRpbmdSZWFzb247XG4gICAgLy8gdGhpcy5fY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUgPSB2YWx1ZS5wZW5kaW5nUmVhc29uVHlwZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3VwZGF0ZVJlbGF0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbiAmJiB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi5yZWxhdGlvbiAmJiB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi5yZWxhdGlvbi5yZWxhdGlvbklkKSB7XG4gICAgICBpZiAoIXRoaXMuX2N1cnJlbnRSZWxhdGlvbiB8fCB0aGlzLl9jdXJyZW50UmVsYXRpb24ucmVsYXRpb25JZCAhPT0gdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24ucmVsYXRpb24ucmVsYXRpb25JZCkge1xuICAgICAgICB0aGlzLl9jdXJyZW50UmVsYXRpb24gPSBhd2FpdCB0aGlzLmdldEN1c3RvbWVyRnVsT2JqZWN0QnlSZWxhdGlvbklkKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnJlbGF0aW9uLnJlbGF0aW9uSWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKCk6IFNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdCB7XG4gICAgY29uc3QgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0OiBTZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QgPSBuZXcgU2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0ICgpO1xuICAgIHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdC5hbGxvd1BhcnRpYWxEZWxpdmVyeSA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5hbGxvd1BhcnRpYWxEZWxpdmVyeTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QuZGVsaXZlcnlEYXRlID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLmRlbGl2ZXJ5RGF0ZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QuZGVsaXZlcnlNZXRob2QgPSB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24uZGVsaXZlcnlNZXRob2Q7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0LmRlbGl2ZXJ5T3B0aW9ucyA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5kZWxpdmVyeU9wdGlvbnM7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0Lm1hcmtldGluZ0NvZGUgPSB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24ubWFya2V0aW5nQ29kZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3Qub3duUmVmZXJlbmNlID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLm93blJlZmVyZW5jZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QucHJlZmVycmVkRGVsaXZlcnlEYXRlID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QucHJlZmVycmVkRGVsaXZlcnlEYXRlMiA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGUyO1xuICAgIHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdC5yZWxhdGlvblJlZmVyZW5jZSA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5yZWxhdGlvblJlZmVyZW5jZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QucmVtYXJrID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnJlbWFyaztcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QudHJhbnNhY3Rpb25VdWlkID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnV1aWQ7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0LnRyYW5zYWN0aW9uQWRkcmVzcyA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MubmF3TnI7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0Lmludm9pY2VBZGRyZXNzID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLmludm9pY2VBZGRyZXNzLm5hd05yO1xuICAgIHJldHVybiB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3Q7XG4gIH1cblxuICBwcml2YXRlIF9yZW1lbWJlclJlc3BvbnNlKHJlbWVtYmVyOiBib29sZWFuLCByZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKTogdm9pZCB7XG4gICAgaWYgKHJlbWVtYmVyKSB7XG4gICAgICB0aGlzLl9yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbihyZXNwb25zZSk7XG4gICAgICB0aGlzLl9yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbkxpbmVTdGF0dXMocmVzcG9uc2UpO1xuICAgIH1cbiAgfVxufVxuIl19
584
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hcHAvc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUVoRyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUVuRyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFHMUYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdEQUF3RCxDQUFDO0FBSXBGLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUN0RixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sa0RBQWtELENBQUM7QUFDNUUsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sa0ZBQWtGLENBQUM7QUFJdEksT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFFM0YsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFLbkcsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sK0RBQStELENBQUM7QUFHbEcsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLDBEQUEwRCxDQUFDO0FBRXpGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUUzRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sMERBQTBELENBQUM7QUFJeEYsTUFBTSxPQUFPLGtCQUFrQjtJQTJEN0IsWUFDUyxVQUF1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QWlCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDO1FBQ2pHLGlDQUFpQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDO1FBQzNFLGlDQUFpQyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1FBQ2xGLGlDQUFpQyxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDekcsaUNBQWlDLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMxRixJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDcEQsT0FBTyxpQ0FBaUMsQ0FBQztJQUMzQyxDQUFDO0lBRU8saUJBQWlCLENBQUMsUUFBaUIsRUFBRSxRQUErQjtRQUMxRSxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMscUNBQXFDLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDOzs7WUExakJGLFVBQVU7OztZQXBDSCwyQkFBMkI7WUErQjNCLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0V2ZW50RW1pdHRlciwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7SU9uZUNvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlfSBmcm9tIFwiLi9pb25lLWNvbm5lY3Rvci1hZGFwdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2N1c3RvbWVyLWZ1bGwtb2JqZWN0LmJvXCI7XG5pbXBvcnQge1JlbGF0aW9uQW55VHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1hbnktdHlwZVwiO1xuaW1wb3J0IHtOVUxMX0NVU1RPTUVSX0ZVTExfT0JKRUNUfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL251bC1yZWxhdGlvbi1vYmplY3RcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW1cIjtcbmltcG9ydCB7TWFya2V0aW5nfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL21hcmtldGluZy5ib1wiO1xuaW1wb3J0IHtSZWxhdGlvblByaXZhY3lTZXR0aW5nfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLXByaXZhY3ktc2V0dGluZy5ib1wiO1xuaW1wb3J0IHtTZXF1ZW5jZU5hbWV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9zZXF1ZW5jZS1uYW1lLmVudW1cIjtcbmltcG9ydCB7RGVsaXZlcnlNZXRob2R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktbWV0aG9kLmJvXCI7XG5pbXBvcnQge0RlbGl2ZXJ5T3B0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW9wdGlvbi5ib1wiO1xuaW1wb3J0IHtDb250YWN0T3B0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NvbnRhY3Qtb3B0aW9uLmJvXCI7XG5pbXBvcnQge2lzTmlsbH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC91dGlscy9mdW5jdGlvbi9pcy1uaWxsLmZ1bmN0aW9uXCI7XG5pbXBvcnQge0FycmF5VXRpbHN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvdXRpbHMvYXJyYXktdXRpbHNcIjtcbmltcG9ydCB7U2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3NldC10cmFuc2FjdGlvbi1kZWxpdmVyeS1vcHRpb25zLXJlcXVlc3QuYm9cIjtcbmltcG9ydCB7UmVsYXRpb25MaXN0T2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWxpc3Qtb2JqZWN0LmJvXCI7XG5pbXBvcnQge1JlbGF0aW9uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZWxhdGlvbi1yZXF1ZXN0XCI7XG5pbXBvcnQge0NvdW50cnl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY291bnRyeS5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvblRvdGFsfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLXRvdGFsLmJvXCI7XG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1yZXN1bHRcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWxpbmUtdHlwZS5lbnVtXCI7XG5pbXBvcnQge1Jlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1wZW5kaW5nLXJlYXNvbi1yZXF1ZXN0LmJvXCI7XG5pbXBvcnQge0NvRG9tYWluVmFsdWV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY28tZG9tYWluLXZhbHVlLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hcnRpY2xlLXdhcmVob3VzZS5ib1wiO1xuaW1wb3J0IHtBcnRpY2xlRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWZ1bGwtb2JqZWN0XCI7XG5pbXBvcnQge0xpbmVPcGVyYXRpb25TdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tc3RhdHVzLmJvXCI7XG5pbXBvcnQge0xpbmVPcGVyYXRpb25SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9saW5lLW9wZXJhdGlvbi1yZXNwb25zZS5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvblJlc3BvbnNlQmFzZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1yZXNwb25zZS1iYXNlLmJvXCI7XG5pbXBvcnQge1BlbmRpbmdSZWFzb25UeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcGVuZGluZy1yZWFzb24tdHlwZS5lbnVtXCI7XG5pbXBvcnQge1Byb21wdFNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XG5pbXBvcnQge1N0YW5kYXJkVGV4dH0gZnJvbSBcIi4uL21vZGVsL3N0YW5kYXJkLXRleHRcIjtcbmltcG9ydCB7UmVsYXRpb25TdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9yZWxhdGlvbi1zdGF0dXMuZW51bVwiO1xuaW1wb3J0IHtEYXRhU2VydmljZVJlc3BvbnNlRGF0YX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kYXRhLXNlcnZpY2UtcmVzcG9uc2UtZGF0YVwiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25TZXJ2aWNlIHtcbiAgcHVibGljIHRyYW5zYWN0aW9uVXBkYXRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBwdWJsaWMgdHJhbnNhY3Rpb25Mb2FkZWQ6IEV2ZW50RW1pdHRlcjxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPigpO1xuXG4gIHB1YmxpYyBlbWFpbEFkZHJlc3M6IHN0cmluZztcbiAgcHVibGljIGFwcGxpY2F0aW9uVXNlcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBnZXQgY3VycmVudExpbmVzKCk6IFRyYW5zYWN0aW9uTGluZUluZm9bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRMaW5lcztcbiAgfVxuXG4gIHB1YmxpYyBzZXQgY3VycmVudExpbmVzKHZhbHVlOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10pIHtcbiAgICB0aGlzLl9jdXJyZW50TGluZXMgPSB2YWx1ZTtcbiAgICB0aGlzLmFydGljbGVBbW91bnQgPSBBcnJheVV0aWxzLkZpbmRBbGwodGhpcy5fY3VycmVudExpbmVzLCBsaW5lID0+IGxpbmUuaXNBcnRpY2xlKS5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgc2V0IGN1cnJlbnRUb3RhbHModmFsdWU6IFRyYW5zYWN0aW9uVG90YWwpIHtcbiAgICB0aGlzLl9jdXJyZW50VG90YWxzID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRUb3RhbHMoKTogVHJhbnNhY3Rpb25Ub3RhbCB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRUb3RhbHM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRSZWxhdGlvbigpOiBSZWxhdGlvbkFueVR5cGUge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50UmVsYXRpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IGN1cnJlbnRUcmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbkluZm8ge1xuICAgIHJldHVybiB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb247XG4gIH1cblxuICBwdWJsaWMgc2V0IGN1cnJlbnRMaW5lT3BlcmF0aW9uU3RhdHVzZXModmFsdWVzOiBMaW5lT3BlcmF0aW9uU3RhdHVzW10pIHtcbiAgICB0aGlzLl9jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1c2VzID0gdmFsdWVzO1xuICB9XG5cbiAgcHVibGljIGdldCBjdXJyZW50TGluZU9wZXJhdGlvblN0YXR1c2VzKCk6IExpbmVPcGVyYXRpb25TdGF0dXNbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRMaW5lT3BlcmF0aW9uU3RhdHVzZXM7XG4gIH1cblxuICBwdWJsaWMgc2V0IGN1cnJlbnRMaW5lT3BlcmF0aW9uU3RhdHVzKHZhbHVlOiBMaW5lT3BlcmF0aW9uU3RhdHVzKSB7XG4gICAgdGhpcy5fY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXMgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXMoKTogTGluZU9wZXJhdGlvblN0YXR1cyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgc3RhdHVzOiBMaW5lT3BlcmF0aW9uU3RhdHVzID0gdGhpcy5jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1c2VzLmZpbmQobGluZSA9PiBsaW5lLnBlbmRpbmdSZWFzb25UeXBlICE9PSBQZW5kaW5nUmVhc29uVHlwZS5OT05FXG4gICAgICAmJiBsaW5lLnBlbmRpbmdSZWFzb25UeXBlICE9PSBQZW5kaW5nUmVhc29uVHlwZS5OT05fQ1JJVElDQUxfRElTQ09OVElOVUFUSU9OKTtcbiAgICByZXR1cm4gc3RhdHVzO1xuICB9XG5cbiAgcHVibGljIGFydGljbGVBbW91bnQ6IG51bWJlciA9IDA7XG5cbiAgcHJpdmF0ZSBfY3VycmVudExpbmVzOiBUcmFuc2FjdGlvbkxpbmVJbmZvW10gPSBbXTtcbiAgcHJpdmF0ZSBfY3VycmVudFRvdGFsczogVHJhbnNhY3Rpb25Ub3RhbCA9IG5ldyBUcmFuc2FjdGlvblRvdGFsKCk7XG4gIHByaXZhdGUgX2N1cnJlbnRSZWxhdGlvbjogUmVsYXRpb25BbnlUeXBlOyAvLyA9IE5VTExfUkVMQVRJT05fT0JKRUNUO1xuICBwcml2YXRlIF9jdXJyZW50VHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mbyA9IG5ldyBUcmFuc2FjdGlvbkluZm8oKTtcbiAgcHJpdmF0ZSBfY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXM6IExpbmVPcGVyYXRpb25TdGF0dXMgPSBuZXcgTGluZU9wZXJhdGlvblN0YXR1cygpO1xuICBwcml2YXRlIF9jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1c2VzOiBMaW5lT3BlcmF0aW9uU3RhdHVzW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgX2Nvbm5lY3RvcjogSU9uZUNvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlLFxuICAgIHB1YmxpYyBfcHJvbXB0OiBQcm9tcHRTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLl9pbml0aWFsaXplVHJhbnNhY3Rpb24oKTtcbiAgfVxuXG4gIHB1YmxpYyBwZW5kaW5nTGluZU9wZXJhdGlvblN0YXR1cyhsaW5lT3BlcmF0aW9uU3RhdHVzZXM6IExpbmVPcGVyYXRpb25TdGF0dXNbXSk6IExpbmVPcGVyYXRpb25TdGF0dXMgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHN0YXR1czogTGluZU9wZXJhdGlvblN0YXR1cyA9IGxpbmVPcGVyYXRpb25TdGF0dXNlcy5maW5kKGxpbmUgPT4gbGluZS5wZW5kaW5nUmVhc29uVHlwZSAhPT0gUGVuZGluZ1JlYXNvblR5cGUuTk9ORVxuICAgICAgJiYgbGluZS5wZW5kaW5nUmVhc29uVHlwZSAhPT0gUGVuZGluZ1JlYXNvblR5cGUuTk9OX0NSSVRJQ0FMX0RJU0NPTlRJTlVBVElPTik7XG4gICAgcmV0dXJuIHN0YXR1cztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRBcnRpY2xlRnVsbE9iamVjdChnb29kSWQ6IG51bWJlcik6IFByb21pc2U8QXJ0aWNsZUZ1bGxPYmplY3Q+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldEFydGljbGVGdWxsT2JqZWN0KGdvb2RJZCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0R29vZElkRnJvbUFydGljbGVOcihza3U6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRHb29kSWRGcm9tQXJ0aWNsZU5yKHNrdSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0UmVsYXRpb24oKTogUHJvbWlzZTxSZWxhdGlvbkFueVR5cGU+IHtcbiAgICBjb25zdCByZWxhdGlvbk5vOiBzdHJpbmcgPSBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0UmVsYXRpb25OdW1iZXIodGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnJlbGF0aW9uLnJlbGF0aW9uSWQpO1xuXG4gICAgaWYgKHJlbGF0aW9uTm8pIHtcbiAgICAgIHRoaXMuX2N1cnJlbnRSZWxhdGlvbiA9IGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRDdXN0b21lckZ1bGxPYmplY3QoTnVtYmVyKHJlbGF0aW9uTm8pKTtcbiAgICAgIGF3YWl0IHRoaXMubG9hZENvdW50cmllc09mUmVsYXRpb25BZGRyZXNzZXMoKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRSZWxhdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsb2FkQ291bnRyaWVzT2ZSZWxhdGlvbkFkZHJlc3NlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBmb3IgKGNvbnN0IGFkZHJlc3Mgb2YgdGhpcy5jdXJyZW50UmVsYXRpb24uYWRkcmVzc2VzKSB7XG4gICAgICBjb25zdCBjb3VudHJ5OiBDb3VudHJ5ID0gYXdhaXQgdGhpcy5nZXRDb3VudHJ5KGFkZHJlc3MuY291bnRyeUlkKTtcbiAgICAgIGFkZHJlc3MuY291bnRyeU5hbWUgPSBjb3VudHJ5LmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDb3VudHJ5KGNvdW50cnlDb2RlOiBzdHJpbmcpOiBQcm9taXNlPENvdW50cnk+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldENvdW50cnkoY291bnRyeUNvZGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFJlbGF0aW9uTnVtYmVyKHJlbGF0aW9uSWQ6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rvci5nZXRSZWxhdGlvbk51bWJlcihyZWxhdGlvbklkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzYXZlTmV3UmVsYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jbGVhblJlbGF0aW9uQmVmb3JlU2F2ZSgpO1xuICAgIHRoaXMuX2N1cnJlbnRSZWxhdGlvbiA9IGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5pbnNlcnRDdXN0b21lcih0aGlzLl9jdXJyZW50UmVsYXRpb24pO1xuICAgIGF3YWl0IHRoaXMuYWRkUmVsYXRpb25Ub1RyYW5zYWN0aW9uKHRoaXMuX2N1cnJlbnRSZWxhdGlvbi5yZWxhdGlvbklkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzYXZlUmVsYXRpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5jbGVhblJlbGF0aW9uQmVmb3JlU2F2ZSgpO1xuICAgIHRoaXMuX2N1cnJlbnRSZWxhdGlvbiA9IGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci51cGRhdGVDdXN0b21lcih0aGlzLl9jdXJyZW50UmVsYXRpb24pO1xuICB9XG5cbiAgcHVibGljIGNsZWFuUmVsYXRpb25CZWZvcmVTYXZlKCk6IHZvaWQge1xuICAgIEFycmF5VXRpbHMuUmVtb3ZlRWxlbWVudHNCeUZpbHRlcih0aGlzLl9jdXJyZW50UmVsYXRpb24uY29udGFjdE9wdGlvbnMsICgoaXRlbTogQ29udGFjdE9wdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGlzTmlsbChpdGVtLnZhbHVlKTtcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0U2VxdWVuY2VWYWx1ZSgpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0U2VxdWVuY2VWYWx1ZShTZXF1ZW5jZU5hbWUuUmVsYXRpb25JZCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0UmVsYXRpb25Qcml2YWN5U2V0dGluZ3MoKTogUHJvbWlzZTxSZWxhdGlvblByaXZhY3lTZXR0aW5nW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldFJlbGF0aW9uUHJpdmFjeVNldHRpbmdzKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY3JlYXRlVHJhbnNhY3Rpb24oKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLmNyZWF0ZVRyYW5zYWN0aW9uKFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyLCBcIjFcIikudGhlbigocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuX3JlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcbiAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9KS5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgIHJlamVjdChmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocGVuZGluZ0xpbmVWYWx1ZXM6IFJlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3QsIHJlbWVtYmVyOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4oKHJlc29sdmU6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHBlbmRpbmdMaW5lVmFsdWVzKS50aGVuKGFzeW5jIChyZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuX3JlbWVtYmVyUmVzcG9uc2UocmVtZW1iZXIsIHJlc3BvbnNlKTtcbiAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICB9KS5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uTm86IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLm9wZW5FeGlzdGluZ1RyYW5zYWN0aW9uKFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyLCB0cmFuc2FjdGlvbk5vKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuRXhpc3RpbmdUcmFuc2FjdGlvbihraW5kOiBUcmFuc2FjdGlvbktpbmQsIHRyYW5zYWN0aW9uTnI6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5nZXRUcmFuc2FjdGlvbkJ5TnJBbmRLaW5kKGtpbmQsIHRyYW5zYWN0aW9uTnIpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuaXNTdWNjZXNzKSB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uTG9hZGVkLmVtaXQocmVzcG9uc2UpO1xuICAgICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KGZhbHNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuXG4gIHB1YmxpYyBnZXRUcmFuc2FjdGlvbkJ5SWQodHJhbnNhY3Rpb25JZDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLmdldFRyYW5zYWN0aW9uQnlJZCh0cmFuc2FjdGlvbklkKVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmlzU3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxvYWRlZC5lbWl0KHJlc3BvbnNlKTtcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJlamVjdChmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNvbW1pdCgpOiBQcm9taXNlPERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rvci5jb21taXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzYXZlVHJhbnNhY3Rpb24oY2xvc2U6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcbiAgICBjb25zdCByZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UgPSBhd2FpdCB0aGlzLl9jb25uZWN0b3Iuc2F2ZVRyYW5zYWN0aW9uKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnV1aWQpO1xuICAgIGlmIChyZXNwb25zZS5pc1N1Y2Nlc3MpIHtcbiAgICAgIHRoaXMuX3JlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNhdmVUcmFuc2FjdGlvbkJ5VXVpZCh0cmFuc2FjdGlvblV1aWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5zYXZlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb25VdWlkKVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmlzU3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvbkxvYWRlZC5lbWl0KHJlc3BvbnNlKTtcbiAgICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChmYWxzZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIGlmIChyZWFzb24pIHtcbiAgICAgICAgICAgIHRoaXMuX3Byb21wdC5zaG93RXJyb3IocmVhc29uLmdldEZ1bGxFcnJvclN0cmluZygpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVqZWN0KGZhbHNlKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkUmVsYXRpb25Ub1RyYW5zYWN0aW9uKHJlbGF0aW9uSWQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHN1Y2Nlc3M6IGJvb2xlYW4gPSAgYXdhaXQgdGhpcy5fY29ubmVjdG9yLmFkZFJlbGF0aW9uVG9UcmFuc2FjdGlvbih0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgcmVsYXRpb25JZCk7XG4gICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2F2ZVRyYW5zYWN0aW9uKCk7XG4gICAgICBhd2FpdCB0aGlzLmdldFRyYW5zYWN0aW9uKHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbk5yKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q29tbWlzc2lvbkNvZGVzKGxhbmd1YWdlQ29kZTogc3RyaW5nKTogUHJvbWlzZTxDb0RvbWFpblZhbHVlW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldENvbW1pc3Npb25Db2RlcyhsYW5ndWFnZUNvZGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEluT3V0Q29sbGVjdGlvbihsYW5ndWFnZUNvZGU6IHN0cmluZyk6IFByb21pc2U8Q29Eb21haW5WYWx1ZVtdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXRJbk91dENvbGxlY3Rpb24obGFuZ3VhZ2VDb2RlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VzKGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VbXT4ge1xuICAgIHJldHVybiB0aGlzLl9jb25uZWN0b3IuZ2V0VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlcyhnb29kSWQpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldE1hcmtldGluZ0NvZGVzKCk6IFByb21pc2U8TWFya2V0aW5nW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldE1hcmtldGluZ0NvZGVzKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW5zZXJ0Q3VzdG9tZXIocmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCk6IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5pbnNlcnRDdXN0b21lcihyZWxhdGlvbik7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgdXBkYXRlQ3VzdG9tZXIocmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCk6IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPEN1c3RvbWVyRnVsbE9iamVjdD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLnVwZGF0ZUN1c3RvbWVyKHJlbGF0aW9uKS50aGVuKGFzeW5jKCByZXNwb25zZTogQ3VzdG9tZXJGdWxsT2JqZWN0KSA9PiB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRSZWxhdGlvbiA9IHJlbGF0aW9uO1xuICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKHJlc3BvbnNlOiBDdXN0b21lckZ1bGxPYmplY3QpID0+IHtcbiAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXREZWxpdmVyeU1ldGhvZHMoKTogUHJvbWlzZTxEZWxpdmVyeU1ldGhvZFtdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXREZWxpdmVyeU1ldGhvZHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXREZWxpdmVyeU9wdGlvbnMoKTogUHJvbWlzZTxEZWxpdmVyeU9wdGlvbltdPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuX2Nvbm5lY3Rvci5nZXREZWxpdmVyeU9wdGlvbnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9ucygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3Q6IFNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdCA9IHRoaXMuX2dldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKCk7XG4gICAgY29uc3QgcmVzcG9uc2U6IFRyYW5zYWN0aW9uUmVzcG9uc2VCYXNlID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLnNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdClcbiAgICAgIC5jYXRjaCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9KTtcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuaXNTdWNjZXNzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvbkxpc3RPYmplY3RzKHJlbGF0aW9uUmVxdWVzdDogUmVsYXRpb25SZXF1ZXN0KTogUHJvbWlzZTxSZWxhdGlvbkxpc3RPYmplY3RbXT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0UmVsYXRpb25MaXN0T2JqZWN0cyhyZWxhdGlvblJlcXVlc3QpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJldHJpZXZlTGluZUltYWdlKGxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldEFydGljbGVJbWFnZUJ5QXJ0aWNsZU51bWJlcihsaW5lLmFydGljbGVOdW1iZXIpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEFydGljbGVJbWFnZUJ5QXJ0aWNsZU51bWJlcihhcnRpY2xlTnVtYmVyOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGdvb2RJZDogbnVtYmVyID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldEdvb2RJZEZyb21BcnRpY2xlTnIoYXJ0aWNsZU51bWJlcik7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXJ0aWNsZUltYWdlQnlHb29kSWQoZ29vZElkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRBcnRpY2xlSW1hZ2VCeUdvb2RJZChnb29kSWQ6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKCFpc05hTihnb29kSWQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY29ubmVjdG9yLmdldFNpbmdsZUltYWdlKGdvb2RJZCwgMSwgdHJ1ZSwgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRBcnRpY2xlKGFydGljbGVObzogc3RyaW5nLCBhbW91bnQ6IG51bWJlciA9IDEsIHdhcmVob3VzZU5vOiBudW1iZXIgPSAxLCBjb21taXNzaW9uQ29kZTogc3RyaW5nID0gXCIyXCIsIGlzUmV0dXJuOiBib29sZWFuID0gZmFsc2UsIGFib3ZlTGluZU5yOiBudW1iZXIgPSAwLCBiZWxvd0xpbmVOcjogbnVtYmVyID0gMCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuYWRkVHJhbnNhY3Rpb25MaW5lKHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi51dWlkLCBUcmFuc2FjdGlvbkxpbmVUeXBlLkFydGljbGVMaW5lLCBhcnRpY2xlTm8sIGFtb3VudCwgd2FyZWhvdXNlTm8sIGNvbW1pc3Npb25Db2RlLCBpc1JldHVybiwgYWJvdmVMaW5lTnIsIGJlbG93TGluZU5yKVxuICAgICAgICAudGhlbihhc3luYyggcmVzcG9uc2U6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XG4gICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgcmVzb2x2ZShmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRBcnRpY2xlVG9UcmFuc2FjdGlvbih0cmFuc2FjdGlvblV1aWQ6IHN0cmluZywgYXJ0aWNsZU5vOiBzdHJpbmcsIGFtb3VudDogbnVtYmVyID0gMSwgd2FyZWhvdXNlTm86IG51bWJlciA9IDEsIGNvbW1pc3Npb25Db2RlOiBzdHJpbmcgPSBcIjJcIiwgaXNSZXR1cm46IGJvb2xlYW4gPSBmYWxzZSwgYWJvdmVMaW5lTnI6IG51bWJlciA9IDAsIGJlbG93TGluZU5yOiBudW1iZXIgPSAwKTogUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9jb25uZWN0b3IuYWRkVHJhbnNhY3Rpb25MaW5lKHRyYW5zYWN0aW9uVXVpZCwgVHJhbnNhY3Rpb25MaW5lVHlwZS5BcnRpY2xlTGluZSwgYXJ0aWNsZU5vLCBhbW91bnQsIHdhcmVob3VzZU5vLCBjb21taXNzaW9uQ29kZSwgaXNSZXR1cm4sIGFib3ZlTGluZU5yLCBiZWxvd0xpbmVOcilcbiAgICAgICAgLnRoZW4oYXN5bmMoIHJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcHJvbXB0LnNob3dFcnJvcihlcnJvcik7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgICB0aGlzLl9wcm9tcHQuc2hvd0Vycm9yKHJlYXNvbi5nZXRGdWxsRXJyb3JTdHJpbmcoKSk7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVUeXBlOiBUcmFuc2FjdGlvbkxpbmVUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFydGljbGVObzogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFtb3VudDogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhcmVob3VzZU5vPzogbnVtYmVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1pc3Npb25Db2RlPzogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUmV0dXJuPzogYm9vbGVhbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYm92ZUxpbmVOcj86IG51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWxvd0xpbmVOcj86IG51bWJlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1lbWJlcjogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5hZGRUcmFuc2FjdGlvbkxpbmUodGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgbGluZVR5cGUsIGFydGljbGVObywgYW1vdW50LCB3YXJlaG91c2VObywgY29tbWlzc2lvbkNvZGUsIGlzUmV0dXJuLCBhYm92ZUxpbmVOciwgYmVsb3dMaW5lTnIpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcmVtZW1iZXJSZXNwb25zZShyZW1lbWJlciwgcmVzcG9uc2UpO1xuICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZFRleHRMaW5lKFxuICAgICAgICAgICAgICAgIHNob3dPbkRvY3VtZW50czogbnVtYmVyLFxuICAgICAgICAgICAgICAgIHRleHQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICBhbW91bnQ6IG51bWJlcixcbiAgICAgICAgICAgICAgICBhcnRpY2xlQm91bmQ6IGJvb2xlYW4sXG4gICAgICAgICAgICAgICAgcmVmQXJ0aWNsZUxpbmVOcjogbnVtYmVyLFxuICAgICAgICAgICAgICAgIGFib3ZlTGluZU5yPzogbnVtYmVyLFxuICAgICAgICAgICAgICAgIGJlbG93TGluZU5yPzogbnVtYmVyLFxuICAgICAgICAgICAgICAgIHJlbWVtYmVyOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLmFkZFRleHRMaW5lVG9UcmFuc2FjdGlvbih0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi51dWlkLCBzaG93T25Eb2N1bWVudHMsIHRleHQsIGFtb3VudCwgYXJ0aWNsZUJvdW5kLCByZWZBcnRpY2xlTGluZU5yLCBhYm92ZUxpbmVOciwgYmVsb3dMaW5lTnIpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fcmVtZW1iZXJSZXNwb25zZShyZW1lbWJlciwgcmVzcG9uc2UpO1xuICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICB9LCAoZXJyb3IpID0+IHtcbiAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZFRleHRMaW5lVG9UcmFuc2FjdGlvbihcbiAgICB0cmFuc2FjdGlvblV1aWQ6IHN0cmluZyxcbiAgICBzaG93T25Eb2N1bWVudHM6IG51bWJlcixcbiAgICB0ZXh0OiBzdHJpbmcsXG4gICAgYW1vdW50OiBudW1iZXIsXG4gICAgYXJ0aWNsZUJvdW5kOiBib29sZWFuLFxuICAgIHJlZkFydGljbGVMaW5lTnI6IG51bWJlcixcbiAgICBhYm92ZUxpbmVOcj86IG51bWJlcixcbiAgICBiZWxvd0xpbmVOcj86IG51bWJlcik6IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLmFkZFRleHRMaW5lVG9UcmFuc2FjdGlvbih0cmFuc2FjdGlvblV1aWQsIHNob3dPbkRvY3VtZW50cywgdGV4dCwgYW1vdW50LCBhcnRpY2xlQm91bmQsIHJlZkFydGljbGVMaW5lTnIsIGFib3ZlTGluZU5yLCBiZWxvd0xpbmVOcilcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgfSwgKGVycm9yKSA9PiB7XG4gICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VMaW5lU2VxdWVuY2UoXG4gICAgbGluZVV1aWQ6IHN0cmluZyxcbiAgICBhYm92ZUxpbmVOcj86IG51bWJlcixcbiAgICBiZWxvd0xpbmVOcj86IG51bWJlcixcbiAgICByZW1lbWJlcjogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5jaGFuZ2VMaW5lU2VxdWVuY2UodGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgbGluZVV1aWQsIGFib3ZlTGluZU5yLCBiZWxvd0xpbmVOcilcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLl9yZW1lbWJlclJlc3BvbnNlKHJlbWVtYmVyLCByZXNwb25zZSk7XG4gICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgIH0sIChlcnJvcikgPT4ge1xuICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVVdWlkOiBzdHJpbmcsIHJlbWVtYmVyOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5jYW5jZWxBZGRUcmFuc2FjdGlvbkxpbmUobGluZVV1aWQpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBpZiAocmVtZW1iZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmlzU3VjY2Vzcykge1xuICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRlbGV0ZVRyYW5zYWN0aW9uTGluZSh0cmFuc2FjdGlvblV1aWQ6IHN0cmluZywgVHJhbnNhY3Rpb25MaW5lVXVpZDogc3RyaW5nLCByZW1lbWJlcjogYm9vbGVhbiA9IHRydWUpOiBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5kZWxldGVUcmFuc2FjdGlvbkxpbmUodHJhbnNhY3Rpb25VdWlkLCBUcmFuc2FjdGlvbkxpbmVVdWlkKVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2U6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICAgIHRoaXMuX3JlbWVtYmVyUmVzcG9uc2UocmVtZW1iZXIsIHJlc3BvbnNlKTtcbiAgICAgICAgICBpZiAocmVzcG9uc2UuaXNTdWNjZXNzKSB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgocmVhc29uOiBWYWxpZGF0aW9uUmVzdWx0KSA9PiB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2hhbmdlVHJhbnNhY3Rpb25MaW5lUXVhbnRpdHkobGluZVV1aWQ6IHN0cmluZywgbmV3UXVhbnRpdHk6IG51bWJlciwgcmVtZW1iZXI6IGJvb2xlYW4gPSB0cnVlKTogUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPigocmVzb2x2ZTogRnVuY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuX2Nvbm5lY3Rvci5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVRdWFudGl0eSh0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi51dWlkLCBsaW5lVXVpZCwgbmV3UXVhbnRpdHkpXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmlzU3VjY2Vzcykge1xuICAgICAgICAgICAgdGhpcy5fcmVtZW1iZXJSZXNwb25zZShyZW1lbWJlciwgcmVzcG9uc2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKHJlc3BvbnNlKTtcbiAgICAgICAgfSkuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRSZWxhdGlvbkJ5VXNlcih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPGJvb2xlYW4+KChyZXNvbHZlOiBGdW5jdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY29ubmVjdG9yLnNldFJlbGF0aW9uQnlVc2VyKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnV1aWQsIHVzZXJuYW1lLCBwYXNzd29yZClcbiAgICAgICAgLnRoZW4oYXN5bmMgKGlzU3VjY2VzczogYm9vbGVhbikgPT4ge1xuICAgICAgICAgIHJlc29sdmUoaXNTdWNjZXNzKTtcbiAgICAgICAgfSkuY2F0Y2goKHJlYXNvbjogVmFsaWRhdGlvblJlc3VsdCkgPT4ge1xuICAgICAgICByZXNvbHZlKGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEN1c3RvbWVyRnVsT2JqZWN0QnlSZWxhdGlvbklkKHJlbGF0aW9uSWQ6IG51bWJlcik6IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PiB7XG4gICAgY29uc3QgcmVsYXRpb25Ocjogc3RyaW5nID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldFJlbGF0aW9uTnVtYmVyKHJlbGF0aW9uSWQpO1xuICAgIGlmIChyZWxhdGlvbk5yKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldEN1c3RvbWVyRnVsbE9iamVjdChOdW1iZXIocmVsYXRpb25OcikpO1xuICAgIH1cbiAgICByZXR1cm4gTlVMTF9DVVNUT01FUl9GVUxMX09CSkVDVDtcbiAgfVxuXG4gIC8vIHB1YmxpYyBhc3luYyBzZXRSZWxhdGlvbkJ5VXNlcih1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIC8vICAgY29uc3QgcmVzcG9uc2U6IGJvb2xlYW4gPSBhd2FpdCB0aGlzLl9jb25uZWN0b3Iuc2V0UmVsYXRpb25CeVVzZXIodGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgdXNlcm5hbWUsIHBhc3N3b3JkKTtcbiAgLy8gICByZXR1cm4gcmVzcG9uc2U7XG4gIC8vIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VGV4dFR5cGVzKGxhbmd1YWdlQ29kZTogc3RyaW5nKTogUHJvbWlzZTxDb0RvbWFpblZhbHVlW10+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldFRleHRUeXBlcyhsYW5ndWFnZUNvZGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFN0YW5kYXJkVGV4dHMobGFuZ3VhZ2VDb2RlOiBzdHJpbmcpOiBQcm9taXNlPFN0YW5kYXJkVGV4dFtdPiB7XG4gICAgbGV0IGRhdGE6IFN0YW5kYXJkVGV4dFtdID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldFN0YW5kYXJkVGV4dHMobGFuZ3VhZ2VDb2RlKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgX2luaXRpYWxpemVUcmFuc2FjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2N1cnJlbnRSZWxhdGlvbikge1xuICAgICAgdGhpcy5fY3VycmVudFJlbGF0aW9uID0gbmV3IEN1c3RvbWVyRnVsbE9iamVjdCgpO1xuICAgICAgdGhpcy5fY3VycmVudFJlbGF0aW9uLnJlbGF0aW9uU3RhdHVzID0gUmVsYXRpb25TdGF0dXMuUmVndWxhckN1c3RvbWVyO1xuICAgICAgdGhpcy5fY3VycmVudFJlbGF0aW9uLnN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24ucHJlZmVycmVkRGVsaXZlcnlEYXRlMiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24ucHJlZmVycmVkRGVsaXZlcnlEYXRlMiA9IFwiPVwiO1xuICAgIH1cbiAgfVxuICBwcml2YXRlIGFzeW5jIF9yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbih2YWx1ZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24gPSB2YWx1ZS50cmFuc2FjdGlvbkluZm87XG4gICAgdGhpcy5faW5pdGlhbGl6ZVRyYW5zYWN0aW9uKCk7XG5cbiAgICB0aGlzLmN1cnJlbnRMaW5lcyA9IHZhbHVlLnRyYW5zYWN0aW9uTGluZXM7XG4gICAgdGhpcy5jdXJyZW50VG90YWxzID0gdmFsdWUudHJhbnNhY3Rpb25Ub3RhbDtcblxuICAgIHRoaXMuY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXNlcyA9IHZhbHVlLmxpbmVPcGVyYXRpb25TdGF0dXNlcztcblxuICAgIGF3YWl0IHRoaXMuX3VwZGF0ZVJlbGF0aW9uKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvblVwZGF0ZWQuZW1pdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb25MaW5lU3RhdHVzKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpOiB2b2lkIHtcbiAgICAvLyB0aGlzLl9jdXJyZW50TGluZU9wZXJhdGlvblN0YXR1cy51dWlkID0gdmFsdWUubGluZVV1aWQ7XG4gICAgLy8gdGhpcy5fY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiA9IHZhbHVlLnBlbmRpbmdSZWFzb247XG4gICAgLy8gdGhpcy5fY3VycmVudExpbmVPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUgPSB2YWx1ZS5wZW5kaW5nUmVhc29uVHlwZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3VwZGF0ZVJlbGF0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbiAmJiB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi5yZWxhdGlvbiAmJiB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi5yZWxhdGlvbi5yZWxhdGlvbklkKSB7XG4gICAgICBpZiAoIXRoaXMuX2N1cnJlbnRSZWxhdGlvbiB8fCB0aGlzLl9jdXJyZW50UmVsYXRpb24ucmVsYXRpb25JZCAhPT0gdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24ucmVsYXRpb24ucmVsYXRpb25JZCkge1xuICAgICAgICB0aGlzLl9jdXJyZW50UmVsYXRpb24gPSBhd2FpdCB0aGlzLmdldEN1c3RvbWVyRnVsT2JqZWN0QnlSZWxhdGlvbklkKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnJlbGF0aW9uLnJlbGF0aW9uSWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKCk6IFNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdCB7XG4gICAgY29uc3QgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0OiBTZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QgPSBuZXcgU2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0ICgpO1xuICAgIHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdC5hbGxvd1BhcnRpYWxEZWxpdmVyeSA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5hbGxvd1BhcnRpYWxEZWxpdmVyeTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QuZGVsaXZlcnlEYXRlID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLmRlbGl2ZXJ5RGF0ZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QuZGVsaXZlcnlNZXRob2QgPSB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24uZGVsaXZlcnlNZXRob2Q7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0LmRlbGl2ZXJ5T3B0aW9ucyA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5kZWxpdmVyeU9wdGlvbnM7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0Lm1hcmtldGluZ0NvZGUgPSB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24ubWFya2V0aW5nQ29kZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3Qub3duUmVmZXJlbmNlID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLm93blJlZmVyZW5jZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QucHJlZmVycmVkRGVsaXZlcnlEYXRlID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QucHJlZmVycmVkRGVsaXZlcnlEYXRlMiA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGUyO1xuICAgIHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdC5yZWxhdGlvblJlZmVyZW5jZSA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5yZWxhdGlvblJlZmVyZW5jZTtcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QucmVtYXJrID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnJlbWFyaztcbiAgICB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QudHJhbnNhY3Rpb25VdWlkID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLnV1aWQ7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0LnRyYW5zYWN0aW9uQWRkcmVzcyA9IHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MubmF3TnI7XG4gICAgdHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0Lmludm9pY2VBZGRyZXNzID0gdGhpcy5fY3VycmVudFRyYW5zYWN0aW9uLmludm9pY2VBZGRyZXNzID9cbiAgICAgIHRoaXMuX2N1cnJlbnRUcmFuc2FjdGlvbi5pbnZvaWNlQWRkcmVzcy5uYXdOciA6XG4gICAgICB0aGlzLl9jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25BZGRyZXNzLm5hd05yO1xuICAgIHJldHVybiB0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3Q7XG4gIH1cblxuICBwcml2YXRlIF9yZW1lbWJlclJlc3BvbnNlKHJlbWVtYmVyOiBib29sZWFuLCByZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKTogdm9pZCB7XG4gICAgaWYgKHJlbWVtYmVyKSB7XG4gICAgICB0aGlzLl9yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbihyZXNwb25zZSk7XG4gICAgICB0aGlzLl9yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbkxpbmVTdGF0dXMocmVzcG9uc2UpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -162,6 +162,10 @@ export class Dictionary {
162
162
  "WHERE_ARE_YOU_LOOKING_FOR": "Waar ben je naar op zoek?",
163
163
  "WAREHOUSE": "Magazijn",
164
164
  "YOUR_DATA": "Uw gegevens",
165
+ "STANDARD_TEXTS": "Standaardteksten",
166
+ "ARTICLE_BOUND_TEXT": "Artikelgebonden tekst",
167
+ "FOR_DOCUMENTS": "Bestemd voor documenten",
168
+ "CHANGE_ARTICLE_TEXT": "Wijzigen artikeltekst",
165
169
  },
166
170
  "de": {},
167
171
  "fr": {},
@@ -317,8 +321,12 @@ export class Dictionary {
317
321
  "WAREHOUSE": "Warehouse",
318
322
  "WHERE_ARE_YOU_LOOKING_FOR": "Where are you looking for?",
319
323
  "YOUR_DATA": "Your data",
324
+ "STANDARD_TEXTS": "Standard texts",
325
+ "ARTICLE_BOUND_TEXT": "Article bound text",
326
+ "FOR_DOCUMENTS": "Used at documents",
327
+ "CHANGE_ARTICLE_TEXT": "Change article text",
320
328
  },
321
329
  };
322
330
  }
323
331
  }
324
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5wcm9wZXJ0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Fzc2V0cy9kaWN0aW9uYXJ5L3RleHQucHJvcGVydGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUF2QjtRQUNTLFlBQU8sR0FBTztZQUNuQixJQUFJLEVBQUU7Z0JBQ0osaUJBQWlCLEVBQUUsaUJBQWlCO2dCQUNwQyxxQkFBcUIsRUFBRSxrRkFBa0Y7b0JBQ3ZHLDBGQUEwRjtnQkFDNUYscUJBQXFCLEVBQUUsOEJBQThCO2dCQUNyRCx1QkFBdUIsRUFBRSw4QkFBOEI7Z0JBQ3ZELDBCQUEwQixFQUFFLDRCQUE0QjtnQkFDeEQsNEJBQTRCLEVBQUUsNEJBQTRCO2dCQUMxRCxlQUFlLEVBQUUsbUJBQW1CO2dCQUNwQyxTQUFTLEVBQUUsT0FBTztnQkFDbEIsV0FBVyxFQUFFLFVBQVU7Z0JBQ3ZCLGFBQWEsRUFBRSxpQkFBaUI7Z0JBQ2hDLGdCQUFnQixFQUFFLGdCQUFnQjtnQkFDbEMsNkJBQTZCLEVBQUUsc0NBQXNDO2dCQUNyRSxTQUFTLEVBQUUsU0FBUztnQkFDcEIscUJBQXFCLEVBQUUscUJBQXFCO2dCQUM1QywyQkFBMkIsRUFBRSxnRUFBZ0U7Z0JBQzdGLFlBQVksRUFBRSxlQUFlO2dCQUM3QixpQkFBaUIsRUFBRSxrQkFBa0I7Z0JBQ3JDLGdCQUFnQixFQUFFLGVBQWU7Z0JBQ2pDLGVBQWUsRUFBRSxjQUFjO2dCQUMvQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLGlDQUFpQyxFQUFFLG1EQUFtRDtnQkFDdEYseUJBQXlCLEVBQUUsY0FBYztnQkFDekMsb0NBQW9DLEVBQUUsdUNBQXVDO2dCQUM3RSxNQUFNLEVBQUUsTUFBTTtnQkFDZCxTQUFTLEVBQUUsU0FBUztnQkFDcEIsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLGlC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QUFFLFVBQVU7Z0JBQ3RCLGFBQWEsRUFBRSxhQUFhO2dCQUM1QixrQkFBa0IsRUFBRSxXQUFXO2dCQUMvQixPQUFPLEVBQUUsUUFBUTtnQkFDakIsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLGNBQWMsRUFBRSxjQUFjO2dCQUM5QixhQUFhLEVBQUUsYUFBYTtnQkFDNUIscUJBQXFCLEVBQUUscUJBQXFCO2dCQUM1QyxzQkFBc0IsRUFBRSw0QkFBNEI7Z0JBQ3BELDJCQUEyQixFQUFFLG1CQUFtQjtnQkFDaEQsK0JBQStCLEVBQUUsK0JBQStCO2dCQUNoRSxtQkFBbUIsRUFBRSxxQkFBcUI7Z0JBQzFDLG1CQUFtQixFQUFFLG1CQUFtQjtnQkFDeEMsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLDBCQUEwQixFQUFFLGlCQUFpQjtnQkFDN0MsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLEtBQUssRUFBRSxLQUFLO2dCQUNaLFlBQVksRUFBRSxZQUFZO2dCQUMxQixXQUFXLEVBQUUsV0FBVztnQkFDeEIsMkJBQTJCLEVBQUUsNEJBQTRCO2dCQUN6RCxXQUFXLEVBQUUsV0FBVzthQUN6QjtTQUNGLENBQUM7SUFDSixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRGljdGlvbmFyeSB7XHJcbiAgcHVibGljIHN0cmluZ3M6IHt9ID0ge1xyXG4gICAgXCJubFwiOiB7XHJcbiAgICAgIFwiQUNDT1VOVF9ERVRBSUxTXCI6IFwiQWNjb3VudGdlZ2V2ZW5zXCIsXHJcbiAgICAgIFwiQUNDT1VOVF9FWFBMQU5BVElPTlwiOiBcIkhldCBlLW1haWxhZHJlcyBlbiB3YWNodHdvb3JkIHppam4gbm9kaWcgb20gdG9lZ2FuZyB0ZSBrcmlqZ2VuIHRvdCBkZSBnZWdldmVucy4gXCIgK1xyXG4gICAgICAgIFwiT29rIHp1bGxlbiB3ZSBqZSB2aWEgZGl0IGUtbWFpbGFkcmVzIG9wIGRlIGhvb2d0ZSBob3VkZW4gdmFuIGRlIHN0YXR1cyB2YW4gYmVzdGVsbGluZ2VuLlwiLFxyXG4gICAgICBcIkFERF9BUlRJQ0xFX0xJTkVfVVBcIjogXCJBcnRpa2VscmVnZWwgYm92ZW4gdG9ldm9lZ2VuXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfTElORV9ET1dOXCI6IFwiQXJ0aWtlbHJlZ2VsIG9uZGVyIHRvZXZvZWdlblwiLFxyXG4gICAgICBcIkFERF9BUlRJQ0xFX1RFWFRfTElORV9VUFwiOiBcIlRla3N0cmVnZWwgYm92ZW4gdG9ldm9lZ2VuXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfVEVYVF9MSU5FX0RPV05cIjogXCJUZWtzdHJlZ2VsIG9uZGVyIHRvZXZvZWdlblwiLFxyXG4gICAgICBcIkFERF9ESVNDT1VOVFNcIjogXCJLb3J0aW5nIHRvZXZvZWdlblwiLFxyXG4gICAgICBcIkFERFJFU1NcIjogXCJBZHJlc1wiLFxyXG4gICAgICBcIkFERFJFU1NFU1wiOiBcIkFkcmVzc2VuXCIsXHJcbiAgICAgIFwiQUREUkVTU19BRERcIjogXCJBZHJlcyB0b2V2b2VnZW5cIixcclxuICAgICAgXCJBRERSRVNTX0NIQU5HRVwiOiBcIkFkcmVzIHdpanppZ2VuXCIsXHJcbiAgICAgIFwiQUxXQVlTX1NIT1dfTE9HSVNUSUNTX1BPUFVQXCI6IFwiQ29udHJvbGVlciBtYWdhemlqbiBlbiBjb21taXNzaWVjb2RlXCIsXHJcbiAgICAgIFwiQVJUSUNMRVwiOiBcIkFydGlrZWxcIixcclxuICAgICAgXCJBUlRJQ0xFX0RFU0NSSVBUSU9OXCI6IFwiQXJ0aWtlbG9tc2NocmlqdmluZ1wiLFxyXG4gICAgICBcIkFSVElDTEVfSU5fT1VUX0NPTExFQ1RJT05cIjogXCJTdGF0dXMgdmFuIGFydGlrZWwgaXMgJ3x+Jy4gV2VldCB1IHpla2VyIGRhdCB1IGRvb3Igd2lsdCBnYWFuP1wiLFxyXG4gICAgICBcIkFSVElDTEVfTlJcIjogXCJBcnRpa2VsbnVtbWVyXCIsXHJcbiAgICAgIFwiQVJUSUNMRV9VTktOT1dOXCI6IFwiT25iZWtlbmQgYXJ0aWtlbFwiLFxyXG4gICAgICBcIkFTU0VNQkxZX0NPU1RTXCI6IFwiTW9udGFnZWtvc3RlblwiLFxyXG4gICAgICBcIkFTU0VNQkxZX0RBVEVcIjogXCJNb250YWdlZGF0dW1cIixcclxuICAgICAgXCJBTU9VTlRcIjogXCJBYW50YWxcIixcclxuICAgICAgXCJCQUNLXCI6IFwiVGVydWdcIixcclxuICAgICAgXCJDQU5DRUxcIjogXCJBbm51bGVyZW5cIixcclxuICAgICAgXCJDQU5OT1RfQ0hBTkdFX05FR0FUSVZFX1FVQU5USVRZXCI6IFwiRWVuIG5lZ2F0aWV2ZSB2b29ycmFhZCBrYW4gbmlldCBnZXdpanppZ2Qgd29yZGVuLlwiLFxyXG4gICAgICBcIkNIQVJBQ1RFUklTVElDX1FVRVNUSU9OXCI6IFwiS2VubWVya3ZyYWFnXCIsXHJcbiAgICAgIFwiQ0hFQ0tfV0FSRUhPVVNFX0FORF9DT01NSVNTSU9OQ09ERVwiOiBcIkNvbnRyb2xlZXIgbWFnYXppam4gZW4gY29tbWlzc2llY29kZS5cIixcclxuICAgICAgXCJDSVRZXCI6IFwiU3RhZFwiLFxyXG4gICAgICBcIkNPTVBBTllcIjogXCJCZWRyaWpmXCIsXHJcbiAgICAgIFwiQ09NUEFOWV9OQU1FXCI6IFwiQmVkcmlqZnNuYWFtXCIsXHJcbiAgICAgIFwiQ09NTUlTU0lPTl9DT0RFXCI6IFwiQ29tbWlzaWVjb2RlXCIsXHJcbiAgICAgIFwiQ09OVElOVUVcIjogXCJWb2xnZW5kZVwiLFxyXG4gICAgICBcIkNPTlRJTlVFX09SREVSX1dISUxFX1NUT0NLX0FWQUlMQUJMRV9QTEVBU0VfQ09ORklSTVwiOiBcIlUgaGVlZnQgZ2Vrb3plbiB2b29yIGhldCBiZXN0ZWxsZW4gdmFuIGFydGlrZWxlbiB0ZXJ3aWpsIGVyIG5vZyB2b29ycmFhZCBhYW53ZXppZyBpcy4gV2lsdCB1IHZlcmRlcmdhYW4/XCIsXHJcbiAgICAgIFwiQ09OVElOVUVfV0lUSE9VVF9BQ0NPVU5UXCI6IFwiR2EgZG9vciB6b25kZXIgYWNjb3VudFwiLFxyXG4gICAgICBcIkNPU1RTXCI6IFwiS29zdGVuXCIsXHJcbiAgICAgIFwiQ09VTlRSWVwiOiBcIkxhbmRcIixcclxuICAgICAgXCJDUkVBVEVfQUNDT1VOVFwiOiBcIk1hYWsgZWVuIGFjY291bnQgYWFuXCIsXHJcbiAgICAgIFwiQ1JFQVRFX0FDQ09VTlRfSU5fMl9NSU5cIjogXCJNYWFrIGJpbm5lbiAyIG1pbnV0ZW4gZWVuIGFjY291bnQgYWFuLlwiLFxyXG4gICAgICBcIkRBVEVfT0ZfQklSVEhcIjogXCJHZWJvb3J0ZWRhdHVtXCIsXHJcbiAgICAgIFwiREVMRVRFX1RSQU5TQUNUSU9OX0xJTkVcIjogXCJUcmFuc2FjdGllcmVnZWwgdmVyd2lqZGVyZW4/XCIsXHJcbiAgICAgIFwiREVMRVRFX1RSQU5TQUNUSU9OX0xJTkVfSElOVFwiOiBcIlZlcndpamRlciB0cmFuc2FjdGllcmVnZWxcIixcclxuICAgICAgXCJERUxFVEVfVFJBTlNBQ1RJT05fTElORV9GQUlMRURcIjogXCJIZXQgdmVyd2lqZGVyZW4gdmFuIGRlIHRyYW5zYWN0aWVyZWdlbCBpcyBtaXNsdWt0XCIsXHJcbiAgICAgIFwiREVMSVZFUllcIjogXCJCZXpvcmdpbmdcIixcclxuICAgICAgXCJERUxJVkVSWV9BRERSRVNTXCI6IFwiQWZsZXZlcmFkcmVzXCIsXHJcbiAgICAgIFwiREVMSVZFUllfQUREUkVTU19BRERcIjogXCJCZXpvcmdhZHJlcyB0b2V2b2VnZW5cIixcclxuICAgICAgXCJERUxJVkVSWV9BRERSRVNTX0NIQU5HRVwiOiBcIkJlem9yZ2FkcmVzIHdpanppZ2VuXCIsXHJcbiAgICAgIFwiREVMSVZFUllfQ09TVFNcIjogXCJCZXpvcmdrb3N0ZW5cIixcclxuICAgICAgXCJERUxJVkVSWV9EQVRFXCI6IFwiTGV2ZXJkYXR1bVwiLFxyXG4gICAgICBcIkRFTElWRVJZX0RBVEVfRklOQUxcIjogXCJEZWZpbml0aWV2ZSBsZXZlcmRhdHVtXCIsXHJcbiAgICAgIFwiREVMSVZFUllfRElSRUNUXCI6IFwiRGlyZWN0IGxldmVyYmFhclwiLFxyXG4gICAgICBcIkRFTElWRVJZX0xPQ0FUSU9OXCI6IFwiQmV6b3JnaW5nc2xvY2F0aWVcIixcclxuICAgICAgXCJERUxJVkVSWV9PUFRJT05TXCI6IFwiTGV2ZXJvcHRpZXNcIixcclxuICAgICAgXCJERUxJVkVSWV9NRVRIT0QyXCI6IFwiTGV2ZXJtZXRob2RlXCIsXHJcbiAgICAgIFwiREVMSVZFUllfTU9NRU5UXCI6IFwiTGV2ZXJtb21lbnRcIixcclxuICAgICAgXCJERUxJVkVSWV9PUFRBUlRJQ0xFX05SSU9OU1wiOiBcIkJlem9yZ29wdGllc1wiLFxyXG4gICAgICBcIkRFTElWRVJZX1RJTUVfUEVSSU9EXCI6IFwiTGV2ZXJ0aWpkXCIsXHJcbiAgICAgIFwiREVTQ1JJUFRJT05cIjogXCJPbXNjaHJpanZpbmdcIixcclxuICAgICAgXCJERVRBSUxTXCI6IFwiRGV0YWlsc1wiLFxyXG4gICAgICBcIkRJU0NPVU5UXCI6IFwiS29ydGluZ1wiLFxyXG4gICAgICBcIkRJU0NPVU5UX0FNT1VOVFwiOiBcIktvcnRpbmdzYmVkcmFnXCIsXHJcbiAgICAgIFwiRElTQ09VTlRfUEVSQ0VOVEFHRVwiOiBcIktvcnRpbmdzICVcIixcclxuICAgICAgXCJEUk9QU0hJUE1FTlRcIjogXCJEcm9wc2hpcG1lbnRcIixcclxuICAgICAgXCJFTUFJTF9BRERSRVNTXCI6IFwiRS1tYWlsYWRyZXNcIixcclxuICAgICAgXCJFWElTVElOR19DVVNUT01FUlNcIjogXCJCZXN0YWFuZGUga2xhbnRlblwiLFxyXG4gICAgICBcIkVYUEVDVEVEX0RFTElWRVJZX0RBVEVcIjogXCJWZXJ3YWNodGUgYmV6b3JnZGF0dW1cIixcclxuICAgICAgXCJFWFBFQ1RFRF9ERUxJVkVSWV9XRUVLXCI6IFwiVmVyd2FjaHRlIGxldmVyd2Vla1wiLFxyXG4gICAgICBcIkZFTUFMRVwiOiBcIlZyb3V3XCIsXHJcbiAgICAgIFwiRklSU1RfTkFNRVwiOiBcIlZvb3JuYWFtXCIsXHJcbiAgICAgIFwiR09PRF9ERVNDUklQVElPTlwiOiBcIkFydGlrZWxvbXNjaHJpanZpbmdcIixcclxuICAgICAgXCJIT1VTRV9OT1wiOiBcIkh1aXNudW1tZXJcIixcclxuICAgICAgXCJIT1VTRV9OT19BRERJVElPTlwiOiBcIkh1aXNudW1tZXIgdG9ldm9lZ2luZ1wiLFxyXG4gICAgICBcIklOVklURV9UT19BQ0NPVU5UXCI6IFwiVWl0bm9kaWdlbiB2b29yIGFjY291bnRcIixcclxuICAgICAgXCJJTlZPSUNFX0FERFJFU1NcIjogXCJGYWN0dXVyYWRyZXNcIixcclxuICAgICAgXCJJTlZPSUNFX0FERFJFU1NfQUREXCI6IFwiRmFjdHV1cmFkcmVzIHRvZXZvZWdlblwiLFxyXG4gICAgICBcIklOVk9JQ0VfQUREUkVTU19DSEFOR0VcIjogXCJGYWN0dXVyYWRyZXMgd2lqemlnZW5cIixcclxuICAgICAgXCJMQVNUX05BTUVcIjogXCJBY2h0ZXJuYWFtXCIsXHJcbiAgICAgIFwiTElORV9ORUVEU19DT01NSVNTSU9OX0NPREVcIjogXCJEZSBjb21taXNpZWNvZGUgb250YnJlZWt0LiBWdWwgZGUgY29tbWlzc2llY29kZSBpbi5cIixcclxuICAgICAgXCJMT0dJTlwiOiBcIklubG9nZ2VuXCIsXHJcbiAgICAgIFwiTE9HSU5fREVUQUlMU1wiOiBcIklubG9nZ2VnZXZlbnNcIixcclxuICAgICAgXCJNQUxFXCI6IFwiTWFuXCIsXHJcbiAgICAgIFwiTUFSS0VUSU5HXCI6IFwiTWFya2V0aW5nXCIsXHJcbiAgICAgIFwiTkFNRVwiOiBcIk5hYW1cIixcclxuICAgICAgXCJORVRUXCI6IFwiTmV0dG9cIixcclxuICAgICAgXCJORVdfQVRcIjogXCJOaWV1dyBiaWogXCIsXHJcbiAgICAgIFwiTkVXX0xPQ0FUSU9OXCI6IFwiTmlldXdlIGxvY2F0aWVcIixcclxuICAgICAgXCJOT19JTUFHRVwiOiBcIkFmYmVlbGRpbmcgbmlldCBiZXNjaGlrYmFhclwiLFxyXG4gICAgICBcIk5PVF9BRlRFUlwiOiBcIk5pZXQgbGF0ZXIgZGFuXCIsXHJcbiAgICAgIFwiTk9UX0JFRk9SRVwiOiBcIk5pZXQgZWVyZGVyIGRhblwiLFxyXG4gICAgICBcIk5SXCI6IFwiTnVtbWVyXCIsXHJcbiAgICAgIFwiTlVNQkVSXCI6IFwiQWFudGFsXCIsXHJcbiAgICAgIFwiT05fREFURVwiOiBcIk9wIGRhdHVtXCIsXHJcbiAgICAgIFwiT1BFTl9TSE9QUElOR19DQVJUXCI6IFwiT3BlbiB3aW5rZWx3YWdlblwiLFxyXG4gICAgICBcIk9SREVSX0RBVEVcIjogXCJPcmRlcmRhdHVtXCIsXHJcbiAgICAgIFwiT1JERVJfR1JPU1NcIjogXCJPcmRlcnRvdGFhbCBicnV0b1wiLFxyXG4gICAgICBcIk9SREVSX05FVFwiOiBcIk9yZGVydG90YWFsIG5ldHRvXCIsXHJcbiAgICAgIFwiT1JERVJfTlVNQkVSXCI6IFwiT3JkZXJudW1tZXJcIixcclxuICAgICAgXCJPUkRFUl9UWVBFXCI6IFwiVHlwZSBiZXN0ZWxsaW5nXCIsXHJcbiAgICAgIFwiT1ZFUlZJRVdcIjogXCJPdmVyemljaHRcIixcclxuICAgICAgXCJPV05fUkVGRVJFTkNFXCI6IFwiRWlnZW4gcmVmZXJlbnRpZVwiLFxyXG4gICAgICBcIlBBSURfRE9XTjJcIjogXCJBYW5iZXRhYWxkXCIsXHJcbiAgICAgIFwiUEFSVF9ERUxJVkVSSUVTXCI6IFwiRGVlbGxldmVyaW5nZW5cIixcclxuICAgICAgXCJQQVNTV09SRFwiOiBcIldhY2h0d29vcmRcIixcclxuICAgICAgXCJQQVlNRU5UXCI6IFwiQmV0YWxpbmdcIixcclxuICAgICAgXCJQRVJTT05BTF9EQVRBXCI6IFwiUGVyc29vbmxpamtlIGdlZ2V2ZW5zXCIsXHJcbiAgICAgIFwiUEhPTkVfTk9cIjogXCJUZWxlZm9vbm51bW1lclwiLFxyXG4gICAgICBcIlBPU1RBTF9DT0RFXCI6IFwiUG9zdGNvZGVcIixcclxuICAgICAgXCJQUkVGRVJSRURfREFURVwiOiBcIlZvb3JrZXVyc2RhdHVtXCIsXHJcbiAgICAgIFwiUFJFRklYXCI6IFwiVHVzc2Vudm9lZ3NlbFwiLFxyXG4gICAgICBcIlBSSUNFXCI6IFwiUHJpanNcIixcclxuICAgICAgXCJQUklDRV9MSVNUXCI6IFwiUHJpanNsaWpzdFwiLFxyXG4gICAgICBcIlBSSVZBQ1lfUFJFRkVSRU5DRVNcIjogXCJQcml2YWN5dm9vcmtldXJlblwiLFxyXG4gICAgICBcIlBSSVZBVEVfUEVSU09OXCI6IFwiUGFydGljdWxpZXJcIixcclxuICAgICAgXCJQUk9EVUNUXCI6IFwiUHJvZHVjdFwiLFxyXG4gICAgICBcIlBST0RVQ1RfVFlQRVwiOiBcIlByb2R1Y3Rzb29ydFwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9aRVJPX09SX0VNUFRZXCI6IFwiSGV0IGFhbnRhbCBtYWcgZ2VlbiAwIHppam4uXCIsXHJcbiAgICAgIFwiUVVBTlRJVFlfQ0FOTk9UX0JFX0xFU1NfVEhBTl9ERUxJVkVSRURcIjogXCJIZXQgYWFudGFsIG1vZXQgZ2VsaWprIHppam4gYWFuIGhldCBnZWxldmVyZGUgYWFudGFsXCIsXHJcbiAgICAgIFwiUVVBTlRJVFlfQ0FOTk9UX0JFX01PUkVfVEhBTl9ERUxJVkVSRURcIjogXCJIZXQgYWFudGFsIG1vZXQgZ2VsaWprIHppam4gYWFuIGhldCBnZWxldmVyZGUgYWFudGFsXCIsXHJcbiAgICAgIFwiUVVBTlRJVFlfQ0FOTk9UX0JFX0xFU1NfVEhBTl9JTlZPSUNFRFwiOiBcIkhldCBhYW50YWwgbW9ldCBnZWxpamsgemlqbiBhYW4gZGUgYmVzdGVsZGUgdm9vcnJhYWRcIixcclxuICAgICAgXCJRVUFOVElUWV9DQU5OT1RfQkVfTU9SRV9USEFOX0lOVk9JQ0VEXCI6IFwiSGV0IGFhbnRhbCBtb2V0IGdlbGlqayB6aWpuIGFhbiBkZSBiZXN0ZWxkZSB2b29ycmFhZFwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9MRVNTX1RIQU5fQUxMT0NBVEVEXCI6IFwiSGV0IGFhbnRhbCBtb2V0IGdlbGlqayB6aWpuIGFhbiBkZGUgdG9lZ2V3ZXplbiB2b29ycmFhZFwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9NT1JFX1RIQU5fQUxMT0NBVEVEXCI6IFwiSGV0IGFhbnRhbCBtb2V0IGdlbGlqayB6aWpuIGFhbiBkZGUgdG9lZ2V3ZXplbiB2b29ycmFhZFwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9MRVNTX1RIQU5fUkVDRUlWRURcIjogXCJIZXQgYWFudGFsIG1vZXQgZ2VsaWprIHppam4gYWFuIGhldCBhYW50YWwgb250dmFuZ2VuLlwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9NT1JFX1RIQU5fUkVDRUlWRURcIjogXCJIZXQgYWFudGFsIG1vZXQgZ2VsaWprIHppam4gYWFuIGhldCBhYW50YWwgb250dmFuZ2VuXCIsXHJcbiAgICAgIFwiUVVBTlRVTV9ESVNDT1VOVFwiOiBcIkt3YW50dW1rb3J0aW5nXCIsXHJcbiAgICAgIFwiUkVGRVJFTkNFX1JFTEFUSU9OXCI6IFwiUmVmLiByZWxhdGllXCIsXHJcbiAgICAgIFwiUkVNQVJLU1wiOiBcIk9wbWVya2luZ2VuXCIsXHJcbiAgICAgIFwiU0FMVVRBVElPTlwiOiBcIkFhbmhlZlwiLFxyXG4gICAgICBcIlNBVkVcIjogXCJPcHNsYWFuXCIsXHJcbiAgICAgIFwiU0VMRUNUXCI6IFwiU2VsZWN0ZXJlblwiLFxyXG4gICAgICBcIlNFUlZJQ0VfTlVNQkVSXCI6IFwiU2VydmljZW51bW1lclwiLFxyXG4gICAgICBcIlNFUlZJQ0VfUkVRVUVTVF9EQVRFXCI6IFwiRGF0dW0gYWFudnJhYWdcIixcclxuICAgICAgXCJTRVJWSUNFX1NUQVRFXCI6IFwiU2VydmljZSBzdGF0dXNcIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUXCI6IFwiV2lua2Vsd2FnZW5cIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUX0NIRUNLT1VUXCI6IFwiQmVzdGVsbGVuXCIsXHJcbiAgICAgIFwiU0hPUFBJTkdfQ0FSVF9PVkVSVklFV1wiOiBcIk92ZXJ6aWNodCB2YW4gdXcgYmVzdGVsbGluZ1wiLFxyXG4gICAgICBcIlNIT1BQSU5HX0NBUlRfUkVTVU1FXCI6IFwiVmVyZGVyIHdpbmtlbGVuXCIsXHJcbiAgICAgIFwiU1BFQ0lBTF9ESVNDT1VOVFwiOiBcIlNwZWNpYWxlIGtvcnRpbmdcIixcclxuICAgICAgXCJTVE9DS1wiOiBcIlZvb3JyYWFkXCIsXHJcbiAgICAgIFwiU1RPQ0tfTk9USUZJQ0FUSU9OXCI6IFwiVm9vcnJhYWRtZWxkaW5nXCIsXHJcbiAgICAgIFwiU1RPQ0tfQVZBSUxBQkxFX0NIQU5HRV9XQVJFSE9VU0VfT1JfQ09NTUlTU0lPTkNPREVcIjogXCJFciBpcyB2b2xkb2VuZGUgdm9vcnJhYWQuIFZlcmFuZGVyIG1hZ2F6aWpuIGVuL29mIGNvbW1pc3NpZWNvZGVcIixcclxuICAgICAgXCJTVUJUT1RBTFwiOiBcIlN1YnRvdGFhbFwiLFxyXG4gICAgICBcIlNVR0dFU1RJT05TXCI6IFwiU3VnZ2VzdGllc1wiLFxyXG4gICAgICBcIlNVUkNIQVJHRV9BTU9VTlRcIjogXCJUb2VzbGFnXCIsXHJcbiAgICAgIFwiU1RBVEVcIjogXCJTdGF0dXNcIixcclxuICAgICAgXCJTVFJFRVRcIjogXCJTdHJhYXRuYWFtXCIsXHJcbiAgICAgIFwiVE9UQUxfQU1PVU5UXCI6IFwiVG90YWFsYmVkcmFnXCIsXHJcbiAgICAgIFwiVE9UQUxfR1JPU1NcIjogXCJUb3RhYWwgYnJ1dG9cIixcclxuICAgICAgXCJUT1RBTF9BU1NFTUJMWV9USU1FXCI6IFwiVG90YWxlIG1vbnRhZ2V0aWpkXCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fRElTQ09VTlRcIjogXCJUb3RhbGUgdHJhbnNhY3RpZSBrb3J0aW5nXCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fRElTQ09VTlRfUEVSQ1wiOiBcIiUgVHJhbnMuIGtvcnRpbmdcIixcclxuICAgICAgXCJUUkFOU0FDVElPTl9QUklDRV9ERUNMQVJBVElPTlwiOiBcIk9yZGVyIHByaWpzdmVya2xhcmluZ1wiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX1NVTV9JXCI6IFwiT3JkZXJ0b3RhYWwgaW5jbC4gQlRXXCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fVE9UQUxcIjogXCJUcmFuc2FjdGllIHRvdGFhbFwiLFxyXG4gICAgICBcIlVOS05PV05cIjogXCJPbmJla2VuZFwiLFxyXG4gICAgICBcIlVOS05PV05fQUREUkVTU19DSEVDS19JVFwiOiBcIk9uYmVrZW5kIGFkcmVzXCIsXHJcbiAgICAgIFwiVkFUXCI6IFwiQnR3XCIsXHJcbiAgICAgIFwiVkFUX0FNT1VOVFwiOiBcIkJUVy1iZWRyYWdcIixcclxuICAgICAgXCJWQUxVRVwiOiBcIldhYXJkZVwiLFxyXG4gICAgICBcIldIRVJFX0FSRV9ZT1VfTE9PS0lOR19GT1JcIjogXCJXYWFyIGJlbiBqZSBuYWFyIG9wIHpvZWs/XCIsXHJcbiAgICAgIFwiV0FSRUhPVVNFXCI6IFwiTWFnYXppam5cIixcclxuICAgICAgXCJZT1VSX0RBVEFcIjogXCJVdyBnZWdldmVuc1wiLFxyXG4gICAgfSxcclxuICAgIFwiZGVcIjoge30sXHJcbiAgICBcImZyXCI6IHt9LFxyXG4gICAgXCJlblwiOiB7XHJcbiAgICAgIFwiQUNDT1VOVF9ERVRBSUxTXCI6IFwiQWNjb3VudCBkZXRhaWxzXCIsXHJcbiAgICAgIFwiQUNDT1VOVF9FWFBMQU5BVElPTlwiOiBcIkUtbWFpbGFkZHJlc3MgYW5kIHBhc3N3b3JkIGFyZSBuZWVkZWQgdG8gZ2FpbiBhY2Nlc3MgdG8gdGhlIGRhdGEuIFdlIGFsc28gbm90aWZ5IHlvdSBvbiB0aGlzIGUtbWFpbGFkZHJlc3MgYWJvdXQgdGhlIG9yZGVyIHN0YXR1c1wiLFxyXG4gICAgICBcIkFERF9BUlRJQ0xFX0xJTkVfVVBcIjogXCJBZGQgYXJ0aWNsZSBsaW5lIHVwXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfTElORV9ET1dOXCI6IFwiQWRkIGFydGljbGUgbGluZSBkb3duXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfVEVYVF9MSU5FX1VQXCI6IFwiQWRkIHRleHQgbGluZSB1cFwiLFxyXG4gICAgICBcIkFERF9BUlRJQ0xFX1RFWFRfTElORV9ET1dOXCI6IFwiQWRkIHRleHQgbGluZSBkb3duXCIsXHJcbiAgICAgIFwiQUREX0RJU0NPVU5UU1wiOiBcIkFkZCBkaXNjb3VudFwiLFxyXG4gICAgICBcIkFERFJFU1NcIjogXCJBZGRyZXNzXCIsXHJcbiAgICAgIFwiQUREUkVTU0VTXCI6IFwiQWRkcmVzc2VzXCIsXHJcbiAgICAgIFwiQUREUkVTU19BRERcIjogXCJBZGQgYWRkcmVzc1wiLFxyXG4gICAgICBcIkFERFJFU1NfQ0hBTkdFXCI6IFwiQ2hhbmdlIGFkZHJlc3NcIixcclxuICAgICAgXCJBTFdBWVNfU0hPV19MT0dJU1RJQ1NfUE9QVVBcIjogXCJDaGVjayB3YXJlaG91c2UgYW5kIGNvbW1pc3Npb25jb2RlXCIsXHJcbiAgICAgIFwiQVJUSUNMRVwiOiBcIkFydGljbGVcIixcclxuICAgICAgXCJBUlRJQ0xFX0RFU0NSSVBUSU9OXCI6IFwiQXJ0aWNsZSBkZXNjcmlwdGlvblwiLFxyXG4gICAgICBcIkFSVElDTEVfSU5fT1VUX0NPTExFQ1RJT05cIjogXCJTdGF0dXMgb2YgYXJ0aWNsZSBpcyAnfH4nLiBBcmUgeW91IHN1cmUgdG8gcHJvY2VlZD9cIixcclxuICAgICAgXCJBUlRJQ0xFX05SXCI6IFwiQXJ0aWNsZSBudW1iZXJcIixcclxuICAgICAgXCJBUlRJQ0xFX1VOS05PV05cIjogXCJBcnRpY2xlIHVua25vd25cIixcclxuICAgICAgXCJBU1NFTUJMWV9DT1NUU1wiOiBcIkFzc2VtYmx5IGNvc3RzXCIsXHJcbiAgICAgIFwiQVNTRU1CTFlfREFURVwiOiBcIkFzc2VtYmx5IGRhdGVcIixcclxuICAgICAgXCJBTU9VTlRcIjogXCJBbW91bnRcIixcclxuICAgICAgXCJCQUNLXCI6IFwiQmFja1wiLFxyXG4gICAgICBcIkNBTkNFTFwiOiBcIkNhbmNlbFwiLFxyXG4gICAgICBcIkNBTk5PVF9DSEFOR0VfTkVHQVRJVkVfUVVBTlRJVFlcIjogXCJBIG5lZ2F0aXZlIHN1cHBseSBjYW5ub3QgYmUgY2hhbmdlZC5cIixcclxuICAgICAgXCJDSEFSQUNURVJJU1RJQ19RVUVTVElPTlwiOiBcIkNoYXJhY3RlcmlzdGljIHF1ZXN0aW9uXCIsXHJcbiAgICAgIFwiQ0hFQ0tfV0FSRUhPVVNFX0FORF9DT01NSVNTSU9OQ09ERVwiOiBcIkNoZWNrIHdhcmVob3VzZSBhbmQgY29tbWlzc2lvbmNvZGVcIixcclxuICAgICAgXCJDSVRZXCI6IFwiQ2l0eVwiLFxyXG4gICAgICBcIkNPTVBBTllcIjogXCJDb21wYW55XCIsXHJcbiAgICAgIFwiQ09NUEFOWV9OQU1FXCI6IFwiQ29tcGFueSBuYW1lXCIsXHJcbiAgICAgIFwiQ09NTUlTU0lPTl9DT0RFXCI6IFwiQ29tbWlzc2lvbiBjb2RlXCIsXHJcbiAgICAgIFwiQ09OVElOVUVcIjogXCJOZXh0XCIsXHJcbiAgICAgIFwiQ09OVElOVUVfT1JERVJfV0hJTEVfU1RPQ0tfQVZBSUxBQkxFX1BMRUFTRV9DT05GSVJNXCI6IFwiWW91IGhhdmUgY2hvc2VuIHRvIG9yZGVyIGFydGljbGVzIHdoaWxlIHN0b2NrIGlzIHN0aWxsIGF2YWlsYWJsZS4gRG8geW91IHdpc2ggdG8gcHJvY2VlZD9cIixcclxuICAgICAgXCJDT05USU5VRV9XSVRIT1VUX0FDQ09VTlRcIjogXCJDb250aW51ZSB3aXRob3V0IGFuIGFjY291bnRcIixcclxuICAgICAgXCJDT1NUU1wiOiBcIkNvc3RzXCIsXHJcbiAgICAgIFwiQ09VTlRSWVwiOiBcIkNvdW50cnlcIixcclxuICAgICAgXCJDUkVBVEVfQUNDT1VOVFwiOiBcIkNyZWF0ZSBhbiBhY2NvdW50XCIsXHJcbiAgICAgIFwiQ1JFQVRFX0FDQ09VTlRfSU5fMl9NSU5cIjogXCJDcmVhdGUgYW4gYWNjb3VudCBpbiAyIG1pbnV0ZXMuXCIsXHJcbiAgICAgIFwiREFURV9PRl9CSVJUSFwiOiBcIkRhdGUgb2YgYmlydGhcIixcclxuICAgICAgXCJERUxFVEVfVFJBTlNBQ1RJT05fTElORVwiOiBcIkRlbGV0ZSB0cmFuc2FjdGlvbiBsaW5lIHZlcndpamRlcmVuP1wiLFxyXG4gICAgICBcIkRFTEVURV9UUkFOU0FDVElPTl9MSU5FX0hJTlRcIjogXCJEZWxldGUgdHJhbnNhY3Rpb24gbGluZVwiLFxyXG4gICAgICBcIkRFTEVURV9UUkFOU0FDVElPTl9MSU5FX0ZBSUxFRFwiOiBcIkRlbGV0aW9uIG9mIHRyYW5zYWN0aW9uIGxpbmUgaGFzIGZhaWxlZFwiLFxyXG4gICAgICBcIkRFTElWRVJZXCI6IFwiRGVsaXZlcnlcIixcclxuICAgICAgXCJERUxJVkVSWV9BRERSRVNTXCI6IFwiRGVsaXZlcnkgYWRkcmVzc1wiLFxyXG4gICAgICBcIkRFTElWRVJZX0FERFJFU1NfQUREXCI6IFwiQWRkIGRlbGl2ZXJ5IGFkZHJlc3NcIixcclxuICAgICAgXCJERUxJVkVSWV9BRERSRVNTX0NIQU5HRVwiOiBcIkNoYW5nZSBkZWxpdmVyeSBhZGRyZXNzXCIsXHJcbiAgICAgIFwiREVMSVZFUllfQ09TVFNcIjogXCJEZWxpdmVyeSBjb3N0c1wiLFxyXG4gICAgICBcIkRFTElWRVJZX0RBVEVcIjogXCJEZWxpdmVyeSBkYXRlXCIsXHJcbiAgICAgIFwiREVMSVZFUllfREFURV9GSU5BTFwiOiBcIkZpbmFsIGRlbGl2ZXJ5IGRhdGVcIixcclxuICAgICAgXCJERUxJVkVSWV9ESVJFQ1RcIjogXCJEaXJlY3QgZGVsaXZlcnlcIixcclxuICAgICAgXCJERUxJVkVSWV9MT0NBVElPTlwiOiBcIkRlbGl2ZXJ5IGxvY2F0aW9uXCIsXHJcbiAgICAgIFwiREVMSVZFUllfT1BUSU9OU1wiOiBcIkRlbGl2ZXJ5IG9wdGlvbnNcIixcclxuICAgICAgXCJERUxJVkVSWV9NRVRIT0QyXCI6IFwiRGVsaXZlcnkgbWV0aG9kXCIsXHJcbiAgICAgIFwiREVMSVZFUllfTU9NRU5UXCI6IFwiRGVsaXZlcnkgbW9tZW50XCIsXHJcbiAgICAgIFwiREVMSVZFUllfT1BUQVJUSUNMRV9OUklPTlNcIjogXCJEZWxpdmVyeSBvcHRpb25zXCIsXHJcbiAgICAgIFwiREVMSVZFUllfVElNRV9QRVJJT0RcIjogXCJEZWxpdmVyeSB0aW1lIHBlcmlvZFwiLFxyXG4gICAgICBcIkRFU0NSSVBUSU9OXCI6IFwiRGVzY3JpcHRpb25cIixcclxuICAgICAgXCJERVRBSUxTXCI6IFwiRGV0YWlsc1wiLFxyXG4gICAgICBcIkRJU0NPVU5UXCI6IFwiRGlzY291bnRcIixcclxuICAgICAgXCJESVNDT1VOVF9BTU9VTlRcIjogXCJEaXNjb3VudCBhbW91bnRcIixcclxuICAgICAgXCJESVNDT1VOVF9QRVJDRU5UQUdFXCI6IFwiRGlzY291bnQgJVwiLFxyXG4gICAgICBcIkRST1BTSElQTUVOVFwiOiBcIkRyb3BzaGlwbWVudFwiLFxyXG4gICAgICBcIkVNQUlMX0FERFJFU1NcIjogXCJFLW1haWxhZHJlc1wiLFxyXG4gICAgICBcIkVYSVNUSU5HX0NVU1RPTUVSU1wiOiBcIkV4aXN0aW5nIGN1c3RvbWVyc1wiLFxyXG4gICAgICBcIkVYUEVDVEVEX0RFTElWRVJZX0RBVEVcIjogXCJFeHBlY3RlZCBkZWxpdmVyeSBkYXRlXCIsXHJcbiAgICAgIFwiRVhQRUNURURfREVMSVZFUllfV0VFS1wiOiBcIkV4cGVjdGVkIGRlbGl2ZXJ5IHdlZWtcIixcclxuICAgICAgXCJGRU1BTEVcIjogXCJGZW1hbGVcIixcclxuICAgICAgXCJGSVJTVF9OQU1FXCI6IFwiRmlyc3QgbmFtZVwiLFxyXG4gICAgICBcIkdPT0RfREVTQ1JJUFRJT05cIjogXCJBcnRpY2xlIGRlc2NyaXB0aW9uXCIsXHJcbiAgICAgIFwiSE9VU0VfTk9cIjogXCJIb3VzZW51bWJlclwiLFxyXG4gICAgICBcIkhPVVNFX05PX0FERElUSU9OXCI6IFwiSG91c2VudW1iZXIgYWRkaXRpb25cIixcclxuICAgICAgXCJJTlZJVEVfVE9fQUNDT1VOVFwiOiBcIkludml0ZSBhY2NvdW50XCIsXHJcbiAgICAgIFwiSU5WT0lDRV9BRERSRVNTXCI6IFwiSW52b2ljZSBhZGRyZXNzXCIsXHJcbiAgICAgIFwiSU5WT0lDRV9BRERSRVNTX0FERFwiOiBcIkFkZCBpbnZvaWNlIGFkZHJlc3NcIixcclxuICAgICAgXCJJTlZPSUNFX0FERFJFU1NfQ0hBTkdFXCI6IFwiQ2hhbmdlIGludm9pY2UgYWRkcmVzc1wiLFxyXG4gICAgICBcIkxBU1RfTkFNRVwiOiBcIkxhc3QgbmFtZVwiLFxyXG4gICAgICBcIkxJTkVfTkVFRFNfQ09NTUlTU0lPTl9DT0RFXCI6IFwiTGluZSBuZWVkcyBhIGNvbW1pc3Npb24gY29kZVwiLFxyXG4gICAgICBcIkxPR0lOXCI6IFwiTG9naW5cIixcclxuICAgICAgXCJMT0dJTl9ERVRBSUxTXCI6IFwiTG9naW4gZGV0YWlsc1wiLFxyXG4gICAgICBcIk1BTEVcIjogXCJNYWxlXCIsXHJcbiAgICAgIFwiTUFSS0VUSU5HXCI6IFwiTWFya2V0aW5nXCIsXHJcbiAgICAgIFwiTkFNRVwiOiBcIk5hbWVcIixcclxuICAgICAgXCJORVRUXCI6IFwiTmV0XCIsXHJcbiAgICAgIFwiTkVXX0FUXCI6IFwiTmV3IGF0IFwiLFxyXG4gICAgICBcIk5FV19MT0NBVElPTlwiOiBcIk5ldyBsb2NhdGlvblwiLFxyXG4gICAgICBcIk5PX0lNQUdFXCI6IFwiTm8gaW1hZ2UgYXZhaWxhYmxlXCIsXHJcbiAgICAgIFwiTk9UX0FGVEVSXCI6IFwiTm90IGFmdGVyXCIsXHJcbiAgICAgIFwiTk9UX0JFRk9SRVwiOiBcIk5vdCBiZWZvcmVcIixcclxuICAgICAgXCJOUlwiOiBcIk51bWJlclwiLFxyXG4gICAgICBcIk5VTUJFUlwiOiBcIkFtb3VudFwiLFxyXG4gICAgICBcIk9OX0RBVEVcIjogXCJPbiBkYXRlXCIsXHJcbiAgICAgIFwiT1BFTl9TSE9QUElOR19DQVJUXCI6IFwiT3BlbiBzaG9wcGluZyBjYXJ0XCIsXHJcbiAgICAgIFwiT1JERVJfREFURVwiOiBcIk9yZGVyIGRhdGVcIixcclxuICAgICAgXCJPUkRFUl9HUk9TU1wiOiBcIlRvdGFsIGdyb3NzIGFtb3VudFwiLFxyXG4gICAgICBcIk9SREVSX05FVFwiOiBcIlRvdGFsIG5ldCBhbW91bnRcIixcclxuICAgICAgXCJPUkRFUl9OVU1CRVJcIjogXCJPcmRlciBudW1iZXJcIixcclxuICAgICAgXCJPUkRFUl9UWVBFXCI6IFwiT3JkZXIgdHlwZVwiLFxyXG4gICAgICBcIk9WRVJWSUVXXCI6IFwiT3ZlcnZpZXdcIixcclxuICAgICAgXCJPV05fUkVGRVJFTkNFXCI6IFwiT3duIHJlZmVyZW5jZVwiLFxyXG4gICAgICBcIlBBSURfRE9XTjJcIjogXCJQcmVwYWlkXCIsXHJcbiAgICAgIFwiUEFSVF9ERUxJVkVSSUVTXCI6IFwiUGFydGlhbCBkZWxpdmVyaWVzXCIsXHJcbiAgICAgIFwiUEFTU1dPUkRcIjogXCJQYXNzd29yZFwiLFxyXG4gICAgICBcIlBBWU1FTlRcIjogXCJQYXltZW50XCIsXHJcbiAgICAgIFwiUEVSU09OQUxfREFUQVwiOiBcIlBlcnNvbmFsIGRhdGFcIixcclxuICAgICAgXCJQSE9ORV9OT1wiOiBcIlRlbGVwaG9uZSBudW1iZXJcIixcclxuICAgICAgXCJQT1NUQUxfQ09ERVwiOiBcInBvc3RhbCBjb2RlXCIsXHJcbiAgICAgIFwiUFJFRkVSUkVEX0RBVEVcIjogXCJQcmVmZXJyZWQgZGF0ZVwiLFxyXG4gICAgICBcIlBSRUZJWFwiOiBcIlByZWZpeFwiLFxyXG4gICAgICBcIlBSSUNFXCI6IFwiUHJpY2VcIixcclxuICAgICAgXCJQUklDRV9MSVNUXCI6IFwiUHJpY2VsaXN0XCIsXHJcbiAgICAgIFwiUFJJVkFDWV9QUkVGRVJFTkNFU1wiOiBcIlByaXZhY3kgcHJlZmVyZW5jZXNcIixcclxuICAgICAgXCJQUklWQVRFX1BFUlNPTlwiOiBcIlByaXZhdGVcIixcclxuICAgICAgXCJQUk9EVUNUXCI6IFwiUHJvZHVjdFwiLFxyXG4gICAgICBcIlBST0RVQ1RfVFlQRVwiOiBcIlByb2R1Y3QgdHlwZVwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9aRVJPX09SX0VNUFRZXCI6IFwiUXVhbnRpdHkgY2Fubm90IGJlIHplcm8gb3IgZW1wdHlcIixcclxuICAgICAgXCJRVUFOVFVNX0RJU0NPVU5UXCI6IFwiUXVhbnR1bSBkaXNjb3VudFwiLFxyXG4gICAgICBcIlJFRkVSRU5DRV9SRUxBVElPTlwiOiBcIlJlZi4gcmVsYXRpb25cIixcclxuICAgICAgXCJSRU1BUktTXCI6IFwiUmVtYXJrc1wiLFxyXG4gICAgICBcIlNBTFVUQVRJT05cIjogXCJTYWx1dGF0aW9uXCIsXHJcbiAgICAgIFwiU0FWRVwiOiBcIlNhdmVcIixcclxuICAgICAgXCJTRUxFQ1RcIjogXCJTZWxlY3RcIixcclxuICAgICAgXCJTRVJWSUNFX05VTUJFUlwiOiBcIlNlcnZpY2UgbnVtYmVyXCIsXHJcbiAgICAgIFwiU0VSVklDRV9SRVFVRVNUX0RBVEVcIjogXCJTZXJ2aWNlIHJlcXVlc3QgZGF0YVwiLFxyXG4gICAgICBcIlNFUlZJQ0VfU1RBVEVcIjogXCJTZXJ2aWNlIHN0YXRlXCIsXHJcbiAgICAgIFwiU0hPUFBJTkdfQ0FSVFwiOiBcIlNob3BwaW5nIGNhcnRcIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUX0NIRUNLT1VUXCI6IFwiQ2hlY2tvdXRcIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUX09WRVJWSUVXXCI6IFwiT3JkZXIgb3ZlcnZpZXdcIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUX1JFU1VNRVwiOiBcIlJlc3VtZSBzaG9wcGluZ1wiLFxyXG4gICAgICBcIlNQRUNJQUxfRElTQ09VTlRcIjogXCJTcGVjaWFsIGRpc2NvdW50XCIsXHJcbiAgICAgIFwiU1RPQ0tcIjogXCJTdG9ja1wiLFxyXG4gICAgICBcIlNUT0NLX05PVElGSUNBVElPTlwiOiBcIlN0b2NrIG5vdGlmaWNhdGlvblwiLFxyXG4gICAgICBcIlNUT0NLX0FWQUlMQUJMRV9DSEFOR0VfV0FSRUhPVVNFX09SX0NPTU1JU1NJT05DT0RFXCI6IFwiTm90IGVub3VnaCBzdXBwbHkuIENoYW5nZSB3YXJlaG91c2UgYW5kL29yIGNvbW1pc3Npb25jb2RlXCIsXHJcbiAgICAgIFwiU1VCVE9UQUxcIjogXCJTdWJ0b3RhbFwiLFxyXG4gICAgICBcIlNVR0dFU1RJT05TXCI6IFwiU3VnZ2VzdGlvbnNcIixcclxuICAgICAgXCJTVVJDSEFSR0VfQU1PVU5UXCI6IFwiU3VyY2hhcmdlXCIsXHJcbiAgICAgIFwiU1RBVEVcIjogXCJTVEFUVVNcIixcclxuICAgICAgXCJTVFJFRVRcIjogXCJTdHJlZXRuYW1lXCIsXHJcbiAgICAgIFwiVE9UQUxfQU1PVU5UXCI6IFwiVG90YWwgYW1vdW50XCIsXHJcbiAgICAgIFwiVE9UQUxfR1JPU1NcIjogXCJHcm9zcyB0b3RhbFwiLFxyXG4gICAgICBcIlRPVEFMX0FTU0VNQkxZX1RJTUVcIjogXCJUb3RhbCBhc3NlbWJseSB0aW1lXCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fRElTQ09VTlRcIjogXCJUb3RhbCB0cmFuc2FjdGlvbiBkaXNjb3VudFwiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX0RJU0NPVU5UX1BFUkNcIjogXCIlIFRyYW5zLiBkaXNjb3VudFwiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX1BSSUNFX0RFQ0xBUkFUSU9OXCI6IFwiVHJhbnNhY3Rpb24gcHJpY2UgZGVjbGFyYXRpb25cIixcclxuICAgICAgXCJUUkFOU0FDVElPTl9TVU1fSVwiOiBcIk9yZGVydG90YWwgaW5jbCBWQVRcIixcclxuICAgICAgXCJUUkFOU0FDVElPTl9UT1RBTFwiOiBcIlRyYW5zYWN0aW9uIHRvdGFsXCIsXHJcbiAgICAgIFwiVU5LTk9XTlwiOiBcInVua25vd25cIixcclxuICAgICAgXCJVTktOT1dOX0FERFJFU1NfQ0hFQ0tfSVRcIjogXCJVbmtub3duIGFkZHJlc3NcIixcclxuICAgICAgXCJWQUxVRVwiOiBcIlZhbHVlXCIsXHJcbiAgICAgIFwiVkFUXCI6IFwiVkFUXCIsXHJcbiAgICAgIFwiVkFUX0FNT1VOVFwiOiBcIlZBVCBhbW91bnRcIixcclxuICAgICAgXCJXQVJFSE9VU0VcIjogXCJXYXJlaG91c2VcIixcclxuICAgICAgXCJXSEVSRV9BUkVfWU9VX0xPT0tJTkdfRk9SXCI6IFwiV2hlcmUgYXJlIHlvdSBsb29raW5nIGZvcj9cIixcclxuICAgICAgXCJZT1VSX0RBVEFcIjogXCJZb3VyIGRhdGFcIixcclxuICAgIH0sXHJcbiAgfTtcclxufVxyXG4iXX0=
332
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5wcm9wZXJ0aWVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Fzc2V0cy9kaWN0aW9uYXJ5L3RleHQucHJvcGVydGllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUF2QjtRQUNTLFlBQU8sR0FBTztZQUNuQixJQUFJLEVBQUU7Z0JBQ0osaUJBQWlCLEVBQUUsaUJBQWlCO2dCQUNwQyxxQkFBcUIsRUFBRSxrRkFBa0Y7b0JBQ3ZHLDBGQUEwRjtnQkFDNUYscUJBQXFCLEVBQUUsOEJBQThCO2dCQUNyRCx1QkFBdUIsRUFBRSw4QkFBOEI7Z0JBQ3ZELDBCQUEwQixFQUFFLDRCQUE0QjtnQkFDeEQsNEJBQTRCLEVBQUUsNEJBQTRCO2dCQUMxRCxlQUFlLEVBQUUsbUJBQW1CO2dCQUNwQyxTQUFTLEVBQUUsT0FBTztnQkFDbEIsV0FBVyxFQUFFLFVBQVU7Z0JBQ3ZCLGFBQWEsRUFBRSxpQkFBaUI7Z0JBQ2hDLGdCQUFnQixFQUFFLGdCQUFnQjtnQkFDbEMsNkJBQTZCLEVBQUUsc0NBQXNDO2dCQUNyRSxTQUFTLEVBQUUsU0FBUztnQkFDcEIscUJBQXFCLEVBQUUscUJBQXFCO2dCQUM1QywyQkFBMkIsRUFBRSxnRUFBZ0U7Z0JBQzdGLFlBQVksRUFBRSxlQUFlO2dCQUM3QixpQkFBaUIsRUFBRSxrQkFBa0I7Z0JBQ3JDLGdCQUFnQixFQUFFLGVBQWU7Z0JBQ2pDLGVBQWUsRUFBRSxjQUFjO2dCQUMvQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsTUFBTSxFQUFFLE9BQU87Z0JBQ2YsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLGlDQUFpQyxFQUFFLG1EQUFtRDtnQkFDdEYseUJBQXlCLEVBQUUsY0FBYztnQkFDekMsb0NBQW9DLEVBQUUsdUNBQXVDO2dCQUM3RSxNQUFNLEVBQUUsTUFBTTtnQkFDZCxTQUFTLEVBQUUsU0FBUztnQkFDcEIsY0FBYyxFQUFFLGNBQWM7Z0JBQzlCLGlC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a0IsRUFBRSxrQkFBa0I7Z0JBQ3RDLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixvQkFBb0IsRUFBRSxvQkFBb0I7Z0JBQzFDLG9EQUFvRCxFQUFFLDJEQUEyRDtnQkFDakgsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RCLGFBQWEsRUFBRSxhQUFhO2dCQUM1QixrQkFBa0IsRUFBRSxXQUFXO2dCQUMvQixPQUFPLEVBQUUsUUFBUTtnQkFDakIsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLGNBQWMsRUFBRSxjQUFjO2dCQUM5QixhQUFhLEVBQUUsYUFBYTtnQkFDNUIscUJBQXFCLEVBQUUscUJBQXFCO2dCQUM1QyxzQkFBc0IsRUFBRSw0QkFBNEI7Z0JBQ3BELDJCQUEyQixFQUFFLG1CQUFtQjtnQkFDaEQsK0JBQStCLEVBQUUsK0JBQStCO2dCQUNoRSxtQkFBbUIsRUFBRSxxQkFBcUI7Z0JBQzFDLG1CQUFtQixFQUFFLG1CQUFtQjtnQkFDeEMsU0FBUyxFQUFFLFNBQVM7Z0JBQ3BCLDBCQUEwQixFQUFFLGlCQUFpQjtnQkFDN0MsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLEtBQUssRUFBRSxLQUFLO2dCQUNaLFlBQVksRUFBRSxZQUFZO2dCQUMxQixXQUFXLEVBQUUsV0FBVztnQkFDeEIsMkJBQTJCLEVBQUUsNEJBQTRCO2dCQUN6RCxXQUFXLEVBQUUsV0FBVztnQkFDeEIsZ0JBQWdCLEVBQUMsZ0JBQWdCO2dCQUNqQyxvQkFBb0IsRUFBRSxvQkFBb0I7Z0JBQzFDLGVBQWUsRUFBRSxtQkFBbUI7Z0JBQ3BDLHFCQUFxQixFQUFFLHFCQUFxQjthQUM3QztTQUNGLENBQUM7SUFDSixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRGljdGlvbmFyeSB7XHJcbiAgcHVibGljIHN0cmluZ3M6IHt9ID0ge1xyXG4gICAgXCJubFwiOiB7XHJcbiAgICAgIFwiQUNDT1VOVF9ERVRBSUxTXCI6IFwiQWNjb3VudGdlZ2V2ZW5zXCIsXHJcbiAgICAgIFwiQUNDT1VOVF9FWFBMQU5BVElPTlwiOiBcIkhldCBlLW1haWxhZHJlcyBlbiB3YWNodHdvb3JkIHppam4gbm9kaWcgb20gdG9lZ2FuZyB0ZSBrcmlqZ2VuIHRvdCBkZSBnZWdldmVucy4gXCIgK1xyXG4gICAgICAgIFwiT29rIHp1bGxlbiB3ZSBqZSB2aWEgZGl0IGUtbWFpbGFkcmVzIG9wIGRlIGhvb2d0ZSBob3VkZW4gdmFuIGRlIHN0YXR1cyB2YW4gYmVzdGVsbGluZ2VuLlwiLFxyXG4gICAgICBcIkFERF9BUlRJQ0xFX0xJTkVfVVBcIjogXCJBcnRpa2VscmVnZWwgYm92ZW4gdG9ldm9lZ2VuXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfTElORV9ET1dOXCI6IFwiQXJ0aWtlbHJlZ2VsIG9uZGVyIHRvZXZvZWdlblwiLFxyXG4gICAgICBcIkFERF9BUlRJQ0xFX1RFWFRfTElORV9VUFwiOiBcIlRla3N0cmVnZWwgYm92ZW4gdG9ldm9lZ2VuXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfVEVYVF9MSU5FX0RPV05cIjogXCJUZWtzdHJlZ2VsIG9uZGVyIHRvZXZvZWdlblwiLFxyXG4gICAgICBcIkFERF9ESVNDT1VOVFNcIjogXCJLb3J0aW5nIHRvZXZvZWdlblwiLFxyXG4gICAgICBcIkFERFJFU1NcIjogXCJBZHJlc1wiLFxyXG4gICAgICBcIkFERFJFU1NFU1wiOiBcIkFkcmVzc2VuXCIsXHJcbiAgICAgIFwiQUREUkVTU19BRERcIjogXCJBZHJlcyB0b2V2b2VnZW5cIixcclxuICAgICAgXCJBRERSRVNTX0NIQU5HRVwiOiBcIkFkcmVzIHdpanppZ2VuXCIsXHJcbiAgICAgIFwiQUxXQVlTX1NIT1dfTE9HSVNUSUNTX1BPUFVQXCI6IFwiQ29udHJvbGVlciBtYWdhemlqbiBlbiBjb21taXNzaWVjb2RlXCIsXHJcbiAgICAgIFwiQVJUSUNMRVwiOiBcIkFydGlrZWxcIixcclxuICAgICAgXCJBUlRJQ0xFX0RFU0NSSVBUSU9OXCI6IFwiQXJ0aWtlbG9tc2NocmlqdmluZ1wiLFxyXG4gICAgICBcIkFSVElDTEVfSU5fT1VUX0NPTExFQ1RJT05cIjogXCJTdGF0dXMgdmFuIGFydGlrZWwgaXMgJ3x+Jy4gV2VldCB1IHpla2VyIGRhdCB1IGRvb3Igd2lsdCBnYWFuP1wiLFxyXG4gICAgICBcIkFSVElDTEVfTlJcIjogXCJBcnRpa2VsbnVtbWVyXCIsXHJcbiAgICAgIFwiQVJUSUNMRV9VTktOT1dOXCI6IFwiT25iZWtlbmQgYXJ0aWtlbFwiLFxyXG4gICAgICBcIkFTU0VNQkxZX0NPU1RTXCI6IFwiTW9udGFnZWtvc3RlblwiLFxyXG4gICAgICBcIkFTU0VNQkxZX0RBVEVcIjogXCJNb250YWdlZGF0dW1cIixcclxuICAgICAgXCJBTU9VTlRcIjogXCJBYW50YWxcIixcclxuICAgICAgXCJCQUNLXCI6IFwiVGVydWdcIixcclxuICAgICAgXCJDQU5DRUxcIjogXCJBbm51bGVyZW5cIixcclxuICAgICAgXCJDQU5OT1RfQ0hBTkdFX05FR0FUSVZFX1FVQU5USVRZXCI6IFwiRWVuIG5lZ2F0aWV2ZSB2b29ycmFhZCBrYW4gbmlldCBnZXdpanppZ2Qgd29yZGVuLlwiLFxyXG4gICAgICBcIkNIQVJBQ1RFUklTVElDX1FVRVNUSU9OXCI6IFwiS2VubWVya3ZyYWFnXCIsXHJcbiAgICAgIFwiQ0hFQ0tfV0FSRUhPVVNFX0FORF9DT01NSVNTSU9OQ09ERVwiOiBcIkNvbnRyb2xlZXIgbWFnYXppam4gZW4gY29tbWlzc2llY29kZS5cIixcclxuICAgICAgXCJDSVRZXCI6IFwiU3RhZFwiLFxyXG4gICAgICBcIkNPTVBBTllcIjogXCJCZWRyaWpmXCIsXHJcbiAgICAgIFwiQ09NUEFOWV9OQU1FXCI6IFwiQmVkcmlqZnNuYWFtXCIsXHJcbiAgICAgIFwiQ09NTUlTU0lPTl9DT0RFXCI6IFwiQ29tbWlzaWVjb2RlXCIsXHJcbiAgICAgIFwiQ09OVElOVUVcIjogXCJWb2xnZW5kZVwiLFxyXG4gICAgICBcIkNPTlRJTlVFX09SREVSX1dISUxFX1NUT0NLX0FWQUlMQUJMRV9QTEVBU0VfQ09ORklSTVwiOiBcIlUgaGVlZnQgZ2Vrb3plbiB2b29yIGhldCBiZXN0ZWxsZW4gdmFuIGFydGlrZWxlbiB0ZXJ3aWpsIGVyIG5vZyB2b29ycmFhZCBhYW53ZXppZyBpcy4gV2lsdCB1IHZlcmRlcmdhYW4/XCIsXHJcbiAgICAgIFwiQ09OVElOVUVfV0lUSE9VVF9BQ0NPVU5UXCI6IFwiR2EgZG9vciB6b25kZXIgYWNjb3VudFwiLFxyXG4gICAgICBcIkNPU1RTXCI6IFwiS29zdGVuXCIsXHJcbiAgICAgIFwiQ09VTlRSWVwiOiBcIkxhbmRcIixcclxuICAgICAgXCJDUkVBVEVfQUNDT1VOVFwiOiBcIk1hYWsgZWVuIGFjY291bnQgYWFuXCIsXHJcbiAgICAgIFwiQ1JFQVRFX0FDQ09VTlRfSU5fMl9NSU5cIjogXCJNYWFrIGJpbm5lbiAyIG1pbnV0ZW4gZWVuIGFjY291bnQgYWFuLlwiLFxyXG4gICAgICBcIkRBVEVfT0ZfQklSVEhcIjogXCJHZWJvb3J0ZWRhdHVtXCIsXHJcbiAgICAgIFwiREVMRVRFX1RSQU5TQUNUSU9OX0xJTkVcIjogXCJUcmFuc2FjdGllcmVnZWwgdmVyd2lqZGVyZW4/XCIsXHJcbiAgICAgIFwiREVMRVRFX1RSQU5TQUNUSU9OX0xJTkVfSElOVFwiOiBcIlZlcndpamRlciB0cmFuc2FjdGllcmVnZWxcIixcclxuICAgICAgXCJERUxFVEVfVFJBTlNBQ1RJT05fTElORV9GQUlMRURcIjogXCJIZXQgdmVyd2lqZGVyZW4gdmFuIGRlIHRyYW5zYWN0aWVyZWdlbCBpcyBtaXNsdWt0XCIsXHJcbiAgICAgIFwiREVMSVZFUllcIjogXCJCZXpvcmdpbmdcIixcclxuICAgICAgXCJERUxJVkVSWV9BRERSRVNTXCI6IFwiQWZsZXZlcmFkcmVzXCIsXHJcbiAgICAgIFwiREVMSVZFUllfQUREUkVTU19BRERcIjogXCJCZXpvcmdhZHJlcyB0b2V2b2VnZW5cIixcclxuICAgICAgXCJERUxJVkVSWV9BRERSRVNTX0NIQU5HRVwiOiBcIkJlem9yZ2FkcmVzIHdpanppZ2VuXCIsXHJcbiAgICAgIFwiREVMSVZFUllfQ09TVFNcIjogXCJCZXpvcmdrb3N0ZW5cIixcclxuICAgICAgXCJERUxJVkVSWV9EQVRFXCI6IFwiTGV2ZXJkYXR1bVwiLFxyXG4gICAgICBcIkRFTElWRVJZX0RBVEVfRklOQUxcIjogXCJEZWZpbml0aWV2ZSBsZXZlcmRhdHVtXCIsXHJcbiAgICAgIFwiREVMSVZFUllfRElSRUNUXCI6IFwiRGlyZWN0IGxldmVyYmFhclwiLFxyXG4gICAgICBcIkRFTElWRVJZX0xPQ0FUSU9OXCI6IFwiQmV6b3JnaW5nc2xvY2F0aWVcIixcclxuICAgICAgXCJERUxJVkVSWV9PUFRJT05TXCI6IFwiTGV2ZXJvcHRpZXNcIixcclxuICAgICAgXCJERUxJVkVSWV9NRVRIT0QyXCI6IFwiTGV2ZXJtZXRob2RlXCIsXHJcbiAgICAgIFwiREVMSVZFUllfTU9NRU5UXCI6IFwiTGV2ZXJtb21lbnRcIixcclxuICAgICAgXCJERUxJVkVSWV9PUFRBUlRJQ0xFX05SSU9OU1wiOiBcIkJlem9yZ29wdGllc1wiLFxyXG4gICAgICBcIkRFTElWRVJZX1RJTUVfUEVSSU9EXCI6IFwiTGV2ZXJ0aWpkXCIsXHJcbiAgICAgIFwiREVTQ1JJUFRJT05cIjogXCJPbXNjaHJpanZpbmdcIixcclxuICAgICAgXCJERVRBSUxTXCI6IFwiRGV0YWlsc1wiLFxyXG4gICAgICBcIkRJU0NPVU5UXCI6IFwiS29ydGluZ1wiLFxyXG4gICAgICBcIkRJU0NPVU5UX0FNT1VOVFwiOiBcIktvcnRpbmdzYmVkcmFnXCIsXHJcbiAgICAgIFwiRElTQ09VTlRfUEVSQ0VOVEFHRVwiOiBcIktvcnRpbmdzICVcIixcclxuICAgICAgXCJEUk9QU0hJUE1FTlRcIjogXCJEcm9wc2hpcG1lbnRcIixcclxuICAgICAgXCJFTUFJTF9BRERSRVNTXCI6IFwiRS1tYWlsYWRyZXNcIixcclxuICAgICAgXCJFWElTVElOR19DVVNUT01FUlNcIjogXCJCZXN0YWFuZGUga2xhbnRlblwiLFxyXG4gICAgICBcIkVYUEVDVEVEX0RFTElWRVJZX0RBVEVcIjogXCJWZXJ3YWNodGUgYmV6b3JnZGF0dW1cIixcclxuICAgICAgXCJFWFBFQ1RFRF9ERUxJVkVSWV9XRUVLXCI6IFwiVmVyd2FjaHRlIGxldmVyd2Vla1wiLFxyXG4gICAgICBcIkZFTUFMRVwiOiBcIlZyb3V3XCIsXHJcbiAgICAgIFwiRklSU1RfTkFNRVwiOiBcIlZvb3JuYWFtXCIsXHJcbiAgICAgIFwiR09PRF9ERVNDUklQVElPTlwiOiBcIkFydGlrZWxvbXNjaHJpanZpbmdcIixcclxuICAgICAgXCJIT1VTRV9OT1wiOiBcIkh1aXNudW1tZXJcIixcclxuICAgICAgXCJIT1VTRV9OT19BRERJVElPTlwiOiBcIkh1aXNudW1tZXIgdG9ldm9lZ2luZ1wiLFxyXG4gICAgICBcIklOVklURV9UT19BQ0NPVU5UXCI6IFwiVWl0bm9kaWdlbiB2b29yIGFjY291bnRcIixcclxuICAgICAgXCJJTlZPSUNFX0FERFJFU1NcIjogXCJGYWN0dXVyYWRyZXNcIixcclxuICAgICAgXCJJTlZPSUNFX0FERFJFU1NfQUREXCI6IFwiRmFjdHV1cmFkcmVzIHRvZXZvZWdlblwiLFxyXG4gICAgICBcIklOVk9JQ0VfQUREUkVTU19DSEFOR0VcIjogXCJGYWN0dXVyYWRyZXMgd2lqemlnZW5cIixcclxuICAgICAgXCJMQVNUX05BTUVcIjogXCJBY2h0ZXJuYWFtXCIsXHJcbiAgICAgIFwiTElORV9ORUVEU19DT01NSVNTSU9OX0NPREVcIjogXCJEZSBjb21taXNpZWNvZGUgb250YnJlZWt0LiBWdWwgZGUgY29tbWlzc2llY29kZSBpbi5cIixcclxuICAgICAgXCJMT0dJTlwiOiBcIklubG9nZ2VuXCIsXHJcbiAgICAgIFwiTE9HSU5fREVUQUlMU1wiOiBcIklubG9nZ2VnZXZlbnNcIixcclxuICAgICAgXCJNQUxFXCI6IFwiTWFuXCIsXHJcbiAgICAgIFwiTUFSS0VUSU5HXCI6IFwiTWFya2V0aW5nXCIsXHJcbiAgICAgIFwiTkFNRVwiOiBcIk5hYW1cIixcclxuICAgICAgXCJORVRUXCI6IFwiTmV0dG9cIixcclxuICAgICAgXCJORVdfQVRcIjogXCJOaWV1dyBiaWogXCIsXHJcbiAgICAgIFwiTkVXX0xPQ0FUSU9OXCI6IFwiTmlldXdlIGxvY2F0aWVcIixcclxuICAgICAgXCJOT19JTUFHRVwiOiBcIkFmYmVlbGRpbmcgbmlldCBiZXNjaGlrYmFhclwiLFxyXG4gICAgICBcIk5PVF9BRlRFUlwiOiBcIk5pZXQgbGF0ZXIgZGFuXCIsXHJcbiAgICAgIFwiTk9UX0JFRk9SRVwiOiBcIk5pZXQgZWVyZGVyIGRhblwiLFxyXG4gICAgICBcIk5SXCI6IFwiTnVtbWVyXCIsXHJcbiAgICAgIFwiTlVNQkVSXCI6IFwiQWFudGFsXCIsXHJcbiAgICAgIFwiT05fREFURVwiOiBcIk9wIGRhdHVtXCIsXHJcbiAgICAgIFwiT1BFTl9TSE9QUElOR19DQVJUXCI6IFwiT3BlbiB3aW5rZWx3YWdlblwiLFxyXG4gICAgICBcIk9SREVSX0RBVEVcIjogXCJPcmRlcmRhdHVtXCIsXHJcbiAgICAgIFwiT1JERVJfR1JPU1NcIjogXCJPcmRlcnRvdGFhbCBicnV0b1wiLFxyXG4gICAgICBcIk9SREVSX05FVFwiOiBcIk9yZGVydG90YWFsIG5ldHRvXCIsXHJcbiAgICAgIFwiT1JERVJfTlVNQkVSXCI6IFwiT3JkZXJudW1tZXJcIixcclxuICAgICAgXCJPUkRFUl9UWVBFXCI6IFwiVHlwZSBiZXN0ZWxsaW5nXCIsXHJcbiAgICAgIFwiT1ZFUlZJRVdcIjogXCJPdmVyemljaHRcIixcclxuICAgICAgXCJPV05fUkVGRVJFTkNFXCI6IFwiRWlnZW4gcmVmZXJlbnRpZVwiLFxyXG4gICAgICBcIlBBSURfRE9XTjJcIjogXCJBYW5iZXRhYWxkXCIsXHJcbiAgICAgIFwiUEFSVF9ERUxJVkVSSUVTXCI6IFwiRGVlbGxldmVyaW5nZW5cIixcclxuICAgICAgXCJQQVNTV09SRFwiOiBcIldhY2h0d29vcmRcIixcclxuICAgICAgXCJQQVlNRU5UXCI6IFwiQmV0YWxpbmdcIixcclxuICAgICAgXCJQRVJTT05BTF9EQVRBXCI6IFwiUGVyc29vbmxpamtlIGdlZ2V2ZW5zXCIsXHJcbiAgICAgIFwiUEhPTkVfTk9cIjogXCJUZWxlZm9vbm51bW1lclwiLFxyXG4gICAgICBcIlBPU1RBTF9DT0RFXCI6IFwiUG9zdGNvZGVcIixcclxuICAgICAgXCJQUkVGRVJSRURfREFURVwiOiBcIlZvb3JrZXVyc2RhdHVtXCIsXHJcbiAgICAgIFwiUFJFRklYXCI6IFwiVHVzc2Vudm9lZ3NlbFwiLFxyXG4gICAgICBcIlBSSUNFXCI6IFwiUHJpanNcIixcclxuICAgICAgXCJQUklDRV9MSVNUXCI6IFwiUHJpanNsaWpzdFwiLFxyXG4gICAgICBcIlBSSVZBQ1lfUFJFRkVSRU5DRVNcIjogXCJQcml2YWN5dm9vcmtldXJlblwiLFxyXG4gICAgICBcIlBSSVZBVEVfUEVSU09OXCI6IFwiUGFydGljdWxpZXJcIixcclxuICAgICAgXCJQUk9EVUNUXCI6IFwiUHJvZHVjdFwiLFxyXG4gICAgICBcIlBST0RVQ1RfVFlQRVwiOiBcIlByb2R1Y3Rzb29ydFwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9aRVJPX09SX0VNUFRZXCI6IFwiSGV0IGFhbnRhbCBtYWcgZ2VlbiAwIHppam4uXCIsXHJcbiAgICAgIFwiUVVBTlRJVFlfQ0FOTk9UX0JFX0xFU1NfVEhBTl9ERUxJVkVSRURcIjogXCJIZXQgYWFudGFsIG1vZXQgZ2VsaWprIHppam4gYWFuIGhldCBnZWxldmVyZGUgYWFudGFsXCIsXHJcbiAgICAgIFwiUVVBTlRJVFlfQ0FOTk9UX0JFX01PUkVfVEhBTl9ERUxJVkVSRURcIjogXCJIZXQgYWFudGFsIG1vZXQgZ2VsaWprIHppam4gYWFuIGhldCBnZWxldmVyZGUgYWFudGFsXCIsXHJcbiAgICAgIFwiUVVBTlRJVFlfQ0FOTk9UX0JFX0xFU1NfVEhBTl9JTlZPSUNFRFwiOiBcIkhldCBhYW50YWwgbW9ldCBnZWxpamsgemlqbiBhYW4gZGUgYmVzdGVsZGUgdm9vcnJhYWRcIixcclxuICAgICAgXCJRVUFOVElUWV9DQU5OT1RfQkVfTU9SRV9USEFOX0lOVk9JQ0VEXCI6IFwiSGV0IGFhbnRhbCBtb2V0IGdlbGlqayB6aWpuIGFhbiBkZSBiZXN0ZWxkZSB2b29ycmFhZFwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9MRVNTX1RIQU5fQUxMT0NBVEVEXCI6IFwiSGV0IGFhbnRhbCBtb2V0IGdlbGlqayB6aWpuIGFhbiBkZGUgdG9lZ2V3ZXplbiB2b29ycmFhZFwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9NT1JFX1RIQU5fQUxMT0NBVEVEXCI6IFwiSGV0IGFhbnRhbCBtb2V0IGdlbGlqayB6aWpuIGFhbiBkZGUgdG9lZ2V3ZXplbiB2b29ycmFhZFwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9MRVNTX1RIQU5fUkVDRUlWRURcIjogXCJIZXQgYWFudGFsIG1vZXQgZ2VsaWprIHppam4gYWFuIGhldCBhYW50YWwgb250dmFuZ2VuLlwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9NT1JFX1RIQU5fUkVDRUlWRURcIjogXCJIZXQgYWFudGFsIG1vZXQgZ2VsaWprIHppam4gYWFuIGhldCBhYW50YWwgb250dmFuZ2VuXCIsXHJcbiAgICAgIFwiUVVBTlRVTV9ESVNDT1VOVFwiOiBcIkt3YW50dW1rb3J0aW5nXCIsXHJcbiAgICAgIFwiUkVGRVJFTkNFX1JFTEFUSU9OXCI6IFwiUmVmLiByZWxhdGllXCIsXHJcbiAgICAgIFwiUkVNQVJLU1wiOiBcIk9wbWVya2luZ2VuXCIsXHJcbiAgICAgIFwiU0FMVVRBVElPTlwiOiBcIkFhbmhlZlwiLFxyXG4gICAgICBcIlNBVkVcIjogXCJPcHNsYWFuXCIsXHJcbiAgICAgIFwiU0VMRUNUXCI6IFwiU2VsZWN0ZXJlblwiLFxyXG4gICAgICBcIlNFUlZJQ0VfTlVNQkVSXCI6IFwiU2VydmljZW51bW1lclwiLFxyXG4gICAgICBcIlNFUlZJQ0VfUkVRVUVTVF9EQVRFXCI6IFwiRGF0dW0gYWFudnJhYWdcIixcclxuICAgICAgXCJTRVJWSUNFX1NUQVRFXCI6IFwiU2VydmljZSBzdGF0dXNcIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUXCI6IFwiV2lua2Vsd2FnZW5cIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUX0NIRUNLT1VUXCI6IFwiQmVzdGVsbGVuXCIsXHJcbiAgICAgIFwiU0hPUFBJTkdfQ0FSVF9PVkVSVklFV1wiOiBcIk92ZXJ6aWNodCB2YW4gdXcgYmVzdGVsbGluZ1wiLFxyXG4gICAgICBcIlNIT1BQSU5HX0NBUlRfUkVTVU1FXCI6IFwiVmVyZGVyIHdpbmtlbGVuXCIsXHJcbiAgICAgIFwiU1BFQ0lBTF9ESVNDT1VOVFwiOiBcIlNwZWNpYWxlIGtvcnRpbmdcIixcclxuICAgICAgXCJTVE9DS1wiOiBcIlZvb3JyYWFkXCIsXHJcbiAgICAgIFwiU1RPQ0tfTk9USUZJQ0FUSU9OXCI6IFwiVm9vcnJhYWRtZWxkaW5nXCIsXHJcbiAgICAgIFwiU1RPQ0tfQVZBSUxBQkxFX0NIQU5HRV9XQVJFSE9VU0VfT1JfQ09NTUlTU0lPTkNPREVcIjogXCJFciBpcyB2b2xkb2VuZGUgdm9vcnJhYWQuIFZlcmFuZGVyIG1hZ2F6aWpuIGVuL29mIGNvbW1pc3NpZWNvZGVcIixcclxuICAgICAgXCJTVUJUT1RBTFwiOiBcIlN1YnRvdGFhbFwiLFxyXG4gICAgICBcIlNVR0dFU1RJT05TXCI6IFwiU3VnZ2VzdGllc1wiLFxyXG4gICAgICBcIlNVUkNIQVJHRV9BTU9VTlRcIjogXCJUb2VzbGFnXCIsXHJcbiAgICAgIFwiU1RBVEVcIjogXCJTdGF0dXNcIixcclxuICAgICAgXCJTVFJFRVRcIjogXCJTdHJhYXRuYWFtXCIsXHJcbiAgICAgIFwiVE9UQUxfQU1PVU5UXCI6IFwiVG90YWFsYmVkcmFnXCIsXHJcbiAgICAgIFwiVE9UQUxfR1JPU1NcIjogXCJUb3RhYWwgYnJ1dG9cIixcclxuICAgICAgXCJUT1RBTF9BU1NFTUJMWV9USU1FXCI6IFwiVG90YWxlIG1vbnRhZ2V0aWpkXCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fRElTQ09VTlRcIjogXCJUb3RhbGUgdHJhbnNhY3RpZSBrb3J0aW5nXCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fRElTQ09VTlRfUEVSQ1wiOiBcIiUgVHJhbnMuIGtvcnRpbmdcIixcclxuICAgICAgXCJUUkFOU0FDVElPTl9QUklDRV9ERUNMQVJBVElPTlwiOiBcIk9yZGVyIHByaWpzdmVya2xhcmluZ1wiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX1NVTV9JXCI6IFwiT3JkZXJ0b3RhYWwgaW5jbC4gQlRXXCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fVE9UQUxcIjogXCJUcmFuc2FjdGllIHRvdGFhbFwiLFxyXG4gICAgICBcIlVOS05PV05cIjogXCJPbmJla2VuZFwiLFxyXG4gICAgICBcIlVOS05PV05fQUREUkVTU19DSEVDS19JVFwiOiBcIk9uYmVrZW5kIGFkcmVzXCIsXHJcbiAgICAgIFwiVkFUXCI6IFwiQnR3XCIsXHJcbiAgICAgIFwiVkFUX0FNT1VOVFwiOiBcIkJUVy1iZWRyYWdcIixcclxuICAgICAgXCJWQUxVRVwiOiBcIldhYXJkZVwiLFxyXG4gICAgICBcIldIRVJFX0FSRV9ZT1VfTE9PS0lOR19GT1JcIjogXCJXYWFyIGJlbiBqZSBuYWFyIG9wIHpvZWs/XCIsXHJcbiAgICAgIFwiV0FSRUhPVVNFXCI6IFwiTWFnYXppam5cIixcclxuICAgICAgXCJZT1VSX0RBVEFcIjogXCJVdyBnZWdldmVuc1wiLFxyXG4gICAgICBcIlNUQU5EQVJEX1RFWFRTXCI6XCJTdGFuZGFhcmR0ZWtzdGVuXCIsXHJcbiAgICAgIFwiQVJUSUNMRV9CT1VORF9URVhUXCI6IFwiQXJ0aWtlbGdlYm9uZGVuIHRla3N0XCIsXHJcbiAgICAgIFwiRk9SX0RPQ1VNRU5UU1wiOiBcIkJlc3RlbWQgdm9vciBkb2N1bWVudGVuXCIsXHJcbiAgICAgIFwiQ0hBTkdFX0FSVElDTEVfVEVYVFwiOiBcIldpanppZ2VuIGFydGlrZWx0ZWtzdFwiLFxyXG4gICAgfSxcclxuICAgIFwiZGVcIjoge30sXHJcbiAgICBcImZyXCI6IHt9LFxyXG4gICAgXCJlblwiOiB7XHJcbiAgICAgIFwiQUNDT1VOVF9ERVRBSUxTXCI6IFwiQWNjb3VudCBkZXRhaWxzXCIsXHJcbiAgICAgIFwiQUNDT1VOVF9FWFBMQU5BVElPTlwiOiBcIkUtbWFpbGFkZHJlc3MgYW5kIHBhc3N3b3JkIGFyZSBuZWVkZWQgdG8gZ2FpbiBhY2Nlc3MgdG8gdGhlIGRhdGEuIFdlIGFsc28gbm90aWZ5IHlvdSBvbiB0aGlzIGUtbWFpbGFkZHJlc3MgYWJvdXQgdGhlIG9yZGVyIHN0YXR1c1wiLFxyXG4gICAgICBcIkFERF9BUlRJQ0xFX0xJTkVfVVBcIjogXCJBZGQgYXJ0aWNsZSBsaW5lIHVwXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfTElORV9ET1dOXCI6IFwiQWRkIGFydGljbGUgbGluZSBkb3duXCIsXHJcbiAgICAgIFwiQUREX0FSVElDTEVfVEVYVF9MSU5FX1VQXCI6IFwiQWRkIHRleHQgbGluZSB1cFwiLFxyXG4gICAgICBcIkFERF9BUlRJQ0xFX1RFWFRfTElORV9ET1dOXCI6IFwiQWRkIHRleHQgbGluZSBkb3duXCIsXHJcbiAgICAgIFwiQUREX0RJU0NPVU5UU1wiOiBcIkFkZCBkaXNjb3VudFwiLFxyXG4gICAgICBcIkFERFJFU1NcIjogXCJBZGRyZXNzXCIsXHJcbiAgICAgIFwiQUREUkVTU0VTXCI6IFwiQWRkcmVzc2VzXCIsXHJcbiAgICAgIFwiQUREUkVTU19BRERcIjogXCJBZGQgYWRkcmVzc1wiLFxyXG4gICAgICBcIkFERFJFU1NfQ0hBTkdFXCI6IFwiQ2hhbmdlIGFkZHJlc3NcIixcclxuICAgICAgXCJBTFdBWVNfU0hPV19MT0dJU1RJQ1NfUE9QVVBcIjogXCJDaGVjayB3YXJlaG91c2UgYW5kIGNvbW1pc3Npb25jb2RlXCIsXHJcbiAgICAgIFwiQVJUSUNMRVwiOiBcIkFydGljbGVcIixcclxuICAgICAgXCJBUlRJQ0xFX0RFU0NSSVBUSU9OXCI6IFwiQXJ0aWNsZSBkZXNjcmlwdGlvblwiLFxyXG4gICAgICBcIkFSVElDTEVfSU5fT1VUX0NPTExFQ1RJT05cIjogXCJTdGF0dXMgb2YgYXJ0aWNsZSBpcyAnfH4nLiBBcmUgeW91IHN1cmUgdG8gcHJvY2VlZD9cIixcclxuICAgICAgXCJBUlRJQ0xFX05SXCI6IFwiQXJ0aWNsZSBudW1iZXJcIixcclxuICAgICAgXCJBUlRJQ0xFX1VOS05PV05cIjogXCJBcnRpY2xlIHVua25vd25cIixcclxuICAgICAgXCJBU1NFTUJMWV9DT1NUU1wiOiBcIkFzc2VtYmx5IGNvc3RzXCIsXHJcbiAgICAgIFwiQVNTRU1CTFlfREFURVwiOiBcIkFzc2VtYmx5IGRhdGVcIixcclxuICAgICAgXCJBTU9VTlRcIjogXCJBbW91bnRcIixcclxuICAgICAgXCJCQUNLXCI6IFwiQmFja1wiLFxyXG4gICAgICBcIkNBTkNFTFwiOiBcIkNhbmNlbFwiLFxyXG4gICAgICBcIkNBTk5PVF9DSEFOR0VfTkVHQVRJVkVfUVVBTlRJVFlcIjogXCJBIG5lZ2F0aXZlIHN1cHBseSBjYW5ub3QgYmUgY2hhbmdlZC5cIixcclxuICAgICAgXCJDSEFSQUNURVJJU1RJQ19RVUVTVElPTlwiOiBcIkNoYXJhY3RlcmlzdGljIHF1ZXN0aW9uXCIsXHJcbiAgICAgIFwiQ0hFQ0tfV0FSRUhPVVNFX0FORF9DT01NSVNTSU9OQ09ERVwiOiBcIkNoZWNrIHdhcmVob3VzZSBhbmQgY29tbWlzc2lvbmNvZGVcIixcclxuICAgICAgXCJDSVRZXCI6IFwiQ2l0eVwiLFxyXG4gICAgICBcIkNPTVBBTllcIjogXCJDb21wYW55XCIsXHJcbiAgICAgIFwiQ09NUEFOWV9OQU1FXCI6IFwiQ29tcGFueSBuYW1lXCIsXHJcbiAgICAgIFwiQ09NTUlTU0lPTl9DT0RFXCI6IFwiQ29tbWlzc2lvbiBjb2RlXCIsXHJcbiAgICAgIFwiQ09OVElOVUVcIjogXCJOZXh0XCIsXHJcbiAgICAgIFwiQ09OVElOVUVfT1JERVJfV0hJTEVfU1RPQ0tfQVZBSUxBQkxFX1BMRUFTRV9DT05GSVJNXCI6IFwiWW91IGhhdmUgY2hvc2VuIHRvIG9yZGVyIGFydGljbGVzIHdoaWxlIHN0b2NrIGlzIHN0aWxsIGF2YWlsYWJsZS4gRG8geW91IHdpc2ggdG8gcHJvY2VlZD9cIixcclxuICAgICAgXCJDT05USU5VRV9XSVRIT1VUX0FDQ09VTlRcIjogXCJDb250aW51ZSB3aXRob3V0IGFuIGFjY291bnRcIixcclxuICAgICAgXCJDT1NUU1wiOiBcIkNvc3RzXCIsXHJcbiAgICAgIFwiQ09VTlRSWVwiOiBcIkNvdW50cnlcIixcclxuICAgICAgXCJDUkVBVEVfQUNDT1VOVFwiOiBcIkNyZWF0ZSBhbiBhY2NvdW50XCIsXHJcbiAgICAgIFwiQ1JFQVRFX0FDQ09VTlRfSU5fMl9NSU5cIjogXCJDcmVhdGUgYW4gYWNjb3VudCBpbiAyIG1pbnV0ZXMuXCIsXHJcbiAgICAgIFwiREFURV9PRl9CSVJUSFwiOiBcIkRhdGUgb2YgYmlydGhcIixcclxuICAgICAgXCJERUxFVEVfVFJBTlNBQ1RJT05fTElORVwiOiBcIkRlbGV0ZSB0cmFuc2FjdGlvbiBsaW5lIHZlcndpamRlcmVuP1wiLFxyXG4gICAgICBcIkRFTEVURV9UUkFOU0FDVElPTl9MSU5FX0hJTlRcIjogXCJEZWxldGUgdHJhbnNhY3Rpb24gbGluZVwiLFxyXG4gICAgICBcIkRFTEVURV9UUkFOU0FDVElPTl9MSU5FX0ZBSUxFRFwiOiBcIkRlbGV0aW9uIG9mIHRyYW5zYWN0aW9uIGxpbmUgaGFzIGZhaWxlZFwiLFxyXG4gICAgICBcIkRFTElWRVJZXCI6IFwiRGVsaXZlcnlcIixcclxuICAgICAgXCJERUxJVkVSWV9BRERSRVNTXCI6IFwiRGVsaXZlcnkgYWRkcmVzc1wiLFxyXG4gICAgICBcIkRFTElWRVJZX0FERFJFU1NfQUREXCI6IFwiQWRkIGRlbGl2ZXJ5IGFkZHJlc3NcIixcclxuICAgICAgXCJERUxJVkVSWV9BRERSRVNTX0NIQU5HRVwiOiBcIkNoYW5nZSBkZWxpdmVyeSBhZGRyZXNzXCIsXHJcbiAgICAgIFwiREVMSVZFUllfQ09TVFNcIjogXCJEZWxpdmVyeSBjb3N0c1wiLFxyXG4gICAgICBcIkRFTElWRVJZX0RBVEVcIjogXCJEZWxpdmVyeSBkYXRlXCIsXHJcbiAgICAgIFwiREVMSVZFUllfREFURV9GSU5BTFwiOiBcIkZpbmFsIGRlbGl2ZXJ5IGRhdGVcIixcclxuICAgICAgXCJERUxJVkVSWV9ESVJFQ1RcIjogXCJEaXJlY3QgZGVsaXZlcnlcIixcclxuICAgICAgXCJERUxJVkVSWV9MT0NBVElPTlwiOiBcIkRlbGl2ZXJ5IGxvY2F0aW9uXCIsXHJcbiAgICAgIFwiREVMSVZFUllfT1BUSU9OU1wiOiBcIkRlbGl2ZXJ5IG9wdGlvbnNcIixcclxuICAgICAgXCJERUxJVkVSWV9NRVRIT0QyXCI6IFwiRGVsaXZlcnkgbWV0aG9kXCIsXHJcbiAgICAgIFwiREVMSVZFUllfTU9NRU5UXCI6IFwiRGVsaXZlcnkgbW9tZW50XCIsXHJcbiAgICAgIFwiREVMSVZFUllfT1BUQVJUSUNMRV9OUklPTlNcIjogXCJEZWxpdmVyeSBvcHRpb25zXCIsXHJcbiAgICAgIFwiREVMSVZFUllfVElNRV9QRVJJT0RcIjogXCJEZWxpdmVyeSB0aW1lIHBlcmlvZFwiLFxyXG4gICAgICBcIkRFU0NSSVBUSU9OXCI6IFwiRGVzY3JpcHRpb25cIixcclxuICAgICAgXCJERVRBSUxTXCI6IFwiRGV0YWlsc1wiLFxyXG4gICAgICBcIkRJU0NPVU5UXCI6IFwiRGlzY291bnRcIixcclxuICAgICAgXCJESVNDT1VOVF9BTU9VTlRcIjogXCJEaXNjb3VudCBhbW91bnRcIixcclxuICAgICAgXCJESVNDT1VOVF9QRVJDRU5UQUdFXCI6IFwiRGlzY291bnQgJVwiLFxyXG4gICAgICBcIkRST1BTSElQTUVOVFwiOiBcIkRyb3BzaGlwbWVudFwiLFxyXG4gICAgICBcIkVNQUlMX0FERFJFU1NcIjogXCJFLW1haWxhZHJlc1wiLFxyXG4gICAgICBcIkVYSVNUSU5HX0NVU1RPTUVSU1wiOiBcIkV4aXN0aW5nIGN1c3RvbWVyc1wiLFxyXG4gICAgICBcIkVYUEVDVEVEX0RFTElWRVJZX0RBVEVcIjogXCJFeHBlY3RlZCBkZWxpdmVyeSBkYXRlXCIsXHJcbiAgICAgIFwiRVhQRUNURURfREVMSVZFUllfV0VFS1wiOiBcIkV4cGVjdGVkIGRlbGl2ZXJ5IHdlZWtcIixcclxuICAgICAgXCJGRU1BTEVcIjogXCJGZW1hbGVcIixcclxuICAgICAgXCJGSVJTVF9OQU1FXCI6IFwiRmlyc3QgbmFtZVwiLFxyXG4gICAgICBcIkdPT0RfREVTQ1JJUFRJT05cIjogXCJBcnRpY2xlIGRlc2NyaXB0aW9uXCIsXHJcbiAgICAgIFwiSE9VU0VfTk9cIjogXCJIb3VzZW51bWJlclwiLFxyXG4gICAgICBcIkhPVVNFX05PX0FERElUSU9OXCI6IFwiSG91c2VudW1iZXIgYWRkaXRpb25cIixcclxuICAgICAgXCJJTlZJVEVfVE9fQUNDT1VOVFwiOiBcIkludml0ZSBhY2NvdW50XCIsXHJcbiAgICAgIFwiSU5WT0lDRV9BRERSRVNTXCI6IFwiSW52b2ljZSBhZGRyZXNzXCIsXHJcbiAgICAgIFwiSU5WT0lDRV9BRERSRVNTX0FERFwiOiBcIkFkZCBpbnZvaWNlIGFkZHJlc3NcIixcclxuICAgICAgXCJJTlZPSUNFX0FERFJFU1NfQ0hBTkdFXCI6IFwiQ2hhbmdlIGludm9pY2UgYWRkcmVzc1wiLFxyXG4gICAgICBcIkxBU1RfTkFNRVwiOiBcIkxhc3QgbmFtZVwiLFxyXG4gICAgICBcIkxJTkVfTkVFRFNfQ09NTUlTU0lPTl9DT0RFXCI6IFwiTGluZSBuZWVkcyBhIGNvbW1pc3Npb24gY29kZVwiLFxyXG4gICAgICBcIkxPR0lOXCI6IFwiTG9naW5cIixcclxuICAgICAgXCJMT0dJTl9ERVRBSUxTXCI6IFwiTG9naW4gZGV0YWlsc1wiLFxyXG4gICAgICBcIk1BTEVcIjogXCJNYWxlXCIsXHJcbiAgICAgIFwiTUFSS0VUSU5HXCI6IFwiTWFya2V0aW5nXCIsXHJcbiAgICAgIFwiTkFNRVwiOiBcIk5hbWVcIixcclxuICAgICAgXCJORVRUXCI6IFwiTmV0XCIsXHJcbiAgICAgIFwiTkVXX0FUXCI6IFwiTmV3IGF0IFwiLFxyXG4gICAgICBcIk5FV19MT0NBVElPTlwiOiBcIk5ldyBsb2NhdGlvblwiLFxyXG4gICAgICBcIk5PX0lNQUdFXCI6IFwiTm8gaW1hZ2UgYXZhaWxhYmxlXCIsXHJcbiAgICAgIFwiTk9UX0FGVEVSXCI6IFwiTm90IGFmdGVyXCIsXHJcbiAgICAgIFwiTk9UX0JFRk9SRVwiOiBcIk5vdCBiZWZvcmVcIixcclxuICAgICAgXCJOUlwiOiBcIk51bWJlclwiLFxyXG4gICAgICBcIk5VTUJFUlwiOiBcIkFtb3VudFwiLFxyXG4gICAgICBcIk9OX0RBVEVcIjogXCJPbiBkYXRlXCIsXHJcbiAgICAgIFwiT1BFTl9TSE9QUElOR19DQVJUXCI6IFwiT3BlbiBzaG9wcGluZyBjYXJ0XCIsXHJcbiAgICAgIFwiT1JERVJfREFURVwiOiBcIk9yZGVyIGRhdGVcIixcclxuICAgICAgXCJPUkRFUl9HUk9TU1wiOiBcIlRvdGFsIGdyb3NzIGFtb3VudFwiLFxyXG4gICAgICBcIk9SREVSX05FVFwiOiBcIlRvdGFsIG5ldCBhbW91bnRcIixcclxuICAgICAgXCJPUkRFUl9OVU1CRVJcIjogXCJPcmRlciBudW1iZXJcIixcclxuICAgICAgXCJPUkRFUl9UWVBFXCI6IFwiT3JkZXIgdHlwZVwiLFxyXG4gICAgICBcIk9WRVJWSUVXXCI6IFwiT3ZlcnZpZXdcIixcclxuICAgICAgXCJPV05fUkVGRVJFTkNFXCI6IFwiT3duIHJlZmVyZW5jZVwiLFxyXG4gICAgICBcIlBBSURfRE9XTjJcIjogXCJQcmVwYWlkXCIsXHJcbiAgICAgIFwiUEFSVF9ERUxJVkVSSUVTXCI6IFwiUGFydGlhbCBkZWxpdmVyaWVzXCIsXHJcbiAgICAgIFwiUEFTU1dPUkRcIjogXCJQYXNzd29yZFwiLFxyXG4gICAgICBcIlBBWU1FTlRcIjogXCJQYXltZW50XCIsXHJcbiAgICAgIFwiUEVSU09OQUxfREFUQVwiOiBcIlBlcnNvbmFsIGRhdGFcIixcclxuICAgICAgXCJQSE9ORV9OT1wiOiBcIlRlbGVwaG9uZSBudW1iZXJcIixcclxuICAgICAgXCJQT1NUQUxfQ09ERVwiOiBcInBvc3RhbCBjb2RlXCIsXHJcbiAgICAgIFwiUFJFRkVSUkVEX0RBVEVcIjogXCJQcmVmZXJyZWQgZGF0ZVwiLFxyXG4gICAgICBcIlBSRUZJWFwiOiBcIlByZWZpeFwiLFxyXG4gICAgICBcIlBSSUNFXCI6IFwiUHJpY2VcIixcclxuICAgICAgXCJQUklDRV9MSVNUXCI6IFwiUHJpY2VsaXN0XCIsXHJcbiAgICAgIFwiUFJJVkFDWV9QUkVGRVJFTkNFU1wiOiBcIlByaXZhY3kgcHJlZmVyZW5jZXNcIixcclxuICAgICAgXCJQUklWQVRFX1BFUlNPTlwiOiBcIlByaXZhdGVcIixcclxuICAgICAgXCJQUk9EVUNUXCI6IFwiUHJvZHVjdFwiLFxyXG4gICAgICBcIlBST0RVQ1RfVFlQRVwiOiBcIlByb2R1Y3QgdHlwZVwiLFxyXG4gICAgICBcIlFVQU5USVRZX0NBTk5PVF9CRV9aRVJPX09SX0VNUFRZXCI6IFwiUXVhbnRpdHkgY2Fubm90IGJlIHplcm8gb3IgZW1wdHlcIixcclxuICAgICAgXCJRVUFOVFVNX0RJU0NPVU5UXCI6IFwiUXVhbnR1bSBkaXNjb3VudFwiLFxyXG4gICAgICBcIlJFRkVSRU5DRV9SRUxBVElPTlwiOiBcIlJlZi4gcmVsYXRpb25cIixcclxuICAgICAgXCJSRU1BUktTXCI6IFwiUmVtYXJrc1wiLFxyXG4gICAgICBcIlNBTFVUQVRJT05cIjogXCJTYWx1dGF0aW9uXCIsXHJcbiAgICAgIFwiU0FWRVwiOiBcIlNhdmVcIixcclxuICAgICAgXCJTRUxFQ1RcIjogXCJTZWxlY3RcIixcclxuICAgICAgXCJTRVJWSUNFX05VTUJFUlwiOiBcIlNlcnZpY2UgbnVtYmVyXCIsXHJcbiAgICAgIFwiU0VSVklDRV9SRVFVRVNUX0RBVEVcIjogXCJTZXJ2aWNlIHJlcXVlc3QgZGF0YVwiLFxyXG4gICAgICBcIlNFUlZJQ0VfU1RBVEVcIjogXCJTZXJ2aWNlIHN0YXRlXCIsXHJcbiAgICAgIFwiU0hPUFBJTkdfQ0FSVFwiOiBcIlNob3BwaW5nIGNhcnRcIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUX0NIRUNLT1VUXCI6IFwiQ2hlY2tvdXRcIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUX09WRVJWSUVXXCI6IFwiT3JkZXIgb3ZlcnZpZXdcIixcclxuICAgICAgXCJTSE9QUElOR19DQVJUX1JFU1VNRVwiOiBcIlJlc3VtZSBzaG9wcGluZ1wiLFxyXG4gICAgICBcIlNQRUNJQUxfRElTQ09VTlRcIjogXCJTcGVjaWFsIGRpc2NvdW50XCIsXHJcbiAgICAgIFwiU1RPQ0tcIjogXCJTdG9ja1wiLFxyXG4gICAgICBcIlNUT0NLX05PVElGSUNBVElPTlwiOiBcIlN0b2NrIG5vdGlmaWNhdGlvblwiLFxyXG4gICAgICBcIlNUT0NLX0FWQUlMQUJMRV9DSEFOR0VfV0FSRUhPVVNFX09SX0NPTU1JU1NJT05DT0RFXCI6IFwiTm90IGVub3VnaCBzdXBwbHkuIENoYW5nZSB3YXJlaG91c2UgYW5kL29yIGNvbW1pc3Npb25jb2RlXCIsXHJcbiAgICAgIFwiU1VCVE9UQUxcIjogXCJTdWJ0b3RhbFwiLFxyXG4gICAgICBcIlNVR0dFU1RJT05TXCI6IFwiU3VnZ2VzdGlvbnNcIixcclxuICAgICAgXCJTVVJDSEFSR0VfQU1PVU5UXCI6IFwiU3VyY2hhcmdlXCIsXHJcbiAgICAgIFwiU1RBVEVcIjogXCJTVEFUVVNcIixcclxuICAgICAgXCJTVFJFRVRcIjogXCJTdHJlZXRuYW1lXCIsXHJcbiAgICAgIFwiVE9UQUxfQU1PVU5UXCI6IFwiVG90YWwgYW1vdW50XCIsXHJcbiAgICAgIFwiVE9UQUxfR1JPU1NcIjogXCJHcm9zcyB0b3RhbFwiLFxyXG4gICAgICBcIlRPVEFMX0FTU0VNQkxZX1RJTUVcIjogXCJUb3RhbCBhc3NlbWJseSB0aW1lXCIsXHJcbiAgICAgIFwiVFJBTlNBQ1RJT05fRElTQ09VTlRcIjogXCJUb3RhbCB0cmFuc2FjdGlvbiBkaXNjb3VudFwiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX0RJU0NPVU5UX1BFUkNcIjogXCIlIFRyYW5zLiBkaXNjb3VudFwiLFxyXG4gICAgICBcIlRSQU5TQUNUSU9OX1BSSUNFX0RFQ0xBUkFUSU9OXCI6IFwiVHJhbnNhY3Rpb24gcHJpY2UgZGVjbGFyYXRpb25cIixcclxuICAgICAgXCJUUkFOU0FDVElPTl9TVU1fSVwiOiBcIk9yZGVydG90YWwgaW5jbCBWQVRcIixcclxuICAgICAgXCJUUkFOU0FDVElPTl9UT1RBTFwiOiBcIlRyYW5zYWN0aW9uIHRvdGFsXCIsXHJcbiAgICAgIFwiVU5LTk9XTlwiOiBcInVua25vd25cIixcclxuICAgICAgXCJVTktOT1dOX0FERFJFU1NfQ0hFQ0tfSVRcIjogXCJVbmtub3duIGFkZHJlc3NcIixcclxuICAgICAgXCJWQUxVRVwiOiBcIlZhbHVlXCIsXHJcbiAgICAgIFwiVkFUXCI6IFwiVkFUXCIsXHJcbiAgICAgIFwiVkFUX0FNT1VOVFwiOiBcIlZBVCBhbW91bnRcIixcclxuICAgICAgXCJXQVJFSE9VU0VcIjogXCJXYXJlaG91c2VcIixcclxuICAgICAgXCJXSEVSRV9BUkVfWU9VX0xPT0tJTkdfRk9SXCI6IFwiV2hlcmUgYXJlIHlvdSBsb29raW5nIGZvcj9cIixcclxuICAgICAgXCJZT1VSX0RBVEFcIjogXCJZb3VyIGRhdGFcIixcclxuICAgICAgXCJTVEFOREFSRF9URVhUU1wiOlwiU3RhbmRhcmQgdGV4dHNcIixcclxuICAgICAgXCJBUlRJQ0xFX0JPVU5EX1RFWFRcIjogXCJBcnRpY2xlIGJvdW5kIHRleHRcIixcclxuICAgICAgXCJGT1JfRE9DVU1FTlRTXCI6IFwiVXNlZCBhdCBkb2N1bWVudHNcIixcclxuICAgICAgXCJDSEFOR0VfQVJUSUNMRV9URVhUXCI6IFwiQ2hhbmdlIGFydGljbGUgdGV4dFwiLFxyXG4gICAgfSxcclxuICB9O1xyXG59XHJcbiJdfQ==