@mj-biz-apps/orders-core-entities-server 5.32.0 → 5.33.0

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 (262) hide show
  1. package/dist/AmendArrangementOperation.d.ts +28 -2
  2. package/dist/AmendArrangementOperation.d.ts.map +1 -1
  3. package/dist/AmendArrangementOperation.js +288 -20
  4. package/dist/AmendArrangementOperation.js.map +1 -1
  5. package/dist/AmountChange.d.ts +140 -0
  6. package/dist/AmountChange.d.ts.map +1 -0
  7. package/dist/AmountChange.js +576 -0
  8. package/dist/AmountChange.js.map +1 -0
  9. package/dist/AmountChangePlan.d.ts +214 -0
  10. package/dist/AmountChangePlan.d.ts.map +1 -0
  11. package/dist/AmountChangePlan.js +337 -0
  12. package/dist/AmountChangePlan.js.map +1 -0
  13. package/dist/AttendeeRequirement.d.ts +57 -0
  14. package/dist/AttendeeRequirement.d.ts.map +1 -0
  15. package/dist/AttendeeRequirement.js +96 -0
  16. package/dist/AttendeeRequirement.js.map +1 -0
  17. package/dist/BaseInvoiceRail.d.ts +17 -0
  18. package/dist/BaseInvoiceRail.d.ts.map +1 -1
  19. package/dist/BaseInvoiceRail.js.map +1 -1
  20. package/dist/BasePaymentProvider.d.ts +52 -0
  21. package/dist/BasePaymentProvider.d.ts.map +1 -1
  22. package/dist/BasePaymentProvider.js +8 -0
  23. package/dist/BasePaymentProvider.js.map +1 -1
  24. package/dist/BillComGateway.d.ts +2 -0
  25. package/dist/BillComGateway.d.ts.map +1 -1
  26. package/dist/BillComGateway.js +7 -6
  27. package/dist/BillComGateway.js.map +1 -1
  28. package/dist/BundleBehavior.d.ts +60 -0
  29. package/dist/BundleBehavior.d.ts.map +1 -1
  30. package/dist/BundleBehavior.js +78 -0
  31. package/dist/BundleBehavior.js.map +1 -1
  32. package/dist/BundleEngine.d.ts.map +1 -1
  33. package/dist/BundleEngine.js +110 -6
  34. package/dist/BundleEngine.js.map +1 -1
  35. package/dist/CancelSubscriptionOperation.d.ts +6 -0
  36. package/dist/CancelSubscriptionOperation.d.ts.map +1 -1
  37. package/dist/CancelSubscriptionOperation.js +45 -10
  38. package/dist/CancelSubscriptionOperation.js.map +1 -1
  39. package/dist/ChargeExceptionResolution.d.ts +81 -0
  40. package/dist/ChargeExceptionResolution.d.ts.map +1 -0
  41. package/dist/ChargeExceptionResolution.js +83 -0
  42. package/dist/ChargeExceptionResolution.js.map +1 -0
  43. package/dist/CheckoutRenewalPayment.d.ts +162 -0
  44. package/dist/CheckoutRenewalPayment.d.ts.map +1 -0
  45. package/dist/CheckoutRenewalPayment.js +318 -0
  46. package/dist/CheckoutRenewalPayment.js.map +1 -0
  47. package/dist/CheckoutSavedInstrument.d.ts +11 -0
  48. package/dist/CheckoutSavedInstrument.d.ts.map +1 -1
  49. package/dist/CheckoutSavedInstrument.js +44 -18
  50. package/dist/CheckoutSavedInstrument.js.map +1 -1
  51. package/dist/CheckoutSessionService.d.ts +87 -7
  52. package/dist/CheckoutSessionService.d.ts.map +1 -1
  53. package/dist/CheckoutSessionService.js +457 -47
  54. package/dist/CheckoutSessionService.js.map +1 -1
  55. package/dist/ConcessionAcknowledgment.d.ts +25 -0
  56. package/dist/ConcessionAcknowledgment.d.ts.map +1 -0
  57. package/dist/ConcessionAcknowledgment.js +100 -0
  58. package/dist/ConcessionAcknowledgment.js.map +1 -0
  59. package/dist/ConcessionApprovalTask.d.ts +13 -8
  60. package/dist/ConcessionApprovalTask.d.ts.map +1 -1
  61. package/dist/ConcessionApprovalTask.js +23 -16
  62. package/dist/ConcessionApprovalTask.js.map +1 -1
  63. package/dist/ConcessionGate.d.ts +20 -7
  64. package/dist/ConcessionGate.d.ts.map +1 -1
  65. package/dist/ConcessionGate.js +139 -15
  66. package/dist/ConcessionGate.js.map +1 -1
  67. package/dist/CreateOrderFromProviderPaymentOperation.d.ts +60 -0
  68. package/dist/CreateOrderFromProviderPaymentOperation.d.ts.map +1 -0
  69. package/dist/CreateOrderFromProviderPaymentOperation.js +308 -0
  70. package/dist/CreateOrderFromProviderPaymentOperation.js.map +1 -0
  71. package/dist/EntitlementBehavior.d.ts +6 -5
  72. package/dist/EntitlementBehavior.d.ts.map +1 -1
  73. package/dist/EntitlementBehavior.js +6 -5
  74. package/dist/EntitlementBehavior.js.map +1 -1
  75. package/dist/EntitlementEngine.d.ts +16 -0
  76. package/dist/EntitlementEngine.d.ts.map +1 -1
  77. package/dist/EntitlementEngine.js +90 -11
  78. package/dist/EntitlementEngine.js.map +1 -1
  79. package/dist/GiftCardBehavior.d.ts +3 -1
  80. package/dist/GiftCardBehavior.d.ts.map +1 -1
  81. package/dist/GiftCardBehavior.js +6 -6
  82. package/dist/GiftCardBehavior.js.map +1 -1
  83. package/dist/GuestOrderClaimDriver.d.ts.map +1 -1
  84. package/dist/GuestOrderClaimDriver.js +2 -3
  85. package/dist/GuestOrderClaimDriver.js.map +1 -1
  86. package/dist/HubSpotPaymentsGateway.d.ts +37 -0
  87. package/dist/HubSpotPaymentsGateway.d.ts.map +1 -0
  88. package/dist/HubSpotPaymentsGateway.js +54 -0
  89. package/dist/HubSpotPaymentsGateway.js.map +1 -0
  90. package/dist/HubSpotPaymentsProvider.d.ts +13 -0
  91. package/dist/HubSpotPaymentsProvider.d.ts.map +1 -0
  92. package/dist/HubSpotPaymentsProvider.js +49 -0
  93. package/dist/HubSpotPaymentsProvider.js.map +1 -0
  94. package/dist/HubSpotPaymentsRail.d.ts +20 -0
  95. package/dist/HubSpotPaymentsRail.d.ts.map +1 -0
  96. package/dist/HubSpotPaymentsRail.js +164 -0
  97. package/dist/HubSpotPaymentsRail.js.map +1 -0
  98. package/dist/InstalmentBilledSoFar.d.ts +52 -0
  99. package/dist/InstalmentBilledSoFar.d.ts.map +1 -0
  100. package/dist/InstalmentBilledSoFar.js +133 -0
  101. package/dist/InstalmentBilledSoFar.js.map +1 -0
  102. package/dist/InstalmentInvoiceEntry.d.ts +53 -5
  103. package/dist/InstalmentInvoiceEntry.d.ts.map +1 -1
  104. package/dist/InstalmentInvoiceEntry.js +59 -22
  105. package/dist/InstalmentInvoiceEntry.js.map +1 -1
  106. package/dist/InvoiceBehavior.d.ts +72 -1
  107. package/dist/InvoiceBehavior.d.ts.map +1 -1
  108. package/dist/InvoiceBehavior.js +129 -11
  109. package/dist/InvoiceBehavior.js.map +1 -1
  110. package/dist/InvoiceBuilder.d.ts +28 -1
  111. package/dist/InvoiceBuilder.d.ts.map +1 -1
  112. package/dist/InvoiceBuilder.js +155 -6
  113. package/dist/InvoiceBuilder.js.map +1 -1
  114. package/dist/InvoiceRailResolver.d.ts +13 -1
  115. package/dist/InvoiceRailResolver.d.ts.map +1 -1
  116. package/dist/InvoiceRailResolver.js +16 -2
  117. package/dist/InvoiceRailResolver.js.map +1 -1
  118. package/dist/IssueInstalmentInvoiceOperation.d.ts.map +1 -1
  119. package/dist/IssueInstalmentInvoiceOperation.js +34 -7
  120. package/dist/IssueInstalmentInvoiceOperation.js.map +1 -1
  121. package/dist/LineParty.d.ts +34 -0
  122. package/dist/LineParty.d.ts.map +1 -0
  123. package/dist/LineParty.js +23 -0
  124. package/dist/LineParty.js.map +1 -0
  125. package/dist/OrderConcessionEntityServer.d.ts +124 -5
  126. package/dist/OrderConcessionEntityServer.d.ts.map +1 -1
  127. package/dist/OrderConcessionEntityServer.js +502 -54
  128. package/dist/OrderConcessionEntityServer.js.map +1 -1
  129. package/dist/OrderEntityServer.d.ts +78 -6
  130. package/dist/OrderEntityServer.d.ts.map +1 -1
  131. package/dist/OrderEntityServer.js +366 -30
  132. package/dist/OrderEntityServer.js.map +1 -1
  133. package/dist/OrderHeaderPaymentScheduleEntityServer.d.ts +12 -1
  134. package/dist/OrderHeaderPaymentScheduleEntityServer.d.ts.map +1 -1
  135. package/dist/OrderHeaderPaymentScheduleEntityServer.js +25 -1
  136. package/dist/OrderHeaderPaymentScheduleEntityServer.js.map +1 -1
  137. package/dist/OrderJournalEntryFactory.d.ts +7 -0
  138. package/dist/OrderJournalEntryFactory.d.ts.map +1 -1
  139. package/dist/OrderJournalEntryFactory.js +20 -5
  140. package/dist/OrderJournalEntryFactory.js.map +1 -1
  141. package/dist/OrderLineEntityServer.d.ts +1 -15
  142. package/dist/OrderLineEntityServer.d.ts.map +1 -1
  143. package/dist/OrderLineEntityServer.js +9 -17
  144. package/dist/OrderLineEntityServer.js.map +1 -1
  145. package/dist/OrdersSettings.d.ts +25 -0
  146. package/dist/OrdersSettings.d.ts.map +1 -1
  147. package/dist/OrdersSettings.js +54 -0
  148. package/dist/OrdersSettings.js.map +1 -1
  149. package/dist/PaymentAllocationInputs.d.ts.map +1 -1
  150. package/dist/PaymentAllocationInputs.js +2 -1
  151. package/dist/PaymentAllocationInputs.js.map +1 -1
  152. package/dist/PaymentIntentService.d.ts +6 -0
  153. package/dist/PaymentIntentService.d.ts.map +1 -1
  154. package/dist/PaymentIntentService.js +43 -12
  155. package/dist/PaymentIntentService.js.map +1 -1
  156. package/dist/PaymentScheduleBehavior.d.ts +12 -3
  157. package/dist/PaymentScheduleBehavior.d.ts.map +1 -1
  158. package/dist/PaymentScheduleBehavior.js +26 -7
  159. package/dist/PaymentScheduleBehavior.js.map +1 -1
  160. package/dist/PollExternalPaymentsOperation.d.ts +2 -1
  161. package/dist/PollExternalPaymentsOperation.d.ts.map +1 -1
  162. package/dist/PollExternalPaymentsOperation.js +42 -17
  163. package/dist/PollExternalPaymentsOperation.js.map +1 -1
  164. package/dist/ProviderPaymentOrder.d.ts +56 -0
  165. package/dist/ProviderPaymentOrder.d.ts.map +1 -0
  166. package/dist/ProviderPaymentOrder.js +78 -0
  167. package/dist/ProviderPaymentOrder.js.map +1 -0
  168. package/dist/ReconcilePaymentProviderChargesOperation.d.ts +12 -0
  169. package/dist/ReconcilePaymentProviderChargesOperation.d.ts.map +1 -1
  170. package/dist/ReconcilePaymentProviderChargesOperation.js +68 -4
  171. package/dist/ReconcilePaymentProviderChargesOperation.js.map +1 -1
  172. package/dist/ReferralProgram.d.ts +25 -0
  173. package/dist/ReferralProgram.d.ts.map +1 -0
  174. package/dist/ReferralProgram.js +59 -0
  175. package/dist/ReferralProgram.js.map +1 -0
  176. package/dist/RenewalCharging.d.ts +222 -0
  177. package/dist/RenewalCharging.d.ts.map +1 -0
  178. package/dist/RenewalCharging.js +718 -0
  179. package/dist/RenewalCharging.js.map +1 -0
  180. package/dist/RenewalPromotions.d.ts +58 -0
  181. package/dist/RenewalPromotions.d.ts.map +1 -0
  182. package/dist/RenewalPromotions.js +81 -0
  183. package/dist/RenewalPromotions.js.map +1 -0
  184. package/dist/ResolveChargeExceptionOperation.d.ts +66 -0
  185. package/dist/ResolveChargeExceptionOperation.d.ts.map +1 -0
  186. package/dist/ResolveChargeExceptionOperation.js +198 -0
  187. package/dist/ResolveChargeExceptionOperation.js.map +1 -0
  188. package/dist/ReversalBehavior.d.ts +55 -1
  189. package/dist/ReversalBehavior.d.ts.map +1 -1
  190. package/dist/ReversalBehavior.js +79 -15
  191. package/dist/ReversalBehavior.js.map +1 -1
  192. package/dist/ReversalResolver.d.ts.map +1 -1
  193. package/dist/ReversalResolver.js +1 -0
  194. package/dist/ReversalResolver.js.map +1 -1
  195. package/dist/ReversalScheduleReduction.d.ts +61 -0
  196. package/dist/ReversalScheduleReduction.d.ts.map +1 -0
  197. package/dist/ReversalScheduleReduction.js +180 -0
  198. package/dist/ReversalScheduleReduction.js.map +1 -0
  199. package/dist/SeatAddition.d.ts +16 -0
  200. package/dist/SeatAddition.d.ts.map +1 -0
  201. package/dist/SeatAddition.js +62 -0
  202. package/dist/SeatAddition.js.map +1 -0
  203. package/dist/SpawnRenewalsOperation.d.ts +50 -7
  204. package/dist/SpawnRenewalsOperation.d.ts.map +1 -1
  205. package/dist/SpawnRenewalsOperation.js +161 -21
  206. package/dist/SpawnRenewalsOperation.js.map +1 -1
  207. package/dist/StripePaymentProvider.d.ts +33 -1
  208. package/dist/StripePaymentProvider.d.ts.map +1 -1
  209. package/dist/StripePaymentProvider.js +142 -3
  210. package/dist/StripePaymentProvider.js.map +1 -1
  211. package/dist/SubscriptionBehavior.d.ts +34 -4
  212. package/dist/SubscriptionBehavior.d.ts.map +1 -1
  213. package/dist/SubscriptionBehavior.js +41 -6
  214. package/dist/SubscriptionBehavior.js.map +1 -1
  215. package/dist/TermExtension.d.ts +78 -1
  216. package/dist/TermExtension.d.ts.map +1 -1
  217. package/dist/TermExtension.js +63 -46
  218. package/dist/TermExtension.js.map +1 -1
  219. package/dist/TermExtensionPlan.d.ts +6 -3
  220. package/dist/TermExtensionPlan.d.ts.map +1 -1
  221. package/dist/TermExtensionPlan.js +6 -4
  222. package/dist/TermExtensionPlan.js.map +1 -1
  223. package/dist/TermShift.d.ts +65 -0
  224. package/dist/TermShift.d.ts.map +1 -0
  225. package/dist/TermShift.js +342 -0
  226. package/dist/TermShift.js.map +1 -0
  227. package/dist/TermShiftPlan.d.ts +71 -0
  228. package/dist/TermShiftPlan.d.ts.map +1 -0
  229. package/dist/TermShiftPlan.js +127 -0
  230. package/dist/TermShiftPlan.js.map +1 -0
  231. package/dist/UnmatchedChargeOrders.d.ts +49 -0
  232. package/dist/UnmatchedChargeOrders.d.ts.map +1 -0
  233. package/dist/UnmatchedChargeOrders.js +122 -0
  234. package/dist/UnmatchedChargeOrders.js.map +1 -0
  235. package/dist/UnmatchedChargeRules.d.ts +73 -0
  236. package/dist/UnmatchedChargeRules.d.ts.map +1 -0
  237. package/dist/UnmatchedChargeRules.js +92 -0
  238. package/dist/UnmatchedChargeRules.js.map +1 -0
  239. package/dist/VatLocationEvidence.d.ts +21 -0
  240. package/dist/VatLocationEvidence.d.ts.map +1 -0
  241. package/dist/VatLocationEvidence.js +31 -0
  242. package/dist/VatLocationEvidence.js.map +1 -0
  243. package/dist/claimDriverHelpers.d.ts.map +1 -1
  244. package/dist/claimDriverHelpers.js +1 -2
  245. package/dist/claimDriverHelpers.js.map +1 -1
  246. package/dist/entity-names.d.ts +6 -0
  247. package/dist/entity-names.d.ts.map +1 -1
  248. package/dist/entity-names.js +6 -0
  249. package/dist/entity-names.js.map +1 -1
  250. package/dist/index.d.ts +33 -9
  251. package/dist/index.d.ts.map +1 -1
  252. package/dist/index.js +21 -5
  253. package/dist/index.js.map +1 -1
  254. package/dist/person-user-link.d.ts +59 -0
  255. package/dist/person-user-link.d.ts.map +1 -0
  256. package/dist/person-user-link.js +174 -0
  257. package/dist/person-user-link.js.map +1 -0
  258. package/dist/sql-guards.d.ts +2 -36
  259. package/dist/sql-guards.d.ts.map +1 -1
  260. package/dist/sql-guards.js +7 -59
  261. package/dist/sql-guards.js.map +1 -1
  262. package/package.json +3 -3
@@ -8,7 +8,24 @@
8
8
  * approved, in the approval's own transaction (see ./TermExtension.ts). A requester within their own authority
9
9
  * is approved on save, so the extension applies in this call.
10
10
  *
11
- * A change of amount (case A) is refused until its credit-memo path exists.
11
+ * A referral extension (#529) names its `ReferralProgramID`, with the reason category Referral. The program approves
12
+ * it when it is in program (see ./ReferralProgram.ts); `Preview` says whether it would, and the extension applies in
13
+ * this call when it does. More days than the program grants are recorded Pending, like any other concession.
14
+ *
15
+ * A change of amount (case A, #506): the caller names a term and its new, lower amount, optionally the invoice the
16
+ * reduction is about. `Preview` returns the plan from ./AmountChange.ts: the catch-up, the staged entries offset and
17
+ * the new schedule, the instalments reduced and any credit memo. Otherwise it records a Price `OrderConcession`
18
+ * carrying `NewAmount`, valued as the reduction and routed for approval like any other; the change applies when that
19
+ * concession is approved. What the uninvoiced instalments cannot absorb is credited on a credit memo the approved
20
+ * concession carries (#662); `RefundRequested` asks for a paid invoice's credit back, which finance then refunds.
21
+ *
22
+ * A shift (#507) moves the term's start and end by the same number of days: the caller names the term and its
23
+ * new start, and the new end follows. It records a Shift `OrderConcession`, valued at zero, which goes through
24
+ * under the `TermShiftReviewDays` setting and otherwise waits for finance to review it; it takes effect when
25
+ * approved (see ./TermShift.ts). `Preview` returns the offsets, the new schedule and the catch-up or reversal for
26
+ * periods already behind us. Finance escalates a shift awaiting its review to the ConcessionLimit approver by
27
+ * naming the concession in `EscalateOrderConcessionID`, with the reason. A shortening (an earlier end, or a later
28
+ * start with the same end) is refused until the credit-memo path its credit follows exists.
12
29
  *
13
30
  * A confirmed order's payment terms (#309): the caller names the order and its new terms instead of a term. It
14
31
  * records a Terms `OrderConcession`, which always waits for someone other than the requester to approve it; the
@@ -17,14 +34,23 @@
17
34
  *
18
35
  * CONNECTS TO:
19
36
  * PLAN: ./TermExtension.ts (CheckTermExtension) · ./PaymentTermsChange.ts (CheckTermsChange)
37
+ * ./AmountChange.ts (CheckAmountChange) · ./ReferralProgram.ts (CheckReferralProgram)
38
+ * ./TermShift.ts (CheckTermShift)
20
39
  * RECORDS: OrderConcessionEntityServer (value, approval, application)
21
40
  */
22
41
  import { type IMetadataProvider, type UserInfo } from '@memberjunction/core';
23
42
  import { OrdersAmendArrangementOperation as OrdersAmendArrangementOperationBase, type AmendArrangementInput, type AmendArrangementOutput } from '@mj-biz-apps/orders-entities';
24
43
  export declare class AmendArrangementOperation extends OrdersAmendArrangementOperationBase {
25
44
  protected InternalExecute(input: AmendArrangementInput, provider: IMetadataProvider, user: UserInfo): Promise<AmendArrangementOutput>;
45
+ private amendAmount;
26
46
  private amendPaymentTerms;
27
- private currentEnd;
47
+ /** The subscription the line that bought the term renews, or null when that line is not a renewal. */
48
+ private renewsSubscription;
49
+ private currentDates;
50
+ /** Record a Shift concession, or preview what it would do (#507). */
51
+ private amendShift;
52
+ /** Finance sends a Shift awaiting its review to the ConcessionLimit approver (#507). */
53
+ private escalateShift;
28
54
  }
29
55
  /** Tree-shaking anchor — called from the server bootstrap so the registration is retained. */
30
56
  export declare function LoadAmendArrangementOperation(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"AmendArrangementOperation.d.ts","sourceRoot":"","sources":["../src/AmendArrangementOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAGH,KAAK,iBAAiB,EAEtB,KAAK,QAAQ,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,+BAA+B,IAAI,mCAAmC,EAEtE,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAI9B,MAAM,8BAA8B,CAAC;AAQtC,qBACa,yBAA0B,SAAQ,mCAAmC;cAC9D,eAAe,CAC3B,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,sBAAsB,CAAC;YAgFpB,iBAAiB;YAoDjB,UAAU;CAiB3B;AAMD,8FAA8F;AAC9F,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD"}
1
+ {"version":3,"file":"AmendArrangementOperation.d.ts","sourceRoot":"","sources":["../src/AmendArrangementOperation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,EAGH,KAAK,iBAAiB,EAEtB,KAAK,QAAQ,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACH,+BAA+B,IAAI,mCAAmC,EAEtE,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAK9B,MAAM,8BAA8B,CAAC;AAYtC,qBACa,yBAA0B,SAAQ,mCAAmC;cAC9D,eAAe,CAC3B,KAAK,EAAE,qBAAqB,EAC5B,QAAQ,EAAE,iBAAiB,EAC3B,IAAI,EAAE,QAAQ,GACf,OAAO,CAAC,sBAAsB,CAAC;YAsJpB,WAAW;YAyFX,iBAAiB;IAoD/B,sGAAsG;YACxF,kBAAkB;YAelB,YAAY;IAiB1B,qEAAqE;YACvD,UAAU;IAgExB,wFAAwF;YAC1E,aAAa;CA0B9B;AAcD,8FAA8F;AAC9F,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD"}
@@ -14,7 +14,24 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
14
14
  * approved, in the approval's own transaction (see ./TermExtension.ts). A requester within their own authority
15
15
  * is approved on save, so the extension applies in this call.
16
16
  *
17
- * A change of amount (case A) is refused until its credit-memo path exists.
17
+ * A referral extension (#529) names its `ReferralProgramID`, with the reason category Referral. The program approves
18
+ * it when it is in program (see ./ReferralProgram.ts); `Preview` says whether it would, and the extension applies in
19
+ * this call when it does. More days than the program grants are recorded Pending, like any other concession.
20
+ *
21
+ * A change of amount (case A, #506): the caller names a term and its new, lower amount, optionally the invoice the
22
+ * reduction is about. `Preview` returns the plan from ./AmountChange.ts: the catch-up, the staged entries offset and
23
+ * the new schedule, the instalments reduced and any credit memo. Otherwise it records a Price `OrderConcession`
24
+ * carrying `NewAmount`, valued as the reduction and routed for approval like any other; the change applies when that
25
+ * concession is approved. What the uninvoiced instalments cannot absorb is credited on a credit memo the approved
26
+ * concession carries (#662); `RefundRequested` asks for a paid invoice's credit back, which finance then refunds.
27
+ *
28
+ * A shift (#507) moves the term's start and end by the same number of days: the caller names the term and its
29
+ * new start, and the new end follows. It records a Shift `OrderConcession`, valued at zero, which goes through
30
+ * under the `TermShiftReviewDays` setting and otherwise waits for finance to review it; it takes effect when
31
+ * approved (see ./TermShift.ts). `Preview` returns the offsets, the new schedule and the catch-up or reversal for
32
+ * periods already behind us. Finance escalates a shift awaiting its review to the ConcessionLimit approver by
33
+ * naming the concession in `EscalateOrderConcessionID`, with the reason. A shortening (an earlier end, or a later
34
+ * start with the same end) is refused until the credit-memo path its credit follows exists.
18
35
  *
19
36
  * A confirmed order's payment terms (#309): the caller names the order and its new terms instead of a term. It
20
37
  * records a Terms `OrderConcession`, which always waits for someone other than the requester to approve it; the
@@ -23,52 +40,122 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
23
40
  *
24
41
  * CONNECTS TO:
25
42
  * PLAN: ./TermExtension.ts (CheckTermExtension) · ./PaymentTermsChange.ts (CheckTermsChange)
43
+ * ./AmountChange.ts (CheckAmountChange) · ./ReferralProgram.ts (CheckReferralProgram)
44
+ * ./TermShift.ts (CheckTermShift)
26
45
  * RECORDS: OrderConcessionEntityServer (value, approval, application)
27
46
  */
28
47
  import { BaseRemotableOperation, RunView, } from '@memberjunction/core';
29
48
  import { RegisterClass } from '@memberjunction/global';
30
- import { OrdersAmendArrangementOperation as OrdersAmendArrangementOperationBase, AsDateValue, ConcessionValue, InclusiveDays, } from '@mj-biz-apps/orders-entities';
31
- import { ORDER_CONCESSION_ENTITY } from './entity-names.js';
49
+ import { OrdersAmendArrangementOperation as OrdersAmendArrangementOperationBase, AsDateValue, ConcessionValue, InclusiveDays, SplitTermDateChange, } from '@mj-biz-apps/orders-entities';
50
+ import { ORDER_CONCESSION_ENTITY, ORDER_LINE_ENTITY } from './entity-names.js';
32
51
  import { RequireOptionalDay, RequireUUID } from './sql-guards.js';
52
+ import { CheckAmountChange } from './AmountChange.js';
33
53
  import { CheckTermsChange } from './PaymentTermsChange.js';
34
- import { CheckTermExtension } from './TermExtension.js';
35
- const REASON_CATEGORIES = ['Retention', 'Referral', 'Other'];
54
+ import { CheckReferralProgram } from './ReferralProgram.js';
55
+ import { AsDay, CheckTermExtension, IsoDay } from './TermExtension.js';
56
+ import { CheckTermShift } from './TermShift.js';
57
+ const REASON_CATEGORIES = ['Retention', 'Referral', 'Dispute', 'Other'];
36
58
  let AmendArrangementOperation = class AmendArrangementOperation extends OrdersAmendArrangementOperationBase {
37
59
  async InternalExecute(input, provider, user) {
38
- if (!REASON_CATEGORIES.includes(input.ReasonCategory)) {
60
+ if (input.EscalateOrderConcessionID != null)
61
+ return this.escalateShift(input, provider, user);
62
+ if (!input.ReasonCategory || !REASON_CATEGORIES.includes(input.ReasonCategory)) {
39
63
  return { Success: false, Message: `ReasonCategory must be one of ${REASON_CATEGORIES.join(', ')}.` };
40
64
  }
41
65
  if (!input.Reason?.trim())
42
66
  return { Success: false, Message: 'An amendment must state its reason.' };
43
67
  if (input.NewPaymentTermsTypeID != null || input.OrderHeaderID != null) {
44
- if (input.SubscriptionTermID != null || input.NewEndDate != null || input.NewAmount != null) {
45
- return { Success: false, Message: 'A change of payment terms is amended on its own, without a term, end date or amount.' };
68
+ if (input.SubscriptionTermID != null ||
69
+ input.NewStartDate != null ||
70
+ input.NewEndDate != null ||
71
+ input.NewAmount != null ||
72
+ input.AppliesToInvoiceID != null ||
73
+ input.ReferralProgramID != null) {
74
+ return {
75
+ Success: false,
76
+ Message: 'A change of payment terms is amended on its own, without a term, end date, amount or referral program.',
77
+ };
46
78
  }
47
79
  return this.amendPaymentTerms(input, provider, user);
48
80
  }
81
+ if (input.NewAmount != null) {
82
+ if (input.NewEndDate != null || input.NewStartDate != null) {
83
+ return { Success: false, Message: 'A change of amount and a change of dates are amended separately.' };
84
+ }
85
+ if (input.ReferralProgramID != null) {
86
+ return { Success: false, Message: 'A referral program extends a term; it does not go with a change of amount.' };
87
+ }
88
+ return this.amendAmount(input, provider, user);
89
+ }
90
+ if (input.AppliesToInvoiceID != null || input.RefundRequested) {
91
+ return { Success: false, Message: 'AppliesToInvoiceID and RefundRequested go with a change of amount (NewAmount).' };
92
+ }
49
93
  let newEnd;
94
+ let newStart;
50
95
  try {
51
96
  RequireUUID(input.SubscriptionTermID, 'SubscriptionTermID');
52
97
  newEnd = AsDateValue(RequireOptionalDay(input.NewEndDate, 'NewEndDate'));
98
+ newStart = AsDateValue(RequireOptionalDay(input.NewStartDate, 'NewStartDate'));
99
+ if (input.ReferralProgramID != null)
100
+ RequireUUID(input.ReferralProgramID, 'ReferralProgramID');
53
101
  }
54
102
  catch (e) {
55
103
  return { Success: false, Message: String(e.message) };
56
104
  }
57
- if (input.NewAmount != null) {
58
- return { Success: false, Message: 'Changing the amount of a booked arrangement is not supported yet.' };
59
- }
60
- if (!newEnd)
61
- return { Success: false, Message: 'NewEndDate is required.' };
105
+ if (!newEnd && !newStart)
106
+ return { Success: false, Message: 'NewEndDate or NewStartDate is required.' };
62
107
  const termID = input.SubscriptionTermID;
63
- const current = await this.currentEnd(termID, provider, user);
108
+ const current = await this.currentDates(termID, provider, user);
64
109
  if (typeof current === 'string')
65
110
  return { Success: false, Message: current };
66
- const addedDays = Math.round((newEnd.getTime() - current.getTime()) / 86_400_000);
111
+ const startDays = newStart ? Math.round((AsDay(newStart).getTime() - current.StartDate.getTime()) / 86_400_000) : 0;
112
+ const change = SplitTermDateChange(current, {
113
+ StartDate: newStart ? AsDay(newStart) : current.StartDate,
114
+ // A new start alone moves the end with it: that is a shift.
115
+ EndDate: newEnd ? AsDay(newEnd) : new Date(current.EndDate.getTime() + startDays * 86_400_000),
116
+ });
117
+ if (change.ShorteningDays > 0) {
118
+ return {
119
+ Success: false,
120
+ Message: 'Shortening a booked term (an earlier end, or a later start with the same end) is not supported yet: ' +
121
+ 'its credit follows the change-of-amount path, which cannot record a change yet.',
122
+ };
123
+ }
124
+ if (change.ShiftDays !== 0 && change.ExtensionDays !== 0) {
125
+ return {
126
+ Success: false,
127
+ Message: 'This change both moves the term and lengthens it. Move it first, then extend it, as two amendments.',
128
+ };
129
+ }
130
+ if (change.ShiftDays !== 0) {
131
+ if (input.ReferralProgramID != null) {
132
+ return { Success: false, Message: 'A referral program extends a term; it does not go with a move of its dates.' };
133
+ }
134
+ return this.amendShift(input, termID, current, change.ShiftDays, provider, user);
135
+ }
136
+ const addedDays = change.ExtensionDays;
67
137
  const checked = await CheckTermExtension({ SubscriptionTermID: termID, AddedDays: addedDays, RequestedByUserID: user.ID }, { Provider: provider, User: user });
68
138
  if (typeof checked === 'string')
69
139
  return { Success: false, Message: checked };
140
+ let program = null;
141
+ if (input.ReferralProgramID != null) {
142
+ const verdict = await CheckReferralProgram({
143
+ ReferralProgramID: input.ReferralProgramID,
144
+ DeliveryForm: 'Duration',
145
+ ReasonCategory: input.ReasonCategory,
146
+ AddedDays: addedDays,
147
+ OrderHeaderID: checked.OrderHeaderID,
148
+ RenewsSubscriptionID: await this.renewsSubscription(checked.OrderLineID, provider, user),
149
+ TermStartDate: checked.TermStartDate,
150
+ Today: checked.EffectiveDate,
151
+ }, { Provider: provider, User: user });
152
+ if (typeof verdict === 'string')
153
+ return { Success: false, Message: verdict };
154
+ program = verdict;
155
+ }
70
156
  const summary = {
71
157
  Success: true,
158
+ ...(program ? { ReferralProgram: program.ProgramName, ApprovedByReferralProgram: program.InProgram } : {}),
72
159
  CurrentEndDate: day(checked.CurrentEndDate),
73
160
  NewEndDate: day(checked.NewEndDate),
74
161
  EffectiveDate: day(checked.EffectiveDate),
@@ -87,7 +174,7 @@ let AmendArrangementOperation = class AmendArrangementOperation extends OrdersAm
87
174
  NewSchedule: checked.Plan.Respread.map((d) => ({ EffectiveDate: d.EffectiveDate, Amount: d.Lines[0].DebitAmount ?? 0 })),
88
175
  };
89
176
  if (input.Preview) {
90
- return { ...summary, Message: `Term would end ${summary.NewEndDate} instead of ${summary.CurrentEndDate}.` };
177
+ return { ...summary, Message: `Term would end ${summary.NewEndDate} instead of ${summary.CurrentEndDate}.${programNote(program)}` };
91
178
  }
92
179
  const concession = await provider.GetEntityObject(ORDER_CONCESSION_ENTITY, user);
93
180
  concession.NewRecord();
@@ -96,6 +183,8 @@ let AmendArrangementOperation = class AmendArrangementOperation extends OrdersAm
96
183
  concession.AddedDays = addedDays;
97
184
  concession.ReasonCategory = input.ReasonCategory;
98
185
  concession.Reason = input.Reason.trim();
186
+ if (input.ReferralProgramID != null)
187
+ concession.ReferralProgramID = input.ReferralProgramID;
99
188
  if (!(await concession.Save())) {
100
189
  return { Success: false, Message: concession.LatestResult?.CompleteMessage ?? 'The amendment could not be recorded.' };
101
190
  }
@@ -109,6 +198,85 @@ let AmendArrangementOperation = class AmendArrangementOperation extends OrdersAm
109
198
  : `The extension to ${summary.NewEndDate} is awaiting approval; it takes effect when approved.`,
110
199
  };
111
200
  }
201
+ async amendAmount(input, provider, user) {
202
+ let checked;
203
+ try {
204
+ checked = await CheckAmountChange({
205
+ SubscriptionTermID: RequireUUID(input.SubscriptionTermID, 'SubscriptionTermID'),
206
+ NewAmount: Number(input.NewAmount),
207
+ AppliesToInvoiceID: input.AppliesToInvoiceID ? RequireUUID(input.AppliesToInvoiceID, 'AppliesToInvoiceID') : null,
208
+ RefundRequested: input.RefundRequested === true,
209
+ RequestedByUserID: user.ID,
210
+ }, { Provider: provider, User: user });
211
+ }
212
+ catch (e) {
213
+ return { Success: false, Message: String(e.message) };
214
+ }
215
+ if (typeof checked === 'string')
216
+ return { Success: false, Message: checked };
217
+ const plan = checked.Recognition;
218
+ const billing = checked.Billing;
219
+ const summary = {
220
+ Success: true,
221
+ EffectiveDate: day(checked.EffectiveDate),
222
+ CurrentAmount: checked.CurrentAmount,
223
+ NewAmount: checked.NewAmount,
224
+ Value: plan.Reduction,
225
+ TaxReduction: checked.TaxReduction,
226
+ GrossReduction: checked.GrossReduction,
227
+ CatchUp: plan.CatchUp,
228
+ Respread: plan.Remaining,
229
+ Offsets: plan.Offsets.map((d, i) => ({
230
+ EffectiveDate: d.EffectiveDate,
231
+ Amount: d.Lines.reduce((sum, l) => sum + Number(l.DebitAmount ?? 0), 0),
232
+ Offsets: plan.Targets[i].EntryNumber,
233
+ })),
234
+ NewSchedule: plan.Respread.map((d) => ({ EffectiveDate: d.EffectiveDate, Amount: d.Lines[0].DebitAmount ?? 0 })),
235
+ Instalments: billing.Instalments.map((c) => ({
236
+ InstalmentID: c.ID,
237
+ InstallmentNumber: c.InstallmentNumber,
238
+ DueDate: c.DueDate,
239
+ CurrentAmount: c.CurrentAmount,
240
+ NewAmount: c.NewAmount,
241
+ })),
242
+ CreditMemo: billing.CreditMemo,
243
+ CreditApplied: billing.Applied.map((a) => ({ InstalmentID: a.InstalmentID, DocumentNumber: a.DocumentNumber, Amount: a.Amount })),
244
+ Refund: billing.Refund,
245
+ OpenCredit: billing.OpenCredit,
246
+ };
247
+ if (input.Preview) {
248
+ return {
249
+ ...summary,
250
+ Message: `Term ${checked.TermNumber} of ${checked.SubscriptionNumber} would go from ${checked.CurrentAmount.toFixed(2)} to ` +
251
+ `${checked.NewAmount.toFixed(2)}: ${plan.CatchUp.toFixed(2)} taken back from revenue already earned, ` +
252
+ `${checked.ScheduleReduction.toFixed(2)} off the instalments not yet invoiced, ` +
253
+ `${billing.CreditMemo.toFixed(2)} credited on a credit memo` +
254
+ (billing.Refund > 0 ? `, of which ${billing.Refund.toFixed(2)} is refunded.` : '.'),
255
+ };
256
+ }
257
+ const concession = await provider.GetEntityObject(ORDER_CONCESSION_ENTITY, user);
258
+ concession.NewRecord();
259
+ concession.DeliveryForm = 'Price';
260
+ concession.SubscriptionTermID = checked.TermID;
261
+ concession.NewAmount = checked.NewAmount;
262
+ concession.AppliesToPaymentScheduleID = input.AppliesToInvoiceID ?? null;
263
+ concession.RefundRequested = input.RefundRequested === true;
264
+ concession.ReasonCategory = input.ReasonCategory;
265
+ concession.Reason = (input.Reason ?? '').trim();
266
+ if (!(await concession.Save())) {
267
+ return { Success: false, Message: concession.LatestResult?.CompleteMessage ?? 'The amendment could not be recorded.' };
268
+ }
269
+ return {
270
+ ...summary,
271
+ OrderConcessionID: concession.ID,
272
+ Status: concession.Status,
273
+ Message: concession.Status === 'Approved'
274
+ ? `Term ${checked.TermNumber} lowered to ${checked.NewAmount.toFixed(2)}` +
275
+ (concession.CreditMemoNumber ? `, with credit memo ${concession.CreditMemoNumber}` : '') +
276
+ `. Accounting has been asked to confirm the re-cut${billing.Refund > 0 ? ' and pay the refund' : ''}.`
277
+ : `Lowering term ${checked.TermNumber} to ${checked.NewAmount.toFixed(2)} is awaiting approval; it takes effect when approved.`,
278
+ };
279
+ }
112
280
  async amendPaymentTerms(input, provider, user) {
113
281
  let checked;
114
282
  try {
@@ -153,26 +321,126 @@ let AmendArrangementOperation = class AmendArrangementOperation extends OrdersAm
153
321
  Message: `The change to ${checked.NewTermsName} is awaiting approval; it takes effect when approved.`,
154
322
  };
155
323
  }
156
- async currentEnd(termID, provider, user) {
324
+ /** The subscription the line that bought the term renews, or null when that line is not a renewal. */
325
+ async renewsSubscription(lineID, provider, user) {
326
+ const rv = new RunView(provider);
327
+ const res = await rv.RunView({
328
+ EntityName: ORDER_LINE_ENTITY,
329
+ ExtraFilter: `ID = '${RequireUUID(lineID, 'OrderLineID')}'`,
330
+ Fields: ['RenewsSubscriptionID'],
331
+ ResultType: 'simple',
332
+ BypassCache: true,
333
+ }, user);
334
+ return res?.Results?.[0]?.RenewsSubscriptionID ?? null;
335
+ }
336
+ async currentDates(termID, provider, user) {
157
337
  const rv = new RunView(provider);
158
338
  const res = await rv.RunView({
159
339
  EntityName: 'MJ_BizApps_Orders: Subscription Terms',
160
340
  ExtraFilter: `ID = '${RequireUUID(termID, 'SubscriptionTermID')}'`,
161
- Fields: ['EndDate'],
341
+ Fields: ['StartDate', 'EndDate'],
162
342
  ResultType: 'simple',
163
343
  BypassCache: true,
164
344
  }, user);
165
345
  const term = res?.Results?.[0];
166
346
  if (!term)
167
347
  return `Subscription term ${termID} was not found.`;
168
- const d = new Date(term.EndDate);
169
- return new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate()));
348
+ return { StartDate: AsDay(term.StartDate), EndDate: AsDay(term.EndDate) };
349
+ }
350
+ /** Record a Shift concession, or preview what it would do (#507). */
351
+ async amendShift(input, termID, current, shiftDays, provider, user) {
352
+ const checked = await CheckTermShift({ SubscriptionTermID: termID, ShiftDays: shiftDays, RequestedByUserID: user.ID }, { Provider: provider, User: user });
353
+ if (typeof checked === 'string')
354
+ return { Success: false, Message: checked };
355
+ const plan = checked.Plan;
356
+ const summary = {
357
+ Success: true,
358
+ CurrentStartDate: IsoDay(checked.CurrentStartDate),
359
+ NewStartDate: IsoDay(checked.NewStartDate),
360
+ CurrentEndDate: IsoDay(checked.CurrentEndDate),
361
+ NewEndDate: IsoDay(checked.NewEndDate),
362
+ EffectiveDate: IsoDay(checked.EffectiveDate),
363
+ Value: 0,
364
+ Offsets: plan.Offsets.map((d, i) => ({
365
+ EffectiveDate: d.EffectiveDate,
366
+ Amount: d.Lines.reduce((sum, l) => sum + Number(l.DebitAmount ?? 0), 0),
367
+ Offsets: plan.Targets[i].EntryNumber,
368
+ })),
369
+ NewSchedule: plan.Schedule.map((d) => ({ EffectiveDate: d.EffectiveDate, Amount: d.Lines[0].DebitAmount ?? 0 })),
370
+ Correction: plan.Correction ? { EffectiveDate: plan.Correction.EffectiveDate, Amount: plan.CorrectionAmount } : null,
371
+ MovedInstalments: checked.Instalments.map((m) => ({
372
+ InstallmentNumber: m.InstallmentNumber,
373
+ DueDate: IsoDay(m.DueDate),
374
+ NewDueDate: IsoDay(m.NewDueDate),
375
+ })),
376
+ InstalmentsLeft: checked.InstalmentsLeft,
377
+ };
378
+ const window = `${summary.NewStartDate} – ${summary.NewEndDate}`;
379
+ if (input.Preview) {
380
+ return { ...summary, Message: `Term would run ${window} instead of ${IsoDay(current.StartDate)} – ${IsoDay(current.EndDate)}.` };
381
+ }
382
+ const concession = await provider.GetEntityObject(ORDER_CONCESSION_ENTITY, user);
383
+ concession.NewRecord();
384
+ concession.DeliveryForm = 'Shift';
385
+ concession.SubscriptionTermID = termID;
386
+ concession.NewStartDate = checked.NewStartDate;
387
+ concession.NewEndDate = checked.NewEndDate;
388
+ concession.ReasonCategory = input.ReasonCategory;
389
+ concession.Reason = input.Reason.trim();
390
+ if (!(await concession.Save())) {
391
+ return { Success: false, Message: concession.LatestResult?.CompleteMessage ?? 'The amendment could not be recorded.' };
392
+ }
393
+ return {
394
+ ...summary,
395
+ OrderConcessionID: concession.ID,
396
+ Status: concession.Status,
397
+ Message: concession.Status === 'Approved'
398
+ ? `Term moved to ${window}. Accounting has been asked to confirm the re-cut.`
399
+ : `The move to ${window} is awaiting finance review; it takes effect when approved.`,
400
+ };
401
+ }
402
+ /** Finance sends a Shift awaiting its review to the ConcessionLimit approver (#507). */
403
+ async escalateShift(input, provider, user) {
404
+ let id;
405
+ try {
406
+ id = RequireUUID(input.EscalateOrderConcessionID, 'EscalateOrderConcessionID');
407
+ }
408
+ catch (e) {
409
+ return { Success: false, Message: String(e.message) };
410
+ }
411
+ const others = [input.SubscriptionTermID, input.NewStartDate, input.NewEndDate, input.NewAmount, input.OrderHeaderID, input.ReferralProgramID];
412
+ if (others.some((v) => v != null)) {
413
+ return { Success: false, Message: 'An escalation names only the concession and the reason.' };
414
+ }
415
+ const concession = await provider.GetEntityObject(ORDER_CONCESSION_ENTITY, user);
416
+ if (!(await concession.Load(id)))
417
+ return { Success: false, Message: `Order concession ${id} was not found.` };
418
+ if (typeof concession.EscalateShift !== 'function') {
419
+ return { Success: false, Message: 'The orders server subclass of Order Concessions is not registered, so the shift cannot be escalated.' };
420
+ }
421
+ if (!(await concession.EscalateShift(input.Reason ?? ''))) {
422
+ return { Success: false, Message: concession.LatestResult?.CompleteMessage ?? 'The shift could not be escalated.' };
423
+ }
424
+ return {
425
+ Success: true,
426
+ OrderConcessionID: concession.ID,
427
+ Status: concession.Status,
428
+ Message: 'The shift was sent to the ConcessionLimit approver; it takes effect when approved.',
429
+ };
170
430
  }
171
431
  };
172
432
  AmendArrangementOperation = __decorate([
173
433
  RegisterClass(BaseRemotableOperation, 'Orders.AmendArrangement')
174
434
  ], AmendArrangementOperation);
175
435
  export { AmendArrangementOperation };
436
+ function programNote(program) {
437
+ if (!program)
438
+ return '';
439
+ return program.InProgram
440
+ ? ` Referral program '${program.ProgramName}' would approve it.`
441
+ : ` It is more than referral program '${program.ProgramName}' grants (${program.DaysPerReferral} days), or the ` +
442
+ `program is inactive, so it would be routed for approval.`;
443
+ }
176
444
  function day(d) {
177
445
  return d.toISOString().slice(0, 10);
178
446
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AmendArrangementOperation.js","sourceRoot":"","sources":["../src/AmendArrangementOperation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AmendArrangementOperation.js","sourceRoot":"","sources":["../src/AmendArrangementOperation.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,EACH,sBAAsB,EACtB,OAAO,GAIV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EACH,+BAA+B,IAAI,mCAAmC,EACtE,WAAW,EAGX,eAAe,EACf,aAAa,EACb,mBAAmB,GAEtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAA+B,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,MAAM,iBAAiB,GAAsB,CAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAGpF,IAAM,yBAAyB,GAA/B,MAAM,yBAA0B,SAAQ,mCAAmC;IACpE,KAAK,CAAC,eAAe,CAC3B,KAA4B,EAC5B,QAA2B,EAC3B,IAAc;QAEd,IAAI,KAAK,CAAC,yBAAyB,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC9F,IAAI,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,iCAAiC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACzG,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC;QACrG,IAAI,KAAK,CAAC,qBAAqB,IAAI,IAAI,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,EAAE,CAAC;YACrE,IACI,KAAK,CAAC,kBAAkB,IAAI,IAAI;gBAChC,KAAK,CAAC,YAAY,IAAI,IAAI;gBAC1B,KAAK,CAAC,UAAU,IAAI,IAAI;gBACxB,KAAK,CAAC,SAAS,IAAI,IAAI;gBACvB,KAAK,CAAC,kBAAkB,IAAI,IAAI;gBAChC,KAAK,CAAC,iBAAiB,IAAI,IAAI,EACjC,CAAC;gBACC,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,wGAAwG;iBACpH,CAAC;YACN,CAAC;YACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,IAAI,KAAK,CAAC,YAAY,IAAI,IAAI,EAAE,CAAC;gBACzD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,kEAAkE,EAAE,CAAC;YAC3G,CAAC;YACD,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;gBAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,4EAA4E,EAAE,CAAC;YACrH,CAAC;YACD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,KAAK,CAAC,kBAAkB,IAAI,IAAI,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC5D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,gFAAgF,EAAE,CAAC;QACzH,CAAC;QAED,IAAI,MAAmB,CAAC;QACxB,IAAI,QAAqB,CAAC;QAC1B,IAAI,CAAC;YACD,WAAW,CAAC,KAAK,CAAC,kBAA4B,EAAE,oBAAoB,CAAC,CAAC;YACtE,MAAM,GAAG,WAAW,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;YACzE,QAAQ,GAAG,WAAW,CAAC,kBAAkB,CAAC,KAAK,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;YAC/E,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI;gBAAE,WAAW,CAAC,KAAK,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;QACnG,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAE,CAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;QACxG,MAAM,MAAM,GAAG,KAAK,CAAC,kBAA4B,CAAC;QAElD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAChE,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC7E,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpH,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,EAAE;YACxC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;YACzD,4DAA4D;YAC5D,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,GAAG,UAAU,CAAC;SACjG,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,OAAO,EACH,sGAAsG;oBACtG,iFAAiF;aACxF,CAAC;QACN,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;YACvD,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,qGAAqG;aACjH,CAAC;QACN,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;gBAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,6EAA6E,EAAE,CAAC;YACtH,CAAC;YACD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrF,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC;QAEvC,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACpC,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE,EAChF,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CACrC,CAAC;QACF,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAE7E,IAAI,OAAO,GAAkC,IAAI,CAAC;QAClD,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,MAAM,oBAAoB,CACtC;gBACI,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;gBAC1C,YAAY,EAAE,UAAU;gBACxB,cAAc,EAAE,KAAK,CAAC,cAAe;gBACrC,SAAS,EAAE,SAAS;gBACpB,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,oBAAoB,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC;gBACxF,aAAa,EAAE,OAAO,CAAC,aAAa;gBACpC,KAAK,EAAE,OAAO,CAAC,aAAa;aAC/B,EACD,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CACrC,CAAC;YACF,IAAI,OAAO,OAAO,KAAK,QAAQ;gBAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;YAC7E,OAAO,GAAG,OAAO,CAAC;QACtB,CAAC;QAED,MAAM,OAAO,GAA2B;YACpC,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,WAAW,EAAE,yBAAyB,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1G,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC;YAC3C,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;YACnC,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;YACzC,KAAK,EAAE,eAAe,CAAC;gBACnB,IAAI,EAAE,UAAU;gBAChB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,cAAc,CAAC;gBACtE,SAAS,EAAE,SAAS;aACvB,CAAC,CAAC,KAAK;YACR,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS;YAChC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzC,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvE,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW;aAC/C,CAAC,CAAC;YACH,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC;SAC3H,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,kBAAkB,OAAO,CAAC,UAAU,eAAe,OAAO,CAAC,cAAc,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QACxI,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAuC,uBAAuB,EAAE,IAAI,CAAC,CAAC;QACvH,UAAU,CAAC,SAAS,EAAE,CAAC;QACvB,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC;QACrC,UAAU,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACvC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;QACjC,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC,cAAe,CAAC;QAClD,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI;YAAE,UAAU,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAC5F,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,YAAY,EAAE,eAAe,IAAI,sCAAsC,EAAE,CAAC;QAC3H,CAAC;QACD,OAAO;YACH,GAAG,OAAO;YACV,iBAAiB,EAAE,UAAU,CAAC,EAAE;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;YACvC,OAAO,EACH,UAAU,CAAC,MAAM,KAAK,UAAU;gBAC5B,CAAC,CAAC,oBAAoB,OAAO,CAAC,UAAU,oDAAoD;gBAC5F,CAAC,CAAC,oBAAoB,OAAO,CAAC,UAAU,uDAAuD;SAC1G,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,WAAW,CACrB,KAA4B,EAC5B,QAA2B,EAC3B,IAAc;QAEd,IAAI,OAAsD,CAAC;QAC3D,IAAI,CAAC;YACD,OAAO,GAAG,MAAM,iBAAiB,CAC7B;gBACI,kBAAkB,EAAE,WAAW,CAAC,KAAK,CAAC,kBAA4B,EAAE,oBAAoB,CAAC;gBACzF,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;gBAClC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI;gBACjH,eAAe,EAAE,KAAK,CAAC,eAAe,KAAK,IAAI;gBAC/C,iBAAiB,EAAE,IAAI,CAAC,EAAE;aAC7B,EACD,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CACrC,CAAC;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAE,CAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACrE,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAE7E,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAChC,MAAM,OAAO,GAA2B;YACpC,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC;YACzC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,SAAS;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjC,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW;aACvC,CAAC,CAAC;YACH,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC;YAChH,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzC,YAAY,EAAE,CAAC,CAAC,EAAE;gBAClB,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;gBACtC,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,SAAS,EAAE,CAAC,CAAC,SAAS;aACzB,CAAC,CAAC;YACH,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACjI,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;SACjC,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO;gBACH,GAAG,OAAO;gBACV,OAAO,EACH,QAAQ,OAAO,CAAC,UAAU,OAAO,OAAO,CAAC,kBAAkB,kBAAkB,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;oBACnH,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,2CAA2C;oBACtG,GAAG,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,yCAAyC;oBAChF,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B;oBAC5D,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC;aAC1F,CAAC;QACN,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAuC,uBAAuB,EAAE,IAAI,CAAC,CAAC;QACvH,UAAU,CAAC,SAAS,EAAE,CAAC;QACvB,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC;QAClC,UAAU,CAAC,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/C,UAAU,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACzC,UAAU,CAAC,0BAA0B,GAAG,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAAC;QACzE,UAAU,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,KAAK,IAAI,CAAC;QAC5D,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QACjD,UAAU,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,YAAY,EAAE,eAAe,IAAI,sCAAsC,EAAE,CAAC;QAC3H,CAAC;QACD,OAAO;YACH,GAAG,OAAO;YACV,iBAAiB,EAAE,UAAU,CAAC,EAAE;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EACH,UAAU,CAAC,MAAM,KAAK,UAAU;gBAC5B,CAAC,CAAC,QAAQ,OAAO,CAAC,UAAU,eAAe,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;oBACvE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,sBAAsB,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACxF,oDAAoD,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,GAAG;gBACxG,CAAC,CAAC,iBAAiB,OAAO,CAAC,UAAU,OAAO,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,uDAAuD;SAC1I,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC3B,KAA4B,EAC5B,QAA2B,EAC3B,IAAc;QAEd,IAAI,OAAqD,CAAC;QAC1D,IAAI,CAAC;YACD,OAAO,GAAG,MAAM,gBAAgB,CAC5B;gBACI,aAAa,EAAE,WAAW,CAAC,KAAK,CAAC,aAAuB,EAAE,eAAe,CAAC;gBAC1E,qBAAqB,EAAE,WAAW,CAAC,KAAK,CAAC,qBAA+B,EAAE,uBAAuB,CAAC;aACrG,EACD,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CACrC,CAAC;QACN,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAE,CAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACrE,CAAC;QACD,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAE7E,MAAM,OAAO,GAA2B;YACpC,OAAO,EAAE,IAAI;YACb,mBAAmB,EAAE,OAAO,CAAC,cAAc;YAC3C,eAAe,EAAE,OAAO,CAAC,YAAY;YACrC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,UAAU,EAAE,OAAO,CAAC,UAAU;SACjC,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO;gBACH,GAAG,OAAO;gBACV,OAAO,EAAE,SAAS,OAAO,CAAC,WAAW,kBAAkB,OAAO,CAAC,YAAY,SAAS,OAAO,CAAC,UAAU,IAAI,YAAY,GAAG;aAC5H,CAAC;QACN,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAuC,uBAAuB,EAAE,IAAI,CAAC,CAAC;QACvH,UAAU,CAAC,SAAS,EAAE,CAAC;QACvB,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC;QAClC,UAAU,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QACjD,UAAU,CAAC,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC;QACjE,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC,cAAe,CAAC;QAClD,UAAU,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,YAAY,EAAE,eAAe,IAAI,sCAAsC,EAAE,CAAC;QAC3H,CAAC;QACD,OAAO;YACH,GAAG,OAAO;YACV,iBAAiB,EAAE,UAAU,CAAC,EAAE;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,iBAAiB,OAAO,CAAC,YAAY,uDAAuD;SACxG,CAAC;IACN,CAAC;IAED,sGAAsG;IAC9F,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,QAA2B,EAAE,IAAc;QACxF,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,QAAuC,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CACxB;YACI,UAAU,EAAE,iBAAiB;YAC7B,WAAW,EAAE,SAAS,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG;YAC3D,MAAM,EAAE,CAAC,sBAAsB,CAAC;YAChC,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,IAAI;SACpB,EACD,IAAI,CACP,CAAC;QACF,OAAO,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,oBAAoB,IAAI,IAAI,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,QAA2B,EAAE,IAAc;QAClF,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,QAAuC,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,OAAO,CACxB;YACI,UAAU,EAAE,uCAAuC;YACnD,WAAW,EAAE,SAAS,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG;YAClE,MAAM,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC;YAChC,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,IAAI;SACpB,EACD,IAAI,CACP,CAAC;QACF,MAAM,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI;YAAE,OAAO,qBAAqB,MAAM,iBAAiB,CAAC;QAC/D,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,qEAAqE;IAC7D,KAAK,CAAC,UAAU,CACpB,KAA4B,EAC5B,MAAc,EACd,OAA2C,EAC3C,SAAiB,EACjB,QAA2B,EAC3B,IAAc;QAEd,MAAM,OAAO,GAAG,MAAM,cAAc,CAChC,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE,EAChF,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CACrC,CAAC;QACF,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAE7E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC1B,MAAM,OAAO,GAA2B;YACpC,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAClD,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;YAC1C,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC;YAC9C,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;YACtC,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC;YAC5C,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACjC,aAAa,EAAE,CAAC,CAAC,aAAa;gBAC9B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBACvE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW;aACvC,CAAC,CAAC;YACH,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC,CAAC;YAChH,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI;YACpH,gBAAgB,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC9C,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;gBACtC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;gBAC1B,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC;aACnC,CAAC,CAAC;YACH,eAAe,EAAE,OAAO,CAAC,eAAe;SAC3C,CAAC;QACF,MAAM,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QACjE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,OAAO,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,kBAAkB,MAAM,eAAe,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACrI,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAuC,uBAAuB,EAAE,IAAI,CAAC,CAAC;QACvH,UAAU,CAAC,SAAS,EAAE,CAAC;QACvB,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC;QAClC,UAAU,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACvC,UAAU,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC/C,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAC3C,UAAU,CAAC,cAAc,GAAG,KAAK,CAAC,cAAe,CAAC;QAClD,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,YAAY,EAAE,eAAe,IAAI,sCAAsC,EAAE,CAAC;QAC3H,CAAC;QACD,OAAO;YACH,GAAG,OAAO;YACV,iBAAiB,EAAE,UAAU,CAAC,EAAE;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EACH,UAAU,CAAC,MAAM,KAAK,UAAU;gBAC5B,CAAC,CAAC,iBAAiB,MAAM,oDAAoD;gBAC7E,CAAC,CAAC,eAAe,MAAM,6DAA6D;SAC/F,CAAC;IACN,CAAC;IAED,wFAAwF;IAChF,KAAK,CAAC,aAAa,CAAC,KAA4B,EAAE,QAA2B,EAAE,IAAc;QACjG,IAAI,EAAU,CAAC;QACf,IAAI,CAAC;YACD,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,yBAAmC,EAAE,2BAA2B,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAE,CAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACrE,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC/I,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;YAChC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,yDAAyD,EAAE,CAAC;QAClG,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,eAAe,CAA8B,uBAAuB,EAAE,IAAI,CAAC,CAAC;QAC9G,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;QAC9G,IAAI,OAAO,UAAU,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YACjD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,sGAAsG,EAAE,CAAC;QAC/I,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YACxD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,YAAY,EAAE,eAAe,IAAI,mCAAmC,EAAE,CAAC;QACxH,CAAC;QACD,OAAO;YACH,OAAO,EAAE,IAAI;YACb,iBAAiB,EAAE,UAAU,CAAC,EAAE;YAChC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,OAAO,EAAE,oFAAoF;SAChG,CAAC;IACN,CAAC;CACJ,CAAA;AAraY,yBAAyB;IADrC,aAAa,CAAC,sBAAsB,EAAE,yBAAyB,CAAC;GACpD,yBAAyB,CAqarC;;AAED,SAAS,WAAW,CAAC,OAAsC;IACvD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC,SAAS;QACpB,CAAC,CAAC,sBAAsB,OAAO,CAAC,WAAW,qBAAqB;QAChE,CAAC,CAAC,sCAAsC,OAAO,CAAC,WAAW,aAAa,OAAO,CAAC,eAAe,iBAAiB;YAC1G,0DAA0D,CAAC;AACzE,CAAC;AAED,SAAS,GAAG,CAAC,CAAO;IAChB,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,6BAA6B;IACzC,sBAAsB;AAC1B,CAAC"}