merchi_cart 0.0.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 (307) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +99 -0
  3. package/lib/Cart.js +62 -0
  4. package/lib/CartAlert.js +43 -0
  5. package/lib/CartHeader.js +28 -0
  6. package/lib/CartProvider.js +304 -0
  7. package/lib/CartTotals.js +99 -0
  8. package/lib/MerchiSDK/constants/auto_assign_production_on_actions.js +8 -0
  9. package/lib/MerchiSDK/constants/call_to_actions.js +16 -0
  10. package/lib/MerchiSDK/constants/call_to_actions.test.js +5 -0
  11. package/lib/MerchiSDK/constants/discount_types.js +5 -0
  12. package/lib/MerchiSDK/constants/discount_types.test.js +5 -0
  13. package/lib/MerchiSDK/constants/domain_types.js +14 -0
  14. package/lib/MerchiSDK/constants/domain_types.test.js +5 -0
  15. package/lib/MerchiSDK/constants/errors.js +33 -0
  16. package/lib/MerchiSDK/constants/event_types.js +7 -0
  17. package/lib/MerchiSDK/constants/event_types.test.js +5 -0
  18. package/lib/MerchiSDK/constants/field_types.js +15 -0
  19. package/lib/MerchiSDK/constants/field_types.test.js +5 -0
  20. package/lib/MerchiSDK/constants/input_types.js +15 -0
  21. package/lib/MerchiSDK/constants/input_types.test.js +5 -0
  22. package/lib/MerchiSDK/constants/inventory_status.test.js +5 -0
  23. package/lib/MerchiSDK/constants/inventory_statuses.js +8 -0
  24. package/lib/MerchiSDK/constants/invoice_types.js +7 -0
  25. package/lib/MerchiSDK/constants/invoice_types.test.js +5 -0
  26. package/lib/MerchiSDK/constants/item_types.js +7 -0
  27. package/lib/MerchiSDK/constants/item_types.test.js +5 -0
  28. package/lib/MerchiSDK/constants/job/drafting_status.js +9 -0
  29. package/lib/MerchiSDK/constants/job/drafting_status.test.js +5 -0
  30. package/lib/MerchiSDK/constants/job/payment_status.js +9 -0
  31. package/lib/MerchiSDK/constants/job/payment_status.test.js +5 -0
  32. package/lib/MerchiSDK/constants/job/production_status.js +14 -0
  33. package/lib/MerchiSDK/constants/job/production_status.test.js +5 -0
  34. package/lib/MerchiSDK/constants/job/shipment_status.js +13 -0
  35. package/lib/MerchiSDK/constants/job/shipment_status.test.js +5 -0
  36. package/lib/MerchiSDK/constants/job/supply_chain_request_status.js +8 -0
  37. package/lib/MerchiSDK/constants/job/supply_chain_request_status.test.js +5 -0
  38. package/lib/MerchiSDK/constants/job_priorities.js +8 -0
  39. package/lib/MerchiSDK/constants/job_priorities.test.js +5 -0
  40. package/lib/MerchiSDK/constants/job_status.js +51 -0
  41. package/lib/MerchiSDK/constants/job_status.test.js +5 -0
  42. package/lib/MerchiSDK/constants/job_types.js +17 -0
  43. package/lib/MerchiSDK/constants/job_types.test.js +5 -0
  44. package/lib/MerchiSDK/constants/notification_sections.js +15 -0
  45. package/lib/MerchiSDK/constants/notification_sections.test.js +5 -0
  46. package/lib/MerchiSDK/constants/notification_types.js +99 -0
  47. package/lib/MerchiSDK/constants/notification_types.test.js +5 -0
  48. package/lib/MerchiSDK/constants/notification_urgencies.js +8 -0
  49. package/lib/MerchiSDK/constants/notification_urgencies.test.js +5 -0
  50. package/lib/MerchiSDK/constants/payment_types.js +12 -0
  51. package/lib/MerchiSDK/constants/payment_types.test.js +5 -0
  52. package/lib/MerchiSDK/constants/platform.js +6 -0
  53. package/lib/MerchiSDK/constants/platform.test.js +9 -0
  54. package/lib/MerchiSDK/constants/product_types.js +27 -0
  55. package/lib/MerchiSDK/constants/product_types.test.js +5 -0
  56. package/lib/MerchiSDK/constants/rights.js +7 -0
  57. package/lib/MerchiSDK/constants/rights.test.js +5 -0
  58. package/lib/MerchiSDK/constants/robots_meta_directives.js +2 -0
  59. package/lib/MerchiSDK/constants/robots_meta_directives.test.js +5 -0
  60. package/lib/MerchiSDK/constants/roles.js +26 -0
  61. package/lib/MerchiSDK/constants/roles.test.js +5 -0
  62. package/lib/MerchiSDK/constants/shipment_companies.js +20 -0
  63. package/lib/MerchiSDK/constants/shipment_companies.test.js +5 -0
  64. package/lib/MerchiSDK/constants/shipment_services.js +5 -0
  65. package/lib/MerchiSDK/constants/shipment_services.test.js +5 -0
  66. package/lib/MerchiSDK/constants/system_roles.js +5 -0
  67. package/lib/MerchiSDK/constants/system_roles.test.js +5 -0
  68. package/lib/MerchiSDK/constants/theme_foundations.js +8 -0
  69. package/lib/MerchiSDK/constants/theme_foundations.test.js +5 -0
  70. package/lib/MerchiSDK/constants/theme_status.js +7 -0
  71. package/lib/MerchiSDK/constants/theme_status.test.js +5 -0
  72. package/lib/MerchiSDK/constants/user_types.js +19 -0
  73. package/lib/MerchiSDK/constants/user_types.test.js +5 -0
  74. package/lib/MerchiSDK/constants/white_label_accessibilities.js +7 -0
  75. package/lib/MerchiSDK/constants/white_label_accessibilities.test.js +5 -0
  76. package/lib/MerchiSDK/cookie.js +17 -0
  77. package/lib/MerchiSDK/cookie.test.js +13 -0
  78. package/lib/MerchiSDK/entities/address.js +166 -0
  79. package/lib/MerchiSDK/entities/address.test.js +7 -0
  80. package/lib/MerchiSDK/entities/assignment.js +185 -0
  81. package/lib/MerchiSDK/entities/assignment.test.js +39 -0
  82. package/lib/MerchiSDK/entities/automatic_payment_relationship.js +77 -0
  83. package/lib/MerchiSDK/entities/automatic_payment_relationship.test.js +7 -0
  84. package/lib/MerchiSDK/entities/backup.js +44 -0
  85. package/lib/MerchiSDK/entities/backup.test.js +7 -0
  86. package/lib/MerchiSDK/entities/bank.js +116 -0
  87. package/lib/MerchiSDK/entities/bank.test.js +7 -0
  88. package/lib/MerchiSDK/entities/cart.js +203 -0
  89. package/lib/MerchiSDK/entities/cart.test.js +53 -0
  90. package/lib/MerchiSDK/entities/cart_item.js +153 -0
  91. package/lib/MerchiSDK/entities/cart_item.test.js +35 -0
  92. package/lib/MerchiSDK/entities/cart_shipment_group.js +62 -0
  93. package/lib/MerchiSDK/entities/cart_shipment_quote.js +85 -0
  94. package/lib/MerchiSDK/entities/category.js +92 -0
  95. package/lib/MerchiSDK/entities/category.test.js +53 -0
  96. package/lib/MerchiSDK/entities/company.js +648 -0
  97. package/lib/MerchiSDK/entities/company.test.js +7 -0
  98. package/lib/MerchiSDK/entities/company_invitation.js +82 -0
  99. package/lib/MerchiSDK/entities/company_invitation.test.js +7 -0
  100. package/lib/MerchiSDK/entities/component.js +209 -0
  101. package/lib/MerchiSDK/entities/component.test.js +13 -0
  102. package/lib/MerchiSDK/entities/component_tag.js +50 -0
  103. package/lib/MerchiSDK/entities/component_tag.test.js +7 -0
  104. package/lib/MerchiSDK/entities/component_version.js +80 -0
  105. package/lib/MerchiSDK/entities/component_version.test.js +7 -0
  106. package/lib/MerchiSDK/entities/country_tax.js +110 -0
  107. package/lib/MerchiSDK/entities/country_tax.test.js +12 -0
  108. package/lib/MerchiSDK/entities/discount.js +77 -0
  109. package/lib/MerchiSDK/entities/discount.test.js +21 -0
  110. package/lib/MerchiSDK/entities/discount_group.js +74 -0
  111. package/lib/MerchiSDK/entities/discount_group.test.js +7 -0
  112. package/lib/MerchiSDK/entities/domain.js +535 -0
  113. package/lib/MerchiSDK/entities/domain.test.js +76 -0
  114. package/lib/MerchiSDK/entities/domain_invitation.js +90 -0
  115. package/lib/MerchiSDK/entities/domain_invitation.test.js +7 -0
  116. package/lib/MerchiSDK/entities/domain_tag.js +100 -0
  117. package/lib/MerchiSDK/entities/domain_tag.test.js +7 -0
  118. package/lib/MerchiSDK/entities/draft.js +180 -0
  119. package/lib/MerchiSDK/entities/draft.test.js +40 -0
  120. package/lib/MerchiSDK/entities/draft_comment.js +132 -0
  121. package/lib/MerchiSDK/entities/draft_comment.test.js +7 -0
  122. package/lib/MerchiSDK/entities/draft_template.js +105 -0
  123. package/lib/MerchiSDK/entities/draft_template.test.js +7 -0
  124. package/lib/MerchiSDK/entities/email_address.js +68 -0
  125. package/lib/MerchiSDK/entities/email_address.test.js +7 -0
  126. package/lib/MerchiSDK/entities/email_counter.js +56 -0
  127. package/lib/MerchiSDK/entities/email_counter.test.js +7 -0
  128. package/lib/MerchiSDK/entities/enrolled_domain.js +85 -0
  129. package/lib/MerchiSDK/entities/enrolled_domain.test.js +7 -0
  130. package/lib/MerchiSDK/entities/exchange_rate.js +62 -0
  131. package/lib/MerchiSDK/entities/exchange_rate.test.js +7 -0
  132. package/lib/MerchiSDK/entities/file.js +384 -0
  133. package/lib/MerchiSDK/entities/file.test.js +39 -0
  134. package/lib/MerchiSDK/entities/internal_tag.js +120 -0
  135. package/lib/MerchiSDK/entities/internal_tag.test.js +7 -0
  136. package/lib/MerchiSDK/entities/inventory.js +120 -0
  137. package/lib/MerchiSDK/entities/inventory.test.js +27 -0
  138. package/lib/MerchiSDK/entities/inventory_unit_variation.js +64 -0
  139. package/lib/MerchiSDK/entities/inventory_unit_variation.test.js +7 -0
  140. package/lib/MerchiSDK/entities/invoice.js +420 -0
  141. package/lib/MerchiSDK/entities/invoice.test.js +40 -0
  142. package/lib/MerchiSDK/entities/item.js +102 -0
  143. package/lib/MerchiSDK/entities/item.test.js +18 -0
  144. package/lib/MerchiSDK/entities/job.js +744 -0
  145. package/lib/MerchiSDK/entities/job.test.js +104 -0
  146. package/lib/MerchiSDK/entities/job_comment.js +120 -0
  147. package/lib/MerchiSDK/entities/job_comment.test.js +7 -0
  148. package/lib/MerchiSDK/entities/matching_inventory.js +77 -0
  149. package/lib/MerchiSDK/entities/menu.js +78 -0
  150. package/lib/MerchiSDK/entities/menu.test.js +7 -0
  151. package/lib/MerchiSDK/entities/menu_item.js +76 -0
  152. package/lib/MerchiSDK/entities/menu_item.test.js +7 -0
  153. package/lib/MerchiSDK/entities/notification.js +234 -0
  154. package/lib/MerchiSDK/entities/notification.test.js +7 -0
  155. package/lib/MerchiSDK/entities/page.js +84 -0
  156. package/lib/MerchiSDK/entities/page.test.js +7 -0
  157. package/lib/MerchiSDK/entities/payment.js +141 -0
  158. package/lib/MerchiSDK/entities/payment.test.js +19 -0
  159. package/lib/MerchiSDK/entities/payment_device.js +87 -0
  160. package/lib/MerchiSDK/entities/payment_device.test.js +7 -0
  161. package/lib/MerchiSDK/entities/phone_number.js +98 -0
  162. package/lib/MerchiSDK/entities/phone_number.test.js +7 -0
  163. package/lib/MerchiSDK/entities/product.js +806 -0
  164. package/lib/MerchiSDK/entities/product.test.js +812 -0
  165. package/lib/MerchiSDK/entities/production_comment.js +120 -0
  166. package/lib/MerchiSDK/entities/production_comment.test.js +7 -0
  167. package/lib/MerchiSDK/entities/quote.js +208 -0
  168. package/lib/MerchiSDK/entities/quote.test.js +108 -0
  169. package/lib/MerchiSDK/entities/quote_item.js +121 -0
  170. package/lib/MerchiSDK/entities/quote_item.test.js +57 -0
  171. package/lib/MerchiSDK/entities/seo_domain_page.js +82 -0
  172. package/lib/MerchiSDK/entities/seo_domain_page.test.js +7 -0
  173. package/lib/MerchiSDK/entities/session.js +77 -0
  174. package/lib/MerchiSDK/entities/session.test.js +7 -0
  175. package/lib/MerchiSDK/entities/shipment.js +401 -0
  176. package/lib/MerchiSDK/entities/shipment.test.js +29 -0
  177. package/lib/MerchiSDK/entities/shipment_item.js +49 -0
  178. package/lib/MerchiSDK/entities/shipment_item.test.js +7 -0
  179. package/lib/MerchiSDK/entities/shipment_item_fulfillment.js +48 -0
  180. package/lib/MerchiSDK/entities/shipment_item_fulfillment.test.js +7 -0
  181. package/lib/MerchiSDK/entities/shipment_method.js +146 -0
  182. package/lib/MerchiSDK/entities/shipment_method.test.js +7 -0
  183. package/lib/MerchiSDK/entities/shipment_method_variation.js +104 -0
  184. package/lib/MerchiSDK/entities/shipment_method_variation.test.js +7 -0
  185. package/lib/MerchiSDK/entities/short_url.js +95 -0
  186. package/lib/MerchiSDK/entities/short_url.test.js +7 -0
  187. package/lib/MerchiSDK/entities/subscription_plan.js +172 -0
  188. package/lib/MerchiSDK/entities/subscription_plan.test.js +7 -0
  189. package/lib/MerchiSDK/entities/supply_domain.js +73 -0
  190. package/lib/MerchiSDK/entities/supply_domain.test.js +7 -0
  191. package/lib/MerchiSDK/entities/system_role.js +50 -0
  192. package/lib/MerchiSDK/entities/system_role.test.js +7 -0
  193. package/lib/MerchiSDK/entities/theme.js +614 -0
  194. package/lib/MerchiSDK/entities/theme.test.js +40 -0
  195. package/lib/MerchiSDK/entities/theme_css_setting.js +67 -0
  196. package/lib/MerchiSDK/entities/theme_css_setting.test.js +7 -0
  197. package/lib/MerchiSDK/entities/user.js +749 -0
  198. package/lib/MerchiSDK/entities/user.test.js +158 -0
  199. package/lib/MerchiSDK/entities/user_company.js +78 -0
  200. package/lib/MerchiSDK/entities/user_company.test.js +7 -0
  201. package/lib/MerchiSDK/entities/variation.js +147 -0
  202. package/lib/MerchiSDK/entities/variation.test.js +7 -0
  203. package/lib/MerchiSDK/entities/variation_field.js +313 -0
  204. package/lib/MerchiSDK/entities/variation_field.test.js +70 -0
  205. package/lib/MerchiSDK/entities/variation_fields_option.js +190 -0
  206. package/lib/MerchiSDK/entities/variation_fields_option.test.js +48 -0
  207. package/lib/MerchiSDK/entities/variation_option.js +129 -0
  208. package/lib/MerchiSDK/entities/variation_option.test.js +7 -0
  209. package/lib/MerchiSDK/entities/variations_group.js +111 -0
  210. package/lib/MerchiSDK/entities/variations_group.test.js +7 -0
  211. package/lib/MerchiSDK/entity.js +896 -0
  212. package/lib/MerchiSDK/merchi.js +332 -0
  213. package/lib/MerchiSDK/merchi.test.js +36 -0
  214. package/lib/MerchiSDK/request.js +137 -0
  215. package/lib/MerchiSDK/request.test.js +47 -0
  216. package/lib/MerchiSDK/test_util.js +20 -0
  217. package/lib/MerchiSDK/toasts.js +28 -0
  218. package/lib/MerchiSDK/toasts.test.js +47 -0
  219. package/lib/MerchiSDK/util/float.js +25 -0
  220. package/lib/MerchiSDK/util/query_string.js +12 -0
  221. package/lib/MerchiSDK/util/query_string.test.js +7 -0
  222. package/lib/MerchiSDK/util/validation.js +4 -0
  223. package/lib/MerchiSDK/util/validation.test.js +13 -0
  224. package/lib/MerchiSDK/uuid.js +9 -0
  225. package/lib/MerchiSDK/uuid.test.js +14 -0
  226. package/lib/assets/merchi-swipe-outline.png +0 -0
  227. package/lib/assets/product-not-found.png +0 -0
  228. package/lib/buttons/Button.js +24 -0
  229. package/lib/buttons/ButtonBack.js +38 -0
  230. package/lib/buttons/ButtonClearCart.js +19 -0
  231. package/lib/buttons/ButtonInvoiceDownload.js +96 -0
  232. package/lib/buttons/ButtonNext.js +45 -0
  233. package/lib/buttons/ButtonNextDynamic.js +23 -0
  234. package/lib/buttons/ButtonPay.js +28 -0
  235. package/lib/buttons/ButtonShipmentTabNext.js +33 -0
  236. package/lib/buttons/index.js +8 -0
  237. package/lib/components/Alert.js +27 -0
  238. package/lib/components/CartBody.js +15 -0
  239. package/lib/components/CartClient.js +52 -0
  240. package/lib/components/CartFooter.js +13 -0
  241. package/lib/components/CartItemRow.js +133 -0
  242. package/lib/components/CartPaymentSettingsInvalid.js +15 -0
  243. package/lib/components/CartShipment.js +57 -0
  244. package/lib/components/CartTabContent.js +13 -0
  245. package/lib/components/CartTabPanel.js +26 -0
  246. package/lib/components/CartTableContainer.js +13 -0
  247. package/lib/components/Collapse.js +33 -0
  248. package/lib/components/LoadingTemplate.js +25 -0
  249. package/lib/components/NoCartItems.js +18 -0
  250. package/lib/components/ShipmentGroupCard.js +132 -0
  251. package/lib/components/Table.js +12 -0
  252. package/lib/components/Title.js +28 -0
  253. package/lib/components/containers.js +32 -0
  254. package/lib/components/index.js +15 -0
  255. package/lib/forms/FormNewCustomer.js +157 -0
  256. package/lib/forms/FormReturningCustomer.js +93 -0
  257. package/lib/forms/FormShipmentAddressAndNotes.js +118 -0
  258. package/lib/forms/FormSquarePayment.js +17 -0
  259. package/lib/forms/FormStripePayment.js +17 -0
  260. package/lib/forms/InputAcceptUserTermsAndConditions.js +38 -0
  261. package/lib/forms/InputError.js +17 -0
  262. package/lib/forms/InputSelect.js +52 -0
  263. package/lib/forms/InputText.js +59 -0
  264. package/lib/forms/InputsAddress.js +226 -0
  265. package/lib/index.js +5 -0
  266. package/lib/panels/PanelCartItems.js +59 -0
  267. package/lib/panels/PanelCartShipment.js +74 -0
  268. package/lib/panels/PanelClearCart.js +49 -0
  269. package/lib/panels/PanelClientCheckout.js +80 -0
  270. package/lib/panels/PanelEditCartItem.js +63 -0
  271. package/lib/panels/PanelPaymentSuccess.js +70 -0
  272. package/lib/panels/index.js +8 -0
  273. package/lib/slices/sliceCart.js +178 -0
  274. package/lib/slices/sliceCartAlert.js +35 -0
  275. package/lib/slices/sliceCartItem.js +30 -0
  276. package/lib/slices/sliceCartPayment.js +47 -0
  277. package/lib/slices/sliceCartShipment.js +72 -0
  278. package/lib/slices/sliceFormReturningCustomer.js +24 -0
  279. package/lib/slices/sliceNewCustomerForm.js +23 -0
  280. package/lib/square/SquareCard.js +52 -0
  281. package/lib/square/actions.js +53 -0
  282. package/lib/square/slices/reducersSquare.js +8 -0
  283. package/lib/square/slices/sliceSquareAlerts.js +34 -0
  284. package/lib/square/slices/sliceSquareForm.js +30 -0
  285. package/lib/store.js +704 -0
  286. package/lib/stripe/StripeCardFields.js +131 -0
  287. package/lib/stripe/StripeCardForm.js +149 -0
  288. package/lib/stripe/StripePaymentButtons.js +99 -0
  289. package/lib/stripe/actions.js +203 -0
  290. package/lib/stripe/slices/sliceStripeAlerts.js +34 -0
  291. package/lib/stripe/slices/sliceStripeCardForm.js +8 -0
  292. package/lib/stripe/slices/sliceStripeForm.js +57 -0
  293. package/lib/stripe/utils.js +20 -0
  294. package/lib/styles/globals.scss +179 -0
  295. package/lib/tabs/CartNav.js +33 -0
  296. package/lib/tabs/NavTab.js +38 -0
  297. package/lib/utilities/address.js +343 -0
  298. package/lib/utilities/cart.js +91 -0
  299. package/lib/utilities/company.js +7 -0
  300. package/lib/utilities/cookie.js +135 -0
  301. package/lib/utilities/currency.js +220 -0
  302. package/lib/utilities/helpers.js +224 -0
  303. package/lib/utilities/invoice.js +120 -0
  304. package/lib/utilities/product.js +6 -0
  305. package/lib/utilities/user.js +77 -0
  306. package/lib/utilities/variations.js +48 -0
  307. package/package.json +90 -0
@@ -0,0 +1,806 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _dec21, _dec22, _dec23, _dec24, _dec25, _dec26, _dec27, _dec28, _dec29, _dec30, _dec31, _dec32, _dec33, _dec34, _dec35, _dec36, _dec37, _dec38, _dec39, _dec40, _dec41, _dec42, _dec43, _dec44, _dec45, _dec46, _dec47, _dec48, _dec49, _dec50, _dec51, _dec52, _dec53, _dec54, _dec55, _dec56, _dec57, _dec58, _dec59, _dec60, _dec61, _dec62, _dec63, _dec64, _dec65, _dec66, _dec67, _dec68, _dec69, _dec70, _dec71, _dec72, _dec73, _dec74, _dec75, _dec76, _dec77, _dec78, _dec79, _dec80, _dec81, _dec82, _dec83, _dec84, _dec85, _dec86, _dec87, _dec88, _dec89, _dec90, _dec91, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16, _descriptor17, _descriptor18, _descriptor19, _descriptor20, _descriptor21, _descriptor22, _descriptor23, _descriptor24, _descriptor25, _descriptor26, _descriptor27, _descriptor28, _descriptor29, _descriptor30, _descriptor31, _descriptor32, _descriptor33, _descriptor34, _descriptor35, _descriptor36, _descriptor37, _descriptor38, _descriptor39, _descriptor40, _descriptor41, _descriptor42, _descriptor43, _descriptor44, _descriptor45, _descriptor46, _descriptor47, _descriptor48, _descriptor49, _descriptor50, _descriptor51, _descriptor52, _descriptor53, _descriptor54, _descriptor55, _descriptor56, _descriptor57, _descriptor58, _descriptor59, _descriptor60, _descriptor61, _descriptor62, _descriptor63, _descriptor64, _descriptor65, _descriptor66, _descriptor67, _descriptor68, _descriptor69, _descriptor70, _descriptor71, _descriptor72, _descriptor73, _descriptor74, _descriptor75, _descriptor76, _descriptor77, _descriptor78, _descriptor79, _descriptor80, _descriptor81, _descriptor82, _descriptor83, _descriptor84, _descriptor85, _descriptor86, _descriptor87, _descriptor88, _descriptor89, _descriptor90, _descriptor91, _class2;
3
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
4
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6
+ function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }
7
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
8
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
9
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
10
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
11
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12
+ function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
13
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
14
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
15
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
16
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
17
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
18
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
19
+ function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }
20
+ function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'transform-class-properties is enabled and runs after the decorators transform.'); }
21
+ import * as _ from 'lodash';
22
+ import { Component } from './component';
23
+ import { CountryTax } from './country_tax';
24
+ import { Entity } from '../entity';
25
+ import { MerchiFile } from './file';
26
+ export var Product = (_dec = Product.property({
27
+ type: Date
28
+ }), _dec2 = Product.property(), _dec3 = Component.property({
29
+ type: Date
30
+ }), _dec4 = Component.property({
31
+ type: Date
32
+ }), _dec5 = Component.property({
33
+ type: 'User'
34
+ }), _dec6 = Component.property({
35
+ type: 'User'
36
+ }), _dec7 = Product.property(), _dec8 = Product.property(), _dec9 = Product.property(), _dec10 = Product.property(), _dec11 = Product.property(), _dec12 = Product.property({
37
+ embeddedByDefault: false
38
+ }), _dec13 = Product.property({
39
+ type: 'DiscountGroup'
40
+ }), _dec14 = Product.property({
41
+ arrayType: 'ShipmentMethod'
42
+ }), _dec15 = Product.property(), _dec16 = Product.property({
43
+ type: Number
44
+ }), _dec17 = Product.property({
45
+ type: Number
46
+ }), _dec18 = Product.property({
47
+ type: Number
48
+ }), _dec19 = Product.property({
49
+ type: Number
50
+ }), _dec20 = Product.property(), _dec21 = Product.property(), _dec22 = Product.property(), _dec23 = Product.property({
51
+ type: String
52
+ }), _dec24 = Product.property({
53
+ type: String
54
+ }), _dec25 = Product.property({
55
+ type: String
56
+ }), _dec26 = Product.property({
57
+ type: String
58
+ }), _dec27 = Product.property({
59
+ type: String
60
+ }), _dec28 = Product.property({
61
+ type: String
62
+ }), _dec29 = Product.property(), _dec30 = Product.property(), _dec31 = Product.property(), _dec32 = Product.property(), _dec33 = Product.property(), _dec34 = Product.property(), _dec35 = Product.property(), _dec36 = Product.property({
63
+ type: Date
64
+ }), _dec37 = Product.property(), _dec38 = Product.property(), _dec39 = Product.property(), _dec40 = Product.property({
65
+ type: Number
66
+ }), _dec41 = Product.property(), _dec42 = Product.property(), _dec43 = Product.property(), _dec44 = Product.property(), _dec45 = Product.property(), _dec46 = Product.property(), _dec47 = Product.property(), _dec48 = Product.property(), _dec49 = Product.property(), _dec50 = Product.property(), _dec51 = Product.property(), _dec52 = Product.property(), _dec53 = Product.property(), _dec54 = Product.property(), _dec55 = Product.property(), _dec56 = Product.property({
67
+ arrayType: 'Category'
68
+ }), _dec57 = Product.property({
69
+ arrayType: 'Category'
70
+ }), _dec58 = Product.property({
71
+ arrayType: 'DiscountGroup'
72
+ }), _dec59 = Product.property(), _dec60 = Product.property({
73
+ type: CountryTax
74
+ }), _dec61 = Product.property({
75
+ type: Product
76
+ }), _dec62 = Product.property({
77
+ type: Product
78
+ }), _dec63 = Product.property({
79
+ type: Product
80
+ }), _dec64 = Product.property({
81
+ arrayType: 'Product'
82
+ }), _dec65 = Product.property({
83
+ type: Product
84
+ }), _dec66 = Product.property({
85
+ arrayType: 'Product'
86
+ }), _dec67 = Product.property({
87
+ type: Component
88
+ }), _dec68 = Product.property({
89
+ arrayType: 'MerchiFile'
90
+ }), _dec69 = Product.property({
91
+ arrayType: 'MerchiFile'
92
+ }), _dec70 = Product.property({
93
+ arrayType: 'MerchiFile'
94
+ }), _dec71 = Product.property({
95
+ arrayType: 'VariationField'
96
+ }), _dec72 = Product.property({
97
+ arrayType: 'VariationField'
98
+ }), _dec73 = Product.property({
99
+ arrayType: 'DomainTag'
100
+ }), _dec74 = Product.property({
101
+ arrayType: 'InternalTag'
102
+ }), _dec75 = Product.property({
103
+ arrayType: 'SeoDomainPage'
104
+ }), _dec76 = Product.property({
105
+ type: MerchiFile
106
+ }), _dec77 = Product.property({
107
+ type: 'Job'
108
+ }), _dec78 = Product.property({
109
+ type: 'Job'
110
+ }), _dec79 = Product.property({
111
+ arrayType: 'Company',
112
+ jsonName: 'saved_by_companies'
113
+ }), _dec80 = Product.property({
114
+ arrayType: 'SupplyDomain'
115
+ }), _dec81 = Product.property(), _dec82 = Product.property({
116
+ arrayType: 'SupplyDomain'
117
+ }), _dec83 = Product.property(), _dec84 = Product.property(), _dec85 = Product.property({
118
+ arrayType: 'Inventory'
119
+ }), _dec86 = Product.property({
120
+ arrayType: 'CartItem'
121
+ }), _dec87 = Product.property({
122
+ arrayType: 'Job'
123
+ }), _dec88 = Product.property({
124
+ arrayType: 'Job'
125
+ }), _dec89 = Product.property({
126
+ arrayType: 'User',
127
+ jsonName: 'saved_by_users'
128
+ }), _dec90 = Product.property({
129
+ arrayType: 'User'
130
+ }), _dec91 = Product.property({
131
+ arrayType: 'DraftTemplate'
132
+ }), (_class = (_class2 = /*#__PURE__*/function (_Entity) {
133
+ _inherits(Product, _Entity);
134
+ function Product() {
135
+ var _this;
136
+ _classCallCheck(this, Product);
137
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
138
+ args[_key] = arguments[_key];
139
+ }
140
+ _this = _callSuper(this, Product, [].concat(args));
141
+ _initializerDefineProperty(_this, "archived", _descriptor, _assertThisInitialized(_this));
142
+ _initializerDefineProperty(_this, "id", _descriptor2, _assertThisInitialized(_this));
143
+ _initializerDefineProperty(_this, "created", _descriptor3, _assertThisInitialized(_this));
144
+ _initializerDefineProperty(_this, "updated", _descriptor4, _assertThisInitialized(_this));
145
+ _initializerDefineProperty(_this, "createdBy", _descriptor5, _assertThisInitialized(_this));
146
+ _initializerDefineProperty(_this, "updatedBy", _descriptor6, _assertThisInitialized(_this));
147
+ _initializerDefineProperty(_this, "productType", _descriptor7, _assertThisInitialized(_this));
148
+ _initializerDefineProperty(_this, "minimum", _descriptor8, _assertThisInitialized(_this));
149
+ _initializerDefineProperty(_this, "minimumPerGroup", _descriptor9, _assertThisInitialized(_this));
150
+ _initializerDefineProperty(_this, "deliveryDaysNormal", _descriptor10, _assertThisInitialized(_this));
151
+ _initializerDefineProperty(_this, "unitPrice", _descriptor11, _assertThisInitialized(_this));
152
+ _initializerDefineProperty(_this, "buyUnitPrice", _descriptor12, _assertThisInitialized(_this));
153
+ _initializerDefineProperty(_this, "unitPriceDiscountGroup", _descriptor13, _assertThisInitialized(_this));
154
+ _initializerDefineProperty(_this, "shipmentMethods", _descriptor14, _assertThisInitialized(_this));
155
+ _initializerDefineProperty(_this, "margin", _descriptor15, _assertThisInitialized(_this));
156
+ _initializerDefineProperty(_this, "unitWeight", _descriptor16, _assertThisInitialized(_this));
157
+ _initializerDefineProperty(_this, "unitHeight", _descriptor17, _assertThisInitialized(_this));
158
+ _initializerDefineProperty(_this, "unitWidth", _descriptor18, _assertThisInitialized(_this));
159
+ _initializerDefineProperty(_this, "unitDepth", _descriptor19, _assertThisInitialized(_this));
160
+ _initializerDefineProperty(_this, "name", _descriptor20, _assertThisInitialized(_this));
161
+ _initializerDefineProperty(_this, "country", _descriptor21, _assertThisInitialized(_this));
162
+ _initializerDefineProperty(_this, "currency", _descriptor22, _assertThisInitialized(_this));
163
+ _initializerDefineProperty(_this, "description", _descriptor23, _assertThisInitialized(_this));
164
+ _initializerDefineProperty(_this, "notes", _descriptor24, _assertThisInitialized(_this));
165
+ _initializerDefineProperty(_this, "internalUseNotes", _descriptor25, _assertThisInitialized(_this));
166
+ _initializerDefineProperty(_this, "internalUseAiContext", _descriptor26, _assertThisInitialized(_this));
167
+ _initializerDefineProperty(_this, "aiContext", _descriptor27, _assertThisInitialized(_this));
168
+ _initializerDefineProperty(_this, "shopifyProductId", _descriptor28, _assertThisInitialized(_this));
169
+ _initializerDefineProperty(_this, "useCompanyShipmentMethods", _descriptor29, _assertThisInitialized(_this));
170
+ _initializerDefineProperty(_this, "dropShipment", _descriptor30, _assertThisInitialized(_this));
171
+ _initializerDefineProperty(_this, "needsDrafting", _descriptor31, _assertThisInitialized(_this));
172
+ _initializerDefineProperty(_this, "needsProduction", _descriptor32, _assertThisInitialized(_this));
173
+ _initializerDefineProperty(_this, "needsShipping", _descriptor33, _assertThisInitialized(_this));
174
+ _initializerDefineProperty(_this, "needsInvoicing", _descriptor34, _assertThisInitialized(_this));
175
+ _initializerDefineProperty(_this, "needsInventory", _descriptor35, _assertThisInitialized(_this));
176
+ _initializerDefineProperty(_this, "featureDeadline", _descriptor36, _assertThisInitialized(_this));
177
+ _initializerDefineProperty(_this, "showFeatureDeadline", _descriptor37, _assertThisInitialized(_this));
178
+ _initializerDefineProperty(_this, "showPublic", _descriptor38, _assertThisInitialized(_this));
179
+ _initializerDefineProperty(_this, "showGroupBuyStatus", _descriptor39, _assertThisInitialized(_this));
180
+ _initializerDefineProperty(_this, "groupBuyStatus", _descriptor40, _assertThisInitialized(_this));
181
+ _initializerDefineProperty(_this, "acceptSquare", _descriptor41, _assertThisInitialized(_this));
182
+ _initializerDefineProperty(_this, "acceptStripe", _descriptor42, _assertThisInitialized(_this));
183
+ _initializerDefineProperty(_this, "acceptPaypal", _descriptor43, _assertThisInitialized(_this));
184
+ _initializerDefineProperty(_this, "acceptUtrust", _descriptor44, _assertThisInitialized(_this));
185
+ _initializerDefineProperty(_this, "acceptBankTransfer", _descriptor45, _assertThisInitialized(_this));
186
+ _initializerDefineProperty(_this, "acceptPhonePayment", _descriptor46, _assertThisInitialized(_this));
187
+ _initializerDefineProperty(_this, "allowAutomaticPaymentSupply", _descriptor47, _assertThisInitialized(_this));
188
+ _initializerDefineProperty(_this, "allowGroupBuy", _descriptor48, _assertThisInitialized(_this));
189
+ _initializerDefineProperty(_this, "allowPaymentUpfront", _descriptor49, _assertThisInitialized(_this));
190
+ _initializerDefineProperty(_this, "allowQuotation", _descriptor50, _assertThisInitialized(_this));
191
+ _initializerDefineProperty(_this, "allowChainedInventoryCreation", _descriptor51, _assertThisInitialized(_this));
192
+ _initializerDefineProperty(_this, "allowClientDraftContribution", _descriptor52, _assertThisInitialized(_this));
193
+ _initializerDefineProperty(_this, "chainedInventoryHandlingUnitPrice", _descriptor53, _assertThisInitialized(_this));
194
+ _initializerDefineProperty(_this, "bestPrice", _descriptor54, _assertThisInitialized(_this));
195
+ _initializerDefineProperty(_this, "unitVolume", _descriptor55, _assertThisInitialized(_this));
196
+ _initializerDefineProperty(_this, "categories", _descriptor56, _assertThisInitialized(_this));
197
+ _initializerDefineProperty(_this, "platformCategories", _descriptor57, _assertThisInitialized(_this));
198
+ _initializerDefineProperty(_this, "discountGroups", _descriptor58, _assertThisInitialized(_this));
199
+ _initializerDefineProperty(_this, "domain", _descriptor59, _assertThisInitialized(_this));
200
+ _initializerDefineProperty(_this, "taxType", _descriptor60, _assertThisInitialized(_this));
201
+ _initializerDefineProperty(_this, "originalProduct", _descriptor61, _assertThisInitialized(_this));
202
+ _initializerDefineProperty(_this, "clonedFromProduct", _descriptor62, _assertThisInitialized(_this));
203
+ _initializerDefineProperty(_this, "chainedSupplierProduct", _descriptor63, _assertThisInitialized(_this));
204
+ _initializerDefineProperty(_this, "chainedSellerProducts", _descriptor64, _assertThisInitialized(_this));
205
+ _initializerDefineProperty(_this, "chainedInventorySupplierProduct", _descriptor65, _assertThisInitialized(_this));
206
+ _initializerDefineProperty(_this, "chainedInventorySellerProducts", _descriptor66, _assertThisInitialized(_this));
207
+ _initializerDefineProperty(_this, "component", _descriptor67, _assertThisInitialized(_this));
208
+ _initializerDefineProperty(_this, "images", _descriptor68, _assertThisInitialized(_this));
209
+ _initializerDefineProperty(_this, "publicFiles", _descriptor69, _assertThisInitialized(_this));
210
+ _initializerDefineProperty(_this, "productionFiles", _descriptor70, _assertThisInitialized(_this));
211
+ _initializerDefineProperty(_this, "groupVariationFields", _descriptor71, _assertThisInitialized(_this));
212
+ _initializerDefineProperty(_this, "independentVariationFields", _descriptor72, _assertThisInitialized(_this));
213
+ _initializerDefineProperty(_this, "tags", _descriptor73, _assertThisInitialized(_this));
214
+ _initializerDefineProperty(_this, "internalTags", _descriptor74, _assertThisInitialized(_this));
215
+ _initializerDefineProperty(_this, "seoDomainPages", _descriptor75, _assertThisInitialized(_this));
216
+ _initializerDefineProperty(_this, "featureImage", _descriptor76, _assertThisInitialized(_this));
217
+ _initializerDefineProperty(_this, "createdByJob", _descriptor77, _assertThisInitialized(_this));
218
+ _initializerDefineProperty(_this, "defaultJob", _descriptor78, _assertThisInitialized(_this));
219
+ _initializerDefineProperty(_this, "savedByCompanies", _descriptor79, _assertThisInitialized(_this));
220
+ _initializerDefineProperty(_this, "suppliedByDomains", _descriptor80, _assertThisInitialized(_this));
221
+ _initializerDefineProperty(_this, "autoAssignProductionOnAction", _descriptor81, _assertThisInitialized(_this));
222
+ _initializerDefineProperty(_this, "supplyDomains", _descriptor82, _assertThisInitialized(_this));
223
+ _initializerDefineProperty(_this, "inventoriesOpen", _descriptor83, _assertThisInitialized(_this));
224
+ _initializerDefineProperty(_this, "supplyChainDisabled", _descriptor84, _assertThisInitialized(_this));
225
+ _initializerDefineProperty(_this, "inventories", _descriptor85, _assertThisInitialized(_this));
226
+ _initializerDefineProperty(_this, "cartItems", _descriptor86, _assertThisInitialized(_this));
227
+ _initializerDefineProperty(_this, "jobs", _descriptor87, _assertThisInitialized(_this));
228
+ _initializerDefineProperty(_this, "supplyChainRequestJobs", _descriptor88, _assertThisInitialized(_this));
229
+ _initializerDefineProperty(_this, "savedByUsers", _descriptor89, _assertThisInitialized(_this));
230
+ _initializerDefineProperty(_this, "suppliers", _descriptor90, _assertThisInitialized(_this));
231
+ _initializerDefineProperty(_this, "draftTemplates", _descriptor91, _assertThisInitialized(_this));
232
+ _this.duplicate = function () {
233
+ /* create a clone of this product on the backend, returning it. */
234
+ var constructor = _this.constructor;
235
+ var resourceName = constructor.resourceName;
236
+ var singularName = constructor.singularName;
237
+ var resource = "/".concat(resourceName, "/").concat(String(_this.id), "/copy/");
238
+ var fetchOptions = {
239
+ method: 'POST'
240
+ };
241
+ return _this.merchi.authenticatedFetch(resource, fetchOptions).then(function (data) {
242
+ var product = new _this.merchi.Product();
243
+ product.fromJson(data[singularName]);
244
+ return product;
245
+ });
246
+ };
247
+ _this.primaryImage = function () {
248
+ if (_this.featureImage === undefined) {
249
+ throw new Error('featureImage is undefined, did you forget to embed it?');
250
+ }
251
+ if (_this.images === undefined) {
252
+ throw new Error('images is undefined, did you forget to embed it?');
253
+ }
254
+ if (_this.featureImage !== null) {
255
+ return _this.featureImage;
256
+ }
257
+ if (_this.images.length > 0) {
258
+ return _this.images[0];
259
+ }
260
+ return null;
261
+ };
262
+ _this.hasGroupVariationFields = function () {
263
+ if (_this.groupVariationFields === undefined) {
264
+ var err = 'groupVariationFields is undefined, did you forget to embed' + ' it?';
265
+ throw new Error(err);
266
+ }
267
+ return _this.groupVariationFields.length > 0;
268
+ };
269
+ _this.hasIndependentVariationFields = function () {
270
+ if (_this.independentVariationFields === undefined) {
271
+ var err = 'independentVariationFields is undefined, did you forget to' + ' embed it?';
272
+ throw new Error(err);
273
+ }
274
+ return _this.independentVariationFields.length > 0;
275
+ };
276
+ _this.allVariationFields = function () {
277
+ if (_this.groupVariationFields === undefined) {
278
+ var err = 'groupVariationFields is undefined, did you forget to embed' + ' it?';
279
+ throw new Error(err);
280
+ }
281
+ if (_this.independentVariationFields === undefined) {
282
+ var _err = 'independentVariationFields is undefined, did you forget to' + ' embed it?';
283
+ throw new Error(_err);
284
+ }
285
+ var result = [];
286
+ return result.concat(_this.groupVariationFields, _this.independentVariationFields);
287
+ };
288
+ _this.buildEmptyVariations = function () {
289
+ if (_this.independentVariationFields === undefined) {
290
+ var err = 'independentVariationFields is undefined, did you forget to' + ' embed it?';
291
+ throw new Error(err);
292
+ }
293
+ var iVF = _.orderBy(_this.independentVariationFields, ['position'], ['asc']);
294
+ return iVF.map(function (field) {
295
+ return field.buildEmptyVariation();
296
+ });
297
+ };
298
+ _this.buildEmptyVariationGroup = function () {
299
+ if (_this.groupVariationFields === undefined) {
300
+ var err = 'groupVariationFields is undefined, did you forget to embed' + ' it?';
301
+ throw new Error(err);
302
+ }
303
+ var result = new _this.merchi.VariationsGroup();
304
+ var variations = [];
305
+ var cost = 0;
306
+ var sortedFields = _.orderBy(_this.groupVariationFields, ['position'], ['asc']);
307
+ result.quantity = 0;
308
+ var _iterator = _createForOfIteratorHelper(sortedFields),
309
+ _step;
310
+ try {
311
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
312
+ var variationField = _step.value;
313
+ var empty = variationField.buildEmptyVariation();
314
+ variations.push(empty);
315
+ cost += empty.cost;
316
+ }
317
+ } catch (err) {
318
+ _iterator.e(err);
319
+ } finally {
320
+ _iterator.f();
321
+ }
322
+ result.groupCost = cost;
323
+ result.variations = variations;
324
+ return result;
325
+ };
326
+ _this.removeVariationField = function (variationField) {
327
+ if (variationField.independent === undefined) {
328
+ throw new Error('variation.independent is undefined, did you ' + 'forget to embed it?');
329
+ }
330
+ if (_this.independentVariationFields === undefined) {
331
+ var err = 'independentVariationFields is undefined, did you forget to' + ' embed it?';
332
+ throw new Error(err);
333
+ }
334
+ if (_this.groupVariationFields === undefined) {
335
+ var _err2 = 'groupVariationFields is undefined, did you forget to embed' + ' it?';
336
+ throw new Error(_err2);
337
+ }
338
+ var variationFields = variationField.independent ? _this.independentVariationFields : _this.groupVariationFields;
339
+ var index = variationFields.findIndex(function (v) {
340
+ if (v.id === undefined) {
341
+ throw new Error('variation id is undefined, did you forget to ' + 'embed it?');
342
+ }
343
+ return v.id === variationField.id;
344
+ });
345
+ return variationFields.splice(index, 1);
346
+ };
347
+ return _this;
348
+ }
349
+ return _createClass(Product);
350
+ }(Entity), _class2.resourceName = 'products', _class2.singularName = 'product', _class2.pluralName = 'products', _class2), (_descriptor = _applyDecoratedDescriptor(_class.prototype, "archived", [_dec], {
351
+ configurable: true,
352
+ enumerable: true,
353
+ writable: true,
354
+ initializer: null
355
+ }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "id", [_dec2], {
356
+ configurable: true,
357
+ enumerable: true,
358
+ writable: true,
359
+ initializer: null
360
+ }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "created", [_dec3], {
361
+ configurable: true,
362
+ enumerable: true,
363
+ writable: true,
364
+ initializer: null
365
+ }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "updated", [_dec4], {
366
+ configurable: true,
367
+ enumerable: true,
368
+ writable: true,
369
+ initializer: null
370
+ }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "createdBy", [_dec5], {
371
+ configurable: true,
372
+ enumerable: true,
373
+ writable: true,
374
+ initializer: null
375
+ }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "updatedBy", [_dec6], {
376
+ configurable: true,
377
+ enumerable: true,
378
+ writable: true,
379
+ initializer: null
380
+ }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "productType", [_dec7], {
381
+ configurable: true,
382
+ enumerable: true,
383
+ writable: true,
384
+ initializer: null
385
+ }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "minimum", [_dec8], {
386
+ configurable: true,
387
+ enumerable: true,
388
+ writable: true,
389
+ initializer: null
390
+ }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "minimumPerGroup", [_dec9], {
391
+ configurable: true,
392
+ enumerable: true,
393
+ writable: true,
394
+ initializer: null
395
+ }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "deliveryDaysNormal", [_dec10], {
396
+ configurable: true,
397
+ enumerable: true,
398
+ writable: true,
399
+ initializer: null
400
+ }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "unitPrice", [_dec11], {
401
+ configurable: true,
402
+ enumerable: true,
403
+ writable: true,
404
+ initializer: null
405
+ }), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, "buyUnitPrice", [_dec12], {
406
+ configurable: true,
407
+ enumerable: true,
408
+ writable: true,
409
+ initializer: null
410
+ }), _descriptor13 = _applyDecoratedDescriptor(_class.prototype, "unitPriceDiscountGroup", [_dec13], {
411
+ configurable: true,
412
+ enumerable: true,
413
+ writable: true,
414
+ initializer: null
415
+ }), _descriptor14 = _applyDecoratedDescriptor(_class.prototype, "shipmentMethods", [_dec14], {
416
+ configurable: true,
417
+ enumerable: true,
418
+ writable: true,
419
+ initializer: null
420
+ }), _descriptor15 = _applyDecoratedDescriptor(_class.prototype, "margin", [_dec15], {
421
+ configurable: true,
422
+ enumerable: true,
423
+ writable: true,
424
+ initializer: null
425
+ }), _descriptor16 = _applyDecoratedDescriptor(_class.prototype, "unitWeight", [_dec16], {
426
+ configurable: true,
427
+ enumerable: true,
428
+ writable: true,
429
+ initializer: null
430
+ }), _descriptor17 = _applyDecoratedDescriptor(_class.prototype, "unitHeight", [_dec17], {
431
+ configurable: true,
432
+ enumerable: true,
433
+ writable: true,
434
+ initializer: null
435
+ }), _descriptor18 = _applyDecoratedDescriptor(_class.prototype, "unitWidth", [_dec18], {
436
+ configurable: true,
437
+ enumerable: true,
438
+ writable: true,
439
+ initializer: null
440
+ }), _descriptor19 = _applyDecoratedDescriptor(_class.prototype, "unitDepth", [_dec19], {
441
+ configurable: true,
442
+ enumerable: true,
443
+ writable: true,
444
+ initializer: null
445
+ }), _descriptor20 = _applyDecoratedDescriptor(_class.prototype, "name", [_dec20], {
446
+ configurable: true,
447
+ enumerable: true,
448
+ writable: true,
449
+ initializer: null
450
+ }), _descriptor21 = _applyDecoratedDescriptor(_class.prototype, "country", [_dec21], {
451
+ configurable: true,
452
+ enumerable: true,
453
+ writable: true,
454
+ initializer: null
455
+ }), _descriptor22 = _applyDecoratedDescriptor(_class.prototype, "currency", [_dec22], {
456
+ configurable: true,
457
+ enumerable: true,
458
+ writable: true,
459
+ initializer: null
460
+ }), _descriptor23 = _applyDecoratedDescriptor(_class.prototype, "description", [_dec23], {
461
+ configurable: true,
462
+ enumerable: true,
463
+ writable: true,
464
+ initializer: null
465
+ }), _descriptor24 = _applyDecoratedDescriptor(_class.prototype, "notes", [_dec24], {
466
+ configurable: true,
467
+ enumerable: true,
468
+ writable: true,
469
+ initializer: null
470
+ }), _descriptor25 = _applyDecoratedDescriptor(_class.prototype, "internalUseNotes", [_dec25], {
471
+ configurable: true,
472
+ enumerable: true,
473
+ writable: true,
474
+ initializer: null
475
+ }), _descriptor26 = _applyDecoratedDescriptor(_class.prototype, "internalUseAiContext", [_dec26], {
476
+ configurable: true,
477
+ enumerable: true,
478
+ writable: true,
479
+ initializer: null
480
+ }), _descriptor27 = _applyDecoratedDescriptor(_class.prototype, "aiContext", [_dec27], {
481
+ configurable: true,
482
+ enumerable: true,
483
+ writable: true,
484
+ initializer: null
485
+ }), _descriptor28 = _applyDecoratedDescriptor(_class.prototype, "shopifyProductId", [_dec28], {
486
+ configurable: true,
487
+ enumerable: true,
488
+ writable: true,
489
+ initializer: null
490
+ }), _descriptor29 = _applyDecoratedDescriptor(_class.prototype, "useCompanyShipmentMethods", [_dec29], {
491
+ configurable: true,
492
+ enumerable: true,
493
+ writable: true,
494
+ initializer: null
495
+ }), _descriptor30 = _applyDecoratedDescriptor(_class.prototype, "dropShipment", [_dec30], {
496
+ configurable: true,
497
+ enumerable: true,
498
+ writable: true,
499
+ initializer: null
500
+ }), _descriptor31 = _applyDecoratedDescriptor(_class.prototype, "needsDrafting", [_dec31], {
501
+ configurable: true,
502
+ enumerable: true,
503
+ writable: true,
504
+ initializer: null
505
+ }), _descriptor32 = _applyDecoratedDescriptor(_class.prototype, "needsProduction", [_dec32], {
506
+ configurable: true,
507
+ enumerable: true,
508
+ writable: true,
509
+ initializer: null
510
+ }), _descriptor33 = _applyDecoratedDescriptor(_class.prototype, "needsShipping", [_dec33], {
511
+ configurable: true,
512
+ enumerable: true,
513
+ writable: true,
514
+ initializer: null
515
+ }), _descriptor34 = _applyDecoratedDescriptor(_class.prototype, "needsInvoicing", [_dec34], {
516
+ configurable: true,
517
+ enumerable: true,
518
+ writable: true,
519
+ initializer: null
520
+ }), _descriptor35 = _applyDecoratedDescriptor(_class.prototype, "needsInventory", [_dec35], {
521
+ configurable: true,
522
+ enumerable: true,
523
+ writable: true,
524
+ initializer: null
525
+ }), _descriptor36 = _applyDecoratedDescriptor(_class.prototype, "featureDeadline", [_dec36], {
526
+ configurable: true,
527
+ enumerable: true,
528
+ writable: true,
529
+ initializer: null
530
+ }), _descriptor37 = _applyDecoratedDescriptor(_class.prototype, "showFeatureDeadline", [_dec37], {
531
+ configurable: true,
532
+ enumerable: true,
533
+ writable: true,
534
+ initializer: null
535
+ }), _descriptor38 = _applyDecoratedDescriptor(_class.prototype, "showPublic", [_dec38], {
536
+ configurable: true,
537
+ enumerable: true,
538
+ writable: true,
539
+ initializer: null
540
+ }), _descriptor39 = _applyDecoratedDescriptor(_class.prototype, "showGroupBuyStatus", [_dec39], {
541
+ configurable: true,
542
+ enumerable: true,
543
+ writable: true,
544
+ initializer: null
545
+ }), _descriptor40 = _applyDecoratedDescriptor(_class.prototype, "groupBuyStatus", [_dec40], {
546
+ configurable: true,
547
+ enumerable: true,
548
+ writable: true,
549
+ initializer: null
550
+ }), _descriptor41 = _applyDecoratedDescriptor(_class.prototype, "acceptSquare", [_dec41], {
551
+ configurable: true,
552
+ enumerable: true,
553
+ writable: true,
554
+ initializer: null
555
+ }), _descriptor42 = _applyDecoratedDescriptor(_class.prototype, "acceptStripe", [_dec42], {
556
+ configurable: true,
557
+ enumerable: true,
558
+ writable: true,
559
+ initializer: null
560
+ }), _descriptor43 = _applyDecoratedDescriptor(_class.prototype, "acceptPaypal", [_dec43], {
561
+ configurable: true,
562
+ enumerable: true,
563
+ writable: true,
564
+ initializer: null
565
+ }), _descriptor44 = _applyDecoratedDescriptor(_class.prototype, "acceptUtrust", [_dec44], {
566
+ configurable: true,
567
+ enumerable: true,
568
+ writable: true,
569
+ initializer: null
570
+ }), _descriptor45 = _applyDecoratedDescriptor(_class.prototype, "acceptBankTransfer", [_dec45], {
571
+ configurable: true,
572
+ enumerable: true,
573
+ writable: true,
574
+ initializer: null
575
+ }), _descriptor46 = _applyDecoratedDescriptor(_class.prototype, "acceptPhonePayment", [_dec46], {
576
+ configurable: true,
577
+ enumerable: true,
578
+ writable: true,
579
+ initializer: null
580
+ }), _descriptor47 = _applyDecoratedDescriptor(_class.prototype, "allowAutomaticPaymentSupply", [_dec47], {
581
+ configurable: true,
582
+ enumerable: true,
583
+ writable: true,
584
+ initializer: null
585
+ }), _descriptor48 = _applyDecoratedDescriptor(_class.prototype, "allowGroupBuy", [_dec48], {
586
+ configurable: true,
587
+ enumerable: true,
588
+ writable: true,
589
+ initializer: null
590
+ }), _descriptor49 = _applyDecoratedDescriptor(_class.prototype, "allowPaymentUpfront", [_dec49], {
591
+ configurable: true,
592
+ enumerable: true,
593
+ writable: true,
594
+ initializer: null
595
+ }), _descriptor50 = _applyDecoratedDescriptor(_class.prototype, "allowQuotation", [_dec50], {
596
+ configurable: true,
597
+ enumerable: true,
598
+ writable: true,
599
+ initializer: null
600
+ }), _descriptor51 = _applyDecoratedDescriptor(_class.prototype, "allowChainedInventoryCreation", [_dec51], {
601
+ configurable: true,
602
+ enumerable: true,
603
+ writable: true,
604
+ initializer: null
605
+ }), _descriptor52 = _applyDecoratedDescriptor(_class.prototype, "allowClientDraftContribution", [_dec52], {
606
+ configurable: true,
607
+ enumerable: true,
608
+ writable: true,
609
+ initializer: null
610
+ }), _descriptor53 = _applyDecoratedDescriptor(_class.prototype, "chainedInventoryHandlingUnitPrice", [_dec53], {
611
+ configurable: true,
612
+ enumerable: true,
613
+ writable: true,
614
+ initializer: null
615
+ }), _descriptor54 = _applyDecoratedDescriptor(_class.prototype, "bestPrice", [_dec54], {
616
+ configurable: true,
617
+ enumerable: true,
618
+ writable: true,
619
+ initializer: null
620
+ }), _descriptor55 = _applyDecoratedDescriptor(_class.prototype, "unitVolume", [_dec55], {
621
+ configurable: true,
622
+ enumerable: true,
623
+ writable: true,
624
+ initializer: null
625
+ }), _descriptor56 = _applyDecoratedDescriptor(_class.prototype, "categories", [_dec56], {
626
+ configurable: true,
627
+ enumerable: true,
628
+ writable: true,
629
+ initializer: null
630
+ }), _descriptor57 = _applyDecoratedDescriptor(_class.prototype, "platformCategories", [_dec57], {
631
+ configurable: true,
632
+ enumerable: true,
633
+ writable: true,
634
+ initializer: null
635
+ }), _descriptor58 = _applyDecoratedDescriptor(_class.prototype, "discountGroups", [_dec58], {
636
+ configurable: true,
637
+ enumerable: true,
638
+ writable: true,
639
+ initializer: null
640
+ }), _descriptor59 = _applyDecoratedDescriptor(_class.prototype, "domain", [_dec59], {
641
+ configurable: true,
642
+ enumerable: true,
643
+ writable: true,
644
+ initializer: null
645
+ }), _descriptor60 = _applyDecoratedDescriptor(_class.prototype, "taxType", [_dec60], {
646
+ configurable: true,
647
+ enumerable: true,
648
+ writable: true,
649
+ initializer: null
650
+ }), _descriptor61 = _applyDecoratedDescriptor(_class.prototype, "originalProduct", [_dec61], {
651
+ configurable: true,
652
+ enumerable: true,
653
+ writable: true,
654
+ initializer: null
655
+ }), _descriptor62 = _applyDecoratedDescriptor(_class.prototype, "clonedFromProduct", [_dec62], {
656
+ configurable: true,
657
+ enumerable: true,
658
+ writable: true,
659
+ initializer: null
660
+ }), _descriptor63 = _applyDecoratedDescriptor(_class.prototype, "chainedSupplierProduct", [_dec63], {
661
+ configurable: true,
662
+ enumerable: true,
663
+ writable: true,
664
+ initializer: null
665
+ }), _descriptor64 = _applyDecoratedDescriptor(_class.prototype, "chainedSellerProducts", [_dec64], {
666
+ configurable: true,
667
+ enumerable: true,
668
+ writable: true,
669
+ initializer: null
670
+ }), _descriptor65 = _applyDecoratedDescriptor(_class.prototype, "chainedInventorySupplierProduct", [_dec65], {
671
+ configurable: true,
672
+ enumerable: true,
673
+ writable: true,
674
+ initializer: null
675
+ }), _descriptor66 = _applyDecoratedDescriptor(_class.prototype, "chainedInventorySellerProducts", [_dec66], {
676
+ configurable: true,
677
+ enumerable: true,
678
+ writable: true,
679
+ initializer: null
680
+ }), _descriptor67 = _applyDecoratedDescriptor(_class.prototype, "component", [_dec67], {
681
+ configurable: true,
682
+ enumerable: true,
683
+ writable: true,
684
+ initializer: null
685
+ }), _descriptor68 = _applyDecoratedDescriptor(_class.prototype, "images", [_dec68], {
686
+ configurable: true,
687
+ enumerable: true,
688
+ writable: true,
689
+ initializer: null
690
+ }), _descriptor69 = _applyDecoratedDescriptor(_class.prototype, "publicFiles", [_dec69], {
691
+ configurable: true,
692
+ enumerable: true,
693
+ writable: true,
694
+ initializer: null
695
+ }), _descriptor70 = _applyDecoratedDescriptor(_class.prototype, "productionFiles", [_dec70], {
696
+ configurable: true,
697
+ enumerable: true,
698
+ writable: true,
699
+ initializer: null
700
+ }), _descriptor71 = _applyDecoratedDescriptor(_class.prototype, "groupVariationFields", [_dec71], {
701
+ configurable: true,
702
+ enumerable: true,
703
+ writable: true,
704
+ initializer: null
705
+ }), _descriptor72 = _applyDecoratedDescriptor(_class.prototype, "independentVariationFields", [_dec72], {
706
+ configurable: true,
707
+ enumerable: true,
708
+ writable: true,
709
+ initializer: null
710
+ }), _descriptor73 = _applyDecoratedDescriptor(_class.prototype, "tags", [_dec73], {
711
+ configurable: true,
712
+ enumerable: true,
713
+ writable: true,
714
+ initializer: null
715
+ }), _descriptor74 = _applyDecoratedDescriptor(_class.prototype, "internalTags", [_dec74], {
716
+ configurable: true,
717
+ enumerable: true,
718
+ writable: true,
719
+ initializer: null
720
+ }), _descriptor75 = _applyDecoratedDescriptor(_class.prototype, "seoDomainPages", [_dec75], {
721
+ configurable: true,
722
+ enumerable: true,
723
+ writable: true,
724
+ initializer: null
725
+ }), _descriptor76 = _applyDecoratedDescriptor(_class.prototype, "featureImage", [_dec76], {
726
+ configurable: true,
727
+ enumerable: true,
728
+ writable: true,
729
+ initializer: null
730
+ }), _descriptor77 = _applyDecoratedDescriptor(_class.prototype, "createdByJob", [_dec77], {
731
+ configurable: true,
732
+ enumerable: true,
733
+ writable: true,
734
+ initializer: null
735
+ }), _descriptor78 = _applyDecoratedDescriptor(_class.prototype, "defaultJob", [_dec78], {
736
+ configurable: true,
737
+ enumerable: true,
738
+ writable: true,
739
+ initializer: null
740
+ }), _descriptor79 = _applyDecoratedDescriptor(_class.prototype, "savedByCompanies", [_dec79], {
741
+ configurable: true,
742
+ enumerable: true,
743
+ writable: true,
744
+ initializer: null
745
+ }), _descriptor80 = _applyDecoratedDescriptor(_class.prototype, "suppliedByDomains", [_dec80], {
746
+ configurable: true,
747
+ enumerable: true,
748
+ writable: true,
749
+ initializer: null
750
+ }), _descriptor81 = _applyDecoratedDescriptor(_class.prototype, "autoAssignProductionOnAction", [_dec81], {
751
+ configurable: true,
752
+ enumerable: true,
753
+ writable: true,
754
+ initializer: null
755
+ }), _descriptor82 = _applyDecoratedDescriptor(_class.prototype, "supplyDomains", [_dec82], {
756
+ configurable: true,
757
+ enumerable: true,
758
+ writable: true,
759
+ initializer: null
760
+ }), _descriptor83 = _applyDecoratedDescriptor(_class.prototype, "inventoriesOpen", [_dec83], {
761
+ configurable: true,
762
+ enumerable: true,
763
+ writable: true,
764
+ initializer: null
765
+ }), _descriptor84 = _applyDecoratedDescriptor(_class.prototype, "supplyChainDisabled", [_dec84], {
766
+ configurable: true,
767
+ enumerable: true,
768
+ writable: true,
769
+ initializer: null
770
+ }), _descriptor85 = _applyDecoratedDescriptor(_class.prototype, "inventories", [_dec85], {
771
+ configurable: true,
772
+ enumerable: true,
773
+ writable: true,
774
+ initializer: null
775
+ }), _descriptor86 = _applyDecoratedDescriptor(_class.prototype, "cartItems", [_dec86], {
776
+ configurable: true,
777
+ enumerable: true,
778
+ writable: true,
779
+ initializer: null
780
+ }), _descriptor87 = _applyDecoratedDescriptor(_class.prototype, "jobs", [_dec87], {
781
+ configurable: true,
782
+ enumerable: true,
783
+ writable: true,
784
+ initializer: null
785
+ }), _descriptor88 = _applyDecoratedDescriptor(_class.prototype, "supplyChainRequestJobs", [_dec88], {
786
+ configurable: true,
787
+ enumerable: true,
788
+ writable: true,
789
+ initializer: null
790
+ }), _descriptor89 = _applyDecoratedDescriptor(_class.prototype, "savedByUsers", [_dec89], {
791
+ configurable: true,
792
+ enumerable: true,
793
+ writable: true,
794
+ initializer: null
795
+ }), _descriptor90 = _applyDecoratedDescriptor(_class.prototype, "suppliers", [_dec90], {
796
+ configurable: true,
797
+ enumerable: true,
798
+ writable: true,
799
+ initializer: null
800
+ }), _descriptor91 = _applyDecoratedDescriptor(_class.prototype, "draftTemplates", [_dec91], {
801
+ configurable: true,
802
+ enumerable: true,
803
+ writable: true,
804
+ initializer: null
805
+ })), _class));
806
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfIiwiQ29tcG9uZW50IiwiQ291bnRyeVRheCIsIkVudGl0eSIsIk1lcmNoaUZpbGUiLCJQcm9kdWN0IiwiX2RlYyIsInByb3BlcnR5IiwidHlwZSIsIkRhdGUiLCJfZGVjMiIsIl9kZWMzIiwiX2RlYzQiLCJfZGVjNSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2RlYzEwIiwiX2RlYzExIiwiX2RlYzEyIiwiZW1iZWRkZWRCeURlZmF1bHQiLCJfZGVjMTMiLCJfZGVjMTQiLCJhcnJheVR5cGUiLCJfZGVjMTUiLCJfZGVjMTYiLCJOdW1iZXIiLCJfZGVjMTciLCJfZGVjMTgiLCJfZGVjMTkiLCJfZGVjMjAiLCJfZGVjMjEiLCJfZGVjMjIiLCJfZGVjMjMiLCJTdHJpbmciLCJfZGVjMjQiLCJfZGVjMjUiLCJfZGVjMjYiLCJfZGVjMjciLCJfZGVjMjgiLCJfZGVjMjkiLCJfZGVjMzAiLCJfZGVjMzEiLCJfZGVjMzIiLCJfZGVjMzMiLCJfZGVjMzQiLCJfZGVjMzUiLCJfZGVjMzYiLCJfZGVjMzciLCJfZGVjMzgiLCJfZGVjMzkiLCJfZGVjNDAiLCJfZGVjNDEiLCJfZGVjNDIiLCJfZGVjNDMiLCJfZGVjNDQiLCJfZGVjNDUiLCJfZGVjNDYiLCJfZGVjNDciLCJfZGVjNDgiLCJfZGVjNDkiLCJfZGVjNTAiLCJfZGVjNTEiLCJfZGVjNTIiLCJfZGVjNTMiLCJfZGVjNTQiLCJfZGVjNTUiLCJfZGVjNTYiLCJfZGVjNTciLCJfZGVjNTgiLCJfZGVjNTkiLCJfZGVjNjAiLCJfZGVjNjEiLCJfZGVjNjIiLCJfZGVjNjMiLCJfZGVjNjQiLCJfZGVjNjUiLCJfZGVjNjYiLCJfZGVjNjciLCJfZGVjNjgiLCJfZGVjNjkiLCJfZGVjNzAiLCJfZGVjNzEiLCJfZGVjNzIiLCJfZGVjNzMiLCJfZGVjNzQiLCJfZGVjNzUiLCJfZGVjNzYiLCJfZGVjNzciLCJfZGVjNzgiLCJfZGVjNzkiLCJqc29uTmFtZSIsIl9kZWM4MCIsIl9kZWM4MSIsIl9kZWM4MiIsIl9kZWM4MyIsIl9kZWM4NCIsIl9kZWM4NSIsIl9kZWM4NiIsIl9kZWM4NyIsIl9kZWM4OCIsIl9kZWM4OSIsIl9kZWM5MCIsIl9kZWM5MSIsIl9jbGFzcyIsIl9jbGFzczIiLCJfRW50aXR5IiwiX2luaGVyaXRzIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2siLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsIl9jYWxsU3VwZXIiLCJjb25jYXQiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Fzc2VydFRoaXNJbml0aWFsaXplZCIsIl9kZXNjcmlwdG9yMiIsIl9kZXNjcmlwdG9yMyIsIl9kZXNjcmlwdG9yNCIsIl9kZXNjcmlwdG9yNSIsIl9kZXNjcmlwdG9yNiIsIl9kZXNjcmlwdG9yNyIsIl9kZXNjcmlwdG9yOCIsIl9kZXNjcmlwdG9yOSIsIl9kZXNjcmlwdG9yMTAiLCJfZGVzY3JpcHRvcjExIiwiX2Rlc2NyaXB0b3IxMiIsIl9kZXNjcmlwdG9yMTMiLCJfZGVzY3JpcHRvcjE0IiwiX2Rlc2NyaXB0b3IxNSIsIl9kZXNjcmlwdG9yMTYiLCJfZGVzY3JpcHRvcjE3IiwiX2Rlc2NyaXB0b3IxOCIsIl9kZXNjcmlwdG9yMTkiLCJfZGVzY3JpcHRvcjIwIiwiX2Rlc2NyaXB0b3IyMSIsIl9kZXNjcmlwdG9yMjIiLCJfZGVzY3JpcHRvcjIzIiwiX2Rlc2NyaXB0b3IyNCIsIl9kZXNjcmlwdG9yMjUiLCJfZGVzY3JpcHRvcjI2IiwiX2Rlc2NyaXB0b3IyNyIsIl9kZXNjcmlwdG9yMjgiLCJfZGVzY3JpcHRvcjI5IiwiX2Rlc2NyaXB0b3IzMCIsIl9kZXNjcmlwdG9yMzEiLCJfZGVzY3JpcHRvcjMyIiwiX2Rlc2NyaXB0b3IzMyIsIl9kZXNjcmlwdG9yMzQiLCJfZGVzY3JpcHRvcjM1IiwiX2Rlc2NyaXB0b3IzNiIsIl9kZXNjcmlwdG9yMzciLCJfZGVzY3JpcHRvcjM4IiwiX2Rlc2NyaXB0b3IzOSIsIl9kZXNjcmlwdG9yNDAiLCJfZGVzY3JpcHRvcjQxIiwiX2Rlc2NyaXB0b3I0MiIsIl9kZXNjcmlwdG9yNDMiLCJfZGVzY3JpcHRvcjQ0IiwiX2Rlc2NyaXB0b3I0NSIsIl9kZXNjcmlwdG9yNDYiLCJfZGVzY3JpcHRvcjQ3IiwiX2Rlc2NyaXB0b3I0OCIsIl9kZXNjcmlwdG9yNDkiLCJfZGVzY3JpcHRvcjUwIiwiX2Rlc2NyaXB0b3I1MSIsIl9kZXNjcmlwdG9yNTIiLCJfZGVzY3JpcHRvcjUzIiwiX2Rlc2NyaXB0b3I1NCIsIl9kZXNjcmlwdG9yNTUiLCJfZGVzY3JpcHRvcjU2IiwiX2Rlc2NyaXB0b3I1NyIsIl9kZXNjcmlwdG9yNTgiLCJfZGVzY3JpcHRvcjU5IiwiX2Rlc2NyaXB0b3I2MCIsIl9kZXNjcmlwdG9yNjEiLCJfZGVzY3JpcHRvcjYyIiwiX2Rlc2NyaXB0b3I2MyIsIl9kZXNjcmlwdG9yNjQiLCJfZGVzY3JpcHRvcjY1IiwiX2Rlc2NyaXB0b3I2NiIsIl9kZXNjcmlwdG9yNjciLCJfZGVzY3JpcHRvcjY4IiwiX2Rlc2NyaXB0b3I2OSIsIl9kZXNjcmlwdG9yNzAiLCJfZGVzY3JpcHRvcjcxIiwiX2Rlc2NyaXB0b3I3MiIsIl9kZXNjcmlwdG9yNzMiLCJfZGVzY3JpcHRvcjc0IiwiX2Rlc2NyaXB0b3I3NSIsIl9kZXNjcmlwdG9yNzYiLCJfZGVzY3JpcHRvcjc3IiwiX2Rlc2NyaXB0b3I3OCIsIl9kZXNjcmlwdG9yNzkiLCJfZGVzY3JpcHRvcjgwIiwiX2Rlc2NyaXB0b3I4MSIsIl9kZXNjcmlwdG9yODIiLCJfZGVzY3JpcHRvcjgzIiwiX2Rlc2NyaXB0b3I4NCIsIl9kZXNjcmlwdG9yODUiLCJfZGVzY3JpcHRvcjg2IiwiX2Rlc2NyaXB0b3I4NyIsIl9kZXNjcmlwdG9yODgiLCJfZGVzY3JpcHRvcjg5IiwiX2Rlc2NyaXB0b3I5MCIsIl9kZXNjcmlwdG9yOTEiLCJkdXBsaWNhdGUiLCJjb25zdHJ1Y3RvciIsInJlc291cmNlTmFtZSIsInNpbmd1bGFyTmFtZSIsInJlc291cmNlIiwiaWQiLCJmZXRjaE9wdGlvbnMiLCJtZXRob2QiLCJtZXJjaGkiLCJhdXRoZW50aWNhdGVkRmV0Y2giLCJ0aGVuIiwiZGF0YSIsInByb2R1Y3QiLCJmcm9tSnNvbiIsInByaW1hcnlJbWFnZSIsImZlYXR1cmVJbWFnZSIsInVuZGVmaW5lZCIsIkVycm9yIiwiaW1hZ2VzIiwiaGFzR3JvdXBWYXJpYXRpb25GaWVsZHMiLCJncm91cFZhcmlhdGlvbkZpZWxkcyIsImVyciIsImhhc0luZGVwZW5kZW50VmFyaWF0aW9uRmllbGRzIiwiaW5kZXBlbmRlbnRWYXJpYXRpb25GaWVsZHMiLCJhbGxWYXJpYXRpb25GaWVsZHMiLCJyZXN1bHQiLCJidWlsZEVtcHR5VmFyaWF0aW9ucyIsImlWRiIsIm9yZGVyQnkiLCJtYXAiLCJmaWVsZCIsImJ1aWxkRW1wdHlWYXJpYXRpb24iLCJidWlsZEVtcHR5VmFyaWF0aW9uR3JvdXAiLCJWYXJpYXRpb25zR3JvdXAiLCJ2YXJpYXRpb25zIiwiY29zdCIsInNvcnRlZEZpZWxkcyIsInF1YW50aXR5IiwiX2l0ZXJhdG9yIiwiX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIiLCJfc3RlcCIsInMiLCJuIiwiZG9uZSIsInZhcmlhdGlvbkZpZWxkIiwidmFsdWUiLCJlbXB0eSIsInB1c2giLCJlIiwiZiIsImdyb3VwQ29zdCIsInJlbW92ZVZhcmlhdGlvbkZpZWxkIiwiaW5kZXBlbmRlbnQiLCJ2YXJpYXRpb25GaWVsZHMiLCJpbmRleCIsImZpbmRJbmRleCIsInYiLCJzcGxpY2UiLCJfY3JlYXRlQ2xhc3MiLCJwbHVyYWxOYW1lIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsInByb3RvdHlwZSIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL01lcmNoaVNESy9lbnRpdGllcy9wcm9kdWN0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENhcnRJdGVtIH0gZnJvbSAnLi9jYXJ0X2l0ZW0nO1xuaW1wb3J0IHsgQ2F0ZWdvcnkgfSBmcm9tICcuL2NhdGVnb3J5JztcbmltcG9ydCB7IENvbXBhbnkgfSBmcm9tICcuL2NvbXBhbnknO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQnO1xuaW1wb3J0IHsgQ291bnRyeVRheCB9IGZyb20gJy4vY291bnRyeV90YXgnO1xuaW1wb3J0IHsgRGlzY291bnRHcm91cCB9IGZyb20gJy4vZGlzY291bnRfZ3JvdXAnO1xuaW1wb3J0IHsgRG9tYWluIH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgRG9tYWluVGFnIH0gZnJvbSAnLi9kb21haW5fdGFnJztcbmltcG9ydCB7IERyYWZ0VGVtcGxhdGUgfSBmcm9tICcuL2RyYWZ0X3RlbXBsYXRlJztcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4uL2VudGl0eSc7XG5pbXBvcnQgeyBNZXJjaGlGaWxlIH0gZnJvbSAnLi9maWxlJztcbmltcG9ydCB7IEludGVybmFsVGFnIH0gZnJvbSAnLi9pbnRlcm5hbF90YWcnO1xuaW1wb3J0IHsgSW52ZW50b3J5IH0gZnJvbSAnLi9pbnZlbnRvcnknO1xuaW1wb3J0IHsgSm9iIH0gZnJvbSAnLi9qb2InO1xuaW1wb3J0IHsgU3VwcGx5RG9tYWluIH0gZnJvbSAnLi9zdXBwbHlfZG9tYWluJztcbmltcG9ydCB7IFVzZXIgfSBmcm9tICcuL3VzZXInO1xuaW1wb3J0IHsgVmFyaWF0aW9uRmllbGQgfSBmcm9tICcuL3ZhcmlhdGlvbl9maWVsZCc7XG5pbXBvcnQgeyBTZW9Eb21haW5QYWdlIH0gZnJvbSAnLi9zZW9fZG9tYWluX3BhZ2UnO1xuaW1wb3J0IHsgU2hpcG1lbnRNZXRob2QgfSBmcm9tICcuL3NoaXBtZW50X21ldGhvZCc7XG5pbXBvcnQge1xuICBBdXRvQXNzaWduUHJvZHVjdGlvbk9uQWN0aW9uXG59IGZyb20gJy4uL2NvbnN0YW50cy9hdXRvX2Fzc2lnbl9wcm9kdWN0aW9uX29uX2FjdGlvbnMnO1xuXG5leHBvcnQgY2xhc3MgUHJvZHVjdCBleHRlbmRzIEVudGl0eSB7XG4gIHByb3RlY3RlZCBzdGF0aWMgcmVzb3VyY2VOYW1lID0gJ3Byb2R1Y3RzJztcbiAgcHJvdGVjdGVkIHN0YXRpYyBzaW5ndWxhck5hbWUgPSAncHJvZHVjdCc7XG4gIHByb3RlY3RlZCBzdGF0aWMgcGx1cmFsTmFtZSA9ICdwcm9kdWN0cyc7XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe3R5cGU6IERhdGV9KVxuICBwdWJsaWMgYXJjaGl2ZWQ/OiBEYXRlIHwgbnVsbDtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSgpXG4gIHB1YmxpYyBpZD86IG51bWJlcjtcblxuICBAQ29tcG9uZW50LnByb3BlcnR5KHt0eXBlOiBEYXRlfSlcbiAgcHVibGljIGNyZWF0ZWQ/OiBEYXRlO1xuXG4gIEBDb21wb25lbnQucHJvcGVydHkoe3R5cGU6IERhdGV9KVxuICBwdWJsaWMgdXBkYXRlZD86IERhdGU7XG5cbiAgQENvbXBvbmVudC5wcm9wZXJ0eSh7dHlwZTogJ1VzZXInfSlcbiAgcHVibGljIGNyZWF0ZWRCeT86IFVzZXIgfCBudWxsO1xuXG4gIEBDb21wb25lbnQucHJvcGVydHkoe3R5cGU6ICdVc2VyJ30pXG4gIHB1YmxpYyB1cGRhdGVkQnk/OiBVc2VyIHwgbnVsbDtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSgpXG4gIHB1YmxpYyBwcm9kdWN0VHlwZT86IG51bWJlcjtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSgpXG4gIHB1YmxpYyBtaW5pbXVtPzogbnVtYmVyO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KClcbiAgcHVibGljIG1pbmltdW1QZXJHcm91cD86IGJvb2xlYW47XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoKVxuICBwdWJsaWMgZGVsaXZlcnlEYXlzTm9ybWFsPzogbnVtYmVyO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KClcbiAgcHVibGljIHVuaXRQcmljZT86IG51bWJlcjtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSh7ZW1iZWRkZWRCeURlZmF1bHQ6IGZhbHNlfSlcbiAgcHVibGljIGJ1eVVuaXRQcmljZT86IG51bWJlcjtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSh7dHlwZTogJ0Rpc2NvdW50R3JvdXAnfSlcbiAgcHVibGljIHVuaXRQcmljZURpc2NvdW50R3JvdXA/OiBEaXNjb3VudEdyb3VwIHwgbnVsbDtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSh7YXJyYXlUeXBlOiAnU2hpcG1lbnRNZXRob2QnfSlcbiAgcHVibGljIHNoaXBtZW50TWV0aG9kcz86IFNoaXBtZW50TWV0aG9kW107XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoKVxuICBwdWJsaWMgbWFyZ2luPzogbnVtYmVyO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KHt0eXBlOiBOdW1iZXJ9KVxuICBwdWJsaWMgdW5pdFdlaWdodD86IG51bWJlciB8IG51bGw7XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe3R5cGU6IE51bWJlcn0pXG4gIHB1YmxpYyB1bml0SGVpZ2h0PzogbnVtYmVyIHwgbnVsbDtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSh7dHlwZTogTnVtYmVyfSlcbiAgcHVibGljIHVuaXRXaWR0aD86IG51bWJlciB8IG51bGw7XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe3R5cGU6IE51bWJlcn0pXG4gIHB1YmxpYyB1bml0RGVwdGg/OiBudW1iZXIgfCBudWxsO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KClcbiAgcHVibGljIG5hbWU/OiBzdHJpbmc7XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoKVxuICBwdWJsaWMgY291bnRyeT86IHN0cmluZztcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSgpXG4gIHB1YmxpYyBjdXJyZW5jeT86IHN0cmluZztcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSh7dHlwZTogU3RyaW5nfSlcbiAgcHVibGljIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgbnVsbDtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSh7dHlwZTogU3RyaW5nfSlcbiAgcHVibGljIG5vdGVzPzogc3RyaW5nIHwgbnVsbDtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSh7dHlwZTogU3RyaW5nfSlcbiAgcHVibGljIGludGVybmFsVXNlTm90ZXM/OiBzdHJpbmc7XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe3R5cGU6IFN0cmluZ30pXG4gIHB1YmxpYyBpbnRlcm5hbFVzZUFpQ29udGV4dD86IHN0cmluZztcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSh7dHlwZTogU3RyaW5nfSlcbiAgcHVibGljIGFpQ29udGV4dD86IHN0cmluZztcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSh7dHlwZTogU3RyaW5nfSlcbiAgcHVibGljIHNob3BpZnlQcm9kdWN0SWQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KClcbiAgcHVibGljIHVzZUNvbXBhbnlTaGlwbWVudE1ldGhvZHM/OiBib29sZWFuO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KClcbiAgcHVibGljIGRyb3BTaGlwbWVudD86IGJvb2xlYW47XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoKVxuICBwdWJsaWMgbmVlZHNEcmFmdGluZz86IGJvb2xlYW47XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoKVxuICBwdWJsaWMgbmVlZHNQcm9kdWN0aW9uPzogYm9vbGVhbjtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSgpXG4gIHB1YmxpYyBuZWVkc1NoaXBwaW5nPzogYm9vbGVhbjtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSgpXG4gIHB1YmxpYyBuZWVkc0ludm9pY2luZz86IGJvb2xlYW47XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoKVxuICBwdWJsaWMgbmVlZHNJbnZlbnRvcnk/OiBib29sZWFuO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KHt0eXBlOiBEYXRlfSlcbiAgcHVibGljIGZlYXR1cmVEZWFkbGluZT86IERhdGU7XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoKVxuICBwdWJsaWMgc2hvd0ZlYXR1cmVEZWFkbGluZT86IGJvb2xlYW47XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoKVxuICBwdWJsaWMgc2hvd1B1YmxpYz86IGJvb2xlYW47XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoKVxuICBwdWJsaWMgc2hvd0dyb3VwQnV5U3RhdHVzPzogYm9vbGVhbjtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSh7dHlwZTogTnVtYmVyfSlcbiAgcHVibGljIGdyb3VwQnV5U3RhdHVzPzogbnVtYmVyIHwgbnVsbDtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2NlcHRTcXVhcmU/OiBib29sZWFuO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KClcbiAgcHVibGljIGFjY2VwdFN0cmlwZT86IGJvb2xlYW47XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXB0UGF5cGFsPzogYm9vbGVhbjtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2NlcHRVdHJ1c3Q/OiBib29sZWFuO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KClcbiAgcHVibGljIGFjY2VwdEJhbmtUcmFuc2Zlcj86IGJvb2xlYW47XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXB0UGhvbmVQYXltZW50PzogYm9vbGVhbjtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSgpXG4gIHB1YmxpYyBhbGxvd0F1dG9tYXRpY1BheW1lbnRTdXBwbHk/OiBib29sZWFuO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KClcbiAgcHVibGljIGFsbG93R3JvdXBCdXk/OiBib29sZWFuO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KClcbiAgcHVibGljIGFsbG93UGF5bWVudFVwZnJvbnQ/OiBib29sZWFuO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KClcbiAgcHVibGljIGFsbG93UXVvdGF0aW9uPzogYm9vbGVhbjtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSgpXG4gIHB1YmxpYyBhbGxvd0NoYWluZWRJbnZlbnRvcnlDcmVhdGlvbj86IGJvb2xlYW47XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoKVxuICBwdWJsaWMgYWxsb3dDbGllbnREcmFmdENvbnRyaWJ1dGlvbj86IGJvb2xlYW47XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoKVxuICBwdWJsaWMgY2hhaW5lZEludmVudG9yeUhhbmRsaW5nVW5pdFByaWNlPzogbnVtYmVyO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KClcbiAgcHVibGljIGJlc3RQcmljZT86IG51bWJlcjtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSgpXG4gIHB1YmxpYyB1bml0Vm9sdW1lPzogbnVtYmVyO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KHthcnJheVR5cGU6ICdDYXRlZ29yeSd9KVxuICBwdWJsaWMgY2F0ZWdvcmllcz86IENhdGVnb3J5W107XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe2FycmF5VHlwZTogJ0NhdGVnb3J5J30pXG4gIHB1YmxpYyBwbGF0Zm9ybUNhdGVnb3JpZXM/OiBDYXRlZ29yeVtdO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KHthcnJheVR5cGU6ICdEaXNjb3VudEdyb3VwJ30pXG4gIHB1YmxpYyBkaXNjb3VudEdyb3Vwcz86IERpc2NvdW50R3JvdXBbXTtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSgpXG4gIHB1YmxpYyBkb21haW4/OiBEb21haW47XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe3R5cGU6IENvdW50cnlUYXh9KVxuICBwdWJsaWMgdGF4VHlwZT86IENvdW50cnlUYXggfCBudWxsO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KHt0eXBlOiBQcm9kdWN0fSlcbiAgcHVibGljIG9yaWdpbmFsUHJvZHVjdD86IFByb2R1Y3QgfCBudWxsO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KHt0eXBlOiBQcm9kdWN0fSlcbiAgcHVibGljIGNsb25lZEZyb21Qcm9kdWN0PzogUHJvZHVjdCB8IG51bGw7XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe3R5cGU6IFByb2R1Y3R9KVxuICBwdWJsaWMgY2hhaW5lZFN1cHBsaWVyUHJvZHVjdD86IFByb2R1Y3QgfCBudWxsO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KHthcnJheVR5cGU6ICdQcm9kdWN0J30pXG4gIHB1YmxpYyBjaGFpbmVkU2VsbGVyUHJvZHVjdHM/OiBQcm9kdWN0W107XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe3R5cGU6IFByb2R1Y3R9KVxuICBwdWJsaWMgY2hhaW5lZEludmVudG9yeVN1cHBsaWVyUHJvZHVjdD86IFByb2R1Y3QgfCBudWxsO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KHthcnJheVR5cGU6ICdQcm9kdWN0J30pXG4gIHB1YmxpYyBjaGFpbmVkSW52ZW50b3J5U2VsbGVyUHJvZHVjdHM/OiBQcm9kdWN0W107XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe3R5cGU6IENvbXBvbmVudH0pXG4gIHB1YmxpYyBjb21wb25lbnQ/OiBDb21wb25lbnQgfCBudWxsO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KHthcnJheVR5cGU6ICdNZXJjaGlGaWxlJ30pXG4gIHB1YmxpYyBpbWFnZXM/OiBNZXJjaGlGaWxlW107XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe2FycmF5VHlwZTogJ01lcmNoaUZpbGUnfSlcbiAgcHVibGljIHB1YmxpY0ZpbGVzPzogTWVyY2hpRmlsZVtdO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KHthcnJheVR5cGU6ICdNZXJjaGlGaWxlJ30pXG4gIHB1YmxpYyBwcm9kdWN0aW9uRmlsZXM/OiBNZXJjaGlGaWxlW107XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe2FycmF5VHlwZTogJ1ZhcmlhdGlvbkZpZWxkJ30pXG4gIHB1YmxpYyBncm91cFZhcmlhdGlvbkZpZWxkcz86IFZhcmlhdGlvbkZpZWxkW107XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe2FycmF5VHlwZTogJ1ZhcmlhdGlvbkZpZWxkJ30pXG4gIHB1YmxpYyBpbmRlcGVuZGVudFZhcmlhdGlvbkZpZWxkcz86IFZhcmlhdGlvbkZpZWxkW107XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe2FycmF5VHlwZTogJ0RvbWFpblRhZyd9KVxuICBwdWJsaWMgdGFncz86IERvbWFpblRhZ1tdO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KHthcnJheVR5cGU6ICdJbnRlcm5hbFRhZyd9KVxuICBwdWJsaWMgaW50ZXJuYWxUYWdzPzogSW50ZXJuYWxUYWdbXTtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSh7YXJyYXlUeXBlOiAnU2VvRG9tYWluUGFnZSd9KVxuICBwdWJsaWMgc2VvRG9tYWluUGFnZXM/OiBTZW9Eb21haW5QYWdlW107XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe3R5cGU6IE1lcmNoaUZpbGV9KVxuICBwdWJsaWMgZmVhdHVyZUltYWdlPzogTWVyY2hpRmlsZSB8IG51bGw7XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe3R5cGU6ICdKb2InfSlcbiAgcHVibGljIGNyZWF0ZWRCeUpvYj86IEpvYiB8IG51bGw7XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe3R5cGU6ICdKb2InfSlcbiAgcHVibGljIGRlZmF1bHRKb2I/OiBKb2I7XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe2FycmF5VHlwZTogJ0NvbXBhbnknLCBqc29uTmFtZTogJ3NhdmVkX2J5X2NvbXBhbmllcyd9KVxuICBwdWJsaWMgc2F2ZWRCeUNvbXBhbmllcz86IENvbXBhbnlbXTtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSh7YXJyYXlUeXBlOiAnU3VwcGx5RG9tYWluJ30pXG4gIHB1YmxpYyBzdXBwbGllZEJ5RG9tYWlucz86IFN1cHBseURvbWFpbltdO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KClcbiAgcHVibGljIGF1dG9Bc3NpZ25Qcm9kdWN0aW9uT25BY3Rpb24/OiBBdXRvQXNzaWduUHJvZHVjdGlvbk9uQWN0aW9uO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KHthcnJheVR5cGU6ICdTdXBwbHlEb21haW4nfSlcbiAgcHVibGljIHN1cHBseURvbWFpbnM/OiBTdXBwbHlEb21haW5bXTtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSgpXG4gIHB1YmxpYyBpbnZlbnRvcmllc09wZW4/OiBib29sZWFuO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KClcbiAgcHVibGljIHN1cHBseUNoYWluRGlzYWJsZWQ/OiBib29sZWFuO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KHthcnJheVR5cGU6ICdJbnZlbnRvcnknfSlcbiAgcHVibGljIGludmVudG9yaWVzPzogSW52ZW50b3J5W107XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe2FycmF5VHlwZTogJ0NhcnRJdGVtJ30pXG4gIHB1YmxpYyBjYXJ0SXRlbXM/OiBDYXJ0SXRlbVtdO1xuXG4gIEBQcm9kdWN0LnByb3BlcnR5KHthcnJheVR5cGU6ICdKb2InfSlcbiAgcHVibGljIGpvYnM/OiBKb2JbXTtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSh7YXJyYXlUeXBlOiAnSm9iJ30pXG4gIHB1YmxpYyBzdXBwbHlDaGFpblJlcXVlc3RKb2JzPzogSm9iW107XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe2FycmF5VHlwZTogJ1VzZXInLCBqc29uTmFtZTogJ3NhdmVkX2J5X3VzZXJzJ30pXG4gIHB1YmxpYyBzYXZlZEJ5VXNlcnM/OiBVc2VyW107XG5cbiAgQFByb2R1Y3QucHJvcGVydHkoe2FycmF5VHlwZTogJ1VzZXInfSlcbiAgcHVibGljIHN1cHBsaWVycz86IFVzZXJbXTtcblxuICBAUHJvZHVjdC5wcm9wZXJ0eSh7YXJyYXlUeXBlOiAnRHJhZnRUZW1wbGF0ZSd9KVxuICBwdWJsaWMgZHJhZnRUZW1wbGF0ZXM/OiBEcmFmdFRlbXBsYXRlW107XG5cbiAgcHVibGljIGR1cGxpY2F0ZSA9ICgpID0+IHtcbiAgICAvKiBjcmVhdGUgYSBjbG9uZSBvZiB0aGlzIHByb2R1Y3Qgb24gdGhlIGJhY2tlbmQsIHJldHVybmluZyBpdC4gKi9cbiAgICBjb25zdCBjb25zdHJ1Y3RvciA9IHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIFByb2R1Y3Q7XG4gICAgY29uc3QgcmVzb3VyY2VOYW1lID0gY29uc3RydWN0b3IucmVzb3VyY2VOYW1lO1xuICAgIGNvbnN0IHNpbmd1bGFyTmFtZSA9IGNvbnN0cnVjdG9yLnNpbmd1bGFyTmFtZTtcbiAgICBjb25zdCByZXNvdXJjZSA9IGAvJHtyZXNvdXJjZU5hbWV9LyR7U3RyaW5nKHRoaXMuaWQpfS9jb3B5L2A7XG4gICAgY29uc3QgZmV0Y2hPcHRpb25zID0ge21ldGhvZDogJ1BPU1QnfTtcbiAgICByZXR1cm4gdGhpcy5tZXJjaGkuYXV0aGVudGljYXRlZEZldGNoKHJlc291cmNlLCBmZXRjaE9wdGlvbnMpLlxuICAgICAgdGhlbigoZGF0YTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHByb2R1Y3QgPSBuZXcgdGhpcy5tZXJjaGkuUHJvZHVjdCgpO1xuICAgICAgICBwcm9kdWN0LmZyb21Kc29uKGRhdGFbc2luZ3VsYXJOYW1lXSk7XG4gICAgICAgIHJldHVybiBwcm9kdWN0O1xuICAgICAgfSk7XG4gIH07XG5cbiAgcHVibGljIHByaW1hcnlJbWFnZSA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5mZWF0dXJlSW1hZ2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdmZWF0dXJlSW1hZ2UgaXMgdW5kZWZpbmVkLCBkaWQgeW91IGZvcmdldCB0byBlbWJlZCBpdD8nKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaW1hZ2VzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW1hZ2VzIGlzIHVuZGVmaW5lZCwgZGlkIHlvdSBmb3JnZXQgdG8gZW1iZWQgaXQ/Jyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZlYXR1cmVJbWFnZSAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuZmVhdHVyZUltYWdlO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbWFnZXMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuaW1hZ2VzWzBdO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfTtcblxuICBwdWJsaWMgaGFzR3JvdXBWYXJpYXRpb25GaWVsZHMgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuZ3JvdXBWYXJpYXRpb25GaWVsZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgZXJyID0gJ2dyb3VwVmFyaWF0aW9uRmllbGRzIGlzIHVuZGVmaW5lZCwgZGlkIHlvdSBmb3JnZXQgdG8gZW1iZWQnICtcbiAgICAgICAgJyBpdD8nO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdyb3VwVmFyaWF0aW9uRmllbGRzLmxlbmd0aCA+IDA7XG4gIH07XG5cbiAgcHVibGljIGhhc0luZGVwZW5kZW50VmFyaWF0aW9uRmllbGRzID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLmluZGVwZW5kZW50VmFyaWF0aW9uRmllbGRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGVyciA9ICdpbmRlcGVuZGVudFZhcmlhdGlvbkZpZWxkcyBpcyB1bmRlZmluZWQsIGRpZCB5b3UgZm9yZ2V0IHRvJyArXG4gICAgICAgICcgZW1iZWQgaXQ/JztcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnIpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pbmRlcGVuZGVudFZhcmlhdGlvbkZpZWxkcy5sZW5ndGggPiAwO1xuICB9O1xuXG4gIHB1YmxpYyBhbGxWYXJpYXRpb25GaWVsZHMgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuZ3JvdXBWYXJpYXRpb25GaWVsZHMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc3QgZXJyID0gJ2dyb3VwVmFyaWF0aW9uRmllbGRzIGlzIHVuZGVmaW5lZCwgZGlkIHlvdSBmb3JnZXQgdG8gZW1iZWQnICtcbiAgICAgICAgJyBpdD8nO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycik7XG4gICAgfVxuICAgIGlmICh0aGlzLmluZGVwZW5kZW50VmFyaWF0aW9uRmllbGRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGVyciA9ICdpbmRlcGVuZGVudFZhcmlhdGlvbkZpZWxkcyBpcyB1bmRlZmluZWQsIGRpZCB5b3UgZm9yZ2V0IHRvJyArXG4gICAgICAgICcgZW1iZWQgaXQ/JztcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnIpO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQ6IFZhcmlhdGlvbkZpZWxkW10gPSBbXTtcbiAgICByZXR1cm4gcmVzdWx0LmNvbmNhdCh0aGlzLmdyb3VwVmFyaWF0aW9uRmllbGRzLFxuICAgICAgdGhpcy5pbmRlcGVuZGVudFZhcmlhdGlvbkZpZWxkcyk7XG4gIH07XG5cbiAgcHVibGljIGJ1aWxkRW1wdHlWYXJpYXRpb25zID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLmluZGVwZW5kZW50VmFyaWF0aW9uRmllbGRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGVyciA9ICdpbmRlcGVuZGVudFZhcmlhdGlvbkZpZWxkcyBpcyB1bmRlZmluZWQsIGRpZCB5b3UgZm9yZ2V0IHRvJyArXG4gICAgICAgICcgZW1iZWQgaXQ/JztcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnIpO1xuICAgIH1cbiAgICBjb25zdCBpVkY6IFZhcmlhdGlvbkZpZWxkW10gPVxuICAgICAgXy5vcmRlckJ5KHRoaXMuaW5kZXBlbmRlbnRWYXJpYXRpb25GaWVsZHMsIFsncG9zaXRpb24nXSwgWydhc2MnXSk7XG4gICAgcmV0dXJuIGlWRi5tYXAoZmllbGQgPT4gZmllbGQuYnVpbGRFbXB0eVZhcmlhdGlvbigpKTtcbiAgfTtcblxuICBwdWJsaWMgYnVpbGRFbXB0eVZhcmlhdGlvbkdyb3VwID0gKCkgPT4ge1xuICAgIGlmICh0aGlzLmdyb3VwVmFyaWF0aW9uRmllbGRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGVyciA9ICdncm91cFZhcmlhdGlvbkZpZWxkcyBpcyB1bmRlZmluZWQsIGRpZCB5b3UgZm9yZ2V0IHRvIGVtYmVkJyArXG4gICAgICAgICcgaXQ/JztcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnIpO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSBuZXcgdGhpcy5tZXJjaGkuVmFyaWF0aW9uc0dyb3VwKCk7XG4gICAgY29uc3QgdmFyaWF0aW9ucyA9IFtdO1xuICAgIGxldCBjb3N0ID0gMDtcbiAgICBjb25zdCBzb3J0ZWRGaWVsZHMgPSBfLm9yZGVyQnkoXG4gICAgICB0aGlzLmdyb3VwVmFyaWF0aW9uRmllbGRzLCBbJ3Bvc2l0aW9uJ10sIFsnYXNjJ10pO1xuICAgIHJlc3VsdC5xdWFudGl0eSA9IDA7XG4gICAgZm9yIChjb25zdCB2YXJpYXRpb25GaWVsZCBvZiBzb3J0ZWRGaWVsZHMpIHtcbiAgICAgIGNvbnN0IGVtcHR5ID0gdmFyaWF0aW9uRmllbGQuYnVpbGRFbXB0eVZhcmlhdGlvbigpO1xuICAgICAgdmFyaWF0aW9ucy5wdXNoKGVtcHR5KTtcbiAgICAgIGNvc3QgKz0gZW1wdHkuY29zdCBhcyBudW1iZXI7XG4gICAgfVxuICAgIHJlc3VsdC5ncm91cENvc3QgPSBjb3N0O1xuICAgIHJlc3VsdC52YXJpYXRpb25zID0gdmFyaWF0aW9ucztcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9O1xuXG4gIHB1YmxpYyByZW1vdmVWYXJpYXRpb25GaWVsZCA9ICh2YXJpYXRpb25GaWVsZDogVmFyaWF0aW9uRmllbGQpID0+IHtcbiAgICBpZiAodmFyaWF0aW9uRmllbGQuaW5kZXBlbmRlbnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd2YXJpYXRpb24uaW5kZXBlbmRlbnQgaXMgdW5kZWZpbmVkLCBkaWQgeW91ICcgK1xuICAgICAgICAgICAgICAgICAgICAgICdmb3JnZXQgdG8gZW1iZWQgaXQ/Jyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmluZGVwZW5kZW50VmFyaWF0aW9uRmllbGRzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGVyciA9ICdpbmRlcGVuZGVudFZhcmlhdGlvbkZpZWxkcyBpcyB1bmRlZmluZWQsIGRpZCB5b3UgZm9yZ2V0IHRvJyArXG4gICAgICAgICcgZW1iZWQgaXQ/JztcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnIpO1xuICAgIH1cbiAgICBpZiAodGhpcy5ncm91cFZhcmlhdGlvbkZpZWxkcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCBlcnIgPSAnZ3JvdXBWYXJpYXRpb25GaWVsZHMgaXMgdW5kZWZpbmVkLCBkaWQgeW91IGZvcmdldCB0byBlbWJlZCcgK1xuICAgICAgICAnIGl0Pyc7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyKTtcbiAgICB9XG4gICAgY29uc3QgdmFyaWF0aW9uRmllbGRzID0gdmFyaWF0aW9uRmllbGQuaW5kZXBlbmRlbnQgP1xuICAgICAgdGhpcy5pbmRlcGVuZGVudFZhcmlhdGlvbkZpZWxkcyA6IHRoaXMuZ3JvdXBWYXJpYXRpb25GaWVsZHM7XG4gICAgY29uc3QgaW5kZXggPSB2YXJpYXRpb25GaWVsZHMuZmluZEluZGV4KHYgPT4ge1xuICAgICAgaWYgKHYuaWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZhcmlhdGlvbiBpZCBpcyB1bmRlZmluZWQsIGRpZCB5b3UgZm9yZ2V0IHRvICcgK1xuICAgICAgICAgICdlbWJlZCBpdD8nKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2LmlkID09PSB2YXJpYXRpb25GaWVsZC5pZDtcbiAgICB9KTtcbiAgICByZXR1cm4gdmFyaWF0aW9uRmllbGRzLnNwbGljZShpbmRleCwgMSk7XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLQSxDQUFDLE1BQU0sUUFBUTtBQUkzQixTQUFTQyxTQUFTLFFBQVEsYUFBYTtBQUN2QyxTQUFTQyxVQUFVLFFBQVEsZUFBZTtBQUsxQyxTQUFTQyxNQUFNLFFBQVEsV0FBVztBQUNsQyxTQUFTQyxVQUFVLFFBQVEsUUFBUTtBQWFuQyxXQUFhQyxPQUFPLElBQUFDLElBQUEs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YUFBQSxFQUFBcEMsc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLGdCQUFBaUQsYUFBQSxFQUFBckMsc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLHdCQUFBa0QsYUFBQSxFQUFBdEMsc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLG9CQUFBbUQsYUFBQSxFQUFBdkMsc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLGtCQUFBb0QsYUFBQSxFQUFBeEMsc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLGtCQUFBcUQsYUFBQSxFQUFBekMsc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLGtCQUFBc0QsYUFBQSxFQUFBMUMsc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLGtCQUFBdUQsYUFBQSxFQUFBM0Msc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLHdCQUFBd0QsYUFBQSxFQUFBNUMsc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLHdCQUFBeUQsYUFBQSxFQUFBN0Msc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLGlDQUFBMEQsYUFBQSxFQUFBOUMsc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLG1CQUFBMkQsYUFBQSxFQUFBL0Msc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLHlCQUFBNEQsYUFBQSxFQUFBaEQsc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLG9CQUFBNkQsYUFBQSxFQUFBakQsc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLG1DQUFBOEQsYUFBQSxFQUFBbEQsc0JBQUEsQ0FBQVosS0FBQTtJQUFBVSwwQkFBQSxDQUFBVixLQUFBLGtDQUFBK0Qs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