ng-easycommerce 0.1.1 → 1.1.3

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 (115) hide show
  1. package/README.md +14 -0
  2. package/assets/ec-i18n/ct.json +4 -0
  3. package/assets/ec-i18n/en.json +4 -0
  4. package/assets/ec-i18n/es.json +4 -0
  5. package/assets/ec-i18n/fr.json +4 -0
  6. package/assets/ec-i18n/gl.json +4 -0
  7. package/assets/ec-i18n/pr.json +4 -0
  8. package/bundles/ng-easycommerce.umd.js +5191 -3521
  9. package/bundles/ng-easycommerce.umd.js.map +1 -1
  10. package/bundles/ng-easycommerce.umd.min.js +1 -1
  11. package/bundles/ng-easycommerce.umd.min.js.map +1 -1
  12. package/esm2015/lib/api/connection.service.js +2 -2
  13. package/esm2015/lib/core.consts.js +4 -5
  14. package/esm2015/lib/ec-component/account-ec/order-ec/order-ec.component.js +2 -2
  15. package/esm2015/lib/ec-component/cart-bootstrap-navigation.js +27 -0
  16. package/esm2015/lib/ec-component/cart-ec/cart-ec.component.js +11 -1
  17. package/esm2015/lib/ec-component/checkout-ec/checkout-ec.component.js +28 -3
  18. package/esm2015/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.js +185 -13
  19. package/esm2015/lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.js +6 -2
  20. package/esm2015/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.js +26 -9
  21. package/esm2015/lib/ec-component/checkout-ec/payment-ec-single/payment-ec-single.component.js +11 -3
  22. package/esm2015/lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component.js +4 -2
  23. package/esm2015/lib/ec-component/coupon-ec/coupon-ec.component.js +6 -1
  24. package/esm2015/lib/guards/able-buyer-guard.service.js +2 -2
  25. package/esm2015/lib/guards/auth-guard.service.js +2 -2
  26. package/esm2015/lib/guards/checkout-ready.service.js +3 -3
  27. package/esm2015/lib/guards/loggedin-guard.service.js +2 -2
  28. package/esm2015/lib/guards/user-role-guard.service.js +2 -2
  29. package/esm2015/lib/interfaces/checkout-data.js +1 -1
  30. package/esm2015/lib/services/account/orders.service.js +6 -4
  31. package/esm2015/lib/services/auth.service.js +4 -3
  32. package/esm2015/lib/services/captcha.service.js +6 -4
  33. package/esm2015/lib/services/cart.service.js +1194 -74
  34. package/esm2015/lib/services/channel-config.service.js +4 -6
  35. package/esm2015/lib/services/checkout/addressing.service.js +65 -9
  36. package/esm2015/lib/services/checkout/checkout.service.js +58 -9
  37. package/esm2015/lib/services/checkout/error-handler.service.js +4 -3
  38. package/esm2015/lib/services/checkout/payment.service.js +35 -15
  39. package/esm2015/lib/services/checkout/shipment.service.js +54 -3
  40. package/esm2015/lib/services/concatenated-associations.service.js +4 -3
  41. package/esm2015/lib/services/currency.service.js +5 -3
  42. package/esm2015/lib/services/filters.service.js +2 -2
  43. package/esm2015/lib/services/footer/footer.service.js +4 -3
  44. package/esm2015/lib/services/gift-card.service.js +56 -5
  45. package/esm2015/lib/services/parameters.service.js +5 -3
  46. package/esm2015/lib/services/reviews.service.js +5 -4
  47. package/esm2015/lib/services/seo.service.js +4 -5
  48. package/esm2015/lib/services/stores.service.js +4 -3
  49. package/esm2015/lib/services/wishlist.service.js +3 -4
  50. package/esm2015/lib/utils/analytics/google-analytics.service.js +1 -1
  51. package/esm2015/lib/utils/order-util.service.js +22 -2
  52. package/esm2015/lib/utils/price-presentation.service.js +2 -3
  53. package/esm2015/lib/utils/shipping-price-display.service.js +2 -3
  54. package/esm5/lib/api/connection.service.js +2 -2
  55. package/esm5/lib/core.consts.js +4 -5
  56. package/esm5/lib/ec-component/account-ec/order-ec/order-ec.component.js +2 -2
  57. package/esm5/lib/ec-component/cart-bootstrap-navigation.js +27 -0
  58. package/esm5/lib/ec-component/cart-ec/cart-ec.component.js +11 -1
  59. package/esm5/lib/ec-component/checkout-ec/checkout-ec.component.js +28 -3
  60. package/esm5/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.js +206 -12
  61. package/esm5/lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.js +6 -2
  62. package/esm5/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.js +31 -14
  63. package/esm5/lib/ec-component/checkout-ec/payment-ec-single/payment-ec-single.component.js +11 -3
  64. package/esm5/lib/ec-component/checkout-ec/shipment-ec/shipment-ec.component.js +5 -3
  65. package/esm5/lib/ec-component/coupon-ec/coupon-ec.component.js +6 -1
  66. package/esm5/lib/guards/able-buyer-guard.service.js +2 -2
  67. package/esm5/lib/guards/auth-guard.service.js +2 -2
  68. package/esm5/lib/guards/checkout-ready.service.js +3 -3
  69. package/esm5/lib/guards/loggedin-guard.service.js +2 -2
  70. package/esm5/lib/guards/user-role-guard.service.js +2 -2
  71. package/esm5/lib/interfaces/checkout-data.js +1 -1
  72. package/esm5/lib/services/account/orders.service.js +6 -4
  73. package/esm5/lib/services/auth.service.js +4 -3
  74. package/esm5/lib/services/captcha.service.js +6 -4
  75. package/esm5/lib/services/cart.service.js +1243 -94
  76. package/esm5/lib/services/channel-config.service.js +4 -6
  77. package/esm5/lib/services/checkout/addressing.service.js +65 -9
  78. package/esm5/lib/services/checkout/checkout.service.js +65 -13
  79. package/esm5/lib/services/checkout/error-handler.service.js +4 -3
  80. package/esm5/lib/services/checkout/payment.service.js +29 -11
  81. package/esm5/lib/services/checkout/shipment.service.js +58 -7
  82. package/esm5/lib/services/concatenated-associations.service.js +4 -3
  83. package/esm5/lib/services/currency.service.js +5 -3
  84. package/esm5/lib/services/filters.service.js +2 -2
  85. package/esm5/lib/services/footer/footer.service.js +4 -3
  86. package/esm5/lib/services/gift-card.service.js +59 -5
  87. package/esm5/lib/services/parameters.service.js +5 -3
  88. package/esm5/lib/services/reviews.service.js +5 -4
  89. package/esm5/lib/services/seo.service.js +4 -5
  90. package/esm5/lib/services/stores.service.js +4 -3
  91. package/esm5/lib/services/wishlist.service.js +3 -4
  92. package/esm5/lib/utils/analytics/google-analytics.service.js +1 -1
  93. package/esm5/lib/utils/order-util.service.js +22 -2
  94. package/esm5/lib/utils/price-presentation.service.js +2 -3
  95. package/esm5/lib/utils/shipping-price-display.service.js +2 -3
  96. package/fesm2015/ng-easycommerce.js +4360 -2745
  97. package/fesm2015/ng-easycommerce.js.map +1 -1
  98. package/fesm5/ng-easycommerce.js +5193 -3523
  99. package/fesm5/ng-easycommerce.js.map +1 -1
  100. package/lib/ec-component/cart-bootstrap-navigation.d.ts +7 -0
  101. package/lib/ec-component/cart-ec/cart-ec.component.d.ts +5 -2
  102. package/lib/ec-component/checkout-ec/checkout-ec.component.d.ts +6 -1
  103. package/lib/ec-component/checkout-ec/dataform-ec/dataform-ec.component.d.ts +27 -3
  104. package/lib/ec-component/checkout-ec/detail-checkout-block-ec/detail-checkout-block-ec.component.d.ts +1 -1
  105. package/lib/ec-component/checkout-ec/payment-ec/payment-ec.component.d.ts +3 -0
  106. package/lib/ec-component/checkout-ec/payment-ec-single/payment-ec-single.component.d.ts +3 -0
  107. package/lib/interfaces/checkout-data.d.ts +6 -1
  108. package/lib/services/cart.service.d.ts +123 -7
  109. package/lib/services/checkout/addressing.service.d.ts +1 -1
  110. package/lib/services/checkout/checkout.service.d.ts +3 -0
  111. package/lib/services/checkout/shipment.service.d.ts +2 -2
  112. package/lib/services/gift-card.service.d.ts +1 -0
  113. package/lib/utils/order-util.service.d.ts +1 -0
  114. package/ng-easycommerce.metadata.json +1 -1
  115. package/package.json +1 -1
@@ -15,7 +15,7 @@ var OrderUtilityService = /** @class */ (function () {
15
15
  */
16
16
  this.getPromotions = function (cart, forCart) {
17
17
  if (forCart === void 0) { forCart = false; }
18
- var _a;
18
+ var _a, _b;
19
19
  if (!((_a = cart) === null || _a === void 0 ? void 0 : _a.totals))
20
20
  return [];
21
21
  if (cart.checkoutState && cart.checkoutState == "completed")
@@ -27,6 +27,8 @@ var OrderUtilityService = /** @class */ (function () {
27
27
  // console.log(cart.cartDiscounts);
28
28
  var cartDiscounts = Array.isArray(cart.cartDiscounts) ? cart.cartDiscounts : [];
29
29
  for (var index = 0; index < cartDiscounts.length; index++) {
30
+ if (((_b = cartDiscounts[index]) === null || _b === void 0 ? void 0 : _b.type) === 'payment_method')
31
+ continue;
30
32
  cartDiscounts[index].type = _this.formatType(cartDiscounts[index].type);
31
33
  new_state.push({
32
34
  type: cartDiscounts[index].type,
@@ -42,6 +44,8 @@ var OrderUtilityService = /** @class */ (function () {
42
44
  // amount: this.getAmount(cartDiscount, cart)
43
45
  // });
44
46
  // });
47
+ var paymentMethodAdjustment = _this.getPaymentMethodAdjustment(cart);
48
+ paymentMethodAdjustment && new_state.push(paymentMethodAdjustment);
45
49
  !forCart && new_state.push(total);
46
50
  return new_state;
47
51
  };
@@ -69,9 +73,25 @@ var OrderUtilityService = /** @class */ (function () {
69
73
  name: 'discount',
70
74
  amount: promotionAmount
71
75
  });
76
+ var paymentMethodAdjustment = _this.getPaymentMethodAdjustment(cart);
77
+ paymentMethodAdjustment && new_state.push(paymentMethodAdjustment);
72
78
  !forCart && new_state.push(total);
73
79
  return new_state;
74
80
  };
81
+ this.getPaymentMethodAdjustment = function (cart) {
82
+ var _a, _b, _c, _d;
83
+ var rawAmount = (_b = (_a = cart) === null || _a === void 0 ? void 0 : _a.totals) === null || _b === void 0 ? void 0 : _b.paymentMethodAdjustment;
84
+ if (rawAmount === null || rawAmount === undefined || Number(rawAmount) === 0)
85
+ return null;
86
+ var amount = Number(rawAmount);
87
+ if (!Number.isFinite(amount))
88
+ return null;
89
+ return {
90
+ type: 'paymentMethodAdjustment',
91
+ name: ((_d = (_c = cart) === null || _c === void 0 ? void 0 : _c.totals) === null || _d === void 0 ? void 0 : _d.paymentMethodAdjustmentLabel) || (amount < 0 ? 'discount' : 'surcharge'),
92
+ amount: amount
93
+ };
94
+ };
75
95
  /**
76
96
  * Devuelve el monto de envío que debe mostrarse en el resumen.
77
97
  *
@@ -295,4 +315,4 @@ var OrderUtilityService = /** @class */ (function () {
295
315
  return OrderUtilityService;
296
316
  }());
297
317
  export { OrderUtilityService };
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItdXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL29yZGVyLXV0aWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDO0lBRUk7UUFBQSxpQkFBaUI7UUFFakI7Ozs7V0FJRztRQUNILGtCQUFhLEdBQUcsVUFBQyxJQUFTLEVBQUUsT0FBd0I7WUFBeEIsd0JBQUEsRUFBQSxlQUF3Qjs7WUFDaEQsSUFBSSxRQUFDLElBQUksMENBQUUsTUFBTSxDQUFBO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzdCLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLFdBQVc7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDdkUsSUFBSSxTQUFTLEdBQW1CLEVBQUUsQ0FBQztZQUNuQyxJQUFJLFFBQVEsR0FBaUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pILElBQUksS0FBSyxHQUFpQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0RixDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hDLHNDQUFzQztZQUNuQyxJQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xGLEtBQUssSUFBSSxLQUFLLEdB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T0FBTyxJQUFJLENBQUM7YUFDZjtZQUVELElBQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzNELENBQUMsQ0FBQTtJQWxTZSxDQUFDO0lBRlIsbUJBQW1CO1FBRC9CLFVBQVUsRUFBRTtPQUNBLG1CQUFtQixDQXFTL0I7SUFBRCwwQkFBQztDQUFBLEFBclNELElBcVNDO1NBclNZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoZWNrb3V0RGF0YSwgQ2hlY2tvdXREYXRhVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvY2hlY2tvdXQtZGF0YSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPcmRlclV0aWxpdHlTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gY2FydCBPYmpldG8gY2Fycml0byBvIG9yZGVuLCBpbmRpc3RpbnRhbWVudGUsIHlhIHF1ZSBwb3NlZW4gZWwgbWlzbW8gZm9ybWF0b1xuICAgICAqIEBwYXJhbSBmb3JDYXJ0IFNpIGxhIHNvbGljaXR1ZCBkZSBwcm9tb2Npb25lcyBwcm92aWVuZSBkZWwgY2Fycml0bywgc3VwcmltZSBlbCBzdWJ0b3RhbCB5IGVsIHRvdGFsXG4gICAgICogQGRlc2NyaXB0aW9uIERldnVlbHZlIHVuIGxpc3RhZG8gY29uIHRvZGFzIGxhcyBwcm9tb2Npb25lcyBxdWUgcG9zZWUgZWwgY2Fycm8vb3JkZW5cbiAgICAgKi9cbiAgICBnZXRQcm9tb3Rpb25zID0gKGNhcnQ6IGFueSwgZm9yQ2FydDogYm9vbGVhbiA9IGZhbHNlKTogQ2hlY2tvdXREYXRhW10gPT4ge1xuICAgICAgICBpZiAoIWNhcnQ/LnRvdGFscykgcmV0dXJuIFtdO1xuICAgICAgICBpZiAoY2FydC5jaGVja291dFN0YXRlICYmIGNhcnQuY2hlY2tvdXRTdGF0ZSA9PSBcImNvbXBsZXRlZFwiKSByZXR1cm4gW107XG4gICAgICAgIGxldCBuZXdfc3RhdGU6IENoZWNrb3V0RGF0YVtdID0gW107XG4gICAgICAgIGxldCBzdWJ0b3RhbDogQ2hlY2tvdXREYXRhID0geyB0eXBlOiAnc3VidG90YWwnLCBuYW1lOiAnc3VidG90YWwnLCBhbW91bnQ6IHRoaXMuZ2V0U3VtbWFyeVN1YnRvdGFsQW1vdW50KGNhcnQpIH07XG4gICAgICAgIGxldCB0b3RhbDogQ2hlY2tvdXREYXRhID0geyB0eXBlOiAndG90YWwnLCBuYW1lOiAndG90YWwnLCBhbW91bnQ6IGNhcnQudG90YWxzLnRvdGFsIH07XG4gICAgICAgICFmb3JDYXJ0ICYmIG5ld19zdGF0ZS5wdXNoKHN1YnRvdGFsKTtcbiAgICAgLy8gICAgY29uc29sZS5sb2coY2FydC5jYXJ0RGlzY291bnRzKTtcbiAgICAgICAgY29uc3QgY2FydERpc2NvdW50cyA9IEFycmF5LmlzQXJyYXkoY2FydC5jYXJ0RGlzY291bnRzKSA/IGNhcnQuY2FydERpc2NvdW50cyA6IFtdO1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY2FydERpc2NvdW50cy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICBjYXJ0RGlzY291bnRzW2luZGV4XS50eXBlID0gdGhpcy5mb3JtYXRUeXBlKGNhcnREaXNjb3VudHNbaW5kZXhdLnR5cGUpO1xuICAgICAgICAgICAgIG5ld19zdGF0ZS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgdHlwZTogY2FydERpc2NvdW50c1tpbmRleF0udHlwZSxcbiAgICAgICAgICAgICAgICAgbmFtZTogKGNhcnREaXNjb3VudHNbaW5kZXhdLnR5cGUgIT0gJ2NvdXBvbicpID8gY2FydERpc2NvdW50c1tpbmRleF0ubmFtZSA6ICdjb3Vwb24nLFxuICAgICAgICAgICAgICAgICBhbW91bnQ6IHRoaXMuZ2V0QW1vdW50KGNhcnREaXNjb3VudHNbaW5kZXhdLCBjYXJ0KVxuICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH1cbiAgICAgLy8gICAgY2FydC5jYXJ0RGlzY291bnRzLmZvckVhY2goY2FydERpc2NvdW50ID0+IHtcbiAgICAgLy8gICAgICAgIGNhcnREaXNjb3VudC50eXBlID0gdGhpcy5mb3JtYXRUeXBlKGNhcnREaXNjb3VudC50eXBlKTtcbiAgICAgLy8gICAgICAgIG5ld19zdGF0ZS5wdXNoKHtcbiAgICAgLy8gICAgICAgICAgICB0eXBlOiBjYXJ0RGlzY291bnQudHlwZSxcbiAgICAgLy8gICAgICAgICAgICBuYW1lOiAoY2FydERpc2NvdW50LnR5cGUgIT0gJ2NvdXBvbicpID8gY2FydERpc2NvdW50Lm5hbWUgOiAnY291cG9uJyxcbiAgICAgLy8gICAgICAgICAgICBhbW91bnQ6IHRoaXMuZ2V0QW1vdW50KGNhcnREaXNjb3VudCwgY2FydClcbiAgICAgLy8gICAgICAgIH0pO1xuICAgICAvLyAgICB9KTtcbiAgICAgICAgIWZvckNhcnQgJiYgbmV3X3N0YXRlLnB1c2godG90YWwpO1xuICAgICAgICByZXR1cm4gbmV3X3N0YXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbnN0cnV5ZSBlbCByZXN1bWVuIGRlIHByb21vY2lvbmVzIHF1ZSBkZWJlIG1vc3RyYXJzZSBlbiBjaGVja291dCB5IHJlc8O6bWVuZXMgZGUgY29tcHJhLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhcnQgQ2Fycml0byB1IG9yZGVuIGNvbiBlc3RydWN0dXJhIGB0b3RhbHNgIGNvbXBhdGlibGUuXG4gICAgICogQHBhcmFtIGZvckNhcnQgQ3VhbmRvIGVzIGB0cnVlYCwgb21pdGUgc3VidG90YWwgeSB0b3RhbCBwYXJhIGRldm9sdmVyIHNvbG8gbGFzIGzDrW5lYXMgaW50ZXJtZWRpYXMuXG4gICAgICogQHJldHVybnMgTGlzdGEgZGUgbMOtbmVhcyBub3JtYWxpemFkYXMgcGFyYSByZW5kZXJpemFyIGVsIHJlc3VtZW4uXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIEEgZGlmZXJlbmNpYSBkZSBgZ2V0UHJvbW90aW9uc2AsIGVzdGUgbcOpdG9kbyBzb2xvIGNvbnNpZGVyYSBkZXNjdWVudG9zIGRlIG9yZGVuLlxuICAgICAqL1xuICAgIGdldFN1bW1hcnlQcm9tb3Rpb25zID0gKGNhcnQ6IGFueSwgZm9yQ2FydDogYm9vbGVhbiA9IGZhbHNlKTogQ2hlY2tvdXREYXRhW10gPT4ge1xuICAgICAgICBpZiAoY2FydC5jaGVja291dFN0YXRlICYmIGNhcnQuY2hlY2tvdXRTdGF0ZSA9PSBcImNvbXBsZXRlZFwiKSByZXR1cm47XG4gICAgICAgIGxldCBuZXdfc3RhdGU6IENoZWNrb3V0RGF0YVtdID0gW107XG4gICAgICAgIGxldCBzdWJ0b3RhbDogQ2hlY2tvdXREYXRhID0geyB0eXBlOiAnc3VidG90YWwnLCBuYW1lOiAnc3VidG90YWwnLCBhbW91bnQ6IHRoaXMuZ2V0U3VtbWFyeVN1YnRvdGFsQW1vdW50KGNhcnQpIH07XG4gICAgICAgIGxldCB0b3RhbDogQ2hlY2tvdXREYXRhID0geyB0eXBlOiAndG90YWwnLCBuYW1lOiAndG90YWwnLCBhbW91bnQ6IGNhcnQudG90YWxzLnRvdGFsIH07XG4gICAgICAgIGNvbnN0IHByb21vdGlvbkFtb3VudCA9IHRoaXMuZ2V0U3VtbWFyeVByb21vdGlvbkFtb3VudChjYXJ0KTtcblxuICAgICAgICAhZm9yQ2FydCAmJiBuZXdfc3RhdGUucHVzaChzdWJ0b3RhbCk7XG4gICAgICAgIHByb21vdGlvbkFtb3VudCAhPSAwICYmIG5ld19zdGF0ZS5wdXNoKHtcbiAgICAgICAgICAgIHR5cGU6ICdkaXNjb3VudCcsXG4gICAgICAgICAgICBuYW1lOiAnZGlzY291bnQnLFxuICAgICAgICAgICAgYW1vdW50OiBwcm9tb3Rpb25BbW91bnRcbiAgICAgICAgfSk7XG4gICAgICAgICFmb3JDYXJ0ICYmIG5ld19zdGF0ZS5wdXNoKHRvdGFsKTtcbiAgICAgICAgcmV0dXJuIG5ld19zdGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXZ1ZWx2ZSBlbCBtb250byBkZSBlbnbDrW8gcXVlIGRlYmUgbW9zdHJhcnNlIGVuIGVsIHJlc3VtZW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FydCBDYXJyaXRvIHUgb3JkZW4gY29uIGB0b3RhbHNgLlxuICAgICAqIEByZXR1cm5zIGBudW1iZXJgIGN1YW5kbyBlbCBlbnbDrW8gZGViZSBtb3N0cmFyc2UsIG8gYG51bGxgIGN1YW5kbyBubyBjb3JyZXNwb25kZSByZW5kZXJpemFybG8uXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIC0gU2kgZWwgYmFja2VuZCBpbmZvcm1hIHVuIHNoaXBwaW5nIGRpc3RpbnRvIGRlIGNlcm8sIGVzZSB2YWxvciBzZSBtdWVzdHJhIHRhbCBjdWFsLlxuICAgICAqIC0gU2kgYHRvdGFscy5zaGlwcGluZ2AgZXMgYDBgIHBlcm8gZXhpc3RlIHVuYSBwcm9tb2Npw7NuIGRlIGVudsOtbywgc2UgbXVlc3RyYSBgMGAgcGFyYSBxdWUgbGEgVUkgbG8gaW50ZXJwcmV0ZSBjb21vIGdyYXRpcy5cbiAgICAgKiAtIFNpIG5vIGhheSBkYXRvcyBzdWZpY2llbnRlcywgc2UgZGV2dWVsdmUgYG51bGxgIHkgc2UgY29uc2VydmEgZWwgY29tcG9ydGFtaWVudG8gcHJldmlvIGRlIG5vIG1vc3RyYXIgbGEgbMOtbmVhLlxuICAgICAqL1xuICAgIGdldFN1bW1hcnlTaGlwbWVudEFtb3VudCA9IChjYXJ0OiBhbnkpOiBudW1iZXIgfCBudWxsID0+IHtcbiAgICAgICAgY29uc3Qgc2hpcHBpbmdBbW91bnQgPSB0aGlzLm5vcm1hbGl6ZUFtb3VudChjYXJ0Py50b3RhbHM/LnNoaXBwaW5nKTtcbiAgICAgICAgaWYgKHNoaXBwaW5nQW1vdW50ICE9PSBudWxsICYmIHNoaXBwaW5nQW1vdW50ICE9PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gc2hpcHBpbmdBbW91bnQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc2hpcHBpbmdBbW91bnQgPT09IDAgJiYgdGhpcy5oYXNTaGlwcGluZ1Byb21vdGlvbihjYXJ0KSkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPYnRpZW5lIGVsIG1vbnRvIGRlIGRlc2N1ZW50byBxdWUgY29ycmVzcG9uZGUgYWwgcmVzdW1lbiBkZSBsYSBvcmRlbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJ0IENhcnJpdG8gdSBvcmRlbiBjb24gYHRvdGFsc2AuXG4gICAgICogQHJldHVybnMgTW9udG8gZGUgcHJvbW9jaW9uZXMgZGUgb3JkZW4uXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHRzXG4gICAgICogY29uc3QgYW1vdW50ID0gdGhpcy5vcmRlclV0aWxzLmdldFN1bW1hcnlQcm9tb3Rpb25BbW91bnQoY2FydCk7XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFNpIGVsIGJhY2tlbmQgbnVldm8gaW5mb3JtYSBgcHJvbW90aW9uQnJlYWtkb3duLm9yZGVyUHJvbW90aW9uc2AsIGVzZSB2YWxvciB0aWVuZSBwcmlvcmlkYWQuXG4gICAgICogQ29uIGJhY2tlbmRzIHZpZWpvcyBoYWNlIGZhbGxiYWNrIGEgYHRvdGFscy5wcm9tb3Rpb25gIG8gYHRvdGFscy5kaXNjb3VudGAuXG4gICAgICovXG4gICAgZ2V0U3VtbWFyeVByb21vdGlvbkFtb3VudCA9IChjYXJ0OiBhbnkpOiBudW1iZXIgPT4ge1xuICAgICAgICBjb25zdCBvcmRlckRpc2NvdW50ID0gY2FydD8udG90YWxzPy5vcmRlckRpc2NvdW50ID8/IGNhcnQ/LnRvdGFscz8ub3JkZXJfZGlzY291bnQ7XG4gICAgICAgIGlmIChvcmRlckRpc2NvdW50ICE9PSBudWxsICYmIG9yZGVyRGlzY291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcihvcmRlckRpc2NvdW50IHx8IDApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmhhc09yZGVyUHJvbW90aW9uc0JyZWFrZG93bihjYXJ0KSkge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcihcbiAgICAgICAgICAgICAgICBjYXJ0Py50b3RhbHM/LnByb21vdGlvbkJyZWFrZG93bj8ub3JkZXJQcm9tb3Rpb25zXG4gICAgICAgICAgICAgICAgPz8gY2FydD8udG90YWxzPy5wcm9tb3Rpb25fYnJlYWtkb3duPy5vcmRlcl9wcm9tb3Rpb25zXG4gICAgICAgICAgICAgICAgPz8gMFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gTnVtYmVyKGNhcnQ/LnRvdGFscz8ucHJvbW90aW9uIHx8IGNhcnQ/LnRvdGFscz8uZGlzY291bnQgfHwgMCk7XG4gICAgfVxuXG4gICAgLyoqIERlc2N1ZW50byBkZSBvcmRlbiBzZXBhcmFkbyBkZSBjdXBvbmVzIHkgZGVzY3VlbnRvcyBkZSBlbnbDrW8uICovXG4gICAgZ2V0T3JkZXJQcm9tb3Rpb25BbW91bnQgPSAoY2FydDogYW55KTogbnVtYmVyID0+IHtcbiAgICAgICAgY29uc3QgYnJlYWtkb3duID0gY2FydD8udG90YWxzPy5wcm9tb3Rpb25CcmVha2Rvd24gfHwgY2FydD8udG90YWxzPy5wcm9tb3Rpb25fYnJlYWtkb3duO1xuICAgICAgICBpZiAoYnJlYWtkb3duICYmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYnJlYWtkb3duLCAnb3JkZXJQcm9tb3Rpb25zJylcbiAgICAgICAgICAgIHx8IE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChicmVha2Rvd24sICdvcmRlcl9wcm9tb3Rpb25zJykpKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKGJyZWFrZG93bi5vcmRlclByb21vdGlvbnMgPz8gYnJlYWtkb3duLm9yZGVyX3Byb21vdGlvbnMgPz8gMCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjYXJ0Py5jYXJ0RGlzY291bnRzKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNhcnQuY2FydERpc2NvdW50c1xuICAgICAgICAgICAgICAgIC5maWx0ZXIoZGlzY291bnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gKGRpc2NvdW50Py50eXBlIHx8ICcnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0eXBlLmluY2x1ZGVzKCdvcmRlcicpICYmICF0eXBlLmluY2x1ZGVzKCdjb3Vwb24nKSAmJiAhdHlwZS5pbmNsdWRlcygnc2hpcHBpbmcnKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoKHRvdGFsLCBkaXNjb3VudCkgPT4gdG90YWwgKyBOdW1iZXIoZGlzY291bnQ/LmFtb3VudCB8fCAwKSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2FydD8uY291cG9uQ29kZSB8fCBjYXJ0Py5jb3Vwb25fY29kZVxuICAgICAgICAgICAgPyAwXG4gICAgICAgICAgICA6IE51bWJlcihjYXJ0Py50b3RhbHM/Lm9yZGVyRGlzY291bnQgPz8gY2FydD8udG90YWxzPy5vcmRlcl9kaXNjb3VudCA/PyBjYXJ0Py50b3RhbHM/LnByb21vdGlvbiA/PyAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPYnRpZW5lIMO6bmljYW1lbnRlIGVsIGRlc2N1ZW50byBhcGxpY2FkbyBwb3IgZWwgY3Vww7NuLlxuICAgICAqXG4gICAgICogRGV2dWVsdmUgYG51bGxgIGN1YW5kbyBsYSByZXNwdWVzdGEgbm8gcGVybWl0ZSBpZGVudGlmaWNhciBzdSBpbXBvcnRlLFxuICAgICAqIHBhcmEgcXVlIGVsIGZyb250ZW5kIHB1ZWRhIG1vc3RyYXIgc29sYW1lbnRlIGVsIGPDs2RpZ28uXG4gICAgICovXG4gICAgZ2V0Q291cG9uUHJvbW90aW9uQW1vdW50ID0gKGNhcnQ6IGFueSk6IG51bWJlciB8IG51bGwgPT4ge1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoY2FydD8uY2FydERpc2NvdW50cykpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY291cG9uRGlzY291bnRzID0gY2FydC5jYXJ0RGlzY291bnRzLmZpbHRlcihkaXNjb3VudCA9PlxuICAgICAgICAgICAgKGRpc2NvdW50Py50eXBlIHx8ICcnKS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ2NvdXBvbicpXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFjb3Vwb25EaXNjb3VudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb3Vwb25EaXNjb3VudHMucmVkdWNlKCh0b3RhbCwgZGlzY291bnQpID0+IHRvdGFsICsgTnVtYmVyKGRpc2NvdW50Py5hbW91bnQgfHwgMCksIDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9idGllbmUgZWwgc3VidG90YWwgY29tcGF0aWJsZSBjb24gYmFja2VuZHMgbnVldm9zIHkgbGVnYWN5LlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhcnQgQ2Fycml0byB1IG9yZGVuIGNvbiBgdG90YWxzYC5cbiAgICAgKiBAcmV0dXJucyBgdG90YWxzLnN1YnRvdGFsYCBjdWFuZG8gZXhpc3RlOyBlbiBiYWNrZW5kcyBsZWdhY3kgdXNhIGB0b3RhbHMuaXRlbXNgLlxuICAgICAqL1xuICAgIGdldFN1bW1hcnlTdWJ0b3RhbEFtb3VudCA9IChjYXJ0OiBhbnkpOiBudW1iZXIgPT4ge1xuICAgICAgICBjb25zdCBjYXJ0U3VidG90YWwgPSBjYXJ0Py50b3RhbHM/LmNhcnRTdWJ0b3RhbCA/PyBjYXJ0Py50b3RhbHM/LmNhcnRfc3VidG90YWw7XG4gICAgICAgIGlmIChjYXJ0U3VidG90YWwgIT09IG51bGwgJiYgY2FydFN1YnRvdGFsICE9PSB1bmRlZmluZWQgJiYgY2FydFN1YnRvdGFsICE9PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcihjYXJ0U3VidG90YWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc3VidG90YWwgPSBjYXJ0Py50b3RhbHM/LnN1YnRvdGFsO1xuICAgICAgICBpZiAoc3VidG90YWwgIT09IG51bGwgJiYgc3VidG90YWwgIT09IHVuZGVmaW5lZCAmJiBzdWJ0b3RhbCAhPT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIoc3VidG90YWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIE51bWJlcihjYXJ0Py50b3RhbHM/Lml0ZW1zIHx8IDApO1xuICAgIH1cblxuICAgIC8qKiBUb3RhbCBxdWUgZGViZSBtb3N0cmFyIGVsIGNhcnJpdG8vc2lkZWJhciwgZXhjbHV5ZW5kbyBlbnbDrW8gcGVyc2lzdGlkby4gKi9cbiAgICBnZXRDYXJ0VG90YWxBbW91bnQgPSAoY2FydDogYW55KTogbnVtYmVyID0+IHtcbiAgICAgICAgY29uc3QgdG90YWxXaXRob3V0U2hpcHBpbmcgPSBjYXJ0Py50b3RhbHM/LnRvdGFsV2l0aG91dFNoaXBwaW5nID8/IGNhcnQ/LnRvdGFscz8udG90YWxfd2l0aG91dF9zaGlwcGluZztcbiAgICAgICAgaWYgKHRvdGFsV2l0aG91dFNoaXBwaW5nICE9PSBudWxsICYmIHRvdGFsV2l0aG91dFNoaXBwaW5nICE9PSB1bmRlZmluZWQgJiYgdG90YWxXaXRob3V0U2hpcHBpbmcgIT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKHRvdGFsV2l0aG91dFNoaXBwaW5nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBOdW1iZXIoY2FydD8udG90YWxzPy50b3RhbCB8fCAwKTtcbiAgICB9XG5cbiAgICAvKiogSW1wdWVzdG9zIGRlIHByb2R1Y3RvcyBwYXJhIGNhcnJpdG8vc2lkZWJhciwgY29uIGZhbGxiYWNrIGxlZ2FjeS4gKi9cbiAgICBnZXRDYXJ0VGF4ZXNBbW91bnQgPSAoY2FydDogYW55KTogbnVtYmVyID0+IHtcbiAgICAgICAgY29uc3QgY2FydFRheGVzID0gY2FydD8udG90YWxzPy5jYXJ0VGF4ZXMgPz8gY2FydD8udG90YWxzPy5jYXJ0X3RheGVzO1xuICAgICAgICBpZiAoY2FydFRheGVzICE9PSBudWxsICYmIGNhcnRUYXhlcyAhPT0gdW5kZWZpbmVkICYmIGNhcnRUYXhlcyAhPT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIoY2FydFRheGVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBOdW1iZXIoY2FydD8udG90YWxzPy50YXhlcyB8fCAwKTtcbiAgICB9XG5cbiAgICAvKiogSW1wdWVzdG9zIGVzcGVjw61maWNvcyBkZWwgY2xpZW50ZSBwYXJhIGNhcnJpdG8vc2lkZWJhciwgY29uIGZhbGxiYWNrIGxlZ2FjeS4gKi9cbiAgICBnZXRDYXJ0Q2xpZW50VGF4ZXNBbW91bnQgPSAoY2FydDogYW55KTogbnVtYmVyID0+IHtcbiAgICAgICAgY29uc3QgY2FydENsaWVudFRheGVzID0gY2FydD8udG90YWxzPy5jYXJ0Q2xpZW50VGF4ZXMgPz8gY2FydD8udG90YWxzPy5jYXJ0X2NsaWVudF90YXhlcztcbiAgICAgICAgaWYgKGNhcnRDbGllbnRUYXhlcyAhPT0gbnVsbCAmJiBjYXJ0Q2xpZW50VGF4ZXMgIT09IHVuZGVmaW5lZCAmJiBjYXJ0Q2xpZW50VGF4ZXMgIT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKGNhcnRDbGllbnRUYXhlcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gTnVtYmVyKGNhcnQ/LnRvdGFscz8uY2xpZW50VGF4ZXMgfHwgMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5kaWNhIHNpIGVsIGJhY2tlbmQgeWEgaW5mb3JtYSBlbCBkZXNnbG9zZSBudWV2byBkZSBwcm9tb2Npb25lcy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJ0IENhcnJpdG8gdSBvcmRlbiBjb24gYHRvdGFsc2AuXG4gICAgICogQHJldHVybnMgYHRydWVgIGN1YW5kbyBleGlzdGUgYHByb21vdGlvbkJyZWFrZG93bi5vcmRlclByb21vdGlvbnNgLlxuICAgICAqL1xuICAgIGhhc09yZGVyUHJvbW90aW9uc0JyZWFrZG93biA9IChjYXJ0OiBhbnkpOiBib29sZWFuID0+IHtcbiAgICAgICAgY29uc3QgYnJlYWtkb3duID0gY2FydD8udG90YWxzPy5wcm9tb3Rpb25CcmVha2Rvd24gfHwgY2FydD8udG90YWxzPy5wcm9tb3Rpb25fYnJlYWtkb3duO1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGJyZWFrZG93biB8fCB7fSwgJ29yZGVyUHJvbW90aW9ucycpXG4gICAgICAgICAgICB8fCBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYnJlYWtkb3duIHx8IHt9LCAnb3JkZXJfcHJvbW90aW9ucycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluZGljYSBzaSBlbCBjYXJyaXRvIHRpZW5lIHVuIGN1cMOzbiBhcGxpY2FkbywgaW5kZXBlbmRpZW50ZW1lbnRlIGRlIGPDs21vIGltcGFjdGUgZW4gZWwgcmVzdW1lbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJ0IENhcnJpdG8gYWN0dWFsLlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBjdWFuZG8gaGF5IHVuIGPDs2RpZ28gZGUgY3Vww7NuIG8gdW5hIGzDrW5lYSBkZSBkZXNjdWVudG8gZGUgdGlwbyBjdXDDs24uXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIEVzdGUgaGVscGVyIGV2aXRhIGF0YXIgbGEgVUkgZGUgYFF1aXRhciBjdXDDs25gIGFsIG1vbnRvIGRlIGRlc2N1ZW50b3MgZGUgb3JkZW4uXG4gICAgICogVW4gY3Vww7NuIHB1ZWRlIGFmZWN0YXIgcHJvbW9jaW9uZXMgdW5pdGFyaWFzIHkgZGVqYXIgYG9yZGVyUHJvbW90aW9ucyA9IDBgLlxuICAgICAqL1xuICAgIGhhc0FwcGxpZWRDb3Vwb24gPSAoY2FydDogYW55KTogYm9vbGVhbiA9PiB7XG4gICAgICAgIGlmIChCb29sZWFuKGNhcnQ/LmNvdXBvbkNvZGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGNhcnQ/LmNhcnREaXNjb3VudHMpXG4gICAgICAgICAgICAmJiBjYXJ0LmNhcnREaXNjb3VudHMuc29tZShkaXNjb3VudCA9PiAoZGlzY291bnQ/LnR5cGUgfHwgJycpLnRvU3RyaW5nKCkuaW5jbHVkZXMoJ2NvdXBvbicpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2Egc2kgZWwgY2Fycml0byB0aWVuZSB1bmEgcHJvbW9jacOzbiBhc29jaWFkYSBhbCBlbnbDrW8uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FydCBDYXJyaXRvIGFjdHVhbC5cbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgY3VhbmRvIGFsZ3VuYSBsw61uZWEgZGUgZGVzY3VlbnRvIGNvcnJlc3BvbmRlIGEgc2hpcHBpbmcuXG4gICAgICovXG4gICAgaGFzU2hpcHBpbmdQcm9tb3Rpb24gPSAoY2FydDogYW55KTogYm9vbGVhbiA9PlxuICAgICAgICBBcnJheS5pc0FycmF5KGNhcnQ/LmNhcnREaXNjb3VudHMpXG4gICAgICAgICAgICAmJiBjYXJ0LmNhcnREaXNjb3VudHMuc29tZShkaXNjb3VudCA9PiB0aGlzLmZvcm1hdFR5cGUoKGRpc2NvdW50Py50eXBlIHx8ICcnKS50b1N0cmluZygpKSA9PT0gJ3NoaXBtZW50Jyk7XG5cbiAgICAvKipcbiAgICAgKiBEZXZ1ZWx2ZSBlbCBtb250byBlZmVjdGl2byBkZSB1bmEgbMOtbmVhIGRlIGRlc2N1ZW50by9wcm9tb2Npw7NuLlxuICAgICAqXG4gICAgICogQHBhcmFtIGRpc2NvdW50IEzDrW5lYSBjcnVkYSBkZSBkZXNjdWVudG8gZGVsIGJhY2tlbmQuXG4gICAgICogQHBhcmFtIGNhcnQgQ2Fycml0byBhc29jaWFkby5cbiAgICAgKiBAcmV0dXJucyBNb250byBxdWUgZGViZSBtb3N0cmFyc2UgZW4gVUkuXG4gICAgICovXG4gICAgZ2V0QW1vdW50ID0gKGRpc2NvdW50LCBjYXJ0KTogbnVtYmVyID0+IHtcbiAgICAgICAgaWYgKGRpc2NvdW50LnR5cGUgIT0gJ3NoaXBtZW50JykgcmV0dXJuIGRpc2NvdW50LmFtb3VudDtcbiAgICAgICAgcmV0dXJuIGNhcnQudG90YWxzLnNoaXBwaW5nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhvbW9sb2dhIHRpcG9zIGNydWRvcyBkZWwgYmFja2VuZCBhbCBjb25qdW50byBkZSB0aXBvcyB1c2FkbyBwb3IgY2hlY2tvdXQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdHlwZSBUaXBvIGNydWRvIChgb3JkZXJfcHJvbW90aW9uYCwgYG9yZGVyX2NvdXBvbl9wcm9tb3Rpb25gLCBldGMuKS5cbiAgICAgKiBAcmV0dXJucyBUaXBvIG5vcm1hbGl6YWRvIGNvbnN1bWlkbyBwb3IgbG9zIGNvbXBvbmVudGVzIGRlbCBjb3JlLlxuICAgICAqL1xuICAgIGZvcm1hdFR5cGUgPSAodHlwZTogc3RyaW5nKTogQ2hlY2tvdXREYXRhVHlwZSA9PiB7XG4gICAgICAgIGxldCByZXN1bHQ7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnb3JkZXJfcHJvbW90aW9uJzogcmVzdWx0ID0gJ2Rpc2NvdW50JzsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvcmRlcl9zaGlwcGluZ19wcm9tb3Rpb24nOiByZXN1bHQgPSAnc2hpcG1lbnQnOyBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ29yZGVyX2NvdXBvbl9wcm9tb3Rpb24nOiByZXN1bHQgPSAnY291cG9uJzsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvcmRlcl91bml0X3Byb21vdGlvbic6IHJlc3VsdCA9ICdkaXNjb3VudCc7IGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgICFyZXN1bHQgJiYgKHJlc3VsdCA9IHR5cGUuaW5jbHVkZXMoJ3Byb21vdGlvbicpIHx8IHR5cGUuaW5jbHVkZXMoJ2Rpc2NvdW50JykgPyAnZGlzY291bnQnIDogdHlwZSApXG4gICAgICAgIHJldHVybiByZXN1bHQgfHwgdHlwZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5vcm1hbGl6ZUFtb3VudCA9ICh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IG51bWJlciB8IG51bGwgPT4ge1xuICAgICAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IE51bWJlcih2YWx1ZSk7XG4gICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUobm9ybWFsaXplZCkgPyBub3JtYWxpemVkIDogbnVsbDtcbiAgICB9XG59XG4iXX0=
318
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItdXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL29yZGVyLXV0aWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDO0lBRUk7UUFBQSxpQkFBaUI7UUFFakI7Ozs7V0FJRztRQUNILGtCQUFhLEdBQUcsVUFBQyxJQUFTLEVBQUUsT0FBd0I7WUFBeEIsd0JBQUEsRUFBQSxlQUF3Qjs7WUFDaEQsSUFBSSxRQUFDLElBQUksMENBQUUsTUFBTSxDQUFBO2dCQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzdCLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLFdBQVc7Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDdkUsSUFBSSxTQUFTLEdBQW1CLEVBQUUsQ0FBQztZQUNuQyxJQUFJLFFBQVEsR0FBaUIsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pILElBQUksS0FBSyxHQUFpQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0RixDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hDLHNDQUFzQztZQUNuQyxJQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2xGLEtBQUssSUFBSSxLQUFLLEdB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QyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMzRCxDQUFDLENBQUE7SUFyVGUsQ0FBQztJQUZSLG1CQUFtQjtRQUQvQixVQUFVLEVBQUU7T0FDQSxtQkFBbUIsQ0F3VC9CO0lBQUQsMEJBQUM7Q0FBQSxBQXhURCxJQXdUQztTQXhUWSxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGVja291dERhdGEsIENoZWNrb3V0RGF0YVR5cGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NoZWNrb3V0LWRhdGEnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT3JkZXJVdGlsaXR5U2VydmljZSB7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGNhcnQgT2JqZXRvIGNhcnJpdG8gbyBvcmRlbiwgaW5kaXN0aW50YW1lbnRlLCB5YSBxdWUgcG9zZWVuIGVsIG1pc21vIGZvcm1hdG9cbiAgICAgKiBAcGFyYW0gZm9yQ2FydCBTaSBsYSBzb2xpY2l0dWQgZGUgcHJvbW9jaW9uZXMgcHJvdmllbmUgZGVsIGNhcnJpdG8sIHN1cHJpbWUgZWwgc3VidG90YWwgeSBlbCB0b3RhbFxuICAgICAqIEBkZXNjcmlwdGlvbiBEZXZ1ZWx2ZSB1biBsaXN0YWRvIGNvbiB0b2RhcyBsYXMgcHJvbW9jaW9uZXMgcXVlIHBvc2VlIGVsIGNhcnJvL29yZGVuXG4gICAgICovXG4gICAgZ2V0UHJvbW90aW9ucyA9IChjYXJ0OiBhbnksIGZvckNhcnQ6IGJvb2xlYW4gPSBmYWxzZSk6IENoZWNrb3V0RGF0YVtdID0+IHtcbiAgICAgICAgaWYgKCFjYXJ0Py50b3RhbHMpIHJldHVybiBbXTtcbiAgICAgICAgaWYgKGNhcnQuY2hlY2tvdXRTdGF0ZSAmJiBjYXJ0LmNoZWNrb3V0U3RhdGUgPT0gXCJjb21wbGV0ZWRcIikgcmV0dXJuIFtdO1xuICAgICAgICBsZXQgbmV3X3N0YXRlOiBDaGVja291dERhdGFbXSA9IFtdO1xuICAgICAgICBsZXQgc3VidG90YWw6IENoZWNrb3V0RGF0YSA9IHsgdHlwZTogJ3N1YnRvdGFsJywgbmFtZTogJ3N1YnRvdGFsJywgYW1vdW50OiB0aGlzLmdldFN1bW1hcnlTdWJ0b3RhbEFtb3VudChjYXJ0KSB9O1xuICAgICAgICBsZXQgdG90YWw6IENoZWNrb3V0RGF0YSA9IHsgdHlwZTogJ3RvdGFsJywgbmFtZTogJ3RvdGFsJywgYW1vdW50OiBjYXJ0LnRvdGFscy50b3RhbCB9O1xuICAgICAgICAhZm9yQ2FydCAmJiBuZXdfc3RhdGUucHVzaChzdWJ0b3RhbCk7XG4gICAgIC8vICAgIGNvbnNvbGUubG9nKGNhcnQuY2FydERpc2NvdW50cyk7XG4gICAgICAgIGNvbnN0IGNhcnREaXNjb3VudHMgPSBBcnJheS5pc0FycmF5KGNhcnQuY2FydERpc2NvdW50cykgPyBjYXJ0LmNhcnREaXNjb3VudHMgOiBbXTtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNhcnREaXNjb3VudHMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgaWYgKGNhcnREaXNjb3VudHNbaW5kZXhdPy50eXBlID09PSAncGF5bWVudF9tZXRob2QnKSBjb250aW51ZTtcbiAgICAgICAgICBjYXJ0RGlzY291bnRzW2luZGV4XS50eXBlID0gdGhpcy5mb3JtYXRUeXBlKGNhcnREaXNjb3VudHNbaW5kZXhdLnR5cGUpO1xuICAgICAgICAgICAgIG5ld19zdGF0ZS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgdHlwZTogY2FydERpc2NvdW50c1tpbmRleF0udHlwZSxcbiAgICAgICAgICAgICAgICAgbmFtZTogKGNhcnREaXNjb3VudHNbaW5kZXhdLnR5cGUgIT0gJ2NvdXBvbicpID8gY2FydERpc2NvdW50c1tpbmRleF0ubmFtZSA6ICdjb3Vwb24nLFxuICAgICAgICAgICAgICAgICBhbW91bnQ6IHRoaXMuZ2V0QW1vdW50KGNhcnREaXNjb3VudHNbaW5kZXhdLCBjYXJ0KVxuICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH1cbiAgICAgLy8gICAgY2FydC5jYXJ0RGlzY291bnRzLmZvckVhY2goY2FydERpc2NvdW50ID0+IHtcbiAgICAgLy8gICAgICAgIGNhcnREaXNjb3VudC50eXBlID0gdGhpcy5mb3JtYXRUeXBlKGNhcnREaXNjb3VudC50eXBlKTtcbiAgICAgLy8gICAgICAgIG5ld19zdGF0ZS5wdXNoKHtcbiAgICAgLy8gICAgICAgICAgICB0eXBlOiBjYXJ0RGlzY291bnQudHlwZSxcbiAgICAgLy8gICAgICAgICAgICBuYW1lOiAoY2FydERpc2NvdW50LnR5cGUgIT0gJ2NvdXBvbicpID8gY2FydERpc2NvdW50Lm5hbWUgOiAnY291cG9uJyxcbiAgICAgLy8gICAgICAgICAgICBhbW91bnQ6IHRoaXMuZ2V0QW1vdW50KGNhcnREaXNjb3VudCwgY2FydClcbiAgICAgLy8gICAgICAgIH0pO1xuICAgICAvLyAgICB9KTtcbiAgICAgICAgY29uc3QgcGF5bWVudE1ldGhvZEFkanVzdG1lbnQgPSB0aGlzLmdldFBheW1lbnRNZXRob2RBZGp1c3RtZW50KGNhcnQpO1xuICAgICAgICBwYXltZW50TWV0aG9kQWRqdXN0bWVudCAmJiBuZXdfc3RhdGUucHVzaChwYXltZW50TWV0aG9kQWRqdXN0bWVudCk7XG4gICAgICAgICFmb3JDYXJ0ICYmIG5ld19zdGF0ZS5wdXNoKHRvdGFsKTtcbiAgICAgICAgcmV0dXJuIG5ld19zdGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb25zdHJ1eWUgZWwgcmVzdW1lbiBkZSBwcm9tb2Npb25lcyBxdWUgZGViZSBtb3N0cmFyc2UgZW4gY2hlY2tvdXQgeSByZXPDum1lbmVzIGRlIGNvbXByYS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJ0IENhcnJpdG8gdSBvcmRlbiBjb24gZXN0cnVjdHVyYSBgdG90YWxzYCBjb21wYXRpYmxlLlxuICAgICAqIEBwYXJhbSBmb3JDYXJ0IEN1YW5kbyBlcyBgdHJ1ZWAsIG9taXRlIHN1YnRvdGFsIHkgdG90YWwgcGFyYSBkZXZvbHZlciBzb2xvIGxhcyBsw61uZWFzIGludGVybWVkaWFzLlxuICAgICAqIEByZXR1cm5zIExpc3RhIGRlIGzDrW5lYXMgbm9ybWFsaXphZGFzIHBhcmEgcmVuZGVyaXphciBlbCByZXN1bWVuLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBBIGRpZmVyZW5jaWEgZGUgYGdldFByb21vdGlvbnNgLCBlc3RlIG3DqXRvZG8gc29sbyBjb25zaWRlcmEgZGVzY3VlbnRvcyBkZSBvcmRlbi5cbiAgICAgKi9cbiAgICBnZXRTdW1tYXJ5UHJvbW90aW9ucyA9IChjYXJ0OiBhbnksIGZvckNhcnQ6IGJvb2xlYW4gPSBmYWxzZSk6IENoZWNrb3V0RGF0YVtdID0+IHtcbiAgICAgICAgaWYgKGNhcnQuY2hlY2tvdXRTdGF0ZSAmJiBjYXJ0LmNoZWNrb3V0U3RhdGUgPT0gXCJjb21wbGV0ZWRcIikgcmV0dXJuO1xuICAgICAgICBsZXQgbmV3X3N0YXRlOiBDaGVja291dERhdGFbXSA9IFtdO1xuICAgICAgICBsZXQgc3VidG90YWw6IENoZWNrb3V0RGF0YSA9IHsgdHlwZTogJ3N1YnRvdGFsJywgbmFtZTogJ3N1YnRvdGFsJywgYW1vdW50OiB0aGlzLmdldFN1bW1hcnlTdWJ0b3RhbEFtb3VudChjYXJ0KSB9O1xuICAgICAgICBsZXQgdG90YWw6IENoZWNrb3V0RGF0YSA9IHsgdHlwZTogJ3RvdGFsJywgbmFtZTogJ3RvdGFsJywgYW1vdW50OiBjYXJ0LnRvdGFscy50b3RhbCB9O1xuICAgICAgICBjb25zdCBwcm9tb3Rpb25BbW91bnQgPSB0aGlzLmdldFN1bW1hcnlQcm9tb3Rpb25BbW91bnQoY2FydCk7XG5cbiAgICAgICAgIWZvckNhcnQgJiYgbmV3X3N0YXRlLnB1c2goc3VidG90YWwpO1xuICAgICAgICBwcm9tb3Rpb25BbW91bnQgIT0gMCAmJiBuZXdfc3RhdGUucHVzaCh7XG4gICAgICAgICAgICB0eXBlOiAnZGlzY291bnQnLFxuICAgICAgICAgICAgbmFtZTogJ2Rpc2NvdW50JyxcbiAgICAgICAgICAgIGFtb3VudDogcHJvbW90aW9uQW1vdW50XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBwYXltZW50TWV0aG9kQWRqdXN0bWVudCA9IHRoaXMuZ2V0UGF5bWVudE1ldGhvZEFkanVzdG1lbnQoY2FydCk7XG4gICAgICAgIHBheW1lbnRNZXRob2RBZGp1c3RtZW50ICYmIG5ld19zdGF0ZS5wdXNoKHBheW1lbnRNZXRob2RBZGp1c3RtZW50KTtcbiAgICAgICAgIWZvckNhcnQgJiYgbmV3X3N0YXRlLnB1c2godG90YWwpO1xuICAgICAgICByZXR1cm4gbmV3X3N0YXRlO1xuICAgIH1cblxuICAgIGdldFBheW1lbnRNZXRob2RBZGp1c3RtZW50ID0gKGNhcnQ6IGFueSk6IENoZWNrb3V0RGF0YSB8IG51bGwgPT4ge1xuICAgICAgICBjb25zdCByYXdBbW91bnQgPSBjYXJ0Py50b3RhbHM/LnBheW1lbnRNZXRob2RBZGp1c3RtZW50O1xuICAgICAgICBpZiAocmF3QW1vdW50ID09PSBudWxsIHx8IHJhd0Ftb3VudCA9PT0gdW5kZWZpbmVkIHx8IE51bWJlcihyYXdBbW91bnQpID09PSAwKSByZXR1cm4gbnVsbDtcblxuICAgICAgICBjb25zdCBhbW91bnQgPSBOdW1iZXIocmF3QW1vdW50KTtcbiAgICAgICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUoYW1vdW50KSkgcmV0dXJuIG51bGw7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHR5cGU6ICdwYXltZW50TWV0aG9kQWRqdXN0bWVudCcsXG4gICAgICAgICAgICBuYW1lOiBjYXJ0Py50b3RhbHM/LnBheW1lbnRNZXRob2RBZGp1c3RtZW50TGFiZWwgfHwgKGFtb3VudCA8IDAgPyAnZGlzY291bnQnIDogJ3N1cmNoYXJnZScpLFxuICAgICAgICAgICAgYW1vdW50XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV2dWVsdmUgZWwgbW9udG8gZGUgZW52w61vIHF1ZSBkZWJlIG1vc3RyYXJzZSBlbiBlbCByZXN1bWVuLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhcnQgQ2Fycml0byB1IG9yZGVuIGNvbiBgdG90YWxzYC5cbiAgICAgKiBAcmV0dXJucyBgbnVtYmVyYCBjdWFuZG8gZWwgZW52w61vIGRlYmUgbW9zdHJhcnNlLCBvIGBudWxsYCBjdWFuZG8gbm8gY29ycmVzcG9uZGUgcmVuZGVyaXphcmxvLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiAtIFNpIGVsIGJhY2tlbmQgaW5mb3JtYSB1biBzaGlwcGluZyBkaXN0aW50byBkZSBjZXJvLCBlc2UgdmFsb3Igc2UgbXVlc3RyYSB0YWwgY3VhbC5cbiAgICAgKiAtIFNpIGB0b3RhbHMuc2hpcHBpbmdgIGVzIGAwYCBwZXJvIGV4aXN0ZSB1bmEgcHJvbW9jacOzbiBkZSBlbnbDrW8sIHNlIG11ZXN0cmEgYDBgIHBhcmEgcXVlIGxhIFVJIGxvIGludGVycHJldGUgY29tbyBncmF0aXMuXG4gICAgICogLSBTaSBubyBoYXkgZGF0b3Mgc3VmaWNpZW50ZXMsIHNlIGRldnVlbHZlIGBudWxsYCB5IHNlIGNvbnNlcnZhIGVsIGNvbXBvcnRhbWllbnRvIHByZXZpbyBkZSBubyBtb3N0cmFyIGxhIGzDrW5lYS5cbiAgICAgKi9cbiAgICBnZXRTdW1tYXJ5U2hpcG1lbnRBbW91bnQgPSAoY2FydDogYW55KTogbnVtYmVyIHwgbnVsbCA9PiB7XG4gICAgICAgIGNvbnN0IHNoaXBwaW5nQW1vdW50ID0gdGhpcy5ub3JtYWxpemVBbW91bnQoY2FydD8udG90YWxzPy5zaGlwcGluZyk7XG4gICAgICAgIGlmIChzaGlwcGluZ0Ftb3VudCAhPT0gbnVsbCAmJiBzaGlwcGluZ0Ftb3VudCAhPT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHNoaXBwaW5nQW1vdW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHNoaXBwaW5nQW1vdW50ID09PSAwICYmIHRoaXMuaGFzU2hpcHBpbmdQcm9tb3Rpb24oY2FydCkpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT2J0aWVuZSBlbCBtb250byBkZSBkZXNjdWVudG8gcXVlIGNvcnJlc3BvbmRlIGFsIHJlc3VtZW4gZGUgbGEgb3JkZW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FydCBDYXJyaXRvIHUgb3JkZW4gY29uIGB0b3RhbHNgLlxuICAgICAqIEByZXR1cm5zIE1vbnRvIGRlIHByb21vY2lvbmVzIGRlIG9yZGVuLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGB0c1xuICAgICAqIGNvbnN0IGFtb3VudCA9IHRoaXMub3JkZXJVdGlscy5nZXRTdW1tYXJ5UHJvbW90aW9uQW1vdW50KGNhcnQpO1xuICAgICAqIGBgYFxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBTaSBlbCBiYWNrZW5kIG51ZXZvIGluZm9ybWEgYHByb21vdGlvbkJyZWFrZG93bi5vcmRlclByb21vdGlvbnNgLCBlc2UgdmFsb3IgdGllbmUgcHJpb3JpZGFkLlxuICAgICAqIENvbiBiYWNrZW5kcyB2aWVqb3MgaGFjZSBmYWxsYmFjayBhIGB0b3RhbHMucHJvbW90aW9uYCBvIGB0b3RhbHMuZGlzY291bnRgLlxuICAgICAqL1xuICAgIGdldFN1bW1hcnlQcm9tb3Rpb25BbW91bnQgPSAoY2FydDogYW55KTogbnVtYmVyID0+IHtcbiAgICAgICAgY29uc3Qgb3JkZXJEaXNjb3VudCA9IGNhcnQ/LnRvdGFscz8ub3JkZXJEaXNjb3VudCA/PyBjYXJ0Py50b3RhbHM/Lm9yZGVyX2Rpc2NvdW50O1xuICAgICAgICBpZiAob3JkZXJEaXNjb3VudCAhPT0gbnVsbCAmJiBvcmRlckRpc2NvdW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIob3JkZXJEaXNjb3VudCB8fCAwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5oYXNPcmRlclByb21vdGlvbnNCcmVha2Rvd24oY2FydCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIoXG4gICAgICAgICAgICAgICAgY2FydD8udG90YWxzPy5wcm9tb3Rpb25CcmVha2Rvd24/Lm9yZGVyUHJvbW90aW9uc1xuICAgICAgICAgICAgICAgID8/IGNhcnQ/LnRvdGFscz8ucHJvbW90aW9uX2JyZWFrZG93bj8ub3JkZXJfcHJvbW90aW9uc1xuICAgICAgICAgICAgICAgID8/IDBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE51bWJlcihjYXJ0Py50b3RhbHM/LnByb21vdGlvbiB8fCBjYXJ0Py50b3RhbHM/LmRpc2NvdW50IHx8IDApO1xuICAgIH1cblxuICAgIC8qKiBEZXNjdWVudG8gZGUgb3JkZW4gc2VwYXJhZG8gZGUgY3Vwb25lcyB5IGRlc2N1ZW50b3MgZGUgZW52w61vLiAqL1xuICAgIGdldE9yZGVyUHJvbW90aW9uQW1vdW50ID0gKGNhcnQ6IGFueSk6IG51bWJlciA9PiB7XG4gICAgICAgIGNvbnN0IGJyZWFrZG93biA9IGNhcnQ/LnRvdGFscz8ucHJvbW90aW9uQnJlYWtkb3duIHx8IGNhcnQ/LnRvdGFscz8ucHJvbW90aW9uX2JyZWFrZG93bjtcbiAgICAgICAgaWYgKGJyZWFrZG93biAmJiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGJyZWFrZG93biwgJ29yZGVyUHJvbW90aW9ucycpXG4gICAgICAgICAgICB8fCBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYnJlYWtkb3duLCAnb3JkZXJfcHJvbW90aW9ucycpKSkge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcihicmVha2Rvd24ub3JkZXJQcm9tb3Rpb25zID8/IGJyZWFrZG93bi5vcmRlcl9wcm9tb3Rpb25zID8/IDApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY2FydD8uY2FydERpc2NvdW50cykpIHtcbiAgICAgICAgICAgIHJldHVybiBjYXJ0LmNhcnREaXNjb3VudHNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGRpc2NvdW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IChkaXNjb3VudD8udHlwZSB8fCAnJykudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHlwZS5pbmNsdWRlcygnb3JkZXInKSAmJiAhdHlwZS5pbmNsdWRlcygnY291cG9uJykgJiYgIXR5cGUuaW5jbHVkZXMoJ3NoaXBwaW5nJyk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAucmVkdWNlKCh0b3RhbCwgZGlzY291bnQpID0+IHRvdGFsICsgTnVtYmVyKGRpc2NvdW50Py5hbW91bnQgfHwgMCksIDApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNhcnQ/LmNvdXBvbkNvZGUgfHwgY2FydD8uY291cG9uX2NvZGVcbiAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgOiBOdW1iZXIoY2FydD8udG90YWxzPy5vcmRlckRpc2NvdW50ID8/IGNhcnQ/LnRvdGFscz8ub3JkZXJfZGlzY291bnQgPz8gY2FydD8udG90YWxzPy5wcm9tb3Rpb24gPz8gMCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT2J0aWVuZSDDum5pY2FtZW50ZSBlbCBkZXNjdWVudG8gYXBsaWNhZG8gcG9yIGVsIGN1cMOzbi5cbiAgICAgKlxuICAgICAqIERldnVlbHZlIGBudWxsYCBjdWFuZG8gbGEgcmVzcHVlc3RhIG5vIHBlcm1pdGUgaWRlbnRpZmljYXIgc3UgaW1wb3J0ZSxcbiAgICAgKiBwYXJhIHF1ZSBlbCBmcm9udGVuZCBwdWVkYSBtb3N0cmFyIHNvbGFtZW50ZSBlbCBjw7NkaWdvLlxuICAgICAqL1xuICAgIGdldENvdXBvblByb21vdGlvbkFtb3VudCA9IChjYXJ0OiBhbnkpOiBudW1iZXIgfCBudWxsID0+IHtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNhcnQ/LmNhcnREaXNjb3VudHMpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvdXBvbkRpc2NvdW50cyA9IGNhcnQuY2FydERpc2NvdW50cy5maWx0ZXIoZGlzY291bnQgPT5cbiAgICAgICAgICAgIChkaXNjb3VudD8udHlwZSB8fCAnJykudG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdjb3Vwb24nKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmICghY291cG9uRGlzY291bnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY291cG9uRGlzY291bnRzLnJlZHVjZSgodG90YWwsIGRpc2NvdW50KSA9PiB0b3RhbCArIE51bWJlcihkaXNjb3VudD8uYW1vdW50IHx8IDApLCAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPYnRpZW5lIGVsIHN1YnRvdGFsIGNvbXBhdGlibGUgY29uIGJhY2tlbmRzIG51ZXZvcyB5IGxlZ2FjeS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjYXJ0IENhcnJpdG8gdSBvcmRlbiBjb24gYHRvdGFsc2AuXG4gICAgICogQHJldHVybnMgYHRvdGFscy5zdWJ0b3RhbGAgY3VhbmRvIGV4aXN0ZTsgZW4gYmFja2VuZHMgbGVnYWN5IHVzYSBgdG90YWxzLml0ZW1zYC5cbiAgICAgKi9cbiAgICBnZXRTdW1tYXJ5U3VidG90YWxBbW91bnQgPSAoY2FydDogYW55KTogbnVtYmVyID0+IHtcbiAgICAgICAgY29uc3QgY2FydFN1YnRvdGFsID0gY2FydD8udG90YWxzPy5jYXJ0U3VidG90YWwgPz8gY2FydD8udG90YWxzPy5jYXJ0X3N1YnRvdGFsO1xuICAgICAgICBpZiAoY2FydFN1YnRvdGFsICE9PSBudWxsICYmIGNhcnRTdWJ0b3RhbCAhPT0gdW5kZWZpbmVkICYmIGNhcnRTdWJ0b3RhbCAhPT0gJycpIHtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIoY2FydFN1YnRvdGFsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN1YnRvdGFsID0gY2FydD8udG90YWxzPy5zdWJ0b3RhbDtcbiAgICAgICAgaWYgKHN1YnRvdGFsICE9PSBudWxsICYmIHN1YnRvdGFsICE9PSB1bmRlZmluZWQgJiYgc3VidG90YWwgIT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKHN1YnRvdGFsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBOdW1iZXIoY2FydD8udG90YWxzPy5pdGVtcyB8fCAwKTtcbiAgICB9XG5cbiAgICAvKiogVG90YWwgcXVlIGRlYmUgbW9zdHJhciBlbCBjYXJyaXRvL3NpZGViYXIsIGV4Y2x1eWVuZG8gZW52w61vIHBlcnNpc3RpZG8uICovXG4gICAgZ2V0Q2FydFRvdGFsQW1vdW50ID0gKGNhcnQ6IGFueSk6IG51bWJlciA9PiB7XG4gICAgICAgIGNvbnN0IHRvdGFsV2l0aG91dFNoaXBwaW5nID0gY2FydD8udG90YWxzPy50b3RhbFdpdGhvdXRTaGlwcGluZyA/PyBjYXJ0Py50b3RhbHM/LnRvdGFsX3dpdGhvdXRfc2hpcHBpbmc7XG4gICAgICAgIGlmICh0b3RhbFdpdGhvdXRTaGlwcGluZyAhPT0gbnVsbCAmJiB0b3RhbFdpdGhvdXRTaGlwcGluZyAhPT0gdW5kZWZpbmVkICYmIHRvdGFsV2l0aG91dFNoaXBwaW5nICE9PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcih0b3RhbFdpdGhvdXRTaGlwcGluZyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gTnVtYmVyKGNhcnQ/LnRvdGFscz8udG90YWwgfHwgMCk7XG4gICAgfVxuXG4gICAgLyoqIEltcHVlc3RvcyBkZSBwcm9kdWN0b3MgcGFyYSBjYXJyaXRvL3NpZGViYXIsIGNvbiBmYWxsYmFjayBsZWdhY3kuICovXG4gICAgZ2V0Q2FydFRheGVzQW1vdW50ID0gKGNhcnQ6IGFueSk6IG51bWJlciA9PiB7XG4gICAgICAgIGNvbnN0IGNhcnRUYXhlcyA9IGNhcnQ/LnRvdGFscz8uY2FydFRheGVzID8/IGNhcnQ/LnRvdGFscz8uY2FydF90YXhlcztcbiAgICAgICAgaWYgKGNhcnRUYXhlcyAhPT0gbnVsbCAmJiBjYXJ0VGF4ZXMgIT09IHVuZGVmaW5lZCAmJiBjYXJ0VGF4ZXMgIT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gTnVtYmVyKGNhcnRUYXhlcyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gTnVtYmVyKGNhcnQ/LnRvdGFscz8udGF4ZXMgfHwgMCk7XG4gICAgfVxuXG4gICAgLyoqIEltcHVlc3RvcyBlc3BlY8OtZmljb3MgZGVsIGNsaWVudGUgcGFyYSBjYXJyaXRvL3NpZGViYXIsIGNvbiBmYWxsYmFjayBsZWdhY3kuICovXG4gICAgZ2V0Q2FydENsaWVudFRheGVzQW1vdW50ID0gKGNhcnQ6IGFueSk6IG51bWJlciA9PiB7XG4gICAgICAgIGNvbnN0IGNhcnRDbGllbnRUYXhlcyA9IGNhcnQ/LnRvdGFscz8uY2FydENsaWVudFRheGVzID8/IGNhcnQ/LnRvdGFscz8uY2FydF9jbGllbnRfdGF4ZXM7XG4gICAgICAgIGlmIChjYXJ0Q2xpZW50VGF4ZXMgIT09IG51bGwgJiYgY2FydENsaWVudFRheGVzICE9PSB1bmRlZmluZWQgJiYgY2FydENsaWVudFRheGVzICE9PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIE51bWJlcihjYXJ0Q2xpZW50VGF4ZXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIE51bWJlcihjYXJ0Py50b3RhbHM/LmNsaWVudFRheGVzIHx8IDApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluZGljYSBzaSBlbCBiYWNrZW5kIHlhIGluZm9ybWEgZWwgZGVzZ2xvc2UgbnVldm8gZGUgcHJvbW9jaW9uZXMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FydCBDYXJyaXRvIHUgb3JkZW4gY29uIGB0b3RhbHNgLlxuICAgICAqIEByZXR1cm5zIGB0cnVlYCBjdWFuZG8gZXhpc3RlIGBwcm9tb3Rpb25CcmVha2Rvd24ub3JkZXJQcm9tb3Rpb25zYC5cbiAgICAgKi9cbiAgICBoYXNPcmRlclByb21vdGlvbnNCcmVha2Rvd24gPSAoY2FydDogYW55KTogYm9vbGVhbiA9PiB7XG4gICAgICAgIGNvbnN0IGJyZWFrZG93biA9IGNhcnQ/LnRvdGFscz8ucHJvbW90aW9uQnJlYWtkb3duIHx8IGNhcnQ/LnRvdGFscz8ucHJvbW90aW9uX2JyZWFrZG93bjtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChicmVha2Rvd24gfHwge30sICdvcmRlclByb21vdGlvbnMnKVxuICAgICAgICAgICAgfHwgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGJyZWFrZG93biB8fCB7fSwgJ29yZGVyX3Byb21vdGlvbnMnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2Egc2kgZWwgY2Fycml0byB0aWVuZSB1biBjdXDDs24gYXBsaWNhZG8sIGluZGVwZW5kaWVudGVtZW50ZSBkZSBjw7NtbyBpbXBhY3RlIGVuIGVsIHJlc3VtZW4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY2FydCBDYXJyaXRvIGFjdHVhbC5cbiAgICAgKiBAcmV0dXJucyBgdHJ1ZWAgY3VhbmRvIGhheSB1biBjw7NkaWdvIGRlIGN1cMOzbiBvIHVuYSBsw61uZWEgZGUgZGVzY3VlbnRvIGRlIHRpcG8gY3Vww7NuLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBFc3RlIGhlbHBlciBldml0YSBhdGFyIGxhIFVJIGRlIGBRdWl0YXIgY3Vww7NuYCBhbCBtb250byBkZSBkZXNjdWVudG9zIGRlIG9yZGVuLlxuICAgICAqIFVuIGN1cMOzbiBwdWVkZSBhZmVjdGFyIHByb21vY2lvbmVzIHVuaXRhcmlhcyB5IGRlamFyIGBvcmRlclByb21vdGlvbnMgPSAwYC5cbiAgICAgKi9cbiAgICBoYXNBcHBsaWVkQ291cG9uID0gKGNhcnQ6IGFueSk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBpZiAoQm9vbGVhbihjYXJ0Py5jb3Vwb25Db2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjYXJ0Py5jYXJ0RGlzY291bnRzKVxuICAgICAgICAgICAgJiYgY2FydC5jYXJ0RGlzY291bnRzLnNvbWUoZGlzY291bnQgPT4gKGRpc2NvdW50Py50eXBlIHx8ICcnKS50b1N0cmluZygpLmluY2x1ZGVzKCdjb3Vwb24nKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5kaWNhIHNpIGVsIGNhcnJpdG8gdGllbmUgdW5hIHByb21vY2nDs24gYXNvY2lhZGEgYWwgZW52w61vLlxuICAgICAqXG4gICAgICogQHBhcmFtIGNhcnQgQ2Fycml0byBhY3R1YWwuXG4gICAgICogQHJldHVybnMgYHRydWVgIGN1YW5kbyBhbGd1bmEgbMOtbmVhIGRlIGRlc2N1ZW50byBjb3JyZXNwb25kZSBhIHNoaXBwaW5nLlxuICAgICAqL1xuICAgIGhhc1NoaXBwaW5nUHJvbW90aW9uID0gKGNhcnQ6IGFueSk6IGJvb2xlYW4gPT5cbiAgICAgICAgQXJyYXkuaXNBcnJheShjYXJ0Py5jYXJ0RGlzY291bnRzKVxuICAgICAgICAgICAgJiYgY2FydC5jYXJ0RGlzY291bnRzLnNvbWUoZGlzY291bnQgPT4gdGhpcy5mb3JtYXRUeXBlKChkaXNjb3VudD8udHlwZSB8fCAnJykudG9TdHJpbmcoKSkgPT09ICdzaGlwbWVudCcpO1xuXG4gICAgLyoqXG4gICAgICogRGV2dWVsdmUgZWwgbW9udG8gZWZlY3Rpdm8gZGUgdW5hIGzDrW5lYSBkZSBkZXNjdWVudG8vcHJvbW9jacOzbi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBkaXNjb3VudCBMw61uZWEgY3J1ZGEgZGUgZGVzY3VlbnRvIGRlbCBiYWNrZW5kLlxuICAgICAqIEBwYXJhbSBjYXJ0IENhcnJpdG8gYXNvY2lhZG8uXG4gICAgICogQHJldHVybnMgTW9udG8gcXVlIGRlYmUgbW9zdHJhcnNlIGVuIFVJLlxuICAgICAqL1xuICAgIGdldEFtb3VudCA9IChkaXNjb3VudCwgY2FydCk6IG51bWJlciA9PiB7XG4gICAgICAgIGlmIChkaXNjb3VudC50eXBlICE9ICdzaGlwbWVudCcpIHJldHVybiBkaXNjb3VudC5hbW91bnQ7XG4gICAgICAgIHJldHVybiBjYXJ0LnRvdGFscy5zaGlwcGluZztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIb21vbG9nYSB0aXBvcyBjcnVkb3MgZGVsIGJhY2tlbmQgYWwgY29uanVudG8gZGUgdGlwb3MgdXNhZG8gcG9yIGNoZWNrb3V0LlxuICAgICAqXG4gICAgICogQHBhcmFtIHR5cGUgVGlwbyBjcnVkbyAoYG9yZGVyX3Byb21vdGlvbmAsIGBvcmRlcl9jb3Vwb25fcHJvbW90aW9uYCwgZXRjLikuXG4gICAgICogQHJldHVybnMgVGlwbyBub3JtYWxpemFkbyBjb25zdW1pZG8gcG9yIGxvcyBjb21wb25lbnRlcyBkZWwgY29yZS5cbiAgICAgKi9cbiAgICBmb3JtYXRUeXBlID0gKHR5cGU6IHN0cmluZyk6IENoZWNrb3V0RGF0YVR5cGUgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ29yZGVyX3Byb21vdGlvbic6IHJlc3VsdCA9ICdkaXNjb3VudCc7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnb3JkZXJfc2hpcHBpbmdfcHJvbW90aW9uJzogcmVzdWx0ID0gJ3NoaXBtZW50JzsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdvcmRlcl9jb3Vwb25fcHJvbW90aW9uJzogcmVzdWx0ID0gJ2NvdXBvbic7IGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnb3JkZXJfdW5pdF9wcm9tb3Rpb24nOiByZXN1bHQgPSAnZGlzY291bnQnOyBicmVhaztcbiAgICAgICAgfVxuICAgICAgICAhcmVzdWx0ICYmIChyZXN1bHQgPSB0eXBlLmluY2x1ZGVzKCdwcm9tb3Rpb24nKSB8fCB0eXBlLmluY2x1ZGVzKCdkaXNjb3VudCcpID8gJ2Rpc2NvdW50JyA6IHR5cGUgKVxuICAgICAgICByZXR1cm4gcmVzdWx0IHx8IHR5cGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBub3JtYWxpemVBbW91bnQgPSAodmFsdWU6IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBudW1iZXIgfCBudWxsID0+IHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKG5vcm1hbGl6ZWQpID8gbm9ybWFsaXplZCA6IG51bGw7XG4gICAgfVxufVxuIl19
@@ -6,7 +6,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { Injectable } from '@angular/core';
8
8
  import * as i0 from "@angular/core";
9
- import * as i1 from "../../public-api";
10
9
  var PricePresentationService = /** @class */ (function () {
11
10
  function PricePresentationService() {
12
11
  }
@@ -120,11 +119,11 @@ var PricePresentationService = /** @class */ (function () {
120
119
  && this.isValue(value.discount)
121
120
  && this.isValue(value.subtotal);
122
121
  };
123
- PricePresentationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PricePresentationService_Factory() { return new i1.PricePresentationService(); }, token: i1.PricePresentationService, providedIn: "root" });
122
+ PricePresentationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PricePresentationService_Factory() { return new PricePresentationService(); }, token: PricePresentationService, providedIn: "root" });
124
123
  PricePresentationService = __decorate([
125
124
  Injectable({ providedIn: 'root' })
126
125
  ], PricePresentationService);
127
126
  return PricePresentationService;
128
127
  }());
129
128
  export { PricePresentationService };
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtcHJlc2VudGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvcHJpY2UtcHJlc2VudGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBOEMzQztJQUFBO0tBb0lDO0lBbklHLHFFQUFxRTtJQUNyRSw4REFBMkIsR0FBM0IsVUFDSSxPQUE2QixFQUM3QixPQUF1QjtRQUV2QixJQUFNLE9BQU8sR0FBRyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUUzQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNqQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzdDO1FBRUQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsK0RBQTRCLEdBQTVCLFVBQ0ksSUFBb0IsRUFDcEIsT0FBdUIsRUFDdkIsYUFBK0I7O1FBRS9CLElBQU0sV0FBVyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRTdDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3JDLElBQU0sU0FBUyxHQUFHLE9BQUEsT0FBTywwQ0FBRSwrQkFBK0IsTUFBSyxJQUFJLENBQUM7WUFDcEUsSUFBTSxHQUFHLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUN4QyxJQUFNLE9BQU8scUJBQUcsSUFBSSwwQ0FBRSxPQUFPLDBDQUFFLFFBQVEsMENBQUcsQ0FBQyxDQUFDLENBQUM7WUFDN0MsSUFBTSxjQUFjLEdBQUcsT0FBTyxJQUFJ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SXBDO21DQWxMRDtDQWtMQyxBQXBJRCxJQW9JQztTQXBJWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDaGFubmVsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jaGFubmVsJztcbmltcG9ydCB7IFByb2R1Y3RWYXJpYW50LCBQcm9kdWN0VmFyaWFudFByaWNpbmcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3Byb2R1Y3QnO1xuaW1wb3J0IHsgQ2FydEl0ZW0sIENhcnRJdGVtUHJpY2luZywgQ2FydExpbmVQcmljaW5nIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jYXJ0LWl0ZW0nO1xuXG5leHBvcnQgdHlwZSBQcmljZVByZXNlbnRhdGlvblZhbHVlID0gbnVtYmVyIHwgc3RyaW5nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlUHJlc2VudGF0aW9uIHtcbiAgICBwcmltYXJ5OiBQcmljZVByZXNlbnRhdGlvblZhbHVlO1xuICAgIHByZXZpb3VzOiBQcmljZVByZXNlbnRhdGlvblZhbHVlIHwgbnVsbDtcbiAgICBzZWNvbmRhcnk6IG51bWJlciB8IG51bGw7XG4gICAgaGFzVGF4OiBib29sZWFuO1xuICAgIHRheDogbnVtYmVyO1xuICAgIHRheFJhdGU6IG51bWJlciB8IG51bGw7XG4gICAgaW5jbHVkZWRJblByaWNlOiBib29sZWFuIHwgbnVsbDtcbiAgICBzb3VyY2U6ICdwcmljaW5nJyB8ICdsZWdhY3knO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhcnRJdGVtUHJpY2VQcmVzZW50YXRpb24ge1xuICAgIHVuaXRQcmljZTogbnVtYmVyO1xuICAgIGRpc2NvdW50OiBudW1iZXI7XG4gICAgc3VidG90YWw6IG51bWJlcjtcbiAgICBwcmV2aW91czogbnVtYmVyIHwgbnVsbDtcbiAgICBzZWNvbmRhcnk6IG51bWJlciB8IG51bGw7XG4gICAgaGFzVGF4OiBib29sZWFuO1xuICAgIHRheDogbnVtYmVyO1xuICAgIHRheFJhdGU6IG51bWJlciB8IG51bGw7XG4gICAgaW5jbHVkZWRJblByaWNlOiBib29sZWFuIHwgbnVsbDtcbiAgICBzb3VyY2U6ICdsaW5lUHJpY2luZycgfCAnbGVnYWN5Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXJ0U3VtbWFyeVByaWNlUHJlc2VudGF0aW9uIHtcbiAgICBwcm9kdWN0c0JlZm9yZURpc2NvdW50czogbnVtYmVyO1xuICAgIGxpbmVEaXNjb3VudHM6IG51bWJlcjtcbiAgICBzdWJ0b3RhbDogbnVtYmVyO1xuICAgIG9yZGVyRGlzY291bnQ6IG51bWJlcjtcbiAgICBjb3Vwb25EaXNjb3VudDogbnVtYmVyIHwgbnVsbDtcbiAgICB0YXhlczogbnVtYmVyO1xuICAgIGNsaWVudFRheGVzOiBudW1iZXI7XG4gICAgc2hpcHBpbmc6IG51bWJlciB8IG51bGw7XG4gICAgdG90YWw6IG51bWJlcjtcbiAgICB0YXhlc0luY2x1ZGVkSW5Ub3RhbDogYm9vbGVhbjtcbiAgICBzb3VyY2U6ICdsaW5lUHJpY2luZycgfCAnbGVnYWN5Jztcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQcmljZVByZXNlbnRhdGlvblNlcnZpY2Uge1xuICAgIC8qKiBSZXN1ZWx2ZSDDum5pY2FtZW50ZSBxdcOpIHZhbG9yIHByZXNlbnRhcjsgbm8gY2FsY3VsYSBpbXB1ZXN0b3MuICovXG4gICAgZ2V0UHJvZHVjdFByaWNlUHJlc2VudGF0aW9uKFxuICAgICAgICB2YXJpYW50OiBQcm9kdWN0VmFyaWFudCB8IGFueSxcbiAgICAgICAgY2hhbm5lbD86IENoYW5uZWwgfCBhbnlcbiAgICApOiBQcmljZVByZXNlbnRhdGlvbiB7XG4gICAgICAgIGNvbnN0IHByaWNpbmcgPSB2YXJpYW50ICYmIHZhcmlhbnQucHJpY2luZztcblxuICAgICAgICBpZiAodGhpcy5pc1ByaWNpbmdDb250cmFjdChwcmljaW5nKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZnJvbVByaWNpbmcocHJpY2luZywgY2hhbm5lbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5mcm9tTGVnYWN5KHZhcmlhbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlc3VlbHZlIGxvcyBpbXBvcnRlcyB2aXNpYmxlcyBkZSB1bmEgbMOtbmVhIHNpbiBjb252ZXJ0aXIgbmkgcmVjYWxjdWxhclxuICAgICAqIHZhbG9yZXMgZmlzY2FsZXMuIGBsZWdhY3lQcmljaW5nYCBkZWJlIHNlciBlbCByZXN1bHRhZG8geWEgbm9ybWFsaXphZG9cbiAgICAgKiBwb3IgQ2FydFNlcnZpY2UgcGFyYSBjb25zZXJ2YXIgZXhhY3RhbWVudGUgZWwgZmFsbGJhY2sgaGlzdMOzcmljby5cbiAgICAgKi9cbiAgICBnZXRDYXJ0SXRlbVByaWNlUHJlc2VudGF0aW9uKFxuICAgICAgICBpdGVtOiBDYXJ0SXRlbSB8IGFueSxcbiAgICAgICAgY2hhbm5lbD86IENoYW5uZWwgfCBhbnksXG4gICAgICAgIGxlZ2FjeVByaWNpbmc/OiBDYXJ0SXRlbVByaWNpbmdcbiAgICApOiBDYXJ0SXRlbVByaWNlUHJlc2VudGF0aW9uIHtcbiAgICAgICAgY29uc3QgbGluZVByaWNpbmcgPSBpdGVtICYmIGl0ZW0ubGluZVByaWNpbmc7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNDYXJ0TGluZVByaWNpbmcobGluZVByaWNpbmcpKSB7XG4gICAgICAgICAgICBjb25zdCBzaG93R3Jvc3MgPSBjaGFubmVsPy5zaG93UHJpY2VXaXRoVGF4ZXNXaGlsZUJyb3dzaW5nID09PSB0cnVlO1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gc2hvd0dyb3NzID8gJ2dyb3NzJyA6ICduZXQnO1xuICAgICAgICAgICAgY29uc3QgdmFyaWFudCA9IGl0ZW0/LnByb2R1Y3Q/LnZhcmlhbnRzPy5bMF07XG4gICAgICAgICAgICBjb25zdCB2YXJpYW50UHJpY2luZyA9IHZhcmlhbnQgJiYgdmFyaWFudC5wcmljaW5nO1xuICAgICAgICAgICAgY29uc3QgcHJvZHVjdFByZXNlbnRhdGlvbiA9IHRoaXMuaXNQcmljaW5nQ29udHJhY3QodmFyaWFudFByaWNpbmcpXG4gICAgICAgICAgICAgICAgPyB0aGlzLmZyb21QcmljaW5nKHZhcmlhbnRQcmljaW5nLCBjaGFubmVsKVxuICAgICAgICAgICAgICAgIDogbnVsbDtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB1bml0UHJpY2U6IGxpbmVQcmljaW5nLnVuaXRba2V5XSxcbiAgICAgICAgICAgICAgICBkaXNjb3VudDogbGluZVByaWNpbmcuZGlzY291bnRba2V5XSxcbiAgICAgICAgICAgICAgICBzdWJ0b3RhbDogbGluZVByaWNpbmcuc3VidG90YWxba2V5XSxcbiAgICAgICAgICAgICAgICBwcmV2aW91czogcHJvZHVjdFByZXNlbnRhdGlvbiA/IHByb2R1Y3RQcmVzZW50YXRpb24ucHJldmlvdXMgYXMgbnVtYmVyIHwgbnVsbCA6IG51bGwsXG4gICAgICAgICAgICAgICAgc2Vjb25kYXJ5OiBwcm9kdWN0UHJlc2VudGF0aW9uID8gcHJvZHVjdFByZXNlbnRhdGlvbi5zZWNvbmRhcnkgOiBudWxsLFxuICAgICAgICAgICAgICAgIGhhc1RheDogcHJvZHVjdFByZXNlbnRhdGlvbiA/IHByb2R1Y3RQcmVzZW50YXRpb24uaGFzVGF4IDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdGF4OiBsaW5lUHJpY2luZy5zdWJ0b3RhbC50YXgsXG4gICAgICAgICAgICAgICAgdGF4UmF0ZTogcHJvZHVjdFByZXNlbnRhdGlvbiA/IHByb2R1Y3RQcmVzZW50YXRpb24udGF4UmF0ZSA6IG51bGwsXG4gICAgICAgICAgICAgICAgaW5jbHVkZWRJblByaWNlOiBwcm9kdWN0UHJlc2VudGF0aW9uID8gcHJvZHVjdFByZXNlbnRhdGlvbi5pbmNsdWRlZEluUHJpY2UgOiBudWxsLFxuICAgICAgICAgICAgICAgIHNvdXJjZTogJ2xpbmVQcmljaW5nJ1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByaWNpbmcgPSBsZWdhY3lQcmljaW5nIHx8IGl0ZW0/LnByaWNpbmc7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB1bml0UHJpY2U6IE51bWJlcihwcmljaW5nPy5maW5hbFByaWNlIHx8IDApLFxuICAgICAgICAgICAgZGlzY291bnQ6IE51bWJlcihwcmljaW5nPy51bml0UHJvbW90aW9uVG90YWwgfHwgMCksXG4gICAgICAgICAgICBzdWJ0b3RhbDogTnVtYmVyKGl0ZW0/LnN1YnRvdGFsID8/IGl0ZW0/LnRvdGFsID8/IDApLFxuICAgICAgICAgICAgcHJldmlvdXM6IHByaWNpbmc/LnN0cmlrZVByaWNlICE9IG51bGwgPyBOdW1iZXIocHJpY2luZy5zdHJpa2VQcmljZSkgOiBudWxsLFxuICAgICAgICAgICAgc2Vjb25kYXJ5OiBudWxsLFxuICAgICAgICAgICAgaGFzVGF4OiBmYWxzZSxcbiAgICAgICAgICAgIHRheDogMCxcbiAgICAgICAgICAgIHRheFJhdGU6IG51bGwsXG4gICAgICAgICAgICBpbmNsdWRlZEluUHJpY2U6IG51bGwsXG4gICAgICAgICAgICBzb3VyY2U6ICdsZWdhY3knXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmcm9tUHJpY2luZyhwcmljaW5nOiBQcm9kdWN0VmFyaWFudFByaWNpbmcsIGNoYW5uZWw/OiBDaGFubmVsIHwgYW55KTogUHJpY2VQcmVzZW50YXRpb24ge1xuICAgICAgICBjb25zdCBzaG93R3Jvc3MgPSBjaGFubmVsPy5zaG93UHJpY2VXaXRoVGF4ZXNXaGlsZUJyb3dzaW5nID09PSB0cnVlO1xuICAgICAgICBjb25zdCBoYXNUYXggPSBwcmljaW5nLnRheC5oYXNUYXggPT09IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByaW1hcnk6IHNob3dHcm9zcyA/IHByaWNpbmcuY3VycmVudC5ncm9zcyA6IHByaWNpbmcuY3VycmVudC5uZXQsXG4gICAgICAgICAgICBwcmV2aW91czogcHJpY2luZy5wcmV2aW91c1xuICAgICAgICAgICAgICAgID8gKHNob3dHcm9zcyA/IHByaWNpbmcucHJldmlvdXMuZ3Jvc3MgOiBwcmljaW5nLnByZXZpb3VzLm5ldClcbiAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICBzZWNvbmRhcnk6IHNob3dHcm9zcyAmJiBjaGFubmVsPy5zaG93VGF4TGVnZW5kID09PSB0cnVlICYmIGhhc1RheFxuICAgICAgICAgICAgICAgID8gcHJpY2luZy5jdXJyZW50Lm5ldFxuICAgICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICAgIGhhc1RheCxcbiAgICAgICAgICAgIHRheDogcHJpY2luZy5jdXJyZW50LnRheCxcbiAgICAgICAgICAgIHRheFJhdGU6IHByaWNpbmcudGF4LnJhdGUsXG4gICAgICAgICAgICBpbmNsdWRlZEluUHJpY2U6IHByaWNpbmcudGF4LmluY2x1ZGVkSW5QcmljZSxcbiAgICAgICAgICAgIHNvdXJjZTogJ3ByaWNpbmcnXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmcm9tTGVnYWN5KHZhcmlhbnQ6IFByb2R1Y3RWYXJpYW50IHwgYW55KTogUHJpY2VQcmVzZW50YXRpb24ge1xuICAgICAgICBjb25zdCBjdXJyZW50ID0gdmFyaWFudCAmJiAodmFyaWFudC5zYWxlcHJpY2UgfHwgdmFyaWFudC5wcmljZSk7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsID0gdmFyaWFudCAmJiB2YXJpYW50LnByaWNlO1xuICAgICAgICBjb25zdCBoYXNQcmV2aW91cyA9IGN1cnJlbnQgIT0gbnVsbCAmJiBvcmlnaW5hbCAhPSBudWxsICYmIGN1cnJlbnQgIT09IG9yaWdpbmFsO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcmltYXJ5OiB0aGlzLmxlZ2FjeVZhbHVlKGN1cnJlbnQpLFxuICAgICAgICAgICAgcHJldmlvdXM6IGhhc1ByZXZpb3VzID8gdGhpcy5sZWdhY3lWYWx1ZShvcmlnaW5hbCkgOiBudWxsLFxuICAgICAgICAgICAgc2Vjb25kYXJ5OiBudWxsLFxuICAgICAgICAgICAgaGFzVGF4OiBmYWxzZSxcbiAgICAgICAgICAgIHRheDogMCxcbiAgICAgICAgICAgIHRheFJhdGU6IG51bGwsXG4gICAgICAgICAgICBpbmNsdWRlZEluUHJpY2U6IG51bGwsXG4gICAgICAgICAgICBzb3VyY2U6ICdsZWdhY3knXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsZWdhY3lWYWx1ZSh2YWx1ZTogYW55KTogUHJpY2VQcmVzZW50YXRpb25WYWx1ZSB7XG4gICAgICAgIHJldHVybiB2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09PSAnJyA/IDAgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzUHJpY2luZ0NvbnRyYWN0KHByaWNpbmc6IGFueSk6IHByaWNpbmcgaXMgUHJvZHVjdFZhcmlhbnRQcmljaW5nIHtcbiAgICAgICAgcmV0dXJuICEhcHJpY2luZ1xuICAgICAgICAgICAgJiYgdGhpcy5pc1ZhbHVlKHByaWNpbmcuY3VycmVudClcbiAgICAgICAgICAgICYmICEhcHJpY2luZy50YXhcbiAgICAgICAgICAgICYmIHR5cGVvZiBwcmljaW5nLnRheC5oYXNUYXggPT09ICdib29sZWFuJ1xuICAgICAgICAgICAgJiYgKHByaWNpbmcucHJldmlvdXMgPT09IG51bGwgfHwgcHJpY2luZy5wcmV2aW91cyA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuaXNWYWx1ZShwcmljaW5nLnByZXZpb3VzKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc1ZhbHVlKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdmFsdWVcbiAgICAgICAgICAgICYmIHRoaXMuaXNGaW5pdGVOdW1iZXIodmFsdWUubmV0KVxuICAgICAgICAgICAgJiYgdGhpcy5pc0Zpbml0ZU51bWJlcih2YWx1ZS50YXgpXG4gICAgICAgICAgICAmJiB0aGlzLmlzRmluaXRlTnVtYmVyKHZhbHVlLmdyb3NzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzRmluaXRlTnVtYmVyKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBudW1iZXIge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBpc0Zpbml0ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0NhcnRMaW5lUHJpY2luZyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQ2FydExpbmVQcmljaW5nIHtcbiAgICAgICAgcmV0dXJuICEhdmFsdWVcbiAgICAgICAgICAgICYmIHRoaXMuaXNWYWx1ZSh2YWx1ZS51bml0KVxuICAgICAgICAgICAgJiYgdGhpcy5pc1ZhbHVlKHZhbHVlLmRpc2NvdW50KVxuICAgICAgICAgICAgJiYgdGhpcy5pc1ZhbHVlKHZhbHVlLnN1YnRvdGFsKTtcbiAgICB9XG5cbn1cbiJdfQ==
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtcHJlc2VudGF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1lYXN5Y29tbWVyY2UvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvcHJpY2UtcHJlc2VudGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUE4QzNDO0lBQUE7S0FvSUM7SUFuSUcscUVBQXFFO0lBQ3JFLDhEQUEyQixHQUEzQixVQUNJLE9BQTZCLEVBQzdCLE9BQXVCO1FBRXZCLElBQU0sT0FBTyxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDO1FBRTNDLElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2pDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDN0M7UUFFRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCwrREFBNEIsR0FBNUIsVUFDSSxJQUFvQixFQUNwQixPQUF1QixFQUN2QixhQUErQjs7UUFFL0IsSUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFN0MsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDckMsSUFBTSxTQUFTLEdBQUcsT0FBQSxPQUFPLDBDQUFFLCtCQUErQixNQUFLLElBQUksQ0FBQztZQUNwRSxJQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3hDLElBQU0sT0FBTyxxQkFBRyxJQUFJLDBDQUFFLE9BQU8sMENBQUUsUUFBUSwwQ0FBRyxDQUFDLENBQUMsQ0FBQztZQUM3QyxJQUFNLGNBQWMsR0FBRyxPQUFPLElBQUks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cEM7bUNBbExEO0NBa0xDLEFBcElELElBb0lDO1NBcElZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENoYW5uZWwgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NoYW5uZWwnO1xuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnQsIFByb2R1Y3RWYXJpYW50UHJpY2luZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvcHJvZHVjdCc7XG5pbXBvcnQgeyBDYXJ0SXRlbSwgQ2FydEl0ZW1QcmljaW5nLCBDYXJ0TGluZVByaWNpbmcgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NhcnQtaXRlbSc7XG5cbmV4cG9ydCB0eXBlIFByaWNlUHJlc2VudGF0aW9uVmFsdWUgPSBudW1iZXIgfCBzdHJpbmc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2VQcmVzZW50YXRpb24ge1xuICAgIHByaW1hcnk6IFByaWNlUHJlc2VudGF0aW9uVmFsdWU7XG4gICAgcHJldmlvdXM6IFByaWNlUHJlc2VudGF0aW9uVmFsdWUgfCBudWxsO1xuICAgIHNlY29uZGFyeTogbnVtYmVyIHwgbnVsbDtcbiAgICBoYXNUYXg6IGJvb2xlYW47XG4gICAgdGF4OiBudW1iZXI7XG4gICAgdGF4UmF0ZTogbnVtYmVyIHwgbnVsbDtcbiAgICBpbmNsdWRlZEluUHJpY2U6IGJvb2xlYW4gfCBudWxsO1xuICAgIHNvdXJjZTogJ3ByaWNpbmcnIHwgJ2xlZ2FjeSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FydEl0ZW1QcmljZVByZXNlbnRhdGlvbiB7XG4gICAgdW5pdFByaWNlOiBudW1iZXI7XG4gICAgZGlzY291bnQ6IG51bWJlcjtcbiAgICBzdWJ0b3RhbDogbnVtYmVyO1xuICAgIHByZXZpb3VzOiBudW1iZXIgfCBudWxsO1xuICAgIHNlY29uZGFyeTogbnVtYmVyIHwgbnVsbDtcbiAgICBoYXNUYXg6IGJvb2xlYW47XG4gICAgdGF4OiBudW1iZXI7XG4gICAgdGF4UmF0ZTogbnVtYmVyIHwgbnVsbDtcbiAgICBpbmNsdWRlZEluUHJpY2U6IGJvb2xlYW4gfCBudWxsO1xuICAgIHNvdXJjZTogJ2xpbmVQcmljaW5nJyB8ICdsZWdhY3knO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhcnRTdW1tYXJ5UHJpY2VQcmVzZW50YXRpb24ge1xuICAgIHByb2R1Y3RzQmVmb3JlRGlzY291bnRzOiBudW1iZXI7XG4gICAgbGluZURpc2NvdW50czogbnVtYmVyO1xuICAgIHN1YnRvdGFsOiBudW1iZXI7XG4gICAgb3JkZXJEaXNjb3VudDogbnVtYmVyO1xuICAgIGNvdXBvbkRpc2NvdW50OiBudW1iZXIgfCBudWxsO1xuICAgIHRheGVzOiBudW1iZXI7XG4gICAgY2xpZW50VGF4ZXM6IG51bWJlcjtcbiAgICBzaGlwcGluZzogbnVtYmVyIHwgbnVsbDtcbiAgICB0b3RhbDogbnVtYmVyO1xuICAgIHRheGVzSW5jbHVkZWRJblRvdGFsOiBib29sZWFuO1xuICAgIHNvdXJjZTogJ2xpbmVQcmljaW5nJyB8ICdsZWdhY3knO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFByaWNlUHJlc2VudGF0aW9uU2VydmljZSB7XG4gICAgLyoqIFJlc3VlbHZlIMO6bmljYW1lbnRlIHF1w6kgdmFsb3IgcHJlc2VudGFyOyBubyBjYWxjdWxhIGltcHVlc3Rvcy4gKi9cbiAgICBnZXRQcm9kdWN0UHJpY2VQcmVzZW50YXRpb24oXG4gICAgICAgIHZhcmlhbnQ6IFByb2R1Y3RWYXJpYW50IHwgYW55LFxuICAgICAgICBjaGFubmVsPzogQ2hhbm5lbCB8IGFueVxuICAgICk6IFByaWNlUHJlc2VudGF0aW9uIHtcbiAgICAgICAgY29uc3QgcHJpY2luZyA9IHZhcmlhbnQgJiYgdmFyaWFudC5wcmljaW5nO1xuXG4gICAgICAgIGlmICh0aGlzLmlzUHJpY2luZ0NvbnRyYWN0KHByaWNpbmcpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mcm9tUHJpY2luZyhwcmljaW5nLCBjaGFubmVsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmZyb21MZWdhY3kodmFyaWFudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzdWVsdmUgbG9zIGltcG9ydGVzIHZpc2libGVzIGRlIHVuYSBsw61uZWEgc2luIGNvbnZlcnRpciBuaSByZWNhbGN1bGFyXG4gICAgICogdmFsb3JlcyBmaXNjYWxlcy4gYGxlZ2FjeVByaWNpbmdgIGRlYmUgc2VyIGVsIHJlc3VsdGFkbyB5YSBub3JtYWxpemFkb1xuICAgICAqIHBvciBDYXJ0U2VydmljZSBwYXJhIGNvbnNlcnZhciBleGFjdGFtZW50ZSBlbCBmYWxsYmFjayBoaXN0w7NyaWNvLlxuICAgICAqL1xuICAgIGdldENhcnRJdGVtUHJpY2VQcmVzZW50YXRpb24oXG4gICAgICAgIGl0ZW06IENhcnRJdGVtIHwgYW55LFxuICAgICAgICBjaGFubmVsPzogQ2hhbm5lbCB8IGFueSxcbiAgICAgICAgbGVnYWN5UHJpY2luZz86IENhcnRJdGVtUHJpY2luZ1xuICAgICk6IENhcnRJdGVtUHJpY2VQcmVzZW50YXRpb24ge1xuICAgICAgICBjb25zdCBsaW5lUHJpY2luZyA9IGl0ZW0gJiYgaXRlbS5saW5lUHJpY2luZztcblxuICAgICAgICBpZiAodGhpcy5pc0NhcnRMaW5lUHJpY2luZyhsaW5lUHJpY2luZykpIHtcbiAgICAgICAgICAgIGNvbnN0IHNob3dHcm9zcyA9IGNoYW5uZWw/LnNob3dQcmljZVdpdGhUYXhlc1doaWxlQnJvd3NpbmcgPT09IHRydWU7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBzaG93R3Jvc3MgPyAnZ3Jvc3MnIDogJ25ldCc7XG4gICAgICAgICAgICBjb25zdCB2YXJpYW50ID0gaXRlbT8ucHJvZHVjdD8udmFyaWFudHM/LlswXTtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnRQcmljaW5nID0gdmFyaWFudCAmJiB2YXJpYW50LnByaWNpbmc7XG4gICAgICAgICAgICBjb25zdCBwcm9kdWN0UHJlc2VudGF0aW9uID0gdGhpcy5pc1ByaWNpbmdDb250cmFjdCh2YXJpYW50UHJpY2luZylcbiAgICAgICAgICAgICAgICA/IHRoaXMuZnJvbVByaWNpbmcodmFyaWFudFByaWNpbmcsIGNoYW5uZWwpXG4gICAgICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHVuaXRQcmljZTogbGluZVByaWNpbmcudW5pdFtrZXldLFxuICAgICAgICAgICAgICAgIGRpc2NvdW50OiBsaW5lUHJpY2luZy5kaXNjb3VudFtrZXldLFxuICAgICAgICAgICAgICAgIHN1YnRvdGFsOiBsaW5lUHJpY2luZy5zdWJ0b3RhbFtrZXldLFxuICAgICAgICAgICAgICAgIHByZXZpb3VzOiBwcm9kdWN0UHJlc2VudGF0aW9uID8gcHJvZHVjdFByZXNlbnRhdGlvbi5wcmV2aW91cyBhcyBudW1iZXIgfCBudWxsIDogbnVsbCxcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnk6IHByb2R1Y3RQcmVzZW50YXRpb24gPyBwcm9kdWN0UHJlc2VudGF0aW9uLnNlY29uZGFyeSA6IG51bGwsXG4gICAgICAgICAgICAgICAgaGFzVGF4OiBwcm9kdWN0UHJlc2VudGF0aW9uID8gcHJvZHVjdFByZXNlbnRhdGlvbi5oYXNUYXggOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB0YXg6IGxpbmVQcmljaW5nLnN1YnRvdGFsLnRheCxcbiAgICAgICAgICAgICAgICB0YXhSYXRlOiBwcm9kdWN0UHJlc2VudGF0aW9uID8gcHJvZHVjdFByZXNlbnRhdGlvbi50YXhSYXRlIDogbnVsbCxcbiAgICAgICAgICAgICAgICBpbmNsdWRlZEluUHJpY2U6IHByb2R1Y3RQcmVzZW50YXRpb24gPyBwcm9kdWN0UHJlc2VudGF0aW9uLmluY2x1ZGVkSW5QcmljZSA6IG51bGwsXG4gICAgICAgICAgICAgICAgc291cmNlOiAnbGluZVByaWNpbmcnXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcHJpY2luZyA9IGxlZ2FjeVByaWNpbmcgfHwgaXRlbT8ucHJpY2luZztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHVuaXRQcmljZTogTnVtYmVyKHByaWNpbmc/LmZpbmFsUHJpY2UgfHwgMCksXG4gICAgICAgICAgICBkaXNjb3VudDogTnVtYmVyKHByaWNpbmc/LnVuaXRQcm9tb3Rpb25Ub3RhbCB8fCAwKSxcbiAgICAgICAgICAgIHN1YnRvdGFsOiBOdW1iZXIoaXRlbT8uc3VidG90YWwgPz8gaXRlbT8udG90YWwgPz8gMCksXG4gICAgICAgICAgICBwcmV2aW91czogcHJpY2luZz8uc3RyaWtlUHJpY2UgIT0gbnVsbCA/IE51bWJlcihwcmljaW5nLnN0cmlrZVByaWNlKSA6IG51bGwsXG4gICAgICAgICAgICBzZWNvbmRhcnk6IG51bGwsXG4gICAgICAgICAgICBoYXNUYXg6IGZhbHNlLFxuICAgICAgICAgICAgdGF4OiAwLFxuICAgICAgICAgICAgdGF4UmF0ZTogbnVsbCxcbiAgICAgICAgICAgIGluY2x1ZGVkSW5QcmljZTogbnVsbCxcbiAgICAgICAgICAgIHNvdXJjZTogJ2xlZ2FjeSdcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZyb21QcmljaW5nKHByaWNpbmc6IFByb2R1Y3RWYXJpYW50UHJpY2luZywgY2hhbm5lbD86IENoYW5uZWwgfCBhbnkpOiBQcmljZVByZXNlbnRhdGlvbiB7XG4gICAgICAgIGNvbnN0IHNob3dHcm9zcyA9IGNoYW5uZWw/LnNob3dQcmljZVdpdGhUYXhlc1doaWxlQnJvd3NpbmcgPT09IHRydWU7XG4gICAgICAgIGNvbnN0IGhhc1RheCA9IHByaWNpbmcudGF4Lmhhc1RheCA9PT0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJpbWFyeTogc2hvd0dyb3NzID8gcHJpY2luZy5jdXJyZW50Lmdyb3NzIDogcHJpY2luZy5jdXJyZW50Lm5ldCxcbiAgICAgICAgICAgIHByZXZpb3VzOiBwcmljaW5nLnByZXZpb3VzXG4gICAgICAgICAgICAgICAgPyAoc2hvd0dyb3NzID8gcHJpY2luZy5wcmV2aW91cy5ncm9zcyA6IHByaWNpbmcucHJldmlvdXMubmV0KVxuICAgICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICAgIHNlY29uZGFyeTogc2hvd0dyb3NzICYmIGNoYW5uZWw/LnNob3dUYXhMZWdlbmQgPT09IHRydWUgJiYgaGFzVGF4XG4gICAgICAgICAgICAgICAgPyBwcmljaW5nLmN1cnJlbnQubmV0XG4gICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgaGFzVGF4LFxuICAgICAgICAgICAgdGF4OiBwcmljaW5nLmN1cnJlbnQudGF4LFxuICAgICAgICAgICAgdGF4UmF0ZTogcHJpY2luZy50YXgucmF0ZSxcbiAgICAgICAgICAgIGluY2x1ZGVkSW5QcmljZTogcHJpY2luZy50YXguaW5jbHVkZWRJblByaWNlLFxuICAgICAgICAgICAgc291cmNlOiAncHJpY2luZydcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZyb21MZWdhY3kodmFyaWFudDogUHJvZHVjdFZhcmlhbnQgfCBhbnkpOiBQcmljZVByZXNlbnRhdGlvbiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSB2YXJpYW50ICYmICh2YXJpYW50LnNhbGVwcmljZSB8fCB2YXJpYW50LnByaWNlKTtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWwgPSB2YXJpYW50ICYmIHZhcmlhbnQucHJpY2U7XG4gICAgICAgIGNvbnN0IGhhc1ByZXZpb3VzID0gY3VycmVudCAhPSBudWxsICYmIG9yaWdpbmFsICE9IG51bGwgJiYgY3VycmVudCAhPT0gb3JpZ2luYWw7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByaW1hcnk6IHRoaXMubGVnYWN5VmFsdWUoY3VycmVudCksXG4gICAgICAgICAgICBwcmV2aW91czogaGFzUHJldmlvdXMgPyB0aGlzLmxlZ2FjeVZhbHVlKG9yaWdpbmFsKSA6IG51bGwsXG4gICAgICAgICAgICBzZWNvbmRhcnk6IG51bGwsXG4gICAgICAgICAgICBoYXNUYXg6IGZhbHNlLFxuICAgICAgICAgICAgdGF4OiAwLFxuICAgICAgICAgICAgdGF4UmF0ZTogbnVsbCxcbiAgICAgICAgICAgIGluY2x1ZGVkSW5QcmljZTogbnVsbCxcbiAgICAgICAgICAgIHNvdXJjZTogJ2xlZ2FjeSdcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxlZ2FjeVZhbHVlKHZhbHVlOiBhbnkpOiBQcmljZVByZXNlbnRhdGlvblZhbHVlIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlID09IG51bGwgfHwgdmFsdWUgPT09ICcnID8gMCA6IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNQcmljaW5nQ29udHJhY3QocHJpY2luZzogYW55KTogcHJpY2luZyBpcyBQcm9kdWN0VmFyaWFudFByaWNpbmcge1xuICAgICAgICByZXR1cm4gISFwcmljaW5nXG4gICAgICAgICAgICAmJiB0aGlzLmlzVmFsdWUocHJpY2luZy5jdXJyZW50KVxuICAgICAgICAgICAgJiYgISFwcmljaW5nLnRheFxuICAgICAgICAgICAgJiYgdHlwZW9mIHByaWNpbmcudGF4Lmhhc1RheCA9PT0gJ2Jvb2xlYW4nXG4gICAgICAgICAgICAmJiAocHJpY2luZy5wcmV2aW91cyA9PT0gbnVsbCB8fCBwcmljaW5nLnByZXZpb3VzID09PSB1bmRlZmluZWQgfHwgdGhpcy5pc1ZhbHVlKHByaWNpbmcucHJldmlvdXMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzVmFsdWUodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF2YWx1ZVxuICAgICAgICAgICAgJiYgdGhpcy5pc0Zpbml0ZU51bWJlcih2YWx1ZS5uZXQpXG4gICAgICAgICAgICAmJiB0aGlzLmlzRmluaXRlTnVtYmVyKHZhbHVlLnRheClcbiAgICAgICAgICAgICYmIHRoaXMuaXNGaW5pdGVOdW1iZXIodmFsdWUuZ3Jvc3MpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNGaW5pdGVOdW1iZXIodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bWJlciB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIGlzRmluaXRlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQ2FydExpbmVQcmljaW5nKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDYXJ0TGluZVByaWNpbmcge1xuICAgICAgICByZXR1cm4gISF2YWx1ZVxuICAgICAgICAgICAgJiYgdGhpcy5pc1ZhbHVlKHZhbHVlLnVuaXQpXG4gICAgICAgICAgICAmJiB0aGlzLmlzVmFsdWUodmFsdWUuZGlzY291bnQpXG4gICAgICAgICAgICAmJiB0aGlzLmlzVmFsdWUodmFsdWUuc3VidG90YWwpO1xuICAgIH1cblxufVxuIl19
@@ -6,7 +6,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { Injectable } from '@angular/core';
8
8
  import * as i0 from "@angular/core";
9
- import * as i1 from "../../public-api";
10
9
  var ShippingPriceDisplayService = /** @class */ (function () {
11
10
  function ShippingPriceDisplayService() {
12
11
  var _this = this;
@@ -39,7 +38,7 @@ var ShippingPriceDisplayService = /** @class */ (function () {
39
38
  };
40
39
  };
41
40
  }
42
- ShippingPriceDisplayService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ShippingPriceDisplayService_Factory() { return new i1.ShippingPriceDisplayService(); }, token: i1.ShippingPriceDisplayService, providedIn: "root" });
41
+ ShippingPriceDisplayService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ShippingPriceDisplayService_Factory() { return new ShippingPriceDisplayService(); }, token: ShippingPriceDisplayService, providedIn: "root" });
43
42
  ShippingPriceDisplayService = __decorate([
44
43
  Injectable({
45
44
  providedIn: 'root'
@@ -48,4 +47,4 @@ var ShippingPriceDisplayService = /** @class */ (function () {
48
47
  return ShippingPriceDisplayService;
49
48
  }());
50
49
  export { ShippingPriceDisplayService };
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcHBpbmctcHJpY2UtZGlzcGxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL3NoaXBwaW5nLXByaWNlLWRpc3BsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFnQjNDO0lBQUE7UUFBQSxpQkFxQ0M7UUFwQ0csd0JBQW1CLEdBQUcsVUFBQyxLQUF5QztZQUM1RCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssRUFBRSxFQUFFO2dCQUN2RCxPQUFPLElBQUksQ0FBQzthQUNmO1lBRUQsSUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDM0QsQ0FBQyxDQUFBO1FBRUQsb0JBQWUsR0FBRyxVQUFDLFFBQWdELGdCQUMvRCxPQUFBLEtBQUksQ0FBQyxjQUFjLE9BQUMsUUFBUSwwQ0FBRSxLQUFLLFFBQUUsUUFBUSwwQ0FBRSxhQUFhLENBQUMsQ0FBQSxFQUFBLENBQUE7UUFFakUsa0JBQWEsR0FBRyxVQUFDLE1BQTBDO1lBQ3ZELE9BQUEsS0FBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1FBQWpDLENBQWlDLENBQUE7UUFFckMsbUJBQWMsR0FBRyxVQUNiLEtBQXlDLEVBQ3pDLGFBQWlEO1lBRWpELElBQU0sVUFBVSxHQUFHLEtBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRCxJQUFNLHVCQUF1QixHQUFHLEtBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUN4RSxJQUFNLGFBQWEsR0FBRyxVQUFVLEtBQUssSUFBSSxDQUFDO1lBQzFDLElBQU0sZ0JBQWdCLEdBQUcsdUJBQXVCLEtBQUssSUFBSSxDQUFDO1lBQzFELElBQU0sV0FBVyxHQUFHLGFBQWEsSUFBSSxnQkFBZ0IsSUFBSSx1QkFBdUIsR0FBRyxVQUFVLENBQUM7WUFDOUYsSUFBTSxNQUFNLEdBQUcsVUFBVSxLQUFLLENBQUMsQ0FBQztZQUVoQyxPQUFPO2dCQUNILFVBQVUsWUFBQTtnQkFDVixhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJO2dCQUNoRSxhQUFhLGVBQUE7Z0JBQ2IsZ0JBQWdCLGtCQUFBO2dCQUNoQixXQUFXLGFBQUE7Z0JBQ1gsTUFBTSxRQUFBO2dCQUNOLGlCQUFpQixFQUFFLFdBQVc7YUFDakMsQ0FBQztRQUNOLENBQUMsQ0FBQTtLQUNKOztJQXJDWSwyQkFBMkI7UUFIdkMsVUFBVSxDQUFDO1lBQ1IsVUFBVSxFQUFFLE1BQU07U0FDckIsQ0FBQztPQUNXLDJCQUEyQixDQXFDdkM7c0NBckREO0NBcURDLEFBckNELElBcUNDO1NBckNZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNoaXBwaW5nUHJpY2VTb3VyY2UgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NoaXBwaW5nLW9wdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hpcHBpbmdQcmljZVZpZXdNb2RlbCB7XG4gICAgZmluYWxQcmljZTogbnVtYmVyIHwgbnVsbDtcbiAgICBvcmlnaW5hbFByaWNlOiBudW1iZXIgfCBudWxsO1xuICAgIGhhc0ZpbmFsUHJpY2U6IGJvb2xlYW47XG4gICAgaGFzT3JpZ2luYWxQcmljZTogYm9vbGVhbjtcbiAgICBoYXNEaXNjb3VudDogYm9vbGVhbjtcbiAgICBpc0ZyZWU6IGJvb2xlYW47XG4gICAgc2hvd09yaWdpbmFsUHJpY2U6IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2hpcHBpbmdQcmljZURpc3BsYXlTZXJ2aWNlIHtcbiAgICBub3JtYWxpemVQcmljZVZhbHVlID0gKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogbnVtYmVyIHwgbnVsbCA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBub3JtYWxpemVkID0gTnVtYmVyKHZhbHVlKTtcbiAgICAgICAgcmV0dXJuIE51bWJlci5pc0Zpbml0ZShub3JtYWxpemVkKSA/IG5vcm1hbGl6ZWQgOiBudWxsO1xuICAgIH1cblxuICAgIGdldENvbnRyYWN0VmlldyA9IChjb250cmFjdDogU2hpcHBpbmdQcmljZVNvdXJjZSB8IG51bGwgfCB1bmRlZmluZWQpOiBTaGlwcGluZ1ByaWNlVmlld01vZGVsID0+XG4gICAgICAgIHRoaXMuYnVpbGRWaWV3TW9kZWwoY29udHJhY3Q/LnByaWNlLCBjb250cmFjdD8ub3JpZ2luYWxQcmljZSlcblxuICAgIGdldEFtb3VudFZpZXcgPSAoYW1vdW50OiBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogU2hpcHBpbmdQcmljZVZpZXdNb2RlbCA9PlxuICAgICAgICB0aGlzLmJ1aWxkVmlld01vZGVsKGFtb3VudCwgbnVsbClcblxuICAgIGJ1aWxkVmlld01vZGVsID0gKFxuICAgICAgICBwcmljZTogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICAgICAgb3JpZ2luYWxQcmljZTogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZFxuICAgICk6IFNoaXBwaW5nUHJpY2VWaWV3TW9kZWwgPT4ge1xuICAgICAgICBjb25zdCBmaW5hbFByaWNlID0gdGhpcy5ub3JtYWxpemVQcmljZVZhbHVlKHByaWNlKTtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZE9yaWdpbmFsUHJpY2UgPSB0aGlzLm5vcm1hbGl6ZVByaWNlVmFsdWUob3JpZ2luYWxQcmljZSk7XG4gICAgICAgIGNvbnN0IGhhc0ZpbmFsUHJpY2UgPSBmaW5hbFByaWNlICE9PSBudWxsO1xuICAgICAgICBjb25zdCBoYXNPcmlnaW5hbFByaWNlID0gbm9ybWFsaXplZE9yaWdpbmFsUHJpY2UgIT09IG51bGw7XG4gICAgICAgIGNvbnN0IGhhc0Rpc2NvdW50ID0gaGFzRmluYWxQcmljZSAmJiBoYXNPcmlnaW5hbFByaWNlICYmIG5vcm1hbGl6ZWRPcmlnaW5hbFByaWNlID4gZmluYWxQcmljZTtcbiAgICAgICAgY29uc3QgaXNGcmVlID0gZmluYWxQcmljZSA9PT0gMDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZmluYWxQcmljZSxcbiAgICAgICAgICAgIG9yaWdpbmFsUHJpY2U6IGhhc09yaWdpbmFsUHJpY2UgPyBub3JtYWxpemVkT3JpZ2luYWxQcmljZSA6IG51bGwsXG4gICAgICAgICAgICBoYXNGaW5hbFByaWNlLFxuICAgICAgICAgICAgaGFzT3JpZ2luYWxQcmljZSxcbiAgICAgICAgICAgIGhhc0Rpc2NvdW50LFxuICAgICAgICAgICAgaXNGcmVlLFxuICAgICAgICAgICAgc2hvd09yaWdpbmFsUHJpY2U6IGhhc0Rpc2NvdW50XG4gICAgICAgIH07XG4gICAgfVxufVxuXG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcHBpbmctcHJpY2UtZGlzcGxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctZWFzeWNvbW1lcmNlLyIsInNvdXJjZXMiOlsibGliL3V0aWxzL3NoaXBwaW5nLXByaWNlLWRpc3BsYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQWdCM0M7SUFBQTtRQUFBLGlCQXFDQztRQXBDRyx3QkFBbUIsR0FBRyxVQUFDLEtBQXlDO1lBQzVELElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7Z0JBQ3ZELE9BQU8sSUFBSSxDQUFDO2FBQ2Y7WUFFRCxJQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMzRCxDQUFDLENBQUE7UUFFRCxvQkFBZSxHQUFHLFVBQUMsUUFBZ0QsZ0JBQy9ELE9BQUEsS0FBSSxDQUFDLGNBQWMsT0FBQyxRQUFRLDBDQUFFLEtBQUssUUFBRSxRQUFRLDBDQUFFLGFBQWEsQ0FBQyxDQUFBLEVBQUEsQ0FBQTtRQUVqRSxrQkFBYSxHQUFHLFVBQUMsTUFBMEM7WUFDdkQsT0FBQSxLQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUM7UUFBakMsQ0FBaUMsQ0FBQTtRQUVyQyxtQkFBYyxHQUFHLFVBQ2IsS0FBeUMsRUFDekMsYUFBaUQ7WUFFakQsSUFBTSxVQUFVLEdBQUcsS0FBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25ELElBQU0sdUJBQXVCLEdBQUcsS0FBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3hFLElBQU0sYUFBYSxHQUFHLFVBQVUsS0FBSyxJQUFJLENBQUM7WUFDMUMsSUFBTSxnQkFBZ0IsR0FBRyx1QkFBdUIsS0FBSyxJQUFJLENBQUM7WUFDMUQsSUFBTSxXQUFXLEdBQUcsYUFBYSxJQUFJLGdCQUFnQixJQUFJLHVCQUF1QixHQUFHLFVBQVUsQ0FBQztZQUM5RixJQUFNLE1BQU0sR0FBRyxVQUFVLEtBQUssQ0FBQyxDQUFDO1lBRWhDLE9BQU87Z0JBQ0gsVUFBVSxZQUFBO2dCQUNWLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUk7Z0JBQ2hFLGFBQWEsZUFBQTtnQkFDYixnQkFBZ0Isa0JBQUE7Z0JBQ2hCLFdBQVcsYUFBQTtnQkFDWCxNQUFNLFFBQUE7Z0JBQ04saUJBQWlCLEVBQUUsV0FBVzthQUNqQyxDQUFDO1FBQ04sQ0FBQyxDQUFBO0tBQ0o7O0lBckNZLDJCQUEyQjtRQUh2QyxVQUFVLENBQUM7WUFDUixVQUFVLEVBQUUsTUFBTTtTQUNyQixDQUFDO09BQ1csMkJBQTJCLENBcUN2QztzQ0FyREQ7Q0FxREMsQUFyQ0QsSUFxQ0M7U0FyQ1ksMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2hpcHBpbmdQcmljZVNvdXJjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2hpcHBpbmctb3B0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBTaGlwcGluZ1ByaWNlVmlld01vZGVsIHtcbiAgICBmaW5hbFByaWNlOiBudW1iZXIgfCBudWxsO1xuICAgIG9yaWdpbmFsUHJpY2U6IG51bWJlciB8IG51bGw7XG4gICAgaGFzRmluYWxQcmljZTogYm9vbGVhbjtcbiAgICBoYXNPcmlnaW5hbFByaWNlOiBib29sZWFuO1xuICAgIGhhc0Rpc2NvdW50OiBib29sZWFuO1xuICAgIGlzRnJlZTogYm9vbGVhbjtcbiAgICBzaG93T3JpZ2luYWxQcmljZTogYm9vbGVhbjtcbn1cblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBTaGlwcGluZ1ByaWNlRGlzcGxheVNlcnZpY2Uge1xuICAgIG5vcm1hbGl6ZVByaWNlVmFsdWUgPSAodmFsdWU6IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBudW1iZXIgfCBudWxsID0+IHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWQgPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKG5vcm1hbGl6ZWQpID8gbm9ybWFsaXplZCA6IG51bGw7XG4gICAgfVxuXG4gICAgZ2V0Q29udHJhY3RWaWV3ID0gKGNvbnRyYWN0OiBTaGlwcGluZ1ByaWNlU291cmNlIHwgbnVsbCB8IHVuZGVmaW5lZCk6IFNoaXBwaW5nUHJpY2VWaWV3TW9kZWwgPT5cbiAgICAgICAgdGhpcy5idWlsZFZpZXdNb2RlbChjb250cmFjdD8ucHJpY2UsIGNvbnRyYWN0Py5vcmlnaW5hbFByaWNlKVxuXG4gICAgZ2V0QW1vdW50VmlldyA9IChhbW91bnQ6IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBTaGlwcGluZ1ByaWNlVmlld01vZGVsID0+XG4gICAgICAgIHRoaXMuYnVpbGRWaWV3TW9kZWwoYW1vdW50LCBudWxsKVxuXG4gICAgYnVpbGRWaWV3TW9kZWwgPSAoXG4gICAgICAgIHByaWNlOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgICAgICBvcmlnaW5hbFByaWNlOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAgKTogU2hpcHBpbmdQcmljZVZpZXdNb2RlbCA9PiB7XG4gICAgICAgIGNvbnN0IGZpbmFsUHJpY2UgPSB0aGlzLm5vcm1hbGl6ZVByaWNlVmFsdWUocHJpY2UpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkT3JpZ2luYWxQcmljZSA9IHRoaXMubm9ybWFsaXplUHJpY2VWYWx1ZShvcmlnaW5hbFByaWNlKTtcbiAgICAgICAgY29uc3QgaGFzRmluYWxQcmljZSA9IGZpbmFsUHJpY2UgIT09IG51bGw7XG4gICAgICAgIGNvbnN0IGhhc09yaWdpbmFsUHJpY2UgPSBub3JtYWxpemVkT3JpZ2luYWxQcmljZSAhPT0gbnVsbDtcbiAgICAgICAgY29uc3QgaGFzRGlzY291bnQgPSBoYXNGaW5hbFByaWNlICYmIGhhc09yaWdpbmFsUHJpY2UgJiYgbm9ybWFsaXplZE9yaWdpbmFsUHJpY2UgPiBmaW5hbFByaWNlO1xuICAgICAgICBjb25zdCBpc0ZyZWUgPSBmaW5hbFByaWNlID09PSAwO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmaW5hbFByaWNlLFxuICAgICAgICAgICAgb3JpZ2luYWxQcmljZTogaGFzT3JpZ2luYWxQcmljZSA/IG5vcm1hbGl6ZWRPcmlnaW5hbFByaWNlIDogbnVsbCxcbiAgICAgICAgICAgIGhhc0ZpbmFsUHJpY2UsXG4gICAgICAgICAgICBoYXNPcmlnaW5hbFByaWNlLFxuICAgICAgICAgICAgaGFzRGlzY291bnQsXG4gICAgICAgICAgICBpc0ZyZWUsXG4gICAgICAgICAgICBzaG93T3JpZ2luYWxQcmljZTogaGFzRGlzY291bnRcbiAgICAgICAgfTtcbiAgICB9XG59XG5cbiJdfQ==