@vality/swag-payments 0.1.3-e658db3.0 → 0.1.3-fd6802c.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 (761) hide show
  1. package/README.md +224 -12
  2. package/{lib/api → api}/api.d.ts +1 -3
  3. package/{lib/api → api}/categories.service.d.ts +16 -15
  4. package/{lib/api → api}/contracts.service.d.ts +52 -33
  5. package/{lib/api → api}/countries.service.d.ts +16 -15
  6. package/{lib/api → api}/customers.service.d.ts +58 -36
  7. package/{lib/api → api}/invoiceTemplates.service.d.ts +40 -27
  8. package/{lib/api → api}/invoices.service.d.ts +58 -36
  9. package/{lib/api → api}/parties.service.d.ts +40 -27
  10. package/api/paymentInstitutions.service.d.ts +132 -0
  11. package/{lib/api → api}/payments.service.d.ts +88 -51
  12. package/{lib/api → api}/search.service.d.ts +22 -57
  13. package/{lib/api → api}/shops.service.d.ts +52 -33
  14. package/{lib/api → api}/tokens.service.d.ts +10 -12
  15. package/{lib/api → api}/tradeBlocs.service.d.ts +16 -15
  16. package/{lib/api → api}/webhooks.service.d.ts +34 -24
  17. package/api.base.service.d.ts +12 -0
  18. package/{lib/configuration.d.ts → configuration.d.ts} +3 -1
  19. package/fesm2022/vality-swag-payments.mjs +1187 -4352
  20. package/fesm2022/vality-swag-payments.mjs.map +1 -1
  21. package/index.d.ts +6 -5
  22. package/model/accessToken.d.ts +15 -0
  23. package/model/allocationFee.d.ts +24 -0
  24. package/model/allocationFeeTarget.d.ts +21 -0
  25. package/model/allocationTarget.d.ts +21 -0
  26. package/model/allocationTargetShop.d.ts +21 -0
  27. package/model/allocationTransaction.d.ts +32 -0
  28. package/model/apiExtensionRequest.d.ts +16 -0
  29. package/model/applePay.d.ts +22 -0
  30. package/model/articlesOfAssociation.d.ts +17 -0
  31. package/model/bankAccount.d.ts +27 -0
  32. package/model/bankCard.d.ts +23 -0
  33. package/model/bankCardDetails.d.ts +42 -0
  34. package/{lib/model → model}/bankCardTokenProviderData.d.ts +0 -2
  35. package/model/bankCardTokenizationMethod.d.ts +17 -0
  36. package/model/browserGetRequest.d.ts +16 -0
  37. package/model/browserPostRequest.d.ts +21 -0
  38. package/model/browserRequest.d.ts +15 -0
  39. package/model/cancelPayment400Response.d.ts +30 -0
  40. package/model/captureParams.d.ts +33 -0
  41. package/model/capturePayment400Response.d.ts +35 -0
  42. package/model/cardData.d.ts +30 -0
  43. package/model/category.d.ts +14 -0
  44. package/model/chargeback.d.ts +58 -0
  45. package/model/clientInfo.d.ts +26 -0
  46. package/model/contactInfo.d.ts +58 -0
  47. package/model/contract.d.ts +52 -0
  48. package/model/contractAdjustment.d.ts +30 -0
  49. package/model/contractor.d.ts +26 -0
  50. package/model/costAmountRange.d.ts +19 -0
  51. package/model/country.d.ts +20 -0
  52. package/model/createBinding400Response.d.ts +32 -0
  53. package/model/createCustomer400Response.d.ts +32 -0
  54. package/model/createInvoice400Response.d.ts +36 -0
  55. package/model/createInvoiceTemplate400Response.d.ts +32 -0
  56. package/model/createInvoiceWithTemplate400Response.d.ts +29 -0
  57. package/model/createPayment400Response.d.ts +36 -0
  58. package/model/createRefund400Response.d.ts +39 -0
  59. package/model/createWebhook400Response.d.ts +29 -0
  60. package/model/createWebhook429Response.d.ts +15 -0
  61. package/model/cryptoCurrencyTransferRequest.d.ts +24 -0
  62. package/model/cryptoWallet.d.ts +18 -0
  63. package/model/cryptoWalletData.d.ts +18 -0
  64. package/model/cryptoWalletDetails.d.ts +15 -0
  65. package/model/customer.d.ts +44 -0
  66. package/model/customerAndToken.d.ts +15 -0
  67. package/model/customerBinding.d.ts +35 -0
  68. package/model/customerBindingError.d.ts +16 -0
  69. package/model/customerBindingInteractionCompleted.d.ts +20 -0
  70. package/model/customerBindingInteractionRequested.d.ts +20 -0
  71. package/model/customerBindingParams.d.ts +17 -0
  72. package/model/customerBindingStarted.d.ts +16 -0
  73. package/model/customerBindingStatus.d.ts +25 -0
  74. package/model/customerBindingStatusChanged.d.ts +27 -0
  75. package/model/customerChange.d.ts +21 -0
  76. package/model/customerEvent.d.ts +15 -0
  77. package/model/customerParams.d.ts +29 -0
  78. package/model/customerPayer.d.ts +21 -0
  79. package/model/customersTopic.d.ts +34 -0
  80. package/model/decimal.d.ts +22 -0
  81. package/model/defaultLogicError.d.ts +26 -0
  82. package/model/deleteCustomer400Response.d.ts +28 -0
  83. package/model/digitalWallet.d.ts +18 -0
  84. package/model/digitalWalletData.d.ts +26 -0
  85. package/model/digitalWalletDetails.d.ts +15 -0
  86. package/model/externalIDConflictError.d.ts +23 -0
  87. package/model/fulfillInvoice400Response.d.ts +29 -0
  88. package/model/generalError.d.ts +12 -0
  89. package/model/googlePay.d.ts +22 -0
  90. package/model/internationalBankAccount.d.ts +26 -0
  91. package/model/internationalBankDetails.d.ts +34 -0
  92. package/model/internationalCorrespondentBankAccount.d.ts +22 -0
  93. package/model/internationalLegalEntity.d.ts +41 -0
  94. package/{lib/model → model}/invoice.d.ts +2 -2
  95. package/model/invoiceAmountRandomized.d.ts +22 -0
  96. package/model/invoiceAndToken.d.ts +15 -0
  97. package/model/invoiceBankAccount.d.ts +24 -0
  98. package/model/invoiceChange.d.ts +25 -0
  99. package/model/invoiceClientInfo.d.ts +25 -0
  100. package/model/invoiceCreated.d.ts +16 -0
  101. package/model/invoiceEvent.d.ts +15 -0
  102. package/model/invoiceLine.d.ts +32 -0
  103. package/model/invoiceLineTaxMode.d.ts +24 -0
  104. package/model/invoiceLineTaxVAT.d.ts +28 -0
  105. package/{lib/model → model}/invoiceParams.d.ts +2 -2
  106. package/model/invoiceParamsWithTemplate.d.ts +27 -0
  107. package/model/invoiceRandomizeAmount.d.ts +46 -0
  108. package/model/invoiceRussianBankAccount.d.ts +22 -0
  109. package/model/invoiceStatus.d.ts +28 -0
  110. package/model/invoiceStatusChanged.d.ts +29 -0
  111. package/model/invoiceTemplate.d.ts +45 -0
  112. package/model/invoiceTemplateAndToken.d.ts +15 -0
  113. package/model/invoiceTemplateCreateParams.d.ts +41 -0
  114. package/model/invoiceTemplateDetails.d.ts +12 -0
  115. package/model/invoiceTemplateLineCost.d.ts +15 -0
  116. package/model/invoiceTemplateLineCostFixed.d.ts +20 -0
  117. package/model/invoiceTemplateLineCostRange.d.ts +18 -0
  118. package/model/invoiceTemplateLineCostUnlim.d.ts +12 -0
  119. package/model/invoiceTemplateMultiLine.d.ts +21 -0
  120. package/model/invoiceTemplateSingleLine.d.ts +20 -0
  121. package/model/invoiceTemplateUpdateParams.d.ts +29 -0
  122. package/{lib/model → model}/invoicesTopic.d.ts +0 -2
  123. package/model/legalAgreement.d.ts +26 -0
  124. package/model/legalEntity.d.ts +26 -0
  125. package/model/lifetimeInterval.d.ts +17 -0
  126. package/model/logicError.d.ts +16 -0
  127. package/model/mobileCommerce.d.ts +18 -0
  128. package/model/mobileCommerceData.d.ts +16 -0
  129. package/model/mobileCommerceDetails.d.ts +15 -0
  130. package/model/mobileCommercePhone.d.ts +22 -0
  131. package/{lib/model → model}/models.d.ts +2 -73
  132. package/model/party.d.ts +14 -0
  133. package/model/payer.d.ts +17 -0
  134. package/model/payerSessionInfo.d.ts +18 -0
  135. package/{lib/model → model}/payment.d.ts +0 -2
  136. package/model/paymentError.d.ts +20 -0
  137. package/model/paymentFlow.d.ts +22 -0
  138. package/model/paymentFlowHold.d.ts +27 -0
  139. package/model/paymentFlowInstant.d.ts +14 -0
  140. package/model/paymentInstitution.d.ts +29 -0
  141. package/model/paymentInteractionCompleted.d.ts +20 -0
  142. package/model/paymentInteractionRequested.d.ts +20 -0
  143. package/model/paymentMethod.d.ts +25 -0
  144. package/model/paymentParams.d.ts +31 -0
  145. package/model/paymentRecurrentParent.d.ts +22 -0
  146. package/model/paymentResource.d.ts +26 -0
  147. package/model/paymentResourceClientInfo.d.ts +23 -0
  148. package/model/paymentResourceParams.d.ts +15 -0
  149. package/model/paymentResourcePayer.d.ts +29 -0
  150. package/model/paymentResourceResult.d.ts +34 -0
  151. package/{lib/model → model}/paymentSearchResult.d.ts +0 -2
  152. package/model/paymentStarted.d.ts +16 -0
  153. package/model/paymentStatus.d.ts +28 -0
  154. package/model/paymentStatusChanged.d.ts +30 -0
  155. package/model/paymentTerminal.d.ts +18 -0
  156. package/model/paymentTerminalData.d.ts +22 -0
  157. package/model/paymentTerminalDetails.d.ts +15 -0
  158. package/model/paymentTerminalReceipt.d.ts +20 -0
  159. package/model/paymentTerms.d.ts +13 -0
  160. package/model/paymentTool.d.ts +26 -0
  161. package/model/paymentToolDetails.d.ts +18 -0
  162. package/model/paymentToolDetailsBankCard.d.ts +43 -0
  163. package/model/paymentToolDetailsCryptoWallet.d.ts +16 -0
  164. package/model/paymentToolDetailsDigitalWallet.d.ts +16 -0
  165. package/model/paymentToolDetailsMobileCommerce.d.ts +16 -0
  166. package/model/paymentToolDetailsPaymentTerminal.d.ts +16 -0
  167. package/model/powerOfAttorney.d.ts +26 -0
  168. package/model/privateEntity.d.ts +25 -0
  169. package/model/qrCodeDisplayRequest.d.ts +16 -0
  170. package/model/realmMode.d.ts +17 -0
  171. package/model/reason.d.ts +15 -0
  172. package/model/recurrentPayer.d.ts +21 -0
  173. package/model/redirect.d.ts +14 -0
  174. package/{lib/model → model}/refund.d.ts +0 -2
  175. package/model/refundError.d.ts +22 -0
  176. package/model/refundParams.d.ts +37 -0
  177. package/{lib/model → model}/refundSearchResult.d.ts +8 -10
  178. package/model/refundStarted.d.ts +17 -0
  179. package/model/refundStatus.d.ts +25 -0
  180. package/model/refundStatusChanged.d.ts +28 -0
  181. package/model/registeredUser.d.ts +21 -0
  182. package/model/reportLink.d.ts +15 -0
  183. package/model/reportParams.d.ts +29 -0
  184. package/model/reportingPreferences.d.ts +16 -0
  185. package/model/representative.d.ts +24 -0
  186. package/model/representativeDocument.d.ts +22 -0
  187. package/model/rescindInvoice400Response.d.ts +30 -0
  188. package/{lib/model → model}/russianLegalEntity.d.ts +0 -2
  189. package/model/russianPrivateEntity.d.ts +31 -0
  190. package/model/samsungPay.d.ts +22 -0
  191. package/model/schedule.d.ts +17 -0
  192. package/model/searchInvoices200Response.d.ts +17 -0
  193. package/model/searchPayments200Response.d.ts +17 -0
  194. package/model/searchRefunds200Response.d.ts +14 -0
  195. package/model/serviceAcceptanceActPreferences.d.ts +20 -0
  196. package/model/serviceProvider.d.ts +30 -0
  197. package/model/shop.d.ts +46 -0
  198. package/model/shopDetails.d.ts +19 -0
  199. package/model/shopLocation.d.ts +18 -0
  200. package/model/shopLocationUrl.d.ts +19 -0
  201. package/model/subError.d.ts +19 -0
  202. package/model/tokenizedCardData.d.ts +22 -0
  203. package/model/tradeBloc.d.ts +17 -0
  204. package/model/transactionInfo.d.ts +22 -0
  205. package/model/updateInvoiceTemplate400Response.d.ts +29 -0
  206. package/model/userInteraction.d.ts +15 -0
  207. package/model/userInteractionFormInner.d.ts +19 -0
  208. package/model/webhook.d.ts +33 -0
  209. package/model/webhookScope.d.ts +25 -0
  210. package/model/yandexPay.d.ts +22 -0
  211. package/package.json +14 -10
  212. package/esm2022/lib/api/api.mjs +0 -32
  213. package/esm2022/lib/api/categories.service.mjs +0 -212
  214. package/esm2022/lib/api/contracts.service.mjs +0 -592
  215. package/esm2022/lib/api/countries.service.mjs +0 -212
  216. package/esm2022/lib/api/customers.service.mjs +0 -675
  217. package/esm2022/lib/api/invoiceTemplates.service.mjs +0 -491
  218. package/esm2022/lib/api/invoices.service.mjs +0 -698
  219. package/esm2022/lib/api/parties.service.mjs +0 -444
  220. package/esm2022/lib/api/paymentInstitutions.service.mjs +0 -622
  221. package/esm2022/lib/api/payments.service.mjs +0 -1056
  222. package/esm2022/lib/api/payouts.service.mjs +0 -541
  223. package/esm2022/lib/api/search.service.mjs +0 -616
  224. package/esm2022/lib/api/shops.service.mjs +0 -584
  225. package/esm2022/lib/api/tokens.service.mjs +0 -165
  226. package/esm2022/lib/api/tradeBlocs.service.mjs +0 -212
  227. package/esm2022/lib/api/webhooks.service.mjs +0 -401
  228. package/esm2022/lib/api.module.mjs +0 -40
  229. package/esm2022/lib/configuration.mjs +0 -102
  230. package/esm2022/lib/encoder.mjs +0 -19
  231. package/esm2022/lib/index.mjs +0 -7
  232. package/esm2022/lib/model/accessToken.mjs +0 -13
  233. package/esm2022/lib/model/allocationBodyAmount.mjs +0 -2
  234. package/esm2022/lib/model/allocationBodyAmountAllOf.mjs +0 -13
  235. package/esm2022/lib/model/allocationBodyTotal.mjs +0 -2
  236. package/esm2022/lib/model/allocationBodyTotalAllOf.mjs +0 -2
  237. package/esm2022/lib/model/allocationFee.mjs +0 -8
  238. package/esm2022/lib/model/allocationFeeFixed.mjs +0 -2
  239. package/esm2022/lib/model/allocationFeeFixedAllOf.mjs +0 -13
  240. package/esm2022/lib/model/allocationFeeShare.mjs +0 -2
  241. package/esm2022/lib/model/allocationFeeShareAllOf.mjs +0 -2
  242. package/esm2022/lib/model/allocationFeeTarget.mjs +0 -18
  243. package/esm2022/lib/model/allocationTarget.mjs +0 -18
  244. package/esm2022/lib/model/allocationTargetShop.mjs +0 -2
  245. package/esm2022/lib/model/allocationTargetShopAllOf.mjs +0 -13
  246. package/esm2022/lib/model/allocationTransaction.mjs +0 -8
  247. package/esm2022/lib/model/apiExtensionRequest.mjs +0 -2
  248. package/esm2022/lib/model/apiExtensionRequestAllOf.mjs +0 -13
  249. package/esm2022/lib/model/applePay.mjs +0 -2
  250. package/esm2022/lib/model/applePayAllOf.mjs +0 -13
  251. package/esm2022/lib/model/articlesOfAssociation.mjs +0 -2
  252. package/esm2022/lib/model/bankAccount.mjs +0 -13
  253. package/esm2022/lib/model/bankCard.mjs +0 -2
  254. package/esm2022/lib/model/bankCardAllOf.mjs +0 -2
  255. package/esm2022/lib/model/bankCardAllOfTokenProviderData.mjs +0 -19
  256. package/esm2022/lib/model/bankCardDetails.mjs +0 -19
  257. package/esm2022/lib/model/bankCardTokenProviderData.mjs +0 -19
  258. package/esm2022/lib/model/bankCardTokenizationMethod.mjs +0 -16
  259. package/esm2022/lib/model/browserGetRequest.mjs +0 -2
  260. package/esm2022/lib/model/browserGetRequestAllOf.mjs +0 -13
  261. package/esm2022/lib/model/browserPostRequest.mjs +0 -2
  262. package/esm2022/lib/model/browserPostRequestAllOf.mjs +0 -2
  263. package/esm2022/lib/model/browserRequest.mjs +0 -13
  264. package/esm2022/lib/model/cancelPayment400Response.mjs +0 -23
  265. package/esm2022/lib/model/captureParams.mjs +0 -2
  266. package/esm2022/lib/model/captureParamsAllOf.mjs +0 -2
  267. package/esm2022/lib/model/capturePayment400Response.mjs +0 -28
  268. package/esm2022/lib/model/cardData.mjs +0 -2
  269. package/esm2022/lib/model/cardDataAllOf.mjs +0 -13
  270. package/esm2022/lib/model/category.mjs +0 -13
  271. package/esm2022/lib/model/chargeback.mjs +0 -26
  272. package/esm2022/lib/model/clientInfo.mjs +0 -13
  273. package/esm2022/lib/model/contactInfo.mjs +0 -13
  274. package/esm2022/lib/model/contract.mjs +0 -8
  275. package/esm2022/lib/model/contractAdjustment.mjs +0 -13
  276. package/esm2022/lib/model/contractor.mjs +0 -20
  277. package/esm2022/lib/model/costAmountRange.mjs +0 -13
  278. package/esm2022/lib/model/country.mjs +0 -13
  279. package/esm2022/lib/model/createBinding400Response.mjs +0 -25
  280. package/esm2022/lib/model/createCustomer400Response.mjs +0 -25
  281. package/esm2022/lib/model/createInvoice400Response.mjs +0 -29
  282. package/esm2022/lib/model/createInvoiceTemplate400Response.mjs +0 -25
  283. package/esm2022/lib/model/createInvoiceWithTemplate400Response.mjs +0 -22
  284. package/esm2022/lib/model/createPayment400Response.mjs +0 -29
  285. package/esm2022/lib/model/createPayout400Response.mjs +0 -23
  286. package/esm2022/lib/model/createRefund400Response.mjs +0 -32
  287. package/esm2022/lib/model/createWebhook400Response.mjs +0 -22
  288. package/esm2022/lib/model/createWebhook429Response.mjs +0 -13
  289. package/esm2022/lib/model/cryptoCurrencyTransferRequest.mjs +0 -2
  290. package/esm2022/lib/model/cryptoCurrencyTransferRequestAllOf.mjs +0 -13
  291. package/esm2022/lib/model/cryptoWallet.mjs +0 -2
  292. package/esm2022/lib/model/cryptoWalletAllOf.mjs +0 -13
  293. package/esm2022/lib/model/cryptoWalletData.mjs +0 -2
  294. package/esm2022/lib/model/cryptoWalletDetails.mjs +0 -13
  295. package/esm2022/lib/model/customer.mjs +0 -8
  296. package/esm2022/lib/model/customerAndToken.mjs +0 -2
  297. package/esm2022/lib/model/customerBinding.mjs +0 -9
  298. package/esm2022/lib/model/customerBindingError.mjs +0 -13
  299. package/esm2022/lib/model/customerBindingInteractionCompleted.mjs +0 -2
  300. package/esm2022/lib/model/customerBindingInteractionCompletedAllOf.mjs +0 -2
  301. package/esm2022/lib/model/customerBindingInteractionRequested.mjs +0 -2
  302. package/esm2022/lib/model/customerBindingInteractionRequestedAllOf.mjs +0 -2
  303. package/esm2022/lib/model/customerBindingParams.mjs +0 -2
  304. package/esm2022/lib/model/customerBindingStarted.mjs +0 -2
  305. package/esm2022/lib/model/customerBindingStartedAllOf.mjs +0 -2
  306. package/esm2022/lib/model/customerBindingStatus.mjs +0 -9
  307. package/esm2022/lib/model/customerBindingStatusChanged.mjs +0 -9
  308. package/esm2022/lib/model/customerBindingStatusChangedAllOf.mjs +0 -13
  309. package/esm2022/lib/model/customerChange.mjs +0 -21
  310. package/esm2022/lib/model/customerEvent.mjs +0 -2
  311. package/esm2022/lib/model/customerParams.mjs +0 -2
  312. package/esm2022/lib/model/customerPayer.mjs +0 -2
  313. package/esm2022/lib/model/customerPayerAllOf.mjs +0 -2
  314. package/esm2022/lib/model/customersTopic.mjs +0 -12
  315. package/esm2022/lib/model/customersTopicAllOf.mjs +0 -23
  316. package/esm2022/lib/model/decimal.mjs +0 -13
  317. package/esm2022/lib/model/defaultLogicError.mjs +0 -19
  318. package/esm2022/lib/model/deleteCustomer400Response.mjs +0 -21
  319. package/esm2022/lib/model/digitalWallet.mjs +0 -2
  320. package/esm2022/lib/model/digitalWalletAllOf.mjs +0 -13
  321. package/esm2022/lib/model/digitalWalletData.mjs +0 -2
  322. package/esm2022/lib/model/digitalWalletDataAllOf.mjs +0 -13
  323. package/esm2022/lib/model/digitalWalletDetails.mjs +0 -13
  324. package/esm2022/lib/model/externalIDConflictError.mjs +0 -13
  325. package/esm2022/lib/model/fulfillInvoice400Response.mjs +0 -22
  326. package/esm2022/lib/model/generalError.mjs +0 -13
  327. package/esm2022/lib/model/googlePay.mjs +0 -2
  328. package/esm2022/lib/model/googlePayAllOf.mjs +0 -13
  329. package/esm2022/lib/model/internationalBankAccount.mjs +0 -2
  330. package/esm2022/lib/model/internationalBankDetails.mjs +0 -13
  331. package/esm2022/lib/model/internationalCorrespondentBankAccount.mjs +0 -2
  332. package/esm2022/lib/model/internationalLegalEntity.mjs +0 -2
  333. package/esm2022/lib/model/internationalLegalEntityAllOf.mjs +0 -13
  334. package/esm2022/lib/model/invoice.mjs +0 -10
  335. package/esm2022/lib/model/invoiceAndToken.mjs +0 -2
  336. package/esm2022/lib/model/invoiceBankAccount.mjs +0 -18
  337. package/esm2022/lib/model/invoiceChange.mjs +0 -25
  338. package/esm2022/lib/model/invoiceClientInfo.mjs +0 -19
  339. package/esm2022/lib/model/invoiceCreated.mjs +0 -2
  340. package/esm2022/lib/model/invoiceCreatedAllOf.mjs +0 -2
  341. package/esm2022/lib/model/invoiceEvent.mjs +0 -2
  342. package/esm2022/lib/model/invoiceLine.mjs +0 -2
  343. package/esm2022/lib/model/invoiceLineTaxMode.mjs +0 -18
  344. package/esm2022/lib/model/invoiceLineTaxVAT.mjs +0 -13
  345. package/esm2022/lib/model/invoiceLineTaxVATAllOf.mjs +0 -24
  346. package/esm2022/lib/model/invoiceParams.mjs +0 -2
  347. package/esm2022/lib/model/invoiceParamsWithTemplate.mjs +0 -13
  348. package/esm2022/lib/model/invoiceRussianBankAccount.mjs +0 -2
  349. package/esm2022/lib/model/invoiceRussianBankAccountAllOf.mjs +0 -13
  350. package/esm2022/lib/model/invoiceStatus.mjs +0 -21
  351. package/esm2022/lib/model/invoiceStatusChanged.mjs +0 -10
  352. package/esm2022/lib/model/invoiceTemplate.mjs +0 -2
  353. package/esm2022/lib/model/invoiceTemplateAndToken.mjs +0 -2
  354. package/esm2022/lib/model/invoiceTemplateCreateParams.mjs +0 -2
  355. package/esm2022/lib/model/invoiceTemplateDetails.mjs +0 -13
  356. package/esm2022/lib/model/invoiceTemplateLineCost.mjs +0 -13
  357. package/esm2022/lib/model/invoiceTemplateLineCostFixed.mjs +0 -2
  358. package/esm2022/lib/model/invoiceTemplateLineCostFixedAllOf.mjs +0 -13
  359. package/esm2022/lib/model/invoiceTemplateLineCostRange.mjs +0 -2
  360. package/esm2022/lib/model/invoiceTemplateLineCostRangeAllOf.mjs +0 -2
  361. package/esm2022/lib/model/invoiceTemplateLineCostUnlim.mjs +0 -2
  362. package/esm2022/lib/model/invoiceTemplateMultiLine.mjs +0 -2
  363. package/esm2022/lib/model/invoiceTemplateMultiLineAllOf.mjs +0 -2
  364. package/esm2022/lib/model/invoiceTemplateSingleLine.mjs +0 -2
  365. package/esm2022/lib/model/invoiceTemplateSingleLineAllOf.mjs +0 -2
  366. package/esm2022/lib/model/invoiceTemplateUpdateParams.mjs +0 -2
  367. package/esm2022/lib/model/invoicesTopic.mjs +0 -21
  368. package/esm2022/lib/model/invoicesTopicAllOf.mjs +0 -32
  369. package/esm2022/lib/model/legalAgreement.mjs +0 -13
  370. package/esm2022/lib/model/legalEntity.mjs +0 -2
  371. package/esm2022/lib/model/legalEntityAllOf.mjs +0 -19
  372. package/esm2022/lib/model/lifetimeInterval.mjs +0 -13
  373. package/esm2022/lib/model/logicError.mjs +0 -13
  374. package/esm2022/lib/model/mobileCommerce.mjs +0 -2
  375. package/esm2022/lib/model/mobileCommerceAllOf.mjs +0 -13
  376. package/esm2022/lib/model/mobileCommerceData.mjs +0 -2
  377. package/esm2022/lib/model/mobileCommerceDataAllOf.mjs +0 -2
  378. package/esm2022/lib/model/mobileCommerceDetails.mjs +0 -13
  379. package/esm2022/lib/model/mobileCommercePhone.mjs +0 -13
  380. package/esm2022/lib/model/models.mjs +0 -264
  381. package/esm2022/lib/model/party.mjs +0 -13
  382. package/esm2022/lib/model/payer.mjs +0 -2
  383. package/esm2022/lib/model/payerSessionInfo.mjs +0 -13
  384. package/esm2022/lib/model/payment.mjs +0 -12
  385. package/esm2022/lib/model/paymentError.mjs +0 -2
  386. package/esm2022/lib/model/paymentFlow.mjs +0 -19
  387. package/esm2022/lib/model/paymentFlowHold.mjs +0 -8
  388. package/esm2022/lib/model/paymentFlowHoldAllOf.mjs +0 -19
  389. package/esm2022/lib/model/paymentFlowInstant.mjs +0 -2
  390. package/esm2022/lib/model/paymentInstitution.mjs +0 -19
  391. package/esm2022/lib/model/paymentInteractionCompleted.mjs +0 -2
  392. package/esm2022/lib/model/paymentInteractionCompletedAllOf.mjs +0 -2
  393. package/esm2022/lib/model/paymentInteractionRequested.mjs +0 -2
  394. package/esm2022/lib/model/paymentInteractionRequestedAllOf.mjs +0 -2
  395. package/esm2022/lib/model/paymentMethod.mjs +0 -22
  396. package/esm2022/lib/model/paymentParams.mjs +0 -2
  397. package/esm2022/lib/model/paymentRecurrentParent.mjs +0 -13
  398. package/esm2022/lib/model/paymentResource.mjs +0 -2
  399. package/esm2022/lib/model/paymentResourceClientInfo.mjs +0 -13
  400. package/esm2022/lib/model/paymentResourceParams.mjs +0 -2
  401. package/esm2022/lib/model/paymentResourcePayer.mjs +0 -2
  402. package/esm2022/lib/model/paymentResourcePayerAllOf.mjs +0 -2
  403. package/esm2022/lib/model/paymentResourceResult.mjs +0 -2
  404. package/esm2022/lib/model/paymentSearchResult.mjs +0 -12
  405. package/esm2022/lib/model/paymentSearchResultAllOf.mjs +0 -2
  406. package/esm2022/lib/model/paymentStarted.mjs +0 -2
  407. package/esm2022/lib/model/paymentStartedAllOf.mjs +0 -2
  408. package/esm2022/lib/model/paymentStatus.mjs +0 -12
  409. package/esm2022/lib/model/paymentStatusChanged.mjs +0 -12
  410. package/esm2022/lib/model/paymentStatusChangedAllOf.mjs +0 -13
  411. package/esm2022/lib/model/paymentTerminal.mjs +0 -2
  412. package/esm2022/lib/model/paymentTerminalAllOf.mjs +0 -13
  413. package/esm2022/lib/model/paymentTerminalData.mjs +0 -2
  414. package/esm2022/lib/model/paymentTerminalDataAllOf.mjs +0 -13
  415. package/esm2022/lib/model/paymentTerminalDetails.mjs +0 -13
  416. package/esm2022/lib/model/paymentTerminalReceipt.mjs +0 -2
  417. package/esm2022/lib/model/paymentTerminalReceiptAllOf.mjs +0 -13
  418. package/esm2022/lib/model/paymentTerms.mjs +0 -13
  419. package/esm2022/lib/model/paymentTool.mjs +0 -23
  420. package/esm2022/lib/model/paymentToolDetails.mjs +0 -13
  421. package/esm2022/lib/model/paymentToolDetailsBankCard.mjs +0 -8
  422. package/esm2022/lib/model/paymentToolDetailsCryptoWallet.mjs +0 -2
  423. package/esm2022/lib/model/paymentToolDetailsDigitalWallet.mjs +0 -2
  424. package/esm2022/lib/model/paymentToolDetailsMobileCommerce.mjs +0 -2
  425. package/esm2022/lib/model/paymentToolDetailsPaymentTerminal.mjs +0 -2
  426. package/esm2022/lib/model/payout.mjs +0 -2
  427. package/esm2022/lib/model/payoutParams.mjs +0 -13
  428. package/esm2022/lib/model/payoutTool.mjs +0 -2
  429. package/esm2022/lib/model/payoutToolAllOf.mjs +0 -13
  430. package/esm2022/lib/model/payoutToolDetails.mjs +0 -13
  431. package/esm2022/lib/model/payoutToolDetailsBankAccount.mjs +0 -2
  432. package/esm2022/lib/model/payoutToolDetailsInternationalBankAccount.mjs +0 -2
  433. package/esm2022/lib/model/payoutToolDetailsPaymentInstitutionAccount.mjs +0 -2
  434. package/esm2022/lib/model/payoutToolDetailsWalletInfo.mjs +0 -2
  435. package/esm2022/lib/model/payoutToolDetailsWalletInfoAllOf.mjs +0 -13
  436. package/esm2022/lib/model/payoutToolParams.mjs +0 -2
  437. package/esm2022/lib/model/powerOfAttorney.mjs +0 -2
  438. package/esm2022/lib/model/privateEntity.mjs +0 -2
  439. package/esm2022/lib/model/privateEntityAllOf.mjs +0 -18
  440. package/esm2022/lib/model/qrCodeDisplayRequest.mjs +0 -2
  441. package/esm2022/lib/model/qrCodeDisplayRequestAllOf.mjs +0 -13
  442. package/esm2022/lib/model/realmMode.mjs +0 -16
  443. package/esm2022/lib/model/reason.mjs +0 -13
  444. package/esm2022/lib/model/recurrentPayer.mjs +0 -2
  445. package/esm2022/lib/model/recurrentPayerAllOf.mjs +0 -2
  446. package/esm2022/lib/model/redirect.mjs +0 -2
  447. package/esm2022/lib/model/redirectAllOf.mjs +0 -2
  448. package/esm2022/lib/model/refund.mjs +0 -9
  449. package/esm2022/lib/model/refundError.mjs +0 -13
  450. package/esm2022/lib/model/refundParams.mjs +0 -2
  451. package/esm2022/lib/model/refundSearchResult.mjs +0 -9
  452. package/esm2022/lib/model/refundSearchResultAllOf.mjs +0 -13
  453. package/esm2022/lib/model/refundStarted.mjs +0 -2
  454. package/esm2022/lib/model/refundStartedAllOf.mjs +0 -2
  455. package/esm2022/lib/model/refundStatus.mjs +0 -9
  456. package/esm2022/lib/model/refundStatusChanged.mjs +0 -9
  457. package/esm2022/lib/model/refundStatusChangedAllOf.mjs +0 -13
  458. package/esm2022/lib/model/registeredUser.mjs +0 -2
  459. package/esm2022/lib/model/registeredUserAllOf.mjs +0 -13
  460. package/esm2022/lib/model/reportLink.mjs +0 -13
  461. package/esm2022/lib/model/reportParams.mjs +0 -18
  462. package/esm2022/lib/model/reportingPreferences.mjs +0 -2
  463. package/esm2022/lib/model/representative.mjs +0 -2
  464. package/esm2022/lib/model/representativeDocument.mjs +0 -19
  465. package/esm2022/lib/model/rescindInvoice400Response.mjs +0 -23
  466. package/esm2022/lib/model/russianLegalEntity.mjs +0 -2
  467. package/esm2022/lib/model/russianLegalEntityAllOf.mjs +0 -2
  468. package/esm2022/lib/model/russianPrivateEntity.mjs +0 -2
  469. package/esm2022/lib/model/russianPrivateEntityAllOf.mjs +0 -2
  470. package/esm2022/lib/model/samsungPay.mjs +0 -2
  471. package/esm2022/lib/model/samsungPayAllOf.mjs +0 -13
  472. package/esm2022/lib/model/schedule.mjs +0 -13
  473. package/esm2022/lib/model/searchInvoices200Response.mjs +0 -2
  474. package/esm2022/lib/model/searchPayments200Response.mjs +0 -2
  475. package/esm2022/lib/model/searchPayouts200Response.mjs +0 -2
  476. package/esm2022/lib/model/searchRefunds200Response.mjs +0 -2
  477. package/esm2022/lib/model/serviceAcceptanceActPreferences.mjs +0 -2
  478. package/esm2022/lib/model/serviceProvider.mjs +0 -13
  479. package/esm2022/lib/model/shop.mjs +0 -2
  480. package/esm2022/lib/model/shopDetails.mjs +0 -13
  481. package/esm2022/lib/model/shopLocation.mjs +0 -13
  482. package/esm2022/lib/model/shopLocationUrl.mjs +0 -2
  483. package/esm2022/lib/model/shopLocationUrlAllOf.mjs +0 -13
  484. package/esm2022/lib/model/subError.mjs +0 -13
  485. package/esm2022/lib/model/tokenizedCardData.mjs +0 -2
  486. package/esm2022/lib/model/tokenizedCardDataAllOf.mjs +0 -21
  487. package/esm2022/lib/model/tradeBloc.mjs +0 -13
  488. package/esm2022/lib/model/transactionInfo.mjs +0 -13
  489. package/esm2022/lib/model/updateInvoiceTemplate400Response.mjs +0 -22
  490. package/esm2022/lib/model/userInteraction.mjs +0 -13
  491. package/esm2022/lib/model/userInteractionFormInner.mjs +0 -13
  492. package/esm2022/lib/model/webhook.mjs +0 -2
  493. package/esm2022/lib/model/webhookScope.mjs +0 -19
  494. package/esm2022/lib/model/yandexPay.mjs +0 -2
  495. package/esm2022/lib/model/yandexPayAllOf.mjs +0 -13
  496. package/esm2022/lib/param.mjs +0 -2
  497. package/esm2022/lib/variables.mjs +0 -9
  498. package/esm2022/public-api.mjs +0 -2
  499. package/esm2022/vality-swag-payments.mjs +0 -5
  500. package/lib/api/paymentInstitutions.service.d.ts +0 -245
  501. package/lib/api/payouts.service.d.ts +0 -209
  502. package/lib/index.d.ts +0 -6
  503. package/lib/model/accessToken.d.ts +0 -17
  504. package/lib/model/allocationBodyAmountAllOf.d.ts +0 -21
  505. package/lib/model/allocationBodyTotalAllOf.d.ts +0 -27
  506. package/lib/model/allocationFee.d.ts +0 -26
  507. package/lib/model/allocationFeeFixedAllOf.d.ts +0 -17
  508. package/lib/model/allocationFeeShareAllOf.d.ts +0 -19
  509. package/lib/model/allocationFeeTarget.d.ts +0 -23
  510. package/lib/model/allocationTarget.d.ts +0 -23
  511. package/lib/model/allocationTargetShop.d.ts +0 -23
  512. package/lib/model/allocationTargetShopAllOf.d.ts +0 -17
  513. package/lib/model/allocationTransaction.d.ts +0 -34
  514. package/lib/model/apiExtensionRequest.d.ts +0 -18
  515. package/lib/model/apiExtensionRequestAllOf.d.ts +0 -17
  516. package/lib/model/applePay.d.ts +0 -24
  517. package/lib/model/applePayAllOf.d.ts +0 -24
  518. package/lib/model/articlesOfAssociation.d.ts +0 -19
  519. package/lib/model/bankAccount.d.ts +0 -29
  520. package/lib/model/bankCard.d.ts +0 -26
  521. package/lib/model/bankCardAllOf.d.ts +0 -23
  522. package/lib/model/bankCardAllOfTokenProviderData.d.ts +0 -36
  523. package/lib/model/bankCardDetails.d.ts +0 -44
  524. package/lib/model/bankCardTokenizationMethod.d.ts +0 -19
  525. package/lib/model/browserGetRequest.d.ts +0 -18
  526. package/lib/model/browserGetRequestAllOf.d.ts +0 -17
  527. package/lib/model/browserPostRequest.d.ts +0 -23
  528. package/lib/model/browserPostRequestAllOf.d.ts +0 -22
  529. package/lib/model/browserRequest.d.ts +0 -17
  530. package/lib/model/cancelPayment400Response.d.ts +0 -32
  531. package/lib/model/captureParams.d.ts +0 -35
  532. package/lib/model/captureParamsAllOf.d.ts +0 -34
  533. package/lib/model/capturePayment400Response.d.ts +0 -37
  534. package/lib/model/cardData.d.ts +0 -32
  535. package/lib/model/cardDataAllOf.d.ts +0 -32
  536. package/lib/model/category.d.ts +0 -16
  537. package/lib/model/chargeback.d.ts +0 -60
  538. package/lib/model/clientInfo.d.ts +0 -28
  539. package/lib/model/contactInfo.d.ts +0 -52
  540. package/lib/model/contract.d.ts +0 -54
  541. package/lib/model/contractAdjustment.d.ts +0 -32
  542. package/lib/model/contractor.d.ts +0 -28
  543. package/lib/model/costAmountRange.d.ts +0 -21
  544. package/lib/model/country.d.ts +0 -22
  545. package/lib/model/createBinding400Response.d.ts +0 -34
  546. package/lib/model/createCustomer400Response.d.ts +0 -34
  547. package/lib/model/createInvoice400Response.d.ts +0 -38
  548. package/lib/model/createInvoiceTemplate400Response.d.ts +0 -34
  549. package/lib/model/createInvoiceWithTemplate400Response.d.ts +0 -31
  550. package/lib/model/createPayment400Response.d.ts +0 -38
  551. package/lib/model/createPayout400Response.d.ts +0 -32
  552. package/lib/model/createRefund400Response.d.ts +0 -41
  553. package/lib/model/createWebhook400Response.d.ts +0 -31
  554. package/lib/model/createWebhook429Response.d.ts +0 -17
  555. package/lib/model/cryptoCurrencyTransferRequest.d.ts +0 -26
  556. package/lib/model/cryptoCurrencyTransferRequestAllOf.d.ts +0 -25
  557. package/lib/model/cryptoWallet.d.ts +0 -20
  558. package/lib/model/cryptoWalletAllOf.d.ts +0 -17
  559. package/lib/model/cryptoWalletData.d.ts +0 -20
  560. package/lib/model/cryptoWalletDetails.d.ts +0 -17
  561. package/lib/model/customer.d.ts +0 -46
  562. package/lib/model/customerAndToken.d.ts +0 -17
  563. package/lib/model/customerBinding.d.ts +0 -37
  564. package/lib/model/customerBindingError.d.ts +0 -18
  565. package/lib/model/customerBindingInteractionCompleted.d.ts +0 -22
  566. package/lib/model/customerBindingInteractionCompletedAllOf.d.ts +0 -22
  567. package/lib/model/customerBindingInteractionRequested.d.ts +0 -22
  568. package/lib/model/customerBindingInteractionRequestedAllOf.d.ts +0 -22
  569. package/lib/model/customerBindingParams.d.ts +0 -19
  570. package/lib/model/customerBindingStarted.d.ts +0 -18
  571. package/lib/model/customerBindingStartedAllOf.d.ts +0 -15
  572. package/lib/model/customerBindingStatus.d.ts +0 -27
  573. package/lib/model/customerBindingStatusChanged.d.ts +0 -29
  574. package/lib/model/customerBindingStatusChangedAllOf.d.ts +0 -14
  575. package/lib/model/customerChange.d.ts +0 -23
  576. package/lib/model/customerEvent.d.ts +0 -17
  577. package/lib/model/customerParams.d.ts +0 -31
  578. package/lib/model/customerPayer.d.ts +0 -23
  579. package/lib/model/customerPayerAllOf.d.ts +0 -19
  580. package/lib/model/customersTopic.d.ts +0 -36
  581. package/lib/model/customersTopicAllOf.d.ts +0 -32
  582. package/lib/model/decimal.d.ts +0 -24
  583. package/lib/model/defaultLogicError.d.ts +0 -28
  584. package/lib/model/deleteCustomer400Response.d.ts +0 -30
  585. package/lib/model/digitalWallet.d.ts +0 -20
  586. package/lib/model/digitalWalletAllOf.d.ts +0 -17
  587. package/lib/model/digitalWalletData.d.ts +0 -28
  588. package/lib/model/digitalWalletDataAllOf.d.ts +0 -28
  589. package/lib/model/digitalWalletDetails.d.ts +0 -17
  590. package/lib/model/externalIDConflictError.d.ts +0 -25
  591. package/lib/model/fulfillInvoice400Response.d.ts +0 -31
  592. package/lib/model/generalError.d.ts +0 -14
  593. package/lib/model/googlePay.d.ts +0 -24
  594. package/lib/model/googlePayAllOf.d.ts +0 -24
  595. package/lib/model/internationalBankAccount.d.ts +0 -28
  596. package/lib/model/internationalBankDetails.d.ts +0 -36
  597. package/lib/model/internationalCorrespondentBankAccount.d.ts +0 -24
  598. package/lib/model/internationalLegalEntity.d.ts +0 -43
  599. package/lib/model/internationalLegalEntityAllOf.d.ts +0 -37
  600. package/lib/model/invoiceAndToken.d.ts +0 -17
  601. package/lib/model/invoiceBankAccount.d.ts +0 -26
  602. package/lib/model/invoiceChange.d.ts +0 -27
  603. package/lib/model/invoiceClientInfo.d.ts +0 -27
  604. package/lib/model/invoiceCreated.d.ts +0 -18
  605. package/lib/model/invoiceCreatedAllOf.d.ts +0 -15
  606. package/lib/model/invoiceEvent.d.ts +0 -17
  607. package/lib/model/invoiceLine.d.ts +0 -34
  608. package/lib/model/invoiceLineTaxMode.d.ts +0 -26
  609. package/lib/model/invoiceLineTaxVAT.d.ts +0 -30
  610. package/lib/model/invoiceLineTaxVATAllOf.d.ts +0 -32
  611. package/lib/model/invoiceParamsWithTemplate.d.ts +0 -29
  612. package/lib/model/invoiceRussianBankAccount.d.ts +0 -24
  613. package/lib/model/invoiceRussianBankAccountAllOf.d.ts +0 -24
  614. package/lib/model/invoiceStatus.d.ts +0 -30
  615. package/lib/model/invoiceStatusChanged.d.ts +0 -31
  616. package/lib/model/invoiceTemplate.d.ts +0 -45
  617. package/lib/model/invoiceTemplateAndToken.d.ts +0 -17
  618. package/lib/model/invoiceTemplateCreateParams.d.ts +0 -41
  619. package/lib/model/invoiceTemplateDetails.d.ts +0 -14
  620. package/lib/model/invoiceTemplateLineCost.d.ts +0 -17
  621. package/lib/model/invoiceTemplateLineCostFixed.d.ts +0 -22
  622. package/lib/model/invoiceTemplateLineCostFixedAllOf.d.ts +0 -21
  623. package/lib/model/invoiceTemplateLineCostRange.d.ts +0 -20
  624. package/lib/model/invoiceTemplateLineCostRangeAllOf.d.ts +0 -19
  625. package/lib/model/invoiceTemplateLineCostUnlim.d.ts +0 -14
  626. package/lib/model/invoiceTemplateMultiLine.d.ts +0 -23
  627. package/lib/model/invoiceTemplateMultiLineAllOf.d.ts +0 -22
  628. package/lib/model/invoiceTemplateSingleLine.d.ts +0 -22
  629. package/lib/model/invoiceTemplateSingleLineAllOf.d.ts +0 -21
  630. package/lib/model/invoiceTemplateUpdateParams.d.ts +0 -29
  631. package/lib/model/invoicesTopicAllOf.d.ts +0 -41
  632. package/lib/model/legalAgreement.d.ts +0 -28
  633. package/lib/model/legalEntity.d.ts +0 -20
  634. package/lib/model/legalEntityAllOf.d.ts +0 -24
  635. package/lib/model/lifetimeInterval.d.ts +0 -19
  636. package/lib/model/logicError.d.ts +0 -18
  637. package/lib/model/mobileCommerce.d.ts +0 -20
  638. package/lib/model/mobileCommerceAllOf.d.ts +0 -17
  639. package/lib/model/mobileCommerceData.d.ts +0 -6
  640. package/lib/model/mobileCommerceDataAllOf.d.ts +0 -18
  641. package/lib/model/mobileCommerceDetails.d.ts +0 -17
  642. package/lib/model/mobileCommercePhone.d.ts +0 -24
  643. package/lib/model/party.d.ts +0 -16
  644. package/lib/model/payer.d.ts +0 -19
  645. package/lib/model/payerSessionInfo.d.ts +0 -20
  646. package/lib/model/paymentError.d.ts +0 -22
  647. package/lib/model/paymentFlow.d.ts +0 -24
  648. package/lib/model/paymentFlowHold.d.ts +0 -29
  649. package/lib/model/paymentFlowHoldAllOf.d.ts +0 -28
  650. package/lib/model/paymentFlowInstant.d.ts +0 -16
  651. package/lib/model/paymentInstitution.d.ts +0 -31
  652. package/lib/model/paymentInteractionCompleted.d.ts +0 -22
  653. package/lib/model/paymentInteractionCompletedAllOf.d.ts +0 -22
  654. package/lib/model/paymentInteractionRequested.d.ts +0 -22
  655. package/lib/model/paymentInteractionRequestedAllOf.d.ts +0 -22
  656. package/lib/model/paymentMethod.d.ts +0 -27
  657. package/lib/model/paymentParams.d.ts +0 -33
  658. package/lib/model/paymentRecurrentParent.d.ts +0 -24
  659. package/lib/model/paymentResource.d.ts +0 -28
  660. package/lib/model/paymentResourceClientInfo.d.ts +0 -25
  661. package/lib/model/paymentResourceParams.d.ts +0 -17
  662. package/lib/model/paymentResourcePayer.d.ts +0 -31
  663. package/lib/model/paymentResourcePayerAllOf.d.ts +0 -15
  664. package/lib/model/paymentResourceResult.d.ts +0 -36
  665. package/lib/model/paymentSearchResultAllOf.d.ts +0 -73
  666. package/lib/model/paymentStarted.d.ts +0 -18
  667. package/lib/model/paymentStartedAllOf.d.ts +0 -15
  668. package/lib/model/paymentStatus.d.ts +0 -30
  669. package/lib/model/paymentStatusChanged.d.ts +0 -32
  670. package/lib/model/paymentStatusChangedAllOf.d.ts +0 -14
  671. package/lib/model/paymentTerminal.d.ts +0 -20
  672. package/lib/model/paymentTerminalAllOf.d.ts +0 -17
  673. package/lib/model/paymentTerminalData.d.ts +0 -24
  674. package/lib/model/paymentTerminalDataAllOf.d.ts +0 -24
  675. package/lib/model/paymentTerminalDetails.d.ts +0 -17
  676. package/lib/model/paymentTerminalReceipt.d.ts +0 -22
  677. package/lib/model/paymentTerminalReceiptAllOf.d.ts +0 -21
  678. package/lib/model/paymentTerms.d.ts +0 -15
  679. package/lib/model/paymentTool.d.ts +0 -28
  680. package/lib/model/paymentToolDetails.d.ts +0 -20
  681. package/lib/model/paymentToolDetailsBankCard.d.ts +0 -45
  682. package/lib/model/paymentToolDetailsCryptoWallet.d.ts +0 -18
  683. package/lib/model/paymentToolDetailsDigitalWallet.d.ts +0 -18
  684. package/lib/model/paymentToolDetailsMobileCommerce.d.ts +0 -18
  685. package/lib/model/paymentToolDetailsPaymentTerminal.d.ts +0 -18
  686. package/lib/model/payout.d.ts +0 -47
  687. package/lib/model/payoutParams.d.ts +0 -37
  688. package/lib/model/payoutTool.d.ts +0 -26
  689. package/lib/model/payoutToolAllOf.d.ts +0 -17
  690. package/lib/model/payoutToolDetails.d.ts +0 -20
  691. package/lib/model/payoutToolDetailsBankAccount.d.ts +0 -27
  692. package/lib/model/payoutToolDetailsInternationalBankAccount.d.ts +0 -26
  693. package/lib/model/payoutToolDetailsPaymentInstitutionAccount.d.ts +0 -14
  694. package/lib/model/payoutToolDetailsWalletInfo.d.ts +0 -18
  695. package/lib/model/payoutToolDetailsWalletInfoAllOf.d.ts +0 -17
  696. package/lib/model/payoutToolParams.d.ts +0 -19
  697. package/lib/model/powerOfAttorney.d.ts +0 -28
  698. package/lib/model/privateEntity.d.ts +0 -20
  699. package/lib/model/privateEntityAllOf.d.ts +0 -23
  700. package/lib/model/qrCodeDisplayRequest.d.ts +0 -18
  701. package/lib/model/qrCodeDisplayRequestAllOf.d.ts +0 -17
  702. package/lib/model/realmMode.d.ts +0 -19
  703. package/lib/model/reason.d.ts +0 -17
  704. package/lib/model/recurrentPayer.d.ts +0 -23
  705. package/lib/model/recurrentPayerAllOf.d.ts +0 -19
  706. package/lib/model/redirect.d.ts +0 -16
  707. package/lib/model/redirectAllOf.d.ts +0 -15
  708. package/lib/model/refundError.d.ts +0 -24
  709. package/lib/model/refundParams.d.ts +0 -39
  710. package/lib/model/refundSearchResultAllOf.d.ts +0 -21
  711. package/lib/model/refundStarted.d.ts +0 -19
  712. package/lib/model/refundStartedAllOf.d.ts +0 -16
  713. package/lib/model/refundStatus.d.ts +0 -27
  714. package/lib/model/refundStatusChanged.d.ts +0 -30
  715. package/lib/model/refundStatusChangedAllOf.d.ts +0 -15
  716. package/lib/model/registeredUser.d.ts +0 -23
  717. package/lib/model/registeredUserAllOf.d.ts +0 -17
  718. package/lib/model/reportLink.d.ts +0 -17
  719. package/lib/model/reportParams.d.ts +0 -31
  720. package/lib/model/reportingPreferences.d.ts +0 -18
  721. package/lib/model/representative.d.ts +0 -26
  722. package/lib/model/representativeDocument.d.ts +0 -24
  723. package/lib/model/rescindInvoice400Response.d.ts +0 -32
  724. package/lib/model/russianLegalEntityAllOf.d.ts +0 -47
  725. package/lib/model/russianPrivateEntity.d.ts +0 -33
  726. package/lib/model/russianPrivateEntityAllOf.d.ts +0 -27
  727. package/lib/model/samsungPay.d.ts +0 -24
  728. package/lib/model/samsungPayAllOf.d.ts +0 -24
  729. package/lib/model/schedule.d.ts +0 -19
  730. package/lib/model/searchInvoices200Response.d.ts +0 -19
  731. package/lib/model/searchPayments200Response.d.ts +0 -19
  732. package/lib/model/searchPayouts200Response.d.ts +0 -16
  733. package/lib/model/searchRefunds200Response.d.ts +0 -16
  734. package/lib/model/serviceAcceptanceActPreferences.d.ts +0 -22
  735. package/lib/model/serviceProvider.d.ts +0 -32
  736. package/lib/model/shop.d.ts +0 -56
  737. package/lib/model/shopDetails.d.ts +0 -21
  738. package/lib/model/shopLocation.d.ts +0 -20
  739. package/lib/model/shopLocationUrl.d.ts +0 -21
  740. package/lib/model/shopLocationUrlAllOf.d.ts +0 -17
  741. package/lib/model/subError.d.ts +0 -21
  742. package/lib/model/tokenizedCardData.d.ts +0 -17
  743. package/lib/model/tokenizedCardDataAllOf.d.ts +0 -26
  744. package/lib/model/tradeBloc.d.ts +0 -19
  745. package/lib/model/transactionInfo.d.ts +0 -24
  746. package/lib/model/updateInvoiceTemplate400Response.d.ts +0 -31
  747. package/lib/model/userInteraction.d.ts +0 -17
  748. package/lib/model/userInteractionFormInner.d.ts +0 -21
  749. package/lib/model/webhook.d.ts +0 -35
  750. package/lib/model/webhookScope.d.ts +0 -27
  751. package/lib/model/yandexPay.d.ts +0 -24
  752. package/lib/model/yandexPayAllOf.d.ts +0 -24
  753. package/public-api.d.ts +0 -1
  754. /package/{lib/api.module.d.ts → api.module.d.ts} +0 -0
  755. /package/{lib/encoder.d.ts → encoder.d.ts} +0 -0
  756. /package/{lib/model → model}/allocationBodyAmount.d.ts +0 -0
  757. /package/{lib/model → model}/allocationBodyTotal.d.ts +0 -0
  758. /package/{lib/model → model}/allocationFeeFixed.d.ts +0 -0
  759. /package/{lib/model → model}/allocationFeeShare.d.ts +0 -0
  760. /package/{lib/param.d.ts → param.d.ts} +0 -0
  761. /package/{lib/variables.d.ts → variables.d.ts} +0 -0
@@ -1,444 +0,0 @@
1
- /**
2
- * Vality Payments API
3
- * ## Description API is designed for the merchants who accept payments via user interface such as a website or a mobile app and it is the only interaction point with the system for goods and services payment transactions. ## Interaction details Whenever an API is accessed, its unique ID must be passed in the header X-Request-ID of the corresponding request: ``` X-Request-ID: 37d735d4-0f42-4f05-89fa-eaa478fb5aa9 ``` ### Content type and coding The system accepts and returns data in JSON format and UTF-8 coding: ``` Content-Type: application/json; charset=utf-8 ``` ### Date formats The system accepts and returns timestamp values in the format date-time, described in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339): ``` 2017-01-01T00:00:00Z 2017-01-01T00:00:01+00:00 ``` ### Maximum request processing time Whenever an API is accessed, the time cutoff parameters, that define maximum request processing time of the transaction completion, can be passed in the header `X-Request-Deadline` of the corresponding request: ``` X-Request-Deadline: 10s ``` The system stops processing the request upon the specified time. It is recommended to specify a value that is not more than one minute and not less than three seconds. `X-Request-Deadline` can be: * specified in the format `date-time` according to [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339); * specified in relative values: in milliseconds (`150000ms`), in seconds (`540s`) or in minutes (`3.5m`).
4
- *
5
- * The version of the OpenAPI document: 2.0.1
6
- *
7
- *
8
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
9
- * https://openapi-generator.tech
10
- * Do not edit the class manually.
11
- */
12
- /* tslint:disable:no-unused-variable member-ordering */
13
- import { Inject, Injectable, Optional } from '@angular/core';
14
- import { HttpHeaders, HttpContext } from '@angular/common/http';
15
- import { CustomHttpParameterCodec } from '../encoder';
16
- // @ts-ignore
17
- import { BASE_PATH } from '../variables';
18
- import { Configuration } from '../configuration';
19
- import * as i0 from "@angular/core";
20
- import * as i1 from "@angular/common/http";
21
- import * as i2 from "../configuration";
22
- export class PartiesService {
23
- constructor(httpClient, basePath, configuration) {
24
- this.httpClient = httpClient;
25
- this.basePath = '/v2';
26
- this.defaultHeaders = new HttpHeaders();
27
- this.configuration = new Configuration();
28
- if (configuration) {
29
- this.configuration = configuration;
30
- }
31
- if (typeof this.configuration.basePath !== 'string') {
32
- if (Array.isArray(basePath) && basePath.length > 0) {
33
- basePath = basePath[0];
34
- }
35
- if (typeof basePath !== 'string') {
36
- basePath = this.basePath;
37
- }
38
- this.configuration.basePath = basePath;
39
- }
40
- this.encoder = this.configuration.encoder || new CustomHttpParameterCodec();
41
- }
42
- // @ts-ignore
43
- addToHttpParams(httpParams, value, key) {
44
- if (typeof value === "object" && value instanceof Date === false) {
45
- httpParams = this.addToHttpParamsRecursive(httpParams, value);
46
- }
47
- else {
48
- httpParams = this.addToHttpParamsRecursive(httpParams, value, key);
49
- }
50
- return httpParams;
51
- }
52
- addToHttpParamsRecursive(httpParams, value, key) {
53
- if (value == null) {
54
- return httpParams;
55
- }
56
- if (typeof value === "object") {
57
- if (Array.isArray(value)) {
58
- value.forEach(elem => httpParams = this.addToHttpParamsRecursive(httpParams, elem, key));
59
- }
60
- else if (value instanceof Date) {
61
- if (key != null) {
62
- httpParams = httpParams.append(key, value.toISOString().substr(0, 10));
63
- }
64
- else {
65
- throw Error("key may not be null if value is Date");
66
- }
67
- }
68
- else {
69
- Object.keys(value).forEach(k => httpParams = this.addToHttpParamsRecursive(httpParams, value[k], key != null ? `${key}.${k}` : k));
70
- }
71
- }
72
- else if (key != null) {
73
- httpParams = httpParams.append(key, value);
74
- }
75
- else {
76
- throw Error("key may not be null if value is not object or array");
77
- }
78
- return httpParams;
79
- }
80
- activateMyParty(requestParameters, observe = 'body', reportProgress = false, options) {
81
- const xRequestID = requestParameters.xRequestID;
82
- if (xRequestID === null || xRequestID === undefined) {
83
- throw new Error('Required parameter xRequestID was null or undefined when calling activateMyParty.');
84
- }
85
- const xRequestDeadline = requestParameters.xRequestDeadline;
86
- let localVarHeaders = this.defaultHeaders;
87
- if (xRequestID !== undefined && xRequestID !== null) {
88
- localVarHeaders = localVarHeaders.set('X-Request-ID', String(xRequestID));
89
- }
90
- if (xRequestDeadline !== undefined && xRequestDeadline !== null) {
91
- localVarHeaders = localVarHeaders.set('X-Request-Deadline', String(xRequestDeadline));
92
- }
93
- let localVarCredential;
94
- // authentication (bearer) required
95
- localVarCredential = this.configuration.lookupCredential('bearer');
96
- if (localVarCredential) {
97
- localVarHeaders = localVarHeaders.set('Authorization', localVarCredential);
98
- }
99
- let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
100
- if (localVarHttpHeaderAcceptSelected === undefined) {
101
- // to determine the Accept header
102
- const httpHeaderAccepts = [
103
- 'application/json; charset=utf-8'
104
- ];
105
- localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
106
- }
107
- if (localVarHttpHeaderAcceptSelected !== undefined) {
108
- localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
109
- }
110
- let localVarHttpContext = options && options.context;
111
- if (localVarHttpContext === undefined) {
112
- localVarHttpContext = new HttpContext();
113
- }
114
- let responseType_ = 'json';
115
- if (localVarHttpHeaderAcceptSelected) {
116
- if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
117
- responseType_ = 'text';
118
- }
119
- else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
120
- responseType_ = 'json';
121
- }
122
- else {
123
- responseType_ = 'blob';
124
- }
125
- }
126
- let localVarPath = `/processing/me/activate`;
127
- return this.httpClient.request('put', `${this.configuration.basePath}${localVarPath}`, {
128
- context: localVarHttpContext,
129
- responseType: responseType_,
130
- withCredentials: this.configuration.withCredentials,
131
- headers: localVarHeaders,
132
- observe: observe,
133
- reportProgress: reportProgress
134
- });
135
- }
136
- activatePartyByID(requestParameters, observe = 'body', reportProgress = false, options) {
137
- const xRequestID = requestParameters.xRequestID;
138
- if (xRequestID === null || xRequestID === undefined) {
139
- throw new Error('Required parameter xRequestID was null or undefined when calling activatePartyByID.');
140
- }
141
- const partyID = requestParameters.partyID;
142
- if (partyID === null || partyID === undefined) {
143
- throw new Error('Required parameter partyID was null or undefined when calling activatePartyByID.');
144
- }
145
- const xRequestDeadline = requestParameters.xRequestDeadline;
146
- let localVarHeaders = this.defaultHeaders;
147
- if (xRequestID !== undefined && xRequestID !== null) {
148
- localVarHeaders = localVarHeaders.set('X-Request-ID', String(xRequestID));
149
- }
150
- if (xRequestDeadline !== undefined && xRequestDeadline !== null) {
151
- localVarHeaders = localVarHeaders.set('X-Request-Deadline', String(xRequestDeadline));
152
- }
153
- let localVarCredential;
154
- // authentication (bearer) required
155
- localVarCredential = this.configuration.lookupCredential('bearer');
156
- if (localVarCredential) {
157
- localVarHeaders = localVarHeaders.set('Authorization', localVarCredential);
158
- }
159
- let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
160
- if (localVarHttpHeaderAcceptSelected === undefined) {
161
- // to determine the Accept header
162
- const httpHeaderAccepts = [
163
- 'application/json; charset=utf-8'
164
- ];
165
- localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
166
- }
167
- if (localVarHttpHeaderAcceptSelected !== undefined) {
168
- localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
169
- }
170
- let localVarHttpContext = options && options.context;
171
- if (localVarHttpContext === undefined) {
172
- localVarHttpContext = new HttpContext();
173
- }
174
- let responseType_ = 'json';
175
- if (localVarHttpHeaderAcceptSelected) {
176
- if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
177
- responseType_ = 'text';
178
- }
179
- else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
180
- responseType_ = 'json';
181
- }
182
- else {
183
- responseType_ = 'blob';
184
- }
185
- }
186
- let localVarPath = `/processing/parties/${this.configuration.encodeParam({ name: "partyID", value: partyID, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/activate`;
187
- return this.httpClient.request('put', `${this.configuration.basePath}${localVarPath}`, {
188
- context: localVarHttpContext,
189
- responseType: responseType_,
190
- withCredentials: this.configuration.withCredentials,
191
- headers: localVarHeaders,
192
- observe: observe,
193
- reportProgress: reportProgress
194
- });
195
- }
196
- getMyParty(requestParameters, observe = 'body', reportProgress = false, options) {
197
- const xRequestID = requestParameters.xRequestID;
198
- if (xRequestID === null || xRequestID === undefined) {
199
- throw new Error('Required parameter xRequestID was null or undefined when calling getMyParty.');
200
- }
201
- const xRequestDeadline = requestParameters.xRequestDeadline;
202
- let localVarHeaders = this.defaultHeaders;
203
- if (xRequestID !== undefined && xRequestID !== null) {
204
- localVarHeaders = localVarHeaders.set('X-Request-ID', String(xRequestID));
205
- }
206
- if (xRequestDeadline !== undefined && xRequestDeadline !== null) {
207
- localVarHeaders = localVarHeaders.set('X-Request-Deadline', String(xRequestDeadline));
208
- }
209
- let localVarCredential;
210
- // authentication (bearer) required
211
- localVarCredential = this.configuration.lookupCredential('bearer');
212
- if (localVarCredential) {
213
- localVarHeaders = localVarHeaders.set('Authorization', localVarCredential);
214
- }
215
- let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
216
- if (localVarHttpHeaderAcceptSelected === undefined) {
217
- // to determine the Accept header
218
- const httpHeaderAccepts = [
219
- 'application/json; charset=utf-8'
220
- ];
221
- localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
222
- }
223
- if (localVarHttpHeaderAcceptSelected !== undefined) {
224
- localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
225
- }
226
- let localVarHttpContext = options && options.context;
227
- if (localVarHttpContext === undefined) {
228
- localVarHttpContext = new HttpContext();
229
- }
230
- let responseType_ = 'json';
231
- if (localVarHttpHeaderAcceptSelected) {
232
- if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
233
- responseType_ = 'text';
234
- }
235
- else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
236
- responseType_ = 'json';
237
- }
238
- else {
239
- responseType_ = 'blob';
240
- }
241
- }
242
- let localVarPath = `/processing/me`;
243
- return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
244
- context: localVarHttpContext,
245
- responseType: responseType_,
246
- withCredentials: this.configuration.withCredentials,
247
- headers: localVarHeaders,
248
- observe: observe,
249
- reportProgress: reportProgress
250
- });
251
- }
252
- getPartyByID(requestParameters, observe = 'body', reportProgress = false, options) {
253
- const xRequestID = requestParameters.xRequestID;
254
- if (xRequestID === null || xRequestID === undefined) {
255
- throw new Error('Required parameter xRequestID was null or undefined when calling getPartyByID.');
256
- }
257
- const partyID = requestParameters.partyID;
258
- if (partyID === null || partyID === undefined) {
259
- throw new Error('Required parameter partyID was null or undefined when calling getPartyByID.');
260
- }
261
- const xRequestDeadline = requestParameters.xRequestDeadline;
262
- let localVarHeaders = this.defaultHeaders;
263
- if (xRequestID !== undefined && xRequestID !== null) {
264
- localVarHeaders = localVarHeaders.set('X-Request-ID', String(xRequestID));
265
- }
266
- if (xRequestDeadline !== undefined && xRequestDeadline !== null) {
267
- localVarHeaders = localVarHeaders.set('X-Request-Deadline', String(xRequestDeadline));
268
- }
269
- let localVarCredential;
270
- // authentication (bearer) required
271
- localVarCredential = this.configuration.lookupCredential('bearer');
272
- if (localVarCredential) {
273
- localVarHeaders = localVarHeaders.set('Authorization', localVarCredential);
274
- }
275
- let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
276
- if (localVarHttpHeaderAcceptSelected === undefined) {
277
- // to determine the Accept header
278
- const httpHeaderAccepts = [
279
- 'application/json; charset=utf-8'
280
- ];
281
- localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
282
- }
283
- if (localVarHttpHeaderAcceptSelected !== undefined) {
284
- localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
285
- }
286
- let localVarHttpContext = options && options.context;
287
- if (localVarHttpContext === undefined) {
288
- localVarHttpContext = new HttpContext();
289
- }
290
- let responseType_ = 'json';
291
- if (localVarHttpHeaderAcceptSelected) {
292
- if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
293
- responseType_ = 'text';
294
- }
295
- else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
296
- responseType_ = 'json';
297
- }
298
- else {
299
- responseType_ = 'blob';
300
- }
301
- }
302
- let localVarPath = `/processing/parties/${this.configuration.encodeParam({ name: "partyID", value: partyID, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}`;
303
- return this.httpClient.request('get', `${this.configuration.basePath}${localVarPath}`, {
304
- context: localVarHttpContext,
305
- responseType: responseType_,
306
- withCredentials: this.configuration.withCredentials,
307
- headers: localVarHeaders,
308
- observe: observe,
309
- reportProgress: reportProgress
310
- });
311
- }
312
- suspendMyParty(requestParameters, observe = 'body', reportProgress = false, options) {
313
- const xRequestID = requestParameters.xRequestID;
314
- if (xRequestID === null || xRequestID === undefined) {
315
- throw new Error('Required parameter xRequestID was null or undefined when calling suspendMyParty.');
316
- }
317
- const xRequestDeadline = requestParameters.xRequestDeadline;
318
- let localVarHeaders = this.defaultHeaders;
319
- if (xRequestID !== undefined && xRequestID !== null) {
320
- localVarHeaders = localVarHeaders.set('X-Request-ID', String(xRequestID));
321
- }
322
- if (xRequestDeadline !== undefined && xRequestDeadline !== null) {
323
- localVarHeaders = localVarHeaders.set('X-Request-Deadline', String(xRequestDeadline));
324
- }
325
- let localVarCredential;
326
- // authentication (bearer) required
327
- localVarCredential = this.configuration.lookupCredential('bearer');
328
- if (localVarCredential) {
329
- localVarHeaders = localVarHeaders.set('Authorization', localVarCredential);
330
- }
331
- let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
332
- if (localVarHttpHeaderAcceptSelected === undefined) {
333
- // to determine the Accept header
334
- const httpHeaderAccepts = [
335
- 'application/json; charset=utf-8'
336
- ];
337
- localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
338
- }
339
- if (localVarHttpHeaderAcceptSelected !== undefined) {
340
- localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
341
- }
342
- let localVarHttpContext = options && options.context;
343
- if (localVarHttpContext === undefined) {
344
- localVarHttpContext = new HttpContext();
345
- }
346
- let responseType_ = 'json';
347
- if (localVarHttpHeaderAcceptSelected) {
348
- if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
349
- responseType_ = 'text';
350
- }
351
- else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
352
- responseType_ = 'json';
353
- }
354
- else {
355
- responseType_ = 'blob';
356
- }
357
- }
358
- let localVarPath = `/processing/me/suspend`;
359
- return this.httpClient.request('put', `${this.configuration.basePath}${localVarPath}`, {
360
- context: localVarHttpContext,
361
- responseType: responseType_,
362
- withCredentials: this.configuration.withCredentials,
363
- headers: localVarHeaders,
364
- observe: observe,
365
- reportProgress: reportProgress
366
- });
367
- }
368
- suspendPartyByID(requestParameters, observe = 'body', reportProgress = false, options) {
369
- const xRequestID = requestParameters.xRequestID;
370
- if (xRequestID === null || xRequestID === undefined) {
371
- throw new Error('Required parameter xRequestID was null or undefined when calling suspendPartyByID.');
372
- }
373
- const partyID = requestParameters.partyID;
374
- if (partyID === null || partyID === undefined) {
375
- throw new Error('Required parameter partyID was null or undefined when calling suspendPartyByID.');
376
- }
377
- const xRequestDeadline = requestParameters.xRequestDeadline;
378
- let localVarHeaders = this.defaultHeaders;
379
- if (xRequestID !== undefined && xRequestID !== null) {
380
- localVarHeaders = localVarHeaders.set('X-Request-ID', String(xRequestID));
381
- }
382
- if (xRequestDeadline !== undefined && xRequestDeadline !== null) {
383
- localVarHeaders = localVarHeaders.set('X-Request-Deadline', String(xRequestDeadline));
384
- }
385
- let localVarCredential;
386
- // authentication (bearer) required
387
- localVarCredential = this.configuration.lookupCredential('bearer');
388
- if (localVarCredential) {
389
- localVarHeaders = localVarHeaders.set('Authorization', localVarCredential);
390
- }
391
- let localVarHttpHeaderAcceptSelected = options && options.httpHeaderAccept;
392
- if (localVarHttpHeaderAcceptSelected === undefined) {
393
- // to determine the Accept header
394
- const httpHeaderAccepts = [
395
- 'application/json; charset=utf-8'
396
- ];
397
- localVarHttpHeaderAcceptSelected = this.configuration.selectHeaderAccept(httpHeaderAccepts);
398
- }
399
- if (localVarHttpHeaderAcceptSelected !== undefined) {
400
- localVarHeaders = localVarHeaders.set('Accept', localVarHttpHeaderAcceptSelected);
401
- }
402
- let localVarHttpContext = options && options.context;
403
- if (localVarHttpContext === undefined) {
404
- localVarHttpContext = new HttpContext();
405
- }
406
- let responseType_ = 'json';
407
- if (localVarHttpHeaderAcceptSelected) {
408
- if (localVarHttpHeaderAcceptSelected.startsWith('text')) {
409
- responseType_ = 'text';
410
- }
411
- else if (this.configuration.isJsonMime(localVarHttpHeaderAcceptSelected)) {
412
- responseType_ = 'json';
413
- }
414
- else {
415
- responseType_ = 'blob';
416
- }
417
- }
418
- let localVarPath = `/processing/parties/${this.configuration.encodeParam({ name: "partyID", value: partyID, in: "path", style: "simple", explode: false, dataType: "string", dataFormat: undefined })}/suspend`;
419
- return this.httpClient.request('put', `${this.configuration.basePath}${localVarPath}`, {
420
- context: localVarHttpContext,
421
- responseType: responseType_,
422
- withCredentials: this.configuration.withCredentials,
423
- headers: localVarHeaders,
424
- observe: observe,
425
- reportProgress: reportProgress
426
- });
427
- }
428
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: PartiesService, deps: [{ token: i1.HttpClient }, { token: BASE_PATH, optional: true }, { token: i2.Configuration, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
429
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: PartiesService, providedIn: 'root' }); }
430
- }
431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: PartiesService, decorators: [{
432
- type: Injectable,
433
- args: [{
434
- providedIn: 'root'
435
- }]
436
- }], ctorParameters: () => [{ type: i1.HttpClient }, { type: undefined, decorators: [{
437
- type: Optional
438
- }, {
439
- type: Inject,
440
- args: [BASE_PATH]
441
- }] }, { type: i2.Configuration, decorators: [{
442
- type: Optional
443
- }] }] });
444
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGllcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsaXR5L3N3YWctcGF5bWVudHMvc3JjL2xpYi9hcGkvcGFydGllcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFDSCx1REFBdUQ7QUFFdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQTJCLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQWMsV0FBVyxFQUNzQixXQUFXLEVBQ3hELE1BQVksc0JBQXNCLENBQUM7QUFDNUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQStCLFlBQVksQ0FBQztBQVUvRSxhQUFhO0FBQ2IsT0FBTyxFQUFFLFNBQVMsRUFBc0IsTUFBMEIsY0FBYyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBMEMsa0JBQWtCLENBQUM7Ozs7QUF1RHJGLE1BQU0sT0FBTyxjQUFjO0lBT3ZCLFlBQXNCLFVBQXNCLEVBQWdDLFFBQXlCLEVBQWMsYUFBNEI7UUFBekgsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUxsQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNuQyxrQkFBYSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7UUFJdkMsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsSUFBSSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2xELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNqRCxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMs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QUFhLEdBQUcsTUFBTSxDQUFDO1lBQzNCLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxZQUFZLEdBQUcsdUJBQXVCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLEVBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBQyxDQUFDLFVBQVUsQ0FBQztRQUM5TSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFNLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxHQUFHLFlBQVksRUFBRSxFQUN0RjtZQUNJLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsWUFBWSxFQUFPLGFBQWE7WUFDaEMsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZTtZQUNuRCxPQUFPLEVBQUUsZUFBZTtZQUN4QixPQUFPLEVBQUUsT0FBTztZQUNoQixjQUFjLEVBQUUsY0FBYztTQUNqQyxDQUNKLENBQUM7SUFDTixDQUFDOzhHQTNmUSxjQUFjLDRDQU8wQyxTQUFTO2tIQVBqRSxjQUFjLGNBRmIsTUFBTTs7MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVFrRCxRQUFROzswQkFBRyxNQUFNOzJCQUFDLFNBQVM7OzBCQUE4QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBWYWxpdHkgUGF5bWVudHMgQVBJXG4gKiAjIyBEZXNjcmlwdGlvbiBBUEkgaXMgZGVzaWduZWQgZm9yIHRoZSBtZXJjaGFudHMgd2hvIGFjY2VwdCBwYXltZW50cyB2aWEgdXNlciBpbnRlcmZhY2Ugc3VjaCBhcyBhIHdlYnNpdGUgb3IgYSBtb2JpbGUgYXBwIGFuZCBpdCBpcyB0aGUgb25seSBpbnRlcmFjdGlvbiBwb2ludCB3aXRoIHRoZSBzeXN0ZW0gZm9yIGdvb2RzIGFuZCBzZXJ2aWNlcyBwYXltZW50IHRyYW5zYWN0aW9ucy4gIyMgSW50ZXJhY3Rpb24gZGV0YWlscyBXaGVuZXZlciBhbiBBUEkgaXMgYWNjZXNzZWQsIGl0cyB1bmlxdWUgSUQgbXVzdCBiZSBwYXNzZWQgaW4gdGhlIGhlYWRlciBYLVJlcXVlc3QtSUQgb2YgdGhlIGNvcnJlc3BvbmRpbmcgcmVxdWVzdDogYGBgICBYLVJlcXVlc3QtSUQ6IDM3ZDczNWQ0LTBmNDItNGYwNS04OWZhLWVhYTQ3OGZiNWFhOSBgYGAgIyMjIENvbnRlbnQgdHlwZSBhbmQgY29kaW5nIFRoZSBzeXN0ZW0gYWNjZXB0cyBhbmQgcmV0dXJucyBkYXRhIGluIEpTT04gZm9ybWF0IGFuZCBVVEYtOCBjb2Rpbmc6IGBgYCAgIENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCBgYGAgIyMjIERhdGUgZm9ybWF0cyBUaGUgc3lzdGVtIGFjY2VwdHMgYW5kIHJldHVybnMgdGltZXN0YW1wIHZhbHVlcyBpbiB0aGUgZm9ybWF0IGRhdGUtdGltZSwgZGVzY3JpYmVkIGluIFtSRkMgMzMzOV0oaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmMzMzM5KTogYGBgICAgMjAxNy0wMS0wMVQwMDowMDowMFogICAyMDE3LTAxLTAxVDAwOjAwOjAxKzAwOjAwIGBgYCAjIyMgTWF4aW11bSByZXF1ZXN0IHByb2Nlc3NpbmcgdGltZSBXaGVuZXZlciBhbiBBUEkgaXMgYWNjZXNzZWQsIHRoZSB0aW1lIGN1dG9mZiBwYXJhbWV0ZXJzLCB0aGF0IGRlZmluZSBtYXhpbXVtIHJlcXVlc3QgcHJvY2Vzc2luZyB0aW1lIG9mIHRoZSB0cmFuc2FjdGlvbiBjb21wbGV0aW9uLCBjYW4gYmUgcGFzc2VkIGluIHRoZSBoZWFkZXIgYFgtUmVxdWVzdC1EZWFkbGluZWAgb2YgdGhlIGNvcnJlc3BvbmRpbmcgcmVxdWVzdDogYGBgICBYLVJlcXVlc3QtRGVhZGxpbmU6IDEwcyBgYGAgVGhlIHN5c3RlbSBzdG9wcyBwcm9jZXNzaW5nIHRoZSByZXF1ZXN0IHVwb24gdGhlIHNwZWNpZmllZCB0aW1lLiBJdCBpcyByZWNvbW1lbmRlZCB0byBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyBub3QgbW9yZSB0aGFuIG9uZSBtaW51dGUgYW5kIG5vdCBsZXNzIHRoYW4gdGhyZWUgc2Vjb25kcy4gYFgtUmVxdWVzdC1EZWFkbGluZWAgY2FuIGJlOiAgKiBzcGVjaWZpZWQgaW4gdGhlIGZvcm1hdCBgZGF0ZS10aW1lYCBhY2NvcmRpbmcgdG8gW1JGQyAzMzM5XShodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzMzMzkpOyAqIHNwZWNpZmllZCBpbiByZWxhdGl2ZSB2YWx1ZXM6IGluIG1pbGxpc2Vjb25kcyAoYDE1MDAwMG1zYCksIGluIHNlY29uZHMgKGA1NDBzYCkgb3IgaW4gbWludXRlcyAoYDMuNW1gKS4gXG4gKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIE9wZW5BUEkgZG9jdW1lbnQ6IDIuMC4xXG4gKiBcbiAqXG4gKiBOT1RFOiBUaGlzIGNsYXNzIGlzIGF1dG8gZ2VuZXJhdGVkIGJ5IE9wZW5BUEkgR2VuZXJhdG9yIChodHRwczovL29wZW5hcGktZ2VuZXJhdG9yLnRlY2gpLlxuICogaHR0cHM6Ly9vcGVuYXBpLWdlbmVyYXRvci50ZWNoXG4gKiBEbyBub3QgZWRpdCB0aGUgY2xhc3MgbWFudWFsbHkuXG4gKi9cbi8qIHRzbGludDpkaXNhYmxlOm5vLXVudXNlZC12YXJpYWJsZSBtZW1iZXItb3JkZXJpbmcgKi9cblxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9ICAgICAgICAgICAgICAgICAgICAgIGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMsIEh0dHBQYXJhbXMsXG4gICAgICAgICBIdHRwUmVzcG9uc2UsIEh0dHBFdmVudCwgSHR0cFBhcmFtZXRlckNvZGVjLCBIdHRwQ29udGV4dCBcbiAgICAgICAgfSAgICAgICBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDdXN0b21IdHRwUGFyYW1ldGVyQ29kZWMgfSAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vZW5jb2Rlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSAncnhqcyc7XG5cbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IERlZmF1bHRMb2dpY0Vycm9yIH0gZnJvbSAnLi4vbW9kZWwvZGVmYXVsdExvZ2ljRXJyb3InO1xuLy8gQHRzLWlnbm9yZVxuaW1wb3J0IHsgR2VuZXJhbEVycm9yIH0gZnJvbSAnLi4vbW9kZWwvZ2VuZXJhbEVycm9yJztcbi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IFBhcnR5IH0gZnJvbSAnLi4vbW9kZWwvcGFydHknO1xuXG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgeyBCQVNFX1BBVEgsIENPTExFQ1RJT05fRk9STUFUUyB9ICAgICAgICAgICAgICAgICAgICAgZnJvbSAnLi4vdmFyaWFibGVzJztcbmltcG9ydCB7IENvbmZpZ3VyYXRpb24gfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tICcuLi9jb25maWd1cmF0aW9uJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEFjdGl2YXRlTXlQYXJ0eVJlcXVlc3RQYXJhbXMge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcmVxdWVzdCB0byB0aGUgc3lzdGVtICovXG4gICAgeFJlcXVlc3RJRDogc3RyaW5nO1xuICAgIC8qKiBNYXhpbXVtIHJlcXVlc3QgcHJvY2Vzc2luZyB0aW1lICovXG4gICAgeFJlcXVlc3REZWFkbGluZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBY3RpdmF0ZVBhcnR5QnlJRFJlcXVlc3RQYXJhbXMge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcmVxdWVzdCB0byB0aGUgc3lzdGVtICovXG4gICAgeFJlcXVlc3RJRDogc3RyaW5nO1xuICAgIC8qKiBUaGUgcGFydGljaXBhbnRcXCYjMzk7cyB1bmlxdWUgaWRlbnRpZmllciB3aXRoaW4gdGhlIHN5c3RlbS4gKi9cbiAgICBwYXJ0eUlEOiBzdHJpbmc7XG4gICAgLyoqIE1heGltdW0gcmVxdWVzdCBwcm9jZXNzaW5nIHRpbWUgKi9cbiAgICB4UmVxdWVzdERlYWRsaW5lPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdldE15UGFydHlSZXF1ZXN0UGFyYW1zIHtcbiAgICAvKiogVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHJlcXVlc3QgdG8gdGhlIHN5c3RlbSAqL1xuICAgIHhSZXF1ZXN0SUQ6IHN0cmluZztcbiAgICAvKiogTWF4aW11bSByZXF1ZXN0IHByb2Nlc3NpbmcgdGltZSAqL1xuICAgIHhSZXF1ZXN0RGVhZGxpbmU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0UGFydHlCeUlEUmVxdWVzdFBhcmFtcyB7XG4gICAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSByZXF1ZXN0IHRvIHRoZSBzeXN0ZW0gKi9cbiAgICB4UmVxdWVzdElEOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBwYXJ0aWNpcGFudFxcJiMzOTtzIHVuaXF1ZSBpZGVudGlmaWVyIHdpdGhpbiB0aGUgc3lzdGVtLiAqL1xuICAgIHBhcnR5SUQ6IHN0cmluZztcbiAgICAvKiogTWF4aW11bSByZXF1ZXN0IHByb2Nlc3NpbmcgdGltZSAqL1xuICAgIHhSZXF1ZXN0RGVhZGxpbmU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VzcGVuZE15UGFydHlSZXF1ZXN0UGFyYW1zIHtcbiAgICAvKiogVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHJlcXVlc3QgdG8gdGhlIHN5c3RlbSAqL1xuICAgIHhSZXF1ZXN0SUQ6IHN0cmluZztcbiAgICAvKiogTWF4aW11bSByZXF1ZXN0IHByb2Nlc3NpbmcgdGltZSAqL1xuICAgIHhSZXF1ZXN0RGVhZGxpbmU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VzcGVuZFBhcnR5QnlJRFJlcXVlc3RQYXJhbXMge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcmVxdWVzdCB0byB0aGUgc3lzdGVtICovXG4gICAgeFJlcXVlc3RJRDogc3RyaW5nO1xuICAgIC8qKiBUaGUgcGFydGljaXBhbnRcXCYjMzk7cyB1bmlxdWUgaWRlbnRpZmllciB3aXRoaW4gdGhlIHN5c3RlbS4gKi9cbiAgICBwYXJ0eUlEOiBzdHJpbmc7XG4gICAgLyoqIE1heGltdW0gcmVxdWVzdCBwcm9jZXNzaW5nIHRpbWUgKi9cbiAgICB4UmVxdWVzdERlYWRsaW5lPzogc3RyaW5nO1xufVxuXG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBhcnRpZXNTZXJ2aWNlIHtcblxuICAgIHByb3RlY3RlZCBiYXNlUGF0aCA9ICcvdjInO1xuICAgIHB1YmxpYyBkZWZhdWx0SGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpO1xuICAgIHB1YmxpYyBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oKTtcbiAgICBwdWJsaWMgZW5jb2RlcjogSHR0cFBhcmFtZXRlckNvZGVjO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIEBPcHRpb25hbCgpQEluamVjdChCQVNFX1BBVEgpIGJhc2VQYXRoOiBzdHJpbmd8c3RyaW5nW10sIEBPcHRpb25hbCgpIGNvbmZpZ3VyYXRpb246IENvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbmZpZ3VyYXRpb24uYmFzZVBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShiYXNlUGF0aCkgJiYgYmFzZVBhdGgubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGJhc2VQYXRoID0gYmFzZVBhdGhbMF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2YgYmFzZVBhdGggIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgYmFzZVBhdGggPSB0aGlzLmJhc2VQYXRoO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uLmJhc2VQYXRoID0gYmFzZVBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbmNvZGVyID0gdGhpcy5jb25maWd1cmF0aW9uLmVuY29kZXIgfHwgbmV3IEN1c3RvbUh0dHBQYXJhbWV0ZXJDb2RlYygpO1xuICAgIH1cblxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHByaXZhdGUgYWRkVG9IdHRwUGFyYW1zKGh0dHBQYXJhbXM6IEh0dHBQYXJhbXMsIHZhbHVlOiBhbnksIGtleT86IHN0cmluZyk6IEh0dHBQYXJhbXMge1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiICYmIHZhbHVlIGluc3RhbmNlb2YgRGF0ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGh0dHBQYXJhbXMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtc1JlY3Vyc2l2ZShodHRwUGFyYW1zLCB2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBodHRwUGFyYW1zID0gdGhpcy5hZGRUb0h0dHBQYXJhbXNSZWN1cnNpdmUoaHR0cFBhcmFtcywgdmFsdWUsIGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGh0dHBQYXJhbXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhZGRUb0h0dHBQYXJhbXNSZWN1cnNpdmUoaHR0cFBhcmFtczogSHR0cFBhcmFtcywgdmFsdWU/OiBhbnksIGtleT86IHN0cmluZyk6IEh0dHBQYXJhbXMge1xuICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGh0dHBQYXJhbXM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm9iamVjdFwiKSB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAodmFsdWUgYXMgYW55W10pLmZvckVhY2goIGVsZW0gPT4gaHR0cFBhcmFtcyA9IHRoaXMuYWRkVG9IdHRwUGFyYW1zUmVjdXJzaXZlKGh0dHBQYXJhbXMsIGVsZW0sIGtleSkpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoa2V5ICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKGtleSwgKHZhbHVlIGFzIERhdGUpLnRvSVNPU3RyaW5nKCkuc3Vic3RyKDAsIDEwKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcihcImtleSBtYXkgbm90IGJlIG51bGwgaWYgdmFsdWUgaXMgRGF0ZVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKHZhbHVlKS5mb3JFYWNoKCBrID0+IGh0dHBQYXJhbXMgPSB0aGlzLmFkZFRvSHR0cFBhcmFtc1JlY3Vyc2l2ZShcbiAgICAgICAgICAgICAgICAgICAgaHR0cFBhcmFtcywgdmFsdWVba10sIGtleSAhPSBudWxsID8gYCR7a2V5fS4ke2t9YCA6IGspKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChrZXkgIT0gbnVsbCkge1xuICAgICAgICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuYXBwZW5kKGtleSwgdmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoXCJrZXkgbWF5IG5vdCBiZSBudWxsIGlmIHZhbHVlIGlzIG5vdCBvYmplY3Qgb3IgYXJyYXlcIik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGh0dHBQYXJhbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWN0aXZhdGUgbXkgcGFydHlcbiAgICAgKiBAcGFyYW0gcmVxdWVzdFBhcmFtZXRlcnNcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWN0aXZhdGVNeVBhcnR5KHJlcXVlc3RQYXJhbWV0ZXJzOiBBY3RpdmF0ZU15UGFydHlSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0JiN4M0Q7dXRmLTgnLCBjb250ZXh0PzogSHR0cENvbnRleHR9KTogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHB1YmxpYyBhY3RpdmF0ZU15UGFydHkocmVxdWVzdFBhcmFtZXRlcnM6IEFjdGl2YXRlTXlQYXJ0eVJlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0JiN4M0Q7dXRmLTgnLCBjb250ZXh0PzogSHR0cENvbnRleHR9KTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8YW55Pj47XG4gICAgcHVibGljIGFjdGl2YXRlTXlQYXJ0eShyZXF1ZXN0UGFyYW1ldGVyczogQWN0aXZhdGVNeVBhcnR5UmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0JiN4M0Q7dXRmLTgnLCBjb250ZXh0PzogSHR0cENvbnRleHR9KTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj47XG4gICAgcHVibGljIGFjdGl2YXRlTXlQYXJ0eShyZXF1ZXN0UGFyYW1ldGVyczogQWN0aXZhdGVNeVBhcnR5UmVxdWVzdFBhcmFtcywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldCYjeDNEO3V0Zi04JywgY29udGV4dD86IEh0dHBDb250ZXh0fSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHhSZXF1ZXN0SUQgPSByZXF1ZXN0UGFyYW1ldGVycy54UmVxdWVzdElEO1xuICAgICAgICBpZiAoeFJlcXVlc3RJRCA9PT0gbnVsbCB8fCB4UmVxdWVzdElEID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIHhSZXF1ZXN0SUQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBhY3RpdmF0ZU15UGFydHkuJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeFJlcXVlc3REZWFkbGluZSA9IHJlcXVlc3RQYXJhbWV0ZXJzLnhSZXF1ZXN0RGVhZGxpbmU7XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG4gICAgICAgIGlmICh4UmVxdWVzdElEICE9PSB1bmRlZmluZWQgJiYgeFJlcXVlc3RJRCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldCgnWC1SZXF1ZXN0LUlEJywgU3RyaW5nKHhSZXF1ZXN0SUQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoeFJlcXVlc3REZWFkbGluZSAhPT0gdW5kZWZpbmVkICYmIHhSZXF1ZXN0RGVhZGxpbmUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ1gtUmVxdWVzdC1EZWFkbGluZScsIFN0cmluZyh4UmVxdWVzdERlYWRsaW5lKSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbG9jYWxWYXJDcmVkZW50aWFsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIChiZWFyZXIpIHJlcXVpcmVkXG4gICAgICAgIGxvY2FsVmFyQ3JlZGVudGlhbCA9IHRoaXMuY29uZmlndXJhdGlvbi5sb29rdXBDcmVkZW50aWFsKCdiZWFyZXInKTtcbiAgICAgICAgaWYgKGxvY2FsVmFyQ3JlZGVudGlhbCkge1xuICAgICAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsIGxvY2FsVmFyQ3JlZGVudGlhbCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IG9wdGlvbnMgJiYgb3B0aW9ucy5odHRwSGVhZGVyQWNjZXB0O1xuICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldCgnQWNjZXB0JywgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySHR0cENvbnRleHQ6IEh0dHBDb250ZXh0IHwgdW5kZWZpbmVkID0gb3B0aW9ucyAmJiBvcHRpb25zLmNvbnRleHQ7XG4gICAgICAgIGlmIChsb2NhbFZhckh0dHBDb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySHR0cENvbnRleHQgPSBuZXcgSHR0cENvbnRleHQoKTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgbGV0IHJlc3BvbnNlVHlwZV86ICd0ZXh0JyB8ICdqc29uJyB8ICdibG9iJyA9ICdqc29uJztcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aCgndGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICd0ZXh0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdqc29uJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdibG9iJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhclBhdGggPSBgL3Byb2Nlc3NpbmcvbWUvYWN0aXZhdGVgO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8YW55PigncHV0JywgYCR7dGhpcy5jb25maWd1cmF0aW9uLmJhc2VQYXRofSR7bG9jYWxWYXJQYXRofWAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29udGV4dDogbG9jYWxWYXJIdHRwQ29udGV4dCxcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6IDxhbnk+cmVzcG9uc2VUeXBlXyxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogbG9jYWxWYXJIZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWN0aXZhdGUgcGFydHkgYnkgSURcbiAgICAgKiBAcGFyYW0gcmVxdWVzdFBhcmFtZXRlcnNcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWN0aXZhdGVQYXJ0eUJ5SUQocmVxdWVzdFBhcmFtZXRlcnM6IEFjdGl2YXRlUGFydHlCeUlEUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldCYjeDNEO3V0Zi04JywgY29udGV4dD86IEh0dHBDb250ZXh0fSk6IE9ic2VydmFibGU8YW55PjtcbiAgICBwdWJsaWMgYWN0aXZhdGVQYXJ0eUJ5SUQocmVxdWVzdFBhcmFtZXRlcnM6IEFjdGl2YXRlUGFydHlCeUlEUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQmI3gzRDt1dGYtOCcsIGNvbnRleHQ/OiBIdHRwQ29udGV4dH0pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxhbnk+PjtcbiAgICBwdWJsaWMgYWN0aXZhdGVQYXJ0eUJ5SUQocmVxdWVzdFBhcmFtZXRlcnM6IEFjdGl2YXRlUGFydHlCeUlEUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0JiN4M0Q7dXRmLTgnLCBjb250ZXh0PzogSHR0cENvbnRleHR9KTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj47XG4gICAgcHVibGljIGFjdGl2YXRlUGFydHlCeUlEKHJlcXVlc3RQYXJhbWV0ZXJzOiBBY3RpdmF0ZVBhcnR5QnlJRFJlcXVlc3RQYXJhbXMsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQmI3gzRDt1dGYtOCcsIGNvbnRleHQ/OiBIdHRwQ29udGV4dH0pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCB4UmVxdWVzdElEID0gcmVxdWVzdFBhcmFtZXRlcnMueFJlcXVlc3RJRDtcbiAgICAgICAgaWYgKHhSZXF1ZXN0SUQgPT09IG51bGwgfHwgeFJlcXVlc3RJRCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciB4UmVxdWVzdElEIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgYWN0aXZhdGVQYXJ0eUJ5SUQuJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGFydHlJRCA9IHJlcXVlc3RQYXJhbWV0ZXJzLnBhcnR5SUQ7XG4gICAgICAgIGlmIChwYXJ0eUlEID09PSBudWxsIHx8IHBhcnR5SUQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdSZXF1aXJlZCBwYXJhbWV0ZXIgcGFydHlJRCB3YXMgbnVsbCBvciB1bmRlZmluZWQgd2hlbiBjYWxsaW5nIGFjdGl2YXRlUGFydHlCeUlELicpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHhSZXF1ZXN0RGVhZGxpbmUgPSByZXF1ZXN0UGFyYW1ldGVycy54UmVxdWVzdERlYWRsaW5lO1xuXG4gICAgICAgIGxldCBsb2NhbFZhckhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuICAgICAgICBpZiAoeFJlcXVlc3RJRCAhPT0gdW5kZWZpbmVkICYmIHhSZXF1ZXN0SUQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ1gtUmVxdWVzdC1JRCcsIFN0cmluZyh4UmVxdWVzdElEKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHhSZXF1ZXN0RGVhZGxpbmUgIT09IHVuZGVmaW5lZCAmJiB4UmVxdWVzdERlYWRsaW5lICE9PSBudWxsKSB7XG4gICAgICAgICAgICBsb2NhbFZhckhlYWRlcnMgPSBsb2NhbFZhckhlYWRlcnMuc2V0KCdYLVJlcXVlc3QtRGVhZGxpbmUnLCBTdHJpbmcoeFJlcXVlc3REZWFkbGluZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFyQ3JlZGVudGlhbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICAvLyBhdXRoZW50aWNhdGlvbiAoYmVhcmVyKSByZXF1aXJlZFxuICAgICAgICBsb2NhbFZhckNyZWRlbnRpYWwgPSB0aGlzLmNvbmZpZ3VyYXRpb24ubG9va3VwQ3JlZGVudGlhbCgnYmVhcmVyJyk7XG4gICAgICAgIGlmIChsb2NhbFZhckNyZWRlbnRpYWwpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCBsb2NhbFZhckNyZWRlbnRpYWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBvcHRpb25zICYmIG9wdGlvbnMuaHR0cEhlYWRlckFjY2VwdDtcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04J1xuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ0FjY2VwdCcsIGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhckh0dHBDb250ZXh0OiBIdHRwQ29udGV4dCB8IHVuZGVmaW5lZCA9IG9wdGlvbnMgJiYgb3B0aW9ucy5jb250ZXh0O1xuICAgICAgICBpZiAobG9jYWxWYXJIdHRwQ29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2NhbFZhckh0dHBDb250ZXh0ID0gbmV3IEh0dHBDb250ZXh0KCk7XG4gICAgICAgIH1cblxuXG4gICAgICAgIGxldCByZXNwb25zZVR5cGVfOiAndGV4dCcgfCAnanNvbicgfCAnYmxvYicgPSAnanNvbic7XG4gICAgICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCkge1xuICAgICAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkLnN0YXJ0c1dpdGgoJ3RleHQnKSkge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZV8gPSAndGV4dCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5pc0pzb25NaW1lKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZV8gPSAnanNvbic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZV8gPSAnYmxvYic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbG9jYWxWYXJQYXRoID0gYC9wcm9jZXNzaW5nL3BhcnRpZXMvJHt0aGlzLmNvbmZpZ3VyYXRpb24uZW5jb2RlUGFyYW0oe25hbWU6IFwicGFydHlJRFwiLCB2YWx1ZTogcGFydHlJRCwgaW46IFwicGF0aFwiLCBzdHlsZTogXCJzaW1wbGVcIiwgZXhwbG9kZTogZmFsc2UsIGRhdGFUeXBlOiBcInN0cmluZ1wiLCBkYXRhRm9ybWF0OiB1bmRlZmluZWR9KX0vYWN0aXZhdGVgO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3Q8YW55PigncHV0JywgYCR7dGhpcy5jb25maWd1cmF0aW9uLmJhc2VQYXRofSR7bG9jYWxWYXJQYXRofWAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29udGV4dDogbG9jYWxWYXJIdHRwQ29udGV4dCxcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6IDxhbnk+cmVzcG9uc2VUeXBlXyxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogbG9jYWxWYXJIZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHJlcXVlc3RQYXJhbWV0ZXJzXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGdldE15UGFydHkocmVxdWVzdFBhcmFtZXRlcnM6IEdldE15UGFydHlSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0JiN4M0Q7dXRmLTgnLCBjb250ZXh0PzogSHR0cENvbnRleHR9KTogT2JzZXJ2YWJsZTxQYXJ0eT47XG4gICAgcHVibGljIGdldE15UGFydHkocmVxdWVzdFBhcmFtZXRlcnM6IEdldE15UGFydHlSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlPzogJ3Jlc3BvbnNlJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldCYjeDNEO3V0Zi04JywgY29udGV4dD86IEh0dHBDb250ZXh0fSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPFBhcnR5Pj47XG4gICAgcHVibGljIGdldE15UGFydHkocmVxdWVzdFBhcmFtZXRlcnM6IEdldE15UGFydHlSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQmI3gzRDt1dGYtOCcsIGNvbnRleHQ/OiBIdHRwQ29udGV4dH0pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxQYXJ0eT4+O1xuICAgIHB1YmxpYyBnZXRNeVBhcnR5KHJlcXVlc3RQYXJhbWV0ZXJzOiBHZXRNeVBhcnR5UmVxdWVzdFBhcmFtcywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldCYjeDNEO3V0Zi04JywgY29udGV4dD86IEh0dHBDb250ZXh0fSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHhSZXF1ZXN0SUQgPSByZXF1ZXN0UGFyYW1ldGVycy54UmVxdWVzdElEO1xuICAgICAgICBpZiAoeFJlcXVlc3RJRCA9PT0gbnVsbCB8fCB4UmVxdWVzdElEID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIHhSZXF1ZXN0SUQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBnZXRNeVBhcnR5LicpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHhSZXF1ZXN0RGVhZGxpbmUgPSByZXF1ZXN0UGFyYW1ldGVycy54UmVxdWVzdERlYWRsaW5lO1xuXG4gICAgICAgIGxldCBsb2NhbFZhckhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuICAgICAgICBpZiAoeFJlcXVlc3RJRCAhPT0gdW5kZWZpbmVkICYmIHhSZXF1ZXN0SUQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ1gtUmVxdWVzdC1JRCcsIFN0cmluZyh4UmVxdWVzdElEKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHhSZXF1ZXN0RGVhZGxpbmUgIT09IHVuZGVmaW5lZCAmJiB4UmVxdWVzdERlYWRsaW5lICE9PSBudWxsKSB7XG4gICAgICAgICAgICBsb2NhbFZhckhlYWRlcnMgPSBsb2NhbFZhckhlYWRlcnMuc2V0KCdYLVJlcXVlc3QtRGVhZGxpbmUnLCBTdHJpbmcoeFJlcXVlc3REZWFkbGluZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFyQ3JlZGVudGlhbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICAvLyBhdXRoZW50aWNhdGlvbiAoYmVhcmVyKSByZXF1aXJlZFxuICAgICAgICBsb2NhbFZhckNyZWRlbnRpYWwgPSB0aGlzLmNvbmZpZ3VyYXRpb24ubG9va3VwQ3JlZGVudGlhbCgnYmVhcmVyJyk7XG4gICAgICAgIGlmIChsb2NhbFZhckNyZWRlbnRpYWwpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCBsb2NhbFZhckNyZWRlbnRpYWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBvcHRpb25zICYmIG9wdGlvbnMuaHR0cEhlYWRlckFjY2VwdDtcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04J1xuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ0FjY2VwdCcsIGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhckh0dHBDb250ZXh0OiBIdHRwQ29udGV4dCB8IHVuZGVmaW5lZCA9IG9wdGlvbnMgJiYgb3B0aW9ucy5jb250ZXh0O1xuICAgICAgICBpZiAobG9jYWxWYXJIdHRwQ29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2NhbFZhckh0dHBDb250ZXh0ID0gbmV3IEh0dHBDb250ZXh0KCk7XG4gICAgICAgIH1cblxuXG4gICAgICAgIGxldCByZXNwb25zZVR5cGVfOiAndGV4dCcgfCAnanNvbicgfCAnYmxvYicgPSAnanNvbic7XG4gICAgICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCkge1xuICAgICAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkLnN0YXJ0c1dpdGgoJ3RleHQnKSkge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZV8gPSAndGV4dCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5pc0pzb25NaW1lKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZV8gPSAnanNvbic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZV8gPSAnYmxvYic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbG9jYWxWYXJQYXRoID0gYC9wcm9jZXNzaW5nL21lYDtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5yZXF1ZXN0PFBhcnR5PignZ2V0JywgYCR7dGhpcy5jb25maWd1cmF0aW9uLmJhc2VQYXRofSR7bG9jYWxWYXJQYXRofWAsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29udGV4dDogbG9jYWxWYXJIdHRwQ29udGV4dCxcbiAgICAgICAgICAgICAgICByZXNwb25zZVR5cGU6IDxhbnk+cmVzcG9uc2VUeXBlXyxcbiAgICAgICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRoaXMuY29uZmlndXJhdGlvbi53aXRoQ3JlZGVudGlhbHMsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogbG9jYWxWYXJIZWFkZXJzLFxuICAgICAgICAgICAgICAgIG9ic2VydmU6IG9ic2VydmUsXG4gICAgICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHJlcG9ydFByb2dyZXNzXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHJlcXVlc3RQYXJhbWV0ZXJzXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIGdldFBhcnR5QnlJRChyZXF1ZXN0UGFyYW1ldGVyczogR2V0UGFydHlCeUlEUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldCYjeDNEO3V0Zi04JywgY29udGV4dD86IEh0dHBDb250ZXh0fSk6IE9ic2VydmFibGU8UGFydHk+O1xuICAgIHB1YmxpYyBnZXRQYXJ0eUJ5SUQocmVxdWVzdFBhcmFtZXRlcnM6IEdldFBhcnR5QnlJRFJlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAncmVzcG9uc2UnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0JiN4M0Q7dXRmLTgnLCBjb250ZXh0PzogSHR0cENvbnRleHR9KTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8UGFydHk+PjtcbiAgICBwdWJsaWMgZ2V0UGFydHlCeUlEKHJlcXVlc3RQYXJhbWV0ZXJzOiBHZXRQYXJ0eUJ5SURSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlPzogJ2V2ZW50cycsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQmI3gzRDt1dGYtOCcsIGNvbnRleHQ/OiBIdHRwQ29udGV4dH0pOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxQYXJ0eT4+O1xuICAgIHB1YmxpYyBnZXRQYXJ0eUJ5SUQocmVxdWVzdFBhcmFtZXRlcnM6IEdldFBhcnR5QnlJRFJlcXVlc3RQYXJhbXMsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQmI3gzRDt1dGYtOCcsIGNvbnRleHQ/OiBIdHRwQ29udGV4dH0pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCB4UmVxdWVzdElEID0gcmVxdWVzdFBhcmFtZXRlcnMueFJlcXVlc3RJRDtcbiAgICAgICAgaWYgKHhSZXF1ZXN0SUQgPT09IG51bGwgfHwgeFJlcXVlc3RJRCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciB4UmVxdWVzdElEIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgZ2V0UGFydHlCeUlELicpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcnR5SUQgPSByZXF1ZXN0UGFyYW1ldGVycy5wYXJ0eUlEO1xuICAgICAgICBpZiAocGFydHlJRCA9PT0gbnVsbCB8fCBwYXJ0eUlEID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIHBhcnR5SUQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBnZXRQYXJ0eUJ5SUQuJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeFJlcXVlc3REZWFkbGluZSA9IHJlcXVlc3RQYXJhbWV0ZXJzLnhSZXF1ZXN0RGVhZGxpbmU7XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG4gICAgICAgIGlmICh4UmVxdWVzdElEICE9PSB1bmRlZmluZWQgJiYgeFJlcXVlc3RJRCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldCgnWC1SZXF1ZXN0LUlEJywgU3RyaW5nKHhSZXF1ZXN0SUQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoeFJlcXVlc3REZWFkbGluZSAhPT0gdW5kZWZpbmVkICYmIHhSZXF1ZXN0RGVhZGxpbmUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ1gtUmVxdWVzdC1EZWFkbGluZScsIFN0cmluZyh4UmVxdWVzdERlYWRsaW5lKSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbG9jYWxWYXJDcmVkZW50aWFsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIChiZWFyZXIpIHJlcXVpcmVkXG4gICAgICAgIGxvY2FsVmFyQ3JlZGVudGlhbCA9IHRoaXMuY29uZmlndXJhdGlvbi5sb29rdXBDcmVkZW50aWFsKCdiZWFyZXInKTtcbiAgICAgICAgaWYgKGxvY2FsVmFyQ3JlZGVudGlhbCkge1xuICAgICAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsIGxvY2FsVmFyQ3JlZGVudGlhbCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IG9wdGlvbnMgJiYgb3B0aW9ucy5odHRwSGVhZGVyQWNjZXB0O1xuICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldCgnQWNjZXB0JywgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySHR0cENvbnRleHQ6IEh0dHBDb250ZXh0IHwgdW5kZWZpbmVkID0gb3B0aW9ucyAmJiBvcHRpb25zLmNvbnRleHQ7XG4gICAgICAgIGlmIChsb2NhbFZhckh0dHBDb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySHR0cENvbnRleHQgPSBuZXcgSHR0cENvbnRleHQoKTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgbGV0IHJlc3BvbnNlVHlwZV86ICd0ZXh0JyB8ICdqc29uJyB8ICdibG9iJyA9ICdqc29uJztcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aCgndGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICd0ZXh0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdqc29uJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdibG9iJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhclBhdGggPSBgL3Byb2Nlc3NpbmcvcGFydGllcy8ke3RoaXMuY29uZmlndXJhdGlvbi5lbmNvZGVQYXJhbSh7bmFtZTogXCJwYXJ0eUlEXCIsIHZhbHVlOiBwYXJ0eUlELCBpbjogXCJwYXRoXCIsIHN0eWxlOiBcInNpbXBsZVwiLCBleHBsb2RlOiBmYWxzZSwgZGF0YVR5cGU6IFwic3RyaW5nXCIsIGRhdGFGb3JtYXQ6IHVuZGVmaW5lZH0pfWA7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxQYXJ0eT4oJ2dldCcsIGAke3RoaXMuY29uZmlndXJhdGlvbi5iYXNlUGF0aH0ke2xvY2FsVmFyUGF0aH1gLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnRleHQ6IGxvY2FsVmFySHR0cENvbnRleHQsXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiA8YW55PnJlc3BvbnNlVHlwZV8sXG4gICAgICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0aGlzLmNvbmZpZ3VyYXRpb24ud2l0aENyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IGxvY2FsVmFySGVhZGVycyxcbiAgICAgICAgICAgICAgICBvYnNlcnZlOiBvYnNlcnZlLFxuICAgICAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiByZXBvcnRQcm9ncmVzc1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN1c3BlbmQgbXkgcGFydHlcbiAgICAgKiBAcGFyYW0gcmVxdWVzdFBhcmFtZXRlcnNcbiAgICAgKiBAcGFyYW0gb2JzZXJ2ZSBzZXQgd2hldGhlciBvciBub3QgdG8gcmV0dXJuIHRoZSBkYXRhIE9ic2VydmFibGUgYXMgdGhlIGJvZHksIHJlc3BvbnNlIG9yIGV2ZW50cy4gZGVmYXVsdHMgdG8gcmV0dXJuaW5nIHRoZSBib2R5LlxuICAgICAqIEBwYXJhbSByZXBvcnRQcm9ncmVzcyBmbGFnIHRvIHJlcG9ydCByZXF1ZXN0IGFuZCByZXNwb25zZSBwcm9ncmVzcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3VzcGVuZE15UGFydHkocmVxdWVzdFBhcmFtZXRlcnM6IFN1c3BlbmRNeVBhcnR5UmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldCYjeDNEO3V0Zi04JywgY29udGV4dD86IEh0dHBDb250ZXh0fSk6IE9ic2VydmFibGU8YW55PjtcbiAgICBwdWJsaWMgc3VzcGVuZE15UGFydHkocmVxdWVzdFBhcmFtZXRlcnM6IFN1c3BlbmRNeVBhcnR5UmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQmI3gzRDt1dGYtOCcsIGNvbnRleHQ/OiBIdHRwQ29udGV4dH0pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxhbnk+PjtcbiAgICBwdWJsaWMgc3VzcGVuZE15UGFydHkocmVxdWVzdFBhcmFtZXRlcnM6IFN1c3BlbmRNeVBhcnR5UmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdldmVudHMnLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0JiN4M0Q7dXRmLTgnLCBjb250ZXh0PzogSHR0cENvbnRleHR9KTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj47XG4gICAgcHVibGljIHN1c3BlbmRNeVBhcnR5KHJlcXVlc3RQYXJhbWV0ZXJzOiBTdXNwZW5kTXlQYXJ0eVJlcXVlc3RQYXJhbXMsIG9ic2VydmU6IGFueSA9ICdib2R5JywgcmVwb3J0UHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZSwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQmI3gzRDt1dGYtOCcsIGNvbnRleHQ/OiBIdHRwQ29udGV4dH0pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICBjb25zdCB4UmVxdWVzdElEID0gcmVxdWVzdFBhcmFtZXRlcnMueFJlcXVlc3RJRDtcbiAgICAgICAgaWYgKHhSZXF1ZXN0SUQgPT09IG51bGwgfHwgeFJlcXVlc3RJRCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1JlcXVpcmVkIHBhcmFtZXRlciB4UmVxdWVzdElEIHdhcyBudWxsIG9yIHVuZGVmaW5lZCB3aGVuIGNhbGxpbmcgc3VzcGVuZE15UGFydHkuJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgeFJlcXVlc3REZWFkbGluZSA9IHJlcXVlc3RQYXJhbWV0ZXJzLnhSZXF1ZXN0RGVhZGxpbmU7XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySGVhZGVycyA9IHRoaXMuZGVmYXVsdEhlYWRlcnM7XG4gICAgICAgIGlmICh4UmVxdWVzdElEICE9PSB1bmRlZmluZWQgJiYgeFJlcXVlc3RJRCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldCgnWC1SZXF1ZXN0LUlEJywgU3RyaW5nKHhSZXF1ZXN0SUQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoeFJlcXVlc3REZWFkbGluZSAhPT0gdW5kZWZpbmVkICYmIHhSZXF1ZXN0RGVhZGxpbmUgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ1gtUmVxdWVzdC1EZWFkbGluZScsIFN0cmluZyh4UmVxdWVzdERlYWRsaW5lKSk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbG9jYWxWYXJDcmVkZW50aWFsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgIC8vIGF1dGhlbnRpY2F0aW9uIChiZWFyZXIpIHJlcXVpcmVkXG4gICAgICAgIGxvY2FsVmFyQ3JlZGVudGlhbCA9IHRoaXMuY29uZmlndXJhdGlvbi5sb29rdXBDcmVkZW50aWFsKCdiZWFyZXInKTtcbiAgICAgICAgaWYgKGxvY2FsVmFyQ3JlZGVudGlhbCkge1xuICAgICAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsIGxvY2FsVmFyQ3JlZGVudGlhbCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9IG9wdGlvbnMgJiYgb3B0aW9ucy5odHRwSGVhZGVyQWNjZXB0O1xuICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgLy8gdG8gZGV0ZXJtaW5lIHRoZSBBY2NlcHQgaGVhZGVyXG4gICAgICAgICAgICBjb25zdCBodHRwSGVhZGVyQWNjZXB0czogc3RyaW5nW10gPSBbXG4gICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uc2VsZWN0SGVhZGVyQWNjZXB0KGh0dHBIZWFkZXJBY2NlcHRzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgbG9jYWxWYXJIZWFkZXJzID0gbG9jYWxWYXJIZWFkZXJzLnNldCgnQWNjZXB0JywgbG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySHR0cENvbnRleHQ6IEh0dHBDb250ZXh0IHwgdW5kZWZpbmVkID0gb3B0aW9ucyAmJiBvcHRpb25zLmNvbnRleHQ7XG4gICAgICAgIGlmIChsb2NhbFZhckh0dHBDb250ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySHR0cENvbnRleHQgPSBuZXcgSHR0cENvbnRleHQoKTtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgbGV0IHJlc3BvbnNlVHlwZV86ICd0ZXh0JyB8ICdqc29uJyB8ICdibG9iJyA9ICdqc29uJztcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSB7XG4gICAgICAgICAgICBpZiAobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQuc3RhcnRzV2l0aCgndGV4dCcpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICd0ZXh0JztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5jb25maWd1cmF0aW9uLmlzSnNvbk1pbWUobG9jYWxWYXJIdHRwSGVhZGVyQWNjZXB0U2VsZWN0ZWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdqc29uJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlXyA9ICdibG9iJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhclBhdGggPSBgL3Byb2Nlc3NpbmcvbWUvc3VzcGVuZGA7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxhbnk+KCdwdXQnLCBgJHt0aGlzLmNvbmZpZ3VyYXRpb24uYmFzZVBhdGh9JHtsb2NhbFZhclBhdGh9YCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiBsb2NhbFZhckh0dHBDb250ZXh0LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogPGFueT5yZXNwb25zZVR5cGVfLFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBsb2NhbFZhckhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdXNwZW5kIHBhcnR5IGJ5IElEXG4gICAgICogQHBhcmFtIHJlcXVlc3RQYXJhbWV0ZXJzXG4gICAgICogQHBhcmFtIG9ic2VydmUgc2V0IHdoZXRoZXIgb3Igbm90IHRvIHJldHVybiB0aGUgZGF0YSBPYnNlcnZhYmxlIGFzIHRoZSBib2R5LCByZXNwb25zZSBvciBldmVudHMuIGRlZmF1bHRzIHRvIHJldHVybmluZyB0aGUgYm9keS5cbiAgICAgKiBAcGFyYW0gcmVwb3J0UHJvZ3Jlc3MgZmxhZyB0byByZXBvcnQgcmVxdWVzdCBhbmQgcmVzcG9uc2UgcHJvZ3Jlc3MuXG4gICAgICovXG4gICAgcHVibGljIHN1c3BlbmRQYXJ0eUJ5SUQocmVxdWVzdFBhcmFtZXRlcnM6IFN1c3BlbmRQYXJ0eUJ5SURSZXF1ZXN0UGFyYW1zLCBvYnNlcnZlPzogJ2JvZHknLCByZXBvcnRQcm9ncmVzcz86IGJvb2xlYW4sIG9wdGlvbnM/OiB7aHR0cEhlYWRlckFjY2VwdD86ICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0JiN4M0Q7dXRmLTgnLCBjb250ZXh0PzogSHR0cENvbnRleHR9KTogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHB1YmxpYyBzdXNwZW5kUGFydHlCeUlEKHJlcXVlc3RQYXJhbWV0ZXJzOiBTdXNwZW5kUGFydHlCeUlEUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZT86ICdyZXNwb25zZScsIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbiwgb3B0aW9ucz86IHtodHRwSGVhZGVyQWNjZXB0PzogJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQmI3gzRDt1dGYtOCcsIGNvbnRleHQ/OiBIdHRwQ29udGV4dH0pOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxhbnk+PjtcbiAgICBwdWJsaWMgc3VzcGVuZFBhcnR5QnlJRChyZXF1ZXN0UGFyYW1ldGVyczogU3VzcGVuZFBhcnR5QnlJRFJlcXVlc3RQYXJhbXMsIG9ic2VydmU/OiAnZXZlbnRzJywgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldCYjeDNEO3V0Zi04JywgY29udGV4dD86IEh0dHBDb250ZXh0fSk6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+O1xuICAgIHB1YmxpYyBzdXNwZW5kUGFydHlCeUlEKHJlcXVlc3RQYXJhbWV0ZXJzOiBTdXNwZW5kUGFydHlCeUlEUmVxdWVzdFBhcmFtcywgb2JzZXJ2ZTogYW55ID0gJ2JvZHknLCByZXBvcnRQcm9ncmVzczogYm9vbGVhbiA9IGZhbHNlLCBvcHRpb25zPzoge2h0dHBIZWFkZXJBY2NlcHQ/OiAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldCYjeDNEO3V0Zi04JywgY29udGV4dD86IEh0dHBDb250ZXh0fSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIGNvbnN0IHhSZXF1ZXN0SUQgPSByZXF1ZXN0UGFyYW1ldGVycy54UmVxdWVzdElEO1xuICAgICAgICBpZiAoeFJlcXVlc3RJRCA9PT0gbnVsbCB8fCB4UmVxdWVzdElEID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIHhSZXF1ZXN0SUQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBzdXNwZW5kUGFydHlCeUlELicpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhcnR5SUQgPSByZXF1ZXN0UGFyYW1ldGVycy5wYXJ0eUlEO1xuICAgICAgICBpZiAocGFydHlJRCA9PT0gbnVsbCB8fCBwYXJ0eUlEID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgcGFyYW1ldGVyIHBhcnR5SUQgd2FzIG51bGwgb3IgdW5kZWZpbmVkIHdoZW4gY2FsbGluZyBzdXNwZW5kUGFydHlCeUlELicpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHhSZXF1ZXN0RGVhZGxpbmUgPSByZXF1ZXN0UGFyYW1ldGVycy54UmVxdWVzdERlYWRsaW5lO1xuXG4gICAgICAgIGxldCBsb2NhbFZhckhlYWRlcnMgPSB0aGlzLmRlZmF1bHRIZWFkZXJzO1xuICAgICAgICBpZiAoeFJlcXVlc3RJRCAhPT0gdW5kZWZpbmVkICYmIHhSZXF1ZXN0SUQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ1gtUmVxdWVzdC1JRCcsIFN0cmluZyh4UmVxdWVzdElEKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHhSZXF1ZXN0RGVhZGxpbmUgIT09IHVuZGVmaW5lZCAmJiB4UmVxdWVzdERlYWRsaW5lICE9PSBudWxsKSB7XG4gICAgICAgICAgICBsb2NhbFZhckhlYWRlcnMgPSBsb2NhbFZhckhlYWRlcnMuc2V0KCdYLVJlcXVlc3QtRGVhZGxpbmUnLCBTdHJpbmcoeFJlcXVlc3REZWFkbGluZSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFyQ3JlZGVudGlhbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgICAvLyBhdXRoZW50aWNhdGlvbiAoYmVhcmVyKSByZXF1aXJlZFxuICAgICAgICBsb2NhbFZhckNyZWRlbnRpYWwgPSB0aGlzLmNvbmZpZ3VyYXRpb24ubG9va3VwQ3JlZGVudGlhbCgnYmVhcmVyJyk7XG4gICAgICAgIGlmIChsb2NhbFZhckNyZWRlbnRpYWwpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ0F1dGhvcml6YXRpb24nLCBsb2NhbFZhckNyZWRlbnRpYWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBvcHRpb25zICYmIG9wdGlvbnMuaHR0cEhlYWRlckFjY2VwdDtcbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIHRvIGRldGVybWluZSB0aGUgQWNjZXB0IGhlYWRlclxuICAgICAgICAgICAgY29uc3QgaHR0cEhlYWRlckFjY2VwdHM6IHN0cmluZ1tdID0gW1xuICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04J1xuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkID0gdGhpcy5jb25maWd1cmF0aW9uLnNlbGVjdEhlYWRlckFjY2VwdChodHRwSGVhZGVyQWNjZXB0cyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGxvY2FsVmFySGVhZGVycyA9IGxvY2FsVmFySGVhZGVycy5zZXQoJ0FjY2VwdCcsIGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBsb2NhbFZhckh0dHBDb250ZXh0OiBIdHRwQ29udGV4dCB8IHVuZGVmaW5lZCA9IG9wdGlvbnMgJiYgb3B0aW9ucy5jb250ZXh0O1xuICAgICAgICBpZiAobG9jYWxWYXJIdHRwQ29udGV4dCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBsb2NhbFZhckh0dHBDb250ZXh0ID0gbmV3IEh0dHBDb250ZXh0KCk7XG4gICAgICAgIH1cblxuXG4gICAgICAgIGxldCByZXNwb25zZVR5cGVfOiAndGV4dCcgfCAnanNvbicgfCAnYmxvYicgPSAnanNvbic7XG4gICAgICAgIGlmIChsb2NhbFZhckh0dHBIZWFkZXJBY2NlcHRTZWxlY3RlZCkge1xuICAgICAgICAgICAgaWYgKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkLnN0YXJ0c1dpdGgoJ3RleHQnKSkge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZV8gPSAndGV4dCc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY29uZmlndXJhdGlvbi5pc0pzb25NaW1lKGxvY2FsVmFySHR0cEhlYWRlckFjY2VwdFNlbGVjdGVkKSkge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZV8gPSAnanNvbic7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZV8gPSAnYmxvYic7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgbG9jYWxWYXJQYXRoID0gYC9wcm9jZXNzaW5nL3BhcnRpZXMvJHt0aGlzLmNvbmZpZ3VyYXRpb24uZW5jb2RlUGFyYW0oe25hbWU6IFwicGFydHlJRFwiLCB2YWx1ZTogcGFydHlJRCwgaW46IFwicGF0aFwiLCBzdHlsZTogXCJzaW1wbGVcIiwgZXhwbG9kZTogZmFsc2UsIGRhdGFUeXBlOiBcInN0cmluZ1wiLCBkYXRhRm9ybWF0OiB1bmRlZmluZWR9KX0vc3VzcGVuZGA7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucmVxdWVzdDxhbnk+KCdwdXQnLCBgJHt0aGlzLmNvbmZpZ3VyYXRpb24uYmFzZVBhdGh9JHtsb2NhbFZhclBhdGh9YCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiBsb2NhbFZhckh0dHBDb250ZXh0LFxuICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogPGFueT5yZXNwb25zZVR5cGVfLFxuICAgICAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdGhpcy5jb25maWd1cmF0aW9uLndpdGhDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiBsb2NhbFZhckhlYWRlcnMsXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZTogb2JzZXJ2ZSxcbiAgICAgICAgICAgICAgICByZXBvcnRQcm9ncmVzczogcmVwb3J0UHJvZ3Jlc3NcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbn1cbiJdfQ==